本文整理汇总了PHP中UserModel::checkUserSessionExpired方法的典型用法代码示例。如果您正苦于以下问题:PHP UserModel::checkUserSessionExpired方法的具体用法?PHP UserModel::checkUserSessionExpired怎么用?PHP UserModel::checkUserSessionExpired使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类UserModel
的用法示例。
在下文中一共展示了UserModel::checkUserSessionExpired方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getIdIntranetActionsRoleFromIdParentActionNavigation
/**
* Nous obtenons les id intranet actions role selon son identifiant parents.
* @param int $paramIdParent
* @return type
*/
public static function getIdIntranetActionsRoleFromIdParentActionNavigation($paramIdParent)
{
$globalConfig = new GlobalConfig();
UserModel::checkUserSessionExpired($globalConfig);
$id_user = $globalConfig->getAuthenticatedUser()->getKeyValue();
$arrayIdActions = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT ' . self::TABLENAME . '.' . self::KEYNAME . ' FROM ' . self::TABLENAME . ',' . FtaWorkflowModel::TABLENAME . ' WHERE ' . self::FIELDNAME_PARENT_INTRANET_ACTIONS . '=' . FtaWorkflowModel::TABLENAME . '.' . FtaWorkflowModel::FIELDNAME_ID_INTRANET_ACTIONS . ' AND ' . self::FIELDNAME_TAG_INTRANET_ACTIONS . '=\'' . self::VALUE_ROLE . '\' AND ' . FtaWorkflowModel::TABLENAME . '.' . FtaWorkflowModel::FIELDNAME_ID_INTRANET_ACTIONS . '=' . $paramIdParent);
if ($arrayIdActions) {
foreach ($arrayIdActions as $rowsIdActions) {
$arrayIdAction = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT ' . self::TABLENAME . '.' . self::KEYNAME . ' FROM ' . self::TABLENAME . ', ' . IntranetDroitsAccesModel::TABLENAME . ' WHERE ' . self::TABLENAME . '.' . self::KEYNAME . '=' . IntranetDroitsAccesModel::TABLENAME . '.' . IntranetDroitsAccesModel::FIELDNAME_ID_INTRANET_ACTIONS . ' AND ' . IntranetDroitsAccesModel::TABLENAME . '.' . IntranetDroitsAccesModel::FIELDNAME_ID_INTRANET_ACTIONS . '=' . $rowsIdActions[self::KEYNAME] . ' AND ' . IntranetDroitsAccesModel::FIELDNAME_ID_USER . '=' . $id_user . ' AND ' . IntranetDroitsAccesModel::TABLENAME . '.' . IntranetDroitsAccesModel::FIELDNAME_NIVEAU_INTRANET_DROITS_ACCES . '=1');
if ($arrayIdAction) {
foreach ($arrayIdAction as $idAction) {
return $idAction[self::KEYNAME];
}
}
}
}
}
示例2: switch
switch ($action) {
/*
S'il n'y a pas d'actions défini
*/
case 1:
//Création d'une FTA Vierge
// $idFta = null;
$arrayIdEtat = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT ' . FtaEtatModel::KEYNAME . ' FROM ' . FtaEtatModel::TABLENAME . ' WHERE ' . FtaEtatModel::FIELDNAME_ABREVIATION . '=\'' . $abreviationFtaEtat . '\' ');
foreach ($arrayIdEtat as $rowsIdEtat) {
$idFtaEtat = $rowsIdEtat[FtaEtatModel::KEYNAME];
}
/*
* Initialisation de l'enregistrement de la Table FTA
*/
$globalConfig = new GlobalConfig();
UserModel::checkUserSessionExpired($globalConfig);
$idUser = $globalConfig->getAuthenticatedUser()->getKeyValue();
$idFta = FtaModel::createFta($idUser, $idFtaEtat, $idFtaWorkflow, $designationCommercialeFta, date('Y-m-d'), $siteDeProduction);
DatabaseOperation::execute('UPDATE ' . FtaModel::TABLENAME . ' SET ' . FtaModel::FIELDNAME_DOSSIER_FTA . '=' . $idFta . ' WHERE ' . FtaModel::KEYNAME . '=' . $idFta);
FtaSuiviProjetModel::initFtaSuiviProjet($idFta);
//Cas d'une fiche Présentation
/**
* Ce cas n'est plus utiliser puisque l'espasce de travail Présentation,
* regroupe tous les chapitres nécéssaire
*/
if ($abreviationFtaEtat == 'P') {
//Condition where
$where = '';
//Récupération des chapitres concernés par ce cycle de vie
$arrayChapitreCycle = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT ' . FtaProcessusCycleModel::FIELDNAME_FTA_ETAT . ', ' . FtaProcessusCycleModel::FIELDNAME_PROCESSUS_INIT . ', ' . FtaProcessusCycleModel::FIELDNAME_PROCESSUS_NEXT . ' FROM ' . FtaProcessusCycleModel::TABLENAME . ' WHERE ' . FtaProcessusCycleModel::FIELDNAME_FTA_ETAT . ' = \'' . $abreviationFtaEtat . '\' AND ' . FtaProcessusCycleModel::FIELDNAME_PROCESSUS_NEXT . ' IS NOT NULL');
foreach ($arrayChapitreCycle as $rowsChapitreCycle) {
示例3: CheckSyntheseAction
/**
* Verification de l''état d'avancement.
* @return String
*/
protected static function CheckSyntheseAction()
{
$nbProcessusPreceValide = "0";
$ProcessusEncoursVisible = array();
$ProcessusPrecedentVisible = array();
$ProcessusValide = array();
$ProcessusEnLecture = array();
$globalConfig = new GlobalConfig();
UserModel::checkUserSessionExpired($globalConfig);
$id_user = $globalConfig->getAuthenticatedUser()->getKeyValue();
$idFtaRole = self::$id_fta_role;
/**
* Cette partie n'est plus utilisé car le but était de récupérer le rôle corespondant à l'utilisateur connecter
* mais désormais id_fta_role est récupé dans l'URL
*/
/*
* $modelFta = new FtaModel(self::$id_fta);
* $id_fta_workflow = $modelFta->getDataField(FtaModel::FIELDNAME_WORKFLOW)->getFieldValue();
* $ftaWorkflowModel = new FtaWorkflowModel($id_fta_workflow);
* $id_parent_intranet_actions = $ftaWorkflowModel->getDataField(FtaWorkflowModel::FIELDNAME_ID_INTRANET_ACTIONS)->getFieldValue();
* $id_intranet_actions[] = IntranetActionsModel::getIdIntranetActionsRoleFromIdParentActionNavigation($id_parent_intranet_actions);
* $id_actions_role = FtaActionRoleModel::getIdFtaActionRoleFromIdIntranetAtions($id_intranet_actions);
* $ftaActionRoleModel = new FtaActionRoleModel($id_actions_role);
*/
/*
* Si une action est donnée, alors construction du menu des chapitres
*/
if (self::$synthese_action) {
/*
* Nous récuperons les processus en cours.
*/
$arrayAllProcessus = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT DISTINCT ' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . ' FROM ' . FtaWorkflowStructureModel::TABLENAME . ' WHERE ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW . '=' . self::$id_fta_workflow);
/**
* On récupère tous les processus
*/
foreach ($arrayAllProcessus as $rowsAllProcessus) {
$ProcessusComplet[] = $rowsAllProcessus[FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS];
}
/*
* Etat d'avancement de la FTA et Recherche des processus validés (et donc en lecture-seule) *
*/
/*
* Nous récuperons les processus en cours.
*/
$req = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT DISTINCT ' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . ' FROM ' . FtaWorkflowStructureModel::TABLENAME . ', ' . FtaProcessusCycleModel::TABLENAME . ',' . IntranetActionsModel::TABLENAME . ',' . IntranetDroitsAccesModel::TABLENAME . ',' . IntranetModulesModel::TABLENAME . ',' . FtaActionRoleModel::TABLENAME . ' WHERE ' . FtaProcessusCycleModel::TABLENAME . '.' . FtaProcessusCycleModel::FIELDNAME_PROCESSUS_INIT . '=' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . ' AND ' . FtaProcessusCycleModel::FIELDNAME_FTA_ETAT . '=\'' . FtaEtatModel::ETAT_ABREVIATION_VALUE_MODIFICATION . '\'' . ' AND ' . FtaProcessusCycleModel::TABLENAME . '.' . FtaProcessusCycleModel::FIELDNAME_WORKFLOW . '=' . self::$id_fta_workflow . ' AND ' . FtaProcessusCycleModel::TABLENAME . '.' . FtaProcessusCycleModel::FIELDNAME_WORKFLOW . '=' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW . ' AND ' . FtaWorkflowStructureModel::TABLENAME . '.' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_ROLE . '=' . FtaActionRoleModel::TABLENAME . '.' . FtaActionRoleModel::FIELDNAME_ID_FTA_ROLE . ' AND ' . FtaActionRoleModel::TABLENAME . '.' . FtaActionRoleModel::FIELDNAME_ID_INTRANET_ACTIONS . '=' . IntranetActionsModel::TABLENAME . '.' . IntranetActionsModel::KEYNAME . ' AND ' . FtaActionRoleModel::TABLENAME . '.' . FtaActionRoleModel::FIELDNAME_ID_FTA_ROLE . '=' . $idFtaRole . ' AND ' . IntranetActionsModel::TABLENAME . '.' . IntranetActionsModel::KEYNAME . '=' . IntranetDroitsAccesModel::TABLENAME . '.' . IntranetDroitsAccesModel::FIELDNAME_ID_INTRANET_ACTIONS . ' AND ' . IntranetDroitsAccesModel::TABLENAME . '.' . IntranetDroitsAccesModel::FIELDNAME_ID_INTRANET_MODULES . '=' . IntranetModulesModel::TABLENAME . '.' . IntranetModulesModel::KEYNAME . ' AND ' . IntranetDroitsAccesModel::FIELDNAME_ID_USER . '=' . $id_user . ' AND ' . IntranetModulesModel::FIELDNAME_NOM_INTRANET_MODULES . '=\'' . FtaModel::TABLENAME . '\' AND ' . IntranetDroitsAccesModel::FIELDNAME_NIVEAU_INTRANET_DROITS_ACCES . '=' . IntranetNiveauAccesModel::NIVEAU_GENERIC_TRUE);
/**
* On ne récuère que les processus d'init validé
*/
// $arrayProcessusValide = DatabaseOperation::convertSqlStatementWithoutKeyToArray(
// 'SELECT DISTINCT ' . FtaProcessusCycleModel::FIELDNAME_PROCESSUS_INIT . ' as ' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS
// . ' FROM ' . FtaProcessusCycleModel::TABLENAME
// . ' WHERE ' . FtaProcessusCycleModel::FIELDNAME_FTA_ETAT . '=\'' . FtaEtatModel::ETAT_ABREVIATION_VALUE_MODIFICATION . '\''
// . ' AND ' . FtaProcessusCycleModel::FIELDNAME_WORKFLOW
// . '=\'' . self::$id_fta_workflow . '\' '
/**
* On récuère les processus validé
*/
$arrayProcessusValide = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT DISTINCT ' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . ' FROM ' . FtaWorkflowStructureModel::TABLENAME . ' WHERE ' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_WORKFLOW . '=\'' . self::$id_fta_workflow . '\'' . ' AND ' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . '<>\'' . FtaProcessusModel::PROCESSUS_PUBLIC . '\'');
if ($req and $arrayProcessusValide) {
/*
* Nous récupérons les processus précédent du processus en cours si ils sont tous validé
*/
foreach ($req as $rows) {
/*
* Nous verifions si tous les processus précedents du chapitre que l'utilisateur à les droits d'accès
* sont validé ou non et donc visible ou non
*/
$taux_validation_processus = FtaProcessusModel::getFtaProcessusNonValidePrecedent(self::$id_fta, $rows[FtaProcessusModel::KEYNAME], self::$id_fta_workflow);
//Liste des processus visible(lecture-seule)
if ($taux_validation_processus == 1 or $taux_validation_processus === NULL) {
$ProcessusPrecedentVisible[] = $rows[FtaProcessusModel::KEYNAME];
/*
* Il s'agit du controle des processus multisite,
* les droits d'accès à cette Fta étatn controlé précédement je désactive la focntion
*/
// foreach ($ProcessusPrecedentVisible as $rowsProcessusVisible) {
// $multisite_fta_processus = FtaProcessusModel::CheckProcessusMultiSite($rowsProcessusVisible);
//
// if ($multisite_fta_processus) {
// //Oui, il s'agit d'un Processus répartie sur les sites d'assemblage
// $ProcessusPrecedentVisibleTmp[] = self::CheckMultiSite($rowsProcessusVisible);
// $ProcessusPrecedentVisible = $ProcessusPrecedentVisibleTmp;
// }
// }
}
}
//Fin du balayage
// if ($ProcessusPrecedentVisible) {
/*
* Nous récupérons tous les processus validé pour vérifier plus tard si nous devons les affichers
*/
foreach ($arrayProcessusValide as $rowsProcessusValide) {
$taux_validation_processus = FtaProcessusModel::getValideProcessusEncours(self::$id_fta, $rowsProcessusValide[FtaProcessusModel::KEYNAME], self::$id_fta_workflow);
if ($taux_validation_processus == 1) {
$ProcessusValide[] = $rowsProcessusValide[FtaProcessusModel::KEYNAME];
}
//.........这里部分代码省略.........
示例4: getHtmlTable
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);
}
//.........这里部分代码省略.........
示例5: initChapitre
public static function initChapitre($id_fta, $id_fta_chapitre, $synthese_action, $comeback, $idFtaEtat, $abreviationFtaEtat, $idFtaRole, $checkArcadiaData)
{
self::$checkArcadiaData = $checkArcadiaData;
self::$is_data_validation_successful = FALSE;
self::$id_fta = $id_fta;
self::$comeback = $comeback;
self::$id_fta_etat = $idFtaEtat;
self::$abrevation_etat = $abreviationFtaEtat;
self::$id_fta_role = $idFtaRole;
self::$id_fta_chapitre = $id_fta_chapitre;
self::$ftaModel = new FtaModel(self::$id_fta);
self::$ftaChapitreModel = new FtaChapitreModel(self::$id_fta_chapitre);
self::$id_fta_workflow = self::$ftaModel->getDataField(FtaModel::FIELDNAME_WORKFLOW)->getFieldValue();
self::$ftaWorkflowModel = new FtaWorkflowModel(self::$id_fta_workflow);
self::$synthese_action = $synthese_action;
$globalConfig = new GlobalConfig();
UserModel::checkUserSessionExpired($globalConfig);
self::$idUser = $globalConfig->getAuthenticatedUser()->getKeyValue();
$idFtaSuiviProjet = FtaSuiviProjetModel::getIdFtaSuiviProjetByIdFtaAndIdChapitre(self::$id_fta, self::$id_fta_chapitre);
self::$ftaSuiviProjetModel = new FtaSuiviProjetModel($idFtaSuiviProjet);
// self::$objectFta = new ObjectFta(self::$id_fta); //cela genère un id fta_suivie projet de trop
// self::$objectFta->loadCurrentSuiviProjectByChapter(self::$id_fta_chapitre);
self::$id_fta_workflow_structure = FtaWorkflowStructureModel::getIdFtaWorkflowStructureByIdFtaAndIdChapitre(self::$id_fta, self::$id_fta_chapitre);
self::$ftaWorkflowStructureModel = new FtaWorkflowStructureModel(self::$id_fta_workflow_structure);
self::$id_fta_processus = self::$ftaWorkflowStructureModel->getDataField(FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS)->getFieldValue();
self::$id_intranet_actions = IntranetActionsModel::getIdIntranetActionsFromIdParentAction(self::$ftaWorkflowModel->getDataField(FtaWorkflowModel::FIELDNAME_ID_INTRANET_ACTIONS)->getFieldValue(), self::$id_fta_chapitre, self::$id_fta_workflow, self::$id_fta_role);
self::$moduleIntranetActionsModel = new IntranetActionsModel(self::$id_intranet_actions);
self::$is_owner = self::buildIsOwner();
self::$is_editable = self::buildIsEditable();
self::$is_correctable = self::buildIsCorrectable();
self::$taux_validation_processus = self::buildTauxValidationProcessus();
self::$html_correct_button = self::buildHtmlCorrectButton();
self::$html_chapitre_core = self::buildChapitreCore();
self::$html_submit_button = self::buildHtmlSubmitButton();
self::$html_suivi_dossier = self::buildSuiviDossier();
self::$html_chapitre_all = self::buildChapitreAll();
}
示例6: FTA
/**
* 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;
}
/* * ***************************
//.........这里部分代码省略.........
示例7: buildCorrectionChapitre
/**
* 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);
}
}
//.........这里部分代码省略.........
示例8: CheckProcessusSiteOrSociete
/**
* Il s'agit du controle des processus multisite,
* les droits d'accès à cette Fta étatn controlé précédement je désactive la focntion
* Cette focntion est imcomplète, il manque la notion de controle des processus
* @param type $paramRows
* @param type $paramIdFta
* @return int
*/
public static function CheckProcessusSiteOrSociete($paramRows, $paramIdFta)
{
$globalConfig = new GlobalConfig();
UserModel::checkUserSessionExpired($globalConfig);
$idUser = $globalConfig->getAuthenticatedUser()->getKeyValue();
$paramLieuGeo = $globalConfig->getAuthenticatedUser()->getLieuGeo();
//Existe-il une configuration de gestion forcée pour ce processus et ce site d'assemblage ?
foreach ($paramRows as $rowsSiteSociete) {
$arrayGestion = DatabaseOperation::convertSqlStatementWithoutKeyToArray('SELECT ' . FtaWorkflowStructureModel::FIELDNAME_ID_FTA_PROCESSUS . ' FROM ' . GeoModel::TABLENAME . ',' . FtaModel::TABLENAME . ',' . FtaActionSiteModel::TABLENAME . ',' . IntranetActionsModel::TABLENAME . ',' . FtaWorkflowStructureModel::TABLENAME . ' WHERE ' . GeoModel::KEYNAME . '=' . FtaModel::FIELDNAME_SITE_PRODUCTION . ' AND ' . FtaActionSiteModel::FIELDNAME_ID_SITE . '=' . GeoModel::KEYNAME . ' AND ' . IntranetActionsModel::TABLENAME . '.' . IntranetActionsModel::KEYNAME . '=' . IntranetDroitsAccesModel::TABLENAME . '.' . IntranetDroitsAccesModel::FIELDNAME_ID_INTRANET_ACTIONS . ' AND ' . IntranetDroitsAccesModel::TABLENAME . '.' . IntranetDroitsAccesModel::FIELDNAME_ID_INTRANET_MODULES . '=' . IntranetModulesModel::TABLENAME . '.' . IntranetModulesModel::KEYNAME . ' AND ' . IntranetDroitsAccesModel::FIELDNAME_ID_USER . ' =' . $idUser . ' AND ' . IntranetDroitsAccesModel::FIELDNAME_NIVEAU_INTRANET_DROITS_ACCES . '=' . IntranetNiveauAccesModel::NIVEAU_GENERIC_TRUE . ' AND ' . FtaActionSiteModel::TABLENAME . '.' . FtaActionSiteModel::FIELDNAME_ID_INTRANET_ACTIONS . '=' . IntranetActionsModel::TABLENAME . '.' . IntranetActionsModel::KEYNAME . ' AND ' . FtaActionSiteModel::TABLENAME . '.' . FtaActionSiteModel::FIELDNAME_ID_SITE . '=' . $paramLieuGeo . ' AND ' . FtaModel::KEYNAME . '=' . $paramIdFta);
if ($arrayGestion) {
foreach ($arrayGestion as $rowsGestion) {
$id_geo = $rowsGestion[FtaProcessusMultisiteModel::FIELDNAME_ID_SITE_PROCESSUS_FTA_PROCESSUS_MULTISITE];
}
if ($id_geo == $paramLieuGeo) {
//L'égalité est respecté, donc ce processus est bien en cours
$paramT_Processus_Encours = $paramRows;
} else {
$paramT_Processus_Encours = 0;
}
}
}
return $paramT_Processus_Encours;
}
示例9: buildTransitionFta
/**
* 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 = "";
//.........这里部分代码省略.........