myFAB Fondation
Module permettant d’initialiser de manière standard une base Open-Prod et apporter quelques amélioration à certains modules de base open-prod
- Présentation
- Initialisation
- Export de configuration
- Fonctionnalités diverses
- myFAB Gestionnaire de CRON
- myFAB Rapport docx
Présentation
L'objectif du module permet d’exécuter de façon automatique la procédure d’initialisation d’une base de données juste après sa création grâce aux paramétrages de base et aussi grâce à l’installation des modules Open-prod.
Le setup de la base de données au démarrage d’un projet est ainsi grandement accéléré tout en réduisant le risque d'erreur et d'oubli. De plus, cela permet d'harmoniser l'initialisation des bases de données, rendant ainsi le suivi et la maintenance des projets plus efficaces.
Initialisation
1. Pré-requis
Avant d'installer myFAB Fondation ou tout autre module myfab, il convient de s'assurer que les sources ont été déployées sur le serveur.
Puisqu'il s'agit de conditionner une base de données, il est également impératif qu'une base de données ait été créée via la méthode « Create Database » du Gestionnaire de bases de données d'Open-Prod.
2. Installation myFAB Fondation
L'installation du module s'effectue depuis l'onglet Configuration > Application d'Open-Prod. Dans la barre de recherche, taper "my_fab". Le module myFAB Fondation sera présent si les sources myFAB ont bien été déployées. Cliquer sur "Activer" puis suivre les différentes étapes du déploiement directement dans la page Open-Prod.
Au lancement de la première installation, le module va directement lancer l'installation du module Comptabilité.
A mi parcours, la wizard suivante va vous demander de configurer vos options comptables (comme si vous installiez le module Comptabilité directement) :
L'installation de ce module peut être longue. Il ne faut pas interrompre le traitement tant que le chargement n'est pas terminé.
Après installation de la Comptabilité, le wizard suivant va s'afficher :
Installé dans tous les cas :
- Une liste d'import Excel de base (Contact, Adresse, Client, Fournisseur, Catégories de produits, Plan comptable, Référencement client, Référencement fournisseur, Nomenclature, Lignes de nomenclature, Gamme, Produits, Commandes de vente, Etats commandes de vente, Commandes d'achat): un modèle d'import Excel est maintenant disponible directement dans les modèles d'import.
Lancer l'initialisation des données de base va ajouter les éléments suivants :
- Intinitialisation via code python :
- Droits sur le profil administrateur
- Génération des lignes de calendrier
- Initialisation par fichier de donnée json
Fichier Description Commentaire 00-res_company.json Configuration de la société Emplacement par défaut, Horizon 01-ir_default.json Valeurs par défaut Valeurs par défaut partenaire, 02-ir_sequence.json Séquences séquences UC, lot, UM 03-stock_label_template.json Modèles d’étiquettes de stock modèles UC, UM avec rapport qweb standard 04-stock_lot_template.json Modèles de lots avec rapport qweb standard 05-product_category.json Catégories de produits Exemples de catégories de produit 08-resource_pause.json Gestion des pauses Pause obligatoire 09-resource_config_settings.json Paramètres de Ressources 10-purchase_config_settings.json Paramètres des achats 11-sale_config_settings_openprod.json Paramètres des ventes (Open-prod) 12-stock_config_settings.json Paramètres du stock 13-sale_validity_period.json Période de validité des ventes 30 jours 14-nonconformity_file_config_settings.json Paramètres des fichiers de non-conformité 15-payment_method.json Méthodes de paiement exemples de méthodes de paiement 16-technical_data_config_settings.json Paramètres des données techniques 17-account_config_settings.json Paramètres de la comptabilité Paramètres compta de base notamment pour la gestion des acomptes 18-account_journal.json Journaux comptables journaux d'acomptes 19-product_product.json Produits Produit acompte 20-stock_alert_color.json Couleurs d’alerte de stock 21-stock_warehouse.json Entrepôts méthode d'appro par défaut des entrepôt 22-account_invoicing_method.json Méthodes de facturation méthodes de facturation par défaut avec et sans acompte 23-qweb_report.json Publication de tous rapports qweb 24-mail_template.json Ajout des Rapports qweb comme pièce jointe dans les modèles de mails standards 25-printers_server.json Ajout serveur cups de base (localhost:631) + ajout des imprimantes installées + application type A4 si nécesaire 26-printers_report.json afféctation des rapports qweb aux impréssions standard (pour impression direct (exemple impression BL via imprimante reseau) 27-export_security_rule.json Création règle de sécurité des exports (produit, partner ... pour l'admin) 28-stock_location.json traduction des emplacements de l'entrepôt Warehouse et ajout code barres sur emplacement physiques 29-ir_actions_server.json Ajout action et activation action serveur pour activer les nomenclatures et gammes en masses.
Lancer l'initialisation des modules Open-Prod de base va lancer l'installation de modules essentiels pour une configuration standard d'Open-Prod.
-
-
Comptabilité
Nom technique Nom commun account_openprod Base - Comptabilité & Facturation & Paiement account_chart Modèle de plan comptable base_iban Comptes bancaires IBAN base_vat Validation du numéro de TVA l10n_fr France - Comptabilité data_account_report Données pour les rapports comptables
Impressions & Rapports
Nom technique Nom commun base_printers Impressions 1/2 printers Impressions 2/2 printers_mrp Impressions pour la fabrication printers_stock Impressions pour la logistique printers_res_partner Impressions pour les partenaires printers_resource Impressions pour les ressources data_base_qweb_report Données des rapports Qweb data_base_report Données pour les rapports de base jasper_server Interfaçage JasperReport Server excel_import Import Excel excel_report Rapport excel web_multi_select Recherche multiple dans une vue liste (Web) edi_openprod EDI (Échange de Données Informatisées)
Base & Outils
Nom technique Nom commun product Produits & Listes de prix mail Discussion partner_openprod Partenaires delivery_address Adresse de livraison translator Traducteur base_import Importation de base compute_stored_fields Calculer les champs stockés enterprise_social_network Réseau social d'entreprise mass_editing Édition de masse myfab_tools myfab tools myfab_file_interface myfab File Interface calendar Calendrier maintenance_contract Gestion des contrats
Ventes & Stock
Nom technique Nom commun sale Ventes purchase Achats warning Gestion des alertes (Achat et vente) stock Inventaire stock_location Emplacements de stock mrp Fabrication charge Charge
Web & Workflow
Nom technique Nom commun web_data_base_name Afficher le nom de la base web_mail_autocomplete Web autocomplétion mail web_modify_view Modification de vue web_view_field_list Modification rapide des vues liste web_export_view Exporter la vue courante workflow_initialization Initialisation des flux de travail
-
3. Mise à jour et maintenance
Le wizard d'initialisation se déclenche automatiquement lors de la première installation du module. Il est possible de le relancer manuellement si par exemple vous avez oublié de cocher les cases. Pour cela allez dans paramètres>Technique>Actions>Assistant de configuration
Il suffit de filtrer les lignes sur le statut "A faire" puis "'Lancer". Cependant, attention il y a des risques d'importer les données en doublons...
Export de configuration
1. Principe
Ce module inclus dans myFAB Fondation permet d'exporter facilement d'une base à une autre des paramétrages réalisées. Pour l'instant seule l'export de modèle est champ est fonctionnel. Il est prévue d'étendre cela aux Action serveur, Onchange, Fichier de paramètres (exemple stock, achat, planning, déclaration…), Vues.
2. Connexion
Il est nécessaire d'établir la connexion entre les bases de données :
- Allez dans Configuration>myFAB configuration>Configuration des modules myFAB>Serveur d'éxport
- Ajouter un serveur
- Attention l'url à renseigner est à partir du serveur Open-Prod (pas depuis votre PC)
3. Export
Fonctionnalités diverses
Ajout de séquences personnalisées pour les codes produits et références partenaires
- Ajoute la possibilité de personnaliser la séquence des codes produit par rapport à la catégorie de produit sélectionnée :
Depuis une catégorie de produit vous pouvez cocher la case "A une séquence personnalisée" puis sélectionner la séquence souhaitée. (remarque : c'est à vous de gérer vos propres séquences depuis Paramètres>Séquences et identifiants>Séquences)
- Ajoute la possibilité de personnaliser la séquence des références partenaire par rapport au type de partenaire :
Depuis les partenaire > Congituration > Paramètres
si vous cochez "A une séquence personnalisée" vous pouvez soit
-
- Utiliser une séquence prédéfinie en fonction du type de partenaire (Client, Fournisseur, transporteur..)
- Utiliser une séquence avec code python cela vous permettre de définir le code de sequence à utiliser par rapport à ce que vous voulez...
- Utiliser une séquence prédéfinie en fonction du type de partenaire (Client, Fournisseur, transporteur..)
Ajout droit de modification sur le code produit et la référence partenaire
Aller dans Paramètres > Utilisateurs, sélectionner l'utilisateur à qui rajouter les droits et cocher ces deux cases dans la section "Droits des données techniques".
Re-plannification automatique des ordres de fabrication
Ajout de 2 champs sur le modèle ordre de fabrication :
- mf_planned_start_date : date début plannifiée
- mf_planned_end_date : date début plannifiée
Si un de ces champs est renseigné, lors de la modification d'un OF. Il sera replanifié automatiquement au plus tôt (si mf_planned_start_date) ou au plus tard (si mf_planned_end_date)
Cette fonctionnalité pourra être utilisée par exemple si un outil externe souhaite mettre à jour la planification Open-prod des OF. Il suffira alors qu'il mette à jour ces dates (via une API ou via myfab\_file interface.)
Paramètre pour interdire de produire plus que la quantité produite sur l'OT précédente
- Avertissement uniquement :
Il n’y a aucun paramétrage spécifique à faire, dès qu’on déclare une quantité produite sur un OT supérieur à la quantité de l’OT précédente (s’il y en a), un message d’avertissement (non bloquant) apparaît pour alerter qu’on s’apprête à produire plus que l’OT précédente.
Cette alerte n’apparaît que dans le Wizard de déclaration de production depuis l’OT de l’interface standard. Exemple :
- Blocage pour interdire de produire plus que l'OT précédente
Si dans les OT on coche la case « Interdire de produire plus que l'OT précédente ». il ne sera pas possible de produire plus que l’opération précédente.
Ce message bloquant s’applique quelque soit l’interface de déclaration mais ne se déclenche qu’à la fin de la déclaration
Ajout séquence sur options
Ajout d'un champs "Séquence" sur les options pour de les ordonner (par exemple lors de l'impression des options)
Ajout de notes sur l'assistant de consommation d'étiquette
Logistique > Actions d'étiquettes > Consommation d'étiquette
Ajout option "Désactivé Mise à jour"
Ajout de la case "Désactiver la mise à jour" sur les objets "actions serveur" et modèle de conversion d'unité.
Si cette case est cochée et que ces enregistrements sont crées via un module, ces données ne serons pas mises à jour (comportement identique au cases similaires sur les objets "menu, actions de fenêtres ... ).
Version des commits
Pour connaître précisément les versions des commits OpenProd et myFAB installées sur votre serveur :
- Cliquez sur votre utilisateur (en haut à droite).
- Sélectionnez le menu « À propos de… ».
Vous pouvez également consulter l’historique des versions par lesquelles votre base est passée :
- Accédez à Paramètres > myFAB Configuration > Configuration des modules myFAB.
- Cliquez sur le bouton « Historique des mises à jour ».
Fiche de diagnostic myFAB
Une fiche de diagnostic au format Excel peut être générée afin d’obtenir une vue d’ensemble de votre base.
Pour y accéder :
- Allez dans Paramètres > myFAB Configuration > Configuration des modules myFAB.
- Cliquez sur le bouton « Fiche de diagnostic ».
Cette fiche ne contient aucune donnée métier.
Elle fournit uniquement : des statistiques sur la volumétrie des différentes tables, le nombre de personnalisations réalisées sur la base.
myFAB Gestionnaire de CRON
Il apporte un nouveau type de cron, des informations de diagnostic, des indicateurs d’exécution et des outils de simulation permettant d’optimiser la planification.
⚠️(module bientôt en v10)
Nouveau type de cron : les “crons groupés”
Un cron groupé permet de regrouper plusieurs crons enfants sous une planification commune. Le groupe exécute ensuite ces crons enfants de manière séquentielle.
Les crons enfants sont automatiquement désactivés. Il n’est pas possible de les réactiver ni de les planifier individuellement : seul le cron groupé pilote leur exécution.
Ajout des statuts sur les crons
- Inactif
- Actif
- En cours (si la dernière ligne de log ne comporte pas de date de fin)
- Erreur (si la dernière ligne de log contient une erreur)
Si un cron fait planter le système ou si le serveur Open‑Prod s’arrête brutalement, il peut conserver le statut “En cours” alors que son traitement n’est plus réellement actif.
(Astuce : si la fiche du cron est impossible à modifier, c’est qu’un processus est réellement en cours.)
Le statut du cron est un champ calculé : il n’est donc pas possible de filtrer ou trier sur ce champ.
Simuler les prochaines exécutions et les visualiser sur un planning
Le module permet de simuler les prochaines occurrences d’un cron en fonction :
- de sa planification,
- du temps d’exécution estimé ou mesuré,
- du nombre de jours à simuler.
Modes de calcul du temps
- Automatique (par défaut) : utilise la durée maximale observée parmi les dernières exécutions.
Si aucune valeur n’est disponible, c’est le temps estimé saisi manuellement qui est utilisé. - Min / Max / Moyen / Estimé : sélection manuelle du type de valeur à appliquer.
Modes de simulation
Vous pouvez effectuer une simulation :
- sur un cron individuel,
- ou de manière globale, via l’action [myFAB] Calcul des prochaines exécutions dans la liste des crons.
Les occurrences simulées peuvent être affichées en :
- planning,
- vue Gantt,
- liste.
Cela permet notamment de vérifier qu’aucune exécution ne se chevauche.
Analyse statistique du journal des crons.
Pour faciliter l’analyse et les diagnostics :
- Un champ Durée calculée a été ajouté sur les lignes de log.
- Un onglet Statistiques affiche :
- la durée minimale,
- la durée maximale,
- la durée moyenne des dernières exécutions du cron.
Le bouton Montrer les lignes de log permet d’accéder directement aux logs.
Le nombre de lignes utilisées pour le calcul des statistiques peut être modifié.
⚠️ Une valeur trop élevée peut ralentir l’affichage.
Le nombre de lignes utilisées pour le calcul des statistiques peut être modifié.
Une valeur trop élevée peut ralentir l’affichage.
Lancement d'une action serveur
Cela permet d’automatiser rapidement certaines opérations techniques ou métiers.
Notification e‑mail en cas d’erreur (à venir)
Une future version du module permettra l’envoi automatique d’un e‑mail lorsqu’une action planifiée échoue.
Le principe sera le suivant :
- activer l’option Envoi de notification,
- sélectionner un utilisateur à notifier (avec une adresse e‑mail renseignée).
Limitation actuelle :
Si le service Open‑Prod s’arrête brutalement, la notification ne sera pas envoyée.
Un service complémentaire est en cours d’étude pour pallier cette limitation.
myFAB Rapport docx
myFAB · Rapport DOCX — Référence rapide
Prérequis :
pip install docxtpl docxcompose htmldocx· LibreOffice requis pour le mode PDF
Créer un paramétrage
Technique → Rapport DOCX → Configurations → Nouveau
| Champ | Valeur attendue | Obligatoire |
|---|---|---|
| Nom du rapport | Libellé affiché dans l'interface | ✓ |
| Code rapport | Identifiant technique unique, sans espaces — ex : declaration_conformite_ce |
✓ |
| Modèle | Modèle Odoo cible (ex : sale.order, mrp.production) |
✓ |
| Champ nom fichier | Champ Char du modèle utilisé pour nommer le fichier |
✓ |
| Template DOCX | Fichier .docx avec balises Jinja2 |
✓ |
| Préfixe | Texte ajouté au début du nom de fichier généré | |
| Mode de fusion | composer (DOCX unique) · zip (un fichier/enregistrement) · pdf (via LibreOffice) |
✓ |
| Nom fichier impression | Formule Jinja — ex : {{ docs.name }} |
|
| Autoescape | Activer si le template contient <, > ou & |
Publier via le bouton Publier — tous les champs passent en lecture seule.
Pour modifier : Dépublier d'abord.
Syntaxe du template
Champs
{{docs.nom_du_champ}}
{{docs.relation_id.champ}}
Fonctions utilitaires
| Fonction | Description |
|---|---|
{{spelled_out(docs.champ)}} |
Nombre en toutes lettres |
{{formatdate(docs.champ)}} |
Date formatée (Babel, fr_FR par défaut) |
{{fdate(docs.champ, "%d/%m/%Y")}} |
Date avec format personnalisé |
{{fnum(docs.champ, " ", ",", 2)}} |
Numérique — fnum(val, sep_milliers, sep_décimal, décimales) |
{{parsehtml(docs.champ)}} |
HTML → texte brut |
{{p html2docx(docs.champ)}} |
HTML → sous-document Word |
{{convert_currency(docs.champ, docs.currency_id)}} |
Montant avec devise |
{{render_image(docs.champ, width=30, height=30)}} |
Image binaire (mm) |
{{r rich_text(docs.champ)}} |
Texte enrichi |
{{p add_subdoc(docs.champ)}} |
Sous-document DOCX binaire |
{{replace_image('nom', docs.champ)}} |
Remplacement d'image dans le template |
Langue surchargeable par fonction :
{{formatdate(docs.champ, lang='en_US')}}
Boucles dans un tableau
Chaque directive {%tr %} doit occuper une ligne entière du tableau, avec une cellule fusionnée sur toute la largeur.
{%tr for line in docs.order_line_ids %}
{{line.product_id.display_name}} | {{line.qty}} | {{line.price_unit}}
{%tr endfor %}
- Les lignes
foretendforsont supprimées du rendu final. - Les champs s'accèdent via la variable de boucle (
line).
Conditions dans un tableau
Utiliser impérativement if / else / endif — deux blocs if séparés provoquent une TemplateSyntaxError.
{%tr for line in docs.order_line_ids %}
{%tr if not line.uom_qty %}
[cellule fusionnée] {{line.product_id.display_name}} ← ligne de section
{%tr else %}
{{line.product_id.display_name}} | {{line.uom_qty}} | {{line.price_unit}}
{%tr endif %}
{%tr endfor %}
Ordre obligatoire : for → if → else → endif → endfor
Préférer
not line.champàline.champ == 0pour couvrir0,0.0,FalseetNone.
La directive
{%tr if %}et le contenu{{champ}}doivent être dans deux<w:r>séparés dans le XML Word — sinon le contenu ne s'affiche pas.
Mode PDF
Configurer le chemin LibreOffice dans Paramètres → Technique → Paramètres système :
| OS | Valeur |
|---|---|
| Linux | /usr/bin/libreoffice |
| Windows | C:\Program Files\LibreOffice\program\soffice.exe |
Clé : default_libreoffice_path
Erreurs courantes
| Erreur | Cause | Solution |
|---|---|---|
TemplateSyntaxError: unknown tag 'endif' |
Deux blocs if séparés dans un for |
Remplacer par if / else / endif |
| Ligne fusionnée vide | {%tr if %} et {{champ}} dans le même <w:r> |
Les séparer en deux runs distincts |
Condition == 0 ignorée |
Le champ est un float (0.0 != 0) |
Utiliser not line.champ |
| Erreur 500 générique | Erreur Python non affichée | journalctl -u odoo -n 100 ou tail -f /var/log/odoo/odoo.log |
| PDF non généré | LibreOffice absent ou mal configuré | Installer + configurer default_libreoffice_path |