/** * On vérifie si la chaîne contient un caractère spécial * @return boolean */ function isValide() { $result = TRUE; $valueToTest = $this->getValueTotest(); $checkCaractereNumber = FtaController::isStringHasSpecialCaracter($valueToTest, self::LISTE_DES_CARACTERE_SPECIAUX_LETTRE_SEUL); if ($checkCaractereNumber) { $result = FALSE; } return $result; }
/** * On vérifie si la chaîne est en majuscules * Les majuscules avec accent ne sont pas des majuscules pour la fonction * @return boolean */ function isValide() { $result = TRUE; $valueToTest = $this->getValueTotest(); $checkCaractereNumber = FtaController::isStringIsUperCase($valueToTest); if (!$checkCaractereNumber) { $result = FALSE; } return $result; }
function correctionDateBDD($paramValeurDate) { $checkValue = FtaController::isCheckDateFormat($paramValeurDate); if ($checkValue) { /** * Extraction de l'année * Format Français */ $annee = substr($paramValeurDate, 6, 9); $mois = substr($paramValeurDate, 3, 2); $jours = substr($paramValeurDate, 0, 2); } else { /** * Extraction de l'année * Format Anglais */ $annee = substr($paramValeurDate, 0, 4); $mois = substr($paramValeurDate, 5, 2); $jours = substr($paramValeurDate, 8, 2); } $return = $annee . "-" . $mois . "-" . $jours; return $return; }
/** * On vérifie si la code douane de la Fta a été modifié * Et on récupère les 8 premiers caractères */ function transformCodeDouane() { $checkDiff = $this->getFtaModel()->getDataField(FtaModel::FIELDNAME_CODE_DOUANE_FTA)->isFieldDiff(); if ($checkDiff or $this->getActionProposal() == self::CREATE) { $codeDouaneTmp = $this->getFtaModel()->getDataField(FtaModel::FIELDNAME_CODE_DOUANE_FTA)->getFieldValue(); $codeDouaneValue = FtaController::getFirstStringNumber($codeDouaneTmp, self::LIMIT_NUMBER_COD_NDP); $this->setXMLArcadiaCodeDouane($codeDouaneValue); } }
/** * Affiche la date d'échéance * @param boolean $paramUpdateFta * @return string */ function getHtmlDateEcheance($paramUpdateFta) { $htmlInputCalendar = new HtmlInputCalendar(); $dataFieldDateEcheance = $this->getDataField(self::FIELDNAME_DATE_ECHEANCE_FTA); /** * Contrôle de la date d'échéance */ $dateEcheValue = $this->checkDateEcheance($paramUpdateFta); /** * Changement du format de date */ if (!$this->getIsEditable()) { $dateEcheValue = FtaController::changementDuFormatDeDateFR($dateEcheValue); } /** * Mise en forme */ $HtmlTableName = self::TABLENAME . '_' . self::FIELDNAME_DATE_ECHEANCE_FTA . '_' . $this->getKeyValue(); $htmlInputCalendar->setIsEditable($this->getIsEditable()); $htmlInputCalendar->initAbstractHtmlInput($HtmlTableName, $dataFieldDateEcheance->getFieldLabel(), $dateEcheValue, $dataFieldDateEcheance->isFieldDiff()); $htmlInputCalendar->getEventsForm()->setOnChangeWithAjaxAutoSave($dataFieldDateEcheance->getTableName(), $dataFieldDateEcheance->getKeyName(), $dataFieldDateEcheance->getKeyValue(), $dataFieldDateEcheance->getFieldName()); $htmlInputCalendar->setHtmlResultOnClick(); return $htmlInputCalendar->getHtmlResult(); }
/** * On affiche la liste des gammes famille budget associé à une classification * @param object $paramFtaModel FtaModel * @param int $paramIdClassificationFta2 * @param boolean $paramIsEditable * @return string */ public static function getHtmlClassificationGammeFamilleBudget(FtaModel $paramFtaModel, $paramIdClassificationFta2, $paramIsEditable) { $htmlList = new HtmlListSelect(); $paramFtaModel->setDataFtaTableToCompare(); $idMarque = ClassificationFta2Model::getIdClassificationTypeByTypeNameAndIdClassificationFta2($paramIdClassificationFta2, ClassificationFta2Model::FIELDNAME_ID_MARQUE); $dataFieldIdArcadiaGammeFamilleBudgetTMP = $paramFtaModel->getDataField(FtaModel::FIELDNAME_ID_ARCADIA_GAMME_FAMILLE_BUDGET); $arrayGammeFamilleBudget = DatabaseOperation::convertSqlStatementWithKeyAndOneFieldToArray('SELECT DISTINCT ' . ArcadiaGammeFamilleBudgetModel::TABLENAME . '.' . ArcadiaGammeFamilleBudgetModel::KEYNAME . ', CONCAT_WS( \' - \',' . ArcadiaGammeFamilleBudgetModel::TABLENAME . '.' . ArcadiaGammeFamilleBudgetModel::KEYNAME . ',' . ArcadiaGammeFamilleBudgetModel::FIELDNAME_NOM_ARCADIA_GAMME_FAMILLE_BUDGET . ') FROM ' . ArcadiaGammeFamilleBudgetModel::TABLENAME . ',' . self::TABLENAME . ' WHERE ' . ArcadiaGammeFamilleBudgetModel::TABLENAME . '.' . ArcadiaGammeFamilleBudgetModel::KEYNAME . ' = ' . self::TABLENAME . '.' . self::FIELDNAME_ID_ARCADIA_GAMME_FAMILLE_BUDGET . ' AND ' . self::FIELDNAME_ID_MARQUE . '=' . $idMarque . ' ORDER BY ' . ArcadiaGammeFamilleBudgetModel::KEYNAME); /** * Si le chapitre est editable alors on vérifie si * pour une classification nous avons plusieurs gamme famille budget associé * Si nous avons plusieur résultat alors on affiche la liste déroulante * sinon on enregistre l'unique résutat */ // if ($paramIsEditable == Chapitre::EDITABLE) { // if (count($arrayGammeFamilleBudget) > "1") { // $paramIsEditable = Chapitre::EDITABLE; // } else { // /** // * Enregistrement de la donnée gamme famille budget // */ // if ($arrayGammeFamilleBudget) { // foreach ($arrayGammeFamilleBudget as $key => $value) { // $ftaModel->getDataField(FtaModel::FIELDNAME_ID_ARCADIA_GAMME_FAMILLE_BUDGET)->setFieldValue($key); // $ftaModel->saveToDatabase(); // } // } // $paramIsEditable = Chapitre::NOT_EDITABLE; // } // } $htmlList->setArrayListContent($arrayGammeFamilleBudget); /** * On vérifie si la donnée en BDD se trouve dans le tableau * Sinon alors on vide la donnée de la BDD */ $dataFieldIdArcadiaGammeFamilleBudget = FtaController::checkDataInArrayKeyList($dataFieldIdArcadiaGammeFamilleBudgetTMP, $arrayGammeFamilleBudget); $HtmlTableName = FtaModel::TABLENAME . '_' . FtaModel::FIELDNAME_ID_ARCADIA_GAMME_FAMILLE_BUDGET . '_' . $paramFtaModel->getKeyValue(); /** * Vérification des règle de validation */ $dataFieldIdArcadiaGammeFamilleBudget->checkValidationRules(); if ($dataFieldIdArcadiaGammeFamilleBudget->getDataValidationSuccessful() == TRUE) { $htmlList->setIsWarningMessage($dataFieldIdArcadiaGammeFamilleBudget->getDataValidationSuccessful()); $paramFtaModel->setDataValidationSuccessfulToTrue(); } else { $htmlList->setIsWarningMessage($dataFieldIdArcadiaGammeFamilleBudget->getDataValidationSuccessful()); $htmlList->setWarningMessage($dataFieldIdArcadiaGammeFamilleBudget->getDataWarningMessage()); $paramFtaModel->setDataValidationSuccessfulToFalse(); } $htmlList->getAttributes()->getName()->setValue(FtaModel::FIELDNAME_ID_ARCADIA_GAMME_FAMILLE_BUDGET); $htmlList->setLabel(DatabaseDescription::getFieldDocLabel(FtaModel::TABLENAME, FtaModel::FIELDNAME_ID_ARCADIA_GAMME_FAMILLE_BUDGET)); $htmlList->setIsEditable($paramIsEditable); $htmlList->initAbstractHtmlSelect($HtmlTableName, $htmlList->getLabel(), $dataFieldIdArcadiaGammeFamilleBudget->getFieldValue(), $dataFieldIdArcadiaGammeFamilleBudget->isFieldDiff(), $htmlList->getArrayListContent(), $htmlList->getIsWarningMessage(), $htmlList->getWarningMessage()); $htmlList->getEventsForm()->setOnChangeWithAjaxAutoSave(FtaModel::TABLENAME, FtaModel::KEYNAME, $paramFtaModel->getKeyValue(), FtaModel::FIELDNAME_ID_ARCADIA_GAMME_FAMILLE_BUDGET); /** * Description d'un champ */ $htmlList->setHelp(IntranetColumnInfoModel::getFieldDesc($dataFieldIdArcadiaGammeFamilleBudget->getTableName(), $dataFieldIdArcadiaGammeFamilleBudget->getFieldName(), $dataFieldIdArcadiaGammeFamilleBudget->getFieldLabel(), $htmlList)); $listeGammeFamilleBudget = $htmlList->getHtmlResult(); return $listeGammeFamilleBudget; }
/** * On affiche la liste des raccourcis de classification associé à une classification * @param objet $paramFtaModel * @param int $paramIdClassificationFta2 * @param boolean $paramIsEditable * @return string */ public static function getHtmlClassificationRaccourcisAssociation(FtaModel $paramFtaModel, $paramIdClassificationFta2, $paramIsEditable) { $htmlList = new HtmlListSelect(); $paramFtaModel->setDataFtaTableToCompare(); $dataFieldIdClassificationRaccourcisTMP = $paramFtaModel->getDataField(FtaModel::FIELDNAME_ID_CLASSIFICATION_RACCOURCIS); $arrayClassificationRaccourcis = DatabaseOperation::convertSqlStatementWithKeyAndOneFieldToArray('SELECT DISTINCT ' . ClassificationRaccourcisModel::TABLENAME . '.' . ClassificationRaccourcisModel::KEYNAME . ',' . ClassificationRaccourcisModel::TABLENAME . '.' . ClassificationRaccourcisModel::FIELDNAME_NOM_CLASSIFICATION_RACCOURCIS . ' FROM ' . ClassificationRaccourcisModel::TABLENAME . ',' . self::TABLENAME . ' WHERE ' . ClassificationRaccourcisModel::TABLENAME . '.' . ClassificationRaccourcisModel::KEYNAME . ' = ' . self::TABLENAME . '.' . self::FIELDNAME_ID_CLASSIFICATION_RACCOURCIS . ' AND ' . self::FIELDNAME_ID_FTA_CLASSIFICATION2 . '=' . $paramIdClassificationFta2 . ' ORDER BY ' . ClassificationRaccourcisModel::FIELDNAME_NOM_CLASSIFICATION_RACCOURCIS); /** * Si le chapitre est editable alors on vérifie si * pour une classification nous avons plusieurs raccourcis de classification associé * Si nous avons plusieur résultat alors on affiche la liste déroulante * sinon on enregistre l'unique résutat */ // if ($paramIsEditable == Chapitre::EDITABLE) { // if (count($arrayClassificationRaccourcis) > "1") { // $paramIsEditable = Chapitre::EDITABLE; // } else { // /** // * Enregistrement de la donnée raccourcis de classification // */ // if ($arrayClassificationRaccourcis) { // foreach ($arrayClassificationRaccourcis as $key => $value) { // $ftaModel->getDataField(FtaModel::FIELDNAME_ID_CLASSIFICATION_RACCOURCIS)->setFieldValue($key); // $ftaModel->saveToDatabase(); // } // } // $paramIsEditable = Chapitre::NOT_EDITABLE; // } // } $htmlList->setArrayListContent($arrayClassificationRaccourcis); /** * On vérifie si la donnée en BDD se trouve dans le tableau * Sinon alors on vide la donnée de la BDD */ $dataFieldIdClassificationRaccourcis = FtaController::checkDataInArrayKeyList($dataFieldIdClassificationRaccourcisTMP, $arrayClassificationRaccourcis); $HtmlTableName = FtaModel::TABLENAME . '_' . FtaModel::FIELDNAME_ID_CLASSIFICATION_RACCOURCIS . '_' . $paramFtaModel->getKeyValue(); /** * Vérification des règle de validation */ $dataFieldIdClassificationRaccourcis->checkValidationRules(); if ($dataFieldIdClassificationRaccourcis->getDataValidationSuccessful() == TRUE) { $htmlList->setIsWarningMessage($dataFieldIdClassificationRaccourcis->getDataValidationSuccessful()); $paramFtaModel->setDataValidationSuccessfulToTrue(); } else { $htmlList->setIsWarningMessage($dataFieldIdClassificationRaccourcis->getDataValidationSuccessful()); $htmlList->setWarningMessage($dataFieldIdClassificationRaccourcis->getDataWarningMessage()); $paramFtaModel->setDataValidationSuccessfulToFalse(); } $htmlList->setSelectedValue($dataFieldIdClassificationRaccourcis->getFieldValue()); $htmlList->getAttributes()->getName()->setValue(FtaModel::FIELDNAME_ID_CLASSIFICATION_RACCOURCIS); $htmlList->setLabel(DatabaseDescription::getFieldDocLabel(ClassificationRaccourcisAssociationModel::TABLENAME, ClassificationRaccourcisAssociationModel::FIELDNAME_ID_CLASSIFICATION_RACCOURCIS)); $htmlList->setIsEditable($paramIsEditable); $htmlList->initAbstractHtmlSelect($HtmlTableName, $htmlList->getLabel(), $dataFieldIdClassificationRaccourcis->getFieldValue(), $dataFieldIdClassificationRaccourcis->isFieldDiff(), $htmlList->getArrayListContent(), $htmlList->getIsWarningMessage(), $htmlList->getWarningMessage()); $htmlList->getEventsForm()->setOnChangeWithAjaxAutoSave(FtaModel::TABLENAME, FtaModel::KEYNAME, $paramFtaModel->getKeyValue(), FtaModel::FIELDNAME_ID_CLASSIFICATION_RACCOURCIS); /** * Description d'un champ */ $htmlList->setHelp(IntranetColumnInfoModel::getFieldDesc($dataFieldIdClassificationRaccourcis->getTableName(), $dataFieldIdClassificationRaccourcis->getFieldName(), $dataFieldIdClassificationRaccourcis->getFieldLabel(), $htmlList)); $listeClassificationRaccourcis = $htmlList->getHtmlResult(); return $listeClassificationRaccourcis; }
function changementDuFormatDeDate($valeur_date) { /* Dictionnaire des variables: * ************************** $valeur_date: contient la date au format AAAA-MM-JJ */ $checkValue = FtaController::isCheckDateFormat($valeur_date); if ($checkValue) { /** * Extraction de l'année * Format Français */ $annee = substr($valeur_date, 6, 9); $mois = substr($valeur_date, 3, 2); $jours = substr($valeur_date, 0, 2); } else { /** * Extraction de l'année * Format Anglais */ $annee = substr($valeur_date, 0, 4); $mois = substr($valeur_date, 5, 2); $jours = substr($valeur_date, 8, 2); } $return = $jours . "/" . $mois . "/" . $annee; return $return; }
/** * Affiche une message de confirmation que les données ont bien été envoyé * @param Fta2ArcadiaTransactionModel $paramFta2ArcadiaTransactionModel * @return string */ function getMessageSendDataToArcadia(Fta2ArcadiaTransactionModel $paramFta2ArcadiaTransactionModel) { /** * Utilisateur ayant envoyer la donnée */ $idUser = $paramFta2ArcadiaTransactionModel->getDataField(Fta2ArcadiaTransactionModel::FIELDNAME_ID_USER)->getFieldValue(); $userModel = new UserModel($idUser); $prenomNom = $userModel->getPrenomNom(); /** * Date d'envoie du fichier */ $dateEnvoitmp = $paramFta2ArcadiaTransactionModel->getDataField(Fta2ArcadiaTransactionModel::FIELDNAME_DATE_ENVOI)->getFieldValue(); $dateEnvoi = FtaController::changementDuFormatDeDateFR($dateEnvoitmp); $message = '<td class="contenu"><center>' . UserInterfaceMessage::FR_ARCADIA_SEND_DATA_MESSAGE . ' par ' . $prenomNom . ' le ' . $dateEnvoi . ' </center></td>' . $this->getMessageSendDataToArcadiaAgainAndCancel(); return $message; }
/** * Correction d'une FTA * Pour une FTA données, correction d'un chapitre et dévalidation des processus suivants * @param type $paramIdFta * @param type $paramIdChapitre * @param type $option * @return int */ public static function buildCorrectionChapitre($paramIdFta, $paramIdChapitre, $option) { $option['no_message_ecran']; //0=affichage à l'ecran, 1=rien $option['correction_fta_suivi_projet']; //Commentaire justifiant la correction du chapitre $option['mail_gestionnaire']; //Informe le gestionnaire de la Fta de la mise en correction de sa Fta $HtmlResult = new HtmlResult2(); $globalConfig = new GlobalConfig(); UserModel::checkUserSessionExpired($globalConfig); //Récupération des informations préalables //Nom de l'assistante de projet responsable: $idUser = $globalConfig->getAuthenticatedUser()->getKeyValue(); $mailExpediteur = $globalConfig->getAuthenticatedUser()->getDataField(UserModel::FIELDNAME_MAIL)->getFieldValue(); $nomPrenom = $globalConfig->getAuthenticatedUser()->getPrenomNom(); $idFtaWorkflowStructure = FtaWorkflowStructureModel::getIdFtaWorkflowStructureByIdFtaAndIdChapitre($paramIdFta, $paramIdChapitre); $ftaWorkflowStructureModel = new FtaWorkflowStructureModel($idFtaWorkflowStructure, $paramIdChapitre); $idFtaProcessus = $ftaWorkflowStructureModel->getDataField(FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS)->getFieldValue(); $idFtaWorkflow = $ftaWorkflowStructureModel->getDataField(FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW)->getFieldValue(); $arrayFtaSuiviCorrection = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT ' . FtaSuiviProjetModel::FIELDNAME_CORRECTION_FTA_SUIVI_PROJET . ',' . FtaSuiviProjetModel::FIELDNAME_NOTIFICATION_FTA_SUIVI_PROJET . ' FROM ' . FtaSuiviProjetModel::TABLENAME . ' WHERE ' . FtaModel::KEYNAME . '=' . $paramIdFta . ' AND ' . FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE . '=' . $paramIdChapitre . ' '); if ($arrayFtaSuiviCorrection) { foreach ($arrayFtaSuiviCorrection as $rowsFtaSuiviCorrection) { $current_correction_fta_suivi_projet = $rowsFtaSuiviCorrection[FtaSuiviProjetModel::FIELDNAME_CORRECTION_FTA_SUIVI_PROJET]; $notificationFtaSuiviProjet = $rowsFtaSuiviCorrection[FtaSuiviProjetModel::FIELDNAME_CORRECTION_FTA_SUIVI_PROJET]; } } //Intégration du commentaire de la correction if ($current_correction_fta_suivi_projet and $option[FtaSuiviProjetModel::FIELDNAME_CORRECTION_FTA_SUIVI_PROJET]) { $fullComment = $option[FtaSuiviProjetModel::FIELDNAME_CORRECTION_FTA_SUIVI_PROJET] . '\\n\\n' . $current_correction_fta_suivi_projet; $newCorrectionFtaSuiviProjet = FtaController::getComment("Correction d'une Fta", $nomPrenom, $fullComment); } // $newCorrectionFtaSuiviProjet = mysql_real_escape_string($newCorrectionFtaSuiviProjet); $newCorrectionFtaSuiviProjet = str_replace("<br/>", "\n", $newCorrectionFtaSuiviProjet); //Dévalidation du chapitre en cours $reqDevelidationChapitre = " UPDATE " . FtaSuiviProjetModel::TABLENAME . " SET " . FtaSuiviProjetModel::FIELDNAME_SIGNATURE_VALIDATION_SUIVI_PROJET . "=0, " . FtaSuiviProjetModel::FIELDNAME_CORRECTION_FTA_SUIVI_PROJET . "=\"" . $newCorrectionFtaSuiviProjet . "\" " . " WHERE " . FtaModel::KEYNAME . "=" . $paramIdFta . " AND " . FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE . "=" . $paramIdChapitre; DatabaseOperation::execute($reqDevelidationChapitre); /* * Mise à jour de la validation de l'échéance du processus * fonction non utilisé */ // FtaProcessusDelaiModel::BuildFtaProcessusValidationDelai($paramIdFta, $idFtaProcessus, $idFtaWorkflow); //Dévalidation des processus suivants $return = FtaChapitreModel::buildDevalidationChapitre($paramIdFta, $idFtaProcessus, $HtmlResult); /** * Actualisation du pourcentage de validation de la Fta */ $idFtaSuiviProjet = FtaSuiviProjetModel::getIdFtaSuiviProjetByIdFtaAndIdChapitre($paramIdFta, $paramIdChapitre); $modelFtaSuiviProjet = new FtaSuiviProjetModel($idFtaSuiviProjet); $modelFtaSuiviProjet->unsetSigned(); $modelFtaSuiviProjet->saveToDatabase(); //print_r($return['mail']); //Tableau contenant les adresses emails des personnes concernées par la dévalidation if (count($return) > 1) { $return['processus'] = array_unique($return['processus']); //Tableau contenant les identifiants des processus dévalidés unique } if (is_string($return['processus'])) { $return['processus'] = array('processus' => $return['processus']); } //Informations if ($return['processus']) { foreach ($return['processus'] as $id_Fta_Processus) { $idFtaProcessus = $id_Fta_Processus; $arrayFtaProcessus = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT DISTINCT ' . FtaProcessusModel::FIELDNAME_NOM . ' FROM ' . FtaProcessusModel::TABLENAME . ', ' . FtaWorkflowStructureModel::TABLENAME . ' WHERE ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . '=' . FtaProcessusModel::TABLENAME . '.' . FtaProcessusModel::KEYNAME . ' AND ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . '=' . $idFtaProcessus . ' AND ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW . '=' . $idFtaWorkflow); if ($arrayFtaProcessus) { foreach ($arrayFtaProcessus as $rowsFtaProcessus) { $message .= $rowsFtaProcessus[FtaProcessusModel::FIELDNAME_NOM] . '<br>'; } } } if (!$message) { $message = 'Aucun processus n\'a été dévalidé.'; } $titre = 'Liste des Processus dévalidés'; if (!$option['no_message_ecran']) { Lib::showMessage($titre, $message, $redirection); } //Envoi des mails $show_din = FtaModel::showDin($paramIdFta); $sujetElements = $show_din; if ($return['mail']) { $return['mail'] = array_unique($return['mail']); foreach ($return['mail'] as $mail) { $sujetmail = 'FTA/Correction: ' . $sujetElements; $destinataire = $mail; $expediteur = $nomPrenom . ' <' . $mailExpediteur . '>'; $text = 'Vos chapitres viennent d\'être dévalidés suite à une correction apportée par ' . $nomPrenom . '.\\n\\n' . 'OBJET DE LA CORRECTION:\\n' . '\\t' . stripslashes($option[FtaSuiviProjetModel::FIELDNAME_CORRECTION_FTA_SUIVI_PROJET]); $typeMail = 'Correction'; if ($notificationFtaSuiviProjet) { envoismail($sujetmail, $text, $destinataire, $expediteur, $typeMail); } } } /** * Génération d'un mail informant le gestionnaire de la Fta */ if ($option['mail_gestionnaire']) { $ftaModel = new FtaModel($paramIdFta); $idGestionnaire = $ftaModel->getModelCreateur()->getKeyValue(); //Tableau des id intranet actions Fta $arrayAction = IntranetDroitsAccesModel::getArrayIdIntranetActionWithAccesRightsToFtaByUser($idGestionnaire); $checkDiffusion = FtaController::isValueInArray(IntranetNiveauAccesModel::NIVEAU_FTA_DIFFUSION, $arrayAction); if ($idGestionnaire != $idUser and $checkDiffusion) { $mailGestionnaire = $ftaModel->getModelCreateur()->getDataField(UserModel::FIELDNAME_MAIL)->getFieldValue(); $sujetmail = 'FTA/Mise en Correction: ' . $sujetElements . ' par ' . $nomPrenom; $destinataire = $mailGestionnaire; $expediteur = $nomPrenom . ' <' . $mailExpediteur . '>'; $text = 'Une nouvelle version vient d\'être crée, la correction apportée par ' . $nomPrenom . ' est au sujet de :\\n' . '\\t' . stripslashes($option[FtaSuiviProjetModel::FIELDNAME_CORRECTION_FTA_SUIVI_PROJET]); $typeMail = 'CorrectionValidation2Modification'; envoismail($sujetmail, $text, $destinataire, $expediteur, $typeMail); } } } //Fin du traitement des processus suivants return 1; }
public static function getIdFtaChapitreBetweenArrayByWorkflowAndArrayByColumn($paramIdFtaWorkflow, $paramArrayByColumn) { $arrayByWorkflow = DatabaseOperation::convertSqlStatementWithoutKeyToArrayComplete("SELECT " . self::FIELDNAME_ID_FTA_CHAPITRE . " FROM " . self::TABLENAME . " WHERE " . self::FIELDNAME_ID_FTA_WORKFLOW . "=" . $paramIdFtaWorkflow); $value = FtaController::getFirstValueArrayInterset($paramArrayByColumn, $arrayByWorkflow); return $value; }
/** * On vérifie si la donnée en BDD se trouve dans le tableau * Sinon alors on vide la donnée de la BDD * @param DatabaseDataField $paramDataField * @param array $paramArray * @return \DatabaseDataField */ public static function checkDataInArrayKeyList(DatabaseDataField $paramDataField, $paramArray) { $checkDataResgister = FtaController::isValueIsInKeyArray($paramDataField->getFieldValue(), $paramArray); if (!$checkDataResgister) { $paramDataField->setFieldValue(""); } return $paramDataField; }
/** * Duplication d'un Composant * @param int $paramIdFtaComposant * @return int */ public static function duplicationIdFtaComposant($paramIdFtaComposant) { $key = FtaController::duplicateId(self::TABLENAME, $paramIdFtaComposant); return $key; }
$val_nut_acide_gras = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_VAL_ACIDE_GRAS)->getFieldValue(); $NOM_val_nut_acide_gras = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_VAL_ACIDE_GRAS)->getFieldLabel(); $val_nut_glucide = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_VAL_GLUCIDE)->getFieldValue(); $NOM_val_nut_glucide = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_VAL_GLUCIDE)->getFieldLabel(); $val_nut_sucre = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_VAL_SUCRE)->getFieldValue(); $NOM_val_nut_sucre = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_VAL_SUCRE)->getFieldLabel(); $val_nut_proteine = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_VAL_PROTEINE)->getFieldValue(); $NOM_val_nut_proteine = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_VAL_PROTEINE)->getFieldLabel(); $val_nut_sel = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_VAL_SEL)->getFieldValue(); $NOM_val_nut_sel = $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_VAL_SEL)->getFieldLabel(); /** * Détermination de l'affichage des valeurs nutritionnelles */ $arrayValNutri = array($val_nut_kcal, $val_nut_kj, $val_nut_mat_grasse, $val_nut_acide_gras, $val_nut_glucide, $val_nut_sucre, $val_nut_proteine, $val_nut_sel); foreach ($arrayValNutri as $value) { if (FtaController::checkValNutri($value)) { $checkNutri = TRUE; } } /** * Verification que l'on est toutes les données nécéssaire */ if ($poids_fta_compositionTmp and $quantite_fta_composition) { // $taux_poids_composant = ($poids_fta_compositionTmp * $quantite_fta_composition) / $poids_net_colis; // $temp_taux = round($taux_poids_composant / 10, 2); $poids_fta_composition = round($poids_fta_compositionTmp, 0); //Création de la première colonne //Désignation Commerciale // $champ="designation_commerciale_fta"; // $title = ""; // $data = $nom_fta_composition;
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) { $rowsString = $stringCorrige; } $mot = FtaController::stringToLowerCase($valueToTest); //Remplace tous les caractères du text // $stringCorrige = str_replace($mot, $valueToTest, $rowsString); $stringCorrige = preg_replace('/\\b' . $mot . '\\b/i', $valueToTest, $rowsString, 1); } } /** * Enregistrement en BDD */ switch ($key) { case "0": $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_INGREDIENT_FTA_COMPOSITION)->setFieldValue($stringCorrige); break; case "1": $ftaComposantModel->getDataField(FtaComposantModel::FIELDNAME_INGREDIENT_FTA_COMPOSITION1)->setFieldValue($stringCorrige); break;
$annee_date_echeance_fta = substr($date_echeance_fta, 0, 4); $mois_date_echeance_fta = substr($date_echeance_fta, 5, 2); $jour_date_echeance_fta = substr($date_echeance_fta, 8, 2); } //$jour_restant = mktime(0,0,0,$mois_date_echeance_processus - date('m'), $jour_date_echeance_processus - date('d'), $annee_date_echeance_processus - date ('Y')); $echeance_timestamp = mktime(0, 0, 0, $mois_date_echeance_fta, $jour_date_echeance_fta, $annee_date_echeance_fta); $today_timestamp = mktime(0, 0, 0, date('m'), date('d'), date('Y')); $seconde_restante = $echeance_timestamp - $today_timestamp; $jour_restant = round($seconde_restante / (3600 * 24), 2); if ($jour_restant < 0) { $txt_echeance = 'échéance dépassée de'; $jour_restant = abs($jour_restant); } else { $txt_echeance = 'reste'; } $dateEcheanceFtaFr = FtaController::changementDuFormatDeDateFR($date_echeance_fta); $HTML_echeance_fta = 'A valider avant le: ' . $dateEcheanceFtaFr . ' <i>(' . $txt_echeance . ' ' . $jour_restant . 'jours)</i>'; /* Sélection du mode d'affichage */ switch ($output) { /* * *********** Début Code PDF * *********** */ case 'pdf': //Constructeur $pdf = new XFPDF(); //Déclaration des variables de formatages $police_standard = 'Arial'; $t1_police = $police_standard; $t1_style = 'B';
public static function getHtmlTable($paramIdFta, $paramChoix, $paramResultLimitByPage = self::DEFAULT_RESULT_LIMIT_BY_PAGE, $paramOrderCommon = NULL) { /* * Déclaration des variables locales */ $largeur_html_C1 = self::HTML_CELL_WIDTH_C1; // largeur cellule type $largeur_html_C3 = self::HTML_CELL_WIDTH_C3; // largeur cellule type $compteur_ligne = 1; $selection_width = self::HTML_CELL_WIDTH_SELECTION; $lien = ""; $tableau_fiches = "<table class=titre width=100% border=0>" . "<tr class=titre_principal><td></td><td>"; $synthese_action = "all"; /* * Initilisation */ $globalConfig = new GlobalConfig(); UserModel::checkUserSessionExpired($globalConfig); $idUser = $globalConfig->getAuthenticatedUser()->getKeyValue(); $idFtaRole = FtaRoleModel::getKeyNameOfFirstRoleByIdUser($idUser); $ftaModel = new FtaModel($paramIdFta); //Chargement manuel des données pour optimiser les performances $abreviation_fta_etat = $ftaModel->getModelFtaEtat()->getDataField(FtaEtatModel::FIELDNAME_ABREVIATION)->getFieldValue(); $LIBELLE = $ftaModel->getDataField(FtaModel::FIELDNAME_LIBELLE)->getFieldValue(); $NB_UNIT_ELEM = $ftaModel->getDataField(FtaModel::FIELDNAME_NOMBRE_UVC_PAR_CARTON)->getFieldValue(); $Poids_ELEM = $ftaModel->getDataField(FtaModel::FIELDNAME_POIDS_ELEMENTAIRE)->getFieldValue(); $suffixe_agrologic_fta = $ftaModel->getModelClassificationRacourcis()->getNameRaccourcisClassif(); $designation_commerciale_fta = $ftaModel->getDataField(FtaModel::FIELDNAME_DESIGNATION_COMMERCIALE)->getFieldValue(); $id_dossier_fta = $ftaModel->getDataField(FtaModel::FIELDNAME_DOSSIER_FTA)->getFieldValue(); $id_version_dossier_fta = $ftaModel->getDataField(FtaModel::FIELDNAME_VERSION_DOSSIER_FTA)->getFieldValue(); $code_article_ldc = $ftaModel->getDataField(FtaModel::FIELDNAME_CODE_ARTICLE_LDC)->getFieldValue(); $dateEcheanceFtatmp = $ftaModel->getDataField(FtaModel::FIELDNAME_DATE_ECHEANCE_FTA)->getFieldValue(); $createur_nom = $ftaModel->getModelCreateur()->getDataField(UserModel::FIELDNAME_NOM)->getFieldValue(); $createur_prenom = $ftaModel->getModelCreateur()->getDataField(UserModel::FIELDNAME_PRENOM)->getFieldValue(); $workflowName = $ftaModel->getModelFtaWorkflow()->getDataField(FtaWorkflowModel::FIELDNAME_DESCRIPTION_FTA_WORKFLOW)->getFieldValue(); $idWorkflowFtaEncours = $ftaModel->getModelFtaWorkflow()->getKeyValue(); $nomSiteProduction = $ftaModel->getModelSiteProduction()->getDataField(GeoModel::FIELDNAME_GEO)->getFieldValue(); $idclassification = $ftaModel->getDataField(FtaModel::FIELDNAME_ID_FTA_CLASSIFICATION2)->getFieldValue(); $listeIdFtaRole = $ftaModel->getDataField(FtaModel::FIELDNAME_LISTE_ID_FTA_ROLE)->getFieldValue(); $idSiteDeProduction = $ftaModel->getDataField(FtaModel::FIELDNAME_SITE_PRODUCTION)->getFieldValue(); $idFtaEtat = $ftaModel->getDataField(FtaModel::FIELDNAME_ID_FTA_ETAT)->getFieldValue(); /** * Changment du format de date en Fr */ $dateEcheanceFta = FtaController::changementDuFormatDeDateFR($dateEcheanceFtatmp); /** * On obtient IdintranetAction du site de production */ $idIntranetActionsSiteDeProduction = FtaActionSiteModel::getArrayIdIntranetActionByWorkflowAndSiteDeProduction($idWorkflowFtaEncours, $idSiteDeProduction); /** * On verifie si selon le workflow et site de production en cours l'utilisateur connecté à les droits d'accès. * Puisqu'un utilisateur ne doit pas avoir accès aux boutons : * historique, transition, retirer, duplication et pourcentage d'avancement * si il n'a pas les accès aux site de production. */ $checkAccesButtonBySiteProd = IntranetActionsModel::isAccessFtaActionByIdUserFtaWorkflowAndSiteDeProduction($idUser, $idWorkflowFtaEncours, $idIntranetActionsSiteDeProduction); /** * Donne accès aux bouton de transition * pour les utilisateur se trouvant en fin de parcours de l'espace de travail */ $accesTransitionButton = FtaTransitionModel::isAccesTransitionButton($idFtaRole, $idWorkflowFtaEncours); /* * Attribution des couleurs de fonds suivant l'état de la FTA */ $bgcolor = self::getHtmlCellBgColor($abreviation_fta_etat); $bgcolorArcadia = self::getHtmlCellBgColorArcadia($paramIdFta, $bgcolor); $tauxRound = FtaSuiviProjetModel::getPourcentageFtaTauxValidation($ftaModel); /** * Lien vers l'historique de la Fta */ $lienHistorique = self::getHtmlLinkHistorique($abreviation_fta_etat, $paramIdFta, FtaRoleModel::ID_FTA_ROLE_COMMUN, $synthese_action, $tauxRound, $checkAccesButtonBySiteProd, $idFtaEtat); /** * Gestion des icones en fonction des délais */ $bgcolor_header = self::getHtmlBgColorIconHeader($abreviation_fta_etat, $paramIdFta); $icon_header = self::getHtmlIconEcheanceByEtatAndFta($abreviation_fta_etat, $paramIdFta); /** * Bouton d'accès au détail de la FTA */ $lien .= self::getHtmlLinkModify($abreviation_fta_etat, $paramIdFta, $synthese_action, $idFtaEtat, $checkAccesButtonBySiteProd); /** * Historique de modification */ $lien .= self::getHtmlLinkHistoriqueModfify($abreviation_fta_etat, $paramIdFta, $synthese_action, $idFtaEtat); /** * Bouton d'accès au rendu PDF de la FTA */ $lien .= self::getHtmlLinkPDF($abreviation_fta_etat, $paramIdFta, $idWorkflowFtaEncours); /** * Bouton d'accès à la transition */ $lien .= self::getHmlLinkTransiter($paramIdFta, $idFtaRole, $abreviation_fta_etat, $checkAccesButtonBySiteProd, $accesTransitionButton, $synthese_action, $tauxRound); /** * Bouton d'accès pour retirer une FTA */ if (FtaRoleModel::isGestionnaire($idFtaRole) and $checkAccesButtonBySiteProd and $abreviation_fta_etat != FtaEtatModel::ETAT_ABREVIATION_VALUE_RETIRE) { $lien .= self::getHtmlLinkRemoveFta($paramIdFta); $javascript .= self::getJavascriptLinkRemoveFta($paramIdFta, $idFtaRole, $synthese_action); } /** * Bouton d'accès pour dupliquer une FTA */ if (FtaRoleModel::isGestionnaire($idFtaRole) and $checkAccesButtonBySiteProd) { $lien .= self::getHtmlLinkDuplicateFta($paramIdFta, $idFtaRole); } //Désignation commerciale $din = self::getStringDINCompacted($designation_commerciale_fta, $LIBELLE, $NB_UNIT_ELEM, $Poids_ELEM); /* * Noms des services dans lequel la Fta se trouve */ $service = FtaRoleModel::getNameServiceEncours($listeIdFtaRole); // switch (TRUE) { // /** // * Si la FTA est en modification et que l'utilisateur n'est pas autorisé à accéder aux boutons. // */ // case ( // $abreviation_fta_etat == FtaEtatModel::ETAT_ABREVIATION_VALUE_MODIFICATION AND $checkAccesButton != FALSE // ): // $service = ""; // break; // // /** // * Si la FTA est en modification et que l'utilisateur est autorisé à accéder aux boutons. // */ // case ( // $abreviation_fta_etat == FtaEtatModel::ETAT_ABREVIATION_VALUE_MODIFICATION AND $checkAccesButton != TRUE // ): // $service = FtaRoleModel::getNameServiceEncours($listeIdFtaRole); // break; // /** // * Sinon: // */ // default: // $service = FtaRoleModel::getNameServiceEncours($listeIdFtaRole); // } /** * Calssification */ if ($idclassification) { $classification = ClassificationArborescenceArticleCategorieContenuModel::getElementClassificationFta($idclassification, ClassificationFta2Model::FIELDNAME_ID_PROPRIETAIRE_GROUPE); } //Nom de l'assistante de projet responsable: $createur_link = "\"Géré par {$createur_prenom} {$createur_nom}\""; $tableau_fiches .= "<tr class=contenu>\r\n <td {$bgcolor_header} " . $selection_width . " > {$icon_header} {$selection}</td>\r\n "; $tableau_fiches .= '<td ' . $bgcolor . ' width=8%>' . $nomSiteProduction . '<br>(' . $workflowName . ')</td>' . '<td ' . $bgcolor . ' width=3%>' . $classification . '</td>' . '<td ' . $bgcolor . ' width=3%>' . $suffixe_agrologic_fta . '</td>'; // Raccourcie Class. $tableau_fiches .= "<td {$bgcolor} {$largeur_html_C1}><a title={$createur_link} />" . $din . "</a></td>" . "<td {$bgcolor} width=3%>" . $id_dossier_fta . "v" . $id_version_dossier_fta . "</td>"; $tableau_fiches .= "<td {$bgcolorArcadia} width=\"1%\"> <b><font size=\"2\" color=\"#0000FF\">" . $code_article_ldc . "</font></b></td>"; if ($abreviation_fta_etat == FtaEtatModel::ETAT_ABREVIATION_VALUE_MODIFICATION) { $tableau_fiches .= '<td ' . $bgcolor . $largeur_html_C3 . ' align=center>' . $dateEcheanceFta . '</td>'; //échance de validation } else { $tableau_fiches .= '<td ' . $bgcolor . $largeur_html_C3 . ' align=center>' . $dateEcheanceFta . '</td>'; //échance de validation } $tableau_fiches .= '<td ' . $bgcolor . ' width=5% align=center >' . $lienHistorique . '</td>' . '<td ' . $bgcolor . $largeur_html_C3 . ' align=center >' . $service . '</td>' . '<td ' . $bgcolor . ' width=8%' . ' align=center >' . $lien . '</td>'; // Actions $tableau_fiches .= "</tr>"; $compteur_ligne++; // }//fin tant que tableau_origine $tableau_fiches = $javascript . $tableau_fiches . "</table>"; //Ajoute de la fonction de traitement de masse if ($traitementDeMasse) { $liste_action_groupe = FtaTransitionModel::getListeFtaGrouper($abreviation_fta_etat); $tableau_fiches .= ' <img src = ../lib/images/fleche_gauche_et_haut.png width = 38 height = 22 border = 0 /> <i>Transitions groupées</i>: ' . $liste_action_groupe . ' <input type = \'text\' name=\'subject\' size=\'20\' /> <input type=image src=images/transiter.png width=20 height=20 /> <input type=hidden name=action value=transition_groupe> '; } return $tableau_fiches; }
/** * On obtient les corrections de chaque chapitres * @param int $paramIdFta * @param int $paramIdFtaWorkflow * @return int */ public static function getAllCorrectionsFromChapitres($paramIdFta, $paramIdFtaWorkflow) { $arrayCommentaireAllChapitre = DatabaseOperation::convertSqlStatementWithoutKeyToArray("SELECT " . FtaSuiviProjetModel::FIELDNAME_CORRECTION_FTA_SUIVI_PROJET . "," . UserModel::FIELDNAME_PRENOM . "," . UserModel::FIELDNAME_NOM . "," . FtaSuiviProjetModel::TABLENAME . "." . FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE . "," . FtaSuiviProjetModel::TABLENAME . "." . FtaSuiviProjetModel::FIELDNAME_DATE_VALIDATION_SUIVI_PROJET . " FROM " . FtaSuiviProjetModel::TABLENAME . ", " . UserModel::TABLENAME . ", " . FtaWorkflowStructureModel::TABLENAME . " WHERE ( " . FtaSuiviProjetModel::TABLENAME . "." . FtaSuiviProjetModel::FIELDNAME_SIGNATURE_VALIDATION_SUIVI_PROJET . " = " . UserModel::TABLENAME . "." . UserModel::KEYNAME . " ) " . " AND " . FtaSuiviProjetModel::TABLENAME . "." . FtaSuiviProjetModel::FIELDNAME_ID_FTA . " = " . $paramIdFta . " AND " . FtaWorkflowStructureModel::TABLENAME . "." . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW . " = " . $paramIdFtaWorkflow . " AND " . FtaWorkflowStructureModel::TABLENAME . "." . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_CHAPITRE . " = " . FtaSuiviProjetModel::TABLENAME . "." . FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE . " ORDER BY " . FtaSuiviProjetModel::FIELDNAME_DATE_VALIDATION_SUIVI_PROJET . " DESC "); if ($arrayCommentaireAllChapitre) { foreach ($arrayCommentaireAllChapitre as $rowsCommentaireAllChapitre) { if ($rowsCommentaireAllChapitre[FtaSuiviProjetModel::FIELDNAME_CORRECTION_FTA_SUIVI_PROJET]) { $idFtaChapitre = $rowsCommentaireAllChapitre[FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE]; $dateDeValidation = $rowsCommentaireAllChapitre[FtaSuiviProjetModel::FIELDNAME_DATE_VALIDATION_SUIVI_PROJET]; $ftaChapitreModel = new FtaChapitreModel($idFtaChapitre); $nomChapitre = $ftaChapitreModel->getDataField(FtaChapitreModel::FIELDNAME_NOM_USUEL_CHAPITRE)->getFieldValue(); $action = "Chapitre " . $nomChapitre; $nomPrenom = $rowsCommentaireAllChapitre[UserModel::FIELDNAME_PRENOM] . " " . $rowsCommentaireAllChapitre[UserModel::FIELDNAME_NOM]; $comment = $rowsCommentaireAllChapitre[FtaSuiviProjetModel::FIELDNAME_CORRECTION_FTA_SUIVI_PROJET]; $return .= FtaController::getComment($action, $nomPrenom, $comment, $dateDeValidation) . "\n"; } } $return = "<tr class=contenu><td> Récapitulatif des corrections</td><td>" . $return . "</td></tr>"; } else { $return = "<tr class=contenu><td> Récapitulatif des corrections</td><td></td></tr>"; } return str_replace(" ", " ", nl2br($return)); }
$idFtaEtat = Lib::getParameterFromRequest(FtaEtatModel::KEYNAME); $abreviationFtaEtat = Lib::getParameterFromRequest(FtaEtatModel::FIELDNAME_ABREVIATION); $comeback = Lib::getParameterFromRequest(FtaEtatModel::KEYNAME); $createurFtaOLD = Lib::getParameterFromRequest('createur_fta'); $createurFtaNEW = Lib::getParameterFromRequest(FtaModel::TABLENAME . '_' . FtaModel::FIELDNAME_CREATEUR); /** * Initialisation */ $globalConfig = new GlobalConfig(); $idUser = $globalConfig->getAuthenticatedUser()->getKeyValue(); $nomPrenomConnect = $globalConfig->getAuthenticatedUser()->getPrenomNom(); $userModelOLD = new UserModel($createurFtaOLD); $userModelNEW = new UserModel($createurFtaNEW); $nomWorkflowOLD = $userModelOLD->getPrenomNom(); $nomWorkflowNEW = $userModelNEW->getPrenomNom(); $commentaire = FtaController::getCommentGestionnaireChange($nomWorkflowOLD, $nomWorkflowNEW, $nomPrenomConnect); switch ($action) { /* S'il n'y a pas d'actions défini */ case 'valider': if ($createurFtaOLD != $createurFtaNEW) { $modelFta = new FtaModel($paramIdFta); /** * Commentaire de modification du gestionnaire de la Fta */ $commentaire_maj_fta = $modelFta->getDataField(FtaModel::FIELDNAME_COMMENTAIRE_MAJ_FTA)->getFieldValue(); $modelFta->getDataField(FtaModel::FIELDNAME_COMMENTAIRE_MAJ_FTA)->setFieldValue($commentaire . $commentaire_maj_fta); $modelFta->getDataField(FtaModel::FIELDNAME_CREATEUR)->setFieldValue($createurFtaNEW); $modelFta->saveToDatabase(); //Redirection
case 'valider': if ($is_data_validation_successful) { /** * Initialisation */ $idFtaSuiviProjet = FtaSuiviProjetModel::getIdFtaSuiviProjetByIdFtaAndIdChapitre($paramIdFta, $paramIdFtaChapitreEncours); $modelFtaSuiviProjet = new FtaSuiviProjetModel($idFtaSuiviProjet); $modeChapitre = new FtaChapitreModel($paramIdFtaChapitreEncours); $idFtaWorkflowStruture = FtaWorkflowStructureModel::getIdFtaWorkflowStructureByIdFtaAndIdChapitre($paramIdFta, $paramIdFtaChapitreEncours); $modelFtaWorkflowStruture = new FtaWorkflowStructureModel($idFtaWorkflowStruture); /** * Actualisation de la durée de vie garantie client */ $nomFtaWorkflow = $modelFtaWorkflowStruture->getModelFtaWorkflow()->getDataField(FtaWorkflowModel::FIELDNAME_NOM_FTA_WORKFLOW)->getFieldValue(); $nomFtaChapitre = $modelFtaWorkflowStruture->getModelFtaChapitre()->getDataField(FtaChapitreModel::FIELDNAME_NOM_CHAPITRE)->getFieldValue(); FtaController::refreshDureeDeVieMDD($nomFtaWorkflow, $nomFtaChapitre, $modelFtaSuiviProjet->getModelFta()); /* * Enregistrement de la signature */ // $isFtaDataValidationSuccess = $modelFtaSuiviProjet->getModelFta()->isFtaDataValidationSuccess($paramIdFtaChapitreEncours); $isFtaDataValidationSuccess = $modelFtaSuiviProjet->getModelFta()->isFtaDataValidationSuccess(); if ($paramSignatureValidationSuiviProjet and $isFtaDataValidationSuccess == "0") { $modelFtaSuiviProjet->getDataField(FtaSuiviProjetModel::FIELDNAME_DATE_VALIDATION_SUIVI_PROJET)->setFieldValue(date("Y-m-d H:i:s")); $modelFtaSuiviProjet->setSigned($paramSignatureValidationSuiviProjet); $modelFtaSuiviProjet->saveToDatabase(); $modelFta->manageFtaPrimaireSecondaire(FtaEtatModel::ID_VALUE_MODIFICATION, FtaVerrouillageChampsModel::CHANGE_STATE_FALSE); } } else { $titre = 'Informations'; $message = 'Vous ne pouvez pas valider le chapitre une information est manquante ou incorrecte,<br>' . 'mise en évidence en Rouge.'; Lib::showMessage($titre, $message);
/** * * @param type $paramIdFta */ public static function duplicateFtaConditionnementByIdFta($paramIdFtaOrig, $paramIdFtaNew) { FtaController::duplicateWithNewId(self::TABLENAME, $paramIdFtaOrig, $paramIdFtaNew); }
/** * 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; }
/** * Affiche le tableau de récapitulatif des droits d'accès sur le module Fta * @return string */ public static function getHtmlArrayAccesRightUser() { /** * Entête du tableau */ $bloc .= "<" . "table " . "border=1 " . "width=100% " . "class=contenu " . ">" . "<th>" . "Utilisateurs" . "</th><th>" . "Accès général" . "</th><th>" . "Diffusion" . "</th><th>" . "Impression" . "</th><th>" . "Espace de travail <br>(Mettre la souris sur un espace de travail pour voir le détail) " . "</th>"; //lister les utilisateurs concernés $arrayUser = self::getArrayUserWithAccesRightsToFta(); foreach ($arrayUser as $rowsUser) { $lienWorkflow = ""; $listeRole = ""; $virgule = ""; $virgule2 = ""; //Tableau des id intranet actions Fta $arrayAction = self::getArrayIdIntranetActionWithAccesRightsToFtaByUser($rowsUser[UserModel::KEYNAME]); $bloc .= "<tr class=contenu><td>" . $rowsUser[UserModel::FIELDNAME_PRENOM] . " " . $rowsUser[UserModel::FIELDNAME_NOM] . "</td>"; /** * Vérification des droits d'accès généraux */ $checkModification = FtaController::isValueInArray(IntranetNiveauAccesModel::NIVEAU_FTA_MODIFICATION, $arrayAction); $checkConsultation = FtaController::isValueInArray(IntranetNiveauAccesModel::NIVEAU_FTA_CONSULTATION, $arrayAction); $checkDiffusion = FtaController::isValueInArray(IntranetNiveauAccesModel::NIVEAU_FTA_DIFFUSION, $arrayAction); $checkImpression = FtaController::isValueInArray(IntranetNiveauAccesModel::NIVEAU_FTA_IMPRESSION, $arrayAction); /** * Si accès Fta Modif */ if ($checkModification) { $accesGeneralValue = "Modification"; $diffusion = "Voir espaces de Travail"; /** * Identification des Id intranet action workflow */ $arrayIdIntranetParents = DatabaseOperation::convertSqlStatementWithoutKeyToArrayComplete(" SELECT " . IntranetActionsModel::KEYNAME . " FROM " . IntranetActionsModel::TABLENAME . " WHERE " . IntranetActionsModel::FIELDNAME_TAG_INTRANET_ACTIONS . "='" . IntranetActionsModel::VALUE_WORKFLOW . "' "); $arrayIdActionWorkflow = array_intersect($arrayIdIntranetParents, $arrayAction); if ($arrayIdActionWorkflow) { foreach ($arrayIdActionWorkflow as $rowsIdActionWorkflow) { $listeRole = ""; $virgule2 = ""; /** * Identification du workflow */ $arrayIdIntranetParents = DatabaseOperation::convertSqlStatementWithoutKeyToArrayComplete(" SELECT " . FtaWorkflowModel::FIELDNAME_DESCRIPTION_FTA_WORKFLOW . " FROM " . FtaWorkflowModel::TABLENAME . " WHERE " . FtaWorkflowModel::FIELDNAME_ID_INTRANET_ACTIONS . "=" . $rowsIdActionWorkflow); /** * Identification des Id intranet action role du workflow */ $arrayIdIntranetRole = DatabaseOperation::convertSqlStatementWithoutKeyToArrayComplete(" SELECT " . IntranetActionsModel::KEYNAME . " FROM " . IntranetActionsModel::TABLENAME . " WHERE " . IntranetActionsModel::FIELDNAME_TAG_INTRANET_ACTIONS . "='" . IntranetActionsModel::VALUE_ROLE . "' " . " AND " . IntranetActionsModel::FIELDNAME_PARENT_INTRANET_ACTIONS . "=" . $rowsIdActionWorkflow); $arrayIdActionRole = array_intersect($arrayIdIntranetRole, $arrayAction); if ($arrayIdActionRole) { foreach ($arrayIdActionRole as $rowsIdActionRole) { /** * Liste des rôles attribué pour le workflow */ $arrayRole = DatabaseOperation::convertSqlStatementWithoutKeyToArrayComplete(" SELECT " . FtaRoleModel::FIELDNAME_DESCRIPTION_FTA_ROLE . " FROM " . FtaRoleModel::TABLENAME . "," . FtaActionRoleModel::TABLENAME . " WHERE " . FtaActionRoleModel::FIELDNAME_ID_INTRANET_ACTIONS . "=" . $rowsIdActionRole . " AND " . FtaRoleModel::TABLENAME . "." . FtaRoleModel::KEYNAME . "=" . FtaActionRoleModel::TABLENAME . "." . FtaActionRoleModel::FIELDNAME_ID_FTA_ROLE); $listeRole .= $virgule2 . $arrayRole["0"]; $virgule2 = ", "; } } $lienWorkflow .= $virgule . "<span title=\" " . $listeRole . " \" >" . $arrayIdIntranetParents["0"] . "</span>"; $virgule = ", "; } } /** * Si accès Fta Consultation */ } elseif ($checkConsultation) { $accesGeneralValue = "Consultation"; /** * Droits de difussion */ if ($checkDiffusion) { $geoModel = new GeoModel($rowsUser[UserModel::FIELDNAME_LIEU_GEO]); $diffusion = $geoModel->getDataField(GeoModel::FIELDNAME_GEO)->getFieldValue(); } else { $diffusion = "Non"; } /** * Droits de difussion */ } else { $accesGeneralValue = "Non"; if ($checkDiffusion) { $geoModel = new GeoModel($rowsUser[UserModel::FIELDNAME_LIEU_GEO]); $diffusion = $geoModel->getDataField(GeoModel::FIELDNAME_GEO)->getFieldValue(); } else { $diffusion = "Non"; } } /** * Droits d'impression */ if ($checkImpression) { $impression = "Oui"; } else { $impression = "Non"; } $bloc .= "<td>" . $accesGeneralValue . "</td>" . "<td>" . $diffusion . "</td>" . "<td>" . $impression . "</td>" . "<td>" . $lienWorkflow . "</td></tr>"; } return $bloc; }
/** * Fonction transitant une fiche vers un etat donné * @param type $paramIdFta * @param type $paramAbreviationFtaTransition * @param type $paramCommentaireMajFta * @param type $paramIdWorkflow * @param type $paramListeChapitres * @return array */ public static function buildTransitionFta($paramIdFta, $paramAbreviationFtaTransition, $paramCommentaireMajFta, $paramIdWorkflow, $paramListeChapitres, $dateEcheanceFta) { /* * Codes de retour de la fonction: */ /* 0: FTA correctement transitée 1: FTA non transité car risque de doublon 3: Erreur autre */ $return["0"] = "0"; /* * Chargement de l'enregistrement */ $ftaModel = new FtaModel($paramIdFta); $idFtaEtatByIdFta = $ftaModel->getDataField(FtaModel::FIELDNAME_ID_FTA_ETAT)->getFieldValue(); $idDossierFta = $ftaModel->getDossierFta(); $codeArticleLdc = $ftaModel->getDataField(FtaModel::FIELDNAME_CODE_ARTICLE_LDC)->getFieldValue(); $siteDeProduction = $ftaModel->getDataField(FtaModel::FIELDNAME_SITE_PRODUCTION)->getFieldValue(); $versionDossierFta = $ftaModel->getDataField(FtaModel::FIELDNAME_VERSION_DOSSIER_FTA)->getFieldValue(); $old_nouveau_maj_fta = $ftaModel->getDataField(FtaModel::FIELDNAME_COMMENTAIRE_MAJ_FTA)->getFieldValue(); $ftaEtatModel = new FtaEtatModel($idFtaEtatByIdFta); $initial_abreviation_fta_etat = $ftaEtatModel->getDataField(FtaEtatModel::FIELDNAME_ABREVIATION)->getFieldValue(); $globalConfig = new GlobalConfig(); UserModel::checkUserSessionExpired($globalConfig); $nomPrenom = $globalConfig->getAuthenticatedUser()->getPrenomNom(); $idUser = $globalConfig->getAuthenticatedUser()->getKeyValue(); /* * ***************************************************************************** Pré-traitement spécifique * ***************************************************************************** */ switch (TRUE) { case $paramAbreviationFtaTransition == FtaEtatModel::ETAT_ABREVIATION_VALUE_VALIDE: //Passer en Validée //Retirer les versions obsolètes $req = "UPDATE " . FtaModel::TABLENAME . " SET " . FtaModel::FIELDNAME_ID_FTA_ETAT . "='6'" . " WHERE " . FtaModel::FIELDNAME_DOSSIER_FTA . "='" . $idDossierFta . "' "; $result = DatabaseOperation::execute($req); //Mise à jour de la date de validation // $ftaModel->getDataField(FtaModel::FIELDNAME_DATE_DERNIERE_MAJ_FTA)->setFieldValue(date('d-m-Y')); // $ftaModel->saveToDatabase(); /* * Préparation des données */ $nouveau_maj_fta = FtaController::getComment("Validation d'une Fta", $nomPrenom, NULL); /** * Gestion des Code Article Arcadia Primaire/Secondaires */ $ftaModel->manageFtaPrimaireSecondaire(FtaEtatModel::ID_VALUE_VALIDE, FtaVerrouillageChampsModel::CHANGE_STATE_TRUE_VALIDATION_CHAPITRE); break; // case $paramAbreviationFtaTransition == FtaEtatModel::ETAT_ABREVIATION_VALUE_WORKFLOW: // //Dans le cas d'une mise à jour, récupération des Chapitres à corriger. // // $liste_chapitre_maj_fta = ";"; // //Mise à jour de la table Fta_suivie_projet // FtaSuiviProjetModel::initFtaSuiviProjet($paramIdFta); // foreach ($paramListeChapitres as $rowsChapitre) { // //Parcours des chapitres // //Si le chapitre a été sélectionné, on l'enregistre dans le tableau de résultat // $liste_chapitre_maj_fta.=$rowsChapitre . ";"; // //Correction des chapitres // $paramOption["no_message_ecran"] = "1"; // $paramOption["correction_fta_suivi_projet"] = $nouveau_maj_fta; // FtaChapitreModel::BuildCorrectionChapitre($paramIdFta, $rowsChapitre, $paramOption); // } // $paramAbreviationFtaTransition = FtaEtatModel::ETAT_ABREVIATION_VALUE_MODIFICATION; // break; // case $paramAbreviationFtaTransition == FtaEtatModel::ETAT_ABREVIATION_VALUE_WORKFLOW: // //Dans le cas d'une mise à jour, récupération des Chapitres à corriger. // // $liste_chapitre_maj_fta = ";"; // //Mise à jour de la table Fta_suivie_projet // FtaSuiviProjetModel::initFtaSuiviProjet($paramIdFta); // foreach ($paramListeChapitres as $rowsChapitre) { // //Parcours des chapitres // //Si le chapitre a été sélectionné, on l'enregistre dans le tableau de résultat // $liste_chapitre_maj_fta.=$rowsChapitre . ";"; // //Correction des chapitres // $paramOption["no_message_ecran"] = "1"; // $paramOption["correction_fta_suivi_projet"] = $nouveau_maj_fta; // FtaChapitreModel::BuildCorrectionChapitre($paramIdFta, $rowsChapitre, $paramOption); // } // $paramAbreviationFtaTransition = FtaEtatModel::ETAT_ABREVIATION_VALUE_MODIFICATION; // break; case $paramAbreviationFtaTransition == FtaEtatModel::ETAT_ABREVIATION_VALUE_MODIFICATION: //Passer en Initialisation //Vérification que le dossier n'a pas une fiche déjà en Mise à jour $array = DatabaseOperation::convertSqlStatementWithoutKeyToArray("SELECT " . FtaModel::KEYNAME . " FROM " . FtaModel::TABLENAME . "," . FtaEtatModel::TABLENAME . " WHERE " . FtaModel::FIELDNAME_DOSSIER_FTA . "=" . $idDossierFta . " " . " AND " . FtaModel::TABLENAME . "." . FtaModel::FIELDNAME_ID_FTA_ETAT . "=" . FtaEtatModel::TABLENAME . "." . FtaEtatModel::KEYNAME . " AND (" . FtaEtatModel::FIELDNAME_ABREVIATION . "<>'" . FtaEtatModel::ETAT_ABREVIATION_VALUE_VALIDE . "' AND " . FtaEtatModel::FIELDNAME_ABREVIATION . "<>'" . FtaEtatModel::ETAT_ABREVIATION_VALUE_RETIRE . "' AND " . FtaEtatModel::FIELDNAME_ABREVIATION . "<>'" . FtaEtatModel::ETAT_ABREVIATION_VALUE_ARCHIVE . "') "); $verrou = count($array); if ($verrou and !$_SESSION["mode_debug"]) { $titre = "Action vérrouillée"; $message = "Cette fiche est déjà en cours de modification."; $redirection = ""; Lib::showMessage($titre, $message, $redirection); $return["0"] = "1"; return $return; exit; } /** * Transition d'une Fta Archivévers Modifier doit être la dernier version du dossier * afin d'éviter les doublons */ if ($initial_abreviation_fta_etat == FtaEtatModel::ETAT_ABREVIATION_VALUE_ARCHIVE or $initial_abreviation_fta_etat == FtaEtatModel::ETAT_ABREVIATION_VALUE_VALIDE) { /** * On récupère la dernière version du dossier */ $arrayIdDossierVersion = DatabaseOperation::convertSqlStatementWithoutKeyToArray("SELECT MAX(" . FtaModel::FIELDNAME_VERSION_DOSSIER_FTA . ") FROM " . FtaModel::TABLENAME . " WHERE " . FtaModel::FIELDNAME_DOSSIER_FTA . "=" . $idDossierFta); foreach ($arrayIdDossierVersion as $rowsIdDossierVersion) { $IdDossierVersion = $rowsIdDossierVersion['MAX(' . FtaModel::FIELDNAME_VERSION_DOSSIER_FTA . ')']; } } else { $IdDossierVersion = ""; } //Dans le cas d'une mise à jour, récupération des Chapitres à corriger. $liste_chapitre_maj_fta = ";"; foreach ($paramListeChapitres as $rowsChapitre) { //Parcours des chapitres //Si le chapitre a été sélectionné, on l'enregistre dans le tableau de résultat $liste_chapitre_maj_fta .= $rowsChapitre . ";"; } /** * Commentaire de transition */ $nouveau_maj_fta = FtaController::getComment("Correction d'une Fta", $nomPrenom, $paramCommentaireMajFta); // Retirer la FTA de présentation avant de créer la nouvelle version en modification. if ($initial_abreviation_fta_etat == FtaEtatModel::ETAT_ABREVIATION_VALUE_PRESENTATION) { //Retirer la version de présentation $req = "UPDATE " . FtaModel::TABLENAME . " SET " . FtaModel::FIELDNAME_ID_FTA_ETAT . "='6'" . "WHERE id_fta='" . $paramIdFta . "' "; $result = DatabaseOperation::execute($req); } //Duplication de la fiche $id_fta_original = $paramIdFta; $action_duplication = "version"; $option_duplication["abreviation_etat_destination"] = $paramAbreviationFtaTransition; $option_duplication["selection_chapitre"] = $paramListeChapitres; $option_duplication["site_de_production"] = $siteDeProduction; $option_duplication["id_version_dossier_fta"] = $IdDossierVersion; $option_duplication["date_echeance_fta"] = $dateEcheanceFta; $option_duplication["nouveau_maj_fta"] = $nouveau_maj_fta; $idFtaNew = FtaModel::buildDuplicationFta($id_fta_original, $action_duplication, $option_duplication, $paramIdWorkflow); $ftaModel = new FtaModel($idFtaNew); $codeArticleLdc = $ftaModel->getDataField(FtaModel::FIELDNAME_CODE_ARTICLE_LDC)->getFieldValue(); $paramIdFta = $idFtaNew; break; case $paramAbreviationFtaTransition == FtaEtatModel::ETAT_ABREVIATION_VALUE_RETIRE: //Passer en Retirer /* * Préparation des données */ $nouveau_maj_fta = FtaController::getComment("Retirer une Fta", $nomPrenom, NULL); break; case $paramAbreviationFtaTransition == FtaEtatModel::ETAT_ABREVIATION_VALUE_ARCHIVE: //Passer en Archivé /* * Préparation des données */ $nouveau_maj_fta = FtaController::getComment("Archivage d'une Fta", $nomPrenom, NULL); break; default: break; } //Fin Pré-traitement spécifique /* * ************************************************************* 1**************** Traitement Commun * ***************************************************************************** */ /** * Mise à jour de la date derniere modification de l'état de la Fta */ $ftaModel->getDataField(FtaModel::FIELDNAME_DATE_DERNIERE_MAJ_FTA)->setFieldValue(date('Y-m-d')); $ftaModel->saveToDatabase(); //Récupération du nouvel état de la fiche $arrayIdFtaEtat = DatabaseOperation::convertSqlStatementWithoutKeyToArray("SELECT " . FtaEtatModel::KEYNAME . " FROM " . FtaEtatModel::TABLENAME . " WHERE " . FtaEtatModel::FIELDNAME_ABREVIATION . "=\"" . $paramAbreviationFtaTransition . "\""); foreach ($arrayIdFtaEtat as $value) { $idFtaEtat = $value[FtaEtatModel::KEYNAME]; } if ($old_nouveau_maj_fta) { $nouveau_maj_fta = str_replace('"', '', $nouveau_maj_fta . $old_nouveau_maj_fta); } $req = "UPDATE " . FtaModel::TABLENAME . " SET " . FtaModel::FIELDNAME_ID_FTA_ETAT . "=" . $idFtaEtat . ", " . FtaModel::FIELDNAME_COMMENTAIRE_MAJ_FTA . "=\"" . $nouveau_maj_fta . "\" WHERE " . FtaModel::KEYNAME . "=\"" . $paramIdFta . "\" "; DatabaseOperation::execute($req); /** * Historisation du changement d'état de la Fta */ FtaEtatHistoriqueModel::setFtaEtatHistorique($paramIdFta, $idDossierFta, $versionDossierFta, $idFtaEtatByIdFta, $idFtaEtat, $idUser, $initial_abreviation_fta_etat); //Fin Traitement Commun /* * ***************************************************************************** Post-traitement * ***************************************************************************** */ switch ($paramAbreviationFtaTransition) { case 'I': //Enregistrement des chapitres concernés par la mise à jour $req = "UPDATE " . FtaModel::TABLENAME . " SET " . FtaModel::FIELDNAME_LISTE_CHAPITRE_MAJ_FTA . "='" . $liste_chapitre_maj_fta . "' " . " WHERE " . FtaModel::KEYNAME . "='" . $paramIdFta . "' "; DatabaseOperation::execute($req); case 'V': //Désactivation de l'ancien Code Article Agrologic $req = "UPDATE " . FtaModel::TABLENAME . " SET " . FtaModel::FIELDNAME_CODE_ARTICLE . "=NULL " . "," . FtaModel::FIELDNAME_ACTIF . "='0'" . "," . FtaModel::FIELDNAME_DATE_DE_VALIDATION_FTA . "='" . date("Y-m-d") . "' WHERE " . FtaModel::FIELDNAME_CODE_ARTICLE_LDC . "='" . $codeArticleLdc . "' " . " AND " . FtaModel::KEYNAME . "='" . $paramIdFta . "' "; DatabaseOperation::execute($req); //Activation du nouvel Article $req = "UPDATE " . FtaModel::TABLENAME . " SET " . FtaModel::FIELDNAME_CODE_ARTICLE . "='" . "1" . "', actif='-1' " . " WHERE " . FtaModel::KEYNAME . "='" . $paramIdFta . "' "; DatabaseOperation::execute($req); break; case 'A': case 'R': $req = "UPDATE " . FtaModel::TABLENAME . " SET " . FtaModel::FIELDNAME_ACTIF . "=0" . "," . FtaModel::FIELDNAME_CODE_ARTICLE . "=NULL" . " WHERE " . FtaModel::KEYNAME . "='" . $paramIdFta . "' "; DatabaseOperation::execute($req); break; } $return["id_fta_new"] = $paramIdFta; $return[FtaEtatModel::KEYNAME] = $idFtaEtat; $return[FtaEtatModel::FIELDNAME_ABREVIATION] = $paramAbreviationFtaTransition; return $return; }