From 9e9f5d905788894a939144c80a0296ee0bc5b6a1 Mon Sep 17 00:00:00 2001 From: Michael RICOIS Date: Thu, 11 Feb 2016 15:31:37 +0000 Subject: [PATCH] Add sirenage --- html/sirenage/index.php | 650 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 650 insertions(+) create mode 100644 html/sirenage/index.php diff --git a/html/sirenage/index.php b/html/sirenage/index.php new file mode 100644 index 00000000..bf2a8fbc --- /dev/null +++ b/html/sirenage/index.php @@ -0,0 +1,650 @@ +select( 'sdv1.utilisateurs', + 'id, email', + "login='$user' AND password='$pwd' AND idClient IN (1,147) AND actif=1 AND deleted=0"); +$_SESSION['userId']=$tabTmp[0][0]; +$_SESSION['userMail']=$tabTmp[0][1]; + + if ( $_SESSION['userId'] ) {//&& $_SESSION['auth']) { + $authorized = true; + } +} else { + +//if (isset($_GET["login"]) && (! $authorized)) { + header('WWW-Authenticate: Basic Realm="Login please"'); + header('HTTP/1.0 401 Unauthorized'); + $_SESSION['auth'] = true; + print('Login now or forever hold your clicks...'); + exit; +} + +if (!$authorized) { +?>

you have logged!

'') { + $tmp=explode('-', $_REQUEST['getFile']); + $idFlux=$tmp[1]; + $idClient=$tmp[0]; + $tabTmp=$iDb->select( 'jo.sirenage_clients', + 'refClient, nom, siren, IF(sirenValide>0,1,0) AS sirenValide, nic, IF(nicValide>0,1,0) AS nicValide, enseigne, adresse1, adresse2, adresse3, cp, ville, IF(sirenValide>0,IF(idSirenage>0,1,0),0) AS auto', + "idClient=$idClient AND idFlux=$idFlux"); + header("Content-Type: application/csv-tab-delimited-table"); + header("Content-disposition: filename=sirenageClient-$idClient-$idFlux.csv"); + echo 'refClient, nom, siren, sirenValide, nic, nicValide, enseigne, adresse1, adresse2, adresse3, cp, ville, telephone, auto'.EOL; + foreach($tabTmp as $tmp) { + echo $tmp['refClient'].','. + $tmp['nom'].','. + $tmp['siren'].','. + $tmp['sirenValide'].','. + $tmp['nic'].','. + $tmp['nicValide'].','. + $tmp['enseigne'].','. + $tmp['adresse1'].','. + $tmp['adresse2'].','. + $tmp['adresse3'].','. + $tmp['cp'].','. + $tmp['ville'].','. + $tmp['telephone'].','. + $tmp['auto'].EOL; + } + die(); +} elseif (isset($_REQUEST['newFile']) && $_REQUEST['newFile']==1 && @!$_REQUEST['uploaded']) { + ?> +

Mettre en sirenage client un fichier CSV (séparateur virgule)

+

La première ligne du fichier doit contenir les noms de zones avec au moins les zones :

+refClient, nom, siren, nic, enseigne, adresse1, adresse2, adresse3, cp, ville +

Les champs en gras sont obligatoires
+Avec :

+

+
+ + + +

Information obligatoire :

+Identifiant S&D du client
+ + +
+

Liste des sirenage client en cours/terminés :

+ + +select( 'jo.sirenage_clients', + 'idClient, idFlux, DATE(dateInsert) as dateDeb, DATE(dateUpdate) as dateFin, COUNT(*) AS nbLignes, + SUM(IF(idSirenage>0,1,0)) AS sirenageMan, SUM(IF(sirenValide>0,1,0)) AS sirenValide', + '1 GROUP BY idClient, idFlux ORDER BY dateDeb'); +foreach($tabTmp as $tmp) { + $idFlux=$tmp['idFlux']; + $idClient=$tmp['idClient']; + $nom=$tabClients[$idClient]; + $nb=$tmp['nbLignes']; + $sirenManuel=$tmp['sirenageMan']; + $sirenValide=$tmp['sirenValide']; + $sirenRestant=$nb-$sirenValide; + $deb=$tmp['dateDeb']; + $fin=$tmp['dateFin']; + echo ""; +} + echo "$titre) { + switch (strtoupper(strtr($titre, array('"'=>'', "'"=>'')))) { + case 'NOM': $pos['NOM']=$j; break; + case 'SIREN': $pos['SIREN']=$j; break; + case 'SIRET': $pos['SIRET']=$j; break; + case 'NIC': $pos['NIC']=$j; break; + case 'REFCLIENT': $pos['REFCLIENT']=$j; break; + case 'ENSEIGNE': $pos['ENSEIGNE']=$j; break; + case 'ADRESSE1': $pos['ADRESSE1']=$j; break; + case 'ADRESSE2': $pos['ADRESSE2']=$j; break; + case 'ADRESSE3': $pos['ADRESSE3']=$j; break; + case 'CP': $pos['CP']=$j; break; + case 'VILLE': $pos['VILLE']=$j; break; + case 'TELEPHONE': $pos['TELEPHONE']=$j; break; + default: break; + } + } + $nb=count($tabFich); + echo "

$csvFile : $nb lignes, le $dateHeure ($size Ko)

"; + $strId=implode(', ', array_keys($pos)); + $strPo=implode(', ', $pos); + echo "

Colonnes $strId trouvées en positions $strPo

"; +} + +if (isset($_SESSION['csvFile']) && file_exists($_SESSION['csvFile'])) + $csvFile=$_SESSION['csvFile']; +elseif (!isset($csvFile)) + $csvFile=$_REQUEST['csvFile']; + + $tabFich=file($csvFile); + + $mesError=$mesUpdate=$mesInsert=0; + $tabTmp=$iDb->select('sirenage_clients', 'MAX(idFlux)+1 AS newIdFlux','1', false, MYSQL_ASSOC); + $idFlux=$tabTmp[0]['newIdFlux']; + $idClient=$_REQUEST['idClient']; + + $nbSirenValide=$nbNicValide=0; + $nbSirenExiste=$nbNicExiste=0; + $nbSirenAvalider=0; + + echo "

Client n°$idClient : référence du lot de sirenage $idClient-$idFlux


"; + + foreach ($tabFich as $i=>$ligne) { + $ligne=trim($ligne); + $str['data']=$str['etab']=$str['identite']=$str['notice']=$str['rncs_entrep']=$str['rncs_etab']=$str['infos']=''; + if ($i==0) { + $lib=explode(',', $ligne); + foreach ($lib as $j=>$titre) { + switch (strtoupper(strtr($titre, array('"'=>'', "'"=>'')))) { + case 'NOM': $pos['NOM']=$j; break; + case 'SIRET': $pos['SIRET']=$j; break; + case 'SIREN': $pos['SIREN']=$j; break; + case 'NIC': $pos['NIC']=$j; break; + case 'REFCLIENT': $pos['REFCLIENT']=$j; break; + case 'ENSEIGNE': $pos['ENSEIGNE']=$j; break; + case 'ADRESSE1': $pos['ADRESSE1']=$j; break; + case 'ADRESSE2': $pos['ADRESSE2']=$j; break; + case 'ADRESSE3': $pos['ADRESSE3']=$j; break; + case 'CP': $pos['CP']=$j; break; + case 'VILLE': $pos['VILLE']=$j; break; + case 'TELEPHONE': $pos['TELEPHONE']=$j; break; + default: break; + } + } + } + else { + $cel=preg_split('/(,|;|\t)/', $ligne); + $cel2=array(); + foreach ($cel as $idx=>$cell) + $cel2[$idx]=preg_replace('/(^"|"$)/','', trim($cell)); + $cel=$cel2; + + $siret=$cel[$pos['SIRET']]; + $siren=$cel[$pos['SIREN']]; + $nic=$cel[$pos['NIC']]; + if ($siret*1>10000 && $siren*1==0 && $nic*1==0) { + $siren=substr(''.$siret,0,9); + $nic=substr(''.$siret,9,5); + } + if ($siren>0) $nbSirenIn++; + if ($nic>0) $nbNicIn++; + $refClient=$cel[$pos['REFCLIENT']]; + $nom=$cel[$pos['NOM']]; + $enseigne=$cel[$pos['ENSEIGNE']]; + $adresse1=$cel[$pos['ADRESSE1']]; + $adresse2=$cel[$pos['ADRESSE2']]; + $adresse3=$cel[$pos['ADRESSE3']]; + $cp=$cel[$pos['CP']]; + $ville=$cel[$pos['VILLE']]; + $telephone=$cel[$pos['TELEPHONE']]; + //$tabSources[$source]++; + //$tabClients[$client]++; + //$tabEmails[$email]++; + + $tabUnique["$idClient-$idFlux-$refClient"]++; + if ($tabUnique["$idClient-$idFlux-$refClient"]>1) + echo "Ligne $ligneAff : Doublon sur la clef '$idClient-$idFlux-$refClient' !
"; + //if (@count($_POST['identite'])>0) { + + $sirenValide=$nicValide=0; + $sirenExiste=$nicExiste=0; + if ($iInsee->valideSiren($siren, $nic)) { + $sirenValide=1; + $nicValide=1; + if ($siren>1000) $tabIdI=$iInsee->getIdentiteLight($siren, $nic); + } elseif ($iInsee->valideSiren($siren)) { + $sirenValide=1; + if ($siren>1000) $tabIdI=$iInsee->getIdentiteLight($siren); + } + + if ($siren>1000 && $siren==$tabIdI['Siren']) $sirenExiste=1; + if ($nic>9 && $nic==$tabIdI['Nic']) $nicExiste=1; + + $resirener=false; + if ($sirenExiste /*&& $nicExiste*/) { + $raisonSociale =trim(strtoupper(trimAccent(strtr($nom, array('/'=>' ','*'=>' ','('=>'', ')'=>'', '.'=>'', '-'=>'', "Nom d'usage"=>'', 'Pseudonyme'=>'', "'"=>'', ':'=>'',' Né '=>' ',' Née '=>' ','/ACHE/'=>' ','Précédent propriétaire'=>' '))))); + $raisonSociale=strtr($raisonSociale, array('SOCIETE EN LIQUIDATION'=>'', 'EN LIQUIDATION'=>'', 'SOCIETE A RESPONSABILITE LIMITEE'=>'SARL','DENOMINATION'=>'', 'SUCCESSION'=>'')); + $raisonSocialeI=trim(strtoupper(strtr(trimAccent($tabIdI['Nom']), array('/'=>' ','*'=>' ','('=>'', ')'=>'', '.'=>'', '-'=>'', "Nom d'usage"=>'', "'"=>'', ':'=>'')))); + $len =strlen($raisonSociale); + $tabMots=preg_split('/ +/', $raisonSociale); + $mots=count($tabMots); + $levI=levenshtein(str_replace(' ','',$raisonSociale),str_replace(' ','',$raisonSocialeI)); + $delI=$levI/$len; + $lenI=strlen($raisonSocialeI); + $tabMotsI=preg_split('/ +/', $raisonSocialeI); + $motsI=count(array_diff($tabMots,$tabMotsI)); + $diffI=$motsI/$mots; + if ($delI>=0.5 && $diffI>0.5) { + $tabIdR=$iRncs->getInfosEntrep($siren); + if (@$tabIdR['raisonSociale']=='') { + $resirener=true; + } + else { + $raisonSocialeR=trim(strtoupper(strtr(trimAccent($tabIdR['raisonSociale']), array('/'=>' ','*'=>' ','('=>'', ')'=>'', '.'=>'', '-'=>'', "Nom d'usage"=>'', "'"=>'', ':'=>'')))); + $levR=levenshtein(str_replace(' ','',$raisonSociale),str_replace(' ','',$raisonSocialeR)); + $delR=$levR/$len; + $tabMotsR=preg_split('/ +/', $raisonSocialeR); + $motsR=count(array_diff($tabMots,$tabMotsR)); + $diffR=$motsR/$mots; + if ($delR>0.5 && $diffR>0.5) + $resirener=true; + } + } + if ($resirener) { + $nbSirenAvalider++; + $sirenValide=0; + $nicValide=0; + } + } + if ($sirenValide) $nbSirenValide++; + if ($sirenExiste) $nbSirenExiste++; + if ($nicValide) $nbNicValide++; + if (nicExiste) $nbNicExiste++; + + $tabInsert=array( 'idClient' => $idClient, + 'idFlux' => $idFlux, + 'refClient' => $refClient, + 'nom' => $nom, + 'siren' => $siren, + 'nic' => $nic, + 'enseigne' => $enseigne, + 'adresse1' => $adresse1, + 'adresse2' => $adresse2, + 'adresse3' => $adresse3, + 'cp' => $cp, + 'ville' => $ville, + 'telephone' => $telephone, + 'sirenValide' => $sirenValide, + 'sirenExiste' => $sirenExiste, + 'nicValide' => $nicValide, + 'nicExiste' => $nicExiste, + 'idSirenage' => 0, + 'dateInsert' => $dateInsert, + ); + //print_r($tabInsert); + //die(); + if (!$iDb->insert('sirenage_clients', $tabInsert)) { + $mesError++; + echo "Ligne $ligneAff : $refClient, $nom, $siren, $nic - Erreur lors de la mise en sirenage ".mysql_error()."
"; + } else $mesInsert++; + } + } + //fclose($fp); + + $size=round(filesize($csvFile)/1024); + $dateHeure=date('d/m/Y H:i:s', filemtime($csvFile)); + + echo ''.$csvFile." $i lignes, le $dateHeure ($size Ko)
"; + echo 'Sources :
'; + foreach ($tabSources as $source=>$nb) { + echo "- Source '$source' : $nb lignes
"; + } + echo 'Clients :
'; + foreach ($tabClients as $login=>$nb) { + echo "- Login '$login' : $nb lignes
"; + } + foreach ($tabEmails as $email=>$nb) { + echo "- Email '$email' : $nb lignes
"; + } + + echo "Mise en surveillance :
"; + + ?> +
Retourner à la page précédente + + + \ No newline at end of file
RefNom du clientVolume restant/Total (Manuel)DébutFin
$idClient-$idFlux$nom$sirenRestant / $nb ($sirenManuel)$deb$fin