dolibarr-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Dolibarr-dev] patch selection client fichinter obligatoire avant sa


From: Raphaël Bertrand (Résultic)
Subject: Re: [Dolibarr-dev] patch selection client fichinter obligatoire avant saisie
Date: Fri, 13 Jun 2008 17:36:51 +0200
User-agent: Thunderbird 2.0.0.14 (Windows/20080421)

Dans la suite du patch précédent, un patch qui force la sélection d'une société avant de renseigner la fiche d'intervention, afin d'avoir un numéro d'intervention prenant en compte la société sélectionnée.



*Raphaël Bertrand*
Résultic - Management & Informatique
Siège : 11 rue Tronchet - 69006 LYON
Bureaux : 11 pl Maréchal Lyautey - 69006 LYON
Fixe. 08 74 77 00 70
Fax. 08 25 24 85 02
E-Mail : address@hidden

Raphaël Bertrand (Résultic) a écrit :
Voici le patch qui met à jour les modules saphir, mercure et arctic (propales, commandes, fichinter, factures)

- Pour modifier le test en 'not like' par un test en like qui teste certains caractères du masque pour le rendre moins sensible à la présence de données ne suivant pas ce masque (limite les cas où l'on est obligé d'altérer toute l'ancienne numérotation pour faire fonctionner la nouvelle).

- Pour faire fonctionner le module de comptage d'intervention arctic, qui n'était actuellement plus fonctionnel, n'allant pas chercher ses numéros dans la bonne table.

- Pour ajouter le support du filtre {cccc} qui transforme le compteur général en compteur propre au client, en incluant dans le masque le code client unique, dans la limite des caractères définissant le code client. (NON intégré dans mercure pour respecter la législation qui impose la présence d'un compteur global)

- Pour ajouter le support du filtre {-cccc0000} / {-ccccSEP000+10} décrit dans les mails précédents, et qui permet d'ajouter un suffixe muni d'un compteur propre au client, et comportant les n (n=nombre de c) premières lettres du code client unique (dans la limite de ce qui est défini), et pouvant comporter un préfixe d'une lettre différente de c, ainsi qu'un séparateur de longueur quelconque mais ne comportant ni de c ni de 0. Le compteur client peut être initialisé à une valeur d'offset, et est obligatoirement réinitialisé en même temps que le compteur global. La possibilité d'intégrer ces caractères au sein du filtre s'explique par le fait qu'elle permet d'ajouter ce suffixe sans réinitialiser le compteur préexistant.

*Raphaël Bertrand*
Résultic - Management & Informatique
Siège : 11 rue Tronchet - 69006 LYON
Bureaux : 11 pl Maréchal Lyautey - 69006 LYON
Fixe. 08 74 77 00 70
Fax. 08 25 24 85 02
E-Mail : address@hidden

Raphaël Bertrand (Résultic) a écrit :
Voici maintenant une version modifiée de mon patch pour la numérotation de propales saphir qui permet l'ajout d'un filtre évolué suivant l'expression régulière '\{([^c])?(c+)([^0c]*)(0+)(\+[0-9]+)?\}' Soit 1 caractère de préfixe optionnel (différent de c majuscule ou minuscule), suivi d'un nombre quelconque c (autant de c que le nombre maximum de caractères à récupérer du code client), suivi d'une chaine optionnelle servant de séparateur (ne contenant ni de 0 ni de c majuscule ou minuscule), suivi d'un nombre de zéro correspondant au nombre de chiffres du compteur propre au client, et éventuellement suivi d'un marqueur d'offset.

Le résultat est un suffixe n'interférant pas sur la numérotation standard.

Exemple: pour le masque address@hidden
ayant déjà 7 propositions suivant le masque address@hidden, et 0 suivant ce nouveau masque, le module propose PR0800008-0057 si pas de référence client (l'exemple de numérotation), et PR0800008-CLIE0057
pour un client ayant comme code client CLIENT.
Si on valide cette proposition et l'on en crée aussitôt une autre pour le même client, on obtient PR0800009-CLIE0058

Avec le masque address@hidden
on aurait eu PR0800008-CLIE-0001 puis PR0800009-CLIE-0002
et avec address@hidden, PR0800008CLIE-NUM-0001 puis PR0800008CLIE-NUM-0002


*Raphaël Bertrand*
Résultic - Management & Informatique
Siège : 11 rue Tronchet - 69006 LYON
Bureaux : 11 pl Maréchal Lyautey - 69006 LYON
Fixe. 08 74 77 00 70
Fax. 08 25 24 85 02
E-Mail : address@hidden

Raphaël Bertrand (Résultic) a écrit :
Bonjour,

Sauf erreur de ma part, c'est justement de ce code client unique dont je me sers. La seule chose qu'il peut se passer, c'est que si l'on choisit moins de lettres dans le masque que le nombre de lettre que font les codes clients, il peut y avoir des codes clients distincts qui se retrouvent avec le même masque. Mais rien n'empêche de mettre suffisamment de c pour que cela ne se produise pas (si il y a plus de c que de lettres pour les codes clients, on se contente de retourner l'intégralité du code client).

La seule restriction qui demeure, c'est qu'il ne faut pas que les codes clients se terminent par un 0 si ils sont utilisés juste avant le compteur (sans séparation), car alors ils rentrent en conflit avec lui comme c'est le cas actuellement si l'on met un 0 dans son masque juste avant le compteur.

Pour l'idée du compteur propre au client avec mention du code client et utilisé en suffixe, venant se surajouter au compteur global, je vais voir comment cela peut se faire.

*Raphaël Bertrand*
Résultic - Management & Informatique
Siège : 11 rue Tronchet - 69006 LYON
Bureaux : 11 pl Maréchal Lyautey - 69006 LYON
Fixe. 08 74 77 00 70
Fax. 08 25 24 85 02
E-Mail : address@hidden

Rodolphe Quiedeville a écrit :
Raphaël Bertrand (Résultic) a écrit :
En me servant du patch permettant de rendre saphir plus robuste,
j'ai rajouté la prise en compte du code client via le masque {cccc}


Bonjour,

Il existe déjà un code client unique pourquoi ne pas l'utiliser ?

Après pour les facture une sequence :

08-00001-CD54-0001
08-00002-CD54-0002
08-00003-EB54-0001
08-00004-CD54-0003

Avec l'année sur 2 digit, compteur total sur 5 digits, code client,
compteur client sera valide auprès des institutions. Il contient bien
une séquence unique qui servira de base comptable. Le changement lors de
changement d'année est régulièrement accepté ou à la fin de l'exercice.

En fait c'est juste une séquence unique et continue avec un suffix.

A++



_______________________________________________
Dolibarr-dev mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/dolibarr-dev


------------------------------------------------------------------------

_______________________________________________
Dolibarr-dev mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/dolibarr-dev


------------------------------------------------------------------------

_______________________________________________
Dolibarr-dev mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/dolibarr-dev
Index: fiche.php
===================================================================
RCS file: /sources/dolibarr/dolibarr/htdocs/fichinter/fiche.php,v
retrieving revision 1.96
diff -u -r1.96 fiche.php
--- fiche.php   9 Apr 2008 18:13:49 -0000       1.96
+++ fiche.php   13 Jun 2008 15:33:00 -0000
@@ -382,22 +382,15 @@
        $modFicheinter = new $obj;
        $numpr = $modFicheinter->getNextValue($societe,$ficheinter);
 
+       if ($_GET["socid"])
+       {
        print "<form name='fichinter' action=\"fiche.php\" method=\"post\">";
 
        print '<table class="border" width="100%">';
 
-       if ($_GET["socid"])
-       {
                print '<input type="hidden" name="socid" 
value='.$_GET["socid"].'>';
                print 
"<tr><td>".$langs->trans("Company")."</td><td>".$societe->getNomUrl(1)."</td></tr>";
-       }
-       else
-       {
-               print "<tr><td>".$langs->trans("Company")."</td><td>";
-               $html->select_societes('','socid','',1);
-               print "</td></tr>";
-       }
-
+       
        print "<tr><td>".$langs->trans("Date")."</td><td>";
        $html->select_date(time(),"p",'','','','fichinter');
        print "</td></tr>";
@@ -407,7 +400,7 @@
        print "<tr><td>".$langs->trans("Ref")."</td>";
        print "<td><input name=\"ref\" value=\"$numpr\"></td></tr>\n";
 
-       if ($conf->projet->enabled && $_GET["socid"])
+       if ($conf->projet->enabled)
        {
                // Projet associe
                $langs->load("project");
@@ -466,6 +459,22 @@
 
        print '</table>';
        print '</form>';
+       }
+       else
+       {
+               print "<form name='fichinter' action=\"fiche.php\" 
method=\"get\">";
+               print '<table class="border" width="100%">';
+               print "<tr><td>".$langs->trans("Company")."</td><td>";
+               $html->select_societes('','socid','',1);
+               print "</td></tr>";
+               print '<tr><td colspan="2" align="center">';
+               print "<input type=\"hidden\" name=\"action\" 
value=\"create\">";
+               print '<input type="submit" class="button" 
value="'.$langs->trans("CreateDraftIntervention").'">';
+               print '</td></tr>';
+               print '</table>';
+               print '</form>';
+       }
+
 }
 elseif ($_GET["id"] > 0)
 {


reply via email to

[Prev in Thread] Current Thread [Next in Thread]