Création d'un module "Automobile"

Bonjour à tous,

Je souhaite créer mon premier module sur Dolibarr.
J’ai de relativement bonnes notions en POO, mais je dois dire que là c’est une autre paire de manche lol

Petit descriptif du module souhaité :

Un petit garage automobile (2 employés) de quartier, sur un ancien EBP Automobile, souhaite migrer pour être dans les nouvelles normes.
Il est multi marque et vend également du gasoil.

Nativement, Dolibarr ne gère pas les équipements clients.
De toute façon, les besoins sont précis.

J’ai fais un cahier des charges rapide :

Partie Véhicules :

1. Ajouter des véhicules (créer une page spécifique) avec ses informations

  1. Marque, Modèle
  2. Version (moteur, boite de vitesse, …)
  3. Immatriculation
  4. Date du dernier contrôle technique
  5. Date d’achat
  6. Date de première mise en circulation
  7. N° de la carte grise
  8. Inclure un document (scan de la carte grise)
  9. *Autre données pouvant être ajoutées dans les options du module/plugin*

2. Dans la liste des véhicules, voir le client rattachés (et les interventions)
3. Sur le détail du véhicule, voir le client rattaché (et les interventions)
4. Possibilité de filtrer les véhicules par un tiers
5. Rattacher un ou plusieurs véhicules à un tiers (client et prospect) depuis la fiche du tiers

Partie Interventions :

6. Ajouter des interventions (depuis la page véhicules)

  1. Nature du problème (depuis une liste configurable, exemple : démarrage, comportement routier, …)
  2. Description du problème
  3. Kilométrage
  4. Solution trouvée
  5. Temps passée sur l’intervention (en minutes, heures ou jours)
  6. *Possibilité de dupliquer une intervention*

7. Dans la liste des interventions, voir le véhicule rattachée et son client
8. Sur le détail de l’intervention, voir le véhicule attachées et son client
9. Possibilité de filtrer les interventions par véhicule et client
10. Rattacher une ou plusieurs interventions à un véhicule (dans la vue intervention ou véhicule)

De manière générale :

11. Sur les propositions commerciales, rattacher le véhicule et les interventions
12. Sur les commandes clients, rattacher le véhicule (sélection si client à plusieurs véhicules) et les interventions attachées au véhicule
13. Sur les factures client, rattacher le véhicule et les interventions (éléments récupérés de la commande client)
14. Pouvoir créer une facture rapidement (sans commande) en affectant un véhicule et une ou des interventions
15. Rajouter les informations du véhicule (Immatriculation, marque et modèle) concerné et intervention(s) sur les documents PDF (proposition commerciale, commande client et facture client)

En option :

16. Rajouter des droits d’accès pour administrer les parties véhicules et interventions (droits de lecture, écriture et création)
17. Donner la possibilité au client d’avoir accès à ses véhicules et interventions (en lecture uniquement) lorsqu’il se connecte avec ses identifiants (contact sur le client)

Histoire de commencer du bon pied, je démarre avec l’assistant. Mais je pense que ce n’est pas la bonne solution dans mon cas.

Bref, outre le sujet de créer une nouvelle page, une nouvelle table dans la BDD, … je souhaite que lorsqu’il crée une proposition commercial, commande ou facture client, il ait la possibilité de choisir l’équipement du client (véhicule) ainsi que l’intervention sur ce véhicule.

J’ai bien vu les ExtraField avec des champs objets (modules) mais je me pose la question de la faisabilité de pouvoir lister uniquement les équipements du client choisi lors de la création d’une commande ou facture.

Quand pensez-vous ?

Bonjour,

vous devriez vous rapprocher de @Lmag de chez Evarisk qui ont un module pour la gestion des véhicules déja avancé avec la prise en charge des véhicules, etc …

Voir le détail dnas ce sujet : DoliCar - Permet de suivre l'activité de réparation pour un garage

pensez à poster l’évolution de votre future collaboration :wink:

@+

Finalement, pour insérer des lignes dans les formulaires Propal/Commande/Facture je vois qu’il y a un système de Hook.

C’est parfait, et c’est ce qu’il faut parce que je ne voyais pas comment rajouter un ExtraField en code à l’activation du module.
Donc :

  • Un hook lors de la création du formulaire
  • Un hook lors de l’enregistrement du formulaire
  • Un hook lors de la visualisation du formulaire

J’en oublie ?

Cependant je ne vois toujours pas comment filtrer sur le client…
Y’a t il un appel Ajax lors de la modification du champ client ? Ou doit on le faire manuellement ?