'type_contrat', 't_motifs_debut_contrat' => 'motif_debut', 't_motifs_fin_contrat' => 'motif_fin', 't_qualifications' => 'qualification', 't_services' => 'service', 't_specialites' => 'specialite', 't_types_temps_travail' => 'type_temps_travail', 't_categories_socio_professionnelle' => 'categorie_socio_professionnelle', 't_statuts' => 'statut', 't_codes_emploi' => 'code_emploi', 't_societes_interim' => 'societe_interim', 't_sections_analytiques_paie' => 'section_analytique_paie', 't_sections_analytiques' => 'section_analytique', 't_grilles' => 'grille', 't_grilles_groupes' => 'grille_groupe', 't_types_horaire' => 'type_horaire', 't_groupes_cotisant' => 'groupe_cotisant', 't_cadre_emploi' => 'cadre_emploi', 't_categorie_conge' => 'categorie_conge', 't_categorie_statutaire' => 'categorie_statutaire', 't_commission_paritaire' => 'commission_paritaire', 't_compte_imputation' => 'compte_imputation', 't_filiere' => 'filiere', 't_lettre_budgetaire' => 'lettre_budgetaire', 't_unite_fonctionnelle' => 'unite_fonctionnelle' ); // RECUPERATION DES PARAMETRES HTTP $softCode = getPOST("softCode"); $tableName = getPOST("tableName"); $action = getPOST("action"); $recordXML = getPOST("recordNode"); $recordNode = @simplexml_load_string($recordXML); // ECRITURE DE LA REPONSE HTTP $httpString = ""; $httpString .= "\n"; if ($schema != "" && $tableName != "" && $action != "" && $recordNode !== FALSE) { $httpString .= setRecords($database, $schema, $tableName, $action, $recordNode); } if ($action === PER_EXECUTE_RULES) { $sqlcmd = "SELECT $schema.cti_reorganize_population();"; $result = $database->exec($sqlcmd); } $httpString .= "\n"; if ($compress64) { $httpString = compress64($httpString); } echo "$httpString"; // DEFINITIONS DE FONCTION /** * * @param Database $db * @param string $schema * @param string $tableName * @param string $action * @param object $recordNode */ function setRecords($db, $schema, $tableName, $action, $recordNode) { global $rh_profil_tables; $oid = floatval($recordNode["oid"]); $code = utf8_decode($recordNode["code"]); $texte = utf8_decode($recordNode["texte"]); $texte_court = utf8_decode($recordNode["texte_court"]); $code_original = utf8_decode($recordNode["code_original"]); switch ($action) { case SAVE : $code = toSQL($code); $texte = toSQL($texte); $texte_court = toSQL($texte_court); $code_original = toSQL($code_original); // creation ou mise à jour de la liste if ($oid != -1) { $sqlcmd = "UPDATE $schema.$tableName SET "; $sqlcmd .= "texte = '$texte'"; switch ($tableName) { case "t_divers" : case "t_transformation" : case "t_population_regle" : // Pas de colonne texte_court dans ces 3 tables. break; default : $sqlcmd .= ", texte_court = '$texte_court' "; break; } switch ($tableName) { case "t_rubriques" : $sqlcmd .= ", code_calcul = '".utf8_decode($recordNode["code_calcul"])."' "; $sqlcmd .= ", unite = '".utf8_decode($recordNode["unite"])."' "; $sqlcmd .= ", coefficient = ".floatval(utf8_decode($recordNode["coefficient"]))." "; $sqlcmd .= ", coefficient_base = ".floatval(utf8_decode($recordNode["coefficient_base"]))." "; $sqlcmd .= ", coefficient_nombre = ".floatval(utf8_decode($recordNode["coefficient_nombre"]))." "; $sqlcmd .= ", coefficient_txs = ".floatval(utf8_decode($recordNode["coefficient_txs"]))." "; $sqlcmd .= ", coefficient_txp = ".floatval(utf8_decode($recordNode["coefficient_txp"]))." "; $sqlcmd .= ", user_modified = CASE WHEN user_modified THEN ".(utf8_decode($recordNode["user_modified"]) == 'M' ? "true" : "false")." ELSE true END "; // On peut le décocher que s'il était coché. Sinon ça coche. $sqlcmd .= ", p_cumul = ".(utf8_decode($recordNode["p_cumul"]) == 'C' ? "true" : "false")." "; $sqlcmd .= ", p_detail = ".(utf8_decode($recordNode["p_detail"]) == 'D' ? "true" : "false")." "; $sqlcmd .= ", proratiser_conversion = ".(utf8_decode($recordNode["proratiser_conversion"]) == 'X' ? "true" : "false")." "; $tmpRubArray = array( "nombre", "base", "heures_contrat", "heures_payees", "heures_travaillees", "masse_salariale", "brut", "avantage_nature", "frais_imposables", "cotisation_salarie", "cotisation_patronale", "od_net_salarie", "od_net_patronale", "net_imposable", "net_a_payer", "nombre_provisions", "montant_provisions", "masse_salariale_provisionnee" ); foreach ($tmpRubArray as $ind) { $sqlcmd .= ", p_$ind = ".($recordNode["p_$ind"] == 'X' ? "true" : "false")." "; if ($recordNode["p_$ind"] == 'X') { $sqlcmd .= ", s_$ind = ".$recordNode["s_$ind"]." "; $tmpCoeff = 1; if ($recordNode["c_$ind"] != "") { $tmpCoeff = floatval($recordNode["c_$ind"]); } $sqlcmd .= ", c_$ind = ".$tmpCoeff." "; } } break; case "t_etablissements" : $sqlcmd .= ", base_calcul_etp = '".utf8_decode($recordNode["base_calcul_etp"])."' "; $sqlcmd .= ", planning_code = '".utf8_decode($recordNode["code_ets_planning"])."' "; $sqlcmd .= ", finess_id = '".floatval($recordNode["finess_id"])."' "; break; case "t_entreprises" : $sqlcmd .= ", planning_code = '".utf8_decode($recordNode["code_ent_planning"])."' "; break; case "t_divers" : $sqlcmd .= ", valeur = '".utf8_decode($recordNode["valeur"])."' "; $sqlcmd .= ", show_info_module = (".utf8_decode($recordNode["show_info_module"])." = 1) "; // On n'a pas de raison de mettre à jour la date dans rh.t_divers. // Donc la ligne qui suit est commentée. //$sqlcmd .= ", valeur_date = '" . utf8_decode($recordNode["valeur_date"]) . "'::date "; break; case "t_transformation" : $sqlcmd .= ", date_debut = '".utf8_decode($recordNode["date_debut"])."' "; $sqlcmd .= ", date_fin = '".utf8_decode($recordNode["date_fin"])."' "; $sqlcmd .= ", salarie_id = '".utf8_decode($recordNode["salarie_id"])."' "; $sqlcmd .= ", from_service_id = '".utf8_decode($recordNode["from_service_id"])."' "; $sqlcmd .= ", to_service_id = '".utf8_decode($recordNode["to_service_id"])."' "; $sqlcmd .= ", from_qualification_id = '".utf8_decode($recordNode["from_qualification_id"])."' "; $sqlcmd .= ", to_qualification_id = '".utf8_decode($recordNode["to_qualification_id"])."' "; break; case "t_data_profile" : $sqlcmd .= ", etablissement_inclus = '".toSQL(utf8_decode($recordNode["etablissement_inclus"]))."' "; $sqlcmd .= ", etablissement_exclus = '".toSQL(utf8_decode($recordNode["etablissement_exclus"]))."' "; $sqlcmd .= ", service_inclus = '".toSQL(utf8_decode($recordNode["service_inclus"]))."' "; $sqlcmd .= ", service_exclus = '".toSQL(utf8_decode($recordNode["service_exclus"]))."' "; $sqlcmd .= ", statut_inclus = '".toSQL(utf8_decode($recordNode["statut_inclus"]))."' "; $sqlcmd .= ", statut_exclus = '".toSQL(utf8_decode($recordNode["statut_exclus"]))."' "; break; case "t_planning_service" : $sqlcmd .= ", service_id = '".floatval(utf8_decode($recordNode["service_id"]))."' "; break; case "t_planning_qualification" : $sqlcmd .= ", qualification_id = '".floatval(utf8_decode($recordNode["qualification_id"]))."' "; break; case 't_population_regle' : $sqlcmd .= " ,code = '" . utf8_decode($recordNode['code']) . "' ,priorite = " . utf8_decode($recordNode['priorite']) . " ,population_id = " . utf8_decode($recordNode['population_id']) . " ,liste_finess = rh.cti_util_translate_list('" . utf8_decode($recordNode['liste_finess']) . "') ,liste_etablissement = rh.cti_util_translate_list('" . utf8_decode($recordNode['liste_etablissement']) . "') ,liste_service = rh.cti_util_translate_list('" . utf8_decode($recordNode['liste_service']) . "') ,liste_specialite = rh.cti_util_translate_list('" . utf8_decode($recordNode['liste_specialite']) . "') ,liste_section_analytique = rh.cti_util_translate_list('" . utf8_decode($recordNode['liste_section_analytique']) . "') ,liste_section_analytique_paie = rh.cti_util_translate_list('" . utf8_decode($recordNode['liste_section_analytique_paie']) . "') ,liste_qualification = rh.cti_util_translate_list('" . utf8_decode($recordNode['liste_qualification']) . "') ,liste_grille = rh.cti_util_translate_list('" . utf8_decode($recordNode['liste_grille']) . "') ,liste_code_emploi = rh.cti_util_translate_list('" . utf8_decode($recordNode['liste_code_emploi']) . "') ,liste_categorie_socio_professionnelle = rh.cti_util_translate_list('" . utf8_decode($recordNode['liste_categorie_socio_professionnelle']) . "') ,liste_statut = rh.cti_util_translate_list('" . utf8_decode($recordNode['liste_statut']) . "') "; break; case 't_expert_controle' : $sqlcmd .= " ,code = '" . utf8_decode($recordNode['code']) . "' ,texte_abrege = '" . utf8_decode($recordNode['texte_abrege']) . "' ,description = '" . utf8_decode($recordNode['description']) . "' ,is_cti = '" . utf8_decode($recordNode['is_cti']) . "' ,is_hide = '" . utf8_decode($recordNode['is_hide']) . "' ,gravite_id = " . utf8_decode($recordNode['gravite']) . " ,prestataire_id = " . utf8_decode($recordNode['prestataire']) . " ,is_active = '" . utf8_decode($recordNode['is_active']) . "' ,alert_exp = '" . utf8_decode($recordNode['is_alert']) . "' "; break; } if ($tableName == "t_divers") { $sqlcmd .= "WHERE code = '$code'"; } else { $sqlcmd .= "WHERE oid = $oid"; } if ($tableName != 't_expert_controle') { $result = $db->exec($sqlcmd); } else { if ($recordNode['mode'] == 2) { $EXPERT_ACTIVE = utf8_decode($recordNode["EXPERT_ACTIVE"]); $EXPERT_DATE_DEBUT = utf8_decode($recordNode["EXPERT_DATE_DEBUT"]); $sqlcmd = "UPDATE rh.t_divers SET valeur = '$EXPERT_ACTIVE' WHERE code = 'EXPERT_ACTIVE' AND valeur IS DISTINCT FROM '$EXPERT_ACTIVE'; "; $result = $db->exec($sqlcmd); $sqlcmd = "UPDATE rh.t_divers SET valeur_date = to_date('$EXPERT_DATE_DEBUT','DD/MM/YYYY'), valeur = '$EXPERT_DATE_DEBUT' WHERE code = 'EXPERT_DATE_DEBUT' AND valeur_date IS DISTINCT FROM to_date('$EXPERT_DATE_DEBUT','DD/MM/YYYY'); "; $result = $db->exec($sqlcmd); } else { $result = $db->exec($sqlcmd); $sqlcmd = "UPDATE rh.t_expert_controle_rule SET sqlcmd_where = '" . toSQL(utf8_decode($recordNode['sqlcmd_where1'])) . "', sqlcmd_justificatif = '" . toSQL(utf8_decode($recordNode['sqlcmd_justificatif1'])) . "', table_id = " . toSQL(utf8_decode($recordNode['table1'])) . " WHERE controle_id = ". $oid; $result = $db->exec($sqlcmd); } } if (array_key_exists($tableName, $rh_profil_tables)) { $sqlcmd = "SELECT rh.cti_reorganize_profils_table('$tableName', '".$rh_profil_tables[$tableName]."');"; $result = $db->exec($sqlcmd); } switch ($tableName) { case "t_transformation" : $sqlcmd = "SELECT rh.cti_execute_transform()"; $result = $db->exec($sqlcmd); break; case "t_etablissements" : $sqlcmd = " UPDATE rh.t_etablissements SET finess_code = t_finess.code, finess_texte = t_finess.texte, finess_section_id = t_finess.section_id, finess_section_code = t_finess.section_code, finess_section_texte = t_finess.section_texte FROM base.t_finess WHERE 1=1 AND t_etablissements.finess_id = t_finess.oid AND t_etablissements.oid = $oid "; $result = $db->exec($sqlcmd); break; case "t_data_profile" : $sqlcmd = "SELECT rh.cti_gen_data_profile_views()"; $result = $db->exec($sqlcmd); break; case "t_divers" : $sqlcmd = "SELECT rh.cti_hp_create_views()"; $result = $db->exec($sqlcmd); break; case "t_planning_service" : $sqlcmd = " UPDATE rh.t_planning_service SET service_code = t_services.code, service_texte = t_services.texte_court, service_section_id = t_services.section_id, service_section_code = t_services.section_code, service_section_texte = t_services.section_texte FROM rh.t_services WHERE 1=1 AND t_planning_service.Service_id = t_services.oid AND (1!=1 OR service_code IS DISTINCT FROM t_services.code OR service_texte IS DISTINCT FROM t_services.texte_court OR service_section_id IS DISTINCT FROM t_services.section_id OR service_section_code IS DISTINCT FROM t_services.section_code OR service_section_texte IS DISTINCT FROM t_services.section_texte) "; $result = $db->exec($sqlcmd); break; case "t_planning_qualification" : $sqlcmd = " UPDATE rh.t_planning_qualification SET qualification_code = t_qualifications.code, qualification_texte = t_qualifications.texte_court, qualification_section_id = t_qualifications.section_id, qualification_section_code = t_qualifications.section_code, qualification_section_texte = t_qualifications.section_texte FROM rh.t_qualifications WHERE 1=1 AND t_planning_qualification.Service_id = t_qualifications.oid AND (1!=1 OR qualification_code IS DISTINCT FROM t_qualifications.code OR qualification_texte IS DISTINCT FROM t_qualifications.texte_court OR qualification_section_id IS DISTINCT FROM t_qualifications.section_id OR qualification_section_code IS DISTINCT FROM t_qualifications.section_code OR qualification_section_texte IS DISTINCT FROM t_qualifications.section_texte) "; $result = $db->exec($sqlcmd); break; } } else { // Ajouts if ($tableName == "t_transformation") { $sqlcmd = "INSERT INTO $schema.$tableName ("; $sqlcmd .= "texte, "; $sqlcmd .= "date_debut, "; $sqlcmd .= "date_fin, "; $sqlcmd .= "salarie_id, "; $sqlcmd .= "from_service_id, "; $sqlcmd .= "to_service_id, "; $sqlcmd .= "from_qualification_id, "; $sqlcmd .= "to_qualification_id"; $sqlcmd .= ") "; $sqlcmd .= "VALUES ("; $sqlcmd .= "'".toSQL(utf8_decode($recordNode["texte"]))."', "; $sqlcmd .= "'".utf8_decode($recordNode["date_debut"])."', "; $sqlcmd .= "'".utf8_decode($recordNode["date_fin"])."', "; $sqlcmd .= "".utf8_decode($recordNode["salarie_id"]).", "; $sqlcmd .= "".utf8_decode($recordNode["from_service_id"]).", "; $sqlcmd .= "".utf8_decode($recordNode["to_service_id"]).", "; $sqlcmd .= "".utf8_decode($recordNode["from_qualification_id"]).", "; $sqlcmd .= "".utf8_decode($recordNode["to_qualification_id"])." "; $sqlcmd .= ")"; $result = $db->exec($sqlcmd); $sqlcmd = "SELECT rh.cti_execute_transform()"; $result = $db->exec($sqlcmd); } // Ajouts if ($tableName == "t_data_profile") { $sqlcmd = "INSERT INTO $schema.$tableName ("; $sqlcmd .= "code, "; $sqlcmd .= "texte, "; $sqlcmd .= "texte_court, "; $sqlcmd .= "etablissement_inclus, "; $sqlcmd .= "etablissement_exclus, "; $sqlcmd .= "service_inclus, "; $sqlcmd .= "service_exclus, "; $sqlcmd .= "statut_inclus, "; $sqlcmd .= "statut_exclus"; $sqlcmd .= ") "; $sqlcmd .= "VALUES ("; $sqlcmd .= "'".toSQL(utf8_decode($recordNode["code"]))."', "; $sqlcmd .= "'".toSQL(utf8_decode($recordNode["texte"]))."', "; $sqlcmd .= "'".toSQL(utf8_decode($recordNode["texte"]))."', "; $sqlcmd .= "'".toSQL(utf8_decode($recordNode["etablissement_inclus"]))."', "; $sqlcmd .= "'".toSQL(utf8_decode($recordNode["etablissement_exclus"]))."', "; $sqlcmd .= "'".toSQL(utf8_decode($recordNode["service_inclus"]))."', "; $sqlcmd .= "'".toSQL(utf8_decode($recordNode["service_exclus"]))."', "; $sqlcmd .= "'".toSQL(utf8_decode($recordNode["statut_inclus"]))."', "; $sqlcmd .= "'".toSQL(utf8_decode($recordNode["statut_exclus"]))."' "; $sqlcmd .= ")"; $result = $db->exec($sqlcmd); $sqlcmd = "SELECT rh.cti_gen_data_profile_views()"; $result = $db->exec($sqlcmd); } if ($tableName == "t_population") { $sqlcmd = " INSERT INTO rh.t_population ( code, texte) VALUES( '" . utf8_decode($recordNode["code"]) . "', '" . utf8_decode($recordNode["texte"]) . "') "; $result = $db->exec($sqlcmd); } if ($tableName == "t_population_regle") { $sqlcmd = " INSERT INTO rh.t_population_regle ( texte, code, priorite, population_id, liste_finess, liste_etablissement, liste_service, liste_specialite, liste_section_analytique, liste_section_analytique_paie, liste_qualification, liste_grille, liste_code_emploi, liste_categorie_socio_professionnelle, liste_statut) VALUES( '" . utf8_decode($recordNode["texte"]) . "', '" . utf8_decode($recordNode["code"]) . "', " . utf8_decode($recordNode["priorite"]) . ", " . utf8_decode($recordNode["population_id"]) . ", rh.cti_util_translate_list('" . utf8_decode($recordNode['liste_finess']) . "'), rh.cti_util_translate_list('" . utf8_decode($recordNode['liste_etablissement']) . "'), rh.cti_util_translate_list('" . utf8_decode($recordNode['liste_service']) . "'), rh.cti_util_translate_list('" . utf8_decode($recordNode['liste_specialite']) . "'), rh.cti_util_translate_list('" . utf8_decode($recordNode['liste_section_analytique']) . "'), rh.cti_util_translate_list('" . utf8_decode($recordNode['liste_section_analytique_paie']) . "'), rh.cti_util_translate_list('" . utf8_decode($recordNode['liste_qualification']) . "'), rh.cti_util_translate_list('" . utf8_decode($recordNode['liste_grille']) . "'), rh.cti_util_translate_list('" . utf8_decode($recordNode['liste_code_emploi']) . "'), rh.cti_util_translate_list('" . utf8_decode($recordNode['liste_categorie_socio_professionnelle']) . "'), rh.cti_util_translate_list('" . utf8_decode($recordNode['liste_statut']) . "')) "; $result = $db->exec($sqlcmd); } if ($tableName == 't_expert_controle') { $sqlcmd = " INSERT INTO rh.t_expert_controle ( code, texte, texte_court, texte_abrege, description, is_cti, is_hide, gravite_id, prestataire_id, is_active, alert_exp ) VALUES( '" . $code . "' ,'" . $texte . "' ,'" . $texte_court . "' ,'" . utf8_decode($recordNode['texte_abrege']) . "' ,'" . utf8_decode($recordNode['description']) . "' ,'" . utf8_decode($recordNode['is_cti']) . "' ,'" . utf8_decode($recordNode['is_hide']) . "' ," . utf8_decode($recordNode['gravite']) . " ," . utf8_decode($recordNode['prestataire']) . " ,'" . utf8_decode($recordNode['is_active']) . "' ,'" . utf8_decode($recordNode['is_alert']) . "') "; $result = $db->exec($sqlcmd); if ($result == FALSE) { } else { $result = $db->exec( "SELECT max(oid) as oid FROM rh.t_expert_controle WHERE code = '" . utf8_decode($recordNode['code']). "' AND texte = '$texte'" ); if ($result != false) { $record = $db->nextRecordInto(); if ($record != FALSE) { $oid = $record[0] + 0; $sqlcmd = " DELETE FROM rh.t_expert_controle_rule USING ( SELECT t_expert_controle_rule.oid FROM rh.t_expert_controle_rule LEFT JOIN rh.t_expert_controle ON t_expert_controle_rule.controle_id = t_expert_controle.oid WHERE t_expert_controle.oid IS NULL ) subview WHERE t_expert_controle_rule.oid = subview.oid; INSERT INTO rh.t_expert_controle_rule ( controle_id, numero, sqlcmd_where, sqlcmd_justificatif, table_id ) VALUES (" . $oid . ", 1::bigint, '" . toSQL(utf8_decode($recordNode['sqlcmd_where1'])) . "', '" . toSQL(utf8_decode($recordNode['sqlcmd_justificatif1'])) . "', " . toSQL(utf8_decode($recordNode['table1'])) . ");"; error_log($sqlcmd);$result = $db->exec($sqlcmd); } } } } } break; case UPDATE : // nothing to do yet break; case COPY : // nothing to do yet if ($tableName == 't_expert_controle') { $sqlcmd = "SELECT count(*)+1 as index FROM rh.t_expert_controle JOIN rh.t_expert_controle tout ON LEFT(tout.code,LENGTH(t_expert_controle.code)) = t_expert_controle.code WHERE t_expert_controle.oid = $oid"; $result = $db->exec($sqlcmd); $record = $db->nextRecordInto(); $index = $record[0]; error_log($index); $sqlcmd = " INSERT INTO rh.t_expert_controle ( code, texte, texte_court, texte_abrege, description, is_cti, is_hide, gravite_id, prestataire_id, is_active, alert_exp ) SELECT code || '_' || $index, 'Copie ' || ($index - 1) || ' de ' || texte, texte_court, texte_abrege, description, is_cti, is_hide, gravite_id, prestataire_id, is_active, alert_exp FROM rh.t_expert_controle WHERE oid = $oid"; $result = $db->exec($sqlcmd); if ($result == FALSE) { } else { $record = $db->nextRecordInto(); $result = $db->exec( "SELECT max(oid) as oid FROM rh.t_expert_controle WHERE code = '" . $code . "_". $index . "'" ); if ($result != false) { $record = $db->nextRecordInto(); if ($record != FALSE) { $oid = $record[0] + 0; $sqlcmd = " DELETE FROM rh.t_expert_controle_rule USING ( SELECT t_expert_controle_rule.oid FROM rh.t_expert_controle_rule LEFT JOIN rh.t_expert_controle ON t_expert_controle_rule.controle_id = t_expert_controle.oid WHERE t_expert_controle.oid IS NULL ) subview WHERE t_expert_controle_rule.oid = subview.oid; INSERT INTO rh.t_expert_controle_rule ( controle_id, numero, sqlcmd_where, sqlcmd_justificatif, table_id ) VALUES (" . $oid . ", 1::bigint, '" . toSQL(utf8_decode($recordNode['sqlcmd_where1'])) . "', '" . toSQL(utf8_decode($recordNode['sqlcmd_justificatif1'])) . "', " . toSQL(utf8_decode($recordNode['table1'])) . ");"; } } } } break; case DELETE : if ($tableName == "t_transformation") { $sqlcmd = "DELETE FROM $schema.$tableName WHERE oid = $oid"; $result = $db->exec($sqlcmd); $sqlcmd = "SELECT rh.cti_execute_transform()"; $result = $db->exec($sqlcmd); } if ($tableName == "t_data_profile") { $sqlcmd = "DELETE FROM $schema.$tableName WHERE oid = $oid"; $result = $db->exec($sqlcmd); $sqlcmd = "SELECT rh.cti_gen_data_profile_views()"; $result = $db->exec($sqlcmd); } if ($tableName == "t_population") { $sqlcmd = "DELETE FROM $schema.$tableName WHERE oid = $oid"; $result = $db->exec($sqlcmd); } if ($tableName == "t_population_regle") { $sqlcmd = "DELETE FROM $schema.$tableName WHERE oid = $oid"; $result = $db->exec($sqlcmd); } if ($tableName == "t_expert_controle") { $sqlcmd = "DELETE FROM $schema.$tableName WHERE oid = $oid"; $result = $db->exec($sqlcmd); $sqlcmd = "DELETE FROM $schema." . $tableName ."_rule WHERE controle_id = $oid"; $result = $db->exec($sqlcmd); } break; case PURGE : if ($tableName == "t_expert_controle") { if ($oid != '') { $sqlcmd = "DELETE FROM $schema.p_expert_controle WHERE controle_id = $oid"; } else { $sqlcmd = "TRUNCATE $schema.p_expert_controle"; } $result = $db->exec($sqlcmd); $sqlcmd = "UPDATE $schema.$tableName" . "_rule SET last_execution_date = null, last_execution_ok = '' WHERE controle_id = $oid"; $result = $db->exec($sqlcmd); } break; default: // nothing to do yet break; } erase_cache($db, $schema); } /** * * @param Database $db * @param string $schema */ function erase_cache($db, $schema) { // Effacer cache ancienne version if ($db->cticache == "true") { $sqlcmd = "SELECT cti_cache_erase as result from cache.cti_cache_erase('iCTI_$schema')"; $result = $db->exec($sqlcmd); } // Effacer cache nouvelle version cleanAllCache("iCTI_$schema"); } ?>