Bonjour à nouveau,

Désolé pour le double mail, j'ai résolu les deux point qui m'échappaient et ai achevé la modification du module société.

Ci-joint le patch Activité qui ajoute au tiers un champ 'activity_state' permettant de définir si le tiers est en activité ou a cessé son activité. Inclus également une option de filtrage lors des recherche (activable dans la conf du module) afin de restreindre les recherches aux tiers en activité, ayant cessé leur activité ou tous les tiers.

Je prend toujours les commentaires et conseils, évidement ;)

Cordialement,

Anthony Poiret



[email protected] a écrit :

Bonjour à tous,

Actuellement en stage pour la société Auguria, je souhaite apporter ma contribution au développement de Dolibarr et ai donc cherché une petite tâche anodine pour me faire la main.

J'ai opté pour la tâche #9790, qui consiste à pouvoir désactiver un tiers pour cause de cessation d'activité, par exemple, sans avoir à le supprimer de la table des sociétés.

J'ai déjà apporter toutes les modifications nécessaires au DAO et au .php, je bloque actuellement sur le fichier de configuration du module.

Je voudrais rajouter un form pour limiter les résultat de recherche au entreprises en activité, en cessation d'activité ou les deux (à partir d'un selectarray), mais je n'arrive pas à trouver le descriptif des options de configurations (je suis bien parvenu à localiser le form de la partie 'autre' par exemple, dans htdocs/admin/societe.php, mais je n'arrive pas à saisir:

1- où est stocké le résultat du post quand on valide la modification (je pensais qu'elle s'appliquait dans la table des constantes, or ça ne semble pas être le cas)

2- où est stocké le descriptif du select html permettant de choisir ses options

En vous remerciant de votre lecture,

Cordialement,

Anthony Poiret

PS: je ne suis pas familier avec les mailing lists, si certaines habitudes me font défauts, n'hésitez pas à me le signaler, j'en prendrai notes attentivement

_______________________________________________
Dolibarr-dev mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/dolibarr-dev


### Eclipse Workspace Patch 1.0
#P dolibarr
Index: documents/.htaccess
===================================================================
RCS file: documents/.htaccess
diff -N documents/.htaccess
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ documents/.htaccess 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,2 @@
+Order allow,deny
+Deny from all
Index: htdocs/admin/societe.php
===================================================================
RCS file: /sources/dolibarr/dolibarr/htdocs/admin/societe.php,v
retrieving revision 1.58
diff -u -r1.58 societe.php
--- htdocs/admin/societe.php    24 Feb 2011 18:22:27 -0000      1.58
+++ htdocs/admin/societe.php    29 Apr 2011 14:02:31 -0000
@@ -63,6 +63,19 @@
        }
 }
 
+if($_POST["action"] == 'COMPANY_SEARCH_FILTER')
+{
+       if (dolibarr_set_const($db, "COMPANY_SEARCH_FILTER", 
$_POST["COMPANY_SEARCH_FILTER"],'chaine',0,'',$conf->entity))
+       {
+               Header("Location: ".$_SERVER["PHP_SELF"]);
+               exit;
+       }
+       else
+       {
+               dol_print_error($db);
+       }
+}
+
 if ($_POST["action"] == 'COMPANY_USE_SEARCH_TO_SELECT')
 {
        if (dolibarr_set_const($db, "COMPANY_USE_SEARCH_TO_SELECT", 
$_POST["activate_COMPANY_USE_SEARCH_TO_SELECT"],'chaine',0,'',$conf->entity))
@@ -448,6 +461,35 @@
 
 print '<br>';
 
+print_titre($langs->trans("SearchFilter"));
+// Activation du filtre de recherche en fonction de l'activity_state
+$html= new Form($db);
+$var=true;
+print'<table class="noborder" width ="100%">';
+print '<tr class="liste_titre">';
+print "<td>".$langs->trans("Parameters")."</td>\n";
+print '<td align="right" width="60">'.$langs->trans("Value").'</td>'."\n";
+print '<td width="80">&nbsp;</td></tr>'."\n";
+$var=!$var;
+print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
+print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
+print '<input type="hidden" name="action" value="COMPANY_SEARCH_FILTER">';
+print "<tr ".$bc[$var].">";
+print '<td width="80%">'.$langs->trans("ActivityStateToSelectCompany").'</td>';
+
+print '<td width="60" align="right">';
+       $arrval=array('0'=>$langs->trans("No"),
+       '1'=>$langs->trans("Yes")
+       );
+print 
$html->selectarray("COMPANY_SEARCH_FILTER",$arrval,$conf->global->COMPANY_SEARCH_FILTER);
+print '</td><td align="right">';
+print '<input type="submit" class="button" 
value="'.$langs->trans("Modify").'">';
+print "</td>";
+print '</tr>';
+print '</form>';
+print '</table>';
+print '<br>';
+
 print_titre($langs->trans("Other"));
 
 // Autres options
Index: htdocs/install/mysql/migration/3.0.0-3.1.0.sql
===================================================================
RCS file: 
/sources/dolibarr/dolibarr/htdocs/install/mysql/migration/3.0.0-3.1.0.sql,v
retrieving revision 1.27
diff -u -r1.27 3.0.0-3.1.0.sql
--- htdocs/install/mysql/migration/3.0.0-3.1.0.sql      21 Apr 2011 09:11:49 
-0000      1.27
+++ htdocs/install/mysql/migration/3.0.0-3.1.0.sql      29 Apr 2011 14:02:31 
-0000
@@ -41,6 +41,8 @@
 
 ALTER TABLE llx_societe ADD COLUMN fk_currency integer DEFAULT 0 AFTER 
fk_forme_juridique;
 
+ALTER TABLE llx_societe ADD COLUMN activity_state tinyint DEFAULT 1;
+
 ALTER TABLE llx_societe_remise MODIFY remise_client double(6,3) DEFAULT 0 NOT 
NULL;
 
 ALTER TABLE llx_menu ADD COLUMN fk_mainmenu   varchar(16) after fk_menu;
Index: htdocs/install/mysql/tables/llx_societe.sql
===================================================================
RCS file: 
/sources/dolibarr/dolibarr/htdocs/install/mysql/tables/llx_societe.sql,v
retrieving revision 1.12
diff -u -r1.12 llx_societe.sql
--- htdocs/install/mysql/tables/llx_societe.sql 10 Mar 2011 10:38:08 -0000      
1.12
+++ htdocs/install/mysql/tables/llx_societe.sql 29 Apr 2011 14:02:31 -0000
@@ -30,10 +30,12 @@
   datec                           datetime,                                    
        -- creation date
   datea                           datetime,                                    
        -- activation date
 
+  activity_state          tinyint DEFAULT 1,                                   
-- cessation d'activité ( 1 -- en activité, 0 -- cessation d'activité)          
                                
+
   nom                      varchar(60),                                        
-- company reference name
   entity                   integer DEFAULT 1 NOT NULL,                         
-- multi company id
 
-  ref_ext                  varchar(60),                                 -- 
reference into an external system (not used by dolibarr)
+  ref_ext                  varchar(60),                                        
-- reference into an external system (not used by dolibarr)
 
   code_client              varchar(15),                                        
-- code client
   code_fournisseur         varchar(15),                                        
-- code founisseur
Index: htdocs/langs/en_US/admin.lang
===================================================================
RCS file: /sources/dolibarr/dolibarr/htdocs/langs/en_US/admin.lang,v
retrieving revision 1.596
diff -u -r1.596 admin.lang
--- htdocs/langs/en_US/admin.lang       9 Apr 2011 20:10:57 -0000       1.596
+++ htdocs/langs/en_US/admin.lang       29 Apr 2011 14:02:32 -0000
@@ -46,6 +46,8 @@
 DisableJavascript=Disable JavaScript and Ajax functions
 ConfirmAjax=Use Ajax confirmation popups
 UseSearchToSelectCompany=Use autocompletion fields to choose third parties 
(instead of using a list box).<br><br>Also if you have a large number of third 
parties (> 100 000), you can increase speed by setting constant 
SOCIETE_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited 
to start of string.
+ActivityStateToSelectCompany= Add a filter option to show/hide thirdparties 
which are currently in activity or has ceased it
+SearchFilter=Search filters options
 NumberOfKeyToSearch=Nbr of characters to trigger search: %s
 ViewFullDateActions=Show full dates actions in the third sheet
 NotAvailableWhenAjaxDisabled=Not available when Ajax disabled
Index: htdocs/langs/en_US/companies.lang
===================================================================
RCS file: /sources/dolibarr/dolibarr/htdocs/langs/en_US/companies.lang,v
retrieving revision 1.173
diff -u -r1.173 companies.lang
--- htdocs/langs/en_US/companies.lang   22 Mar 2011 19:31:30 -0000      1.173
+++ htdocs/langs/en_US/companies.lang   29 Apr 2011 14:02:32 -0000
@@ -302,6 +302,9 @@
 ThirdPartiesArea=Third parties area
 LastModifiedThirdParties=Last %s modified third parties
 UniqueThirdParties=Total of unique third parties
+InActivity=In activity
+ActivityCeased=Activity ceased
+ActivityStateFilter=Activity status
 
 # Monkey
 MonkeyNumRefModelDesc=Return numero with format %syymm-nnnn for customer code 
and %syymm-nnnn for supplier code where yy is year, mm is month and nnnn is a 
sequence with no break and no return to 0.
Index: htdocs/langs/fr_FR/admin.lang
===================================================================
RCS file: /sources/dolibarr/dolibarr/htdocs/langs/fr_FR/admin.lang,v
retrieving revision 1.649
diff -u -r1.649 admin.lang
--- htdocs/langs/fr_FR/admin.lang       18 Apr 2011 19:46:43 -0000      1.649
+++ htdocs/langs/fr_FR/admin.lang       29 Apr 2011 14:02:33 -0000
@@ -47,6 +47,8 @@
 DisableJavascript= Désactiver les fonctions Javascript et Ajax
 ConfirmAjax= Utiliser les popups de confirmation Ajax
 UseSearchToSelectCompany= Utiliser un champ avec autocomplétion pour choisir 
un tiers (plutôt qu'une liste déroulante).<br><br>Notez que si vous avez un 
nombre important de produits ou services (> 100 000), vous pouvez améliorer les 
performances en définissant la constante SOCIETE_DONOTSEARCH_ANYWHERE à 1 dans 
Configuration->Divers. La recherche sera alors limitée au début de la chaine.
+ActivityStateToSelectCompany= Ajouter une option de filtrage lors des 
recherches pour afficher/masquer les tiers en exercice ou ayant cessés d'exercer
+SearchFilter=Options des filtres de recherche
 NumberOfKeyToSearch=Nb caractères déclenchant la recherche: %s
 ViewFullDateActions= Visualiser les dates des actions en entier dans la fiche 
tiers
 NotAvailableWhenAjaxDisabled= Non disponible quand Ajax désactivé
Index: htdocs/langs/fr_FR/companies.lang
===================================================================
RCS file: /sources/dolibarr/dolibarr/htdocs/langs/fr_FR/companies.lang,v
retrieving revision 1.190
diff -u -r1.190 companies.lang
--- htdocs/langs/fr_FR/companies.lang   6 Apr 2011 09:32:51 -0000       1.190
+++ htdocs/langs/fr_FR/companies.lang   29 Apr 2011 14:02:33 -0000
@@ -309,6 +309,9 @@
 ThirdPartiesArea=Espace Tiers
 LastModifiedThirdParties=Les %s derniers tiers modifiés
 UniqueThirdParties=Total de tiers uniques
+InActivity=En activité
+ActivityCeased=En cessation d'activité
+ActivityStateFilter=Statut d'activité
 
 # Monkey
 MonkeyNumRefModelDesc=Renvoie le numéro sous la forme %syymm-nnnn pour les 
codes clients et %syymm-nnnn pour les codes fournisseurs où yy est l'année, mm 
le mois et nnnn un compteur séquentiel sans rupture et sans remise à 0.
Index: htdocs/societe/class/societe.class.php
===================================================================
RCS file: /sources/dolibarr/dolibarr/htdocs/societe/class/societe.class.php,v
retrieving revision 1.69
diff -u -r1.69 societe.class.php
--- htdocs/societe/class/societe.class.php      26 Mar 2011 13:18:01 -0000      
1.69
+++ htdocs/societe/class/societe.class.php      29 Apr 2011 14:02:35 -0000
@@ -53,7 +53,7 @@
     var $address;
     var $adresse; // TODO obsolete
     var $cp;
-    var $ville;
+    var $ville;    
 
     var $departement_id;
     var $departement_code;
@@ -133,6 +133,8 @@
     var $logo;
     var $logo_small;
     var $logo_mini;
+    
+    var $activity_state; // 0=activity ceased, 1= in activity
 
     /**
      *    Constructor for class
@@ -156,6 +158,8 @@
         $this->prefixSupplierIsRequired = 0;
         $this->tva_assuj = 1;
 
+       
+
         return 1;
     }
 
@@ -184,6 +188,7 @@
         }
         if (empty($this->client)) $this->client=0;
         if (empty($this->fournisseur)) $this->fournisseur=0;
+        $this->activity_state = $this->activity_state != 0 ? 1 : 0;
 
         $this->db->begin();
 
@@ -198,10 +203,11 @@
 
         if ($result >= 0)
         {
-            $sql = "INSERT INTO ".MAIN_DB_PREFIX."societe (nom, entity, datec, 
datea, fk_user_creat, canvas)";
+            $sql = "INSERT INTO ".MAIN_DB_PREFIX."societe (nom, entity, datec, 
datea, fk_user_creat, canvas, activity_state)";
             $sql.= " VALUES ('".$this->db->escape($this->nom)."', 
".$conf->entity.", '".$this->db->idate($now)."', '".$this->db->idate($now)."'";
             $sql.= ", ".($user->id > 0 ? "'".$user->id."'":"null");
-            $sql.= ", ".($this->canvas ? "'".$this->canvas."'":"null");
+            $sql.= ", ".($this->canvas ? "'".$this->canvas."'":"null");        
 
+            $sql.= ", ".("'".$this->activity_state."'");
             $sql.= ")";
 
             dol_syslog("Societe::create sql=".$sql);
@@ -451,6 +457,8 @@
 
             $sql .= ",tva_assuj = 
".($this->tva_assuj!=''?"'".$this->tva_assuj."'":"null");
             $sql .= ",tva_intra = '" . $this->db->escape($this->tva_intra) 
."'";
+            
+            $sql .= ",activity_state = '" .($this->activity_state != 0 ?  1 : 
0). "'";
 
             // Local taxes
             $sql .= ",localtax1_assuj = 
".($this->localtax1_assuj!=''?"'".$this->localtax1_assuj."'":"null");
@@ -555,7 +563,7 @@
     {
         global $langs;
         global $conf;
-
+               
         if (empty($rowid) && empty($ref) && empty($ref_ext)) return -1;
 
         $sql = 'SELECT s.rowid, s.nom as name, s.entity, s.ref_ext, s.address, 
s.datec as dc, s.prefix_comm';
@@ -570,7 +578,8 @@
         $sql .= ', s.code_client, s.code_fournisseur, s.code_compta, 
s.code_compta_fournisseur, s.parent, s.gencod';
         $sql .= ', s.fk_departement, s.fk_pays, s.fk_stcomm, s.remise_client, 
s.mode_reglement, s.cond_reglement, s.tva_assuj';
         $sql .= ', s.localtax1_assuj, s.localtax2_assuj, s.fk_prospectlevel, 
s.default_lang';
-        $sql .= ', s.import_key';
+        $sql .= ', s.import_key';        
+        $sql .= ', s.activity_state';
         $sql .= ', fj.libelle as forme_juridique';
         $sql .= ', e.libelle as effectif';
         $sql .= ', p.code as pays_code, p.libelle as pays';
@@ -592,11 +601,11 @@
         if ($idprof3) $sql .= " WHERE s.ape = '".$this->db->escape($ape)."' 
AND s.entity = ".$conf->entity;
         if ($idprof4) $sql .= " WHERE s.idprof4 = 
'".$this->db->escape($idprof4)."' AND s.entity = ".$conf->entity;
 
-        $resql=$this->db->query($sql);
+        $resql=$this->db->query($sql);        
         dol_syslog("Societe::fetch ".$sql);
         if ($resql)
-        {
-            $num=$this->db->num_rows($resql);
+        {              
+            $num=$this->db->num_rows($resql);            
             if ($num > 1)
             {
                 $this->error='Societe::Fetch several records found for 
ref='.$ref;
@@ -635,7 +644,9 @@
                 $this->departement_id = $obj->fk_departement;                  
        // TODO obsolete
                 $this->state_id       = $obj->fk_departement;
                 $this->departement     = 
$obj->fk_departement?$obj->departement:'';
-
+                
+                $this->activity_state  = ($obj->activity_state != null ? 
$obj->activity_state : 1);    // Any null is replaced by true
+                               
                 $transcode=$langs->trans('StatusProspect'.$obj->fk_stcomm);
                 
$libelle=($transcode!='StatusProspect'.$obj->fk_stcomm?$transcode:$obj->stcomm);
                 $this->stcomm_id = $obj->fk_stcomm;     // id statut commercial
Index: htdocs/societe/soc.php
===================================================================
RCS file: /sources/dolibarr/dolibarr/htdocs/societe/soc.php,v
retrieving revision 1.81
diff -u -r1.81 soc.php
--- htdocs/societe/soc.php      13 Apr 2011 12:19:52 -0000      1.81
+++ htdocs/societe/soc.php      29 Apr 2011 14:02:34 -0000
@@ -138,6 +138,7 @@
                {
                        $soc->nom                   = $_POST["nom"];
                }
+               $soc->activity_state                    = 
$_POST["activity_state"];             
                $soc->address               = $_POST["adresse"];
                $soc->adresse               = $_POST["adresse"]; // TODO 
obsolete
                $soc->cp                    = $_POST["zipcode"];
@@ -182,7 +183,7 @@
 
                $soc->commercial_id         = $_POST["commercial_id"];
                $soc->default_lang          = $_POST["default_lang"];
-
+               
                // Check parameters
                if (empty($_POST["cancel"]))
                {
@@ -317,7 +318,7 @@
                        $_GET["action"]='';
                }
        }
-
+       
 
        /*
         * Generate document
@@ -441,7 +442,7 @@
        // When used in standard mode
        // -----------------------------------------
        if (GETPOST('action') == 'create')
-       {
+       {       
                /*
                 *  Creation
                 */
@@ -475,6 +476,7 @@
         if (GETPOST("private")==1) { $soc->particulier=1; }
 
                $soc->nom=$_POST["nom"];
+               $soc->activity_state= $_POST["activity_state"]; 
                $soc->prenom=$_POST["prenom"];
                $soc->particulier=$_REQUEST["private"];
                $soc->prefix_comm=$_POST["prefix_comm"];
@@ -595,22 +597,23 @@
                // Name, firstname
                if ($soc->particulier)
                {
-                       print '<tr><td><span 
class="fieldrequired">'.$langs->trans('LastName').'</span></td><td'.(empty($conf->global->SOCIETE_USEPREFIX)?'
 colspan="3"':'').'><input type="text" size="30" maxlength="60" name="nom" 
value="'.$soc->nom.'"></td>';
+                       print '<tr><td><span 
class="fieldrequired">'.$langs->trans('LastName').'</span></td><td'.(empty($conf->global->SOCIETE_USEPREFIX)?'
 colspan="1"':'').'><input type="text" size="30" maxlength="60" name="nom" 
value="'.$soc->nom.'"></td>';
             if (! empty($conf->global->SOCIETE_USEPREFIX))  // Old not used 
prefix field
             {
                 print '<td>'.$langs->trans('Prefix').'</td><td><input 
type="text" size="5" maxlength="5" name="prefix_comm" 
value="'.$soc->prefix_comm.'"></td>';
-            }
-                       print '</tr>';
+            }                  
                }
                else
                {
-                       print '<tr><td><span 
class="fieldrequired">'.$langs->trans('ThirdPartyName').'</span></td><td'.(empty($conf->global->SOCIETE_USEPREFIX)?'
 colspan="3"':'').'><input type="text" size="30" maxlength="60" name="nom" 
value="'.$soc->nom.'"></td>';
+                       print '<tr><td><span 
class="fieldrequired">'.$langs->trans('ThirdPartyName').'</span></td><td'.(empty($conf->global->SOCIETE_USEPREFIX)?'
 colspan="1"':'').'><input type="text" size="30" maxlength="60" name="nom" 
value="'.$soc->nom.'"></td>';
             if (! empty($conf->global->SOCIETE_USEPREFIX))  // Old not used 
prefix field
             {
                 print '<td>'.$langs->trans('Prefix').'</td><td><input 
type="text" size="5" maxlength="5" name="prefix_comm" 
value="'.$soc->prefix_comm.'"></td>';
-            }
-                       print '</tr>';
+            }                  
                }
+               print '<td>'.'Statut du tiers'.'</td><td>';     
+               print $form->selectarray('activity_state', 
array('0'=>$langs->trans('ActivityCeased'),'1'=>$langs->trans('InActivity')),1);
                     
+               print '</td></tr>';             
                // If javascript on, we show option individual
                if ($conf->use_javascript_ajax)
                {
@@ -929,6 +932,7 @@
                        {
                                $soc->id=$_POST["socid"];
                                $soc->nom=$_POST["nom"];
+                               $soc->activity_state=$_POST["activity_state"];
                                $soc->prefix_comm=$_POST["prefix_comm"];
                                $soc->client=$_POST["client"];
                                $soc->code_client=$_POST["code_client"];
@@ -954,7 +958,7 @@
                                $soc->gencod=$_POST["gencod"];
                                
$soc->forme_juridique_code=$_POST["forme_juridique_code"];
                                $soc->default_lang=$_POST["default_lang"];
-
+                               
                                $soc->tva_assuj = $_POST["assujtva_value"];
                                $soc->tva_intra=$_POST["tva_intra"];
 
@@ -1003,8 +1007,10 @@
                        print '<table class="border" width="100%">';
 
                        // Name
-                       print '<tr><td><span 
class="fieldrequired">'.$langs->trans('Name').'</span></td><td 
colspan="3"><input type="text" size="40" maxlength="60" name="nom" 
value="'.$soc->nom.'"></td></tr>';
-
+                       print '<tr><td><span 
class="fieldrequired">'.$langs->trans('Name').'</span></td><td 
colspan="1"><input type="text" size="40" maxlength="60" name="nom" 
value="'.$soc->nom.'"></td>';
+                       print '<td>'.'Statut du tiers'.'</td><td>';     
+                       print $form->selectarray('activity_state', 
array('0'=>$langs->trans('ActivityCeased'),'1'=>$langs->trans('InActivity')),$soc->activity_state);
                  
+                       print '</td></tr>';
                        // Prefix
             if (! empty($conf->global->SOCIETE_USEPREFIX))  // Old not used 
prefix field
             {
@@ -1327,8 +1333,11 @@
 
                // Name
                print '<tr><td width="20%">'.$langs->trans('Name').'</td>';
-               print '<td colspan="3">';
+               print '<td colspan="1">';
                print 
$form->showrefnav($soc,'socid','',($user->societe_id?0:1),'rowid','nom');
+               print '</td><td>'.'Statut du tiers</td>';                       
                                                                        // 
Gérer les translate,
+               $activity_status = $soc->activity_state == 1 ? 
$langs->trans('InActivity') : $langs->trans('ActivityCeased');   // nouvelle 
entrée statut activité
+               print '<td>'.$activity_status;                                  
                                                                                
//
                print '</td></tr>';
 
         if (! empty($conf->global->SOCIETE_USEPREFIX))  // Old not used prefix 
field
Index: htdocs/societe/societe.php
===================================================================
RCS file: /sources/dolibarr/dolibarr/htdocs/societe/societe.php,v
retrieving revision 1.9
diff -u -r1.9 societe.php
--- htdocs/societe/societe.php  23 Feb 2011 14:19:56 -0000      1.9
+++ htdocs/societe/societe.php  29 Apr 2011 14:02:34 -0000
@@ -47,11 +47,15 @@
 $search_idprof2=trim($_REQUEST['search_idprof2']);
 $search_idprof3=trim($_REQUEST['search_idprof3']);
 $search_idprof4=trim($_REQUEST['search_idprof4']);
+$filter_activityState=$_REQUEST['activity_state'] == null ? 1 : 
$_REQUEST['activity_state'];
 
 // Load sale and categ filters
 $search_sale = GETPOST("search_sale");
 $search_categ = GETPOST("search_categ");
 
+// Load activityState filter
+$filter_activityStateConf = $conf->global->COMPANY_SEARCH_FILTER;
+
 $sortfield = isset($_GET["sortfield"])?$_GET["sortfield"]:$_POST["sortfield"];
 $sortorder = isset($_GET["sortorder"])?$_GET["sortorder"]:$_POST["sortorder"];
 $page=isset($_GET["page"])?$_GET["page"]:$_POST["page"];
@@ -105,7 +109,11 @@
     {
         $sql .= " AND cs.fk_categorie = ".$search_categ;
     }
-
+    // Insert activity_state filter
+    if($filter_activityStateConf)
+    {
+       $sql .= $filter_activityState != '2' ?" AND activity_state = 
".$filter_activityState : "";
+    }
        $result=$db->query($sql);
        if ($result)
        {
@@ -213,6 +221,11 @@
 {
     $sql .= " AND cs.fk_categorie = ".$search_categ;
 }
+// Insert activity_state filter
+if($filter_activityStateConf)
+{
+       $sql .= $filter_activityState != '2' ?" AND activity_state = 
".$filter_activityState : "";
+}
 if ($search_nom_only)
 {
        $sql.= " AND s.nom LIKE '%".$db->escape($search_nom_only)."%'";
@@ -333,7 +346,8 @@
        
print_liste_field_titre($form->textwithpicto($langs->trans("ProfId2Short"),$textprofid[2],1,0),$_SERVER["PHP_SELF"],"s.siret","",$params,'nowrap="nowrap"',$sortfield,$sortorder);
        
print_liste_field_titre($form->textwithpicto($langs->trans("ProfId3Short"),$textprofid[3],1,0),$_SERVER["PHP_SELF"],"s.ape","",$params,'nowrap="nowrap"',$sortfield,$sortorder);
        
print_liste_field_titre($form->textwithpicto($langs->trans("ProfId4Short"),$textprofid[4],1,0),$_SERVER["PHP_SELF"],"s.idprof4","",$params,'nowrap="nowrap"',$sortfield,$sortorder);
-       print '<td class="liste_titre" colspan="2" align="center">&nbsp;</td>';
+       if($filter_activityStateConf)print('<td class="liste_titre" 
colspan="3">'.$langs->trans("ActivityStateFilter").'</td>');
+       else print '<td class="liste_titre" colspan="2" 
align="center">&nbsp;</td>';
        print "</tr>\n";
 
        // Lignes des champs de filtre
@@ -362,6 +376,15 @@
        print '<td class="liste_titre">';
        print '<input class="flat" size="8" type="text" name="search_idprof4" 
value="'.$search_idprof4.'">';
        print '</td>';
+       // ActivityState (if enabled in cnfiguration)
+       if($filter_activityStateConf)
+       {
+       print  '<td>';
+       print $form->selectarray('activity_state', 
array('0'=>$langs->trans('ActivityCeased'),
+                                                                               
                          '1'=>$langs->trans('InActivity'),
+                                                                               
                          '2'=>$langs->trans('All')), $filter_activityState);   
+       print '</td><td></td>';
+       }
        // Type (customer/prospect/supplier)
        print '<td class="liste_titre" align="right">';
        print '<input type="image" class="liste_titre" name="button_search" 
src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/search.png" 
value="'.dol_escape_htmltag($langs->trans("Search")).'" 
title="'.dol_escape_htmltag($langs->trans("Search")).'">';
@@ -388,7 +411,8 @@
                print "<td>".$obj->idprof2."</td>\n";
                print "<td>".$obj->idprof3."</td>\n";
                print "<td>".$obj->idprof4."</td>\n";
-               print '<td align="center">';
+               if($filter_activityStateConf)print "<td></td>";
+               print '<td colspan="2" align="center">';
                $s='';
                if (($obj->client==1 || $obj->client==3) && 
empty($conf->global->SOCIETE_DISABLE_CUSTOMERS))
                {
_______________________________________________
Dolibarr-dev mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/dolibarr-dev

Répondre à