Avant de me lancer sur mon 1er post sur ce forum, bravo à toute l'équipe Dolibarr pour votre travail.
Malgré de longues recherches sur le forum, impossible de trouver un modèle de document (devis, commande, facture) qui affiche le total TTC par ligne produit ! Indispensable pour les détaillants et toutes activités en relation avec les particuliers.
Alors je me suis lancé...
Voici les modifications effectuées, sur modèle de commande Einstein, version Doli 3.1.1
Fichier modifié attaché.
Fichier \htdocs\lib\pdf.lib.php
Ajouter ligne 1121
ENSUITE,
Sur votre modèle de document, ici pour l'exemple, c'est une commande.
Pensez à faire une copie de l'original.
\htdocs\includes\modules\commande\pdf_einstein.modules.php
ligne 89
ligne 280 remplacer par
puis ajouter
ligne 808 remplacer par
puis ajouter
Terminé
...
Malgré de longues recherches sur le forum, impossible de trouver un modèle de document (devis, commande, facture) qui affiche le total TTC par ligne produit ! Indispensable pour les détaillants et toutes activités en relation avec les particuliers.
Alors je me suis lancé...
Voici les modifications effectuées, sur modèle de commande Einstein, version Doli 3.1.1
Fichier modifié attaché.
Fichier \htdocs\lib\pdf.lib.php
Ajouter ligne 1121
/**
* Return line total INCLUDING tax
* @param object Object
* @param i Current line number
* @param outputlangs Object langs for output
* @param hidedetails Hide value
* 0 = no
* 1 = yes
* 2 = just special lines
*/
function pdf_getlinetotalincltax($object,$i,$outputlangs,$hidedetails=0)
{
if ($object->lines[$i]->special_code == 3)
{
return $outputlangs->transnoentities("Option");
}
else
{
if (! empty($object->hooks) && ( ($object->lines[$i]->product_type == 9 && ! empty($object->lines[$i]->special_code) ) || ! empty($object->lines[$i]->fk_parent_line) ) )
{
$special_code = $object->lines[$i]->special_code;
if (! empty($object->lines[$i]->fk_parent_line)) $special_code = $object->getSpecialCode($object->lines[$i]->fk_parent_line);
foreach($object->hooks as $hook)
{
if (method_exists($hook['modules'][$special_code],'pdf_getlinetotalincltax')) return $hook['modules'][$special_code]->pdf_getlinetotalincltax($object,$i,$outputlangs,$hidedetails);
}
}
else
{
if (empty($hidedetails) || $hidedetails > 1) return price($object->lines[$i]->total_ttc);
}
}
}
ENSUITE,
Sur votre modèle de document, ici pour l'exemple, c'est une commande.
Pensez à faire une copie de l'original.
\htdocs\includes\modules\commande\pdf_einstein.modules.php
ligne 89
// Defini position des colonnes
$this->posxdesc=$this->marge_gauche+1;
$this->posxtva=100;
$this->posxup=115;
$this->posxqty=130;
$this->posxdiscount=140;
$this->postotalht=155;
$this->postotalttc=174;
ligne 280 remplacer par
$pdf->MultiCell(15, 3, $total_excl_tax, 0, 'R', 0);
puis ajouter
// Total TTC ligne
$total_incl_tax = pdf_getlinetotalincltax($object, $i, $outputlangs, $hidedetails);
$pdf->SetXY ($this->postotalttc, $curY);
$pdf->MultiCell(20, 3, $total_incl_tax, 0, 'R', 0);
ligne 808 remplacer par
$pdf->MultiCell(20,2, $outputlangs->transnoentities("TotalHT"),'','C');
puis ajouter
/*TOTAL TTC ligne produit*/
$pdf->line($this->postotalttc, $tab_top, $this->postotalttc, $tab_top + $tab_height);
$pdf->SetXY ($this->postotalttc-1, $tab_top+1);
$pdf->MultiCell(25,2, 'Total TTC','','C');
Terminé
