Merge branch '15.0' of git@github.com:Dolibarr/dolibarr.git into develop
This commit is contained in:
commit
3b6f7bff66
@ -166,7 +166,6 @@ done >>%{name}.lang
|
||||
%_datadir/dolibarr/htdocs/blockedlog
|
||||
%_datadir/dolibarr/htdocs/bookmarks
|
||||
%_datadir/dolibarr/htdocs/bom
|
||||
%_datadir/dolibarr/htdocs/cashdesk
|
||||
%_datadir/dolibarr/htdocs/categories
|
||||
%_datadir/dolibarr/htdocs/collab
|
||||
%_datadir/dolibarr/htdocs/comm
|
||||
|
||||
@ -247,7 +247,6 @@ done >>%{name}.lang
|
||||
%_datadir/dolibarr/htdocs/blockedlog
|
||||
%_datadir/dolibarr/htdocs/bookmarks
|
||||
%_datadir/dolibarr/htdocs/bom
|
||||
%_datadir/dolibarr/htdocs/cashdesk
|
||||
%_datadir/dolibarr/htdocs/categories
|
||||
%_datadir/dolibarr/htdocs/collab
|
||||
%_datadir/dolibarr/htdocs/comm
|
||||
|
||||
@ -163,7 +163,6 @@ done >>%{name}.lang
|
||||
%_datadir/dolibarr/htdocs/blockedlog
|
||||
%_datadir/dolibarr/htdocs/bookmarks
|
||||
%_datadir/dolibarr/htdocs/bom
|
||||
%_datadir/dolibarr/htdocs/cashdesk
|
||||
%_datadir/dolibarr/htdocs/categories
|
||||
%_datadir/dolibarr/htdocs/collab
|
||||
%_datadir/dolibarr/htdocs/comm
|
||||
|
||||
@ -174,7 +174,6 @@ done >>%{name}.lang
|
||||
%_datadir/dolibarr/htdocs/blockedlog
|
||||
%_datadir/dolibarr/htdocs/bookmarks
|
||||
%_datadir/dolibarr/htdocs/bom
|
||||
%_datadir/dolibarr/htdocs/cashdesk
|
||||
%_datadir/dolibarr/htdocs/categories
|
||||
%_datadir/dolibarr/htdocs/collab
|
||||
%_datadir/dolibarr/htdocs/comm
|
||||
|
||||
@ -196,6 +196,9 @@ print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
|
||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||
print '<input type="hidden" name="action" value="updateall">';
|
||||
|
||||
|
||||
// Mains options
|
||||
|
||||
print load_fiche_titre($langs->trans("MemberMainOptions"), '', '');
|
||||
|
||||
print '<div class="div-table-responsive-no-min">';
|
||||
@ -286,51 +289,15 @@ print '</div>';
|
||||
|
||||
print '</form>';
|
||||
|
||||
print '<br>';
|
||||
|
||||
|
||||
/*
|
||||
* Edit info of model document
|
||||
*/
|
||||
$constantes = array(
|
||||
'ADHERENT_CARD_TYPE',
|
||||
//'ADHERENT_CARD_BACKGROUND',
|
||||
'ADHERENT_CARD_HEADER_TEXT',
|
||||
'ADHERENT_CARD_TEXT',
|
||||
'ADHERENT_CARD_TEXT_RIGHT',
|
||||
'ADHERENT_CARD_FOOTER_TEXT'
|
||||
);
|
||||
|
||||
print load_fiche_titre($langs->trans("MembersCards"), '', '');
|
||||
|
||||
$helptext = '*'.$langs->trans("FollowingConstantsWillBeSubstituted").'<br>';
|
||||
$helptext .= '__DOL_MAIN_URL_ROOT__, __ID__, __FIRSTNAME__, __LASTNAME__, __FULLNAME__, __LOGIN__, __PASSWORD__, ';
|
||||
$helptext .= '__COMPANY__, __ADDRESS__, __ZIP__, __TOWN__, __COUNTRY__, __EMAIL__, __BIRTH__, __PHOTO__, __TYPE__, ';
|
||||
$helptext .= '__YEAR__, __MONTH__, __DAY__';
|
||||
|
||||
form_constantes($constantes, 0, $helptext);
|
||||
|
||||
print '<br>';
|
||||
|
||||
|
||||
/*
|
||||
* Edit info of model document
|
||||
*/
|
||||
$constantes = array('ADHERENT_ETIQUETTE_TYPE', 'ADHERENT_ETIQUETTE_TEXT');
|
||||
|
||||
print load_fiche_titre($langs->trans("MembersTickets"), '', '');
|
||||
|
||||
$helptext = '*'.$langs->trans("FollowingConstantsWillBeSubstituted").'<br>';
|
||||
$helptext .= '__DOL_MAIN_URL_ROOT__, __ID__, __FIRSTNAME__, __LASTNAME__, __FULLNAME__, __LOGIN__, __PASSWORD__, ';
|
||||
$helptext .= '__COMPANY__, __ADDRESS__, __ZIP__, __TOWN__, __COUNTRY__, __EMAIL__, __BIRTH__, __PHOTO__, __TYPE__, ';
|
||||
$helptext .= '__YEAR__, __MONTH__, __DAY__';
|
||||
|
||||
form_constantes($constantes, 0, $helptext);
|
||||
$dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']);
|
||||
|
||||
// Defined model definition table
|
||||
$def = array();
|
||||
$sql = "SELECT nom";
|
||||
$sql = "SELECT nom as name";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."document_model";
|
||||
$sql .= " WHERE type = '".$db->escape($type)."'";
|
||||
$sql .= " AND entity = ".$conf->entity;
|
||||
@ -339,14 +306,15 @@ if ($resql) {
|
||||
$i = 0;
|
||||
$num_rows = $db->num_rows($resql);
|
||||
while ($i < $num_rows) {
|
||||
$array = $db->fetch_array($resql);
|
||||
array_push($def, $array[0]);
|
||||
$obj = $db->fetch_object($resql);
|
||||
array_push($def, $obj->name);
|
||||
$i++;
|
||||
}
|
||||
} else {
|
||||
dol_print_error($db);
|
||||
}
|
||||
|
||||
|
||||
print load_fiche_titre($langs->trans("MembersDocModules"), '', '');
|
||||
|
||||
print '<div class="div-table-responsive-no-min">';
|
||||
@ -460,6 +428,55 @@ foreach ($dirmodels as $reldir) {
|
||||
print '</table>';
|
||||
print '</div>';
|
||||
|
||||
|
||||
|
||||
/*
|
||||
TODO Use a global form instead of embeded form into table
|
||||
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
|
||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||
print '<input type="hidden" name="action" value="updateall">';
|
||||
*/
|
||||
|
||||
/*
|
||||
* Edit info of model document
|
||||
*/
|
||||
$constantes = array(
|
||||
'ADHERENT_CARD_TYPE',
|
||||
//'ADHERENT_CARD_BACKGROUND',
|
||||
'ADHERENT_CARD_HEADER_TEXT',
|
||||
'ADHERENT_CARD_TEXT',
|
||||
'ADHERENT_CARD_TEXT_RIGHT',
|
||||
'ADHERENT_CARD_FOOTER_TEXT'
|
||||
);
|
||||
|
||||
print load_fiche_titre($langs->trans("MembersCards"), '', '');
|
||||
|
||||
$helptext = '*'.$langs->trans("FollowingConstantsWillBeSubstituted").'<br>';
|
||||
$helptext .= '__DOL_MAIN_URL_ROOT__, __ID__, __FIRSTNAME__, __LASTNAME__, __FULLNAME__, __LOGIN__, __PASSWORD__, ';
|
||||
$helptext .= '__COMPANY__, __ADDRESS__, __ZIP__, __TOWN__, __COUNTRY__, __EMAIL__, __BIRTH__, __PHOTO__, __TYPE__, ';
|
||||
$helptext .= '__YEAR__, __MONTH__, __DAY__';
|
||||
|
||||
form_constantes($constantes, 0, $helptext);
|
||||
|
||||
print '<br>';
|
||||
|
||||
|
||||
/*
|
||||
* Edit info of model document
|
||||
*/
|
||||
$constantes = array('ADHERENT_ETIQUETTE_TYPE', 'ADHERENT_ETIQUETTE_TEXT');
|
||||
|
||||
print load_fiche_titre($langs->trans("MembersTickets"), '', '');
|
||||
|
||||
$helptext = '*'.$langs->trans("FollowingConstantsWillBeSubstituted").'<br>';
|
||||
$helptext .= '__DOL_MAIN_URL_ROOT__, __ID__, __FIRSTNAME__, __LASTNAME__, __FULLNAME__, __LOGIN__, __PASSWORD__, ';
|
||||
$helptext .= '__COMPANY__, __ADDRESS__, __ZIP__, __TOWN__, __COUNTRY__, __EMAIL__, __BIRTH__, __PHOTO__, __TYPE__, ';
|
||||
$helptext .= '__YEAR__, __MONTH__, __DAY__';
|
||||
|
||||
form_constantes($constantes, 0, $helptext);
|
||||
|
||||
//print '</form>';
|
||||
|
||||
print "<br>";
|
||||
|
||||
print dol_get_fiche_end();
|
||||
|
||||
@ -1805,6 +1805,7 @@ class Adherent extends CommonObject
|
||||
$paiement = new Paiement($this->db);
|
||||
$paiement->datepaye = $paymentdate;
|
||||
$paiement->amounts = $amounts;
|
||||
$paiement->paiementcode = $operation;
|
||||
$paiement->paiementid = dol_getIdFromCode($this->db, $operation, 'c_paiement', 'code', 'id', 1);
|
||||
$paiement->num_payment = $num_chq;
|
||||
$paiement->note_public = $label;
|
||||
|
||||
@ -613,7 +613,7 @@ class Paiement extends CommonObject
|
||||
// Insert payment into llx_bank
|
||||
$bank_line_id = $acc->addline(
|
||||
$this->datepaye,
|
||||
$this->paiementid, // Payment mode id or code ("CHQ or VIR for example")
|
||||
$this->paiementcode ? $this->paiementcode : $this->paiementid, // Payment mode code ('CB', 'CHQ' or 'VIR' for example). Use payment id if not defined for backward compatibility.
|
||||
$label,
|
||||
$totalamount, // Sign must be positive when we receive money (customer payment), negative when you give money (supplier invoice or credit note)
|
||||
$this->num_payment,
|
||||
|
||||
@ -142,7 +142,7 @@ class box_members_last_subscriptions extends ModeleBoxes
|
||||
|
||||
$this->info_box_contents[$line][] = array(
|
||||
'td' => 'class="tdoverflowmax150 maxwidth150onsmartphone"',
|
||||
'text' => $staticmember->getNomUrl(-1, 32, 'subscription'),
|
||||
'text' => $staticmember->getNomUrl(-1, 32, 'card'),
|
||||
'asis' => 1,
|
||||
);
|
||||
|
||||
|
||||
@ -5310,8 +5310,7 @@ abstract class CommonObject
|
||||
$sav_charset_output = $outputlangs->charset_output;
|
||||
|
||||
if (in_array(get_class($this), array('Adherent'))) {
|
||||
$arrayofrecords = array(); // The write_file of templates of adherent class need this var
|
||||
$resultwritefile = $obj->write_file($this, $outputlangs, $srctemplatepath, 'member', 1, $moreparams);
|
||||
$resultwritefile = $obj->write_file($this, $outputlangs, $srctemplatepath, 'member', 1, 'tmp_cards', $moreparams);
|
||||
} else {
|
||||
$resultwritefile = $obj->write_file($this, $outputlangs, $srctemplatepath, $hidedetails, $hidedesc, $hideref, $moreparams);
|
||||
}
|
||||
|
||||
@ -1627,6 +1627,7 @@ function form_constantes($tableau, $strictw3c = 0, $helptext = '', $text = 'Valu
|
||||
if (empty($strictw3c)) {
|
||||
print "\n".'<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
|
||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||
print '<input type="hidden" name="page_y" value="'.newToken().'">';
|
||||
}
|
||||
|
||||
print '<tr class="oddeven">';
|
||||
@ -1733,7 +1734,7 @@ function form_constantes($tableau, $strictw3c = 0, $helptext = '', $text = 'Valu
|
||||
// Submit
|
||||
if (empty($strictw3c)) {
|
||||
print '<td class="center">';
|
||||
print '<input type="submit" class="button" value="'.$langs->trans("Update").'" name="Button">';
|
||||
print '<input type="submit" class="button small reposition" value="'.$langs->trans("Update").'" name="update">';
|
||||
print "</td>";
|
||||
}
|
||||
|
||||
@ -1748,7 +1749,7 @@ function form_constantes($tableau, $strictw3c = 0, $helptext = '', $text = 'Valu
|
||||
print '</div>';
|
||||
|
||||
if (!empty($strictw3c) && $strictw3c == 1) {
|
||||
print '<div align="center"><input type="submit" class="button" value="'.$langs->trans("Update").'" name="update"></div>';
|
||||
print '<div align="center"><input type="submit" class="button small reposition" value="'.$langs->trans("Update").'" name="update"></div>';
|
||||
print "</form>\n";
|
||||
}
|
||||
}
|
||||
|
||||
@ -10501,6 +10501,7 @@ function newToken()
|
||||
|
||||
/**
|
||||
* Return the value of token currently saved into session with name 'token'.
|
||||
* For ajax call, you must use this token as a parameter of the call into the js calling script (the called ajax php page must also set constant NOTOKENRENEWAL).
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
|
||||
@ -366,7 +366,7 @@ class pdf_crabe extends ModelePDFFactures
|
||||
$pdf->SetTitle($outputlangs->convToOutputCharset($object->ref));
|
||||
$pdf->SetSubject($outputlangs->transnoentities("PdfInvoiceTitle"));
|
||||
$pdf->SetCreator("Dolibarr ".DOL_VERSION);
|
||||
$pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs)));
|
||||
$pdf->SetAuthor($mysoc->name.($user->id > 0 ? ' - '.$outputlangs->convToOutputCharset($user->getFullName($outputlangs)) : ''));
|
||||
$pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("PdfInvoiceTitle")." ".$outputlangs->convToOutputCharset($object->thirdparty->name));
|
||||
if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) {
|
||||
$pdf->SetCompression(false);
|
||||
@ -374,10 +374,14 @@ class pdf_crabe extends ModelePDFFactures
|
||||
|
||||
// Set certificate
|
||||
$cert = empty($user->conf->CERTIFICATE_CRT) ? '' : $user->conf->CERTIFICATE_CRT;
|
||||
$certprivate = empty($user->conf->CERTIFICATE_CRT_PRIVATE) ? '' : $user->conf->CERTIFICATE_CRT_PRIVATE;
|
||||
// If user has no certificate, we try to take the company one
|
||||
if (!$cert) {
|
||||
$cert = empty($conf->global->CERTIFICATE_CRT) ? '' : $conf->global->CERTIFICATE_CRT;
|
||||
}
|
||||
if (!$certprivate) {
|
||||
$certprivate = empty($conf->global->CERTIFICATE_CRT_PRIVATE) ? '' : $conf->global->CERTIFICATE_CRT_PRIVATE;
|
||||
}
|
||||
// If a certificate is found
|
||||
if ($cert) {
|
||||
$info = array(
|
||||
@ -386,7 +390,7 @@ class pdf_crabe extends ModelePDFFactures
|
||||
'Reason' => 'INVOICE',
|
||||
'ContactInfo' => $this->emetteur->email
|
||||
);
|
||||
$pdf->setSignature($cert, $cert, $this->emetteur->name, '', 2, $info);
|
||||
$pdf->setSignature($cert, $certprivate, $this->emetteur->name, '', 2, $info);
|
||||
}
|
||||
|
||||
$pdf->SetMargins($this->marge_gauche, $this->marge_haute, $this->marge_droite); // Left, Top, Right
|
||||
@ -814,6 +818,7 @@ class pdf_crabe extends ModelePDFFactures
|
||||
$this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforinfotot - $heightforfreetext - $heightforfooter, 0, $outputlangs, 1, 0, $object->multicurrency_code);
|
||||
$bottomlasttab = $this->page_hauteur - $heightforinfotot - $heightforfreetext - $heightforfooter + 1;
|
||||
}
|
||||
dol_syslog("bottomlasttab=".$bottomlasttab." this->page_hauteur=".$this->page_hauteur." heightforinfotot=".$heightforinfotot." heightforfreetext=".$heightforfreetext." heightforfooter=".$heightforfooter);
|
||||
|
||||
// Display info area
|
||||
$posy = $this->_tableau_info($pdf, $object, $bottomlasttab, $outputlangs, $outputlangsbis);
|
||||
@ -1176,9 +1181,9 @@ class pdf_crabe extends ModelePDFFactures
|
||||
|
||||
$pdf->SetXY($this->marge_gauche, $posy);
|
||||
$pdf->writeHTMLCell(80, 5, '', '', dol_htmlentitiesbr($linktopay), 0, 1);
|
||||
}
|
||||
|
||||
$posy = $pdf->GetY() + 1;
|
||||
$posy = $pdf->GetY() + 1;
|
||||
}
|
||||
}
|
||||
|
||||
// Show payment mode CHQ
|
||||
|
||||
@ -367,7 +367,7 @@ class pdf_sponge extends ModelePDFFactures
|
||||
$pdf->SetTitle($outputlangs->convToOutputCharset($object->ref));
|
||||
$pdf->SetSubject($outputlangs->transnoentities("PdfInvoiceTitle"));
|
||||
$pdf->SetCreator("Dolibarr ".DOL_VERSION);
|
||||
$pdf->SetAuthor($outputlangs->convToOutputCharset($user->getFullName($outputlangs)));
|
||||
$pdf->SetAuthor($mysoc->name.($user->id > 0 ? ' - '.$outputlangs->convToOutputCharset($user->getFullName($outputlangs)) : ''));
|
||||
$pdf->SetKeyWords($outputlangs->convToOutputCharset($object->ref)." ".$outputlangs->transnoentities("PdfInvoiceTitle")." ".$outputlangs->convToOutputCharset($object->thirdparty->name));
|
||||
if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) {
|
||||
$pdf->SetCompression(false);
|
||||
@ -375,10 +375,14 @@ class pdf_sponge extends ModelePDFFactures
|
||||
|
||||
// Set certificate
|
||||
$cert = empty($user->conf->CERTIFICATE_CRT) ? '' : $user->conf->CERTIFICATE_CRT;
|
||||
$certprivate = empty($user->conf->CERTIFICATE_CRT_PRIVATE) ? '' : $user->conf->CERTIFICATE_CRT_PRIVATE;
|
||||
// If user has no certificate, we try to take the company one
|
||||
if (!$cert) {
|
||||
$cert = empty($conf->global->CERTIFICATE_CRT) ? '' : $conf->global->CERTIFICATE_CRT;
|
||||
}
|
||||
if (!$certprivate) {
|
||||
$certprivate = empty($conf->global->CERTIFICATE_CRT_PRIVATE) ? '' : $conf->global->CERTIFICATE_CRT_PRIVATE;
|
||||
}
|
||||
// If a certificate is found
|
||||
if ($cert) {
|
||||
$info = array(
|
||||
@ -387,7 +391,7 @@ class pdf_sponge extends ModelePDFFactures
|
||||
'Reason' => 'INVOICE',
|
||||
'ContactInfo' => $this->emetteur->email
|
||||
);
|
||||
$pdf->setSignature($cert, $cert, $this->emetteur->name, '', 2, $info);
|
||||
$pdf->setSignature($cert, $certprivate, $this->emetteur->name, '', 2, $info);
|
||||
}
|
||||
|
||||
$pdf->SetMargins($this->marge_gauche, $this->marge_haute, $this->marge_droite); // Left, Top, Right
|
||||
@ -1255,9 +1259,9 @@ class pdf_sponge extends ModelePDFFactures
|
||||
|
||||
$pdf->SetXY($this->marge_gauche, $posy);
|
||||
$pdf->writeHTMLCell(80, 5, '', '', dol_htmlentitiesbr($linktopay), 0, 1);
|
||||
}
|
||||
|
||||
$posy = $pdf->GetY() + 1;
|
||||
$posy = $pdf->GetY() + 1;
|
||||
}
|
||||
}
|
||||
|
||||
// Show payment mode CHQ
|
||||
|
||||
@ -33,6 +33,32 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commonstickergenerator.class.php';
|
||||
*/
|
||||
class pdf_standard extends CommonStickerGenerator
|
||||
{
|
||||
/**
|
||||
* Dolibarr version of the loaded document
|
||||
* @var string
|
||||
*/
|
||||
public $version = 'dolibarr';
|
||||
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param DoliDB $db Database handler
|
||||
*/
|
||||
public function __construct($db)
|
||||
{
|
||||
global $conf, $langs, $mysoc;
|
||||
|
||||
// Translations
|
||||
$langs->loadLangs(array("main", "admin"));
|
||||
|
||||
$this->db = $db;
|
||||
$this->name = "standard";
|
||||
$this->description = $langs->trans('TemplateforBusinessCards');
|
||||
//$this->update_main_doc_field = 1; // Save the name of generated file as the main doc when generating a doc with this template
|
||||
|
||||
$this->type = 'pdf-various-sizes';
|
||||
}
|
||||
|
||||
/**
|
||||
* Output a sticker on page at position _COUNTX, _COUNTY (_COUNTX and _COUNTY start from 0)
|
||||
|
||||
@ -2221,4 +2221,5 @@ API_DISABLE_COMPRESSION=Disable compression of API responses
|
||||
EachTerminalHasItsOwnCounter=Each terminal use its own counter.
|
||||
FillAndSaveAccountIdAndSecret=Fill and save account ID and secret first
|
||||
PreviousHash=Previous hash
|
||||
LateWarningAfter="Late" warning after
|
||||
LateWarningAfter="Late" warning after
|
||||
TemplateforBusinessCards=Template for a business card in different size
|
||||
@ -159,7 +159,7 @@ HTPasswordExport=htpassword file generation
|
||||
NoThirdPartyAssociatedToMember=No third party associated with this member
|
||||
MembersAndSubscriptions=Members and Contributions
|
||||
MoreActions=Complementary action on recording
|
||||
MoreActionsOnSubscription=Complementary action, suggested by default when recording a contribution
|
||||
MoreActionsOnSubscription=Complementary action suggested by default when recording a contribution, also done automatially on online payment of a contribution
|
||||
MoreActionBankDirect=Create a direct entry on bank account
|
||||
MoreActionBankViaInvoice=Create an invoice, and a payment on bank account
|
||||
MoreActionInvoiceOnly=Create an invoice with no payment
|
||||
|
||||
@ -3234,6 +3234,7 @@ if (!function_exists("llxFooter")) {
|
||||
id:<?php echo $object->id; ?>
|
||||
, element:'<?php echo $object->element ?>'
|
||||
, action:'DOC_PREVIEW'
|
||||
, token: '<?php echo currentToken(); ?>'
|
||||
}
|
||||
);
|
||||
});
|
||||
@ -3243,6 +3244,7 @@ if (!function_exists("llxFooter")) {
|
||||
id:<?php echo $object->id; ?>
|
||||
, element:'<?php echo $object->element ?>'
|
||||
, action:'DOC_DOWNLOAD'
|
||||
, token: '<?php echo currentToken(); ?>'
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
@ -111,33 +111,6 @@ if (empty($conf->global->PROJECT_ENABLE_PUBLIC)) {
|
||||
print $enabledisablehtml;
|
||||
print '<input type="hidden" id="PROJECT_ENABLE_PUBLIC" name="PROJECT_ENABLE_PUBLIC" value="'.(empty($conf->global->PROJECT_ENABLE_PUBLIC) ? 0 : 1).'">';
|
||||
|
||||
/*
|
||||
print '<br>';
|
||||
|
||||
if (!empty($conf->global->PROJECT_ENABLE_PUBLIC)) {
|
||||
print '<br>';
|
||||
|
||||
print '<table class="noborder centpercent">';
|
||||
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td>'.$langs->trans("Parameter").'</td>';
|
||||
print '<td class="right">'.$langs->trans("Value").'</td>';
|
||||
print "</tr>\n";
|
||||
|
||||
// param
|
||||
print '<tr class="oddeven" id="tredit"><td>';
|
||||
print $langs->trans("CanEditAmount");
|
||||
print '</td><td class="right">';
|
||||
print $form->selectyesno("MEMBER_NEWFORM_EDITAMOUNT", (!empty($conf->global->MEMBER_NEWFORM_EDITAMOUNT) ? $conf->global->MEMBER_NEWFORM_EDITAMOUNT : 0), 1);
|
||||
print "</td></tr>\n";
|
||||
|
||||
print '</table>';
|
||||
|
||||
print '<div class="center">';
|
||||
print '<input type="submit" class="button button-edit" value="'.$langs->trans("Modify").'">';
|
||||
print '</div>';
|
||||
}
|
||||
*/
|
||||
|
||||
print dol_get_fiche_end();
|
||||
|
||||
|
||||
@ -19,16 +19,6 @@
|
||||
* \file htdocs/public/eventorganization/attendee_new.php
|
||||
* \ingroup project
|
||||
* \brief Example of form to subscribe to an event
|
||||
*
|
||||
* Note that you can add following constant to change behaviour of page
|
||||
* MEMBER_NEWFORM_AMOUNT Default amount for auto-subscribe form
|
||||
* MEMBER_NEWFORM_EDITAMOUNT 0 or 1 = Amount can be edited
|
||||
* MEMBER_NEWFORM_PAYONLINE Suggest payment with paypal, paybox or stripe
|
||||
* MEMBER_NEWFORM_DOLIBARRTURNOVER Show field turnover (specific for dolibarr foundation)
|
||||
* MEMBER_URL_REDIRECT_SUBSCRIPTION Url to redirect once subscribe submitted
|
||||
* MEMBER_NEWFORM_FORCETYPE Force type of member
|
||||
* MEMBER_NEWFORM_FORCEMORPHY Force nature of member (mor/phy)
|
||||
* MEMBER_NEWFORM_FORCECOUNTRYCODE Force country
|
||||
*/
|
||||
|
||||
if (!defined('NOLOGIN')) {
|
||||
|
||||
@ -30,6 +30,7 @@
|
||||
* Note that you can add following constant to change behaviour of page
|
||||
* MEMBER_NEWFORM_AMOUNT Default amount for auto-subscribe form
|
||||
* MEMBER_NEWFORM_EDITAMOUNT 0 or 1 = Amount can be edited
|
||||
* MEMBER_MIN_AMOUNT Minimum amount
|
||||
* MEMBER_NEWFORM_PAYONLINE Suggest payment with paypal, paybox or stripe
|
||||
* MEMBER_NEWFORM_DOLIBARRTURNOVER Show field turnover (specific for dolibarr foundation)
|
||||
* MEMBER_URL_REDIRECT_SUBSCRIPTION Url to redirect once subscribe submitted
|
||||
|
||||
@ -481,7 +481,7 @@ if ($action == 'dopayment') {
|
||||
|
||||
|
||||
// Called when choosing Stripe mode.
|
||||
// When using the Charge API architecture, this code is called after clicking the 'dopayment' with the Charge API architecture.
|
||||
// When using the old Charge API architecture, this code is called after clicking the 'dopayment' with the Charge API architecture.
|
||||
// When using the PaymentIntent API architecture, the Stripe customer was already created when creating PaymentIntent when showing payment page, and the payment is already ok when action=charge.
|
||||
if ($action == 'charge' && !empty($conf->stripe->enabled)) {
|
||||
$amountstripe = $amount;
|
||||
@ -728,7 +728,7 @@ if ($action == 'charge' && !empty($conf->stripe->enabled)) {
|
||||
}
|
||||
}
|
||||
|
||||
// When using the PaymentIntent API architecture
|
||||
// When using the PaymentIntent API architecture (mode set on by default into conf.class.php)
|
||||
if (!empty($conf->global->STRIPE_USE_INTENT_WITH_AUTOMATIC_CONFIRMATION)) {
|
||||
$service = 'StripeTest';
|
||||
$servicestatus = 0;
|
||||
@ -793,8 +793,8 @@ if ($action == 'charge' && !empty($conf->stripe->enabled)) {
|
||||
$remoteip = getUserRemoteIP();
|
||||
|
||||
$_SESSION["onlinetoken"] = $stripeToken;
|
||||
$_SESSION["FinalPaymentAmt"] = $amount;
|
||||
$_SESSION["currencyCodeType"] = $currency;
|
||||
$_SESSION["FinalPaymentAmt"] = $amount; // amount really paid (coming from Stripe). Will be used for check in paymentok.php.
|
||||
$_SESSION["currencyCodeType"] = $currency; // currency really used for payment (coming from Stripe). Will be used for check in paymentok.php.
|
||||
$_SESSION["paymentType"] = '';
|
||||
$_SESSION['ipaddress'] = ($remoteip ? $remoteip : 'unknown'); // Payer ip
|
||||
$_SESSION['payerID'] = is_object($customer) ? $customer->id : '';
|
||||
|
||||
@ -412,12 +412,12 @@ if ($ispaymentok) {
|
||||
$paymentTypeId = dol_getIdFromCode($db, $paymentType, 'c_paiement', 'code', 'id', 1);
|
||||
}
|
||||
|
||||
dol_syslog("FinalPaymentAmt=".$FinalPaymentAmt." paymentTypeId=".$paymentTypeId." currencyCodeType=".$currencyCodeType, LOG_DEBUG, 0, '_payment');
|
||||
dol_syslog("FinalPaymentAmt=".$FinalPaymentAmt." paymentTypeId=".$paymentTypeId." paymentType=".$paymentType." currencyCodeType=".$currencyCodeType, LOG_DEBUG, 0, '_payment');
|
||||
|
||||
// Do action only if $FinalPaymentAmt is set (session variable is cleaned after this page to avoid duplicate actions when page is POST a second time)
|
||||
if (!empty($FinalPaymentAmt) && $paymentTypeId > 0) {
|
||||
// Security protection:
|
||||
if (empty($conf->global->MEMBER_NEWFORM_EDITAMOUNT)) { // If we didn't allow members to choose their membership amount
|
||||
if (empty($conf->global->MEMBER_NEWFORM_EDITAMOUNT)) { // If we didn't allow members to choose their membership amount (if free amount is allowed, no need to check)
|
||||
if ($object->status == $object::STATUS_DRAFT) { // If the member is not yet validated, we check that the amount is the same as expected.
|
||||
$typeid = $object->typeid;
|
||||
|
||||
@ -440,6 +440,17 @@ if ($ispaymentok) {
|
||||
}
|
||||
}
|
||||
|
||||
// Security protection:
|
||||
if (!empty($conf->global->MEMBER_MIN_AMOUNT)) {
|
||||
if ($FinalPaymentAmt < $conf->global->MEMBER_MIN_AMOUNT) {
|
||||
$error++;
|
||||
$errmsg = 'Value of FinalPayment ('.$FinalPaymentAmt.') is lower than the minimum allowed ('.$conf->global->MEMBER_MIN_AMOUNT.'). May be a hack to try to pay a different amount ?';
|
||||
$postactionmessages[] = $errmsg;
|
||||
$ispostactionok = -1;
|
||||
dol_syslog("Failed to validate member (amount lower than minimum): ".$errmsg, LOG_ERR, 0, '_payment');
|
||||
}
|
||||
}
|
||||
|
||||
// Security protection:
|
||||
if ($currencyCodeType && $currencyCodeType != $conf->currency) { // Check that currency is the good one
|
||||
$error++;
|
||||
|
||||
@ -19,16 +19,6 @@
|
||||
* \file htdocs/public/project/suggestbooth.php
|
||||
* \ingroup member
|
||||
* \brief Example of form to suggest a booth
|
||||
*
|
||||
* Note that you can add following constant to change behaviour of page
|
||||
* MEMBER_NEWFORM_AMOUNT Default amount for auto-subscribe form
|
||||
* MEMBER_NEWFORM_EDITAMOUNT 0 or 1 = Amount can be edited
|
||||
* MEMBER_NEWFORM_PAYONLINE Suggest payment with paypal, paybox or stripe
|
||||
* MEMBER_NEWFORM_DOLIBARRTURNOVER Show field turnover (specific for dolibarr foundation)
|
||||
* MEMBER_URL_REDIRECT_SUBSCRIPTION Url to redirect once subscribe submitted
|
||||
* MEMBER_NEWFORM_FORCETYPE Force type of member
|
||||
* MEMBER_NEWFORM_FORCEMORPHY Force nature of member (mor/phy)
|
||||
* MEMBER_NEWFORM_FORCECOUNTRYCODE Force country
|
||||
*/
|
||||
|
||||
if (!defined('NOLOGIN')) {
|
||||
|
||||
@ -19,16 +19,6 @@
|
||||
* \file htdocs/public/project/suggestconference.php
|
||||
* \ingroup member
|
||||
* \brief Example of form to suggest a conference
|
||||
*
|
||||
* Note that you can add following constant to change behaviour of page
|
||||
* MEMBER_NEWFORM_AMOUNT Default amount for auto-subscribe form
|
||||
* MEMBER_NEWFORM_EDITAMOUNT 0 or 1 = Amount can be edited
|
||||
* MEMBER_NEWFORM_PAYONLINE Suggest payment with paypal, paybox or stripe
|
||||
* MEMBER_NEWFORM_DOLIBARRTURNOVER Show field turnover (specific for dolibarr foundation)
|
||||
* MEMBER_URL_REDIRECT_SUBSCRIPTION Url to redirect once subscribe submitted
|
||||
* MEMBER_NEWFORM_FORCETYPE Force type of member
|
||||
* MEMBER_NEWFORM_FORCEMORPHY Force nature of member (mor/phy)
|
||||
* MEMBER_NEWFORM_FORCECOUNTRYCODE Force country
|
||||
*/
|
||||
|
||||
if (!defined('NOLOGIN')) {
|
||||
|
||||
@ -126,44 +126,6 @@ if (!empty($conf->global->RECRUITMENT_ENABLE_PUBLIC_INTERFACE)) {
|
||||
print '<td class="right">'.$langs->trans("Value").'</td>';
|
||||
print "</tr>\n";
|
||||
|
||||
// Force Type
|
||||
$adht = new AdherentType($db);
|
||||
print '<tr class="oddeven drag" id="trforcetype"><td>';
|
||||
print $langs->trans("ForceMemberType");
|
||||
print '</td><td class="right">';
|
||||
$listofval = array();
|
||||
$listofval += $adht->liste_array();
|
||||
$forcetype = $conf->global->MEMBER_NEWFORM_FORCETYPE ?: -1;
|
||||
print $form->selectarray("MEMBER_NEWFORM_FORCETYPE", $listofval, $forcetype, count($listofval) > 1 ? 1 : 0);
|
||||
print "</td></tr>\n";
|
||||
|
||||
// Amount
|
||||
print '<tr class="oddeven" id="tramount"><td>';
|
||||
print $langs->trans("DefaultAmount");
|
||||
print '</td><td class="right">';
|
||||
print '<input type="text" id="MEMBER_NEWFORM_AMOUNT" name="MEMBER_NEWFORM_AMOUNT" size="5" value="'.(!empty($conf->global->MEMBER_NEWFORM_AMOUNT) ? $conf->global->MEMBER_NEWFORM_AMOUNT : '').'">';
|
||||
print "</td></tr>\n";
|
||||
|
||||
// Can edit
|
||||
print '<tr class="oddeven" id="tredit"><td>';
|
||||
print $langs->trans("CanEditAmount");
|
||||
print '</td><td class="right">';
|
||||
print $form->selectyesno("MEMBER_NEWFORM_EDITAMOUNT", (!empty($conf->global->MEMBER_NEWFORM_EDITAMOUNT) ? $conf->global->MEMBER_NEWFORM_EDITAMOUNT : 0), 1);
|
||||
print "</td></tr>\n";
|
||||
|
||||
// Jump to an online payment page
|
||||
print '<tr class="oddeven" id="trpayment"><td>';
|
||||
print $langs->trans("MEMBER_NEWFORM_PAYONLINE");
|
||||
print '</td><td class="right">';
|
||||
$listofval = array();
|
||||
$listofval['-1'] = $langs->trans('No');
|
||||
$listofval['all'] = $langs->trans('Yes').' ('.$langs->trans("VisitorCanChooseItsPaymentMode").')';
|
||||
if (!empty($conf->paybox->enabled)) $listofval['paybox'] = 'Paybox';
|
||||
if (!empty($conf->paypal->enabled)) $listofval['paypal'] = 'PayPal';
|
||||
if (!empty($conf->stripe->enabled)) $listofval['stripe'] = 'Stripe';
|
||||
print $form->selectarray("MEMBER_NEWFORM_PAYONLINE", $listofval, (!empty($conf->global->MEMBER_NEWFORM_PAYONLINE) ? $conf->global->MEMBER_NEWFORM_PAYONLINE : ''), 0);
|
||||
print "</td></tr>\n";
|
||||
|
||||
print '</table>';
|
||||
|
||||
print '<div class="center">';
|
||||
|
||||
@ -2329,7 +2329,7 @@ class Societe extends CommonObject
|
||||
/**
|
||||
* Return array of sales representatives
|
||||
*
|
||||
* @param User $user Object user
|
||||
* @param User $user Object user (not used)
|
||||
* @param int $mode 0=Array with properties, 1=Array of id.
|
||||
* @param string $sortfield List of sort fields, separated by comma. Example: 't1.fielda,t2.fieldb'
|
||||
* @param string $sortorder Sort order, separated by comma. Example: 'ASC,DESC';
|
||||
|
||||
Loading…
Reference in New Issue
Block a user