diff --git a/ChangeLog b/ChangeLog
index 3f08224816d..67017af52b8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,7 @@ $Id$
***** ChangeLog for 3.1 compared to 3.0 *****
For users:
+- New: Add status for third parties.
- New: Can send interventions cards by email.
- New: Add option MAIN_FIRST_TO_UPPER to force upper case of first
letters for names and firstname.
diff --git a/htdocs/install/mysql/migration/3.0.0-3.1.0.sql b/htdocs/install/mysql/migration/3.0.0-3.1.0.sql
index 33725d3b0e2..5b888d9c8ef 100755
--- a/htdocs/install/mysql/migration/3.0.0-3.1.0.sql
+++ b/htdocs/install/mysql/migration/3.0.0-3.1.0.sql
@@ -46,6 +46,8 @@ ALTER TABLE llx_facturedet ADD UNIQUE INDEX uk_fk_remise_except (fk_remise_excep
ALTER TABLE llx_societe ADD COLUMN fk_currency integer DEFAULT 0 AFTER fk_forme_juridique;
+ALTER TABLE llx_societe ADD COLUMN status 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;
diff --git a/htdocs/install/mysql/tables/llx_societe.sql b/htdocs/install/mysql/tables/llx_societe.sql
index f191049c310..ae218e964b7 100644
--- a/htdocs/install/mysql/tables/llx_societe.sql
+++ b/htdocs/install/mysql/tables/llx_societe.sql
@@ -30,10 +30,12 @@ create table llx_societe
datec datetime, -- creation date
datea datetime, -- activation date
+ status 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
diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang
index 7505d97ca53..20b9d691ccd 100644
--- a/htdocs/langs/en_US/admin.lang
+++ b/htdocs/langs/en_US/admin.lang
@@ -46,6 +46,8 @@ DictionnarySetup=Dictionary setup
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).
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
diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang
index c16f59a3dd3..e5e8019063f 100644
--- a/htdocs/langs/en_US/companies.lang
+++ b/htdocs/langs/en_US/companies.lang
@@ -307,6 +307,9 @@ ListCustomersShort=List of customers
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.
diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang
index b42d17c2ec4..a97ed3ae8c7 100644
--- a/htdocs/langs/fr_FR/admin.lang
+++ b/htdocs/langs/fr_FR/admin.lang
@@ -47,6 +47,8 @@ Dictionnary= Dictionnaires
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).
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é
diff --git a/htdocs/langs/fr_FR/companies.lang b/htdocs/langs/fr_FR/companies.lang
index e4df5e3f92b..8361ecf428a 100644
--- a/htdocs/langs/fr_FR/companies.lang
+++ b/htdocs/langs/fr_FR/companies.lang
@@ -314,6 +314,9 @@ ListCustomersShort=Liste clients
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.
diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php
index 4c97a0d509f..aaaf6c880b2 100644
--- a/htdocs/societe/class/societe.class.php
+++ b/htdocs/societe/class/societe.class.php
@@ -54,6 +54,7 @@ class Societe extends CommonObject
var $adresse; // TODO obsolete
var $cp;
var $ville;
+ var $status; // 0=activity ceased, 1= in activity
var $departement_id;
var $departement_code;
@@ -155,6 +156,7 @@ class Societe extends CommonObject
$this->prefixCustomerIsRequired = 0;
$this->prefixSupplierIsRequired = 0;
$this->tva_assuj = 1;
+ $this->status = 1;
return 1;
}
@@ -199,10 +201,11 @@ class Societe extends CommonObject
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, status)";
$sql.= " VALUES ('".$this->db->escape($this->name)."', ".$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->status;
$sql.= ")";
dol_syslog("Societe::create sql=".$sql);
@@ -396,6 +399,7 @@ class Societe extends CommonObject
$this->tva_assuj=trim($this->tva_assuj);
$this->tva_intra=dol_sanitizeFileName($this->tva_intra,'');
+ if (empty($this->status)) $this->status = 0;
// Local taxes
$this->localtax1_assuj=trim($this->localtax1_assuj);
@@ -456,6 +460,7 @@ class Societe extends CommonObject
$sql .= ",tva_assuj = ".($this->tva_assuj!=''?"'".$this->tva_assuj."'":"null");
$sql .= ",tva_intra = '" . $this->db->escape($this->tva_intra) ."'";
+ $sql .= ",status = " .$this->status;
// Local taxes
$sql .= ",localtax1_assuj = ".($this->localtax1_assuj!=''?"'".$this->localtax1_assuj."'":"null");
@@ -576,6 +581,7 @@ class Societe extends CommonObject
$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.status';
$sql .= ', fj.libelle as forme_juridique';
$sql .= ', e.libelle as effectif';
$sql .= ', p.code as pays_code, p.libelle as pays';
@@ -674,6 +680,7 @@ class Societe extends CommonObject
$this->tva_assuj = $obj->tva_assuj;
$this->tva_intra = $obj->tva_intra;
+ $this->status = $obj->status;
// Local Taxes
$this->localtax1_assuj = $obj->localtax1_assuj;
diff --git a/htdocs/societe/soc.php b/htdocs/societe/soc.php
index 9b7a2f0f1cc..8f940d41cad 100644
--- a/htdocs/societe/soc.php
+++ b/htdocs/societe/soc.php
@@ -162,14 +162,14 @@ else
$soc->capital = $_POST["capital"];
$soc->gencod = $_POST["gencod"];
+ $soc->tva_intra = $_POST["tva_intra"];
$soc->tva_assuj = $_POST["assujtva_value"];
+ $soc->status = $_POST["status"];
// Local Taxes
$soc->localtax1_assuj = $_POST["localtax1assuj_value"];
$soc->localtax2_assuj = $_POST["localtax2assuj_value"];
- $soc->tva_intra = $_POST["tva_intra"];
-
$soc->forme_juridique_code = $_POST["forme_juridique_code"];
$soc->effectif_id = $_POST["effectif_id"];
if ($_REQUEST["private"] == 1)
@@ -509,6 +509,7 @@ else
$soc->effectif_id=$_POST["effectif_id"];
$soc->tva_assuj = $_POST["assujtva_value"];
+ $soc->status= $_POST["status"];
//Local Taxes
$soc->localtax1_assuj = $_POST["localtax1assuj_value"];
@@ -684,7 +685,12 @@ else
}
}
- // Barcode
+ // Status
+ print '