par
damienborgniet » 15 mars 2012, 15:58
Bonjour à tous,
J'ai créé un script qui se lance en CRON (via les tâches planifiées OVH). Ce script parse chaque ligne du csv (qui est au préalable, mais dans une autre tâche, téléchargé sur le serveur) et ce csv contien environ 8000 lignes. Avec chaque ligne il fait plusieurs injection dans une DB (pour ajouter des produits dans un CMS Prestashop). Donc ce script est assez lourd puisqu'il lit 8000 lignes d'un csv + 4 insert dans la DB, avec des manipulations de chaines et de prix. Jusque-là tout va bien, il injecte les 8000 produits. Seulement je remarque qu'il y a un souci avec les prix car il y a dans le CSV une dizaine d'article à + de 1000€ et quand je regarde par après il les a encodé du genre 2420,45 devient 2,42... Plutôt embêtant. Sans compter que lorsque je lance le script manuellement (mais avec un csv de 400 lignes sinon j'ai un timeout) il injecte correctement le prix. Avez vous une idée ? Croyez-vous que la tâches planifiée s'emmêle les pinceaux ? Car je ne remarque aucune erreur à part les 10 produits qui sont au dessus de 1000€
Voici le bout de script qui est dans la boucle qui parse le CSV :
$champs12bis = str_replace(',','.',$champs12); //je remplace la virgule du csv par un point
$champs13 = str_replace(',','.',$champs13); //pareil pour les taxes divers
$champs14 = str_replace(',','.',$champs14); //pareil pour les taxes divers
$champs15 = str_replace(',','.',$champs15); //pareil pour les taxes divers
$champs16 = str_replace(',','.',$champs16); //pareil pour les taxes divers
$price = $price+$champs13+$champs14+$champs15+$champs16; //j'additionne le prix et les taxes
$price = $price*$marge; // j'ajoute ma marge supplementaire definie plus haut (du genre 1.0605)
$price = round($price,2); // j'arrondis a 2 chiffres apres la virgule
Franchement je reste sans solution car si encore il buggait pour les prix en-dessous de 1000 mais rien !

Bonjour à tous,
J'ai créé un script qui se lance en CRON (via les tâches planifiées OVH). Ce script parse chaque ligne du csv (qui est au préalable, mais dans une autre tâche, téléchargé sur le serveur) et ce csv contien environ 8000 lignes. Avec chaque ligne il fait plusieurs injection dans une DB (pour ajouter des produits dans un CMS Prestashop). Donc ce script est assez lourd puisqu'il lit 8000 lignes d'un csv + 4 insert dans la DB, avec des manipulations de chaines et de prix. Jusque-là tout va bien, il injecte les 8000 produits. Seulement je remarque qu'il y a un souci avec les prix car il y a dans le CSV une dizaine d'article à + de 1000€ et quand je regarde par après il les a encodé du genre 2420,45 devient 2,42... Plutôt embêtant. Sans compter que lorsque je lance le script manuellement (mais avec un csv de 400 lignes sinon j'ai un timeout) il injecte correctement le prix. Avez vous une idée ? Croyez-vous que la tâches planifiée s'emmêle les pinceaux ? Car je ne remarque aucune erreur à part les 10 produits qui sont au dessus de 1000€
Voici le bout de script qui est dans la boucle qui parse le CSV :
[php]
$champs12bis = str_replace(',','.',$champs12); //je remplace la virgule du csv par un point
$champs13 = str_replace(',','.',$champs13); //pareil pour les taxes divers
$champs14 = str_replace(',','.',$champs14); //pareil pour les taxes divers
$champs15 = str_replace(',','.',$champs15); //pareil pour les taxes divers
$champs16 = str_replace(',','.',$champs16); //pareil pour les taxes divers
$price = $price+$champs13+$champs14+$champs15+$champs16; //j'additionne le prix et les taxes
$price = $price*$marge; // j'ajoute ma marge supplementaire definie plus haut (du genre 1.0605)
$price = round($price,2); // j'arrondis a 2 chiffres apres la virgule
[/php]
Franchement je reste sans solution car si encore il buggait pour les prix en-dessous de 1000 mais rien ! :(