Beispiel #1
0
 function getHtmlColisControle()
 {
     $FtaComposant = FtaComposantModel::getIdFtaComposition($this->getModel()->getKeyValue());
     if ($FtaComposant) {
         /**
          * Calcul type emballage UVC
          */
         $returnColis = $this->getModel()->buildArrayEmballageTypeDuColis();
         $colis_pds_net = $returnColis[FtaConditionnementModel::COLIS_EMBALLAGE_NET];
         /**
          * Calcul type emballage Colis
          */
         $returnUVC = $this->getModel()->buildArrayEmballageTypeUVC();
         $uvc_net = $returnUVC[FtaConditionnementModel::UVC_EMBALLAGE_NET];
         $tabEmballagesColis = $this->getModel()->poidsDesEmballagesColis();
         $pcb = $tabEmballagesColis[FtaModel::FIELDNAME_NOMBRE_UVC_PAR_CARTON];
         $check1 = strval($uvc_net * $pcb / "1000");
         $check2 = strval($colis_pds_net);
         if ($check1 != $check2) {
             $html_warning = "ATTENTION, poids net du Colis est différent de la multiplication défini dans les chapitres PCB et Identité pour la gestion de l'unité de facturation<img src=../lib/images/exclamation.png width=15 height=15 border=0/><br><br>";
             $bgcolor = "#FFAA55";
         } else {
             $bgcolor = "#AFFF5A";
             $html_warning = "";
         }
         $bloc .= "<tr class=contenu><td bgcolor={$bgcolor} align=\"center\" valign=\"middle\">";
         $bloc .= "Contrôle du Poids net du Colis (en Kg): ";
         $bloc .= "</td><td bgcolor={$bgcolor} align=\"center\" valign=\"middle\">" . "<h4><br>{$check2}</h4><br>{$html_warning}</td></tr>";
     } else {
         $bloc = "";
     }
     return $bloc;
 }
 /**
  * Synchronise les données verrouillé
  * @param int $paramIdFtaPrimaire
  * @param int $paramIdFtaSecondaire
  * @param int $paramFtaDossierPrimaire
  * @param int $paramState
  */
 public static function dataSynchronizeFtaPrimarySecondary($paramIdFtaPrimaire, $paramIdFtaSecondaire, $paramFtaDossierPrimaire, $paramState = NULL)
 {
     /**
      * Tableau Affichant la liste des champ à traité ordonné par nom de table
      * Ainsi pour chaque table on insert les nouvelles données
      */
     if ($paramState == NULL) {
         $arrayFtaDossierChampsVerrouiller = self::getArrayFtaLockedByPrimaryFolder($paramFtaDossierPrimaire);
     } else {
         $arrayFtaDossierChampsVerrouiller = self::getArrayFtaLockChangeStateByPrimaryFolder($paramFtaDossierPrimaire, $paramState);
     }
     if ($arrayFtaDossierChampsVerrouiller) {
         foreach ($arrayFtaDossierChampsVerrouiller as $rowsFtaDossierChampsVerrouiller) {
             $tableName = $rowsFtaDossierChampsVerrouiller[self::FIELDNAME_TABLE_NAME];
             $columnName = $rowsFtaDossierChampsVerrouiller[self::FIELDNAME_FIELD_NAME];
             $fieldLock = $rowsFtaDossierChampsVerrouiller[self::FIELDNAME_FIELD_LOCK];
             /**
              * On récupère la donnée de la fta primaire
              */
             switch ($tableName) {
                 case FtaModel::TABLENAME:
                     $arrayValue = DatabaseOperation::convertSqlStatementWithoutKeyToArray("SELECT " . $columnName . " FROM " . $tableName . " WHERE " . FtaModel::KEYNAME . "=" . $paramIdFtaPrimaire);
                     break;
                 case FtaComposantModel::TABLENAME:
                     $arrayValue = DatabaseOperation::convertSqlStatementWithoutKeyToArray("SELECT " . FtaComposantModel::KEYNAME . "," . $columnName . " FROM " . $tableName . " WHERE " . FtaModel::KEYNAME . "=" . $paramIdFtaPrimaire);
                     $nbPrimary = count($arrayValue);
                     $arrayIdFtaComposantSecondaire = DatabaseOperation::convertSqlStatementWithoutKeyToArray("SELECT " . FtaComposantModel::KEYNAME . "," . $columnName . " FROM " . $tableName . " WHERE " . FtaModel::KEYNAME . "=" . $paramIdFtaSecondaire);
                     $nbSecondary = count($arrayIdFtaComposantSecondaire);
                     if ($nbPrimary > $nbSecondary) {
                         /**
                          * Si des composants ont été ajouté dans la Fta primaire
                          */
                         $addCompo = $nbSecondary;
                         for ($addCompo; $addCompo < $nbPrimary; $addCompo++) {
                             $idFtaComposantAdd = $arrayValue[$addCompo][FtaComposantModel::KEYNAME];
                             /**
                              * Création d'un composant dans les secondaires car ajouter dans le primaires.
                              */
                             $newIdFtaComposant = FtaComposantModel::duplicationIdFtaComposant($idFtaComposantAdd);
                             /**
                              * On remplace l'id du primaire par le nouveau
                              */
                             DatabaseOperation::execute("UPDATE " . $tableName . " SET " . FtaModel::KEYNAME . "=\"" . $paramIdFtaSecondaire . "\" WHERE " . FtaComposantModel::KEYNAME . "=" . $newIdFtaComposant);
                         }
                     } elseif ($nbPrimary < $nbSecondary) {
                         $titre = UserInterfaceMessage::FR_WARNING_ARTICLE_PRIMAIRE_TITLE;
                         $message = UserInterfaceMessage::FR_WARNING_ARTICLE_PRIMAIRE_CHECK2;
                         Lib::showMessage($titre, $message, $redirection);
                     }
                     /**
                      * Gestionnaire des sous table Ftacomposant
                      */
                     $i = "0";
                     break;
                 default:
                     $arrayValue = DatabaseOperation::convertSqlStatementWithoutKeyToArray("SELECT " . $columnName . " FROM " . $tableName . " WHERE " . FtaModel::KEYNAME . "=" . $paramIdFtaPrimaire);
                     break;
             }
             if ($columnName != FtaComposantModel::KEYNAME) {
                 foreach ($arrayValue as $rowsValue) {
                     $columnValue = $rowsValue[$columnName];
                     /**
                      * On synchronise la donnée de la fta primaire avec la secondaire
                      */
                     if ($fieldLock) {
                         switch ($tableName) {
                             case FtaModel::TABLENAME:
                                 DatabaseOperation::execute("UPDATE " . $tableName . " SET " . $columnName . "=\"" . $columnValue . "\" WHERE " . FtaModel::KEYNAME . "=" . $paramIdFtaSecondaire);
                                 break;
                             case FtaComposantModel::TABLENAME:
                                 /**
                                  * Gestionnaire des sous table Ftacomposant
                                  */
                                 $arrayIdFtaComposantSecondaire = DatabaseOperation::convertSqlStatementWithoutKeyToArray("SELECT " . FtaComposantModel::KEYNAME . "," . $columnName . " FROM " . $tableName . " WHERE " . FtaModel::KEYNAME . "=" . $paramIdFtaSecondaire);
                                 $idFtaComposant = $arrayIdFtaComposantSecondaire[$i][FtaComposantModel::KEYNAME];
                                 DatabaseOperation::execute("UPDATE " . $tableName . " SET " . $columnName . "=\"" . $columnValue . "\" WHERE " . FtaModel::KEYNAME . "=" . $paramIdFtaSecondaire . " AND " . FtaComposantModel::KEYNAME . "=" . $idFtaComposant);
                                 $i++;
                                 break;
                             default:
                                 DatabaseOperation::execute("UPDATE " . $tableName . " SET " . $columnName . "=\"" . $columnValue . "\" WHERE " . FtaModel::KEYNAME . "=" . $paramIdFtaSecondaire);
                                 break;
                         }
                     }
                 }
             }
         }
     }
 }
}
if ($id_fta_composant) {
    $creation = 0;
    $ftaComposantModel = new FtaComposantModel($id_fta_composant);
    $ftaComposantModel->setDataFtaComposantTableToCompare();
    $ftaComposantView = new FtaComposantView($ftaComposantModel);
    $ftaComposantView->setIsEditable($isEditable);
    $codePSFValue = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_CODE_PRODUIT_AGROLOGIC_FTA_NOMENCLATURE)->getFieldValue();
} else {
    $creation = 1;
    $id_fta_composant = FtaComposantModel::createNewRecordset(array(FtaComposantModel::FIELDNAME_ID_FTA => $id_fta));
    /**
     * L'ajout d'un composant doit être notifie puisqu'il s'agit d'un champ verrouilé
     */
    FtaVerrouillageChampsModel::doUpdateLockField(FtaComposantModel::TABLENAME, $id_fta_composant, FtaComposantModel::KEYNAME);
    $ftaComposantModel = new FtaComposantModel($id_fta_composant);
    $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_QUANTITE_FTA_COMPOSITION_UVC)->setFieldValue(FtaComposantModel::DEFAULT_VALUE_QTE_UVC);
    $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_IS_NOMENCLATURE_FTA_COMPOSANT)->setFieldValue("1");
    $ftaComposantModel->saveToDatabase();
    $ftaComposantModel->setDataFtaComposantTableToCompare();
    $ftaComposantView = new FtaComposantView($ftaComposantModel);
    $ftaComposantView->setIsEditable($isEditable);
}
//Chargement des données de la FTA
//$ftaModel = new FtaModel($id_fta);
$bloc = "";
//Bloc de saisie
//Désignation
$bloc .= "<tr class=titre_principal><td>" . "Informations sur les produits du composant" . "</td></tr>" . "<tr><td>" . "<{$html_table}>";
// Prefixe code PSF
$bloc .= $ftaComposantView->getHtmlDataField(FtaComposantModel::FIELDNAME_ID_ANNEXE_AGRO_ART_CODIFICATION);
    $code_produit_agrologic_fta_nomenclature = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_CODE_PRODUIT_AGROLOGIC_FTA_NOMENCLATURE)->getFieldValue();
    $id_prefixe_code_produit_agrologic_fta_nomenclature = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_ID_ANNEXE_AGRO_ART_CODIFICATION)->getFieldValue();
    if ($id_prefixe_code_produit_agrologic_fta_nomenclature) {
        $annexexAgrologicModel = new AnnexeAgrologicArticleCodificationModel($id_prefixe_code_produit_agrologic_fta_nomenclature);
        $prefixe_code_produit_agrologic_fta_nomenclature = $annexexAgrologicModel->getDataField(AnnexeAgrologicArticleCodificationModel::FIELDNAME_PREFIXE_ANNEXE_AGRO_ART_COD)->getFieldValue();
    }
} else {
    $checkCreation = 0;
    if (!$checkCreation) {
        $creation = 1;
        $id_fta_composant = FtaComposantModel::createNewRecordset(array(FtaComposantModel::FIELDNAME_ID_FTA => $id_fta));
        /**
         * L'ajout d'une composition doit être notifié puisqu'il s'agit d'un champ verrouilé
         */
        FtaVerrouillageChampsModel::doUpdateLockField(FtaComposantModel::TABLENAME, $id_fta_composant, FtaComposantModel::KEYNAME);
        $ftaComposantModel = new FtaComposantModel($id_fta_composant);
        $ftaModel = new FtaModel($id_fta);
        $DureeDeVieTechnique = $ftaModel->getDataField(FtaModel::FIELDNAME_DUREE_DE_VIE_TECHNIQUE_PRODUCTION)->getFieldValue();
        $PCB = $ftaModel->getDataField(FtaModel::FIELDNAME_NOMBRE_UVC_PAR_CARTON)->getFieldValue();
        $poidsUVFValueKG = $ftaModel->getDataField(FtaModel::FIELDNAME_POIDS_ELEMENTAIRE)->getFieldValue();
        $poidsUVFValueG = $poidsUVFValueKG * "1000";
        $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_IS_COMPOSITION_FTA_COMPOSANT)->setFieldValue("1");
        $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_IS_NOMENCLATURE_FTA_COMPOSANT)->setFieldValue("0");
        $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_POIDS_FTA_COMPOSITION)->setFieldValue($poidsUVFValueG);
        $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_DUREE_VIE_TECHNIQUE_FTA_COMPOSITION)->setFieldValue($DureeDeVieTechnique);
        $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_QUANTITE_FTA_COMPOSITION)->setFieldValue($PCB);
        $ftaComposantModel->saveToDatabase();
        $ftaComposantView = new FtaComposantView($ftaComposantModel);
        $ftaComposantView->setIsEditable($editable);
        $ftaComposantView2 = new FtaComposantView($ftaComposantModel);
        $_SESSION['checkCreation'] = $creation;
 /**
  * Affiche l'historique de la Fta
  * @param int $paramIdFtaDossier
  * @param int $paramIdFtaWorkflow
  * @return string
  */
 public static function getHtmlHistoriqueFta($paramIdFtaDossier, $paramIdFtaWorkflow)
 {
     /**
      * Historisation des changement d'état initialisé en modification
      */
     $arrayHistoValidationFta = DatabaseOperation::convertSqlStatementWithoutKeyToArray("SELECT DISTINCT " . FtaEtatHistoriqueModel::FIELDNAME_ID_DOSSIER_FTA . "," . FtaEtatHistoriqueModel::FIELDNAME_ID_DOSSIER_VERSION_FTA . "," . FtaEtatHistoriqueModel::FIELDNAME_ID_FTA_ETAT_DEST . "," . UserModel::FIELDNAME_NOM . "," . UserModel::FIELDNAME_PRENOM . "," . FtaEtatHistoriqueModel::FIELDNAME_STATE_CHANGE_DATE . " FROM " . FtaEtatHistoriqueModel::TABLENAME . "," . UserModel::TABLENAME . " WHERE " . FtaEtatHistoriqueModel::TABLENAME . "." . FtaEtatHistoriqueModel::FIELDNAME_ID_USER . "=" . UserModel::TABLENAME . "." . UserModel::KEYNAME . " AND " . FtaEtatHistoriqueModel::FIELDNAME_ID_DOSSIER_FTA . "=" . $paramIdFtaDossier . " ORDER BY " . FtaEtatHistoriqueModel::FIELDNAME_STATE_CHANGE_DATE . " DESC ");
     if ($arrayHistoValidationFta) {
         foreach ($arrayHistoValidationFta as $rowsHistoValidationFta) {
             $ftaEtatModel = new FtaEtatModel($rowsHistoValidationFta[FtaEtatHistoriqueModel::FIELDNAME_ID_FTA_ETAT_DEST]);
             $nomFtaEtat = $ftaEtatModel->getDataField(FtaEtatModel::FIELDNAME_NOM_FTA_ETAT)->getFieldValue();
             $versionEncours = "V" . $rowsHistoValidationFta[FtaEtatHistoriqueModel::FIELDNAME_ID_DOSSIER_VERSION_FTA];
             $nomSignataire = $rowsHistoValidationFta[UserModel::FIELDNAME_PRENOM] . " " . $rowsHistoValidationFta[UserModel::FIELDNAME_NOM];
             $dateValidation = $rowsHistoValidationFta[FtaEtatHistoriqueModel::FIELDNAME_STATE_CHANGE_DATE];
             /**
              * Changment de format de date
              */
             $date = FtaController::changementDuFormatDeDateFR($dateValidation);
             $arrayHistoModif[] = array("date" => $date, "nom" => $nomSignataire, "version" => $versionEncours, "etat" => $nomFtaEtat, "oldValue" => $oldValue, "newValue" => $newValue);
         }
     }
     /**
      * Listes des tables Fta à vérifier
      */
     $arrayTableCheck = array(FtaModel::TABLENAME, FtaComposantModel::TABLENAME, FtaConditionnementModel::TABLENAME);
     /**
      * Historiques des changement de données par les utilisateurs
      */
     foreach ($arrayTableCheck as $rowsTableCheck) {
         /**
          * Tableau des Fta selon le dossier encours
          */
         $arrayIdFta = FtaModel::getArrayIdFtaByIdDossierFta($paramIdFtaDossier);
         foreach ($arrayIdFta as $rowsIdFta) {
             $idFtaEncours = $rowsIdFta[FtaModel::KEYNAME];
             $ftaModelEncours = new FtaModel($idFtaEncours);
             $versionFta = "V" . $ftaModelEncours->getDataField(FtaModel::FIELDNAME_VERSION_DOSSIER_FTA)->getFieldValue();
             /**
              * Listes des noms des champs avec le label de la table encours
              */
             if ($rowsTableCheck == FtaModel::TABLENAME) {
                 $model = new FtaModel($idFtaEncours);
                 $model->setDataFtaTableToCompare();
                 $arrayChamps = DatabaseOperation::convertSqlStatementWithoutKeyToArray("SELECT DISTINCT " . IntranetColumnInfoModel::FIELDNAME_COLUMN_NAME_INTRANET_COLUMN_INFO . "," . IntranetColumnInfoModel::FIELDNAME_LABEL_INTRANET_COLUMN_INFO . "," . IntranetColumnInfoModel::FIELDNAME_ID_LISTE_CHAPITRE_HISTORIQUE . " FROM " . IntranetColumnInfoModel::TABLENAME . " WHERE " . IntranetColumnInfoModel::FIELDNAME_TABLE_NAME_INTRANET_COLUMN_INFO . "='" . $rowsTableCheck . "'" . " AND " . IntranetColumnInfoModel::FIELDNAME_IS_ENABLED_INTRANET_HISTORIQUE . "=" . IntranetColumnInfoModel::IS_ENABLED_INTRANET_HISTORIQUE_TRUE);
                 foreach ($arrayChamps as $rowsChamps) {
                     $check = $model->getDataField($rowsChamps[IntranetColumnInfoModel::FIELDNAME_COLUMN_NAME_INTRANET_COLUMN_INFO])->isFieldDiff();
                     if ($check) {
                         $htmlObjetOld = Html::getHtmlObjectFromDataField($model->getDataToCompare()->getDataFieldByFieldName($rowsChamps[IntranetColumnInfoModel::FIELDNAME_COLUMN_NAME_INTRANET_COLUMN_INFO]));
                         $oldValue = $htmlObjetOld->getRawContent();
                         $htmlObjetNew = Html::getHtmlObjectFromDataField($model->getDataField($rowsChamps[IntranetColumnInfoModel::FIELDNAME_COLUMN_NAME_INTRANET_COLUMN_INFO]));
                         $newValue = $htmlObjetNew->getRawContent();
                         $label = $rowsChamps[IntranetColumnInfoModel::FIELDNAME_LABEL_INTRANET_COLUMN_INFO];
                         $idFtaChapitreTmp = $rowsChamps[IntranetColumnInfoModel::FIELDNAME_ID_LISTE_CHAPITRE_HISTORIQUE];
                         $idFtaChapitreArray = explode(',', $idFtaChapitreTmp);
                         $idFtaChapitre = FtaWorkflowStructureModel::getIdFtaChapitreBetweenArrayByWorkflowAndArrayByColumn($paramIdFtaWorkflow, $idFtaChapitreArray);
                         if ($idFtaChapitre) {
                             $nomSignataire = FtaSuiviProjetModel::getUserNameByIdFtaChapitreAndIdFta($idFtaEncours, $idFtaChapitre);
                             $dateValidation = FtaSuiviProjetModel::getValidationDateByIdFtaChapitreAndIdFta($idFtaEncours, $idFtaChapitre);
                             $arrayHistoModif[] = array("date" => $dateValidation, "nom" => $nomSignataire, "version" => $versionFta, "etat" => $label, "oldValue" => $oldValue, "newValue" => $newValue);
                         }
                     }
                 }
             } elseif ($rowsTableCheck == FtaComposantModel::TABLENAME) {
                 /**
                  * On récupère la liste des composants
                  */
                 $arraIdFtaComposant = FtaComposantModel::getArrayIdFtaComposantTable($idFtaEncours);
                 if ($arraIdFtaComposant) {
                     foreach ($arraIdFtaComposant as $rowsIdFtaComposant) {
                         $idFtaComposant = $rowsIdFtaComposant[FtaComposantModel::KEYNAME];
                         $model = new FtaComposantModel($idFtaComposant);
                         $model->setDataFtaComposantTableToCompare();
                         $arrayChamps = DatabaseOperation::convertSqlStatementWithoutKeyToArray("SELECT DISTINCT " . IntranetColumnInfoModel::FIELDNAME_COLUMN_NAME_INTRANET_COLUMN_INFO . "," . IntranetColumnInfoModel::FIELDNAME_LABEL_INTRANET_COLUMN_INFO . "," . IntranetColumnInfoModel::FIELDNAME_ID_LISTE_CHAPITRE_HISTORIQUE . " FROM " . IntranetColumnInfoModel::TABLENAME . " WHERE " . IntranetColumnInfoModel::FIELDNAME_TABLE_NAME_INTRANET_COLUMN_INFO . "='" . $rowsTableCheck . "'" . " AND " . IntranetColumnInfoModel::FIELDNAME_IS_ENABLED_INTRANET_HISTORIQUE . "=" . IntranetColumnInfoModel::IS_ENABLED_INTRANET_HISTORIQUE_TRUE);
                         foreach ($arrayChamps as $rowsChamps) {
                             $check = $model->getDataField($rowsChamps[IntranetColumnInfoModel::FIELDNAME_COLUMN_NAME_INTRANET_COLUMN_INFO])->isFieldDiff();
                             if ($check) {
                                 $htmlObjetOld = Html::getHtmlObjectFromDataField($model->getDataToCompare()->getDataFieldByFieldName($rowsChamps[IntranetColumnInfoModel::FIELDNAME_COLUMN_NAME_INTRANET_COLUMN_INFO]));
                                 $oldValue = $htmlObjetOld->getRawContent();
                                 $htmlObjetNew = Html::getHtmlObjectFromDataField($model->getDataField($rowsChamps[IntranetColumnInfoModel::FIELDNAME_COLUMN_NAME_INTRANET_COLUMN_INFO]));
                                 $newValue = $htmlObjetNew->getRawContent();
                                 $label = $rowsChamps[IntranetColumnInfoModel::FIELDNAME_LABEL_INTRANET_COLUMN_INFO];
                                 $idFtaChapitreTmp = $rowsChamps[IntranetColumnInfoModel::FIELDNAME_ID_LISTE_CHAPITRE_HISTORIQUE];
                                 $idFtaChapitreArray = explode(',', $idFtaChapitreTmp);
                                 $idFtaChapitre = FtaWorkflowStructureModel::getIdFtaChapitreBetweenArrayByWorkflowAndArrayByColumn($paramIdFtaWorkflow, $idFtaChapitreArray);
                                 if ($idFtaChapitre) {
                                     $nomSignataire = FtaSuiviProjetModel::getUserNameByIdFtaChapitreAndIdFta($idFtaEncours, $idFtaChapitre);
                                     $dateValidation = FtaSuiviProjetModel::getValidationDateByIdFtaChapitreAndIdFta($idFtaEncours, $idFtaChapitre);
                                     $arrayHistoModif[] = array("date" => $dateValidation, "nom" => $nomSignataire, "version" => $versionFta, "etat" => $label, "oldValue" => $oldValue, "newValue" => $newValue);
                                 }
                             }
                         }
                     }
                 }
             } elseif ($rowsTableCheck == FtaConditionnementModel::TABLENAME) {
                 $arraIdFtaConditionnment = FtaConditionnementModel::getArrayIdFtaConditionnement($idFtaEncours);
                 /**
                  * On récupère la liste des embalalges
                  */
                 if ($arraIdFtaConditionnment) {
                     foreach ($arraIdFtaConditionnment as $rowsIdFtaConditionnment) {
                         $idFtaConditionnement = $rowsIdFtaConditionnment[FtaConditionnementModel::KEYNAME];
                         $model = new FtaConditionnementModel($idFtaConditionnement);
                         /**
                          * On vérifie si l'un des champs de l'emballage encours est différents de la version précedentes
                          */
                         $model->setDataFtaConditionnementTableToCompare();
                         /**
                          * restraiendre la liste des champs
                          */
                         $arrayChamps = DatabaseOperation::convertSqlStatementWithoutKeyToArray("SELECT DISTINCT " . IntranetColumnInfoModel::FIELDNAME_COLUMN_NAME_INTRANET_COLUMN_INFO . "," . IntranetColumnInfoModel::FIELDNAME_LABEL_INTRANET_COLUMN_INFO . " FROM " . IntranetColumnInfoModel::TABLENAME . " WHERE " . IntranetColumnInfoModel::FIELDNAME_TABLE_NAME_INTRANET_COLUMN_INFO . "='" . $rowsTableCheck . "'" . " AND " . IntranetColumnInfoModel::FIELDNAME_IS_ENABLED_INTRANET_HISTORIQUE . "=" . IntranetColumnInfoModel::IS_ENABLED_INTRANET_HISTORIQUE_TRUE);
                         foreach ($arrayChamps as $rowsChamps) {
                             $check = $model->getDataField($rowsChamps[IntranetColumnInfoModel::FIELDNAME_COLUMN_NAME_INTRANET_COLUMN_INFO])->isFieldDiff();
                             if ($check) {
                                 $htmlObjetOld = Html::getHtmlObjectFromDataField($model->getDataToCompare()->getDataFieldByFieldName($rowsChamps[IntranetColumnInfoModel::FIELDNAME_COLUMN_NAME_INTRANET_COLUMN_INFO]));
                                 $oldValue = $htmlObjetOld->getRawContent();
                                 $htmlObjetNew = Html::getHtmlObjectFromDataField($model->getDataField($rowsChamps[IntranetColumnInfoModel::FIELDNAME_COLUMN_NAME_INTRANET_COLUMN_INFO]));
                                 $newValue = $htmlObjetNew->getRawContent();
                                 $label = $rowsChamps[IntranetColumnInfoModel::FIELDNAME_LABEL_INTRANET_COLUMN_INFO];
                                 $idFtaChapitreTmp = $rowsChamps[IntranetColumnInfoModel::FIELDNAME_ID_LISTE_CHAPITRE_HISTORIQUE];
                                 $idFtaChapitreArray = explode(',', $idFtaChapitreTmp);
                                 $idFtaChapitre = FtaWorkflowStructureModel::getIdFtaChapitreBetweenArrayByWorkflowAndArrayByColumn($paramIdFtaWorkflow, $idFtaChapitreArray);
                                 if ($idFtaChapitre) {
                                     $nomSignataire = FtaSuiviProjetModel::getUserNameByIdFtaChapitreAndIdFta($idFtaEncours, $idFtaChapitre);
                                     $dateValidation = FtaSuiviProjetModel::getValidationDateByIdFtaChapitreAndIdFta($idFtaEncours, $idFtaChapitre);
                                     $arrayHistoModif[] = array("date" => $dateValidation, "nom" => $nomSignataire, "version" => $versionFta, "etat" => $label, "oldValue" => $oldValue, "newValue" => $newValue);
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     /**
      * Affichage du tableau
      */
     if (is_array($arrayHistoModif)) {
         FtaController::arraySortByColumn($arrayHistoModif, "date");
         $tableauFiche .= '<th>' . 'Date' . '</th><th>' . 'Ultilisateur' . '</th><th>' . 'Version du dossier FTA' . '</th><th>' . 'Colonne' . '</th><th>' . 'Ancienne valeur' . '</th><th>' . 'Nouvelle valeur' . '</th>';
         foreach ($arrayHistoModif as $rowsHistoModif) {
             $tableauFiche .= '<tr class=contenu >' . '<td width=8%> ' . $rowsHistoModif["date"] . '</td>' . '<td >' . $rowsHistoModif["nom"] . '</td>' . '<td >' . $rowsHistoModif["version"] . '</td>' . '<td >' . $rowsHistoModif["etat"] . '</td>' . '<td >' . $rowsHistoModif["oldValue"] . '</td>' . '<td >' . $rowsHistoModif["newValue"] . '</td>' . '</tr >';
         }
     }
     return $tableauFiche;
 }
Beispiel #6
0
 /**
 * Cette fonction permet de dupliquer une Fiche Technique Article pour faire les actions suivantes:
 
  $action
  -------
  "totale":       Créer un nouveau dossier en recopiant l'intégralité de la fiche d'origine
  "selective":(pas géré)    Créer un nouveau dossier en ne recopiant que certains processus
  "version":      Créer une nouvelle fiche au sein du même dossier
 
  $option:
  --------
  - Dans le cas d'une duplication "selective", cette variable contient le tableau des id_processus des processus sélectionnés
  - Dans le cas d'une duplication "version", cette variable contient le nouvel état de la FTA (I, A, ...).
  Si vide, alors l'état par défaut sera de type I, initialisation
 
  Retour de la fonction:
  ----------------------
  La fonction renvoi l'id_fta nouvellement créé.
 * @param int $paramIdFta
 * @param string $paramAction
 * @param array $paramOption
 * @param int $paramIdFtaWorkflow
 * @return int
 */
 public static function buildDuplicationFta($paramIdFta, $paramAction, $paramOption, $paramIdFtaWorkflow)
 {
     /*         * ****************************************
               Déclaration et initialisation des variables
              * **************************************** */
     $globalConfig = new GlobalConfig();
     UserModel::checkUserSessionExpired($globalConfig);
     $idUser = $globalConfig->getAuthenticatedUser()->getKeyValue();
     $ftaModelOrig = new FtaModel($paramIdFta);
     //Identifiant de la fiche technique article à dupliquer
     if ($paramOption["id_version_dossier_fta"]) {
         $idFtaVersion = $paramOption["id_version_dossier_fta"];
     } else {
         $idFtaVersion = $ftaModelOrig->getDataField(FtaModel::FIELDNAME_VERSION_DOSSIER_FTA)->getFieldValue();
     }
     $idFtaOriginal = $paramIdFta;
     //Sauvegarde de la clef initiale.
     $paramOption["abreviation_etat_destination"];
     //Etat vers lequel doit aller la FTA
     $paramOption["selection_chapitre"];
     //Tableau contenant les id_fta_chapitre des chapitres à corriger
     $paramOption["designation_commerciale_fta"];
     //Nouveau nom commerciale de la FTA
     $paramOption["site_de_production"];
     //Nouveau site de production de la FTA
     $paramOption["nouveau_maj_fta"];
     //Nouveau commentaire de la nouvelle FTA
     $paramOption["id_version_dossier_fta"];
     //Id dossier version maximun
     switch ($paramAction) {
         case "version":
             //récupération de l'identifiant de l'état
             if ($paramOption["abreviation_etat_destination"] == "") {
                 //Si aucun Etat n'a été donné, l'état   Intialisation est choisi par défaut
                 $paramOption["abreviation_etat_destination"] = "I";
             }
             $arrayIdFtaEtat = DatabaseOperation::convertSqlStatementWithoutKeyToArray("SELECT " . FtaEtatModel::KEYNAME . " FROM " . FtaEtatModel::TABLENAME . " WHERE " . FtaEtatModel::FIELDNAME_ABREVIATION . "='" . $paramOption["abreviation_etat_destination"] . "'");
             foreach ($arrayIdFtaEtat as $value) {
                 $idFtaEtatNew = $value[FtaEtatModel::KEYNAME];
             }
     }
     /*         * *****************************************************************************
               Traitement Principal
              * ****************************************************************************** */
     /*         * *************************
               Traitement de la table "fta"
              * ************************* */
     $idFtaNew = FtaModel::duplicationIdFta($paramIdFta);
     //Récupération de la nouvelle clef
     /*
      * Enregsitrement des mises à jour
      */
     if (!$paramOption["site_de_production"]) {
         $paramOption["site_de_production"] = "NULL";
     }
     DatabaseOperation::execute("UPDATE " . FtaModel::TABLENAME . " SET " . FtaModel::FIELDNAME_DATE_CREATION . "='" . date("Y-m-d") . "', " . FtaModel::FIELDNAME_ACTIF . "=" . 0 . ", " . FtaModel::FIELDNAME_CODE_ARTICLE . "=" . 'NULL' . ", " . FtaModel::FIELDNAME_WORKFLOW . "=" . $paramIdFtaWorkflow . ", " . FtaModel::FIELDNAME_SITE_PRODUCTION . "=" . $paramOption["site_de_production"] . " WHERE " . FtaModel::KEYNAME . "=" . $idFtaNew);
     switch ($paramAction) {
         //Suivant l'action, certaines données sont à mettre à jour
         /*
          * //Création d'un nouveau dossier
          */
         case "totale":
             DatabaseOperation::execute("UPDATE " . FtaModel::TABLENAME . " SET " . FtaModel::FIELDNAME_DOSSIER_FTA . "=" . $idFtaNew . ", " . FtaModel::FIELDNAME_VERSION_DOSSIER_FTA . "=" . 0 . ", " . FtaModel::FIELDNAME_ID_FTA_ETAT . "=" . 1 . ", " . FtaModel::FIELDNAME_ARTICLE_AGROLOGIC . "=" . 0 . ", " . FtaModel::FIELDNAME_DATE_ECHEANCE_FTA . "=" . "0000-00-00" . ", " . FtaModel::FIELDNAME_DESIGNATION_COMMERCIALE . "=\"" . $paramOption["designation_commerciale_fta"] . "\", " . FtaModel::FIELDNAME_NOM_ABREGE . "=" . "NULL" . ", " . FtaModel::FIELDNAME_LIBELLE . "=" . "NULL" . ", " . FtaModel::FIELDNAME_CODE_ARTICLE_LDC . "=" . "0" . ", " . FtaModel::FIELDNAME_EAN_COLIS . "=" . "0" . ", " . FtaModel::FIELDNAME_EAN_UVC . "=" . "0" . ", " . FtaModel::FIELDNAME_EAN_PALETTE . "=" . "0" . ", " . FtaModel::FIELDNAME_POURCENTAGE_AVANCEMENT . "=" . "\"0%\"" . ", " . FtaModel::FIELDNAME_CREATEUR . "=" . $idUser . ", " . FtaModel::FIELDNAME_LISTE_ID_FTA_ROLE . "=" . "NULL" . " WHERE " . FtaModel::KEYNAME . "=" . $idFtaNew);
             break;
             /*
              *  //Création d'une nouvelle version de la FTA
              */
         /*
          *  //Création d'une nouvelle version de la FTA
          */
         case "version":
             $idFtaVersion = $idFtaVersion + 1;
             DatabaseOperation::execute("UPDATE " . self::TABLENAME . " SET " . self::FIELDNAME_VERSION_DOSSIER_FTA . "=\"" . $idFtaVersion . "\", " . self::FIELDNAME_ID_FTA_ETAT . "=\"" . $idFtaEtatNew . "\", " . self::FIELDNAME_DATE_ECHEANCE_FTA . "=\"" . $paramOption["date_echeance_fta"] . "\" WHERE " . self::KEYNAME . "=" . $idFtaNew);
             break;
     }
     /*         * ***************************
               Traitement des tables esclaves
              * *************************** */
     /*         * ******************************************************************************************
               Les tables esclaves sont des tables contenant le champ "id_fta" dans la liste de leurs champs
              * ****************************************************************************************** */
     FtaComposantModel::duplicateFtaComposantByIdFta($idFtaOriginal, $idFtaNew);
     FtaConditionnementModel::duplicateFtaConditionnementByIdFta($idFtaOriginal, $idFtaNew);
     FtaSuiviProjetModel::duplicateFtaSuiviProjetByIdFta($idFtaOriginal, $idFtaNew);
     // ClassificationFtaModel::DuplicateFtaClassificationByIdFta($idFtaOriginal, $idFtaNew);
     /*
      - Récupérér les composants de la nouvelle FTA
      - Pour chaque produit (id_fta_nomenclature)
      - Récupérer l'identifiant de la version précédente (noté: [last_id_fta_nomenclature])
      - Sur la FTA précédente, retrouver l'identifiant composant associé à cette ancienne version du produit (noté: [last_id_fta_composant])
      - Sur le nouvelle FTA, retrouver l'identifiant composant associé à ce [last_id_fta_composant]
      - Sur ce nouveau composant, remplacer l'association nomenclature par [id_fta_nomenclature]
     */
     /*         * *****************************************************************************
               Traitement POST
              * ****************************************************************************** */
     switch ($paramAction) {
         case "version":
             $newAbreviationFtaEtat = $paramOption["abreviation_etat_destination"];
             //Nouvel état
             //Récupération de la liste des chapitres a dévalider
             $selection_chapitre = $paramOption["selection_chapitre"];
             $paramOption["no_message_ecran"] = 1;
             $paramOption["mail_gestionnaire"] = 1;
             if ($selection_chapitre) {
                 foreach ($selection_chapitre as $id_fta_chapitre) {
                     //Correction des chapitres
                     $paramOption["correction_fta_suivi_projet"] = $paramOption["nouveau_maj_fta"];
                     FtaChapitreModel::buildCorrectionChapitre($idFtaNew, $id_fta_chapitre, $paramOption);
                 }
             }
             /*
              * Cette fonction est mise en pause car elle nécessite la création de processus cycle pour chaque workflow,
              * questionnement à boris.
              */
             if ($newAbreviationFtaEtat == FtaEtatModel::ETAT_ABREVIATION_VALUE_MODIFICATION and !$selection_chapitre) {
                 //Suppression des validations
                 //Recherche des chapitres affectés au cycle de vie correspondant à l'état
                 $arrayCycle = DatabaseOperation::convertSqlStatementWithoutKeyToArray("SELECT DISTINCT " . FtaProcessusCycleModel::FIELDNAME_PROCESSUS_INIT . "," . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_CHAPITRE . " FROM " . FtaProcessusCycleModel::TABLENAME . ", " . FtaWorkflowStructureModel::TABLENAME . " WHERE " . FtaProcessusCycleModel::FIELDNAME_FTA_ETAT . "='" . $newAbreviationFtaEtat . "' AND " . FtaWorkflowStructureModel::TABLENAME . "." . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . "=" . FtaProcessusCycleModel::TABLENAME . "." . FtaProcessusCycleModel::FIELDNAME_PROCESSUS_INIT . " AND " . FtaWorkflowStructureModel::TABLENAME . "." . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW . "=" . FtaProcessusCycleModel::TABLENAME . "." . FtaProcessusCycleModel::FIELDNAME_WORKFLOW . " AND " . FtaWorkflowStructureModel::TABLENAME . "." . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW . "=" . $paramIdFtaWorkflow);
                 if ($arrayCycle) {
                     //Si ce cycle de vie necessite l'intervention de processus, alors                            //On supprime la validation du suivi de projet des processus concernés
                     $req = "DELETE FROM " . FtaSuiviProjetModel::TABLENAME . " WHERE ";
                     $or = " ";
                     foreach ($arrayCycle as $rowsCycle) {
                         //Vérification qu'il ne s'agissent pas du processus initiateur du nouveau cycle de vie
                         $arrayFirst = DatabaseOperation::convertSqlStatementWithoutKeyToArray("SELECT " . FtaSuiviProjetModel::KEYNAME . " FROM " . FtaProcessusCycleModel::TABLENAME . ", " . FtaWorkflowStructureModel::TABLENAME . ", " . FtaSuiviProjetModel::TABLENAME . " WHERE " . FtaProcessusCycleModel::FIELDNAME_FTA_ETAT . "='" . $newAbreviationFtaEtat . "' AND " . FtaWorkflowStructureModel::TABLENAME . "." . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . "=" . FtaProcessusCycleModel::TABLENAME . "." . FtaProcessusCycleModel::FIELDNAME_PROCESSUS_INIT . " AND " . FtaSuiviProjetModel::TABLENAME . "." . FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE . "=" . FtaWorkflowStructureModel::TABLENAME . "." . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_CHAPITRE . " AND " . FtaSuiviProjetModel::TABLENAME . "." . FtaSuiviProjetModel::FIELDNAME_ID_FTA . "='" . $idFtaNew . "' " . " AND " . FtaProcessusCycleModel::TABLENAME . "." . FtaProcessusCycleModel::FIELDNAME_PROCESSUS_NEXT . "='" . $rowsCycle[FtaProcessusCycleModel::FIELDNAME_PROCESSUS_INIT] . "' ");
                         if ($arrayFirst) {
                             //Si il ne s'agit pas du chapitre appartenant au processus initial, on supprime
                             $req .= $or . "(" . FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE . "='" . $rowsCycle[FtaWorkflowStructureModel::FIELDNAME_ID_FTA_CHAPITRE] . "' AND " . FtaSuiviProjetModel::FIELDNAME_ID_FTA . "='" . $idFtaNew . "') ";
                             $or = " OR ";
                         } else {
                             //Sinon, Supprimer uniquement la validation et on notifie les chapitres
                             $req_update = "UPDATE " . FtaSuiviProjetModel::TABLENAME . " SET " . FtaSuiviProjetModel::FIELDNAME_SIGNATURE_VALIDATION_SUIVI_PROJET . "=''" . ", " . FtaSuiviProjetModel::FIELDNAME_DATE_VALIDATION_SUIVI_PROJET . "=''" . ", " . FtaSuiviProjetModel::FIELDNAME_DATE_DEMARRAGE_CHAPITRE_FTA_SUIVI_PROJET . "=''" . ", " . FtaSuiviProjetModel::FIELDNAME_NOTIFICATION_FTA_SUIVI_PROJET . "='1' " . " WHERE (" . FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE . "='" . $rowsCycle[FtaWorkflowStructureModel::FIELDNAME_ID_FTA_CHAPITRE] . "' AND " . FtaSuiviProjetModel::FIELDNAME_ID_FTA . "='" . $idFtaNew . "') ";
                             DatabaseOperation::execute($req_update);
                         }
                     }
                     DatabaseOperation::execute($req);
                 }
                 //Fin de Recherche des notifications relatives aux processus trouvées
             }
             //Fin de la dévalidation suite à une initialisation
             //Vérrouillage des chapitre ne correspondant pas au cycle de vie.
             if ($newAbreviationFtaEtat == "P") {
                 //Condition where
                 $where = "";
                 //Récupération des chapitres concernés par ce cycle de vie
                 $arrayCycle2 = DatabaseOperation::convertSqlStatementWithoutKeyToArray("SELECT DISTINCT " . FtaProcessusCycleModel::FIELDNAME_PROCESSUS_INIT . " FROM " . FtaProcessusCycleModel::TABLENAME . " WHERE " . FtaProcessusCycleModel::FIELDNAME_FTA_ETAT . " = '" . $newAbreviationFtaEtat . "' ");
                 foreach ($arrayCycle2 as $rowsCycle2) {
                     $where .= " AND " . FtaProcessusModel::TABLENAME . "." . FtaProcessusModel::KEYNAME . " <> " . $rowsCycle2[FtaProcessusCycleModel::FIELDNAME_PROCESSUS_INIT];
                 }
                 //Récupération des chapitres à vérrouiller
                 $arrayChapitreVerrouiller = DatabaseOperation::convertSqlStatementWithoutKeyToArray("SELECT DISTINCT  " . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_CHAPITRE . " FROM " . FtaProcessusModel::TABLENAME . ", " . FtaWorkflowStructureModel::TABLENAME . " WHERE ( " . FtaProcessusModel::TABLENAME . "." . FtaProcessusModel::KEYNAME . " = " . FtaWorkflowStructureModel::TABLENAME . "." . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_CHAPITRE . " ) " . " AND ( (  " . FtaProcessusModel::TABLENAME . "." . FtaProcessusModel::KEYNAME . " <>1 {$where} ) )" . " AND " . FtaWorkflowStructureModel::TABLENAME . "." . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW . " = " . $paramIdFtaWorkflow);
                 foreach ($arrayChapitreVerrouiller as $rowsChapitreVerrouiller) {
                     //Le suivi existe-il déjà ?
                     $arrayFtaSuiviProjet = DatabaseOperation::convertSqlStatementWithoutKeyToArray("SELECT " . FtaSuiviProjetModel::KEYNAME . ", " . FtaSuiviProjetModel::FIELDNAME_SIGNATURE_VALIDATION_SUIVI_PROJET . " FROM " . FtaSuiviProjetModel::TABLENAME . " WHERE " . FtaSuiviProjetModel::FIELDNAME_ID_FTA . "='" . $idFtaNew . "' AND " . FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE . "='" . $rowsChapitreVerrouiller[FtaWorkflowStructureModel::FIELDNAME_ID_FTA_CHAPITRE] . "' ");
                     if ($arrayFtaSuiviProjet) {
                         //Mise à jour de l'existant si il n'y a pas de vérrou existant
                         foreach ($arrayFtaSuiviProjet as $rowsFtaSuiviProjet) {
                             if (!$rowsFtaSuiviProjet[FtaSuiviProjetModel::FIELDNAME_SIGNATURE_VALIDATION_SUIVI_PROJET]) {
                                 $idFtaSuiviProjet = $rowsFtaSuiviProjet[FtaSuiviProjetModel::KEYNAME];
                                 $req = "UPDATE " . FtaSuiviProjetModel::TABLENAME . "SET " . FtaSuiviProjetModel::FIELDNAME_SIGNATURE_VALIDATION_SUIVI_PROJET . "='-1' " . "WHERE " . FtaSuiviProjetModel::KEYNAME . "='" . $idFtaSuiviProjet . "' ";
                                 DatabaseOperation::execute($req);
                             }
                         }
                     } else {
                         //Création des suivi
                         $req = "INSERT " . FtaSuiviProjetModel::TABLENAME . " SET " . FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE . "='" . $rowsChapitreVerrouiller[FtaWorkflowStructureModel::FIELDNAME_ID_FTA_CHAPITRE] . "', " . FtaSuiviProjetModel::FIELDNAME_ID_FTA . "='" . $idFtaNew . "', " . FtaSuiviProjetModel::FIELDNAME_SIGNATURE_VALIDATION_SUIVI_PROJET . "='-1' ";
                         DatabaseOperation::execute($req);
                     }
                 }
             }
             break;
             //Fin du post-traitement dans le cas d'une duplication de type "version"
         //Fin du post-traitement dans le cas d'une duplication de type "version"
         case "totale":
             $newAbreviationFtaEtat = $paramOption["abreviation_etat_destination"];
             //Nouvel état
             //Suppression de tout le suivi de dossier
             $req = "DELETE FROM " . FtaSuiviProjetModel::TABLENAME . " WHERE " . FtaSuiviProjetModel::TABLENAME . "." . FtaSuiviProjetModel::FIELDNAME_ID_FTA . "='" . $idFtaNew . "' ";
             DatabaseOperation::execute($req);
             break;
     }
     //Fin du post-traitement dans le cas d'une duplication de type "totale"
     return $idFtaNew;
 }
        break;
    case 'suppression_nomenclature':
        //Suppression de la nomenclature
        //$id_fta_nomenclature;
        //recette_nomenclature_suppression($id_fta_nomenclature);
        //        mysql_table_operation('fta_composant', 'delete');
        //header ('Location: modification_fiche.php?id_fta=$id_fta&id_fta_chapitre_encours=$id_fta_chapitre_encours&synthese_action=$synthese_action');
        break;
    case 'suppression_composant':
        //Suppression de la nomenclature
        //$id_fta_composition;
        $id_fta_composant = Lib::getParameterFromRequest(FtaComposantModel::KEYNAME);
        /*
         * Suppression du conditionnement
         */
        FtaComposantModel::deleteFtaComposant($id_fta_composant);
        //header ('Location: modification_fiche.php?id_fta=$id_fta&id_fta_chapitre_encours=$id_fta_chapitre_encours&synthese_action=$synthese_action');
        break;
        /*     * **********
              Fin de switch
             * ********** */
}
//if(!$erreur and !$noredirection) header ('Location: modification_fiche.php?id_fta=$id_fta&id_fta_chapitre_encours=$id_fta_chapitre_encours&synthese_action=$synthese_action');
if (!$erreur) {
    header('Location: modification_fiche.php?id_fta=' . $paramIdFta . '&id_fta_chapitre_encours=' . $paramIdFtaChapitreEncours . '&synthese_action=' . $paramSyntheseAction . '&id_fta_etat=' . $idFtaEtat . '&abreviation_fta_etat=' . $abreviationFtaEtat . '&id_fta_role=' . $idFtaRole);
    /**
     * Version avec le module rewrite
     */
    //    header('Location: modification_fiche-' . $paramIdFta . '-' . $paramIdFtaChapitreEncours . '-' . $paramSyntheseAction . '-' . $idFtaEtat . '-' . $abreviationFtaEtat . '-' . $comeback . '-' . $idFtaRole . '.html');
}
//include ('./action_bs.php');
 /**
  * Fonction non utilisé
  * @param HtmlListSelect $paramObjet
  * @param bolean $paramIsEditable
  * @param int $paramIdFtaComposant
  * @return string
  */
 public static function ShowListeDeroulantePrefixeForComposant($paramObjet, $paramIsEditable, $paramIdFtaComposant)
 {
     $ftaComposantModel = new FtaComposantModel($paramIdFtaComposant);
     $arraySite = DatabaseOperation::convertSqlStatementWithKeyAndOneFieldToArray('SELECT DISTINCT ' . AnnexeAgrologicArticleCodificationModel::KEYNAME . ', CONCAT_WS(\' - \',' . AnnexeAgrologicArticleCodificationModel::FIELDNAME_PREFIXE_ANNEXE_AGRO_ART_COD . ',' . AnnexeAgrologicArticleCodificationModel::FIELDNAME_NOM_ANNEXE_AGRO_ART_COD . ') FROM ' . AnnexeAgrologicArticleCodificationModel::TABLENAME . ' WHERE ' . AnnexeAgrologicArticleCodificationModel::FIELDNAME_PREFIXE_ANNEXE_AGRO_ART_COD . ' <>\'00\'' . ' ORDER BY ' . AnnexeAgrologicArticleCodificationModel::FIELDNAME_PREFIXE_ANNEXE_AGRO_ART_COD);
     $paramObjet->setArrayListContent($arraySite);
     $HtmlTableName = self::TABLENAME . '_' . self::FIELDNAME_ID_ANNEXE_AGRO_ART_CODIFICATION . '_' . $paramIdFtaComposant;
     $arrayIdPrefixeCodePSFComposant = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT DISTINCT ' . self::FIELDNAME_ID_ANNEXE_AGRO_ART_CODIFICATION . ' FROM ' . self::TABLENAME . ' WHERE ' . self::KEYNAME . '=' . $paramIdFtaComposant);
     if ($arrayIdPrefixeCodePSFComposant) {
         foreach ($arrayIdPrefixeCodePSFComposant as $value) {
             $IdPrefixeCodePSF = $value[self::FIELDNAME_ID_ANNEXE_AGRO_ART_CODIFICATION];
             $paramObjet->setDefaultValue($IdPrefixeCodePSF);
         }
     }
     $paramObjet->getAttributes()->getName()->setValue(self::FIELDNAME_ID_ANNEXE_AGRO_ART_CODIFICATION);
     $paramObjet->setLabel(DatabaseDescription::getFieldDocLabel(self::TABLENAME, self::FIELDNAME_ID_ANNEXE_AGRO_ART_CODIFICATION));
     $paramObjet->setIsEditable($paramIsEditable);
     $paramObjet->initAbstractHtmlSelect($HtmlTableName, $paramObjet->getLabel(), $ftaComposantModel->getDataField(self::FIELDNAME_ID_ANNEXE_AGRO_ART_CODIFICATION)->getFieldValue(), NULL, $paramObjet->getArrayListContent());
     $paramObjet->getEventsForm()->setOnChangeWithAjaxAutoSave(self::TABLENAME, self::KEYNAME, $paramIdFtaComposant, self::FIELDNAME_ID_ANNEXE_AGRO_ART_CODIFICATION);
     $listePrefixeCodePSF = $paramObjet->getHtmlResult();
     return $listePrefixeCodePSF;
 }
Beispiel #9
0
//$pdf->SetY($pdf->GetY()+2);
$pdf->SetY($pdf->GetY() + 2);
//Récupération des données
$returnCOLIS = $ftaModel->buildArrayEmballageTypeDuColis();
$poids_net_colis = $returnCOLIS["colis_net"];
//$req = "SELECT id_fta_composition FROM fta_composition WHERE id_fta='".$id_fta."' ORDER BY ordre_fta_composition, nom_fta_composition ";
$req = "SELECT " . FtaComposantModel::KEYNAME . " FROM " . FtaComposantModel::TABLENAME . " WHERE " . FtaComposantModel::FIELDNAME_ID_FTA . "='" . $id_fta . "'" . " AND " . FtaComposantModel::FIELDNAME_IS_COMPOSITION_FTA_COMPOSANT . "=1 " . " ORDER BY " . FtaComposantModel::FIELDNAME_ORDRE_FTA_COMPOSITION . ", " . FtaComposantModel::FIELDNAME_NOM_FTA_COMPOSITION . " ";
$result = DatabaseOperation::convertSqlStatementWithoutKeyToArray($req);
//$nbdeCompo=count($result);
if ($result) {
    foreach ($result as $rows) {
        $pdf->SetAutoPageBreak(0);
        //Chargement des données
        //$id_fta_composition=$rows["id_fta_composition"];
        $id_fta_composant = $rows[FtaComposantModel::KEYNAME];
        $ftaComposantModel = new FtaComposantModel($id_fta_composant);
        $checkNutri = FALSE;
        //Préparation des données de sortie
        $nom_fta_composition = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_NOM_FTA_COMPOSITION)->getFieldValue();
        $quantite_fta_composition = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_QUANTITE_FTA_COMPOSITION)->getFieldValue();
        $poids_fta_compositionTmp = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_POIDS_FTA_COMPOSITION)->getFieldValue();
        $taille_nom_fta_composition = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_TAILLE_POLICE_NOM_FTA_COMPOSITION)->getFieldValue();
        $ingredient_fta_composition = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_INGREDIENT_FTA_COMPOSITION)->getFieldValue();
        $ingredient_fta_composition1 = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_INGREDIENT_FTA_COMPOSITION1)->getFieldValue();
        $val_nut_kcal = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_VAL_NUT_KCAL)->getFieldValue();
        $NOM_val_nut_kcal = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_VAL_NUT_KCAL)->getFieldLabel();
        $val_nut_kj = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_VAL_NUT_KJ)->getFieldValue();
        $NOM_val_nut_kj = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_VAL_NUT_KJ)->getFieldLabel();
        $val_nut_mat_grasse = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_VAL_MAT_GRASSE)->getFieldValue();
        $NOM_val_nut_mat_grasse = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_VAL_MAT_GRASSE)->getFieldLabel();
        $val_nut_acide_gras = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_VAL_ACIDE_GRAS)->getFieldValue();
                 header("Location: modifier_composition.php" . "?id_fta=" . $id_fta . "&id_fta_composant=" . $id_fta_composant . "&id_fta_chapitre_encours=" . $id_fta_chapitre_encours . "&synthese_action=" . $synthese_action . "&proprietaire=" . $proprietaire . "&id_fta_etat=" . $idFtaEtat . "&abreviation_fta_etat=" . $abreviationFtaEtat . "&id_fta_role=" . $idFtaRole);
             }
             break;
         case 'consulter':
             //echo $id_fta."<br>";
             //Renvoi sur la FTA
             header("Location: modification_fiche.php" . "?id_fta=" . $id_fta . "&id_fta_chapitre_encours=" . $id_fta_chapitre_encours . "&synthese_action=" . $synthese_action . "&id_fta_etat=" . $idFtaEtat . "&abreviation_fta_etat=" . $abreviationFtaEtat . "&id_fta_role=" . $idFtaRole);
             break;
             /*             * **********
                           Fin de switch
                          * ********** */
     }
     break;
 case FtaComposantModel::MISE_EN_EVIDENCE_ALLERGENES:
     $arrayCheckStrings = array($ingredient_fta_composition, $ingredient_fta_composition1, $etiquette_fta_composition, $etiquette_supplementaire_fta_composition);
     $ftaComposantModel = new FtaComposantModel($id_fta_composant);
     if ($arrayCheckStrings) {
         foreach ($arrayCheckStrings as $key => $rowsString) {
             if ($rowsString) {
                 $stringCorrige = "";
                 //Convertion du text en majuscule sans accents
                 //                    $string = FtaController::stringToUperCaseNoAccent($rowsString);
                 //Récupération des mots du DICO des listes d'allergènes
                 $arrayValues = DatabaseOperation::convertSqlStatementWithoutKeyToArray("SELECT DISTINCT " . AnnexeListeAllergeneDicoModel::FIELDNAME_NOM_ANNEXE_LISTE_ALLERGENE_DICO . " FROM " . AnnexeListeAllergeneDicoModel::TABLENAME);
                 /**
                  * Remplacement des valeurs
                  */
                 if ($arrayValues) {
                     foreach ($arrayValues as $rowsValues) {
                         $valueToTest = $rowsValues[AnnexeListeAllergeneDicoModel::FIELDNAME_NOM_ANNEXE_LISTE_ALLERGENE_DICO];
                         if ($stringCorrige) {
  en fonction de la variable "$action". Ensuite elle redirige le
  résultat vers une autre page.
 Le plus souvent, le traitement est délocalisé sous forme de
  fonction située dans le fichier "functions.php"
*/
switch ($action) {
    /*
     S'il n'y a pas d'actions défini
    */
    case '':
        //Redirection
        header("Location: index.php");
        break;
    case 'valider':
        if ($id_fta_composant and $proprietaire) {
            $ftaComposantModel = new FtaComposantModel($id_fta_composant);
            $idAnnexeAgroArtCodification = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_ID_ANNEXE_AGRO_ART_CODIFICATION)->getFieldValue();
            if ($idAnnexeAgroArtCodification) {
                $annexexAgrologicModel = new AnnexeAgrologicArticleCodificationModel($idAnnexeAgroArtCodification);
                $prefixe_code_produit_agrologic_fta_nomenclature = $annexexAgrologicModel->getDataField(AnnexeAgrologicArticleCodificationModel::FIELDNAME_PREFIXE_ANNEXE_AGRO_ART_COD)->getFieldValue();
                $isComposition = $annexexAgrologicModel->getDataField(AnnexeAgrologicArticleCodificationModel::FIELDNAME_IS_COMPOSITION)->getFieldValue();
                /**
                 * Les Produits toujours en Kg
                 */
                if ($prefixe_code_produit_agrologic_fta_nomenclature == "13" or $prefixe_code_produit_agrologic_fta_nomenclature == "11") {
                    $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_ID_ANNEXE_UNITE)->setFieldValue("kg");
                }
                /**
                 * Les Produits toujours en L
                 */
                if ($prefixe_code_produit_agrologic_fta_nomenclature == "17") {