[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Dolibarr-dev] idée compteur à ma sque client
From: |
Raphaël Bertrand (Résultic) |
Subject: |
Re: [Dolibarr-dev] idée compteur à ma sque client |
Date: |
Thu, 12 Jun 2008 17:55:38 +0200 |
User-agent: |
Thunderbird 2.0.0.14 (Windows/20080421) |
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}
Il permet donc maintenant l'utilisation d’un masque {cccc} récupérant
les 0 à n (ici 4) premières lettres du code client pour constituer le
masque avant de récupérer la valeur du compteur propre à ce nouveau
masque (via un test avec un like, qui teste la correspondance des
caractères non spéciaux et ne faisant pas parti d'un masque numérique -
date ou compteur -, ainsi que la taille de la chaine).
Si cela vous convient, j'appliquerais les modifications aussi pour les
commandes, et peut être les interventions mais pas aux factures pour les
raisons juridiques déjà évoquées(nécessité d’avoir une continuité dans
les numéros de factures)
*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
Lionel Chamussy a écrit :
Raphaël,
Peux tu regarder ce point, et proposer un patch qui aille dans ce sens
pour les propositions, commandes, (et interventions ?).
Merci.
Index: mod_propale_saphir.php
===================================================================
RCS file:
/sources/dolibarr/dolibarr/htdocs/includes/modules/propale/mod_propale_saphir.php,v
retrieving revision 1.17
diff -u -r1.17 mod_propale_saphir.php
--- mod_propale_saphir.php 1 May 2008 09:38:28 -0000 1.17
+++ mod_propale_saphir.php 12 Jun 2008 15:41:14 -0000
@@ -111,10 +111,15 @@
$maskraz=-1;
$maskoffset=0;
if (strlen($maskcounter) < 3) return
'CounterMustHaveMoreThan3Digits';
-
+ if (eregi('\{(c+)\}',$mask,$regmaskclientcode))
+ {
+ $maskclientcode=$regmaskclientcode[1];
+
$clientcode=sanitize_string(substr($objsoc->code_client,0,strlen($maskclientcode)));
+ }
$maskwithonlyymcode=$mask;
$maskwithonlyymcode=eregi_replace('\{(0+)(address@hidden)?(address@hidden)?\}',$maskcounter,$maskwithonlyymcode);
$maskwithonlyymcode=eregi_replace('\{dd\}','dd',$maskwithonlyymcode);
+
$maskwithonlyymcode=eregi_replace('\{(c+)\}',$maskclientcode,$maskwithonlyymcode);
$maskwithnocode=$maskwithonlyymcode;
$maskwithnocode=eregi_replace('\{yyyy\}','yyyy',$maskwithnocode);
$maskwithnocode=eregi_replace('\{yy\}','yy',$maskwithnocode);
@@ -158,12 +163,24 @@
if ($posnumstart < 0) return 'ErrorBadMask';
$sqlstring='SUBSTRING(ref, '.($posnumstart+1).',
'.strlen($maskcounter).')';
//print "x".$sqlstring;
-
+
+ // Build maskLike
+ $maskLike = sanitize_string($mask);
+ $maskLike = str_replace("%","_",$maskLike);
+ // Replace protected special codes with matching number of _ as
wild card caracter
+ $maskLike =
str_replace(sanitize_string('{yyyy}'),'____',$maskLike);
+ $maskLike = str_replace(sanitize_string('{yy}'),'__',$maskLike);
+ $maskLike = str_replace(sanitize_string('{y}'),'_',$maskLike);
+ $maskLike = str_replace(sanitize_string('{mm}'),'_',$maskLike);
+ $maskLike = str_replace(sanitize_string('{dd}'),'__',$maskLike);
+ $maskLike =
str_replace(sanitize_string('{'.$masktri.'}'),str_pad("",strlen($maskcounter),"_"),$maskLike);
+ $maskLike =
str_replace(sanitize_string('{'.$maskclientcode.'}'),$clientcode,$maskLike);
// Get counter in database
$counter=0;
$sql = "SELECT MAX(".$sqlstring.") as val";
$sql.= " FROM ".MAIN_DB_PREFIX."propal";
- $sql.= " WHERE ref not like '(%'";
+ //$sql.= " WHERE ref not like '(%'";
+ $sql.= " WHERE ref like '".$maskLike."'";
if ($sqlwhere) $sql.=' AND '.$sqlwhere;
//print $sql;
@@ -187,6 +204,7 @@
$numFinal = str_replace('{y}' ,substr(date("y"),2,1),$numFinal);
$numFinal = str_replace('{mm}',date("m"),$numFinal);
$numFinal = str_replace('{dd}',date("d"),$numFinal);
+ $numFinal =
str_replace('{'.$maskclientcode.'}',$clientcode,$numFinal);
// Now we replace the counter
$maskbefore='{'.$masktri.'}';
- [Dolibarr-dev] idée compteur à masque client, Raphaël Bertrand (Résultic), 2008/06/11
- Re: [Dolibarr-dev] idée compteur à masq ue client, paul POULAIN, 2008/06/11
- Re: [Dolibarr-dev] idée compteur à masq ue client, Lionel Chamussy, 2008/06/11
- Re: [Dolibarr-dev] idée compteur à masq ue client, Eldy, 2008/06/11
- Re: [Dolibarr-dev] idée compteur à masq ue client, Lionel Chamussy, 2008/06/12
- Re: [Dolibarr-dev] idée compteur à ma sque client,
Raphaël Bertrand (Résultic) <=
- Re: [Dolibarr-dev] idée compteur à ma sque client, Rodolphe Quiedeville, 2008/06/12
- Re: [Dolibarr-dev] idée compteur à ma sque client, Raphaël Bertrand (Résultic), 2008/06/13
- Re: [Dolibarr-dev] idée compteur à ma sque client (patch saphir propales), Raphaël Bertrand (Résultic), 2008/06/13
- Re: [Dolibarr-dev] patch compteur à masque client et numéro chrono, Raphaël Bertrand (Résultic), 2008/06/13
- Re: [Dolibarr-dev] patch selection client fichinter obligatoire avant saisie, Raphaël Bertrand (Résultic), 2008/06/13
- Re: [Dolibarr-dev] patch compteur à masque client et numéro chrono, Eldy, 2008/06/17
- Re: [Dolibarr-dev] patch compteur à masque client et numéro chrono, Raphaël Bertrand (Résultic), 2008/06/17
- Re: [Dolibarr-dev] patch compteur à masque client et numéro chrono, Eldy, 2008/06/17
- Re: [Dolibarr-dev] patch compteur à masque client et numéro chrono, Raphaël Bertrand (Résultic), 2008/06/18
- Re: [Dolibarr-dev] patch compteur à masque client et numéro chrono, Raphaël Bertrand (Résultic), 2008/06/18