Batiment: gestion des ouvrages (service+produit)

Bonjour à tous.

Avant tout bravo pour l’application Dolibarr.
Je suis actuellement en phase de création d’entreprise artisanale en électricité générale et parmi tous les ERP ou logiciels propriétaire, c’est celui qui se rapproche le plus de mes besoins en terme d’ergonomie et fonctionnalités proposées.
Je post pourtant cette suggestion (sauf erreur de ma part et après recherche il n’y en a pas dans ce sens), j’utilise dans mes propales la notion d’ouvrage (notion extrêmement présente en bâtiment).
L’ouvrage est une association produit/service par exemple:
Ouvrage : Fourniture, pose et raccordement d’une prise 220V 16 A encastrée.
Cet ouvrage comprend les produits: boite encastrement, mécanisme, cache, finition, cuivre
plus le service: x heure
Nous avons plusieurs avantages à travailler avec des ouvrages dans les propales :
permet de travailler au forfait
une seule ligne à taper au lieu de x lignes de détails dont le client ne visualise pas forcément l’intérêt
propales beaucoup plus lisibles
et d’autres encore.
Dolibarr pourrait il gérer ce type d’entité ouvrage et permettre en même temps la gestion des produits (commandes, stocks,…) ainsi que les services (suivi MO).
L’application pourrait gérer également une sortie PDF intégrant au choix le détail de l’ouvrage ou non.
L’application pourrait elle intégrer une création de ligne de titre (déja posté dans le forum mais tant que l’on y est après tout).

Voilà ma suggestion, j’espère qu’elle est suffisamment explicite.
J’aurais bien voulu la poster dans Dolibarr Pro mais je n’ai pas encore de n° SIRENE. Prochainement en tous cas.
Merci

Ce serait une bonne chose pour les entreprises de BTP.

ceci demande un petit peu de développement, mais c’est intéressant, il faudrait le soumettre dans www.dolibarr.pro

Bonjour,

Effectivement, cette proposition me semble particulièrement judicieuse. Pour plus de précision (est-ce nécessaire?), il faudrait gérer cette notion d’ouvrage, sous la forme d’une nomenclature de produits et services, afin de pouvoir gérer les stocks des produits associés à cet ouvrage.
Cependant la notion de nomenclature n’existe pas dans dolibarr, ce n’est pas le rôle d’un ERP, mais d’un PLM.

fanchbr, comment avez-vous solutionné lors de l’implémentation de dolibarr dans votre entreprise la notion d’ouvrage? Je suis confronté au même type de souci. Sinon, je suis intéressé par les autres solutions utilisées par d’autres.

D’avance merci.

Rebonjour,

Je réponds moi-même à mon post de ce matin… puisque j’ai découvert entre temps la notion de produits associés qui s’active dans la configuration du module produit.

Pour l’utiliser, on crée un produit et dans l’onglet produit associé, on y associe des produits et des services. Lors de l’expédition du produit, le stock du produit et des produits associés est alors décrémenté.

Cela peut, selon moi, être utilisé pour la gestion d’ouvrage.

Bonne journée.

Stephbul

et pour les pdf un rapport très spécifique et adaptable, style :http://www.productivix.com/article339.html

Hello tout le monde. (et vive dolibarr !! :woohoo: )

Bon ya rien à dire dolibarr est très bien. Mais ya quelques petites choses à revoir quand même. Donc moi j’ai choisi de faire mc bidouille et de modifier les sources à ma sauce. Ceux qui m’aiment me suive. Pareil, je suis en projet de création de boite de charpente (etude et construction bois) et je profite de ce post pour lancer mes petites modif. Je ne suis pas un pro en prog php (ni aucune autre d’ailleurs) donc je ne garanti rien de la bonne execution de dolibarr par la suite. Je post donc ma 2eme modif (en attendant de retrouver la première.

Elle permet de faire un systeme produit-ouvrage. Je l’ai testé (vite fait), ca a l’air de marcher. En gros ca prend le prix d’un produit, ca le multiplie par la qté associé au service et ca met à jour le service. Ca le fait à chaque rafraichissemant de page (ou que l’on soit dans dolibarr normalement). Donc je ne sais pas ce que ca donne avec 100000 pruduits et services… à voir (et à ameliorer). Attention quand même si vous tenez à vos trucs deja enregistré… !!! Ne m’insultez pas après !!! :confused:

donc attention les yeux…

function update_price_associateproducts()
{
$con = mysql_connect(« localhost »,« root »,« password »);
mysql_select_db(« dolibarr », $con);
$requete1 = mysql_query("SELECT * FROM llx_product_association");
//parcours de la table produits associes
while ($r1 = mysql_fetch_array($requete1))
{
//recuperation des infos produit price pricettc pricemin priceminttc
$requete2 = mysql_query(« SELECT * FROM llx_product WHERE rowid = ».$r1[‹ fk_product_fils ›]);
while ($r2 = mysql_fetch_array($requete2))
{
$priceproduct=$r2[‹ price ›];
$pricettcproduct=$r2[‹ price_ttc ›];
$priceminproduct=$r2[‹ price_min ›];
$priceminttcproduct=$r2[‹ price_min_ttc ›];

			$dbmajprice[$r1['fk_product_pere']]=$dbmajprice[$r1['fk_product_pere']]+$priceproduct*$r1['qty'];
			$dbmajpricettc[$r1['fk_product_pere']]=$dbmajpricettc[$r1['fk_product_pere']]+$pricettcproduct*$r1['qty'];
			$dbmajpricemin[$r1['fk_product_pere']]=$dbmajpricemin[$r1['fk_product_pere']]+$priceminproduct*$r1['qty'];
			$dbmajpriceminttc[$r1['fk_product_pere']]=$dbmajpriceminttc[$r1['fk_product_pere']]+$priceminttcproduct*$r1['qty'];
			
	}

}
$requete1 = mysql_query(« SELECT * FROM llx_product_association« );
while ($r1 = mysql_fetch_array($requete1))
{
mysql_query(« UPDATE dolibarr.llx_product SET price = ' ».$dbmajprice[$r1[‹ fk_product_pere ›]]. »’ WHERE llx_product.rowid = ».$r1[‹ fk_product_pere ›]);
mysql_query(« UPDATE dolibarr.llx_product SET price_ttc = ' ».$dbmajpricettc[$r1[‹ fk_product_pere ›]]."’ WHERE llx_product.rowid =".$r1[‹ fk_product_pere ›]);
mysql_query(« UPDATE dolibarr.llx_product SET price_min = ' ».$dbmajpricemin[$r1[‹ fk_product_pere ›]]."’ WHERE llx_product.rowid =".$r1[‹ fk_product_pere ›]);
mysql_query(« UPDATE dolibarr.llx_product SET price_min_ttc = ' ».$dbmajpriceminttc[$r1[‹ fk_product_pere ›]]."’ WHERE llx_product.rowid =".$r1[‹ fk_product_pere ›]);
}
mysql_close($con);
}

update_price_associateproducts();

voila donc normalement, copier coller dans dollibar/htdocs/main.inc.php
moi je l’ai mis vers la ligne 113 sous :
analyse_sql_and_script($_GET);
analyse_sql_and_script($_POST);

et modifiez :

$con = mysql_connect(« localhost »,« root »,« password »);

avec vos trucs perso

il ne faut pas associer de produits avec d’autres produits. Je vais modifier la source pour ne plus avoir l’onglet car on ne peut pas le desactiver.

A ma grande joie, apparament cela ne modifie pas un prix enregistré dans une proposition commerciale deja établie !!

A vous de tester.

++ Baptiste

Donc 2eme astuce mac bidouille. Si ca vous saoul de rentrer des references produits et services : vous pouvez editer le fichier dolibarr/htdocs/product/fiche.php
et modifier la ligne 624 :

$referds=time();

cela va vous donner une reference de type 1283885056. C’est le temps depuis lequel le serveur php je crois à été mis en route. C’est en seconde… Voila… C’est une modif que j’avais faites il y a longtemps donc je ne sais plus trop comment c’était fait au départ.
sinon moi ca se présente comme ca :

$referds=time();
print ‹ <td width=« 20% »> ›.$langs->trans(« Ref »).’</td><td><input name=« ref » size=« 40 » maxlength=« 32 » value="’.$referds.’">’;

Voila ++

Encore moi !!

Donc j’avais fait pareil au ref fournisseurs pour des demandes de prix

edition du fichier dolibarr/htdocs/product/fournisseurs.php

et à la ligne 286 :

print ‹ <input class=« flat » name=« ref_fourn » size=« 12 » value=" ›.time().’">’;

voilou…

Encore moi !!

Donc j’avais fait pareil au ref fournisseurs pour des demandes de prix

edition du fichier dolibarr/htdocs/product/fournisseurs.php

et à la ligne 286 :

print ‹ <input class=« flat » name=« ref_fourn » size=« 12 » value=" ›.time().’">’;

voilou…

Et devinez qui c’est encore ?! Bah encore moi.

Donc pour eviter d’associer un produit à un autre produit, je n’ai pas reussi à desactiver l’onglet mais à mettre un message et ca bloque l’accès.

Donc modifier :

dolibarr/htdocs/product/sousproduits/fiche.php

Et vers la ligne 158 quelque chose comme ca, au dessus de

/*
* Fiche produit
*/

copier le code suivant

$con = mysql_connect(« localhost »,« root »,« password »);
mysql_select_db(« dolibarr », $con);
$requete1 = mysql_query(« SELECT * FROM llx_product WHERE rowid = ».$_GET[« id »]);
while ($r1 = mysql_fetch_array($requete1))
{
$typeproduit=$r1[‹ fk_product_type ›];
}
mysql_close($con);
if ($typeproduit==0)
{echo "Association d’un produit à un autre produit impossible… Merci Baba :wink: ";}
else
{

et enfin tout en bas du fichier, au dessus de ?> il faut mettre une accolade }
voilou et bien sur modifier les identifiants de connexion mysql

++

Bon j’ai modifié le fichier dolibarr/htdocs/product/sousproduits/fiche.php comme ceci. Cela permet d’avoir les prix unitaire de chaque produit associé. Toujours modifié les connecs mysql

[code]
// associations sousproduits
$prods_arbo = $product->get_arbo_each_prod();
if(sizeof($prods_arbo) > 0)
{
print ‹ 

 ›;
print ‹  ›.$langs->trans(« ProductAssociationList »).’
’;
foreach($prods_arbo as $key => $value)
{
$con = mysql_connect(« localhost »,« root »,« password »);
mysql_select_db(« dolibarr », $con);
$requete1 = mysql_query(« SELECT * FROM llx_product WHERE rowid = ».$value[1]);
while ($r1 = mysql_fetch_array($requete1))
{
$prixproduit=round($r1[‹ price ›],2);
$prixproduitttc=round($r1[‹ price_ttc ›],2);
$prixminproduit=round($r1[‹ price_min ›],2);
$prixminproduitttc=round($r1[‹ price_min_ttc ›],2);
}
mysql_close($con);
				$productstatic->id=$value[1];
				$productstatic->type=0;
				//$productstatic->ref=$value[0];
				//var_dump($value);
				//print '<pre>'.$productstatic->ref.'</pre>';
				//print $productstatic->getNomUrl(1).'<br>';
				print $value[0]."<tr><td>Prix à l'unité HT : ".$prixproduit."€<br>Prix à l'unité TTC : ".$prixproduitttc."<br>Prix à l'unité minimum HT : ".$prixminproduit."<br>Prix à l'unité minimum TTC : ".$prixminproduitttc."  : €</td></tr><tr><td><br><center>---------</center><br></td></tr>";	// This contains a tr line.
			}


			print '</td></tr>';
		}

		print "</table>\n";

	}
}

/*
 * Fiche en mode edition
 */[/code]

Merci Baptiste pour tant d’enthousiasme! Par contre, la diffusion de sources dans un forum peut être intéressante pour une petite astuce, mais là, cela commence à faire beaucoup d’autant que les explications sont trop succintes.

Selon moi, se lancer dans un projet de développement de module de dolibarr, proposer des améliorations, participer à la correction de bugs sont d’excellentes initiatives et je parie que l’équipe de dév sera heureuse de recevoir ton aide, mais, pour être vraiment utile cela doit être cadré. Ne faisant pas partie de l’équipe de développement et étant simple utilisateur de dolibarr, il s’agit d’un point de vue tout personnel.
Il me semble que si tu veux participer en tant que développeur au projet, tu as les ressources suffisantes sur ce site pour connaître le mode de fonctionnement, notamment les listes de taches ou de bugs à corriger.

Bonne continuation à toi et encore merci pour les idées.

Stephbul

Bonjour,

je veux bien coder cette implémentation, par contre je voudrais une contribution financière (même minime, via du crowdfunding) pour cela.

Yann.

Hello
En fait je suis en train de traiter une partie du problème en corrigeant et améliorant le module composition natif de dolibarr.
Le but étant ensuite d’ajouter à mon module équipement une tracabilité des composants rentrant dans la fabrication d’un produit…

Je précise que j’ai été contacté pour des demandes assez similaire suite à la sortie de mon module de gestion de projet et dans ma vision des choses, la gestion d’ouvrage n’est qu’un projet (service) auquel on associerai des produits…
Cette demande datant de plus de 2 ans, on peut penser qu’il n’y a pas urgence et que l’on peu réfléchir sur cet aspect.

ok, parfait

Dis moi si tu veux que je t’aide pour ton module

bonjour,
le gestion d ouvrage est une vielle demande, mais assez demandé par des utilisateurs, il existe un module pour la version 3.1 non porté sur la 3.2 , un module de composition qui je pense doit permettre de calculer le prix total d’un article composé de plusieurs produits , je suis prêt a le migrer sur la 3.2 mais si ton dev répond a la demande ça ne sert a rien de réinventé la roue.je suis prêt a tester ou a participer au dev

Bonjour, où puis-je trouver ce module pour la 3.1 ?

merci

Bonjour à tous
je reviens sur le forum pour suivre l’actualité de dolibarr que je n’utilise plus depuis longtemps. je travaille avec un logiciel commercial type apibat. Comme le dit tipas64, c’est une vieille demande et un réel besoin pour de nombreux petits artisans. Continuez dans ce sens et bon courage à vous tous développeur qui voudrais bien s’atteler à ce module.

bonsoir,

un petit up ,

j ai mis les mains dans le cambouis :wink:

Je développe actuellement un module spécifique Ouvrage ,afin de constituer une base d ouvrage convertible en produit

L ouvrage se constitue de produit/service existant ou de ligne produit/service
libre

L ouvrage permet actuellement le calcul du prix ht total , marge ttc tva,
( ttc tva marge ne sont qu’informatif lors de la création du produit)

le clonage …

l’ergonomie reste dans l 'esprit dolibarr pour la constitution

Une fois constitué on crée le produit et donc une seul ligne pour les devis/commande/facture

en cours , la numération des ouvrages automatiques , l impression d 'un pdf qui serat joignable pour le détails