From fd50f7ce6cf61102802f8f82fad9e05dfd91b22e Mon Sep 17 00:00:00 2001 From: Michael RICOIS Date: Fri, 4 Jul 2014 07:36:07 +0000 Subject: [PATCH] Fields update --- application/controllers/FieldsController.php | 20 + application/controllers/IndexController.php | 54 +- application/views/default/helpers/Field.php | 7 +- .../views/default/scripts/fields/tag.phtml | 1 + .../default/scripts/index/criteres.phtml | 10 +- .../Application/Controller/Plugin/Auth.php | 1 - library/Scores/Ciblage.php | 1190 --------------- library/Scores/Ciblage/Field/List.php | 7 +- library/Scores/Ciblage/Field/Many.php | 4 +- library/Scores/Ciblage/Field/One.php | 2 +- library/Scores/Ciblage/Field/Range.php | 15 +- library/Scores/Ciblage/Field/Search.php | 32 + library/Scores/Ciblage/Field/Tag.php | 43 + library/Scores/Ciblage/Field/Tree.php | 32 + library/Scores/Ciblage/FieldList.php | 246 +++- library/Scores/Ciblage/Session.php | 19 +- library/Scores/Enrichissement.php | 298 ---- library/Scores/Fields.php | 1280 ----------------- public/themes/default/scripts/fields.js | 180 +-- scripts/build/configure.php | 4 + scripts/build/setCache.php | 123 ++ scripts/jobs/setMinMax.php | 22 +- 22 files changed, 580 insertions(+), 3010 deletions(-) create mode 100644 application/views/default/scripts/fields/tag.phtml delete mode 100644 library/Scores/Ciblage.php create mode 100644 library/Scores/Ciblage/Field/Tag.php delete mode 100644 library/Scores/Enrichissement.php delete mode 100644 library/Scores/Fields.php create mode 100644 scripts/build/setCache.php diff --git a/application/controllers/FieldsController.php b/application/controllers/FieldsController.php index f095a2f4..1d41ee78 100644 --- a/application/controllers/FieldsController.php +++ b/application/controllers/FieldsController.php @@ -34,6 +34,26 @@ class FieldsController extends Zend_Controller_Action } } + public function tagAction() + { + $this->_helper->layout()->disableLayout(); + $request = $this->getRequest(); + + $name = $request->getParam('name'); + + $scoresFields = new Scores_Ciblage_FieldList(); + $result = $scoresFields->getItemValues($name); + + $values = array(); + foreach ( $result as $k => $v ) { + $values[] = array( + 'label' => $v, + 'value' => $k, + ); + } + $this->view->values = $values; + } + /** * Manage autocomplete */ diff --git a/application/controllers/IndexController.php b/application/controllers/IndexController.php index 29dc2716..8bc0b218 100644 --- a/application/controllers/IndexController.php +++ b/application/controllers/IndexController.php @@ -57,22 +57,46 @@ class IndexController extends Zend_Controller_Action $inValue = $valueSelected['in']; $exValue = $valueSelected['ex']; - $inLabel = array(); - if ( count($inValue)>0 ) { - foreach ( $inValue as $value ) { - if ( array_key_exists($value, $params['values']) ) { - $inLabel[] = $params['values'][$value]; - } - } - } + if ( $params['type'] == 'one' ) { - $exLabel = array(); - if ( count($exValue)>0 ) { - foreach ( $exValue as $value ) { - if ( array_key_exists($value, $params['values']) ) { - $exLabel[] = $params['values'][$value]; - } + $inLabel = ''; + if ( count($inValue)>0 ) { + foreach ( $inValue as $value ) { + if ( array_key_exists($value, $params['values']) ) { + $inLabel = $params['values'][$value]; + } + } } + + $exLabel = ''; + if ( count($exValue)>0 ) { + foreach ( $exValue as $value ) { + if ( array_key_exists($value, $params['values']) ) { + $exLabel = $params['values'][$value]; + } + } + } + + } else { + + $inLabel = array(); + if ( count($inValue)>0 ) { + foreach ( $inValue as $value ) { + if ( array_key_exists($value, $params['values']) ) { + $inLabel[] = $params['values'][$value]; + } + } + } + + $exLabel = array(); + if ( count($exValue)>0 ) { + foreach ( $exValue as $value ) { + if ( array_key_exists($value, $params['values']) ) { + $exLabel[] = $params['values'][$value]; + } + } + } + } $infosCriteres[$key] = array( @@ -127,10 +151,8 @@ class IndexController extends Zend_Controller_Action $this->view->assign('exValues', $exValue); } } - } - public function removeAction() { $this->_helper->layout()->disableLayout(); diff --git a/application/views/default/helpers/Field.php b/application/views/default/helpers/Field.php index 2a7190aa..f91e3563 100644 --- a/application/views/default/helpers/Field.php +++ b/application/views/default/helpers/Field.php @@ -3,11 +3,12 @@ class Zend_View_Helper_Field extends Zend_View_Helper_Abstract { public function Field($name) { - $field = new Scores_Ciblage_FieldList(); + $fields = new Scores_Ciblage_FieldList(); - //@todo : Get valueSeclected from session + $sessionValue = new Scores_Ciblage_Session($fields); + $valueSelected = $sessionValue->getSelectedValues(); - $html = $field->getItemHtml($name); + $html = $fields->getItemHtml($name, $valueSelected); if ($html) { return $html; diff --git a/application/views/default/scripts/fields/tag.phtml b/application/views/default/scripts/fields/tag.phtml new file mode 100644 index 00000000..0fc5deb4 --- /dev/null +++ b/application/views/default/scripts/fields/tag.phtml @@ -0,0 +1 @@ +values)?> diff --git a/application/views/default/scripts/index/criteres.phtml b/application/views/default/scripts/index/criteres.phtml index 156e9ea4..b47d1af4 100644 --- a/application/views/default/scripts/index/criteres.phtml +++ b/application/views/default/scripts/index/criteres.phtml @@ -10,13 +10,15 @@ infos)>0 ) {?> infos as $critere => $item) {?>
- +
:
-

   +

  

-   Liste -

+

  Liste

+
Aucune sélection.
diff --git a/library/Application/Controller/Plugin/Auth.php b/library/Application/Controller/Plugin/Auth.php index 79b810f1..69e4e72c 100644 --- a/library/Application/Controller/Plugin/Auth.php +++ b/library/Application/Controller/Plugin/Auth.php @@ -72,7 +72,6 @@ class Application_Controller_Plugin_Auth extends Zend_Controller_Plugin_Abstract //@todo : add service from WebService ->order('dateContrat DESC')->limit(1); - Zend_Registry::get('firebug')->info($sql->__toString()); $params = $paramsM->fetchAll($sql)->toArray(); if (count($params)>0) { $identity->filterRNCS = $params[0]['filterRNCS']; diff --git a/library/Scores/Ciblage.php b/library/Scores/Ciblage.php deleted file mode 100644 index 70c90d32..00000000 --- a/library/Scores/Ciblage.php +++ /dev/null @@ -1,1190 +0,0 @@ -filterRNCS(); - } - - Zend_Registry::get('firebug')->info($structure); - - /* - * First of all we need to load the Sphinx API - * @todo : Make a test and load the right version of API - */ - require_once 'sphinxapi/sphinxapi-2.0.4.php'; - - //Load configuration from registry - $c = Zend_Registry::get('config'); - - //Sphinx init - $this->sphinx = new SphinxClient(); - $this->sphinx->SetServer ( $c->profil->sphinx->host, intval($c->profil->sphinx->port) ); - $this->sphinx->SetMatchMode(SPH_MATCH_EXTENDED); - $this->sphinx->ResetFilters(); - - //Follow each elements - if ( $structure!==null && count($structure)>0 ) { - foreach($structure as $key => $valeur) { - if ($key!= 'NB' && method_exists($this, $key)) { - $this->{$key}($valeur); - } else { - Zend_Registry::get('firebug')->info('Method non exist KEY:'.$key); - } - } - } - } - - /** - * Return array of status variables - */ - public function Status() - { - return $this->sphinx->Status(); - } - - /** - * Set marker RNCS to true - */ - public function filterRNCS() - { - $this->filterRNCS = 1; - } - - /** - * - * @param string $name - * @param mixed $valeur - * @param boolean $ex - */ - protected function setFilter($name, $valeur, $ex = false) - { - //All values must be integer - if ( is_array($valeur) ) { - $valeur = array_map('intval', $valeur); - } else { - $valeur = array(intval($valeur)); - } - $this->sphinx->SetFilter($name, $valeur, $ex); - } - - /** - * - * @param string $name - * @param int $min - * @param int $max - */ - protected function setFilterRange($name, $min, $max) - { - Zend_Registry::get('firebug')->info($name.' - Min:'.$min.', Max:'.$max); - $this->sphinx->SetFilterRange($name, intval($min), intval($max)); - } - - /** - * - * @param string $name - * @param string $valeur - */ - protected function setAlpha($name, $valeur) - { - if ( $this->alpha!='' ) $this->alpha.= ' & '; - $this->alpha.= '@'.$name.' '.$valeur; - } - - /** - * - */ - public function extract() - { - $resultats = $this->execute(true); - $siret = array(); - foreach ($resutlats['matches'] as $element) { - $siret[] = $element['attrs']['siren'].$element['attrs']['nic']; - } - $total = array( - 'total' => count($resultats), - 'insee' => $this->calculRedevanceInsee(), - 'result'=> $siret - ); - return $total; - } - - /** - * - */ - public function calculRedevanceInsee() - { - if ($this->filterRNCS!=1) { - $this->sphinx->SetFilter('presentrcs', array(0)); - $resSphinx = $this->sphinx->Query($this->alpha, $this->index); - return $resSphinx['total_found']; - } else { - return 0; - } - } - - /** - * - * @param unknown_type $structure - */ - protected function getSiret($structure) - { - $siret = array(); - if(count($structure['matches'])>0) { - foreach($structure['matches'] as $element){ - $siret[] = $element['attrs']['siren'].$element['attrs']['nic']; - } - return $siret; - } else - return array(); - } - - /** - * - * @param boolean $need - * @param int $nbReturn - */ - public function execute($need = false, $nbReturn = 0) - { - if ($this->filterRNCS==1) { - $this->sphinx->SetFilter('presentrcs', array(1)); - } - - if($need) { - $return = array(); - $limit = 1000; - $maxMatches = 50000; - - if ( $nbReturn > 0 ) { - $limit = $nbReturn; - $maxMatches = $nbReturn; - $this->sphinx->SetSortMode( SPH_SORT_EXTENDED, '@random' ); - } - - $this->sphinx->SetLimits(0, $limit, $maxMatches); - $resSphinx = $this->sphinx->Query($this->alpha, $this->index); - - //Make an array with only the data needed - $return = $this->getSiret($resSphinx); - - $total = $resSphinx['total_found']; - - if ( $nbReturn == 0 && $limit<$total ) { - $max = ceil($total/$limit); - //Get siret by $limit units for each request - for($i=1; $i<$max; $i++){ - $offset = $i*$limit; - $this->sphinx->SetLimits($offset, $limit); - $resSphinx = $this->sphinx->Query($this->alpha, $this->index); - $tmpSiret = $this->getSiret($resSphinx); - $return = array_merge($return, $tmpSiret); - } - } - - return $return; - - } else { - - $this->sphinx->SetLimits(0, 1); - Zend_Registry::get('firebug')->info("Sphinx : ".$this->alpha); - $resSphinx = $this->sphinx->Query($this->alpha, $this->index); - Zend_Registry::get('firebug')->info($resSphinx); - - if ($resSphinx === false) - return false; - - return $resSphinx['total_found']; - } - } - - /** - * - * @param unknown $key - * @param string $min - * @param string $max - * @return multitype:unknown - */ - protected function minmax($key, $min=null, $max=null) - { - //Read min max - $minmaxM = new Application_Model_CiblageMinMax(); - $minmax = $minmaxM->find($key)->current(); - - if ($minmax!==false) { - $valMin = $minmax->min; - $valMax = $minmax->max; - } - - $min = ($min=='' || $min===null) ? $valMin : $min; - $max = ($max=='' || $min===null) ? $valMax : $max; - - return array( - 'min' => $min, - 'max' => $max, - ); - } - - /** - * - * @param unknown_type $value - */ - protected function siege($value) - { - if ( array_key_exists('in', $value) ) { - $this->setFilter('siege', $value['in']); - } - } - - protected function groupe($value) - { - if ( array_key_exists('in', $value) ) { - $this->setFilter('sirenGrp', $value['in']); - } - } - - protected function tel($value) - { - if ( array_key_exists('in', $value) ) { - $this->setFilter('tel', $value['in']); - } - } - - protected function fax($value) - { - if ( array_key_exists('in', $value) ) { - $this->setFilter('fax', $value['in']); - } - } - - protected function web($value) - { - if ( array_key_exists('in', $value) ) { - $this->setFilter('web', $value['in']); - } - } - - protected function mail($value) - { - if ( array_key_exists('in', $value) ) { - $this->setFilter('mail', $value['in']); - } - } - - protected function presentRcs($value) - { - if ( array_key_exists('in', $value) ) { - $this->setFilter('presentRcs', $value['in']); - } - } - - protected function adrDom($value) - { - if ( array_key_exists('in', $value) ) { - $this->setFilter('adrDom', $value['in']); - } - } - - protected function dirNom($value) - { - if ( array_key_exists('in', $value) ) { - $this->setFilter('dirNom', $value['in']); - } - } - - protected function participation($value) - { - if ( array_key_exists('in', $value) ) { - $this->setFilter('part', $value['in']); - } - } - - protected function action($value) - { - if ( array_key_exists('in', $value) ) { - $this->setFilter('actio', $value['in']); - } - } - - protected function dateCrea_etab($value) - { - if ( array_key_exists('in', $value) ) { - - $min = $value['in'][0]; - $max = $value['in'][1]; - - if ($min===null || $max===null) - return; - - $this->setFilterRange('dateCrea_etab', $min, $max); - } - } - - protected function dateCrea_ent($value) - { - $min = $value['in'][0]; - $max = $value['in'][1]; - - if ($min===null || $max===null) - return; - - $this->setFilterRange('dateCrea_ent', $min, $max); - } - - protected function nbActio($value) - { - if ( array_key_exists('in', $value) ) { - - $result = $this->minmax('nbActio', $value['in'][0], $value['in'][1]); - $min = $result['min']; - $max = $result['max']; - - if ($min===null || $max===null) - return; - - $this->setFilterRange('nbActio', $min, $max); - } - } - - protected function nbPart($value) - { - if ( array_key_exists('in', $value) ) { - - $result = $this->minmax('nbPart', $value['in'][0], $value['in'][1]); - $min = $result['min']; - $max = $result['max']; - - if ($min===null || $max===null) - return; - - $this->setFilterRange('nbPart', $min, $max); - } - } - - protected function nbMPubli($value) - { - if ( array_key_exists('in', $value) ) { - - $result = $this->minmax('nbMPubli', $value['in'][0], $value['in'][1]); - $min = $result['min']; - $max = $result['max']; - - if ($min===null || $max===null) - return; - - $this->setFilter('nbMPubli', $value); - } - } - - protected function capital($value) - { - if ( array_key_exists('in', $value) ) { - - $result = $this->minmax('capital', $value['in'][0], $value['in'][1]); - $min = $result['min']; - $max = $result['max']; - - if ($min===null || $max===null) - return; - - $this->setFilterRange('capital', $min, $max); - } - } - - protected function age_entrep($value) - { - if ( array_key_exists('in', $value) ) { - - $result = $this->minmax('age_entrep', $value['in'][0], $value['in'][1]); - $min = $result['min']; - $max = $result['max']; - - if ($min===null || $max===null) - return; - - $this->setFilterRange('age_entrep', $min, $max); - } - } - - protected function age_etab($value) - { - if ( array_key_exists('in', $value) ) { - - $result = $this->minmax('age_etab', $value['in'][0], $value['in'][1]); - $min = $result['min']; - $max = $result['max']; - - if ($min===null || $max===null) - return; - - $this->setFilterRange('age_etab', $min, $max); - } - } - - protected function teff_entrep($value) - { - if ( array_key_exists('in', $value) ) { - $this->setFilter('teff_entrep', $value['in']); - } - if ( array_key_exists('ex', $value) ) { - $this->setFilter('teff_entrep', $value['ex'], true); - } - } - - protected function teff_etab($value) - { - if ( array_key_exists('in', $value) ) { - $this->setFilter('teff_etab', $value['in']); - } - if ( array_key_exists('ex', $value) ) { - $this->setFilter('teff_etab', $value['ex'], true); - } - } - - protected function eff_etab($value) - { - - if ( array_key_exists('in', $value) ) { - - $result = $this->minmax('eff_etab', $value['in'][0], $value['in'][1]); - $min = $result['min']; - $max = $result['max']; - - if ($min===null || $max===null) - return; - - $this->setFilterRange('eff_etab', $min, $max); - } - } - - protected function eff_entrep($value) - { - - if ( array_key_exists('in', $value) ) { - - $result = $this->minmax('eff_entrep', $value['in'][0], $value['in'][1]); - $min = $result['min']; - $max = $result['max']; - - if ($min===null || $max===null) - return; - - $this->setFilterRange('eff_entrep', $min, $max); - } - } - - protected function nbEtab($value) - { - if ( array_key_exists('in', $value) ) { - - $result = $this->minmax('nbEtab', $value['in'][0], $value['in'][1]); - $min = $result['min']; - $max = $result['max']; - - if ($min===null || $max===null) - return; - - $this->setFilterRange('nbEtab', $min, $max); - } - } - - - protected function geo_domtom($value) - { - if( $value['in']==1 ) { - $this->setFilter('adr_dep', array(971, 972, 973, 974, 976), true); - } - } - - protected function geo_etranger($value) - { - if( $value['in']==1 ) { - $this->setFilter('adr_dep', array(986, 987, 988), true); - } - } - - protected function geo_corse($value) - { - if( $value['in']==1 ) { - $this->setFilter('adr_dep', array(201, 202), true); - } - } - - protected function zus($value) - { - if ( array_key_exists('in', $value) ) { - $this->setFilter('zus', $value['in']); - } - } - - protected function zru($value) - { - if ( array_key_exists('in', $value) ) { - $this->setFilter('zru', $value['in']); - } - } - - protected function zfu($value) - { - if ( array_key_exists('in', $value) ) { - $this->setFilter('zfu', $value['in']); - } - } - - protected function cucs($value) - { - if ( array_key_exists('in', $value) ) { - $this->setFilter('cucs', $value['in']); - } - } - - protected function zrr($value) - { - if ( array_key_exists('in', $value) ) { - $this->setFilter('zrr', $value['in']); - } - } - - protected function zafr($value) - { - if ( array_key_exists('in', $value) ) { - $this->setFilter('zafr', $value['in']); - } - } - - protected function actifEco($value) - { - if ( array_key_exists('in', $value) ) { - $this->setFilter('actifEco', $value['in']); - } - } - - protected function procolHisto($value) - { - if ( array_key_exists('in', $value) ) { - $this->setFilter('procolHisto', $value['in']); - } - } - - protected function dateImmat($value) - { - if ( array_key_exists('in', $value) ) { - - $min = $value['in'][0]; - $max = $value['in'][1]; - - if ($min===null || $max===null) - return; - - $this->setFilterRange('dateImmat', $min, $max); - } - } - - protected function tvaIntraValide($value) - { - if ( array_key_exists('in', $value) ) { - $this->setFilter('tvaIntraValide', $value['in']); - } - } - - protected function bilType($value) - { - if ( array_key_exists('in', $value) ) { - $this->setFilter('bilType', $value['in']); - } - if ( array_key_exists('ex', $value) ) { - $this->setFilter('bilType', $value['ex'], true); - } - } - - protected function avisCs($value) - { - if ( array_key_exists('in', $value) ) { - $this->setFilter('avisCs', $value['in']); - } - if ( array_key_exists('ex', $value) ) { - $this->setFilter('avisCs', $value['ex'], true); - } - } - - protected function bilAnnee($value) - { - if ( array_key_exists('in', $value) ) { - $this->setFilter('bilAnnee', $value['in']); - } - if ( array_key_exists('ex', $value) ) { - $this->setFilter('bilAnnee', $value['ex'], true); - } - } - - protected function bilCloture($value) - { - if ( array_key_exists('in', $value) ) { - $this->setFilter('bilCloture', $value['in']); - } - if ( array_key_exists('ex', $value) ) { - $this->setFilter('bilCloture', $value['ex'], true); - } - } - - protected function bilDuree($value) - { - if ( array_key_exists('in', $value) ) { - $this->setFilter('bilDuree', $value['in']); - } - if ( array_key_exists('ex', $value) ) { - $this->setFilter('bilDuree', $value['ex'], true); - } - } - - protected function bilTca($value) - { - if ( array_key_exists('in', $value) ) { - $this->setFilter('bilTca', $value['in']); - } - if ( array_key_exists('ex', $value) ) { - $this->setFilter('bilTca', $value['ex'], true); - } - } - - protected function bilEE($value) - { - if ( array_key_exists('in', $value) ) { - - $result = $this->minmax('bilEE', $value['in'][0], $value['in'][1]); - $min = $result['min']; - $max = $result['max']; - - if ($min===null || $max===null) - return; - - $this->setFilterRange('bilEE', $min, $max); - } - } - - protected function bilFL($value) - { - if ( array_key_exists('in', $value) ) { - - $result = $this->minmax('bilFL', $value['in'][0], $value['in'][1]); - $min = $result['min']; - $max = $result['max']; - - if ($min===null || $max===null) - return; - - $this->setFilterRange('bilFL', $min, $max); - } - } - - protected function bilFK($value) - { - if ( array_key_exists('in', $value) ) { - - $result = $this->minmax('bilFK', $value['in'][0], $value['in'][1]); - $min = $result['min']; - $max = $result['max']; - - if ($min===null || $max===null) - return; - - $this->setFilterRange('bilFK', $min, $max); - } - } - - protected function bilFR($value) - { - if ( array_key_exists('in', $value) ) { - - $result = $this->minmax('bilFR', $value['in'][0], $value['in'][1]); - $min = $result['min']; - $max = $result['max']; - - if ($min===null || $max===null) - return; - - $this->setFilterRange('bilFR', $min, $max); - } - } - - protected function bilGF($value) - { - if ( array_key_exists('in', $value) ) { - - $result = $this->minmax('bilGF', $value['in'][0], $value['in'][1]); - $min = $result['min']; - $max = $result['max']; - - if ($min===null || $max===null) - return; - - $this->setFilterRange('bilGF', $min, $max); - } - } - - protected function bilGP($value) - { - if ( array_key_exists('in', $value) ) { - - $result = $this->minmax('bilGP', $value['in'][0], $value['in'][1]); - $min = $result['min']; - $max = $result['max']; - - if ($min===null || $max===null) - return; - - $this->setFilterRange('bilGP', $min, $max); - } - } - - protected function bilGW($value) - { - if ( array_key_exists('in', $value) ) { - - $result = $this->minmax('bilGW', $value['in'][0], $value['in'][1]); - $min = $result['min']; - $max = $result['max']; - - if ($min===null || $max===null) - return; - - $this->setFilterRange('bilGW', $min, $max); - } - } - - protected function bilHD($value) - { - if ( array_key_exists('in', $value) ) { - - $result = $this->minmax('bilHD', $value['in'][0], $value['in'][1]); - $min = $result['min']; - $max = $result['max']; - - if ($min===null || $max===null) - return; - - $this->setFilterRange('bilHD', $min, $max); - } - } - - protected function bilHH($value) - { - if ( array_key_exists('in', $value) ) { - - $result = $this->minmax('bilHH', $value['in'][0], $value['in'][1]); - $min = $result['min']; - $max = $result['max']; - - if ($min===null || $max===null) - return; - - $this->setFilterRange('bilHH', $min, $max); - } - } - - protected function bilHL($value) - { - if ( array_key_exists('in', $value) ) { - - $result = $this->minmax('bilHL', $value['in'][0], $value['in'][1]); - $min = $result['min']; - $max = $result['max']; - - if ($min===null || $max===null) - return; - - $this->setFilterRange('bilHL', $min, $max); - } - } - - protected function bilHM($value) - { - if ( array_key_exists('in', $value) ) { - - $result = $this->minmax('bilHM', $value['in'][0], $value['in'][1]); - $min = $result['min']; - $max = $result['max']; - - if ($min===null || $max===null) - return; - - $this->setFilterRange('bilHM', $min, $max); - } - } - - protected function bilHN($value) - { - if ( array_key_exists('in', $value) ) { - - $result = $this->minmax('bilHN', $value['in'][0], $value['in'][1]); - $min = $result['min']; - $max = $result['max']; - - if ($min===null || $max===null) - return; - - $this->setFilterRange('bilHN', $min, $max); - } - } - - protected function bilYP($value) - { - if ( array_key_exists('in', $value) ) { - - $result = $this->minmax('bilYP', $value['in'][0], $value['in'][1]); - $min = $result['min']; - $max = $result['max']; - - if ($min===null || $max===null) - return; - - $this->setFilterRange('bilYP', $min, $max); - } - } - - - /** - * Get the last child of NAF in the tree - * @param unknown_type $list - */ - protected function getChildNaf($list) - { - $lastLevel = array(); - if ( count($list)>0 ) { - - $nafM = new Application_Model_CiblageNaf(); - - foreach ( $list as $item ) { - - $childItem = array(); - $result = array(); - - //First code level is letter, length 1 - if ( !is_numeric($item) && strlen($item)==1 ) { - $sql = $nafM->select()->from($nafM, array('code'))->where('parent = ?', strtoupper($item)); - //Zend_Registry::get('firebug')->info($sql->__toString()); - $result = $nafM->fetchAll($sql)->toArray(); - } - - //Other code level is number, length 2 to 5 => go directy to the last level - $sql = $nafM->select()->from($nafM, array('code'))->where('niveau = 5'); - if (count($result)>0) { - $countResult = 0; - $where = ''; - foreach ( $result as $r ) { - $where.= 'code LIKE "'.$r['code'].'%"'; - $countResult++; - if ( count($result)!=$countResult ) $where.= ' OR '; - } - $sql->where($where); - } else { - $sql->where('code LIKE "'.$item.'%"'); - } - - //Zend_Registry::get('firebug')->info($sql->__toString()); - - $result = $nafM->fetchAll($sql)->toArray(); - if ( count($result)>0 ) { - foreach ( $result as $i ) { - $lastLevel[] = $i['code']; - } - } - - } - - } - return $lastLevel; - } - - /** - * Make the string request of NAFs - * @param array $value - * @return string - */ - protected function transformNAF($value) - { - //Search children for all item given - $valueIn = $valueEx = array(); - if ( array_key_exists('in', $value) && is_array($value['in']) && count($value['in'])>0 ) { - $valueIn = $this->getChildNaf($value['in']); - } - - if ( array_key_exists('ex', $value) && is_array($value['ex']) && count($value['ex'])>0 ) { - $valueEx = $this->getChildNaf($value['ex']); - } - - //Construct alpha request for sphinx - $req = ''; - if ( count($valueIn)>0 ) { - $req.= '('.implode('|', $valueIn).')'; - } - if ( count($valueEx)>0 ) { - if (empty($req)) { - $req = 'EX '; - } - $req.= ' -('.implode('|', $valueEx).')'; - - } - return $req; - } - - /** - * - * @param array $value - */ - protected function ape_etab($value) - { - $req = $this->transformNAF($value); - $this->setAlpha('ape_etab', $req); - } - - /** - * - * @param array $value - */ - protected function ape_entrep($value) - { - $req = $this->transformNAF($value); - $this->setAlpha('ape_entrep', $req); - } - - /** - * Add geographic filter - * R[code] => Region (Region need to be transform as Departements) - * D[code] => Departement - * C[code] => Code Commune Insee - * @param array $value - */ - protected function geo($value) - { - $departementValueIn = $departementValueEx = array(); - $communeValueIn = $communeValueEx = array(); - - if ( array_key_exists('in', $value) && is_array($value['in']) && count($value['in'])>0 ) { - foreach ( $value['in'] as $item ) { - switch( substr($item,0,1) ) { - case 'C': - $communeValueIn[] = intval(substr($item,1)); - break; - - case 'D': - $departementValueIn[] = intval(substr($item,1)); - break; - - case 'R': - $departementsM = new Application_Model_CiblageDepartements(); - $sql = $departementsM->select() - ->from($departementsM, array('numdep')) - ->where('codeRegionInsee = ?', substr($item,1)); - $departements = $departementsM->fetchAll($sql)->toArray(); - foreach ($departements as $d) { - $departementValueIn[] = intval($d['numdep']); - } - break; - } - } - } - - if ( array_key_exists('ex', $value) && is_array($value['ex']) && count($value['ex'])>0 ) { - foreach ( $value['ex'] as $item ) { - switch( substr($item,0,1) ) { - case 'C': - $communeValueEx[] = intval(substr($item,1)); - break; - - case 'D': - $departementValueEx[] = intval(substr($item,1)); - break; - - case 'R': - $departementsM = new Application_Model_CiblageDepartements(); - $sql = $departementsM->select() - ->from($departementsM, array('numdep')) - ->where('codeRegionInsee = ?', substr($item,1)); - $departements = $departementsM->fetchAll($sql)->toArray(); - foreach ($departements as $d) { - $departementValueEx[] = intval($d['numdep']); - } - break; - } - } - } - - if ( count($departementValueIn)>0 ) { - $this->setFilter('adr_dep', $departementValueIn); - } - - if ( count($departementValueEx)>0 ) { - $this->setFilter('adr_dep', $departementValueEx, true); - } - - if ( count($communeValueIn)>0 ) { - //Check if a departement include a codeCommune else remove this codeCommune - if (count($departementValueIn)>0) { - foreach ( $departementValueIn as $item ) { - $codePostauxM = new Application_Model_CiblageCodePostaux(); - $sql = $codePostauxM->select() - ->from($codePostauxM, array('INSEE')) - ->where('Codepos LIKE ?', $item.'%'); - $result = $codePostauxM->fetchAll($sql)->toArray(); - $arrayDiff = array(); - foreach ( $result as $insee ) { - $arrayDiff[] = intval($insee['INSEE']); - } - $communeValueIn = array_diff($communeValueIn, $arrayDiff); - } - } - if ( count($communeValueIn)>0 ) { - $this->setFilter('codeCommune', $communeValueIn); - } - } - - if ( count($communeValueEx)>0 ) { - //Check if a departement include a codeCommune else remove this codeCommune - if (count($departementValueEx)>0) { - foreach ( $departementValueEx as $item ) { - $codePostauxM = new Application_Model_CiblageCodePostaux(); - $sql = $codePostauxM->select() - ->from($codePostauxM, array('INSEE')) - ->where('Codepos LIKE ?', $item.'%'); - $result = $codePostauxM->fetchAll($sql)->toArray(); - $arrayDiff = array(); - foreach ( $result as $insee ) { - $arrayDiff[] = intval($insee['INSEE']); - } - $communeValueEx = array_diff($communeValueEx, $arrayDiff); - } - } - if ( count($communeValueEx)>0 ) { - $this->setFilter('codeCommune', $communeValueEx, true); - } - } - } - - protected function codesinsee($value) - { - if ( array_key_exists('in', $value) && is_array($value['in']) && count($value['in'])>0 ) { - $this->setFilter('codeCommune', $value['in']); - } - - if ( array_key_exists('ex', $value) && is_array($value['ex']) && count($value['ex'])>0 ) { - $this->setFilter('codeCommune', $value['ex'], true); - } - } - - protected function codesdepts($value) - { - if ( array_key_exists('in', $value) && is_array($value['in']) && count($value['in'])>0 ) { - $this->setFilter('adr_dep', $value['in']); - } - - if ( array_key_exists('ex', $value) && is_array($value['ex']) && count($value['ex'])>0 ) { - $this->setFilter('adr_dep', $value['ex']); - } - } - - protected function codespostaux($value) - { - if ( array_key_exists('in', $value) && is_array($value['in']) && count($value['in'])>0 ) { - $this->setFilter('adr_cp', $value['in']); - } - - if ( array_key_exists('ex', $value) && is_array($value['ex']) && count($value['ex'])>0 ) { - $this->setFilter('adr_cp', $value['ex']); - } - } - - protected function getChildCJ($list) - { - $lastLevel = array(); - - if ( count($list)>0 ) { - foreach ( $list as $item ) { - - $childItem = array(); - $result = array(); - - $fjM = new Application_Model_CiblageFormeJuridique(); - - //Only code with a length between 1 and 3 - if ( strlen($item)<4 ) { - $sql = $fjM->select()->from($fjM, array('fjCode')) - ->where('fjCode LIKE "'.$item.'%"') - ->where('LENGTH(fjCode)=4'); - - Zend_Registry::get('firebug')->info($sql->__toString()); - - $result = $fjM->fetchAll($sql)->toArray(); - if ( count($result)>0 ) { - foreach ( $result as $i ) { - $lastLevel[] = $i['fjCode']; - } - } - } else { - $lastLevel[] = $item; - } - } - } - return $lastLevel; - } - - /** - * Add filter for forme juridique - * @param array $value - */ - protected function cj($value) - { - //Search children for all item given - $valueIn = $valueEx = array(); - if ( array_key_exists('in', $value) && is_array($value['in']) && count($value['in'])>0 ) { - $valueIn = $this->getChildCJ($value['in']); - } - - if ( array_key_exists('ex', $value) && is_array($value['ex']) && count($value['ex'])>0 ) { - $valueEx = $this->getChildCJ($value['ex']); - } - - if ( count($valueIn)>0 ) { - Zend_Registry::get('firebug')->info($valueIn); - $this->setFilter('cj', $valueIn); - } - - if ( count($valueEx)>0 ) { - $this->setFilter('cj', $valueEx, true); - } - } - - -} \ No newline at end of file diff --git a/library/Scores/Ciblage/Field/List.php b/library/Scores/Ciblage/Field/List.php index 1b013c55..f3c4ffcd 100644 --- a/library/Scores/Ciblage/Field/List.php +++ b/library/Scores/Ciblage/Field/List.php @@ -18,8 +18,7 @@ class Scores_Ciblage_Field_List public function getHTML($valueSelected = array()) { $html = '
' . - '
' . - '
'; + '
'; $valueTxt = ''; if ( count($valueSelected)>0 ) { @@ -33,11 +32,11 @@ class Scores_Ciblage_Field_List } $html.= ''; + $html.= ''. + '
'; $html.= '
' . '' . '
'. - '
'. '
'; return $html; } diff --git a/library/Scores/Ciblage/Field/Many.php b/library/Scores/Ciblage/Field/Many.php index 4e211a61..6a5438c8 100644 --- a/library/Scores/Ciblage/Field/Many.php +++ b/library/Scores/Ciblage/Field/Many.php @@ -17,7 +17,7 @@ class Scores_Ciblage_Field_Many public function getHTML($valueSelected = array()) { - $html = '
' . + $html = '
' . '
'; if ( count($this->data)>0 ) { $html.= '' . - '' . + '' . + '
'. '
'; return $html; } public function getJS() { - return '$("#slider_'.$this->name.'").slider({});'; + return '$("#slider-'.$this->name.'").slider({});'; } } \ No newline at end of file diff --git a/library/Scores/Ciblage/Field/Search.php b/library/Scores/Ciblage/Field/Search.php index 9ba28f4e..1842b1d3 100644 --- a/library/Scores/Ciblage/Field/Search.php +++ b/library/Scores/Ciblage/Field/Search.php @@ -1,5 +1,37 @@ name = $name; + $this->data = $data; + } + + public function getHTML($valueSelected = '') + { + $html = '
'; + if ( count($this->data)>0 ) { + foreach ( $this->data as $value => $label ) { + $active = ''; + if( $valueSelected === $value ) { + $active = ' active'; + } + + $html.= ''; + } + } + $html .= '
'; + + return $html; + } } \ No newline at end of file diff --git a/library/Scores/Ciblage/Field/Tag.php b/library/Scores/Ciblage/Field/Tag.php new file mode 100644 index 00000000..93cb0455 --- /dev/null +++ b/library/Scores/Ciblage/Field/Tag.php @@ -0,0 +1,43 @@ +name = $name; + $this->data = $data; + } + + public function getHTML($valueSelected = '') + { + $html = '
' . + '
'; + + $html.= ''; + + $html.= '
'. + '
' . '
' . + '
' . + '' . + '
'. + '
'; + + return $html; + } + +} + + + + + + + + diff --git a/library/Scores/Ciblage/Field/Tree.php b/library/Scores/Ciblage/Field/Tree.php index c5918ee8..6d72afcb 100644 --- a/library/Scores/Ciblage/Field/Tree.php +++ b/library/Scores/Ciblage/Field/Tree.php @@ -1,5 +1,37 @@ name = $name; + $this->data = $data; + } + + public function getHTML($valueSelected = '') + { + $html = '
'; + if ( count($this->data)>0 ) { + foreach ( $this->data as $value => $label ) { + $active = ''; + if( $valueSelected === $value ) { + $active = ' active'; + } + + $html.= ''; + } + } + $html .= '
'; + + return $html; + } } \ No newline at end of file diff --git a/library/Scores/Ciblage/FieldList.php b/library/Scores/Ciblage/FieldList.php index 5506b5e8..a732a880 100644 --- a/library/Scores/Ciblage/FieldList.php +++ b/library/Scores/Ciblage/FieldList.php @@ -140,10 +140,17 @@ class Scores_Ciblage_FieldList 'minmax' => 'number', 'activated' => true, ), + + 'ape_etab' => array(), + 'ape_entrep' => array(), + 'NaceEtab' => array(), + 'NaceEntrep' => array(), + + 'age_etab' => array( 'label' => "Age de l'établissement", 'desc' => "Restreindre la sélection suivant l'age des établissements.", @@ -242,14 +249,94 @@ class Scores_Ciblage_FieldList 'minmax' => 'number', 'activated' => true, ), - 'geo' => array(), - 'geo_domtom' => array(), - 'geo_etranger' => array(), - 'geo_corse' => array(), - 'codesinsee' => array(), - 'codespostaux' => array(), - 'codesdepts' => array(), - 'adr_reg' => array(), + + 'geo' => array( + 'label' => "Localisation géographique", + 'desc' => "", + 'family' => 'geographique', + 'type' => array( + 'tree' => array( 'label' => 'Arborescence' ), + 'tag' => array( 'label' => 'Recherche' ), + ), + /*'sql' => array( + 'columns' => array('Commune AS label', 'INSEE AS value'), + 'table' => 'fields_codepostaux', + ),*/ + 'activated' => true, + ), + + 'geo_domtom' => array( + 'label' => "Exclure les DOM-TOM", + 'desc' => "Exclure les établissements situés dans les DOM-TOM", + 'family' => 'geographique', + 'type' => 'one', + 'values' => array('1' => 'Exclure'), + 'activated' => true, + ), + 'geo_etranger' => array( + 'label' => "Exclure les sociétés étrangères", + 'desc' => "Exclure les entreprises dont l'établissement siège est situé à l'étranger", + 'family' => 'geographique', + 'type' => 'one', + 'values' => array('1' => 'Exclure'), + 'activated' => true, + ), + 'geo_corse' => array( + 'label' => "Exclure la corse", + 'desc' => "Exclure les établissements situés en région Corse", + 'family' => 'geographique', + 'type' => 'one', + 'values' => array('1' => 'Exclure'), + 'activated' => true, + ), + 'codesinsee' => array( + 'label' => "Liste de codes communes Insee", + 'desc' => "Liste de codes communes Insee séparés par des virgules ou des points-virgules", + 'family' => 'geographique', + 'type' => 'list', + 'sql' => array( + 'columns' => array('Commune AS label', 'INSEE AS value'), + 'table' => 'fields_codepostaux', + ), + 'activated' => true, + ), + 'codespostaux' => array( + 'label' => "Liste de codes postaux", + 'desc' => "Liste de codes postaux séparés par des virgules ou des points-virgules", + 'family' => 'geographique', + 'type' => 'list', + 'sql' => array( + 'columns' => array('Commune AS label', 'Codepos AS value'), + 'table' => 'fields_codepostaux', + ), + 'activated' => true, + ), + 'codesdepts' => array( + 'label' => "Liste de départements", + 'desc' => "Liste de code départements séparés par des virgules ou des points-virgules", + 'family' => 'geographique', + 'type' => 'list', + 'sql' => array( + 'columns' => array('libdep AS label', 'numdep AS value'), + 'table' => 'fields_departements', + ), + 'activated' => true, + ), + + + 'adr_reg' => array( + 'label' => "Liste de régions", + 'desc' => "Liste de régions", + 'family' => 'geographique', + 'type' => 'tag', + 'sql' => array( + 'columns' => array('NCCENR AS label', 'REGION AS value'), + 'table' => 'fields_regions', + ), + 'activated' => true, + ), + + 'zus' => array( 'label' => "Zones Urbaines Sensibles", 'desc' => "Restreindre la sélection aux é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.", @@ -548,48 +635,62 @@ class Scores_Ciblage_FieldList $html = '
'; $html.= '
'.$this->items[$name]['label'].'
'; - //Bloc content - $htmlfield = ''; - switch ($type) { - case 'list': - $field = new Scores_Ciblage_Field_List($name, $values); - break; - case 'many': - $field = new Scores_Ciblage_Field_Many($name, $values); - break; - case 'one': - $field = new Scores_Ciblage_Field_One($name, $values); - break; - case 'range': - $field = new Scores_Ciblage_Field_Range($name, $values); - break; - case 'rangedate': - $field = new Scores_Ciblage_Field_RangeDate($name, $values); - break; - case 'search': - $field = new Scores_Ciblage_Field_Search($name, $values); - break; - case 'tree': - $field = new Scores_Ciblage_Field_Tree($name, $values); - break; - } + if ( is_array($type) ) { - $htmlfield = $field->getHTML($valueSelected); - $html.= '
' . $htmlfield . '
'; - if ( method_exists($field, 'getJS') ) { - $html.= ''; + + } else { + + //Bloc content + $htmlfield = ''; + switch ($type) { + case 'list': + $field = new Scores_Ciblage_Field_List($name, $values); + break; + case 'many': + $field = new Scores_Ciblage_Field_Many($name, $values); + break; + case 'one': + $field = new Scores_Ciblage_Field_One($name, $values); + break; + case 'range': + $field = new Scores_Ciblage_Field_Range($name, $values); + break; + case 'rangedate': + $field = new Scores_Ciblage_Field_RangeDate($name, $values); + break; + case 'search': + $field = new Scores_Ciblage_Field_Search($name, $values); + break; + case 'tree': + $field = new Scores_Ciblage_Field_Tree($name, $values); + break; + case 'tag': + $field = new Scores_Ciblage_Field_Tag($name, $values); + break; + } + + $htmlfield = $field->getHTML($valueSelected); + $html.= '
' . $htmlfield . '
'; + + if ( method_exists($field, 'getJS') ) { + $html.= ''; + } + } //Bloc footer $html.= ''; $html.= '
'; - - return $html; } + public function getItemsStruct() + { + return $this->items; + } + public function getItemsByFamily($family) { return $this->__items(false, $family); @@ -618,6 +719,7 @@ class Scores_Ciblage_FieldList $item['label'] = $info['label']; $item['desc'] = $info['desc']; + $item['type'] = $info['type']; if ( $withValues ) { $item['values'] = $this->getItemValues($key); @@ -647,7 +749,6 @@ class Scores_Ciblage_FieldList //Override info with values from getMinMax if ( array_key_exists('minmax', $info) ) { - Zend_Registry::get('firebug')->info('minmax'); $values = $this->getMinMax($key); } @@ -670,22 +771,36 @@ class Scores_Ciblage_FieldList $minmaxType = $info['minmax']; if ( is_array($minmaxType) ) { + return $minmaxType; + } else { - //@todo : Faire fichier de cache des minmax - $valuesM = new Application_Model_CiblageMinMax(); - $sql = $valuesM->select()->where('cle=?', $key); - try { - $result = $valuesM->fetchRow($sql); - if ($result !== null) { - return array( - 'min' => $result->min, - 'max' => $result->max, - ); + + $cacheFile = APPLICATION_PATH . '/../library/Scores/Table/' . $key . '.php'; + if ( file_exists($cacheFile) ) { + + $values = include $cacheFile; + if ( is_array($values) ) { + return $values; } - } catch(Zend_Db_Exception $e) { + + } else { + + //@todo : Faire fichier de cache des minmax + $valuesM = new Application_Model_CiblageMinMax(); + $sql = $valuesM->select()->where('cle=?', $key); + try { + $result = $valuesM->fetchRow($sql); + if ($result !== null) { + return array( + 'min' => $result->min, + 'max' => $result->max, + ); + } + } catch(Zend_Db_Exception $e) {} } + } return array(); @@ -693,6 +808,35 @@ class Scores_Ciblage_FieldList protected function getDbValues($key) { + $info = $this->items[$key]; + $columns = $info['sql']['columns']; + $table = $info['sql']['table']; + + $cacheFile = APPLICATION_PATH . '/../library/Scores/Table/' . $key . '.php'; + if ( file_exists($cacheFile) ) { + + $values = include $cacheFile; + if ( is_array($values) ) { + return $values; + } + + } else { + + $db = Zend_Db_Table::getDefaultAdapter(); + $sql = $db->select()->from($table, $columns, 'ciblage'); + try { + $values = array(); + $result = $db->fetchAll($sql, null, Zend_Db::FETCH_OBJ); + if ( count($result)>0 ) { + foreach ($result as $item) { + $values[$item->value] = $item->label; + } + } + return $values; + } catch(Zend_Db_Exception $e) {} + + } + return array(); } diff --git a/library/Scores/Ciblage/Session.php b/library/Scores/Ciblage/Session.php index 66dce780..409e45a4 100644 --- a/library/Scores/Ciblage/Session.php +++ b/library/Scores/Ciblage/Session.php @@ -79,38 +79,33 @@ class Scores_Ciblage_Session $valueToSave = null; + //Prepare data if ( is_array($value) ) { - foreach ( $value as $item ) { if ( in_array($item, $staticValues) ) { $valueToSave[] = $item; } } - } else { - if ( in_array($value, $staticValues) ) { $valueToSave = array($value); } else { return false; } - } //Prepare to save date in session if ( $valueToSave !== null ) { - //Save the value if ($ex) { - Zend_Registry::get('firebug')->info('Exclude : '); - Zend_Registry::get('firebug')->info($value); - $this->ciblage->select[$key]['ex'] = $value; + Zend_Registry::get('firebug')->info('Exclude'); + Zend_Registry::get('firebug')->info($valueToSave); + $this->ciblage->select[$key]['ex'] = $valueToSave; } else { - Zend_Registry::get('firebug')->info('Include: '); - Zend_Registry::get('firebug')->info($value); - $this->ciblage->select[$key]['in'] = $value; + Zend_Registry::get('firebug')->info('Include'); + Zend_Registry::get('firebug')->info($valueToSave); + $this->ciblage->select[$key]['in'] = $valueToSave; } - return true; } diff --git a/library/Scores/Enrichissement.php b/library/Scores/Enrichissement.php deleted file mode 100644 index bce093dc..00000000 --- a/library/Scores/Enrichissement.php +++ /dev/null @@ -1,298 +0,0 @@ - array( - 'label' => "Type d'établissement", - 'column' => 'siege', - 'values' => array( - '1' => "Etablissement Siege", - '0' => "Etablissement Secondaire", - ), - ), - 'raisonSociale' => array( - 'label' => "Raison Sociale", - 'column' => 'raisonSociale' - ), - 'enseigne' => array( - 'label' => "Enseigne", - 'column' => 'enseigne' - ), - 'sigle' => array( - 'label' => "Sigle", - 'column' => 'sigle' - ), - 'identite_pre' => array( - 'label' => "Identite Précédente", - 'column' => 'identite_pre' - ), - 'marques' => array( - 'label' => "Marques déposées", - 'column' => 'marques' - ), - 'adresse' => array( - 'label' => 'Adresse', - 'column' => 'adresse', - 'sql' => "CONCAT_WS(' ', adr_num, adr_btq, adr_typeVoie, adr_libVoie) as adresse", - ), - 'adr_comp' => array( - 'label' => 'Adresse - Complément', - 'column' => 'adr_comp', - ), - 'codepostal' => array( - 'label' => 'Code Postal', - 'column' => 'adr_cp', - ), - 'departement' => array( - 'label' => 'Département', - 'column' => 'adr_dep', - ), - 'ville' => array( - 'label' => 'Ville', - 'column' => 'adr_ville', - ), - 'codecommune' => array( - 'label' => 'Code Commune', - 'column' => 'codecom', - 'sql' => 'CONCAT(adr_dep, adr_com) as codecom', - ), - 'tel' => array( - 'label' => "Téléphone", - 'column' => 'tel' , - 'sql' => 'LPAD(tel, 10, 0000000000) AS tel' - ), - 'fax' => array( - 'label' => "Fax", - 'column' => 'fax', - 'sql' => 'LPAD(fax, 10, 0000000000) AS fax' - ), - 'cj' => array( - 'label' => "Code Forme juridique", - 'column' => 'cj', - 'join' => array( - 'label' => 'Forme juridique', - 'column' => 'libelle', - 'table' => 'jo.tabFJur', - 'cond' => 'jo.etablissements_act.cj = cjL.code' - ) - ), - 'dirigeant' => array( - 'label' => "Dirigeant", - 'column' => 'dirigeant', - 'sql' => "CONCAT_WS(' ', dirCiv, dirNom, dirPrenom) AS dirigeant", - ), - 'dirigeantFct' => array( - 'label' => "Dirigeant - Code Fonction", - 'column' => 'dirFct', - 'join' => array( - 'label' => 'Dirigeant - Libelle Fonction', - 'column' => 'libelle', - 'table' => 'jo.bodacc_fonctions', - 'cond' => 'jo.etablissements_act.dirFct = dirigeantFctL.codeFct') - ), - 'dirigeantnaiss' => array( - 'label' => "Dirigeant - Date de naissance", - 'column' => 'dirDateNaiss' - ), - 'nafetablissement' => array( - 'label' => "Code NAF Etablissement", - 'column' => 'ape_etab', - 'join' => array( - 'label' => 'NAF Etablissement - Libelle', - 'column' => 'libNaf5', - 'table' => 'jo.tabNaf5', - 'cond' => 'jo.etablissements_act.ape_etab = nafetablissementL.codNaf5') - ), - 'nafentreprise' => array( - 'label' => "Code NAF Entreprise", - 'column' => 'ape_entrep', - 'join' => array( - 'label' => 'NAF Entreprise - Libelle', - 'column' => 'libNaf5', - 'table' => 'jo.tabNaf5', - 'cond' => 'jo.etablissements_act.ape_entrep = nafentrepriseL.codNaf5') - ), - 'effetablissement' => array( - 'label' => "Effectif Etablissement", - 'column' => 'eff_etab' - ), - 'effentreprise' => array( - 'label' => "Effectif Entreprise", - 'column' => 'eff_entrep' - ), - 'teffetablissement' => array( - 'label' => "Code Tranche Effectif Etablissement", - 'column' => 'teff_etab', - 'values' => array( - 'NN' => "Unités non employeuses", //@todo : a vérifier NULL dans la base - '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", - ), - ), - 'teffentreprise' => array( - 'label' => "Code Tranche Effectif Entreprise", - 'column' => 'teff_entrep', - 'values' => array( - 'NN' => "Unités non employeuses", //@todo : a vérifier NULL dans la base - '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", - ), - ), - 'capital' => array( - 'label' => "Capital", - 'column' => 'capital' - ), - 'capitaldev' => array( - 'label' => "Devise Capital", - 'column' => 'capitalDev' - ), - 'ageentrep' => array( - 'label' => "Age de l'entreprise", - 'column' => 'age_entrep' - ), - 'ageetab' => array( - 'label' => "Age de l'établissement", - 'column' => 'age_etab' - ), - //autre_id - //capital - //tca - //tcaexp - 'nomcommercial' => array( - 'label' => "Nom commercial", - 'column' => 'nomCommercial', - ), - 'siteweb' => array( - 'label' => "Site web", - 'column' => 'web', - ), - 'mail' => array( - 'label' => "Adresse email", - 'column' => 'mail', - ), - //adrDom - //lieuAct - //explen - //explet - //actifEco - //procolHisto - //tvaIntraCle - //ape4_etab - //ape4_entrep - //NaceEtab - //NaceEntrep - //dateCrea_etab - //dateCrea_ent - //dateImmat - //distSP - //achPost - //rivoli - //lambert - //zus - //zru - //zfu - //cucs - //zrr - //zafr - 'nbetab' => array( - 'label' => "Nombre d'établissements", - 'column' => 'nbEtab', - ), - 'nbmpubli' => array( - 'label' => "Nombre de marché public remporté", - 'column' => 'nbMPubli', - ), - 'sirengrp' => array( - 'label' => "SIREN du groupe", - 'column' => 'sirenGrp', - ), - 'nbactio' => array( - 'label' => "Nombre d'actionnaires", - 'column' => 'nbActio', - ), - 'nbpart' => array( - 'label' => "Nombre de participations", - 'column' => 'nbPart', - ), - 'bilfl' => array( - 'label' => "CA total (FL)", - 'column' => 'bilFL', - ), - 'bilcloture' => array( - 'label' => 'Date de clôture du bilan', - 'column' => 'bilCloture', - ), - 'biltype' => array( - 'label' => 'Type du bilan', - 'column' => 'bilType', - 'values' => array( - '1' => 'Inconnus', - '2' => 'Réels', - '3' => 'Estimés' - ) - ), - //bilAnnee - //bilDuree - //avisCs - //risque - ); - - public function __construct(){} - - public function getFields() - { - return $this->fields; - } - - public function getSql($key) - { - if ( array_key_exists($key, $this->fields) ) { - if ( array_key_exists('sql', $this->fields[$key]) ){ - return $this->fields[$key]['sql']; - } - } - - return false; - } - - public function getColumnValue($key) - { - if ( array_key_exists($key, $this->fields) ) { - if ( array_key_exists('values', $this->fields[$key]) && count($this->fields[$key]['values'])>0 ){ - return $this->fields[$key]['values']; - } - } - return false; - } - -} \ No newline at end of file diff --git a/library/Scores/Fields.php b/library/Scores/Fields.php deleted file mode 100644 index c1b77be7..00000000 --- a/library/Scores/Fields.php +++ /dev/null @@ -1,1280 +0,0 @@ - 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', '3000')) - ), - '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', '3000')) - ), - '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() - { - - } - -} \ No newline at end of file diff --git a/public/themes/default/scripts/fields.js b/public/themes/default/scripts/fields.js index bde3bf2e..6631d06c 100644 --- a/public/themes/default/scripts/fields.js +++ b/public/themes/default/scripts/fields.js @@ -23,7 +23,7 @@ $(document).ready(function() return false; });*/ - $('div.critere-one input[type=radio]').change(function(e){ + $('div.ciblage-one input[type=radio]').change(function(e){ e.preventDefault(); var btn = $(this); var result = set(btn.attr('name'), btn.val()); @@ -32,31 +32,37 @@ $(document).ready(function() $('div.critere-one[name='+btn.attr('name')+']').button('reset'); } }); + + $('div.ciblage-many button').change(function(e){ + e.preventDefault(); + var key = $(this).data('ciblagename'); + var values = $('select[name='+key+']:selected').val(); + var result = set(key, values); + if (!result) { + alert('error'); + $('div.critere-one[name='+btn.attr('name')+']').button('reset'); + } + }); + + $('div.ciblage-range button').change(function(e){ + e.preventDefault(); + var key = $(this).data('ciblagename'); + var values = $('#slider-'+key).slider('getValue'); + alert(values); + }); + + $('div.ciblage-rangedate button').change(function(e){ + e.preventDefault(); + var key = $(this).data('ciblagename'); + var values = $('#slider-'+key).slider('getValue'); + alert(values); + }); - /*$('.panel-group').delegate('div.criteres label', 'change', function(e){ - e.stopPropagation(); - if ( !$(this).parent('div').attr('size') ){ - var valeur = $(this).find('input').val(); - set($(this).parent('div').attr('name'), valeur); - } - });*/ - - /*$('.panel-group').delegate('input[type=checkbox].criteres', 'click', function(e){ - e.stopPropagation(); - if($(this).is(':checked')) { - set($(this).attr('name'), 1); - } else { - set($(this).attr('name'), 0); - } - });*/ - - /*$('input[type=text].autocomplete') - .bind( "keydown", function( event ) { + $('input[type=text].autocomplete').bind('keydown', function( event ) { if ( event.keyCode === $.ui.keyCode.TAB && $(this).data("autocomplete").menu.active ) { event.preventDefault(); } - }) - .autocomplete({ + }).autocomplete({ minLength:2, source: function(request, response) { var val = extractLast( request.term ); @@ -79,9 +85,9 @@ $(document).ready(function() return false; }, close: function ( event, ui) { this.value = ''; }, - });*/ + }); - /*$('.panel-group').delegate('a.autocomplete', 'click', function(e){ + $('.panel-group').delegate('a.autocomplete', 'click', function(e){ e.stopPropagation(); var name = $(this).parent().find('input.criteres').attr('name'); var ul = $(this).parent().find('ul.selectqueries'); @@ -93,9 +99,9 @@ $(document).ready(function() set(name, values.join(',')); } ul.empty(); - });*/ + }); - /*$('.panel-group').delegate('a.autocompleteEx', 'click', function(e){ + $('.panel-group').delegate('a.autocompleteEx', 'click', function(e){ e.stopPropagation(); var name = $(this).parent().find('input.criteres').attr('name'); var ul = $(this).parent().find('ul.selectqueries'); @@ -107,141 +113,31 @@ $(document).ready(function() set(name, values.join(','), 1); } ul.empty(); - });*/ - - /*$('.panel-group').delegate('a.selectMultiple', 'click', function(e){ - e.stopPropagation(); - var obj = $(this).parent().find('label.active input'); - set(obj.attr('name'), obj.val()); - });*/ - - /*$('.panel-group').delegate('a.selectMultipleEx', 'click', function(e){ - e.stopPropagation(); - var obj = $(this).parent().find('select.criteres'); - set(obj.attr('name'), obj.val(), 1); - });*/ - - /*$('.panel-group').delegate('a.intervalDate', 'click', function(e){ - e.preventDefault(); - var key = $(this).attr('id'); - var val1 = $('select[name='+key+'1_a]').val() + $('select[name='+key+'1_m]').val() + $('select[name='+key+'1_j]').val(); - var val2 = $('select[name='+key+'2_a]').val() + $('select[name='+key+'2_m]').val() + $('select[name='+key+'2_j]').val(); - if(!val1) val1 = ''; - if(!val2) val2 = ''; - var values = val1 + ',' + val2; - set(key, values); - return false; - });*/ - - /*$('.panel-group').delegate('a.interval', 'click', function(e){ - e.preventDefault(); - var key = $(this).attr('id'); - var val1 = $('input[name='+key+'1]').val(); - var val2 = $('input[name='+key+'2]').val(); - if(!val1) val1 = ''; - if(!val2) val2 = ''; - var values = val1 + ',' + val2; - set(key, values); - return false; - });*/ - - /*$('.panel-group').delegate('a.intervalSelect', 'click', function(e){ - e.preventDefault(); - var key = $(this).attr('id'); - var values = $('select[name='+key+'1] option:selected').val()+','+$('select[name='+key+'2] option:selected').val(); - set(key, values); - return false; - });*/ - - /*$('.panel-group').delegate('a.arborescence', 'click', function(e) { - e.preventDefault(); - var title = $(this).attr('title'); - var href = $(this).attr('href'); - var dialogOpts = { - bgiframe: true, - title: title, - width: 900, - height: 500, - modal: true, - open: function(event, ui) { - $(this).html('Chargement...'); - $(this).load(href); - }, - buttons: { - Valider: function() { - var key = $('div.jstree').attr('id'); - var elements = []; - $('div.jstree').jstree("get_checked").each(function(){ - elements.push(this.id); - }); - set(key, elements.join(",")); - $(this).dialog('close'); - }, - Fermer: function() { $(this).dialog('close'); } - }, - close: function() { $('#dialogtree').remove(); } - }; - $('
').dialog(dialogOpts); - return false; - });*/ - - /*$('.panel-group').delegate('a.text', 'click', function(e) { - e.preventDefault(); - var id = $(this).attr('id'); - if ($('div#field_text_'+id).css('display') == 'none') { - $('div#field_text_'+id).show('blind'); - } else { - $('div#field_text_'+id).hide('blind'); - } - });*/ - - /*$('.panel-group').delegate('a.dlist', 'click', function(e) { - e.preventDefault(); - var id = $(this).attr('id'); - if ($('div#field_list_'+id).css('display') == 'none') { - $('div#field_list_'+id).show('blind'); - } else { - $('div#field_list_'+id).hide('blind'); - } - });*/ - - /*$('.panel-group').delegate('a.list', 'click', function(e){ - e.stopPropagation(); - var obj = $(this).parent().find('textarea.criteres'); - //regexp - - set(obj.attr('name'), obj.val()); - });*/ - - /*$('.panel-group').delegate('a.listEx', 'click', function(e){ - e.stopPropagation(); - var obj = $(this).parent().find('textarea.criteres'); - //regexp - - set(obj.attr('name'), obj.val(), 1); - });*/ + }); }); function set(key, value, ex) { ex = typeof ex !== 'undefined' ? ex : 0; $('#panel').html(''); + var result = false; $.post('/comptage/index', { cle:key, valeur:value, exclude:ex }, function(data, status) { //Resume criteres content $.post('/index/criteres', { total:data.count, insee:data.insee }, function(data) { $('#panel').html(data); }); if (data.error==1) { $('div#actionMessage').html('
Erreur ! Un problème technique est survenu.
'); - return false; + result = false; } if (data.error==2) { $('div#actionMessage').html('
Information ! Valeur saisi incorrecte.
'); - return false; + result = false; } return true; }, 'json').error(function(){ $('div#actionMessage').html('
Erreur ! Un problème inconnu est survenu.
'); - return false; + result = false; }); + return result; } function split( val ) { diff --git a/scripts/build/configure.php b/scripts/build/configure.php index 7779093c..001bcf63 100644 --- a/scripts/build/configure.php +++ b/scripts/build/configure.php @@ -58,6 +58,10 @@ if(isset($opts->install)) mkdir(APPLICATION_PATH . '/../data'); mkdir(APPLICATION_PATH . '/../data/sessions'); + //Initialisation du cache des valeurs des champs + + + //Modification des permissions passthru('chown -R www-data: '.APPLICATION_PATH.'/../'); passthru('chmod +x '.APPLICATION_PATH.'/../scripts/cron.php'); diff --git a/scripts/build/setCache.php b/scripts/build/setCache.php new file mode 100644 index 00000000..9767c9ca --- /dev/null +++ b/scripts/build/setCache.php @@ -0,0 +1,123 @@ + array( + __DIR__ . '/../../library/Zend/autoload_classmap.php', + __DIR__ . '/../../library/Application/autoload_classmap.php', + __DIR__ . '/../../library/Scores/autoload_classmap.php', + __DIR__ . '/../../application/autoload_classmap.php', + ), + 'Zend_Loader_StandardAutoloader' => array( + 'prefixes' => array( + 'Zend' => __DIR__ . '/../../library/Zend', + 'Application' => __DIR__ . '/../../library/Application', + 'Scores' => __DIR__ . '/../../library/Scores', + ), + 'fallback_autoloader' => true + ) +)); + +// Create application, bootstrap, and run +$application = new Zend_Application( + APPLICATION_ENV, + APPLICATION_PATH . '/configs/application.ini' +); + +try { + $opts = new Zend_Console_Getopt( + //Options + array( + 'help|?' => "Aide.", + 'key-s' => "Genere le cache des valeurs pour un element", + 'minmax' => "", + 'table' => "", + 'overwrite' => "Ecraser le fichier", + ) + ); + $opts->parse(); +} catch (Zend_Console_Getopt_Exception $e) { + echo $e->getUsageMessage(); + exit; +} + +//Usage +if(isset($opts->help)) +{ + echo $opts->getUsageMessage(); + exit; +} + +$config = new Zend_Config($application->getOptions()); +try { + $db = Zend_Db::factory($config->profil->db->metier); +} catch ( Exception $e ) { + exit ( $e->getMessage() ); +} + +Zend_Db_Table::setDefaultAdapter($db); + +$fields = new Scores_Ciblage_FieldList(); + +$list = $fields->getItemsStruct(); +foreach ( $list as $key => $item ) { + + if ( $opts->key!=null && $opts->key != $key) continue; + + if ( $opts->table && array_key_exists('sql', $item) ) { + + $file = APPLICATION_PATH . '/../library/Scores/Table/'.$key.'.php'; + if ( $opts->overwrite && file_exists($file) ) { + unlink($file); + } + if ( !file_exists($file) ) { + echo "Create cache for ".$key." => ".$file; + $values = $fields->getItemValues($key); + file_put_contents($file, " $v ) { + file_put_contents($file, "\t'".$k."' => \"".$v."\",\n", FILE_APPEND); + } + file_put_contents($file, ");", FILE_APPEND); + echo " - OK\n"; + } + + } elseif ( $opts->minmax && array_key_exists('minmax', $item) ) { + + $file = APPLICATION_PATH . '/../library/Scores/Table/'.$key.'.php'; + if ( file_exists($file) ) unlink($file); + + if ( $opts->overwrite && file_exists($file) ) { + unlink($file); + } + if ( !file_exists($file) ) { + echo "Create cache for ".$key." => ".$file; + $values = $fields->getItemValues($key); + file_put_contents($file, " ".$values['min'].",\n", FILE_APPEND); + file_put_contents($file, "\t'max'=> ".$values['max'].",\n", FILE_APPEND); + file_put_contents($file, ");", FILE_APPEND); + echo " - OK\n"; + } + + } + +} diff --git a/scripts/jobs/setMinMax.php b/scripts/jobs/setMinMax.php index fb4b3491..c65927e9 100644 --- a/scripts/jobs/setMinMax.php +++ b/scripts/jobs/setMinMax.php @@ -13,7 +13,27 @@ set_include_path(implode(PATH_SEPARATOR, array( ))); /** Zend_Application */ -require_once 'Zend/Application.php'; +//require_once 'Zend/Application.php'; + +//Use classmap autoloader - useful with opcode and realpath cache +require_once 'Zend/Loader/AutoloaderFactory.php'; +require_once 'Zend/Loader/ClassMapAutoloader.php'; +Zend_Loader_AutoloaderFactory::factory(array( + 'Zend_Loader_ClassMapAutoloader' => array( + __DIR__ . '/../../library/Zend/autoload_classmap.php', + __DIR__ . '/../../library/Application/autoload_classmap.php', + __DIR__ . '/../../library/Scores/autoload_classmap.php', + __DIR__ . '/../../application/autoload_classmap.php', + ), + 'Zend_Loader_StandardAutoloader' => array( + 'prefixes' => array( + 'Zend' => __DIR__ . '/../../library/Zend', + 'Application' => __DIR__ . '/../../library/Application', + 'Scores' => __DIR__ . '/../../library/Scores', + ), + 'fallback_autoloader' => true + ) +)); // Create application, bootstrap, and run $application = new Zend_Application(