[Résolu] Reste a livrer BL

Bonjour tout le monde,

J’ai modifié mon pdf pour faire apparaitre « le reste à livrer » des quantité commandé.
J’ai vu que beaucoup de personne avaient le problème et n’i arrivait pas.

Après beaucoup d’efforts j’ai réussi à le faire donc je poste ce sujet pour partager et aider les personnes qui n’ont pas réussi.

Le code :

$origin_id = $object->origin_id;

            // Requete sql pour trouver le rester a livrer

                    $sql = 'SELECT cd.rowid, cd.fk_product,';
                    $sql.= ' sum(ed.qty) as qty';
                    $sql.= ' FROM '.MAIN_DB_PREFIX.'expeditiondet as ed,';
                    $sql.= ' '.MAIN_DB_PREFIX.'expedition as e,';
                    $sql.= ' '.MAIN_DB_PREFIX.'commandedet as cd';
                    $sql.= ' WHERE ed.fk_expedition = e.rowid';
                    $sql.= ' AND ed.fk_origin_line = cd.rowid';
                    $sql.= ' AND cd.fk_commande =' .$origin_id;
                    $sql.= ' GROUP BY cd.rowid';

            $resql=$db-\>query($sql);

            $toBeShipped = array();

                $i = 0;
        while ($i < $num)
        {
                    $obj = $db-\>fetch_object($resql);
		$toBeShipped[$obj-\>rowid] = $object-\>lines[$i]-\>qty_asked \- ($obj-\>qty) ;
                    $i++
  	    }

Remplacer la boucle for par le while dans la function write_file.
Cela dans le modèle pdf qu’on a créé de la commande client. ( Pas encore testé sur la commande fournisseur ).

ps : petit B mol, c’est que cela fait un petit bug quand ton insère un service.

Cordialement,

Marvin.

1 « J'aime »

Merci Marvin,

Est-ce sur le modèle du PDF d’expé ou de livraison, les 2 sont très similaires, donc ça doit pouvoir logiquement fonctionner sur les 2, mais je voulais savoir si tu l’as testé sur les 2 ?

Est-ce qu’il y a aussi une colonne : « déjà livré » ?

J’avais créé une petite modif pour afficher tous les produits livrés même avec reliquat à 0 (tout simplement remplacer >0 en >=0 dans le code, ahahah !

de cette façon, au dernier bon de livraison, le client connait et vérifie toutes les qtés : « déjà livré » « reste à livrer ».

Tu ne voudrais pas carrément faire une Pull Request sur Github ?

Bonjour Hubz,

Quand je parle de BL, je fais référence au bon d’expédition sur Dolibarr bien sûr.
Désolé si je me suis mal exprimé.

Je l’affiche dans la colonne « Quantité à expédier » sur le PDF de base de Dolibarr « rouget » , ou j’ai changé le nom par Reste a expédier.

Pour la colonne déjà livrée, je l’ai crée en faisant une petite modif.
Sur le PDF « rouget » de Dolibarr la colonne est « Quantité commandée », donc je l’ai modifier en l’appelant « Quantité » et ne faisant afficher que la quantité qu’on a expédiée avec ça :

		// Quantité a livrer

                      $QtyAexpedier = $object-\>lines[$i]-\>qty_shipped;
                      $pdf-\>SetXY($this-\>posxqtyordered, $curY+1.5);
                      $pdf-\>MultiCell(($this-\>posxqtytoship \- $this-\>posxqtyordered), 3, $QtyAexpedier,'','C');

À ajouter juste en dessous de :

                // REF Produits

                $ref = pdf_getlineref($object, $i, $outputlangs, $hidedetails);
				$pdf-\>SetXY(10, $curY+1.5);
				$pdf-\>SetFont('','',9);
				$pdf-\>MultiCell(70, 3, $ref, 0, 'L',0);

Tu dis : "Tu ne voudrais pas carrément faire une Pull Request sur Github ? "
Mais je n’ai pas compris ta question ?

cordialement,

Marvin.