Bonjour,
Avant toute choses, je tiens à féliciter les développeurs officiels de Dolibarr pour leur travail et leur réactivités sur le forum.
Je poste ici, mes améliorations issues de mon expérience dolibarr. Je pense que cela peut être une piste d’améliorations de Dolibarr.
Je précise que mes connaissances en PHP sont basiques et que le code n’est pas de qualité, mais pour mon usage, cela me convient.
Les interventions
Dans la liste des interventions, la durée affichée est toujours nulle. Comme cela me gênais, j’ai donc palier au problèmes. Voici si dessous le patch que j’applique :
[code:1]— dolibarr-snapshot/htdocs/fichinter/index.php 2007-11-12 05:00:20.000000000 +0100
+++ devel/htdocs/fichinter/index.php 2007-12-05 09:25:27.000000000 +0100
@@ -75,6 +75,7 @@
if ($result)
{
$num = $db->num_rows($result);
+
$fichinter_static=new Fichinter($db);
@@ -97,6 +98,16 @@
{
$objp = $db->fetch_object($result);
$var=!$var;
+
+ // Calcul des durées d’interventions
+ $sql="SELECT duree FROM ".MAIN_DB_PREFIX."fichinterdet WHERE fk_fichinter=".$objp->fichid;
+ $resultaj=$db->query($sql);
+ $numaj = $db->num_rows($resultaj);
+ $objp->duree=0;
+ while ($idet = mysql_fetch_row($resultaj)) { $objp->duree+=$idet[0]; }
+ $objp->duree/=3600;
+ $objp->duree=round($objp->duree,2);
+
print "";
print "fichid."\">".img_object($langs->trans("Show"«»),"task"«»).’ ‹ .$objp->ref."\n";
print ‹ socid. ›"> ›.img_object($langs->trans("ShowCompany"«»),"company"«»).’ ‹ .dolibarr_trunc($objp->nom,44)."\n";
@@ -109,6 +120,7 @@
$total += $objp->duree;
$i++;
}
+ $total=round($total,2);
print ‹ ›.$langs->trans("Total"«»). ›’;
print ‹ ›.price($total).’’;
print ‹ ›;
[/code:1]
Par la fiche, le patch est le suivant :
[code:1]— dolibarr-snapshot/htdocs/fichinter/fiche.php 2007-11-14 05:00:18.000000000 +0100
+++ devel/htdocs/fichinter/fiche.php 2007-12-05 19:43:47.000000000 +0100
@@ -577,6 +577,13 @@
}
print ‹ ›;
}
+
+ // Calcul de la durée totale
+ $sql="SELECT duree FROM ".MAIN_DB_PREFIX."fichinterdet WHERE fk_fichinter=".$fichinter->id;
+ $resultaj=$db->query($sql);
+ $numaj = $db->num_rows($resultaj);
+ $fichinter->duree=0;
+ while ($idet = mysql_fetch_row($resultaj)) { $fichinter->duree+=$idet[0]; }
// Dur
print ''.$langs->trans(\"TotalDuration\"«»).''.ConvertSecondToTime($fichinter->duree).'';
[/code:1]
Par contre, quand on ajoute une ligne, la durée totale de la fiche n’est pas mise à jour, cela aurait été plus propre que de faire le calcul à chaque fois.
Une amélioration (que je suis en train de réaliser mais non finalisée) est l’ajout dans le PDF des fiches d’interventions les lignes de détail et la durée.
Modèle de facture
J’ai souvent lu sur le forum, la nécéssité de rajouter un message sur les factures.
J’ai donc procédé comme suit :
Tout d’abord le patch :
[code:1]— dolibarr-snapshot/htdocs/includes/modules/facture/pdf_crabe.modules.php 2007-11-19 05:00:19.000000000 +0100
+++ devel/htdocs/includes/modules/facture/pdf_crabe.modules.php 2007-11-22 14:15:35.000000000 +0100
@@ -530,6 +530,8 @@
$pdf->MultiCell(80, 5, $lib_condition_paiement,0,‹ L ›);
$posy=$pdf->GetY()+3;
+ $pdf->MultiCell(120, 5, $conf->global->FACTURE_MESSAGE,0,‹ L ›);
+ $posy=$pdf->GetY()+6;
}
[/code:1]
Cela passe par l’ajout d’une variable FACTURE_MESSAGE (par le menu Configuration -> Divers)
Un point a améliorer, serait de pouvoir configurer (comment ?) la position du message sur la facture.
Cordialement,