Suivi de commande

Discussions sur les projets et applications développés en liaison avec une suite bureautique libre.

Modérateur : Vilains modOOs

Répondre
Avatar de l’utilisateur
shawa
Fraîchement OOthentifié
Messages : 8
Inscription : 21 nov. 2018 20:43

Suivi de commande

Message par shawa »

Bonjour à tous,

Boulanger de mon état, j'utilise actuellement Calc avec tout plein de macro pour piloter un gros tableur qui s'apparente à une base de données pour gérer des prises de commandes, faire la facturation, ....je cherche à changer cet outil pour que mes collègues puissent l'utiliser, qu'il soit plus souple, plus stable et que ça fasse moins "usine à gaz".

Le contexte:
  • 1. J'aimerais développer un outil dont le schéma est joint.
    2. La majorité des données qui alimentent mon tableur actuel viennent de fichiers csv dont je ne contrôle pas la structure mais qui sont assez constants dans leur structure. Ces fichiers sont chargés 3 fois par semaine.
    3. Une partie des données sont stockées (précommandes de 6 mois à 1 an) dans des fichiers ods à côté car au moment où ils sont créés, je ne sais pas encore quels produits seront disponibles. En ce moment, 8 fichiers sont chargés en allant, 1 fois par semaine chacun.
    4. Il y a toujours des commandes à rectifier ou à créer à la marge et à la main.
    5. Pour des questions de lisibilité au Fournil, j'ai besoin de pas mal travailler la mise en forme des données compilées (par exemple concaténer dans une même case l'ensemble des commandes d'un client pour ce jour, ce qui nous évite d'avoir à lire un tableau à double entrée)
    6. Il y a plein de calculs à faire ensuite pour calculer les quantités d'ingrédients de chaque recettes, les répartitions,.... en fonction de tout plein de paramètres qui relèvent d'un tableur.
J'hésite entre utiliser Calc ou Base, ce pour quoi je vous écris. J'ai moins de connaissances de Base et des macros afférentes. Voici comment je vois les choses, certainement influencé par ma meilleure connaissance de Calc que de Base:

En ce qui concerne Base:
  • + Faire des requêtes SQL sous Base est beaucoup plus simple que de faire faire des macros sous Calc pour aller balayer des tables et obtenir le même résultat.
    + L'intégrité référentielle est plus simple à gérer.
    - Le chargement des fichiers externes (csv et ods) me semble plus compliqué
    - Une fois faite, la base sera plus simple à faire évoluer lorsqu'on rajoute des produits, des lieux de ventes, des clients....
    - Il me semble nécessaire d'exporter les données compilées (par exemple l'ensemble des commandes pour tel jour, par lieu de vente, par produit, par client) pour satisfaire ensuite une mise en forme plus poussée que je pense possible sous Calc, d'où le besoin de 2 outils
    - Les formulaires ne peuvent facilement faire que la jointure entre 2 tables, au delà ce n'est pas très souple, de ce que j'ai vu, pour faire un formulaire pratique.
En ce qui concerne Calc:
  • + Toutes les données peuvent être concentrées dans un même fichier, y compris la mise en page finale
    + Les stats sont très facilement réalisables avec Calc (pour calculer le CA HT (Chiffre d'Affaire Hors Taxe) par exemple, par client ou par type de client ou par lieu de vente, par semaine, par mois...)
    + Importer des données extérieures ne me semble pas compliqué
    - Coder la compilation des données est long au départ
    - Je gère l'intégrité référentielle avec la fonction "Validité/liste de sélection" mais ce n'est pas toujours très propre.
Quelques réflexions:
  • *J'ai vu qu'il y avait des jonctions possibles entre Base et Calc (par exemple qu'on pouvait faire des requêtes SQL sur un fichier ODB): du coup, serait-il possible de stocker les données dans Base et d'appeler ce qu'il faut comme données via Calc, avec une requête SQL, pour ensuite en faire la mise en forme.
    *Est-il difficile de nourrir une base de données odb avec des fichiers csv via des macros?
    *Est-il pertinent de juste utiliser une base de données odb pour stocker, faire un peu de retouche de commandes,... et de gérer le reste via Calc?
Merci pour vos éclaircissements et votre bénévolat sur les forums.

Antoine
Pièces jointes
Exemple_de_csv_a_importer.ods
(14.58 Kio) Téléchargé 116 fois
Groupement de consommateur.ods
(30.25 Kio) Téléchargé 119 fois
schéma_tables.png
LibreOffice Version: 6.4.7.2 sous Mint
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16955
Inscription : 03 mars 2006 17:02
Localisation : Venise verte

Re: Suivi de commande

Message par jeanmimi »

Bonjour,
Ta synthèse des avantages de Base et de Calc pour le suivi de commandes est bien vue.
Dans Base, les calculs sont faits dans les requêtes et les factures dans le Rapport.
Les saisies sont faites par les formulaires, et avec une Macro, la facture peut être lancée depuis le formulaire en récupérant ce qui est affiché.
Ci-joint une ébauche qui ne demande qu'à être développée si tu choisis de continuer avec Base.
Pièces jointes
Base_Suivi_Commandes.odb
(19.96 Kio) Téléchargé 140 fois
Les calculs sont faits dans une Requête.
Les calculs sont faits dans une Requête.
LibreOffice : Version : 24.2.1 (x64)(14 mars 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
rollmops
PassiOOnné
PassiOOnné
Messages : 665
Inscription : 20 déc. 2017 15:45

Re: Suivi de commande

Message par rollmops »

Bonjour shawa,

Ton schéma relationnel me semble incohérent vis à vis des factures.
Il n'y a pas de lien avec la table commandes.
Une facture ne devrait elle pas être reliée à une ou plusieurs commandes?
OpenOffice 4.1.15 - Windows 10
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16955
Inscription : 03 mars 2006 17:02
Localisation : Venise verte

Re: Suivi de commande

Message par jeanmimi »

La facture est créée dans un Rapport.
L'affichage du Rapport est lancé par un clic sur le Bouton depuis le formulaire.
Le code de la Macro filtre l'identifiant de la commande.

Code : Tout sélectionner

REM  *****  BASIC  *****

Sub OuvrirRapport(oEv as Object)
Dim oForm as object, oRapport as Object
Dim FiltreNom as String
   oForm = oEv.Source.Model.Parent
   FiltreNom = oForm.Columns.getByName("ID_Commande").getString
   oRapport = ThisDatabaseDocument.ReportDocuments.getByName("Facture").openDesign
   With oRapport
      .Filter="""ID_Commande"" ='" & FiltreNom & "'"
   End With
   With ThisDatabaseDocument.ReportDocuments.getByName("Facture")
      .Store
      .Close
      .Open
   End With
End Sub
Pour tester :
Pièces jointes
Base_Suivi_Commandes_v2.odb
(22.63 Kio) Téléchargé 148 fois
LibreOffice : Version : 24.2.1 (x64)(14 mars 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
shawa
Fraîchement OOthentifié
Messages : 8
Inscription : 21 nov. 2018 20:43

Re: Suivi de commande

Message par shawa »

rollmops a écrit : Ton schéma relationnel me semble incohérent vis à vis des factures.
Il n'y a pas de lien avec la table commandes.
Une facture ne devrait elle pas être reliée à une ou plusieurs commandes?
Bonjour Rollmops,
Merci pour ta réponse: bien vu, la jointure se fait grâce à l'Id_client.
Pour le développement, je pensais créer toutes mes tables sous Base puis tester le différents besoin avec l'outil de requêtes SQL intégré avant de continuer plus outre, pour éprouver la solidité du modèle relationnel.
LibreOffice Version: 6.4.7.2 sous Mint
Avatar de l’utilisateur
shawa
Fraîchement OOthentifié
Messages : 8
Inscription : 21 nov. 2018 20:43

Re: Suivi de commande

Message par shawa »

Bonsoir Jeanmimi,

Merci pour ton retour qui est pertinent par rapport à ce que je cherche à faire.
Je n'arrive cependant pas à ouvrir le rapport "Facture". Je pense que c'est aussi pour cela que lorsque je clique sur le bouton "Afficher la Facture" dans le formulaire, le message Impossible d'ouvrir le document "Facture" apparaît puis Variable d'objet non défini en pointant vers le code suivant:

Code : Tout sélectionner

.Filter="""ID_Commande"" ='" & FiltreNom & "'"
As-tu une idée du problème?

Sinon, j'ai étudié l'import de données depuis Base vers Calc: les fonctions CalcSQL sont vraiment très pratiques. Après avoir fait une bonne grosse requête sql avec Base, et récupéré les données dans une feuille de tableur, on peut alors faire tout un travail de calcul, spécifique à Calc. De quoi tirer le meilleur de chacun des outils.
LibreOffice Version: 6.4.7.2 sous Mint
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16955
Inscription : 03 mars 2006 17:02
Localisation : Venise verte

Re: Suivi de commande

Message par jeanmimi »

shawa a écrit :As-tu une idée du problème?
Je ne peux que supposer que c'est lié à ta version de LibreOffice dans Mint.
Est-ce une version des dépôts ou une version de LibreOffice téléchargée depuis le site officiel ?
Lorsque ça fonctionne, la Facture a cet aspect :
Pièces jointes
Base_Suivi_Commandes_v3.odb
Base avec Rapport pour afficher une facture
(22.89 Kio) Téléchargé 141 fois
Facture avec détails et totaux.jpg
LibreOffice : Version : 24.2.1 (x64)(14 mars 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
shawa
Fraîchement OOthentifié
Messages : 8
Inscription : 21 nov. 2018 20:43

Re: Suivi de commande

Message par shawa »

Je pense que ça vient de la différence entre OpenOffice et LibreOffice car après avoir testé sur Windows/OpenOffice, ça me renvoit
Le rapport "Facture" nécessite l'extension Oracle Report Builder.
Merci en tout cas pour la copie d'écran, j'espère pouvoir produire quelque chose d'approchant avec les rapports de LibreOffice.
LibreOffice Version: 6.4.7.2 sous Mint
Avatar de l’utilisateur
tintin
GourOOu
GourOOu
Messages : 9329
Inscription : 18 juil. 2008 17:29
Localisation : F-Oise + F-Savoie

Re: Suivi de commande

Message par tintin »

Bonjour,

Oracle report builder est inclus dans LibreOffice.
Pour OpenOffice télécharger ici : https://extensions.openoffice.org/en/pr ... rt-builder
ou ici : https://forum.openoffice.org/fr/forum/v ... 576#p43268
AOO 4.1.15 et LibO stable 7.6.5 / macOS Intel 13.6.5 Ventura
Adoptium-temurinJDK-jre_1.8.0_402 / Firefox/Safari/Thunderbird /Time Machine+cloneCCC
Tutoriels du forum pour macOS
Pour sauvegarder vos documents c'est ceinture ET bretelles
Avatar de l’utilisateur
rollmops
PassiOOnné
PassiOOnné
Messages : 665
Inscription : 20 déc. 2017 15:45

Re: Suivi de commande

Message par rollmops »

Bonjour,
shawa a écrit :Merci pour ta réponse: bien vu, la jointure se fait grâce à l'Id_client.
D'accord mais comment feras-tu le lien entre la commande et sa facturation dans ce cas ?
:?
OpenOffice 4.1.15 - Windows 10
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16955
Inscription : 03 mars 2006 17:02
Localisation : Venise verte

Re: Suivi de commande

Message par jeanmimi »

shawa a écrit :la jointure se fait grâce à l'Id_client
Dans le code de la Macro plus haut, le filtre se fait sur l'ID_Commande

Code : Tout sélectionner

 FiltreNom = oForm.Columns.getByName("ID_Commande").getString
LibreOffice : Version : 24.2.1 (x64)(14 mars 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
rollmops
PassiOOnné
PassiOOnné
Messages : 665
Inscription : 20 déc. 2017 15:45

Re: Suivi de commande

Message par rollmops »

jeanmimi a écrit :Dans le code de la Macro plus haut, le filtre se fait sur l'ID_Commande
rollmops a écrit :Une facture ne devrait elle pas être reliée à une ou plusieurs commandes?
Quid du client demandant une facture globale par exemple.
OpenOffice 4.1.15 - Windows 10
Avatar de l’utilisateur
shawa
Fraîchement OOthentifié
Messages : 8
Inscription : 21 nov. 2018 20:43

Re: Suivi de commande

Message par shawa »

Bonjour Rollmops,
J'ai vu que pour les factures, il y a plusieurs façon de voir les choses, notamment si on souhaite faire des facturations à la commande ou au mois (plusieurs commandes). J'ai notamment trouvé https://forum.openoffice.org/fr/forum/v ... is#p119024.
J'imagine au premier abord qu'il faudrait faire une table intermédiaire entre commande et facture pour indiquer dans quelle facture telle commande est intégrée.
Je suis dans une phase de conception de l'ensemble et c'est plein de paramètres à prendre en compte, de détails,...je suis notamment en train de voir comment exploiter les données issues de la base. J'ai l'habitude de Calc et j'aurais tendance à exporter (via CalcSql) les données de Base pour les traiter dans Calc. Mais c'est vrai que les factures doivent pouvoir se générer facilement avec Base et que j'aurais intérêt à bien concevoir les relations de tables, mais je n'ai pas essayé, cf ci-dessous, problème d'ORB/Java.

Jeanmimi,
LibreOffice a été installé lors de l'installation, depuis les dépôts donc.
J'ai réussi à installer l'ORB 1.2.1 mais j'ai un nouveau message d'erreur concernant Java: caught a java.lang.IncompatibleClassChangeError. Je ne sais pas comment me dépatouiller: default-jre est déjà installé.

Merci à vous 2,
Shawa
LibreOffice Version: 6.4.7.2 sous Mint
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16955
Inscription : 03 mars 2006 17:02
Localisation : Venise verte

Re: Suivi de commande

Message par jeanmimi »

Pour Java, je ne connais pas la configurations Mint.
Ces tutoriels sont adaptés aux distributions de Linux :
https://forum.openoffice.org/fr/forum/v ... m.php?f=41
LibreOffice : Version : 24.2.1 (x64)(14 mars 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Répondre