application fonction
if (strpos($fields[0],' ') === false AND strpos($fields[0],'(') === false) $tmp1 = sprintf($req1, $fields[0]);
else {
switch ($mode) {
case 'SEQUENCE' :
// si déjà un case when on l'imbrique
$tmp1 = preg_replace('/THEN ([^ ]*) (ELSE|WHEN)/','AND COLUMNCHECKSEQUENCE THEN \\1 \\2',$fields[0]);
// si cas simple de DISTINCT field ( en general associé à un somme ou count), on imbrique
$tmp1 = preg_replace('/DISTINCT ([^CA][^ \)]*)/','DISTINCT CASE WHEN COLUMNCHECKSEQUENCE THEN \\1 ELSE null END ',$tmp1);
// si indicateur calculé, le distinct array du cti_sum_distinct est à traiter spécifiquement
$tmp1 = preg_replace('/DISTINCT ARRAY\[([^,]*),([^\]]*)\]/','DISTINCT ARRAY[\\1,CASE WHEN COLUMNCHECKSEQUENCE THEN \\2 ELSE null END ]',$tmp1);
//si on détecte des parenthèse avec un seul terme, on l'imbrique aussi
$tmp1 = preg_replace('/\(([^ \(\)]*)\)/','(CASE WHEN COLUMNCHECKSEQUENCE THEN \\1 ELSE null END)',$tmp1);
//s'il y a un MAX(ARRAY(date, traitement spécifique
$tmp1 = preg_replace('/MAX\(ARRAY\[(date[^,]*)/',"MAX(ARRAY[(CASE WHEN COLUMNCHECKSEQUENCE THEN \\1 ELSE '1900-01-01' END)",$tmp1);
break;
case 'DATE' :
if ($date != 'date') $tmp1 = preg_replace('/THEN ([^ ]*) ELSE/',"AND $date >= '[PERIODE]' AND $date <= '[TOPERIODE]' THEN \\1 ELSE",$fields[0]);
else $tmp1 = preg_replace('/THEN ([^ ]*) ELSE/',"AND ($date BETWEEN '[PERIODE]' AND '[TOPERIODE]' OR $date"."_fin BETWEEN '[PERIODE]' AND '[TOPERIODE]' OR ($date < '[PERIODE]' AND $date"."_fin > '[TOPERIODE]')) THEN \\1 ELSE",$fields[0]);
$tmp1 = preg_replace('/DISTINCT ([^CA][^ \)]*)/',"DISTINCT CASE WHEN $date >= '[PERIODE]' AND $date <= '[TOPERIODE]' THEN \\1 ELSE null END ",$tmp1);
$tmp1 = preg_replace('/DISTINCT ARRAY\[([^,]*),([^\]]*)\]/',"DISTINCT ARRAY[\\1,CASE WHEN $date >= '[PERIODE]' AND $date <= '[TOPERIODE]' THEN \\2 ELSE null END ]",$tmp1);
$tmp1 = preg_replace('/\(([^ \(\)]*)\)/',"(CASE WHEN $date >= '[PERIODE]' AND $date <= '[TOPERIODE]' THEN \\1 ELSE null END)",$tmp1);
//s'il y a un MAX(ARRAY(date, traitement spécifique
$tmp1 = preg_replace('/MAX\(ARRAY\[(date[^,]*)/',"MAX(ARRAY[(CASE WHEN $date >= '[PERIODE]' AND $date <= '[TOPERIODE]' THEN \\1 ELSE '1900-01-01' END)",$tmp1);
break;
case 'DATE_D' :
if ($date != 'date') $tmp1 = preg_replace('/THEN ([^ ]*) ELSE/',"AND $date >= '[VIEW.PERIODE_D]' AND $date <= '[VIEW.TOPERIODE_D]' THEN \\1 ELSE",$fields[0]);
else $tmp1 = preg_replace('/THEN ([^ ]*) ELSE/',"AND ($date BETWEEN '[VIEW.PERIODE_D]' AND '[VIEW.TOPERIODE_D]' OR $date"."_fin BETWEEN '[VIEW.PERIODE_D]' AND '[VIEW.TOPERIODE_D]' OR ($date < '[VIEW.PERIODE_D]' AND $date"."_fin > '[VIEW.TOPERIODE_D]')) THEN \\1 ELSE",$fields[0]);
$tmp1 = preg_replace('/DISTINCT ([^CA][^ \)]*)/',"DISTINCT CASE WHEN $date >= '[VIEW.PERIODE_D]' AND $date <= '[VIEW.TOPERIODE_D]' THEN \\1 ELSE null END ",$tmp1);
$tmp1 = preg_replace('/DISTINCT ARRAY\[([^,]*),([^\]]*)\]/',"DISTINCT ARRAY[\\1,CASE WHEN $date >= '[VIEW.PERIODE_D]' AND $date <= '[VIEW.TOPERIODE_D]' THEN \\2 ELSE null END ]",$tmp1);
$tmp1 = preg_replace('/\(([^ \(\)]*)\)/',"(CASE WHEN $date >= '[VIEW.PERIODE_D]' AND $date <= '[VIEW.TOPERIODE_D]' THEN \\1 ELSE null END)",$tmp1);
//s'il y a un MAX(ARRAY(date, traitement spécifique
$tmp1 = preg_replace('/MAX\(ARRAY\[(date[^,]*)/',"MAX(ARRAY[(CASE WHEN $date >= '[VIEW.PERIODE_D]' AND $date <= '[VIEW.TOPERIODE_D]' THEN \\1 ELSE '1900-01-01' END)",$tmp1);
break;
default :
$tmp1 = $fields[0];
break;
}
}
//application de la fonction sum et count sont distinct par défautt, avg est un base.cti_division
$tmp1 = $mode != 'NO_FUNCTION' ? $calcFunc. '(' . $tmp1 . ')' : $tmp1;
$tmp1 = preg_replace('/(columnby_to_date - columnby_from_date)/','MAX(CASE WHEN COLUMNCHECKSEQUENCE THEN \\1 ELSE 0 END)',$tmp1);
}
else $tmp1 = "1";
return 'COALESCE(' . $tmp1 . ',0)';
}
// ?>
EVAL]]]>
EVAL]]]>
EVAL]]]>
EVAL]]]>
EVAL]]]>
EVAL]]]>
0';
return $tmp;
// ?>
EVAL]]]>
'' THEN article_texte_specifique ELSE article_texte END";
break;
case "provider":
$field = "provider_texte";
break;
case "pole":
$field = "pole_texte";
break;
default:
$field = $prefixe . "_texte";
}
}
return $field;
}
function ECO_standard_field_select($field_prefixe, $table_name, $selected_value, $field2_prefixe="") {
$select = "";
if ($selected_value != '-1' && $selected_value != '') {
$mode = substr($selected_value,0,2);
$oid = $selected_value;
// Spécial ATC (plusieurs niveaux)
if ($table_name == "t_classification_atc") {
if ($mode == "D1") {
$field_prefixe = "classification_atc_1";
$mode = 'DT';
}
if ($mode == "D2") {
$field_prefixe = "classification_atc_2";
$mode = 'DT';
}
if ($mode == "D3") {
$field_prefixe = "classification_atc_3";
$mode = 'DT';
}
if ($mode == "D4") {
$field_prefixe = "classification_atc_4";
$mode = 'DT';
}
}
//
if ($mode == 'LS') {
$section = substr($selected_value,2,2);
$oid = substr($selected_value,4);
}
if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $mode != 'C*' && $mode != 'H*' && $mode != 'T*' ) {
if ($mode != 'D2') {
$mode = 'DT';
}
$oid = substr($selected_value,2);
}
if ($mode == 'LI' || $mode == 'SL') {$oid = substr($selected_value,2);}
if ($mode == 'C*') {
$where_codes = sql_codes_list_a(substr($selected_value,2), 'code');
}
if ($mode == 'T*') {
$texte_like = substr($selected_value,2);
if (substr($texte_like,0,1) != "%" &&
substr($texte_like,-1,1) != "%") {
$texte_like = "%$texte_like%";
}
}
$subselect_select = '';
$field_id = $field_prefixe . "_id";
$field2_id = $field2_prefixe . "_id";
$field_section_id = $field_prefixe . "_section_id[" . $section . "]";
if ($mode == 'LI') {$subselect_select = " $field_id = ANY (array(SELECT to_id FROM eco.t_listes_contenu WHERE liste_id = $oid)::bigint[])";}
if ($mode == 'SL') {$subselect_select = " $field_id != ALL (array(SELECT to_id FROM eco.t_listes_contenu WHERE liste_id = $oid)::bigint[])";}
if ($mode == 'LS') {$subselect_select = " $field_section_id = $oid";}
if ($mode == 'DT') {$subselect_select = " $field_id = $oid";}
if ($mode == 'D2') {$subselect_select = " $field2_id = $oid";}
if ($mode == 'C*') {
if ($table_name != 'v_ref_article_fournisseur_1') {
$subselect_select = " $field_id = ANY (array(SELECT oid FROM eco.$table_name WHERE $where_codes AND oid != 0)::bigint[])";
}
else {
$subselect_select = " ref_article_fournisseur_oid = ANY (array(SELECT ref_article_fournisseur_oid FROM eco.$table_name WHERE ".sql_codes_list_a(substr($selected_value,2), 'ref_article_fournisseur_code')." )::bigint[]) AND fournisseur_id = ref_article_fournisseur_id";
}
}
if ($mode == 'H*') {$subselect_select = " $field_id = 0";}
if ($mode == 'T*')if ($table_name != 'v_ref_article_fournisseur_1') {
$subselect_select = " $field_id = ANY (array(SELECT oid FROM eco.$table_name WHERE texte ILIKE '$texte_like')::bigint[])";
}
else {
$subselect_select = " ref_article_fournisseur_oid = ANY (array(SELECT ref_article_fournisseur_oid FROM eco.$table_name WHERE ref_article_fournisseur_texte ILIKE '$texte_like')::bigint[]) AND fournisseur_id = ref_article_fournisseur_id";
}
if ($subselect_select != '') {$select = " AND $subselect_select ";}
}
return $select;
}
// ?>
]]>
= 0) {
if (SELECT.GROUPBY.substr(3,3) != "CLS") {
GROUPBY = SELECT.GROUPBY
GROUPBY_OID = 'DT' + ROW.OID1
if (GROUPBY == 'CPD') {
GROUPBY_OID = 'D2' + ROW.OID1
}
}
else {
GROUPBY = SELECT.GROUPBY.substr(0,3)
GROUPBY_OID = 'LS' + SELECT.GROUPBY.substr(6,2) + ROW.OID1
}
}
if (Number(ROW.OID2) >= 0) {
GROUPBY_2_COD = ROW.COD2
if (SELECT.GROUPBY_2.substr(3,3) != "CLS") {
GROUPBY_2 = SELECT.GROUPBY_2
GROUPBY_2_OID = 'DT' + ROW.OID2
if (GROUPBY_2 == 'CPD') {
GROUPBY_OID = 'D2' + ROW.OID2
}
}
else {
GROUPBY_2 = SELECT.GROUPBY_2.substr(0,3)
GROUPBY_2_OID = 'LS' + SELECT.GROUPBY_2.substr(6,2) + ROW.OID2
}
}
if (GROUPBY == 'ART' && GROUPBY_OID != '') {LINKVARIABLES['ARTICLE'] = GROUPBY_OID}
if (GROUPBY_2 == 'ART' && GROUPBY_2_OID != '') {LINKVARIABLES['ARTICLE'] = GROUPBY_2_OID}
if (GROUPBY == 'ARF' && GROUPBY_OID != '') {LINKVARIABLES['ARTICLE'] = GROUPBY_OID}
if (GROUPBY_2 == 'ARF' && GROUPBY_2_OID != '') {LINKVARIABLES['ARTICLE'] = GROUPBY_2_OID}
if (GROUPBY == 'TYA' && GROUPBY_OID != '') {LINKVARIABLES['TYPE_ARTICLE'] = GROUPBY_OID}
if (GROUPBY_2 == 'TYA' && GROUPBY_2_OID != '') {LINKVARIABLES['TYPE_ARTICLE'] = GROUPBY_2_OID}
if (GROUPBY == 'TAC' && GROUPBY_OID != '') {LINKVARIABLES['TAC'] = GROUPBY_OID}
if (GROUPBY_2 == 'TAC' && GROUPBY_2_OID != '') {LINKVARIABLES['TAC'] = GROUPBY_2_OID}
if (GROUPBY == 'FAA' && GROUPBY_OID != '') {LINKVARIABLES['FAMILLE_ARTICLE'] = GROUPBY_OID}
if (GROUPBY_2 == 'FAA' && GROUPBY_2_OID != '') {LINKVARIABLES['FAMILLE_ARTICLE'] = GROUPBY_2_OID}
if (GROUPBY == 'ATC' && GROUPBY_OID != '') {LINKVARIABLES['ATC'] = GROUPBY_OID}
if (GROUPBY_2 == 'ATC' && GROUPBY_2_OID != '') {LINKVARIABLES['ATC'] = GROUPBY_2_OID}
if (GROUPBY == 'SFA' && GROUPBY_OID != '') {LINKVARIABLES['SOUS_FAMILLE_ARTICLE'] = GROUPBY_OID}
if (GROUPBY_2 == 'SFA' && GROUPBY_2_OID != '') {LINKVARIABLES['SOUS_FAMILLE_ARTICLE'] = GROUPBY_2_OID}
if (GROUPBY == 'CAA' && GROUPBY_OID != '') {LINKVARIABLES['CATEGORIE_ARTICLE'] = GROUPBY_OID}
if (GROUPBY_2 == 'CAA' && GROUPBY_2_OID != '') {LINKVARIABLES['CATEGORIE_ARTICLE'] = GROUPBY_2_OID}
if (GROUPBY == 'SCA' && GROUPBY_OID != '') {LINKVARIABLES['SOUS_CATEGORIE_ARTICLE'] = GROUPBY_OID}
if (GROUPBY_2 == 'SCA' && GROUPBY_2_OID != '') {LINKVARIABLES['SOUS_CATEGORIE_ARTICLE'] = GROUPBY_2_OID}
if (GROUPBY == 'CPA' && GROUPBY_OID != '') {LINKVARIABLES['COMPTE_ARTICLE'] = GROUPBY_OID}
if (GROUPBY_2 == 'CPA' && GROUPBY_2_OID != '') {LINKVARIABLES['COMPTE_ARTICLE'] = GROUPBY_2_OID}
if (GROUPBY == 'USD' && GROUPBY_OID != '') {LINKVARIABLES['UNITE_STOCKAGE_ARTICLE'] = GROUPBY_OID}
if (GROUPBY_2 == 'USD' && GROUPBY_2_OID != '') {LINKVARIABLES['UNITE_STOCKAGE_ARTICLE'] = GROUPBY_2_OID}
if (GROUPBY == 'FOU' && GROUPBY_OID != '') {LINKVARIABLES['FOURNISSEUR'] = GROUPBY_OID}
if (GROUPBY_2 == 'FOU' && GROUPBY_2_OID != '') {LINKVARIABLES['FOURNISSEUR'] = GROUPBY_2_OID}
if (GROUPBY == 'TYF' && GROUPBY_OID != '') {LINKVARIABLES['TYPE_FOURNISSEUR'] = GROUPBY_OID}
if (GROUPBY_2 == 'TYF' && GROUPBY_2_OID != '') {LINKVARIABLES['TYPE_FOURNISSEUR'] = GROUPBY_2_OID}
if (GROUPBY == 'SIT' && GROUPBY_OID != '') {LINKVARIABLES['SITE'] = GROUPBY_OID}
if (GROUPBY_2 == 'SIT' && GROUPBY_2_OID != '') {LINKVARIABLES['SITE'] = GROUPBY_2_OID}
if (GROUPBY == 'GES' && GROUPBY_OID != '') {LINKVARIABLES['GESTIONNAIRE'] = GROUPBY_OID}
if (GROUPBY_2 == 'GES' && GROUPBY_2_OID != '') {LINKVARIABLES['GESTIONNAIRE'] = GROUPBY_2_OID}
if (GROUPBY == 'LIE' && GROUPBY_OID != '') {LINKVARIABLES['LIEU'] = GROUPBY_OID}
if (GROUPBY_2 == 'LIE' && GROUPBY_2_OID != '') {LINKVARIABLES['LIEU'] = GROUPBY_2_OID}
if (GROUPBY == 'UFO' && GROUPBY_OID != '') {LINKVARIABLES['UNITE_FONCTIONNELLE'] = GROUPBY_OID}
if (GROUPBY_2 == 'UFO' && GROUPBY_2_OID != '') {LINKVARIABLES['UNITE_FONCTIONNELLE'] = GROUPBY_2_OID}
if (GROUPBY == 'TYM' && GROUPBY_OID != '') {LINKVARIABLES['TYPE_MOUVEMENT'] = GROUPBY_OID}
if (GROUPBY_2 == 'TYM' && GROUPBY_2_OID != '') {LINKVARIABLES['TYPE_MOUVEMENT'] = GROUPBY_2_OID}
if (GROUPBY == 'CMD' && GROUPBY_OID != '') {LINKVARIABLES['NUMERO_COMMANDE'] = GROUPBY_COD}
if (GROUPBY_2 == 'CMD' && GROUPBY_2_OID != '') {LINKVARIABLES['NUMERO_COMMANDE'] = GROUPBY_2_COD}
if (GROUPBY == 'FAC' && GROUPBY_OID != '') {LINKVARIABLES['FACTURE'] = GROUPBY_COD}
if (GROUPBY_2 == 'FAC' && GROUPBY_2_OID != '') {LINKVARIABLES['FACTURE'] = GROUPBY_2_COD}
if (GROUPBY == 'LPP' && GROUPBY_OID != '') {LINKVARIABLES['LPP'] = GROUPBY_OID}
if (GROUPBY_2 == 'LPP' && GROUPBY_2_OID != '') {LINKVARIABLES['LPP'] = GROUPBY_2_OID}
if (GROUPBY == 'UCD' && GROUPBY_OID != '') {LINKVARIABLES['UCD'] = GROUPBY_OID}
if (GROUPBY_2 == 'UCD' && GROUPBY_2_OID != '') {LINKVARIABLES['UCD'] = GROUPBY_2_OID}
if (GROUPBY == 'RSS' && GROUPBY_OID != '') {LINKVARIABLES['RSS'] = GROUPBY_COD}
if (GROUPBY_2 == 'RSS' && GROUPBY_2_OID != '') {LINKVARIABLES['RSS'] = GROUPBY_2_COD}
if (GROUPBY == 'SEJ' && GROUPBY_OID != '') {LINKVARIABLES['SEJ'] = GROUPBY_COD}
if (GROUPBY_2 == 'SEJ' && GROUPBY_2_OID != '') {LINKVARIABLES['SEJ'] = GROUPBY_2_COD}
if (GROUPBY == 'MED' && GROUPBY_OID != '') {LINKVARIABLES['MEDECIN'] = GROUPBY_OID}
if (GROUPBY_2 == 'MED' && GROUPBY_2_OID != '') {LINKVARIABLES['MEDECIN'] = GROUPBY_2_OID}
if (GROUPBY == 'SPE' && GROUPBY_OID != '') {LINKVARIABLES['SPECIALITE'] = GROUPBY_OID}
if (GROUPBY_2 == 'SPE' && GROUPBY_2_OID != '') {LINKVARIABLES['SPECIALITE'] = GROUPBY_2_OID}
LINKVARIABLES['ALIAS_PERIODE'] = '-1';
var row_cod:String = ''
var row_cod2:String = ''
var annee_periode:String = SELECT.PERIODE.substr(0,4)
var mois_periode:String = SELECT.PERIODE.substr(5,2)
var annee_toperiode:String = SELECT.TOPERIODE.substr(0,4)
var mois_toperiode:String = SELECT.TOPERIODE.substr(5,2)
GROUPBY = SELECT.GROUPBY;
if (GROUPBY == 'ACMD') {
GROUPBY = 'ADEF';
} else if (GROUPBY == 'MCMD') {
GROUPBY = 'MDEF';
} else if (GROUPBY == 'JCMD') {
GROUPBY = 'JDEF';
} else if (GROUPBY == 'TRIMCMD') {
GROUPBY = 'TRIMDEF';
} else if (GROUPBY == 'AMCMD') {
GROUPBY = 'AMDEF';
} else if (GROUPBY == 'ATRIMCMD') {
GROUPBY = 'ATRIMDEF';
}
GROUPBY_2 = SELECT.GROUPBY_2;
GROUPBY_3 = SELECT.GROUPBY_3;
if ((GROUPBY == 'JDEF' && ROW.OID1 != '-9999999') ||
(GROUPBY_2 == 'JDEF' && ROW.OID2 != '-9999999') ||
(GROUPBY_3 == 'JDEF' && ROW.OID3 != '-9999999') ) {
row_cod = GROUPBY == 'JDEF' ? ROW.COD1 :
(GROUPBY_2 == 'JDEF' ? ROW.COD2 : ROW.COD3);
LINKVARIABLES['PERIODE'] = row_cod;
LINKVARIABLES['TOPERIODE'] = row_cod;
}
else if ((GROUPBY == 'AMDEF' && ROW.OID1 != '-9999999') ||
(GROUPBY_2 == 'AMDEF' && ROW.OID2 != '-9999999') ||
(GROUPBY_3 == 'AMDEF' && ROW.OID3 != '-9999999')) {
row_cod = GROUPBY == 'AMDEF' ? ROW.COD1 :
(GROUPBY_2 == 'AMDEF' ? ROW.COD2 : ROW.COD3);
LINKVARIABLES['PERIODE'] = row_cod;
LINKVARIABLES['TOPERIODE'] = row_cod;
}
else if ((GROUPBY == 'MDEF' && ROW.OID1 != '-9999999') ||
(GROUPBY_2 == 'MDEF' && ROW.OID2 != '-9999999') ||
(GROUPBY_3 == 'MDEF' && ROW.OID3 != '-9999999')) {
row_cod = GROUPBY == 'MDEF' ? ROW.COD1 :
(GROUPBY_2 == 'MDEF' ? ROW.COD2 : ROW.COD3);
if ((GROUPBY == 'ADEF' && ROW.OID1 != '-9999999') ||
(GROUPBY_2 == 'ADEF' && ROW.OID2 != '-9999999') ||
(GROUPBY_3 == 'ADEF' && ROW.OID3 != '-9999999')) {
row_cod2 = GROUPBY == 'ADEF' ? ROW.COD1 :
(GROUPBY_2 == 'ADEF' ? ROW.COD2 : ROW.COD3);
LINKVARIABLES['PERIODE'] = row_cod2 + row_cod
LINKVARIABLES['TOPERIODE'] = row_cod2 + row_cod
}
else if ((GROUPBY == 'ATRIMDEF' && ROW.OID1 != '-9999999') ||
(GROUPBY_2 == 'ATRIMDEF' && ROW.OID2 != '-9999999') ||
(GROUPBY_3 == 'ATRIMDEF' && ROW.OID3 != '-9999999')) {
row_cod2 = GROUPBY == 'ATRIMDEF' ? ROW.COD1 :
(GROUPBY_2 == 'ATRIMDEF' ? ROW.COD2 : ROW.COD3);
var annee:String = row_cod2.substr(0,4);
LINKVARIABLES['PERIODE'] = annee + row_cod;
LINKVARIABLES['TOPERIODE'] = annee + row_cod;
}
else if (parseInt(row_cod) <= parseInt(mois_toperiode)) {
if ((annee_toperiode == annee_periode && row_cod == mois_periode)) {
LINKVARIABLES['PERIODE'] = SELECT.PERIODE;
}
else {
LINKVARIABLES['PERIODE'] = annee_toperiode + row_cod;
}
LINKVARIABLES['TOPERIODE'] = annee_toperiode + row_cod;
}
else {
if (parseInt(annee_toperiode) == (parseInt(annee_periode) + 1) && row_cod == mois_periode) {
LINKVARIABLES['PERIODE'] = SELECT.PERIODE;
}
else {
LINKVARIABLES['PERIODE'] = (parseInt(annee_toperiode) - 1).toString() + row_cod;
}
LINKVARIABLES['TOPERIODE'] = (parseInt(annee_toperiode) - 1).toString() + row_cod;
}
}
else if((GROUPBY == 'ATRIMDEF' && ROW.OID1 != '-9999999') ||
(GROUPBY_2 == 'ATRIMDEF' && ROW.OID2 != '-9999999') ||
(GROUPBY_3 == 'ATRIMDEF' && ROW.OID3 != '-9999999')) {
row_cod = GROUPBY == 'ATRIMDEF' ? ROW.COD1 :
(GROUPBY_2 == 'ATRIMDEF' ? ROW.COD2 : ROW.COD3);
// Mois de début et fin du trimestre
var mois_debut:int = 1 + 3 * (parseInt(row_cod.substr(-1)) - 1);
var mois_fin:int = 3 * parseInt(row_cod.substr(-1));
var annee:String = row_cod.substr(0,4);
if (annee == annee_periode) {
if(mois_debut <= parseInt(mois_periode, 10)) {
LINKVARIABLES['PERIODE'] = SELECT.PERIODE;
}
else {
if (mois_debut < 10) {
annee += '0';
LINKVARIABLES['PERIODE'] = annee + mois_debut.toString();
}
}
if (mois_fin >= parseInt(mois_toperiode, 10)) {
LINKVARIABLES['TOPERIODE'] = SELECT.TOPERIODE;
}
else {
if (mois_fin < 10) {
annee += '0';
}
LINKVARIABLES['TOPERIODE'] = annee + mois_fin.toString();
}
}
}
else if ((GROUPBY == 'TRIMDEF' && ROW.OID1 != '-9999999') ||
(GROUPBY_2 == 'TRIMDEF' && ROW.OID2 != '-9999999') ||
(GROUPBY_3 == 'TRIMDEF' && ROW.OID3 != '-9999999')) {
/*
* L'accès au détail pour un regroupement par trimestre se fera systémtiquement sur les
* derniers trimestre de la période. Exemple :
* Période d'analyse de février 2010 à mars 2011. les résultats seront :
* Trimestre 1 : 4500 (janv 2011 à fév 2011 + fév 2010 à mars 2010)
* Trimestre 2 : 3400 (avril 2010 à juin 2010)
* Trimestre 3 : 3300 (juil 2010 à sept 2010)
* Trimestre 4 : 3450 (oct 2010 à déc 2010)
*
* L'accès au détail donnera :
* Trimestre 1 --> janv 2011 à fév 2011
* Trimestre 2 --> avril 2010 à juin 2010
* Trimestre 3 --> juil 2010 à sept 2010
* Trimestre 4 --> oct 2010 à déc 2010
*
* On constate que la période de février 2010 à mars 2010 n'est pas prise en compte pour l'accès
* au détail alors qu'elle l'est bien pour l'affichage des résultats.
* Cette différence de traitement s'explique par le fait qu'il est impossible de sélectionner
* plus d'une période dans les combobox de sélection de période de la vue des justificatifs.
*/
var annee:String = '';
var to_annee:String = '';
// Code du trimestre sélectionné (de 1 à 4)
row_cod = GROUPBY == 'TRIMDEF' ? ROW.OID1 :
(GROUPBY_2 == 'TRIMDEF' ? ROW.OID2 : ROW.OID3);
// Mois de début du trimestre
var mois_debut:int = 1 + 3 * (parseInt(row_cod, 10) - 1);
// Mois de fin du trimestre
var mois_fin:int = 3 * parseInt(row_cod, 10);
// Nombre d'années entre le début et la fin de la période d'analyse
var nb_annees = parseInt(annee_toperiode, 10) - parseInt(annee_periode, 10);
if ((GROUPBY == 'ADEF' && ROW.OID1 != '-9999999') ||
(GROUPBY_2 == 'ADEF' && ROW.OID2 != '-9999999') ||
(GROUPBY_3 == 'ADEF' && ROW.OID3 != '-9999999')) {
row_cod = GROUPBY == 'ADEF' ? ROW.COD1 :
(GROUPBY_2 == 'ADEF' ? ROW.COD2 : ROW.COD3);
if (row_cod == annee_periode && (mois_debut <= parseInt(mois_periode, 10) <= mois_fin)) {
LINKVARIABLES['PERIODE'] = SELECT.PERIODE;
LINKVARIABLES['TOPERIODE'] = SELECT.TOPERIODE;
}
else {
annee = row_cod;
to_annee = row_cod;
}
}
else {
if (mois_debut <= parseInt(mois_toperiode, 10)) {
if (nb_annees == 0 && mois_debut <= mois_periode) {
LINKVARIABLES['PERIODE'] = SELECT.PERIODE;
}
else {
annee = annee_toperiode;
}
}
else {
if (mois_debut <= parseInt(mois_periode, 10) && nb_annees == 1) {
LINKVARIABLES['PERIODE'] = SELECT.PERIODE;
}
else {
annee = (parseInt(annee_toperiode, 10) - 1).toString()
}
}
if (mois_debut <= parseInt(mois_toperiode, 10) <= mois_fin) {
LINKVARIABLES['TOPERIODE'] = SELECT.TOPERIODE;
}
else if (mois_fin < parseInt(mois_toperiode, 10)) {
to_annee = annee_toperiode;
}
else {
to_annee = (parseInt(annee_toperiode) - 1).toString();
}
}
if (mois_debut < 10) {
annee += '0';
}
LINKVARIABLES['PERIODE'] = annee + mois_debut.toString();
if (mois_fin < 10) {
to_annee += '0';
}
LINKVARIABLES['TOPERIODE'] = to_annee + mois_fin.toString();
}
else if ((GROUPBY == 'ADEF' && ROW.OID1 != '-9999999') ||
(GROUPBY_2 == 'ADEF' && ROW.OID2 != '-9999999') ||
(GROUPBY_3 == 'ADEF' && ROW.OID3 != '-9999999')) {
row_cod = GROUPBY == 'ADEF' ? ROW.COD1 :
(GROUPBY_2 == 'ADEF' ? ROW.COD2 : ROW.COD3);
if (row_cod == annee_periode) {
LINKVARIABLES['PERIODE'] = SELECT.PERIODE;
}
else {
LINKVARIABLES['PERIODE'] = row_cod + '01';
}
if (row_cod == annee_toperiode) {
LINKVARIABLES['TOPERIODE'] = SELECT.TOPERIODE;
}
else {
LINKVARIABLES['TOPERIODE'] = row_cod + '12';
}
}
else {
LINKVARIABLES['PERIODE'] = SELECT.PERIODE;
LINKVARIABLES['TOPERIODE'] = SELECT.TOPERIODE;
}
if(LINKVARIABLES['PERIODE'] != SELECT.PERIODE && LINKVARIABLES['TOPERIODE'] != SELECT.TOPERIODE) {
LINKVARIABLES['ALIAS_PERIODE'] = '-1'
}
LINKVARIABLES['DATACOL'] = '*DFT'
LINKVARIABLES['DATACOL001'] = "-1"
LINKVARIABLES['DATACOL002'] = "-1"
LINKVARIABLES['DATACOL003'] = "-1"
LINKVARIABLES['DATACOL004'] = "-1"
LINKVARIABLES['DATACOL005'] = "-1"
LINKVARIABLES['DATACOL006'] = "-1"
LINKVARIABLES['DATA01'] = '-1'
if (SELECT.DATACOL.substr(0,9) == 'CTI_VIEW_') {
LINKVARIABLES['DATACOL'] = 'CTI_LIST_' + SELECT.DATACOL.substr(9,20)
}
if (VIEW.VIEWTYPE == 'EVOL') {
LINKVARIABLES['DATACOL001'] = SELECT.DATA
}
if (VIEW.VIEWTYPE == 'CROSS') {
LINKVARIABLES['DATACOL001'] = SELECT.DATA
}
if (VIEW.VIEWTYPE == 'COMP') {
if (SELECT.DATACOL.substr(0,9) == 'CTI_VIEW_') {
LINKVARIABLES['DATACOL'] = 'CTI_LIST_' + SELECT.DATACOL.substr(9,20)
}
if (COLUMN.NAME.toString().substr(0,4) == 'I001') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE001}
if (COLUMN.NAME.toString().substr(0,4) == 'I002') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE002}
if (COLUMN.NAME.toString().substr(0,4) == 'I003') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE003}
if (COLUMN.NAME.toString().substr(0,4) == 'I004') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE004}
if (COLUMN.NAME.toString().substr(0,4) == 'I005') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE005}
if (COLUMN.NAME.toString().substr(0,4) == 'I006') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE006}
if (COLUMN.NAME.toString().substr(0,4) == 'I007') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE007}
}
if (VIEW.VIEWTYPE == 'ANZ' || VIEW.VIEWTYPE == '') {
if (COLUMN.NAME == 'NB0001') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE001;}
if (COLUMN.NAME == 'NB0002') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE002;}
if (COLUMN.NAME == 'NB0003') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE003;}
if (COLUMN.NAME == 'NB0004') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE004;}
if (COLUMN.NAME == 'NB0005') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE005;}
if (COLUMN.NAME == 'NB0006') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE006;}
if (COLUMN.NAME == 'NB0007') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE007;}
if (COLUMN.NAME == 'NB0008') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE008;}
if (COLUMN.NAME == 'NB0009') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE009;}
if (COLUMN.NAME == 'NB0010') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE010;}
if (COLUMN.NAME == 'NB0011') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE011;}
if (COLUMN.NAME == 'NB0012') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE012;}
if (COLUMN.NAME == 'NB0013') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE013;}
if (COLUMN.NAME == 'NB0014') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE014;}
if (COLUMN.NAME == 'NB0015') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE015;}
if (COLUMN.NAME == 'NB0016') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE016;}
if (COLUMN.NAME == 'NB0017') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE017;}
if (COLUMN.NAME == 'NB0018') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE018;}
if (COLUMN.NAME == 'NB0019') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE019;}
if (COLUMN.NAME == 'NB0020') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE020;}
if (COLUMN.NAME == 'NB0021') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE021;}
if (COLUMN.NAME == 'NB0022') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE022;}
if (COLUMN.NAME == 'NB0023') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE023;}
if (COLUMN.NAME == 'NB0024') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE024;}
if (COLUMN.NAME == 'NB0025') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE025;}
if (COLUMN.NAME == 'NB0026') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE026;}
if (COLUMN.NAME == 'NB0027') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE027;}
if (COLUMN.NAME == 'NB0028') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE028;}
if (COLUMN.NAME == 'NB0029') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE029;}
if (COLUMN.NAME == 'NB0030') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE030;}
if (COLUMN.NAME == 'NB0031') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE031;}
if (COLUMN.NAME == 'NB0032') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE032;}
if (COLUMN.NAME == 'NB0033') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE033;}
if (COLUMN.NAME == 'NB0034') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE034;}
if (COLUMN.NAME == 'NB0035') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE035;}
if (COLUMN.NAME == 'NB0036') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE036;}
if (COLUMN.NAME == 'NB0037') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE037;}
if (COLUMN.NAME == 'NB0038') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE038;}
if (COLUMN.NAME == 'NB0039') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE039;}
if (COLUMN.NAME == 'NB0040') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE040;}
if (COLUMN.NAME == 'NB0041') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE041;}
if (COLUMN.NAME == 'NB0042') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE042;}
if (COLUMN.NAME == 'NB0043') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE043;}
if (COLUMN.NAME == 'NB0044') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE044;}
if (COLUMN.NAME == 'NB0045') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE045;}
if (COLUMN.NAME == 'NB0046') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE046;}
if (COLUMN.NAME == 'NB0047') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE047;}
if (COLUMN.NAME == 'NB0048') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE048;}
if (COLUMN.NAME == 'NB0049') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE049;}
if (COLUMN.NAME == 'NB0050') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE050;}
if (COLUMN.NAME == 'NB0051') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE051;}
if (COLUMN.NAME == 'NB0052') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE052;}
if (COLUMN.NAME == 'NB0053') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE053;}
if (COLUMN.NAME == 'NB0054') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE054;}
if (COLUMN.NAME == 'NB0055') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE055;}
if (COLUMN.NAME == 'NB0056') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE056;}
if (COLUMN.NAME == 'NB0057') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE057;}
if (COLUMN.NAME == 'NB0058') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE058;}
if (COLUMN.NAME == 'NB0059') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE059;}
if (COLUMN.NAME == 'NB0060') {LINKVARIABLES['DATACOL'] = '*';LINKVARIABLES['DATACOL001'] = VIEW.DG_CODE060;}
}
return 'OK';
]]>
>