".__($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",
);
}