/** * Devalidation d'un chapitre * @param type $paramIdFta * @param type $paramIdProcessus * @param type $htmlResult * @return type */ public static function buildDevalidationChapitre($paramIdFta, $paramIdProcessus, $htmlResult) { //Déclarion des variables $modelFta = new FtaModel($paramIdFta); $id_fta_workflow = $modelFta->getDataField(FtaModel::FIELDNAME_WORKFLOW)->getFieldValue(); $return[UserModel::FIELDNAME_MAIL]; //Tableau contenant les adresses email des utilisateurs concerné par la dévalidation. $return['processus']; //Tableau contenant la liste des identifiants des processus dévalidés //Récupération des données $arrayFtaEtatAndFta = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT ' . FtaEtatModel::FIELDNAME_ABREVIATION . ' FROM ' . FtaModel::TABLENAME . ',' . FtaEtatModel::TABLENAME . ' WHERE ' . FtaModel::KEYNAME . '=' . $paramIdFta . ' AND ' . FtaEtatModel::TABLENAME . '.' . FtaEtatModel::KEYNAME . '=' . FtaModel::TABLENAME . '.' . FtaModel::FIELDNAME_ID_FTA_ETAT); foreach ($arrayFtaEtatAndFta as $rowsFtaEtatAndFta) { $abreviation_fta_etat = $rowsFtaEtatAndFta[FtaEtatModel::FIELDNAME_ABREVIATION]; } //Dénotification des chapitres en cours $reqDenotification = 'UPDATE ' . FtaWorkflowStructureModel::TABLENAME . ',' . FtaSuiviProjetModel::TABLENAME . ' SET ' . FtaSuiviProjetModel::FIELDNAME_NOTIFICATION_FTA_SUIVI_PROJET . '=0 ' . ' WHERE ( ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_CHAPITRE . '=' . FtaSuiviProjetModel::TABLENAME . '.' . FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE . ' ) ' . ' AND ( ( ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . ' = \'' . $paramIdProcessus . '\' ' . ' AND ' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW . '=' . $id_fta_workflow . ' AND ' . FtaSuiviProjetModel::TABLENAME . '.' . FtaSuiviProjetModel::FIELDNAME_ID_FTA . ' = \'' . $paramIdFta . '\' ) )'; DatabaseOperation::execute($reqDenotification); //Recherches des processus suivants $arrayProcessusCycle = FtaProcessusCycleModel::getArrayProccusNextValidateFromIdFta($paramIdFta, $id_fta_workflow, $abreviation_fta_etat, $paramIdProcessus); //Enregistrement du processus $htmlResult->setProcessus($paramIdProcessus); if ($htmlResult->getHtmlResult() == NULL) { $array = array('processus' => $htmlResult->getProcessus()); $htmlResult->setHtmlResult($array); } else { $array = $htmlResult->getHtmlResult(); $arrayTmp = array('processus' => $htmlResult->getProcessus()); $array3 = array_merge_recursive($arrayTmp, $array); $htmlResult->setHtmlResult($array3); } //Parcour des processus suivants if ($arrayProcessusCycle != NULL) { foreach ($arrayProcessusCycle as $rowsProcessusCycle) { //Recherche et Dévalidation des chapitres dans le suivi de projet $paramIdProcessus = $rowsProcessusCycle[FtaProcessusCycleModel::FIELDNAME_PROCESSUS_NEXT]; $multisite_fta_processus = $rowsProcessusCycle[FtaProcessusModel::FIELDNAME_MULTISITE_FTA_PROCESSUS]; $reqDevalidation = 'UPDATE ' . FtaWorkflowStructureModel::TABLENAME . ',' . FtaSuiviProjetModel::TABLENAME . ' SET ' . FtaSuiviProjetModel::FIELDNAME_SIGNATURE_VALIDATION_SUIVI_PROJET . '=0 ' . ' WHERE ( ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_CHAPITRE . '=' . FtaSuiviProjetModel::TABLENAME . '.' . FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE . ' ) ' . ' AND ( ( ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . ' = \'' . $paramIdProcessus . '\' ' . ' AND ' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW . '=' . $id_fta_workflow . ' AND ' . FtaSuiviProjetModel::TABLENAME . '.' . FtaSuiviProjetModel::FIELDNAME_ID_FTA . ' = \'' . $paramIdFta . '\' ) )'; DatabaseOperation::execute($reqDevalidation); if ($reqDevalidation) { //Si le processus a été dévalidé, alors on informe //Dénotification $reqDenotification = 'UPDATE ' . FtaWorkflowStructureModel::TABLENAME . ',' . FtaSuiviProjetModel::TABLENAME . ' SET ' . FtaSuiviProjetModel::FIELDNAME_NOTIFICATION_FTA_SUIVI_PROJET . '=0 ' . ' WHERE ( ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_CHAPITRE . '=' . FtaSuiviProjetModel::TABLENAME . '.' . FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE . ' ) ' . ' AND ( ( ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . ' = \'' . $paramIdProcessus . '\' ' . ' AND ' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW . '=' . $id_fta_workflow . ' AND ' . FtaSuiviProjetModel::TABLENAME . '.' . FtaSuiviProjetModel::FIELDNAME_ID_FTA . ' = \'' . $paramIdFta . '\' ) )'; DatabaseOperation::execute($reqDenotification); /** * Récuparation des adresses emails */ $req = 'SELECT ' . UserModel::FIELDNAME_MAIL . ' FROM ' . IntranetActionsModel::TABLENAME . ',' . IntranetDroitsAccesModel::TABLENAME . ',' . UserModel::TABLENAME . ',' . FtaWorkflowStructureModel::TABLENAME . ',' . FtaSuiviProjetModel::TABLENAME . ',' . FtaActionRoleModel::TABLENAME . ' WHERE ( ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_ROLE . '=' . FtaActionRoleModel::TABLENAME . '.' . FtaActionRoleModel::FIELDNAME_ID_FTA_ROLE . ' AND ' . FtaActionRoleModel::TABLENAME . '.' . FtaActionRoleModel::FIELDNAME_ID_FTA_WORKFLOW . '=' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW . ' AND ' . FtaActionRoleModel::TABLENAME . '.' . FtaActionRoleModel::FIELDNAME_ID_INTRANET_ACTIONS . '=' . IntranetActionsModel::TABLENAME . '.' . IntranetActionsModel::KEYNAME . ' AND ' . IntranetActionsModel::TABLENAME . '.' . IntranetActionsModel::KEYNAME . '=' . IntranetDroitsAccesModel::TABLENAME . '.' . IntranetDroitsAccesModel::FIELDNAME_ID_INTRANET_ACTIONS . ' AND ' . UserModel::TABLENAME . '.' . UserModel::KEYNAME . '=' . IntranetDroitsAccesModel::TABLENAME . '.' . IntranetDroitsAccesModel::FIELDNAME_ID_USER . ' AND ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . '= \'' . $paramIdProcessus . '\' ' . ' AND ' . FtaSuiviProjetModel::TABLENAME . '.' . FtaSuiviProjetModel::FIELDNAME_ID_FTA_CHAPITRE . '=' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_CHAPITRE . ') ' . ' AND ' . IntranetDroitsAccesModel::TABLENAME . '.' . IntranetDroitsAccesModel::FIELDNAME_NIVEAU_INTRANET_DROITS_ACCES . ' = ' . IntranetNiveauAccesModel::NIVEAU_GENERIC_TRUE . ' AND ' . FtaSuiviProjetModel::TABLENAME . '.' . FtaSuiviProjetModel::FIELDNAME_ID_FTA . ' = \'' . $paramIdFta . '\' ' . ' AND ' . UserModel::TABLENAME . '.' . UserModel::FIELDNAME_ACTIF . ' = \'' . UserModel::USER_ACTIF . '\' ' . ' GROUP BY ' . UserModel::TABLENAME . '.' . UserModel::FIELDNAME_MAIL; /** * Enregistrement de la liste des utilisateur à informer */ $arrayMail = DatabaseOperation::convertSqlStatementWithoutKeyToArray($req); if ($arrayMail) { foreach ($arrayMail as $rowsMail) { if ($rowsMail[UserModel::FIELDNAME_MAIL]) { $return[UserModel::FIELDNAME_MAIL][] = $rowsMail[UserModel::FIELDNAME_MAIL]; } } $htmlResult->setMail($return[UserModel::FIELDNAME_MAIL]); $array = $htmlResult->getHtmlResult(); $arrayTmp[UserModel::FIELDNAME_MAIL] = $htmlResult->getMail(); $array3 = array_merge_recursive($arrayTmp, $array); $htmlResult->setHtmlResult($array3); } } //Fin de l'information de la dévalidation //Mise à jour de la validation de l'échéance du processus BuildFtaProcessusValidationDelai($paramIdFta, $paramIdProcessus); //Appel récursif de la fonction pour continuer à dévalider les processus suivants FtaChapitreModel::buildDevalidationChapitre($paramIdFta, $paramIdProcessus, $htmlResult); } } //Retour de la fonction return $htmlResult->getHtmlResult(); }
/** * * @param int $paramIdFta * @param int $paramIdProcessus * @param int $paramIdFtaWorkflow * @param string $paramAbreviation_fta_etat * @param HtmlResult2 $htmlResult * @param array $idFtaProcessusEffectue * @param string $paramFirstPass * @return array */ public static function getProcessusNextFromIdFtaChapitres($paramIdFta, $paramIdProcessus, $paramIdFtaWorkflow, $paramAbreviation_fta_etat, HtmlResult2 $htmlResult, $idFtaProcessusEffectue, $paramFirstPass = NULL) { /** * On vérifie si le processus à deja été utilisé. */ $cheackIdFtaProcessus = in_array($paramIdProcessus, $idFtaProcessusEffectue); if (!$cheackIdFtaProcessus) { $idFtaProcessusEffectue[] = $paramIdProcessus; //Recherches des processus suivants $arrayProcessusCycle = FtaProcessusCycleModel::getArrayProccusNextValidateFromIdFta($paramIdFta, $paramIdFtaWorkflow, $paramAbreviation_fta_etat, $paramIdProcessus); //Enregistrement du processus if ($paramFirstPass) { $htmlResult->setProcessus($paramIdProcessus); } if ($htmlResult->getHtmlResult() == NULL) { $array = array('processus' => $htmlResult->getProcessus()); $htmlResult->setHtmlResult($array); } else { $array = $htmlResult->getHtmlResult(); $arrayTmp = array('processus' => $htmlResult->getProcessus()); $array3 = array_merge_recursive($arrayTmp, $array); $htmlResult->setHtmlResult($array3); } if ($arrayProcessusCycle != NULL) { foreach ($arrayProcessusCycle as $rowsProcessusCycle) { $paramIdProcessus = $rowsProcessusCycle[FtaProcessusCycleModel::FIELDNAME_PROCESSUS_NEXT]; $paramFirstPass = "******"; //Appel récursif de la fonction pour continuer à dévalider les processus suivants FtaProcessusModel::getProcessusNextFromIdFtaChapitres($paramIdFta, $paramIdProcessus, $paramIdFtaWorkflow, $paramAbreviation_fta_etat, $htmlResult, $idFtaProcessusEffectue, $paramFirstPass); } } //Retour de la fonction return $htmlResult->getHtmlResult(); } }