" . utf8_decode($recordXML)); $database = new Database("iCTI"); $settingsLogger = new SettingsChangesLogger; try { $settingsLogger->logParameterChanges('activite', $tableName, $recordNode, $database); } catch (Exception $e) { echo $e->getMessage(); } $httpString = ""; $httpString = $httpString . ""; $httpString = $httpString . "\n"; $settersByTableToUpdate = array( 't_services_facturation' => 'setRecords_services_facturation', 't_activites' => 'setRecords_activites', 't_divers' => 'setRecords_divers', 't_unites_medicales' => 'setRecords_unites_medicales', 't_unites_fonctionnelles' => 'setRecords_unites_fonctionnelles', 't_etages' => 'setRecords_etages', 't_lits' => 'setRecords_lits', 't_compte' => 'setRecords_compte', 't_service_rubrique' => 'setRecords_service_rubrique', 't_service_rubrique_dotation' => 'setRecords_service_rubrique_dotation', 't_prestations_c' => 'setRecords_prestations_c', 't_prestations_h' => 'setRecords_prestations_h', 't_rubriques_facturation' => 'setRecords_rubriques_facturation', 't_types_tiers_payant' => 'setRecords_types_tiers_payant', 't_tiers_payant' => 'setRecords_tiers_payant', 't_specialites_medecin' => 'setRecords_specialites_internes_medecin', 't_medecins_administratifs' => 'setRecords_medecins_administratifs', 't_medecins_traitants_administratifs' => 'setRecords_medecins_traitants_administratifs', 't_medecins' => 'setRecords_medecins', 't_sejour' => 'setRecords_sejour', 't_budget' => 'setRecords_budget', 't_budget_cle' => 'setRecords_budget_cle', 't_budget_cle_rule' => 'setRecords_budget_cle_rule', 't_budget_cle_budget' => 'setRecords_budget_cle_budget', 't_expert_controle' => 'setRecords_expert_controle', 't_forme_activite' => 'setRecords_forme_activite', 't_forme_activite_rule' => 'setRecords_forme_activite_rule', 't_filiere_soin' => 'setRecords_filiere_soin', 't_filiere_soin_rule' => 'setRecords_filiere_soin_rule', 't_pole_rule' => 'setRecords_pole_rule', 't_compte_produit_analytique_rule' => 'setRecords_compte_produit_analytique_rule', 't_calcul_encours' => 'setRecords_calcul_encours', 't_kiwee_params' => 'setRecords_kiwee_params' ); $httpString = $httpString . $settersByTableToUpdate[$tableName](); // Effacer le cache après maj parametre erase_cache(); $httpString = $httpString . "\n"; $httpString = compress64($httpString); echo "$httpString"; function setRecords_services_facturation() { global $database; global $action; global $propagate; global $recordNode; $oid = ctiFloatVal($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"]); $nb_lits = utf8_decode($recordNode["nb_lits"]); $nb_cp = utf8_decode($recordNode["nb_cp"]); $type_t2a = utf8_decode($recordNode["type_t2a"]); $est_budget_global = utf8_decode($recordNode["est_budget_global"]); $est_sans_mouvement = utf8_decode($recordNode["est_sans_mouvement"]); if ($est_sans_mouvement != "1") { $est_sans_mouvement = "0"; } $est_sans_facturation = utf8_decode($recordNode["est_sans_facturation"]); if ($est_sans_facturation != "1" && $est_sans_facturation != "2") { $est_sans_facturation = "0"; } $avec_facturation_intermediaire = utf8_decode($recordNode["avec_facturation_intermediaire"]); if ($avec_facturation_intermediaire != "1") { $avec_facturation_intermediaire = "0"; } $sej_sans_acte_fictif = utf8_decode($recordNode["sej_sans_acte_fictif"]); if ($sej_sans_acte_fictif != "1") { $sej_sans_acte_fictif = "0"; } $finess_id = utf8_decode($recordNode["finess_id"]) + 0; $mode_traitement_id = utf8_decode($recordNode["mode_traitement_id"]) + 0; $dmt_id = utf8_decode($recordNode["dmt_id"]) + 0; $type_sejour = utf8_decode($recordNode["type_sejour"]); $etage_par_defaut_id = ctiFloatVal($recordNode["etage_par_defaut_id"]); $etage_force_id = ctiFloatVal($recordNode["etage_force_id"]); $activite_par_defaut_id = ctiFloatVal($recordNode["activite_par_defaut_id"]); $activite_force_id = ctiFloatVal($recordNode["activite_force_id"]); $medecin_par_defaut_id = ctiFloatVal($recordNode["medecin_par_defaut_id"]); $medecin_force_id = ctiFloatVal($recordNode["medecin_force_id"]); $option_jour_ferme = utf8_decode($recordNode["option_jour_ferme"]); if ($option_jour_ferme != "1") { $option_jour_ferme = "0"; } $prestations_presence = utf8_decode($recordNode["prestations_presence"]); $particularites_encours = utf8_decode($recordNode["particularites_encours"]); $mode_calcul_journees = utf8_decode($recordNode["mode_calcul_journees"]); if ($action != "delete" && $action != "copy") { $code = toSQL($code); $texte = toSQL($texte); $texte_court = toSQL($texte_court); $code_original = toSQL($code_original); $prestations_presence = toSQL($prestations_presence); $particularites_encours = toSQL($particularites_encours); $mode_calcul_journees = toSQL($mode_calcul_journees); $nb_lits = $nb_lits + 0; $nb_cp = $nb_cp + 0; // creation ou mise à jour de la liste if ($oid != -1) { $sqlcmd = "UPDATE activite.t_services_facturation SET code = '$code', texte = '$texte', texte_court = '$texte_court', nb_lits = $nb_lits, nb_cp = $nb_cp, type_t2a = '$type_t2a', est_budget_global = '$est_budget_global', est_sans_mouvement = '$est_sans_mouvement', est_sans_facturation = '$est_sans_facturation', sej_sans_acte_fictif = '$sej_sans_acte_fictif', avec_facturation_intermediaire = '$avec_facturation_intermediaire', finess_id = $finess_id, mode_traitement_id = $mode_traitement_id, dmt_id = $dmt_id, type_sejour = '$type_sejour', etage_par_defaut_id = $etage_par_defaut_id, etage_force_id = $etage_force_id, activite_par_defaut_id = $activite_par_defaut_id, activite_force_id = $activite_force_id, medecin_par_defaut_id = $medecin_par_defaut_id, medecin_force_id = $medecin_force_id, option_jour_ferme = '$option_jour_ferme', prestations_presence = '$prestations_presence', particularites_encours = '$particularites_encours', mode_calcul_journees='$mode_calcul_journees' WHERE oid = $oid"; $result = $database->exec($sqlcmd); $sqlcmd = "DELETE FROM activite.t_services_facturation_historique WHERE service_facturation_id = $oid; "; foreach ($recordNode->HISTO as $place_node) { $date = trim($place_node["date"]); if (strlen($date) == 10) { $date = substr($date,6,4) . substr($date,3,2) . substr($date,0,2); $nb_lits_theoriques = ctiFloatVal($place_node["nb_lits_theoriques"]); $nb_lits_ouverts = ctiFloatVal($place_node["nb_lits_ouverts"]); $nb_box_ambulatoires_theoriques = ctiFloatVal($place_node["nb_box_ambulatoires_theoriques"]); $nb_box_ambulatoires_ouverts = ctiFloatVal($place_node["nb_box_ambulatoires_ouverts"]); $nb_box_seances_theoriques = ctiFloatVal($place_node["nb_box_seances_theoriques"]); $nb_box_seances_ouverts = ctiFloatVal($place_node["nb_box_seances_ouverts"]); $est_ouvert_1 = ctiFloatVal($place_node["est_ouvert_1"]); $est_ouvert_2 = ctiFloatVal($place_node["est_ouvert_2"]); $est_ouvert_3 = ctiFloatVal($place_node["est_ouvert_3"]); $est_ouvert_4 = ctiFloatVal($place_node["est_ouvert_4"]); $est_ouvert_5 = ctiFloatVal($place_node["est_ouvert_5"]); $est_ouvert_6 = ctiFloatVal($place_node["est_ouvert_6"]); $est_ouvert_7 = ctiFloatVal($place_node["est_ouvert_7"]); $sqlcmd = $sqlcmd . "INSERT INTO activite.t_services_facturation_historique( service_facturation_id, date, nb_lits_theoriques, nb_lits_ouverts, nb_box_ambulatoires_theoriques, nb_box_ambulatoires_ouverts, nb_box_seances_theoriques, nb_box_seances_ouverts, est_ouvert_1, est_ouvert_2, est_ouvert_3, est_ouvert_4, est_ouvert_5, est_ouvert_6, est_ouvert_7) VALUES( $oid, '$date', $nb_lits_theoriques, $nb_lits_ouverts, $nb_box_ambulatoires_theoriques, $nb_box_ambulatoires_ouverts, $nb_box_seances_theoriques, $nb_box_seances_ouverts, '$est_ouvert_1', '$est_ouvert_2', '$est_ouvert_3', '$est_ouvert_4', '$est_ouvert_5', '$est_ouvert_6', '$est_ouvert_7' ); "; } } $result = $database->exec($sqlcmd); if ($propagate != "false") { $result = $database->exec("SELECT activite.cti_reorganize_lieux_c(); "); $sqlcmd = "INSERT INTO activite.p_oids (code_table, oid) SELECT DISTINCT 'mode_traitement', t_services_facturation.mode_traitement_id FROM activite.t_lieux, activite.t_services_facturation WHERE service_facturation_id = t_services_facturation.oid AND t_services_facturation.mode_traitement_id NOT IN (SELECT oid FROM activite.p_oids WHERE code_table = 'mode_traitement' AND oid IS NOT NULL) AND t_services_facturation.mode_traitement_id IS NOT NULL"; $result = $database->exec($sqlcmd); } } } } function setRecords_activites() { global $database; global $action; global $propagate; global $recordNode; $oid = ctiFloatVal($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"]); $etage_par_defaut_id = ctiFloatVal($recordNode["etage_par_defaut_id"]); $etage_force_id = ctiFloatVal($recordNode["etage_force_id"]); if ($action != "delete" && $action != "copy") { $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 activite.t_activites SET code = '$code', texte = '$texte', texte_court = '$texte_court', etage_par_defaut_id = $etage_par_defaut_id, etage_force_id = $etage_force_id WHERE oid = $oid"; $result = $database->exec($sqlcmd); if ($propagate != "false") { $result = $database->exec("SELECT activite.cti_reorganize_lieux_c(); "); } } } } function setRecords_divers() { global $database; global $action; global $propagate; global $recordNode; $oid = ctiFloatVal($recordNode["oid"]); $code = utf8_decode($recordNode["code"]); $texte = utf8_decode($recordNode["texte"]); $valeur = utf8_decode($recordNode["valeur"]); $description = utf8_decode($recordNode["description"]); $valeur2 = utf8_decode($recordNode["valeur2"]); $show_info_module = utf8_decode($recordNode["show_info_module"]); if ($action != "delete" && $action != "copy") { $code = toSQL($code); $texte = toSQL($texte); $valeur = toSQL($valeur); $description = toSQL($description); $show_info_module = ctiFloatVal($show_info_module); // creation ou mise à jour de la liste if ($oid != -1) { $sqlcmd = "UPDATE activite.t_divers SET "; $sqlcmd = $sqlcmd . "valeur = '$valeur', "; $sqlcmd = $sqlcmd . "valeur2 = '$valeur2', "; $sqlcmd = $sqlcmd . "show_info_module = ($show_info_module = 1) "; $sqlcmd = $sqlcmd . "WHERE code = '$code'"; $result = $database->exec($sqlcmd); if ($propagate != "false") { if ($code == "PLACESREF") { $result = $database->exec("SELECT activite.cti_reorganize_lieux_c(); "); } if ($code == 'OPTADM_DAYOUT') { $result = $database->exec("SELECT activite.cti_calcul_journees_mouvements(); "); $result = $database->exec("SELECT activite.cti_calcul_hdj_mouvements(); "); } } } } } function setRecords_unites_medicales() { global $database; global $action; global $propagate; global $recordNode; $oid = ctiFloatVal($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"]); $etage_par_defaut_id = ctiFloatVal($recordNode["etage_par_defaut_id"]); $etage_force_id = ctiFloatVal($recordNode["etage_force_id"]); if ($action != "delete" && $action != "copy") { $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 activite.t_unites_medicales SET code = '$code', texte = '$texte', texte_court = '$texte_court', etage_par_defaut_id = $etage_par_defaut_id, etage_force_id = $etage_force_id WHERE oid = $oid"; $result = $database->exec($sqlcmd); $sqlcmd = "DELETE FROM activite.t_unites_medicales_historique WHERE unite_medicale_id = $oid; "; foreach ($recordNode->HISTO as $place_node) { $date = trim($place_node["date"]); if (strlen($date) == 10) { $date = substr($date,6,4) . substr($date,3,2) . substr($date,0,2); $nb_lits_theoriques = ctiFloatVal($place_node["nb_lits_theoriques"]); $nb_lits_ouverts = ctiFloatVal($place_node["nb_lits_ouverts"]); $nb_box_ambulatoires_theoriques = ctiFloatVal($place_node["nb_box_ambulatoires_theoriques"]); $nb_box_ambulatoires_ouverts = ctiFloatVal($place_node["nb_box_ambulatoires_ouverts"]); $nb_box_seances_theoriques = ctiFloatVal($place_node["nb_box_seances_theoriques"]); $nb_box_seances_ouverts = ctiFloatVal($place_node["nb_box_seances_ouverts"]); $est_ouvert_1 = ctiFloatVal($place_node["est_ouvert_1"]); $est_ouvert_2 = ctiFloatVal($place_node["est_ouvert_2"]); $est_ouvert_3 = ctiFloatVal($place_node["est_ouvert_3"]); $est_ouvert_4 = ctiFloatVal($place_node["est_ouvert_4"]); $est_ouvert_5 = ctiFloatVal($place_node["est_ouvert_5"]); $est_ouvert_6 = ctiFloatVal($place_node["est_ouvert_6"]); $est_ouvert_7 = ctiFloatVal($place_node["est_ouvert_7"]); $sqlcmd = $sqlcmd . "INSERT INTO activite.t_unites_medicales_historique( unite_medicale_id, date, nb_lits_theoriques, nb_lits_ouverts, nb_box_ambulatoires_theoriques, nb_box_ambulatoires_ouverts, nb_box_seances_theoriques, nb_box_seances_ouverts, est_ouvert_1, est_ouvert_2, est_ouvert_3, est_ouvert_4, est_ouvert_5, est_ouvert_6, est_ouvert_7) VALUES( $oid, '$date', $nb_lits_theoriques, $nb_lits_ouverts, $nb_box_ambulatoires_theoriques, $nb_box_ambulatoires_ouverts, $nb_box_seances_theoriques, $nb_box_seances_ouverts, '$est_ouvert_1', '$est_ouvert_2', '$est_ouvert_3', '$est_ouvert_4', '$est_ouvert_5', '$est_ouvert_6', '$est_ouvert_7' ); "; } } $result = $database->exec($sqlcmd); if ($propagate != "false") { $result = $database->exec("SELECT activite.cti_reorganize_lieux_c(); "); } } } } function setRecords_unites_fonctionnelles() { global $database; global $action; global $propagate; global $recordNode; $oid = ctiFloatVal($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"]); $est_sans_facturation = utf8_decode($recordNode["est_sans_facturation"]); if ($est_sans_facturation != "1" && $est_sans_facturation != "2") { $est_sans_facturation = "0"; } if ($action != "delete" && $action != "copy") { $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 activite.t_unites_fonctionnelles SET "; $sqlcmd = $sqlcmd . "code = '$code', "; $sqlcmd = $sqlcmd . "texte = '$texte', "; $sqlcmd = $sqlcmd . "texte_court = '$texte_court', "; $sqlcmd = $sqlcmd . "est_sans_facturation = '$est_sans_facturation' "; $sqlcmd = $sqlcmd . "WHERE oid = $oid"; $result = $database->exec($sqlcmd); $sqlcmd = "DELETE FROM activite.t_unites_fonctionnelles_historique WHERE unite_fonctionnelle_id = $oid; "; foreach ($recordNode->HISTO as $place_node) { $date = trim($place_node["date"]); if (strlen($date) == 10) { $date = substr($date,6,4) . substr($date,3,2) . substr($date,0,2); $nb_lits_theoriques = ctiFloatVal($place_node["nb_lits_theoriques"]); $nb_lits_ouverts = ctiFloatVal($place_node["nb_lits_ouverts"]); $nb_box_ambulatoires_theoriques = ctiFloatVal($place_node["nb_box_ambulatoires_theoriques"]); $nb_box_ambulatoires_ouverts = ctiFloatVal($place_node["nb_box_ambulatoires_ouverts"]); $nb_box_seances_theoriques = ctiFloatVal($place_node["nb_box_seances_theoriques"]); $nb_box_seances_ouverts = ctiFloatVal($place_node["nb_box_seances_ouverts"]); $est_ouvert_1 = ctiFloatVal($place_node["est_ouvert_1"]); $est_ouvert_2 = ctiFloatVal($place_node["est_ouvert_2"]); $est_ouvert_3 = ctiFloatVal($place_node["est_ouvert_3"]); $est_ouvert_4 = ctiFloatVal($place_node["est_ouvert_4"]); $est_ouvert_5 = ctiFloatVal($place_node["est_ouvert_5"]); $est_ouvert_6 = ctiFloatVal($place_node["est_ouvert_6"]); $est_ouvert_7 = ctiFloatVal($place_node["est_ouvert_7"]); $sqlcmd = $sqlcmd . "INSERT INTO activite.t_unites_fonctionnelles_historique( unite_fonctionnelle_id, date, nb_lits_theoriques, nb_lits_ouverts, nb_box_ambulatoires_theoriques, nb_box_ambulatoires_ouverts, nb_box_seances_theoriques, nb_box_seances_ouverts, est_ouvert_1, est_ouvert_2, est_ouvert_3, est_ouvert_4, est_ouvert_5, est_ouvert_6, est_ouvert_7) VALUES( $oid, '$date', $nb_lits_theoriques, $nb_lits_ouverts, $nb_box_ambulatoires_theoriques, $nb_box_ambulatoires_ouverts, $nb_box_seances_theoriques, $nb_box_seances_ouverts, '$est_ouvert_1', '$est_ouvert_2', '$est_ouvert_3', '$est_ouvert_4', '$est_ouvert_5', '$est_ouvert_6', '$est_ouvert_7' ); "; } } $result = $database->exec($sqlcmd); if ($propagate != "false") { $result = $database->exec("SELECT activite.cti_reorganize_lieux_c(); "); } } } } function setRecords_etages() { global $database; global $action; global $propagate; global $recordNode; $etage_id = ctiFloatVal($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"]); $nb_lits = utf8_decode($recordNode["nb_lits"]); $nb_cp = utf8_decode($recordNode["nb_cp"]); $remplacer_par_valeur_par_defaut = utf8_decode($recordNode["remplacer_par_valeur_par_defaut"]); $est_urgence = utf8_decode($recordNode["est_urgence"]); $service_force_id = ctiFloatVal($recordNode["service_force_id"]); $finess_id = utf8_decode($recordNode["finess_id"]) + 0; if ($action != "delete" && $action != "copy") { $code = toSQL($code); $texte = toSQL($texte); $texte_court = toSQL($texte_court); $code_original = toSQL($code_original); $nb_lits = $nb_lits + 0; $nb_cp = $nb_cp + 0; // creation ou mise à jour de la liste if ($etage_id != -1) { $sqlcmd = "UPDATE activite.t_etages SET code = '$code', texte = '$texte', texte_court = '$texte_court', nb_lits = $nb_lits, nb_cp = $nb_cp, remplacer_par_valeur_par_defaut = '$remplacer_par_valeur_par_defaut', est_urgence = '$est_urgence', service_force_id = $service_force_id, finess_id = $finess_id WHERE oid = $etage_id"; $result = $database->exec($sqlcmd); $sqlcmd = ""; foreach ($recordNode->LIT as $lit_node) { $oid = ctiFloatVal($lit_node["oid"]); $chambre_particuliere = trim($lit_node["chambre_particuliere"]); if ($chambre_particuliere == "1") { $chambre_particuliere = "O"; } else { $chambre_particuliere = "N"; } $sqlcmd = $sqlcmd . "UPDATE activite.t_lits SET chambre_particuliere = '$chambre_particuliere' WHERE oid = $oid AND oid > 0 AND chambre_particuliere IS DISTINCT FROM '$chambre_particuliere';"; } $result = $database->exec($sqlcmd); $sqlcmd = "DELETE FROM activite.t_etages_historique WHERE etage_id = $etage_id; "; foreach ($recordNode->HISTO as $place_node) { $date = trim($place_node["date"]); if (strlen($date) == 10) { $date = substr($date,6,4) . substr($date,3,2) . substr($date,0,2); $nb_lits_theoriques = ctiFloatVal($place_node["nb_lits_theoriques"]); $nb_lits_ouverts = ctiFloatVal($place_node["nb_lits_ouverts"]); $nb_lits_cp_theoriques = ctiFloatVal($place_node["nb_lits_cp_theoriques"]); $nb_lits_cp_ouverts = ctiFloatVal($place_node["nb_lits_cp_ouverts"]); $nb_box_ambulatoires_theoriques = ctiFloatVal($place_node["nb_box_ambulatoires_theoriques"]); $nb_box_ambulatoires_ouverts = ctiFloatVal($place_node["nb_box_ambulatoires_ouverts"]); $nb_box_seances_theoriques = ctiFloatVal($place_node["nb_box_seances_theoriques"]); $nb_box_seances_ouverts = ctiFloatVal($place_node["nb_box_seances_ouverts"]); $est_ouvert_1 = ctiFloatVal($place_node["est_ouvert_1"]); $est_ouvert_2 = ctiFloatVal($place_node["est_ouvert_2"]); $est_ouvert_3 = ctiFloatVal($place_node["est_ouvert_3"]); $est_ouvert_4 = ctiFloatVal($place_node["est_ouvert_4"]); $est_ouvert_5 = ctiFloatVal($place_node["est_ouvert_5"]); $est_ouvert_6 = ctiFloatVal($place_node["est_ouvert_6"]); $est_ouvert_7 = ctiFloatVal($place_node["est_ouvert_7"]); $lit_force = trim($place_node["lit_force"]); $sqlcmd = $sqlcmd . "INSERT INTO activite.t_etages_historique( etage_id, date, nb_lits_theoriques, nb_lits_ouverts, nb_lits_cp_theoriques, nb_lits_cp_ouverts, nb_box_ambulatoires_theoriques, nb_box_ambulatoires_ouverts, nb_box_seances_theoriques, nb_box_seances_ouverts, est_ouvert_1, est_ouvert_2, est_ouvert_3, est_ouvert_4, est_ouvert_5, est_ouvert_6, est_ouvert_7, lit_force) VALUES( $etage_id, '$date', $nb_lits_theoriques, $nb_lits_ouverts, $nb_lits_cp_theoriques, $nb_lits_cp_ouverts, $nb_box_ambulatoires_theoriques, $nb_box_ambulatoires_ouverts, $nb_box_seances_theoriques, $nb_box_seances_ouverts, '$est_ouvert_1', '$est_ouvert_2', '$est_ouvert_3', '$est_ouvert_4', '$est_ouvert_5', '$est_ouvert_6', '$est_ouvert_7', '$lit_force' ); "; } } $result = $database->exec($sqlcmd); if ($propagate != "false") { $result = $database->exec("SELECT activite.cti_reorganize_lieux_c(); "); } } } } function setRecords_lits() { global $database; global $action; global $propagate; global $recordNode; $lit_id = ctiFloatVal($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"]); $est_chambre_particuliere = utf8_decode($recordNode["est_chambre_particuliere"]); if ($action != "delete" && $action != "copy") { $code = toSQL($code); $texte = toSQL($texte); $texte_court = toSQL($texte_court); $code_original = toSQL($code_original); if ($est_chambre_particuliere == "1") { $chambre_particuliere = "O"; } else { $chambre_particuliere = "N"; } // creation ou mise à jour de la liste if ($lit_id != -1) { $sqlcmd = "UPDATE activite.t_lits SET code = '$code', texte = '$texte', texte_court = '$texte_court', chambre_particuliere = '$chambre_particuliere' WHERE oid = $lit_id"; $result = $database->exec($sqlcmd); // Historique des étages par lit $sqlcmd = "DELETE FROM activite.t_lit_historique WHERE lit_id = $lit_id; "; $one_historique = FALSE; foreach ($recordNode->ETAGE as $etage_node) { $date = trim($etage_node["date"]); if (strlen($date) == 10) { $date = substr($date,6,4) . substr($date,3,2) . substr($date,0,2); $etage_id = ctiFloatVal($etage_node["oid"]); $sqlcmd = $sqlcmd . "INSERT INTO activite.t_lit_historique( lit_id, date_debut, date_fin, etage_id) VALUES( $lit_id, '$date', '20991231', $etage_id ); "; $one_historique = TRUE; } } if ($one_historique == TRUE) { $sqlcmd = $sqlcmd . "UPDATE activite.t_lits SET etage_id = subview.etage_id FROM ( SELECT lit_id, (MAX(ARRAY[date_fin::text, etage_id::text]))[2]::bigint AS etage_id FROM ( SELECT lit_id, etage_id, date_debut, date_fin FROM activite.t_lit_historique WHERE lit_id = $lit_id ORDER BY lit_id ) subview GROUP BY lit_id ) subview WHERE t_lits.oid = subview.lit_id AND t_lits.etage_id IS DISTINCT FROM subview.etage_id;"; $sqlcmd = $sqlcmd . "UPDATE activite.t_lit_historique SET date_fin = subview.date_fin FROM ( SELECT oid, lit_id, date(COALESCE((SELECT MIN(date_debut) - interval '1 day' FROM activite.t_lit_historique t_lit_historique_next WHERE t_lit_historique.lit_id = t_lit_historique_next.lit_id AND t_lit_historique.date_debut < t_lit_historique_next.date_debut ),'20991231')) AS date_fin FROM activite.t_lit_historique WHERE lit_id = $lit_id ) subview WHERE t_lit_historique.oid = subview.oid AND t_lit_historique.date_fin IS DISTINCT FROM subview.date_fin;"; } $result = $database->exec($sqlcmd); if ($propagate != "false") { $result = $database->exec("SELECT activite.cti_reorganize_lieux_c(); "); } } } } function setRecords_compte() { global $database; global $action; global $recordNode; $oid = ctiFloatVal($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"]); $taux_tva = ctiFloatVal($recordNode["taux_tva"]); $compte_tva_id = ctiFloatVal($recordNode["compte_tva_id"]); if ($action != "delete" && $action != "copy") { $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 = "INSERT INTO activite.t_compte (code, code_original, texte, texte_court, taux_tva, compte_tva_id) VALUES('$code','$code','$texte','$texte_court', $taux_tva, $compte_tva_id )"; $result = $database->exec($sqlcmd); } else { $sqlcmd = "UPDATE activite.t_compte SET "; $sqlcmd = $sqlcmd . "code = '$code', "; $sqlcmd = $sqlcmd . "texte = '$texte', "; $sqlcmd = $sqlcmd . "texte_court = '$texte_court', "; $sqlcmd = $sqlcmd . "taux_tva = $taux_tva, "; $sqlcmd = $sqlcmd . "compte_tva_id = $compte_tva_id "; $sqlcmd = $sqlcmd . "WHERE oid = $oid"; $result = $database->exec($sqlcmd); } } } function setRecords_service_rubrique() { global $database; global $action; global $recordNode; $oid = ctiFloatVal($recordNode["oid"]); $service_id = ctiFloatVal($recordNode["service_id"]); $rubrique_id = ctiFloatVal($recordNode["rubrique_id"]); $compte_id = ctiFloatVal($recordNode["compte_id"]); $est_compte_force = utf8_decode($recordNode["est_compte_force"]); $prestation_forcee_id = ctiFloatVal($recordNode["prestation_forcee_id"]); if ($action != "delete" && $action != "copy") { $sqlcmd = " UPDATE activite.t_service_rubrique SET compte_id = $compte_id, est_compte_force = '$est_compte_force', prestation_forcee_id = $prestation_forcee_id WHERE service_facturation_id = $service_id AND rubrique_facturation_id = $rubrique_id; INSERT INTO activite.t_service_rubrique (service_facturation_id, rubrique_facturation_id, compte_id, est_compte_force, prestation_forcee_id) SELECT $service_id,$rubrique_id,$compte_id,'$est_compte_force', $prestation_forcee_id WHERE $service_id::text || '-' || $rubrique_id::text NOT IN ( SELECT service_facturation_id::text || '-' || rubrique_facturation_id::text FROM activite.t_service_rubrique );"; $result = $database->exec($sqlcmd); } } function setRecords_service_rubrique_dotation() { global $database; global $action; global $recordNode; $oid = ctiFloatVal($recordNode["oid"]); $texte = utf8_decode($recordNode["texte"]); $texte = toSQL($texte); $annee = ctiFloatVal($recordNode["annee"]); $dotation = ctiFloatVal(str_replace(',','.',$recordNode["dotation"])); $service_1_id = ctiFloatVal($recordNode["service_1_id"]); $service_2_id = ctiFloatVal($recordNode["service_2_id"]); $service_3_id = ctiFloatVal($recordNode["service_3_id"]); $service_4_id = ctiFloatVal($recordNode["service_4_id"]); $service_5_id = ctiFloatVal($recordNode["service_5_id"]); $service_6_id = ctiFloatVal($recordNode["service_6_id"]); $service_7_id = ctiFloatVal($recordNode["service_7_id"]); $service_8_id = ctiFloatVal($recordNode["service_8_id"]); $service_9_id = ctiFloatVal($recordNode["service_9_id"]); $rubrique_1_id = ctiFloatVal($recordNode["rubrique_1_id"]); $rubrique_2_id = ctiFloatVal($recordNode["rubrique_2_id"]); $rubrique_3_id = ctiFloatVal($recordNode["rubrique_3_id"]); $rubrique_4_id = ctiFloatVal($recordNode["rubrique_4_id"]); $rubrique_5_id = ctiFloatVal($recordNode["rubrique_5_id"]); $rubrique_6_id = ctiFloatVal($recordNode["rubrique_6_id"]); $rubrique_7_id = ctiFloatVal($recordNode["rubrique_7_id"]); $rubrique_8_id = ctiFloatVal($recordNode["rubrique_8_id"]); $rubrique_9_id = ctiFloatVal($recordNode["rubrique_9_id"]); $rubrique_10_id = ctiFloatVal($recordNode["rubrique_10_id"]); $to_rubrique_id = ctiFloatVal($recordNode["to_rubrique_id"]); $to_prestation_id = ctiFloatVal($recordNode["to_prestation_id"]); $service_id_array = ""; if ($service_1_id != 0) { $service_id_array = "$service_1_id"; } if ($service_2_id != 0) { if ($service_id_array != "") { $service_id_array = "$service_id_array,"; } $service_id_array = "$service_id_array$service_2_id"; } if ($service_3_id != 0) { if ($service_id_array != "") { $service_id_array = "$service_id_array,"; } $service_id_array = "$service_id_array$service_3_id"; } if ($service_4_id != 0) { if ($service_id_array != "") { $service_id_array = "$service_id_array,"; } $service_id_array = "$service_id_array$service_4_id"; } if ($service_5_id != 0) { if ($service_id_array != "") { $service_id_array = "$service_id_array,"; } $service_id_array = "$service_id_array$service_5_id"; } if ($service_6_id != 0) { if ($service_id_array != "") { $service_id_array = "$service_id_array,"; } $service_id_array = "$service_id_array$service_6_id"; } if ($service_7_id != 0) { if ($service_id_array != "") { $service_id_array = "$service_id_array,"; } $service_id_array = "$service_id_array$service_7_id"; } if ($service_8_id != 0) { if ($service_id_array != "") { $service_id_array = "$service_id_array,"; } $service_id_array = "$service_id_array$service_8_id"; } if ($service_9_id != 0) { if ($service_id_array != "") { $service_id_array = "$service_id_array,"; } $service_id_array = "$service_id_array$service_9_id"; } if ($service_id_array != "") { $service_id_array = "ARRAY[$service_id_array]"; } else { $service_id_array = "NULL"; } $rubrique_id_array = ""; if ($rubrique_1_id != 0) { $rubrique_id_array = "$rubrique_1_id"; } if ($rubrique_2_id != 0) { if ($rubrique_id_array != "") { $rubrique_id_array = "$rubrique_id_array,"; } $rubrique_id_array = "$rubrique_id_array$rubrique_2_id"; } if ($rubrique_3_id != 0) { if ($rubrique_id_array != "") { $rubrique_id_array = "$rubrique_id_array,"; } $rubrique_id_array = "$rubrique_id_array$rubrique_3_id"; } if ($rubrique_4_id != 0) { if ($rubrique_id_array != "") { $rubrique_id_array = "$rubrique_id_array,"; } $rubrique_id_array = "$rubrique_id_array$rubrique_4_id"; } if ($rubrique_5_id != 0) { if ($rubrique_id_array != "") { $rubrique_id_array = "$rubrique_id_array,"; } $rubrique_id_array = "$rubrique_id_array$rubrique_5_id"; } if ($rubrique_6_id != 0) { if ($rubrique_id_array != "") { $rubrique_id_array = "$rubrique_id_array,"; } $rubrique_id_array = "$rubrique_id_array$rubrique_6_id"; } if ($rubrique_7_id != 0) { if ($rubrique_id_array != "") { $rubrique_id_array = "$rubrique_id_array,"; } $rubrique_id_array = "$rubrique_id_array$rubrique_7_id"; } if ($rubrique_8_id != 0) { if ($rubrique_id_array != "") { $rubrique_id_array = "$rubrique_id_array,"; } $rubrique_id_array = "$rubrique_id_array$rubrique_8_id"; } if ($rubrique_9_id != 0) { if ($rubrique_id_array != "") { $rubrique_id_array = "$rubrique_id_array,"; } $rubrique_id_array = "$rubrique_id_array$rubrique_9_id"; } if ($rubrique_10_id != 0) { if ($rubrique_id_array != "") { $rubrique_id_array = "$rubrique_id_array,"; } $rubrique_id_array = "$rubrique_id_array$rubrique_10_id"; } if ($rubrique_id_array != "") { $rubrique_id_array = "ARRAY[$rubrique_id_array]"; } else { $rubrique_id_array = "NULL"; } if ($action != "delete" && $action != "copy") { $sqlcmd = " UPDATE activite.t_service_rubrique_dotation SET annee = $annee, texte = '$texte', montant_dotation = $dotation, service_facturation_id_array = $service_id_array, rubrique_facturation_id_array = $rubrique_id_array, to_rubrique_facturation_id = $to_rubrique_id, to_prestation_id = $to_prestation_id WHERE oid = $oid;"; $result = $database->exec($sqlcmd); } } function setRecords_prestations_c() { global $database; global $action; global $recordNode; $oid = ctiFloatVal($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"]); $type_valorisation_non_facture = utf8_decode($recordNode["type_valorisation_non_facture"]); $type_ventilation_jour = utf8_decode($recordNode["type_ventilation_jour"]); if ($action != "delete" && $action != "copy") { $code = toSQL($code); $texte = toSQL($texte); $texte_court = toSQL($texte_court); $code_original = toSQL($code_original); $type_valorisation_non_facture = toSQL($type_valorisation_non_facture); $type_ventilation_jour = toSQL($type_ventilation_jour); // creation ou mise à jour de la liste if ($oid != -1) { $sqlcmd = "UPDATE activite.t_prestations SET "; $sqlcmd = $sqlcmd . "code = '$code', "; $sqlcmd = $sqlcmd . "texte = '$texte', "; $sqlcmd = $sqlcmd . "texte_court = '$texte_court', "; $sqlcmd = $sqlcmd . "type_valorisation_non_facture = '$type_valorisation_non_facture', "; $sqlcmd = $sqlcmd . "type_ventilation_jour = '$type_ventilation_jour' "; $sqlcmd = $sqlcmd . "WHERE oid = $oid"; $result = $database->exec($sqlcmd); } } } function setRecords_prestations_h() { global $database; global $action; global $recordNode; $oid = ctiFloatVal($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"]); if ($action != "delete" && $action != "copy") { $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 activite.t_prestations SET "; $sqlcmd = $sqlcmd . "code = '$code', "; $sqlcmd = $sqlcmd . "texte = '$texte', "; $sqlcmd = $sqlcmd . "texte_court = '$texte_court' "; $sqlcmd = $sqlcmd . "WHERE oid = $oid"; $result = $database->exec($sqlcmd); } } } function setRecords_rubriques_facturation() { global $database; global $action; global $recordNode; $oid = ctiFloatVal($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"]); $actes_inclus_public = utf8_decode($recordNode["actes_inclus_public"]); $est_force_etablissement = utf8_decode($recordNode["est_force_etablissement"]); if ($action != "delete" && $action != "copy") { $code = toSQL($code); $texte = toSQL($texte); $texte_court = toSQL($texte_court); $code_original = toSQL($code_original); $actes_inclus_public = toSQL($actes_inclus_public); $est_force_etablissement = toSQL($est_force_etablissement); // creation ou mise à jour de la liste if ($oid != -1) { $sqlcmd = "UPDATE activite.t_rubriques_facturation SET "; $sqlcmd = $sqlcmd . "code = '$code', "; $sqlcmd = $sqlcmd . "texte = '$texte', "; $sqlcmd = $sqlcmd . "texte_court = '$texte_court', "; $sqlcmd = $sqlcmd . "actes_inclus_public = '$actes_inclus_public', "; $sqlcmd = $sqlcmd . "est_force_etablissement = '$est_force_etablissement' "; $sqlcmd = $sqlcmd . "WHERE oid = $oid"; $result = $database->exec($sqlcmd); } } } function setRecords_types_tiers_payant() { global $database; global $action; global $recordNode; $oid = $recordNode["oid"]; $code = utf8_decode($recordNode["code"]); $texte = utf8_decode($recordNode["texte"]); $texte_court = utf8_decode($recordNode["texte_court"]); if ($action != "delete" && $action != "copy") { $code = toSQL($code); $texte = toSQL($texte); $texte_court = toSQL($texte_court); // creation ou mise à jour de la liste if ($oid != -1) { $sqlcmd = "UPDATE activite.t_types_tiers_payant SET "; $sqlcmd = $sqlcmd . "texte = '$texte', "; $sqlcmd = $sqlcmd . "texte_court = '$texte_court' "; $sqlcmd = $sqlcmd . "WHERE code = '$oid'"; $result = $database->exec($sqlcmd); } } } function setRecords_tiers_payant() { global $database; global $action; global $propagate; global $recordNode; $oid = ctiFloatVal($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"]); $grand_regime_id = ctiFloatVal($recordNode["grand_regime_id"]); if ($action != "delete" && $action != "copy") { $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 activite.t_tiers_payant SET code = '$code', texte = '$texte', texte_court = '$texte_court', grand_regime_id = $grand_regime_id WHERE oid = $oid"; $result = $database->exec($sqlcmd); } } if ($propagate != "false") { $result = $database->exec("SELECT activite.cti_reorganize_tiers_payant(); "); } } function setRecords_specialites_internes_medecin() { global $database; global $action; global $recordNode; $oid = ctiFloatVal($recordNode["oid"]); $code = utf8_decode($recordNode["code"]); $texte = utf8_decode($recordNode["texte"]); $texte_court = utf8_decode($recordNode["texte_court"]); if ($action != "delete" && $action != "copy") { $code = toSQL($code); $texte = toSQL($texte); $texte_court = toSQL($texte_court); // creation ou mise à jour de la liste if ($oid == -1) { $sqlcmd = "INSERT INTO base.t_specialites_medecin "; $sqlcmd = $sqlcmd . "( "; $sqlcmd = $sqlcmd . "code, texte, texte_court"; $sqlcmd = $sqlcmd . ") "; $sqlcmd = $sqlcmd . "VALUES("; $sqlcmd = $sqlcmd . "'$code', '$texte', '$texte_court'"; $sqlcmd = $sqlcmd . ") "; $result = $database->exec($sqlcmd); if ($result == FALSE) { } } else { $sqlcmd = "UPDATE base.t_specialites_medecin SET "; $sqlcmd = $sqlcmd . "code = '$code', "; $sqlcmd = $sqlcmd . "texte = '$texte', "; $sqlcmd = $sqlcmd . "texte_court = '$texte_court' "; $sqlcmd = $sqlcmd . "WHERE oid = $oid"; $result = $database->exec($sqlcmd); $sqlcmd = "UPDATE activite.t_medecins_administratifs_c SET "; $sqlcmd = $sqlcmd . "adm_code = t_medecins_administratifs.code, "; $sqlcmd = $sqlcmd . "adm_nom = t_medecins_administratifs.nom, "; $sqlcmd = $sqlcmd . "adm_prenom = t_medecins_administratifs.prenom, "; $sqlcmd = $sqlcmd . "adm_nom_prenom = t_medecins_administratifs.nom || ' ' || t_medecins_administratifs.prenom, "; $sqlcmd = $sqlcmd . "medecin_id = t_medecins_administratifs.medecin_id, "; $sqlcmd = $sqlcmd . "nom = t_medecins.nom, "; $sqlcmd = $sqlcmd . "prenom = t_medecins.prenom, "; $sqlcmd = $sqlcmd . "nom_prenom = t_medecins.nom || ' ' || t_medecins.prenom, "; $sqlcmd = $sqlcmd . "specialite_id = t_medecins.specialite_id, "; $sqlcmd = $sqlcmd . "specialite_code = t_specialites_medecin.code, "; $sqlcmd = $sqlcmd . "specialite_texte = t_specialites_medecin.texte_court "; $sqlcmd = $sqlcmd . "FROM activite.t_medecins_administratifs, base.t_medecins, base.t_specialites_medecin "; $sqlcmd = $sqlcmd . "WHERE t_medecins_administratifs_c.oid = t_medecins_administratifs.oid "; $sqlcmd = $sqlcmd . "AND t_medecins_administratifs.medecin_id = t_medecins.oid "; $sqlcmd = $sqlcmd . "AND t_medecins.specialite_id = t_specialites_medecin.oid "; $sqlcmd = $sqlcmd . "AND t_medecins.specialite_id = $oid "; $result = $database->exec($sqlcmd); } } if ($action == "delete") { $sqlcmd = "DELETE FROM base.t_specialites_medecin WHERE oid = $oid"; $result = $database->exec($sqlcmd); } } function setRecords_medecins_administratifs() { global $database; global $action; global $recordNode; $oid = ctiFloatVal($recordNode["oid"]); $code = utf8_decode($recordNode["code"]); $nom = utf8_decode($recordNode["nom"]); $prenom = utf8_decode($recordNode["prenom"]); $code_original = utf8_decode($recordNode["code_original"]); $est_medecin_salarie = utf8_decode($recordNode["est_medecin_salarie"]); $kiwee_sigems_honpatcpt = utf8_decode($recordNode["kiwee_sigems_honpatcpt"]); $kiwee_sigems_honpatcptdep = utf8_decode($recordNode["kiwee_sigems_honpatcptdep"]); if ($action != "delete" && $action != "copy") { $code = toSQL($code); $nom = toSQL($nom); $prenom = toSQL($prenom); $code_original = toSQL($code_original); // creation ou mise à jour de la liste if ($oid != -1) { $sqlcmd = "UPDATE activite.t_medecins_administratifs SET "; $sqlcmd = $sqlcmd . "code = '$code', "; $sqlcmd = $sqlcmd . "nom = '$nom', "; $sqlcmd = $sqlcmd . "prenom = '$prenom', "; $sqlcmd = $sqlcmd . "est_medecin_salarie = '$est_medecin_salarie', "; $sqlcmd = $sqlcmd . "kiwee_sigems_honpatcpt = '$kiwee_sigems_honpatcpt', "; $sqlcmd = $sqlcmd . "kiwee_sigems_honpatcptdep = '$kiwee_sigems_honpatcptdep' "; $sqlcmd = $sqlcmd . "WHERE oid = $oid"; $result = $database->exec($sqlcmd); $sqlcmd = "UPDATE activite.t_medecins_administratifs_c SET "; $sqlcmd = $sqlcmd . "adm_code = t_medecins_administratifs.code, "; $sqlcmd = $sqlcmd . "adm_nom = t_medecins_administratifs.nom, "; $sqlcmd = $sqlcmd . "adm_prenom = t_medecins_administratifs.prenom, "; $sqlcmd = $sqlcmd . "adm_nom_prenom = t_medecins_administratifs.nom || ' ' || t_medecins_administratifs.prenom, "; $sqlcmd = $sqlcmd . "medecin_id = t_medecins_administratifs.medecin_id, "; $sqlcmd = $sqlcmd . "nom = t_medecins.nom, "; $sqlcmd = $sqlcmd . "prenom = t_medecins.prenom, "; $sqlcmd = $sqlcmd . "nom_prenom = t_medecins.nom || ' ' || t_medecins.prenom, "; $sqlcmd = $sqlcmd . "specialite_id = t_medecins.specialite_id, "; $sqlcmd = $sqlcmd . "specialite_code = t_specialites_medecin.code, "; $sqlcmd = $sqlcmd . "specialite_texte = t_specialites_medecin.texte_court "; $sqlcmd = $sqlcmd . "FROM activite.t_medecins_administratifs, base.t_medecins, base.t_specialites_medecin "; $sqlcmd = $sqlcmd . "WHERE t_medecins_administratifs_c.oid = t_medecins_administratifs.oid "; $sqlcmd = $sqlcmd . "AND t_medecins_administratifs.medecin_id = t_medecins.oid "; $sqlcmd = $sqlcmd . "AND t_medecins.specialite_id = t_specialites_medecin.oid "; $sqlcmd = $sqlcmd . "AND t_medecins_administratifs.oid = $oid "; $result = $database->exec($sqlcmd); } } $result = $database->exec("SELECT activite.cti_reorganize_medecins_administratifs_c(); "); } function setRecords_medecins_traitants_administratifs() { global $database; global $action; global $recordNode; $oid = ctiFloatVal($recordNode["oid"]); $code = utf8_decode($recordNode["code"]); $nom = utf8_decode($recordNode["nom"]); $prenom = utf8_decode($recordNode["prenom"]); $code_original = utf8_decode($recordNode["code_original"]); $no_rpps = utf8_decode($recordNode["no_rpps"]); $code_postal = utf8_decode($recordNode["code_postal"]); $ville = str_replace("'","''",utf8_decode($recordNode["ville"])); $adresse = str_replace("'","''",utf8_decode($recordNode["adresse"])); if ($action != "delete" && $action != "copy") { $code = toSQL($code); $nom = toSQL($nom); $prenom = toSQL($prenom); $code_original = toSQL($code_original); // creation ou mise à jour de la liste if ($oid != -1) { $sqlcmd = "UPDATE activite.t_medecins_traitants_administratifs SET "; $sqlcmd = $sqlcmd . "code = '$code', "; $sqlcmd = $sqlcmd . "nom = '$nom', "; $sqlcmd = $sqlcmd . "prenom = '$prenom', "; $sqlcmd = $sqlcmd . "no_rpps = '$no_rpps', "; $sqlcmd = $sqlcmd . "ville = '$ville', "; $sqlcmd = $sqlcmd . "adresse = '$adresse' "; $sqlcmd = $sqlcmd . "WHERE oid = $oid"; $result = $database->exec($sqlcmd); $sqlcmd = "UPDATE activite.t_medecins_traitants_administratifs SET "; $sqlcmd = $sqlcmd . "code_postal_id = 0"; $result = $database->exec($sqlcmd); $sqlcmd = "UPDATE activite.t_medecins_traitants_administratifs SET "; $sqlcmd = $sqlcmd . "code_postal_id = t_codes_postaux.oid "; $sqlcmd = $sqlcmd . "FROM base.t_codes_postaux "; $sqlcmd = $sqlcmd . "WHERE t_codes_postaux.code = '$code_postal' AND t_medecins_traitants_administratifs.oid = $oid"; $result = $database->exec($sqlcmd); } } } function setRecords_medecins() { global $database; global $action; global $recordNode; $oid = ctiFloatVal($recordNode["oid"]); $code = utf8_decode($recordNode["code"]); $nom = utf8_decode($recordNode["nom"]); $prenom = utf8_decode($recordNode["prenom"]); $code_original = utf8_decode($recordNode["code_original"]); $numero_ordre = utf8_decode($recordNode["numero_ordre"]); $specialite_interne_id = utf8_decode($recordNode["specialite_interne_id"]); $medecins_regroupes_oids = utf8_decode($recordNode["medecins_regroupes_oids"]); $medecins_regroupes_oids = "-1$medecins_regroupes_oids-1"; if ($action != "delete" && $action != "copy") { $code = toSQL($code); $nom = toSQL($nom); $prenom = toSQL($prenom); $code_original = toSQL($code_original); $numero_ordre = toSQL($numero_ordre); $specialite_interne_id = toSQL($specialite_interne_id); $medecins_regroupes_oids = toSQL($medecins_regroupes_oids); // creation ou mise à jour de la liste if ($oid == -1) { $sqlcmd = "INSERT INTO base.t_medecins "; $sqlcmd = $sqlcmd . "( "; $sqlcmd = $sqlcmd . "nom, prenom, numero_ordre, specialite_id"; $sqlcmd = $sqlcmd . ") "; $sqlcmd = $sqlcmd . "VALUES("; $sqlcmd = $sqlcmd . "'$nom', '$prenom', '$numero_ordre', $specialite_interne_id"; $sqlcmd = $sqlcmd . ") "; $result = $database->exec($sqlcmd); if ($result !== FALSE) { $sqlcmd = "SELECT MAX(oid) "; $sqlcmd = $sqlcmd . "FROM base.t_medecins "; $sqlcmd = $sqlcmd . "WHERE nom = '$nom' AND prenom = '$prenom' AND numero_ordre = '$numero_ordre' AND specialite_id = $specialite_interne_id"; $result = $database->exec($sqlcmd); if ($result != false) { $record = $database->nextRecordInto(); if ($record != FALSE) { $oid = ctiFloatVal($record[0]); if ($oid > 0) { $sqlcmd = "UPDATE activite.t_medecins_administratifs SET "; $sqlcmd = $sqlcmd . "medecin_id = $oid "; $sqlcmd = $sqlcmd . "WHERE oid IN ($medecins_regroupes_oids)"; $result = $database->exec($sqlcmd); } } } } } else { $sqlcmd = "UPDATE base.t_medecins SET "; $sqlcmd = $sqlcmd . "nom = '$nom', "; $sqlcmd = $sqlcmd . "prenom = '$prenom', "; $sqlcmd = $sqlcmd . "numero_ordre = '$numero_ordre', "; $sqlcmd = $sqlcmd . "specialite_id = $specialite_interne_id "; $sqlcmd = $sqlcmd . "WHERE oid = $oid"; $result = $database->exec($sqlcmd); $sqlcmd = "UPDATE activite.t_medecins_administratifs SET "; $sqlcmd = $sqlcmd . "medecin_id = $oid "; $sqlcmd = $sqlcmd . "WHERE oid IN ($medecins_regroupes_oids)"; $result = $database->exec($sqlcmd); $sqlcmd = "UPDATE activite.t_medecins_administratifs SET "; $sqlcmd = $sqlcmd . "medecin_id = 0 "; $sqlcmd = $sqlcmd . "WHERE medecin_id = $oid"; $sqlcmd = $sqlcmd . "AND oid NOT IN ($medecins_regroupes_oids)"; $result = $database->exec($sqlcmd); } } if ($oid >= 0) { $sqlcmd = "UPDATE activite.t_medecins_administratifs_c SET "; $sqlcmd = $sqlcmd . "adm_code = t_medecins_administratifs.code, "; $sqlcmd = $sqlcmd . "adm_nom = t_medecins_administratifs.nom, "; $sqlcmd = $sqlcmd . "adm_prenom = t_medecins_administratifs.prenom, "; $sqlcmd = $sqlcmd . "adm_nom_prenom = t_medecins_administratifs.nom || ' ' || t_medecins_administratifs.prenom, "; $sqlcmd = $sqlcmd . "medecin_id = t_medecins_administratifs.medecin_id, "; $sqlcmd = $sqlcmd . "nom = t_medecins.nom, "; $sqlcmd = $sqlcmd . "prenom = t_medecins.prenom, "; $sqlcmd = $sqlcmd . "nom_prenom = t_medecins.nom || ' ' || t_medecins.prenom, "; $sqlcmd = $sqlcmd . "specialite_id = t_medecins.specialite_id, "; $sqlcmd = $sqlcmd . "specialite_code = t_specialites_medecin.code, "; $sqlcmd = $sqlcmd . "specialite_texte = t_specialites_medecin.texte_court "; $sqlcmd = $sqlcmd . "FROM activite.t_medecins_administratifs, base.t_medecins, base.t_specialites_medecin "; $sqlcmd = $sqlcmd . "WHERE t_medecins_administratifs_c.oid = t_medecins_administratifs.oid "; $sqlcmd = $sqlcmd . "AND t_medecins_administratifs.medecin_id = t_medecins.oid "; $sqlcmd = $sqlcmd . "AND t_medecins.specialite_id = t_specialites_medecin.oid "; $sqlcmd = $sqlcmd . "AND (t_medecins_administratifs.medecin_id = $oid OR t_medecins_administratifs.medecin_id = 0) "; $result = $database->exec($sqlcmd); } $result = $database->exec("SELECT activite.cti_reorganize_medecins_administratifs_c(); "); } function setRecords_sejour() { global $database; global $action; global $recordNode; $oid = ctiFloatVal($recordNode["oid"]); $code = utf8_decode($recordNode["code"]); $est_ignore = utf8_decode($recordNode["est_ignore"]); if ($est_ignore != "1") { $est_ignore = "0"; } $medecin_sejour_id = utf8_decode($recordNode["medecin_sejour_id"]); $medecin_sejour_id = ctiFloatVal($medecin_sejour_id); $service_facturation_id = utf8_decode($recordNode["service_facturation_id"]); $service_facturation_id = ctiFloatVal($service_facturation_id); $etage_id = utf8_decode($recordNode["etage_id"]); $etage_id = ctiFloatVal($etage_id); $type_sejour = utf8_decode($recordNode["type_sejour"]); $type_sejour = ctiFloatVal($type_sejour); $encours_1_from_date = utf8_decode($recordNode["encours_1_from_date"]); $encours_1_est_ignore = utf8_decode($recordNode["encours_1_est_ignore"]); if ($encours_1_est_ignore != "1") { $encours_1_est_ignore = "0"; } if ($action != "delete" && $action != "copy") { $code = toSQL($code); // creation ou mise à jour de la liste if ($oid == -1) { $sqlcmd = "INSERT INTO activite.t_sejour ( no_sejour, est_ignore, medecin_sejour_id, service_facturation_id, etage_id, type_sejour, encours_from_date, encours_est_ignore ) VALUES( '$code', '$est_ignore', $medecin_sejour_id, $service_facturation_id, $etage_id, '$type_sejour', ARRAY['$encours_1_from_date'::date], ARRAY['$encours_1_est_ignore'::text] ) "; $result = $database->exec($sqlcmd); if ($result == FALSE) { } } else { $sqlcmd = "UPDATE activite.t_sejour SET no_sejour = '$code', est_ignore = '$est_ignore', medecin_sejour_id = $medecin_sejour_id, service_facturation_id = $service_facturation_id, etage_id = $etage_id, type_sejour = '$type_sejour', encours_from_date = ARRAY['$encours_1_from_date'::date], encours_est_ignore = ARRAY['$encours_1_est_ignore'::text] WHERE oid = $oid"; $result = $database->exec($sqlcmd); } } if ($action == "delete") { $sqlcmd = "DELETE FROM activite.t_sejour WHERE oid = $oid"; $result = $database->exec($sqlcmd); } // Application à la table des séjours $sqlcmd = "UPDATE activite.p_sejours SET etat = 'I' FROM activite.t_sejour WHERE t_sejour.no_sejour = p_sejours.no_sejour AND est_ignore = '1' AND etat <> 'I'; UPDATE activite.p_sejours SET etat = '' WHERE etat = 'I' AND no_sejour NOT IN (SELECT no_sejour FROM activite.t_sejour WHERE est_ignore = '1'); UPDATE activite.p_sejours SET medecin_sejour_id = t_sejour.medecin_sejour_id FROM activite.t_sejour WHERE t_sejour.no_sejour = p_sejours.no_sejour AND t_sejour.medecin_sejour_id <> 0 AND p_sejours.medecin_sejour_id IS DISTINCT FROM t_sejour.medecin_sejour_id;"; $result = $database->exec($sqlcmd); } function setRecords_budget() { global $database; global $action; global $recordNode; $oid = ctiFloatVal($recordNode["oid"]); $code = utf8_decode($recordNode["code"]); $texte = utf8_decode($recordNode["texte"]); $date_debut = utf8_decode($recordNode["date_debut"]); $date_fin = utf8_decode($recordNode["date_fin"]); if ($action != "delete" && $action != "copy") { $code = toSQL($code); $texte = toSQL($texte); $date_debut = toSQL($date_debut); $date_fin = toSQL($date_fin); // creation ou mise à jour de la liste if ($oid == -1) { $sqlcmd = "INSERT INTO activite.t_budget (code, texte, date_debut, date_fin) VALUES('$code', '$texte', to_date('$date_debut','DD/MM/YYYY'), to_date('$date_fin','DD/MM/YYYY'))"; $result = $database->exec($sqlcmd); } else { $sqlcmd = "UPDATE activite.t_budget SET code = '$code', texte = '$texte', date_debut = to_date('$date_debut','DD/MM/YYYY') , date_fin = to_date('$date_fin','DD/MM/YYYY') WHERE oid = $oid"; $result = $database->exec($sqlcmd); } // Modification des indicateurs déjà existant $indicators = "0"; foreach ($recordNode->INDICATEUR as $indicateur_node) { $budget_indicateur_oid = ctiFloatVal($indicateur_node["oid"]); $budget_indicateur_code = trim($indicateur_node["code"]); $budget_indicateur_texte = trim($indicateur_node["texte"]); $budget_indicateur_indicateur_id = ctiFloatVal($indicateur_node["indicateur_id"]); $budget_indicateur_code = toSQL($budget_indicateur_code); $budget_indicateur_texte = toSQL($budget_indicateur_texte); if ($budget_indicateur_oid > 0) { $sqlcmd = "UPDATE activite.t_budget_indicateur SET code = '$budget_indicateur_code', texte = '$budget_indicateur_texte', indicateur_id = $budget_indicateur_indicateur_id WHERE oid = $budget_indicateur_oid"; $result = $database->exec($sqlcmd); $indicators = "$indicators, $budget_indicateur_oid"; } } // Suppression des indicateurs qui n'existent plus $sqlcmd = "DELETE FROM activite.t_budget_indicateur WHERE oid NOT IN ($indicators)"; $result = $database->exec($sqlcmd); // Ajout des nouveaux indicateurs foreach ($recordNode->INDICATEUR as $indicateur_node) { $budget_indicateur_oid = ctiFloatVal($indicateur_node["oid"]); $budget_indicateur_code = trim($indicateur_node["code"]); $budget_indicateur_texte = trim($indicateur_node["texte"]); $budget_indicateur_indicateur_id = ctiFloatVal($indicateur_node["indicateur_id"]); $budget_indicateur_code = toSQL($budget_indicateur_code); $budget_indicateur_texte = toSQL($budget_indicateur_texte); if ($budget_indicateur_oid <= 0) { $sqlcmd = "INSERT INTO activite.t_budget_indicateur (code, texte, budget_id, indicateur_id) VALUES('$budget_indicateur_code', '$budget_indicateur_texte', $oid, $budget_indicateur_indicateur_id)"; $result = $database->exec($sqlcmd); } } } if ($action == "delete") { $sqlcmd = "DELETE FROM activite.t_budget WHERE oid = $oid"; $result = $database->exec($sqlcmd); } } function setRecords_expert_controle() { global $database; global $action; global $recordNode; $httpString = ""; $mode = ctiFloatVal($recordNode["mode"]); // Mise à jour controles unitaires if ($mode == 0) { $oid = ctiFloatVal($recordNode["oid"]); $code = utf8_decode($recordNode["code"]); $texte = utf8_decode($recordNode["texte"]); $texte_court = utf8_decode($recordNode["texte_court"]); if ($texte_court == "") { $texte_court = $texte; } $texte_abrege = utf8_decode($recordNode["texte_abrege"]); if ($texte_abrege == "") { $texte_abrege = $texte_court; } $description = $recordNode["description"]; $is_cti = utf8_decode($recordNode["is_cti"]); $is_active = utf8_decode($recordNode["is_active"]); $is_hide = utf8_decode($recordNode["is_hide"]); $gravite = ctiFloatVal($recordNode["gravite"]); $etat_cible = ctiFloatVal($recordNode["etat_cible"]); $prestataire_id = ctiFloatVal($recordNode["prestataire_id"]); $is_alert = utf8_decode($recordNode["is_alert"]); $rule_oid1 = ctiFloatVal($recordNode["rule_oid1"]); $sqlcmd_where1 = utf8_decode($recordNode["sqlcmd_where1"]); $sqlcmd_justificatif1 = utf8_decode($recordNode["sqlcmd_justificatif1"]); $table1 = ctiFloatVal($recordNode["table1"]); $rule_oid2 = ctiFloatVal($recordNode["rule_oid2"]); $sqlcmd_where2 = utf8_decode($recordNode["sqlcmd_where2"]); $sqlcmd_justificatif2 = utf8_decode($recordNode["sqlcmd_justificatif2"]); $table2 = ctiFloatVal($recordNode["table2"]); $rule_oid3 = ctiFloatVal($recordNode["rule_oid3"]); $sqlcmd_where3 = utf8_decode($recordNode["sqlcmd_where3"]); $sqlcmd_justificatif3 = utf8_decode($recordNode["sqlcmd_justificatif3"]); $table3 = ctiFloatVal($recordNode["table3"]); $code = toSQL($code); $texte = toSQL($texte); $texte_court = toSQL($texte_court); $texte_abrege = toSQL($texte_abrege); $description = toSQL($description); $is_cti = toSQL($is_cti); $is_hide = toSQL($is_hide); $is_active = toSQL($is_active); $sqlcmd_where1 = toSQL($sqlcmd_where1); $sqlcmd_justificatif1 = toSQL($sqlcmd_justificatif1); $sqlcmd_where2 = toSQL($sqlcmd_where2); $sqlcmd_justificatif2 = toSQL($sqlcmd_justificatif2); $sqlcmd_where3 = toSQL($sqlcmd_where3); $sqlcmd_justificatif3 = toSQL($sqlcmd_justificatif3); if ($action != "delete" && $action != "copy" && $action != "execute_rules" && $action != "purge_history") { // creation ou mise à jour de la liste if ($oid == -1) { $sqlcmd = "INSERT INTO activite.t_expert_controle ( code, texte, texte_court, texte_abrege, description, is_cti, is_hide, gravite_id, etat_cible, prestataire_id, is_active, alert_exp ) VALUES( '$code', '$texte', '$texte_court', '$texte_abrege', '$description', '$is_cti', '$is_hide', $gravite, $etat_cible, $prestataire_id, '$is_active', '$is_alert' ) "; $result = $database->exec($sqlcmd); if ($result == FALSE) { } else { $result = $database->exec( "SELECT max(oid) as oid FROM activite.t_expert_controle WHERE code = '$code' AND texte = '$texte'" ); if ($result != false) { $record = $database->nextRecordInto(); if ($record != FALSE) { $oid = $record[0] + 0; } } } } else { $sqlcmd = "UPDATE activite.t_expert_controle SET texte = '$texte', texte_court = '$texte_court', texte_abrege = '$texte_abrege', description = '$description', is_cti = '$is_cti' , is_hide = '$is_hide' , gravite_id = $gravite, etat_cible = $etat_cible, prestataire_id = $prestataire_id, is_active = '$is_active', alert_exp = '$is_alert' WHERE oid = $oid; UPDATE activite.t_expert_controle SET code = '$code' WHERE oid = $oid; "; $result = $database->exec($sqlcmd); } // Ajout des règles $sqlcmd = "DELETE FROM activite.t_expert_controle_rule USING ( SELECT t_expert_controle_rule.oid FROM activite.t_expert_controle_rule LEFT JOIN activite.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 activite.t_expert_controle_rule ( controle_id, numero, sqlcmd_where, sqlcmd_justificatif, table_id ) SELECT t_expert_controle.oid AS controle_id, 1::bigint AS numero, '' AS sqlcmd_where, '' AS sqlcmd_justificatif, 0::bigint as table_id FROM activite.t_expert_controle LEFT JOIN activite.t_expert_controle_rule ON t_expert_controle_rule.controle_id = t_expert_controle.oid AND t_expert_controle_rule.numero = 1 WHERE t_expert_controle_rule.oid IS NULL UNION SELECT t_expert_controle.oid AS controle_id, 2::bigint AS numero, '' AS sqlcmd_where, '' AS sqlcmd_justificatif, 0::bigint as table_id FROM activite.t_expert_controle LEFT JOIN activite.t_expert_controle_rule ON t_expert_controle_rule.controle_id = t_expert_controle.oid AND t_expert_controle_rule.numero = 2 WHERE t_expert_controle_rule.oid IS NULL UNION ALL SELECT t_expert_controle.oid AS controle_id, 3::bigint AS numero, '' AS sqlcmd_where, '' AS sqlcmd_justificatif, 0::bigint as table_id FROM activite.t_expert_controle LEFT JOIN activite.t_expert_controle_rule ON t_expert_controle_rule.controle_id = t_expert_controle.oid AND t_expert_controle_rule.numero = 3 WHERE t_expert_controle_rule.oid IS NULL;"; $result = $database->exec($sqlcmd); if ($oid != 0) { $sqlcmd = "UPDATE activite.t_expert_controle_rule SET sqlcmd_where = '$sqlcmd_where1', sqlcmd_justificatif = '$sqlcmd_justificatif1', table_id = $table1 WHERE controle_id = $oid AND numero = 1; UPDATE activite.t_expert_controle_rule SET sqlcmd_where = '$sqlcmd_where2', sqlcmd_justificatif = '$sqlcmd_justificatif2', table_id = $table2 WHERE controle_id = $oid AND numero = 2; UPDATE activite.t_expert_controle_rule SET sqlcmd_where = '$sqlcmd_where3', sqlcmd_justificatif = '$sqlcmd_justificatif3', table_id = $table3 WHERE controle_id = $oid AND numero = 3"; $result = $database->exec($sqlcmd); } } if ($action == "copy") { $pos = stripos($code, "_"); if ($pos === false) { $fromcode = $code . "_"; } else { $fromcode = substr($code,0,$pos) . "_"; } $last_oid = 1; $result = $database->exec("SELECT max(to_number(substr(code,length('$fromcode')+1,10), '999999')) as oid from activite.t_expert_controle WHERE code LIKE '$fromcode%'"); if ($result != false) { $record = $database->nextRecordInto(); if ($record != FALSE) { $last_oid = $record[0] + 0; } } if ($last_oid == 0) { $last_oid = 1; } $last_oid++; $sqlcmd = "INSERT INTO activite.t_expert_controle(code, texte, texte_court) "; $sqlcmd = $sqlcmd . "SELECT '$fromcode$last_oid', 'Copie de ' || texte , 'Copie de ' || texte_court "; $sqlcmd = $sqlcmd . "FROM activite.t_expert_controle WHERE oid = $oid"; $result = $database->exec($sqlcmd); $oid = 0; $result = $database->exec( "SELECT max(oid) as oid FROM activite.t_expert_controle WHERE code = '$fromcode$last_oid' " ); if ($result != false) { $record = $database->nextRecordInto(); if ($record != FALSE) { $oid = $record[0] + 0; } } } if ($action == "delete") { $sqlcmd = "DELETE FROM activite.t_expert_controle WHERE oid = $oid"; $result = $database->exec($sqlcmd); $sqlcmd = "DELETE FROM activite.t_expert_controle_rule WHERE controle_id = $oid"; $result = $database->exec($sqlcmd); } if ($action == "purge_history") { $sqlcmd = "DELETE FROM activite.p_expert_rss_controle WHERE controle_id = $oid"; $result = $database->exec($sqlcmd); } } // Mise à jour paramètres généraux if ($mode == 2) { $EXPERT_ACTIVE = utf8_decode($recordNode["EXPERT_ACTIVE"]); $EXPERT_DATE_DEBUT = utf8_decode($recordNode["EXPERT_DATE_DEBUT"]); if ($action == "save") { $sqlcmd = "UPDATE activite.t_divers SET valeur = '$EXPERT_ACTIVE' WHERE code = 'EXPERT_ACTIVE' AND valeur IS DISTINCT FROM '$EXPERT_ACTIVE'; "; $result = $database->exec($sqlcmd); $sqlcmd = "UPDATE activite.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 = $database->exec($sqlcmd); } } // exécution des règles if ($action == "execute_rules") { $return_code = ""; $return_message = ""; // Liste des oids des controles à exécuter. Ils doivent être dans une chaine de caractères séparés par // un espace, une virgule, un point-virgule, un double-points ou une barre verticale $oids = @$_POST["oids"]; if ($oids == "") { $oids = @$_GET["oids"]; } if (strlen($oids) > 0) { $oids_to_control = preg_split("/[\s,;:\|]+/", $oids); } $exp_manager = new ControleExpertManager('activite'); $exp_manager->prestataire = $_SESSION['admProvider']; $exp_manager->dictionary = $_SESSION['rootDir'] .'modules/activite/php/expert/dictionary.json'; if ($exp_manager->run_controls($oids_to_control)) { $exp_return_code = 'OK'; $exp_message = $exp_manager->msg; } else { $exp_return_code = 'KO'; $exp_message = $exp_manager->error_msg; } $httpString = ""; } // exécution des règles if ($action == "create_documentation" || $action == "save" || $action == "delete") { $reference_template_file = "../references/iCTI_ACTI_ExpertControle.template.HTML"; $reference_file = "../references/iCTI_ACTI_ExpertControle.HTML"; if (file_exists($reference_template_file)) { $reference_template_handle = @fopen($reference_template_file, "r"); $reference_handle = @fopen($reference_file, "w"); if ($reference_template_handle) { $currentIsControle = false; $controleString = ""; while (!feof($reference_template_handle)) { $buffer = fgets($reference_template_handle, 99999); if (trim($buffer) == "") { $currentIsControle = true; } else { if (trim($buffer) == "") { $sqlcmd = "SELECT t_expert_controle.oid, t_expert_controle.code, t_expert_controle.texte, t_expert_controle.description, t_expert_controle.is_cti FROM activite.t_expert_controle WHERE t_expert_controle.oid > 0 AND is_datim <> 1 AND is_global <> 1 AND is_hide <> 1 AND description <> '' ORDER BY t_expert_controle.code"; $result = $database->exec($sqlcmd); if ($result != false) { // lignes $ok = TRUE; while ($ok == TRUE) { $ok = FALSE; $record = $database->nextRecordInto(); if ($record != FALSE) { $ok = TRUE; $oid = $record[0]; $code = toHTML(trim($record[1])); $texte = toHTML(trim($record[2])); $description = trim($record[3]); $is_cti = toHTML(trim($record[4])); if (substr($description,0,3) == "_c_") { $description = uncompress64(substr($description, 3)); } $description = str_replace('SIZE="10"','SIZE="3"',$description); $description = str_replace('SIZE="12"','SIZE="3"',$description); $description = str_replace('SIZE="14"','SIZE="3"',$description); $controleStringControle = $controleString; $controleStringControle = str_replace("[CONTROLE_CODE]",$code,$controleStringControle); $controleStringControle = str_replace("[CONTROLE_TEXT]",$texte,$controleStringControle); $controleStringControle = str_replace("[CONTROLE_DESCRIPTION]",$description,$controleStringControle); fwrite($reference_handle,$controleStringControle); } } } $currentIsControle = false; } else { if ($currentIsControle == false) { fwrite($reference_handle,$buffer); } else { $controleString = "$controleString$buffer"; } } } } } @fclose($reference_template_handle); @fclose($reference_handle); } } return $httpString; } function setRecords_budget_cle() { global $database; global $action; global $recordNode; $oid = ctiFloatVal($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"]); if ($action != "delete" && $action != "copy") { $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 = "INSERT INTO activite.t_budget_cle (code, texte, texte_court) VALUES('$code', '$texte', '$texte_court')"; $result = $database->exec($sqlcmd); } else { $sqlcmd = "UPDATE activite.t_budget_cle SET code = '$code', texte = '$texte', texte_court = '$texte_court' WHERE oid = $oid"; $result = $database->exec($sqlcmd); } } if ($action == "delete") { $sqlcmd = "UPDATE activite.p_sejours_budget_cle SET budget_cle_id = 0 WHERE budget_cle_id = $oid; DELETE FROM activite.t_budget_cle_rule WHERE budget_cle_id = $oid; DELETE FROM activite.t_budget_cle WHERE oid = $oid"; $result = $database->exec($sqlcmd); } } function setRecords_budget_cle_rule() { global $database; global $action; global $recordNode; // Action spécifique : executer les règles if ($action == "BUR_execute_rules") { $sqlcmd = "SELECT * FROM activite.cti_budget_execute_rules()"; $result = $database->exec($sqlcmd); return; } $oid = ctiFloatVal($recordNode["oid"]); $code = utf8_decode($recordNode["code"]); $texte = utf8_decode($recordNode["texte"]); $priorite = utf8_decode($recordNode["priorite"]); $budget_cle_id = utf8_decode($recordNode["budget_cle_id"]); $liste_specialite = utf8_decode($recordNode["liste_specialite"]); $liste_medecin = utf8_decode($recordNode["liste_medecin"]); $liste_service = utf8_decode($recordNode["liste_service"]); $liste_acte = utf8_decode($recordNode["liste_acte"]); $liste_rubrique = utf8_decode($recordNode["liste_rubrique"]); $liste_ghm = utf8_decode($recordNode["liste_ghm"]); $liste_sauf_ghm = utf8_decode($recordNode["liste_sauf_ghm"]); $liste_diagnostic_principal = utf8_decode($recordNode["liste_diagnostic_principal"]); $liste_diagnostic_relie = utf8_decode($recordNode["liste_diagnostic_relie"]); $liste_diagnostic_associe = utf8_decode($recordNode["liste_diagnostic_associe"]); $liste_finess = utf8_decode($recordNode["liste_finess"]); if ($action != "delete" && $action != "copy") { $code = toSQL($code); $texte = toSQL($texte); $priorite = ctiFloatVal($priorite); $budget_cle_id = ctiFloatVal($budget_cle_id); // creation ou mise à jour de la liste if ($oid == -1) { $sqlcmd = "INSERT INTO activite.t_budget_cle_rule (code, texte, priorite, budget_cle_id, liste_specialite, liste_medecin, liste_service, liste_acte, liste_rubrique, liste_ghm, liste_sauf_ghm, liste_diagnostic_principal, liste_diagnostic_relie, liste_diagnostic_associe, liste_finess ) VALUES('$code', '$texte', $priorite, $budget_cle_id, activite.cti_budget_translate_list('$liste_specialite'), activite.cti_budget_translate_list('$liste_medecin'), activite.cti_budget_translate_list('$liste_service'), activite.cti_budget_translate_list('$liste_acte'), activite.cti_budget_translate_list('$liste_rubrique'), activite.cti_budget_translate_list('$liste_ghm'), activite.cti_budget_translate_list('$liste_sauf_ghm'), activite.cti_budget_translate_list('$liste_diagnostic_principal'), activite.cti_budget_translate_list('$liste_diagnostic_relie'), activite.cti_budget_translate_list('$liste_diagnostic_associe'), activite.cti_budget_translate_list('$liste_finess') )"; $result = $database->exec($sqlcmd); } else { $sqlcmd = "UPDATE activite.t_budget_cle_rule SET code = '$code', texte = '$texte', priorite = $priorite, budget_cle_id = $budget_cle_id, liste_specialite = activite.cti_budget_translate_list('$liste_specialite'), liste_medecin = activite.cti_budget_translate_list('$liste_medecin'), liste_service = activite.cti_budget_translate_list('$liste_service'), liste_acte = activite.cti_budget_translate_list('$liste_acte'), liste_rubrique = activite.cti_budget_translate_list('$liste_rubrique'), liste_ghm = activite.cti_budget_translate_list('$liste_ghm'), liste_sauf_ghm = activite.cti_budget_translate_list('$liste_sauf_ghm'), liste_diagnostic_principal = activite.cti_budget_translate_list('$liste_diagnostic_principal'), liste_diagnostic_relie = activite.cti_budget_translate_list('$liste_diagnostic_relie'), liste_diagnostic_associe = activite.cti_budget_translate_list('$liste_diagnostic_associe'), liste_finess= activite.cti_budget_translate_list('$liste_finess') WHERE oid = $oid"; $result = $database->exec($sqlcmd); } } if ($action == "delete") { $sqlcmd = "DELETE FROM activite.t_budget_cle_rule WHERE oid = $oid"; $result = $database->exec($sqlcmd); } } function setRecords_budget_cle_budget() { global $database; global $action; global $recordNode; $budget_id = ctiFloatVal($recordNode["oid"]); // initialisation budget $sqlcmd = "UPDATE activite.t_budget_cle_budget SET indicateur_id = t_budget_indicateur.indicateur_id FROM activite.t_budget_indicateur WHERE t_budget_indicateur.oid = t_budget_cle_budget.budget_indicateur_id AND t_budget_cle_budget.indicateur_id IS DISTINCT FROM t_budget_indicateur.indicateur_id; INSERT INTO activite.t_budget_cle_budget ( budget_id, budget_cle_id, date, budget_indicateur_id, indicateur_id, budget ) SELECT t_budget.oid AS budget_id, t_budget_cle.oid AS budget_cle_id, date(date_trunc('month',p_calendrier_mois.date_fin)) AS date, t_budget_indicateur.oid AS budget_indicateur_id, t_budget_indicateur.indicateur_id AS indicateur_id, 0::numeric AS budget FROM activite.t_budget JOIN activite.t_budget_cle ON 1=1 JOIN activite.t_budget_indicateur ON t_budget_indicateur.budget_id = t_budget.oid JOIN base.p_calendrier_mois ON p_calendrier_mois.date_debut BETWEEN t_budget.date_debut AND t_budget.date_fin LEFT JOIN activite.t_budget_cle_budget ON t_budget_cle_budget.budget_id = t_budget.oid AND t_budget_cle_budget.budget_cle_id = t_budget_cle.oid AND t_budget_cle_budget.budget_indicateur_id = t_budget_indicateur.oid AND date(date_trunc('month',t_budget_cle_budget.date)) = date(date_trunc('month',p_calendrier_mois.date_fin)) WHERE t_budget_cle_budget.budget_id IS NULL;"; $result = $database->exec($sqlcmd); // Modification des valeurs de budget foreach ($recordNode->INDICATEUR as $indicateur_node) { $budget_indicateur_id = ctiFloatVal($indicateur_node["budget_indicateur_id"]); foreach ($indicateur_node->CLE as $cle_node) { $budget_cle_id = ctiFloatVal($cle_node["budget_cle_id"]); $sqlcmd = ""; for ($m = 1; $m <= 12; $m++) { if ($m < 10) { $mm = "0$m"; } else { $mm = "$m"; } $budget_date = $indicateur_node["date_$mm"]; $budget_value = str_replace(',','.',$cle_node["budget_$mm"]); $budget_value = ctiFloatVal($budget_value); $sqlcmd = "$sqlcmd UPDATE activite.t_budget_cle_budget SET budget = $budget_value WHERE budget_id = $budget_id AND budget_cle_id = $budget_cle_id AND budget_indicateur_id = $budget_indicateur_id AND date = '$budget_date' AND budget IS DISTINCT FROM $budget_value; "; } $result = $database->exec($sqlcmd); } } } function setRecords_forme_activite() { global $database; global $action; global $recordNode; $oid = ctiFloatVal($recordNode["oid"]); $code = utf8_decode($recordNode["code"]); $texte = utf8_decode($recordNode["texte"]); $texte_court = utf8_decode($recordNode["texte_court"]); if ($action != "delete" && $action != "copy") { $code = toSQL($code); $texte = toSQL($texte); $texte_court = toSQL($texte_court); // creation ou mise à jour de la liste if ($oid == -1) { $sqlcmd = "INSERT INTO activite.t_forme_activite (code, texte, texte_court) VALUES('$code', '$texte', '$texte_court')"; $result = $database->exec($sqlcmd); } else { $sqlcmd = "UPDATE activite.t_forme_activite SET code = '$code', texte = '$texte', texte_court = '$texte_court' WHERE oid = $oid"; $result = $database->exec($sqlcmd); } } if ($action == "delete") { $sqlcmd = "DELETE FROM activite.t_forme_activite WHERE oid = $oid"; $result = $database->exec($sqlcmd); } } function setRecords_forme_activite_rule() { global $database; global $action; global $recordNode; // Action spécifique : executer les règles if ($action == "FAR_execute_rules") { $sqlcmd = "SELECT activite.cti_reorganize_forme_activite();"; $result = $database->exec($sqlcmd); return; } $oid = ctiFloatVal($recordNode["oid"]); $code = utf8_decode($recordNode["code"]); $texte = utf8_decode($recordNode["texte"]); $priorite = utf8_decode($recordNode["priorite"]); $forme_activite_id = utf8_decode($recordNode["forme_activite_id"]); $liste_type_sejour = utf8_decode($recordNode["liste_type_sejour"]); $liste_specialite = utf8_decode($recordNode["liste_specialite"]); $liste_medecin = utf8_decode($recordNode["liste_medecin"]); $liste_unite_fonctionnelle = utf8_decode($recordNode["liste_unite_fonctionnelle"]); $liste_service = utf8_decode($recordNode["liste_service"]); $liste_etage = utf8_decode($recordNode["liste_etage"]); $liste_unite_fonctionnelle_entree = utf8_decode($recordNode["liste_unite_fonctionnelle_entree"]); $liste_service_entree = utf8_decode($recordNode["liste_service_entree"]); $liste_etage_entree = utf8_decode($recordNode["liste_etage_entree"]); $liste_acte = utf8_decode($recordNode["liste_acte"]); $liste_rubrique = utf8_decode($recordNode["liste_rubrique"]); $liste_prestation = utf8_decode($recordNode["liste_prestation"]); $liste_ghm = utf8_decode($recordNode["liste_ghm"]); $liste_sauf_ghm = utf8_decode($recordNode["liste_sauf_ghm"]); $liste_diagnostic_principal = utf8_decode($recordNode["liste_diagnostic_principal"]); $liste_diagnostic_relie = utf8_decode($recordNode["liste_diagnostic_relie"]); $liste_diagnostic_associe = utf8_decode($recordNode["liste_diagnostic_associe"]); $liste_finess = utf8_decode($recordNode["liste_finess"]); if ($action != "delete" && $action != "copy") { $code = toSQL($code); $texte = toSQL($texte); $priorite = ctiFloatVal($priorite); $forme_activite_id = ctiFloatVal($forme_activite_id); // creation ou mise à jour de la liste if ($oid == -1) { $sqlcmd = "INSERT INTO activite.t_forme_activite_rule (code, texte, priorite, forme_activite_id, liste_type_sejour, liste_specialite, liste_medecin, liste_unite_fonctionnelle, liste_service, liste_etage, liste_unite_fonctionnelle_entree, liste_service_entree, liste_etage_entree, liste_acte, liste_rubrique, liste_prestation, liste_ghm, liste_sauf_ghm, liste_diagnostic_principal, liste_diagnostic_relie, liste_diagnostic_associe, liste_finess ) VALUES('$code', '$texte', $priorite, $forme_activite_id, activite.cti_budget_translate_list('$liste_type_sejour'), activite.cti_budget_translate_list('$liste_specialite'), activite.cti_budget_translate_list('$liste_medecin'), activite.cti_budget_translate_list('$liste_unite_fonctionnelle'), activite.cti_budget_translate_list('$liste_service'), activite.cti_budget_translate_list('$liste_etage'), activite.cti_budget_translate_list('$liste_unite_fonctionnelle_entree'), activite.cti_budget_translate_list('$liste_service_entree'), activite.cti_budget_translate_list('$liste_etage_entree'), activite.cti_budget_translate_list('$liste_acte'), activite.cti_budget_translate_list('$liste_rubrique'), activite.cti_budget_translate_list('$liste_prestation'), activite.cti_budget_translate_list('$liste_ghm'), activite.cti_budget_translate_list('$liste_sauf_ghm'), activite.cti_budget_translate_list('$liste_diagnostic_principal'), activite.cti_budget_translate_list('$liste_diagnostic_relie'), activite.cti_budget_translate_list('$liste_diagnostic_associe'), activite.cti_budget_translate_list('$liste_finess') )"; $result = $database->exec($sqlcmd); } else { $sqlcmd = "UPDATE activite.t_forme_activite_rule SET code = '$code', texte = '$texte', priorite = $priorite, forme_activite_id = $forme_activite_id, liste_type_sejour = activite.cti_budget_translate_list('$liste_type_sejour'), liste_specialite = activite.cti_budget_translate_list('$liste_specialite'), liste_medecin = activite.cti_budget_translate_list('$liste_medecin'), liste_unite_fonctionnelle = activite.cti_budget_translate_list('$liste_unite_fonctionnelle'), liste_service = activite.cti_budget_translate_list('$liste_service'), liste_etage = activite.cti_budget_translate_list('$liste_etage'), liste_unite_fonctionnelle_entree = activite.cti_budget_translate_list('$liste_unite_fonctionnelle_entree'), liste_service_entree = activite.cti_budget_translate_list('$liste_service_entree'), liste_etage_entree = activite.cti_budget_translate_list('$liste_etage_entree'), liste_acte = activite.cti_budget_translate_list('$liste_acte'), liste_rubrique = activite.cti_budget_translate_list('$liste_rubrique'), liste_prestation = activite.cti_budget_translate_list('$liste_prestation'), liste_ghm = activite.cti_budget_translate_list('$liste_ghm'), liste_sauf_ghm = activite.cti_budget_translate_list('$liste_sauf_ghm'), liste_diagnostic_principal = activite.cti_budget_translate_list('$liste_diagnostic_principal'), liste_diagnostic_relie = activite.cti_budget_translate_list('$liste_diagnostic_relie'), liste_diagnostic_associe = activite.cti_budget_translate_list('$liste_diagnostic_associe'), liste_finess= activite.cti_budget_translate_list('$liste_finess') WHERE oid = $oid"; $result = $database->exec($sqlcmd); } } if ($action == "delete") { $sqlcmd = "DELETE FROM activite.t_forme_activite_rule WHERE oid = $oid"; $result = $database->exec($sqlcmd); } } function setRecords_filiere_soin() { global $database; global $action; global $recordNode; $oid = ctiFloatVal($recordNode["oid"]); $code = utf8_decode($recordNode["code"]); $texte = utf8_decode($recordNode["texte"]); $texte_court = utf8_decode($recordNode["texte_court"]); if ($action != "delete" && $action != "copy") { $code = toSQL($code); $texte = toSQL($texte); $texte_court = toSQL($texte_court); // creation ou mise à jour de la liste if ($oid == -1) { $sqlcmd = "INSERT INTO activite.t_filiere_soin (code, texte, texte_court) VALUES('$code', '$texte', '$texte_court')"; $result = $database->exec($sqlcmd); } else { $sqlcmd = "UPDATE activite.t_filiere_soin SET code = '$code', texte = '$texte', texte_court = '$texte_court' WHERE oid = $oid"; $result = $database->exec($sqlcmd); } } if ($action == "delete") { $sqlcmd = "DELETE FROM activite.t_filiere_soin WHERE oid = $oid"; $result = $database->exec($sqlcmd); } } function setRecords_filiere_soin_rule() { global $database; global $action; global $recordNode; // Action spécifique : executer les règles if ($action == "FRU_execute_rules") { $sqlcmd = "SELECT activite.cti_filiere_soin_execute_rule()"; $result = $database->exec($sqlcmd); return; } $oid = ctiFloatVal($recordNode["oid"]); $code = utf8_decode($recordNode["code"]); $texte = utf8_decode($recordNode["texte"]); $priorite = utf8_decode($recordNode["priorite"]); $filiere_soin_id = utf8_decode($recordNode["filiere_soin_id"]); $liste_type_sejour = utf8_decode($recordNode["liste_type_sejour"]); $liste_specialite = utf8_decode($recordNode["liste_specialite"]); $liste_medecin = utf8_decode($recordNode["liste_medecin"]); $liste_unite_fonctionnelle = utf8_decode($recordNode["liste_unite_fonctionnelle"]); $liste_service = utf8_decode($recordNode["liste_service"]); $liste_etage = utf8_decode($recordNode["liste_etage"]); $liste_unite_fonctionnelle_entree = utf8_decode($recordNode["liste_unite_fonctionnelle_entree"]); $liste_service_entree = utf8_decode($recordNode["liste_service_entree"]); $liste_etage_entree = utf8_decode($recordNode["liste_etage_entree"]); $liste_acte = utf8_decode($recordNode["liste_acte"]); $liste_rubrique = utf8_decode($recordNode["liste_rubrique"]); $liste_prestation = utf8_decode($recordNode["liste_prestation"]); $liste_ghm = utf8_decode($recordNode["liste_ghm"]); $liste_sauf_ghm = utf8_decode($recordNode["liste_sauf_ghm"]); $liste_diagnostic_principal = utf8_decode($recordNode["liste_diagnostic_principal"]); $liste_diagnostic_relie = utf8_decode($recordNode["liste_diagnostic_relie"]); $liste_diagnostic_associe = utf8_decode($recordNode["liste_diagnostic_associe"]); $liste_finess = utf8_decode($recordNode["liste_finess"]); if ($action != "delete" && $action != "copy") { $code = toSQL($code); $texte = toSQL($texte); $priorite = ctiFloatVal($priorite); $filiere_soin_id = ctiFloatVal($filiere_soin_id); // creation ou mise à jour de la liste if ($oid == -1) { $sqlcmd = "INSERT INTO activite.t_filiere_soin_rule (code, texte, priorite, filiere_soin_id, liste_type_sejour, liste_specialite, liste_medecin, liste_unite_fonctionnelle, liste_service, liste_etage, liste_unite_fonctionnelle_entree, liste_service_entree, liste_etage_entree, liste_acte, liste_rubrique, liste_prestation, liste_ghm, liste_sauf_ghm, liste_diagnostic_principal, liste_diagnostic_relie, liste_diagnostic_associe, liste_finess ) VALUES('$code', '$texte', $priorite, $filiere_soin_id, activite.cti_budget_translate_list('$liste_type_sejour'), activite.cti_budget_translate_list('$liste_specialite'), activite.cti_budget_translate_list('$liste_medecin'), activite.cti_budget_translate_list('$liste_unite_fonctionnelle'), activite.cti_budget_translate_list('$liste_service'), activite.cti_budget_translate_list('$liste_etage'), activite.cti_budget_translate_list('$liste_unite_fonctionnelle_entree'), activite.cti_budget_translate_list('$liste_service_entree'), activite.cti_budget_translate_list('$liste_etage_entree'), activite.cti_budget_translate_list('$liste_acte'), activite.cti_budget_translate_list('$liste_rubrique'), activite.cti_budget_translate_list('$liste_prestation'), activite.cti_budget_translate_list('$liste_ghm'), activite.cti_budget_translate_list('$liste_sauf_ghm'), activite.cti_budget_translate_list('$liste_diagnostic_principal'), activite.cti_budget_translate_list('$liste_diagnostic_relie'), activite.cti_budget_translate_list('$liste_diagnostic_associe'), activite.cti_budget_translate_list('$liste_finess') )"; $result = $database->exec($sqlcmd); } else { $sqlcmd = "UPDATE activite.t_filiere_soin_rule SET code = '$code', texte = '$texte', priorite = $priorite, filiere_soin_id = $filiere_soin_id, liste_type_sejour = activite.cti_budget_translate_list('$liste_type_sejour'), liste_specialite = activite.cti_budget_translate_list('$liste_specialite'), liste_medecin = activite.cti_budget_translate_list('$liste_medecin'), liste_unite_fonctionnelle = activite.cti_budget_translate_list('$liste_unite_fonctionnelle'), liste_service = activite.cti_budget_translate_list('$liste_service'), liste_etage = activite.cti_budget_translate_list('$liste_etage'), liste_unite_fonctionnelle_entree = activite.cti_budget_translate_list('$liste_unite_fonctionnelle_entree'), liste_service_entree = activite.cti_budget_translate_list('$liste_service_entree'), liste_etage_entree = activite.cti_budget_translate_list('$liste_etage_entree'), liste_acte = activite.cti_budget_translate_list('$liste_acte'), liste_rubrique = activite.cti_budget_translate_list('$liste_rubrique'), liste_prestation = activite.cti_budget_translate_list('$liste_prestation'), liste_ghm = activite.cti_budget_translate_list('$liste_ghm'), liste_sauf_ghm = activite.cti_budget_translate_list('$liste_sauf_ghm'), liste_diagnostic_principal = activite.cti_budget_translate_list('$liste_diagnostic_principal'), liste_diagnostic_relie = activite.cti_budget_translate_list('$liste_diagnostic_relie'), liste_diagnostic_associe = activite.cti_budget_translate_list('$liste_diagnostic_associe'), liste_finess= activite.cti_budget_translate_list('$liste_finess') WHERE oid = $oid"; $result = $database->exec($sqlcmd); } } if ($action == "delete") { $sqlcmd = "DELETE FROM activite.t_filiere_soin_rule WHERE oid = $oid"; $result = $database->exec($sqlcmd); } } function setRecords_pole_rule() { global $database; global $action; global $recordNode; // Action spécifique : executer les règles if ($action == "POR_execute_rules") { $sqlcmd = "SELECT activite.cti_reorganize_pole();"; $result = $database->exec($sqlcmd); return; } $oid = ctiFloatVal($recordNode["oid"]); $code = utf8_decode($recordNode["code"]); $texte = utf8_decode($recordNode["texte"]); $priorite = utf8_decode($recordNode["priorite"]); $pole_id = utf8_decode($recordNode["pole_id"]); $liste_type_sejour = utf8_decode($recordNode["liste_type_sejour"]); $liste_specialite = utf8_decode($recordNode["liste_specialite"]); $liste_medecin = utf8_decode($recordNode["liste_medecin"]); $liste_unite_fonctionnelle = utf8_decode($recordNode["liste_unite_fonctionnelle"]); $liste_service = utf8_decode($recordNode["liste_service"]); $liste_etage = utf8_decode($recordNode["liste_etage"]); $liste_acte = utf8_decode($recordNode["liste_acte"]); $liste_rubrique = utf8_decode($recordNode["liste_rubrique"]); $liste_prestation = utf8_decode($recordNode["liste_prestation"]); $liste_ghm = utf8_decode($recordNode["liste_ghm"]); $liste_sauf_ghm = utf8_decode($recordNode["liste_sauf_ghm"]); $liste_diagnostic_principal = utf8_decode($recordNode["liste_diagnostic_principal"]); $liste_diagnostic_relie = utf8_decode($recordNode["liste_diagnostic_relie"]); $liste_diagnostic_associe = utf8_decode($recordNode["liste_diagnostic_associe"]); $liste_finess = utf8_decode($recordNode["liste_finess"]); if ($action != "delete" && $action != "copy") { $code = toSQL($code); $texte = toSQL($texte); $priorite = ctiFloatVal($priorite); $pole_id = ctiFloatVal($pole_id); // creation ou mise à jour de la liste if ($oid == -1) { $sqlcmd = "INSERT INTO activite.t_pole_rule (code, texte, priorite, pole_id, liste_type_sejour, liste_specialite, liste_medecin, liste_unite_fonctionnelle, liste_service, liste_etage, liste_acte, liste_rubrique, liste_prestation, liste_ghm, liste_sauf_ghm, liste_diagnostic_principal, liste_diagnostic_relie, liste_diagnostic_associe, liste_finess ) VALUES('$code', '$texte', $priorite, $pole_id, activite.cti_budget_translate_list('$liste_type_sejour'), activite.cti_budget_translate_list('$liste_specialite'), activite.cti_budget_translate_list('$liste_medecin'), activite.cti_budget_translate_list('$liste_unite_fonctionnelle'), activite.cti_budget_translate_list('$liste_service'), activite.cti_budget_translate_list('$liste_etage'), activite.cti_budget_translate_list('$liste_acte'), activite.cti_budget_translate_list('$liste_rubrique'), activite.cti_budget_translate_list('$liste_prestation'), activite.cti_budget_translate_list('$liste_ghm'), activite.cti_budget_translate_list('$liste_sauf_ghm'), activite.cti_budget_translate_list('$liste_diagnostic_principal'), activite.cti_budget_translate_list('$liste_diagnostic_relie'), activite.cti_budget_translate_list('$liste_diagnostic_associe'), activite.cti_budget_translate_list('$liste_finess') )"; $result = $database->exec($sqlcmd); } else { $sqlcmd = "UPDATE activite.t_pole_rule SET code = '$code', texte = '$texte', priorite = $priorite, pole_id = $pole_id, liste_type_sejour = activite.cti_budget_translate_list('$liste_type_sejour'), liste_specialite = activite.cti_budget_translate_list('$liste_specialite'), liste_medecin = activite.cti_budget_translate_list('$liste_medecin'), liste_unite_fonctionnelle = activite.cti_budget_translate_list('$liste_unite_fonctionnelle'), liste_service = activite.cti_budget_translate_list('$liste_service'), liste_etage = activite.cti_budget_translate_list('$liste_etage'), liste_acte = activite.cti_budget_translate_list('$liste_acte'), liste_rubrique = activite.cti_budget_translate_list('$liste_rubrique'), liste_prestation = activite.cti_budget_translate_list('$liste_prestation'), liste_ghm = activite.cti_budget_translate_list('$liste_ghm'), liste_sauf_ghm = activite.cti_budget_translate_list('$liste_sauf_ghm'), liste_diagnostic_principal = activite.cti_budget_translate_list('$liste_diagnostic_principal'), liste_diagnostic_relie = activite.cti_budget_translate_list('$liste_diagnostic_relie'), liste_diagnostic_associe = activite.cti_budget_translate_list('$liste_diagnostic_associe'), liste_finess= activite.cti_budget_translate_list('$liste_finess') WHERE oid = $oid"; $result = $database->exec($sqlcmd); } } if ($action == "delete") { $sqlcmd = "DELETE FROM activite.t_pole_rule WHERE oid = $oid"; $result = $database->exec($sqlcmd); } } function setRecords_compte_produit_analytique_rule() { global $database; global $action; global $recordNode; // Action spécifique : executer les règles if ($action == "CAR_execute_rules") { $sqlcmd = "SELECT activite.cti_reorganize_compte_analytique();"; $result = $database->exec($sqlcmd); return; } $oid = ctiFloatVal($recordNode["oid"]); $code = utf8_decode($recordNode["code"]); $texte = utf8_decode($recordNode["texte"]); $priorite = utf8_decode($recordNode["priorite"]); $compte_produit_analytique_id = utf8_decode($recordNode["compte_produit_analytique_id"]); $liste_type_sejour = utf8_decode($recordNode["liste_type_sejour"]); $liste_specialite = utf8_decode($recordNode["liste_specialite"]); $liste_medecin = utf8_decode($recordNode["liste_medecin"]); $liste_ghm = utf8_decode($recordNode["liste_ghm"]); $liste_sauf_ghm = utf8_decode($recordNode["liste_sauf_ghm"]); $liste_diagnostic_principal = utf8_decode($recordNode["liste_diagnostic_principal"]); $liste_diagnostic_relie = utf8_decode($recordNode["liste_diagnostic_relie"]); $liste_diagnostic_associe = utf8_decode($recordNode["liste_diagnostic_associe"]); $liste_acte = utf8_decode($recordNode["liste_acte"]); $liste_unite_fonctionnelle = utf8_decode($recordNode["liste_unite_fonctionnelle"]); $liste_service = utf8_decode($recordNode["liste_service"]); $liste_etage = utf8_decode($recordNode["liste_etage"]); $liste_rubrique = utf8_decode($recordNode["liste_rubrique"]); $liste_compte_produit = utf8_decode($recordNode["liste_compte_produit"]); $liste_sauf_compte_produit = utf8_decode($recordNode["liste_sauf_compte_produit"]); $liste_prestation = utf8_decode($recordNode["liste_prestation"]); $liste_sauf_prestation = utf8_decode($recordNode["liste_sauf_prestation"]); $liste_finess = utf8_decode($recordNode["liste_finess"]); if ($action != "delete" && $action != "copy") { $code = toSQL($code); $texte = toSQL($texte); $priorite = ctiFloatVal($priorite); $compte_produit_analytique_id = ctiFloatVal($compte_produit_analytique_id); // creation ou mise à jour de la liste if ($oid == -1) { $sqlcmd = "INSERT INTO activite.t_compte_produit_analytique_rule (code, texte, priorite, compte_produit_analytique_id, liste_type_sejour, liste_specialite, liste_medecin, liste_ghm, liste_sauf_ghm, liste_diagnostic_principal, liste_diagnostic_relie, liste_diagnostic_associe, liste_acte, liste_unite_fonctionnelle, liste_service, liste_etage, liste_rubrique, liste_compte_produit, liste_sauf_compte_produit, liste_prestation, liste_sauf_prestation, liste_finess ) VALUES('$code', '$texte', $priorite, $compte_produit_analytique_id, activite.cti_budget_translate_list('$liste_type_sejour'), activite.cti_budget_translate_list('$liste_specialite'), activite.cti_budget_translate_list('$liste_medecin'), activite.cti_budget_translate_list('$liste_ghm'), activite.cti_budget_translate_list('$liste_sauf_ghm'), activite.cti_budget_translate_list('$liste_diagnostic_principal'), activite.cti_budget_translate_list('$liste_diagnostic_relie'), activite.cti_budget_translate_list('$liste_diagnostic_associe'), activite.cti_budget_translate_list('$liste_acte'), activite.cti_budget_translate_list('$liste_unite_fonctionnelle'), activite.cti_budget_translate_list('$liste_service'), activite.cti_budget_translate_list('$liste_etage'), activite.cti_budget_translate_list('$liste_rubrique'), activite.cti_budget_translate_list('$liste_compte_produit'), activite.cti_budget_translate_list('$liste_sauf_compte_produit'), activite.cti_budget_translate_list('$liste_prestation'), activite.cti_budget_translate_list('$liste_sauf_prestation'), activite.cti_budget_translate_list('$liste_finess') )"; $result = $database->exec($sqlcmd); } else { $sqlcmd = "UPDATE activite.t_compte_produit_analytique_rule SET code = '$code', texte = '$texte', priorite = $priorite, compte_produit_analytique_id = $compte_produit_analytique_id, liste_type_sejour = activite.cti_budget_translate_list('$liste_type_sejour'), liste_specialite = activite.cti_budget_translate_list('$liste_specialite'), liste_medecin = activite.cti_budget_translate_list('$liste_medecin'), liste_ghm = activite.cti_budget_translate_list('$liste_ghm'), liste_sauf_ghm = activite.cti_budget_translate_list('$liste_sauf_ghm'), liste_diagnostic_principal = activite.cti_budget_translate_list('$liste_diagnostic_principal'), liste_diagnostic_relie = activite.cti_budget_translate_list('$liste_diagnostic_relie'), liste_diagnostic_associe = activite.cti_budget_translate_list('$liste_diagnostic_associe'), liste_acte = activite.cti_budget_translate_list('$liste_acte'), liste_unite_fonctionnelle = activite.cti_budget_translate_list('$liste_unite_fonctionnelle'), liste_service = activite.cti_budget_translate_list('$liste_service'), liste_etage = activite.cti_budget_translate_list('$liste_etage'), liste_rubrique = activite.cti_budget_translate_list('$liste_rubrique'), liste_compte_produit = activite.cti_budget_translate_list('$liste_compte_produit'), liste_sauf_compte_produit = activite.cti_budget_translate_list('$liste_sauf_compte_produit'), liste_prestation = activite.cti_budget_translate_list('$liste_prestation'), liste_sauf_prestation = activite.cti_budget_translate_list('$liste_sauf_prestation'), liste_finess= activite.cti_budget_translate_list('$liste_finess') WHERE oid = $oid"; $result = $database->exec($sqlcmd); } } if ($action == "delete") { $sqlcmd = "DELETE FROM activite.t_compte_produit_analytique_rule WHERE oid = $oid"; $result = $database->exec($sqlcmd); } } function setRecords_calcul_encours() { global $database; global $action; global $recordNode; $type_ligne = trim($recordNode["type_ligne"]); $oid = ctiFloatVal($recordNode["oid"]); $coefficient_is_force = toSQL($recordNode["coefficient_is_force"]); $coefficient_force = toSQL($recordNode["coefficient_force"]); $coefficient_force = str_replace(",",".",$coefficient_force); $coefficient_force = ctiFloatVal($coefficient_force); $prix_unitaire_is_force = toSQL($recordNode["prix_unitaire_is_force"]); $prix_unitaire_force = toSQL($recordNode["prix_unitaire_force"]); $prix_unitaire_force = str_replace(",",".",$prix_unitaire_force); $prix_unitaire_force = ctiFloatVal($prix_unitaire_force); $type_valorisation = toSQL($recordNode["type_valorisation"]); $ignorer = toSQL($recordNode["ignorer"]); $code = toSQL($recordNode["code"]); $valeur = toSQL($recordNode["valeur"]); if ($action != "delete" && $action != "copy" && $action != "execute") { $code = toSQL($code); $texte = toSQL($texte); $texte_court = toSQL($texte_court); // creation ou mise à jour if ($oid != -1) { if ($type_ligne != "GEN" && $type_ligne != "GENPRESTA") { $sqlcmd = " UPDATE activite.t_calcul_encours SET coefficient_is_force = '$coefficient_is_force', coefficient_force = $coefficient_force, prix_unitaire_is_force = '$prix_unitaire_is_force', prix_unitaire_force = $prix_unitaire_force, ignorer = '$ignorer' WHERE oid = $oid ; "; } if ($type_ligne == "GENPRESTA") { $sqlcmd = " UPDATE activite.t_prestations SET type_valorisation_non_facture = '$type_valorisation' WHERE oid = $oid ; "; } if ($type_ligne == "GEN") { $sqlcmd = " UPDATE activite.t_divers SET valeur = '$valeur' WHERE code = '$code' ; "; } $result = $database->exec($sqlcmd); } } if ($action == "execute") { $submitCmd = "..\import_activite\iCTI_calcul_encours.exe"; $return = exec($submitCmd); } } function setRecords_kiwee_params() { global $database; global $action; global $recordNode; $oid = ctiFloatVal($recordNode["oid"]); $code = utf8_decode($recordNode["code"]); $texte = utf8_decode($recordNode["texte"]); $valeur = utf8_decode($recordNode["valeur"]); $description = utf8_decode($recordNode["description"]); if ($action != "delete" && $action != "copy") { $code = toSQL($code); $texte = toSQL($texte); $valeur = $valeur; $description = toSQL($description); // Mise à jour de données du paramètre if ($oid != -1) { $sqlcmd = "UPDATE activite.t_kiwee_params SET code = '$code', texte = '$texte', valeur = '$valeur'::boolean, description = '$description' WHERE oid = $oid"; $result = $database->exec($sqlcmd); } } } function erase_cache() { global $database; // Ancienne version if ($database->cticache == "true") { $sqlcmd = "SELECT cti_cache_erase as result from cache.cti_cache_erase('iCTI_activite')"; $result = $database->exec($sqlcmd); } // Nouvelle version cleanAllCache("iCTI_activite"); } /** * Convertie une chaîne de caractère en double à la manière de ctiFloatVal(). * Si la chaîne de caractère dépasse la limite de taille que ctiFloatVal() est capable de traiter, * la fonction retourne la chaîne de caractère sans conversion. */ function ctiFloatVal($stringValue) { $ret = 0; if (strlen($stringValue) <= 14) { $ret = floatval($stringValue); } else { if (preg_match("/[^0-9]/", $stringValue) === 0) { $ret = $stringValue; } } return $ret; } ?>