[CONTRIBUTION] Reclamaposte, Demande de remboursements des colis livrés en retard. |
Bienvenue invité ( Connexion | Inscription )
[CONTRIBUTION] Reclamaposte, Demande de remboursements des colis livrés en retard. |
4 Feb 2009, 14:37
Message
#101
|
|
2eme dan OSC Groupe : Bannis Messages : 3022 Inscrit : 12-November 07 Lieu : Massilia Membre no 19718 |
Ho les apprentis sorciers. Vous croyez quand même pas que Delete se tape des regex de la main gauche pour s'amuser le dimanche ? Même la nuit Si tu regardes dans le code en fait on ne prend que la première image à chaque fois Ce preg_match est en fait issu du code de ma modif de la contribution de Regne. D'ailleurs, il m'étonnerait que cela ne fonctionne pas, il doit y avoir d'autres problèmes car cette contrib a été installé par pas mal de personnes sans soucis particuliers |
|
4 Feb 2009, 14:41
Message
#102
|
|
Ceinture blanche+ OSC Groupe : Membres Messages : 20 Inscrit : 24-August 06 Membre no 11694 |
D'ailleurs, il m'étonnerait que cela ne fonctionne pas, il doit y avoir d'autres problèmes car cette contrib a été installé par pas mal de personnes sans soucis particuliers D'apres ce que j 'ai pu lire à droite à gauche il semblerait qu'il y ait un bug de preg_match_all dans certaines version de php selon la version de pcre installé sur le serveur.... AU moins là ça fonctionne à tout les coup, sauf que en y reflechissant bien, ça va merder, si par exemple on a : Pr un colis expédié le 20/01/09 - Colis livré le 30/01/09 - Colis en instance à la poste le 22/01/09 Car il faudrait prendre le 22/01/09 comme référence Je termine un truc et je me penche là dessus |
|
4 Feb 2009, 19:05
Message
#103
|
|
Ceinture blanche+ OSC Groupe : Membres Messages : 35 Inscrit : 4-January 05 Lieu : Aix en Provence Membre no 4252 |
question bonus, la date prise en compte comme expedition du colis est bien celle qui est associé au label "expédié" lors du changement de status de la commande et information du client que ca commande a bien été expédie ?
2eme chose : si aucune ligne ne possède de tag rouge (à rembourser) si je clique sur le 2eme bouton j'ai une erreur de ce type : Code Warning: file_get_contents(/tmp/laposte.remboursements.txt) [function.file-get-contents]: failed to open stream: No such file or directory in /home/g/gdmdg/www/osc/data/reclamaposte_pdf.php on line 171
FPDF error: Some data has already been output, can't send PDF file Ce message a été modifié par gdmdg - 4 Feb 2009, 19:29. -------------------- MS 2
|
|
4 Feb 2009, 19:53
Message
#104
|
|
Ceinture orange OSC Groupe : Membres Messages : 294 Inscrit : 12-June 04 Membre no 2653 |
c'est normal car ce fichier n'est pas créer vu qu'il n'y a pas de colis en retard
comme dis précédemment, les erreur ne sont pas gérées dans la contributions -------------------- MS2 fr
contrib : Colissimo+pick up store+ banner manager 1.4 + Credit Class & Gift Voucher+code barre+ Chronopost+OSC-Expeditor+Paypal+Cybermut+UltimateSEO Design by Ryadfantasy Serveur AMEN DUO 4000 Linux 2.6.23.17-88.fc7 PHP 5.2.9 MYSQL 5.1.31 [NO_PUB] |
|
4 Feb 2009, 23:23
Message
#105
|
|
2eme dan OSC Groupe : Bannis Messages : 3022 Inscrit : 12-November 07 Lieu : Massilia Membre no 19718 |
Salut !
Ne m'envoyez plus de MP pour les images, ma boite est pleine ! la dernière version disponible sur le le site US http://addons.oscommerce.com/info/6502 ne nécessite plus les images en question. Edit: Auto-edité Ce message a été modifié par delete - 4 Feb 2009, 23:52. |
|
5 Feb 2009, 08:06
Message
#106
|
|
Ceinture verte OSC Groupe : Membres Messages : 580 Inscrit : 11-August 04 Membre no 3034 |
Après en avoir bavé un peu, je me suis posé une question, mais au fait, dans notre cas à quoi sert preg_match_all> A RIEN Ho les apprentis sorciers. Vous croyez quand même pas que Delete se tape des regex de la main gauche pour s'amuser le dimanche ? Si tu regardes dans le code en fait on ne prend que la première image à chaque fois Mais as tu testé ? Je suis d'accord que sur le papier l'expression régulière ne sert à rien. Me semble-t-il (je dis me semble-t-il car c'était vrai au mois de novembre, pas retesté depuis), si la page "html" n'est pas ouverte, la session ne l'est pas non plus sur le site de La Poste. Si la session est fermée, on obtient comme image "xx/xx/xxxx" au lieu de la date. L'expression régulière permettrait d'éviter cela. |
|
5 Feb 2009, 11:00
Message
#107
|
|
Ceinture blanche+ OSC Groupe : Membres Messages : 20 Inscrit : 24-August 06 Membre no 11694 |
Mais as tu testé ? Je suis d'accord que sur le papier l'expression régulière ne sert à rien. Me semble-t-il (je dis me semble-t-il car c'était vrai au mois de novembre, pas retesté depuis), si la page "html" n'est pas ouverte, la session ne l'est pas non plus sur le site de La Poste. Si la session est fermée, on obtient comme image "xx/xx/xxxx" au lieu de la date. L'expression régulière permettrait d'éviter cela. J'ai soudain, une énorme inquiétude... Tu es bien sure de savoir ce que font les regexp? Elles ne sont utilisées que pour faire des extractions dans la page dans notre cas Code $status_page = curl_file_get_contents($url . '/gp/services/main.jsp?m=10003005&colispart=' . $noColis); // Statut de la livraison // $img = curl_file_get_contents($url . '/gp/servlet?id=' . strtoupper($noColis) . '_desc_0', 0, 1); Cf ma modif de code: on initialise la session, puis on récupère l'image |
|
5 Feb 2009, 11:28
Message
#108
|
|
Ceinture orange OSC Groupe : Membres Messages : 294 Inscrit : 12-June 04 Membre no 2653 |
je rencontre un nouveau probleme
car je viens de réexécuter la contribution ce matin. dans la 1er pahase i trouve bien de nouveau colis en retard par contre la phase 2 me génère toujours le meme fichier qu'hier. j'ai donc essayé en supprimant tous les fichier du répertoire tmp mais toujours pareil -------------------- MS2 fr
contrib : Colissimo+pick up store+ banner manager 1.4 + Credit Class & Gift Voucher+code barre+ Chronopost+OSC-Expeditor+Paypal+Cybermut+UltimateSEO Design by Ryadfantasy Serveur AMEN DUO 4000 Linux 2.6.23.17-88.fc7 PHP 5.2.9 MYSQL 5.1.31 [NO_PUB] |
|
5 Feb 2009, 11:32
Message
#109
|
|
2eme dan OSC Groupe : Bannis Messages : 3022 Inscrit : 12-November 07 Lieu : Massilia Membre no 19718 |
A quoi bon de se chamailler les gars
J'ai mis à jour la contrib sans preg_match. Et corrigé le problème du pdf vide dans le cas ou il n'y a pas de colis à rembourser. http://addons.oscommerce.com/info/6502 Si quelqu'un a une idée ou un code "propre" pour le menu (ce qui ferait fonctionner la contrib avec MSIE), je suis preneur @foxtoto -> vide ton cache Edit: Merci @Azra28 pour avoir découvert ce bug PCRE. Ce message a été modifié par delete - 5 Feb 2009, 11:36. |
|
5 Feb 2009, 11:38
Message
#110
|
|
Ceinture orange OSC Groupe : Membres Messages : 294 Inscrit : 12-June 04 Membre no 2653 |
je me repond a moi meme car j'ai trouvé la solution:
j'ai ajouter le chemin physique pouir le répertoire tmp dans le fichier reclamaposte_pdf.php $tmp_dir = DIR_FS_ADMIN . '/tmp' ; de plus j'ai enlever la solution de azra28 sur laquelle on a des doutes et j'ai appliqué la solution de Maxime avec le if ce qui donne le bout de code suivant: CODE // // // On traite le post // - Demande de remboursement la poste // // if( isset($_POST['verify']) ) { // Icone de statut de la commande // if ( ! tep_session_is_registered('order_alert') ) { tep_session_register('order_alert') ; $order_alert = array() ; } // Remise à zero du fichier de demande de remboursements // file_put_contents($tmp_dir . '/laposte.remboursements.txt', '') ; // Recupération des information du fichier // //$post="8L73174906287;24/01/2009 15:52:06;9999|8V76305200971;29/02/2009 15:52:06;9837|" ; $post = file_get_contents($tmp_dir . '/laposte.list.txt') ; $liste_colis = explode('|', $post) ; for($i = 0 ; $i < sizeof($liste_colis) ; $i++) { if ( ! tep_not_null($liste_colis[$i]) ) continue ; $str = explode(';', $liste_colis[$i]) ; $noColis = $str[0] ; $date = $str[1] ; $order_id = $str[2] ; // Test Cohérence N° Colis // if ( strlen($noColis) != 13 ) continue ; // Date expédition de la commande // $y = substr($date, 0, 4) ; $m = substr($date, 5, 2) ; $d = substr($date, 8, 2) ; $date_expedition = strtotime(sprintf('%04d-%02d-%02d', $y, $m, $d)) ; // Si la commande date de + de 30 jours, nul besoin de demander... // $age_commande = get_nb_open_days(time(), $date_expedition); if ( $age_commande > 30 ) { # On achive la commande ici continue ; } // // On récupère le dernier statut et date de la commande // $date = merci_la_poste($noColis) ; // // Le Colis a été livré, process de vérification des dates. // if( $date != 0 && $date != -1 ) { // // Processus OCR sur l'image 'date' ; // if ($img = imagecreatefrompng($tmpfname)) { // Masquage des slashes sur l'image // $yellow = imagecolorallocate($img, 255, 234, 153); imagefilledrectangle($img, 12, 0, 14, 12, $yellow); imagefilledrectangle($img, 26, 0, 29, 12, $yellow); // Fichier de sortie temporaire // $comparefile = tempnam($tmp_dir, "laposte"); imagepng($img, $comparefile); /* PHP OCR */ //This is the main function. Format of the output array is $retmas[$line_number][$letter_number][$type] //where $type is 0 for digit and 1 for relative closeness $retmas = parse_image($comparefile,$conf['font_file']); // $date = print_output_text($retmas,$tmpfname, 0); unlink($comparefile); unlink($tmpfname); $d = substr($date, 0, 2); $m = substr($date, 2, 2); $y = substr($date, 4, 2); $date_livraison = strtotime(sprintf('20%02d-%02d-%02d', $y, $m, $d)); $nb_jours_ouvres = get_nb_open_days($date_expedition, $date_livraison); // // On génère le fichier destiné à la poste ! // if ( $nb_jours_ouvres > 2 ) { $remboursements = sprintf('%s;%s;%s;%s;%s|', $order_id, $date_expedition, $date_livraison, $noColis, $nb_jours_ouvres); file_put_contents($tmp_dir . '/laposte.remboursements.txt', $remboursements, FILE_APPEND); // Surbrillance d'une commande en souffrance // $order_alert[$order_id] = 'icon_status_red.gif'; } else { // Cool, le produit a été livré à temps ! // $order_alert[$order_id] = 'icon_status_green.gif'; } } //patch } elseif ( $date == -1 ) { # Commande Grillée (client n'est pas allé cherché le colis par exemple # Archivage de la commande ( status = archivé ) $order_alert[$order_id] = 'icon_status_red_light.gif' ; } else if ( $date != 0 ) { // Livraison non aboutie // On verra la prochaine fois ! // $order_alert[$order_id] = 'icon_status_white.gif' ; } } tep_redirect(basename(__FILE__)) ; } Merci donc a ces 2 personnes qui m'ont permis d'avancer -------------------- MS2 fr
contrib : Colissimo+pick up store+ banner manager 1.4 + Credit Class & Gift Voucher+code barre+ Chronopost+OSC-Expeditor+Paypal+Cybermut+UltimateSEO Design by Ryadfantasy Serveur AMEN DUO 4000 Linux 2.6.23.17-88.fc7 PHP 5.2.9 MYSQL 5.1.31 [NO_PUB] |
|
5 Feb 2009, 11:41
Message
#111
|
|
Ceinture marron OSC Groupe : Membres Messages : 1448 Inscrit : 12-March 05 Lieu : Chuiche Membre no 5120 |
Quel coquin se Delete, il mets un v13 dans la v14 pour faire croire que c'est une nouvelle version
Blague mise à part. Si plus de preg_match, $status_page ne sert plus à rien non plus, non ? Toute facon je boude car tu as pas repris mon jolie layout dans un tableau standard Osc avec des liens vers la commande et le client, na! Ce message a été modifié par Phocea - 5 Feb 2009, 11:42. |
|
5 Feb 2009, 11:57
Message
#112
|
|
2eme dan OSC Groupe : Bannis Messages : 3022 Inscrit : 12-November 07 Lieu : Massilia Membre no 19718 |
Ok ton beau tableau on le mettra la prochaine fois
Pour $status_page, non ça ne sert à rien. Dans l'absolu il faudrait reprendre tout de A à Z et faire quelque chose de propre avec l'affichage de l'historique des commandes traitées (ce qui donnerait une utilité certaine à ton tableau). Mais après c'est une question de temps. J'ai d'autres chats à fouetter. Ce message a été modifié par delete - 5 Feb 2009, 14:12. |
|
5 Feb 2009, 16:32
Message
#113
|
|
Ceinture marron OSC Groupe : Membres Messages : 1448 Inscrit : 12-March 05 Lieu : Chuiche Membre no 5120 |
Argghhhh
Bon de petits commentaires: 1. C'est moins rapide avec le Md5 qu'avec les images ... mais aussi plus pratique 2. L'erreur du style "Warning: imagecreatefrompng() [function.imagecreatefrompng]: '/tmp/lapostemBaibZ' is not a valid PNG file in /.../admin/reclamaposte.php on line 226" vous êtes vraiment sur que c'est preg_match_all le soucis ??? 3. Sans les preg_match, les suivi qui n'ont plus d'info (oui je sais c'est bloqué par la requetes ,mais j ai mis 300 jours pour les tests!), reviennent en rouge... et le 2eme preg_match dans le switch 0 (sur la date), explose ... Bon après les commentaires, le fix: 1. on rajoute les preg_match_all (non mais, on vous a deja expliqué ce que ca a couté à Delete), les regex c'est marrant ! 2 on change la ligne Code for($i = 0; $i < sizeof( $status_file ); $i++) par Code for($i = 0; $i < sizeof( $status_description ); $i++) .. bein oui le status_file ils existent plus et ca marche...Autres petites remarques: - Les colis en cours de livraisons sont censés être en vert ?(au final c'est pas faux, La Poste est innocente tant que pas prouvé coupable!) - Le calcul des jours est il ok ? Exemple j'ai un colis partis le samedi 31, arrivé le 4 à La Poste et mis en instance, livré le 5. Le calcul me sort 3 jours alors que le jours de dépôt (samedi matin), compte. De plus il est noté "livré le 5 février", ne faudrait il pas plutôt se baser sur la date d'instance à la poste dans ce cas ?? Le colis est bien en retard car il aurait du être livré le 3, mais je préfère etre précis avant qu'un employé pas très zélé ne le prenne simplement pas en compte Ce message a été modifié par Phocea - 5 Feb 2009, 16:47. |
|
5 Feb 2009, 18:54
Message
#114
|
|
2eme dan OSC Groupe : Bannis Messages : 3022 Inscrit : 12-November 07 Lieu : Massilia Membre no 19718 |
J'ai réussit à reproduire les erreurs indiquées. Avec ou sans preg_match.
Il semble que la poste filtre sur un nombre conséquent de requête et on se retrouve avec un fichier de ce type Citation ... <body> Votre navigateur ne supporte pas les frames.<BR/> Merci de votre compréhension. </body> .... C'est peut être aussi dût au fait que le colis ne soit plus accessible ? Enfin bref c'est corrigé j'ai inséré une temporisation... http://addons.oscommerce.com/info/6502 J'ai fait plein d'autres modifications. @Phocea donne du code au lieu de te confondre en explications Merci d'avoir situé le bug... Ce message a été modifié par delete - 6 Feb 2009, 00:05. |
|
5 Feb 2009, 19:19
Message
#115
|
|
Ceinture marron OSC Groupe : Membres Messages : 1448 Inscrit : 12-March 05 Lieu : Chuiche Membre no 5120 |
Mais heu j'en ai donné du code ...essaye de reproduire le pb avec le fix de la boucle pour voir?
Pour le reste je crois que ca revient à merger tout ca avec la contrib de regne et le suivi des changements de status. Le cron nous permettrai de flager le status que l'on estime comme OK (livré ou destinataire absent ou en instance...), bref le moment ou on se dit que La Poste a fait son boulot. Ton code devra alors juste s'occuper de faire la différence entre la date d'envoi et de "livraison" pour reclamation eventuelle Je fais quand je peux EDIT: Ta derniere version contient une très bonne idée mais comme tu boucles sur le fichier remboursement on a plus les icones vertes dans la liste du bas. Faudra virer le if ( $nb_jours_ouvres > 2 ) quand on crée le fichier et traiter le cas dans le pdf et à l'affichage Ce message a été modifié par Phocea - 5 Feb 2009, 19:51. |
|
5 Feb 2009, 20:45
Message
#116
|
|
Ceinture orange OSC Groupe : Membres Messages : 294 Inscrit : 12-June 04 Membre no 2653 |
il y a effectivement un probleme car la contribution trouve des colis en retard car livré au bout de 3 jours mais avec le message : destinataire absent lors de la première présentation au bout de 2 jours
la livraison devrait donc etre considérée comme faite en temps et en heure. -------------------- MS2 fr
contrib : Colissimo+pick up store+ banner manager 1.4 + Credit Class & Gift Voucher+code barre+ Chronopost+OSC-Expeditor+Paypal+Cybermut+UltimateSEO Design by Ryadfantasy Serveur AMEN DUO 4000 Linux 2.6.23.17-88.fc7 PHP 5.2.9 MYSQL 5.1.31 [NO_PUB] |
|
5 Feb 2009, 23:14
Message
#117
|
|
2eme dan OSC Groupe : Bannis Messages : 3022 Inscrit : 12-November 07 Lieu : Massilia Membre no 19718 |
il y a effectivement un probleme Dans ce cas suggère et poste (c'est le cas de le dire ) C'est ici que cela ce passe : Code // // Cas dans lesquels la commande n'est pas remboursable // case 2 : case 4 : case 5 : case 9 : curl_close($ch); return(-1); @Phocea c'est noté, en + maintenant tu as ton beau tableau Edit : Je suis content de la Clio Jaune avec le logo bleu qui m'a été offerte Ce message a été modifié par delete - 6 Feb 2009, 00:10. |
|
6 Feb 2009, 08:47
Message
#118
|
|
Ceinture orange OSC Groupe : Membres Messages : 294 Inscrit : 12-June 04 Membre no 2653 |
je ne pense pas que le problème vienne de là
Dans quel ordre prends tu les statuts de la piste sur leur site quand il y en a plusieurs? en commencant par le haut pur par le bas? désolé mais si je ne poste pas de code c'est que je ne suis pas un spécialiste du PHP j'essai donc de faire remonter les problemes que je rencontre car cela peut vous aider. En tout cas je l'èspère -------------------- MS2 fr
contrib : Colissimo+pick up store+ banner manager 1.4 + Credit Class & Gift Voucher+code barre+ Chronopost+OSC-Expeditor+Paypal+Cybermut+UltimateSEO Design by Ryadfantasy Serveur AMEN DUO 4000 Linux 2.6.23.17-88.fc7 PHP 5.2.9 MYSQL 5.1.31 [NO_PUB] |
|
6 Feb 2009, 09:46
Message
#119
|
|
2eme dan OSC Groupe : Bannis Messages : 3022 Inscrit : 12-November 07 Lieu : Massilia Membre no 19718 |
Bahh on s'en fou un peu remarque, même certains logiciels payants envoient des réclamations pour des colis inéligibles au remboursement.
La poste fait le tri, et même pour certain qu'ils le sont ils ne remboursent pas |
|
6 Feb 2009, 14:09
Message
#120
|
|
Ceinture orange OSC Groupe : Membres Messages : 294 Inscrit : 12-June 04 Membre no 2653 |
bah j'ai regardé et sur 29 colis trouvé en retard, seulement 13 le sont réellement donc ca fait pas très sérieux aupres de leur service.
peux tu me dire si tu controles bien les différents statuts du colis donnés sur le site? Merci -------------------- MS2 fr
contrib : Colissimo+pick up store+ banner manager 1.4 + Credit Class & Gift Voucher+code barre+ Chronopost+OSC-Expeditor+Paypal+Cybermut+UltimateSEO Design by Ryadfantasy Serveur AMEN DUO 4000 Linux 2.6.23.17-88.fc7 PHP 5.2.9 MYSQL 5.1.31 [NO_PUB] |
|
6 Feb 2009, 15:03
Message
#121
|
|
2eme dan OSC Groupe : Bannis Messages : 3022 Inscrit : 12-November 07 Lieu : Massilia Membre no 19718 |
bah j'ai regardé et sur 29 colis trouvé en retard, seulement 13 le sont réellement donc ca fait pas très sérieux aupres de leur service. Il y a un peu de travail sur la boucle. Il faut faire des tests complémentaires. J'ai corrigé un bug majeur indiqué dans un autre post sur la nouvelle version pondue trop rapidement http://addons.oscommerce.com/info/6502 |
|
6 Feb 2009, 18:20
Message
#122
|
|
Ceinture marron OSC Groupe : Membres Messages : 1448 Inscrit : 12-March 05 Lieu : Chuiche Membre no 5120 |
Pour changer, quelques commentaires
D'abord, pour moi le samedi est un jours ouvré à La Poste. Ne faudrait il donc pas changer dans reclamaposte_dates.php ?: Code if (!in_array(date('w', $date_start), array(0, 6)) par Code if (!in_array(date('w', $date_start), 0) Ensuite pour les dates et pour prendre en compte les differents status apparaissant sur la page de suivi (ex. Colis en instance à la poste, puis livré, c'est la 1ere date qui nous importe - colis 8N01712883394 pour tester). Voici un premier jet ... a tester plus copieusement (désolé pour le setup de l'array, on fera plus propre plus tard hein!!) On ajoute en haut avant la déclaration de $status_description Code $status[0]['description'] = 'Livré'; $status[0]['md5'] = '1f9c469ab21e5b64cbb31f45f01b5c77'; $status[0]['remboursable'] = 'true'; $status[0]['initial_transit'] = 'false'; $status[1]['description'] = 'Colis en instance à la poste, destinataire avisé disposant de 15 jours pour aller le retirer'; $status[1]['md5'] = '16b4a42d0412966610c5f7d9504a4414'; $status[1]['remboursable'] = 'true'; $status[1]['initial_transit'] = 'false'; $status[2]['description'] = 'Destinataire absent lors de la première livraison, seconde présentation prévue'; $status[2]['md5'] = 'e4b21bccc77644f76bbdb2b297297e3e'; $status[2]['remboursable'] = 'true'; $status[2]['initial_transit'] = 'false'; $status[3]['description'] = 'Colis à disposition du destinaire au bureau de poste'; $status[3]['md5'] = '2785b7f3103de9c8778d9110a91427ef'; $status[3]['remboursable'] = 'true'; $status[3]['initial_transit'] = 'false'; $status[4]['description'] = 'Colis à disposition du destinataire'; $status[4]['md5'] = '2785b7f3103de9c8778d9110a91427ef'; $status[4]['remboursable'] = 'true'; $status[4]['initial_transit'] = 'false'; $status[5]['description'] = 'Colis ou accusé de réception à signer mis à disposition dans la boîte postale'; $status[5]['md5'] = '347eae829981f03a1036e463103b1eab'; $status[5]['remboursable'] = 'true'; $status[5]['initial_transit'] = 'false'; $status[6]['description'] = 'Colis à disposition du destinataire 5 jours dans le cityssimo'; $status[6]['md5'] = '2c2482aac5701e5b297ab57a13e4eff0'; $status[6]['remboursable'] = 'true'; $status[6]['initial_transit'] = 'false'; $status[7]['description'] = 'Colis réexpedié à la demande du destinataire vers l\'adresse de son choix'; $status[7]['md5'] = 'e9c66a355d98c1e919be3a518d7e1ed6'; $status[7]['remboursable'] = 'true'; $status[7]['initial_transit'] = 'false'; $status[8]['description'] = 'Adresse complétée ou corrigée par nos services, colis redirigé vers le bon site de distribution'; $status[8]['md5'] = '55869ad6917e3ce8d4984381e1e12cf7'; $status[8]['remboursable'] = 'false'; $status[8]['initial_transit'] = 'false'; $status[9]['description'] = 'Colis retourné à l\'expéditeur car refusé par le destinataire'; $status[9]['md5'] = '96123b9900beb4f4678e5f68dd188fd3'; $status[9]['remboursable'] = 'false'; $status[9]['initial_transit'] = 'false'; $status[10]['description'] = 'Colis retourné à l\'expéditeur car le destinataire du colis n\'habite pas à l\'adresse indiquée'; $status[10]['md5'] = '7dbbaaddb321f689f440cc075f8fd762'; $status[10]['remboursable'] = 'false'; $status[10]['initial_transit'] = 'false'; $status[11]['description'] = 'Colis en cours de réacheminement vers sont expéditeur'; $status[11]['md5'] = '52a7f30e1efc9308be8672f3eed5f099'; $status[11]['remboursable'] = 'false'; $status[11]['initial_transit'] = 'false'; $status[12]['description'] = 'Pris en charge de le réseau Colissimo'; $status[12]['md5'] = 'df5635740e757b728e27a34afbb650d3'; $status[12]['remboursable'] = 'true'; $status[12]['initial_transit'] = 'true'; $status[13]['description'] = 'Traité par le site de livraison'; $status[13]['md5'] = '5b1092eb53574ac02768d57a0d4439da'; $status[13]['remboursable'] = 'true'; $status[13]['initial_transit'] = 'true'; $status[14]['description'] = 'Colis arrivé dans le réseau partenaire du pays destinataire'; $status[14]['md5'] = 'c51b33cdba95ea6113435739b8259c82'; $status[14]['remboursable'] = 'false'; $status[14]['initial_transit'] = 'true'; $status[15]['description'] = 'Colis sorti du territoire de départ'; $status[15]['md5'] = '92fa28d7867746aef5bec47b3df19baa'; $status[15]['remboursable'] = 'false'; $status[15]['initial_transit'] = 'true'; $status[16]['description'] = 'Colis arrivé sur site, livraison en préparation'; $status[16]['md5'] = '9e21e939b22305a64b1a2f57fa25dd39'; $status[16]['remboursable'] = 'true'; $status[16]['initial_transit'] = 'true'; $status[17]['description'] = 'Colis traité par le site de livraison'; $status[17]['md5'] = '5b1092eb53574ac02768d57a0d4439da'; $status[17]['remboursable'] = 'true'; $status[17]['initial_transit'] = 'true'; $status[18]['description'] = 'Colis en instance en douane'; $status[18]['md5'] = '4b24a332b2743e942c03ebb27fa10e09'; $status[18]['remboursable'] = 'false'; $status[18]['initial_transit'] = 'true'; $status[19]['description'] = 'Colis déposé au bureau de Poste pour acheminement'; $status[19]['md5'] = '5154c07d974c9c47f78570054f5ae923'; $status[19]['remboursable'] = 'true'; $status[19]['initial_transit'] = 'true'; Puis on remplace la fonction merci_la_poste par: Code function merci_la_poste($noColis) { global $status, $ch, $tmp_dir, $tmpfname; $url = "http://www.coliposte.net"; $ch = curl_init(); $status_page = curl_file_get_contents($url . '/gp/services/main.jsp?m=10003005&colispart=' . $noColis); // Statut de la livraison // preg_match_all('#<img src="(/gp/servlet\?id=' . $noColis . '_desc_[0-9].*?)"#', $status_page, $result); // We retrieve all statuses displayed on the tracking page $statuses_found= array(); for($x = 0; $x < sizeof( $result[1]); $x++) { if ( ! $img = @curl_file_get_contents($url . $result[1][$x], 0, 1) ) { return -1; } else { for($i = 0; $i < sizeof( $status ); $i++) { if ( $status[$i]['md5'] = md5($img)) break; } } $statuses_found[]=$i; } $last_status = 0; $case = $i; // now we treat all statuses found if (sizeof($statuses_found) > 1) { for($y = 0; $y < sizeof( $statuses_found); $y++) { if ($status[$statuses_found[$y]]['remboursable'] == 'false') { $case = 9; break; } if ($status[$statuses_found[$y]]['initial_transit'] == 'false') $last_status = $y; } } switch( $case ) { case 0 : // La date // preg_match_all('#<img src="(/gp/servlet\?id=' . $noColis . '_date_[0-9].*?)"#', $status_page, $result); if ( ! $date = @curl_file_get_contents($url . $result[1][$last_status], 0, 1) ) break; curl_close($ch); $tmpfname = tempnam($tmp_dir, "laposte"); file_put_contents($tmpfname, $date); return(1); break; // // Cas dans lesquels la commande n'est pas remboursable // case 9 : curl_close($ch); return(-1); // // Ni livrée ni non-remboursable, on remets ça pour la prochaine fois ! // default : curl_close($ch); return(0); } } J'attends les retours Ce message a été modifié par Phocea - 6 Feb 2009, 18:21. |
|
6 Feb 2009, 18:44
Message
#123
|
|
2eme dan OSC Groupe : Bannis Messages : 3022 Inscrit : 12-November 07 Lieu : Massilia Membre no 19718 |
Et bien voilà
Quand tu veux, tu fais des efforts C'est sûr que c'est ouvré le Samedi même avec un contrat pro ? (expeditor) Sinon il faut traiter les deux cas ... ? |
|
6 Feb 2009, 19:29
Message
#124
|
|
Ceinture marron OSC Groupe : Membres Messages : 1448 Inscrit : 12-March 05 Lieu : Chuiche Membre no 5120 |
Bein je voyais bien que tu t'en sortais pas !
A terme on devrait avec ce système pouvoir noter si le colis est encore en transit mais dans les temps, arrivé ok etc... puis encore afficher un double état avec la pastille bleu que tu as prévu. Si certains ont des idées de process à suivre qu'il n'hésite pas. Je ne connais pas tous les cas ou la poste affiche plud d'un état sur le suivi. Il manque encore aussi à tester si avec un seul état en transit initial ou pas, si la date n'est pas dépassé. Pour le cas des colis ou cena n'a pas été mis à jour. On peut meme pense à traiter le cas des colis mal renseigné dans un PDF à part en indiquant que le manque de suivi nous oblige à réclamer !!! il faut aussi changer la colonne "date de livraison" en "présenté le" peut etre ? Et mettre le délai de jour à J+X comme indiqué sur le contrat...bref on a de quoi faire pour le reste de l'hiver |
|
6 Feb 2009, 20:05
Message
#125
|
|
Ceinture orange OSC Groupe : Membres Messages : 294 Inscrit : 12-June 04 Membre no 2653 |
pour moi ca fonctionne pas
j'ai les messages d'erreurs suivants: Warning: in_array() [function.in-array]: Wrong datatype for second argument in /var/www/vhosts/foxchip.com/httpdocs/admin/reclamaposte_dates.php on line 31 Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/foxchip.com/httpdocs/foxadmin/reclamaposte_dates.php:31) in /var/www/vhosts/foxchip.com/httpdocs/admin/includes/functions/general.php on line 69 j'ai rajouté la déclataion de variable $status_description qui avait été retirée dans la fonction merci_la_poste global $status,$status_description, $ch, $tmp_dir, $tmpfname; De plsu, le fait d'avoir changer le if dans reclamaposte_dates.php ne donne plus le bon resultat car ca me trouve 3 jours ouvrés entre le 30/01/09 et le 02/02/09 alors qu'il y a un dimanche Ce message a été modifié par foxtoto2000 - 6 Feb 2009, 20:20. -------------------- MS2 fr
contrib : Colissimo+pick up store+ banner manager 1.4 + Credit Class & Gift Voucher+code barre+ Chronopost+OSC-Expeditor+Paypal+Cybermut+UltimateSEO Design by Ryadfantasy Serveur AMEN DUO 4000 Linux 2.6.23.17-88.fc7 PHP 5.2.9 MYSQL 5.1.31 [NO_PUB] |
|
Version bas débit | Nous sommes le : 29th March 2024 - 16:02 |
Ce site est déclaré auprès de la commision Nationale de l'Informatique et des Libertés (déclaration n°: 1043896) |