Merge pull request #21574 from ymollard/create3rdpartyV14

FIX: Create a 3rd party from the self-subscription membership form
This commit is contained in:
Laurent Destailleur 2022-08-12 00:16:54 +02:00 committed by GitHub
commit 239008b67d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 31 additions and 28 deletions

View File

@ -582,36 +582,16 @@ if (empty($reshook)) {
$id = $object->id;
} else {
$db->rollback();
setEventMessages($object->error, $object->errors, 'errors');
if ($object->error) {
setEventMessages($object->error, $object->errors, 'errors');
} else {
setEventMessages($object->error, $object->errors, 'errors');
}
}
// Auto-create thirdparty on member creation
if (!empty($conf->global->ADHERENT_DEFAULT_CREATE_THIRDPARTY)) {
if ($result > 0) {
// User creation
// Create third party out of a member
$company = new Societe($db);
$companyalias = '';
$fullname = $object->getFullName($langs);
if ($object->morphy == 'mor') {
$companyname = $object->company;
if (!empty($fullname)) {
$companyalias = $fullname;
}
} else {
$companyname = $fullname;
if (!empty($object->company)) {
$companyalias = $object->company;
}
}
$result = $company->create_from_member($object, $companyname, $companyalias);
$result = $company->create_from_member($object);
if ($result < 0) {
$langs->load("errors");
setEventMessages($langs->trans($company->error), null, 'errors');

View File

@ -257,7 +257,7 @@ if (empty($reshook) && $action == 'add') {
$public = GETPOSTISSET('public') ? 1 : 0;
if (!$error) {
// email a peu pres correct et le login n'existe pas
// E-mail looks OK and login does not exist
$adh = new Adherent($db);
$adh->statut = -1;
$adh->public = $public;
@ -378,6 +378,16 @@ if (empty($reshook) && $action == 'add') {
}
}
// Auto-create thirdparty on member creation
if (!empty($conf->global->ADHERENT_DEFAULT_CREATE_THIRDPARTY)) {
$company = new Societe($db);
$result = $company->create_from_member($adh);
if ($result < 0) {
$error++;
$errmsg .= join('<br>', $company->errors);
}
}
if (!empty($backtopage)) {
$urlback = $backtopage;
} elseif (!empty($conf->global->MEMBER_URL_REDIRECT_SUBSCRIPTION)) {

View File

@ -4024,12 +4024,25 @@ class Societe extends CommonObject
global $conf, $user, $langs;
dol_syslog(get_class($this)."::create_from_member", LOG_DEBUG);
$fullname = $member->getFullName($langs);
$name = $socname ? $socname : $member->societe;
if (empty($name)) {
$name = $member->getFullName($langs);
if ($member->morphy == 'mor') {
if (empty($socname)) {
$socname = $member->company? $member->company : $member->societe;
}
if (!empty($fullname) && empty($socalias)) {
$socalias = $fullname;
}
} elseif (empty($socname) && $member->morphy == 'phy') {
if (empty($socname)) {
$socname = $fullname;
}
if (!empty($member->company) && empty($socalias)) {
$socalias = $member->company;
}
}
$name = $socname;
$alias = $socalias ? $socalias : '';
// Positionne parametres