Sign in to follow this  
Followers 0

Chevauchement des lignes de facture

8 posts in this topic

Posted · Report post

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

Share this post


: post
Share on other sites

Posted · Report post

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...

Share this post


: post
Share on other sites

Posted · Report post

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!

Share this post


: post
Share on other sites

Posted · Report post

Ok.

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

Share this post


: post
Share on other sites

Posted · Report post

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;

}

}

}

Share this post


: post
Share on other sites

Posted · Report post

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;

Share this post


: post
Share on other sites

Posted · Report post

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!

Share this post


: post
Share on other sites

Posted · Report post

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,

Share this post


: post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

Twitter Advisto ecommerce

Facebook PEEL Shopping