Chevauchement des lignes de facture

8 messages dans ce sujet

Posté(e) · Signaler ce message

Sur les factures comme sur les bons de commande j'ai des lignes qui se chevauchent:

bugpeel.jpg

quels sont les fichiers à modifier et, sachant que je suis plus novice qu'un novice en php, quelles sont les modifs à apporter?

Merci

Xavier

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

c'est pas mal compliqué en fait à résoudre comme "bug" parce que le fichier invoice.php qui gere tout ça ne raisonne pas en termes de lignes mais en termes d'espace d'occupation du contenu à afficher. Aussi la solution serait de jouer avec les valeurs en gras de cette fonction :

function addLine( $ligne, $tab )

{

global $colonnes, $format;

$ordonnee = 10;

$maxSize = $ligne;

reset( $colonnes );

while ( list( $lib, $pos ) = each ($colonnes) )

{

$longCell = $pos -2;

$texte = $tab[ $lib ];

$length = $this->GetStringWidth( $texte );

$tailleTexte = $this->sizeOfText( $texte, $length );

$formText = $format[ $lib ];

$this->SetXY( $ordonnee, $ligne-10);

$this->SetFont( "Helvetica", "", 8);

$this->MultiCell( $longCell, 4 , $texte, 0, $formText);

if ( $maxSize < ($this->GetY() ) )

$maxSize = $this->GetY() ;

$ordonnee += $pos;

}

return ( $maxSize - $ligne );

}

mais le résultat ne sera pas forcément des plus probants. Une autre solution serait de jouer avec la taille d'écriture etc. Mais là aussi bof bof.

La vraie solution est de changer la génération des factures pdf par une autre solution.

voir le site fpdf.org pour l'inspiration...

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Merci pour cette réponse détaillée.

Il me suffirait d'arriver à ne pas mettre la ligne "Délai de livraison...". Le délai étant affiché sur la présentation du produit, je n'ai pas besoin de le faire apparaître sur les bons de commande et/ou factures...

Mais rien que cette petite modif dépasse les compétences de mon neurone!

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Ok.

alors copiez collez ici le code du fichier commande_pdf du repertoire factures de la ligne 110 à la ligne 150.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Voilà de la ligne 110 à 150 du fichier commande_pdf du repertoire factures:

if (mysql_num_rows($qid_items)) {

while ($prod = mysql_fetch_array($qid_items)) {

$couleur = (!empty($prod['couleur'])) ? COLOR." : ".html_entity_decode($prod['couleur']) : "";

$taille = (!empty($prod['taille'])) ? " - ".SIZE." : ".html_entity_decode($prod['taille']) : "";

$delai = ($prod['delai_stock'] !=') ? "\n\rDélai de livraison : ".html_entity_decode($prod['delai_stock]) : "";

$option = ($prod['prix_option'] != "0.00000") ? "\n\r".OPTION_PRIX." : ".$prod['prix_option']." ".$commande->devise."" : "";

$remise = ($prod['percent_remise_produit'] != "0.00" ) ? "\n\r".PROMOTION_INCLUDE." : ".$prod['percent_remise_produit']." % (= -".fprix($prod['remise'])." ".$commande->devise.")" : "";

$ecotaxe = ($prod['ecotaxe'] != "0.00000") ? "\n\r dont ".ECOTAXE." : ".$prod['ecotaxe'] : "";

$prix = fprix($prod["prix"]);

$total_prix = fprix($prod["total_prix"]);

$line = array(

"REFERENCE" => $prod["reference"],

"DESIGNATION" => filtre_pdf(html_entity_decode($prod["nom_produit"]))."\n\r".vb($couleur).vb($taille).vb($delai),$option, $remise, $ecotaxe,

"PRIX TTC" => $prix,

"QUANTITE" => $prod["quantite"],

"TOTAL TTC" => $total_prix,

"TVA" => number_format($prod['tva_percent'],1)." % "

);

$size = $pdf->addLine( $y, $line );

$y += $size + 5;

}

}

}

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

La solution la plus simple et la plus rapide est de modifier à la fin du code que vous avez posté la ligne

$y += $size + 5;
en
$y += $size + 10;

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

super! merci!

on a un peu l'impression que le "délai de livraison" concerne le produit suivant mais ce n'est pas grave, c'est assez clean comme ça!

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour

Pour supprimer la ligne "Délai de livraison" :

cette ligne :

"DESIGNATION" => filtre_pdf(html_entity_decode($prod["nom_produit"]))."\n\r".vb($couleur).vb($taille).vb($delai),$option, $remise, $ecotaxe,

doit devenir :

"DESIGNATION" => filtre_pdf(html_entity_decode($prod["nom_produit"]))."\n\r".vb($couleur).vb($taille),$option, $remise, $ecotaxe,

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

Twitter Advisto ecommerce

Facebook PEEL Shopping