| '.$langs->trans("NotePublic").' | ';
print '';
diff --git a/htdocs/livraison/class/livraison.class.php b/htdocs/livraison/class/livraison.class.php
index e12781d5228..f1e9e3d6ca6 100644
--- a/htdocs/livraison/class/livraison.class.php
+++ b/htdocs/livraison/class/livraison.class.php
@@ -60,6 +60,10 @@ class Livraison extends CommonObject
var $date_valid;
var $model_pdf;
+ //Incorterms
+ var $fk_incoterms;
+ var $location_incoterms;
+ var $libelle_incoterms; //Used into tooltip
/**
* Constructor
@@ -115,6 +119,7 @@ class Livraison extends CommonObject
$sql.= ", note_private";
$sql.= ", note_public";
$sql.= ", model_pdf";
+ $sql.= ", fk_incoterms, location_incoterms";
$sql.= ") VALUES (";
$sql.= "'(PROV)'";
$sql.= ", ".$conf->entity;
@@ -127,6 +132,8 @@ class Livraison extends CommonObject
$sql.= ", ".(!empty($this->note_private)?"'".$this->db->escape($this->note_private)."'":"null");
$sql.= ", ".(!empty($this->note_public)?"'".$this->db->escape($this->note_public)."'":"null");
$sql.= ", ".(!empty($this->model_pdf)?"'".$this->db->escape($this->model_pdf)."'":"null");
+ $sql.= ", ".(int) $this->fk_incoterms;
+ $sql.= ", '".$this->db->escape($this->location_incoterms)."'";
$sql.= ")";
dol_syslog("Livraison::create", LOG_DEBUG);
@@ -265,8 +272,11 @@ class Livraison extends CommonObject
$sql.=" l.total_ht, l.fk_statut, l.fk_user_valid, l.note_private, l.note_public";
$sql.= ", l.date_delivery, l.fk_address, l.model_pdf";
$sql.= ", el.fk_source as origin_id, el.sourcetype as origin";
+ $sql.= ', l.fk_incoterms, l.location_incoterms';
+ $sql.= ", i.libelle as libelle_incoterms";
$sql.= " FROM ".MAIN_DB_PREFIX."livraison as l";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_element as el ON el.fk_target = l.rowid AND el.targettype = '".$this->element."'";
+ $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_incoterms as i ON l.fk_incoterms = i.rowid';
$sql.= " WHERE l.rowid = ".$id;
dol_syslog(get_class($this)."::fetch", LOG_DEBUG);
@@ -295,6 +305,10 @@ class Livraison extends CommonObject
$this->origin = $obj->origin; // May be 'shipping'
$this->origin_id = $obj->origin_id; // May be id of shipping
+ //Incoterms
+ $this->fk_incoterms = $obj->fk_incoterms;
+ $this->location_incoterms = $obj->location_incoterms;
+ $this->libelle_incoterms = $obj->libelle_incoterms;
$this->db->free($result);
if ($this->statut == 0) $this->brouillon = 1;
@@ -514,6 +528,10 @@ class Livraison extends CommonObject
$this->fk_delivery_address = $expedition->fk_delivery_address;
$this->socid = $expedition->socid;
$this->ref_customer = $expedition->ref_customer;
+
+ //Incoterms
+ $this->fk_incoterms = $expedition->fk_incoterms;
+ $this->location_incoterms = $expedition->location_incoterms;
return $this->create($user);
}
diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php
index e9d536d4a89..5be67523a41 100644
--- a/htdocs/societe/class/societe.class.php
+++ b/htdocs/societe/class/societe.class.php
@@ -352,6 +352,11 @@ class Societe extends CommonObject
var $array_options;
+ // Incoterms
+ var $fk_incoterms;
+ var $location_incoterms;
+ var $libelle_incoterms; //Used into tooltip
+
/**
* To contains a clone of this when we need to save old properties of object
*/
@@ -424,7 +429,7 @@ class Societe extends CommonObject
if ($result >= 0)
{
- $sql = "INSERT INTO ".MAIN_DB_PREFIX."societe (nom, entity, datec, fk_user_creat, canvas, status, ref_int, ref_ext, fk_stcomm, import_key)";
+ $sql = "INSERT INTO ".MAIN_DB_PREFIX."societe (nom, entity, datec, fk_user_creat, canvas, status, ref_int, ref_ext, fk_stcomm, fk_incoterms, location_incoterms ,import_key)";
$sql.= " VALUES ('".$this->db->escape($this->name)."', ".$conf->entity.", '".$this->db->idate($now)."'";
$sql.= ", ".(! empty($user->id) ? "'".$user->id."'":"null");
$sql.= ", ".(! empty($this->canvas) ? "'".$this->canvas."'":"null");
@@ -432,6 +437,8 @@ class Societe extends CommonObject
$sql.= ", ".(! empty($this->ref_int) ? "'".$this->ref_int."'":"null");
$sql.= ", ".(! empty($this->ref_ext) ? "'".$this->ref_ext."'":"null");
$sql.= ", 0";
+ $sql.= ", ".(int) $this->fk_incoterms;
+ $sql.= ", '".$this->db->escape($this->location_incoterms)."'";
$sql.= ", ".(! empty($this->import_key) ? "'".$this->import_key."'":"null").")";
dol_syslog(get_class($this)."::create", LOG_DEBUG);
@@ -731,6 +738,10 @@ class Societe extends CommonObject
$this->webservices_url = $this->webservices_url?clean_url($this->webservices_url,0):'';
$this->webservices_key = trim($this->webservices_key);
+ //Incoterms
+ $this->fk_incoterms = (int) $this->fk_incoterms;
+ $this->location_incoterms = trim($this->location_incoterms);
+
$this->db->begin();
// Check name is required and codes are ok or unique.
@@ -814,6 +825,10 @@ class Societe extends CommonObject
$sql .= ",webservices_url = ".(! empty($this->webservices_url)?"'".$this->db->escape($this->webservices_url)."'":"null");
$sql .= ",webservices_key = ".(! empty($this->webservices_key)?"'".$this->db->escape($this->webservices_key)."'":"null");
+ //Incoterms
+ $sql.= ", fk_incoterms = ".$this->fk_incoterms;
+ $sql.= ", location_incoterms = ".(! empty($this->location_incoterms)?"'".$this->db->escape($this->location_incoterms)."'":"null");
+
if ($customer)
{
$sql .= ", code_client = ".(! empty($this->code_client)?"'".$this->db->escape($this->code_client)."'":"null");
@@ -976,13 +991,14 @@ class Societe extends CommonObject
$sql .= ', s.code_client, s.code_fournisseur, s.code_compta, s.code_compta_fournisseur, s.parent, s.barcode';
$sql .= ', s.fk_departement, s.fk_pays as country_id, s.fk_stcomm, s.remise_client, s.mode_reglement, s.cond_reglement, s.tva_assuj';
$sql .= ', s.mode_reglement_supplier, s.cond_reglement_supplier, s.localtax1_assuj, s.localtax1_value, s.localtax2_assuj, s.localtax2_value, s.fk_prospectlevel, s.default_lang, s.logo';
- $sql .= ', s.outstanding_limit, s.import_key, s.canvas';
+ $sql .= ', s.outstanding_limit, s.import_key, s.canvas, s.fk_incoterms, s.location_incoterms';
$sql .= ', fj.libelle as forme_juridique';
$sql .= ', e.libelle as effectif';
$sql .= ', c.code as country_code, c.label as country';
$sql .= ', d.code_departement as state_code, d.nom as state';
$sql .= ', st.libelle as stcomm';
$sql .= ', te.code as typent_code';
+ $sql .= ', i.libelle as libelle_incoterms';
$sql .= ' FROM '.MAIN_DB_PREFIX.'societe as s';
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_effectif as e ON s.fk_effectif = e.id';
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_country as c ON s.fk_pays = c.rowid';
@@ -990,6 +1006,7 @@ class Societe extends CommonObject
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_forme_juridique as fj ON s.fk_forme_juridique = fj.code';
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_departements as d ON s.fk_departement = d.rowid';
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_typent as te ON s.fk_typent = te.id';
+ $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_incoterms as i ON s.fk_incoterms = i.rowid';
if ($rowid) $sql .= ' WHERE s.rowid = '.$rowid;
if ($ref) $sql .= " WHERE s.nom = '".$this->db->escape($ref)."' AND s.entity IN (".getEntity($this->element, 1).")";
if ($ref_ext) $sql .= " WHERE s.ref_ext = '".$this->db->escape($ref_ext)."' AND s.entity IN (".getEntity($this->element, 1).")";
@@ -1118,6 +1135,11 @@ class Societe extends CommonObject
$this->import_key = $obj->import_key;
+ //Incoterms
+ $this->fk_incoterms = $obj->fk_incoterms;
+ $this->location_incoterms = $obj->location_incoterms;
+ $this->libelle_incoterms = $obj->libelle_incoterms;
+
$result = 1;
// Retreive all extrafield for thirdparty
@@ -2067,6 +2089,7 @@ class Societe extends CommonObject
$bac->fetch(0,$this->id);
return $bac->getRibLabel(true);
}
+
/**
* Return Array of RIB
diff --git a/htdocs/societe/soc.php b/htdocs/societe/soc.php
index 72dfc8931b8..0f17851b89e 100644
--- a/htdocs/societe/soc.php
+++ b/htdocs/societe/soc.php
@@ -45,6 +45,7 @@ $langs->load("commercial");
$langs->load("bills");
$langs->load("banks");
$langs->load("users");
+if (!empty($conf->incoterm->enabled)) $langs->load("incoterm");
if (! empty($conf->notification->enabled)) $langs->load("mails");
$mesg=''; $error=0; $errors=array();
@@ -191,6 +192,12 @@ if (empty($reshook))
$object->webservices_url = GETPOST('webservices_url', 'custom', 0, FILTER_SANITIZE_URL);
$object->webservices_key = GETPOST('webservices_key', 'san_alpha');
+ // Incoterms
+ if (!empty($conf->incoterm->enabled))
+ {
+ $object->fk_incoterms = GETPOST('incoterm_id', 'int');
+ $object->location_incoterms = GETPOST('location_incoterms', 'alpha');
+ }
// Fill array 'array_options' with data from add form
$ret = $extrafields->setOptionalsFromPost($extralabels,$object);
if ($ret < 0) $error++;
@@ -518,6 +525,12 @@ if (empty($reshook))
$result = $object->set_parent(GETPOST('editparentcompany','int'));
}
+ // Set incoterm
+ if ($action == 'set_incoterms' && !empty($conf->incoterm->enabled))
+ {
+ $object->fetch($socid);
+ $result = $object->setIncoterms(GETPOST('incoterm_id', 'int'), GETPOST('location_incoterms', 'alpha'));
+ }
// Actions to send emails
$id=$socid;
@@ -1078,7 +1091,17 @@ else
$form->select_users((! empty($object->commercial_id)?$object->commercial_id:$user->id),'commercial_id',1); // Add current user by default
print ' |
';
}
-
+
+ // Incoterms
+ if (!empty($conf->incoterm->enabled))
+ {
+ print '