#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini =$ligneStart) { unset($tabErreur); $nbErr=0; $insSIREN =substr($a, 0, 9); $insNIC =substr($a, 9, 5); $insNOMEN = trim( substr($a, 14,40) ); $insNOMET = trim( substr($a, 54,40) ); $insSIGLE = trim( substr($a, 94,20) ); $insCADR = trim( substr($a,114,26) ); $insNUMVOIE = trim( substr($a,140, 4) ); $insINDREP = trim( substr($a,144, 1) ); $insTYPVOIE = trim( substr($a,145, 3) ); // Répertorié dans 1 tableau $insLIBVOIE = trim( substr($a,148,26) ); $insDISTSP = trim( substr($a,174,26) ); $insACHPOSTE = trim( substr($a,200,32) ); $insRPET = (int) substr($a,243, 2); // Répertorié dans 1 tableau $insDEPET = substr($a,245, 2); $insARRONET = substr($a,247, 2); $insCTONET = substr($a,249, 3); $insCOMET = substr($a,252, 3); $insLIBCOM = trim( substr($a,255,26) ); $insDU = substr($a,281, 2); $insTU = (int) substr($a,283, 1); // de 0 à 8 $insU7U = substr($a,284, 2); // Champ UU de l'Insee $insCODPOS = substr($a,286, 5); $insILOT = trim( substr($a,291, 8)); // toujours vide car tarif spécial ! $insTCD = (int) substr($a,299, 2); $insZEMET = substr($a,301, 2); $insCODEVOIE = substr($a,303, 5); $insAPET700 = substr($a,308, 4); $insAPET31 = substr($a,312, 2); $insSIEGE = (int) substr($a,314, 1); $insTEFET = (int) substr($a,315, 2); $insEFETCENT = trim( substr($a,317, 6)); // Numérique if ( $insEFETCENT=='' ) $insEFETCENT='NULL'; elseif (!is_numeric($insEFETCENT)) $insEFETCENT='NULL'; else $insEFETCENT=(int)$insEFETCENT; $insORIGINE = (int) substr($a,323, 1); // de 0 à 8 $DCRET = substr($a,324, 6); $insDCRET = substr($DCRET,2,4).substr($DCRET,0,2).'00'; $insMMINTRET = (int) substr($a,330, 2); // de 0 à 12 $insNATURE = (int) substr($a,332, 2); // Numérique définit dans 1 tableau// $insSAISONAT = (int) substr($a,334, 1); $insMODET = (int) substr($a,335, 1); // de 0 à 3 $insDAPET = trim( substr($a,336, 4)); $insDEFET = trim( substr($a,340, 4)); $insSINGT = (int) substr($a,344, 2); // Numérique définit dans 1 tableau $insAUXILT = (int) substr($a,346, 1); // 0, 1 ou 9 $insEAEANT = trim( substr($a,347, 4)); $insEAEAPET = trim( substr($a,351, 4)); $insEAESEC1T = trim( substr($a,355, 4)); $insEAESEC2T = trim( substr($a,359, 4)); $insCJ = substr($a,363, 4); $insTEFEN = (int) substr($a,367, 2); $insEFENCENT = trim( substr($a,369, 6)); // Numérique if ( $insEFENCENT=='' ) $insEFENCENT='NULL'; elseif (!is_numeric($insEFENCENT)) $insEFENCENT='NULL'; else $insEFENCENT=(int)$insEFENCENT; $insAPEN700 = substr($a,375, 4); $insAPEN31 = substr($a,379, 2); $insAPRM = trim( substr($a,381, 5)); $insTCA = (int) substr($a,386, 1); // de 0 à 9 $insSEXE = strtoupper( substr($a,387, 1)); // M, F ou blanc if ($insSEXE=='M') $insSEXE=1; elseif ($insSEXE=='F') $insSEXE=2; else $insSEXE=0; $insRECME = (int) substr($a,388, 1); // 0 ou 1 $insDAPEN = trim( substr($a,389, 4)); $insDEFEN = trim( substr($a,393, 4)); $DCREN = substr($a,397, 6); $insDCREN = substr($DCREN,2,4).substr($DCREN,0,2).'00'; $insMMINTREN = (int) substr($a,403, 2); // de 0 à 12 $insMONOACT = trim( substr($a,405, 1)); // 0,1,2 ou NULL if ( $insMONOACT == '' ) $insMONOACT = 'NULL'; else $insMONOACT=(int)$insMONOACT; $insMODEN = (int) substr($a,406, 1); // 0,1,2 ou 3 $insORDIN = (int) substr($a,407, 1); // 0 ou 1 $insEAEANN = trim( substr($a,408, 4)); $insEAEAPEN = trim( substr($a,412, 4)); $insEAESEC1N = trim( substr($a,416, 4)); $insEAESEC2N = trim( substr($a,420, 4)); $insEAESEC3N = trim( substr($a,424, 4)); $insEAESEC4N = trim( substr($a,428, 4)); $insNBTOA = (int) substr($a,432, 4); // de 0 à 9999 $insTCAEXPOR = (int) substr($a,436, 1); // 0,1,2,3 ou 4 $insREGIMP = substr($a,437, 2); $insMONOREG = trim( substr($a,439, 1)); // 0,1,2 ou NULL if ( $insMONOREG == '' ) $insMONOREG = 'NULL'; else $insMONOREG=(int)$insMONOREG; $insRPEN = (int) substr($a,440, 2); $insDEPCOMEN = substr($a,442, 5); $bilSPEACT = trim( substr($a,451, 1)); // $bilSORLJ_N = trim( substr($a,452, 1)); if ($bilSORLJ_N=='O') $bilSORLJ_N=1; else $bilSORLJ_N=0; $bilSOEVT = trim( substr($a,453, 2)); // $bilSODJL_D = trim( substr($a,456, 8)); // $bilSOEDRQ = trim( substr($a,464, 3)); // $bilSOEDRN_X= trim( substr($a,467, 60)); // $bilSOEDRD_D= trim( substr($a,527, 8)); // $bilSOEDRL_N= trim( substr($a,535, 35)); // $bilSORSNC = trim( substr($a,570, 1)); // $bilSORSNO = trim( substr($a,571, 2)); // $bilSOETEL = trim( substr($a,573, 10)); // $bilSOEFAX = trim( substr($a,583, 10)); // $bilSODTEN_D= trim( substr($a,593, 8)); // $tabDataToUpdate=array( 'NOM' => $insNOMEN, 'ACTIF' => 0, 'ENSEIGNE' => $insNOMET, 'SIGLE' => $insSIGLE, 'ADR_COMP' => $insCADR, 'ADR_NUMVOIE' => $insNUMVOIE, 'ADR_BTQ' => $insINDREP, 'ADR_TYPVOIE' => $insTYPVOIE, 'ADR_LIBVOIE' => $insLIBVOIE, 'ADR_DISTSP' => $insDISTSP, 'ADR_LIBCOM' => $insLIBCOM, 'ADR_CP' => $insCODPOS, 'DCREN' => $insDCREN, 'SIEGE' => $insSIEGE, 'AUXILT' => $insAUXILT, 'SAISONAT' => $insSAISONAT, 'CJ' => $insCJ, 'CIVILITE' => $insSEXE, 'NBETAB' => $insNBTOA, 'APE_ENT' => $insAPEN700, 'APE_ETAB' => $insAPET700, 'PROCOL' => $bilSORLJ_N, 'PROCOL_TYPE' => $bilSOEVT, 'PROCOL_DATE' => $bilSODJL_D, 'EFF_ENT' => $insEFENCENT, //rc? 'TEL' => $bilSOETEL, 'FAX' => $bilSOEFAX, 'DIR_FCT' => $bilSOEDRQ, 'DIR_IDEN' => $bilSOEDRN_X, 'DIR_DATEN' => $bilSOEDRD_D, 'DIR_LIEUN' => $bilSOEDRL_N, 'DCRET' => $insDCRET, 'TEFF_ENT' => $insTEFEN, 'ADR_DEP' => $insDEPET, 'ADR_COM' => $insCOMET, 'TCA' => $insTCA, 'TCAEXP' => $insTCAEXPOR, 'EFF_ET' => $insEFETCENT, 'TEFF_ET' => $insTEFET, 'CODEVOIE' => $insCODEVOIE, 'DATE_MAJ' => $bilSODTEN_D, ); $ret2=$iDb->select($db_table, '*', "SIREN=$insSIREN AND NIC=$insNIC"); $cpt=count($ret2); if ($cpt>1) $tabSiretDoubles[]=$insSIREN.' '.$insNIC;// RAF elseif ($cpt==1) { $ret=$ret2[0]; if ($ret['NOM'] == $insNOMEN && $ret['ACTIF'] == 0 && $ret['ENSEIGNE'] == $insNOMET && $ret['SIGLE'] == $insSIGLE && $ret['ADR_COMP'] == $insCADR && $ret['ADR_NUMVOIE'] == $insNUMVOIE && $ret['ADR_BTQ'] == $insINDREP && $ret['ADR_TYPVOIE'] == $insTYPVOIE && $ret['ADR_LIBVOIE'] == $insLIBVOIE && $ret['ADR_DISTSP'] == $insDISTSP && $ret['ADR_LIBCOM'] == $insLIBCOM && $ret['ADR_CP'] == $insCODPOS && $ret['DCREN'] == $insDCREN && $ret['SIEGE'] == $insSIEGE && $ret['AUXILT'] == $insAUXILT && $ret['SAISONAT'] == $insSAISONAT && $ret['CJ'] == $insCJ && $ret['CIVILITE'] == $insSEXE && $ret['NBETAB'] == $insNBTOA && $ret['APE_ENT'] == $insAPEN700 && $ret['APE_ETAB'] == $insAPET700 && $ret['PROCOL'] == $bilSORLJ_N && $ret['PROCOL_TYPE'] == $bilSOEVT && $ret['PROCOL_DATE'] == $bilSODJL_D && $ret['EFF_ENT'] == $insEFENCENT && $ret['TEL'] == $bilSOETEL && $ret['FAX'] == $bilSOEFAX && $ret['DIR_FCT'] == $bilSOEDRQ && $ret['DIR_IDEN'] == $bilSOEDRN_X && $ret['DIR_DATEN'] == $bilSOEDRD_D && $ret['DIR_LIEUN'] == $bilSOEDRL_N && $ret['DCRET'] == $insDCRET && $ret['TEFF_ENT'] == $insTEFEN && $ret['ADR_DEP'] == $insDEPET && $ret['ADR_COM'] == $insCOMET && $ret['TCA'] == $insTCA && $ret['TCAEXP'] == $insTCAEXPOR && $ret['EFF_ET'] == $insEFETCENT && $ret['TEFF_ET'] == $insTEFET && $ret['CODEVOIE'] == $insCODEVOIE ) { $nbNotUpdated++; } else { $retUpdate=$iDb->update($db_table, $tabDataToUpdate, "SIREN=$insSIREN AND NIC=$insNIC"); if (!$retUpdate) die('Erreur lors de MAJ Mysql n°'. mysql_errno() .' : '.mysql_error()); $nbUpdate++; } //echo $insSIREN.' '.$insNIC." : MAJ\n"; } elseif ($cpt==0) { $tabDataToInsert=array_merge($tabDataToUpdate, array('SIREN'=>$insSIREN, 'NIC' =>$insNIC)); $retInsert=$iDb->insert($db_table, $tabDataToInsert); if (!$retInsert) die('Erreur Mysql n°'. mysql_errno() .' : '.mysql_error()); unset($tabDataToInsert); $nbInsert++; //echo $insSIREN.' '.$insNIC." : Ajout\n"; } //print_r($tabDataToUpdate);die(); unset($tabDataToUpdate); } if ($nbLignes%10000==0) echo date ('Y/m/d - H:i:s')." - $nbLignes/$nbLignesTot lignes traités dont $nbInsert ajout, $nbUpdate modifs et $nbNotUpdated identiques\n"; } fclose ($fp); echo date ('Y/m/d - H:i:s')." - Fichier n°$nbFichiers=$nomFichier, $nbLignes traitées/$nbLignesTot dont $nbInsert ajout et $nbUpdate modifs\n"; } die(); ?>