Complete use of league/csv
This commit is contained in:
parent
64c0a80c18
commit
5b45740234
@ -286,19 +286,18 @@ if ($opts->load) {
|
|||||||
$stmt->execute();
|
$stmt->execute();
|
||||||
echo "\n";
|
echo "\n";
|
||||||
if (($rowCpt % $batchSize) === 0) {
|
if (($rowCpt % $batchSize) === 0) {
|
||||||
$conn->rollBack();
|
|
||||||
$conn->commit();
|
$conn->commit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
$conn->commit();
|
||||||
}
|
}
|
||||||
catch(\Doctrine\DBAL\DBALException $e) {
|
catch(\Doctrine\DBAL\DBALException $e) {
|
||||||
|
$conn->rollBack();
|
||||||
echo date('Y-m-d H:i:s')." - Erreur ".$e->getMessage()."\n";
|
echo date('Y-m-d H:i:s')." - Erreur ".$e->getMessage()."\n";
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
$conn->setAutoCommit(true);
|
$conn->setAutoCommit(true);
|
||||||
|
|
||||||
exit;
|
|
||||||
|
|
||||||
$seq = execDbIn($opts->load, $fileOptionsIn);
|
$seq = execDbIn($opts->load, $fileOptionsIn);
|
||||||
|
|
||||||
// Marquer les SIREN qui n'existe pas dans la bdd
|
// Marquer les SIREN qui n'existe pas dans la bdd
|
||||||
@ -397,32 +396,24 @@ if ($opts->evaluate) {
|
|||||||
|
|
||||||
$nb = $stmt->rowCount();
|
$nb = $stmt->rowCount();
|
||||||
if ($nb > 0) {
|
if ($nb > 0) {
|
||||||
echo date('Y-m-d H:i:s')." - NbLignes=".$nb."\n";
|
echo date('Y-m-d H:i:s')." - NbLignes : ".$nb."\n";
|
||||||
|
|
||||||
if ($execId !== null) {
|
if ($execId !== null) {
|
||||||
$execRef->total($execId, $nb);
|
$execRef->total($execId, $nb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$file = $fileOkOptionsOut['dir'] . '/' . $fileOkOptionsOut['name'] . $dateBegin . '.' . $fileOkOptionsOut['type'];
|
$file = $fileOkOptionsOut['dir'] . '/' . $fileOkOptionsOut['name'] . $dateBegin . '.' . $fileOkOptionsOut['type'];
|
||||||
|
|
||||||
// Ouverture fichier RETOUR
|
// Create the CSV
|
||||||
$fp = fopen($file, 'w');
|
$csv = Writer::createFromPath($file, 'w');
|
||||||
|
$csv->setDelimiter($fileOkOptionsOut['delimiter']);
|
||||||
// Header
|
$csv->setEnclosure($fileOkOptionsOut['enclosure']);
|
||||||
$line = array($seq, 'RCE');
|
// Insert the CSV header
|
||||||
|
$csv->insertOne(array($seq, 'RCE'));
|
||||||
fputcsv($fp, $line, $fileOkOptionsOut['delimiter'], $fileOkOptionsOut['enclosure']);
|
// Insert data
|
||||||
|
|
||||||
$row = 0;
|
$row = 0;
|
||||||
// Content
|
// Content
|
||||||
while ($item = $stmt->fetch(\PDO::FETCH_OBJ)) {
|
while ($item = $stmt->fetch(\PDO::FETCH_OBJ)) {
|
||||||
|
|
||||||
$row++;
|
$row++;
|
||||||
echo date('Y-m-d H:i:s')." - Ligne $row : Siren=".$item->siren;
|
echo date('Y-m-d H:i:s')." - Ligne $row : Siren=".$item->siren;
|
||||||
|
|
||||||
@ -431,7 +422,7 @@ if ($opts->evaluate) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Score non calculé
|
// Score non calculé
|
||||||
if ( $item->indiScore20 === null ) {
|
if ($item->indiScore20 === null) {
|
||||||
echo ", Non calculé";
|
echo ", Non calculé";
|
||||||
$conn->update('jo.sfr_data', array('error' => 2020),
|
$conn->update('jo.sfr_data', array('error' => 2020),
|
||||||
array("siren" => $item->siren, 'NumSeq' => $seq));
|
array("siren" => $item->siren, 'NumSeq' => $seq));
|
||||||
@ -442,7 +433,7 @@ if ($opts->evaluate) {
|
|||||||
$sfrM = new Metier_Sfr_Scoring();
|
$sfrM = new Metier_Sfr_Scoring();
|
||||||
$sfrM->notCalculateInError = true;
|
$sfrM->notCalculateInError = true;
|
||||||
|
|
||||||
//Set Values
|
// Set Values
|
||||||
$sfrM->setVal('ContratDate', $item->DateContrat);
|
$sfrM->setVal('ContratDate', $item->DateContrat);
|
||||||
$sfrM->setVal('IR', $item->IR);
|
$sfrM->setVal('IR', $item->IR);
|
||||||
$sfrM->setVal('NAF', $item->naf);
|
$sfrM->setVal('NAF', $item->naf);
|
||||||
@ -457,43 +448,33 @@ if ($opts->evaluate) {
|
|||||||
$sfrM->setVal('DateImmat',$item->dateImmat);
|
$sfrM->setVal('DateImmat',$item->dateImmat);
|
||||||
$sfrM->setVal('SituationJuridique',$item->procol);
|
$sfrM->setVal('SituationJuridique',$item->procol);
|
||||||
|
|
||||||
//Evaluate
|
// Evaluate
|
||||||
if ( $sfrM->evaluate($item->siren) ) {
|
if ($sfrM->evaluate($item->siren)) {
|
||||||
$values = array();
|
$values = array();
|
||||||
$values['siren'] = str_pad($item->siren, 9, '0', STR_PAD_LEFT);
|
$values['siren'] = str_pad($item->siren, 9, '0', STR_PAD_LEFT);
|
||||||
$values['idVOR'] = $sfrM->getIndicateur();
|
$values['idVOR'] = $sfrM->getIndicateur();
|
||||||
$values['commentaire'] = $sfrM->getComment();
|
$values['commentaire'] = $sfrM->getComment();
|
||||||
$values['PO'] = $sfrM->getPo();
|
$values['PO'] = $sfrM->getPo();
|
||||||
|
|
||||||
if ( $opts->debug ) {
|
|
||||||
$valuesDebug = $sfrM->getValDebug();
|
|
||||||
$values = array_merge($values, $valuesDebug);
|
|
||||||
}
|
|
||||||
|
|
||||||
echo ", ID=".$values['idVOR'].", commentaire=".$values['commentaire'];
|
echo ", ID=".$values['idVOR'].", commentaire=".$values['commentaire'];
|
||||||
|
|
||||||
//Ecrire fichier RETOUR
|
// Ecrire fichier RETOUR
|
||||||
$line = array();
|
$line = array();
|
||||||
foreach ( $fileOkOptionsOut['columns'] as $i => $column ) {
|
foreach ($fileOkOptionsOut['columns'] as $i => $column) {
|
||||||
$line[] = $values[$column];
|
$line[] = $values[$column];
|
||||||
}
|
}
|
||||||
fputcsv($fp, $line, $fileOkOptionsOut['delimiter'], $fileOkOptionsOut['enclosure']);
|
$csv->insertOne($line);
|
||||||
|
}
|
||||||
} else {
|
else {
|
||||||
echo ", Pas de calcul";
|
echo ", Pas de calcul";
|
||||||
$conn->update('jo.sfr_data', array('error' => 2020),
|
$conn->update('jo.sfr_data', array('error' => 2020),
|
||||||
array("siren" => $item->siren, 'NumSeq' => $seq));
|
array("siren" => $item->siren, 'NumSeq' => $seq));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
echo "\n";
|
echo "\n";
|
||||||
}
|
}
|
||||||
fclose($fp);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if ($fileOkOptionsOut['encoding']) {
|
if ($fileOkOptionsOut['encoding']) {
|
||||||
echo "Encodage du fichier\n";
|
echo "Encodage du fichier\n";
|
||||||
passthru("iconv -f UTF-8 -t ISO-8859-15 ".$file." -o ".$file.".enc");
|
passthru("iconv -f UTF-8 -t ISO-8859-15 ".$file." -o ".$file.".enc");
|
||||||
@ -524,7 +505,7 @@ if ($opts->evaluate) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Recherche des siren en erreur
|
// Recherche des SIREN en erreur
|
||||||
echo date('Y-m-d H:i:s')." - Recherche des SIREN en erreur.\n";
|
echo date('Y-m-d H:i:s')." - Recherche des SIREN en erreur.\n";
|
||||||
$sql = "SELECT LPAD(sfr.siren, 9, 0) AS siren, sfr.error
|
$sql = "SELECT LPAD(sfr.siren, 9, 0) AS siren, sfr.error
|
||||||
FROM jo.sfr_data AS sfr WHERE sfr.error!=0 AND sfr.NumSeq=:seq";
|
FROM jo.sfr_data AS sfr WHERE sfr.error!=0 AND sfr.NumSeq=:seq";
|
||||||
@ -543,7 +524,7 @@ if ($opts->evaluate) {
|
|||||||
$csv->setDelimiter($fileErrorOptionsOut['delimiter']);
|
$csv->setDelimiter($fileErrorOptionsOut['delimiter']);
|
||||||
$csv->setEnclosure($fileErrorOptionsOut['enclosure']);
|
$csv->setEnclosure($fileErrorOptionsOut['enclosure']);
|
||||||
// Insert the CSV header
|
// Insert the CSV header
|
||||||
$csv->insertOne($fileErrorOptionsOut['columns']);
|
$csv->insertOne(array($seq, 'RCE'));
|
||||||
// Insert all data
|
// Insert all data
|
||||||
$csv->insertAll($rows);
|
$csv->insertAll($rows);
|
||||||
;
|
;
|
||||||
@ -657,216 +638,6 @@ if ($opts->evaluate) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param array $values
|
|
||||||
* @param string $seq
|
|
||||||
* @param string $debug
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
function execInternal($values, $seq, $debug = false)
|
|
||||||
{
|
|
||||||
$error = 0;
|
|
||||||
|
|
||||||
$siren = $values['siren'];
|
|
||||||
|
|
||||||
echo "$siren";
|
|
||||||
|
|
||||||
$classInsee = new Metier_Insee_MInsee();
|
|
||||||
|
|
||||||
$values['code'] = '';
|
|
||||||
//Siren valide - 1010
|
|
||||||
if ( !$classInsee->valideSiren($siren) ) {
|
|
||||||
$error = 1;
|
|
||||||
$code = 'error';
|
|
||||||
$values['code'] = '1010';
|
|
||||||
echo " - Erreur 1010.";
|
|
||||||
}
|
|
||||||
//Siren existant - 1020
|
|
||||||
else if ( !$classInsee->sirenExiste($siren) ) {
|
|
||||||
$error = 1;
|
|
||||||
$code = 'error';
|
|
||||||
$values['code'] = '1020';
|
|
||||||
echo " - Erreur 1020.";
|
|
||||||
}
|
|
||||||
|
|
||||||
//Date incorrecte - 2010
|
|
||||||
try {
|
|
||||||
$dateContrat = DateTime::createFromFormat('Ymd', $values['dateContrat']);
|
|
||||||
} catch(Exception $e) {
|
|
||||||
if ($values['dateContrat']!='') {
|
|
||||||
$error = 1;
|
|
||||||
$code = 'error';
|
|
||||||
$values['code'] = '2010';
|
|
||||||
echo " - Erreur 2010 ";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( $error == 0 ) {
|
|
||||||
//Calculate data
|
|
||||||
$sfrM = new Metier_Sfr_Scoring();
|
|
||||||
$sfrM->notCalculateInError = false;
|
|
||||||
|
|
||||||
//Set Values
|
|
||||||
$sfrM->setVal('ContratDate', $values['dateContrat']);
|
|
||||||
$sfrM->setVal('IR', $values['ir']);
|
|
||||||
|
|
||||||
//Evaluate
|
|
||||||
if ( $sfrM->evaluate($siren) ) {
|
|
||||||
$values['idVOR'] = $sfrM->getIndicateur();
|
|
||||||
$values['commentaire'] = $sfrM->getComment();
|
|
||||||
$values['PO'] = $sfrM->getPo();
|
|
||||||
|
|
||||||
$valuesDebug = $sfrM->getValDebug();
|
|
||||||
if ($debug) {
|
|
||||||
$values = array_merge($values, $valuesDebug);
|
|
||||||
}
|
|
||||||
|
|
||||||
$code = 'ok';
|
|
||||||
|
|
||||||
echo " - VOR=".$values['idVOR']." , commentaire=".$values['commentaire']." , PO=".$values['PO'];
|
|
||||||
} else {
|
|
||||||
$error = 1;
|
|
||||||
$code = 'error';
|
|
||||||
$values['code'] = '2020';
|
|
||||||
echo " - Not calculated ";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
echo PHP_EOL;
|
|
||||||
|
|
||||||
return array(
|
|
||||||
'values' => $values,
|
|
||||||
'code' => $code,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param string $file
|
|
||||||
* @param array $fileOptionsIn
|
|
||||||
* @param array $filesOptionsOut
|
|
||||||
* @param boolean $debug
|
|
||||||
* @param boolean $resume
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
function execFileIn($file, $fileOptionsIn, $filesOptionsOut = array(), $debug = false, $resume = false)
|
|
||||||
{
|
|
||||||
global $dateBegin;
|
|
||||||
|
|
||||||
//Set the input file path
|
|
||||||
$filepathIn = $file;
|
|
||||||
|
|
||||||
//Open output file path
|
|
||||||
foreach ($filesOptionsOut as $code => $file) {
|
|
||||||
${'fp'.$code} = fopen($file['dir'] . DIRECTORY_SEPARATOR . $file['name'] . $dateBegin . '.' . $file['type'], 'w');
|
|
||||||
}
|
|
||||||
|
|
||||||
//Read file
|
|
||||||
if ( file_exists($filepathIn) ) {
|
|
||||||
|
|
||||||
if (($handle = fopen($filepathIn, 'r')) !== false) {
|
|
||||||
$row = 0;
|
|
||||||
while (($data = fgetcsv($handle, 0, $fileOptionsIn['delimiter'], $fileOptionsIn['enclosure'])) !== false)
|
|
||||||
{
|
|
||||||
$row++;
|
|
||||||
|
|
||||||
echo "Ligne $row : ";
|
|
||||||
|
|
||||||
//Header
|
|
||||||
if (count($fileOptionsIn['header']) > 0 && $row == 1) {
|
|
||||||
foreach ( $fileOptionsIn['header'] as $i => $column ) {
|
|
||||||
$header[$column] = $data[$i];
|
|
||||||
}
|
|
||||||
echo "Detection HEADER.".PHP_EOL;
|
|
||||||
|
|
||||||
if ($debug) {
|
|
||||||
$filesOptionsOut['error']['header'] = array();
|
|
||||||
$filesOptionsOut['ok']['header'] = array();
|
|
||||||
} else {
|
|
||||||
$filesOptionsOut['error']['header'] = $header;
|
|
||||||
$filesOptionsOut['ok']['header'] = $header;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( $resume ) {
|
|
||||||
fputcsv(${'fp'.$codeRetour}, $filesOptionsOut['ok']['line'][0], $filesOptionsOut['ok']['delimiter'], $filesOptionsOut['ok']['enclosure']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Content
|
|
||||||
else {
|
|
||||||
|
|
||||||
//Set values from file
|
|
||||||
$values = array();
|
|
||||||
foreach ( $fileOptionsIn['columns'] as $i => $column ) {
|
|
||||||
$values[$column] = $data[$i];
|
|
||||||
}
|
|
||||||
|
|
||||||
$isResume = false;
|
|
||||||
|
|
||||||
if ( $resume ) {
|
|
||||||
foreach ( $filesOptionsOut['ok']['line'] as $line ) {
|
|
||||||
if ( $line[0] == $data[0] ) {
|
|
||||||
fputcsv(${'fp'.$codeRetour}, $line, $filesOptionsOut['ok']['delimiter'], $filesOptionsOut['ok']['enclosure']);
|
|
||||||
$isResume = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( !$isResume ) {
|
|
||||||
|
|
||||||
//Exec the process
|
|
||||||
$valuesClient = execInternal($values, $header['idDemande'], true);
|
|
||||||
|
|
||||||
//Format output
|
|
||||||
$codeRetour = $valuesClient['code'];
|
|
||||||
//$filesOptionsOut[$codeRetour]['line'][] = $valuesClient['values'];
|
|
||||||
if ($debug) {
|
|
||||||
$filesOptionsOut[$codeRetour]['columns'] = array_keys($valuesClient['values']);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($row == 2) {
|
|
||||||
foreach ($filesOptionsOut as $code => $file) {
|
|
||||||
$line = array();
|
|
||||||
//Dynamic Header
|
|
||||||
if ( count($file['header'])>0 ) {
|
|
||||||
foreach ( $file['header'] as $i => $column ) {
|
|
||||||
$line[] = $column;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//Static Header
|
|
||||||
else {
|
|
||||||
foreach ( $file['columns'] as $i => $column ) {
|
|
||||||
$line[] = $column;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fputcsv(${'fp'.$code}, $line, $filesOptionsOut[$code]['delimiter'], $filesOptionsOut[$code]['enclosure']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Write the line following the return code
|
|
||||||
$line = array();
|
|
||||||
foreach ( $filesOptionsOut[$codeRetour]['columns'] as $i => $column ) {
|
|
||||||
$line[] = $valuesClient['values'][$column];
|
|
||||||
}
|
|
||||||
fputcsv(${'fp'.$codeRetour}, $line, $filesOptionsOut[$codeRetour]['delimiter'], $filesOptionsOut[$codeRetour]['enclosure']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
fclose($handle);
|
|
||||||
|
|
||||||
foreach ($filesOptionsOut as $code => $file) {
|
|
||||||
fclose(${'fp'.$code});
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param string $filepathIn
|
* @param string $filepathIn
|
||||||
|
Loading…
Reference in New Issue
Block a user