class MQualibat { private $referer =''; private $body = ''; private $header = ''; private $cookie = ''; private $codeRetour = 0; private $accesDist=true; private $iDb; private $iBodacc; private $iInsee; public $enCache=false; public $force=false; public $annee=0; function __construct($accesDist=true) {// $adresse, $cp, $ville, $pays='France') { $this->accesDist=$accesDist; $this->iDb=new WDb('sdv1'); $this->iBodacc=new MBodacc(); $this->$iInsee=new MInsee(); } private function getCodeFctDirigeant($strLibDirigeant, $siren=0) { $tabTmp=$this->iBodacc->getDirigeants($strLibDirigeant); if (isset($tabTmp[0]['fonction']) && $tabTmp[0]['fonction']>0) return $tabTmp[0]['fonction']; else { if (preg_match("/directeur.{1,6}agence/iu")) return 8; elseif (preg_match("/directeur.{1,6}ETABLISSEMENT/iu")) return 8; elseif (preg_match("/directeur.{1,6}technique/iu")) return 19; elseif (preg_match("/chef.{1,8}agence/iu")) return 38; elseif (preg_match("/cadre.{1,8}Comptable/iu")) return 55; elseif (preg_match("/Charg.{1,6}affair/iu")) return 60; elseif (preg_match("/chef.{1,8}Atelier/iu")) return 60; elseif (preg_match("/(conducteur|chef).{1,9}travaux/iu")) return 61; elseif (preg_match("/directeur.{1,6}technique/iu")) return 19; elseif (preg_match("/resp.{1,16}technique/iu")) return 49; elseif (preg_match("/resp.{1,16}Expl/iu")) return 37; elseif (preg_match("/di.{1,16}Expl/iu")) return 7; elseif (preg_match("/Chef.{1,6}Ent/iu")) { $tabTmp=$this->iInsee->getIdentiteLight($siren); if ($tabTmp['FJ']>=1000 && $tabTmp['FJ']<2000) return 1050; else die($tabTmp); } else return false; } /* "1","- DIRECTEUR GENERAL" "1","- P.d.g." "1","- PRESIDENT CONSEIL D''ADMINISTRATION" "2","-co-gerant" "1","Administrateur" "2","Artisan" "1","AssociÉ" "1","Associes" "24","Co Gerant" "1","Co Gerante" "1","CO GERANTS" "109","Co-gérant" "12","Co-gérante" "1","Dg Delegue" "1","Dir. General Delegue" "32","Directeur" "1","Directeur Adjoint" "1","Directeur Administratif et Financier" "1","Directeur Gal DÉlÉguÉ" "61","Directeur Général" "11","DIRECTEUR GENERAL DELEGUE" "1","Directeur Général Unique" "1","Directrice" "2","DIRIG." "4","Dirigeant" "38","Gér" "857","Gerant" "3","Gerant -" "13","Gérant Associé" "1","Gérant Associé En Non Collectif" "1","GERANT MAJORITAIRE" "2","Gérant Non Associé" "56","Gérante" "4","P D G" "1","P.d.g" "1","PCA" "168","PRESIDENT" "1","President Conseil De Surveillance" "1","PRESIDENT CONSEIL SURVEILLANCE" "63","Président Directeur Général" "1","PRESIDENT DIRECTOIRE" "16","Président du conseil d'administration" "1","Président Du Conseil De Surveillance" "5","President Du Directoire" "10","Presidente" "1","ReprÉsentant SociÉtÉ PrÉsidente" "1","Vice-président" Gérer en fonction du code CJ "128","Chef D'entreprise" "2","Chef Ent." "3","Chef Entr." "1","Conjoint Collaborateur"=>0500 "1","Metreur" "1","Président De Commission" */ } public function getMaxQualibat() { $ret=$this->iDb->select('sdv1.qualibat','MAX(id) AS id', '1', false, MYSQL_ASSOC); return $ret[0]['id']; } public function getTabQualibatManquants() { $tabRet=$tabQualibatCalc=$tabQualibatBase=array(); // Liste des Qualibat Calculés $maxQualibat=$this->getMaxQualibat(); for($i=1; $i<=$maxQualibat; $i++) $tabQualibatCalc[]=$i; // Liste des Qualibat en base $ret=$this->iDb->select('sdv1.qualibat','id', '1 ORDER BY id ASC', false, MYSQL_ASSOC); foreach ($ret as $i=>$res) $tabQualibatBase[]=$res['id']; return array_diff($tabQualibatCalc, $tabQualibatBase); } public function getInfosQualibat($siren, $idQualibat=0) { if ($siren*1>1000) $strWhere="siren=$siren"; elseif ($idQualibat*1>0) { $strWhere="id=$idQualibat"; } else return false; $ret=$this->iDb->select('sdv1.qualibat','siren, actif, id, nom, adresse, cp, ville, tel, fax, email, web, eff, teff, ca, tca, libFJ, nace, dateFondation, dateDeb, dateFin, dateInsert', $strWhere, false, MYSQL_ASSOC); if (!$this->force && count($ret)>0) { $this->enCache=true; $tabRet=$ret[0];//array(); // Ajout des qualifications $ret=$this->iDb->select('sdv1.qualibatqualif','code, periodQualif, niveauQualif, mentions, nomQualif, dateAttrib, dateEch', $strWhere, false, MYSQL_ASSOC); foreach ($ret as $i=>$tabTmp) $tabRet['qualifications'][]=$tabTmp; // Ajout des dirigeants $ret=$this->iDb->select('sdv1.qualibatdir','civNomPrenom, civilite, nom, prenom, fonction', $strWhere, false, MYSQL_ASSOC); foreach ($ret as $i=>$tabTmp) $tabRet['dirigeants'][]=$tabTmp; } elseif ($this->accesDist==true) { $this->enCache=false; // Initialisation Cookies $this->referer='http://www.qualibat.com/Views/EntreprisesRechercheDetail.aspx?id='.$idQualibat; $page=getUrl($this->referer, '', '', '', false, '', '', 3); if ($page['code']<>200) { if ($page['code']==500) { $tabInsert=array( 'actif'=>0, 'id'=>$idQualibat, 'idQualibatAttribue'=>0, 'dateInsert'=>date('YmdHis')); $this->erreur='Numéro Qualibat inexistant'; // On enregistre ce numéro comme non attribué si < au dernier numéro attribué if ($idQualibat<$this->getMaxQualibat()) $this->iDb->insert('sdv1.qualibat', $tabInsert); } return false; } $body=$page['body']; //die($body); $tabRet['id']=$idQualibat; if (preg_match('/
(?:.*)(Qualifications professionnelles|Certifications m..tier)(?:.*) | (.*)<\/table>/Uisu',$body, $matches)) { $typeQualifs=trim(utf8_decode($matches[1])); $qualifs=trim($matches[2]); } if (preg_match('/(?:.*)Fondation(?:.*)<\/th>(?:.*) | (.*)<\/td>(.*) |
---|