Mode reprise

This commit is contained in:
Michael RICOIS 2012-04-30 11:47:22 +00:00
parent afde6c739c
commit ba761881d0

View File

@ -32,6 +32,7 @@ try {
'help|?' => "Aide.", 'help|?' => "Aide.",
'id=s' => "Identifiant du traitement", 'id=s' => "Identifiant du traitement",
'file=s' => "Traitement manuel avec spécification du fichier", 'file=s' => "Traitement manuel avec spécification du fichier",
'reprise' => "Reprendre un fichier à la ligne n-1",
'ask' => "Interaction avec l'utilisateur lors d'une reprise manuelle", 'ask' => "Interaction avec l'utilisateur lors d'une reprise manuelle",
) )
); );
@ -256,8 +257,6 @@ $file = str_replace($extension, '', $file);
$path = new Zend_Config_Ini(APPLICATION_PATH . '/configs/configuration.ini', 'path'); $path = new Zend_Config_Ini(APPLICATION_PATH . '/configs/configuration.ini', 'path');
if (!file_exists($path->data.'/export')) mkdir($path->data.'/export'); if (!file_exists($path->data.'/export')) mkdir($path->data.'/export');
$outFile = $path->data.'/export/'.$file.'-'.date('YmdHis').'.csv';
$inFile = $path->data.'/clients/'.$file.'.csv';
if ($opts->id) { if ($opts->id) {
$profilM = new Application_Model_Profil($db); $profilM = new Application_Model_Profil($db);
@ -293,6 +292,9 @@ $tabData = array();
$posKeySiren = $posKeySiret = $posKeyNic = false; $posKeySiren = $posKeySiret = $posKeyNic = false;
//Fichier de définition
$inFile = $path->data.'/clients/'.$file.'.csv';
//Lire le fichier csv //Lire le fichier csv
$row = 0; $row = 0;
if (($handle = fopen($inFile, 'r')) !== FALSE) { if (($handle = fopen($inFile, 'r')) !== FALSE) {
@ -422,20 +424,44 @@ if (count($tabEntete)>0){
} }
} }
//Vérification et création des données //Définition du fichier de sortie
if ( $opts->reprise ) {
$outFile = $path->data.'/export/'.$commandesM->fichierOut;
$rowReprise = 0;
$handleR = fopen($inFile, 'r');
while (($data = fgetcsv($handleR, 0, ',', '"')) !== FALSE) {
$rowReprise++;
}
} else {
$outFile = $path->data.'/export/'.$file.'-'.date('YmdHis').'.csv';
//Ecriture de l'entete du fichier
$fp = fopen($outFile, 'w');
if (count($tabEnteteF)>0){
fputcsv($fp, $tabEnteteF, ',', '"');
}
//Mise à jour des éléments
if ($opts->id) {
$commandesM->update(array(
'dateStart'=>date('Y-m-d H:i:s'),
'fichierOut' => basename($outFile)),
"id = ".$commande->id);
}
}
$row = 0; $row = 0;
$fp = fopen($outFile, 'w');
if (count($tabEnteteF)>0){ //Vérification et création des données
fputcsv($fp, $tabEnteteF, ',', '"');
}
if ($opts->id) {
$commandesM->update(array(
'dateStart'=>date('Y-m-d H:i:s'),
'fichierOut' => basename($outFile)),
"id = ".$commande->id);
}
foreach($tabIdentifiant as $item) foreach($tabIdentifiant as $item)
{ {
if ( $opts->reprise && $row <= $rowReprise ) {
continue;
}
echo "Ligne ".($row+1)."\n"; echo "Ligne ".($row+1)."\n";
$siretValide = false; $siretValide = false;