Jump to content

Comment générer 50 fichiers Excel facilement chaque mois ?


Recommended Posts

Bonjour,

Je tiens une boutique Prestashop 1.7

Ma clientèle est composée uniquement des 50 mêmes clients.

Mon service gestion me demande si je peux, chaque mois, leur envoyer la consommation mensuelle en fichier Excel, des 50 clients, soit chaque mois 50 fichiers Excel !

J'ai regardé un petit peu ce qui se fait au niveau module mais à part envoyé la consommation globale (tous clients confondus) sur une période donnée et en 1 seul fichier, je n'ai pas trouvé de module adapté !

Mais peut-être qu'avec une requête SQL ça serait possible, ou un module plus complet existe-t-il !?

J'ai installé le module gratuit BIG DATA.
Mais vu que je suis un "blaireau" en MySQL, pourriez-vous m'aider à monter une requête qui me permettrait de générer 50 fichiers Excel facilement chaque mois ?

Merci de vos lumières
Nicolas

Link to comment
Share on other sites

Salut, 

ça me semble possible et assez simple en php.

Par contre a faire pour chaque client, une requete sql pour recuperer toutes les achats qui lui sont liés sur la durée du mois.

Et avec les fonction excel de php, boucler sur le tableau de data et inserer avec un fput tu insere sur chaque ligne du csv les data.

https://www.php.net/manual/fr/function.fopen.php

https://www.php.net/manual/fr/function.fputcsv.php

Link to comment
Share on other sites

Bonjour,

Je pense que je n'en suis pas loin avec cette requête :

SELECT

c.`lastname` AS NOM,
c.`firstname` AS PRÉNOM,
ROUND(oi.`total_products`,2) AS 'TOTAL DE LA COMMANDE HT'

FROM _DB_PREFIX_order_invoice oi
LEFT OUTER JOIN _DB_PREFIX_orders o ON oi.`id_order` = o.`id_order`
LEFT OUTER JOIN _DB_PREFIX_customer c ON o.`id_customer` = c.`id_customer`

WHERE oi.`date_add` BETWEEN '2022-03-01' AND '2022-03-31'
ORDER BY  oi.`id_order_invoice` DESC

Cette requête m'affiche sur un mois précis,
toutes les commandes de chaque client (1 ligne = le total d'une commande de produits),
comme ceci :

NOM          PRÉNOM          TOTAL DE LA COMMANDE HT

DUPONT   Nico                  50,00
DUPONT   Nico                  50,00
DUPONT   Nico                  100,00

BIDULE     Bruno                20,00
BIDULE     Bruno                30,00
BIDULE     Bruno                50,00

Etc...

>> Est-il possible de regrouper le total des commandes par client, comme ceci ?

NOM          PRÉNOM          TOTAL DE LA COMMANDE HT

DUPONT   Nico                  200,00
BIDULE     Bruno                100,00
Etc...

Edited by nicomax17 (see edit history)
Link to comment
Share on other sites

En réponse à naoch :

Quote

ça me semble possible et assez simple en php

C'est vrai qu'avec un PHP qui bouclerait sur les 50 clients automatiquement pourrait me générer 50 fichiers Excel.
Mais bon ! Compliqué à mettre en oeuvre pour moi !

-------------------

En réponse à Mediacom87 :

Quote

Avez-vous regardé du côté de solutions comme StoreCommander ?

Pour le moment si je peux éviter une solution payante (surtout mensuelle)... mais c'est vrai que c'est puissant !

Link to comment
Share on other sites

Re-bonjour,

Sur la base de la requête ci-après, je me permets de ré-itèrer ma demande :
>> Est-il possible de regrouper le total des commandes mensuelles pour chaque client, comme ceci ?

NOM               PRÉNOM          TOTAL COMMANDES MENSUELLES

DUPONT        Nico                  200,00
BIDULE          Bruno                100,00
Etc...

SELECT

c.`lastname` AS NOM,
c.`firstname` AS PRÉNOM,
ROUND(oi.`total_products`,2) AS 'TOTAL DE LA COMMANDE HT'

FROM _DB_PREFIX_order_invoice oi
LEFT OUTER JOIN _DB_PREFIX_orders o ON oi.`id_order` = o.`id_order`
LEFT OUTER JOIN _DB_PREFIX_customer c ON o.`id_customer` = c.`id_customer`

WHERE oi.`date_add` BETWEEN '2022-03-01' AND '2022-03-31'
ORDER BY  oi.`id_order_invoice` DESC

Autre possibilité !? :

La fonction "Factures groupées", dans VENDRE >> Commandes >> Factures groupées, permet de générer par client, la totalité des commandes sur une période donnée.

Sauf que le bouton "Obtenir la facture" me génère un pdf ! 😕
Et mon service gestion voudrait un Excel ! 😩

Y sont pas faciles avec moi 😓

Serait-il possible de récupérer la requête SQL de cette fonction "Factures groupées" ?

Link to comment
Share on other sites

  • 1 month later...

Bonjour, 

la requête devrait fonctionner en remplaçant

ROUND(oi.`total_products`,2) AS 'TOTAL DE LA COMMANDE HT'

par

SUM(oi.`total_products`) AS 'TOTAL DE LA COMMANDE HT'

et

ORDER BY  oi.`id_order_invoice` DESC

par 

GROUP BY  c.`id_customer` DESC  
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...