view->headLink()->appendStylesheet('/themes/default/styles/recherche.css', 'all'); } public function indexAction() { $this->_forward('entreprise'); } /** * Affiche le formulaire de recherche entreprise */ public function entrepriseAction() { $request = $this->getRequest(); $this->view->headTitle()->append('Recherche Entreprise'); require_once 'Web/Forms/RechercheEntreprise.php'; $form = new Form_RechercheEntreprise(); if ( $request->isPost() || $request->isGet() ){ $form->populate($request->getParams()); } $this->view->form = $form; } /** * Affiche le formulaire de recherche dirigeants */ public function dirigeantAction() { $this->view->headTitle()->append('Recherche Dirigeant'); require_once 'Web/Forms/RechercheDirigeant.php'; $form = new Form_RechercheDirigeant(); if ( $request->isPost() || $request->isGet() ){ $form->populate($request->getParams()); } $this->view->assign('form', $form); } /** * Affiche le formulaire de recherche actionnaire * @todo : style pour les pourcentages */ public function actionnaireAction() { $this->view->headTitle()->append('Recherche Actionnaire'); require_once 'Web/Forms/RechercheActionnaire.php'; $form = new Form_RechercheActionnaire(); $this->view->assign('form', $form); } /** * Affiche le formulaire de recherche annonces */ public function annonceAction() { $this->view->headTitle()->append('Recherche Annonce'); } public function annoncelisteAction() { $request = $this->getRequest(); $params = $request->getParams(); $session = new RechercheHistorique(); $session->save('annonce', $params); if( !isset($params['formA']['annee']) && isset($params['formA']['dateparution']) ) { $dateparution = str_replace('/', '', $dateparution); $jj = substring($annee, 0, 2); $mm = substring($annee, 2, 2); $aa = substring($annee, 4, 4); $dateparution = $aa.$mm.$jj; } $p = $request->getParam('p', 0); require_once 'Scores/Utilisateur.php'; $user = new Utilisateur(); $client = new SoapClient(null, array( 'trace' => 1, 'soap_version' => SOAP_1_1, 'location' => 'http://78.31.45.206:8088/ws/', 'uri' => 'http://78.31.45.206:8088/', 'login' => $user->getLogin(), 'password' => $user->getPassword(), )); if($params['formA']['histo']!='on') { $ra = array(); $ra['dateAnnee'] = $params['formA']['annee']; $ra['numParution'] = $params['formA']['nparution']; if($params['formA']['source']=='bodacc') { $ra['source'] = strtoupper('bod'.$params['formA']['bodacc']); $ra['numAnnonce'] = $params['formA']['nannonce']; } elseif($params['formA']['source']=='balo') { $ra['source'] = strtoupper($params['formA']['source']); $ra['numAnnonce'] = $params['formA']['naffaire']; } elseif($params['source']=='asso') { $ra['source'] = strtoupper($params['formA']['source']); $ra['numAnnonce'] = $params['formA']['nannonce']; } try { /* $source IN ('BODA', 'BODB', 'BODC', 'ASSO', 'BALO') $dateAnnee 1999 ou 1999-11-23 $numParution entre 1 et YYYYY $numAnnonce entre 1 et XXXXX */ $O = $client->rechercheAnnonce($ra['source'], $ra['dateAnnee'], $ra['numParution'], $ra['numAnnonce']); } catch (SoapFault $fault) { //Gestion des erreurs } $parametresTxt = array( 'source'=>'Source', 'annee'=>'Année', 'dateparution'=>'Date de parution', 'nparution'=>'Numéro de parution', 'bpage'=>'Page', 'nannonce'=>'Numéro d\'annonce', 'naffaire'=>'Numéro d\'affaire', 'txt'=>'Recherche'); $strCriteres = ''; foreach ($parametresTxt as $key => $param) { if($params['formA'][$key]!='' && $param!='') { $strCriteres.= $param.' : '.$params['formA'][$key].' '; } } } else { require_once 'i18n/cleanchar.php'; //Suppression des caractères accentués $txt = cleanstring($params['formA']['txt']); //Remplacement du caractère § par ~ $txt = str_replace('$', '~', $txt); // Recherche siren tenant compte des anomalies d'OCR $txt = preg_replace('/([0-9]{3})([0-9]{3})([0-9]{3})/','"$1$2$3"|"$1 $2$3"|"$1$2 $3"|"$1 $2 $3"', $txt); try { Zend_Registry::get('firebug')->info("Execution rechercheHisto"); $O = $client->rechercheHisto($txt, $params['formA']['annee'], $params['formA']['bodacc'], $p, $user->getNbRep()); Zend_Registry::get('firebug')->info($O); } catch (SoapFault $fault) { //Gestion des erreurs Zend_Registry::get('firebug')->info($fault); } $parametresTxt = array( 'source'=>'Source', 'bodacc'=>'Type', 'histo'=>'', 'annee'=>'Année', 'dateparution'=>'Date de parution', 'nparution'=>'Numéro de parution', 'bpage'=>'Page', 'nannonce'=>'Numéro d\'annonce', 'naffaire'=>'Numéro d\'affaire', 'txt'=>'Recherche'); $strCriteres = ''; foreach ($parametresTxt as $key => $param) { if($params['formA'][$key]!='' && $param!='') { $strCriteres.= $param.' : '.$params['formA'][$key].', '; } } } $this->view->assign('O', $O); $this->view->assign('strCriteres', $strCriteres); $this->view->assign('histo', $params['formA']['histo']); $this->view->assign('nbReponses', $user->getNbRep()); } public function internationaleAction(){} public function lastAction() { $this->view->headTitle()->append('Liste des dernières recherches'); $rechercheSession = new RechercheHistorique(); $derniereRecherche = $rechercheSession->item(0); $params = array_merge(array('type'=> $derniereRecherche['type']), $derniereRecherche['params']); $this->_forward('liste', 'recherche', null, $params); } public function listAction() { $this->view->headTitle()->append('Liste des dernières recherches'); $rechercheSession = new RechercheHistorique(); $this->view->assign('historique', $rechercheSession->liste()); } public function enqueteAction() { $this->view->headTitle()->append('Enquête'); require_once 'Scores/Utilisateur.php'; require_once 'Web/Forms/RechercheEnquete.php'; $user = new Utilisateur(); if (!$user->checkPerm('INVESTIG')){ $this->renderScript('error/error-perms.phtml'); } $form = new Form_RechercheEnquete(); $user = new Utilisateur(); $request = $this->getRequest(); if ($request->isPost() && $form->isValid($request->getParams())) { Zend_Registry::get('firebug')->info($form->getValues()); $config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/configuration.ini', 'path'); $path = realpath($config->data).'/'.$config->log; $fp = fopen($path.'/enquetes.csv', 'a'); fwrite($fp, date('Y/m/d H:i:s').' - '.print_r($form->getValues(),true)."\n"); fclose($fp); $message = "Détail de la demande d'investigation
"; foreach($form->getValues() as $key => $value) { $message.= ucwords($key)." : ".$value."
"; } $message.= "
"; $message.= "Identité du demandeur
"; $message.= "Login : ".$user->getLogin()."
"; $message.= "Email : ".$user->getEmail()."
"; $message.= "Nom : ".$user->getNom()."
"; $message.= "Prénom : ".$user->getPrenom()."
"; $objet = "Demande d'investigation"; require_once 'Scores/Mail.php'; $mail = new Mail(); $mail->setFrom('contact'); $mail->addToKey('production'); $mail->setSubject($objet); $mail->setBodyHtml($message); $mail->send(); } else { //Affichage formulaire $data = array( 'email' => $user->getEmail() ); if ($request->isPost()){ $data = $form->getValues(); } $form->populate($data); $this->view->assign('form', $form); } } /** * Affiche les résultats d'une recherche */ public function listeAction() { $request = $this->getRequest(); $params = $request->getParams(); $type = $request->getParam('type', ''); $rechercheParams = new RechercheHistorique(); //Si le formulaire a été soumis alors on enregistre en session et on redirige if ( !empty($type) ) { $rechercheParams->save($type, $params); $this->_redirect('recherche/liste'); } //On selectionne en session if (count($rechercheParams->liste())>0){ $recherche = $rechercheParams->item(0); $type = $recherche['type']; $params = $recherche['params']; } Zend_Registry::get('firebug')->info($type); Zend_Registry::get('firebug')->info($params); //Giant if( !empty($params['pays']) && $type=='ent' ){ $this->_forward('search', 'giant'); } $page = $request->getParam('page', 1); if ($page==0) $page = 1; require_once 'Scores/WsScores.php'; $ws = new WsScores(); $position = $page-1; //Criteres recherche entreprise if ($type=='ent'){ Zend_Registry::get('firebug')->info('RECHERCHE ENTREPRISE'); // Type de recherche = entreprises $telFax = trim(preg_replace('/[^0-9]/', '', $params['telFax'])); $naf = trim(preg_replace('/[^0-9A-Z]/i', '', $params['naf'])); // Traitement des données formulaire $raisonSociale = preg_replace('/[^0-9A-Z]/', ' ', strtoupper($params['raisonSociale'])); $numVoie = preg_replace('/[^0-9]/', '', $params['numero']); if ($numVoie > 9999) { die('Numéro de voie incorrecte !'); } $libVoie = preg_replace('/[^0-9A-Z]/', ' ', strtoupper($params['voie'])); $cpVille = preg_replace('/ +/',' ', preg_replace('/[^0-9A-Z]/', ' ', strtoupper($params['cpVille']))); if (preg_match("/^([0-9]{2,5})([\D]*)/i", $cpVille, $matches)) { $cp = trim($matches[1]); $ville = trim($matches[2]); } else { $cp = ''; $ville = trim($cpVille); } $criteres = array(); $criteres['identifiant'] = str_replace(' ', '', $params['siret']); $criteres['raisonSociale'] = $raisonSociale; $criteres['adresse'] = $numVoie.' '.$libVoie; $criteres['codePostal']= $cp; $criteres['ville'] = $ville; $criteres['telFax'] = $telFax; $criteres['naf'] = $naf; $criteres['siege'] = false; $criteres['actif'] = false; $reponse = $ws->searchEntreprise($criteres, $position); Zend_Registry::get('firebug')->info($reponse); //Criteres recherche dirigeants } else if ($type=='dir') { Zend_Registry::get('firebug')->info('RECHERCHE DIRIGEANT'); // Type de recherche = dirigeants $dirNom = preg_replace('/[^0-9A-Z]/', ' ', strtoupper($params['dirNom'])); $dirPrenom = preg_replace('/[^0-9A-Z]/', ' ', strtoupper($params['dirPrenom'])); $dirDateNaissJJ = preg_replace('/[^0-9]/', '', $params['dirDateNaissJJ']); if (intval($dirDateNaissJJ)<0 || intval($dirDateNaissJJ>31)){ //die('Jour de naissance incorrect !'); } $dirDateNaissMM = preg_replace('/[^0-9]/', '', $params['dirDateNaissMM']); if (intval($dirDateNaissMM)<0 || intval($dirDateNaissMM>31)){ //die('Mois de naissance incorrect !'); } $dirDateNaissAAAA = preg_replace('/[^0-9]/', '', $params['dirDateNaissAAAA']); $year = date('Y')-18; if (intval($dirDateNaissAAAA)<0 || intval($dirDateNaissAAAA)>$year){ //die('Année de naissance incorrecte !'); } $dirDateNaiss = $dirDateNaissJJ.'/'.$dirDateNaissMM.'/'.$dirDateNaissAAAA; if ($dirDateNaiss=='//') $dirDateNaiss = ''; $dirCpVille = preg_replace('/ +/',' ', preg_replace('/[^0-9A-Z]/', ' ', strtoupper($formR['dirCpVille'])) ); if (preg_match('/^([0-9]{2,5})([\D]+)/i', $dirCpVille, $matches)) { $dirCp = trim($matches[1]); $dirVille = trim($matches[2]); } else { $dirVille = trim($dirCpVille); } $criteres = array(); $criteres['dirNom'] = $dirNom; $criteres['dirPrenom'] = $dirPrenom; $criteres['dirDateNaiss'] = $dirDateNaiss; $criteres['lieuNaiss'] = $dirVille; $reponse = $ws->searchDir($criteres, $position); } elseif ($type == 'act') { $siret = preg_replace('/[^0-9]/', '',$params['siret']); $actNomRs = trim($params['actNomRs']); $pays = $params['pays']; $pctMin = preg_replace('/[^0-9]/', '', trim($params['pctMin'])); $pctMax = preg_replace('/[^0-9]/', '', trim($params['pctMax'])); $cpVille = preg_replace('/ +/',' ', preg_replace('/[^0-9A-Z]/', ' ',strtoupper($params['cpVille']))); $reponse = $ws->searchAct($actNomRs, $cpVille, $siret, $pays, $pctMin, $pctMax, $position); Zend_Registry::get('firebug')->info($reponse); } if ($reponse !== false) { $etabs = $reponse->result->item; $criteresTexte = ''; foreach ($criteres as $value){ if (!empty($value)) $criteresTexte.= $value.' '; } $criteresTexte = trim($criteresTexte); if ($type=='ent'){ $params['action'] = 'entreprise'; } elseif ($type=='dir') { $params['action'] = 'dirigeant'; } elseif ($type=='act'){ $params['action'] = 'actionnaire'; } $criteresLien = $this->view->url($params); $info = $reponse->info; $nbReponses = $reponse->nbReponses; $nbReponsesTotal = $reponse->nbReponsesTotal; if ($nbReponses < $nbReponsesTotal) { $totPage = ceil($nbReponsesTotal/$nbReponses); $curPage = $position+1; } else { $totPage = $curPage = 1; } $liste = array(); if (count($etabs)>0) { foreach($etabs as $i => $etab) { Zend_Registry::get('firebug')->info($etabs); $item = array(); $item['position'] = ($position*$nbReponses)+$i+1; $item['id'] = $etab->id; $item['siren'] = $etab->Siren; $item['siret'] = $etab->Siren.$etab->Nic; $item['InfoSiret'] = $etab->Siren.' '.$etab->Nic; $item['InfoNom'] = $etab->Nom; $nomDetail = ''; if ($etab->Nom2<>'' || $etab->Enseigne<>'' || $etab->Sigle<>'') { $nomDetail.= ''; if ($etab->Nom2!='') $nomDetail.= $etab->Nom2.'
'; if ($etab->Enseigne<>'') $nomDetail.= 'Enseigne : '.$etab->Enseigne.'    '; if ($etab->Sigle<>'') $nomDetail.= 'Sigle : '.$etab->Sigle; $nomDetail.= '

'; } $item['InfoNomDetail'] = $nomDetail; $item['InfoSiret'] = substr($etab->Siren,0,3).' '. substr($etab->Siren,3,3).' '. substr($etab->Siren,6,3).' '. $etab->Nic; $infoEtab = ''; if ($etab->Siege==1){ $infoEtab.= 'Établissement siège '; } else { $infoEtab.= 'Établissement secondaire '; } if ($etab->Actif==1){ $infoEtab.= 'actif'; } else { $infoEtab.= 'inactif'; } if (intval($etab->Nic)==0 || intval($item->Nic)>=99990) { $infoEtab.=' provisoire'; } if ($etab->Siege!=1 || ($etab->Siege==1 && $etab->Actif!=1)) { $url = $this->view->url(array( 'controller'=>'identite', 'action'=>'fiche', 'id' => $etab->id, 'siren' => $etab->Siren, )); $infoEtab.= ' (Accès siège)'; } $item['InfoEtab'] = $infoEtab; $adresse = $etab->Adresse.'
'; if (isset($etab->Adresse2) && $etab->Adresse2 != '') { $adresse.= $etab->Adresse2.'
'; } $adresse.= "".$etab->CP." ".$etab->Ville.""; $item['InfoAdresse'] = $adresse; $forme = ''; if (trim($etab->FJ)!='') { $forme = 'Forme : '.$etab->FJLib.' ('.$etab->FJ.')
'; } $item['InfoForme'] = $forme; $activite = ''; if (trim($etab->NafEnt)!='') { $activite = 'Activité : '.$etab->NafEntLib.' ('.$etab->NafEnt.')
'; } $item['InfoActivite'] = $activite; if ($type=='dir') { $item['InfoDirigeant'] = 'Dirigeant recherché : '; if ($etab->DirRs!='') { $item['InfoDirigeant'].= ''.$etab->DirRs.', représenté par '; } $item['InfoDirigeant'].= $etab->DirNom .' '. $etab->DirPrenom; if ($etab->DirNomUsage<>'' && $etab->DirNomUsage<>$etab->DirNom) { $item['InfoDirigeant'].= ' ('. $etab->DirNomUsage . ')'; } $item['InfoDirigeant'].= ', '.$etab->DirFonction.'
'; } elseif ($type=='act'){ $item['InfoActionnaire'] = 'Actionnaire recherché : '; if ($etab->ActNomRs<>'') { $item['InfoActionnaire'].= ''. $etab->ActNomRs . ''; if ($etab->ActPays!='' && $etab->ActPays!='FRA') $item['InfoActionnaire'].= ' ('.$etab->ActPays.')'; $preDate = ', le '; if ($etab->ActActif==0){ $preDate = ', avant le '; } if ($etab->ActDateLien!='') $item['InfoActionnaire'].= $preDate.WDate::dateT('Y-m-d', 'd/m/Y',$etab->ActDateLien); if ($etab->ActPmin!='') { if($etab->ActPmin<1){ $item['InfoActionnaire'].= ', minoritaire '; } else { $item['InfoActionnaire'].= ', à '.$etab->ActPmin.' %'; } } } $item['InfoActionnaire'].= '
'; } $liste[] = $item; } } } else { $this->_forward('soap', 'error'); } require_once 'Scores/Utilisateur.php'; $user = new Utilisateur(); $this->view->assign('blockInvestig', $user->checkPerm('INVESTIG')); if ($type=='dir') { $this->view->assign('blockDirToEntreprise', true); $this->view->assign('searchDirToEntrepriseTxt', trim($critere['nom'].' '.$criteres['prenom'])); $this->view->assign('searchDirToEntrepriseLien', $this->view->url(array( 'action' => 'list', 'type' => 'ent', 'raisonSociale' => trim($critere['nom'].' '.$criteres['prenom']) ))); } else { $this->view->assign('blockDirToEntreprise', false); } $this->view->assign('liste', $liste); $this->view->assign('totPage', $totPage); $this->view->assign('curPage', $curPage); $this->view->assign('nbReponses', $nbReponses); $this->view->assign('nbReponsesTotal', $nbReponsesTotal); $this->view->assign('criteresTexte', $criteresTexte); $this->view->assign('criteresLien', $criteresLien); $this->view->assign('info', $info); } public function ipariAction() { $user = new Utilisateur(); $url = 'http://ipari.scores-decisions.com/?action=logon&login='.$user->getLogin(). '&hach='.$user->getPassword().'&pass='; if (!empty($this->siret)){ $url.= '&siret='.$this->siret; } $this->_redirect($url); } public function nafAction() { $this->_helper->layout()->disableLayout(); $this->_helper->viewRenderer->setNoRender(true); $q = strtolower($this->getRequest()->getParam('q', '')); $dbConfig = new Zend_Config_Ini(APPLICATION_PATH.'/configs/databases.ini'); $db = Zend_Db::factory($dbConfig->db->sdv1); Zend_Db_Table_Abstract::setDefaultAdapter($db); $naf = new Application_Model_Naf5(); $rowset = $naf->select('codNaf5, libNaf5') ->where("codNaf5 LIKE '%$q%' OR libNaf5 LIKE '%$q%'") ->order('poids DESC'); $rows = $naf->fetchAll($rowset); $output = array(); if (count($rows)>0){ $separator = " , "; foreach ($rows as $item) { if (strpos(strtolower($item->codNaf5), $q) !== false || strpos(strtolower($item->libNaf5), $q) !== false ) { $output[] = array( 'label' => $item->codNaf5 . $separator . $item->libNaf5, 'value' => $item->codNaf5, ); } } } echo json_encode($output); } }