Line 2:
Line 2:
Amélioration des factures de situation
Amélioration des factures de situation
+
===Outils de travail :===
+
+
*'''Financeur du GIFF''' : Progiseize, Code42, Infras, Eoxia, Pragma-tech,CAP-REL, Inovea Conseil, Easya, Iouston, ATM.
+
*Forum : https://www.dolibarr.fr/forum/t/gif-facture-de-situation/41868
+
*Wiki : [[GIFF - Facture de situation 2022]]
+
*Plateforme de financement : L'association Dolibarr
+
*Montant financé GIFF : 10 000€
+
*Intervenants et rôles : Anthony, Sylvain, Laurent, Olivier, Alexandre, Aurelien, Eric, Julien,
+
*Porteur du projet : Progiseize
+
*Outils de suivi du projet : [https://github.com/users/progiseize/projects/1 Projet Github]
+
*Outils de gestion du code - GitHub - Facture_situation_migration : https://github.com/progiseize/facture_situation_migration
+
*Dolibarr situations : https://github.com/progiseize/dolibarr-situations
+
*PDF : https://github.com/rycks/dolibarr-pdf_facture_octopus
+
*Channel sur Discord : à venir
+
+
===Problématique détaillée===
+
+
+
'''Problème 1 - La TVA'''
−
Détail du problème actuel des factures de situations. Exemple d'une prestation de service proposée (devis) à 2500€ HT. Cette prestation sera faite en 3 fois, chaque étape donne lieux à une facture de situation notées S1, S2 et S3.
+
Exemple d'une prestation de service proposée (devis) à 2500€ HT. Cette prestation sera faite en 3 fois, chaque étape donne lieux à une facture de situation notées S1, S2 et S3.
*S1 : 25% réalisé, facture de 625€ HT, TVA collectée 125€
*S1 : 25% réalisé, facture de 625€ HT, TVA collectée 125€
*S2 : progression totale de 50%, donc facture de 625€ HT, TVA collectée 125€
*S2 : progression totale de 50%, donc facture de 625€ HT, TVA collectée 125€
*S3 : progression totale de 100%, donc facture de 1250€ HT, TVA collectée 250€
*S3 : progression totale de 100%, donc facture de 1250€ HT, TVA collectée 250€
+
*Total de la TVA collectée = 500€
L'implémentation actuelle (version dolibarr 16.0.3) se présente comme ceci:
L'implémentation actuelle (version dolibarr 16.0.3) se présente comme ceci:
Line 13:
Line 33:
*Affichage OK dans le détail des factures (voir capture "Situation S3")
*Affichage OK dans le détail des factures (voir capture "Situation S3")
*Affichage OK sur les listes des factures et affichage des totaux corrects
*Affichage OK sur les listes des factures et affichage des totaux corrects
−
*Mais erreur lors du calcul de la TVA (voir les 2 captures suivantes)
+
*Mais erreur lors du calcul de la TVA (voir les 2 captures suivantes) : Total TVA collectée : 875€
−
<gallery>
+
<gallery widths="240" heights="240">
−
File:Facture de situation - S3 - Liste des situations.png| Situation S3 : Affiche correctement l'historique des factures et les montants respectifs.
+
File:Facture de situation - S3 - Liste des situations.png|Situation S3 : Affiche correctement l'historique des factures et les montants respectifs.
File:Situation - Erreur de calcul de TVA.png|Le calcul de la TVA ne marche plus avec les factures de situations
File:Situation - Erreur de calcul de TVA.png|Le calcul de la TVA ne marche plus avec les factures de situations
File:Détail du calcul de TVA erroné.png|Détail du calcul de TVA erroné
File:Détail du calcul de TVA erroné.png|Détail du calcul de TVA erroné
Line 22:
Line 42:
−
===Outils de travail :===
+
'''Problème 2 - Les boites "objets référents"'''
+
+
Nouvelle simulation, avec des produits ou services de la base article de dolibarr. Le pb se pose lorsque vous allez consulter la fiche d'un article qui se trouve sur des factures de situations.
+
+
<gallery widths="240" heights="240">
+
File:Simulation de factures de situations.png|alt=Simulation de factures de situations|Simulation de factures de situations
+
File:Facture S1.png|alt=Facture S1|Facture S1
+
File:Facture S2.png|alt=Facture S2|Facture S2
+
File:Facture S3.png|alt=Facture S3|Facture S3
+
File:Facture S4.png|alt=Facture S4|Facture S4
+
File:Facture S5.png|alt=Facture S5|Facture S5
+
File:Objets référents d'un article qui se trouve sur des factures de situations.png|alt=Objets référents d'un article qui se trouve sur des factures de situations|Objets référents d'un article qui se trouve sur des factures de situations
+
</gallery>
+
+
Vous pouvez voir sur la dernière capture d'écran que les stats liées au service MOA sont fausses: elles font croire que ce produit a généré 10k€ de CA.
+
+
+
'''Problème 3 - La page Comptabilité - Liaison facture clients'''
+
+
Il n'y a pas de compensation de mauvais stockage des données sur cette page. Les montants sont donc faux.
+
+
+
<br />'''Ce qui marche bien :)'''
+
+
Car pour celles / ceux qui utilisent les factures de situations l'implémentation actuelle permet tout de même de faire de grandes choses ! Il est donc important de noter ce qui marche - ça permet aussi de confronter éventuellement des croyances ("chez moi ça marche") avec la réalité ...
+
+
*L'export de données en passant par l'assistant export (utilisé pour générer des tableaux de bords par la consolidation de données avec des outils externes)
+
**Lot de données à exporter: Factures clients et règlements
+
**Champs à exporter: Code client, Réf. facture, Total HT, Date facturation
+
**-> le fichier exporté permet de faire un total des factures qui correspond à la réalité
+
*La liste des factures, le total indiqué en bas de page est correct
+
*.../...
+
+
*
−
*Forum : https://www.dolibarr.fr/forum/t/gif-facture-de-situation/41868
+
===Étapes prévues pour ce POC===
−
*Wiki : à remplir
+
Étape -1 - Documentation technique '''de la solution actuelle'''
−
*Plateforme de financement : à remplir
−
*Intervenants et rôles : à remplir
−
*Choix du porteur de projet pour les outils : à remplir
−
*Channel sur Discord : à remplir
−
===Etapes prévues pour ce POC===
+
Quelques informations histoire de savoir de quoi nous parlons ...
−
====Etape 0 - Définition du modèle de données====
+
*dans la table table llx_facture
−
-Ajout des données dans la table de lignes
+
**situation_cycle_ref : le numéro global de cycle des factures de situations, si 100 séries de factures de situations ont déjà été gérés alors le cycle en cours sera 101. C'est un identifiant permettant de retrouver toutes les factures d'une même série.
+
**situation_counter : le numéro dans le cycle en cours (1 pour S1, 2 pour S2, 3 pour S3...)
+
**situation_final : Défini à 1 quand une facture de situation sera la dernière du cycle.
+
*dans la table llx_facturedet
+
**situation_percent: stocke le % de progression global de la ligne
+
**fk_prev_id: est une clé étrangère vers llx_facturedet.rowid de la même "ligne de facture" sur la facture précédente (c'est ainsi qu'on peut calculer la "progression" entre deux factures)
+
*
−
====Etape 1 - Fonction migration des données dans le nouveau modèle de données====
+
====Étape 0 - Définition du modèle de données====
−
-Migration des données
+
-Ajout des données dans la table des factures et/ou des lignes. Validation de ces modifications par soumissions d'une PR avec les changements sur la base de données si il y en a.
−
-Génération du pdf sur la base des nouvelles données
+
====Étape 1 - Fonction migration des données dans le nouveau modèle de données====
+
-Migration des données (si possible)
−
<br />
+
-[https://zpad.fr/pad/#/2/pad/edit/3VAeW8kqKrE3UCkzivfP3NEl/ Génération du pdf] sur la base des nouvelles données
===Consignes===
===Consignes===
−
Le nouveau code devra être conditionné par getDolGlobalInt('INVOICE_USE_SITUATION') == 2 (on conserve la valeur 1 utilisé pour l'ancien mode de fonctionnement).
+
+
*Le nouveau code devra être conditionné par getDolGlobalInt('INVOICE_USE_SITUATION') == 2 (on conserve la valeur 1 utilisé pour l'ancien mode de fonctionnement).
+
*Le type de facture devra être le même que le type TYPE_STANDARD (et non plus un type dédié TYPE_SITUATION). L'identification du fait que c'est une facture standard pour situation ou pas se voit déjà grâce au champ situation_cycle_ref (non défini pour une facture standard non situation et défini pour une facture standard de situation)
+
+
+
<br />
<br />
[[Category:Groupement d'Intérêt Fonctionnel]]
[[Category:Groupement d'Intérêt Fonctionnel]]