Version imprimable du sujet
Forum osCommerce-fr _ Fonctionnement _ Problème dans facture pdf
Écrit par : diaph 14 Apr 2012, 11:15
Bonjour,
J'ai un soucis avec mes factures pdf:
les attributs se chevauches sur la même ligne et deviennent illisibles.
EX. cl05435 Fichier jpg - /LRoVcBa-lAe6-300dpi 29.00€, alors que je devrais avoir : /, Local, a6-300 dpi
Voici le code qui concerne l'affichage des attributs:
Code
$pdf->MultiCell(8,6,$order->products[$i]['qty'],1,'C');
if (isset($order->products[$i]['attributes']) && (($k = sizeof($order->products[$i]['attributes'])) > 0))
{
Merci de votre aide
Écrit par : chti_poupon 14 Apr 2012, 14:37
Bonjour
Tu as plusieurs attributs (ils se chevauchent).
Il te manque donc vraisemblablement la boucle pour les parcourir.
Dans catalog/admin/invoice.php (je n'ai pas la version pdf) on trouve çà:
Code
if (isset($order->products[$i]['attributes']) && (($k = sizeof($order->products[$i]['attributes'])) > 0)) {
for ($j = 0; $j < $k; $j++) {
echo '<br><nobr><small> <i> - ' . $order->products[$i]['attributes'][$j]['option'] . ': ' . $order->products[$i]['attributes'][$j]['value'];
et la suite : donc une ligne par attribut
Belle journée !
Chti poupon
Écrit par : diaph 14 Apr 2012, 17:25
Merci chti_poupon pour ta réponse.
voilà la ligne qui affiche les attributs:
Code
$pdf->MultiCell(123,6,$order->products[$i]['name'] . ' - ' . $order->products[$i]['attributes'][$j]['value'],1,'L');
Je ne trouve pas la solution pour afficher sur plusieurs lignes ou avec un tiret séparateur
Écrit par : diaph 14 Apr 2012, 17:27
Quelqu'un connaît-il le fonctionnement du PDF
Merci
Écrit par : chti_poupon 14 Apr 2012, 19:03
Bonjour
Ce que je t'ai mis ne dépend pas du système pdf, mais du codage des options dans osCommerce:
Code
$order->products[$i]['attributes'][$j]['option']
contient le nom de l'option et
Code
$order->products[$i]['attributes'][$j]['value']
son prix etc...
Tu as besoin d'une boucle sur les $j options entre 0 et $k pour écrire celles qui sont renseignées.
C'est d'ailleurs le cas dans la dernière contrib http://addons.oscommerce.com/info/3027/v,22
Chti poupon
Écrit par : diaph 14 Apr 2012, 20:33
Bonsoir,
Oui, Je comprend bien
avec le code ci-dessous:
Code
if (isset($order->products[$i]['attributes']) && (($k = sizeof($order->products[$i]['attributes'])) > 0))
{
for ($j = 0; $j < $k; $j++)
{
$pdf->SetY($Y_Table_Position);
$pdf->SetX(39);
$pdf->MultiCell(123,6,$order->products[$i]['name'] . ' - ' . $order->products[$i]['attributes'][$j]['option'] . ': ' . $order->products[$i]['attributes'][$j]['value'],1,'L');
Les infos s'affichent, certes... mais empillées : comme ceci
cl05435 - IFAEPnorduteeribdtmsriiloionscaneveitt:i:t:és : L/ R:u/ o/eVclB:a /-leA6-300dpi
alors que je voudrais avoir ceci:
cl05435
- Publicité: /
- Internet: /
- Presse: /
- Format: RVB-A6-300dpi
- Edition: Locale
- Audiovisuel: /
Mon problème c'est le chevauchement des informations.
Écrit par : diaph 15 Apr 2012, 10:30
Bonjour,
Il faudrait peut-être que je sépare les attributs les uns des autres par leur id
Mais comment faire?
En fait, avec ma ligne de requête, j'obtiens bien les infos : option & value, mais comme il y en a plusieurs, il faut les séparer; mais ça je ne sais pas le faire !
Je suppose de certain d'entre vous avez déjà rencontré ce problème, en tout cas je n'ai rien trouvé sur le forum.
Je fait pleins d'essais, mais rien ne fonctionne.
Écrit par : chti_poupon 15 Apr 2012, 13:22
Bonjour
C'est bien compris, mais le problème est résolu - si j'en crois l'exemple fourni - dans la contrib citée précédemment. Attention, il y a des fix et des corrections: voir l'historique pour une version complète et téléchargable (bug de zip !)
Il y a une histoire de xxxxxY += 6; qui semble sauter de ligne d'un $j au suivant, après un if de tri selon la longueur du texte bref, le souci du détail...
Chti poupon
Propulsé par Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)