Jump to content

Edit History

Yvan M

Yvan M

Bonjour,

J'ai modifié le module pour le rendre compatible 1.7 (au moins 1.7.4.4 avec laquelle je travaille); simplement préciser dans le fichier que le module est compatible jusqu'à 1.7, je n'ai vu aucun problème notable jusqu'alors.

J'aimerais pouvoir limiter les statistiques fournisseur à un fournisseur donné, qui sera lié à un employé, pour que chaque fournisseur n'ait accès qu'aux statistiques de ventes qui le concernent. Pour cela, ma première étape est d'ajouter un onglet "fournisseur test", avec un ID fixe, et d'afficher dans cet onglet la donnée correspondante.

Dans le salestats.php, j''ai ajouté $this->group_by['supplierId'] = $this->l('Supplier 1 - Test');

et modifié la fonction DisplayList pour prendre en compte ce "supplierId".

J'ai créé la fonction getSalesListIDSUP() sur la base de getSalesList(), afin de modifier la requête SQL pour n'extraire que les données de l'ID fournisseur voulu ('2' en l'occurrence). N'étant pas à l'aise avec les requêtes SQL, et malgré quelques tutos, je n'arrive pas à définir la bonne requête. Voici mon code, si quelqu'un peut corriger, merci !

$sql = 'SELECT  s.name, SUM(od.product_quantity) as nbproducts, ROUND(SUM(od.total_price_tax_excl), 2) AS sale, ROUND(SUM(od.total_price_tax_excl) / SUM(od.product_quantity), 2) as moyenne
				FROM '._DB_PREFIX_.'order_detail od
				LEFT JOIN '._DB_PREFIX_.'orders o ON o.id_order = od.id_order
				LEFT JOIN '._DB_PREFIX_.'product p ON p.id_product = od.product_id
				LEFT JOIN '._DB_PREFIX_.$group_by_table.' s ON s.id_'.$group_by.' = p.id_'.$group_by_product.'
				WHERE o.date_add BETWEEN \''.pSQL($from_date).'\'
					AND p.id_'.$group_by.' IN (2)
					AND DATE_ADD(\''.pSQL($to_date).'\', INTERVAL +1 DAY)
					AND (o.current_state IN ('.implode(',', unserialize(Configuration::get('SALESSTATS'))).'))
					'.Shop::addSqlRestriction(false, 'o').'
					'.($group_by == 'category' ? 'AND s.id_shop = o.id_shop AND s.id_lang = '.(int)$this->context->language->id : '').'
				GROUP BY p.id_'.$group_by_product.'
				ORDER BY SUM(od.total_price_tax_incl) DESC';

Si j'arrive à mes fins, je partagerai l'ensemble du module modifié !

Merci pour votre aide.

Cordialement,

Yvan

Yvan M

Yvan M

Bonjour,

J'ai modifié le module pour le rendre compatible 1.7 (au moins 1.7.4.4 avec laquelle je travaille); simplement préciser dans le fichier que le module est compatible jusqu'à 1.7, je n'ai vu aucun problème notable jusqu'alors.

J'aimerais pouvoir limiter les statistiques fournisseur à un fournisseur donné, qui sera lié à un employé, pour que chaque fournisseur n'ait accès qu'aux statistiques de ventes qui le concernent. Pour cela, ma première étape est d'ajouter un onglet "fournisseur test", avec un ID fixe, et d'afficher dans cet onglet la donnée correspondante.

Dans le salestats.php, j''ai ajouté $this->group_by['supplierId'] = $this->l('Supplier 1 - Test');

et modifié la fonction DisplayList pour prendre en compte ce "supplierId".

J'ai créé la fonction getSalesListIDSUP() sur la base de getSalesList(), afin de modifier la requête SQL pour n'extraire que les données de l'ID fournisseur voulu ('2' en l'occurrence). N'étant pas à l'aise avec les requêtes SQL, et malgré quelques tutos, je n'arrive pas à définir la bonne requête. Voici mon code, si quelqu'un peut corriger, merci !

$sql = 'SELECT  s.name, SUM(od.product_quantity) as nbproducts, ROUND(SUM(od.total_price_tax_excl), 2) AS sale, ROUND(SUM(od.total_price_tax_excl) / SUM(od.product_quantity), 2) as moyenne
				FROM '._DB_PREFIX_.'order_detail od
				LEFT JOIN '._DB_PREFIX_.'orders o ON o.id_order = od.id_order
				LEFT JOIN '._DB_PREFIX_.'product p ON p.id_product = od.product_id
				LEFT JOIN '._DB_PREFIX_.$group_by_table.' s ON s.id_'.$group_by.' = p.id_'.$group_by_product.'
				WHERE o.date_add BETWEEN \''.pSQL($from_date).'\'
					AND p.id_'.$group_by.' IN (2)
					AND DATE_ADD(\''.pSQL($to_date).'\', INTERVAL +1 DAY)
					AND (o.current_state IN ('.implode(',', unserialize(Configuration::get('SALESSTATS'))).'))
					'.Shop::addSqlRestriction(false, 'o').'
					'.($group_by == 'category' ? 'AND s.id_shop = o.id_shop AND s.id_lang = '.(int)$this->context->language->id : '').'
				GROUP BY p.id_'.$group_by_product.'
				ORDER BY SUM(od.total_price_tax_incl) DESC';

Si j'arrive à mes fins, je partagerai l'ensemble du module modifié !

Cordialement,

Yvan

×
×
  • Create New...