".__($obj); if (!isset($premier)) $premier=""; if (!isset($advs_id)) $advs_id=""; // Si un filtre par nature est actif via advs_id, on utilise le libellé de la nature // comme titre de page plutôt que le générique "Emplacement". if (!empty($advs_id) && isset($_SESSION["advs_ids"][$advs_id])) { $advs_criteria = unserialize($_SESSION["advs_ids"][$advs_id]); if (!empty($advs_criteria['nature'])) { $qres = $f->get_one_result_from_db_query( sprintf( 'SELECT libelle FROM %snature_emplacement WHERE nature_emplacement = %d', DB_PREFIXE, intval($advs_criteria['nature']) ) ); if ($qres['code'] === 'OK' && !empty($qres['result'])) { $ent = __("emplacements")." -> ".$qres['result']; } } } if (!isset($tricol)) $tricol=""; if (!isset($valide)) $valide=""; $edition = ""; // $table = DB_PREFIXE."emplacement LEFT JOIN ".DB_PREFIXE."nature_emplacement ON emplacement.nature=nature_emplacement.nature_emplacement LEFT JOIN ".DB_PREFIXE."om_collectivite ON emplacement.om_collectivite=om_collectivite.om_collectivite LEFT JOIN ".DB_PREFIXE."voie ON emplacement.voie=voie.voie LEFT JOIN ".DB_PREFIXE."voie_type ON voie.voietype=voie_type.voie_type LEFT JOIN ".DB_PREFIXE."zone ON voie.zone=zone.zone LEFT JOIN ".DB_PREFIXE."zone_type ON zone.zonetype=zone_type.zone_type LEFT JOIN ".DB_PREFIXE."cimetiere ON zone.cimetiere=cimetiere.cimetiere LEFT JOIN ".DB_PREFIXE."sepulture_type ON emplacement.sepulturetype=sepulture_type.sepulture_type "; // $champAffiche=array( 'emplacement as "'.__("id").'"', 'emplacement.geom as "geom_picto1"', 'emplacement.pgeom as "geom_picto2"', 'nature_emplacement.libelle as "'.__("nature").'"', 'famille as "'.__("famille").'"', "numero::text||' '||COALESCE(complement, '') as \"".__("numero")."\"", "(voie_type.libelle||' '||voielib) as \"".__("voie")."\"", "(zone_type.libelle||' '||zonelib) as \"".__("zone")."\"", 'cimetierelib as "'.__("cimetierelib").'"', 'emplacement.numeroacte as "'.__("numeroacte").'"', 'libre as "'.__("libre").'"', "CASE has_mort_pour_la_france WHEN 't' THEN 'Oui' ELSE 'Non' END as \"".__("mort_pour_la_france").'"', ); if ($_SESSION['niveau'] == '2') { array_push($champAffiche, "om_collectivite.libelle as \"".__("collectivite")."\""); } // $champRecherche=array( 'emplacement as "'.__("id").'"', //"(cast(numero as text)||' '||COALESCE(complement, '') ) as \"".__("numero")."\"", "(voie_type.libelle||' '||voielib) as \"".__("voie")."\"", "(zone_type.libelle||' '||zonelib) as \"".__("zone")."\"", 'cimetierelib as "'.__("cimetierelib").'"', 'nature_emplacement.libelle as "'.__("nature").'"', 'numerocadastre as "'.__("numerocadastre").'"', 'famille as "'.__("famille").'"', 'emplacement.numeroacte as "'.__("numeroacte").'"', 'terme as "'.__("terme").'"', 'sepulture_type.libelle as "'.__("sepulturetype").'"', 'typeconcession as "'.__("typeconcession").'"', 'videsanitaire as "'.__("videsanitaire").'"', 'semelle as "'.__("semelle").'"', 'etatsemelle as "'.__("etatsemelle").'"', 'monument as "'.__("monument").'"', 'etatmonument as "'.__("etatmonument").'"', 'abandon as "'.__("abandon").'"', "CASE has_mort_pour_la_france WHEN 't' THEN 'Oui' ELSE 'Non' END as \"".__("mort_pour_la_france").'"', ); if ($_SESSION['niveau'] == '2') { array_push($champRecherche, "om_collectivite.libelle as \"".__("collectivite")."\""); } // // $selection = " where nature_emplacement.code='".$obj."' "; /** * Gestion de la clause WHERE => $selection */ // Filtre listing standard if ($_SESSION["niveau"] == "2") { // Filtre MULTI $selection .= ""; } else { // Filtre MONO $selection .= " AND (emplacement.om_collectivite = '".$_SESSION["collectivite"]."') "; } // $tri = " order by famille "; // $sousformulaire = array(); // EDITION $tab_actions['left']['etat-emplacement'] = array( 'lien' => OM_ROUTE_FORM."&obj=".$obj."&action=101&idx=", 'id' => '', 'target' => "_blank", 'lib' => ''.__('récapitulatif').'', 'ordre' => 110, ); // LOCALISATION $tab_actions['left']['localiser-sig-interne'] = array( 'lien' => OM_ROUTE_FORM."&obj=".$obj."&action=13&idx=", 'id' => '', 'lib' => ''.__('SIG').'', 'ordre' => 150, 'parameters' => array("option_localisation" => "sig_interne", ), ); $url_sig_externe = ''; if ($this->getParameter('option_localisation') == 'sig_externe') { try { $geocimetiere = $f->get_geocimetiere_instance(true); } catch(geocimetiere_exception $e) { $f->addToLog( __METHOD__."() échec de l'instanciation du connecteur SIG. ". gettype($e).": ".$e->getMessage(), DEBUG_MODE); $f->handle_geocimetiere_exception($e); } if (! empty($geocimetiere)) { $url_sig_externe = $geocimetiere->redirection_web('emplacement'); } } $tab_actions['left']['localiser-sig-externe'] = array( 'lien' => $url_sig_externe, 'id' => '', 'lib' => ''.__('SIG').'', 'ordre' => 150, 'parameters' => array("option_localisation" => "sig_externe", ), ); $tab_actions['left']['localiser-plan'] = array( 'lien' => "../app/localisation_plan_view.php?idx=", 'id' => '&obj='.$obj.'&premier='.$premier.'&advs_id='.$advs_id.'&tricol='.$tricol.'&valide='.$valide.'&retour=tab#camap0', 'lib' => ''.__('Plan').'', 'ordre' => 150, 'parameters' => array("option_localisation" => "plan", ), ); /** * Options du LISTING */ $options = array(); // ADVS $champs = array(); $champs['emplacement'] = array( 'colonne' => 'emplacement', 'table' => 'emplacement', 'type' => 'text', 'libelle' => __('emplacement'), 'help' => __("identifiant de l'emplacement"), 'taille' => 8, 'max' => '', ); $champs['nature'] = array( 'colonne' => 'nature', 'table' => 'emplacement', 'type' => 'select', 'libelle' => __('nature'), 'subtype' => 'sqlselect', 'sql' => sprintf( "SELECT nature_emplacement, libelle FROM %snature_emplacement WHERE (om_validite_debut IS NULL OR om_validite_debut <= CURRENT_DATE) AND (om_validite_fin IS NULL OR om_validite_fin >= CURRENT_DATE) ORDER BY nature_emplacement", DB_PREFIXE ), ); $champs['famille'] = array( 'colonne' => 'famille', 'table' => 'emplacement', 'type' => 'text', 'libelle' => __('famille'), 'help' => __("nom de la famille"), 'taille' => 8, 'max' => '', ); $champs['numero'] = array( 'colonne' => 'numero', 'table' => 'emplacement', 'type' => 'text', 'libelle' => __('numero'), 'help' => __("numéro de l'emplacement"), 'taille' => 8, 'max' => '', ); $champs['voie'] = array( 'colonne' => 'voie', 'table' => 'emplacement', 'type' => 'text', 'libelle' => __('voie'), 'help' => __("voie de l'emplacement"), 'taille' => 8, 'max' => '', ); $champs['zone'] = array( 'colonne' => 'zone', 'table' => 'voie', 'type' => 'text', 'libelle' => __('zone'), 'help' => __("zone de l'emplacement"), 'taille' => 8, 'max' => '', ); $champs['cimetiere'] = array( 'colonne' => 'cimetiere', 'table' => 'zone', 'type' => 'text', 'libelle' => __('cimetierelib'), 'help' => __("cimetière"), 'taille' => 8, 'max' => '', ); $champs['numeroacte'] = array( 'colonne' => 'numeroacte', 'table' => 'emplacement', 'type' => 'text', 'libelle' => __('numeroacte'), 'help' => __("numéro d'acte"), 'taille' => 8, 'max' => '', ); $args = array(); $args[0] = array('', 'Oui', 'Non'); $args[1] = array(_('Tous'), _('Oui'), _('Non')); $champs['libre'] = array( 'colonne' => 'libre', 'table' => 'emplacement', 'type' => 'select', 'libelle' => __('libre'), 'subtype' => 'manualselect', 'args' => $args, ); $args_mpf = array(); $args_mpf[0] = array('', 'true', 'false'); $args_mpf[1] = array(_('Tous'), _('Oui'), _('Non')); $champs['has_mort_pour_la_france'] = array( 'colonne' => 'has_mort_pour_la_france', 'table' => 'emplacement', 'type' => 'select', 'libelle' => __('mort_pour_la_france'), 'subtype' => 'manualselect', 'args' => $args_mpf, ); $champs['numerocadastre'] = array( 'colonne' => 'numerocadastre', 'table' => 'emplacement', 'type' => 'text', 'libelle' => __('numerocadastre'), 'help' => __("numéro de cadastre"), 'taille' => 8, 'max' => '', ); $options[] = array( 'type' => 'search', 'display' => true, 'advanced' => $champs, 'export' => array('csv',), 'default_form' => 'advanced', 'absolute_object' => 'emplacement' ); // Marque la ligne si le dossier n'a pas été géolocalisé. // Nécessite que la seconde colonne des tableaux soit le geom. // Dans la variable $champAffiche en seconde position mettre 'dossier.geom as "geom_picto"', $options[] = array( "type" => "condition", "field" => 'emplacement.geom', "case" => array( 1 => array( // column key for dossier.geom (geom_picto) "values" => array(''), // style only empty values "style" => "no-geoloc1" ), ), ); $options[] = array( "type" => "condition", "field" => 'emplacement.pgeom', "case" => array( 1 => array( // column key for dossier.geom (geom_picto) "values" => array(''), // style only empty values "style" => "no-geoloc2" ), ), ); // // Construction dynamique des sous-formulaires en fonction de la nature de l'emplacement $sousformulaire = array(); $sousformulaire_parameters = array( "autorisation" => array( "title" => _("Contacts"), ), "contrat" => array( "title" => _("Contrats"), ), "reprise_abandon" => array( "title" => _("Reprise Sur Abandon"), ), ); // Si on est dans un contexte de formulaire (idxformulaire ou idx défini) $emplacement_id = null; if (isset($idxformulaire) && !empty($idxformulaire)) { $emplacement_id = intval($idxformulaire); } elseif (isset($_GET['idx']) && !empty($_GET['idx'])) { $emplacement_id = intval($_GET['idx']); } // Si on a un ID d'emplacement, on récupère la configuration des sous-formulaires if ($emplacement_id !== null && $emplacement_id > 0) { $qres_sf = $f->get_all_results_from_db_query( sprintf( "SELECT sf_defunt, sf_autorisation, sf_reprise_abandon, sf_genealogie, sf_contrat, sf_courrier, sf_operation_trt, sf_travaux, sf_dossier FROM %semplacement LEFT JOIN %snature_emplacement ON emplacement.nature = nature_emplacement.nature_emplacement WHERE emplacement.emplacement = %d", DB_PREFIXE, DB_PREFIXE, $emplacement_id ) ); if ($qres_sf['code'] === 'OK' && !empty($qres_sf['result'])) { $row = $qres_sf['result'][0]; // Mapping des colonnes vers les noms de sous-formulaires $sf_mapping = array( 'sf_defunt' => 'defunt', 'sf_autorisation' => 'autorisation', 'sf_reprise_abandon' => 'reprise_abandon', 'sf_genealogie' => 'genealogie', 'sf_contrat' => 'contrat', 'sf_courrier' => 'courrier', 'sf_operation_trt' => 'operation_trt', 'sf_travaux' => 'travaux', 'sf_dossier' => 'dossier', ); // Construction du tableau de sous-formulaires foreach ($sf_mapping as $db_col => $sf_name) { // Si la colonne est à true, on ajoute le sous-formulaire if (isset($row[$db_col]) && $row[$db_col] === 't') { $sousformulaire[] = $sf_name; } } } } else { // Si pas d'ID (mode listing ou ajout), afficher tous les sous-formulaires par défaut $sousformulaire = array( "defunt", "autorisation", "reprise_abandon", "genealogie", "contrat", "courrier", "operation_trt", "travaux", "dossier", ); }