"._("export SITADEL"), "ico_reqmo.png", "export"); /** * Description de la page */ $description = _("Cette page vous permet de Transmettre les dossiers suivant la procedure SITADEL"); $f->displayDescription($description); $post = $f->get_submitted_post_value(); // 1ere étape : affichage du formulaire permettant le choix d'un interval de date // ainsi que l'ordre if (empty($post)) { // Récupération des paramètres if ($f->get_submitted_get_value("datedebut") !== null AND $f->get_submitted_get_value("datedebut") != "") { $datedebut = substr($f->get_submitted_get_value("datedebut"),8,2)."/".substr($f->get_submitted_get_value("datedebut"),5,2)."/".substr($f->get_submitted_get_value("datedebut"),0,4); } else { $datedebut = ""; } if ($f->get_submitted_get_value("datefin") !== null AND $f->get_submitted_get_value("datefin") != "") { $datefin = substr($f->get_submitted_get_value("datefin"),8,2)."/".substr($f->get_submitted_get_value("datefin"),5,2)."/".substr($f->get_submitted_get_value("datefin"),0,4); } else { $datefin = ""; } if ($f->get_submitted_get_value("numero") !== null AND $f->get_submitted_get_value("numero") != "") { $numero = $f->get_submitted_get_value("numero"); } else { $numero = ""; } affichageFormulaire($datedebut, $datefin, $numero); } else { // Traitement après validation du formulaire // init de la valeur d'erreur $correct=true; // init de la chaîne contenant l'erreur $erreur = ""; // XXX $longueurenregistrement= 0 ; // XXX $t10 = "||||||||||"; // 10 | // Initialisation des dates de début et de fin $datedebut =''; $datefin=''; // Traitement des erreurs if ($f->get_submitted_post_value("datedebut") == "") { $correct=false; } else { $datedebut = substr($f->get_submitted_post_value("datedebut"),6,4). "-".substr($f->get_submitted_post_value("datedebut"),3,2)."-". substr($f->get_submitted_post_value("datedebut"),0,2); } if ($f->get_submitted_post_value("datefin") == "") { $correct=false; } else { $datefin = substr($f->get_submitted_post_value("datefin"),6,4). "-".substr($f->get_submitted_post_value("datefin"),3,2)."-". substr($f->get_submitted_post_value("datefin"),0,2); } $numero = $f->get_submitted_post_value("numero"); if ($correct === true){ // *** // Requête permettant de lister tous les dossiers de l'export $sql= "SELECT dossier.dossier, dossier.dossier_autorisation, dossier_instruction_type.mouvement_sitadel, dossier_instruction_type.code as dossier_instruction_type_code, dossier.date_depot, dossier.date_decision, dossier.date_chantier, dossier.date_achevement, dossier.terrain_references_cadastrales as dossier_terrain_references_cadastrales, dossier.terrain_adresse_voie_numero as dossier_terrain_adresse_voie_numero, dossier.terrain_adresse_voie as dossier_terrain_adresse_voie, dossier.terrain_adresse_lieu_dit as dossier_terrain_adresse_lieu_dit, dossier.terrain_adresse_localite as dossier_terrain_adresse_localite, dossier.terrain_adresse_code_postal as dossier_terrain_adresse_code_postal, dossier.terrain_adresse_bp as dossier_terrain_adresse_bp, dossier.terrain_adresse_cedex as dossier_terrain_adresse_cedex, dossier_autorisation_type.code, dossier.date_limite, dossier.date_limite_incompletude, dossier.date_notification_delai, dossier.terrain_superficie as dossier_terrain_superficie, arrondissement.code_impots as code_impots, autorite_competente.autorite_competente_sitadel, pp.type_demandeur, pp.qualite, civilite_pp.libelle as civilite_pp, pp.particulier_nom as pp_particulier_nom, pp.particulier_prenom as pp_particulier_prenom, pp.personne_morale_denomination as pp_personne_morale_denomination, pp.personne_morale_raison_sociale as pp_personne_morale_raison_sociale, pp.personne_morale_siret as pp_personne_morale_siret, pp.personne_morale_categorie_juridique as pp_personne_morale_categorie_juridique, civilite_pm.libelle as civilite_pm_libelle, pp.personne_morale_nom as pp_personne_morale_nom, pp.personne_morale_prenom as pp_personne_morale_prenom, pp.numero as pp_numero, pp.voie as pp_voie, pp.complement as pp_complement, pp.lieu_dit as pp_lieu_dit, pp.localite as pp_localite, pp.code_postal as pp_code_postal, pp.bp as pp_bp, pp.cedex as pp_cedex, pp.pays as pp_pays, pp.division_territoriale as pp_division_territoriale, pp.telephone_fixe as pp_telephone_fixe, pp.courriel as pp_courriel, donnees_techniques.co_archi_recours, donnees_techniques.am_terr_surf, donnees_techniques.am_lotiss, donnees_techniques.terr_juri_zac, donnees_techniques.terr_juri_afu, donnees_techniques.co_projet_desc, donnees_techniques.am_projet_desc, donnees_techniques.dm_projet_desc, donnees_techniques.co_cstr_nouv, donnees_techniques.co_cstr_exist, donnees_techniques.co_modif_aspect, donnees_techniques.co_modif_struct, donnees_techniques.co_cloture, donnees_techniques.co_trx_exten, donnees_techniques.co_trx_surelev, donnees_techniques.co_trx_nivsup, donnees_techniques.co_trx_amgt, donnees_techniques.co_anx_pisc, donnees_techniques.co_anx_gara, donnees_techniques.co_anx_veran, donnees_techniques.co_anx_abri, donnees_techniques.co_anx_autr, donnees_techniques.co_bat_niv_nb, donnees_techniques.su_avt_shon1, donnees_techniques.su_avt_shon2, donnees_techniques.su_avt_shon3, donnees_techniques.su_avt_shon4, donnees_techniques.su_avt_shon5, donnees_techniques.su_avt_shon6, donnees_techniques.su_avt_shon7, donnees_techniques.su_avt_shon8, donnees_techniques.su_avt_shon9, donnees_techniques.su_demo_shon1, donnees_techniques.su_demo_shon2, donnees_techniques.su_demo_shon3, donnees_techniques.su_demo_shon4, donnees_techniques.su_demo_shon5, donnees_techniques.su_demo_shon6, donnees_techniques.su_demo_shon7, donnees_techniques.su_demo_shon8, donnees_techniques.su_demo_shon9, donnees_techniques.su_chge_shon1, donnees_techniques.su_chge_shon2, donnees_techniques.su_chge_shon3, donnees_techniques.su_chge_shon4, donnees_techniques.su_chge_shon5, donnees_techniques.su_chge_shon6, donnees_techniques.su_chge_shon7, donnees_techniques.su_chge_shon8, donnees_techniques.su_chge_shon9, donnees_techniques.su_trsf_shon1, donnees_techniques.su_trsf_shon2, donnees_techniques.su_trsf_shon3, donnees_techniques.su_trsf_shon4, donnees_techniques.su_trsf_shon5, donnees_techniques.su_trsf_shon6, donnees_techniques.su_trsf_shon7, donnees_techniques.su_trsf_shon8, donnees_techniques.su_trsf_shon9, donnees_techniques.su_cstr_shon1, donnees_techniques.su_cstr_shon2, donnees_techniques.su_cstr_shon3, donnees_techniques.su_cstr_shon4, donnees_techniques.su_cstr_shon5, donnees_techniques.su_cstr_shon6, donnees_techniques.su_cstr_shon7, donnees_techniques.su_cstr_shon8, donnees_techniques.su_cstr_shon9, donnees_techniques.su_tot_shon1, donnees_techniques.su_tot_shon2, donnees_techniques.su_tot_shon3, donnees_techniques.su_tot_shon4, donnees_techniques.su_tot_shon5, donnees_techniques.su_tot_shon6, donnees_techniques.su_tot_shon7, donnees_techniques.su_tot_shon8, donnees_techniques.su_tot_shon9, donnees_techniques.co_sp_transport, donnees_techniques.co_sp_enseign, donnees_techniques.co_sp_sante, donnees_techniques.co_sp_act_soc, donnees_techniques.co_sp_ouvr_spe, donnees_techniques.co_sp_culture, donnees_techniques.dm_tot_log_nb, donnees_techniques.co_tot_ind_nb, donnees_techniques.co_tot_coll_nb, donnees_techniques.co_tot_log_nb, donnees_techniques.co_resid_agees, donnees_techniques.co_resid_etud, donnees_techniques.co_resid_tourism, donnees_techniques.co_resid_hot_soc, donnees_techniques.co_resid_hand, donnees_techniques.co_resid_autr, donnees_techniques.co_resid_autr_desc, donnees_techniques.co_uti_pers, donnees_techniques.co_uti_princ, donnees_techniques.co_uti_secon, donnees_techniques.co_uti_vente, donnees_techniques.co_uti_loc, donnees_techniques.co_foyer_chamb_nb, donnees_techniques.co_fin_lls_nb, donnees_techniques.co_fin_aa_nb, donnees_techniques.co_fin_ptz_nb, donnees_techniques.co_fin_autr_nb, donnees_techniques.co_mais_piece_nb, donnees_techniques.co_log_1p_nb, donnees_techniques.co_log_2p_nb, donnees_techniques.co_log_3p_nb, donnees_techniques.co_log_4p_nb, donnees_techniques.co_log_5p_nb, donnees_techniques.co_log_6p_nb, donnees_techniques.mod_desc, donnees_techniques.doc_date, donnees_techniques.terr_div_surf_av_div, donnees_techniques.doc_tot_trav, donnees_techniques.doc_tranche_trav, donnees_techniques.doc_tranche_trav_desc, donnees_techniques.doc_surf, donnees_techniques.doc_nb_log, donnees_techniques.doc_nb_log_indiv, donnees_techniques.doc_nb_log_coll, donnees_techniques.doc_nb_log_lls, donnees_techniques.doc_nb_log_aa, donnees_techniques.doc_nb_log_ptz, donnees_techniques.doc_nb_log_autre, donnees_techniques.daact_date, donnees_techniques.daact_date_chgmt_dest, donnees_techniques.daact_tot_trav, donnees_techniques.daact_tranche_trav, donnees_techniques.daact_tranche_trav_desc, donnees_techniques.daact_surf, donnees_techniques.daact_nb_log, donnees_techniques.daact_nb_log_indiv, donnees_techniques.daact_nb_log_coll, donnees_techniques.daact_nb_log_lls, donnees_techniques.daact_nb_log_aa, donnees_techniques.daact_nb_log_ptz, donnees_techniques.daact_nb_log_autre, dossier_autorisation.date_depot as date_depot_da, dossier_autorisation.date_decision as date_decision_da, dossier_autorisation.date_validite as date_validite_da, dossier_autorisation.date_chantier as date_chantier_da, dossier_autorisation.date_achevement as date_achevement_da, avis_decision.typeavis as typeavis_da, avis_decision.sitadel, avis_decision.sitadel_motif, avis_decision.typeavis, etat.statut as statut_di FROM ".DB_PREFIXE."dossier"; $sql .= " INNER JOIN ".DB_PREFIXE."dossier_instruction_type ON dossier.dossier_instruction_type = dossier_instruction_type.dossier_instruction_type INNER JOIN ".DB_PREFIXE."dossier_autorisation_type_detaille ON dossier_instruction_type.dossier_autorisation_type_detaille =dossier_autorisation_type_detaille.dossier_autorisation_type_detaille INNER JOIN ".DB_PREFIXE."dossier_autorisation_type ON dossier_autorisation_type.dossier_autorisation_type =dossier_autorisation_type_detaille.dossier_autorisation_type INNER JOIN ".DB_PREFIXE."dossier_autorisation ON dossier_autorisation.dossier_autorisation =dossier.dossier_autorisation INNER JOIN ".DB_PREFIXE."autorite_competente ON autorite_competente.autorite_competente =dossier.autorite_competente LEFT JOIN ".DB_PREFIXE."donnees_techniques ON donnees_techniques.dossier_instruction = dossier.dossier LEFT JOIN ".DB_PREFIXE."avis_decision ON avis_decision.avis_decision = dossier.avis_decision LEFT JOIN ".DB_PREFIXE."lien_dossier_demandeur as ldd_pp ON ldd_pp.dossier = dossier.dossier LEFT JOIN ".DB_PREFIXE."demandeur as pp ON ldd_pp.demandeur = pp.demandeur LEFT JOIN ".DB_PREFIXE."civilite as civilite_pp ON civilite_pp.civilite = pp.particulier_civilite LEFT JOIN ".DB_PREFIXE."civilite as civilite_pm ON civilite_pm.civilite = pp.personne_morale_civilite LEFT JOIN ".DB_PREFIXE."etat ON etat.etat = dossier.etat LEFT JOIN ".DB_PREFIXE."arrondissement ON dossier_autorisation.arrondissement=arrondissement.arrondissement "; $sql .= " WHERE dossier_instruction_type.mouvement_sitadel IS NOT NULL"; $sql .= " AND dossier.a_qualifier IS NOT TRUE"; $sql .= " AND ldd_pp.petitionnaire_principal is TRUE"; $sql .= " AND ((dossier.date_depot >='".$datedebut."' AND dossier.date_depot<='".$datefin."')"; $sql .= " OR (dossier.date_decision>='".$datedebut."' AND dossier.date_decision<='".$datefin."')"; $sql .= " OR (dossier.date_chantier>='".$datedebut."' AND dossier.date_chantier<='".$datefin."')"; $sql .= " OR (dossier.date_achevement>='".$datedebut."' AND dossier.date_achevement<='".$datefin."'))"; $sql .= " order by dossier_instruction_type.mouvement_sitadel, dossier.dossier"; $res = $f->db -> query ($sql); $f->addToLog("app/sitadel.php : db->query(\"".$sql."\")", VERBOSE_MODE); $f->isDatabaseError($res); $export=""; while ($row=& $res->fetchRow(DB_FETCHMODE_ASSOC)){ // initialisation de la classe permettant la mise en forme de chaque ligne de l'export $g = new sitadel($row['dossier'], $f); $g->setRow($row); // sitadel $g->setVal($val); // // parametre // $sql = "select parametre, valeur from ".DB_PREFIXE."statistique where dossier ='".$row['dossier']."'"; // $res1 = $f->db -> query ($sql); // $f->isDatabaseError($res1); // while ($row1=& $res1->fetchRow(DB_FETCHMODE_ASSOC)){ // $g->parametre[$row1['parametre']]=$row1['valeur']; // } $departement =str_pad($f->collectivite["departement"], 3, "0", STR_PAD_LEFT); $commune =$f->collectivite["commune"]; $region =$f->collectivite["region"]; // depot $depot=""; // Tous les mouvements autres que transfert ont comme mouvement le code DEPOT // les décisions devant êtres précédées par le dépôt correspondant, // les dossiers avec date de décision comprise dans l'interval fourni sont // réaffichés en tant que dépôts (mouvement DEPOT) if (($row['mouvement_sitadel'] == 'DEPOT'||($row['mouvement_sitadel'] == 'MODIFICATIF' AND $row['statut_di']=='cloture' AND $row['typeavis']=='F')) and (($row['date_depot'] >= $datedebut and $row['date_depot'] <= $datefin) or ($row['date_decision'] >= $datedebut and $row['date_decision'] <= $datefin))) { $depot.=$g->entete("DEPOT",$departement,$commune); $depot.=$g->etatcivil(); $depot.=$g->adresse(); $depot.=$g->delegataire(); $depot.=$g->meltel($row['mouvement_sitadel']); $depot.=$g->adresse_terrain(); $depot.=$g->parcelle(); // =========================== // contrat maison individuelle // =========================== // sitadel : contrat| // openads : non renseigne $depot.= $g->defaultValue('contrat')."|"; // ========== // architecte // ========== // sitadel : architecte| // openads : données techniques.co_archi_recours if($row['co_archi_recours'] == "t") { $depot.= "1|"; } else { $depot.= "0|"; } // ===================== // utilisation data cnil // ====================== // sitadel : cnil // openads : non renseigne $depot.= $g->defaultValue('cnil'); // fin d enregistrement depot $depot.="\n"; if (substr_count($depot, '|')!=61){ var_dump(substr_count($depot, '|')); } } // Seuls les dossier de type transfert ont comme mouvement le code TRANSFERT $transfert =""; if($row['mouvement_sitadel']=='TRANSFERT' and $row['date_depot'] >= $datedebut and $row['date_depot']<=$datefin){ $transfert.=$g->entete("TRANSFERT",$departement,$commune); $transfert.=$g->etatcivil(); $transfert.=$g->adresse(); $transfert.=$g->meltel($row['mouvement_sitadel']); $transfert.="\n"; } // Une ligne de mouvement DECISION est insérée après chaque ligne // de mouvement DEPOT $decision=""; if ($row['mouvement_sitadel'] != 'TRANSFERT' and $row['mouvement_sitadel'] != 'SUPPRESSION' and $row['mouvement_sitadel'] == 'DEPOT' and (($row['date_depot'] >= $datedebut and $row['date_depot']<=$datefin) or ($row['date_decision'] >= $datedebut and $row['date_decision']<=$datefin))) { //Ajout de l'entête $decision.=$g->entete("DECISION",$departement,$commune); //Ajout du groupe 1 $decision.= $g->decision_groupe1(); // Si la décision est favorable, on remplit le groupe 2 if ( $row['sitadel'] == 2 || $row['sitadel'] == 4 || $row['sitadel'] == 5 || $row['sitadel'] == 0 ){ $decision.= $g->amenagement_terrain(); //Nature du projet $natproj = 2; $natprojlib= array( 1=>_("Nouvelle construction"), 2=>_("Travaux sur construction existante"), 3=>_("Nouvelle construction et travaux sur construction"), ); if ( isset($row['co_cstr_nouv']) && isset($row['co_cstr_exist']) && $row['co_cstr_nouv'] == 't' && $row['co_cstr_exist'] == 't' ){ $natproj = 3; } //Nouvelle construction elseif ( isset($row['co_cstr_nouv']) && $row['co_cstr_nouv'] == 't' ) { $natproj = 1; } $su_avt_shon = $g->shon("su_avt_shon"); //Si la SHON existante avant travaux est supérieur à la SHON //démolie alors la variable natproj est égale à 2 $shonExistante = 0; $shonDemolie = 0; for ( $i=1;$i<=9;$i++){ $shonExistante += floor($row['su_avt_shon'.$i]); $shonDemolie += floor($row['su_demo_shon'.$i]); } //Si la SHON existante avant travaux et la SHON démolie sont //égales alors la variable natproj est égale à 1 if ( $shonExistante == 0 && $shonDemolie == 0 && $natproj != 1 && $row['code'] != 'DP' && $row['code'] != 'PA') { $erreur .= _("Dossier ").$row['dossier']." \"".$natprojlib[$natproj]."\" "._("La SHON existante avant travaux et la SHON demolie sont nulles alors cela devrait être une nouvelle construction.")."\n"; } elseif ( $shonExistante > $shonDemolie && $natproj != 2 ){ $erreur .= _("Dossier ").$row['dossier']." \"".$natprojlib[$natproj]."\" "._("La SHON existante avant travaux ne doit pas est supérieurse à la SHON démolie.")."\n"; } $decision .= $su_avt_shon; $su_demo_shon = $g->shon("su_demo_shon"); //La SHON démolie s'accompagne obligatoirement de la shon //existante avant travaux if ( $shonDemolie != 0 && $shonExistante == 0 ){ $erreur .= _("Dossier ").$row['dossier']." "._("La SHON demolie s'accompagne obligatoirement de la SHON existante avant travaux.")."\n"; } $decision .= $su_demo_shon; $su_sup_shon = $g->shon("su_sup_shon"); $su_chge_shon = $g->shon("su_chge_shon"); if ( strcasecmp($su_sup_shon, $su_chge_shon) != 0){ // $erreur .= _("Dossier ").$row['dossier']." "._("Les SHON globales vouees a la transformation et issues de la transformation de doivent etre egales.")."\n"; } $decision .= $su_sup_shon; $decision .= $su_chge_shon; $decision .= $g->shon("su_cstr_shon"); $decision .= "0|0|0|0|0|0|0|0|0|"; //Les SHON relatives à la transformation s'accompagnent //obligatoirement de SHON existante avant travaux non nulle if (preg_match("/[0|]{7}/", $su_chge_shon) && preg_match("/[0|]{7}/", $su_avt_shon)){ $erreur .= _("Dossier ").$row['dossier']." "._("Les SHON relatives a la transformation s'accompagnent obligatoirement de SHON existante avant travaux non nulle.")."\n"; } // Un nombre de logements démolis strictement positif doit // s'accompagner obligatoirement de SHON démolie. if($row['dm_tot_log_nb'] > 0) { if($row['su_demo_shon1'] <= 0) { $erreur .= _("Dossier ").$row['dossier']." "._("Un nombre de logements demolis strictement positif doit s'accompagner obligatoirement de SHON demolie.")."\n"; } } // Un nombre de logements créés strictement positif doit // s'accompagner obligatoirement de SHON créée ou de SHON // issue de la transformation ayant pour destination l'habitation. if($row['co_tot_log_nb'] > 0 AND ($row['su_cstr_shon1'] <= 0 OR $row['su_trsf_shon1'] <=0)) { $erreur .= _("Dossier ").$row['dossier']." "._("Un nombre de logements crees strictement positif doit s'accompagner obligatoirement de SHON creee ou de SHON issue de la transformation ayant pour destination l'habitation.")."\n"; } // La SHON créée ou issue de la transformation // suffixée par 9 (intérêt collectif ou service public) doit // obligatoirement s'accompagner de la décomposition // en sous modalité renseignée par la variable cpublic et réciproquement. // Test si une valeur est true $cpublic = FALSE; if (isset($row['co_sp_transport']) && $row['co_sp_transport'] == 't') { $cpublic = TRUE; } if (isset($row['co_sp_enseign']) && $row['co_sp_enseign'] == 't') { $cpublic = TRUE; } if (isset($row['co_sp_sante']) && $row['co_sp_sante'] == 't') { $cpublic = TRUE; } if (isset($row['co_sp_act_soc']) && $row['co_sp_act_soc'] == 't') { $cpublic = TRUE; } if (isset($row['co_sp_ouvr_spe']) && $row['co_sp_ouvr_spe'] == 't') { $cpublic = TRUE; } if (isset($row['co_sp_culture']) && $row['co_sp_culture'] == 't') { $cpublic = TRUE; } if($cpublic !== TRUE AND ($row['su_cstr_shon9'] > 0 OR $row['su_trsf_shon9'] > 0)) { $erreur .= _("Dossier ").$row['dossier']." "._("La SHON creee ou issue de la transformation concernant le service public ou l'interet collectif doit obligatoirement s'accompagner du choix de destination des constructions.")."\n"; } // La destination principale du logement mise à résidence // principale ou résidence secondaire doit obligatoirement // s'accompagner d'un mode d'utilisation à occupation personnelle if($row['co_uti_princ'] == 't' OR $row['co_uti_secon'] == 't') { if($row['co_uti_pers'] != 't') { $erreur .= _("Dossier ").$row['dossier']." "._("La destination principale du logement mise a residence principale ou residence secondaire doit obligatoirement s'accompagner d'un mode d'utilisation a occupation personnelle.")."\n"; } } $decision.= $g->destination($row['mouvement_sitadel']); // Le nombre total de logements créés (variable nbtotlog) // doit être égal à la somme des nombres de logements créés // ventilés par type de financement if($row['co_tot_log_nb'] != ($row['co_fin_lls_nb'] + $row['co_fin_aa_nb'] + $row['co_fin_ptz_nb'] + $row['co_fin_autr_nb'])) { $erreur .= _("Dossier ").$row['dossier']." "._("Le nombre total de logements crees doit etre egal a la somme des nombres de logements crees ventiles par type de financement.")."\n"; } $decision.= $g->repartitionFinan(); // Le nombre total de logements créés (variable nbtotlog) // doit être égal à la totalisation de la répartition des // logements par nombre de pièces if($row['co_tot_log_nb'] != ($row['co_log_1p_nb'] + $row['co_log_2p_nb'] + $row['co_log_3p_nb'] + $row['co_log_4p_nb'] + $row['co_log_5p_nb'] + $row['co_log_6p_nb'])) { $erreur .= _("Dossier ").$row['dossier']." "._("Le nombre total de logements crees doit etre egal a la totalisation de la repartition des logements par nombre de pieces.")."\n"; } $decision.= $g->repartitionNbPiece($row['mouvement_sitadel']); } else { // $decision.= str_repeat("|", 6); if($row['code']=='DP'){ $decision .= "00000|"; }else{ $decision .= "|"; } $decision .= "0000|00000|"; $decision.= str_repeat("|", 74); } $decision.="\n"; } // modificatif $modificatif=''; if($row['mouvement_sitadel'] == 'MODIFICATIF' AND $row['statut_di']=='cloture' AND $row['typeavis']=='F' and (($row['date_depot'] >= $datedebut and $row['date_depot'] <= $datefin) or ($row['date_decision'] >= $datedebut and $row['date_decision'] <= $datefin))) { $modificatif.=$g->entete("MODIFICATIF",$departement,$commune); $modificatif.= $g->decision_groupe1(); if(isset($row['date_decision']) or $row['date_decision']==""){ // avis_sitadel et avis_sitadel_motif // si la decision est favorable, envoi des informations statistiques if($row["sitadel"] == 2 or $row["sitadel"] == 4 or $row["sitadel"] == 5){ // si accordé : ajout du 2nd groupe d'informations $modificatif .= $g->adresse_terrain(); // adresse du terrain $modificatif .= $g->parcelle(); // 3 premières parcelles $modificatif .= $g->modificatif_terrain(); // Informations complémentaires $modificatif.= $g->shon("su_avt_shon"); $modificatif.= $g->shon("su_demo_shon"); $modificatif.= $g->shon("su_chge_shon"); $modificatif.= $g->shon("su_trsf_shon"); $modificatif.= $g->shon("su_cstr_shon"); $modificatif.= "|||||||||"; $modificatif.= $g->destination($row['mouvement_sitadel']); $modificatif.= $g->repartitionFinan(); $modificatif.= $g->repartitionNbPiece($row['mouvement_sitadel']); } else { $modificatif .= str_repeat("|", 90); } } else { $modificatif .= str_repeat("|", 90); } $modificatif.="\n"; } // Mouvement suppression $suppression = ''; if($row['mouvement_sitadel'] == 'SUPPRESSION') { $suppression .= $g->entete("SUPPRESSION",$departement,$commune); $suppression .= "\n"; } // Règles sur le mouvement suivi $suivi=""; if($row['mouvement_sitadel'] == 'SUIVI' and ($row['date_chantier'] >= $datedebut and $row['date_chantier']<=$datefin) || ($row['date_achevement'] >= $datedebut and $row['date_achevement']<=$datefin)){ // Si le dossier est une DOC if($row['dossier_instruction_type_code']=='DOC'){ // Une ouverture de chantier ne peut concerner qu'un permis autorisé if($row['typeavis_da'] != 'F'&&$row['typeavis_da'] != '') { $erreur .= _("Dossier ").$row['dossier']." "._("Une ouverture de chantier ne peut concerner qu'un permis autorise.")."\n"; } // La date d'ouverture de chantier doit être supérieur à la date d'autorisation if($row['doc_date'] > $row['date_decision_da']) { $erreur .= _("Dossier ").$row['dossier']." "._("La date d'ouverture de chantier doit être superieur a la date d'autorisation.")."\n"; } // Un achèvement de chantier ne peut concerner qu'un permis autorisé if($row['typeavis_da'] != 'F'&&$row['typeavis_da'] != '') { $erreur .= _("Dossier ").$row['dossier']." "._("Un achevement de chantier ne peut concerner qu'un permis autorise.")."\n"; } if( $row['date_chantier_da'] == "" && $row['date_achevement']!="") { $erreur .= _("Dossier ").$row['dossier']." "._("Un achevement de chantier ne peut concerner qu'un permis sur lequel un chantier a ete ouvert.")."\n"; } // La date d'achevement de travaux doit être supérieur à la date d'ouverture des travaux if($row['daact_date'] > $row['date_chantier_da']) { $erreur .= _("Dossier ").$row['dossier']." "._("La date d'achevement de travaux doit etre superieur a la date d'ouverture des travaux.")."\n"; } $suivi.=$g->entete("SUIVI",$departement,$commune);//8| $suivi.=$g->chantier($row); //On récupère la DAACT si elle existe $sqlDAACT = "SELECT donnees_techniques.daact_date, donnees_techniques.daact_date_chgmt_dest, donnees_techniques.daact_tot_trav, donnees_techniques.daact_tranche_trav, donnees_techniques.daact_tranche_trav_desc, donnees_techniques.daact_surf, donnees_techniques.daact_nb_log, donnees_techniques.daact_nb_log_indiv, donnees_techniques.daact_nb_log_coll, donnees_techniques.daact_nb_log_lls, donnees_techniques.daact_nb_log_aa, donnees_techniques.daact_nb_log_ptz, donnees_techniques.daact_nb_log_autre, etat.statut as statut_di FROM ".DB_PREFIXE."dossier LEFT JOIN ".DB_PREFIXE."donnees_techniques ON dossier.dossier=donnees_techniques.dossier_instruction LEFT JOIN ".DB_PREFIXE."etat ON dossier.etat = etat.etat LEFT JOIN ".DB_PREFIXE."dossier_instruction_type ON dossier.dossier_instruction_type = dossier_instruction_type.dossier_instruction_type WHERE dossier.dossier_autorisation ='".$row['dossier_autorisation']."' AND dossier_instruction_type.code = 'DAACT' and mouvement_sitadel='SUIVI'"; $resDAACT = $f->db -> query ($sqlDAACT); $f->addToLog("app/sitadel.php : db->query(\"".$sqlDAACT."\")", VERBOSE_MODE); $f->isDatabaseError($resDAACT); $rowDAACT=& $resDAACT->fetchRow(DB_FETCHMODE_ASSOC); $suivi.=$g->achevement($rowDAACT); $suivi.="\n"; } elseif($row['dossier_instruction_type_code']=='DAACT'){ //On vérifie qu'une DOC existe $sqlDOC = "SELECT dossier.dossier, dossier.date_chantier, donnees_techniques.doc_date, donnees_techniques.terr_div_surf_av_div, donnees_techniques.doc_tot_trav, donnees_techniques.doc_tranche_trav, donnees_techniques.doc_tranche_trav_desc, donnees_techniques.doc_surf, donnees_techniques.doc_nb_log, donnees_techniques.doc_nb_log_indiv, donnees_techniques.doc_nb_log_coll, donnees_techniques.doc_nb_log_lls, donnees_techniques.doc_nb_log_aa, donnees_techniques.doc_nb_log_ptz, donnees_techniques.doc_nb_log_autre FROM ".DB_PREFIXE."dossier LEFT JOIN ".DB_PREFIXE."donnees_techniques ON dossier.dossier=donnees_techniques.dossier_instruction LEFT JOIN ".DB_PREFIXE."dossier_instruction_type ON dossier.dossier_instruction_type=dossier_instruction_type.dossier_instruction_type WHERE dossier.dossier_autorisation ='".$row['dossier_autorisation']."' AND dossier_instruction_type.code = 'DOC' and mouvement_sitadel='SUIVI'"; $resDOC = $f->db -> query ($sqlDOC); $f->addToLog("app/sitadel.php : db->query(\"".$sqlDOC."\")", VERBOSE_MODE); $f->isDatabaseError($resDOC); $rowDOC=& $resDOC->fetchRow(DB_FETCHMODE_ASSOC); if((isset($rowDOC['dossier']) && $rowDOC['date_chantier']<$datedebut || $rowDOC['date_chantier']>$datefin) || !isset($rowDOC['dossier'])) { // $suivi.=$g->entete("SUIVI",$departement,$commune);//8| $suivi.=$g->chantier($rowDOC); $suivi.=$g->achevement($row); $suivi.="\n"; } } } // export $export.=$depot.$decision.$transfert.$modificatif.$suivi.$suppression; } // fin while // *************************************** // entete de l enregistrement page 8 et 9 // *************************************** // numero // $numero= $db -> nextId('sitadel'); // On affiche le fichier généré $departement =$f->collectivite["departement"]; $commune =$f->collectivite["commune"]; $region =$f->collectivite["region"]; $numero=$f->get_submitted_post_value("numero"); $fichiertransmis = date('ymj').$departement.$commune; $longueurenregistrement= 0 ; // a calculer *** enregistrement le plus long $entete = "SITADEL|".$departement."|".$commune."|".$region."|".$fichiertransmis."|".$numero."|"; // calcul enregistrement le plus long if(DBCHARSET=='UTF8'){ $export=utf8_decode($export); } // nombreenrgistremment et longueurenregistrement $nbenr = explode("\n",$export); $tmp=array(); $cpt=0; for($i=0;$i= 4.0.6, PHP 5 // Le param�tre encoding est l'encodage des caract�res. // S'il est omis, l'encodage de caracteres interne sera utilis�. $tmp[$i] = strlen($nbenr[$i]); //echo strlen($nbenr[$i])." ".$nbenr[$i]."
"; $cpt++; } $longueurenregistrement=max($tmp); $nombreenregistrement=$cpt; // + entete // Date de modification $datemodification = date('y').str_pad (DATE('m'), 2, "0", STR_PAD_LEFT).str_pad (DATE('j'), 2, "0", STR_PAD_LEFT); // export $version = substr($f->version,0,8); $entete.= $longueurenregistrement."|".$datemodification."|". $nombreenregistrement."|openADS|".$version."\n"; $export=$entete.$export; // $str = htmlentities($str, ENT_QUOTES); // ecriture des fichiers en tmp $fichier = "../tmp/SITADEL".substr($f->get_submitted_post_value("datedebut"),3,2). "".substr($f->get_submitted_post_value("datedebut"),8,4).""; $inf = fopen($fichier,"w"); fwrite($inf,$export); fclose($inf); $f->displayMessage("ok", _("Fichier")." ".$fichier." "._("sauvegarde")."
". _("Pour telecharger le fichier, cliquer ici :"). " \"".". _("avec le bouton droit et enregistrer la cible du lien sous.") ); if(DEBUG != "PRODUCTION_MODE"){ $affiche=""; $affiche= str_replace("\n","
",$export); echo $affiche; } // Si une erreur a été trouvée if($erreur != "") { $fichier = "../tmp/probleme_SITADEL".substr($f->get_submitted_post_value("datedebut"),3,2). "".substr($f->get_submitted_post_value("datedebut"),8,4).""; $inf = fopen($fichier,"w"); fwrite($inf,$erreur); fclose($inf); $f->addToMessage("info", _("Un ou plusieurs problèmes de cohérence ont été détectés durant l'export,". " celles-ci sont listees dans le fichiers ci-dessous"). "
"._("Fichier ")." ".$fichier." "._("sauvegardé"). "
"._("Pour telecharger le fichier, cliquer ici :")." ". "\""._("Telecharger". ""._("avec le bouton droit et enregistrer la cible du lien sous.")); $f->displayMessages(); } // Affichage du bouton retour // Composition du tableau de paramètres $params = array( "href" => "../app/sitadel.php?datedebut=".$datedebut."&datefin=".$datefin."&numero=".$numero, ); // Appel de la méthode d'affichage du lien retour par le layout $f->layout->display_form_retour($params); } else {// correct = false $f->displayMessage("error", _("Les champs dates sont obligatoires")); affichageFormulaire($f->get_submitted_post_value("datedebut"), $f->get_submitted_post_value("datefin"), $numero); } }//validation /** * Affichage du formulaire * * */ function affichageFormulaire($datedebut="", $datefin="", $numero=""){ echo "
"; // champ date debut echo " "._("debut")." "; echo ""; // champ date fin echo " "._("fin")." "; echo ""; // numero d'ordre d'envoi echo " "._("Numero d'ordre d'envoi")." : ".""; echo "

"; echo "
"; } ?>