hasPlanningProvider2(); $p1 = Environnement::getInstance()->getPlanningProvider(); $p2 = Environnement::getInstance()->getPlanningProvider2(); $p1Start = Environnement::getInstance()->getPlanningProviderStart(); if ($p1Start == '') { $p1Start = Environnement::getInstance()->getRhProviderStart(); } $p2Start = Environnement::getInstance()->getPlanningProvider2Start(); $tmpDate = date_create($p1Start); date_modify($tmpDate, '-1 day'); $p2End = date_format($tmpDate, 'Y-m-d'); logStartMsg(); // Chargement des paramètres et connexion BD $iCTI_connexion = Database2Factory::getInstance(Environnement::PROVIDER_CTI); $ret = $iCTI_connexion->connect(); // Récupération des arguments passés en paramètres $cti_args = new CTI_Args_class(); if (checkLoadedData($p1, $MODULE) === 0 || $cti_args->args["-f"]) { logInfoMsg("Données prestataire $p1 chargées avec succès."); // import CTI extraction_environnement($p1, $p1Start); } else { logErrorMsg("Problème de chargement des données prestataire $p1."); } if ($multiP) { if (checkLoadedData($p2, $MODULE) === 0 || $cti_args->args["-f"]) { logInfoMsg("Données prestataire $p2 chargées avec succès."); // import CTI extraction_environnement($p2, $p2Start, $p2End); } else { logErrorMsg("Problème de chargement des données prestataire $p2."); } } // Croisement Paie Planning // Gestion des FEATURES try { $FM = new FeaturesManager(); $activatedFeatures = $FM->getActivatedFeatures(); } catch(Exception $e) { // Si l'exception est la non présence de FEATURES alors on passe simplement // Pour les autres exceptions, c'est donc une exception à signaler if($e->getMessage() !== FeaturesManager::FEATURES_MANAGER_NO_FEATURES_EXCEPTION) { logErrorMsg("Erreur lors de la gestion des features : ".$e->getMessage()); } $activatedFeatures = array(); } if(in_array('RH_CROISEMENT_PAIE_PLANNING',$activatedFeatures)) { $iCTI_connexion->query('SELECT rh.cti_croisement_paie_planning_generate()'); } // nettoyage du cache logInfoMsg("Nettoyage cache"); cleanAllCache("iCTI_rh", TRUE); // Déconnexion BD $iCTI_connexion->close(); logEndMsg(); /** * ****************************************************** * FONCTIONS * * ****************************************************** */ // récupération historique function extraction_environnement($_prestataire, $_start, $_end = '2099-12-31') { global $cti_sqlStatements; global $cti_args; global $iCTI_connexion; try { logInfoMsg("RECUPERATION DE LA PRODUCTION $_prestataire (de $_start à $_end)"); // Raz automatique le samedi if (date("w") == 6) { $cti_args->args["-raz"] = "ONLYKEY"; } $environmentVars = array(); $environmentVars["ENV_PLANNING_DATEDEBUT"] = $_start; $environmentVars["ENV_PLANNING_DATEFIN"] = $_end; $environmentVars["FINESS"] = Environnement::getInstance()->getFiness(); $environmentVars["SIREN"] = Environnement::getInstance()->getSiren(); $environmentVars["OPTRH_AVT_NATURE"] = Environnement::getInstance()->getOptAvantageNature(); // Création d'une table SQL temporaire contenant les paramètres à passer à l'import RH. // A appeler dans le SQL de la façon suivante : rhp('finess'); $tmpParamSql = " DROP TABLE IF EXISTS rhp ; CREATE TEMP TABLE rhp AS VALUES ('siren'::text, '" . trim($environmentVars["SIREN"]) . "'::text), ('finess'::text, '" . $environmentVars["FINESS"] . "'::text), ('opt_avt_nature'::text, '" . $environmentVars["OPTRH_AVT_NATURE"] . "'::text), ('planningprovider_start'::text, '" . $_start . "'::text) ; DROP FUNCTION IF EXISTS rhp(text) ; CREATE FUNCTION rhp(text) RETURNS text AS \$BODY\$ SELECT column2 FROM rhp WHERE column1 = \$1 ; \$BODY\$ LANGUAGE 'sql' VOLATILE ; DROP FUNCTION IF EXISTS rhp_in(text) ; CREATE FUNCTION rhp_in(text) RETURNS setof text AS \$BODY\$ SELECT column2 FROM rhp WHERE column1 = \$1 ; \$BODY\$ LANGUAGE 'sql' VOLATILE ; "; $iCTI_connexion->query($tmpParamSql); $sqlOptions = array(); foreach ($cti_args->args as $key => $value) { $sqlOptions[] = $key; } $cti_sqlStatements = new CTI_SqlStatements_class("iCTI_import_planning_".$_prestataire.".XML", $iCTI_connexion, $environmentVars, $sqlOptions, "iCTI_import_planning_SHARE.XML", "iCTI_import_rh_SHARE.XML"); if ($cti_args->args["-raz"]) { $cti_sqlStatements->executeStatementsNode("RAZ"); $cti_sqlStatements->executeStatementsNode("VACUUM"); } $cti_sqlStatements->executeStatementsNode("INIT"); $cti_sqlStatements->executeStatementsNode("PROD"); $cti_sqlStatements->executeStatementsNode("POST"); $cti_sqlStatements->executeStatementsNode("VACUUM"); $cti_sqlStatements->executeStatementsNode("VENTILATION"); } catch (Exception $e) { logErrorMsg("Impossible de charger les requêtes SQL."); exit(1); } logEndMsg(); } ?>