Bonjour,
Alors voici mon petit problème.. J'ai un script assez simple qui a pour but de faire cela :
- J'ai un fichier d'origine nommé od.txt avec sur chaque ligne des informations sur les paies de toutes nos entités différentes (1786 lignes).
- Pour que les logiciels de compta (différents selon les entités) puissent lire les lignes selon leur sémantique, je dois donc réorganiser la structure des lignes. Jusque là, rien de très compliqué.. Je prend les données et les replace dans le bon ordre.
- Pour que ce soit encore plus automatique, je souhaite que les lignes de paie soient également séparées dans des fichiers textes différents au nom du numéro de société (présent dans la ligne donc exploitable) pour que je les envois directement et individuellement à chaque responsable compta.
Le script en soit fonctionne, le problème est que l'écriture de mes lignes se fait en double. Et c'est en double sous cette forme :
1
2
3
4
1
2
3
4
Et non pas :
1
1
2
2
3
3
4
4
Voici mon script :
J'imagine que ce n'est pas très clair avec mes explications... Je ne trouve vraiment pas la raison de ces doublons donc n'hésitez pas à me demander plus d'infos si besoin...
Bonne journée.
Apo.
Modifié par Apoooo (23 Oct 2012 - 09:03)
Alors voici mon petit problème.. J'ai un script assez simple qui a pour but de faire cela :
- J'ai un fichier d'origine nommé od.txt avec sur chaque ligne des informations sur les paies de toutes nos entités différentes (1786 lignes).
- Pour que les logiciels de compta (différents selon les entités) puissent lire les lignes selon leur sémantique, je dois donc réorganiser la structure des lignes. Jusque là, rien de très compliqué.. Je prend les données et les replace dans le bon ordre.
- Pour que ce soit encore plus automatique, je souhaite que les lignes de paie soient également séparées dans des fichiers textes différents au nom du numéro de société (présent dans la ligne donc exploitable) pour que je les envois directement et individuellement à chaque responsable compta.
Le script en soit fonctionne, le problème est que l'écriture de mes lignes se fait en double. Et c'est en double sous cette forme :
1
2
3
4
1
2
3
4
Et non pas :
1
1
2
2
3
3
4
4
Voici mon script :
<?php
$od = fopen('od.txt', 'r+');
$structure_1 = array("aac" => "001","aad" => "008","asa" => "011","aas" => "021","car" => "071","amerand" => "081","ea" => "091","roudierauto" => "121","roudier" => "131","autoconcept" => "141","rocade" => "151","snrpbch" => "160","snrpbrm" => "161","snrpblan" => "162","maigrot" => "165");
foreach($structure_1 as $key => $no){
$key = fopen($no.'.txt','a+');
$societe_structure_1[]=$no;
}
while($ligne = fgets($od)){
$societe = substr($ligne,1,3);
if(in_array($societe, $societe_structure_1)){
$compte = substr($ligne,23,8);
$section = substr($ligne,14,5);
$date = str_replace("/20","/", substr($ligne,4,10));
$piece = " ";
$document = "PAY";
$pointage = "INTERFACEPAIE";
$libelle = "PAIE DE ".str_replace("/"," ", substr($ligne,7,7));
$reglement = " ";
$echeance = " ";
$montant = substr($ligne,34,10);
$sens = substr($ligne,44,1);
$tva = "00";
$chaine = $compte.$section.$date.$piece.$document.$pointage.$libelle.$reglement.$echeance.$montant.$sens.$tva;
switch($societe){
case '001':
fputs($aac, $chaine."\n");
break;
case '008':
fputs($aad, $chaine."\n");
break;
case '011':
fputs($asa, $chaine."\n");
break;
case '021':
fputs($aas, $chaine."\n");
break;
case '071':
fputs($car, $chaine."\n");
break;
case '081':
fputs($amerand, $chaine."\n");
break;
case '091':
fputs($ea, $chaine."\n");
break;
case '121':
fputs($roudierauto, $chaine."\n");
break;
case '131':
fputs($roudier, $chaine."\n");
break;
case '141':
fputs($autoconcept, $chaine."\n");
break;
case '151':
fputs($rocade, $chaine."\n");
break;
case '160':
fputs($snrpbch, $chaine."\n");
break;
case '161':
fputs($snrpbrm, $chaine."\n");
break;
case '162':
fputs($snrpblan, $chaine."\n");
break;
case '165':
fputs($maigrot, $chaine."\n");
break;
}
}
}
foreach($structure_1 as $key => $no){
fclose($$key);
}
fclose($od);
?>
J'imagine que ce n'est pas très clair avec mes explications... Je ne trouve vraiment pas la raison de ces doublons donc n'hésitez pas à me demander plus d'infos si besoin...
Bonne journée.
Apo.
Modifié par Apoooo (23 Oct 2012 - 09:03)