PrestaShop Forum

The best place in the world to ask questions about PrestaShop and get advice from our passionate community!

PrestaShop Forum

Jump to content

[Amélioration] Récapitulatif des Ventes détaillé

28 replies to this topic
#1
EnveloppeBulle

    PrestaShop Apprentice

  • Members
  • PipPip
  • 166 posts
[Contribution - Amélioration]
/// RECAPITULATIF DES VENTES \\\ par EnveloppeBulle.com

Version : 0.1 (29/10/2009)
Fonctionne sur prestashop v1.1.0.5 (au moins)



Petite contribution (fonctionnelle) permettant d'afficher un récapitulatif détaillé des ventes dans le back office.

L'installation est très simple car elle ne modifie rien d'essentiel, ni dans la BDD, ni dans les fichiers système.

Note 1 : je ne suis pas développeur expérimenté, donc le code n'est pas optimisé.
Note 2 : la contribution a été développée "sur mesure", et ne demande qu'à être améliorée pour être totalement dynamique selon les shops (exemple : transporteurs en dur dans le récapitulatif final)
Note 3 : désolé, je sais que je ne commente pas beaucoup mon code, mais il est très compréhensible.
Note 4 : je sais que je ne suis pas très rigoureux sur l'emplacement des fichiers (images, js, etc..), alors si vous voulez les placer ailleurs, à vous de voir, mais pensez à tout rediriger les liens et inclusions.
Note 5 : cette contribution ne s'adresse toutefois pas aux développeurs débutants, car il faut pouvoir lire et comprendre le code pour effectuer les modifications nécessaires à une bonne intégration.




[INSTALLATION]

1) Copier les fichiers packed.js, script.js, style.css et Recap.php dans votre dossier ADMIN
2) copier le dossier IMAGES dans votre dossier ADMIN
3) faites un backup de votre fichier ADMIN/TABS/AdminInvoices.php (au cas où cette amélioration ne vous plairait pas)
4) remplacer le fichier ADMIN/TABS/AdminInvoices.php (par celui fourni)

EDIT : j'avais oublié de préciser qu'il fallait modifier la fonction "getOrdersIdByDate" dans class/Order.php. En effet, celle-ci récupère les commandes par date d'ajout/création, et nous (moi) on voudrait les récupérer quand elles sont vraiment validées, c'est à dire par date de facture.
pour ce faire, dans la fonction (ligne 424), remplacez :
WHERE DATE_ADD(date_add, INTERVAL -1 DAY) <= \''.$date_to.'\' AND date_add >= \''.$date_from.'\''

par :
        WHERE DATE_ADD(`invoice_date`, INTERVAL -1 DAY) <= \''.$date_to.'\' AND `invoice_date` >= \''.$date_from.'\''




[UTILISATION]
Dans votre back Office, allez dans l'onglet "Commandes", puis dans le sous-menu "Factures". La box "Générer le récapitulatif" est apparue : sélectionnez des dates, et c'est parti ! :)

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



à faire : (si quelqu'un pouvait donner un coup de main, merciiii)

- Modifier le système de transfert des factures au fichier Recap.php (= pour le moment, c'est passé dans l'URL, mais cela a ses limites, notamment en cas d'un fort volume de données)

- mettre en place un vrai système de pagination (ici Toutes les commandes sont en réalité affichées, mais le tableau en js cache juste le reste)

- afficher les dates (étendue de dates des factures) sur le récap.

- tester sur toutes versions Presta






NOUVELLE VERSION 0.2 DISPONIBLE
=> gestion des dates DANS le fichier, gestions des avoirs, gestion des commandes annulées, plus je js et plus d'images ! :) + SIMPLE !

- EnveloppeBulle decline all responsabilty, if the installation of this files cause dommages on your shop / EnveloppeBulle décline toute responsabilité, si l'installation de ces fichiers cause des sommages sur votre boutique -

Attached Files


Presta 1.4.4.1 - EnveloppeBulle.com le n°1 de l'emballage e-commerce
PENSEZ A REFERENCER VOTRE SITE SUR PRESTANNUAIRE.COM (gratuit !)
Un annuaire GRATUIT destiné à promouvoir et référencer vos boutiques Prestashop !

#2
jolvil

    PrestaShop Fanatic

  • Members
  • PipPipPipPip
  • 2706 posts
Merci pour cette contrib qui à l'air tres utile.

J'ai quelques problemes d'affichage du tableau généré:

Sur FF3 cela semble OK
par contre sur Explorer 7 j'ai une erreur et je ne peux afficher le tableau
et sur Chrome il y a des problemes d'affichage: décalages, parfois il manque le nom, parfois il manque le produit ???

j'utilise windows XP

Si on pouvait exporter le tabeau ce serait tres bien.

Attached Files



#3
Fabrice

    PrestaShop Fanatic

  • Moderators
  • 3147 posts
Merci !!!
ça a l'air cool. et en effet ça manque cruellement ! je vais tester ça dès que j'ai réglé mon problème CSS ici :-)
Fabrice
http://www.my-deco-shop.com
Projet en cours de lancement - New fantastic module: Checkout-Pro
le meilleur outil de gestion pour Prestashop que j'utilise - best tool I use: Store Commander

#4
EnveloppeBulle

    PrestaShop Apprentice

  • Members
  • PipPip
  • 166 posts
pb d'affichage : alors comme ça, à priori, sans regarder, je dirais que tout vient du script js que j'ai récupéré pour générer le tableau : à l'origine il permettait de trier les colonnes etc... mais finalement, c'est inutile, étant donné la conception, les tris ne sont pas possible... enfin bref.
Là où je n'ai pas assuré, c'est sur les tests de plateforme : j'ai omis ces tests, désolé. En effet, je n'utilise pas chrome, je n'ai que IE8 et FF (dernière version).
Je pense qu'il faudrait simplement générer le tableau autrement, sans passer le script de tableau.

ps : je confirme qu'on ne s'en sortirait pas sans ce genre de tableau récapitulatif pour suivre nos ventes et répartir/attribuer les montants pour chaque chose :)
Presta 1.4.4.1 - EnveloppeBulle.com le n°1 de l'emballage e-commerce
PENSEZ A REFERENCER VOTRE SITE SUR PRESTANNUAIRE.COM (gratuit !)
Un annuaire GRATUIT destiné à promouvoir et référencer vos boutiques Prestashop !

#5
EnveloppeBulle

    PrestaShop Apprentice

  • Members
  • PipPip
  • 166 posts
petit oubli de ma part (pour un bon fonctionnement) :
EDIT : j'avais oublié de préciser qu'il fallait modifier la fonction "getOrdersIdByDate" dans class/Order.php. En effet, celle-ci récupère les commandes par date d'ajout/création, et nous (moi) on voudrait les récupérer quand elles sont vraiment validées, c'est à dire par date de facture.
pour ce faire, dans la fonction (ligne 424), remplacez :
WHERE DATE_ADD(date_add, INTERVAL -1 DAY) <= \''.$date_to.'\' AND date_add >= \''.$date_from.'\''

par :
        WHERE DATE_ADD(`invoice_date`, INTERVAL -1 DAY) <= \''.$date_to.'\' AND `invoice_date` >= \''.$date_from.'\''

Presta 1.4.4.1 - EnveloppeBulle.com le n°1 de l'emballage e-commerce
PENSEZ A REFERENCER VOTRE SITE SUR PRESTANNUAIRE.COM (gratuit !)
Un annuaire GRATUIT destiné à promouvoir et référencer vos boutiques Prestashop !

#6
EnveloppeBulle

    PrestaShop Apprentice

  • Members
  • PipPip
  • 166 posts
Bon alors, de mon côté, j'ai fait une modif sympa ! :)

voici un nouveau fichier Recap.php qui fonctionne toujours pareil (à première vue) mais qui propose maintenant, en bas de page, un tableau permettant de choisir directement un mois donné ou une plage de dates pet qui execute directement les requêtes pour trouver les commandes correspondantes ! ça a l'air de rien.. mais c'est très utile !
De plus, j'ai ajouté en début de page l'affichage du mois ou plage de date correspondante.

Pour ceux chez qui la pagination (ou de manière générale : le tableau) pose problème, mettez en commentaire de la ligne 213 à la ligne 227. En enlevant l'intération du script, ça doit fonctionner (mais attention si vous lister un grand nombre de commandes !)

Enfin, pour bien paramétrer la nouvelle fonctionnalité ajoutée, vous devez spécifier la date de début d'activité de vos ventes à la ligne 330

Voili voilà, ça reste un peu de la bidouille, c'est aps très propre, mais encore une fois, ça m'est très utile.

(Si vous découvrez une faille de sécurité, merci de le signaler !)

Attached Files


Presta 1.4.4.1 - EnveloppeBulle.com le n°1 de l'emballage e-commerce
PENSEZ A REFERENCER VOTRE SITE SUR PRESTANNUAIRE.COM (gratuit !)
Un annuaire GRATUIT destiné à promouvoir et référencer vos boutiques Prestashop !

#7
EnveloppeBulle

    PrestaShop Apprentice

  • Members
  • PipPip
  • 166 posts
ahahah lol ! mdr ! lol ! ptdr ! ahahah ! lol !! : c'est en ces quelques mots que j'exprime ma surpise amusée de constater un petit bug bien sympathique dans prestashop !!!

en effet, dans la bdd, les dates des factures sont de la forme "AAAA-MM-JJ HH:MM:SS" OR les requêtes sont faites sur AAAA-MM-JJ !!!
Ce qui fait que la requête exclu le dernier jour !! et oui car quand on ne précise pas l'heure, alors par défaut ce la met AAAA-MM-JJ 00:00:00, soit minuit, soit (en mysql) le début de la journée !!!

Donc à modifier :


- le fichier Recap.php (lignes 67-68)
remplacer
$date_deb="$annee_deb-$mois_deb-$jour_deb";
$date_fin="$annee_fin-$mois_fin-$jour_fin";

par
$date_deb="$annee_deb-$mois_deb-$jour_deb 00:00:00";
$date_fin="$annee_fin-$mois_fin-$jour_fin 23:59:59";




- la classe Order.php // pour que cela fonctionne aussi depuis le tab admin
après ligne 424, dans fonction "getOrdersIdByDate"
remplacer
WHERE DATE_ADD(`invoice_date`, INTERVAL -1 DAY) <= \''.$date_to.'\' AND `invoice_date` >= \''.$date_from.'\''

par
WHERE DATE_ADD(`invoice_date`, INTERVAL -1 DAY) <= \''.$date_to.' 23:59:59\' AND `invoice_date` >= \''.$date_from.' 00:00:00\''


Donc voilà : LOL (comme on dit) :)

PS : j'ai intégré la notion d'avoir afin de les décompter du récap des factures.. je posterai une version + finalisée ultérieurement.
Presta 1.4.4.1 - EnveloppeBulle.com le n°1 de l'emballage e-commerce
PENSEZ A REFERENCER VOTRE SITE SUR PRESTANNUAIRE.COM (gratuit !)
Un annuaire GRATUIT destiné à promouvoir et référencer vos boutiques Prestashop !

#8
clemclem

    PrestaShop Apprentice

  • Members
  • PipPip
  • 368 posts
Bonjour,

j'ai testé ça fonctionne bien sous presta 1.2.5 (avec FF, IE6 et IE8) !

Merci pour la contrib :)

#9
easybizness

    PrestaShop Apprentice

  • Members
  • PipPip
  • 201 posts
moi ca n'affiche rien

#10
EnveloppeBulle

    PrestaShop Apprentice

  • Members
  • PipPip
  • 166 posts
NOUVELLE VERSION 0.2 DISPONIBLE => gestion des dates DANS le fichier, gestions des avoirs, gestion des commandes annulées, plus de js et plus d’images ! + SIMPLE !

Attached Files


Presta 1.4.4.1 - EnveloppeBulle.com le n°1 de l'emballage e-commerce
PENSEZ A REFERENCER VOTRE SITE SUR PRESTANNUAIRE.COM (gratuit !)
Un annuaire GRATUIT destiné à promouvoir et référencer vos boutiques Prestashop !

#11
Fabrice

    PrestaShop Fanatic

  • Moderators
  • 3147 posts
cool. merci beaucoup de partager ce bel outil :-)
Fabrice
http://www.my-deco-shop.com
Projet en cours de lancement - New fantastic module: Checkout-Pro
le meilleur outil de gestion pour Prestashop que j'utilise - best tool I use: Store Commander

#12
abar

    PrestaShop Newbie

  • Members
  • Pip
  • 10 posts
super outil qui répond à un réel besoin (ou plutôt une faiblesse de PS qui manque cruellement d'édition multi-critères)

... il faudrait le coup de main d'un développeur confirmé pour nettoyer le code, notamment 2 choix sont "arbitraires" et "bloquants"

- le calcul de la TVA est forcé à 19.6 dans le code php :
=> impact notamment pour les autoentrepreneur qui n'ont pas de TVA
- le statut de commande à ne pas prendre en compte est forcé à "6" dans le code php alors qu'il y a un attribut pour chaque statut de commande : case à cocher "considérer la commande associée comme validée" :
=> impact pour les commandes au statut "remboursé"

... c'est 30mn de boulot pour un dév. confirmé ... à vot'bon coeur, M'sieur M'dame :-)

Eric

http://www.distrisonic.fr

#13
watkins

    PrestaShop Apprentice

  • Members
  • PipPip
  • 219 posts
Bonjour

ca fait une heure que j essaye de faire fonctioner votre module mais j ai cette ligne d erreur

Parse error: syntax error, unexpected $end in C:\xampplite\htdocs\watkins\mon-dossier-admin\Recap.php on line 382
Je comprend pas c est la balise de fermeture de la balise php
?>

Est ce qu'une personne as déjà eut ce soucis

Merci de vos réponses

Cordialement Didier

Version 1.2.5.0 - 0.154s
Les Produits Watkins Au Canada

http://www.saveurs-sante.com/

#14
Kzoo

    PrestaShop Newbie

  • Members
  • Pip
  • 23 posts
Bonjour,

J'utilise ce module mais depuis le passage à la 1.3.1, lorsque j'essaye de géréner les factures en PDF, cela ne met qu'une page blanche, est-ce le module non compatible qui fait défaut, ou autre chose ?

#15
EnveloppeBulle

    PrestaShop Apprentice

  • Members
  • PipPip
  • 166 posts
humm.. aucune idée.. désolé :(
Presta 1.4.4.1 - EnveloppeBulle.com le n°1 de l'emballage e-commerce
PENSEZ A REFERENCER VOTRE SITE SUR PRESTANNUAIRE.COM (gratuit !)
Un annuaire GRATUIT destiné à promouvoir et référencer vos boutiques Prestashop !

#16
chakobyan

    PrestaShop Newbie

  • Members
  • Pip
  • 2 posts
Bonjour,
Voila les modifs que j'ai faites... sur le fiche "Recap" pour pouvoir afficher différents résultats pour "tout public" et "professionnels". C'est à dire: Tout public - prix de vente TTC, professionnels - prix de vente HT. Le problème étant le fait, que dans le fichier d'origine le TVA est fixé à 19,6%. Pour ce faire (désolé pour l'affichage):

Au niveau de ligne 143 j'ai ajouté le "id_défault_group"

$result = Db::getInstance()->getRow('
SELECT `'._DB_PREFIX_.'customer`.id_default_group AS id_group, `'._DB_PREFIX_.'orders`.*,`'._DB_PREFIX_.'customer`.firstname,`'._DB_PREFIX_.'customer`.lastname,`'._DB_PREFIX_.'carrier`.name AS carrier_name
FROM `'._DB_PREFIX_.'orders`
LEFT JOIN `'._DB_PREFIX_.'customer` ON `'._DB_PREFIX_.'orders`.id_customer=`'._DB_PREFIX_.'customer`.id_customer
LEFT JOIN `'._DB_PREFIX_.'carrier` ON `'._DB_PREFIX_.'orders`.id_carrier=`'._DB_PREFIX_.'carrier`.id_carrier
WHERE id_order = '.intval($id_order).'') ;

Au niveau de ligne 221 j'ai modifié:


//prix de vente
if ($result['id_group'] != 1) {
if ($nb_cancelled != 0) {
print "".money_format('%8.2i', $val['product_price']*$val['product_quantity'])." (- ".money_format('%8.2i', $val['product_price']*$nb_cancelled).")";
$total_avoir += money_format('%8.2i', $val['product_price']*$nb_cancelled);
} else {
print "".money_format('%8.2i', $val['product_price']*$val['product_quantity'])."";
}
} else {
if ($nb_cancelled != 0) {
print "".money_format('%8.2i', ($val['product_price']+(($val['product_price']/100)*$val['tax_rate']))*$val['product_quantity'])." (- ".money_format('%8.2i', ($val['product_price']+(($val['product_price']/100)*$val['tax_rate']))*$nb_cancelled).")";
$total_avoir += money_format('%8.2i', ($val['product_price']+(($val['product_price']/100)*$val['tax_rate']))*$nb_cancelled);
} else {
print "".money_format('%8.2i', ($val['product_price']+(($val['product_price']/100)*$val['tax_rate']))*$val['product_quantity'])."";
}
}


Voila..., chez moi ca fonctionne

#17
chakobyan

    PrestaShop Newbie

  • Members
  • Pip
  • 2 posts
Re-bonjour,

J'ai besoin d'un conseil. J'aimerais pouvoir afficher en bas (fiche "Recap"), dans la partie "Recapitulatif", à la place de total ventes - Total ventes France/Total ventes autre (CEE en occurrence). C'est la demande de mon comptable, car nous avons des clients à l'étranger.

Qqn aurait une idée?

Merci d'avance

#18
Kzoo

    PrestaShop Newbie

  • Members
  • Pip
  • 23 posts
Oups, à fait boulette, dsl pour le double poste.

#19
Kzoo

    PrestaShop Newbie

  • Members
  • Pip
  • 23 posts
Salut,

Alors, j'ai résolu mon soucis de récap de factures en PDF qui ne marchait plus.
Certes la technique pourra déplaire aux dev mais bon ça marche. ;-)

Je n'ai pas encore identifié ce qui cloche, mais lors de l'installation sous la dernière version de preta, le fichier AdminInvouces.php a été modifié.
J'ai pas voulu remplacer le code mais inclure les modification dans le fichier d'origine, ce qui a causé le bug :red:

Vala.

PS : Le copier collé sous excel pour le retravailler pour la compta fonctionne au fait. Ce module devrait être inclut dans presta tellement il est utile, surtout quand on se tape la compta comme moi ^^

Bonne continuation !!

#20
fm

    PrestaShop Newbie

  • Members
  • Pip
  • 6 posts
Bonjour,

Merci pour cette amélioration qui m'a été très utile jusqu'à maintenant.

Aujourd'hui j'utilise la vers. 1.3 de Prestashop, alors n'est-il pas possible de la rendre compatible ou existe-t-il un module similaire qui permettrait de faire un récapitulatif des commandes ou du CA par période ?

Vous remerciant par avance de votre réponse et votre aide.
Bonne journée.
Cordialement.
Fred.