/**
  * On obtient le tableau des emballage en fonction de son groupe
  * @param int $paramIdEmballageGroupe
  * @return array
  */
 public static function getArrayAnnexeEmballage($paramIdEmballageGroupe)
 {
     $req = 'SELECT DISTINCT ' . AnnexeEmballageModel::KEYNAME . ',' . AnnexeEmballageModel::FIELDNAME_LARGEUR_ANNEXE_EMBALLAGE . ',' . AnnexeEmballageModel::FIELDNAME_HAUTEUR_ANNEXE_EMBALLAGE . ',' . AnnexeEmballageModel::FIELDNAME_NOMBRE_COUCHE_ANNEXE_EMBALLAGE . ',' . AnnexeEmballageModel::FIELDNAME_POIDS_ANNEXE_EMBALLAGE . ',' . AnnexeEmballageModel::TABLENAME . '.' . AnnexeEmballageModel::FIELDNAME_ID_ANNEXE_EMBALLAGE_GROUPE . ',' . AnnexeEmballageModel::FIELDNAME_QUANTITE_PAR_COUCHE_ANNEXE_EMBALLAGE . ' FROM ' . AnnexeEmballageGroupeModel::TABLENAME . ',' . AnnexeEmballageModel::TABLENAME . ' WHERE ( 0 ';
     $req .= AnnexeEmballageGroupeModel::AddIdAnnexeEmballageGroupe($paramIdEmballageGroupe);
     $req .= ') AND ' . AnnexeEmballageGroupeModel::TABLENAME . '.' . AnnexeEmballageGroupeModel::KEYNAME . '=' . AnnexeEmballageModel::TABLENAME . '.' . AnnexeEmballageModel::FIELDNAME_ID_ANNEXE_EMBALLAGE_GROUPE;
     $array = DatabaseOperation::convertSqlStatementWithKeyAsFirstFieldToArray($req);
     return $array;
 }
 /**
  * Tableau de données, convertie le nom des champs des données aux noms des champs virtuel qui leur corresponds
  * @return int
  */
 function getArrayClassificationRaccourcisAssociation()
 {
     $arrayTmp = DatabaseOperation::convertSqlStatementWithKeyAsFirstFieldToArray('SELECT ' . self::KEYNAME . ',' . self::FIELDNAME_ID_CLASSIFICATION_RACCOURCIS . ' FROM ' . self::TABLENAME . ' WHERE ' . self::KEYNAME . '=' . $this->getKeyValue());
     if ($arrayTmp) {
         foreach ($arrayTmp as $key => $rows) {
             $array[$key] = array(self::VIRTUAL_FIELDNAME_NOM_CLASSIFICATION_RACCOURCIS => $rows[self::FIELDNAME_ID_CLASSIFICATION_RACCOURCIS]);
         }
     } else {
         $array = 0;
     }
     return $array;
 }
 /**
  * Retour la liste des IdAnnexeListeAllergeneDico
  * @return array
  */
 private static function getArrayIdAnnexeListeAllergeneDico()
 {
     $arrayTmp = DatabaseOperation::convertSqlStatementWithKeyAsFirstFieldToArray("SELECT " . self::KEYNAME . ',' . self::FIELDNAME_NOM_ANNEXE_LISTE_ALLERGENE_DICO . " FROM " . self::TABLENAME . " ORDER BY " . self::FIELDNAME_NOM_ANNEXE_LISTE_ALLERGENE_DICO);
     if ($arrayTmp) {
         foreach ($arrayTmp as $key => $rows) {
             $array[$key] = array(self::VIRTUAL_LISTE_ALLERGENE => $rows[self::FIELDNAME_NOM_ANNEXE_LISTE_ALLERGENE_DICO]);
         }
     } else {
         $array = 0;
     }
     return $array;
 }
 /**
  * Tableau de données, convertie le nom des champs des données aux noms des champs virtuel qui leur corresponds
  * @return int
  */
 function getArrayClassificationElements()
 {
     $arrayTmp = DatabaseOperation::convertSqlStatementWithKeyAsFirstFieldToArray('SELECT ' . self::KEYNAME . ',' . self::FIELDNAME_ID_CLASSIFICATION_ARBORESCENCE_ARTICLE_CATEGORIE . ' FROM ' . self::TABLENAME . ' WHERE ' . self::KEYNAME . '=' . $this->getKeyValue());
     if ($arrayTmp) {
         foreach ($arrayTmp as $key => $rows) {
             $array[$key] = array(self::VIRTUAL_FIELDNAME_NOM_CLASSIFICATION_ELEMENT => $rows[self::FIELDNAME_ID_CLASSIFICATION_ARBORESCENCE_ARTICLE_CATEGORIE]);
         }
     } else {
         $array = 0;
     }
     return $array;
 }
 /**
  * Tableau de données, convertie le nom des champs des données aux noms des champs virtuel qui leur corresponds
  * @return int
  */
 function getArrayClassificationActiviteSousFamilleArcadia()
 {
     $arrayTmp = DatabaseOperation::convertSqlStatementWithKeyAsFirstFieldToArray('SELECT ' . self::KEYNAME . ',' . self::FIELDNAME_ID_ARCADIA_SOUS_FAMILLE . ' FROM ' . self::TABLENAME . ' WHERE ' . self::KEYNAME . '=' . $this->getKeyValue());
     if ($arrayTmp) {
         foreach ($arrayTmp as $key => $rows) {
             $array[$key] = array(self::VIRTUAL_FIELDNAME_NOM_CLASSIFICATION_SOUS_FAMILLE => $rows[self::FIELDNAME_ID_ARCADIA_SOUS_FAMILLE]);
         }
     } else {
         $array = 0;
     }
     return $array;
 }
 /**
  * Retourne un tableau contenant la liste des enregsitrements que les 
  * tables ont en relation.
  * Ces tables doivent être en relation N:N et configuré dans la base
  * de données des informations des schémas:
  *   - Voir INFORMATION_SCHEMA > KEY_COLUMN_USAGE dans MySQL
  * 
  * La valeur de retour est un tableau associatif sous la forme
  * self::convertSqlResultWithKeyAsFirstFieldToArray()
  * 
  * En cas d'ambiguïté de nom de champs à sélectionner, préciser le nom
  * de la table.
  * Par exemple, si les table RN et RN ont toutes les deux un champs nommé
  * 'nom', alors préciser 'R1.nom' ou 'R2.nom' dans $arrayFieldsNameToDisplay
  *
  * @param string $primaryTableNameRN Nom de la table primaire de relation N
  * @param array $secondaryTablesNamesAndidKeyValueRN Noms des tables secondaires de relation N et valeur des clefs étrangères
  * @param string $arrayFieldsNameToDisplay Liste des champs à sélectionner.
  * @param array $arrayFieldsNameOrder Liste des champs à classer.
  * @return array de type self::convertSqlResultWithKeyAsFirstFieldToArray()
  */
 public static function getArrayFieldsNameFromForeignKeyRelationNtoN($primaryTableNameRN, $secondaryTablesNamesAndidKeyValueRN, $arrayFieldsNameToDisplay, $arrayFieldsNameOrder = NULL, $keyValue = NULL, $conditionSql = NULL)
 {
     /**
      * Nom de la clef de la table primaire N.
      */
     $tableDescriptionRN = new DatabaseDescriptionTable($primaryTableNameRN);
     $keyNameRN = $tableDescriptionRN->getKeyName();
     /**
      * Construction de la requête SQL
      */
     $paramSelectClause = $primaryTableNameRN . '.' . $keyNameRN . ',' . $arrayFieldsNameToDisplay;
     $paramTableClause = $primaryTableNameRN . DatabaseOperation::tableClauseRelationship($secondaryTablesNamesAndidKeyValueRN, $keyValue);
     $paramWhereClauseRelationship = ' 1 ' . DatabaseOperation::whereClauseRelationshipNtoN($primaryTableNameRN, $secondaryTablesNamesAndidKeyValueRN, $keyValue);
     $paramWhereClauseRelationship .= DatabaseOperation::whereClauseDistinct($primaryTableNameRN, $keyValue);
     $paramWhereClauseRelationship .= ' ' . $conditionSql;
     if ($arrayFieldsNameOrder) {
         $paramOrderClause = implode(',', $arrayFieldsNameOrder);
     }
     return DatabaseOperation::convertSqlStatementWithKeyAsFirstFieldToArray(self::doSqlSelect($paramSelectClause, $paramTableClause, $paramWhereClauseRelationship, $paramOrderClause));
 }
 /**
  * Tableau de données, convertie le nom des champs des données aux noms des champs virtuel qui leur corresponds
  * @return int
  */
 function getArrayClassificationGammeFamilleBudgetArcadia()
 {
     $arrayTmp = DatabaseOperation::convertSqlStatementWithKeyAsFirstFieldToArray('SELECT ' . self::KEYNAME . ',' . self::FIELDNAME_ID_ARCADIA_GAMME_FAMILLE_BUDGET . ' FROM ' . self::TABLENAME . ' WHERE ' . self::KEYNAME . '=' . $this->getKeyValue());
     if ($arrayTmp) {
         foreach ($arrayTmp as $key => $rows) {
             $array[$key] = array(self::VIRTUAL_FIELDNAME_NOM_ARCADIA_GAMME_FAMILLE_BUDGET_MARQUE => $rows[self::FIELDNAME_ID_ARCADIA_GAMME_FAMILLE_BUDGET]);
         }
     } else {
         $array = 0;
     }
     return $array;
 }
 function listEmballage()
 {
     //Dans le cas d'emballage UVC, on peut avoir de l'emballage primaire
     if ($this->getParam1() == 2) {
         $op = '<=';
     } else {
         $op = '=';
     }
     //Type d'emballage
     $common_select = 'SELECT DISTINCT ' . AnnexeEmballageModel::TABLENAME . '.' . AnnexeEmballageModel::KEYNAME . ', CONCAT_WS(\'\', ' . FteFournisseurModel::FIELDNAME_NOM_FTE_FOURNISSEUR . ', \' : \',' . AnnexeEmballageModel::FIELDNAME_REFERENCE_FOURNISSEUR_ANNEXE_EMBALLAGE . ',\' (\', ' . AnnexeEmballageModel::FIELDNAME_LONGUEUR_ANNEXE_EMBALLAGE . ', \'x\', ' . AnnexeEmballageModel::FIELDNAME_LARGEUR_ANNEXE_EMBALLAGE . ', \'x\', ' . AnnexeEmballageModel::FIELDNAME_HAUTEUR_ANNEXE_EMBALLAGE . ', \')\' ) AS INTITULE ';
     $common_from = ' FROM ' . AnnexeEmballageModel::TABLENAME . ',' . FteFournisseurModel::TABLENAME . ',' . AnnexeEmballageGroupeModel::TABLENAME;
     $common_where = ' WHERE ' . AnnexeEmballageModel::TABLENAME . '.' . AnnexeEmballageModel::FIELDNAME_ID_FTE_FOURNISSEUR . '=' . FteFournisseurModel::TABLENAME . '.' . FteFournisseurModel::KEYNAME . ' AND ' . AnnexeEmballageGroupeModel::TABLENAME . '.' . AnnexeEmballageGroupeModel::KEYNAME . '=' . AnnexeEmballageModel::TABLENAME . '.' . AnnexeEmballageModel::FIELDNAME_ID_ANNEXE_EMBALLAGE_GROUPE . ' AND ' . AnnexeEmballageGroupeModel::TABLENAME . '.' . AnnexeEmballageGroupeModel::FIELDNAME_ID_ANNEXE_EMBALLAGE_GROUPE_CONFIGURATION . $op . $this->getParam1() . ' AND ' . AnnexeEmballageModel::TABLENAME . '.' . AnnexeEmballageModel::FIELDNAME_ACTIF_ANNEXE_EMBALLAGE . "=1";
     $common_order = ' ORDER BY ' . FteFournisseurModel::FIELDNAME_NOM_FTE_FOURNISSEUR . ',' . AnnexeEmballageModel::FIELDNAME_REFERENCE_FOURNISSEUR_ANNEXE_EMBALLAGE;
     $req_liste_emballage = $common_select . $common_from . $common_where . $common_order;
     $arrayTmp = DatabaseOperation::convertSqlStatementWithKeyAsFirstFieldToArray($req_liste_emballage);
     /**
      * Mise en forme du tableau sous la forme suivant
      *  array(  
      *          array("id" => "1","label" => "JAVA", "value" => "JAVA"),
      *          array("id" => "2","label" => "DATA IMAGE PROCESSING", "value" => "DATA IMAGE PROCESSING"),
      *          etc...,
      *      );
      */
     if ($arrayTmp) {
         foreach ($arrayTmp as $key => $rows) {
             $arrayListeEmballage[] = array(self::ID => $key, self::LABEL => $rows["INTITULE"], self::VALUE => $rows["INTITULE"]);
         }
     } else {
         $arrayListeEmballage = 0;
     }
     $result = array();
     foreach ($arrayListeEmballage as $rowsListeEmballage) {
         $testLabel = $rowsListeEmballage[self::LABEL];
         /**
          * Vérification si la valeur saisi par l'utilisateur
          * trouve une correspondance avec les données de BDD
          */
         if (strpos(strtoupper($testLabel), strtoupper($this->getParamTerm())) !== false) {
             array_push($result, $rowsListeEmballage);
         }
     }
     // Envoi du retour (on renvoi le tableau $retour encodé en JSON)
     $this->setReturnJSON(json_encode($result));
 }
 /**
  * Tableau de données, convertie le nom des champs des données aux noms des champs virtuel qui leur corresponds
  * @param int $paramIdFtaComposant
  * @return int
  */
 public static function getArrayFtaConditonnement($paramIdFtaComposant)
 {
     $arrayTmp = DatabaseOperation::convertSqlStatementWithKeyAsFirstFieldToArray('SELECT ' . self::KEYNAME . ',' . self::FIELDNAME_NOM_FTA_COMPOSITION . ',' . self::FIELDNAME_INGREDIENT_FTA_COMPOSITION . ',' . self::FIELDNAME_ID_GEO . ',' . self::FIELDNAME_POIDS_FTA_COMPOSITION . ',' . self::FIELDNAME_QUANTITE_FTA_COMPOSITION . ' FROM ' . self::TABLENAME . ' WHERE ' . self::KEYNAME . '=' . $paramIdFtaComposant);
     if ($arrayTmp) {
         foreach ($arrayTmp as $key => $rows) {
             $array[$key] = array(self::FIELDNAME_VIRTUAL_NOM_DU_COMPOSANT => $rows[self::FIELDNAME_NOM_FTA_COMPOSITION], self::FIELDNAME_VIRTUAL_INGREDIENT_FTA_COMPOSITION => $rows[self::FIELDNAME_INGREDIENT_FTA_COMPOSITION], self::FIELDNAME_VIRTUAL_SITE_DE_PRODUCTION => $rows[self::FIELDNAME_ID_GEO], self::FIELDNAME_VIRTUAL_POIDS_FTA_COMPOSITION => $rows[self::FIELDNAME_POIDS_FTA_COMPOSITION], self::FIELDNAME_VIRTUAL_QUANTITE_FTA_COMPOSITION => $rows[self::FIELDNAME_QUANTITE_FTA_COMPOSITION]);
         }
     } else {
         $array = 0;
     }
     return $array;
 }