diff --git a/htdocs/commande/class/commande.class.php b/htdocs/commande/class/commande.class.php
index e69ee5dec0a..65ca615ad25 100644
--- a/htdocs/commande/class/commande.class.php
+++ b/htdocs/commande/class/commande.class.php
@@ -54,6 +54,7 @@ class Commande extends CommonObject
var $ref;
var $ref_client;
var $ref_ext;
+ var $ref_int;
var $contactid;
var $fk_project;
var $statut; // -1=Canceled, 0=Draft, 1=Validated, (2=Accepted/On process not managed for customer orders), 3=Closed (Sent/Received, billed or not)
diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php
index f239b7a4b60..069f8ea54c7 100644
--- a/htdocs/compta/facture.php
+++ b/htdocs/compta/facture.php
@@ -540,7 +540,7 @@ if ($action == 'add' && $user->rights->facture->creer)
$object->note_public = trim($_POST['note_public']);
$object->note = trim($_POST['note']);
$object->ref_client = $_POST['ref_client'];
- $object->ref_ext = $_POST['ref_ext'];
+ $object->ref_int = $_POST['ref_int'];
$object->modelpdf = $_POST['model'];
$object->fk_project = $_POST['projectid'];
$object->cond_reglement_id = $_POST['cond_reglement_id'];
@@ -586,7 +586,7 @@ if ($action == 'add' && $user->rights->facture->creer)
$object->note_public = trim($_POST['note_public']);
$object->note = trim($_POST['note']);
$object->ref_client = $_POST['ref_client'];
- $object->ref_ext = $_POST['ref_ext'];
+ $object->ref_int = $_POST['ref_int'];
$object->modelpdf = $_POST['model'];
$object->fk_project = $_POST['projectid'];
$object->cond_reglement_id = 0;
@@ -634,7 +634,7 @@ if ($action == 'add' && $user->rights->facture->creer)
$object->note_public = trim($_POST['note_public']);
$object->note = trim($_POST['note']);
$object->ref_client = $_POST['ref_client'];
- $object->ref_ext = $_POST['ref_ext'];
+ $object->ref_int = $_POST['ref_int'];
$object->modelpdf = $_POST['model'];
// Source facture
@@ -664,7 +664,7 @@ if ($action == 'add' && $user->rights->facture->creer)
$object->note_public = trim($_POST['note_public']);
$object->note = trim($_POST['note']);
$object->ref_client = $_POST['ref_client'];
- $object->ref_ext = $_POST['ref_ext'];
+ $object->ref_int = $_POST['ref_int'];
$object->modelpdf = $_POST['model'];
$object->fk_project = $_POST['projectid'];
$object->cond_reglement_id = ($_POST['type'] == 3?1:$_POST['cond_reglement_id']);
@@ -1442,7 +1442,7 @@ if ($action == 'create')
$projectid = (!empty($objectsrc->fk_project)?$object->fk_project:'');
$ref_client = (!empty($objectsrc->ref_client)?$object->ref_client:'');
- $ref_ext = (!empty($objectsrc->ref_ext)?$object->ref_ext:'');
+ $ref_int = (!empty($objectsrc->ref_int)?$object->ref_int:'');
$soc = $objectsrc->client;
$cond_reglement_id = (!empty($objectsrc->cond_reglement_id)?$objectsrc->cond_reglement_id:(!empty($soc->cond_reglement_id)?$soc->cond_reglement_id:1));
@@ -1475,7 +1475,7 @@ if ($action == 'create')
print '' ."\n";
print '';
print '';
- print '';
+ print '';
print '';
print '';
diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php
index 4c2c26a2603..8160540bafc 100644
--- a/htdocs/compta/facture/class/facture.class.php
+++ b/htdocs/compta/facture/class/facture.class.php
@@ -67,6 +67,7 @@ class Facture extends CommonObject
var $ref;
var $ref_client;
var $ref_ext;
+ var $ref_int;
//! 0=Standard invoice, 1=Replacement invoice, 2=Credit note invoice, 3=Deposit invoice, 4=Proforma invoice
var $type;
var $amount;
@@ -221,7 +222,7 @@ class Facture extends CommonObject
$sql.= ", datef";
$sql.= ", note";
$sql.= ", note_public";
- $sql.= ", ref_client, ref_ext";
+ $sql.= ", ref_client, ref_int";
$sql.= ", fk_facture_source, fk_user_author, fk_projet";
$sql.= ", fk_cond_reglement, fk_mode_reglement, date_lim_reglement, model_pdf";
$sql.= ")";
@@ -238,7 +239,7 @@ class Facture extends CommonObject
$sql.= ",".($this->note?"'".$this->db->escape($this->note)."'":"null");
$sql.= ",".($this->note_public?"'".$this->db->escape($this->note_public)."'":"null");
$sql.= ",".($this->ref_client?"'".$this->db->escape($this->ref_client)."'":"null");
- $sql.= ",".($this->ref_ext?"'".$this->db->escape($this->ref_ext)."'":"null");
+ $sql.= ",".($this->ref_int?"'".$this->db->escape($this->ref_int)."'":"null");
$sql.= ",".($this->fk_facture_source?"'".$this->db->escape($this->fk_facture_source)."'":"null");
$sql.= ",".($user->id > 0 ? "'".$user->id."'":"null");
$sql.= ",".($this->fk_project?$this->fk_project:"null");
@@ -646,13 +647,13 @@ class Facture extends CommonObject
* @param ref External reference of invoice
* @return int >0 if OK, <0 if KO
*/
- function fetch($rowid, $ref='', $ref_ext='')
+ function fetch($rowid, $ref='', $ref_ext='', $ref_int='')
{
global $conf;
- if (empty($rowid) && empty($ref) && empty($ref_ext)) return -1;
+ if (empty($rowid) && empty($ref) && empty($ref_ext) && empty($ref_int)) return -1;
- $sql = 'SELECT f.rowid,f.facnumber,f.ref_client,f.type,f.fk_soc,f.amount,f.tva, f.localtax1, f.localtax2, f.total,f.total_ttc,f.remise_percent,f.remise_absolue,f.remise';
+ $sql = 'SELECT f.rowid,f.facnumber,f.ref_client,f.ref_ext,f.ref_int,f.type,f.fk_soc,f.amount,f.tva, f.localtax1, f.localtax2, f.total,f.total_ttc,f.remise_percent,f.remise_absolue,f.remise';
$sql.= ', f.datef as df';
$sql.= ', f.date_lim_reglement as dlr';
$sql.= ', f.datec as datec';
@@ -672,6 +673,7 @@ class Facture extends CommonObject
if ($rowid) $sql.= " AND f.rowid=".$rowid;
if ($ref) $sql.= " AND f.facnumber='".$this->db->escape($ref)."'";
if ($ref_ext) $sql.= " AND f.ref_ext='".$this->db->escape($ref_ext)."'";
+ if ($ref_int) $sql.= " AND f.ref_int='".$this->db->escape($ref_int)."'";
dol_syslog("Facture::Fetch sql=".$sql, LOG_DEBUG);
$result = $this->db->query($sql);
@@ -685,6 +687,7 @@ class Facture extends CommonObject
$this->ref = $obj->facnumber;
$this->ref_client = $obj->ref_client;
$this->ref_ext = $obj->ref_ext;
+ $this->ref_int = $obj->ref_int;
$this->type = $obj->type;
$this->date = $this->db->jdate($obj->df);
$this->date_creation = $this->db->jdate($obj->datec);
diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php
index a32400b66cd..31b419215e1 100644
--- a/htdocs/core/class/commonobject.class.php
+++ b/htdocs/core/class/commonobject.class.php
@@ -548,44 +548,20 @@ class CommonObject
}
/**
- * Load object from import key
+ * Load object from specific field
* @param table Table element or element line
+ * @param field Field selected
* @param key Import key
* @return int <0 if KO, >0 if OK
*/
- function fetchObjectFromImportKey($table,$key)
+ function fetchObjectFrom($table,$field,$key)
{
global $conf;
$result=false;
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX.$table;
- $sql.= " WHERE import_key = '".$key."'";
- $sql.= " AND entity = ".$conf->entity;
- $resql = $this->db->query($sql);
- if ($resql)
- {
- $row = $this->db->fetch_row($resql);
- $result = $this->fetch($row[0]);
- }
-
- return $result;
- }
-
- /**
- * Load object from external reference
- * @param table Table element or element line
- * @param ref External reference
- * @return int <0 if KO, >0 if OK
- */
- function fetchObjectFromRefExt($table,$ref)
- {
- global $conf;
-
- $result=false;
-
- $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX.$table;
- $sql.= " WHERE ref_ext = '".$ref."'";
+ $sql.= " WHERE ".$field." = '".$key."'";
$sql.= " AND entity = ".$conf->entity;
$resql = $this->db->query($sql);
if ($resql)
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 c0f5aacf704..e228cf2296e 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
@@ -114,6 +114,10 @@ ALTER TABLE llx_usergroup_user ADD UNIQUE INDEX uk_usergroup_entity (entity,fk_u
ALTER TABLE llx_usergroup_user ADD CONSTRAINT fk_usergroup_user_fk_user FOREIGN KEY (fk_user) REFERENCES llx_user (rowid);
ALTER TABLE llx_usergroup_user ADD CONSTRAINT fk_usergroup_user_fk_usergroup FOREIGN KEY (fk_usergroup) REFERENCES llx_usergroup (rowid);
+ALTER TABLE llx_commande ADD COLUMN ref_int varchar(30) AFTER ref_ext;
+ALTER TABLE llx_facture ADD COLUMN ref_int varchar(30) AFTER ref_ext;
+ALTER TABLE llx_societe ADD COLUMN ref_int varchar(60) AFTER ref_ext;
+
--Add Chile data (id pays=67)
-- Regions Chile
INSERT INTO llx_c_regions (rowid, code_region, fk_pays, cheflieu, tncc, nom, active) VALUES (6701, 6701, 67, NULL, NULL, 'Tarapacá', 1);
diff --git a/htdocs/install/mysql/tables/llx_commande.sql b/htdocs/install/mysql/tables/llx_commande.sql
index 9e021d79abf..9e105cb7966 100644
--- a/htdocs/install/mysql/tables/llx_commande.sql
+++ b/htdocs/install/mysql/tables/llx_commande.sql
@@ -31,6 +31,7 @@ create table llx_commande
entity integer DEFAULT 1 NOT NULL, -- multi company id
ref_ext varchar(30), -- reference into an external system (not used by dolibarr)
+ ref_int varchar(30), -- reference into an internal system (used by dolibarr)
ref_client varchar(30), -- reference for customer
date_creation datetime, -- date de creation
diff --git a/htdocs/install/mysql/tables/llx_facture.sql b/htdocs/install/mysql/tables/llx_facture.sql
index 8c221cb4084..1f528841e31 100644
--- a/htdocs/install/mysql/tables/llx_facture.sql
+++ b/htdocs/install/mysql/tables/llx_facture.sql
@@ -30,6 +30,7 @@ create table llx_facture
entity integer DEFAULT 1 NOT NULL, -- multi company id
ref_ext varchar(30), -- reference into an external system (not used by dolibarr)
+ ref_int varchar(30), -- reference into an internal system (used by dolibarr)
ref_client varchar(30), -- reference for customer
type smallint DEFAULT 0 NOT NULL, -- type of invoice
diff --git a/htdocs/install/mysql/tables/llx_societe.sql b/htdocs/install/mysql/tables/llx_societe.sql
index cbe78a6708b..d9f8294e102 100644
--- a/htdocs/install/mysql/tables/llx_societe.sql
+++ b/htdocs/install/mysql/tables/llx_societe.sql
@@ -35,7 +35,8 @@ create table llx_societe
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)
+ ref_int varchar(60), -- reference into an internal system (used by dolibarr)
code_client varchar(15), -- code client
code_fournisseur varchar(15), -- code founisseur
diff --git a/htdocs/paypal/ajaxtransaction.php b/htdocs/paypal/ajaxtransaction.php
index fe5c20a21f9..49ee5c54b65 100644
--- a/htdocs/paypal/ajaxtransaction.php
+++ b/htdocs/paypal/ajaxtransaction.php
@@ -68,7 +68,7 @@ if (isset($_GET['action']) && ! empty($_GET['action']) && isset($_GET['transacti
$return_arr = array();
// Create customer if not exists
- $ret = $soc->fetchObjectFromRefExt($soc->table_element,$_SESSION[$_GET['transaction_id']]['PAYERID']);
+ $ret = $soc->fetchObjectFrom($soc->table_element,'ref_int',$_SESSION[$_GET['transaction_id']]['PAYERID']);
if ($ret < 0)
{
// Load object modCodeTiers
@@ -82,7 +82,7 @@ if (isset($_GET['action']) && ! empty($_GET['action']) && isset($_GET['transacti
$modCodeClient = new $module;
// Create customer and return rowid
- $soc->ref_ext = $_SESSION[$_GET['transaction_id']]['PAYERID'];
+ $soc->ref_int = $_SESSION[$_GET['transaction_id']]['PAYERID'];
$soc->name = empty($conf->global->MAIN_FIRSTNAME_NAME_POSITION)?trim($_SESSION[$_GET['transaction_id']]['FIRSTNAME'].' '.$_SESSION[$_GET['transaction_id']]['LASTNAME']):trim($_SESSION[$_GET['transaction_id']]['LASTNAME'].' '.$_SESSION[$_GET['transaction_id']]['FIRSTNAME']);
$soc->nom_particulier = $_SESSION[$_GET['transaction_id']]['LASTNAME'];
$soc->prenom = $_SESSION[$_GET['transaction_id']]['FIRSTNAME'];
@@ -159,7 +159,7 @@ if (isset($_GET['action']) && ! empty($_GET['action']) && isset($_GET['transacti
$object->fetch_thirdparty();
$object->date = dol_now();
- $object->ref_ext = $_SESSION[$_GET['transaction_id']]['TRANSACTIONID'];
+ $object->ref_int = $_SESSION[$_GET['transaction_id']]['TRANSACTIONID'];
$shipamount = ($_SESSION[$_GET['transaction_id']]['SHIPPINGAMT']?$_SESSION[$_GET['transaction_id']]['SHIPPINGAMT']:$_SESSION[$_GET['transaction_id']]['SHIPAMOUNT']);
$object_id = $object->create($user);
@@ -238,6 +238,18 @@ if (isset($_GET['action']) && ! empty($_GET['action']) && isset($_GET['transacti
$return_arr['error'].= $langs->trans('ErrorUndefinedProductForShippingCost').'
';
}
}
+
+ // Add contact customer
+ if ($contact->id > 0)
+ {
+ $result=$object->add_contact($contact->id,'CUSTOMER','external');
+ if ($result < 0)
+ {
+ $error++;
+ $langs->load("errors");
+ $return_arr['error'].= $langs->trans('ErrorToAddContactCustomer').'
';
+ }
+ }
}
else
{
@@ -279,7 +291,7 @@ if (isset($_GET['action']) && ! empty($_GET['action']) && isset($_GET['transacti
if (! empty($objects)) $return_arr['element_created'] = true;
$soc = new Societe($db);
- $ret = $soc->fetchObjectFromRefExt($soc->table_element, $_SESSION[$_GET['transaction_id']]['PAYERID']);
+ $ret = $soc->fetchObjectFrom($soc->table_element, 'ref_int', $_SESSION[$_GET['transaction_id']]['PAYERID']);
$var=true;
diff --git a/htdocs/paypal/lib/paypal.lib.php b/htdocs/paypal/lib/paypal.lib.php
index a1f1cac097e..4a69acc90ea 100755
--- a/htdocs/paypal/lib/paypal.lib.php
+++ b/htdocs/paypal/lib/paypal.lib.php
@@ -173,7 +173,7 @@ function getLinkedObjects($transactionID)
$classname = ucfirst($subelement);
$object = new $classname($db);
- $res = $object->fetchObjectFromRefExt($object->table_element, $transactionID);
+ $res = $object->fetchObjectFrom($object->table_element, 'ref_int', $transactionID);
if ($res > 0) $objectArray[$element] = $object;
}
diff --git a/htdocs/paypal/transaction.php b/htdocs/paypal/transaction.php
index 6fc865d9ee2..cef7f1878ec 100644
--- a/htdocs/paypal/transaction.php
+++ b/htdocs/paypal/transaction.php
@@ -174,7 +174,7 @@ if (empty($conf->global->PAYPAL_API_USER) || empty($conf->global->PAYPAL_API_PAS
} else {
$.jnotify("trans('PleaseBePatient'); ?>", 500);
$( "div #paypal-details" ).dialog( "close" );
- location.href=value;
+ //location.href=value;
}
});
});
diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php
index 259978ecf21..d23b7c936ec 100644
--- a/htdocs/societe/class/societe.class.php
+++ b/htdocs/societe/class/societe.class.php
@@ -129,7 +129,7 @@ class Societe extends CommonObject
var $canvas;
- var $ref_ext;
+ var $ref_int;
var $import_key;
var $logo;
@@ -202,12 +202,12 @@ class Societe extends CommonObject
if ($result >= 0)
{
- $sql = "INSERT INTO ".MAIN_DB_PREFIX."societe (nom, entity, datec, datea, fk_user_creat, canvas, status, ref_ext)";
+ $sql = "INSERT INTO ".MAIN_DB_PREFIX."societe (nom, entity, datec, datea, fk_user_creat, canvas, status, ref_int)";
$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.= ", ".($this->ref_ext ? "'".$this->ref_ext."'":"null");
+ $sql.= ", ".($this->ref_int ? "'".$this->ref_int."'":"null");
$sql.= ")";
dol_syslog("Societe::create sql=".$sql);
@@ -557,20 +557,21 @@ class Societe extends CommonObject
* @param rowid Id of third party to load
* @param ref Reference of third party, name (Warning, this can return several records)
* @param ref_ext External reference of third party (Warning, this information is a free field not provided by Dolibarr)
+ * @param ref_int Internal reference of third party
* @param idprof1 Prof id 1 of third party (Warning, this can return several records)
* @param idprof2 Prof id 2 of third party (Warning, this can return several records)
* @param idprof3 Prof id 3 of third party (Warning, this can return several records)
* @param idprof4 Prof id 4 of third party (Warning, this can return several records)
* @return int >0 if OK, <0 if KO or if two records found for same ref or idprof.
*/
- function fetch($rowid, $ref='', $ref_ext='', $idprof1='',$idprof2='',$idprof3='',$idprof4='')
+ function fetch($rowid, $ref='', $ref_ext='', $ref_int='', $idprof1='',$idprof2='',$idprof3='',$idprof4='')
{
global $langs;
global $conf;
- if (empty($rowid) && empty($ref) && empty($ref_ext)) return -1;
+ if (empty($rowid) && empty($ref) && empty($ref_ext) && empty($ref_int)) return -1;
- $sql = 'SELECT s.rowid, s.nom as name, s.entity, s.ref_ext, s.address, s.datec as datec, s.prefix_comm';
+ $sql = 'SELECT s.rowid, s.nom as name, s.entity, s.ref_ext, s.ref_int, s.address, s.datec as datec, s.prefix_comm';
$sql .= ', s.price_level';
$sql .= ', s.tms as date_update';
$sql .= ', s.tel, s.fax, s.email, s.url, s.cp as zip, s.ville as town, s.note, s.client, s.fournisseur';
@@ -600,6 +601,7 @@ class Societe extends CommonObject
if ($rowid) $sql .= ' WHERE s.rowid = '.$rowid;
if ($ref) $sql .= " WHERE s.nom = '".$this->db->escape($ref)."' AND s.entity = ".$conf->entity;
if ($ref_ext) $sql .= " WHERE s.ref_ext = '".$this->db->escape($ref_ext)."' AND s.entity = ".$conf->entity;
+ if ($ref_int) $sql .= " WHERE s.ref_int = '".$this->db->escape($ref_int)."' AND s.entity = ".$conf->entity;
if ($idprof1) $sql .= " WHERE s.siren = '".$this->db->escape($siren)."' AND s.entity = ".$conf->entity;
if ($idprof2) $sql .= " WHERE s.siret = '".$this->db->escape($siret)."' AND s.entity = ".$conf->entity;
if ($idprof3) $sql .= " WHERE s.ape = '".$this->db->escape($ape)."' AND s.entity = ".$conf->entity;
@@ -627,6 +629,7 @@ class Societe extends CommonObject
$this->name = $obj->name;
$this->nom = $obj->name; // TODO obsolete
$this->ref_ext = $obj->ref_ext;
+ $this->ref_int = $obj->ref_int;
$this->datec = $this->db->jdate($obj->datec);
$this->date_update = $this->db->jdate($obj->date_update);