1280 lines
42 KiB
PHP
1280 lines
42 KiB
PHP
<?php
|
|
class Scores_Fields
|
|
{
|
|
/**
|
|
* Fields options to display
|
|
* [name] => array(
|
|
* label =>
|
|
* fields => array(
|
|
* type => array()
|
|
* ...
|
|
* )
|
|
* famille =>
|
|
* activated =>
|
|
* title =>
|
|
* )
|
|
* )
|
|
*
|
|
* name : the key to retrieve field parameters
|
|
* label : the string to display as title
|
|
* famille : the key to identify where familly the field belongs to
|
|
* activated : true or false
|
|
* title : Text to display as info or help
|
|
*
|
|
* fields : define all different fields for the same element
|
|
* => type : which type of element (select, text, tree, ...), it's the key for array
|
|
* => value :
|
|
* => label (optional) :
|
|
* => class :
|
|
* @var array
|
|
*/
|
|
protected $fields = array
|
|
(
|
|
'siege' => array (
|
|
'label' => "Type d'établissement",
|
|
'fields' => array(
|
|
'select' => array('value' => array('1' => 'Sièges', '0' => 'Secondaires')),
|
|
),
|
|
'famille' => 'entreprise',
|
|
'activated' => true,
|
|
'title' => 'Aide',
|
|
),
|
|
'groupe' => array(
|
|
'label' => "Appartient à un groupe",
|
|
'fields' => array(
|
|
'select' => array('value' => array('1' => 'Oui', '0' => 'Non')),
|
|
),
|
|
'famille' => 'entreprise',
|
|
'activated' => true,
|
|
'title' => 'Possibilité de restreindre la sélection aux entreprises appartenant à un groupe',
|
|
),
|
|
'tel' => array(
|
|
'label' => 'Téléphone renseigné',
|
|
'fields' => array(
|
|
'select' => array('value' => array('1' => 'Oui', '0' => 'Non'))
|
|
),
|
|
'famille' => 'entreprise',
|
|
'activated' => true,
|
|
'title' => 'Possibilité de restreindre la sélection aux établissements ayant un numéro de téléphone renseigné',
|
|
),
|
|
'fax' => array(
|
|
'label' => 'Télécopie renseignée',
|
|
'fields' => array(
|
|
'select' => array('value' => array('1' => 'Oui', '0' => 'Non'))
|
|
),
|
|
'famille' => 'entreprise',
|
|
'activated' => true,
|
|
'title' => 'Possibilité de restreindre la sélection aux établissements ayant un numéro de télécopie renseigné',
|
|
),
|
|
'web' => array(
|
|
'label' => 'Site Web renseigné',
|
|
'fields' => array(
|
|
'select' => array('value' => array('1' => 'Oui', '0' => 'Non'))
|
|
),
|
|
'famille' => 'entreprise',
|
|
'activated' => true,
|
|
'title' => 'Possibilité de restreindre la sélection aux entreprises ayant un site web renseigné',
|
|
),
|
|
'mail' => array(
|
|
'label' => 'Email de contact renseigné',
|
|
'fields' => array(
|
|
'select' => array('value' => array('1' => 'Oui', '0' => 'Non'))
|
|
),
|
|
'famille' => 'entreprise',
|
|
'activated' => true,
|
|
'title' => 'Possibilité de restreindre la sélection aux établissements ayant une adresse email de contact renseignée',
|
|
),
|
|
'presentRcs' => array(
|
|
'label' => 'Etablissement présent au RNCS',
|
|
'fields' => array(
|
|
'select' => array('value' => array('1' => 'Oui', '0' => 'Non'))
|
|
),
|
|
'famille' => 'entreprise',
|
|
'activated' => true,
|
|
'title' => 'Inclure ou exclure les établissements présents au Registre National du Commerce et des Sociétés',
|
|
),
|
|
'adrDom' => array(
|
|
'label' => 'Adresse de domiciliation',
|
|
'fields' => array(
|
|
'select' => array('value' => array('1' => 'Oui', '0' => 'Non'))
|
|
),
|
|
'famille' => 'entreprise',
|
|
'activated' => true,
|
|
'title' => 'Inclure ou exclure les établissements situés à une adresse de domiciliation suspectée ou avérée',
|
|
),
|
|
'dirNom' => array(
|
|
'label' => 'Nom du principal dirigeant présent',
|
|
'fields' => array(
|
|
'select' => array('value' => array('1' => 'Oui', '0' => 'Non'))
|
|
),
|
|
'famille' => 'entreprise',
|
|
'activated' => true,
|
|
'title' => 'Inclure ou exclure les entreprises ayant un principal dirigeant renseigné',
|
|
),
|
|
'nbMPubli' => array(
|
|
'label' => 'Marchés publiques remportés',
|
|
'fields' => array(
|
|
'select' => array('value' => array('1' => 'Oui', '0' => 'Non'))
|
|
),
|
|
'famille' => 'entreprise',
|
|
'activated' => true,
|
|
'title' => 'Inclure/Exclure les entreprises ayant remportés des marchés publics. Une entreprise remportant des marchés publics est à jour de ses obligations fiscales et sociales, affirme sa capacité structurelle à répondre à la commande publique (capacité financière, personnel, encadrement, ...), dispose d\'une assurance pour les risques professionnels, a communiqué ses éléments financiers au pouvoir adjudicateur',
|
|
),
|
|
'dateCrea_ent' => array(
|
|
'label' => "Date de création de l'entreprise",
|
|
'fields' => array(
|
|
'intervalDate' => array('value' => null)
|
|
),
|
|
'famille' => 'entreprise',
|
|
'activated' => true,
|
|
'title' => 'Limiter la sélection aux entreprises créées entre 2 dates, avant une date ou après une date',
|
|
),
|
|
'dateCrea_etab' => array(
|
|
'label' => "Date de création de l'établissement",
|
|
'fields' => array(
|
|
'intervalDate' => array('value' => null )
|
|
),
|
|
'famille' => 'entreprise',
|
|
'activated' => true,
|
|
'title' => 'Limiter la sélection aux établissements créés entre 2 dates, avant une date ou après une date',
|
|
),
|
|
'action' => array(
|
|
'label' => 'Présence d\'actionnaires',
|
|
'fields' => array(
|
|
'select' => array('value' => array('1' => 'Oui', '0' => 'Non'))
|
|
),
|
|
'famille' => 'entreprise',
|
|
'activated' => true,
|
|
'title' => 'Inclure ou exclure de la sélection les entreprises ayant au moins un actionnaire de renseigné',
|
|
),
|
|
'nbActio' => array(
|
|
'label' => "Nombre d'actionnaires connus",
|
|
'fields' => array(
|
|
'interval' => array('value' => null)
|
|
),
|
|
'unit' => 'actionnaire',
|
|
'famille' => 'entreprise',
|
|
'activated' => true,
|
|
'title' => 'Limiter la sélection aux entreprises ayant de 1 à N actionnaire(s) renseignée(s)',
|
|
),
|
|
'participation' => array(
|
|
'label' => "Présence de participations",
|
|
'fields' => array(
|
|
'select' => array('value' => array('1' => 'Oui', '0' => 'Non'))
|
|
),
|
|
'famille' => 'entreprise',
|
|
'activated' => true,
|
|
),
|
|
'nbPart' => array(
|
|
'label' => 'Nombre de participations connues',
|
|
'fields' => array(
|
|
'interval' => array('value' => array('0', '1000'))
|
|
),
|
|
'unit' => 'participation',
|
|
'famille' => 'entreprise',
|
|
'activated' => true,
|
|
'title' => 'Limiter la sélection aux entreprises ayant de 1 à N participation(s) renseignée(s)',
|
|
),
|
|
'ape_etab' => array(
|
|
'label' => "Activité de l'établissement (Code NAF)",
|
|
'fields' => array(
|
|
'tree' => array('value' => null, 'action' => 'naf', 'title' => "Arborescence de code NAF établissement"),
|
|
'text' => array('value' => null, 'label' => "Recherche de code NAF", 'title'=>"Sélection de code NAF établissement"),
|
|
'list' => array('value' => null, 'label' => "Liste de code NAF", 'title'=>"Liste de code NAF établissement"),
|
|
),
|
|
'famille' => 'economique',
|
|
'activated' => true,
|
|
),
|
|
'ape_entrep' => array(
|
|
'label' => "Activité de l'entreprise (Code NAF)",
|
|
'fields' => array(
|
|
'tree' => array('value' => null, 'action' => 'naf', 'title' => "Arborescence de code NAF entreprise"),
|
|
'text' => array('value' => null, 'label' => "Recherche de code NAF", 'title'=>"Sélection de code NAF entreprise"),
|
|
'list' => array('value' => null, 'label' => "Liste de code NAF", 'title'=>"Liste de code NAF entreprise"),
|
|
),
|
|
'famille' => 'economique',
|
|
'activated' => true,
|
|
),
|
|
'NaceEtab' => array(
|
|
'label' => 'Code NACE de l\'établissement',
|
|
'fields' => array(
|
|
'text' => array('value' => null),
|
|
'textarea' => array('value' => null)
|
|
),
|
|
'famille' => 'economique',
|
|
'activated' => true,
|
|
'title' => 'Limiter la sélection aux établissements ayant des NACE spécifiques (Nomenclature d\'Activités Européenne)',
|
|
),
|
|
'NaceEntrep' => array(
|
|
'label' => 'Code NACE de l\'entreprise',
|
|
'fields' => array(
|
|
'text' => array('value' => null),
|
|
'textarea' => array('value' => null)
|
|
),
|
|
'famille' => 'economique',
|
|
'activated' => true,
|
|
'title' => 'Limiter la sélection aux entreprises ayant des NACE spécifiques (Nomenclature d\'Activités Européenne)',
|
|
),
|
|
'age_etab' => array(
|
|
'label' => 'Age de l\'établissement',
|
|
'fields' => array(
|
|
'interval' => array('value' => null)
|
|
),
|
|
'famille' => 'economique',
|
|
'activated' => true,
|
|
'title' => 'Limiter la sélection aux établissements ayant un age spécifique',
|
|
'unit' => 'an',
|
|
),
|
|
'age_entrep' => array(
|
|
'label' => 'Age de l\'entreprise',
|
|
'fields' => array(
|
|
'interval' => array('value' => null)
|
|
),
|
|
'famille' => 'economique',
|
|
'activated' => true,
|
|
'title' => 'Limiter la sélection aux entreprises ayant un age spécifique',
|
|
'unit' => 'an',
|
|
),
|
|
'teff_entrep' => array(
|
|
'label' => "Tranche d'effectif de l'Entreprise",
|
|
'fields' => array(
|
|
'selectMultiple' => array(
|
|
'value' => array(
|
|
'99' => "Unités non employeuses",
|
|
'0' => "0 salarié",
|
|
'1' => "1 ou 2 salarié(s)",
|
|
'2' => "3 à 5 salariés",
|
|
'3' => "6 à 9 salariés",
|
|
'11' => "10 à 19 salariés",
|
|
'12' => "20 à 49 salariés",
|
|
'21' => "50 à 99 salariés",
|
|
'22' => "100 à 199 salariés",
|
|
'31' => "200 à 249 salariés",
|
|
'32' => "250 à 499 salariés",
|
|
'41' => "500 à 999 salariés",
|
|
'42' => "1 000 à 1 999 salariés",
|
|
'51' => "2 000 à 4 999 salariés",
|
|
'52' => "5 000 à 9 999 salariés",
|
|
'53' => "10 000 salariés et plus",
|
|
),
|
|
),
|
|
),
|
|
'famille' => 'economique',
|
|
'activated' => true,
|
|
'title' => "Limiter la sélection aux entreprises ayant certaines tranches de salariés. Attention, pour les unités non employeuses il n'y a pas de salarié au cours de l'année de référence et pas d'effectif au 31/12 ; cette tranche peut contenir quelques effectifs inconnus. A contrario, pour la tranche 0 salarié il n'y a pas d'effectifs au 31/12 mais l'unité a employé des salariés au cours de l'année de référence",
|
|
),
|
|
'teff_etab' => array(
|
|
'label' => 'Tranche d\'effectif de l\'établissement',
|
|
'fields' => array(
|
|
'selectMultiple' => array(
|
|
'value' => array(
|
|
'99' => "Unités non employeuses",
|
|
'0' => "0 salarié",
|
|
'1' => "1 ou 2 salariés",
|
|
'2' => "3 à 5 salariés",
|
|
'3' => "6 à 9 salariés",
|
|
'11' => "10 à 19 salariés",
|
|
'12' => "20 à 49 salariés",
|
|
'21' => "50 à 99 salariés",
|
|
'22' => "100 à 199 salariés",
|
|
'31' => "200 à 249 salariés",
|
|
'32' => "250 à 499 salariés",
|
|
'41' => "500 à 999 salariés",
|
|
'42' => "1 000 à 1 999 salariés",
|
|
'51' => "2 000 à 4 999 salariés",
|
|
'52' => "5 000 à 9 999 salariés",
|
|
'53' => "10 000 salariés et plus",
|
|
)
|
|
),
|
|
),
|
|
'famille' => 'economique',
|
|
'activated' => true,
|
|
'title' => "Limiter la sélection aux établissements ayant certaines tranches de salariés. Attention, pour les unités non employeuses il n'y a pas de salarié au cours de l'année de référence et pas d'effectif au 31/12 ; cette tranche peut contenir quelques effectifs inconnus. A contrario, pour la tranche 0 salarié il n'y a pas d'effectifs au 31/12 mais l'unité a employé des salariés au cours de l'année de référence",
|
|
),
|
|
'nbEtab' => array(
|
|
'label' => 'Nombre d\'établissements',
|
|
'fields' => array(
|
|
'interval' => array('value' => array('0', '10000000'))
|
|
),
|
|
'unit' => 'établissement',
|
|
'famille' => 'economique',
|
|
'activated' => true,
|
|
'title' => 'Limiter la sélection aux entreprises ayant de 1 à N établissements',
|
|
),
|
|
'eff_entrep' => array(
|
|
'label' => "Effectif réel de l'entreprise",
|
|
'fields' => array(
|
|
'interval' => array('value' => array('0', '10000000'))
|
|
),
|
|
'unit' => 'employé',
|
|
'famille' => 'economique',
|
|
'activated' => true,
|
|
'title' => 'Limiter la sélection aux entreprises ayant de X à Y salariés',
|
|
),
|
|
'eff_etab' => array(
|
|
'label' => "Effectif réel de l'établissement",
|
|
'fields' => array(
|
|
'interval' => array('value' => array('0', '10000000'))
|
|
),
|
|
'unit' => 'employé',
|
|
'famille' => 'economique',
|
|
'activated' => true,
|
|
'title' => 'Limiter la sélection aux établissements ayant de X à Y salariés',
|
|
),
|
|
'capital' => array(
|
|
'label' => 'Capital de l\'entreprise',
|
|
'fields' => array(
|
|
'interval' => array( 'value' => array('0', '750000'))
|
|
),
|
|
'unit' => 'euro',
|
|
'famille' => 'economique',
|
|
'activated' => true,
|
|
'title' => "Limiter la sélection aux entreprises disposant d'un capital donné",
|
|
),
|
|
//geographique
|
|
'geo' => array(
|
|
'label' => 'Localisation géographique',
|
|
'fields' => array(
|
|
'tree' => array('value' => null, 'action' => 'geographique', 'title' => "Arborescence géographique"),
|
|
'text' => array('value' => null, 'label' => "Recherche", 'title'=>"Recherche géographique"),
|
|
),
|
|
'famille' => 'geographique',
|
|
'activated' => true,
|
|
),
|
|
'geo_domtom' => array(
|
|
'label' => 'Exlcure les DOM-TOM',
|
|
'fields' => array(
|
|
'checkbox' => array('value' => '1'),
|
|
),
|
|
'famille' => 'geographique',
|
|
'activated' => true,
|
|
'title' => 'Exclure les établissements situés dans les DOM-TOM',
|
|
),
|
|
'geo_etranger' => array(
|
|
'label' => 'Exclure les sociétés étrangères',
|
|
'fields' => array(
|
|
'checkbox' => array('value' => '1'),
|
|
),
|
|
'famille' => 'geographique',
|
|
'activated' => true,
|
|
'title' => 'Exclure les entreprises dont l\'établissement siège est situé à l\'étranger',
|
|
),
|
|
'geo_corse' => array(
|
|
'label' => 'Exclure la corse',
|
|
'fields' => array(
|
|
'checkbox' => array('value' => '1'),
|
|
),
|
|
'famille' => 'geographique',
|
|
'activated' => true,
|
|
'title' => 'Exclure les établissements situés en région Corse',
|
|
),
|
|
'codesinsee' => array(
|
|
'label' => 'Liste de codes Insee',
|
|
'fields' => array(
|
|
'list' => array('title' => "Liste de codes Insee"),
|
|
),
|
|
'famille' => 'geographique',
|
|
'activated' => true,
|
|
'title' => 'Liste de codes Insee séparés par des virgules ou des points-virgules',
|
|
),
|
|
'codespostaux' => array(
|
|
'label' => 'Liste de codes postaux',
|
|
'fields' => array(
|
|
'list' => array('title' => "Liste de codes postaux"),
|
|
),
|
|
'famille' => 'geographique',
|
|
'activated' => true,
|
|
'title' => 'Liste de codes postaux séparés par des virgules ou des points-virgules',
|
|
),
|
|
'codesdepts' => array(
|
|
'label' => 'Liste de départements',
|
|
'fields' => array(
|
|
'list' => array('title' => "Liste de départements"),
|
|
),
|
|
'famille' => 'geographique',
|
|
'activated' => true,
|
|
'title' => 'Liste de code départements séparés par des virgules ou des points-virgules',
|
|
),
|
|
'adr_reg' => array(
|
|
'label' => 'Liste code région',
|
|
'fields' => array(
|
|
'text' => array('value' => null),
|
|
'textarea' => array('value' => null)
|
|
),
|
|
'famille' => 'geographique',
|
|
'activated' => true,
|
|
'type' => 'textarea',
|
|
'class' => null,
|
|
'action' => 'geographique',
|
|
'title' => 'Localisation'
|
|
),
|
|
'zus' => array(
|
|
'label' => 'Zones Urbaines Sensibles',
|
|
'fields' => array(
|
|
'select' => array('value' => array('1' => 'Oui', '0' => 'Non')),
|
|
),
|
|
'famille' => 'geographique',
|
|
'activated' => true,
|
|
'type' => 'select',
|
|
'title' => "Inclure/Exclure les établissements situés en Zone Urbaine Sensible (ou ZUS). Les ZUS sont des territoire infra-urbain défini par les pouvoirs publics français bénéficiant d'aides spécifiques sous forme d'exonérations fiscales et sociales.",
|
|
/*
|
|
pour être la cible prioritaire de la politique de la ville.
|
|
La loi n° 96-987 du 14 novembre 1996 relative à la mise en œuvre du Pacte de relance pour la ville a défini dans son article 2
|
|
Les zones urbaines sensibles constituent un sous-ensemble de l'ensemble plus large des 2 500 quartiers prioritaires objet des contrats urbains de cohésion sociale (CUCS)3 qui ont succédé aux contrats de ville.',
|
|
*/
|
|
),
|
|
'zru' => array(
|
|
'label' => 'Zones de Redynamisation Urbaine',
|
|
'fields' => array(
|
|
'select' => array('value' => array('1' => 'Oui', '0' => 'Non')),
|
|
),
|
|
'famille' => 'geographique',
|
|
'activated' => true,
|
|
'type' => 'select',
|
|
'title' => "Inclure/Exclure les établissements situés en Zone de Redynamisation Urbaine (ou ZRU). Les ZRU sont un sous-ensemble des Zones Urbaines Sensibles et bénéficient d'aides spécifiques sous forme d'exonérations fiscales et sociales.",
|
|
),
|
|
'zfu' => array(
|
|
'label' => 'Zones Franches Urbaines',
|
|
'fields' => array(
|
|
'select' => array('value' => array('1' => 'Oui', '0' => 'Non')),
|
|
),
|
|
'famille' => 'geographique',
|
|
'activated' => true,
|
|
'type' => 'select',
|
|
'title' => "Inclure/Exclure les établissements situés en Zone Franche Urbaine (ou ZFU). Les ZFU sont un sous-ensemble des Zones Urbaines Sensibles et bénéficient d'aides spécifiques sous forme d'exonérations fiscales et sociales.",
|
|
),
|
|
'cucs' => array(
|
|
'label' => 'Contrats Urbains de Cohésion Sociale',
|
|
'fields' => array(
|
|
'select' => array('value' => array('1' => 'Oui', '0' => 'Non')),
|
|
),
|
|
'famille' => 'geographique',
|
|
'activated' => true,
|
|
'type' => 'select',
|
|
'title' => 'Inclure/Exclure les établissements situés en Contrats Urbains de Cohésion Sociale (ou CUCS).',
|
|
),
|
|
'zrr' => array(
|
|
'label' => 'Zones de Revitalisation Rurale',
|
|
'fields' => array(
|
|
'select' => array('value' => array('1' => 'Oui', '0' => 'Non')),
|
|
),
|
|
'famille' => 'geographique',
|
|
'activated' => true,
|
|
'type' => 'select',
|
|
'title' => 'Inclure/Exclure les établissements situés en Zone de Revitalisation Rurale (ou ZRR)',
|
|
),
|
|
'zafr' => array(
|
|
'label' => 'Zones d\'Aides à Finalités Régionales',
|
|
'fields' => array(
|
|
'select' => array('value' => array('1' => 'Oui', '0' => 'Non')),
|
|
),
|
|
'famille' => 'geographique',
|
|
'activated' => true,
|
|
'type' => 'select',
|
|
'title' => "Inclure/Exclure les établissements situés en Zone d'Aide à Finalité Régionale (ou ZAFR)",
|
|
),
|
|
|
|
/*
|
|
* Forme Juridique
|
|
*/
|
|
'cj' => array(
|
|
'label' => 'Forme Juridique',
|
|
'fields' => array(
|
|
'tree' => array('value' => null, 'action' => 'juridique', 'title' => "Arborescence des Formes Juridiques"),
|
|
'text' => array('value' => null, 'label' => "Recherche", 'title'=>"Recherche des Formes Juridiques"),
|
|
),
|
|
'famille' => 'juridique',
|
|
'activated' => true,
|
|
),
|
|
'cjlist' => array(
|
|
'label' => 'Liste de formes juridique',
|
|
'fields' => array(
|
|
'list' => array(),
|
|
),
|
|
'famille' => 'juridique',
|
|
'activated' => true,
|
|
'sessionKey' => 'cj',
|
|
'title' => 'Liste de codes formes juridiques séparés des virgules ou des points-virgules',
|
|
),
|
|
'actifEco' => array(
|
|
'label' => 'Établissement économiquement actif',
|
|
'fields' => array(
|
|
'select' => array('value' => array('1' => 'Oui', '0' => 'Non')),
|
|
),
|
|
'famille' => 'juridique',
|
|
'activated' => true,
|
|
'title' => 'Inclure/Exclure les établissements économiquement inactifs : Etablissements présumés fermés (vendus sans formalités), Pli Non Distribué (NPAI)',
|
|
),
|
|
'procolHisto' => array(
|
|
'label' => 'Présence d\'une procédure dans l\'historique',
|
|
'fields' => array(
|
|
'select' => array('value' => array('1' => 'Oui', '0' => 'Non')),
|
|
),
|
|
'famille' => 'juridique',
|
|
'activated' => true,
|
|
'title' => 'Inclure/Exclure les entreprises ayant déjà été en procédure collective',
|
|
),
|
|
'tvaIntraValide' => array(
|
|
'label' => 'Numéro de TVA intracommunautaire valide',
|
|
'fields' => array(
|
|
'select' => array('value' => array('1' => 'Oui', '0' => 'Non')),
|
|
),
|
|
'famille' => 'juridique',
|
|
'activated' => true,
|
|
'title' => 'Inclure/Exclure les entreprises dont le numéro de TVA intracommunautaire est valide (si non, exclusion d\'office des micro-entreprises fiscales type Auto-entrepreneur)',
|
|
),
|
|
'dateImmat' => array(
|
|
'label' => 'Date d\'immatriculation de l\'entreprise',
|
|
'fields' => array(
|
|
'intervalDate' => array('value' => null)
|
|
),
|
|
'famille' => 'juridique',
|
|
'activated' => true,
|
|
'title' => 'Limiter aux entreprises dont la date de création est comprise entre A et B',
|
|
),
|
|
//financier
|
|
'bilType' => array(
|
|
'label' => 'Derniers éléments financiers',
|
|
'fields' => array(
|
|
'selectMultiple' => array('value' => array(
|
|
'1' => 'Inconnus', // I
|
|
'2' => 'Réels', // R
|
|
'3' => 'Estimés') //E
|
|
),
|
|
),
|
|
'famille' => 'financier',
|
|
'activated' => true,
|
|
'title' => 'Limiter aux entreprises dont les derniers éléments financiers sont Réels, Estimés ou Inconnus',
|
|
),
|
|
'avisCs' => array(
|
|
'label' => 'Informations de paiements',
|
|
'fields' => array(
|
|
'selectMultiple' => array('value' => array(
|
|
'0' => 'Risque indéterminé',
|
|
'1' => 'Aucun risque resencé',
|
|
'2' => 'Présence d\'impayé(s)',
|
|
'3' => 'Présence de privilèges',
|
|
'4' => 'Risque moyen',
|
|
'5' => 'Risque important',
|
|
'6' => 'Risque très important',
|
|
'7' => 'Risque dans le groupe')
|
|
),
|
|
),
|
|
'famille' => 'financier',
|
|
'activated' => true,
|
|
),
|
|
'bilDuree' => array(
|
|
'label' => 'Durée du dernier bilan en mois',
|
|
'fields' => array(
|
|
'selectMultiple' => array(
|
|
'value' => array(
|
|
'1' => '1 mois',
|
|
'2' => '2 mois',
|
|
'3' => '3 mois',
|
|
'4' => '4 mois',
|
|
'5' => '5 mois',
|
|
'6' => '6 mois',
|
|
'7' => '7 mois',
|
|
'8' => '8 mois',
|
|
'9' => '9 mois',
|
|
'10' => '10 mois',
|
|
'11' => '11 mois',
|
|
'12' => '12 mois',
|
|
'13' => '13 mois',
|
|
'14' => '14 mois',
|
|
'15' => '15 mois',
|
|
'16' => '16 mois',
|
|
'17' => '17 mois',
|
|
'18' => '18 mois',
|
|
'19' => '19 mois',
|
|
'20' => '20 mois',
|
|
'21' => '21 mois',
|
|
'22' => '22 mois',
|
|
'23' => '23 mois',
|
|
)
|
|
)
|
|
),
|
|
'famille' => 'financier',
|
|
'activated' => true,
|
|
'title' => 'Limiter aux entreprises dont la durée du dernier bilan est précisée',
|
|
),
|
|
'bilTca' => array(
|
|
'label' => 'Tranche de CA issue du bilan',
|
|
'fields' => array(
|
|
'selectMultiple' => array('value' => array(
|
|
'0' => 'Non déterminée',
|
|
'1' => 'de 500K€ à1M€',
|
|
'2' => 'de 1 à 2 ME',
|
|
'3' => 'de 2 à 5 ME',
|
|
'4' => 'de 5 à 10 ME',
|
|
'5' => 'de 10 à 20 ME',
|
|
'6' => 'de 20 à 50 ME',
|
|
'7' => '50 à 100 ME',
|
|
'8' => 'de 100 à 200 ME',
|
|
'9' => '+ de 200 ME'
|
|
)),
|
|
),
|
|
'famille' => 'financier',
|
|
'activated' => true,
|
|
'title' => "Limitation aux entreprises dont la dernière tranche de Chiffre d'Affaires est précisée (Réel ou Estimé)",
|
|
),
|
|
'bilAnnee' => array(
|
|
'label' => 'Dernière année de bilan',
|
|
'fields' => array(
|
|
'interval' => array('value' => array('0', '1000'))
|
|
),
|
|
'famille' => 'financier',
|
|
'activated' => true,
|
|
'title' => "Limitation aux entreprises dont la dernière année de bilan est précisée",
|
|
),
|
|
'bilCloture' => array(
|
|
'label' => 'Dernière date de clôture du bilan',
|
|
'fields' => array(
|
|
'interval' => array('value' => array('0', '1000'))
|
|
),
|
|
'famille' => 'financier',
|
|
'activated' => true,
|
|
'title' => "Limitation aux entreprises dont le dernier exercice comptable est situé entre 2 dates précises",
|
|
),
|
|
'bilEE' => array(
|
|
'label' => 'Total bilan (EE)',
|
|
'fields' => array(
|
|
'interval' => array('value' => array('0', '10000000'))
|
|
),
|
|
'unit' => 'euro',
|
|
'famille' => 'financier',
|
|
'activated' => true,
|
|
'title' => "Limitation aux entreprises dont le poste EE (Montant du poste Total Bilan en Euros) est connu (Chiffres Réels uniquement)",
|
|
),
|
|
'bilFL' => array(
|
|
'label' => 'CA total (FL)',
|
|
'fields' => array(
|
|
'interval' => array('value' => array('0', '10000000'))
|
|
),
|
|
'unit' => 'euro',
|
|
'famille' => 'financier',
|
|
'activated' => true,
|
|
'title' => "Limitation aux entreprises dont le poste FL (Montant du Chiffre d'Affaires en Euros) est connu (Chiffres Réels et Estimés)",
|
|
),
|
|
'bilFK' => array(
|
|
'label' => 'Chiffre d\'affaires Export (FK)',
|
|
'fields' => array(
|
|
'interval' => array('value' => array('0', '10000000'))
|
|
),
|
|
'unit' => 'euro',
|
|
'famille' => 'financier',
|
|
'activated' => true,
|
|
'title' => "Limitation aux entreprises dont le poste FK (Montant du Chiffre d'Affaires Export en Euros) est connu (Chiffres Réels uniquement)",
|
|
),
|
|
'bilFR' => array(
|
|
'label' => 'Produits d\'Exploitation (FR)',
|
|
'fields' => array(
|
|
'interval' => array('value' => array('0', '10000000'))
|
|
),
|
|
'unit' => 'euro',
|
|
'famille' => 'financier',
|
|
'activated' => true,
|
|
'type' => 'interval',
|
|
'class' => null,
|
|
'title' => "Limitation aux entreprises dont le poste FR (Montant des Produits d'Exploitation en Euros) est connu (Chiffres Réels uniquement)",
|
|
),
|
|
'bilGF' => array(
|
|
'label' => 'Charges d\'Exploitation (GF)',
|
|
'fields' => array(
|
|
'interval' => array('value' => array('0', '10000000'))
|
|
),
|
|
'unit' => 'euro',
|
|
'famille' => 'financier',
|
|
'activated' => true,
|
|
'title' => "Limitation aux entreprises dont le poste GF (Montant des Charges d'Exploitation en Euros) est connu (Chiffres Réels uniquement)",
|
|
),
|
|
'bilGP' => array(
|
|
'label' => 'Charges Financières (GP)',
|
|
'fields' => array(
|
|
'interval' => array('value' => array('0', '10000000'))
|
|
),
|
|
'unit' => 'euro',
|
|
'famille' => 'financier',
|
|
'activated' => true,
|
|
'title' => "Limitation aux entreprises dont le poste GP (Montant des Charges Financières en Euros) est connu (Chiffres Réels uniquement)",
|
|
),
|
|
'bilGW' => array(
|
|
'label' => 'R.C.A.I - Résultat courant av. impôt (GW)',
|
|
'fields' => array(
|
|
'interval' => array('value' => array('0', '10000000'))
|
|
),
|
|
'unit' => 'euro',
|
|
'famille' => 'financier',
|
|
'activated' => true,
|
|
'title' => "Limitation aux entreprises dont le poste GW (Montant du Résultat Courant Avant Impôt en Euros) est connu (Chiffres Réels uniquement)",
|
|
),
|
|
'bilHD' => array(
|
|
'label' => 'Produits Exceptionnels (HD)',
|
|
'fields' => array(
|
|
'interval' => array('value' => array('0', '10000000'))
|
|
),
|
|
'unit' => 'euro',
|
|
'famille' => 'financier',
|
|
'activated' => true,
|
|
'title' => "Limitation aux entreprises dont le poste HD (Montant des Produits Exceptionnels en Euros) est connu (Chiffres Réels uniquement)",
|
|
),
|
|
'bilHH' => array(
|
|
'label' => 'Charges Exceptionnels (HH)',
|
|
'fields' => array(
|
|
'interval' => array('value' => array('0', '10000000'))
|
|
),
|
|
'unit' => 'euro',
|
|
'famille' => 'financier',
|
|
'activated' => true,
|
|
'title' => "Limitation aux entreprises dont le poste HH (Montant des Charges Exceptionnels en Euros) est connu (Chiffres Réels uniquement)",
|
|
),
|
|
'bilHL' => array(
|
|
'label' => 'Total des Produits (HL)',
|
|
'fields' => array(
|
|
'interval' => array('value' => array('0', '10000000'))
|
|
),
|
|
'unit' => 'euro',
|
|
'famille' => 'financier',
|
|
'activated' => true,
|
|
'title' => "Limitation aux entreprises dont le poste HL (Montant du Total des Produits en Euros) est connu (Chiffres Réels uniquement)",
|
|
),
|
|
'bilHM' => array(
|
|
'label' => 'Total des Charges (HM)',
|
|
'fields' => array(
|
|
'interval' => array('value' => array('0', '10000000'))
|
|
),
|
|
'unit' => 'euro',
|
|
'famille' => 'financier',
|
|
'activated' => true,
|
|
'title' => "Limitation aux entreprises dont le poste HM (Montant du Total des Charges en Euros) est connu (Chiffres Réels uniquement)",
|
|
),
|
|
'bilHN' => array(
|
|
'label' => 'Résultat (HN)',
|
|
'fields' => array(
|
|
'interval' => array('value' => array('0', '10000000'))
|
|
),
|
|
'unit' => 'euro',
|
|
'famille' => 'financier',
|
|
'activated' => true,
|
|
'title' => "Limitation aux entreprises dont le poste HN (Montant du Résultat Net en Euros) est connu (Chiffres Réels uniquement)",
|
|
),
|
|
'bilYP' => array(
|
|
'label' => 'Effectif salarié (YP)',
|
|
'fields' => array(
|
|
'interval' => array('value' => array('0', '10000000'))
|
|
),
|
|
'unit' => 'salarié',
|
|
'famille' => 'financier',
|
|
'activated' => true,
|
|
'title' => "Limitation aux entreprises dont le poste YP (Effectif salarié de l'entreprise) est connu (Chiffres Réels uniquement)",
|
|
)
|
|
);
|
|
|
|
/**
|
|
* Save all information in this array
|
|
* The key NB is mandatory as this
|
|
* ['NB']['total'] => store the number of elements matches
|
|
* ['NB']['insee'] => store the number of elements matches which type is INSEE
|
|
* Other keys
|
|
* [key][in] => inclusion
|
|
* [key][ex] => exclusion
|
|
* @var array
|
|
*/
|
|
protected $ciblage;
|
|
protected $total = null;
|
|
protected $insee = null;
|
|
|
|
/**
|
|
*
|
|
* @param boolean $batch
|
|
*/
|
|
public function __construct($batch = false)
|
|
{
|
|
$session = new Zend_Session_Namespace('ciblage');
|
|
$this->ciblage = empty($session->ciblage) ? array() : $session->ciblage;
|
|
if (isset($this->ciblage['NB']['total'])) { $this->total = $this->ciblage['NB']['total']; }
|
|
if (isset($this->ciblage['NB']['insee'])) { $this->insee = $this->ciblage['NB']['insee']; }
|
|
if (isset($this->ciblage['NB'])) { unset($this->ciblage['NB']); }
|
|
}
|
|
|
|
/**
|
|
* Save data to session
|
|
*/
|
|
protected function setSession()
|
|
{
|
|
$session = new Zend_Session_Namespace('ciblage');
|
|
$this->ciblage['NB']['total'] = $this->total;
|
|
$this->ciblage['NB']['insee'] = $this->insee;
|
|
$session->ciblage = $this->ciblage;
|
|
}
|
|
|
|
/**
|
|
* After define criteres and no error return, set the session externaly
|
|
* @return void
|
|
*/
|
|
public function setCritereSession()
|
|
{
|
|
$this->setSession();
|
|
}
|
|
|
|
/**
|
|
* Enregistre un critère et sa valeur en effectuant les controls nécesaire
|
|
* @param string $key
|
|
* Critere key
|
|
* @param string $value
|
|
* Single value or list of values in string separate by a comma
|
|
* @param boolean $ex
|
|
* true for an exclude value
|
|
* @return boolean
|
|
* true if all is ok, false if the key doesn't exist or value is not correct
|
|
*/
|
|
public function setCritere($key, $value, $ex = false)
|
|
{
|
|
//Check if the key exist
|
|
if ( !array_key_exists($key, $this->fields) ) {
|
|
Zend_Registry::get('firebug')->info('CLE INCORRECT');
|
|
return false;
|
|
}
|
|
|
|
$sessionKey = $key;
|
|
if (array_key_exists('sessionKey', $this->fields[$key])) {
|
|
$sessionKey = $this->fields[$key]['sessionKey'];
|
|
}
|
|
|
|
//Remove critere for these values on all type of fields
|
|
if ( in_array($value, array('', '-', null)) ) {
|
|
unset($this->ciblage[$sessionKey]);
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* single
|
|
* interval
|
|
* multiple
|
|
*
|
|
*
|
|
* date
|
|
* min,max
|
|
*
|
|
*/
|
|
|
|
//Do some operation on value
|
|
$types = array_keys($this->fields[$key]['fields']);
|
|
|
|
if ( !is_array($value) && !in_array($types[0], array('select', 'checkbox', 'interval', 'intervalDate')) ) {
|
|
//Remove all space in string value
|
|
$value = str_replace(' ', '', $value);
|
|
//Try to detect separator and transform as array
|
|
//@todo : Schema a detecter
|
|
if ( preg_match_all('/([0-9A-Z]+)(?:,|;)?/', $value, $matches) ){
|
|
Zend_Registry::get('firebug')->info($matches);
|
|
$value = $matches[1];
|
|
}
|
|
//Add value to the existing
|
|
if (array_key_exists($sessionKey, $this->ciblage)) {
|
|
if ($ex) {
|
|
$value = array_merge($this->ciblage[$sessionKey]['ex'], $value);
|
|
} else {
|
|
$value = array_merge($this->ciblage[$sessionKey]['in'], $value);
|
|
}
|
|
}
|
|
}
|
|
|
|
if ( in_array($types[0], array('interval', 'intervalDate')) ) {
|
|
$value = explode(',', $value);
|
|
}
|
|
|
|
//Remove duplicate values
|
|
if (is_array($value) ) {
|
|
$value = array_unique($value);
|
|
}
|
|
|
|
//Before to save the value
|
|
switch ( $types[0] ) {
|
|
case 'intervalDate':
|
|
unset($this->ciblage[$sessionKey]['in']);
|
|
break;
|
|
case 'interval':
|
|
//Read min max
|
|
$minmaxM = new Application_Model_CiblageMinMax();
|
|
$minmax = $minmaxM->find($sessionKey)->current();
|
|
if ($minmax!==false) {
|
|
$valMin = $minmax->min;
|
|
$valMax = $minmax->max;
|
|
|
|
if ($value[0]<$valMin) {
|
|
$value[0] = $valMin;
|
|
}
|
|
if ($value[0]>$valMax) {
|
|
return false;
|
|
}
|
|
if ($value[1]>$valMax) {
|
|
$value[1]=$valMax;
|
|
}
|
|
if ($value[1]<$valMin) {
|
|
return false;
|
|
}
|
|
|
|
}
|
|
break;
|
|
case 'checkbox':
|
|
if ( $value==0 ) {
|
|
unset($this->ciblage[$sessionKey]);
|
|
}
|
|
break;
|
|
case 'tree':
|
|
//@todo : Check if values exist
|
|
break;
|
|
case 'list':
|
|
|
|
break;
|
|
}
|
|
|
|
//Save the value
|
|
if ($ex) {
|
|
Zend_Registry::get('firebug')->info('Exclude : ');
|
|
Zend_Registry::get('firebug')->info($value);
|
|
$this->ciblage[$sessionKey]['ex'] = $value;
|
|
} else {
|
|
Zend_Registry::get('firebug')->info('Include: ');
|
|
Zend_Registry::get('firebug')->info($value);
|
|
$this->ciblage[$sessionKey]['in'] = $value;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Définir les critères en une fois
|
|
* @param array $criteres Criteres as array with key => val
|
|
* @param boolean $inSession pour désactiver l'enregistrement en session
|
|
*/
|
|
public function setCriteres($criteres, $inSession = true)
|
|
{
|
|
$this->ciblage = $criteres;
|
|
if ( $inSession ) {
|
|
$this->setSession();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Désactivation d'un critère
|
|
* @param string $key
|
|
*/
|
|
public function unsetCritere($key)
|
|
{
|
|
if( key_exists($key, $this->ciblage) ) {
|
|
unset($this->ciblage[$key]);
|
|
$this->setSession();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Permet de supprimer une valeur dans une clef de session
|
|
* @param string $key
|
|
* @param int $pos
|
|
* @param boolean $ex
|
|
*/
|
|
public function unsetCritereValue($key, $pos, $ex = false)
|
|
{
|
|
if(key_exists($key, $this->ciblage)) {
|
|
if ($ex) {
|
|
$critereValues = $this->ciblage[$key]['ex'];
|
|
unset($critereValues[$pos]);
|
|
$this->ciblage[$key]['ex'] = array_values($critereValues);
|
|
} else {
|
|
$critereValues = $this->ciblage[$key]['in'];
|
|
unset($critereValues[$pos]);
|
|
$this->ciblage[$key]['in'] = array_values($critereValues);
|
|
}
|
|
$this->setSession();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Récupération de la valeur d'un critère
|
|
* @param string $key
|
|
*/
|
|
public function getCritere($key)
|
|
{
|
|
if(array_key_exists($key, $this->ciblage)) {
|
|
return $this->ciblage[$key];
|
|
}
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Récupération des critères et de leurs valeurs
|
|
*/
|
|
public function getCriteres()
|
|
{
|
|
return $this->ciblage;
|
|
}
|
|
|
|
/**
|
|
* Définit un élément de comptage
|
|
* @param string $element
|
|
* @param integer $nb
|
|
*/
|
|
public function setNb($element, $nb)
|
|
{
|
|
$this->{$element} = $nb;
|
|
}
|
|
|
|
/**
|
|
* Récupére la valeur d'un élément de comptage
|
|
* @param string $element
|
|
*/
|
|
public function getNb($element)
|
|
{
|
|
return $this->{$element};
|
|
}
|
|
|
|
/**
|
|
* Suppression des critères de toutes une famille
|
|
* @param string $famille
|
|
*/
|
|
public function resetFamille($famille)
|
|
{
|
|
$reference = $this->getByFamille($famille);
|
|
foreach($this->ciblage as $name => $valeur) {
|
|
if($name != 'null') {
|
|
if(array_key_exists($name, $reference)) {
|
|
unset($this->ciblage[$name]);
|
|
}
|
|
}
|
|
}
|
|
$this->setSession();
|
|
}
|
|
|
|
/**
|
|
* Suppression de toutes les valeurs en session
|
|
*/
|
|
public function clearCiblage()
|
|
{
|
|
Zend_Session::namespaceUnset('ciblage');
|
|
}
|
|
|
|
public function getValues($val = null)
|
|
{
|
|
if ( $val === null ) {
|
|
$val = $this->getCriteres();
|
|
}
|
|
return $val;
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @param unknown_type $name
|
|
*/
|
|
protected function getMinMax($name)
|
|
{
|
|
$MinMaxM = new Application_Model_CiblageMinMax();
|
|
$minmax = $MinMaxM->fetchAll($MinMaxM->select()->where('cle = ?', $name))->toArray();
|
|
return $minmax;
|
|
}
|
|
|
|
/**
|
|
*
|
|
*/
|
|
public function getFields() {
|
|
return $this->fields;
|
|
}
|
|
|
|
public function get($name)
|
|
{
|
|
if ($this->fields[$name]['activated'] == true)
|
|
return $this->fields[$name];
|
|
return null;
|
|
}
|
|
|
|
public function getByFamille($famille)
|
|
{
|
|
$section = array();
|
|
|
|
foreach($this->fields as $name => $item) {
|
|
if($item['famille'] == $famille) {
|
|
$section[$name] = $item;
|
|
}
|
|
}
|
|
return ($section);
|
|
}
|
|
|
|
public function getLabel($name)
|
|
{
|
|
return $this->fields[$name]['label'];
|
|
}
|
|
|
|
public function getValueLabelNaf($values)
|
|
{
|
|
$values = array_map(function($value){ return '"'.$value.'"'; }, $values);
|
|
|
|
$out = array();
|
|
$nafM = new Application_Model_CiblageNaf();
|
|
$sql = $nafM->select()->from($nafM, array('lib', 'code'))->where('code IN ('.join(',',$values).')');
|
|
$result = $nafM->fetchAll($sql)->toArray();
|
|
foreach ( $result as $elem ) {
|
|
$out[] = $elem['lib'].' ('.$elem['code'].')';
|
|
}
|
|
return $out;
|
|
}
|
|
|
|
public function getValueLabelGeographique($values)
|
|
{
|
|
sort($values);
|
|
|
|
$out = array();
|
|
|
|
foreach ( $values as $item ) {
|
|
switch( substr($item,0,1) ) {
|
|
case 'C':
|
|
$communeM = new Application_Model_CiblageCodePostaux();
|
|
$sql = $communeM->select()->from($communeM, array('Commune', 'Codepos'))
|
|
->where('INSEE = ?', substr($item, 1));
|
|
$result = $communeM->fetchAll($sql)->toArray();
|
|
Zend_Registry::get('firebug')->info($result);
|
|
$out[] = $result[0]['Commune'].' ('.$result[0]['Codepos'].')';
|
|
break;
|
|
case 'D':
|
|
$departementsM = new Application_Model_CiblageDepartements();
|
|
$sql = $departementsM->select()->from($departementsM, array('libdep', 'numdep'))
|
|
->where('numdep = ?', substr($item, 1));
|
|
$result = $departementsM->fetchAll($sql)->toArray();
|
|
$out[] = $result[0]['libdep'].' ('.$result[0]['numdep'].')';
|
|
break;
|
|
case 'R':
|
|
$regionsM = new Application_Model_CiblageRegions();
|
|
$sql = $regionsM->select()->from($regionsM, array('NCCENR'))->where('REGION = ?', substr($item,1));
|
|
$result = $regionsM->fetchAll($sql)->toArray();
|
|
$out[] = $result[0]['NCCENR'];
|
|
break;
|
|
}
|
|
}
|
|
return $out;
|
|
}
|
|
|
|
public function getValueLabelCodespostaux($values)
|
|
{
|
|
foreach ( $values as $item ) {
|
|
$communeM = new Application_Model_CiblageCodePostaux();
|
|
$sql = $communeM->select()->from($communeM, array('Commune'))->where('Codepos = ?', $item);
|
|
$result = $communeM->fetchAll($sql)->toArray();
|
|
$strCommunes = '';
|
|
foreach ( $result as $c ) {
|
|
if (!empty($strCommunes)) $strCommunes.= ', ';
|
|
$strCommunes.= $c['Commune'];
|
|
}
|
|
$out[] = $item.' ('.$strCommunes.')';
|
|
}
|
|
return $out;
|
|
}
|
|
|
|
public function getValueLabelCodesdepts($values)
|
|
{
|
|
foreach ( $values as $item ) {
|
|
$departementsM = new Application_Model_CiblageDepartements();
|
|
$sql = $departementsM->select()->from($departementsM, array('libdep'))->where('numdep = ?', $item);
|
|
$result = $departementsM->fetchAll($sql)->toArray();
|
|
$out[] = $item.' ('.$result[0]['libdep'].')';
|
|
}
|
|
return $out;
|
|
}
|
|
|
|
public function getValueLabelCodesinsee($values)
|
|
{
|
|
foreach ( $values as $item ) {
|
|
$communeM = new Application_Model_CiblageCodePostaux();
|
|
$sql = $communeM->select()->from($communeM, array('Commune'))->where('INSEE = ?', $item);
|
|
$result = $communeM->fetchAll($sql)->toArray();
|
|
$out[] = $item.' ('.$result[0]['Commune'].')';
|
|
}
|
|
return $out;
|
|
}
|
|
|
|
public function getValueLabelJuridique($values)
|
|
{
|
|
$values = array_map(function($value){ return '"'.$value.'"'; }, $values);
|
|
|
|
$out = array();
|
|
$fjM = new Application_Model_CiblageFormeJuridique();
|
|
$sql = $fjM->select()->from($fjM, array('fjLibelle', 'fjCode'))->where('fjCode IN ('.join(',',$values).')');
|
|
$result = $fjM->fetchAll($sql)->toArray();
|
|
foreach ( $result as $elem ) {
|
|
$out[] = $elem['fjLibelle'].' ('.$elem['fjCode'].')';
|
|
}
|
|
return $out;
|
|
}
|
|
|
|
public function getValueLabel($name, $values)
|
|
{
|
|
if (count($values)>0 && array_key_exists($name, $this->fields)) {
|
|
$fieldsType = array_keys($this->fields[$name]['fields']);
|
|
$firstType = $fieldsType[0];
|
|
$fieldsValues = $this->fields[$name]['fields'][$firstType]['value'];
|
|
switch($firstType) {
|
|
case 'select':
|
|
case 'selectMultiple':
|
|
if (is_array($values)) {
|
|
$out = array();
|
|
foreach ( $values as $item ){
|
|
if (array_key_exists($item, $fieldsValues)) {
|
|
$out[] = $fieldsValues[$item];
|
|
}
|
|
}
|
|
return $out;
|
|
} else {
|
|
if (array_key_exists($values, $fieldsValues)) {
|
|
return $fieldsValues[$values];
|
|
}
|
|
}
|
|
break;
|
|
case 'interval':
|
|
$unit = '';
|
|
if (array_key_exists('unit', $this->fields[$name])) {
|
|
$unit = $this->fields[$name]['unit'];
|
|
}
|
|
//Max is not set
|
|
if ($values[1]=='') {
|
|
$label = "de ".$values[0]." ".$unit;
|
|
if (!empty($unit) && $values[0]>1) $label.= "s";
|
|
$label.=" et plus";
|
|
//Min is not set
|
|
} elseif ($values[0]=='') {
|
|
$label = "jusqu'à ".$values[1]." ".$unit;
|
|
if (!empty($unit) && $values[1]>1) $label.= "s";
|
|
//Min Max are set
|
|
} else {
|
|
$label = 'de '.number_format($values[0], null, ',', ' ')." ".$unit;
|
|
if (!empty($unit) && $values[0]>1) $label.= "s";
|
|
$label.= ' à '.number_format($values[1], null, ',', ' ')." ".$unit;
|
|
if (!empty($unit) && $values[1]>1) $label.= "s";
|
|
}
|
|
return $label;
|
|
break;
|
|
case 'intervalDate':
|
|
// du XX/XX/XXXX au XX/XX/XXXX
|
|
$date1 = substr($values[0],6,2).'/'.substr($values[0],4,2).'/'.substr($values[0],0,4);
|
|
$date2 = substr($values[1],6,2).'/'.substr($values[1],4,2).'/'.substr($values[1],0,4);
|
|
return 'du '.$date1.' au '.$date2;
|
|
break;
|
|
case 'tree':
|
|
$action = ucfirst($this->fields[$name]['fields'][$firstType]['action']);
|
|
return $this->{'getValueLabel'.$action}($values);
|
|
//Recherche des valeurs
|
|
break;
|
|
case 'list':
|
|
$action = ucfirst($name);
|
|
return $this->{'getValueLabel'.$action}($values);
|
|
break;
|
|
}
|
|
|
|
}
|
|
return '';
|
|
}
|
|
|
|
public function getInfoCritere()
|
|
{
|
|
|
|
}
|
|
|
|
} |