probleme impression attribut sur fichiers PDF |
Bienvenue invité ( Connexion | Inscription )
probleme impression attribut sur fichiers PDF |
22 Jan 2013, 15:24
Message
#1
|
|
Ceinture jaune OSC Groupe : Membres Messages : 52 Inscrit : 29-April 09 Lieu : audun le tiche Membre no 25205 |
Bonjour,
Après mettre arracher un peu de cheveux, j'ai un soucis, tous mes attributs produits apparaissent partout sauf sur ma facture et mon bL PDF, Veuillez trouver ci dessous le code. En esperant que quelqu'un ai une petite idee. merci Code <?php require('includes/application_top.php'); require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_PDF_DEVIS_BL_FACTURE); if (!is_object($currencies)) { require_once(DIR_WS_CLASSES . 'currencies.php'); $currencies = new currencies(); } include(DIR_WS_CLASSES . 'order.php'); if (!isset($_GET['oID'])) { echo 'erreur'; exit; } $oID = $_GET['oID']; $orders_query = tep_db_query("select orders_id from " . TABLE_ORDERS . " where orders_id = '" . $oID . "'"); if ( tep_db_num_rows($orders_query) !=1 /*|| ($devis->seller['society_id'] != $seller_data['society_id']) || ($devis->seller['seller_id'] != $seller_id)*/ ) { echo 'accès illégal'; //ce client ou ce vendeur n'est pas autorisé a voir cette commande .... exit; } $order = new order($oID); /*$factures_query = tep_db_query("select factures_id, orders_id, date_facture from " . TABLE_FACTURES . " where orders_id = '" . $oID . "'"); $facture = tep_db_fetch_array($factures_query); // on contrôle la correspondance orders factures if ($order->info['factures_id'] != $facture['factures_id']) $facture['factures_id'] = $erreur_facture; if ($order->info['factures_id'] == null) $facture['factures_id'] = $erreur_facture; */ if (isset($order->seller['seller_id']) && (int)$order->seller['seller_id']>0) { $db_seller_data_query = tep_db_query("select society_id, society_list_sellers_id, society_name, society_company, society_logo, society_street_address, society_suburb, society_city, society_postcode, society_state, society_country, society_address_format_id, society_telephone, society_telephone2, society_fax, society_forme_juridique, society_rcs, society_siret, society_tva_intracom, society_banque_account, society_email_address from " . TABLE_CUSTOMERS . " c, " . TABLE_SELLERS_INFO . " si where c.customers_society_id = si.society_id and c.customers_id = '" . (int)$order->seller['seller_id'] . "' and si.society_id = '" . (int)(int)$order->seller['society_id'] . "'"); $db_seller_data = tep_db_fetch_array($db_seller_data_query); // on recupere les infos du vendeur... (normalement, c'est deja en variable session puisque le vendeur est logué...) $order->seller = array(// 'name' => $db_seller_data['society_name'], 'company' => $db_seller_data['society_company'], 'logo' => $db_seller_data['society_logo'], 'street_address' => $db_seller_data['society_street_address'], 'suburb' => $db_seller_data['society_suburb'], 'postcode' => $db_seller_data['society_postcode'], 'city' => $db_seller_data['society_city'], 'state' => $db_seller_data['society_state'], 'country' => $db_seller_data['society_country'], 'format_id' => $db_seller_data['society_address_format_id'], 'telephone' => $db_seller_data['society_telephone'], 'telephone2' => $db_seller_data['society_telephone2'], //'forme_juridique' => $db_seller_data['society_forme_juridique'], 'fax' => $db_seller_data['society_fax'], 'rcs' => $db_seller_data['society_rcs'], 'siret' => $db_seller_data['society_siret'], //'tva_intracom' => $db_seller_data['society_tva_intracom'], 'banque_account' => $db_seller_data['society_banque_account'], 'email_address' => $db_seller_data['society_email_address'] ); } else { require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_ADDRESS_SELLER_SHOP); $order->seller = array( //'name' => SOCIETY_NAME, 'company' => SOCIETY_COMPANY, 'logo' => SOCIETY_LOGO, 'street_address' => SOCIETY_STREET_ADDRESS, 'suburb' => SOCIETY_SUBURB, 'postcode' => SOCIETY_POSTCODE, 'city' => SOCIETY_CITY, 'state' => SOCIETY_STATE, // 'country' => SOCIETY_COUNTRY, 'format_id' => SOCIETY_ADDRESS_FORMAT_ID, 'telephone' => SOCIETY_TELEPHONE, 'telephone2' => SOCIETY_TELEPHONE2, 'forme_juridique' => SOCIETY_FORME_JURIDIQUE, 'fax' => SOCIETY_FAX, 'rcs' => SOCIETY_RCS, 'siret' => SOCIETY_SIRET, //'tva_intracom' => SOCIETY_TVA_INTRACOM, 'banque_account' => SOCIETY_BANQUE_ACCOUNT, 'email_address' => SOCIETY_EMAIL_ADDRESS, 'divers_1' => SOCIETY_DIVERS_1, 'divers_2' => SOCIETY_DIVERS_2 ); } function build_product_list() { global $order, $currencies; $last_room = 'thisisnotagoodroom'; $prod_list = '<table border="1" width="100%" cellspacing="0" cellpadding="0" class="prod_list">'. "\n"; $prod_list = '<table border="1" style="width:100%;font-family: Mono; font-size: 6pt;" class="tallcells">'. "\n"; //$prod_list = '<table style="border:1px solid #880000; background-color: #BBCCDD; font-family: Mono; font-size: 7pt;" class="tallcells">'. "\n"; //$prod_list = '<table style="border:1px solid #880000; font-family: Mono; font-size: 7pt;" class="tallcells">'. "\n"; $prod_list .= '<tbody>'. "\n"; $prod_list .= '<tr>'. "\n"; $prod_list .= '<td style="width:5%;text-align:center;" class="prod_list-heading">Liens</td>'. "\n"; //$prod_list .= '<td style="width:50px;text-align:center;" class="prod_list-heading">'.TABLE_HEADING_PRODUCTS_MODEL.'</td>'. "\n"; $prod_list .= '<td style="text-align:center;" class="prod_list-heading">'.TABLE_HEADING_PRODUCTS.'</td>'. "\n"; //$prod_list .= '<td style="width:100px;text-align:center;" class="prod_list-heading">'.TABLE_HEADING_Qte_Area.'</td>'. "\n"; $prod_list .= '<td style="width:14%;text-align:center;" class="prod_list-heading">'."Quantités".'</td>'. "\n"; //$prod_list .= '<td style="width:80px;text-align:center;" class="prod_list-heading">'.TABLE_HEADING_Qte_Box.'</td>'. "\n"; $prod_list .= '<td style="width:6%;text-align:center;" class="prod_list-heading">'."Remise".'<br/>(%)</td>'. "\n"; $prod_list .= '<td style="width:13%;text-align:center;" class="prod_list-heading">'.TABLE_HEADING_PRICE_PUHT.'<br/>(avec remise)</td>'. "\n"; $prod_list .= '<td style="width:8%;text-align:center;" class="prod_list-heading">'.TABLE_HEADING_PRICE_MONTANT_HT.'</td>'. "\n"; $prod_list .= '<td style="width:5%;text-align:center;" class="prod_list-heading">'.TABLE_HEADING_PRICE_TVA.'<br/>(%)</td>'. "\n"; $prod_list .= '</tr>'. "\n"; for ($i=0, $n=sizeof($order->products); $i<$n; $i++) { if (isset($order->products[$i]['room']) && isset($last_room) && $last_room <> $order->products[$i]['room']) { $prod_list .= '<tr class="prod_list-odd">'. "\n"; $prod_list .= '<td style="font-size:12px; background-color:#572d4b; font-weight:normal; color:white; text-align:left;" class="prod_list-data" colspan="2">'.($order->products[$i]['room'] == '' ? 'Divers' : $order->products[$i]['room']).'</td>'. "\n"; $prod_list .= '<td style="text-align:center;" class="prod_list-data" colspan="5"></td>'. "\n"; $prod_list .= '</tr>'. "\n"; } $last_room = isset($order->products[$i]['room']) ? $order->products[$i]['room'] : ''; $lien_site = '<p class="product_name"><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $order->products[$i]['id']) . '">voir</a></p>'; $products_name = '<p class="product_name">' . $order->products[$i]['name'] . '</p>'; if (tep_not_null($order->products[$i]['products_dimensions'])) { $products_name .= '<p class="kolisage"> - ' . ' ' . $order->products[$i]['products_dimensions'] . '</p>'; } if (isset($order->products[$i]['attributes']) && is_array($order->products[$i]['attributes'])) { $products_name .= '<small><i><pre> - ' . print_r($products[$i]['attributes'],true) . '</pre></i></small>'; reset($order->products[$i]['attributes']); while (list($option, $value) = each($order->products[$i]['attributes'])) { $products_name .= '<br /><small><i> - ' . $order->products[$i][$option]['products_options_name'] . ' ' . $order->products[$i][$option]['products_options_values_name'] . '</i></small>'; } } if ($order->products[$i]['products_type'] >=100 ) $bg_color = 'background-color: #EEEEEE;'; else $bg_color = ''; if (($i/2) == floor($i/2)) { $prod_list .= '<tr class="prod_list-even" style="'.$bg_color.'">'. "\n"; } else { $prod_list .= '<tr class="prod_list-odd" style="'.$bg_color.'">'. "\n"; } tep_get_unit_item($order->products[$i]['products_type'], $item, $unit, $unit_price, $parameters); $prod_list .= '<td class="prod_list-data" style="text-align:center;padding:5px;margin:0">'.$lien_site.'</td>'. "\n"; //$prod_list .= '<td style="text-align:center;" class="prod_list-data">'.$order->products[$i]['model'].'</td>'. "\n"; $prod_list .= '<td class="prod_list-data" style="text-align:left;padding:5px;margin:0">'. $products_name.'</td>'. "\n"; $qty_string = $order->products[$i]['qty'].' '.$item; if ( ($item <> $unit) && tep_not_null($order->products[$i]['qty']) && tep_not_null($order->products[$i]['qty_area']) ) { $qty_string = $order->products[$i]['qty'].' '.$item; $qty_string .= '<br/>'.$order->products[$i]['qty_area'].' '.$unit; } //$prod_list .= '<td style="text-align:center;" class="prod_list-data">'. (tep_not_null($order->products[$i]['qty_area']) ? $order->products[$i]['qty_area'].' '.$unit : ' ') .'</td>'. "\n"; //$prod_list .= '<td style="text-align:center;" class="prod_list-data">'. $order->products[$i]['qty'].' '.$item .'</td>'. "\n"; $prod_list .= '<td class="prod_list-data" style="text-align:center;padding:5px;margin:0">'. $qty_string .'</td>'. "\n"; $prod_list .= '<td class="prod_list-data" style="text-align:center;padding:5px;margin:0">'. ($order->products[$i]['remise']>0 ? $order->products[$i]['remise'] : ' ') .'</td>'. "\n"; $prod_list .= '<td class="prod_list-data" style="text-align:center;padding:5px;margin:0">'. $currencies->format($order->products[$i]['final_price'], true, $order->info['currency'], $order->info['currency_value']).'<br/>/ '.$item.'</td>'. "\n"; $prod_list .= '<td class="prod_list-data" style="text-align:center;padding:5px;margin:0">'. $currencies->format($order->products[$i]['final_price'] * $order->products[$i]['qty'], true, $order->info['currency'], $order->info['currency_value']).'</td>'. "\n"; $prod_list .= '<td class="prod_list-data" style="text-align:center;padding:5px;margin:0">'. round($order->products[$i]['tax'],2) .'</td>'. "\n"; $prod_list .= '</tr>'. "\n"; } //for ($i=0, $n=sizeof($order->products); $i<$n; $i++) $prod_list .= '</tbody>'. "\n"; $prod_list .= '</table>'. "\n"; return $prod_list; } // Affichage du coût total function build_order_totals() { global $order, $currencies; $prod_list = '<div class="rounded totals_frame">'. "\n"; $prod_list .= '<table border="0" style="width:100%;font-family: Mono; font-size: 7pt;" class="tallcells">'. "\n"; $prod_list .= '<tbody>'. "\n"; $total_titles = ""; $total_values = ""; for ($i = 0, $n = sizeof($order->totals); $i < $n; $i++) { $total_titles = '<p>'.$order->totals[$i]['title'].'</p>'; //$total_values .= '<p>'.tep_round($order->totals[$i]['value'],2).'</p>'; $total_values = '<p>'.str_replace("€","€", $order->totals[$i]['text']).'</p>'; //} $prod_list .= '<tr>'. "\n"; $prod_list .= '<td class="prod_list-data title" style="text-align:right;padding:5px;margin:0">'. $total_titles .'</td>'. "\n"; $prod_list .= '<td class="prod_list-data" style="width:100px;text-align:right;padding:5px;margin:0">'.$total_values. '</td>'. "\n"; $prod_list .= '</tr>'. "\n"; } $prod_list .= '</tbody>'. "\n"; $prod_list .= '</table>'. "\n"; $prod_list .= '</div>'. "\n"; $prod_list .= '<div style="clear: both"></div>'. "\n"; return $prod_list; } $html = ' <style> .rounded { border:0.1mm solid #220044; /*background-color: #f0f2ff; background-gradient: linear #c7cdde #f0f2ff 0 1 0 0.5;*/ border-radius: 2mm; background-clip: border-box; } .seller_frame { border:none; float:left; width:200px; font-size:8px; } .customer_frame { float:right; width:200px; font-size:8px; background-color: #ffffff; } .center_frame { float:left; margin-left:10x; padding:0px; width:200px; font-size:8px; background-color: #ffffff; } .totals_frame { float:right; /*margin-left:10x;*/ padding:10px; width:500px; font-size:8px; background-color: #ffffff; } .totals_frame .title {font-weight: bold;} .devis_info_haut, .devis_info_bas { float:left; margin-bottom:20x; width:180px; font-size:8px; } .devis_info_haut { height:40px; } .devis_info_bas { height:80px; } .customer_frame { height:155px; } .devis_info_haut .title, .devis_info_bas .title, .customer_frame .title {font-size:12px;font-weight:bold} .informations { border:0.1mm solid #220044; font-size:12px; background-color: #ffffff; } h4 { font-family: sans; font-weight: bold; margin-top: 1em; margin-bottom: 0.5em; } div { padding:1em; margin-bottom: 1em; text-align:justify; } .example pre { background-color: #d5d5d5; margin: 1em 1cm; padding: 0 0.3cm; } pre { text-align:left } pre.code { font-family: monospace } </style> <!-- TEST FLOAT --> <body <!--style="background-gradient: linear #88FFFF #FFFF44 0 0.5 1 0.5;"-->> '; $html .= ' <div class="rounded seller_frame"> <p>'.tep_image(DIR_FS_CATALOG.DIR_WS_IMAGES . $order->seller['logo'], '', '','').'</p> <p>'.tep_seller_address_format_id($order->seller['format_id'], $order->seller, 1, '', "<br/>").'</p> </div> <div class="center_frame"> <div class="rounded devis_info_haut"> <p class="title">PROFORMA - FACTURE</p> </div> <div class="rounded devis_info_bas"> <p class="title">'.PRINT_REFERENCE.'</p><br/> <p>'.PRINT_CUSTOMER_NUM . $order->info['customers_id'].'</p> <p>'.PRINT_ORDER_NUM . '<b>'.$oID.'</b>' . ' du ' . tep_date_short($order->info['date_purchased']).'</p> </div> </div> <div class="rounded customer_frame"> <p class="title">'.ENTRY_SOLD_TO.'</p> <p>'.tep_seller_address_format_id($order->billing['format_id'], $order->billing, '', '', "<br/>").'</p> </div> <div style="clear: both"></div> '; //$html .= '<br style"clear:both"/>'; $html .= build_product_list().'<br/>'; $html .= build_order_totals().'<br/>'; //$html .= build_benefices(); /*if (isset($order->info['comments']) && tep_not_null($order->info['comments'])) { $html .= ' <h4>Informations</h4> <div class="informations"> <p>'.str_replace("\n", "<br/>", $order->info['comments']).'</p> </div> '; }*/ /*if (isset($order->info['payment_info']) && tep_not_null($order->info['payment_info'])) { $html .= ' <h4>Informations</h4> <div class="informations"> <p>'.str_replace("\n", "<br/>", $order->info['payment_info']).'</p> </div> '; }*/ //exit; //============================================================== //============================================================== //============================================================== //include(DIR_WS_CATALOG."mpdf51/mpdf.php"); include(DIR_FS_CATALOG."mpdf51/mpdf.php"); $mpdf=new mPDF('c'); $mpdf->mirrorMargins = 1; // Use different Odd/Even headers and footers and mirror margins $mpdf->defaultheaderfontsize = 10; /* in pts */ $mpdf->defaultheaderfontstyle = B; /* blank, B, I, or BI */ $mpdf->defaultheaderline = 1; /* 1 to include line below header/above footer */ $mpdf->defaultfooterfontsize = 12; /* in pts */ $mpdf->defaultfooterfontstyle = B; /* blank, B, I, or BI */ $mpdf->defaultfooterline = 1; /* 1 to include line below header/above footer */ //$mpdf->SetHeader('{DATE j-m-Y}|{PAGENO}/2|'.PRINT_ORDER_NUM . $oID.$order->info['devis_id']); $mpdf->SetFooter('|Page {PAGENO}/2|'.PRINT_ORDER_NUM . $oID.$order->info['devis_id']); //$mpdf->SetFooter('|{PAGENO}|Printed @ {DATE j-m-Y H:m}'); /* defines footer for Odd and Even Pages - placed at Outer margin */ /*$mpdf->SetFooter(array( 'L' => array( 'content' => 'Text to go on the left', 'font-family' => 'sans-serif', 'font-style' => 'B', // blank, B, I, or BI 'font-size' => '10', // in pts ), 'C' => array( 'content' => '- {PAGENO} -', 'font-family' => 'serif', 'font-style' => 'BI', 'font-size' => '12', // gives default ), 'R' => array( 'content' => 'Printed @ {DATE j-m-Y H:m}', 'font-family' => 'monospace', 'font-style' => '', 'font-size' => '10', ), 'line' => 1, // 1 to include line below header/above footer ), 'E' // defines footer for Even Pages );*/ // $mpdf->SetWatermarkText('PROFORMA'); $mpdf->watermark_font = 'DejaVuSansCondensed'; $mpdf->showWatermarkText = true; /*$mpdf->SetDisplayMode('fullpage'); $mpdf->list_indent_first_level = 0; // 1 or 0 - whether to indent the first level of a list // LOAD a stylesheet //$stylesheet = file_get_contents('mpdfstyletables.css'); //$mpdf->WriteHTML($stylesheet,1); // The parameter 1 tells that this is css/style only and no body/html/text $mpdf->WriteHTML($html,2); $mpdf->Output('mpdf.pdf','I'); */ $stylesheet = file_get_contents(DIR_FS_CATALOG.'mpdfstyletables.css'); $mpdf->WriteHTML($stylesheet,1); // The parameter 1 tells that this is css/style only and no body/html/text $mpdf->SetDisplayMode('fullpage'); $mpdf->WriteHTML($html); $mpdf->Output(); exit; /* //Show the products information line by line for ($i = 0, $n = sizeof($order->products); $i < $n; $i++) { $prod_attribs=''; $height_of_a_line = 4; $max_nb_line_in_a_cell = 1; //get attribs and concat if ( (isset($order->products[$i]['attributes'])) && (sizeof($order->products[$i]['attributes']) > 0) ) { for ($j=0, $n2=sizeof($order->products[$i]['attributes']); $j<$n2; $j++) { $prod_attribs .= "\n - " .$order->products[$i]['attributes'][$j]['option'] . ': ' . clean_attribute_value_name($order->products[$i]['attributes'][$j]['value']); $max_nb_line_in_a_cell ++; } } if ( (isset($order->products[$i]['products_dimensions'])) && (tep_not_null($order->products[$i]['products_dimensions'])) ) { $prod_attribs .= "\n - " .$order->products[$i]['products_dimensions']; $max_nb_line_in_a_cell ++; } $this_line_height = $height_of_a_line * $max_nb_line_in_a_cell; $product_name_attrib_contact = $order->products[$i]['name'] . $prod_attribs; output_multicell(10,$Y_Table_Position,32,$this_line_height,$font_size,$order->products[$i]['model'],1,'C'); output_multicell(42,$Y_Table_Position,65,$height_of_a_line,$font_size,$product_name_attrib_contact,1,'L'); output_multicell(107,$Y_Table_Position,20,$this_line_height,$font_size,$order->products[$i]['qty_area'],1,'C'); output_multicell(127,$Y_Table_Position,20,$this_line_height,$font_size,$order->products[$i]['qty'],1,'C'); output_multicell(147, $Y_Table_Position, 12, $this_line_height, $font_size, $order->products[$i]['remise_globale']>0 ? $order->products[$i]['remise_globale'].' %' : '-',1,'C'); output_multicell(159, $Y_Table_Position, 12, $this_line_height, $font_size, $currencies->format($order->products[$i]['final_price'], true, $order->info['currency'], $order->info['currency_value']),1,'C'); output_multicell(171, $Y_Table_Position, 15, $this_line_height, $font_size, $currencies->format($order->products[$i]['final_price'] * $order->products[$i]['qty'], true, $order->info['currency'], $order->info['currency_value']), 1, 'C'); output_multicell(186, $Y_Table_Position, 10, $this_line_height, $font_size, round($order->products[$i]['tax'],2). " %", 1, 'C'); $Y_Table_Position += $this_line_height; //Check for product line overflow if ($Y_Table_Position > 180) { $pdf->AddPage(); $Y_Table_Position = 81; } } // Affichage du coût total $r1 = 10; $r2 = 196; $y1 = $Y_Table_Position+5; $y2 = $y1+5*sizeof($order->totals); $pdf->RoundedRect($r1, $y1, ($r2 - $r1), ($y2-$y1), 2, 'D'); $pdf->Line( $r2-25, $y1, $r2-25, $y2); // Affichage du coût total for ($i = 0, $n = sizeof($order->totals); $i < $n; $i++) { $pdf->SetFont( "Arial", "B", 6); $pdf->SetXY( $r2-50, $y1 ); $pdf->Cell(20,6, $order->totals[$i]['title'], 0, 0, "R"); $pdf->SetFont( "Arial", "", 6); $pdf->SetXY( $r2-20, $y1 ); $pdf->Cell(20,6, str_replace("€","€", $order->totals[$i]['text']), 0, 0, "C"); $y1 += 5; } //dessine les conditions de paiement $y1 += 7; $pdf->SetY($y1); $pdf->SetX(10); $pdf->RoundedRect(10, $y1, 186, 50, 0, 'D'); $pdf->SetFont('Arial','B',6); $pdf->SetX(15); $pdf->MultiCell(100,6,PRINT_CONDITION_PAIEMENT_HEADING,0,'L'); $y1 += 7; $pdf->SetFont('Arial','',6); $pdf->SetTextColor(0); $pdf->SetY($y1); $pdf->SetX(15); $pdf->MultiCell(180, 4, PRINT_CONDITION_PAIEMENT,0,'L'); // PDF's created now output the file $pdf->Output(); */ ?> -------------------- Marche avec les meilleurs, ou crève avec les autres
Oscommerce 2.2MS2FR - invoice pdf 1.5 - tva intracom 5.1.1 - country states selector ajax 1.5.5 - customer discount 1.3 - customer extra fields 1.2a - directbuy 1.21 - member approval 1.7 - order_editor_5_0_9b_FR |
|
Version bas débit | Nous sommes le : 29th March 2024 - 07:32 |
Ce site est déclaré auprès de la commision Nationale de l'Informatique et des Libertés (déclaration n°: 1043896) |