33require
'../main.inc.php';
43require_once DOL_DOCUMENT_ROOT.
'/core/lib/member.lib.php';
44require_once DOL_DOCUMENT_ROOT.
'/core/lib/date.lib.php';
45require_once DOL_DOCUMENT_ROOT.
'/adherents/class/adherent.class.php';
46require_once DOL_DOCUMENT_ROOT.
'/adherents/class/adherent_type.class.php';
47require_once DOL_DOCUMENT_ROOT.
'/adherents/class/subscription.class.php';
48require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
49require_once DOL_DOCUMENT_ROOT.
'/product/class/product.class.php';
50require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/accountingjournal.class.php';
52$langs->loadLangs(array(
"companies",
"bills",
"members",
"users",
"mails",
'other'));
54$action =
GETPOST(
'action',
'aZ09');
55$confirm =
GETPOST(
'confirm',
'alpha');
56$contextpage =
GETPOST(
'contextpage',
'aZ09');
57$optioncss =
GETPOST(
'optioncss',
'aZ');
61$ref =
GETPOST(
'ref',
'alphanohtml');
63$cancel =
GETPOST(
'cancel',
'alpha');
67$sortfield =
GETPOST(
'sortfield',
'aZ09comma');
68$sortorder =
GETPOST(
'sortorder',
'aZ09comma');
70if (empty($page) || $page < 0 ||
GETPOST(
'button_search',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
74$offset = $limit * $page;
80 $sortfield =
"c.rowid";
91$extrafields->fetch_name_optionals_label(
$object->table_element);
96$hookmanager->initHooks(array(
'subscription'));
108if ($id > 0 || !empty($ref)) {
110 $result =
$object->fetch($id, $ref);
113 $canadduser = ($user->admin || $user->hasRight(
"user",
"user",
"creer"));
117 $caneditfielduser = ((($user->id ==
$object->user_id) && $user->hasRight(
"user",
"self",
"creer"))
118 || (($user->id !=
$object->user_id) && $user->hasRight(
"user",
"user",
"creer")));
119 $caneditpassworduser = ((($user->id ==
$object->user_id) && $user->hasRight(
"user",
"self",
"password"))
120 || (($user->id !=
$object->user_id) && $user->hasRight(
"user",
"user",
"password")));
125$permissiontoaddmember = $user->hasRight(
'adherent',
'creer');
135$parameters = array();
136$reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action);
142if (empty($reshook) && $action ==
'confirm_create_thirdparty' && $confirm ==
'yes' && $user->hasRight(
'societe',
'creer')) {
146 $result = $company->create_from_member($object,
GETPOST(
'companyname',
'alpha'),
GETPOST(
'companyalias',
'alpha'),
GETPOST(
'customercode',
'alpha'));
149 $langs->load(
"errors");
154 $action =
'createsubscription';
161if (empty($reshook) && $action ==
'setuserid' && ($user->hasRight(
'user',
'self',
'creer') || $user->hasRight(
'user',
'user',
'creer'))) {
163 if (!$user->hasRight(
'user',
'user',
'creer')) {
166 setEventMessages($langs->trans(
"ErrorUserPermissionAllowsToLinksToItselfOnly"),
null,
'errors');
181if (empty($reshook) && $action ==
'setsocid' && $permissiontoaddmember) {
184 $sql =
"SELECT rowid FROM " . MAIN_DB_PREFIX .
"adherent";
185 $sql .=
" WHERE fk_soc = " . ((int)
GETPOSTINT(
'socid'));
186 $resql =
$db->query($sql);
188 $obj =
$db->fetch_object($resql);
189 if ($obj && $obj->rowid > 0) {
191 $othermember->fetch($obj->rowid);
195 setEventMessages($langs->trans(
"ErrorMemberIsAlreadyLinkedToThisThirdParty", $othermember->getFullName($langs), $othermember->login, $thirdparty->name),
null,
'errors');
209if (empty($reshook) && $user->hasRight(
'adherent',
'cotisation',
'creer') && $action ==
'subscription' && !$cancel) {
212 $langs->load(
"banks");
214 $result =
$object->fetch($rowid);
215 $result = $adht->fetch(
$object->typeid);
218 $datesubscription = 0;
220 $defaultdelay = !empty($adht->duration_value) ? $adht->duration_value : 1;
221 $defaultdelayunit = !empty($adht->duration_unit) ? $adht->duration_unit :
'y';
237 $operation =
GETPOST(
"operation",
"alphanohtml");
238 $num_chq =
GETPOST(
"num_chq",
"alphanohtml");
239 $emetteur_nom =
GETPOST(
"chqemetteur");
240 $emetteur_banque =
GETPOST(
"chqbank");
241 $option =
GETPOST(
"paymentsave");
242 if (empty($option)) {
245 $sendalsoemail =
GETPOST(
"sendmail",
'alpha');
248 if (!$datesubscription) {
250 $langs->load(
"errors");
251 $errmsg = $langs->trans(
"ErrorBadDateFormat", $langs->transnoentitiesnoconv(
"DateSubscription"));
253 $action =
'createsubscription';
255 if (
GETPOST(
'end') && !$datesubend) {
257 $langs->load(
"errors");
258 $errmsg = $langs->trans(
"ErrorBadDateFormat", $langs->transnoentitiesnoconv(
"DateEndSubscription"));
260 $action =
'createsubscription';
265 if (($option ==
'bankviainvoice' || $option ==
'bankdirect') && !$paymentdate) {
267 $errmsg = $langs->trans(
"ErrorFieldRequired", $langs->transnoentitiesnoconv(
"DatePayment"));
269 $action =
'createsubscription';
273 if ($adht->subscription) {
274 if (!is_numeric($amount)) {
276 $errmsg = $langs->trans(
"ErrorFieldRequired", $langs->transnoentities(
"Amount"));
279 $action =
'createsubscription';
285 $errmsg = $langs->trans(
"ErrorFieldRequired", $langs->transnoentities(
"Label"));
288 $action =
'createsubscription';
290 if (
GETPOST(
"paymentsave") !=
'invoiceonly' && !
GETPOST(
"operation")) {
291 $errmsg = $langs->trans(
"ErrorFieldRequired", $langs->transnoentities(
"PaymentMode"));
294 $action =
'createsubscription';
297 $errmsg = $langs->trans(
"ErrorFieldRequired", $langs->transnoentities(
"FinancialAccount"));
300 $action =
'createsubscription';
304 $errmsg = $langs->trans(
"ErrorDoNotProvideAccountsIfNullAmount");
307 $action =
'createsubscription';
315 if (!$error && $action ==
'subscription') {
319 $crowid =
$object->subscription($datesubscription, (
float) $amount, $accountid, $operation, $label, $num_chq, $emetteur_nom, $emetteur_banque, $datesubend);
327 $result =
$object->subscriptionComplementaryActions($crowid, $option, $accountid, $datesubscription, $paymentdate, $operation, $label, (
float) $amount, $num_chq, $emetteur_nom, $emetteur_banque);
340 $action =
'createsubscription';
350 if (
$object->email && $sendalsoemail) {
352 'datesubscription' => $datesubscription,
354 'ccountid' => $accountid,
355 'operation' => $operation,
357 'num_chq' => $num_chq,
358 'emetteur_nom' => $emetteur_nom,
359 'emetteur_banque' => $emetteur_banque,
360 'datesubend' => $datesubend
362 $reshook = $hookmanager->executeHooks(
'sendMail', $parameters, $object, $action);
367 if (empty($reshook)) {
372 include_once DOL_DOCUMENT_ROOT.
'/core/class/html.formmail.class.php';
376 $outputlangs->setDefaultLang(empty(
$object->thirdparty->default_lang) ?
$mysoc->default_lang :
$object->thirdparty->default_lang);
378 $outputlangs->loadLangs(array(
"main",
"members"));
381 $arraydefaultmessage =
null;
384 if (!empty($labeltouse)) {
385 $arraydefaultmessage = $formmail->getEMailTemplate(
$db,
'member', $user, $outputlangs, 0, 1, $labeltouse);
388 if (!empty($labeltouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) {
389 $subject = (
string) $arraydefaultmessage->topic;
390 $msg = (
string) $arraydefaultmessage->content;
393 $substitutionarray = getCommonSubstitutionArray($outputlangs, 0,
null, $object);
400 $listofpaths = array();
401 $listofnames = array();
402 $listofmimes = array();
403 if (is_object(
$object->invoice) && (!is_object($arraydefaultmessage) || intval($arraydefaultmessage->joinfiles))) {
404 $invoicediroutput =
$conf->facture->dir_output;
406 $file = $fileparams[
'fullname'];
408 $listofpaths = array($file);
409 $listofnames = array(basename($file));
410 $listofmimes = array(dol_mimetype($file));
413 $moreinheader =
'X-Dolibarr-Info: send_an_email by adherents/subscription.php'.
"\r\n";
415 $result =
$object->sendEmail($texttosend, $subjecttosend, $listofpaths, $listofmimes, $listofnames,
"",
"", 0, -1,
'', $moreinheader);
449$title = $langs->trans(
"Member").
" - ".$langs->trans(
"Subscriptions");
450$help_url =
"EN:Module_Foundations|FR:Module_Adhérents|ES:Módulo_Miembros|DE:Modul_Mitglieder";
452llxHeader(
'', $title, $help_url,
'', 0, 0,
'',
'',
'',
'mod-member page-card_subscription');
456if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
457 $param .=
'&contextpage='.urlencode($contextpage);
459if ($limit > 0 && $limit !=
$conf->liste_limit) {
460 $param .=
'&limit='.((int) $limit);
462$param .=
'&id='.$rowid;
463if ($optioncss !=
'') {
464 $param .=
'&optioncss='.urlencode($optioncss);
471 $langs->load(
"errors");
472 print $langs->trans(
"ErrorRecordNotFound");
478$defaultdelay = !empty($adht->duration_value) ? $adht->duration_value : 1;
479$defaultdelayunit = !empty($adht->duration_unit) ? $adht->duration_unit :
'y';
491print
'<form action="'.$_SERVER[
"PHP_SELF"].
'" method="POST">';
492print
'<input type="hidden" name="token" value="'.newToken().
'">';
493print
'<input type="hidden" name="rowid" value="'.$object->id.
'">';
497$linkback =
'<a href="'.dolBuildUrl(DOL_URL_ROOT.
'/adherents/list.php', [
'restore_lastsearch_values' => 1]).
'">'.$langs->trans(
"BackToList").
'</a>';
499$morehtmlref =
'<a href="'.DOL_URL_ROOT.
'/adherents/vcard.php?id='.
$object->id.
'" class="refid">';
500$morehtmlref .=
img_picto($langs->trans(
"Download").
' '.$langs->trans(
"VCard"),
'vcard',
'class="valignmiddle marginleftonly paddingrightonly"');
501$morehtmlref .=
'</a>';
503dol_banner_tab($object,
'rowid', $linkback, 1,
'rowid',
'ref', $morehtmlref);
505print
'<div class="fichecenter">';
506print
'<div class="fichehalfleft">';
508print
'<div class="underbanner clearboth"></div>';
509print
'<table class="border centpercent tableforfield">';
513 print
'<tr><td class="titlefieldmiddle">'.$langs->trans(
"Login").
' / '.$langs->trans(
"Id").
'</td><td class="valeur">'.
dol_escape_htmltag(
$object->login).
'</td></tr>';
517print
'<tr><td class="titlefieldmiddle">'.$langs->trans(
"Type").
'</td>';
518print
'<td class="valeur">'.$adht->getNomUrl(1).
"</td></tr>\n";
521print
'<tr><td>'.$langs->trans(
"MemberNature").
'</td>';
522print
'<td class="valeur" >'.$object->getmorphylib(
'', 1).
'</td>';
529print
'<tr><td>'.$langs->trans(
"UserTitle").
'</td><td class="valeur">'.
$object->getCivilityLabel().
'</td>';
534 print
'<tr><td>'.$langs->trans(
"Password").
'</td><td>';
536 print preg_replace(
'/./i',
'*',
$object->pass);
539 print
'<!-- '.$langs->trans(
"Crypted").
': '.
$object->pass_indatabase_crypted.
' -->';
541 print
'<span class="opacitymedium">'.$langs->trans(
"Hidden").
'</span>';
543 if (!empty(
$object->pass_indatabase) && empty(
$object->user_id)) {
544 $langs->load(
"errors");
545 $htmltext = $langs->trans(
"WarningPasswordSetWithNoAccount");
546 print
' '.$form->textwithpicto(
'', $htmltext, 1,
'warning');
552print
'<tr><td>'.$langs->trans(
"SubscriptionEndDate").
'</td><td class="valeur">';
556 print
" ".img_warning($langs->trans(
"Late"));
559 if (
$object->need_subscription == 0) {
560 print $langs->trans(
"SubscriptionNotNeeded");
561 } elseif (!$adht->subscription) {
562 print $langs->trans(
"SubscriptionNotRecorded");
564 print
" ".img_warning($langs->trans(
"Late"));
567 print $langs->trans(
"SubscriptionNotReceived");
569 print
" ".img_warning($langs->trans(
"Late"));
579print
'<div class="fichehalfright">';
580print
'<div class="underbanner clearboth"></div>';
582print
'<table class="border tableforfield centpercent">';
585if (
isModEnabled(
'category') && $user->hasRight(
'categorie',
'lire')) {
586 print
'<tr><td>'.$langs->trans(
"Categories").
'</td>';
587 print
'<td colspan="2">';
588 print $form->showCategories(
$object->id, Categorie::TYPE_MEMBER, 1);
593print
'<tr><td class="titlefieldmiddle">'.$langs->trans(
"DateOfBirth").
'</td><td class="valeur">'.
dol_print_date(
$object->birth,
'day').
'</td></tr>';
597 require_once DOL_DOCUMENT_ROOT.
'/core/lib/functions2.lib.php';
598 print
'<tr><td>'.$langs->trans(
"DefaultLang").
'</td><td>';
601 $langs->load(
"languages");
602 $labellang = (
$object->default_lang ? $langs->trans(
'Language_'.
$object->default_lang) :
'');
609$linkofpubliclist = DOL_MAIN_URL_ROOT.
'/public/members/public_list.php'.((
isModEnabled(
'multicompany')) ?
'?entity='.
$conf->entity :
'');
610print
'<tr><td>'.$form->textwithpicto($langs->trans(
"MembershipPublic"), $langs->trans(
"Public",
getDolGlobalString(
'MAIN_INFO_SOCIETE_NOM'), $linkofpubliclist), 1,
'help',
'', 0, 3,
'publicfile').
'</td><td class="valeur">'.
yn(
$object->public).
'</td></tr>';
614include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_view.tpl.php';
619 print
'<table class="nobordernopadding centpercent"><tr><td>';
620 print $langs->trans(
"LinkedToDolibarrThirdParty");
622 if ($action !=
'editthirdparty' && $user->hasRight(
'adherent',
'creer')) {
623 print
'<td class="right"><a class="editfielda" href="'.$_SERVER[
"PHP_SELF"].
'?action=editthirdparty&token='.newToken().
'&rowid='.
$object->id.
'">'.
img_edit($langs->trans(
'SetLinkToThirdParty'), 1).
'</a></td>';
625 print
'</tr></table>';
626 print
'</td><td colspan="2" class="valeur">';
627 if ($action ==
'editthirdparty') {
629 print
'<form method="POST" action="'.$_SERVER[
'PHP_SELF'].
'" name="form'.$htmlname.
'">';
630 print
'<input type="hidden" name="rowid" value="'.$object->id.
'">';
631 print
'<input type="hidden" name="action" value="set'.$htmlname.
'">';
632 print
'<input type="hidden" name="token" value="'.newToken().
'">';
633 print
'<table class="nobordernopadding">';
635 print $form->select_company(
$object->socid,
'socid',
'', 1);
637 print
'<td class="left"><input type="submit" class="button button-edit" value="'.$langs->trans(
"Modify").
'"></td>';
638 print
'</tr></table></form>';
642 $result = $company->fetch(
$object->socid);
643 print $company->getNomUrl(1);
646 $tmparray = $company->getOutstandingBills(
'customer');
647 if (!empty($tmparray[
'refs'])) {
648 print
' - '.img_picto($langs->trans(
"Invoices"),
'bill',
'class="paddingright"').
'<a href="'.DOL_URL_ROOT.
'/compta/facture/list.php?socid='.
$object->socid.
'">'.$langs->trans(
"Invoices").
' ('.count($tmparray[
'refs']).
')';
653 print
'<span class="opacitymedium">'.$langs->trans(
"NoThirdPartyAssociatedToMember").
'</span>';
661print
'<table class="nobordernopadding centpercent"><tr><td>';
662print $langs->trans(
"LinkedToDolibarrUser");
664if ($action !=
'editlogin' && $user->hasRight(
'adherent',
'creer')) {
665 print
'<td class="right">';
666 if ($user->hasRight(
"user",
"user",
"creer")) {
667 print
'<a class="editfielda" href="'.$_SERVER[
"PHP_SELF"].
'?action=editlogin&token='.newToken().
'&rowid='.
$object->id.
'">'.
img_edit($langs->trans(
'SetLinkToUser'), 1).
'</a>';
671print
'</tr></table>';
672print
'</td><td colspan="2" class="valeur">';
673if ($action ==
'editlogin') {
674 $form->form_users($_SERVER[
'PHP_SELF'].
'?rowid='.
$object->id, (
string)
$object->user_id,
'userid', array());
678 $linkeduser->fetch(
$object->user_id);
679 print $linkeduser->getNomUrl(-1);
681 print
'<span class="opacitymedium">'.$langs->trans(
"NoDolibarrAccess").
'</span>';
688print
"</div></div>\n";
689print
'<div class="clearboth"></div>';
699if ($user->hasRight(
'adherent',
'cotisation',
'creer')) {
700 if ($action !=
'createsubscription' && $action !=
'create_thirdparty') {
701 print
'<div class="tabsAction">';
704 print
'<div class="inline-block divButAction"><a class="butAction" href="'.dolBuildUrl($_SERVER[
"PHP_SELF"], [
'rowid' => $rowid,
'action' =>
'createsubscription'],
true).
'">'.$langs->trans(
"AddSubscription").
"</a></div>";
706 print
'<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans(
"ValidateBefore")).
'">'.$langs->trans(
"AddSubscription").
'</a></div>';
716if ($action !=
'createsubscription' && $action !=
'create_thirdparty') {
717 $sql =
"SELECT d.rowid, d.firstname, d.lastname, d.societe, d.fk_adherent_type as type,";
718 $sql .=
" c.rowid as crowid, c.subscription,";
719 $sql .=
" c.datec, c.fk_type as cfk_type,";
720 $sql .=
" c.dateadh as dateh, c.note as clabel,";
722 $sql .=
" c.fk_bank,";
723 $sql .=
" b.rowid as bid,";
724 $sql .=
" ba.rowid as baid, ba.label, ba.bank, ba.ref, ba.account_number, ba.fk_accountancy_journal, ba.number, ba.currency_code";
725 $sql .=
" FROM ".MAIN_DB_PREFIX.
"adherent as d, ".MAIN_DB_PREFIX.
"subscription as c";
726 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"bank as b ON c.fk_bank = b.rowid";
727 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"bank_account as ba ON b.fk_account = ba.rowid";
728 $sql .=
" WHERE d.rowid = c.fk_adherent AND d.rowid=".((int) $rowid);
729 $sql .=
$db->order($sortfield, $sortorder);
731 $result =
$db->query($sql);
735 $num =
$db->num_rows($result);
737 print
'<div class="div-table-responsive-no-min">';
738 print
'<table class="noborder centpercent">'.
"\n";
740 print
'<tr class="liste_titre">';
742 print_liste_field_titre(
'DateCreation', $_SERVER[
"PHP_SELF"],
'',
'', $param,
'', $sortfield, $sortorder,
'center ');
744 print_liste_field_titre(
'DateStart', $_SERVER[
"PHP_SELF"],
'',
'', $param,
'', $sortfield, $sortorder,
'center ');
745 print_liste_field_titre(
'DateEnd', $_SERVER[
"PHP_SELF"],
'',
'', $param,
'', $sortfield, $sortorder,
'center ');
749 print_liste_field_titre(
'Account', $_SERVER[
"PHP_SELF"],
'',
'', $param,
'', $sortfield, $sortorder,
'right ');
759 $objp =
$db->fetch_object($result);
761 $adh->id = $objp->rowid;
762 $adh->typeid = $objp->type;
764 $subscriptionstatic->ref = $objp->crowid;
765 $subscriptionstatic->id = $objp->crowid;
766 $subscriptionstatic->note_public = $objp->clabel;
768 $typeid = $objp->cfk_type;
770 $adht->fetch($typeid);
773 print
'<tr class="oddeven">';
774 print
'<td>'.$subscriptionstatic->getNomUrl(1).
'</td>';
775 print
'<td class="center nowraponall">'.dol_print_date(
$db->jdate($objp->datec),
'dayhour').
"</td>\n";
776 print
'<td class="center tdoverflowmax125">';
778 print $adht->getNomUrl(1);
781 print
'<td class="center">'.dol_print_date(
$db->jdate($objp->dateh),
'day').
"</td>\n";
782 print
'<td class="center">'.dol_print_date(
$db->jdate($objp->datef),
'day').
"</td>\n";
783 print
'<td class="right amount">'.price($objp->subscription).
'</td>';
784 print
'<td class="left">'.$objp->clabel.
'</td>';
786 print
'<td class="tdoverflowmax100 right">';
788 $accountstatic->label = $objp->label;
789 $accountstatic->id = $objp->baid;
790 $accountstatic->number = $objp->number;
791 $accountstatic->account_number = $objp->account_number;
792 $accountstatic->currency_code = $objp->currency_code;
794 if (
isModEnabled(
'accounting') && $objp->fk_accountancy_journal > 0) {
796 $accountingjournal->fetch($objp->fk_accountancy_journal);
798 $accountstatic->accountancy_journal = $accountingjournal->getNomUrl(0, 1, 1,
'', 1);
801 $accountstatic->ref = $objp->ref;
802 print $accountstatic->getNomUrl(1);
817 print
'<tr><td colspan="'.$colspan.
'"><span class="opacitymedium">'.$langs->trans(
"None").
'</span></td></tr>';
828if (($action !=
'createsubscription' && $action !=
'create_thirdparty')) {
831 include_once DOL_DOCUMENT_ROOT.
'/core/lib/payments.lib.php';
832 $validpaymentmethod = getValidOnlinePaymentMethods(
'');
833 $useonlinepayment = count($validpaymentmethod);
835 if ($useonlinepayment) {
838 require_once DOL_DOCUMENT_ROOT.
'/core/lib/payments.lib.php';
839 print showOnlinePaymentUrl(
'membersubscription',
$object->ref);
847if (($action ==
'createsubscription' || $action ==
'create_thirdparty') && $user->hasRight(
'adherent',
'cotisation',
'creer')) {
857 if (
GETPOST(
'paymentsave') ==
'bankdirect') {
860 if (
GETPOST(
'paymentsave') ==
'invoiceonly') {
863 if (
GETPOST(
'paymentsave') ==
'bankviainvoice') {
876 print
"\n\n<!-- Form add subscription -->\n";
878 if (
$conf->use_javascript_ajax) {
880 print
"\n".
'<script type="text/javascript">';
881 print
'$(document).ready(function () {
882 $(".bankswitchclass, .bankswitchclass2").'.(($bankdirect || $bankviainvoice) ?
'show()' :
'hide()').
';
883 $("#none, #invoiceonly").click(function() {
884 $(".bankswitchclass").hide();
885 $(".bankswitchclass2").hide();
887 $("#bankdirect, #bankviainvoice").click(function() {
888 $(".bankswitchclass").show();
889 $(".bankswitchclass2").show();
891 $("#selectoperation").change(function() {
892 var code = $(this).val();
895 $(".fieldrequireddyn").addClass("fieldrequired");
896 if ($("#fieldchqemetteur").val() == "")
898 $("#fieldchqemetteur").val($("#memberlabel").val());
903 $(".fieldrequireddyn").removeClass("fieldrequired");
908 print
'$("#'.GETPOST(
'paymentsave',
'aZ09').
'").prop("checked", true);';
911 print
'</script>'.
"\n";
916 if ($action ==
'create_thirdparty') {
918 $fullname =
$object->getFullName($langs);
920 if (
$object->morphy ==
'mor') {
921 $companyname =
$object->company;
922 if (!empty($fullname)) {
923 $companyalias = $fullname;
926 $companyname = $fullname;
927 if (!empty(
$object->company)) {
928 $companyalias =
$object->company;
933 $formquestion = array(
934 array(
'label' => $langs->trans(
"NameToCreate"),
'type' =>
'text',
'name' =>
'companyname',
'value' => $companyname,
'morecss' =>
'minwidth300',
'moreattr' =>
'maxlength="128"'),
935 array(
'label' => $langs->trans(
"AliasNames"),
'type' =>
'text',
'name' =>
'companyalias',
'value' => $companyalias,
'morecss' =>
'minwidth300',
'moreattr' =>
'maxlength="128"')
940 $tmpcompany->name = (
string) $companyname;
941 $tmpcompany->get_codeclient($tmpcompany, 0);
942 $customercode = $tmpcompany->code_client;
943 $formquestion[] = array(
944 'label' => $langs->trans(
"CustomerCode"),
946 'name' =>
'customercode',
947 'value' => $customercode,
948 'morecss' =>
'minwidth300',
949 'moreattr' =>
'maxlength="128"',
954 print $form->formconfirm($_SERVER[
"PHP_SELF"].
"?rowid=".
$object->id, $langs->trans(
"CreateDolibarrThirdParty"), $langs->trans(
"ConfirmCreateThirdParty"),
"confirm_create_thirdparty", $formquestion, 1);
958 print
'<form name="subscription" method="POST" action="'.dolBuildUrl($_SERVER[
"PHP_SELF"]).
'">';
959 print
'<input type="hidden" name="token" value="'.newToken().
'">';
960 print
'<input type="hidden" name="action" value="subscription">';
961 print
'<input type="hidden" name="rowid" value="'.$rowid.
'">';
962 print
'<input type="hidden" name="memberlabel" id="memberlabel" value="'.dol_escape_htmltag(
$object->getFullName($langs)).
'">';
963 print
'<input type="hidden" name="thirdpartylabel" id="thirdpartylabel" value="'.dol_escape_htmltag(
$object->company).
'">';
967 print
'<div class="div-table-responsive">';
968 print
'<table class="border centpercent">'.
"\n";
980 print
'<td class="fieldrequired">'.$langs->trans(
"DateSubscription").
'</td><td>';
1005 print $form->selectDate($datefrom,
'', 0, 0, 0,
"subscription", 1, 1);
1015 } elseif (
getDolGlobalInt(
'MEMBER_SUBSCRIPTION_SUGGEST_END_OF_YEAR')) {
1021 print
'<tr><td>'.$langs->trans(
"DateEndSubscription").
'</td><td>';
1022 print $form->selectDate($dateto,
'end', 0, 0, 0,
"subscription", 1, 0);
1025 if ($adht->subscription) {
1027 print
'<tr><td class="fieldrequired">'.$langs->trans(
"Amount").
'</td>';
1028 print
'<td><input autofocus class="width50" type="text" name="subscription" value="'.(GETPOSTISSET(
'subscription') ?
GETPOST(
'subscription') : (is_null($adht->
amount) ?
'' :
price($adht->
amount, 0,
'', 0))).
'"> '.$langs->trans(
"Currency".
getDolCurrency()) .
'</td></tr>';
1031 print
'<tr><td>'.$langs->trans(
"Note").
'</td>';
1032 print
'<td><input name="label" type="text" size="32" value="';
1034 print $langs->trans(
"Subscription").
' '.
dol_print_date(($datefrom ? $datefrom : time()),
"%Y");
1036 print
'"></td></tr>';
1042 $result = $company->fetch(
$object->socid);
1046 print
'<tr><td class="tdtop fieldrequired">'.$langs->trans(
'MoreActions');
1048 print
'<td class="line-height-large">';
1050 print
'<input type="radio" class="moreaction" id="none" name="paymentsave" value="none"'.(empty($bankdirect) && empty($invoiceonly) && empty($bankviainvoice) ?
' checked' :
'').
'>';
1051 print
'<label for="none"> '.$langs->trans(
"None").
'</label><br>';
1054 print
'<input type="radio" class="moreaction" id="bankdirect" name="paymentsave" value="bankdirect"'.(!empty($bankdirect) ?
' checked' :
'');
1055 print
'><label for="bankdirect"> '.$langs->trans(
"MoreActionBankDirect").
'</label><br>';
1059 print
'<input type="radio" class="moreaction" id="invoiceonly" name="paymentsave" value="invoiceonly"'.(!empty($invoiceonly) ?
' checked' :
'');
1061 print
'><label for="invoiceonly"> '.$langs->trans(
"MoreActionInvoiceOnly");
1063 print
' ('.$langs->trans(
"ThirdParty").
': '.$company->getNomUrl(1).
')';
1067 print
img_warning($langs->trans(
"NoThirdPartyAssociatedToMember"));
1069 print $langs->trans(
"NoThirdPartyAssociatedToMember");
1070 print
' - <a href="'.$_SERVER[
"PHP_SELF"].
'?rowid='.
$object->id.
'&action=create_thirdparty">';
1071 print $langs->trans(
"CreateDolibarrThirdParty");
1075 print
'. <span class="opacitymedium">'.$langs->trans(
"NoVatOnSubscription", 0).
'</span>';
1079 $result = $prodtmp->fetch(
getDolGlobalInt(
'ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS'));
1083 print
'. '.$langs->transnoentitiesnoconv(
"ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS", $prodtmp->getNomUrl(1));
1085 print
'</label><br>';
1089 print
'<input type="radio" class="moreaction" id="bankviainvoice" name="paymentsave" value="bankviainvoice"'.(!empty($bankviainvoice) ?
' checked' :
'');
1091 print
'><label for="bankviainvoice"> '.$langs->trans(
"MoreActionBankViaInvoice");
1093 print
' ('.$langs->trans(
"ThirdParty").
': '.$company->getNomUrl(1).
')';
1097 print
img_warning($langs->trans(
"NoThirdPartyAssociatedToMember"));
1099 print $langs->trans(
"NoThirdPartyAssociatedToMember");
1100 print
' - <a href="'.$_SERVER[
"PHP_SELF"].
'?rowid='.
$object->id.
'&action=create_thirdparty">';
1101 print $langs->trans(
"CreateDolibarrThirdParty");
1105 print
'. <span class="opacitymedium">'.$langs->trans(
"NoVatOnSubscription", 0).
'</span>';
1109 $result = $prodtmp->fetch(
getDolGlobalInt(
'ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS'));
1113 print
'. '.$langs->transnoentitiesnoconv(
"ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS", $prodtmp->getNomUrl(1));
1115 print
'</label><br>';
1120 print
'<tr class="bankswitchclass"><td class="fieldrequired">'.$langs->trans(
"FinancialAccount").
'</td><td>';
1121 print
img_picto(
'',
'bank_account',
'class="pictofixedwidth"');
1122 $form->select_comptes(
GETPOST(
'accountid'),
'accountid', 0,
'', 2,
'', 0,
'minwidth200');
1123 print
"</td></tr>\n";
1126 print
'<tr class="bankswitchclass"><td class="fieldrequired">'.$langs->trans(
"PaymentMode").
'</td><td>';
1127 print $form->select_types_paiements(
GETPOST(
'operation'),
'operation',
'', 2, 1, 0, 0, 1,
'minwidth200', 1);
1128 print
"</td></tr>\n";
1131 print
'<tr class="bankswitchclass"><td class="fieldrequired">'.$langs->trans(
"DatePayment").
'</td><td>';
1132 print $form->selectDate(isset($paymentdate) ? $paymentdate : -1,
'payment', 0, 0, 1,
'subscription', 1, 1);
1133 print
"</td></tr>\n";
1135 print
'<tr class="bankswitchclass2"><td>'.$langs->trans(
'Numero');
1136 print
' <em>('.$langs->trans(
"ChequeOrTransferNumber").
')</em>';
1138 print
'<td><input id="fieldnum_chq" name="num_chq" type="text" size="8" value="'.(!
GETPOST(
'num_chq') ?
'' :
GETPOST(
'num_chq')).
'"></td></tr>';
1140 print
'<tr class="bankswitchclass2 fieldrequireddyn"><td>'.$langs->trans(
'CheckTransmitter');
1141 print
' <em>('.$langs->trans(
"ChequeMaker").
')</em>';
1143 print
'<td><input id="fieldchqemetteur" name="chqemetteur" size="32" type="text" value="'.(!
GETPOST(
'chqemetteur') ?
'' :
GETPOST(
'chqemetteur')).
'"></td></tr>';
1145 print
'<tr class="bankswitchclass2"><td>'.$langs->trans(
'Bank');
1146 print
' <em>('.$langs->trans(
"ChequeBank").
')</em>';
1148 print
'<td><input id="chqbank" name="chqbank" size="32" type="text" value="'.(!
GETPOST(
'chqbank') ?
'' :
GETPOST(
'chqbank')).
'"></td></tr>';
1152 print
'<tr><td></td><td></td></tr>';
1154 print
'<tr><td>'.$langs->trans(
"SendAcknowledgementByMail").
'</td>';
1157 print $langs->trans(
"NoEMail");
1160 $adht->fetch(
$object->typeid);
1167 include_once DOL_DOCUMENT_ROOT.
'/core/class/html.formmail.class.php';
1171 $outputlangs->setDefaultLang(empty(
$object->thirdparty->default_lang) ?
$mysoc->default_lang :
$object->thirdparty->default_lang);
1173 $outputlangs->loadLangs(array(
"main",
"members"));
1175 $arraydefaultmessage =
null;
1178 if (!empty($labeltouse)) {
1179 $arraydefaultmessage = $formmail->getEMailTemplate(
$db,
'member', $user, $outputlangs, 0, 1, $labeltouse);
1182 if (!empty($labeltouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) {
1183 $subject = (
string) $arraydefaultmessage->topic;
1184 $msg = (
string) $arraydefaultmessage->content;
1187 $substitutionarray = getCommonSubstitutionArray($outputlangs, 0,
null, $object);
1192 $tmp =
'<input name="sendmail" type="checkbox"'.(GETPOST(
'sendmail',
'alpha') ?
' checked' : (
getDolGlobalString(
'ADHERENT_DEFAULT_SENDINFOBYMAIL') ?
' checked' :
'')).
'>';
1194 $helpcontent .=
'<b>'.$langs->trans(
"MailFrom").
'</b>: '.
getDolGlobalString(
'ADHERENT_MAIL_FROM',
$conf->email_from).
'<br>'.
"\n";
1195 $helpcontent .=
'<b>'.$langs->trans(
"MailRecipient").
'</b>: '.
$object->email.
'<br>'.
"\n";
1196 $helpcontent .=
'<b>'.$langs->trans(
"MailTopic").
'</b>:<br>'.
"\n";
1197 if ($subjecttosend) {
1198 $helpcontent .= $subjecttosend.
"\n";
1200 $langs->load(
"errors");
1201 $helpcontent .=
'<span class="error">'.$langs->trans(
"ErrorModuleSetupNotComplete", $langs->transnoentitiesnoconv(
"Module310Name")).
'</span>'.
"\n";
1203 $helpcontent .=
"<br>";
1204 $helpcontent .=
'<b>'.$langs->trans(
"MailText").
'</b>:<br>';
1208 $langs->load(
"errors");
1209 $helpcontent .=
'<span class="error">'.$langs->trans(
"ErrorModuleSetupNotComplete", $langs->transnoentitiesnoconv(
"Module310Name")).
'</span>'.
"\n";
1212 print $form->textwithpicto($tmp, $helpcontent, 1,
'help',
'', 0, 2,
'helpemailtosend');
1221 print
'<div class="center">';
1222 $parameters = array();
1223 $reshook = $hookmanager->executeHooks(
'addMoreActionsButtons', $parameters, $object, $action);
1224 if (empty($reshook)) {
1225 print
'<input type="submit" class="button" name="add" value="'.$langs->trans(
"AddSubscription").
'">';
1226 print
' ';
1227 print
'<input type="submit" class="button button-cancel" name="cancel" value="'.$langs->trans(
"Cancel").
'">';
1233 print
"\n<!-- End form subscription -->\n\n";
$id
Support class for third parties, contacts, members, users or resources.
if(! $sortfield) if(! $sortorder) $object
llxFooter($comment='', $zone='private', $disabledoutputofmessages=0)
Empty footer.
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader($head='', $title='', $help_url='', $target='', $disablejs=0, $disablehead=0, $arrayofjs='', $arrayofcss='', $morequerystring='', $morecssonbody='', $replacemainareaby='', $disablenofollow=0, $disablenoindex=0)
Empty header.
Class to manage bank accounts.
Class to manage accounting journals.
Class to manage members of a foundation.
const STATUS_VALIDATED
Validated status.
Class to manage members type.
Class to manage products or services.
Class to manage third parties objects (customers, suppliers, prospects...)
Class to manage subscriptions of foundation members.
Class to manage translations.
Class to manage Dolibarr users.
dol_get_first_day($year, $month=1, $gm=false)
Return GMT time for first day of a month or year.
dol_time_plus_duree($time, $duration_value, $duration_unit, $ruleforendofmonth=0)
Add a delay to a date.
dol_get_last_day($year, $month=12, $gm=false)
Return GMT time for last day of a month or year.
dol_most_recent_file($dir, $regexfilter='', $excludefilter=array('(\.meta|_preview.*\.png) $', '^\.'), $nohook=0, $mode=0)
Return file(s) into a directory (by default most recent)
dol_now($mode='gmt')
Return date for now.
dol_mktime($hour, $minute, $second, $month, $day, $year, $gm='auto', $check=1)
Return a timestamp date built from detailed information (by default a local PHP server timestamp) Rep...
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0, $attop=0)
Set event messages in dol_events session object.
picto_from_langcode($codelang, $moreatt='', $notitlealt=0)
Return img flag of country for a language code or country code.
print_liste_field_titre($name, $file="", $field="", $begin="", $param="", $moreattrib="", $sortfield="", $sortorder="", $prefix="", $tooltip="", $forcenowrapcolumntitle=0)
Show title line of an array.
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2, $allowothertags=array())
Show picto whatever it's its name (generic function)
img_warning($titlealt='default', $moreatt='', $morecss='pictowarning')
Show warning logo.
GETPOSTINT($paramname, $method=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $picto='', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limittoshow=0, $moretabssuffix='', $dragdropfile=0, $morecssdiv='')
Show tabs of a record.
price2num($amount, $rounding='', $option=0)
Function that return a number with universal decimal format (decimal separator is '.
dol_get_fiche_end($notab=0)
Return tab footer of a card.
setEventMessage($mesgs, $style='mesgs', $noduplicate=0, $attop=0)
Set event message in dol_events session object.
price($amount, $form=0, $outlangs='', $trunc=1, $rounding=-1, $forcerounding=-1, $currency_code='')
Function to format a value into an amount for visual output Function used into PDF and HTML pages.
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
dol_concatdesc($text1, $text2, $forxml=false, $invert=false)
Concat 2 descriptions with a new line between them (second operand after first one with appropriate n...
getDolCurrency()
Return the main currency ('EUR', 'USD', ...)
yn($yesno, $format=1, $color=0)
Return yes or no in current language.
complete_substitutions_array(&$substitutionarray, $outputlangs, $object=null, $parameters=null, $callfunc="completesubstitutionarray")
Complete the $substitutionarray with more entries coming from external module that had set the "subst...
make_substitutions($text, $substitutionarray, $outputlangs=null, $converttextinhtmlifnecessary=0)
Make substitution into a text string, replacing keys with vals from $substitutionarray (oldval=>newva...
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs=null, $encodetooutput=false, $decorate=0)
Output date in a string format according to outputlangs (or langs if not defined).
dol_print_error($db=null, $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
load_fiche_titre($title, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='', $morecssonpicto='widthpictotitle')
Load a title with picto.
dol_htmlentitiesbr($stringtoencode, $nl2brmode=0, $pagecodefrom='UTF-8', $removelasteolbr=1)
This function is called to encode a string into a HTML string but differs from htmlentities because a...
getDolGlobalString($key, $default='')
Return a Dolibarr global constant string value.
isModEnabled($module)
Is Dolibarr module enabled.
img_edit($titlealt='default', $float=0, $other='')
Show logo edit/modify fiche.
dol_escape_htmltag($stringtoescape, $keepb=0, $keepn=0, $noescapetags='', $escapeonlyhtmltags=0, $cleanalsojavascript=0)
Returns text escaped for inclusion in HTML alt or title or value tags, or into values of HTML input f...
print $langs trans("Show") . '< td style="' . $timeColor . '" align="center"> s</td > badge status0 badge status4 badge status3 Error badge status8< td align="center">< span class="badge ' . $badge . '"></span ></td >< td align="center">< a href="#" class="button button-small" onclick="openLogModal(this)" data-req="' . dol_escape_htmltag($reqSafe) . '" data-res="' . dol_escape_htmltag($resSafe) . '" data-err="' . dol_escape_htmltag($errSafe) . '">< span class="fa fa-search-plus"></span ></a ></td ></tr >< tr >< td colspan="' . $colspan . '" class="opacitymedium"></td ></tr ></table ></div ></form > logModal none logModal none s a JSON string
buildzip.php
member_prepare_head(Adherent $object)
Return array head with list of tabs to view object information.
print $langs trans('Date')." left Ref Label right Qty right Price right TotalHT right TotalTTC right right right right right right right right right centpercent right TotalHT right n right VAT right n right TotalVAT right n No sujeto a RE IRPF right TotalLT1 right n right TotalLT2 right n right TotalTTC right n takeposcustomercurrency takeposcustomercurrency takeposcustomercurrency takeposcustomercurrency right TotalTTC takeposcustomercurrency right takeposcustomercurrency n right Paid right PaymentTypeShortLIQ right SELECT p pos_change as p datep as p p num_paiement as f pf amount as amount
restrictedArea(User $user, $features, $object=0, $tableandshare='', $feature2='', $dbt_keyfield='fk_soc', $dbt_select='rowid', $isdraft=0, $mode=0)
Check permissions of a user to show a page and an object.