Batiment: gestion des ouvrages (service+produit)

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

@defrance
Bonjour.

Je reprend le fil et je trouve que votre module fabrication correspond à la demande initiale.
Je viens d’installer la version dolibarr 3.4.1. et j’essaye désespérément d’installer un des modules suivant mis généreusement à dispo sur votre site (merci pour le boulot):
fabrication3.4.zip et son correctif composition 3.4.zip.
Je n’y arrive pas. Les modules sont ils compatibles avec dolibarr 3.4.1, si oui comment les installer?

Merci d’avance pour votre aide.

bonjour
les deux module (en fait c’est le même avec un autre nom) sont compatible avec la version 3.4.1
où êtes-vous coincé?
avez-vous activé les produits-virtuels dans le paramétrage produit?

Pour info un module plus complet gérant cette problématique verra très bientot le jour : Factory

Bonjour,
8 ans ca fait long pour répondre à un post…
Question, vous êtes toujours connecté ?
Faites moi signe, merci