Jump to content

[RESOLU] Modifier les tableaux de produits dans les factures, bon de livraisons ...


Recommended Posts

Bonjour à tous,

Je m'attaque aux informations présentent dans les tableaux des produits dans les PDF.
J'ai donc ouvert PDF.php et je me suis attaquer à ajouter par concaténation le nom du fabricant avant le nom du produit dans la colonne 'Description' renommée judicieusement 'Producteurs / Désignation Produit').

Hypothèse : Tous mes produits ont un fabricant !

Bref j'utilise le code suivant :

$this->MultiCell($w[++$i], 5, Tools::iconv('utf-8', self::encoding(), $product['manufacturer_name'].' / '.$product['product_name']).' - '.self::l('Customized'), 'B');


Pour afficher dans mon PDF les information... Mais cela me retourne que le nom du produits visiblement $product['manufacturer_name'] est vide... Je peux vous promettre que ce n'est pas le cas dans la base... De plus j'ai bien vérifié, les éléments de la variable $products proviennent via la fonction getproduct dont le code, dans product.php est le suivant :
static public function getProducts($id_lang, $start, $limit, $orderBy, $orderWay, $id_category = false, $only_active = false)
{
if (!Validate::isOrderBy($orderBy) OR !Validate::isOrderWay($orderWay))
die (Tools::displayError());
if ($orderBy == 'id_product' OR $orderBy == 'price' OR $orderBy == 'date_add')
$orderByPrefix = 'p';
elseif ($orderBy == 'name')
$orderByPrefix = 'pl';
elseif ($orderBy == 'position')
$orderByPrefix = 'c';

echo $rq = Db::getInstance()->ExecuteS('
SELECT p.*, pl.* , t.`rate` AS tax_rate, m.`name` AS manufacturer_name, s.`name` AS supplier_name
FROM `'._DB_PREFIX_.'product` p
LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (p.`id_product` = pl.`id_product`)
LEFT JOIN `'._DB_PREFIX_.'tax` t ON (t.`id_tax` = p.`id_tax`)
LEFT JOIN `'._DB_PREFIX_.'manufacturer` m ON (m.`id_manufacturer` = p.`id_manufacturer`)
LEFT JOIN `'._DB_PREFIX_.'supplier` s ON (s.`id_supplier` = p.`id_supplier`)'.
($id_category ? 'LEFT JOIN `'._DB_PREFIX_.'category_product` c ON (c.`id_product` = p.`id_product`)' : '').'
WHERE pl.`id_lang` = '.intval($id_lang).
($id_category ? ' AND c.`id_category` = '.intval($id_category) : '').
($only_active ? ' AND p.`active` = 1' : '').'
ORDER BY '.(isset($orderByPrefix) ? pSQL($orderByPrefix).'.' : '').'`'.pSQL($orderBy).'` '.pSQL($orderWay).
($limit > 0 ? ' LIMIT '.intval($start).','.intval($limit) : '')
);
if($orderBy == 'price')
Tools::orderbyPrice($rq,$orderWay);

return ($rq);
}


Alors que n'ai-je oublié ? Mon manufacturer_name doit me donner le nom du manufacturer ??? Non ?
Si quelqu'un peut m'aider !
Merci d'avance.
Link to comment
Share on other sites

En fait, c'est ce que j'explique maladroitement, dans la fonction getproducts voici le bout de sql qui ramène bien les informations sur les produits :

 Ligne 541 du fichier classes/product.php
SELECT p., pl. , t.`rate` AS tax_rate, m.`name` AS manufacturer_name, s.`name` AS supplier_name FROM ...



La function retourne un tableau des éléments de cette requête...

Or ce tableau qui m'est retourné dans la construction du PDF dans la variable $product ne me donne rien quand j'essaye d'atteindre le champ 'manufacturer_name' ... alors que j'ai bien renseigné les fabricants pour TOUS les produits...

D'où ma question dans mon premier POST.

Merci de votre aide !

Link to comment
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
×
×
  • Create New...