Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop
This commit is contained in:
commit
d5e6273b45
@ -370,6 +370,7 @@ if ($search_lastname) $param .= "&search_lastname=".urlencode($search_lastname)
|
||||
if ($search_gender) $param .= "&search_gender=".urlencode($search_gender);
|
||||
if ($search_login) $param .= "&search_login=".urlencode($search_login);
|
||||
if ($search_email) $param .= "&search_email=".urlencode($search_email);
|
||||
if ($search_categ) $param .= "&search_categ=".urlencode($search_categ);
|
||||
if ($search_company) $param .= "&search_company=".urlencode($search_company);
|
||||
if ($search_address != '') $param .= "&search_address=".urlencode($search_address);
|
||||
if ($search_town != '') $param .= "&search_town=".urlencode($search_town);
|
||||
@ -545,7 +546,7 @@ if (!empty($arrayfields['d.email']['checked'])) {
|
||||
print '<td class="liste_titre left">';
|
||||
print '<input class="flat maxwidth75imp" type="text" name="search_email" value="'.dol_escape_htmltag($search_email).'"></td>';
|
||||
}
|
||||
|
||||
// End of subscription date
|
||||
if (!empty($arrayfields['d.datefin']['checked'])) {
|
||||
print '<td class="liste_titre left">';
|
||||
print '</td>';
|
||||
|
||||
@ -77,6 +77,7 @@ if ($action == 'update' && empty($_POST["cancel"]))
|
||||
dolibarr_set_const($db, "MAIN_MAIL_SMTPS_PW", GETPOST("MAIN_MAIL_SMTPS_PW", 'none'), 'chaine', 0, '', $conf->entity);
|
||||
dolibarr_set_const($db, "MAIN_MAIL_EMAIL_TLS", GETPOST("MAIN_MAIL_EMAIL_TLS", 'int'), 'chaine', 0, '', $conf->entity);
|
||||
dolibarr_set_const($db, "MAIN_MAIL_EMAIL_STARTTLS", GETPOST("MAIN_MAIL_EMAIL_STARTTLS", 'int'), 'chaine', 0, '', $conf->entity);
|
||||
dolibarr_set_const($db, "MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED", GETPOST("MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED", 'int'), 'chaine', 0, '', $conf->entity);
|
||||
|
||||
dolibarr_set_const($db, "MAIN_MAIL_EMAIL_DKIM_ENABLED", GETPOST("MAIN_MAIL_EMAIL_DKIM_ENABLED", 'int'), 'chaine', 0, '', $conf->entity);
|
||||
dolibarr_set_const($db, "MAIN_MAIL_EMAIL_DKIM_DOMAIN", GETPOST("MAIN_MAIL_EMAIL_DKIM_DOMAIN", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
|
||||
@ -156,6 +157,8 @@ if ($action == 'edit')
|
||||
jQuery("#MAIN_MAIL_EMAIL_TLS").prop("disabled", true);
|
||||
jQuery("#MAIN_MAIL_EMAIL_STARTTLS").val(0);
|
||||
jQuery("#MAIN_MAIL_EMAIL_STARTTLS").prop("disabled", true);
|
||||
jQuery("#MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED").val(0);
|
||||
jQuery("#MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED").prop("disabled", true);
|
||||
jQuery("#MAIN_MAIL_EMAIL_DKIM_ENABLED").val(0);
|
||||
jQuery("#MAIN_MAIL_EMAIL_DKIM_ENABLED").prop("disabled", true);
|
||||
jQuery("#MAIN_MAIL_EMAIL_DKIM_DOMAIN").prop("disabled", true);
|
||||
@ -187,6 +190,8 @@ if ($action == 'edit')
|
||||
jQuery("#MAIN_MAIL_EMAIL_TLS").removeAttr("disabled");
|
||||
jQuery("#MAIN_MAIL_EMAIL_STARTTLS").val('.$conf->global->MAIN_MAIL_EMAIL_STARTTLS.');
|
||||
jQuery("#MAIN_MAIL_EMAIL_STARTTLS").removeAttr("disabled");
|
||||
jQuery("#MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED").val('.$conf->global->MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED.');
|
||||
jQuery("#MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED").removeAttr("disabled");
|
||||
jQuery("#MAIN_MAIL_EMAIL_DKIM_ENABLED").val(0);
|
||||
jQuery("#MAIN_MAIL_EMAIL_DKIM_ENABLED").prop("disabled", true);
|
||||
jQuery("#MAIN_MAIL_EMAIL_DKIM_DOMAIN").prop("disabled", true);
|
||||
@ -211,6 +216,8 @@ if ($action == 'edit')
|
||||
jQuery("#MAIN_MAIL_EMAIL_TLS").removeAttr("disabled");
|
||||
jQuery("#MAIN_MAIL_EMAIL_STARTTLS").val('.$conf->global->MAIN_MAIL_EMAIL_STARTTLS.');
|
||||
jQuery("#MAIN_MAIL_EMAIL_STARTTLS").removeAttr("disabled");
|
||||
jQuery("#MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED").val('.$conf->global->MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED.');
|
||||
jQuery("#MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED").removeAttr("disabled");
|
||||
jQuery("#MAIN_MAIL_EMAIL_DKIM_ENABLED").val('.$conf->global->MAIN_MAIL_EMAIL_DKIM_ENABLED.');
|
||||
jQuery("#MAIN_MAIL_EMAIL_DKIM_ENABLED").removeAttr("disabled");
|
||||
jQuery("#MAIN_MAIL_EMAIL_DKIM_DOMAIN").removeAttr("disabled");
|
||||
@ -233,12 +240,16 @@ if ($action == 'edit')
|
||||
initfields();
|
||||
});
|
||||
jQuery("#MAIN_MAIL_EMAIL_TLS").change(function() {
|
||||
if (jQuery("#MAIN_MAIL_EMAIL_STARTTLS").val() == 1)
|
||||
if (jQuery("#MAIN_MAIL_EMAIL_TLS").val() == 1)
|
||||
jQuery("#MAIN_MAIL_EMAIL_STARTTLS").val(0);
|
||||
else
|
||||
jQuery("#MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED").val(0);
|
||||
});
|
||||
jQuery("#MAIN_MAIL_EMAIL_STARTTLS").change(function() {
|
||||
if (jQuery("#MAIN_MAIL_EMAIL_TLS").val() == 1)
|
||||
if (jQuery("#MAIN_MAIL_EMAIL_STARTTLS").val() == 1)
|
||||
jQuery("#MAIN_MAIL_EMAIL_TLS").val(0);
|
||||
else
|
||||
jQuery("#MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED").val(0);
|
||||
});
|
||||
})';
|
||||
print '</script>'."\n";
|
||||
@ -406,6 +417,17 @@ if ($action == 'edit')
|
||||
} else print yn(0).' ('.$langs->trans("NotSupported").')';
|
||||
print '</td></tr>';
|
||||
|
||||
// SMTP_ALLOW_SELF_SIGNED
|
||||
print '<tr class="oddeven"><td>'.$langs->trans("MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED").'</td><td>';
|
||||
if (!empty($conf->use_javascript_ajax) || (isset($conf->global->MAIN_MAIL_SENDMODE) && in_array($conf->global->MAIN_MAIL_SENDMODE, array('smtps', 'swiftmailer'))))
|
||||
{
|
||||
if (function_exists('openssl_open'))
|
||||
{
|
||||
print $form->selectyesno('MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED', (!empty($conf->global->MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED) ? $conf->global->MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED : 0), 1);
|
||||
} else print yn(0).' ('.$langs->trans("YourPHPDoesNotHaveSSLSupport").')';
|
||||
} else print yn(0).' ('.$langs->trans("NotSupported").')';
|
||||
print '</td></tr>';
|
||||
|
||||
// DKIM
|
||||
print '<tr class="oddeven dkim"><td>'.$langs->trans("MAIN_MAIL_EMAIL_DKIM_ENABLED").'</td><td>';
|
||||
if (!empty($conf->use_javascript_ajax) || (isset($conf->global->MAIN_MAIL_SENDMODE) && in_array($conf->global->MAIN_MAIL_SENDMODE, array('swiftmailer'))))
|
||||
@ -571,6 +593,17 @@ if ($action == 'edit')
|
||||
} else print '<span class="opacitymedium">'.yn(0).' ('.$langs->trans("NotSupported").')</span>';
|
||||
print '</td></tr>';
|
||||
|
||||
// SMTP_ALLOW_SELF_SIGNED
|
||||
print '<tr class="oddeven"><td>'.$langs->trans("MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED").'</td><td>';
|
||||
if (isset($conf->global->MAIN_MAIL_SENDMODE) && in_array($conf->global->MAIN_MAIL_SENDMODE, array('smtps', 'swiftmailer')))
|
||||
{
|
||||
if (function_exists('openssl_open'))
|
||||
{
|
||||
print yn($conf->global->MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED);
|
||||
} else print yn(0).' ('.$langs->trans("YourPHPDoesNotHaveSSLSupport").')';
|
||||
} else print '<span class="opacitymedium">'.yn(0).' ('.$langs->trans("NotSupported").')</span>';
|
||||
print '</td></tr>';
|
||||
|
||||
|
||||
if ($conf->global->MAIN_MAIL_SENDMODE == 'swiftmailer')
|
||||
{
|
||||
|
||||
@ -68,6 +68,7 @@ if ($action == 'update' && empty($_POST["cancel"]))
|
||||
dolibarr_set_const($db, "MAIN_MAIL_SMTPS_PW_EMAILING", GETPOST("MAIN_MAIL_SMTPS_PW_EMAILING"), 'chaine', 0, '', $conf->entity);
|
||||
dolibarr_set_const($db, "MAIN_MAIL_EMAIL_TLS_EMAILING", GETPOST("MAIN_MAIL_EMAIL_TLS_EMAILING"), 'chaine', 0, '', $conf->entity);
|
||||
dolibarr_set_const($db, "MAIN_MAIL_EMAIL_STARTTLS_EMAILING", GETPOST("MAIN_MAIL_EMAIL_STARTTLS_EMAILING"), 'chaine', 0, '', $conf->entity);
|
||||
dolibarr_set_const($db, "MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING", GETPOST("MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING"), 'chaine', 0, '', $conf->entity);
|
||||
|
||||
header("Location: ".$_SERVER["PHP_SELF"]."?mainmenu=home&leftmenu=setup");
|
||||
exit;
|
||||
@ -147,6 +148,8 @@ if ($action == 'edit')
|
||||
jQuery("#MAIN_MAIL_EMAIL_TLS_EMAILING").prop("disabled", true);
|
||||
jQuery("#MAIN_MAIL_EMAIL_STARTTLS_EMAILING").val(0);
|
||||
jQuery("#MAIN_MAIL_EMAIL_STARTTLS_EMAILING").prop("disabled", true);
|
||||
jQuery("#MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING").val(0);
|
||||
jQuery("#MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING").prop("disabled", true);
|
||||
';
|
||||
if ($linuxlike)
|
||||
{
|
||||
@ -173,6 +176,8 @@ if ($action == 'edit')
|
||||
jQuery("#MAIN_MAIL_EMAIL_TLS_EMAILING").removeAttr("disabled");
|
||||
jQuery("#MAIN_MAIL_EMAIL_STARTTLS_EMAILING").val('.$conf->global->MAIN_MAIL_EMAIL_STARTTLS_EMAILING.');
|
||||
jQuery("#MAIN_MAIL_EMAIL_STARTTLS_EMAILING").removeAttr("disabled");
|
||||
jQuery("#MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING").val('.$conf->global->MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING.');
|
||||
jQuery("#MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING").removeAttr("disabled");
|
||||
jQuery("#MAIN_MAIL_SMTP_SERVER_EMAILING").removeAttr("disabled");
|
||||
jQuery("#MAIN_MAIL_SMTP_PORT_EMAILING").removeAttr("disabled");
|
||||
jQuery("#MAIN_MAIL_SMTP_SERVER_EMAILING").show();
|
||||
@ -187,6 +192,8 @@ if ($action == 'edit')
|
||||
jQuery("#MAIN_MAIL_EMAIL_TLS_EMAILING").removeAttr("disabled");
|
||||
jQuery("#MAIN_MAIL_EMAIL_STARTTLS_EMAILING").val('.$conf->global->MAIN_MAIL_EMAIL_STARTTLS_EMAILING.');
|
||||
jQuery("#MAIN_MAIL_EMAIL_STARTTLS_EMAILING").removeAttr("disabled");
|
||||
jQuery("#MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING").val('.$conf->global->MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING.');
|
||||
jQuery("#MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING").removeAttr("disabled");
|
||||
jQuery("#MAIN_MAIL_SMTP_SERVER_EMAILING").removeAttr("disabled");
|
||||
jQuery("#MAIN_MAIL_SMTP_PORT_EMAILING").removeAttr("disabled");
|
||||
jQuery("#MAIN_MAIL_SMTP_SERVER_EMAILING").show();
|
||||
@ -199,13 +206,17 @@ if ($action == 'edit')
|
||||
jQuery("#MAIN_MAIL_SENDMODE_EMAILING").change(function() {
|
||||
initfields();
|
||||
});
|
||||
jQuery("#MAIN_MAIL_EMAIL_TLS").change(function() {
|
||||
if (jQuery("#MAIN_MAIL_EMAIL_STARTTLS_EMAILING").val() == 1)
|
||||
jQuery("#MAIN_MAIL_EMAIL_TLS_EMAILING").change(function() {
|
||||
if (jQuery("#MAIN_MAIL_EMAIL_TLS_EMAILING").val() == 1)
|
||||
jQuery("#MAIN_MAIL_EMAIL_STARTTLS_EMAILING").val(0);
|
||||
else
|
||||
jQuery("#MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING").val(0);
|
||||
});
|
||||
jQuery("#MAIN_MAIL_EMAIL_STARTTLS_EMAILING").change(function() {
|
||||
if (jQuery("#MAIN_MAIL_EMAIL_TLS_EMAILING").val() == 1)
|
||||
if (jQuery("#MAIN_MAIL_EMAIL_STARTTLS_EMAILING").val() == 1)
|
||||
jQuery("#MAIN_MAIL_EMAIL_TLS_EMAILING").val(0);
|
||||
else
|
||||
jQuery("#MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING").val(0);
|
||||
});
|
||||
})';
|
||||
print '</script>'."\n";
|
||||
@ -359,6 +370,18 @@ if ($action == 'edit')
|
||||
} else print yn(0).' ('.$langs->trans("NotSupported").')';
|
||||
print '</td></tr>';
|
||||
|
||||
// SMTP_ALLOW_SELF_SIGNED_EMAILING
|
||||
|
||||
print '<tr class="oddeven hideifdefault"><td>'.$langs->trans("MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED").'</td><td>';
|
||||
if (!empty($conf->use_javascript_ajax) || (isset($conf->global->MAIN_MAIL_SENDMODE_EMAILING) && in_array($conf->global->MAIN_MAIL_SENDMODE_EMAILING, array('smtps', 'swiftmailer'))))
|
||||
{
|
||||
if (function_exists('openssl_open'))
|
||||
{
|
||||
print $form->selectyesno('MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING', (!empty($conf->global->MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING) ? $conf->global->MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING : 0), 1);
|
||||
} else print yn(0).' ('.$langs->trans("YourPHPDoesNotHaveSSLSupport").')';
|
||||
} else print yn(0).' ('.$langs->trans("NotSupported").')';
|
||||
print '</td></tr>';
|
||||
|
||||
print '</table>';
|
||||
|
||||
dol_fiche_end();
|
||||
@ -437,6 +460,17 @@ if ($action == 'edit')
|
||||
} else print yn(0).' ('.$langs->trans("YourPHPDoesNotHaveSSLSupport").')';
|
||||
} else print yn(0).' ('.$langs->trans("NotSupported").')';
|
||||
print '</td></tr>';
|
||||
|
||||
// SMTP_ALLOW_SELF_SIGNED_EMAILING
|
||||
print '<tr class="oddeven hideifdefault"><td>'.$langs->trans("MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED").'</td><td>';
|
||||
if (isset($conf->global->MAIN_MAIL_SENDMODE_EMAILING) && in_array($conf->global->MAIN_MAIL_SENDMODE_EMAILING, array('smtps', 'swiftmailer')))
|
||||
{
|
||||
if (function_exists('openssl_open'))
|
||||
{
|
||||
print yn($conf->global->MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_EMAILING);
|
||||
} else print yn(0).' ('.$langs->trans("YourPHPDoesNotHaveSSLSupport").')';
|
||||
} else print yn(0).' ('.$langs->trans("NotSupported").')';
|
||||
print '</td></tr>';
|
||||
}
|
||||
|
||||
print '</table>';
|
||||
|
||||
@ -60,6 +60,9 @@ if (GETPOST('subcat', 'alpha') === 'yes') {
|
||||
$selected_type = GETPOST('search_type', 'int');
|
||||
if ($selected_type == '') $selected_type = -1;
|
||||
|
||||
// Hook
|
||||
$hookmanager->initHooks(array('cabyprodservlist'));
|
||||
|
||||
// Date range
|
||||
$year = GETPOST("year");
|
||||
$month = GETPOST("month");
|
||||
|
||||
@ -61,6 +61,9 @@ if ($user->socid > 0) $socid = $user->socid;
|
||||
if (!empty($conf->comptabilite->enabled)) $result = restrictedArea($user, 'compta', '', '', 'resultat');
|
||||
if (!empty($conf->accounting->enabled)) $result = restrictedArea($user, 'accounting', '', '', 'comptarapport');
|
||||
|
||||
// Hook
|
||||
$hookmanager->initHooks(array('casoclist'));
|
||||
|
||||
// Date range
|
||||
$year = GETPOST("year", 'int');
|
||||
$month = GETPOST("month", 'int');
|
||||
|
||||
@ -57,6 +57,9 @@ if (GETPOST('subcat', 'alpha') === 'yes') {
|
||||
$selected_type = GETPOST('search_type', 'int');
|
||||
if ($selected_type == '') $selected_type = -1;
|
||||
|
||||
// Hook
|
||||
$hookmanager->initHooks(array('supplierturnoverbyprodservlist'));
|
||||
|
||||
// Date range
|
||||
$year = GETPOST("year");
|
||||
$month = GETPOST("month");
|
||||
|
||||
@ -50,6 +50,9 @@ if (GETPOST('subcat', 'alpha') === 'yes') {
|
||||
$subcat = true;
|
||||
}
|
||||
|
||||
// Hook
|
||||
$hookmanager->initHooks(array('supplierturnoverbythirdpartylist'));
|
||||
|
||||
// Security check
|
||||
if ($user->socid > 0) $socid = $user->socid;
|
||||
if (!empty($conf->comptabilite->enabled)) $result = restrictedArea($user, 'compta', '', '', 'resultat');
|
||||
|
||||
@ -294,6 +294,16 @@ class CMailFile
|
||||
$addr_bcc .= ($addr_bcc ? ', ' : '').$conf->global->MAIN_MAIL_AUTOCOPY_TO;
|
||||
}
|
||||
|
||||
$keyforsslseflsigned ='MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED';
|
||||
if (!empty($this->sendcontext)) {
|
||||
$smtpContextKey = strtoupper($this->sendcontext);
|
||||
$keyForSMTPSendMode = 'MAIN_MAIL_SENDMODE_' . $smtpContextKey;
|
||||
$smtpContextSendMode = $conf->global->{$keyForSMTPSendMode};
|
||||
if (!empty($smtpContextSendMode) && $smtpContextSendMode != 'default') {
|
||||
$keyforsslseflsigned ='MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_' . $smtpContextKey;
|
||||
}
|
||||
}
|
||||
|
||||
// We set all data according to choosed sending method.
|
||||
// We also set a value for ->msgid
|
||||
if ($this->sendmode == 'mail')
|
||||
@ -404,6 +414,7 @@ class CMailFile
|
||||
$smtps->setBCC($this->addr_bcc);
|
||||
$smtps->setErrorsTo($this->errors_to);
|
||||
$smtps->setDeliveryReceipt($this->deliveryreceipt);
|
||||
if (!empty($conf->global->$keyforsslseflsigned)) $smtps->setOptions(array('ssl' => array('verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true)));
|
||||
|
||||
$host = dol_getprefix('email');
|
||||
$this->msgid = time().'.SMTPs-dolibarr-'.$this->trackid.'@'.$host;
|
||||
@ -642,17 +653,19 @@ class CMailFile
|
||||
$keyforsmtppw = 'MAIN_MAIL_SMTPS_PW';
|
||||
$keyfortls = 'MAIN_MAIL_EMAIL_TLS';
|
||||
$keyforstarttls = 'MAIN_MAIL_EMAIL_STARTTLS';
|
||||
$keyforsslseflsigned ='MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED';
|
||||
if (!empty($this->sendcontext)) {
|
||||
$smtpContextKey = strtoupper($this->sendcontext);
|
||||
$keyForSMTPSendMode = 'MAIN_MAIL_SENDMODE_'.$smtpContextKey;
|
||||
$smtpContextSendMode = $conf->global->{$keyForSMTPSendMode};
|
||||
if (!empty($smtpContextSendMode) && $smtpContextSendMode != 'default') {
|
||||
$keyforsmtpserver = 'MAIN_MAIL_SMTP_SERVER_'.$smtpContextKey;
|
||||
$keyforsmtpport = 'MAIN_MAIL_SMTP_PORT_'.$smtpContextKey;
|
||||
$keyforsmtpid = 'MAIN_MAIL_SMTPS_ID_'.$smtpContextKey;
|
||||
$keyforsmtppw = 'MAIN_MAIL_SMTPS_PW_'.$smtpContextKey;
|
||||
$keyfortls = 'MAIN_MAIL_EMAIL_TLS_'.$smtpContextKey;
|
||||
$keyforstarttls = 'MAIN_MAIL_EMAIL_STARTTLS_'.$smtpContextKey;
|
||||
$keyforsmtpserver = 'MAIN_MAIL_SMTP_SERVER_' . $smtpContextKey;
|
||||
$keyforsmtpport = 'MAIN_MAIL_SMTP_PORT_' . $smtpContextKey;
|
||||
$keyforsmtpid = 'MAIN_MAIL_SMTPS_ID_' . $smtpContextKey;
|
||||
$keyforsmtppw = 'MAIN_MAIL_SMTPS_PW_' . $smtpContextKey;
|
||||
$keyfortls = 'MAIN_MAIL_EMAIL_TLS_' . $smtpContextKey;
|
||||
$keyforstarttls = 'MAIN_MAIL_EMAIL_STARTTLS_' . $smtpContextKey;
|
||||
$keyforsslseflsigned ='MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_' . $smtpContextKey;
|
||||
}
|
||||
}
|
||||
|
||||
@ -849,6 +862,7 @@ class CMailFile
|
||||
|
||||
if (!empty($conf->global->$keyforsmtpid)) $this->transport->setUsername($conf->global->$keyforsmtpid);
|
||||
if (!empty($conf->global->$keyforsmtppw)) $this->transport->setPassword($conf->global->$keyforsmtppw);
|
||||
if (! empty($conf->global->$keyforsslseflsigned)) $this->transport->setStreamOptions(array('ssl' => array('allow_self_signed' => true, 'verify_peer' => false)));;
|
||||
//$smtps->_msgReplyTo = 'reply@web.com';
|
||||
|
||||
// Switch content encoding to base64 - avoid the doubledot issue with quoted-printable
|
||||
|
||||
@ -228,6 +228,21 @@ class SMTPs
|
||||
private $_trackId = '';
|
||||
private $_moreInHeader = '';
|
||||
|
||||
/**
|
||||
* An array of options for stream_context_create()
|
||||
*/
|
||||
private $_options = [];
|
||||
|
||||
/**
|
||||
* Set delivery receipt
|
||||
*
|
||||
* @param array $_options An array of options for stream_context_create()
|
||||
* @return void
|
||||
*/
|
||||
public function setOptions($_options = [])
|
||||
{
|
||||
$this->_options = $_options;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set delivery receipt
|
||||
@ -373,14 +388,31 @@ class SMTPs
|
||||
$this->_setErr(99, $host.' is either offline or is an invalid host name.');
|
||||
$_retVal = false;
|
||||
} else {
|
||||
//See if we can connect to the SMTP server
|
||||
if ($this->socket = @fsockopen(
|
||||
preg_replace('@tls://@i', '', $this->getHost()), // Host to 'hit', IP or domain
|
||||
if (function_exists('stream_socket_client') && !empty($this->_options)) {
|
||||
$socket_context = stream_context_create($this->_options); // An array of options for stream_context_create()
|
||||
set_error_handler([$this, 'errorHandler']);
|
||||
$this->socket = @stream_socket_client(
|
||||
preg_replace('@tls://@i', '', $this->getHost()) . // Host to 'hit', IP or domain
|
||||
':' . $this->getPort(), // which Port number to use
|
||||
$this->errno, // actual system level error
|
||||
$this->errstr, // and any text that goes with the error
|
||||
$this->_smtpTimeout, // timeout for reading/writing data over the socket
|
||||
STREAM_CLIENT_CONNECT,
|
||||
$socket_context // Options for connection
|
||||
);
|
||||
} else {
|
||||
$this->socket = @fsockopen(
|
||||
preg_replace('@tls://@i', '', $this->getHost()), // Host to 'hit', IP or domain
|
||||
$this->getPort(), // which Port number to use
|
||||
$this->errno, // actual system level error
|
||||
$this->errstr, // and any text that goes with the error
|
||||
$this->_smtpTimeout // timeout for reading/writing data over the socket
|
||||
)) {
|
||||
);
|
||||
}
|
||||
|
||||
//See if we can connect to the SMTP server
|
||||
if (is_resource($this->socket))
|
||||
{
|
||||
// Fix from PHP SMTP class by 'Chris Ryan'
|
||||
// Sometimes the SMTP server takes a little longer to respond
|
||||
// so we will give it a longer timeout for the first read
|
||||
|
||||
@ -6119,25 +6119,25 @@ function getCommonSubstitutionArray($outputlangs, $onlykey = 0, $exclude = null,
|
||||
|
||||
if (is_object($object) && $object->element == 'adherent' && $object->id > 0)
|
||||
{
|
||||
$substitutionarray['__MEMBER_ID__'] = $object->id;
|
||||
$substitutionarray['__MEMBER_ID__'] = (isset($object->id) ? $object->id : '');
|
||||
if (method_exists($object, 'getCivilityLabel')) $substitutionarray['__MEMBER_CIVILITY__'] = $object->getCivilityLabel();
|
||||
$substitutionarray['__MEMBER_FIRSTNAME__'] = $object->firstname;
|
||||
$substitutionarray['__MEMBER_LASTNAME__'] = $object->lastname;
|
||||
$substitutionarray['__MEMBER_FIRSTNAME__'] = (isset($object->firstname) ? $object->firstname : '');
|
||||
$substitutionarray['__MEMBER_LASTNAME__'] = (isset($object->lastname) ? $object->lastname : '');
|
||||
if (method_exists($object, 'getFullName')) $substitutionarray['__MEMBER_FULLNAME__'] = $object->getFullName($outputlangs);
|
||||
$substitutionarray['__MEMBER_COMPANY__'] = $object->societe;
|
||||
$substitutionarray['__MEMBER_ADDRESS__'] = $object->address;
|
||||
$substitutionarray['__MEMBER_ZIP__'] = $object->zip;
|
||||
$substitutionarray['__MEMBER_TOWN__'] = $object->town;
|
||||
$substitutionarray['__MEMBER_COUNTRY__'] = $object->country;
|
||||
$substitutionarray['__MEMBER_EMAIL__'] = $object->email;
|
||||
$substitutionarray['__MEMBER_BIRTH__'] = $birthday;
|
||||
$substitutionarray['__MEMBER_PHOTO__'] = $object->photo;
|
||||
$substitutionarray['__MEMBER_LOGIN__'] = $object->login;
|
||||
$substitutionarray['__MEMBER_PASSWORD__'] = $object->pass;
|
||||
$substitutionarray['__MEMBER_PHONE__'] = $object->phone;
|
||||
$substitutionarray['__MEMBER_PHONEPRO__'] = $object->phone_perso;
|
||||
$substitutionarray['__MEMBER_PHONEMOBILE__'] = $object->phone_mobile;
|
||||
$substitutionarray['__MEMBER_TYPE__'] = $object->type;
|
||||
$substitutionarray['__MEMBER_COMPANY__'] = (isset($object->societe) ? $object->societe : '');
|
||||
$substitutionarray['__MEMBER_ADDRESS__'] = (isset($object->address) ? $object->address : '');
|
||||
$substitutionarray['__MEMBER_ZIP__'] = (isset($object->zip) ? $object->zip : '');
|
||||
$substitutionarray['__MEMBER_TOWN__'] = (isset($object->town) ? $object->town : '');
|
||||
$substitutionarray['__MEMBER_COUNTRY__'] = (isset($object->country) ? $object->country : '');
|
||||
$substitutionarray['__MEMBER_EMAIL__'] = (isset($object->email) ? $object->email : '');
|
||||
$substitutionarray['__MEMBER_BIRTH__'] = (isset($birthday) ? $birthday : '');
|
||||
$substitutionarray['__MEMBER_PHOTO__'] = (isset($object->photo) ? $object->photo : '');
|
||||
$substitutionarray['__MEMBER_LOGIN__'] = (isset($object->login) ? $object->login : '');
|
||||
$substitutionarray['__MEMBER_PASSWORD__'] = (isset($object->pass) ? $object->pass : '');
|
||||
$substitutionarray['__MEMBER_PHONE__'] = (isset($object->phone) ? $object->phone : '');
|
||||
$substitutionarray['__MEMBER_PHONEPRO__'] = (isset($object->phone_perso) ? $object->phone_perso : '');
|
||||
$substitutionarray['__MEMBER_PHONEMOBILE__'] = (isset($object->phone_mobile) ? $object->phone_mobile : '');
|
||||
$substitutionarray['__MEMBER_TYPE__'] = (isset($object->type) ? $object->type : '');
|
||||
$substitutionarray['__MEMBER_FIRST_SUBSCRIPTION_DATE__'] = dol_print_date($object->first_subscription_date, 'dayrfc');
|
||||
$substitutionarray['__MEMBER_FIRST_SUBSCRIPTION_DATE_START__'] = dol_print_date($object->first_subscription_date_start, 'dayrfc');
|
||||
$substitutionarray['__MEMBER_FIRST_SUBSCRIPTION_DATE_END__'] = dol_print_date($object->first_subscription_date_end, 'dayrfc');
|
||||
|
||||
@ -223,26 +223,22 @@ function print_eldy_menu($db, $atarget, $type_user, &$tabMenu, &$menu, $noout =
|
||||
'submenus' => array(),
|
||||
);
|
||||
|
||||
// Commercial
|
||||
// Commercial (propal, commande, supplier_proposal, supplier_order, contrat, ficheinter)
|
||||
$tmpentry = array(
|
||||
'enabled'=>(!empty($conf->propal->enabled) ||
|
||||
!empty($conf->commande->enabled) ||
|
||||
!empty($conf->fournisseur->enabled) ||
|
||||
!empty($conf->supplier_proposal->enabled) ||
|
||||
!empty($conf->supplier_order->enabled) ||
|
||||
!empty($conf->contrat->enabled) ||
|
||||
!empty($conf->ficheinter->enabled)
|
||||
) ? 1 : 0,
|
||||
'perms'=>(!empty($user->rights->propal->lire) ||
|
||||
!empty($user->rights->commande->lire) ||
|
||||
!empty($user->rights->fournisseur->lire) ||
|
||||
!empty($user->rights->supplier_proposal->lire) ||
|
||||
!empty($user->rights->supplier_order->lire) ||
|
||||
!empty($user->rights->contrat->lire) ||
|
||||
!empty($user->rights->ficheinter->lire) ||
|
||||
!empty($user->rights->supplier_order->lire) ||
|
||||
!empty($user->rights->fournisseur->commande->lire)
|
||||
),
|
||||
'enabled'=>(!empty($conf->propal->enabled)
|
||||
|| !empty($conf->commande->enabled)
|
||||
|| !empty($conf->supplier_proposal->enabled)
|
||||
|| !empty($conf->supplier_order->enabled)
|
||||
|| !empty($conf->contrat->enabled)
|
||||
|| !empty($conf->ficheinter->enabled)
|
||||
) ? 1 : 0,
|
||||
'perms'=>(!empty($user->rights->propal->lire)
|
||||
|| !empty($user->rights->commande->lire)
|
||||
|| !empty($user->rights->supplier_proposal->lire)
|
||||
|| !empty($user->rights->supplier_order->lire)
|
||||
|| !empty($user->rights->contrat->lire)
|
||||
|| !empty($user->rights->ficheinter->lire)
|
||||
),
|
||||
'module'=>'propal|commande|supplier_proposal|supplier_order|contrat|ficheinter'
|
||||
);
|
||||
|
||||
@ -893,7 +889,7 @@ function print_left_eldy_menu($db, $menu_array_before, $menu_array_after, &$tabM
|
||||
}
|
||||
|
||||
/*
|
||||
* Menu COMMERCIAL
|
||||
* Menu COMMERCIAL (propal, commande, supplier_proposal, supplier_order, contrat, ficheinter)
|
||||
*/
|
||||
if ($mainmenu == 'commercial')
|
||||
{
|
||||
|
||||
@ -289,6 +289,7 @@ MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
|
||||
MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
|
||||
MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
|
||||
MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
|
||||
MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED=Authorise les certificats auto-signés
|
||||
MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
|
||||
MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
|
||||
MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
|
||||
|
||||
@ -13,6 +13,7 @@ SupplierProposalArea=Vendor proposals area
|
||||
SupplierProposalShort=Vendor proposal
|
||||
SupplierProposals=Vendor proposals
|
||||
SupplierProposalsShort=Vendor proposals
|
||||
AskPrice=Price request
|
||||
NewAskPrice=New price request
|
||||
ShowSupplierProposal=Show price request
|
||||
AddSupplierProposal=Create a price request
|
||||
|
||||
@ -289,6 +289,7 @@ MAIN_MAIL_SMTPS_ID=ID SMTP (si le serveur d'envoi nécessite une authentificatio
|
||||
MAIN_MAIL_SMTPS_PW=Mot de passe SMTP (si le serveur d'envoi nécessite une authentification)
|
||||
MAIN_MAIL_EMAIL_TLS=Utilisation du chiffrement TLS (SSL)
|
||||
MAIN_MAIL_EMAIL_STARTTLS=Utiliser le cryptage TTS (STARTTLS)
|
||||
MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED=Authorise les certificats auto-signés
|
||||
MAIN_MAIL_EMAIL_DKIM_ENABLED=Utiliser DKIM pour signer les emails
|
||||
MAIN_MAIL_EMAIL_DKIM_DOMAIN=Nom de domaine pour la signature DKIM
|
||||
MAIN_MAIL_EMAIL_DKIM_SELECTOR=Nom du sélecteur DKIM
|
||||
|
||||
@ -210,8 +210,8 @@ $arrayfields = array(
|
||||
'p.stock'=>array('label'=>$langs->trans("PhysicalStock"), 'checked'=>1, 'enabled'=>(!empty($conf->stock->enabled) && $user->rights->stock->lire && $contextpage != 'service'), 'position'=>52),
|
||||
'stock_virtual'=>array('label'=>$langs->trans("VirtualStock"), 'checked'=>1, 'enabled'=>(!empty($conf->stock->enabled) && $user->rights->stock->lire && $contextpage != 'service' && $virtualdiffersfromphysical), 'position'=>53),
|
||||
'p.tobatch'=>array('label'=>$langs->trans("ManageLotSerial"), 'checked'=>0, 'enabled'=>(!empty($conf->productbatch->enabled)), 'position'=>60),
|
||||
'p.fk_country'=>array('label'=>$langs->trans("Country").' ('.$langs->trans("Country").')', 'checked'=>0, 'position'=>100),
|
||||
'p.fk_state'=>array('label'=>$langs->trans("State").' ('.$langs->trans("State").')', 'checked'=>0, 'position'=>101),
|
||||
'p.fk_country'=>array('label'=>$langs->trans("Country"), 'checked'=>0, 'position'=>100),
|
||||
'p.fk_state'=>array('label'=>$langs->trans("State"), 'checked'=>0, 'position'=>101),
|
||||
'p.accountancy_code_sell'=>array('label'=>$langs->trans("ProductAccountancySellCode"), 'checked'=>0, 'position'=>400),
|
||||
'p.accountancy_code_sell_intra'=>array('label'=>$langs->trans("ProductAccountancySellIntraCode"), 'checked'=>0, 'enabled'=>$isInEEC, 'position'=>401),
|
||||
'p.accountancy_code_sell_export'=>array('label'=>$langs->trans("ProductAccountancySellExportCode"), 'checked'=>0, 'position'=>402),
|
||||
@ -1445,7 +1445,9 @@ if ($resql)
|
||||
// State
|
||||
if (!empty($arrayfields['p.fk_state']['checked']))
|
||||
{
|
||||
print '<td>'.getState($obj->fk_state, 0, $db).'</td>';
|
||||
print '<td>';
|
||||
if (!empty($obj->fk_state)) print getState($obj->fk_state, 0, $db);
|
||||
print '</td>';
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
}
|
||||
// Accountancy code sell
|
||||
|
||||
@ -98,6 +98,48 @@ class Contacts extends DolibarrApi
|
||||
return $this->_cleanObjectDatas($this->contact);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get properties of a contact object by Email
|
||||
*
|
||||
* @param string $email Email of contact
|
||||
* @param int $includecount Count and return also number of elements the contact is used as a link for
|
||||
* @return array|mixed data without useless information
|
||||
*
|
||||
* @url GET email/{email}
|
||||
*
|
||||
* @throws RestException 401 Insufficient rights
|
||||
* @throws RestException 404 User or group not found
|
||||
*/
|
||||
public function getByEmail($email, $includecount = 0)
|
||||
{
|
||||
if (!DolibarrApiAccess::$user->rights->societe->contact->lire)
|
||||
{
|
||||
throw new RestException(401, 'No permission to read contacts');
|
||||
}
|
||||
if (empty($email)) {
|
||||
$result = $this->contact->initAsSpecimen();
|
||||
} else {
|
||||
$result = $this->contact->fetch('', '', '', $email);
|
||||
}
|
||||
|
||||
if (!$result)
|
||||
{
|
||||
throw new RestException(404, 'Contact not found');
|
||||
}
|
||||
|
||||
if (!DolibarrApi::_checkAccessToResource('contact', $this->contact->id, 'socpeople&societe'))
|
||||
{
|
||||
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
|
||||
}
|
||||
|
||||
if ($includecount)
|
||||
{
|
||||
$this->contact->load_ref_elements();
|
||||
}
|
||||
|
||||
return $this->_cleanObjectDatas($this->contact);
|
||||
}
|
||||
|
||||
/**
|
||||
* List contacts
|
||||
*
|
||||
|
||||
@ -613,6 +613,11 @@ if ($user->rights->societe->creer && $contextpage != 'poslist')
|
||||
}
|
||||
|
||||
$newcardbutton .= dolGetButtonTitle($langs->trans($label), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/societe/card.php?action=create'.$typefilter);
|
||||
} elseif ($user->rights->societe->creer && $contextpage == 'poslist')
|
||||
{
|
||||
$label = 'MenuNewCustomer';
|
||||
|
||||
$newcardbutton .= dolGetButtonTitle($langs->trans($label), '', 'fa fa-plus-circle', DOL_URL_ROOT.'/societe/card.php?action=create&type=c&contextpage=poslist&optioncss=print&backtopage='.$_SERVER["PHP_SELF"].'?contextpage=poslist&nomassaction=1&optioncss=print&place='.urlencode($place));
|
||||
}
|
||||
|
||||
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'" name="formfilter" autocomplete="off">';
|
||||
|
||||
@ -141,6 +141,27 @@ button.calcbutton3 {
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
button.productbutton {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
padding: 0;
|
||||
line-height: normal;
|
||||
cursor: pointer;
|
||||
vertical-align: middle;
|
||||
text-align: center;
|
||||
overflow: visible; /* removes extra width in IE */
|
||||
width: calc(100% - 2px);
|
||||
height: calc(100% - 2px);
|
||||
font-weight: bold;
|
||||
background-color: #a3a6a3;
|
||||
color: #fff;
|
||||
/* border-color: unset; */
|
||||
border-width: 0;
|
||||
margin: 1px;
|
||||
font-size: 14pt;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
button.actionbutton {
|
||||
background: #EABCA6;
|
||||
border: 2px solid #EEE;
|
||||
|
||||
@ -291,12 +291,18 @@ function LoadProducts(position, issubcat) {
|
||||
//console.log("ishow"+ishow+" idata="+idata);
|
||||
console.log(data[idata]);
|
||||
if (typeof (data[idata]) == "undefined") {
|
||||
$("#prodivdesc"+ishow).hide();
|
||||
$("#prodesc"+ishow).text("");
|
||||
<?php if (!$conf->global->TAKEPOS_HIDE_PRODUCT_IMAGES)
|
||||
{
|
||||
echo '$("#prodivdesc"+ishow).hide();';
|
||||
echo '$("#prodesc"+ishow).text("");';
|
||||
echo '$("#proimg"+ishow).attr("title","");';
|
||||
echo '$("#proimg"+ishow).attr("src","genimg/empty.png");';
|
||||
} else {
|
||||
echo '$("#probutton"+ishow).hide();';
|
||||
echo '$("#probutton"+ishow).text("");';
|
||||
}?>
|
||||
$("#proprice"+ishow).attr("class", "hidden");
|
||||
$("#proprice"+ishow).html("");
|
||||
$("#proimg"+ishow).attr("title","");
|
||||
$("#proimg"+ishow).attr("src","genimg/empty.png");
|
||||
$("#prodiv"+ishow).data("rowid","");
|
||||
$("#prodiv"+ishow).attr("class","wrapper2 divempty");
|
||||
$("#prowatermark"+ishow).hide();
|
||||
@ -308,14 +314,22 @@ function LoadProducts(position, issubcat) {
|
||||
$titlestring .= " + ' - ".dol_escape_js($langs->trans("Barcode").': ')."' + data[idata]['barcode']";
|
||||
?>
|
||||
var titlestring = <?php echo $titlestring; ?>;
|
||||
$("#prodivdesc"+ishow).show();
|
||||
$("#prodesc"+ishow).text(data[parseInt(idata)]['label']);
|
||||
<?php if (!$conf->global->TAKEPOS_HIDE_PRODUCT_IMAGES)
|
||||
{
|
||||
echo '$("#prodivdesc"+ishow).show();';
|
||||
echo '$("#prodesc"+ishow).text(data[parseInt(idata)][\'label\']);';
|
||||
echo '$("#proimg"+ishow).attr("title", titlestring);';
|
||||
echo '$("#proimg"+ishow).attr("src", "genimg/index.php?query=pro&id="+data[idata][\'id\']);';
|
||||
}
|
||||
else {
|
||||
echo '$("#probutton"+ishow).show();';
|
||||
echo '$("#probutton"+ishow).text(data[parseInt(idata)][\'label\']);';
|
||||
}
|
||||
?>
|
||||
if (data[parseInt(idata)]['price_formated']) {
|
||||
$("#proprice"+ishow).attr("class", "productprice");
|
||||
$("#proprice"+ishow).html(data[parseInt(idata)]['price_formated']);
|
||||
}
|
||||
$("#proimg"+ishow).attr("title", titlestring);
|
||||
$("#proimg"+ishow).attr("src", "genimg/index.php?query=pro&id="+data[idata]['id']);
|
||||
$("#prodiv"+ishow).data("rowid", data[idata]['id']);
|
||||
$("#prodiv"+ishow).data("iscat", 0);
|
||||
$("#prodiv"+ishow).attr("class","wrapper2");
|
||||
@ -751,7 +765,7 @@ function WeighingScale(){
|
||||
console.log("Weighing Scale");
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: '<?php print $conf->global->TAKEPOS_PRINT_SERVER; ?>/scale',
|
||||
url: '<?php print $conf->global->TAKEPOS_PRINT_SERVER; ?>/scale/index.php',
|
||||
})
|
||||
.done(function( editnumber ) {
|
||||
$("#poslines").load("invoice.php?action=updateqty&place="+place+"&idline="+selectedline+"&number="+editnumber, function() {
|
||||
@ -1070,11 +1084,14 @@ if ($conf->global->TAKEPOS_WEIGHING_SCALE)
|
||||
//echo '<img class="imgwrapper" src="img/arrow-next-top.png" height="100%" id="proimg'.$count.'" />';
|
||||
print '<span class="fa fa-chevron-right centerinmiddle" style="font-size: 5em;"></span>';
|
||||
} else {
|
||||
print '<div class="" id="proprice'.$count.'"></div>';
|
||||
if (!$conf->global->TAKEPOS_HIDE_PRODUCT_IMAGES) print '<img class="imgwrapper" height="100%" title="" id="proimg'.$count.'">';
|
||||
if ($conf->global->TAKEPOS_HIDE_PRODUCT_IMAGES) echo '<button type="button" id="probutton'.$count.'" class="productbutton" style="display: none;"></button>';
|
||||
else {
|
||||
print '<div class="" id="proprice'.$count.'"></div>';
|
||||
print '<img class="imgwrapper" height="100%" title="" id="proimg'.$count.'">';
|
||||
}
|
||||
}
|
||||
?>
|
||||
<?php if ($count != ($MAXPRODUCT - 2) && $count != ($MAXPRODUCT - 1)) { ?>
|
||||
<?php if ($count != ($MAXPRODUCT - 2) && $count != ($MAXPRODUCT - 1) && !$conf->global->TAKEPOS_HIDE_PRODUCT_IMAGES) { ?>
|
||||
<div class="description" id="prodivdesc<?php echo $count; ?>">
|
||||
<div class="description_content" id="prodesc<?php echo $count; ?>"></div>
|
||||
</div>
|
||||
|
||||
@ -411,10 +411,15 @@ a.top-menu-dropdown-link {
|
||||
* QUICK ADD
|
||||
*/
|
||||
#topmenu-quickadd-dropdown .dropdown-menu {
|
||||
width: 300px !important;
|
||||
width: 310px !important;
|
||||
color: #444;
|
||||
}
|
||||
|
||||
.quickadd-body.dropdown-body {
|
||||
padding: unset;
|
||||
padding-top: 15px;
|
||||
}
|
||||
|
||||
.quickadd-header {
|
||||
color: #444 !important;
|
||||
}
|
||||
@ -449,8 +454,8 @@ div.quickadd a:hover, div.quickadd a:active {
|
||||
}
|
||||
|
||||
div.quickaddblock {
|
||||
width: 80px;
|
||||
display: block ruby;
|
||||
width: 95px;
|
||||
height: 80px;
|
||||
}
|
||||
|
||||
div.quickaddblock:hover,
|
||||
|
||||
@ -1038,6 +1038,14 @@ class User extends CommonObject
|
||||
$this->error = $this->db->lasterror();
|
||||
}
|
||||
|
||||
// Remove params
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."user_param WHERE fk_user = ".$this->id;
|
||||
if (!$error && !$this->db->query($sql))
|
||||
{
|
||||
$error++;
|
||||
$this->error = $this->db->lasterror();
|
||||
}
|
||||
|
||||
// If contact, remove link
|
||||
if ($this->contact_id > 0)
|
||||
{
|
||||
|
||||
@ -41,6 +41,12 @@ class ProductAttribute extends CommonObject
|
||||
*/
|
||||
public $ref;
|
||||
|
||||
/**
|
||||
* External ref of the product attribute
|
||||
* @var string
|
||||
*/
|
||||
public $ref_ext;
|
||||
|
||||
/**
|
||||
* Label of the product attribute
|
||||
* @var string
|
||||
@ -79,7 +85,7 @@ class ProductAttribute extends CommonObject
|
||||
return -1;
|
||||
}
|
||||
|
||||
$sql = "SELECT rowid, ref, label, rang FROM ".MAIN_DB_PREFIX."product_attribute WHERE rowid = ".(int) $id." AND entity IN (".getEntity('product').")";
|
||||
$sql = "SELECT rowid, ref, ref_ext, label, rang FROM ".MAIN_DB_PREFIX."product_attribute WHERE rowid = ".(int) $id." AND entity IN (".getEntity('product').")";
|
||||
|
||||
$query = $this->db->query($sql);
|
||||
|
||||
@ -91,6 +97,7 @@ class ProductAttribute extends CommonObject
|
||||
|
||||
$this->id = $obj->rowid;
|
||||
$this->ref = $obj->ref;
|
||||
$this->ref_ext = $obj->ref_ext;
|
||||
$this->label = $obj->label;
|
||||
$this->rang = $obj->rang;
|
||||
|
||||
@ -106,7 +113,7 @@ class ProductAttribute extends CommonObject
|
||||
{
|
||||
$return = array();
|
||||
|
||||
$sql = 'SELECT rowid, ref, label, rang FROM '.MAIN_DB_PREFIX."product_attribute WHERE entity IN (".getEntity('product').')';
|
||||
$sql = 'SELECT rowid, ref, ref_ext, label, rang FROM '.MAIN_DB_PREFIX."product_attribute WHERE entity IN (".getEntity('product').')';
|
||||
$sql .= $this->db->order('rang', 'asc');
|
||||
$query = $this->db->query($sql);
|
||||
if ($query)
|
||||
@ -115,6 +122,7 @@ class ProductAttribute extends CommonObject
|
||||
$tmp = new ProductAttribute($this->db);
|
||||
$tmp->id = $result->rowid;
|
||||
$tmp->ref = $result->ref;
|
||||
$tmp->ref_ext = $result->ref_ext;
|
||||
$tmp->label = $result->label;
|
||||
$tmp->rang = $result->rang;
|
||||
|
||||
@ -147,8 +155,8 @@ class ProductAttribute extends CommonObject
|
||||
//Ref must be uppercase
|
||||
$this->ref = strtoupper($this->ref);
|
||||
|
||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."product_attribute (ref, label, entity, rang)
|
||||
VALUES ('".$this->db->escape($this->ref)."', '".$this->db->escape($this->label)."', ".(int) $this->entity.", ".(int) $this->rang.")";
|
||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."product_attribute (ref, ref_ext, label, entity, rang)
|
||||
VALUES ('".$this->db->escape($this->ref)."', '".$this->db->escape($this->ref_ext)."', '".$this->db->escape($this->label)."', ".(int) $this->entity.", ".(int) $this->rang.")";
|
||||
|
||||
$query = $this->db->query($sql);
|
||||
if ($query)
|
||||
@ -183,7 +191,7 @@ class ProductAttribute extends CommonObject
|
||||
$this->ref = trim(strtoupper($this->ref));
|
||||
$this->label = trim($this->label);
|
||||
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."product_attribute SET ref = '".$this->db->escape($this->ref)."', label = '".$this->db->escape($this->label)."', rang = ".(int) $this->rang." WHERE rowid = ".(int) $this->id;
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."product_attribute SET ref = '".$this->db->escape($this->ref)."', ref_ext = '".$this->db->escape($this->ref_ext)."', label = '".$this->db->escape($this->label)."', rang = ".(int) $this->rang." WHERE rowid = ".(int) $this->id;
|
||||
|
||||
if ($this->db->query($sql)) {
|
||||
return 1;
|
||||
|
||||
@ -77,6 +77,12 @@ class ProductCombination
|
||||
*/
|
||||
public $combination_price_levels;
|
||||
|
||||
/**
|
||||
* External ref
|
||||
* @var string
|
||||
*/
|
||||
public $variation_ref_ext = '';
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
@ -100,7 +106,7 @@ class ProductCombination
|
||||
{
|
||||
global $conf;
|
||||
|
||||
$sql = "SELECT rowid, fk_product_parent, fk_product_child, variation_price, variation_price_percentage, variation_weight FROM ".MAIN_DB_PREFIX."product_attribute_combination WHERE rowid = ".(int) $rowid." AND entity IN (".getEntity('product').")";
|
||||
$sql = "SELECT rowid, fk_product_parent, fk_product_child, variation_price, variation_price_percentage, variation_weight, variation_ref_ext FROM ".MAIN_DB_PREFIX."product_attribute_combination WHERE rowid = ".(int) $rowid." AND entity IN (".getEntity('product').")";
|
||||
|
||||
$query = $this->db->query($sql);
|
||||
|
||||
@ -120,6 +126,7 @@ class ProductCombination
|
||||
$this->variation_price = $obj->variation_price;
|
||||
$this->variation_price_percentage = $obj->variation_price_percentage;
|
||||
$this->variation_weight = $obj->variation_weight;
|
||||
$this->variation_ref_ext = $obj->variation_ref_ext;
|
||||
|
||||
if (!empty($conf->global->PRODUIT_MULTIPRICES)) {
|
||||
$this->fetchCombinationPriceLevels();
|
||||
@ -226,7 +233,6 @@ class ProductCombination
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Retrieves information of a variant product and ID of its parent product.
|
||||
*
|
||||
@ -295,6 +301,7 @@ class ProductCombination
|
||||
$tmp->variation_price = $result->variation_price;
|
||||
$tmp->variation_price_percentage = $result->variation_price_percentage;
|
||||
$tmp->variation_weight = $result->variation_weight;
|
||||
$tmp->variation_ref_ext = $result->variation_ref_ext;
|
||||
|
||||
if (!empty($conf->global->PRODUIT_MULTIPRICES)) {
|
||||
$tmp->fetchCombinationPriceLevels();
|
||||
@ -339,10 +346,10 @@ class ProductCombination
|
||||
/* $this->fk_product_child may be empty and will be filled later after subproduct has been created */
|
||||
|
||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."product_attribute_combination";
|
||||
$sql .= " (fk_product_parent, fk_product_child, variation_price, variation_price_percentage, variation_weight, entity)";
|
||||
$sql .= " (fk_product_parent, fk_product_child, variation_price, variation_price_percentage, variation_weight, variation_ref_ext, entity)";
|
||||
$sql .= " VALUES (".((int) $this->fk_product_parent).", ".((int) $this->fk_product_child).",";
|
||||
$sql .= (float) $this->variation_price.", ".(int) $this->variation_price_percentage.",";
|
||||
$sql .= (float) $this->variation_weight.", ".(int) $this->entity.")";
|
||||
$sql .= (float) $this->variation_weight.", '".$this->db->escape($this->variation_ref_ext)."', ".(int) $this->entity.")";
|
||||
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql) {
|
||||
@ -375,7 +382,8 @@ class ProductCombination
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."product_attribute_combination";
|
||||
$sql .= " SET fk_product_parent = ".(int) $this->fk_product_parent.", fk_product_child = ".(int) $this->fk_product_child.",";
|
||||
$sql .= " variation_price = ".(float) $this->variation_price.", variation_price_percentage = ".(int) $this->variation_price_percentage.",";
|
||||
$sql .= " variation_weight = ".(float) $this->variation_weight." WHERE rowid = ".((int) $this->id);
|
||||
$sql .= " variation_ref_ext = '".$this->db->escape($this->variation_ref_ext)."',";
|
||||
$sql .= " variation_weight = ".(float) $this->variation_weight." WHERE rowid = ".((int) $this->id);
|
||||
|
||||
$resql = $this->db->query($sql);
|
||||
if (!$resql) {
|
||||
@ -663,9 +671,10 @@ class ProductCombination
|
||||
* @param bool|float $forced_pricevar If the price variation is forced
|
||||
* @param bool|float $forced_weightvar If the weight variation is forced
|
||||
* @param bool|string $forced_refvar If the reference is forced
|
||||
* @param string $ref_ext External reference
|
||||
* @return int <0 KO, >0 OK
|
||||
*/
|
||||
public function createProductCombination(User $user, Product $product, array $combinations, array $variations, $price_var_percent = false, $forced_pricevar = false, $forced_weightvar = false, $forced_refvar = false)
|
||||
public function createProductCombination(User $user, Product $product, array $combinations, array $variations, $price_var_percent = false, $forced_pricevar = false, $forced_weightvar = false, $forced_refvar = false, $ref_ext = '')
|
||||
{
|
||||
global $db, $conf;
|
||||
|
||||
@ -781,6 +790,7 @@ class ProductCombination
|
||||
$newcomb->variation_price_percentage = $price_var_percent;
|
||||
$newcomb->variation_price = $price_impact[1];
|
||||
$newcomb->variation_weight = $weight_impact;
|
||||
$newcomb->variation_ref_ext = $db->escape($ref_ext);
|
||||
|
||||
// Init price level
|
||||
if ($conf->global->PRODUIT_MULTIPRICES) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user