Debug event organization module
This commit is contained in:
parent
424ddcb218
commit
bfe305dc47
@ -55,6 +55,7 @@ $optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always ''
|
|||||||
|
|
||||||
$id = GETPOST('id', 'int');
|
$id = GETPOST('id', 'int');
|
||||||
$projectid = GETPOST('projectid', 'int');
|
$projectid = GETPOST('projectid', 'int');
|
||||||
|
$projectref = GETPOST('ref');
|
||||||
|
|
||||||
// Load variable for pagination
|
// Load variable for pagination
|
||||||
$limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit;
|
$limit = GETPOST('limit', 'int') ? GETPOST('limit', 'int') : $conf->liste_limit;
|
||||||
@ -152,12 +153,12 @@ if (!$permissiontoread) accessforbidden();
|
|||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (preg_match('/^set/', $action) && $projectid > 0 && !empty($user->rights->eventorganization->write)) {
|
if (preg_match('/^set/', $action) && ($projectid > 0 || $projectref) && !empty($user->rights->eventorganization->write)) {
|
||||||
$project = new Project($db);
|
$project = new Project($db);
|
||||||
//If "set" fields keys is in projects fields
|
//If "set" fields keys is in projects fields
|
||||||
$project_attr=preg_replace('/^set/', '', $action);
|
$project_attr=preg_replace('/^set/', '', $action);
|
||||||
if (array_key_exists($project_attr, $project->fields)) {
|
if (array_key_exists($project_attr, $project->fields)) {
|
||||||
$result = $project->fetch($projectid);
|
$result = $project->fetch($projectid, $projectref);
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
setEventMessages(null, $project->errors, 'errors');
|
setEventMessages(null, $project->errors, 'errors');
|
||||||
} else {
|
} else {
|
||||||
@ -234,11 +235,13 @@ $now = dol_now();
|
|||||||
$help_url = '';
|
$help_url = '';
|
||||||
$title = $langs->trans('ListOfConferencesOrBooths');
|
$title = $langs->trans('ListOfConferencesOrBooths');
|
||||||
|
|
||||||
if ($projectid > 0) {
|
if ($projectid > 0 || $projectref) {
|
||||||
$project = new Project($db);
|
$project = new Project($db);
|
||||||
$result = $project->fetch($projectid);
|
$result = $project->fetch($projectid, $projectref);
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
setEventMessages(null, $project->errors, 'errors');
|
setEventMessages(null, $project->errors, 'errors');
|
||||||
|
} else {
|
||||||
|
$projectid = $project->id;
|
||||||
}
|
}
|
||||||
$result = $project->fetch_thirdparty();
|
$result = $project->fetch_thirdparty();
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
@ -430,8 +433,8 @@ if ($projectid > 0) {
|
|||||||
print $form->textwithpicto($langs->trans("SuggestOrVoteForConfOrBooth"), $langs->trans("EvntOrgRegistrationHelpMessage"));
|
print $form->textwithpicto($langs->trans("SuggestOrVoteForConfOrBooth"), $langs->trans("EvntOrgRegistrationHelpMessage"));
|
||||||
//print '</span>';
|
//print '</span>';
|
||||||
print '</td><td>';
|
print '</td><td>';
|
||||||
$linksuggest = $dolibarr_main_url_root.'/public/project/index.php?id='.$project->id;
|
$linksuggest = $dolibarr_main_url_root.'/public/project/index.php?id='.((int) $project->id);
|
||||||
$encodedsecurekey = dol_hash($conf->global->EVENTORGANIZATION_SECUREKEY.'conferenceorbooth'.$project->id, 'md5');
|
$encodedsecurekey = dol_hash($conf->global->EVENTORGANIZATION_SECUREKEY.'conferenceorbooth'.((int) $project->id), 'md5');
|
||||||
$linksuggest .= '&securekey='.urlencode($encodedsecurekey);
|
$linksuggest .= '&securekey='.urlencode($encodedsecurekey);
|
||||||
//print '<div class="urllink">';
|
//print '<div class="urllink">';
|
||||||
//print '<input type="text" value="'.$linksuggest.'" id="linkregister" class="quatrevingtpercent paddingrightonly">';
|
//print '<input type="text" value="'.$linksuggest.'" id="linkregister" class="quatrevingtpercent paddingrightonly">';
|
||||||
@ -447,8 +450,8 @@ if ($projectid > 0) {
|
|||||||
print $langs->trans("PublicAttendeeSubscriptionGlobalPage");
|
print $langs->trans("PublicAttendeeSubscriptionGlobalPage");
|
||||||
//print '</span>';
|
//print '</span>';
|
||||||
print '</td><td>';
|
print '</td><td>';
|
||||||
$link_subscription = $dolibarr_main_url_root.'/public/eventorganization/attendee_register.php?id='.$project->id.'&type=global';
|
$link_subscription = $dolibarr_main_url_root.'/public/eventorganization/attendee_register.php?id='.((int) $project->id).'&type=global';
|
||||||
$encodedsecurekey = dol_hash($conf->global->EVENTORGANIZATION_SECUREKEY.'conferenceorbooth'.$project->id, 'md5');
|
$encodedsecurekey = dol_hash($conf->global->EVENTORGANIZATION_SECUREKEY.'conferenceorbooth'.((int) $project->id), 'md5');
|
||||||
$link_subscription .= '&securekey='.urlencode($encodedsecurekey);
|
$link_subscription .= '&securekey='.urlencode($encodedsecurekey);
|
||||||
//print '<div class="urllink">';
|
//print '<div class="urllink">';
|
||||||
//print '<input type="text" value="'.$linkregister.'" id="linkregister" class="quatrevingtpercent paddingrightonly">';
|
//print '<input type="text" value="'.$linkregister.'" id="linkregister" class="quatrevingtpercent paddingrightonly">';
|
||||||
@ -582,7 +585,7 @@ if (is_numeric($nbtotalofrecords) && ($limit > $nbtotalofrecords || empty($limit
|
|||||||
if ($num == 1 && !empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $search_all && !$page) {
|
if ($num == 1 && !empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $search_all && !$page) {
|
||||||
$obj = $db->fetch_object($resql);
|
$obj = $db->fetch_object($resql);
|
||||||
$id = $obj->rowid;
|
$id = $obj->rowid;
|
||||||
header("Location: ".dol_buildpath('/eventorganization/conferenceorbooth_card.php', 1).'?id='.$id);
|
header("Location: ".DOL_URL_ROOT.'/eventorganization/conferenceorbooth_card.php?id='.((int) $id));
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -64,6 +64,7 @@ require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/paymentterm.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/paymentterm.class.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
|
||||||
|
|
||||||
global $dolibarr_main_instance_unique_id;
|
global $dolibarr_main_instance_unique_id;
|
||||||
global $dolibarr_main_url_root;
|
global $dolibarr_main_url_root;
|
||||||
@ -293,7 +294,9 @@ if (empty($reshook) && $action == 'add' && (!empty($conference->id) && $conferen
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
$resultfetchthirdparty = -1;
|
$resultfetchthirdparty = 0;
|
||||||
|
|
||||||
|
$genericcompanyname = $langs->trans('EventParticipant').' '.$email; // Keep this label simple so we can retreive same thirdparty for another event
|
||||||
|
|
||||||
// Getting the thirdparty or creating it
|
// Getting the thirdparty or creating it
|
||||||
$thirdparty = new Societe($db);
|
$thirdparty = new Societe($db);
|
||||||
@ -303,36 +306,66 @@ if (empty($reshook) && $action == 'add' && (!empty($conference->id) && $conferen
|
|||||||
$resultfetchthirdparty = $thirdparty->fetch($confattendee->fk_soc);
|
$resultfetchthirdparty = $thirdparty->fetch($confattendee->fk_soc);
|
||||||
} else {
|
} else {
|
||||||
if (empty($conf->global->EVENTORGANIZATION_DISABLE_RETREIVE_THIRDPARTY_FROM_NAME)) {
|
if (empty($conf->global->EVENTORGANIZATION_DISABLE_RETREIVE_THIRDPARTY_FROM_NAME)) {
|
||||||
// Fetch using the input field by user if we just created the attendee
|
// Fetch using the field input by end user if we have just created the attendee
|
||||||
if (!empty($societe)) {
|
if ($resultfetchthirdparty <= 0 && !empty($societe)) {
|
||||||
$resultfetchthirdparty = $thirdparty->fetch('', $societe, '', '', '', '', '', '', '', '', $email);
|
$resultfetchthirdparty = $thirdparty->fetch('', $societe, '', '', '', '', '', '', '', '', $email);
|
||||||
if ($resultfetchthirdparty <= 0) {
|
if ($resultfetchthirdparty > 0) {
|
||||||
// Try to find the thirdparty from the contact
|
// We found a unique result with the name + email, so we set the fk_soc of attendee
|
||||||
$resultfetchcontact = $contact->fetch('', null, '', $email);
|
|
||||||
if ($resultfetchcontact <= 0 || $contact->fk_soc <= 0) {
|
|
||||||
// Need to create a new one (not found or multiple with the same name/email)
|
|
||||||
$resultfetchthirdparty = 0;
|
|
||||||
} else {
|
|
||||||
$thirdparty->fetch($contact->fk_soc);
|
|
||||||
$confattendee->fk_soc = $thirdparty->id;
|
|
||||||
$confattendee->update($user);
|
|
||||||
$resultfetchthirdparty = 1;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// We found a unique result with that name/email, so we set the fk_soc of attendee
|
|
||||||
$confattendee->fk_soc = $thirdparty->id;
|
$confattendee->fk_soc = $thirdparty->id;
|
||||||
$confattendee->update($user);
|
$confattendee->update($user);
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
// Need to create a thirdparty (put number>0 if we do not want to create a thirdparty for free-conferences)
|
|
||||||
$resultfetchthirdparty = 0;
|
|
||||||
}
|
}
|
||||||
} else {
|
if ($resultfetchthirdparty <= 0 && !empty($genericcompanyname)) {
|
||||||
// Need to create a thirdparty (put number>0 if we do not want to create a thirdparty for free-conferences)
|
// Try to find thirdparty from the generic mail only
|
||||||
$resultfetchthirdparty = 0;
|
$resultfetchthirdparty = $thirdparty->fetch('', $genericcompanyname, '', '', '', '', '', '', '', '', '');
|
||||||
|
if ($resultfetchthirdparty > 0) {
|
||||||
|
// We found a unique result with that name + email, so we set the fk_soc of attendee
|
||||||
|
$confattendee->fk_soc = $thirdparty->id;
|
||||||
|
$confattendee->update($user);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($resultfetchthirdparty <= 0 && !empty($email)) {
|
||||||
|
// Try to find thirdparty from the email only
|
||||||
|
$resultfetchthirdparty = $thirdparty->fetch('', '', '', '', '', '', '', '', '', '', $email);
|
||||||
|
if ($resultfetchthirdparty > 0) {
|
||||||
|
// We found a unique result with that email only, so we set the fk_soc of attendee
|
||||||
|
$confattendee->fk_soc = $thirdparty->id;
|
||||||
|
$confattendee->update($user);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO Add more tests on a VAT number, profid or a name ?
|
||||||
|
|
||||||
|
if ($resultfetchthirdparty <= 0 && !empty($email)) {
|
||||||
|
// Try to find the thirdparty from the contact
|
||||||
|
$resultfetchcontact = $contact->fetch('', null, '', $email);
|
||||||
|
if ($resultfetchcontact > 0 && $contact->fk_soc > 0) {
|
||||||
|
$thirdparty->fetch($contact->fk_soc);
|
||||||
|
$confattendee->fk_soc = $thirdparty->id;
|
||||||
|
$confattendee->update($user);
|
||||||
|
$resultfetchthirdparty = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($resultfetchthirdparty <= 0 && !empty($societe)) {
|
||||||
|
// Try to find thirdparty from the company name only
|
||||||
|
$resultfetchthirdparty = $thirdparty->fetch('', $societe, '', '', '', '', '', '', '', '', '');
|
||||||
|
if ($resultfetchthirdparty > 0) {
|
||||||
|
// We found a unique result with that name only, so we set the fk_soc of attendee
|
||||||
|
$confattendee->fk_soc = $thirdparty->id;
|
||||||
|
$confattendee->update($user);
|
||||||
|
} elseif ($resultfetchthirdparty == -2) {
|
||||||
|
$thirdparty->error = "ErrorSeveralCompaniesWithNameContactUs";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If price is empty, no need to create a thirdparty, so we force $resultfetchthirdparty as if we have already found thirdp party.
|
||||||
|
if (empty(floatval($project->price_registration))) {
|
||||||
|
$resultfetchthirdparty = 1;
|
||||||
|
}
|
||||||
|
|
||||||
if ($resultfetchthirdparty < 0) {
|
if ($resultfetchthirdparty < 0) {
|
||||||
$error++;
|
$error++;
|
||||||
$errmsg .= $thirdparty->error;
|
$errmsg .= $thirdparty->error;
|
||||||
@ -341,7 +374,7 @@ if (empty($reshook) && $action == 'add' && (!empty($conference->id) && $conferen
|
|||||||
if (!empty($societe)) {
|
if (!empty($societe)) {
|
||||||
$thirdparty->name = $societe;
|
$thirdparty->name = $societe;
|
||||||
} else {
|
} else {
|
||||||
$thirdparty->name = $email;
|
$thirdparty->name = $genericcompanyname;
|
||||||
}
|
}
|
||||||
$thirdparty->address = GETPOST("address");
|
$thirdparty->address = GETPOST("address");
|
||||||
$thirdparty->zip = GETPOST("zipcode");
|
$thirdparty->zip = GETPOST("zipcode");
|
||||||
@ -387,6 +420,11 @@ if (empty($reshook) && $action == 'add' && (!empty($conference->id) && $conferen
|
|||||||
|
|
||||||
if (!$error) {
|
if (!$error) {
|
||||||
if (!empty(floatval($project->price_registration))) {
|
if (!empty(floatval($project->price_registration))) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$outputlangs = $langs;
|
$outputlangs = $langs;
|
||||||
// TODO Use default language of $thirdparty->default_lang to build $outputlang
|
// TODO Use default language of $thirdparty->default_lang to build $outputlang
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user