modified create partnership

This commit is contained in:
bagtaib 2022-08-22 00:35:34 +01:00
parent b74d2636fe
commit b342560e4d
2 changed files with 87 additions and 24 deletions

View File

@ -248,7 +248,70 @@ class Partnership extends CommonObject
}
$this->status = 0;
return $this->createCommon($user, $notrigger);
global $conf, $langs;
$error = 0;
$now = dol_now();
// Clean parameters
$this->import_key = trim($this->import_key);
if (!$this->date_creation) {
$this->date_creation = $now;
}
$this->db->begin();
// Insert partnership
$sql = "INSERT INTO ".MAIN_DB_PREFIX."partnership";
$sql .= " (ref, date_creation,fk_user_creat,fk_user_modif,fk_type,entity,import_key)";
$sql .= " VALUES (";
$sql .= " '(PROV)'";
$sql .= ", '".$this->db->idate($this->datec)."'";
$sql .= ", ".($user->id > 0 ? $user->id : "null"); // Can be null because partnership can be created by a guest or a script
$sql .= ", null ";
$sql .= ", ".((int) $this->fk_type);
$sql .= ", ".$conf->entity;
$sql .= ", ".(!empty($this->import_key) ? "'".$this->db->escape($this->import_key)."'" : "null");
$sql .= ")";
dol_syslog(get_class($this)."::create", LOG_DEBUG);
$result = $this->db->query($sql);
if ($result) {
$id = $this->db->last_insert_id(MAIN_DB_PREFIX."partnership");
if ($id > 0) {
$this->id = $id;
$this->ref = (string) $id;
// Update minor fields
$result = $this->update($user, 1, 1, 0, 0, 'add'); // nosync is 1 to avoid update data of user
if ($result < 0) {
$this->db->rollback();
return -1;
}
if (count($this->errors)) {
dol_syslog(get_class($this)."::create ".implode(',', $this->errors), LOG_ERR);
$this->db->rollback();
return -3;
} else {
$this->db->commit();
return $this->id;
}
} else {
$this->error = 'Failed to get last insert id';
dol_syslog(get_class($this)."::create ".$this->error, LOG_ERR);
$this->db->rollback();
return -2;
}
} else {
$this->error = $this->db->error();
$this->db->rollback();
return -1;
}
}
/**

View File

@ -236,6 +236,28 @@ if (empty($reshook) && $action == 'add') {
$error++;
}
$sql = "SELECT nom FROM ".MAIN_DB_PREFIX."societe WHERE nom='".$db->escape(GETPOST('societe'))."'";
$result = $db->query($sql);
if ($result) {
$num = $db->num_rows($result);
}
if ($num = 0) {
//create thirdparty
$company = new Societe($db);
$resultat=$company->create($user);
if ($result < 0) {
$error++;
$errmsg .= join('<br>', $company->errors);
}
$sql = "UPDATE ".MAIN_DB_PREFIX."societe";
$sql .= " SET name = ".(GETPOST('societe')).", email = ".(GETPOST('email'));
$sql .= ", address = ".(($GETPOSTISSET('address') ? GETPOST('address') : "null")).", zip = ".(($GETPOSTISSET('zipcode') ? GETPOST('zipcode') : "null"));
$sql .= ", town = ".(($GETPOSTISSET('town') ? GETPOST('town') : "null")).", fk_pays = ".(($GETPOSTISSET('country_id') ? GETPOST('country_id') : "null"));
$sql .= ", fk_departement = ".(($GETPOSTISSET('state_id') ? GETPOST('state_id') : "null")).", note_private = ".(($GETPOSTISSET('note_private') ? GETPOST('note_private') : "null"));
$sql .= " WHERE rowid = ".((int) $company->id);
$resql = $db->query($sql);
$partnership->fk_soc = $company->id;
}
$result = $partnership->create($user);
if ($result > 0) {
require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php';
@ -324,29 +346,7 @@ if (empty($reshook) && $action == 'add') {
}*/
// test if societe or email already exist
$sql = "SELECT nom FROM ".MAIN_DB_PREFIX."societe WHERE nom='".$db->escape(GETPOST('societe'))."'";
$result = $db->query($sql);
if ($result) {
$num = $db->num_rows($result);
}
if ($num = 0) {
//create thirdparty
$company = new Societe($db);
$resultat=$company->create($user);
if ($result < 0) {
$error++;
$errmsg .= join('<br>', $company->errors);
}
$sql = "UPDATE ".MAIN_DB_PREFIX."societe";
$sql .= " SET name = ".(GETPOST('societe')).", email = ".(GETPOST('email'));
$sql .= ", address = ".(($GETPOSTISSET('address') ? GETPOST('address') : "null")).", zip = ".(($GETPOSTISSET('zipcode') ? GETPOST('zipcode') : "null"));
$sql .= ", town = ".(($GETPOSTISSET('town') ? GETPOST('town') : "null")).", fk_pays = ".(($GETPOSTISSET('country_id') ? GETPOST('country_id') : "null"));
$sql .= ", fk_departement = ".(($GETPOSTISSET('state_id') ? GETPOST('state_id') : "null")).", note_private = ".(($GETPOSTISSET('note_private') ? GETPOST('note_private') : "null"));
$sql .= " WHERE rowid = ".((int) $company->id);
$resql = $db->query($sql);
$object->fk_soc = $company->id;
}
if (!empty($backtopage)) {