commit e1d3c98c5f81bc72578252f1df078b3f1017bf96 Author: Coyaud Anthony Date: Fri Jul 10 16:01:48 2026 +0200 init diff --git a/00_PROCESS/bi-contexte-xefi.skill b/00_PROCESS/bi-contexte-xefi.skill new file mode 100644 index 0000000..3c76454 Binary files /dev/null and b/00_PROCESS/bi-contexte-xefi.skill differ diff --git a/00_PROCESS/bi-doc-sage.skill b/00_PROCESS/bi-doc-sage.skill new file mode 100644 index 0000000..cfeb94d Binary files /dev/null and b/00_PROCESS/bi-doc-sage.skill differ diff --git a/00_PROCESS/bi-sql-conventions.skill b/00_PROCESS/bi-sql-conventions.skill new file mode 100644 index 0000000..650642a Binary files /dev/null and b/00_PROCESS/bi-sql-conventions.skill differ diff --git a/ACHATS/BI-Import_donnees_eet/SKILL.md b/ACHATS/BI-Import_donnees_eet/SKILL.md new file mode 100644 index 0000000..c9b6cdd --- /dev/null +++ b/ACHATS/BI-Import_donnees_eet/SKILL.md @@ -0,0 +1,99 @@ +--- +name: BI-Import_donnees_eet +description: >- + Procedure Excel pour l'import mensuel des donnees EET (fournisseur) dans la table + BI.dbo.achat_fournisseur_eet. A utiliser des que l'utilisateur envoie l'extract mensuel + EET, ouvre le fichier "Import eet template", ou parle d'"integrer les donnees EET", + "import eet", "achat_fournisseur_eet", "Achat TD INGRAM", "decouper par mois", "preparer + le concat / la formule d'insert", ou d'ajouter la feuille du mois courant. Ce skill decrit + uniquement des manipulations dans Excel (mise en forme du tableau du mois + formule + CONCATENER a adapter) ; il ne genere pas de script. +--- + +# Integrer les donnees EET (import mensuel dans Excel) + +## Contexte + +Chaque mois, EET envoie un extract Excel de ses ventes : une colonne `Customer Name` puis une +colonne par mois (`2026M01`, `2026M02`, ...). Chaque envoi ajoute la colonne du mois qui vient +d'etre cloture. Le travail consiste, dans Excel, a preparer la feuille du nouveau mois et a +poser la formule d'insert SQL adaptee, puis a executer l'insert et verifier. + +Fichier de travail (template qui contient la formule de reference et la liste des mois deja +importes) : +`T:\XEFI_SOFTWARE\Exploitation\INTERNE\EQUIPE SI\BI\WORKSPACE\CREATION\achat franchise tech ingram\Import eet template.xlsx` + +Table de controle apres import : **Menu general achats > Achat TD INGRAM**. + +Ce skill ne fait que des manipulations Excel. Ne pas ecrire de script : le but est de mettre en +forme un tableau pour le mois et d'inserer la formule adaptee au mois. + +## Formule de reference + +``` +=CONCATENER("insert into BI.dbo.achat_fournisseur_eet (Customers,NetSellPrice,Quantity,party,BillingDocsDate,providers) values ('"&A5&"','"&B5&"',1,'"&A5&"','2026-01-01','eet')") +``` + +D'un mois a l'autre, **seule la date `BillingDocsDate` change** : c'est le 1er jour du mois +traite (`2026-06-01` pour juin, `2026-07-01` pour juillet, ...). `A5` = Customer Name, +`B5` = valeur du mois (NetSellPrice), `party` reprend `A5`, `providers` reste `'eet'`. + +## Etapes dans Excel + +1. **Importer l'extract dans `raw_data`.** Ouvrir le template ci-dessus. Coller le nouvel + extract EET dans la feuille `raw_data` (en remplacant le precedent), puis mettre la plage + **sous forme de tableau** : selectionner les donnees, *Insertion > Tableau* (ou Ctrl+L), + cocher "Mon tableau comporte des en-tetes". + +2. **Reperer le dernier mois.** C'est la colonne mensuelle la plus a droite qui contient des + valeurs (le nouveau mois, ex `2026M06`). Verifier dans le suivi du template qu'il n'a pas + deja ete importe, puis ne travailler que sur cette colonne. + +3. **Creer la feuille du mois.** Nouvelle feuille nommee en francais, sans accent : + `janvier, fevrier, mars, avril, mai, juin, juillet, aout, septembre, octobre, novembre, + decembre`. + +4. **Remplir le tableau du mois.** Dans `raw_data`, filtrer la colonne du mois pour exclure les + cellules vides, puis reporter dans la feuille du mois : + - colonne A : `Customer Name` (uniquement les clients ayant une valeur ce mois-la) ; + - colonne B : la valeur du mois. + Ne garder aucune ligne vide. + +5. **Poser la formule d'insert adaptee.** En C5 (1re ligne de donnees), reprendre la formule de + reference en changeant la date pour le 1er du mois traite, puis l'etirer jusqu'en bas. + Exemple pour juin : + + ``` + =CONCATENER("insert into BI.dbo.achat_fournisseur_eet (Customers,NetSellPrice,Quantity,party,BillingDocsDate,providers) values ('"&A5&"','"&B5&"',1,'"&A5&"','2026-06-01','eet')") + ``` + +6. **Faire l'insert et verifier.** Copier la colonne C (les inserts generes), les executer sur + SQL Server, puis controler le resultat via *Menu general achats > Achat TD INGRAM*. Noter le + mois comme importe dans le suivi du template. + +## Points de vigilance (fiabilite du SQL) + +Ces deux points cassent silencieusement les inserts ; les verifier avant d'executer. + +- **Decimales en virgule.** En locale FR, `"&B5&"` transforme `25,51` en texte `25,51` (virgule), + ce qui n'est pas du SQL valide. Deux facons de securiser : + - s'assurer que la colonne B contient de vrais **nombres** (alignes a droite) et non du texte, + et remplacer `"&B5&"` par une version qui force le point : + `"&SUBSTITUE(B5;",";".")&"` (SUBSTITUE = SUBSTITUTE en anglais). Formule complete : + + ``` + =CONCATENER("insert into BI.dbo.achat_fournisseur_eet (Customers,NetSellPrice,Quantity,party,BillingDocsDate,providers) values ('"&A5&"','"&SUBSTITUE(B5;",";".")&"',1,'"&A5&"','2026-06-01','eet')") + ``` + - si les valeurs arrivent en **texte** avec des espaces de milliers (`1 250,00`), retirer aussi + les espaces : `"&SUBSTITUE(SUBSTITUE(B5;" ";"");",";".")&"`. + +- **Apostrophes dans les noms.** Un nom comme `O'Brien` casse la requete. Doubler l'apostrophe + avec `SUBSTITUE(A5;"'";"''")` a la place de `A5` dans la formule. + +## A confirmer avec l'utilisateur en cas de doute + +- Plusieurs colonnes mensuelles remplies : confirmer lequel est le mois a importer. +- Valeurs a zero : par defaut on les traite comme les autres ; a exclure seulement si l'utilisateur + le precise. +- `party` = Customer Name : c'est le format historique repris de la formule ; ne le signaler que + si l'utilisateur attend autre chose.