forked from Wavyzz/dolibarr
Merge branch 'develop' into new-duplicate-pdf-configuration-for-order-in-sepcific-page
This commit is contained in:
@@ -10749,7 +10749,7 @@ parameters:
|
|||||||
-
|
-
|
||||||
message: '#^If condition is always true\.$#'
|
message: '#^If condition is always true\.$#'
|
||||||
identifier: if.alwaysTrue
|
identifier: if.alwaysTrue
|
||||||
count: 1
|
count: 2
|
||||||
path: ../../../htdocs/core/lib/company.lib.php
|
path: ../../../htdocs/core/lib/company.lib.php
|
||||||
|
|
||||||
-
|
-
|
||||||
|
|||||||
@@ -9,16 +9,15 @@
|
|||||||
*/
|
*/
|
||||||
return [
|
return [
|
||||||
// # Issue statistics:
|
// # Issue statistics:
|
||||||
// PhanTypeMismatchArgument : 1840+ occurrences
|
// PhanTypeMismatchArgument : 1790+ occurrences
|
||||||
// PhanUndeclaredProperty : 520+ occurrences
|
// PhanUndeclaredProperty : 510+ occurrences
|
||||||
// PhanTypeMismatchArgumentNullable : 380+ occurrences
|
// PhanTypeMismatchArgumentNullable : 360+ occurrences
|
||||||
// PhanPluginUnknownArrayMethodReturnType : 170+ occurrences
|
// PhanPluginUnknownArrayMethodReturnType : 170+ occurrences
|
||||||
// PhanUndeclaredGlobalVariable : 170+ occurrences
|
// PhanUndeclaredGlobalVariable : 170+ occurrences
|
||||||
// PhanTypeMismatchProperty : 130+ occurrences
|
// PhanTypeMismatchProperty : 120+ occurrences
|
||||||
// PhanPluginUnknownArrayMethodParamType : 110+ occurrences
|
// PhanPluginUnknownArrayMethodParamType : 110+ occurrences
|
||||||
// PhanPossiblyUndeclaredGlobalVariable : 95+ occurrences
|
// PhanTypeMismatchArgumentProbablyReal : 80+ occurrences
|
||||||
// PhanTypeMismatchArgumentProbablyReal : 90+ occurrences
|
// PhanPossiblyUndeclaredGlobalVariable : 75+ occurrences
|
||||||
// PhanRedefineFunction : 40+ occurrences
|
|
||||||
// PhanTypeExpectedObjectPropAccess : 40+ occurrences
|
// PhanTypeExpectedObjectPropAccess : 40+ occurrences
|
||||||
// PhanTypeInvalidDimOffset : 25+ occurrences
|
// PhanTypeInvalidDimOffset : 25+ occurrences
|
||||||
// PhanTypeMismatchDimFetch : 20+ occurrences
|
// PhanTypeMismatchDimFetch : 20+ occurrences
|
||||||
@@ -27,19 +26,19 @@ return [
|
|||||||
// PhanTypeMismatchArgumentNullableInternal : 10+ occurrences
|
// PhanTypeMismatchArgumentNullableInternal : 10+ occurrences
|
||||||
// PhanUndeclaredMethod : 10+ occurrences
|
// PhanUndeclaredMethod : 10+ occurrences
|
||||||
// PhanTypeComparisonFromArray : 8 occurrences
|
// PhanTypeComparisonFromArray : 8 occurrences
|
||||||
// PhanPluginSuspiciousParamPosition : 7 occurrences
|
|
||||||
// PhanPluginDuplicateExpressionBinaryOp : 6 occurrences
|
// PhanPluginDuplicateExpressionBinaryOp : 6 occurrences
|
||||||
// PhanPluginUnknownObjectMethodCall : 6 occurrences
|
// PhanPluginUnknownObjectMethodCall : 6 occurrences
|
||||||
// PhanTypeArraySuspiciousNull : 6 occurrences
|
// PhanTypeArraySuspiciousNull : 6 occurrences
|
||||||
// PhanParamTooMany : 5 occurrences
|
// PhanParamTooMany : 5 occurrences
|
||||||
// PhanPluginDuplicateArrayKey : 4 occurrences
|
// PhanPluginDuplicateArrayKey : 4 occurrences
|
||||||
// PhanPluginEmptyStatementIf : 4 occurrences
|
// PhanPluginSuspiciousParamPosition : 4 occurrences
|
||||||
// PhanEmptyFQSENInClasslike : 3 occurrences
|
// PhanEmptyFQSENInClasslike : 3 occurrences
|
||||||
// PhanInvalidFQSENInClasslike : 3 occurrences
|
// PhanInvalidFQSENInClasslike : 3 occurrences
|
||||||
// PhanPluginBothLiteralsBinaryOp : 3 occurrences
|
// PhanPluginBothLiteralsBinaryOp : 3 occurrences
|
||||||
// PhanEmptyForeach : 2 occurrences
|
// PhanEmptyForeach : 2 occurrences
|
||||||
|
// PhanPluginEmptyStatementIf : 2 occurrences
|
||||||
|
// PhanRedefineFunction : 2 occurrences
|
||||||
// PhanTypeMismatchDimAssignment : 2 occurrences
|
// PhanTypeMismatchDimAssignment : 2 occurrences
|
||||||
// PhanTypeMismatchDimFetchNullable : 2 occurrences
|
|
||||||
// PhanTypeSuspiciousStringExpression : 2 occurrences
|
// PhanTypeSuspiciousStringExpression : 2 occurrences
|
||||||
// PhanAccessMethodProtected : 1 occurrence
|
// PhanAccessMethodProtected : 1 occurrence
|
||||||
// PhanPluginDuplicateExpressionAssignmentOperation : 1 occurrence
|
// PhanPluginDuplicateExpressionAssignmentOperation : 1 occurrence
|
||||||
@@ -143,7 +142,6 @@ return [
|
|||||||
'htdocs/asset/tpl/accountancy_codes_edit.tpl.php' => ['PhanTypeMismatchArgument', 'PhanTypeMismatchArgumentProbablyReal'],
|
'htdocs/asset/tpl/accountancy_codes_edit.tpl.php' => ['PhanTypeMismatchArgument', 'PhanTypeMismatchArgumentProbablyReal'],
|
||||||
'htdocs/asset/tpl/depreciation_options_edit.tpl.php' => ['PhanTypeMismatchArgumentProbablyReal', 'PhanUndeclaredProperty'],
|
'htdocs/asset/tpl/depreciation_options_edit.tpl.php' => ['PhanTypeMismatchArgumentProbablyReal', 'PhanUndeclaredProperty'],
|
||||||
'htdocs/asset/tpl/linkedobjectblock.tpl.php' => ['PhanUndeclaredProperty'],
|
'htdocs/asset/tpl/linkedobjectblock.tpl.php' => ['PhanUndeclaredProperty'],
|
||||||
'htdocs/asterisk/wrapper.php' => ['PhanRedefineFunction'],
|
|
||||||
'htdocs/barcode/printsheet.php' => ['PhanPluginDuplicateExpressionBinaryOp', 'PhanTypeMismatchArgumentNullable'],
|
'htdocs/barcode/printsheet.php' => ['PhanPluginDuplicateExpressionBinaryOp', 'PhanTypeMismatchArgumentNullable'],
|
||||||
'htdocs/bom/bom_card.php' => ['PhanTypeMismatchArgument', 'PhanTypeMismatchArgumentNullable', 'PhanUndeclaredProperty'],
|
'htdocs/bom/bom_card.php' => ['PhanTypeMismatchArgument', 'PhanTypeMismatchArgumentNullable', 'PhanUndeclaredProperty'],
|
||||||
'htdocs/bom/bom_list.php' => ['PhanTypeMismatchArgument'],
|
'htdocs/bom/bom_list.php' => ['PhanTypeMismatchArgument'],
|
||||||
@@ -241,7 +239,7 @@ return [
|
|||||||
'htdocs/compta/facture/agenda.php' => ['PhanTypeMismatchArgument'],
|
'htdocs/compta/facture/agenda.php' => ['PhanTypeMismatchArgument'],
|
||||||
'htdocs/compta/facture/card-rec.php' => ['PhanTypeMismatchArgument', 'PhanTypeMismatchArgumentNullable'],
|
'htdocs/compta/facture/card-rec.php' => ['PhanTypeMismatchArgument', 'PhanTypeMismatchArgumentNullable'],
|
||||||
'htdocs/compta/facture/card.php' => ['PhanTypeMismatchArgument', 'PhanTypeMismatchArgumentNullable', 'PhanTypeMismatchProperty', 'PhanUndeclaredProperty'],
|
'htdocs/compta/facture/card.php' => ['PhanTypeMismatchArgument', 'PhanTypeMismatchArgumentNullable', 'PhanTypeMismatchProperty', 'PhanUndeclaredProperty'],
|
||||||
'htdocs/compta/facture/class/api_invoices.class.php' => ['PhanPluginUnknownArrayMethodParamType', 'PhanPluginUnknownArrayMethodReturnType', 'PhanTypeComparisonFromArray', 'PhanTypeMismatchArgument', 'PhanTypeMismatchArgumentProbablyReal'],
|
'htdocs/compta/facture/class/api_invoices.class.php' => ['PhanPluginUnknownArrayMethodParamType', 'PhanPluginUnknownArrayMethodReturnType', 'PhanTypeComparisonFromArray', 'PhanTypeMismatchArgumentProbablyReal'],
|
||||||
'htdocs/compta/facture/class/facture-rec.class.php' => ['PhanTypeMismatchArgument', 'PhanUndeclaredProperty'],
|
'htdocs/compta/facture/class/facture-rec.class.php' => ['PhanTypeMismatchArgument', 'PhanUndeclaredProperty'],
|
||||||
'htdocs/compta/facture/class/facture.class.php' => ['PhanTypeMismatchArgument', 'PhanTypeMismatchArgumentNullable', 'PhanUndeclaredProperty'],
|
'htdocs/compta/facture/class/facture.class.php' => ['PhanTypeMismatchArgument', 'PhanTypeMismatchArgumentNullable', 'PhanUndeclaredProperty'],
|
||||||
'htdocs/compta/facture/class/factureligne.class.php' => ['PhanTypeMismatchArgument'],
|
'htdocs/compta/facture/class/factureligne.class.php' => ['PhanTypeMismatchArgument'],
|
||||||
@@ -615,40 +613,17 @@ return [
|
|||||||
'htdocs/projet/class/api_tasks.class.php' => ['PhanPluginUnknownArrayMethodParamType', 'PhanPluginUnknownArrayMethodReturnType', 'PhanTypeMismatchArgument'],
|
'htdocs/projet/class/api_tasks.class.php' => ['PhanPluginUnknownArrayMethodParamType', 'PhanPluginUnknownArrayMethodReturnType', 'PhanTypeMismatchArgument'],
|
||||||
'htdocs/projet/tasks/time.php' => ['PhanTypeInvalidDimOffset', 'PhanTypeMismatchArgument', 'PhanUndeclaredProperty'],
|
'htdocs/projet/tasks/time.php' => ['PhanTypeInvalidDimOffset', 'PhanTypeMismatchArgument', 'PhanUndeclaredProperty'],
|
||||||
'htdocs/projet/tasks/tpl/linkedobjectblock.tpl.php' => ['PhanUndeclaredProperty'],
|
'htdocs/projet/tasks/tpl/linkedobjectblock.tpl.php' => ['PhanUndeclaredProperty'],
|
||||||
'htdocs/public/agenda/agendaexport.php' => ['PhanRedefineFunction'],
|
'htdocs/public/company/new.php' => ['PhanTypeMismatchArgument'],
|
||||||
'htdocs/public/bookcal/index.php' => ['PhanRedefineFunction'],
|
'htdocs/public/eventorganization/subscriptionok.php' => ['PhanUndeclaredGlobalVariable'],
|
||||||
'htdocs/public/company/new.php' => ['PhanRedefineFunction', 'PhanTypeMismatchArgument'],
|
'htdocs/public/members/new.php' => ['PhanUndeclaredGlobalVariable'],
|
||||||
'htdocs/public/cron/cron_run_jobs_by_url.php' => ['PhanUndeclaredProperty'],
|
'htdocs/public/payment/newpayment.php' => ['PhanUndeclaredProperty'],
|
||||||
'htdocs/public/demo/index.php' => ['PhanRedefineFunction'],
|
'htdocs/public/payment/paymentok.php' => ['PhanTypeMismatchArgumentProbablyReal', 'PhanUndeclaredGlobalVariable'],
|
||||||
'htdocs/public/donations/donateurs_code.php' => ['PhanRedefineFunction'],
|
'htdocs/public/project/index.php' => ['PhanUndeclaredGlobalVariable'],
|
||||||
'htdocs/public/emailing/mailing-read.php' => ['PhanRedefineFunction'],
|
'htdocs/public/project/suggestbooth.php' => ['PhanUndeclaredGlobalVariable', 'PhanUndeclaredProperty'],
|
||||||
'htdocs/public/eventorganization/attendee_new.php' => ['PhanRedefineFunction', 'PhanTypeMismatchArgument', 'PhanTypeMismatchArgumentNullable'],
|
'htdocs/public/project/suggestconference.php' => ['PhanUndeclaredGlobalVariable', 'PhanUndeclaredProperty'],
|
||||||
'htdocs/public/eventorganization/subscriptionok.php' => ['PhanRedefineFunction', 'PhanUndeclaredGlobalVariable'],
|
'htdocs/public/project/viewandvote.php' => ['PhanUndeclaredGlobalVariable'],
|
||||||
'htdocs/public/members/new.php' => ['PhanRedefineFunction', 'PhanTypeMismatchArgument', 'PhanUndeclaredGlobalVariable'],
|
'htdocs/public/recruitment/view.php' => ['PhanUndeclaredGlobalVariable'],
|
||||||
'htdocs/public/members/public_card.php' => ['PhanRedefineFunction'],
|
|
||||||
'htdocs/public/members/public_list.php' => ['PhanRedefineFunction'],
|
|
||||||
'htdocs/public/onlinesign/newonlinesign.php' => ['PhanTypeMismatchArgumentNullable', 'PhanTypeMismatchArgumentNullableInternal'],
|
|
||||||
'htdocs/public/opensurvey/studs.php' => ['PhanPossiblyUndeclaredGlobalVariable', 'PhanTypeMismatchArgument'],
|
|
||||||
'htdocs/public/partnership/new.php' => ['PhanRedefineFunction', 'PhanTypeMismatchArgument'],
|
|
||||||
'htdocs/public/payment/newpayment.php' => ['PhanTypeMismatchArgument', 'PhanTypeMismatchArgumentNullable', 'PhanUndeclaredProperty'],
|
|
||||||
'htdocs/public/payment/paymentko.php' => ['PhanPluginEmptyStatementIf', 'PhanPossiblyUndeclaredGlobalVariable', 'PhanTypeMismatchArgumentNullable'],
|
|
||||||
'htdocs/public/payment/paymentok.php' => ['PhanPluginSuspiciousParamPosition', 'PhanPossiblyUndeclaredGlobalVariable', 'PhanTypeExpectedObjectPropAccess', 'PhanTypeMismatchArgument', 'PhanTypeMismatchArgumentNullable', 'PhanTypeMismatchArgumentProbablyReal', 'PhanUndeclaredGlobalVariable'],
|
|
||||||
'htdocs/public/project/index.php' => ['PhanRedefineFunction', 'PhanUndeclaredGlobalVariable'],
|
|
||||||
'htdocs/public/project/new.php' => ['PhanRedefineFunction'],
|
|
||||||
'htdocs/public/project/suggestbooth.php' => ['PhanRedefineFunction', 'PhanTypeMismatchArgument', 'PhanUndeclaredGlobalVariable', 'PhanUndeclaredProperty'],
|
|
||||||
'htdocs/public/project/suggestconference.php' => ['PhanRedefineFunction', 'PhanTypeMismatchArgument', 'PhanUndeclaredGlobalVariable', 'PhanUndeclaredProperty'],
|
|
||||||
'htdocs/public/project/viewandvote.php' => ['PhanPossiblyUndeclaredGlobalVariable', 'PhanUndeclaredGlobalVariable'],
|
|
||||||
'htdocs/public/recruitment/view.php' => ['PhanTypeMismatchArgumentProbablyReal', 'PhanUndeclaredGlobalVariable'],
|
|
||||||
'htdocs/public/stripe/ipn.php' => ['PhanPossiblyUndeclaredGlobalVariable', 'PhanTypeMismatchArgument', 'PhanTypeMismatchArgumentProbablyReal', 'PhanUndeclaredGlobalVariable'],
|
|
||||||
'htdocs/public/test/test_arrays.php' => ['PhanPluginUndeclaredVariableIsset'],
|
|
||||||
'htdocs/public/ticket/create_ticket.php' => ['PhanPossiblyUndeclaredGlobalVariable', 'PhanTypeMismatchArgument', 'PhanTypeMismatchDimFetchNullable', 'PhanTypeMismatchProperty'],
|
|
||||||
'htdocs/public/ticket/list.php' => ['PhanTypeMismatchArgument'],
|
|
||||||
'htdocs/public/ticket/view.php' => ['PhanPossiblyUndeclaredGlobalVariable', 'PhanTypeMismatchArgumentProbablyReal'],
|
|
||||||
'htdocs/public/webportal/tpl/menu.tpl.php' => ['PhanUndeclaredProperty'],
|
'htdocs/public/webportal/tpl/menu.tpl.php' => ['PhanUndeclaredProperty'],
|
||||||
'htdocs/public/webportal/webportal.main.inc.php' => ['PhanRedefineFunction', 'PhanTypeMismatchArgument'],
|
|
||||||
'htdocs/public/website/index.php' => ['PhanRedefineFunction', 'PhanTypeMismatchArgument'],
|
|
||||||
'htdocs/public/website/javascript.js.php' => ['PhanRedefineFunction'],
|
|
||||||
'htdocs/public/website/styles.css.php' => ['PhanRedefineFunction'],
|
|
||||||
'htdocs/reception/card.php' => ['PhanPossiblyUndeclaredGlobalVariable', 'PhanTypeMismatchArgument', 'PhanTypeMismatchArgumentProbablyReal', 'PhanUndeclaredGlobalVariable', 'PhanUndeclaredProperty'],
|
'htdocs/reception/card.php' => ['PhanPossiblyUndeclaredGlobalVariable', 'PhanTypeMismatchArgument', 'PhanTypeMismatchArgumentProbablyReal', 'PhanUndeclaredGlobalVariable', 'PhanUndeclaredProperty'],
|
||||||
'htdocs/reception/class/api_receptions.class.php' => ['PhanTypeMismatchArgumentNullable'],
|
'htdocs/reception/class/api_receptions.class.php' => ['PhanTypeMismatchArgumentNullable'],
|
||||||
'htdocs/reception/class/reception.class.php' => ['PhanUndeclaredProperty'],
|
'htdocs/reception/class/reception.class.php' => ['PhanUndeclaredProperty'],
|
||||||
@@ -775,7 +750,7 @@ return [
|
|||||||
'htdocs/variants/list.php' => ['PhanTypeMismatchArgument'],
|
'htdocs/variants/list.php' => ['PhanTypeMismatchArgument'],
|
||||||
'htdocs/variants/tpl/productattributevalueline_edit.tpl.php' => ['PhanUndeclaredProperty'],
|
'htdocs/variants/tpl/productattributevalueline_edit.tpl.php' => ['PhanUndeclaredProperty'],
|
||||||
'htdocs/variants/tpl/productattributevalueline_view.tpl.php' => ['PhanUndeclaredProperty'],
|
'htdocs/variants/tpl/productattributevalueline_view.tpl.php' => ['PhanUndeclaredProperty'],
|
||||||
'htdocs/viewimage.php' => ['PhanRedefineFunction', 'PhanUndeclaredMethod'],
|
'htdocs/viewimage.php' => ['PhanUndeclaredMethod'],
|
||||||
'htdocs/webhook/class/api_webhook.class.php' => ['PhanPluginUnknownArrayMethodParamType', 'PhanPluginUnknownArrayMethodReturnType'],
|
'htdocs/webhook/class/api_webhook.class.php' => ['PhanPluginUnknownArrayMethodParamType', 'PhanPluginUnknownArrayMethodReturnType'],
|
||||||
'htdocs/webhook/class/target.class.php' => ['PhanUndeclaredMethod'],
|
'htdocs/webhook/class/target.class.php' => ['PhanUndeclaredMethod'],
|
||||||
'htdocs/webhook/target_card.php' => ['PhanTypeMismatchArgumentProbablyReal', 'PhanUndeclaredGlobalVariable'],
|
'htdocs/webhook/target_card.php' => ['PhanTypeMismatchArgumentProbablyReal', 'PhanUndeclaredGlobalVariable'],
|
||||||
|
|||||||
@@ -382,6 +382,7 @@ if ($action == 'edit') {
|
|||||||
clearstatcache();
|
clearstatcache();
|
||||||
|
|
||||||
|
|
||||||
|
print '<div class="div-table-responsive-no-min">'; // You can use div-table-responsive-no-min if you don't need reserved height for your table
|
||||||
print '<table class="noborder centpercent">';
|
print '<table class="noborder centpercent">';
|
||||||
print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("Parameters").'</td><td></td></tr>';
|
print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("Parameters").'</td><td></td></tr>';
|
||||||
|
|
||||||
@@ -613,11 +614,11 @@ if ($action == 'edit') {
|
|||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
|
print '<div class="div-table-responsive-no-min">'; // You can use div-table-responsive-no-min if you don't need reserved height for your table
|
||||||
print '<table class="noborder centpercent">';
|
print '<table class="noborder centpercent">';
|
||||||
print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("OtherOptions").'</td><td></td></tr>';
|
print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("OtherOptions").'</td><td></td></tr>';
|
||||||
|
|
||||||
@@ -664,6 +665,7 @@ if ($action == 'edit') {
|
|||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
print dol_get_fiche_end();
|
print dol_get_fiche_end();
|
||||||
|
|
||||||
@@ -868,7 +870,7 @@ if ($action == 'edit') {
|
|||||||
print '<tr class="oddeven"><td>'.$langs->trans("MAIN_MAIL_FORCE_SENDTO").'</td><td>'.getDolGlobalString('MAIN_MAIL_FORCE_SENDTO');
|
print '<tr class="oddeven"><td>'.$langs->trans("MAIN_MAIL_FORCE_SENDTO").'</td><td>'.getDolGlobalString('MAIN_MAIL_FORCE_SENDTO');
|
||||||
if (getDolGlobalString('MAIN_MAIL_FORCE_SENDTO')) {
|
if (getDolGlobalString('MAIN_MAIL_FORCE_SENDTO')) {
|
||||||
if (!isValidEmail(getDolGlobalString('MAIN_MAIL_FORCE_SENDTO'))) {
|
if (!isValidEmail(getDolGlobalString('MAIN_MAIL_FORCE_SENDTO'))) {
|
||||||
print img_warning($langs->trans("ErrorBadEMail"));
|
print img_warning($langs->trans("ErrorBadEMail", getDolGlobalString('MAIN_MAIL_FORCE_SENDTO')));
|
||||||
} else {
|
} else {
|
||||||
print img_warning($langs->trans("RecipientEmailsWillBeReplacedWithThisValue"));
|
print img_warning($langs->trans("RecipientEmailsWillBeReplacedWithThisValue"));
|
||||||
}
|
}
|
||||||
@@ -892,7 +894,7 @@ if ($action == 'edit') {
|
|||||||
print '<tr class="oddeven"><td>'.$langs->trans("MAIN_MAIL_FORCE_SENDTO").'</td><td>'.getDolGlobalString('MAIN_MAIL_FORCE_SENDTO');
|
print '<tr class="oddeven"><td>'.$langs->trans("MAIN_MAIL_FORCE_SENDTO").'</td><td>'.getDolGlobalString('MAIN_MAIL_FORCE_SENDTO');
|
||||||
if (getDolGlobalString('MAIN_MAIL_FORCE_SENDTO')) {
|
if (getDolGlobalString('MAIN_MAIL_FORCE_SENDTO')) {
|
||||||
if (!isValidEmail(getDolGlobalString('MAIN_MAIL_FORCE_SENDTO'))) {
|
if (!isValidEmail(getDolGlobalString('MAIN_MAIL_FORCE_SENDTO'))) {
|
||||||
print img_warning($langs->trans("ErrorBadEMail"));
|
print img_warning($langs->trans("ErrorBadEMail", getDolGlobalString('MAIN_MAIL_FORCE_SENDTO')));
|
||||||
} else {
|
} else {
|
||||||
print img_warning($langs->trans("RecipientEmailsWillBeReplacedWithThisValue"));
|
print img_warning($langs->trans("RecipientEmailsWillBeReplacedWithThisValue"));
|
||||||
}
|
}
|
||||||
@@ -910,7 +912,7 @@ if ($action == 'edit') {
|
|||||||
if (!getDolGlobalString('MAIN_MAIL_EMAIL_FROM')) {
|
if (!getDolGlobalString('MAIN_MAIL_EMAIL_FROM')) {
|
||||||
print img_warning($langs->trans("Mandatory"));
|
print img_warning($langs->trans("Mandatory"));
|
||||||
} elseif (!isValidEmail(getDolGlobalString('MAIN_MAIL_EMAIL_FROM'))) {
|
} elseif (!isValidEmail(getDolGlobalString('MAIN_MAIL_EMAIL_FROM'))) {
|
||||||
print img_warning($langs->trans("ErrorBadEMail"));
|
print img_warning($langs->trans("ErrorBadEMail", getDolGlobalString('MAIN_MAIL_EMAIL_FROM')));
|
||||||
}
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
@@ -958,7 +960,7 @@ if ($action == 'edit') {
|
|||||||
print '<tr class="oddeven"><td>'.$langs->trans("MAIN_MAIL_ERRORS_TO").'</td>';
|
print '<tr class="oddeven"><td>'.$langs->trans("MAIN_MAIL_ERRORS_TO").'</td>';
|
||||||
print '<td>'.(getDolGlobalString('MAIN_MAIL_ERRORS_TO'));
|
print '<td>'.(getDolGlobalString('MAIN_MAIL_ERRORS_TO'));
|
||||||
if (getDolGlobalString('MAIN_MAIL_ERRORS_TO') && !isValidEmail(getDolGlobalString('MAIN_MAIL_ERRORS_TO'))) {
|
if (getDolGlobalString('MAIN_MAIL_ERRORS_TO') && !isValidEmail(getDolGlobalString('MAIN_MAIL_ERRORS_TO'))) {
|
||||||
print img_warning($langs->trans("ErrorBadEMail"));
|
print img_warning($langs->trans("ErrorBadEMail", getDolGlobalString('MAIN_MAIL_ERRORS_TO')));
|
||||||
}
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
|
|||||||
@@ -104,6 +104,10 @@ if ($action == 'update' && !$cancel) {
|
|||||||
dolibarr_set_const($db, "MAIN_MAIL_EMAIL_STARTTLS_PASSWORDRESET", GETPOST("MAIN_MAIL_EMAIL_STARTTLS_PASSWORDRESET"), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_MAIL_EMAIL_STARTTLS_PASSWORDRESET", GETPOST("MAIN_MAIL_EMAIL_STARTTLS_PASSWORDRESET"), 'chaine', 0, '', $conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_PASSWORDRESET", GETPOST("MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_PASSWORDRESET"), 'chaine', 0, '', $conf->entity);
|
dolibarr_set_const($db, "MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_PASSWORDRESET", GETPOST("MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED_PASSWORDRESET"), 'chaine', 0, '', $conf->entity);
|
||||||
|
|
||||||
|
if (GETPOSTISSET("MAIN_MAIL_EMAIL_FROM_PASSWORDRESET")) {
|
||||||
|
dolibarr_set_const($db, "MAIN_MAIL_EMAIL_FROM_PASSWORDRESET", GETPOST("MAIN_MAIL_EMAIL_FROM_PASSWORDRESET", 'alphanohtml'), 'chaine', 0, '', $conf->entity);
|
||||||
|
}
|
||||||
|
|
||||||
header("Location: ".$_SERVER["PHP_SELF"]."?mainmenu=home&leftmenu=setup");
|
header("Location: ".$_SERVER["PHP_SELF"]."?mainmenu=home&leftmenu=setup");
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
@@ -349,6 +353,7 @@ if ($action == 'edit') {
|
|||||||
|
|
||||||
clearstatcache();
|
clearstatcache();
|
||||||
|
|
||||||
|
print '<div class="div-table-responsive-no-min">'; // You can use div-table-responsive-no-min if you don't need reserved height for your table
|
||||||
print '<table class="noborder centpercent">';
|
print '<table class="noborder centpercent">';
|
||||||
print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("Parameters").'</td><td></td></tr>';
|
print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("Parameters").'</td><td></td></tr>';
|
||||||
|
|
||||||
@@ -553,6 +558,26 @@ if ($action == 'edit') {
|
|||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
|
print '<br>';
|
||||||
|
|
||||||
|
|
||||||
|
print '<div class="div-table-responsive-no-min">'; // You can use div-table-responsive-no-min if you don't need reserved height for your table
|
||||||
|
print '<table class="noborder centpercent">';
|
||||||
|
print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("OtherOptions").'</td><td></td></tr>';
|
||||||
|
|
||||||
|
// From
|
||||||
|
$help = $form->textwithpicto('', $langs->trans("EMailHelpMsgSPFDKIM"));
|
||||||
|
print '<tr class="oddeven"><td class="">';
|
||||||
|
print $langs->trans("MAIN_MAIL_EMAIL_FROM", ini_get('sendmail_from') ? ini_get('sendmail_from') : $langs->transnoentities("Undefined"));
|
||||||
|
print ' '.$help;
|
||||||
|
print '</td>';
|
||||||
|
print '<td><input class="flat minwidth300" name="MAIN_MAIL_EMAIL_FROM_PASSWORDRESET" value="'.getDolGlobalString('MAIN_MAIL_EMAIL_FROM_PASSWORDRESET');
|
||||||
|
print '"></td></tr>';
|
||||||
|
|
||||||
|
print '</table>';
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
print dol_get_fiche_end();
|
print dol_get_fiche_end();
|
||||||
|
|
||||||
@@ -685,6 +710,36 @@ if ($action == 'edit') {
|
|||||||
print '</table>';
|
print '</table>';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
|
|
||||||
|
print '<br>';
|
||||||
|
|
||||||
|
|
||||||
|
print '<div class="div-table-responsive-no-min">'; // You can use div-table-responsive-no-min if you don't need reserved height for your table
|
||||||
|
print '<table class="noborder centpercent">';
|
||||||
|
print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("OtherOptions").'</td><td></td></tr>';
|
||||||
|
|
||||||
|
// From
|
||||||
|
$help = $form->textwithpicto('', $langs->trans("EMailHelpMsgSPFDKIM"));
|
||||||
|
print '<tr class="oddeven"><td>';
|
||||||
|
print $langs->trans("MAIN_MAIL_EMAIL_FROM", ini_get('sendmail_from') ? ini_get('sendmail_from') : $langs->transnoentities("Undefined"));
|
||||||
|
print ' '.$help;
|
||||||
|
print '</td>';
|
||||||
|
print '<td>';
|
||||||
|
if (!getDolGlobalString('MAIN_MAIL_EMAIL_FROM_PASSWORDRESET')) {
|
||||||
|
print '<span class="opacitymedium">'.getDolGlobalString('MAIN_MAIL_EMAIL_FROM').'</span>';
|
||||||
|
} else {
|
||||||
|
print getDolGlobalString('MAIN_MAIL_EMAIL_FROM_PASSWORDRESET');
|
||||||
|
}
|
||||||
|
if (!getDolGlobalString('MAIN_MAIL_EMAIL_FROM') && !getDolGlobalString('MAIN_MAIL_EMAIL_FROM_PASSWORDRESET')) {
|
||||||
|
print img_warning($langs->trans("Mandatory"));
|
||||||
|
} elseif (getDolGlobalString('MAIN_MAIL_EMAIL_FROM_PASSWORDRESET') && !isValidEmail(getDolGlobalString('MAIN_MAIL_EMAIL_FROM_PASSWORDRESET'))) {
|
||||||
|
print img_warning($langs->trans("ErrorBadEMail", getDolGlobalString('MAIN_MAIL_EMAIL_FROM_PASSWORDRESET')));
|
||||||
|
}
|
||||||
|
print '</td></tr>';
|
||||||
|
|
||||||
|
print '</table>';
|
||||||
|
print '</div>';
|
||||||
|
|
||||||
print dol_get_fiche_end();
|
print dol_get_fiche_end();
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -224,11 +224,33 @@ if (isModEnabled('propal')) {
|
|||||||
print ajax_constantonoff('MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING');
|
print ajax_constantonoff('MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING');
|
||||||
} else {
|
} else {
|
||||||
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
||||||
print $form->selectarray("MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING", $arrval, $conf->global->MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING);
|
print $form->selectarray("MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING", $arrval, getDolGlobalString('MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING'));
|
||||||
}
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
print '<tr class="oddeven"><td>';
|
||||||
|
print $form->textwithpicto($langs->trans("PDF_XXX_SHOW_PRICE_INCL_TAX"), $langs->trans("AvailableWithSomePDFTemplatesOnly"));
|
||||||
|
print '</td><td>';
|
||||||
|
if ($conf->use_javascript_ajax) {
|
||||||
|
print ajax_constantonoff('PDF_PROPAL_SHOW_PRICE_INCL_TAX');
|
||||||
|
} else {
|
||||||
|
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
||||||
|
print $form->selectarray("PDF_PROPAL_SHOW_PRICE_INCL_TAX", $arrval, getDolGlobalString('PDF_PROPAL_SHOW_PRICE_INCL_TAX'));
|
||||||
|
}
|
||||||
|
print '</td></tr>';
|
||||||
|
|
||||||
|
print '<tr class="oddeven"><td>';
|
||||||
|
print $form->textwithpicto($langs->trans("MAIN_GENERATE_DOCUMENTS_WITH_PICTURE"), $langs->trans("RandomlySelectedIfSeveral"));
|
||||||
|
print '</td><td>';
|
||||||
|
if ($conf->use_javascript_ajax) {
|
||||||
|
print ajax_constantonoff('MAIN_GENERATE_PROPOSALS_WITH_PICTURE');
|
||||||
|
} else {
|
||||||
|
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
||||||
|
print $form->selectarray("MAIN_GENERATE_PROPOSALS_WITH_PICTURE", $arrval, getDolGlobalString('MAIN_GENERATE_PROPOSALS_WITH_PICTURE'));
|
||||||
|
}
|
||||||
|
print '</td></tr>';
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>';
|
print '<tr class="oddeven"><td>';
|
||||||
print $form->textwithpicto($langs->trans("MAIN_PDF_ADD_TERMSOFSALE_PROPAL"), $langs->trans("PdfAddTermOfSaleHelp"));
|
print $form->textwithpicto($langs->trans("MAIN_PDF_ADD_TERMSOFSALE_PROPAL"), $langs->trans("PdfAddTermOfSaleHelp"));
|
||||||
print '</td><td>';
|
print '</td><td>';
|
||||||
@@ -236,18 +258,7 @@ if (isModEnabled('propal')) {
|
|||||||
print ajax_constantonoff('MAIN_PDF_ADD_TERMSOFSALE_PROPAL');
|
print ajax_constantonoff('MAIN_PDF_ADD_TERMSOFSALE_PROPAL');
|
||||||
} else {
|
} else {
|
||||||
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
||||||
print $form->selectarray("MAIN_PDF_ADD_TERMSOFSALE_PROPAL", $arrval, $conf->global->MAIN_PDF_ADD_TERMSOFSALE_PROPAL);
|
print $form->selectarray("MAIN_PDF_ADD_TERMSOFSALE_PROPAL", $arrval, getDolGlobalString('MAIN_PDF_ADD_TERMSOFSALE_PROPAL'));
|
||||||
}
|
|
||||||
print '</td></tr>';
|
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>';
|
|
||||||
print $form->textwithpicto($langs->trans("MAIN_GENERATE_PROPOSALS_WITH_PICTURE"), $langs->trans("RandomlySelectedIfSeveral"));
|
|
||||||
print '</td><td>';
|
|
||||||
if ($conf->use_javascript_ajax) {
|
|
||||||
print ajax_constantonoff('MAIN_GENERATE_PROPOSALS_WITH_PICTURE');
|
|
||||||
} else {
|
|
||||||
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
|
||||||
print $form->selectarray("MAIN_GENERATE_PROPOSALS_WITH_PICTURE", $arrval, $conf->global->MAIN_GENERATE_PROPOSALS_WITH_PICTURE);
|
|
||||||
}
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
@@ -261,7 +272,31 @@ if (isModEnabled('order')) {
|
|||||||
|
|
||||||
print '<div class="div-table-responsive-no-min">';
|
print '<div class="div-table-responsive-no-min">';
|
||||||
print '<table summary="more" class="noborder centpercent">';
|
print '<table summary="more" class="noborder centpercent">';
|
||||||
|
|
||||||
print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("Parameters").'</td><td width="200px"></td></tr>';
|
print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("Parameters").'</td><td width="200px"></td></tr>';
|
||||||
|
|
||||||
|
print '<tr class="oddeven"><td>';
|
||||||
|
print $form->textwithpicto($langs->trans("PDF_XXX_SHOW_PRICE_INCL_TAX"), $langs->trans("AvailableWithSomePDFTemplatesOnly"));
|
||||||
|
print '</td><td>';
|
||||||
|
if ($conf->use_javascript_ajax) {
|
||||||
|
print ajax_constantonoff('PDF_ORDER_SHOW_PRICE_INCL_TAX');
|
||||||
|
} else {
|
||||||
|
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
||||||
|
print $form->selectarray("PDF_ORDER_SHOW_PRICE_INCL_TAX", $arrval, getDolGlobalString('PDF_ORDER_SHOW_PRICE_INCL_TAX'));
|
||||||
|
}
|
||||||
|
print '</td></tr>';
|
||||||
|
|
||||||
|
print '<tr class="oddeven"><td>';
|
||||||
|
print $form->textwithpicto($langs->trans("MAIN_GENERATE_DOCUMENTS_WITH_PICTURE"), $langs->trans("RandomlySelectedIfSeveral"));
|
||||||
|
print '</td><td>';
|
||||||
|
if ($conf->use_javascript_ajax) {
|
||||||
|
print ajax_constantonoff('MAIN_GENERATE_ORDERS_WITH_PICTURE');
|
||||||
|
} else {
|
||||||
|
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
||||||
|
print $form->selectarray("MAIN_GENERATE_ORDERS_WITH_PICTURE", $arrval, getDolGlobalString('MAIN_GENERATE_ORDERS_WITH_PICTURE'));
|
||||||
|
}
|
||||||
|
print '</td></tr>';
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>';
|
print '<tr class="oddeven"><td>';
|
||||||
print $form->textwithpicto($langs->trans("MAIN_PDF_ADD_TERMSOFSALE_ORDER"), $langs->trans("PdfAddTermOfSaleHelp"));
|
print $form->textwithpicto($langs->trans("MAIN_PDF_ADD_TERMSOFSALE_ORDER"), $langs->trans("PdfAddTermOfSaleHelp"));
|
||||||
print '</td><td>';
|
print '</td><td>';
|
||||||
@@ -269,7 +304,7 @@ if (isModEnabled('order')) {
|
|||||||
print ajax_constantonoff('MAIN_PDF_ADD_TERMSOFSALE_ORDER');
|
print ajax_constantonoff('MAIN_PDF_ADD_TERMSOFSALE_ORDER');
|
||||||
} else {
|
} else {
|
||||||
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
||||||
print $form->selectarray("MAIN_PDF_ADD_TERMSOFSALE_ORDER", $arrval, $conf->global->MAIN_PDF_ADD_TERMSOFSALE_ORDER);
|
print $form->selectarray("MAIN_PDF_ADD_TERMSOFSALE_ORDER", $arrval, getDolGlobalString('MAIN_PDF_ADD_TERMSOFSALE_ORDER'));
|
||||||
}
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
@@ -280,7 +315,7 @@ if (isModEnabled('order')) {
|
|||||||
print ajax_constantonoff('SALES_ORDER_SHOW_SHIPPING_ADDRESS');
|
print ajax_constantonoff('SALES_ORDER_SHOW_SHIPPING_ADDRESS');
|
||||||
} else {
|
} else {
|
||||||
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
||||||
print $form->selectarray("SALES_ORDER_SHOW_SHIPPING_ADDRESS", $arrval, $conf->global->SALES_ORDER_SHOW_SHIPPING_ADDRESS);
|
print $form->selectarray("SALES_ORDER_SHOW_SHIPPING_ADDRESS", $arrval, getDolGlobalString('SALES_ORDER_SHOW_SHIPPING_ADDRESS'));
|
||||||
}
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
@@ -289,74 +324,6 @@ if (isModEnabled('order')) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (isModEnabled('supplier_proposal')) {
|
|
||||||
$langs->load("supplier_proposal");
|
|
||||||
print load_fiche_titre($langs->trans("SupplierProposal"), '', 'supplier_proposal');
|
|
||||||
|
|
||||||
print '<div class="div-table-responsive-no-min">';
|
|
||||||
print '<table summary="more" class="noborder centpercent">';
|
|
||||||
print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("Parameter").'</td><td width="200px"></td></tr>';
|
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>';
|
|
||||||
print $form->textwithpicto($langs->trans("MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_UNIT_PRICE"), '');
|
|
||||||
print '</td><td>';
|
|
||||||
if ($conf->use_javascript_ajax) {
|
|
||||||
print ajax_constantonoff('MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_UNIT_PRICE');
|
|
||||||
} else {
|
|
||||||
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
|
||||||
print $form->selectarray("MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_UNIT_PRICE", $arrval, $conf->global->MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_UNIT_PRICE);
|
|
||||||
}
|
|
||||||
print '</td></tr>';
|
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>';
|
|
||||||
print $form->textwithpicto($langs->trans("MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_TOTAL_COLUMN"), '');
|
|
||||||
print '</td><td>';
|
|
||||||
if ($conf->use_javascript_ajax) {
|
|
||||||
print ajax_constantonoff('MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_TOTAL_COLUMN');
|
|
||||||
} else {
|
|
||||||
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
|
||||||
print $form->selectarray("MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_TOTAL_COLUMN", $arrval, $conf->global->MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_TOTAL_COLUMN);
|
|
||||||
}
|
|
||||||
print '</td></tr>';
|
|
||||||
|
|
||||||
print '</table>';
|
|
||||||
print '</div>';
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (isModEnabled('supplier_order')) {
|
|
||||||
$langs->load("supplier_order");
|
|
||||||
print load_fiche_titre($langs->trans("SupplierOrder"), '', 'supplier_proposal');
|
|
||||||
|
|
||||||
print '<div class="div-table-responsive-no-min">';
|
|
||||||
print '<table summary="more" class="noborder centpercent">';
|
|
||||||
print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("Parameter").'</td><td width="200px"></td></tr>';
|
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>';
|
|
||||||
print $form->textwithpicto($langs->trans("MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_UNIT_PRICE"), '');
|
|
||||||
print '</td><td>';
|
|
||||||
if ($conf->use_javascript_ajax) {
|
|
||||||
print ajax_constantonoff('MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_UNIT_PRICE');
|
|
||||||
} else {
|
|
||||||
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
|
||||||
print $form->selectarray("MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_UNIT_PRICE", $arrval, $conf->global->MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_UNIT_PRICE);
|
|
||||||
}
|
|
||||||
print '</td></tr>';
|
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>';
|
|
||||||
print $form->textwithpicto($langs->trans("MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_TOTAL_COLUMN"), '');
|
|
||||||
print '</td><td>';
|
|
||||||
if ($conf->use_javascript_ajax) {
|
|
||||||
print ajax_constantonoff('MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_TOTAL_COLUMN');
|
|
||||||
} else {
|
|
||||||
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
|
||||||
print $form->selectarray("MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_TOTAL_COLUMN", $arrval, $conf->global->MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_TOTAL_COLUMN);
|
|
||||||
}
|
|
||||||
print '</td></tr>';
|
|
||||||
|
|
||||||
print '</table>';
|
|
||||||
print '</div>';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isModEnabled('invoice')) {
|
if (isModEnabled('invoice')) {
|
||||||
print load_fiche_titre($langs->trans("Invoices"), '', 'bill');
|
print load_fiche_titre($langs->trans("Invoices"), '', 'bill');
|
||||||
@@ -365,6 +332,28 @@ if (isModEnabled('invoice')) {
|
|||||||
print '<table summary="more" class="noborder centpercent">';
|
print '<table summary="more" class="noborder centpercent">';
|
||||||
print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("Parameters").'</td><td width="200px"></td></tr>';
|
print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("Parameters").'</td><td width="200px"></td></tr>';
|
||||||
|
|
||||||
|
print '<tr class="oddeven"><td>';
|
||||||
|
print $form->textwithpicto($langs->trans("PDF_XXX_SHOW_PRICE_INCL_TAX"), $langs->trans("AvailableWithSomePDFTemplatesOnly"));
|
||||||
|
print '</td><td>';
|
||||||
|
if ($conf->use_javascript_ajax) {
|
||||||
|
print ajax_constantonoff('PDF_INVOICE_SHOW_PRICE_INCL_TAX');
|
||||||
|
} else {
|
||||||
|
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
||||||
|
print $form->selectarray("PDF_INVOICE_SHOW_PRICE_INCL_TAX", $arrval, getDolGlobalString('PDF_INVOICE_SHOW_PRICE_INCL_TAX'));
|
||||||
|
}
|
||||||
|
print '</td></tr>';
|
||||||
|
|
||||||
|
print '<tr class="oddeven"><td>';
|
||||||
|
print $form->textwithpicto($langs->trans("MAIN_GENERATE_DOCUMENTS_WITH_PICTURE"), $langs->trans("RandomlySelectedIfSeveral"));
|
||||||
|
print '</td><td>';
|
||||||
|
if ($conf->use_javascript_ajax) {
|
||||||
|
print ajax_constantonoff('MAIN_GENERATE_INVOICES_WITH_PICTURE');
|
||||||
|
} else {
|
||||||
|
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
||||||
|
print $form->selectarray("MAIN_GENERATE_INVOICES_WITH_PICTURE", $arrval, getDolGlobalString('MAIN_GENERATE_INVOICES_WITH_PICTURE'));
|
||||||
|
}
|
||||||
|
print '</td></tr>';
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>';
|
print '<tr class="oddeven"><td>';
|
||||||
print $form->textwithpicto($langs->trans("MAIN_PDF_ADD_TERMSOFSALE_INVOICE"), $langs->trans("PdfAddTermOfSaleHelp"));
|
print $form->textwithpicto($langs->trans("MAIN_PDF_ADD_TERMSOFSALE_INVOICE"), $langs->trans("PdfAddTermOfSaleHelp"));
|
||||||
print '</td><td>';
|
print '</td><td>';
|
||||||
@@ -372,9 +361,10 @@ if (isModEnabled('invoice')) {
|
|||||||
print ajax_constantonoff('MAIN_PDF_ADD_TERMSOFSALE_INVOICE');
|
print ajax_constantonoff('MAIN_PDF_ADD_TERMSOFSALE_INVOICE');
|
||||||
} else {
|
} else {
|
||||||
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
||||||
print $form->selectarray("MAIN_PDF_ADD_TERMSOFSALE_INVOICE", $arrval, $conf->global->MAIN_PDF_ADD_TERMSOFSALE_INVOICE);
|
print $form->selectarray("MAIN_PDF_ADD_TERMSOFSALE_INVOICE", $arrval, getDolGlobalString('MAIN_PDF_ADD_TERMSOFSALE_INVOICE'));
|
||||||
}
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
print '<tr class="oddeven"><td>';
|
print '<tr class="oddeven"><td>';
|
||||||
print $form->textwithpicto($langs->trans("INVOICE_ADD_ZATCA_QR_CODE"), $langs->trans("INVOICE_ADD_ZATCA_QR_CODEMore"));
|
print $form->textwithpicto($langs->trans("INVOICE_ADD_ZATCA_QR_CODE"), $langs->trans("INVOICE_ADD_ZATCA_QR_CODEMore"));
|
||||||
print '</td><td>';
|
print '</td><td>';
|
||||||
@@ -430,7 +420,7 @@ if (isModEnabled('invoice')) {
|
|||||||
print ajax_constantonoff('INVOICE_SHOW_SHIPPING_ADDRESS');
|
print ajax_constantonoff('INVOICE_SHOW_SHIPPING_ADDRESS');
|
||||||
} else {
|
} else {
|
||||||
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
||||||
print $form->selectarray("INVOICE_SHOW_SHIPPING_ADDRESS", $arrval, $conf->global->INVOICE_SHOW_SHIPPING_ADDRESS);
|
print $form->selectarray("INVOICE_SHOW_SHIPPING_ADDRESS", $arrval, getDolGlobalString('INVOICE_SHOW_SHIPPING_ADDRESS'));
|
||||||
}
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
@@ -466,7 +456,77 @@ if (isModEnabled('invoice')) {
|
|||||||
print ajax_constantonoff('INVOICE_HIDE_LINKED_OBJECT');
|
print ajax_constantonoff('INVOICE_HIDE_LINKED_OBJECT');
|
||||||
} else {
|
} else {
|
||||||
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
||||||
print $form->selectarray("INVOICE_HIDE_LINKED_OBJECT", $arrval, $conf->global->INVOICE_HIDE_LINKED_OBJECT);
|
print $form->selectarray("INVOICE_HIDE_LINKED_OBJECT", $arrval, getDolGlobalString('INVOICE_HIDE_LINKED_OBJECT'));
|
||||||
|
}
|
||||||
|
print '</td></tr>';
|
||||||
|
|
||||||
|
print '</table>';
|
||||||
|
print '</div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (isModEnabled('supplier_proposal')) {
|
||||||
|
$langs->load("supplier_proposal");
|
||||||
|
print load_fiche_titre($langs->trans("SupplierProposal"), '', 'supplier_proposal');
|
||||||
|
|
||||||
|
print '<div class="div-table-responsive-no-min">';
|
||||||
|
print '<table summary="more" class="noborder centpercent">';
|
||||||
|
print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("Parameter").'</td><td width="200px"></td></tr>';
|
||||||
|
|
||||||
|
print '<tr class="oddeven"><td>';
|
||||||
|
print $form->textwithpicto($langs->trans("MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_UNIT_PRICE"), '');
|
||||||
|
print '</td><td>';
|
||||||
|
if ($conf->use_javascript_ajax) {
|
||||||
|
print ajax_constantonoff('MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_UNIT_PRICE');
|
||||||
|
} else {
|
||||||
|
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
||||||
|
print $form->selectarray("MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_UNIT_PRICE", $arrval, getDolGlobalString('MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_UNIT_PRICE'));
|
||||||
|
}
|
||||||
|
print '</td></tr>';
|
||||||
|
|
||||||
|
print '<tr class="oddeven"><td>';
|
||||||
|
print $form->textwithpicto($langs->trans("MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_TOTAL_COLUMN"), '');
|
||||||
|
print '</td><td>';
|
||||||
|
if ($conf->use_javascript_ajax) {
|
||||||
|
print ajax_constantonoff('MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_TOTAL_COLUMN');
|
||||||
|
} else {
|
||||||
|
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
||||||
|
print $form->selectarray("MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_TOTAL_COLUMN", $arrval, getDolGlobalString('MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_TOTAL_COLUMN'));
|
||||||
|
}
|
||||||
|
print '</td></tr>';
|
||||||
|
|
||||||
|
print '</table>';
|
||||||
|
print '</div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (isModEnabled('supplier_order')) {
|
||||||
|
$langs->load("supplier_order");
|
||||||
|
print load_fiche_titre($langs->trans("SupplierOrder"), '', 'supplier_proposal');
|
||||||
|
|
||||||
|
print '<div class="div-table-responsive-no-min">';
|
||||||
|
print '<table summary="more" class="noborder centpercent">';
|
||||||
|
print '<tr class="liste_titre"><td class="titlefieldmiddle">'.$langs->trans("Parameter").'</td><td width="200px"></td></tr>';
|
||||||
|
|
||||||
|
print '<tr class="oddeven"><td>';
|
||||||
|
print $form->textwithpicto($langs->trans("MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_UNIT_PRICE"), '');
|
||||||
|
print '</td><td>';
|
||||||
|
if ($conf->use_javascript_ajax) {
|
||||||
|
print ajax_constantonoff('MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_UNIT_PRICE');
|
||||||
|
} else {
|
||||||
|
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
||||||
|
print $form->selectarray("MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_UNIT_PRICE", $arrval, getDolGlobalString('MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_UNIT_PRICE'));
|
||||||
|
}
|
||||||
|
print '</td></tr>';
|
||||||
|
|
||||||
|
print '<tr class="oddeven"><td>';
|
||||||
|
print $form->textwithpicto($langs->trans("MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_TOTAL_COLUMN"), '');
|
||||||
|
print '</td><td>';
|
||||||
|
if ($conf->use_javascript_ajax) {
|
||||||
|
print ajax_constantonoff('MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_TOTAL_COLUMN');
|
||||||
|
} else {
|
||||||
|
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
||||||
|
print $form->selectarray("MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_TOTAL_COLUMN", $arrval, getDolGlobalString('MAIN_GENERATE_DOCUMENTS_PURCHASE_ORDER_WITHOUT_TOTAL_COLUMN'));
|
||||||
}
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
@@ -495,7 +555,6 @@ if (isModEnabled('shipping')) {
|
|||||||
print '</div>';
|
print '</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (isModEnabled('reception')) {
|
if (isModEnabled('reception')) {
|
||||||
print load_fiche_titre($langs->trans("Receptions"), '', 'reception');
|
print load_fiche_titre($langs->trans("Receptions"), '', 'reception');
|
||||||
|
|
||||||
@@ -572,7 +631,7 @@ $maxfilesizearray = getMaxFileSizeArray();
|
|||||||
$tooltiptermsofsale .= ($maxfilesizearray['maxmin'] > 0) ? '<br>'.$langs->trans('MaxSize').' : '.$maxfilesizearray['maxmin'].' '.$langs->trans('Kb') : '';
|
$tooltiptermsofsale .= ($maxfilesizearray['maxmin'] > 0) ? '<br>'.$langs->trans('MaxSize').' : '.$maxfilesizearray['maxmin'].' '.$langs->trans('Kb') : '';
|
||||||
$documenturl = DOL_URL_ROOT.'/document.php';
|
$documenturl = DOL_URL_ROOT.'/document.php';
|
||||||
if (isset($conf->global->DOL_URL_ROOT_DOCUMENT_PHP)) {
|
if (isset($conf->global->DOL_URL_ROOT_DOCUMENT_PHP)) {
|
||||||
$documenturl = $conf->global->DOL_URL_ROOT_DOCUMENT_PHP;
|
$documenturl = getDolGlobalString('DOL_URL_ROOT_DOCUMENT_PHP');
|
||||||
}
|
}
|
||||||
$modulepart = 'mycompany';
|
$modulepart = 'mycompany';
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2009-2010 Laurent Destailleur <eldy@users.sourceforge.net>
|
/* Copyright (C) 2009-2010 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
||||||
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
|
* Copyright (C) 2024-2025 MDW <mdeweerd@users.noreply.github.com>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -51,6 +51,8 @@ if (!defined('NOREQUIREAJAX')) {
|
|||||||
/**
|
/**
|
||||||
* Empty header
|
* Empty header
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @param string $head Optional head lines
|
* @param string $head Optional head lines
|
||||||
* @param string $title HTML title
|
* @param string $title HTML title
|
||||||
* @param string $help_url Url links to help page
|
* @param string $help_url Url links to help page
|
||||||
@@ -68,7 +70,7 @@ if (!defined('NOREQUIREAJAX')) {
|
|||||||
* @param int $disablenoindex Disable the "noindex" on meta robot header
|
* @param int $disablenoindex Disable the "noindex" on meta robot header
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxHeader($head = '', $title = '', $help_url = '', $target = '', $disablejs = 0, $disablehead = 0, $arrayofjs = '', $arrayofcss = '', $morequerystring = '', $morecssonbody = '', $replacemainareaby = '', $disablenofollow = 0, $disablenoindex = 0)
|
function llxHeader($head = '', $title = '', $help_url = '', $target = '', $disablejs = 0, $disablehead = 0, $arrayofjs = '', $arrayofcss = '', $morequerystring = '', $morecssonbody = '', $replacemainareaby = '', $disablenofollow = 0, $disablenoindex = 0) // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
print '<html>'."\n";
|
print '<html>'."\n";
|
||||||
print '<head>'."\n";
|
print '<head>'."\n";
|
||||||
@@ -79,12 +81,14 @@ function llxHeader($head = '', $title = '', $help_url = '', $target = '', $disab
|
|||||||
/**
|
/**
|
||||||
* Empty footer
|
* Empty footer
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @param string $comment A text to add as HTML comment into HTML generated page
|
* @param string $comment A text to add as HTML comment into HTML generated page
|
||||||
* @param string $zone 'private' (for private pages) or 'public' (for public pages)
|
* @param string $zone 'private' (for private pages) or 'public' (for public pages)
|
||||||
* @param int $disabledoutputofmessages Clear all messages stored into session without displaying them
|
* @param int $disabledoutputofmessages Clear all messages stored into session without displaying them
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxFooter($comment = '', $zone = 'private', $disabledoutputofmessages = 0)
|
function llxFooter($comment = '', $zone = 'private', $disabledoutputofmessages = 0) // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
print "\n".'</html>'."\n";
|
print "\n".'</html>'."\n";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -469,6 +469,12 @@ if ($filtert > 0 || $usergroup > 0) {
|
|||||||
if ($usergroup > 0) {
|
if ($usergroup > 0) {
|
||||||
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."usergroup_user as ugu ON ugu.fk_user = ar.fk_element";
|
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."usergroup_user as ugu ON ugu.fk_user = ar.fk_element";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Add table from hooks
|
||||||
|
$parameters = array();
|
||||||
|
$reshook = $hookmanager->executeHooks('printFieldListFrom', $parameters, $object, $action); // Note that $action and $object may have been modified by hook
|
||||||
|
$sql .= $hookmanager->resPrint;
|
||||||
|
|
||||||
$sql .= " WHERE a.entity IN (".getEntity('agenda').")";
|
$sql .= " WHERE a.entity IN (".getEntity('agenda').")";
|
||||||
// Condition on actioncode
|
// Condition on actioncode
|
||||||
if (!empty($actioncode)) {
|
if (!empty($actioncode)) {
|
||||||
|
|||||||
@@ -104,7 +104,7 @@ class Facture extends CommonInvoice
|
|||||||
protected $table_ref_field = 'ref';
|
protected $table_ref_field = 'ref';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var int ID
|
* @var int|null ID
|
||||||
* @deprecated Use $user_creation_id
|
* @deprecated Use $user_creation_id
|
||||||
*/
|
*/
|
||||||
public $fk_user_author;
|
public $fk_user_author;
|
||||||
@@ -2554,9 +2554,12 @@ class Facture extends CommonInvoice
|
|||||||
if (isset($this->retained_warranty)) {
|
if (isset($this->retained_warranty)) {
|
||||||
$this->retained_warranty = (float) $this->retained_warranty;
|
$this->retained_warranty = (float) $this->retained_warranty;
|
||||||
}
|
}
|
||||||
|
if (!isset($this->user_creation_id) && isset($this->fk_user_author) ) {
|
||||||
// Check parameters
|
$this->user_creation_id = $this->fk_user_author;
|
||||||
// Put here code to add control on parameters values
|
}
|
||||||
|
if (!isset($this->user_validation_id) && isset($this->fk_user_valid) ) {
|
||||||
|
$this->user_validation_id = $this->fk_user_valid;
|
||||||
|
}
|
||||||
|
|
||||||
// Update request
|
// Update request
|
||||||
$sql = "UPDATE ".MAIN_DB_PREFIX."facture SET";
|
$sql = "UPDATE ".MAIN_DB_PREFIX."facture SET";
|
||||||
@@ -2581,7 +2584,8 @@ class Facture extends CommonInvoice
|
|||||||
$sql .= " total_ttc=".(isset($this->total_ttc) ? (float) $this->total_ttc : "null").",";
|
$sql .= " total_ttc=".(isset($this->total_ttc) ? (float) $this->total_ttc : "null").",";
|
||||||
$sql .= " revenuestamp=".((isset($this->revenuestamp) && $this->revenuestamp != '') ? (float) $this->revenuestamp : "null").",";
|
$sql .= " revenuestamp=".((isset($this->revenuestamp) && $this->revenuestamp != '') ? (float) $this->revenuestamp : "null").",";
|
||||||
$sql .= " fk_statut=".(isset($this->status) ? (int) $this->status : "null").",";
|
$sql .= " fk_statut=".(isset($this->status) ? (int) $this->status : "null").",";
|
||||||
$sql .= " fk_user_valid=".(isset($this->fk_user_valid) ? (int) $this->fk_user_valid : "null").",";
|
$sql .= " fk_user_author=".(isset($this->user_creation_id) ? ((int) $this->user_creation_id) : "null").",";
|
||||||
|
$sql .= " fk_user_valid=".(isset($this->user_validation_id) ? (int) $this->user_validation_id : "null").",";
|
||||||
$sql .= " fk_facture_source=".(isset($this->fk_facture_source) ? (int) $this->fk_facture_source : "null").",";
|
$sql .= " fk_facture_source=".(isset($this->fk_facture_source) ? (int) $this->fk_facture_source : "null").",";
|
||||||
$sql .= " fk_projet=".(isset($this->fk_project) ? (int) $this->fk_project : "null").",";
|
$sql .= " fk_projet=".(isset($this->fk_project) ? (int) $this->fk_project : "null").",";
|
||||||
$sql .= " fk_cond_reglement=".(isset($this->cond_reglement_id) ? (int) $this->cond_reglement_id : "null").",";
|
$sql .= " fk_cond_reglement=".(isset($this->cond_reglement_id) ? (int) $this->cond_reglement_id : "null").",";
|
||||||
@@ -3324,10 +3328,17 @@ class Facture extends CommonInvoice
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($key == 'TVA_INTRA') {
|
if ($key == 'TVA_INTRA') {
|
||||||
// Check for mandatory
|
// Check for mandatory vat number
|
||||||
if (getDolGlobalString('SOCIETE_VAT_INTRA_INVOICE_MANDATORY') && ($this->thirdparty->tva_assuj) && empty($this->thirdparty->tva_intra)) {
|
if (getDolGlobalString('SOCIETE_VAT_INTRA_INVOICE_MANDATORY') == 'eeconly') {
|
||||||
|
if (($this->thirdparty->tva_assuj) && empty($this->thirdparty->tva_intra) && $this->thirdparty->isInEEC()) {
|
||||||
$langs->load("errors");
|
$langs->load("errors");
|
||||||
$this->error = $langs->trans('ErrorProdIdIsMandatory', $langs->trans('VATIntra')).' ('.$langs->trans("ForbiddenBySetupRules").') ['.$langs->trans('Company').' : '.$this->thirdparty->name.']';
|
$this->error = $langs->trans('ErrorProdIdIsMandatoryForEuThirdparties', $langs->transnoentitiesnoconv('VATIntra')).' ('.$langs->transnoentitiesnoconv("ForbiddenBySetupRules").') ['.$langs->trans('Company').' : '.$this->thirdparty->name.']';
|
||||||
|
dol_syslog(__METHOD__.' '.$this->error, LOG_ERR);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
} elseif (getDolGlobalString('SOCIETE_VAT_INTRA_INVOICE_MANDATORY') && ($this->thirdparty->tva_assuj) && empty($this->thirdparty->tva_intra)) {
|
||||||
|
$langs->load("errors");
|
||||||
|
$this->error = $langs->trans('ErrorProdIdIsMandatory', $langs->transnoentitiesnoconv('VATIntra')).' ('.$langs->transnoentitiesnoconv("ForbiddenBySetupRules").') ['.$langs->trans('Company').' : '.$this->thirdparty->name.']';
|
||||||
dol_syslog(__METHOD__.' '.$this->error, LOG_ERR);
|
dol_syslog(__METHOD__.' '.$this->error, LOG_ERR);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -704,7 +704,7 @@ abstract class CommonObject
|
|||||||
public $user_creation;
|
public $user_creation;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var int User id author/creation
|
* @var int|null User id author/creation
|
||||||
*/
|
*/
|
||||||
public $user_creation_id;
|
public $user_creation_id;
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2023-2024 Frédéric France <frederic.france@free.fr>
|
/* Copyright (C) 2023-2024 Frédéric France <frederic.france@free.fr>
|
||||||
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
|
* Copyright (C) 2024-2025 MDW <mdeweerd@users.noreply.github.com>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -99,8 +99,8 @@ trait CommonPeople
|
|||||||
* Return full name (civility+' '+name+' '+lastname)
|
* Return full name (civility+' '+name+' '+lastname)
|
||||||
*
|
*
|
||||||
* @param Translate $langs Language object for translation of civility (used only if option is 1)
|
* @param Translate $langs Language object for translation of civility (used only if option is 1)
|
||||||
* @param int $option 0=No option, 1=Add civility
|
* @param int<0,1> $option 0=No option, 1=Add civility
|
||||||
* @param int $nameorder -1=Auto, 0=Lastname+Firstname, 1=Firstname+Lastname, 2=Firstname, 3=Firstname if defined else lastname, 4=Lastname, 5=Lastname if defined else firstname
|
* @param int<-1,5> $nameorder -1=Auto, 0=Lastname+Firstname, 1=Firstname+Lastname, 2=Firstname, 3=Firstname if defined else lastname, 4=Lastname, 5=Lastname if defined else firstname
|
||||||
* @param int $maxlen Maximum length
|
* @param int $maxlen Maximum length
|
||||||
* @return string String with full name
|
* @return string String with full name
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1554,6 +1554,16 @@ class FormMail extends Form
|
|||||||
}),
|
}),
|
||||||
success: function(response) {
|
success: function(response) {
|
||||||
console.log('Received image URL: '+response);
|
console.log('Received image URL: '+response);
|
||||||
|
|
||||||
|
// make substitutions
|
||||||
|
let substit = ". json_encode($this->substit).";
|
||||||
|
for (let key in substit) {
|
||||||
|
if (substit.hasOwnProperty(key)) {
|
||||||
|
// Replace the placeholder with its corresponding value
|
||||||
|
response = response.replace(key, substit[key]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Assuming response is the URL of the generated image
|
// Assuming response is the URL of the generated image
|
||||||
var imageUrl = response;
|
var imageUrl = response;
|
||||||
$('#ai_image_result').html('<img src=\"' + imageUrl + '\" alt=\"Generated Image\" />');
|
$('#ai_image_result').html('<img src=\"' + imageUrl + '\" alt=\"Generated Image\" />');
|
||||||
|
|||||||
@@ -2683,9 +2683,54 @@ function addMailingEventTypeSQL($actioncode, $objcon, $filterobj)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show header of company in HTML public pages
|
||||||
|
*
|
||||||
|
* @param Societe $mysoc Third party
|
||||||
|
* @param Translate $langs Output language
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
function htmlPrintOnlineHeader($mysoc, $langs)
|
||||||
|
{
|
||||||
|
global $conf;
|
||||||
|
|
||||||
|
// Define urllogo
|
||||||
|
$urllogo = DOL_URL_ROOT.'/theme/common/login_logo.png';
|
||||||
|
|
||||||
|
if (!empty($mysoc->logo_small) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_small)) {
|
||||||
|
$urllogo = DOL_URL_ROOT.'/viewimage.php?cache=1&modulepart=mycompany&file='.urlencode('logos/thumbs/'.$mysoc->logo_small);
|
||||||
|
} elseif (!empty($mysoc->logo) && is_readable($conf->mycompany->dir_output.'/logos/'.$mysoc->logo)) {
|
||||||
|
$urllogo = DOL_URL_ROOT.'/viewimage.php?cache=1&modulepart=mycompany&file='.urlencode('logos/'.$mysoc->logo);
|
||||||
|
} elseif (is_readable(DOL_DOCUMENT_ROOT.'/theme/dolibarr_logo.svg')) {
|
||||||
|
$urllogo = DOL_URL_ROOT.'/theme/dolibarr_logo.svg';
|
||||||
|
}
|
||||||
|
|
||||||
|
print '<header class="center">';
|
||||||
|
|
||||||
|
// Output html code for logo
|
||||||
|
if ($urllogo) {
|
||||||
|
print '<div class="backgreypublicpayment">';
|
||||||
|
print '<div class="logopublicpayment">';
|
||||||
|
print '<img id="dolpaymentlogo" src="'.$urllogo.'">';
|
||||||
|
print '</div>';
|
||||||
|
if (!getDolGlobalString('MAIN_HIDE_POWERED_BY')) {
|
||||||
|
print '<div class="poweredbypublicpayment opacitymedium right"><a class="poweredbyhref" href="https://www.dolibarr.org?utm_medium=website&utm_source=poweredby" target="dolibarr" rel="noopener">'.$langs->trans("PoweredBy").'<br><img class="poweredbyimg" src="'.DOL_URL_ROOT.'/theme/dolibarr_logo.svg" width="80px"></a></div>';
|
||||||
|
}
|
||||||
|
print '</div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (getDolGlobalString('MEMBER_IMAGE_PUBLIC_REGISTRATION')) {
|
||||||
|
print '<div class="backimagepublicregistration">';
|
||||||
|
print '<img id="idEVENTORGANIZATION_IMAGE_PUBLIC_INTERFACE" src="' . getDolGlobalString('MEMBER_IMAGE_PUBLIC_REGISTRATION').'">';
|
||||||
|
print '</div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
print '</header>';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show footer of company in HTML pages
|
* Show footer of company in HTML public pages
|
||||||
*
|
*
|
||||||
* @param Societe $fromcompany Third party
|
* @param Societe $fromcompany Third party
|
||||||
* @param Translate $langs Output language
|
* @param Translate $langs Output language
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ class pdf_proforma extends pdf_eratosthene
|
|||||||
*/
|
*/
|
||||||
public function __construct($db)
|
public function __construct($db)
|
||||||
{
|
{
|
||||||
global $conf, $langs, $mysoc;
|
global $langs;
|
||||||
|
|
||||||
parent::__construct($db);
|
parent::__construct($db);
|
||||||
|
|
||||||
|
|||||||
@@ -195,8 +195,8 @@ class doc_generic_project_odt extends ModelePDFProjects
|
|||||||
'task_label' => $task->label,
|
'task_label' => $task->label,
|
||||||
'task_description' => $task->description,
|
'task_description' => $task->description,
|
||||||
'task_fk_parent' => $task->fk_task_parent,
|
'task_fk_parent' => $task->fk_task_parent,
|
||||||
'task_duration' => $task->duration,
|
'task_duration' => $task->duration_effective,
|
||||||
'task_duration_hour' => convertSecondToTime($task->duration, 'all'),
|
'task_duration_hour' => convertSecondToTime($task->duration_effective, 'all'),
|
||||||
'task_planned_workload' => $task->planned_workload,
|
'task_planned_workload' => $task->planned_workload,
|
||||||
'task_planned_workload_hour' => convertSecondToTime($task->planned_workload, 'all'),
|
'task_planned_workload_hour' => convertSecondToTime($task->planned_workload, 'all'),
|
||||||
'task_progress' => $task->progress,
|
'task_progress' => $task->progress,
|
||||||
|
|||||||
@@ -307,7 +307,7 @@ class pdf_timespent extends ModelePDFProjects
|
|||||||
//$progress=($object->lines[$i]->progress?$object->lines[$i]->progress.'%':'');
|
//$progress=($object->lines[$i]->progress?$object->lines[$i]->progress.'%':'');
|
||||||
$datestart = dol_print_date($object->lines[$i]->date_start, 'day');
|
$datestart = dol_print_date($object->lines[$i]->date_start, 'day');
|
||||||
$dateend = dol_print_date($object->lines[$i]->date_end, 'day');
|
$dateend = dol_print_date($object->lines[$i]->date_end, 'day');
|
||||||
$duration = convertSecondToTime((int) $object->lines[$i]->duration, 'allhourmin');
|
$duration = convertSecondToTime((int) $object->lines[$i]->duration_effective, 'allhourmin');
|
||||||
|
|
||||||
$showpricebeforepagebreak = 1;
|
$showpricebeforepagebreak = 1;
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
/* Copyright (C) 2017 Laurent Destailleur <eldy@users.sourceforge.net>
|
/* Copyright (C) 2017 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
|
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
|
||||||
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
||||||
|
* Copyright (C) 2025 Benjamin Falière <benjamin@faliere.com>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -69,11 +70,13 @@ foreach ($object->fields as $key => $val) {
|
|||||||
}
|
}
|
||||||
print '"';
|
print '"';
|
||||||
print '>';
|
print '>';
|
||||||
|
print '<label for="'.$key.'" class="block">';
|
||||||
if (!empty($val['help'])) {
|
if (!empty($val['help'])) {
|
||||||
print $form->textwithpicto($langs->trans($val['label']), $langs->trans($val['help']));
|
print $form->textwithpicto($langs->trans($val['label']), $langs->trans($val['help']));
|
||||||
} else {
|
} else {
|
||||||
print $langs->trans($val['label']);
|
print $langs->trans($val['label']);
|
||||||
}
|
}
|
||||||
|
print '</label>';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td class="valuefieldcreate">';
|
print '<td class="valuefieldcreate">';
|
||||||
if (!empty($val['picto'])) {
|
if (!empty($val['picto'])) {
|
||||||
|
|||||||
@@ -79,6 +79,8 @@ if ((isset($_GET["modulepart"]) && $_GET["modulepart"] == 'medias')) {
|
|||||||
/**
|
/**
|
||||||
* Header empty
|
* Header empty
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @param string $head Optional head lines
|
* @param string $head Optional head lines
|
||||||
* @param string $title HTML title
|
* @param string $title HTML title
|
||||||
* @param string $help_url Url links to help page
|
* @param string $help_url Url links to help page
|
||||||
@@ -103,6 +105,8 @@ function llxHeader($head = '', $title = '', $help_url = '', $target = '', $disab
|
|||||||
/**
|
/**
|
||||||
* Footer empty
|
* Footer empty
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @ignore
|
* @ignore
|
||||||
* @param string $comment A text to add as HTML comment into HTML generated page
|
* @param string $comment A text to add as HTML comment into HTML generated page
|
||||||
* @param string $zone 'private' (for private pages) or 'public' (for public pages)
|
* @param string $zone 'private' (for private pages) or 'public' (for public pages)
|
||||||
|
|||||||
@@ -1013,9 +1013,17 @@ class EcmFiles extends CommonObject
|
|||||||
} elseif ($option == 'commande_fournisseur') {
|
} elseif ($option == 'commande_fournisseur') {
|
||||||
$tmppath = preg_replace('/^fournisseur\/commande\//', '', $this->filepath);
|
$tmppath = preg_replace('/^fournisseur\/commande\//', '', $this->filepath);
|
||||||
} else {
|
} else {
|
||||||
|
if ((int) $this->entity > 1) {
|
||||||
|
// Remove the part "entityid/commande/" into "entityid/commande/REFXXX" to get only the ref
|
||||||
|
$tmppath = preg_replace('/^\d+\/[^\/]+\//', '', $this->filepath);
|
||||||
|
} else {
|
||||||
|
// Remove the part "commande/" into "commande/REFXXX" to get only the ref
|
||||||
$tmppath = preg_replace('/^[^\/]+\//', '', $this->filepath);
|
$tmppath = preg_replace('/^[^\/]+\//', '', $this->filepath);
|
||||||
}
|
}
|
||||||
$url = DOL_URL_ROOT.'/document.php?modulepart='.urlencode($option).'&file='.urlencode($tmppath.'/'.$this->filename).'&entity='.$this->entity;
|
}
|
||||||
|
//var_dump($this->filepath);
|
||||||
|
|
||||||
|
$url = DOL_URL_ROOT.'/document.php?modulepart='.urlencode($option).'&file='.urlencode($tmppath.'/'.$this->filename).'&entity='.((int) $this->entity);
|
||||||
} else {
|
} else {
|
||||||
$url = DOL_URL_ROOT.'/ecm/file_card.php?id='.$this->id;
|
$url = DOL_URL_ROOT.'/ecm/file_card.php?id='.$this->id;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -785,13 +785,16 @@ if ($object->id > 0 || !empty($object->ref)) {
|
|||||||
print '</td>'; // Dispatch column
|
print '</td>'; // Dispatch column
|
||||||
print '<td></td>'; // Warehouse column
|
print '<td></td>'; // Warehouse column
|
||||||
|
|
||||||
$sql = "SELECT ed.rowid, ed.qty, ed.fk_entrepot,";
|
$sql = "SELECT ed.rowid";
|
||||||
$sql .= " eb.batch, eb.eatby, eb.sellby, cd.fk_product";
|
$sql .= ", cd.fk_product";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."expeditiondet as ed";
|
$sql .= ", ".$db->ifsql('eb.rowid IS NULL', 'ed.qty', 'eb.qty')." as qty";
|
||||||
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."expeditiondet_batch as eb on ed.rowid = eb.fk_expeditiondet";
|
$sql .= ", ed.fk_entrepot";
|
||||||
$sql .= " JOIN ".MAIN_DB_PREFIX."commandedet as cd on ed.fk_elementdet = cd.rowid";
|
$sql .= ", eb.batch, eb.eatby, eb.sellby";
|
||||||
$sql .= " WHERE ed.fk_elementdet =".(int) $objp->rowid;
|
$sql .= " FROM ".$db->prefix()."expeditiondet as ed";
|
||||||
$sql .= " AND ed.fk_expedition =".(int) $object->id;
|
$sql .= " LEFT JOIN ".$db->prefix()."expeditiondet_batch as eb on ed.rowid = eb.fk_expeditiondet";
|
||||||
|
$sql .= " INNER JOIN ".$db->prefix()."commandedet as cd on ed.fk_origin_line = cd.rowid";
|
||||||
|
$sql .= " WHERE ed.fk_origin_line = ".(int) $objp->rowid;
|
||||||
|
$sql .= " AND ed.fk_expedition = ".(int) $object->id;
|
||||||
$sql .= " ORDER BY ed.rowid, ed.fk_elementdet";
|
$sql .= " ORDER BY ed.rowid, ed.fk_elementdet";
|
||||||
|
|
||||||
$resultsql = $db->query($sql);
|
$resultsql = $db->query($sql);
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ $result = restrictedArea($user, 'expedition', 0, ''); // We use 0 for id, becaus
|
|||||||
|
|
||||||
$permissiontoread = $user->hasRight('expedition', 'lire');
|
$permissiontoread = $user->hasRight('expedition', 'lire');
|
||||||
$permissiontoadd = $user->hasRight('expedition', 'creer'); // Used by the include of actions_addupdatedelete.inc.php and actions_lineupdown.inc.php
|
$permissiontoadd = $user->hasRight('expedition', 'creer'); // Used by the include of actions_addupdatedelete.inc.php and actions_lineupdown.inc.php
|
||||||
$permissiontodelete = $user->hasRight('expedition', 'supprimer') || ($permissiontoadd && isset($object->status) && $object->status == $object::STATUS_DRAFT);
|
$permissiontodelete = $user->hasRight('expedition', 'supprimer') || ($permissiontoadd && ((int) $object->status == $object::STATUS_DRAFT));
|
||||||
$permissionnote = $user->hasRight('expedition', 'creer'); // Used by the include of actions_setnotes.inc.php
|
$permissionnote = $user->hasRight('expedition', 'creer'); // Used by the include of actions_setnotes.inc.php
|
||||||
$permissiondellink = $user->hasRight('expedition', 'creer'); // Used by the include of actions_dellink.inc.php
|
$permissiondellink = $user->hasRight('expedition', 'creer'); // Used by the include of actions_dellink.inc.php
|
||||||
|
|
||||||
|
|||||||
@@ -737,6 +737,7 @@ if (empty($reshook)) {
|
|||||||
unset($_POST['date_end_fill']);
|
unset($_POST['date_end_fill']);
|
||||||
unset($_POST['situations']);
|
unset($_POST['situations']);
|
||||||
unset($_POST['progress']);
|
unset($_POST['progress']);
|
||||||
|
unset($_POST['fourn_ref']);
|
||||||
} else {
|
} else {
|
||||||
setEventMessages($object->error, $object->errors, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
}
|
}
|
||||||
@@ -879,6 +880,7 @@ if (empty($reshook)) {
|
|||||||
unset($_POST['date_endyear']);
|
unset($_POST['date_endyear']);
|
||||||
unset($_POST['situations']);
|
unset($_POST['situations']);
|
||||||
unset($_POST['progress']);
|
unset($_POST['progress']);
|
||||||
|
unset($_POST['fourn_ref']);
|
||||||
} else {
|
} else {
|
||||||
setEventMessages($object->error, $object->errors, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,6 +31,8 @@ if (!defined('NOTOKENRENEWAL')) {
|
|||||||
/**
|
/**
|
||||||
* This file is a wrapper, so empty header
|
* This file is a wrapper, so empty header
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @param string $head Optional head lines
|
* @param string $head Optional head lines
|
||||||
* @param string $title HTML title
|
* @param string $title HTML title
|
||||||
* @param string $help_url Url links to help page
|
* @param string $help_url Url links to help page
|
||||||
@@ -48,7 +50,7 @@ if (!defined('NOTOKENRENEWAL')) {
|
|||||||
* @param int $disablenoindex Disable the "noindex" on meta robot header
|
* @param int $disablenoindex Disable the "noindex" on meta robot header
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxHeaderEmptyExample($head = '', $title = '', $help_url = '', $target = '', $disablejs = 0, $disablehead = 0, $arrayofjs = '', $arrayofcss = '', $morequerystring = '', $morecssonbody = '', $replacemainareaby = '', $disablenofollow = 0, $disablenoindex = 0)
|
function llxHeader($head = '', $title = '', $help_url = '', $target = '', $disablejs = 0, $disablehead = 0, $arrayofjs = '', $arrayofcss = '', $morequerystring = '', $morecssonbody = '', $replacemainareaby = '', $disablenofollow = 0, $disablenoindex = 0) // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
print '<html><title>Build an import example file</title><body>';
|
print '<html><title>Build an import example file</title><body>';
|
||||||
}
|
}
|
||||||
@@ -56,12 +58,14 @@ function llxHeaderEmptyExample($head = '', $title = '', $help_url = '', $target
|
|||||||
/**
|
/**
|
||||||
* This file is a wrapper, so empty footer
|
* This file is a wrapper, so empty footer
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @param string $comment A text to add as HTML comment into HTML generated page
|
* @param string $comment A text to add as HTML comment into HTML generated page
|
||||||
* @param string $zone 'private' (for private pages) or 'public' (for public pages)
|
* @param string $zone 'private' (for private pages) or 'public' (for public pages)
|
||||||
* @param int $disabledoutputofmessages Clear all messages stored into session without displaying them
|
* @param int $disabledoutputofmessages Clear all messages stored into session without displaying them
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxFooterEmptyExample($comment = '', $zone = 'private', $disabledoutputofmessages = 0)
|
function llxFooter($comment = '', $zone = 'private', $disabledoutputofmessages = 0) // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
print '</body></html>';
|
print '</body></html>';
|
||||||
}
|
}
|
||||||
@@ -90,9 +94,9 @@ $langs->load("exports");
|
|||||||
if (empty($datatoimport)) {
|
if (empty($datatoimport)) {
|
||||||
$user->loadRights();
|
$user->loadRights();
|
||||||
|
|
||||||
llxHeaderEmptyExample();
|
llxHeader();
|
||||||
print '<div class="error">Bad value for datatoimport.</div>';
|
print '<div class="error">Bad value for datatoimport.</div>';
|
||||||
llxFooterEmptyExample();
|
llxFooter();
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -412,6 +412,7 @@ SaleExport=Export sale
|
|||||||
SaleEEC=Sale in EEC
|
SaleEEC=Sale in EEC
|
||||||
SaleEECWithVAT=Sale in EEC with a VAT not null, so we suppose this is NOT an intracommunautary sale and the suggested account is the standard product account.
|
SaleEECWithVAT=Sale in EEC with a VAT not null, so we suppose this is NOT an intracommunautary sale and the suggested account is the standard product account.
|
||||||
SaleEECWithoutVATNumber=Sale in EEC with no VAT but the VAT ID of third party is not defined. We fall back on the account for standard sales. You can fix the VAT ID of the third party, or change the product account suggested for binding if needed.
|
SaleEECWithoutVATNumber=Sale in EEC with no VAT but the VAT ID of third party is not defined. We fall back on the account for standard sales. You can fix the VAT ID of the third party, or change the product account suggested for binding if needed.
|
||||||
|
AnySale=Any sale
|
||||||
ForbiddenTransactionAlreadyExported=Forbidden: The transaction has been validated and/or exported.
|
ForbiddenTransactionAlreadyExported=Forbidden: The transaction has been validated and/or exported.
|
||||||
ForbiddenTransactionAlreadyValidated=Forbidden: The transaction has been validated.
|
ForbiddenTransactionAlreadyValidated=Forbidden: The transaction has been validated.
|
||||||
DataMustHaveBeenTransferredInAccounting=The transfer of data in accounting must have been done
|
DataMustHaveBeenTransferredInAccounting=The transfer of data in accounting must have been done
|
||||||
|
|||||||
@@ -2137,6 +2137,7 @@ MAIN_PDF_MARGIN_BOTTOM=Bottom margin on PDF
|
|||||||
MAIN_DOCUMENTS_LOGO_HEIGHT=Height for logo on PDF
|
MAIN_DOCUMENTS_LOGO_HEIGHT=Height for logo on PDF
|
||||||
DOC_SHOW_FIRST_SALES_REP=Show first sales representative
|
DOC_SHOW_FIRST_SALES_REP=Show first sales representative
|
||||||
MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Add column for picture on proposal lines
|
MAIN_GENERATE_PROPOSALS_WITH_PICTURE=Add column for picture on proposal lines
|
||||||
|
MAIN_GENERATE_DOCUMENTS_WITH_PICTURE=Add column for picture on document lines
|
||||||
MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Width of the column if a picture is added on lines
|
MAIN_DOCUMENTS_WITH_PICTURE_WIDTH=Width of the column if a picture is added on lines
|
||||||
MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_UNIT_PRICE=Hide the unit price column on quotation requests
|
MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_UNIT_PRICE=Hide the unit price column on quotation requests
|
||||||
MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_TOTAL_COLUMN=Hide the total price column on quotation requests
|
MAIN_GENERATE_DOCUMENTS_SUPPLIER_PROPOSAL_WITHOUT_TOTAL_COLUMN=Hide the total price column on quotation requests
|
||||||
@@ -2611,3 +2612,5 @@ UploadExtensionRestriction=List of forbidden file extensions to upload
|
|||||||
UploadExtensionRestrictionExemple=htm, html, shtml, js, php
|
UploadExtensionRestrictionExemple=htm, html, shtml, js, php
|
||||||
Privileges=Privileges
|
Privileges=Privileges
|
||||||
FieldsLinked=Fields Linked
|
FieldsLinked=Fields Linked
|
||||||
|
PDF_XXX_SHOW_PRICE_INCL_TAX=Show column Price including tax
|
||||||
|
AvailableWithSomePDFTemplatesOnly=Feature not supported on old PDF templates
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ ErrorFromToAccountsMustDiffers=Source and targets bank accounts must be differen
|
|||||||
ErrorBadThirdPartyName=Bad value for third-party name
|
ErrorBadThirdPartyName=Bad value for third-party name
|
||||||
ForbiddenBySetupRules=Forbidden by setup rules
|
ForbiddenBySetupRules=Forbidden by setup rules
|
||||||
ErrorProdIdIsMandatory=The %s is mandatory
|
ErrorProdIdIsMandatory=The %s is mandatory
|
||||||
|
ErrorProdIdIsMandatoryForEuThirdparties=The %s is mandatory for customers in EEC
|
||||||
ErrorAccountancyCodeCustomerIsMandatory=The accountancy code of customer %s is mandatory
|
ErrorAccountancyCodeCustomerIsMandatory=The accountancy code of customer %s is mandatory
|
||||||
ErrorAccountancyCodeSupplierIsMandatory=The accountancy code of supplier %s is mandatory
|
ErrorAccountancyCodeSupplierIsMandatory=The accountancy code of supplier %s is mandatory
|
||||||
ErrorBadCustomerCodeSyntax=Bad syntax for customer code
|
ErrorBadCustomerCodeSyntax=Bad syntax for customer code
|
||||||
|
|||||||
@@ -1633,6 +1633,8 @@ if (!function_exists("llxHeader")) {
|
|||||||
/**
|
/**
|
||||||
* Show HTML header HTML + BODY + Top menu + left menu + DIV
|
* Show HTML header HTML + BODY + Top menu + left menu + DIV
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @param string $head Optional head lines
|
* @param string $head Optional head lines
|
||||||
* @param string $title HTML title
|
* @param string $title HTML title
|
||||||
* @param string $help_url Url links to help page
|
* @param string $help_url Url links to help page
|
||||||
@@ -1649,7 +1651,7 @@ if (!function_exists("llxHeader")) {
|
|||||||
* @param int $disablenofollow Disable the "nofollow" on meta robot header
|
* @param int $disablenofollow Disable the "nofollow" on meta robot header
|
||||||
* @param int $disablenoindex Disable the "noindex" on meta robot header
|
* @param int $disablenoindex Disable the "noindex" on meta robot header
|
||||||
* @return void
|
* @return void
|
||||||
* @phan-suppress PhanRedefineFunction (Also defined in htdocs/asterisk/wrapper)
|
* @phan-suppress PhanRedefineFunction
|
||||||
*/
|
*/
|
||||||
function llxHeader($head = '', $title = '', $help_url = '', $target = '', $disablejs = 0, $disablehead = 0, $arrayofjs = '', $arrayofcss = '', $morequerystring = '', $morecssonbody = '', $replacemainareaby = '', $disablenofollow = 0, $disablenoindex = 0)
|
function llxHeader($head = '', $title = '', $help_url = '', $target = '', $disablejs = 0, $disablehead = 0, $arrayofjs = '', $arrayofcss = '', $morequerystring = '', $morecssonbody = '', $replacemainareaby = '', $disablenofollow = 0, $disablenoindex = 0)
|
||||||
{
|
{
|
||||||
@@ -3876,11 +3878,13 @@ if (!function_exists("llxFooter")) {
|
|||||||
* Close div /DIV class=fiche + /DIV id-right + /DIV id-container + /BODY + /HTML.
|
* Close div /DIV class=fiche + /DIV id-right + /DIV id-container + /BODY + /HTML.
|
||||||
* If global var $delayedhtmlcontent was filled, we output it just before closing the body.
|
* If global var $delayedhtmlcontent was filled, we output it just before closing the body.
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @param string $comment A text to add as HTML comment into HTML generated page
|
* @param string $comment A text to add as HTML comment into HTML generated page
|
||||||
* @param string $zone 'private' (for private pages) or 'public' (for public pages)
|
* @param string $zone 'private' (for private pages) or 'public' (for public pages)
|
||||||
* @param int $disabledoutputofmessages Clear all messages stored into session without displaying them
|
* @param int $disabledoutputofmessages Clear all messages stored into session without displaying them
|
||||||
* @return void
|
* @return void
|
||||||
* @phan-suppress PhanRedefineFunction // Also defined at asterisk/wrapper.php
|
* @phan-suppress PhanRedefineFunction
|
||||||
*/
|
*/
|
||||||
function llxFooter($comment = '', $zone = 'private', $disabledoutputofmessages = 0)
|
function llxFooter($comment = '', $zone = 'private', $disabledoutputofmessages = 0)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -5561,8 +5561,6 @@ class Product extends CommonObject
|
|||||||
*/
|
*/
|
||||||
public function getChildsArbo($id, $firstlevelonly = 0, $level = 1, $parents = array())
|
public function getChildsArbo($id, $firstlevelonly = 0, $level = 1, $parents = array())
|
||||||
{
|
{
|
||||||
global $alreadyfound;
|
|
||||||
|
|
||||||
if (empty($id)) {
|
if (empty($id)) {
|
||||||
return array();
|
return array();
|
||||||
}
|
}
|
||||||
@@ -5579,9 +5577,6 @@ class Product extends CommonObject
|
|||||||
|
|
||||||
dol_syslog(get_class($this).'::getChildsArbo id='.$id.' level='.$level. ' parents='.(is_array($parents) ? implode(',', $parents) : $parents), LOG_DEBUG);
|
dol_syslog(get_class($this).'::getChildsArbo id='.$id.' level='.$level. ' parents='.(is_array($parents) ? implode(',', $parents) : $parents), LOG_DEBUG);
|
||||||
|
|
||||||
if ($level == 1) {
|
|
||||||
$alreadyfound = array($id => 1); // We init array of found object to start of tree, so if we found it later (should not happened), we stop immediately
|
|
||||||
}
|
|
||||||
// Protection against infinite loop
|
// Protection against infinite loop
|
||||||
if ($level > 30) {
|
if ($level > 30) {
|
||||||
return array();
|
return array();
|
||||||
@@ -5590,14 +5585,16 @@ class Product extends CommonObject
|
|||||||
$res = $this->db->query($sql);
|
$res = $this->db->query($sql);
|
||||||
if ($res) {
|
if ($res) {
|
||||||
$prods = array();
|
$prods = array();
|
||||||
|
if ($this->db->num_rows($res) > 0) {
|
||||||
|
$parents[] = $id;
|
||||||
|
}
|
||||||
|
|
||||||
while ($rec = $this->db->fetch_array($res)) {
|
while ($rec = $this->db->fetch_array($res)) {
|
||||||
if (!empty($alreadyfound[$rec['rowid']])) {
|
|
||||||
dol_syslog(get_class($this).'::getChildsArbo the product id='.$rec['rowid'].' was already found at a higher level in tree. We discard to avoid infinite loop', LOG_WARNING);
|
|
||||||
if (in_array($rec['id'], $parents)) {
|
if (in_array($rec['id'], $parents)) {
|
||||||
|
dol_syslog(get_class($this).'::getChildsArbo the product id='.$rec['rowid'].' was already found at a higher level in tree. We discard to avoid infinite loop', LOG_WARNING);
|
||||||
continue; // We discard this child if it is already found at a higher level in tree in the same branch.
|
continue; // We discard this child if it is already found at a higher level in tree in the same branch.
|
||||||
}
|
}
|
||||||
}
|
|
||||||
$alreadyfound[$rec['rowid']] = 1;
|
|
||||||
$prods[$rec['rowid']] = array(
|
$prods[$rec['rowid']] = array(
|
||||||
0 => $rec['rowid'],
|
0 => $rec['rowid'],
|
||||||
1 => $rec['qty'],
|
1 => $rec['qty'],
|
||||||
@@ -5611,7 +5608,6 @@ class Product extends CommonObject
|
|||||||
//$prods[$this->db->escape($rec['label'])]= array(0=>$rec['id'],1=>$rec['qty'],2=>$rec['fk_product_type']);
|
//$prods[$this->db->escape($rec['label'])]= array(0=>$rec['id'],1=>$rec['qty'],2=>$rec['fk_product_type']);
|
||||||
//$prods[$this->db->escape($rec['label'])]= array(0=>$rec['id'],1=>$rec['qty']);
|
//$prods[$this->db->escape($rec['label'])]= array(0=>$rec['id'],1=>$rec['qty']);
|
||||||
if (empty($firstlevelonly)) {
|
if (empty($firstlevelonly)) {
|
||||||
$parents[] = $rec['rowid'];
|
|
||||||
$listofchilds = $this->getChildsArbo($rec['rowid'], 0, $level + 1, $parents);
|
$listofchilds = $this->getChildsArbo($rec['rowid'], 0, $level + 1, $parents);
|
||||||
foreach ($listofchilds as $keyChild => $valueChild) {
|
foreach ($listofchilds as $keyChild => $valueChild) {
|
||||||
$prods[$rec['rowid']]['childs'][$keyChild] = $valueChild;
|
$prods[$rec['rowid']]['childs'][$keyChild] = $valueChild;
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2008-2024 Laurent Destailleur <eldy@users.sourceforge.net>
|
/* Copyright (C) 2008-2024 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
||||||
|
* Copyright (C) 2025 MDW <mdeweerd@users.noreply.github.com>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -58,6 +59,8 @@ if (!defined('NOIPCHECK')) {
|
|||||||
/**
|
/**
|
||||||
* Header function
|
* Header function
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @param string $title Title
|
* @param string $title Title
|
||||||
* @param string $head Head array
|
* @param string $head Head array
|
||||||
* @param int $disablejs More content into html header
|
* @param int $disablejs More content into html header
|
||||||
@@ -66,16 +69,18 @@ if (!defined('NOIPCHECK')) {
|
|||||||
* @param string[]|string $arrayofcss Array of complementary css files
|
* @param string[]|string $arrayofcss Array of complementary css files
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $arrayofjs = [], $arrayofcss = [])
|
function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $arrayofjs = [], $arrayofcss = []) // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
print '<html><title>Export agenda cal</title><body>';
|
print '<html><title>Export agenda cal</title><body>';
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Footer function
|
* Footer function
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxFooterVierge()
|
function llxFooterVierge() // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
print '</body></html>';
|
print '</body></html>';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
* Copyright (C) 2006-2017 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2006-2017 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2009-2012 Regis Houssin <regis.houssin@inodbox.com>
|
* Copyright (C) 2009-2012 Regis Houssin <regis.houssin@inodbox.com>
|
||||||
* Copyright (C) 2023 anthony Berton <anthony.berton@bb2a.fr>
|
* Copyright (C) 2023 anthony Berton <anthony.berton@bb2a.fr>
|
||||||
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
|
* Copyright (C) 2024-2025 MDW <mdeweerd@users.noreply.github.com>
|
||||||
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@@ -125,6 +125,8 @@ $errmsg = '';
|
|||||||
/**
|
/**
|
||||||
* Show header for booking
|
* Show header for booking
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @param string $title Title
|
* @param string $title Title
|
||||||
* @param string $head Head array
|
* @param string $head Head array
|
||||||
* @param int $disablejs More content into html header
|
* @param int $disablejs More content into html header
|
||||||
@@ -133,7 +135,7 @@ $errmsg = '';
|
|||||||
* @param string[]|string $arrayofcss Array of complementary css files
|
* @param string[]|string $arrayofcss Array of complementary css files
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $arrayofjs = [], $arrayofcss = [])
|
function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $arrayofjs = [], $arrayofcss = []) // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
global $conf, $langs, $mysoc;
|
global $conf, $langs, $mysoc;
|
||||||
|
|
||||||
@@ -190,7 +192,7 @@ function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $
|
|||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ($action == 'add' ) { // Test on permission not required here (anonymous action protected by mitigation of /public/... urls)
|
if ($action == 'add') { // Test on permission not required here (anonymous action protected by mitigation of /public/... urls)
|
||||||
$error = 0;
|
$error = 0;
|
||||||
$idcontact = 0;
|
$idcontact = 0;
|
||||||
$calendar = $object;
|
$calendar = $object;
|
||||||
@@ -272,7 +274,7 @@ if ($action == 'add' ) { // Test on permission not required here (anonymous acti
|
|||||||
'id' => $contact->id,
|
'id' => $contact->id,
|
||||||
'mandatory' => 0,
|
'mandatory' => 0,
|
||||||
'answer_status' => 0,
|
'answer_status' => 0,
|
||||||
'transparency' =>0,
|
'transparency' => 0,
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
$actioncomm->ip = getUserRemoteIP();
|
$actioncomm->ip = getUserRemoteIP();
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
* Copyright (C) 2018 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
* Copyright (C) 2018 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
||||||
* Copyright (C) 2021 Waël Almoman <info@almoman.com>
|
* Copyright (C) 2021 Waël Almoman <info@almoman.com>
|
||||||
* Copyright (C) 2022 Udo Tamm <dev@dolibit.de>
|
* Copyright (C) 2022 Udo Tamm <dev@dolibit.de>
|
||||||
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
|
* Copyright (C) 2024-2025 MDW <mdeweerd@users.noreply.github.com>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -28,7 +28,6 @@
|
|||||||
* \file htdocs/public/company/new.php
|
* \file htdocs/public/company/new.php
|
||||||
* \ingroup prospect
|
* \ingroup prospect
|
||||||
* \brief Example of form to add a new prospect
|
* \brief Example of form to add a new prospect
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (!defined('NOLOGIN')) {
|
if (!defined('NOLOGIN')) {
|
||||||
@@ -110,6 +109,8 @@ $extrafields->fetch_name_optionals_label($objectsoc->table_element); // fetch op
|
|||||||
/**
|
/**
|
||||||
* Show header for new prospect
|
* Show header for new prospect
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @param string $title Title
|
* @param string $title Title
|
||||||
* @param string $head Head array
|
* @param string $head Head array
|
||||||
* @param int $disablejs More content into html header
|
* @param int $disablejs More content into html header
|
||||||
@@ -118,7 +119,7 @@ $extrafields->fetch_name_optionals_label($objectsoc->table_element); // fetch op
|
|||||||
* @param string[]|string $arrayofcss Array of complementary css files
|
* @param string[]|string $arrayofcss Array of complementary css files
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $arrayofjs = [], $arrayofcss = [])
|
function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $arrayofjs = [], $arrayofcss = []) // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
global $conf, $langs, $mysoc;
|
global $conf, $langs, $mysoc;
|
||||||
|
|
||||||
@@ -165,9 +166,11 @@ function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $
|
|||||||
/**
|
/**
|
||||||
* Show footer for new societe
|
* Show footer for new societe
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxFooterVierge()
|
function llxFooterVierge() // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
* Copyright (C) 2013 Florian Henry <forian.henry@open-cocnept.pro>
|
* Copyright (C) 2013 Florian Henry <forian.henry@open-cocnept.pro>
|
||||||
* Copyright (C) 2013-2015 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2013-2015 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2017 Regis Houssin <regis.houssin@inodbox.com>
|
* Copyright (C) 2017 Regis Houssin <regis.houssin@inodbox.com>
|
||||||
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
|
* Copyright (C) 2024-2025 MDW <mdeweerd@users.noreply.github.com>
|
||||||
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@@ -161,6 +161,7 @@ if (is_array($object->lines) && (count($object->lines) > 0)) {
|
|||||||
|
|
||||||
// Loop over job
|
// Loop over job
|
||||||
foreach ($object->lines as $line) {
|
foreach ($object->lines as $line) {
|
||||||
|
'@phan-var-force Cronjob $line';
|
||||||
dol_syslog("cron_run_jobs.php cronjobid: ".$line->id." priority=".$line->priority." entity=".$line->entity." label=".$line->label, LOG_DEBUG);
|
dol_syslog("cron_run_jobs.php cronjobid: ".$line->id." priority=".$line->priority." entity=".$line->entity." label=".$line->label, LOG_DEBUG);
|
||||||
echo "cron_run_jobs.php cronjobid: ".$line->id." priority=".$line->priority." entity=".$line->entity." label=".$line->label;
|
echo "cron_run_jobs.php cronjobid: ".$line->id." priority=".$line->priority." entity=".$line->entity." label=".$line->label;
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
* Copyright (C) 2010 Regis Houssin <regis.houssin@inodbox.com>
|
* Copyright (C) 2010 Regis Houssin <regis.houssin@inodbox.com>
|
||||||
* Copyright (C) 2015 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
* Copyright (C) 2015 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
||||||
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
||||||
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
|
* Copyright (C) 2024-2025 MDW <mdeweerd@users.noreply.github.com>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -476,6 +476,8 @@ $db->close();
|
|||||||
/**
|
/**
|
||||||
* Show header for demo
|
* Show header for demo
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @param string $title Title
|
* @param string $title Title
|
||||||
* @param string $head Head array
|
* @param string $head Head array
|
||||||
* @param int $disablejs More content into html header
|
* @param int $disablejs More content into html header
|
||||||
@@ -484,7 +486,7 @@ $db->close();
|
|||||||
* @param string[]|string $arrayofcss Array of complementary css files
|
* @param string[]|string $arrayofcss Array of complementary css files
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $arrayofjs = [], $arrayofcss = [])
|
function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $arrayofjs = [], $arrayofcss = []) // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
top_httphead();
|
top_httphead();
|
||||||
|
|
||||||
@@ -496,9 +498,11 @@ function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $
|
|||||||
/**
|
/**
|
||||||
* Show footer for demo
|
* Show footer for demo
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxFooterVierge()
|
function llxFooterVierge() // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
printCommonFooter('public');
|
printCommonFooter('public');
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2002 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2002 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2018-2025 Frédéric France <frederic.france@free.fr>
|
* Copyright (C) 2018-2025 Frédéric France <frederic.france@free.fr>
|
||||||
|
* Copyright (C) 2025 MDW <mdeweerd@users.noreply.github.com>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -34,6 +35,9 @@ if (!defined('NOIPCHECK')) {
|
|||||||
|
|
||||||
// C'est un wrapper, donc header vierge
|
// C'est un wrapper, donc header vierge
|
||||||
/**
|
/**
|
||||||
|
* Header function
|
||||||
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
*
|
*
|
||||||
* @param string $title Title
|
* @param string $title Title
|
||||||
* @param string $head Head array
|
* @param string $head Head array
|
||||||
@@ -43,16 +47,18 @@ if (!defined('NOIPCHECK')) {
|
|||||||
* @param string[]|string $arrayofcss Array of complementary css files
|
* @param string[]|string $arrayofcss Array of complementary css files
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $arrayofjs = [], $arrayofcss = [])
|
function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $arrayofjs = [], $arrayofcss = []) // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
print '<html><title>List of donators</title><body>';
|
print '<html><title>List of donators</title><body>';
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Header function
|
* Footer function
|
||||||
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxFooterVierge()
|
function llxFooterVierge() // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
print '</body></html>';
|
print '</body></html>';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
* Copyright (C) 2005-2011 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2005-2011 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2012 Florian Henry <florian.henry@open-concept.pro>
|
* Copyright (C) 2012 Florian Henry <florian.henry@open-concept.pro>
|
||||||
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
||||||
|
* Copyright (C) 2025 MDW <mdeweerd@users.noreply.github.com>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -54,6 +55,8 @@ if (!defined('NOSESSION')) {
|
|||||||
/**
|
/**
|
||||||
* Header empty
|
* Header empty
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @param string $head Optional head lines
|
* @param string $head Optional head lines
|
||||||
* @param string $title HTML title
|
* @param string $title HTML title
|
||||||
* @param string $help_url Url links to help page
|
* @param string $help_url Url links to help page
|
||||||
@@ -71,7 +74,7 @@ if (!defined('NOSESSION')) {
|
|||||||
* @param int $disablenoindex Disable the "noindex" on meta robot header
|
* @param int $disablenoindex Disable the "noindex" on meta robot header
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxHeader($head = '', $title = '', $help_url = '', $target = '', $disablejs = 0, $disablehead = 0, $arrayofjs = '', $arrayofcss = '', $morequerystring = '', $morecssonbody = '', $replacemainareaby = '', $disablenofollow = 0, $disablenoindex = 0)
|
function llxHeader($head = '', $title = '', $help_url = '', $target = '', $disablejs = 0, $disablehead = 0, $arrayofjs = '', $arrayofcss = '', $morequerystring = '', $morecssonbody = '', $replacemainareaby = '', $disablenofollow = 0, $disablenoindex = 0) // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -79,12 +82,14 @@ function llxHeader($head = '', $title = '', $help_url = '', $target = '', $disab
|
|||||||
/**
|
/**
|
||||||
* Footer empty
|
* Footer empty
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @param string $comment A text to add as HTML comment into HTML generated page
|
* @param string $comment A text to add as HTML comment into HTML generated page
|
||||||
* @param string $zone 'private' (for private pages) or 'public' (for public pages)
|
* @param string $zone 'private' (for private pages) or 'public' (for public pages)
|
||||||
* @param int $disabledoutputofmessages Clear all messages stored into session without displaying them
|
* @param int $disabledoutputofmessages Clear all messages stored into session without displaying them
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxFooter($comment = '', $zone = 'private', $disabledoutputofmessages = 0)
|
function llxFooter($comment = '', $zone = 'private', $disabledoutputofmessages = 0) // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -171,6 +171,8 @@ $extrafields->fetch_name_optionals_label($object->table_element); // fetch optio
|
|||||||
/**
|
/**
|
||||||
* Show header for new member
|
* Show header for new member
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @param string $title Title
|
* @param string $title Title
|
||||||
* @param string $head Head array
|
* @param string $head Head array
|
||||||
* @param int $disablejs More content into html header
|
* @param int $disablejs More content into html header
|
||||||
@@ -179,7 +181,7 @@ $extrafields->fetch_name_optionals_label($object->table_element); // fetch optio
|
|||||||
* @param string[]|string $arrayofcss Array of complementary css files
|
* @param string[]|string $arrayofcss Array of complementary css files
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $arrayofjs = [], $arrayofcss = [])
|
function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $arrayofjs = [], $arrayofcss = []) // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
global $conf, $langs, $mysoc;
|
global $conf, $langs, $mysoc;
|
||||||
|
|
||||||
@@ -226,9 +228,11 @@ function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $
|
|||||||
/**
|
/**
|
||||||
* Show footer for new member
|
* Show footer for new member
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxFooterVierge()
|
function llxFooterVierge() // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
@@ -546,7 +550,7 @@ if (empty($reshook) && $action == 'add' && (!empty($conference->id) && $conferen
|
|||||||
|
|
||||||
$resultprod = 0;
|
$resultprod = 0;
|
||||||
if (getDolGlobalInt('SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION') > 0) {
|
if (getDolGlobalInt('SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION') > 0) {
|
||||||
$resultprod = $productforinvoicerow->fetch(getDolGlobalString('SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION'));
|
$resultprod = $productforinvoicerow->fetch(getDolGlobalInt('SERVICE_CONFERENCE_ATTENDEE_SUBSCRIPTION'));
|
||||||
}
|
}
|
||||||
|
|
||||||
$facture = null;
|
$facture = null;
|
||||||
@@ -664,7 +668,7 @@ if (empty($reshook) && $action == 'add' && (!empty($conference->id) && $conferen
|
|||||||
// Get email content from template
|
// Get email content from template
|
||||||
$arraydefaultmessage = null;
|
$arraydefaultmessage = null;
|
||||||
|
|
||||||
$labeltouse = getDolGlobalString('EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_EVENT');
|
$labeltouse = getDolGlobalInt('EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_EVENT');
|
||||||
if (!empty($labeltouse)) {
|
if (!empty($labeltouse)) {
|
||||||
$arraydefaultmessage = $formmail->getEMailTemplate($db, 'eventorganization_send', $user, $outputlangs, $labeltouse, 1, '');
|
$arraydefaultmessage = $formmail->getEMailTemplate($db, 'eventorganization_send', $user, $outputlangs, $labeltouse, 1, '');
|
||||||
}
|
}
|
||||||
@@ -673,8 +677,8 @@ if (empty($reshook) && $action == 'add' && (!empty($conference->id) && $conferen
|
|||||||
$subject = $arraydefaultmessage->topic;
|
$subject = $arraydefaultmessage->topic;
|
||||||
$msg = $arraydefaultmessage->content;
|
$msg = $arraydefaultmessage->content;
|
||||||
} else {
|
} else {
|
||||||
$subject = null;
|
$subject = '';
|
||||||
$msg = null;
|
$msg = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
$substitutionarray = getCommonSubstitutionArray($outputlangs, 0, null, $thirdparty);
|
$substitutionarray = getCommonSubstitutionArray($outputlangs, 0, null, $thirdparty);
|
||||||
@@ -909,7 +913,7 @@ if ((!empty($conference->id) && $conference->status == ConferenceOrBooth::STATUS
|
|||||||
print '<tr><td>' . $langs->trans('State') . '</td><td>';
|
print '<tr><td>' . $langs->trans('State') . '</td><td>';
|
||||||
if ($country_code) {
|
if ($country_code) {
|
||||||
print img_picto('', 'state', 'class="pictofixedwidth"');
|
print img_picto('', 'state', 'class="pictofixedwidth"');
|
||||||
print $formcompany->select_state(GETPOST("state_id"), $country_code);
|
print $formcompany->select_state(GETPOSTINT("state_id"), $country_code);
|
||||||
} else {
|
} else {
|
||||||
print '';
|
print '';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
* Copyright (C) 2021 Waël Almoman <info@almoman.com>
|
* Copyright (C) 2021 Waël Almoman <info@almoman.com>
|
||||||
* Copyright (C) 2021 Dorian Vabre <dorian.vabre@gmail.com>
|
* Copyright (C) 2021 Dorian Vabre <dorian.vabre@gmail.com>
|
||||||
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
||||||
|
* Copyright (C) 2025 MDW <mdeweerd@users.noreply.github.com>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -96,6 +97,8 @@ if (empty($conf->eventorganization->enabled)) {
|
|||||||
/**
|
/**
|
||||||
* Show header for new member
|
* Show header for new member
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @param string $title Title
|
* @param string $title Title
|
||||||
* @param string $head Head array
|
* @param string $head Head array
|
||||||
* @param int $disablejs More content into html header
|
* @param int $disablejs More content into html header
|
||||||
@@ -104,7 +107,7 @@ if (empty($conf->eventorganization->enabled)) {
|
|||||||
* @param string[]|string $arrayofcss Array of complementary css files
|
* @param string[]|string $arrayofcss Array of complementary css files
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $arrayofjs = [], $arrayofcss = [])
|
function llxHeaderSubscriptionOk($title, $head = "", $disablejs = 0, $disablehead = 0, $arrayofjs = [], $arrayofcss = []) // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
global $user, $conf, $langs, $mysoc;
|
global $user, $conf, $langs, $mysoc;
|
||||||
|
|
||||||
@@ -177,7 +180,7 @@ if (getDolGlobalString('ONLINE_PAYMENT_CSS_URL')) {
|
|||||||
$conf->dol_hide_topmenu = 1;
|
$conf->dol_hide_topmenu = 1;
|
||||||
$conf->dol_hide_leftmenu = 1;
|
$conf->dol_hide_leftmenu = 1;
|
||||||
|
|
||||||
llxHeaderVierge($langs->trans("PaymentForm"));
|
llxHeaderSubscriptionOk($langs->trans("PaymentForm"));
|
||||||
|
|
||||||
|
|
||||||
// Show message
|
// Show message
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
* Copyright (C) 2018 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
* Copyright (C) 2018 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
||||||
* Copyright (C) 2021 Waël Almoman <info@almoman.com>
|
* Copyright (C) 2021 Waël Almoman <info@almoman.com>
|
||||||
* Copyright (C) 2022 Udo Tamm <dev@dolibit.de>
|
* Copyright (C) 2022 Udo Tamm <dev@dolibit.de>
|
||||||
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
|
* Copyright (C) 2024-2025 MDW <mdeweerd@users.noreply.github.com>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -113,6 +113,8 @@ $user->loadDefaultValues();
|
|||||||
/**
|
/**
|
||||||
* Show header for new member
|
* Show header for new member
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @param string $title Title
|
* @param string $title Title
|
||||||
* @param string $head Head array
|
* @param string $head Head array
|
||||||
* @param int $disablejs More content into html header
|
* @param int $disablejs More content into html header
|
||||||
@@ -121,7 +123,7 @@ $user->loadDefaultValues();
|
|||||||
* @param string[]|string $arrayofcss Array of complementary css files
|
* @param string[]|string $arrayofcss Array of complementary css files
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $arrayofjs = [], $arrayofcss = [])
|
function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $arrayofjs = [], $arrayofcss = []) // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
global $conf, $langs, $mysoc;
|
global $conf, $langs, $mysoc;
|
||||||
|
|
||||||
@@ -168,9 +170,11 @@ function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $
|
|||||||
/**
|
/**
|
||||||
* Show footer for new member
|
* Show footer for new member
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxFooterVierge()
|
function llxFooterVierge() // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
|
|
||||||
@@ -697,7 +701,7 @@ if (getDolGlobalString('MEMBER_SKIP_TABLE') || getDolGlobalString('MEMBER_NEWFOR
|
|||||||
print '<tr><td>'.$langs->trans('State').'</td><td>';
|
print '<tr><td>'.$langs->trans('State').'</td><td>';
|
||||||
if ($country_code) {
|
if ($country_code) {
|
||||||
print img_picto('', 'state', 'class="pictofixedwidth paddingright"');
|
print img_picto('', 'state', 'class="pictofixedwidth paddingright"');
|
||||||
print $formcompany->select_state(GETPOST("state_id"), $country_code);
|
print $formcompany->select_state(GETPOSTINT("state_id"), $country_code);
|
||||||
}
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
@@ -978,7 +982,7 @@ if (getDolGlobalString('MEMBER_SKIP_TABLE') || getDolGlobalString('MEMBER_NEWFOR
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//htmlPrintOnlineFooter($mysoc, $langs);
|
||||||
llxFooterVierge();
|
llxFooterVierge();
|
||||||
|
|
||||||
$db->close();
|
$db->close();
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
* Copyright (C) 2012 Regis Houssin <regis.houssin@inodbox.com>
|
* Copyright (C) 2012 Regis Houssin <regis.houssin@inodbox.com>
|
||||||
* Copyright (C) 2018 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
* Copyright (C) 2018 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
||||||
* Copyright (C) 2024-2025 Frédéric France <frederic.france@free.fr>
|
* Copyright (C) 2024-2025 Frédéric France <frederic.france@free.fr>
|
||||||
|
* Copyright (C) 2025 MDW <mdeweerd@users.noreply.github.com>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -148,6 +149,8 @@ $db->close();
|
|||||||
/**
|
/**
|
||||||
* Show header for card member
|
* Show header for card member
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @param string $title Title
|
* @param string $title Title
|
||||||
* @param string $head Head array
|
* @param string $head Head array
|
||||||
* @param int $disablejs More content into html header
|
* @param int $disablejs More content into html header
|
||||||
@@ -156,7 +159,7 @@ $db->close();
|
|||||||
* @param string[]|string $arrayofcss Array of complementary css files
|
* @param string[]|string $arrayofcss Array of complementary css files
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $arrayofjs = [], $arrayofcss = [])
|
function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $arrayofjs = [], $arrayofcss = []) // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
top_htmlhead($head, $title);
|
top_htmlhead($head, $title);
|
||||||
|
|
||||||
@@ -164,11 +167,13 @@ function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show footer for card member
|
* Show footer for card member
|
||||||
*
|
*
|
||||||
* @return void
|
* Note: also called by functions.lib:recordNotFound
|
||||||
*/
|
*
|
||||||
function llxFooterVierge()
|
* @return void
|
||||||
|
*/
|
||||||
|
function llxFooterVierge() // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
printCommonFooter('public');
|
printCommonFooter('public');
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
* Copyright (C) 2004-2009 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2004-2009 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2012 Regis Houssin <regis.houssin@inodbox.com>
|
* Copyright (C) 2012 Regis Houssin <regis.houssin@inodbox.com>
|
||||||
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
||||||
|
* Copyright (C) 2025 MDW <mdeweerd@users.noreply.github.com>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -65,6 +66,8 @@ $langs->loadLangs(array("main", "members", "companies", "other"));
|
|||||||
/**
|
/**
|
||||||
* Show header for member list
|
* Show header for member list
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @param string $title Title
|
* @param string $title Title
|
||||||
* @param string $head Head array
|
* @param string $head Head array
|
||||||
* @param int $disablejs More content into html header
|
* @param int $disablejs More content into html header
|
||||||
@@ -73,7 +76,7 @@ $langs->loadLangs(array("main", "members", "companies", "other"));
|
|||||||
* @param string[]|string $arrayofcss Array of complementary css files
|
* @param string[]|string $arrayofcss Array of complementary css files
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $arrayofjs = [], $arrayofcss = [])
|
function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $arrayofjs = [], $arrayofcss = []) // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
top_htmlhead($head, $title);
|
top_htmlhead($head, $title);
|
||||||
|
|
||||||
@@ -83,9 +86,11 @@ function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $
|
|||||||
/**
|
/**
|
||||||
* Show footer for member list
|
* Show footer for member list
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxFooterVierge()
|
function llxFooterVierge() // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
printCommonFooter('public');
|
printCommonFooter('public');
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
* Copyright (C) 2009-2012 Regis Houssin <regis.houssin@inodbox.com>
|
* Copyright (C) 2009-2012 Regis Houssin <regis.houssin@inodbox.com>
|
||||||
* Copyright (C) 2023 anthony Berton <anthony.berton@bb2a.fr>
|
* Copyright (C) 2023 anthony Berton <anthony.berton@bb2a.fr>
|
||||||
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
||||||
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
|
* Copyright (C) 2024-2025 MDW <mdeweerd@users.noreply.github.com>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -91,13 +91,13 @@ $message = GETPOST('message', 'aZ09');
|
|||||||
// currency (iso code)
|
// currency (iso code)
|
||||||
|
|
||||||
$suffix = GETPOST("suffix", 'aZ09');
|
$suffix = GETPOST("suffix", 'aZ09');
|
||||||
$source = GETPOST("source", 'alpha');
|
$source = (string) GETPOST("source", 'alpha');
|
||||||
$ref = $REF = GETPOST("ref", 'alpha');
|
$ref = $REF = GETPOST("ref", 'alpha');
|
||||||
$urlok = '';
|
$urlok = '';
|
||||||
$urlko = '';
|
$urlko = '';
|
||||||
|
|
||||||
|
|
||||||
if (empty($source)) {
|
if ($source == '') {
|
||||||
$source = 'proposal';
|
$source = 'proposal';
|
||||||
}
|
}
|
||||||
if (!empty($refusepropal)) {
|
if (!empty($refusepropal)) {
|
||||||
@@ -233,6 +233,7 @@ if ($action == 'confirm_refusepropal' && $confirm == 'yes') { // Test on pemriss
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
$form = new Form($db);
|
$form = new Form($db);
|
||||||
|
|
||||||
$head = '';
|
$head = '';
|
||||||
if (getDolGlobalString('MAIN_SIGN_CSS_URL')) {
|
if (getDolGlobalString('MAIN_SIGN_CSS_URL')) {
|
||||||
$head = '<link rel="stylesheet" type="text/css" href="' . getDolGlobalString('MAIN_SIGN_CSS_URL').'?lang='.$langs->defaultlang.'">'."\n";
|
$head = '<link rel="stylesheet" type="text/css" href="' . getDolGlobalString('MAIN_SIGN_CSS_URL').'?lang='.$langs->defaultlang.'">'."\n";
|
||||||
@@ -241,15 +242,19 @@ if (getDolGlobalString('MAIN_SIGN_CSS_URL')) {
|
|||||||
$conf->dol_hide_topmenu = 1;
|
$conf->dol_hide_topmenu = 1;
|
||||||
$conf->dol_hide_leftmenu = 1;
|
$conf->dol_hide_leftmenu = 1;
|
||||||
|
|
||||||
|
$title = $langs->trans("OnlineSignature");
|
||||||
|
|
||||||
$replacemainarea = (empty($conf->dol_hide_leftmenu) ? '<div>' : '').'<div>';
|
$replacemainarea = (empty($conf->dol_hide_leftmenu) ? '<div>' : '').'<div>';
|
||||||
llxHeader($head, $langs->trans("OnlineSignature"), '', '', 0, 0, '', '', '', 'onlinepaymentbody', $replacemainarea, 1);
|
llxHeader($head, $title, '', '', 0, 0, '', '', '', 'onlinepaymentbody', $replacemainarea, 1);
|
||||||
|
|
||||||
|
htmlPrintOnlineHeader($mysoc, $langs);
|
||||||
|
|
||||||
if ($action == 'refusepropal') {
|
if ($action == 'refusepropal') {
|
||||||
print $form->formconfirm($_SERVER["PHP_SELF"].'?ref='.urlencode($ref).'&securekey='.urlencode($SECUREKEY).(isModEnabled('multicompany') ? '&entity='.$entity : ''), $langs->trans('RefusePropal'), $langs->trans('ConfirmRefusePropal', $object->ref), 'confirm_refusepropal', '', '', 1);
|
print $form->formconfirm($_SERVER["PHP_SELF"].'?ref='.urlencode($ref).'&securekey='.urlencode($SECUREKEY).(isModEnabled('multicompany') ? '&entity='.$entity : ''), $langs->trans('RefusePropal'), $langs->trans('ConfirmRefusePropal', $object->ref), 'confirm_refusepropal', '', '', 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check link validity for param 'source' to avoid use of the examples as value
|
// Check link validity for param 'source' to avoid use of the examples as value
|
||||||
if (!empty($source) && in_array($ref, array('member_ref', 'contractline_ref', 'invoice_ref', 'order_ref', 'proposal_ref', ''))) {
|
if (/* $source !== '' :never empty && */ in_array($ref, array('member_ref', 'contractline_ref', 'invoice_ref', 'order_ref', 'proposal_ref', ''))) {
|
||||||
$langs->load("errors");
|
$langs->load("errors");
|
||||||
dol_print_error_email('BADREFINONLINESIGNFORM', $langs->trans("ErrorBadLinkSourceSetButBadValueForRef", $source, $ref));
|
dol_print_error_email('BADREFINONLINESIGNFORM', $langs->trans("ErrorBadLinkSourceSetButBadValueForRef", $source, $ref));
|
||||||
// End of page
|
// End of page
|
||||||
@@ -862,6 +867,7 @@ if ($action == "dosign" && empty($cancel)) {
|
|||||||
}
|
}
|
||||||
print '</td></tr>'."\n";
|
print '</td></tr>'."\n";
|
||||||
print '</table>'."\n";
|
print '</table>'."\n";
|
||||||
|
|
||||||
print '</form>'."\n";
|
print '</form>'."\n";
|
||||||
print '</div>'."\n";
|
print '</div>'."\n";
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2013-2015 Laurent Destailleur <eldy@users.sourceforge.net>
|
/* Copyright (C) 2013-2015 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2014 Marcos García <marcosgdf@gmail.com>
|
* Copyright (C) 2014 Marcos García <marcosgdf@gmail.com>
|
||||||
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
|
* Copyright (C) 2024-2025 MDW <mdeweerd@users.noreply.github.com>
|
||||||
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@@ -60,7 +60,7 @@ if (GETPOST('sondage')) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$object = new Opensurveysondage($db);
|
$object = new Opensurveysondage($db);
|
||||||
$result = $object->fetch(0, $numsondage);
|
$result = $object->fetch('', $numsondage);
|
||||||
|
|
||||||
$nblines = $object->fetch_lines();
|
$nblines = $object->fetch_lines();
|
||||||
|
|
||||||
@@ -255,6 +255,7 @@ if (GETPOST("boutonp") || GETPOST("boutonp.x") || GETPOST("boutonp_x")) { // bo
|
|||||||
$testmodifier = false;
|
$testmodifier = false;
|
||||||
$testligneamodifier = false;
|
$testligneamodifier = false;
|
||||||
$ligneamodifier = -1;
|
$ligneamodifier = -1;
|
||||||
|
$modifier = -1;
|
||||||
for ($i = 0; $i < $nblines; $i++) {
|
for ($i = 0; $i < $nblines; $i++) {
|
||||||
if (GETPOSTISSET('modifierligne'.$i)) {
|
if (GETPOSTISSET('modifierligne'.$i)) {
|
||||||
$ligneamodifier = $i;
|
$ligneamodifier = $i;
|
||||||
@@ -726,6 +727,7 @@ if ($ligneamodifier < 0 && (!isset($_SESSION['nom']))) {
|
|||||||
|
|
||||||
// Select value of best choice (for checkbox columns only)
|
// Select value of best choice (for checkbox columns only)
|
||||||
$nbofcheckbox = 0;
|
$nbofcheckbox = 0;
|
||||||
|
$meilleurecolonne = null;
|
||||||
for ($i = 0; $i < $nbcolonnes; $i++) {
|
for ($i = 0; $i < $nbcolonnes; $i++) {
|
||||||
if (empty($listofanswers[$i]['format']) || !in_array($listofanswers[$i]['format'], array('yesno', 'foragainst'))) {
|
if (empty($listofanswers[$i]['format']) || !in_array($listofanswers[$i]['format'], array('yesno', 'foragainst'))) {
|
||||||
$nbofcheckbox++;
|
$nbofcheckbox++;
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
* Copyright (C) 2018-2024 Frédéric France <frederic.france@free.fr>
|
* Copyright (C) 2018-2024 Frédéric France <frederic.france@free.fr>
|
||||||
* Copyright (C) 2018 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
* Copyright (C) 2018 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
||||||
* Copyright (C) 2021 Waël Almoman <info@almoman.com>
|
* Copyright (C) 2021 Waël Almoman <info@almoman.com>
|
||||||
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
|
* Copyright (C) 2024-2025 MDW <mdeweerd@users.noreply.github.com>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -100,6 +100,8 @@ $user->loadDefaultValues();
|
|||||||
/**
|
/**
|
||||||
* Show header for new partnership
|
* Show header for new partnership
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @param string $title Title
|
* @param string $title Title
|
||||||
* @param string $head Head array
|
* @param string $head Head array
|
||||||
* @param int<0,1> $disablejs More content into html header
|
* @param int<0,1> $disablejs More content into html header
|
||||||
@@ -108,7 +110,7 @@ $user->loadDefaultValues();
|
|||||||
* @param string[] $arrayofcss Array of complementary css files
|
* @param string[] $arrayofcss Array of complementary css files
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $arrayofjs = [], $arrayofcss = [])
|
function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $arrayofjs = [], $arrayofcss = []) // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
global $conf, $langs, $mysoc;
|
global $conf, $langs, $mysoc;
|
||||||
|
|
||||||
@@ -155,9 +157,11 @@ function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $
|
|||||||
/**
|
/**
|
||||||
* Show footer for new member
|
* Show footer for new member
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxFooterVierge()
|
function llxFooterVierge() // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
|
|
||||||
@@ -267,7 +271,7 @@ if (empty($reshook) && $action == 'add') { // Test on permission not required he
|
|||||||
$company = new Societe($db);
|
$company = new Societe($db);
|
||||||
$result = $company->fetch(0, GETPOST('societe'));
|
$result = $company->fetch(0, GETPOST('societe'));
|
||||||
if ($result == 0) { // if entry with name not found, we search using the email
|
if ($result == 0) { // if entry with name not found, we search using the email
|
||||||
$result1 = $company->fetch(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, GETPOST('email'));
|
$result1 = $company->fetch(0, '', '', '', '', '', '', '', '', '', GETPOST('email'));
|
||||||
if ($result1 > 0) {
|
if ($result1 > 0) {
|
||||||
$error++;
|
$error++;
|
||||||
$errmsg = $langs->trans("EmailAlreadyExistsPleaseRewriteYourCompanyName");
|
$errmsg = $langs->trans("EmailAlreadyExistsPleaseRewriteYourCompanyName");
|
||||||
@@ -683,7 +687,7 @@ print '</td></tr>';
|
|||||||
if (!getDolGlobalString('SOCIETE_DISABLE_STATE')) {
|
if (!getDolGlobalString('SOCIETE_DISABLE_STATE')) {
|
||||||
print '<tr><td class="wordbreak">'.$langs->trans('State').'</td><td>';
|
print '<tr><td class="wordbreak">'.$langs->trans('State').'</td><td>';
|
||||||
if ($country_code) {
|
if ($country_code) {
|
||||||
print $formcompany->select_state(GETPOST("state_id"), $country_code);
|
print $formcompany->select_state(GETPOSTINT("state_id"), $country_code);
|
||||||
}
|
}
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -191,7 +191,7 @@ if ($source == 'organizedeventregistration') { // Test on permission not requir
|
|||||||
}
|
}
|
||||||
} elseif ($source == 'boothlocation') { // Test on permission not required here (anonymous action protected by mitigation of /public/... urls)
|
} elseif ($source == 'boothlocation') { // Test on permission not required here (anonymous action protected by mitigation of /public/... urls)
|
||||||
// Getting the amount to pay, the invoice, finding the thirdparty
|
// Getting the amount to pay, the invoice, finding the thirdparty
|
||||||
$invoiceid = GETPOST('ref');
|
$invoiceid = GETPOSTINT('ref');
|
||||||
$invoice = new Facture($db);
|
$invoice = new Facture($db);
|
||||||
$resultinvoice = $invoice->fetch($invoiceid);
|
$resultinvoice = $invoice->fetch($invoiceid);
|
||||||
if ($resultinvoice <= 0) {
|
if ($resultinvoice <= 0) {
|
||||||
@@ -478,7 +478,7 @@ if ($action == 'dopayment') { // Test on permission not required here (anonymous
|
|||||||
dol_syslog("SCRIPT_URI: ".(empty($_SERVER["SCRIPT_URI"]) ? '' : $_SERVER["SCRIPT_URI"]), LOG_DEBUG); // If defined script uri must match domain of PAYPAL_API_OK and PAYPAL_API_KO
|
dol_syslog("SCRIPT_URI: ".(empty($_SERVER["SCRIPT_URI"]) ? '' : $_SERVER["SCRIPT_URI"]), LOG_DEBUG); // If defined script uri must match domain of PAYPAL_API_OK and PAYPAL_API_KO
|
||||||
|
|
||||||
// A redirect is added if API call successful
|
// A redirect is added if API call successful
|
||||||
$mesg = print_paypal_redirect($PAYPAL_API_PRICE, $PAYPAL_API_DEVISE, $PAYPAL_PAYMENT_TYPE, $PAYPAL_API_OK, $PAYPAL_API_KO, $FULLTAG);
|
$mesg = print_paypal_redirect((float) $PAYPAL_API_PRICE, $PAYPAL_API_DEVISE, $PAYPAL_PAYMENT_TYPE, $PAYPAL_API_OK, $PAYPAL_API_KO, $FULLTAG);
|
||||||
|
|
||||||
// If we are here, it means the Paypal redirect was not done, so we show error message
|
// If we are here, it means the Paypal redirect was not done, so we show error message
|
||||||
$action = '';
|
$action = '';
|
||||||
@@ -990,7 +990,7 @@ if (getDolGlobalString('MAIN_IMAGE_PUBLIC_PAYMENT')) {
|
|||||||
|
|
||||||
|
|
||||||
print '<!-- Form to send a payment -->'."\n";
|
print '<!-- Form to send a payment -->'."\n";
|
||||||
print '<!-- creditor = '.dol_escape_htmltag($creditor).' -->'."\n";
|
print '<!-- creditor = '.dol_escape_htmltag((string) $creditor).' -->'."\n";
|
||||||
// Additional information for each payment system
|
// Additional information for each payment system
|
||||||
if (isModEnabled('paypal')) {
|
if (isModEnabled('paypal')) {
|
||||||
print '<!-- PAYPAL_API_SANDBOX = '.getDolGlobalString('PAYPAL_API_SANDBOX').' -->'."\n";
|
print '<!-- PAYPAL_API_SANDBOX = '.getDolGlobalString('PAYPAL_API_SANDBOX').' -->'."\n";
|
||||||
@@ -1022,7 +1022,7 @@ if (getDolGlobalString('PAYMENT_NEWFORM_TEXT')) {
|
|||||||
}
|
}
|
||||||
if (empty($text)) {
|
if (empty($text)) {
|
||||||
$text .= '<tr><td class="textpublicpayment"><br><strong>'.$langs->trans("WelcomeOnPaymentPage").'</strong></td></tr>'."\n";
|
$text .= '<tr><td class="textpublicpayment"><br><strong>'.$langs->trans("WelcomeOnPaymentPage").'</strong></td></tr>'."\n";
|
||||||
$text .= '<tr><td class="textpublicpayment"><span class="opacitymedium">'.$langs->trans("ThisScreenAllowsYouToPay", $creditor).'</span><br><br></td></tr>'."\n";
|
$text .= '<tr><td class="textpublicpayment"><span class="opacitymedium">'.$langs->trans("ThisScreenAllowsYouToPay", (string) $creditor).'</span><br><br></td></tr>'."\n";
|
||||||
}
|
}
|
||||||
print $text;
|
print $text;
|
||||||
|
|
||||||
@@ -1260,7 +1260,7 @@ if ($source == 'invoice') {
|
|||||||
print '</td><td class="CTableRow2">';
|
print '</td><td class="CTableRow2">';
|
||||||
print img_picto('', 'company', 'class="pictofixedwidth"');
|
print img_picto('', 'company', 'class="pictofixedwidth"');
|
||||||
print '<b>'.$creditor.'</b>';
|
print '<b>'.$creditor.'</b>';
|
||||||
print '<input type="hidden" name="creditor" value="'.dol_escape_htmltag($creditor).'">';
|
print '<input type="hidden" name="creditor" value="'.dol_escape_htmltag((string) $creditor).'">';
|
||||||
print '</td></tr>'."\n";
|
print '</td></tr>'."\n";
|
||||||
|
|
||||||
// Debitor
|
// Debitor
|
||||||
@@ -1810,7 +1810,7 @@ if ($source == 'donation') {
|
|||||||
|
|
||||||
$don = new Don($db);
|
$don = new Don($db);
|
||||||
// @phan-suppress-next-line PhanPluginSuspiciousParamPosition
|
// @phan-suppress-next-line PhanPluginSuspiciousParamPosition
|
||||||
$result = $don->fetch($ref);
|
$result = $don->fetch((int) $ref);
|
||||||
if ($result <= 0) {
|
if ($result <= 0) {
|
||||||
$mesg = $don->error;
|
$mesg = $don->error;
|
||||||
$error++;
|
$error++;
|
||||||
@@ -1998,7 +1998,7 @@ if ($source == 'organizedeventregistration' && is_object($thirdparty)) {
|
|||||||
print '<tr class="CTableRow2"><td class="CTableRow2">'.$langs->trans("Designation");
|
print '<tr class="CTableRow2"><td class="CTableRow2">'.$langs->trans("Designation");
|
||||||
print '</td><td class="CTableRow2"><b>'.$text.'</b>';
|
print '</td><td class="CTableRow2"><b>'.$text.'</b>';
|
||||||
print '<input type="hidden" name="source" value="'.dol_escape_htmltag($source).'">';
|
print '<input type="hidden" name="source" value="'.dol_escape_htmltag($source).'">';
|
||||||
print '<input type="hidden" name="ref" value="'.dol_escape_htmltag($invoice->id).'">';
|
print '<input type="hidden" name="ref" value="'.dol_escape_htmltag((string) $invoice->id).'">';
|
||||||
print '</td></tr>'."\n";
|
print '</td></tr>'."\n";
|
||||||
|
|
||||||
// Amount
|
// Amount
|
||||||
@@ -2082,7 +2082,7 @@ if ($source == 'boothlocation') {
|
|||||||
print '<tr class="CTableRow2"><td class="CTableRow2">'.$langs->trans("Designation");
|
print '<tr class="CTableRow2"><td class="CTableRow2">'.$langs->trans("Designation");
|
||||||
print '</td><td class="CTableRow2">'.$text;
|
print '</td><td class="CTableRow2">'.$text;
|
||||||
print '<input type="hidden" name="source" value="'.dol_escape_htmltag($source).'">';
|
print '<input type="hidden" name="source" value="'.dol_escape_htmltag($source).'">';
|
||||||
print '<input type="hidden" name="ref" value="'.dol_escape_htmltag($invoice->id).'">';
|
print '<input type="hidden" name="ref" value="'.dol_escape_htmltag((string) $invoice->id).'">';
|
||||||
print '</td></tr>'."\n";
|
print '</td></tr>'."\n";
|
||||||
|
|
||||||
// Amount
|
// Amount
|
||||||
|
|||||||
@@ -93,10 +93,12 @@ if (isModEnabled('paypal')) {
|
|||||||
$PAYPALPAYERID = GETPOST('PayerID');
|
$PAYPALPAYERID = GETPOST('PayerID');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
if (isModEnabled('paybox')) {
|
if (isModEnabled('paybox')) {
|
||||||
}
|
}
|
||||||
if (isModEnabled('stripe')) {
|
if (isModEnabled('stripe')) {
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
$FULLTAG = GETPOST('FULLTAG');
|
$FULLTAG = GETPOST('FULLTAG');
|
||||||
if (empty($FULLTAG)) {
|
if (empty($FULLTAG)) {
|
||||||
@@ -180,6 +182,7 @@ dol_syslog("POST=".$tracepost, LOG_DEBUG, 0, '_payment');
|
|||||||
// Set $appli for emails title
|
// Set $appli for emails title
|
||||||
$appli = $mysoc->name;
|
$appli = $mysoc->name;
|
||||||
$error = 0;
|
$error = 0;
|
||||||
|
$FinalPaymentAmt = 0;
|
||||||
|
|
||||||
|
|
||||||
if (!empty($_SESSION['ipaddress'])) { // To avoid to make action twice
|
if (!empty($_SESSION['ipaddress'])) { // To avoid to make action twice
|
||||||
@@ -214,7 +217,7 @@ if (!empty($_SESSION['ipaddress'])) { // To avoid to make action twice
|
|||||||
if (empty($myCompanyDefaultLang) || $myCompanyDefaultLang === 'auto') {
|
if (empty($myCompanyDefaultLang) || $myCompanyDefaultLang === 'auto') {
|
||||||
// We must guess the language from the company country. We must not use the language of the visitor. This is a technical email for supervision
|
// We must guess the language from the company country. We must not use the language of the visitor. This is a technical email for supervision
|
||||||
// so it must always be into the same language.
|
// so it must always be into the same language.
|
||||||
$myCompanyDefaultLang = getLanguageCodeFromCountryCode($mysoc->country_code);
|
$myCompanyDefaultLang = (string) getLanguageCodeFromCountryCode($mysoc->country_code);
|
||||||
}
|
}
|
||||||
|
|
||||||
$companylangs = new Translate('', $conf);
|
$companylangs = new Translate('', $conf);
|
||||||
|
|||||||
@@ -425,6 +425,7 @@ $appli = $mysoc->name;
|
|||||||
|
|
||||||
// Make complementary actions (post payment actions if payment is ok)
|
// Make complementary actions (post payment actions if payment is ok)
|
||||||
$ispostactionok = 0;
|
$ispostactionok = 0;
|
||||||
|
$paymentTypeId = 0;
|
||||||
$postactionmessages = array();
|
$postactionmessages = array();
|
||||||
if ($ispaymentok) {
|
if ($ispaymentok) {
|
||||||
// Set permission for the anonymous user
|
// Set permission for the anonymous user
|
||||||
@@ -466,7 +467,6 @@ if ($ispaymentok) {
|
|||||||
dol_syslog("We have to process member with id=".$tmptag['MEM']." result1=".$result1." result2=".$result2, LOG_DEBUG, 0, '_payment');
|
dol_syslog("We have to process member with id=".$tmptag['MEM']." result1=".$result1." result2=".$result2, LOG_DEBUG, 0, '_payment');
|
||||||
|
|
||||||
if ($result1 > 0 && $result2 > 0) {
|
if ($result1 > 0 && $result2 > 0) {
|
||||||
$paymentTypeId = 0;
|
|
||||||
if ($paymentmethod == 'paybox') {
|
if ($paymentmethod == 'paybox') {
|
||||||
$paymentTypeId = getDolGlobalInt('PAYBOX_PAYMENT_MODE_FOR_PAYMENTS');
|
$paymentTypeId = getDolGlobalInt('PAYBOX_PAYMENT_MODE_FOR_PAYMENTS');
|
||||||
}
|
}
|
||||||
@@ -576,7 +576,7 @@ if ($ispaymentok) {
|
|||||||
$datesubscription = dol_get_first_day((int) dol_print_date($datesubscription, "%Y"));
|
$datesubscription = dol_get_first_day((int) dol_print_date($datesubscription, "%Y"));
|
||||||
}
|
}
|
||||||
|
|
||||||
$datesubend = null;
|
$datesubend = 0;
|
||||||
if ($datesubscription && $defaultdelay && $defaultdelayunit) {
|
if ($datesubscription && $defaultdelay && $defaultdelayunit) {
|
||||||
$datesubend = dol_time_plus_duree($datesubscription, $defaultdelay, $defaultdelayunit);
|
$datesubend = dol_time_plus_duree($datesubscription, $defaultdelay, $defaultdelayunit);
|
||||||
// the new end date of subscription must be in futur
|
// the new end date of subscription must be in futur
|
||||||
@@ -643,6 +643,7 @@ if ($ispaymentok) {
|
|||||||
$option = 'none';
|
$option = 'none';
|
||||||
}
|
}
|
||||||
$sendalsoemail = 1;
|
$sendalsoemail = 1;
|
||||||
|
$crowid = 0;
|
||||||
|
|
||||||
// Record the subscription then complementary actions
|
// Record the subscription then complementary actions
|
||||||
$db->begin();
|
$db->begin();
|
||||||
@@ -663,10 +664,12 @@ if ($ispaymentok) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$autocreatethirdparty = 0;
|
||||||
|
|
||||||
if (!$error) {
|
if (!$error) {
|
||||||
dol_syslog("Call ->subscriptionComplementaryActions option=".$option, LOG_DEBUG, 0, '_payment');
|
dol_syslog("Call ->subscriptionComplementaryActions option=".$option, LOG_DEBUG, 0, '_payment');
|
||||||
|
|
||||||
$autocreatethirdparty = 1; // will create thirdparty if member not yet linked to a thirdparty
|
$autocreatethirdparty = 1; // will create third party if member not yet linked to a thirdparty
|
||||||
|
|
||||||
$result = $object->subscriptionComplementaryActions($crowid, $option, $accountid, $datesubscription, $paymentdate, $operation, $label, $amount, $num_chq, $emetteur_nom, $emetteur_banque, $autocreatethirdparty, $TRANSACTIONID, $service);
|
$result = $object->subscriptionComplementaryActions($crowid, $option, $accountid, $datesubscription, $paymentdate, $operation, $label, $amount, $num_chq, $emetteur_nom, $emetteur_banque, $autocreatethirdparty, $TRANSACTIONID, $service);
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
@@ -708,7 +711,7 @@ if ($ispaymentok) {
|
|||||||
$service = 'StripeLive';
|
$service = 'StripeLive';
|
||||||
$servicestatus = 1;
|
$servicestatus = 1;
|
||||||
}
|
}
|
||||||
$stripeacc = null; // No Oauth/connect use for public pages
|
$stripeacc = ''; // No Oauth/connect use for public pages
|
||||||
|
|
||||||
$thirdparty = new Societe($db);
|
$thirdparty = new Societe($db);
|
||||||
$thirdparty->fetch($thirdparty_id);
|
$thirdparty->fetch($thirdparty_id);
|
||||||
@@ -1298,7 +1301,7 @@ if ($ispaymentok) {
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/eventorganization/class/conferenceorbooth.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/eventorganization/class/conferenceorbooth.class.php';
|
||||||
include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
|
||||||
$object = new Facture($db);
|
$object = new Facture($db);
|
||||||
$result = $object->fetch($ref);
|
$result = $object->fetch((int) $ref); // @phan-suppress-curren-line PhanPluginSuspiciousParamPosition
|
||||||
if ($result) {
|
if ($result) {
|
||||||
$paymentTypeId = 0;
|
$paymentTypeId = 0;
|
||||||
if ($paymentmethod == 'paybox') {
|
if ($paymentmethod == 'paybox') {
|
||||||
@@ -1439,7 +1442,7 @@ if ($ispaymentok) {
|
|||||||
$thirdparty = new Societe($db);
|
$thirdparty = new Societe($db);
|
||||||
$resultthirdparty = $thirdparty->fetch($attendeetovalidate->fk_soc);
|
$resultthirdparty = $thirdparty->fetch($attendeetovalidate->fk_soc);
|
||||||
if ($resultthirdparty < 0) {
|
if ($resultthirdparty < 0) {
|
||||||
setEventMessages($resultthirdparty->error, $resultthirdparty->errors, "errors");
|
setEventMessages($thirdparty->error, $thirdparty->errors, "errors");
|
||||||
} else {
|
} else {
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php';
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php';
|
||||||
@@ -1452,7 +1455,7 @@ if ($ispaymentok) {
|
|||||||
// Get email content from template
|
// Get email content from template
|
||||||
$arraydefaultmessage = null;
|
$arraydefaultmessage = null;
|
||||||
|
|
||||||
$idoftemplatetouse = getDolGlobalString('EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_EVENT'); // Email to send for Event organization registration
|
$idoftemplatetouse = getDolGlobalInt('EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_EVENT'); // Email to send for Event organization registration
|
||||||
|
|
||||||
if (!empty($idoftemplatetouse)) {
|
if (!empty($idoftemplatetouse)) {
|
||||||
$arraydefaultmessage = $formmail->getEMailTemplate($db, 'conferenceorbooth', $user, $outputlangs, $idoftemplatetouse, 1, '');
|
$arraydefaultmessage = $formmail->getEMailTemplate($db, 'conferenceorbooth', $user, $outputlangs, $idoftemplatetouse, 1, '');
|
||||||
@@ -1529,7 +1532,7 @@ if ($ispaymentok) {
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/eventorganization/class/conferenceorbooth.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/eventorganization/class/conferenceorbooth.class.php';
|
||||||
include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
|
||||||
$object = new Facture($db);
|
$object = new Facture($db);
|
||||||
$result = $object->fetch($ref);
|
$result = $object->fetch((int) $ref); // @phan-suppress-current-line PhanPluginSuspiciousParamPosition
|
||||||
if ($result) {
|
if ($result) {
|
||||||
$FinalPaymentAmt = $_SESSION["FinalPaymentAmt"];
|
$FinalPaymentAmt = $_SESSION["FinalPaymentAmt"];
|
||||||
|
|
||||||
@@ -1655,9 +1658,9 @@ if ($ispaymentok) {
|
|||||||
$booth->status = ConferenceOrBooth::STATUS_SUGGESTED;
|
$booth->status = ConferenceOrBooth::STATUS_SUGGESTED;
|
||||||
$resultboothupdate = $booth->update($user);
|
$resultboothupdate = $booth->update($user);
|
||||||
if ($resultboothupdate < 0) {
|
if ($resultboothupdate < 0) {
|
||||||
// Finding the thirdparty by getting the invoice
|
// Finding the third party by getting the invoice
|
||||||
$invoice = new Facture($db);
|
$invoice = new Facture($db);
|
||||||
$resultinvoice = $invoice->fetch($ref);
|
$resultinvoice = $invoice->fetch((int) $ref); // @phan-suppress-current-line PhanPluginSuspiciousParamPosition
|
||||||
if ($resultinvoice < 0) {
|
if ($resultinvoice < 0) {
|
||||||
$postactionmessages[] = 'Could not find the associated invoice.';
|
$postactionmessages[] = 'Could not find the associated invoice.';
|
||||||
$ispostactionok = -1;
|
$ispostactionok = -1;
|
||||||
@@ -1681,7 +1684,7 @@ if ($ispaymentok) {
|
|||||||
// Get email content from template
|
// Get email content from template
|
||||||
$arraydefaultmessage = null;
|
$arraydefaultmessage = null;
|
||||||
|
|
||||||
$idoftemplatetouse = getDolGlobalString('EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_BOOTH'); // Email sent after registration for a Booth
|
$idoftemplatetouse = getDolGlobalInt('EVENTORGANIZATION_TEMPLATE_EMAIL_AFT_SUBS_BOOTH'); // Email sent after registration for a Booth
|
||||||
|
|
||||||
if (!empty($idoftemplatetouse)) {
|
if (!empty($idoftemplatetouse)) {
|
||||||
$arraydefaultmessage = $formmail->getEMailTemplate($db, 'conferenceorbooth', $user, $outputlangs, $idoftemplatetouse, 1, '');
|
$arraydefaultmessage = $formmail->getEMailTemplate($db, 'conferenceorbooth', $user, $outputlangs, $idoftemplatetouse, 1, '');
|
||||||
@@ -1960,11 +1963,11 @@ if ($ispaymentok) {
|
|||||||
// Send an email to the admins
|
// Send an email to the admins
|
||||||
if ($sendemail) {
|
if ($sendemail) {
|
||||||
// Get default language to use for the company for supervision emails
|
// Get default language to use for the company for supervision emails
|
||||||
$myCompanyDefaultLang = $mysoc->default_lang;
|
$myCompanyDefaultLang = (string) $mysoc->default_lang;
|
||||||
if (empty($myCompanyDefaultLang) || $myCompanyDefaultLang === 'auto') {
|
if (empty($myCompanyDefaultLang) || $myCompanyDefaultLang === 'auto') {
|
||||||
// We must guess the language from the company country. We must not use the language of the visitor. This is a technical email for supervision
|
// We must guess the language from the company country. We must not use the language of the visitor. This is a technical email for supervision
|
||||||
// so it must always be into the same language.
|
// so it must always be into the same language.
|
||||||
$myCompanyDefaultLang = getLanguageCodeFromCountryCode($mysoc->country_code);
|
$myCompanyDefaultLang = (string) getLanguageCodeFromCountryCode($mysoc->country_code);
|
||||||
}
|
}
|
||||||
|
|
||||||
$companylangs = new Translate('', $conf);
|
$companylangs = new Translate('', $conf);
|
||||||
@@ -2125,7 +2128,7 @@ unset($_SESSION["TRANSACTIONID"]);
|
|||||||
if (empty($doactionsthenredirect)) {
|
if (empty($doactionsthenredirect)) {
|
||||||
print "\n</div>\n";
|
print "\n</div>\n";
|
||||||
|
|
||||||
print "<!-- Info for payment: FinalPaymentAmt=".dol_escape_htmltag($FinalPaymentAmt)." paymentTypeId=".dol_escape_htmltag($paymentTypeId)." currencyCodeType=".dol_escape_htmltag($currencyCodeType)." -->\n";
|
print "<!-- Info for payment: FinalPaymentAmt=".dol_escape_htmltag($FinalPaymentAmt)." paymentTypeId=".dol_escape_htmltag((string) $paymentTypeId)." currencyCodeType=".dol_escape_htmltag($currencyCodeType)." -->\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2021 Dorian Vabre <dorian.vabre@gmail.com>
|
/* Copyright (C) 2021 Dorian Vabre <dorian.vabre@gmail.com>
|
||||||
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
||||||
|
* Copyright (C) 2025 MDW <mdeweerd@users.noreply.github.com>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -111,6 +112,8 @@ if (empty($conf->project->enabled)) {
|
|||||||
/**
|
/**
|
||||||
* Show header for new member
|
* Show header for new member
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @param string $title Title
|
* @param string $title Title
|
||||||
* @param string $head Head array
|
* @param string $head Head array
|
||||||
* @param int $disablejs More content into html header
|
* @param int $disablejs More content into html header
|
||||||
@@ -119,7 +122,7 @@ if (empty($conf->project->enabled)) {
|
|||||||
* @param string[]|string $arrayofcss Array of complementary css files
|
* @param string[]|string $arrayofcss Array of complementary css files
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $arrayofjs = [], $arrayofcss = [])
|
function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $arrayofjs = [], $arrayofcss = []) // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
global $conf, $langs, $mysoc;
|
global $conf, $langs, $mysoc;
|
||||||
|
|
||||||
@@ -168,9 +171,11 @@ function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $
|
|||||||
/**
|
/**
|
||||||
* Show footer for new member
|
* Show footer for new member
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxFooterVierge()
|
function llxFooterVierge() // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
* Copyright (C) 2012 J. Fernando Lagrange <fernando@demo-tic.org>
|
* Copyright (C) 2012 J. Fernando Lagrange <fernando@demo-tic.org>
|
||||||
* Copyright (C) 2018-2024 Frédéric France <frederic.france@free.fr>
|
* Copyright (C) 2018-2024 Frédéric France <frederic.france@free.fr>
|
||||||
* Copyright (C) 2018 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
* Copyright (C) 2018 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
||||||
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
|
* Copyright (C) 2024-2025 MDW <mdeweerd@users.noreply.github.com>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -98,6 +98,8 @@ if (empty($conf->project->enabled)) {
|
|||||||
/**
|
/**
|
||||||
* Show header for new member
|
* Show header for new member
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @param string $title Title
|
* @param string $title Title
|
||||||
* @param string $head Head array
|
* @param string $head Head array
|
||||||
* @param int $disablejs More content into html header
|
* @param int $disablejs More content into html header
|
||||||
@@ -106,7 +108,7 @@ if (empty($conf->project->enabled)) {
|
|||||||
* @param string[]|string $arrayofcss Array of complementary css files
|
* @param string[]|string $arrayofcss Array of complementary css files
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $arrayofjs = [], $arrayofcss = [])
|
function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $arrayofjs = [], $arrayofcss = []) // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
global $conf, $langs, $mysoc;
|
global $conf, $langs, $mysoc;
|
||||||
|
|
||||||
@@ -154,9 +156,11 @@ function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $
|
|||||||
/**
|
/**
|
||||||
* Show footer for new member
|
* Show footer for new member
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxFooterVierge()
|
function llxFooterVierge() // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
|
|||||||
@@ -125,6 +125,8 @@ if (empty($conf->eventorganization->enabled)) {
|
|||||||
/**
|
/**
|
||||||
* Show header for new member
|
* Show header for new member
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @param string $title Title
|
* @param string $title Title
|
||||||
* @param string $head Head array
|
* @param string $head Head array
|
||||||
* @param int $disablejs More content into html header
|
* @param int $disablejs More content into html header
|
||||||
@@ -133,7 +135,7 @@ if (empty($conf->eventorganization->enabled)) {
|
|||||||
* @param string[]|string $arrayofcss Array of complementary css files
|
* @param string[]|string $arrayofcss Array of complementary css files
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $arrayofjs = [], $arrayofcss = [])
|
function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $arrayofjs = [], $arrayofcss = []) // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
global $conf, $langs, $mysoc;
|
global $conf, $langs, $mysoc;
|
||||||
|
|
||||||
@@ -181,9 +183,11 @@ function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $
|
|||||||
/**
|
/**
|
||||||
* Show footer for new member
|
* Show footer for new member
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxFooterVierge()
|
function llxFooterVierge() // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
@@ -331,7 +335,7 @@ if (empty($reshook) && $action == 'add') { // Test on permission not required he
|
|||||||
// Adding supplier tag and tag from setup to thirdparty
|
// Adding supplier tag and tag from setup to thirdparty
|
||||||
$category = new Categorie($db);
|
$category = new Categorie($db);
|
||||||
|
|
||||||
$resultcategory = $category->fetch(getDolGlobalString('EVENTORGANIZATION_CATEG_THIRDPARTY_BOOTH'));
|
$resultcategory = $category->fetch(getDolGlobalInt('EVENTORGANIZATION_CATEG_THIRDPARTY_BOOTH'));
|
||||||
|
|
||||||
if ($resultcategory <= 0) {
|
if ($resultcategory <= 0) {
|
||||||
$error++;
|
$error++;
|
||||||
@@ -433,7 +437,7 @@ if (empty($reshook) && $action == 'add') { // Test on permission not required he
|
|||||||
$facture = null;
|
$facture = null;
|
||||||
if (!empty((float) $project->price_booth)) {
|
if (!empty((float) $project->price_booth)) {
|
||||||
$productforinvoicerow = new Product($db);
|
$productforinvoicerow = new Product($db);
|
||||||
$resultprod = $productforinvoicerow->fetch(getDolGlobalString('SERVICE_BOOTH_LOCATION'));
|
$resultprod = $productforinvoicerow->fetch(getDolGlobalInt('SERVICE_BOOTH_LOCATION'));
|
||||||
if ($resultprod < 0) {
|
if ($resultprod < 0) {
|
||||||
$error++;
|
$error++;
|
||||||
$errmsg .= $productforinvoicerow->error;
|
$errmsg .= $productforinvoicerow->error;
|
||||||
@@ -516,7 +520,7 @@ if (empty($reshook) && $action == 'add') { // Test on permission not required he
|
|||||||
// Get email content from template
|
// Get email content from template
|
||||||
$arraydefaultmessage = null;
|
$arraydefaultmessage = null;
|
||||||
|
|
||||||
$labeltouse = getDolGlobalString('EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_BOOTH');
|
$labeltouse = getDolGlobalInt('EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_BOOTH');
|
||||||
if (!empty($labeltouse)) {
|
if (!empty($labeltouse)) {
|
||||||
$arraydefaultmessage = $formmail->getEMailTemplate($db, 'conferenceorbooth', $user, $outputlangs, $labeltouse, 1, '');
|
$arraydefaultmessage = $formmail->getEMailTemplate($db, 'conferenceorbooth', $user, $outputlangs, $labeltouse, 1, '');
|
||||||
}
|
}
|
||||||
@@ -699,7 +703,7 @@ print '</td></tr>';
|
|||||||
if (!getDolGlobalString('SOCIETE_DISABLE_STATE')) {
|
if (!getDolGlobalString('SOCIETE_DISABLE_STATE')) {
|
||||||
print '<tr><td>'.$langs->trans('State').'</td><td>';
|
print '<tr><td>'.$langs->trans('State').'</td><td>';
|
||||||
if ($country_code) {
|
if ($country_code) {
|
||||||
print $formcompany->select_state(GETPOST("state_id"), $country_code);
|
print $formcompany->select_state(GETPOSTINT("state_id"), $country_code);
|
||||||
} else {
|
} else {
|
||||||
print '';
|
print '';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -126,6 +126,8 @@ if (empty($conf->eventorganization->enabled)) {
|
|||||||
/**
|
/**
|
||||||
* Show header for new member
|
* Show header for new member
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @param string $title Title
|
* @param string $title Title
|
||||||
* @param string $head Head array
|
* @param string $head Head array
|
||||||
* @param int $disablejs More content into html header
|
* @param int $disablejs More content into html header
|
||||||
@@ -134,7 +136,7 @@ if (empty($conf->eventorganization->enabled)) {
|
|||||||
* @param string[]|string $arrayofcss Array of complementary css files
|
* @param string[]|string $arrayofcss Array of complementary css files
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $arrayofjs = [], $arrayofcss = [])
|
function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $arrayofjs = [], $arrayofcss = []) // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
global $conf, $langs, $mysoc;
|
global $conf, $langs, $mysoc;
|
||||||
|
|
||||||
@@ -182,9 +184,11 @@ function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $
|
|||||||
/**
|
/**
|
||||||
* Show footer for new member
|
* Show footer for new member
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxFooterVierge()
|
function llxFooterVierge() // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
@@ -330,7 +334,7 @@ if (empty($reshook) && $action == 'add') { // Test on permission not required he
|
|||||||
// Adding supplier tag and tag from setup to thirdparty
|
// Adding supplier tag and tag from setup to thirdparty
|
||||||
$category = new Categorie($db);
|
$category = new Categorie($db);
|
||||||
|
|
||||||
$resultcategory = $category->fetch(getDolGlobalString('EVENTORGANIZATION_CATEG_THIRDPARTY_CONF'));
|
$resultcategory = $category->fetch(getDolGlobalInt('EVENTORGANIZATION_CATEG_THIRDPARTY_CONF'));
|
||||||
|
|
||||||
if ($resultcategory <= 0) {
|
if ($resultcategory <= 0) {
|
||||||
$error++;
|
$error++;
|
||||||
@@ -446,7 +450,7 @@ if (empty($reshook) && $action == 'add') { // Test on permission not required he
|
|||||||
// Get email content from template
|
// Get email content from template
|
||||||
$arraydefaultmessage = null;
|
$arraydefaultmessage = null;
|
||||||
|
|
||||||
$labeltouse = getDolGlobalString('EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF');
|
$labeltouse = getDolGlobalInt('EVENTORGANIZATION_TEMPLATE_EMAIL_ASK_CONF');
|
||||||
if (!empty($labeltouse)) {
|
if (!empty($labeltouse)) {
|
||||||
$arraydefaultmessage = $formmail->getEMailTemplate($db, 'conferenceorbooth', $user, $outputlangs, $labeltouse, 1, '');
|
$arraydefaultmessage = $formmail->getEMailTemplate($db, 'conferenceorbooth', $user, $outputlangs, $labeltouse, 1, '');
|
||||||
}
|
}
|
||||||
@@ -635,7 +639,7 @@ print '</td></tr>';
|
|||||||
if (!getDolGlobalString('SOCIETE_DISABLE_STATE')) {
|
if (!getDolGlobalString('SOCIETE_DISABLE_STATE')) {
|
||||||
print '<tr><td>'.$langs->trans('State').'</td><td>';
|
print '<tr><td>'.$langs->trans('State').'</td><td>';
|
||||||
if ($country_code) {
|
if ($country_code) {
|
||||||
print $formcompany->select_state(GETPOST("state_id"), $country_code);
|
print $formcompany->select_state(GETPOSTINT("state_id"), $country_code);
|
||||||
} else {
|
} else {
|
||||||
print '';
|
print '';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -178,6 +178,7 @@ $idvote = GETPOSTINT("vote");
|
|||||||
$hashedvote = dol_hash(getDolGlobalString('EVENTORGANIZATION_SECUREKEY').'vote'.$idvote);
|
$hashedvote = dol_hash(getDolGlobalString('EVENTORGANIZATION_SECUREKEY').'vote'.$idvote);
|
||||||
|
|
||||||
if ($idvote > 0) {
|
if ($idvote > 0) {
|
||||||
|
$votestatus = 'err';
|
||||||
if (in_array($hashedvote, $listofvotes)) {
|
if (in_array($hashedvote, $listofvotes)) {
|
||||||
// Has already voted
|
// Has already voted
|
||||||
$votestatus = 'ko';
|
$votestatus = 'ko';
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2020 Laurent Destailleur <eldy@users.sourceforge.net>
|
/* Copyright (C) 2020 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
||||||
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
|
* Copyright (C) 2024-2025 MDW <mdeweerd@users.noreply.github.com>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -363,7 +363,7 @@ if (empty($emailforcontact)) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
print '<b class="wordbreak">';
|
print '<b class="wordbreak">';
|
||||||
print $tmpuser->getFullName(-1);
|
print $tmpuser->getFullName($langs);
|
||||||
print ' '.dol_print_email($emailforcontact, 0, 0, 1, 0, 0, 'envelope');
|
print ' '.dol_print_email($emailforcontact, 0, 0, 1, 0, 0, 'envelope');
|
||||||
print '</b>';
|
print '</b>';
|
||||||
print '</b><br>';
|
print '</b><br>';
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
/* Copyright (C) 2018-2020 Thibault FOUCART <support@ptibogxiv.net>
|
/* Copyright (C) 2018-2020 Thibault FOUCART <support@ptibogxiv.net>
|
||||||
* Copyright (C) 2018-2024 Frédéric France <frederic.france@free.fr>
|
* Copyright (C) 2018-2024 Frédéric France <frederic.france@free.fr>
|
||||||
* Copyright (C) 2023 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2023 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
|
* Copyright (C) 2024-2025 MDW <mdeweerd@users.noreply.github.com>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -96,7 +96,7 @@ if (empty($endpoint_secret)) {
|
|||||||
if (getDolGlobalString('STRIPE_USER_ACCOUNT_FOR_ACTIONS')) {
|
if (getDolGlobalString('STRIPE_USER_ACCOUNT_FOR_ACTIONS')) {
|
||||||
// We set the user to use for all ipn actions in Dolibarr
|
// We set the user to use for all ipn actions in Dolibarr
|
||||||
$user = new User($db);
|
$user = new User($db);
|
||||||
$user->fetch(getDolGlobalString('STRIPE_USER_ACCOUNT_FOR_ACTIONS'));
|
$user->fetch(getDolGlobalInt('STRIPE_USER_ACCOUNT_FOR_ACTIONS'));
|
||||||
$user->loadRights();
|
$user->loadRights();
|
||||||
} else {
|
} else {
|
||||||
httponly_accessforbidden('Error: Setup of module Stripe not complete for mode '.dol_escape_htmltag($service).'. The STRIPE_USER_ACCOUNT_FOR_ACTIONS is not defined.', 400, 1);
|
httponly_accessforbidden('Error: Setup of module Stripe not complete for mode '.dol_escape_htmltag($service).'. The STRIPE_USER_ACCOUNT_FOR_ACTIONS is not defined.', 400, 1);
|
||||||
@@ -252,13 +252,13 @@ if ($event->type == 'payout.created' && getDolGlobalString('STRIPE_AUTO_RECORD_P
|
|||||||
$db->begin();
|
$db->begin();
|
||||||
|
|
||||||
if (!$error) {
|
if (!$error) {
|
||||||
$bank_line_id_from = $accountfrom->addline($dateo, $typefrom, $label, -1 * (float) price2num($amount), '', '', $user);
|
$bank_line_id_from = $accountfrom->addline($dateo, $typefrom, $label, -1 * (float) price2num($amount), '', 0, $user);
|
||||||
}
|
}
|
||||||
if (!($bank_line_id_from > 0)) {
|
if (!($bank_line_id_from > 0)) {
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
if (!$error) {
|
if (!$error) {
|
||||||
$bank_line_id_to = $accountto->addline($dateo, $typeto, $label, price2num($amount), '', '', $user);
|
$bank_line_id_to = $accountto->addline($dateo, $typeto, $label, (float) price2num($amount), '', 0, $user);
|
||||||
}
|
}
|
||||||
if (!($bank_line_id_to > 0)) {
|
if (!($bank_line_id_to > 0)) {
|
||||||
$error++;
|
$error++;
|
||||||
@@ -367,12 +367,12 @@ if ($event->type == 'payout.created' && getDolGlobalString('STRIPE_AUTO_RECORD_P
|
|||||||
$obj = $db->fetch_object($result);
|
$obj = $db->fetch_object($result);
|
||||||
if ($obj) {
|
if ($obj) {
|
||||||
if ($obj->type == 'ban') {
|
if ($obj->type == 'ban') {
|
||||||
|
$pdid = $obj->rowid;
|
||||||
|
$directdebitorcreditransfer_id = $obj->fk_prelevement_bons;
|
||||||
if ($obj->traite == 1) {
|
if ($obj->traite == 1) {
|
||||||
// This is a direct-debit with an order (llx_bon_prelevement) ALREADY generated, so
|
// This is a direct-debit with an order (llx_bon_prelevement) ALREADY generated, so
|
||||||
// it means we received here the confirmation that payment request is finished.
|
// it means we received here the confirmation that payment request is finished.
|
||||||
$pdid = $obj->rowid;
|
|
||||||
$invoice_id = $obj->fk_facture;
|
$invoice_id = $obj->fk_facture;
|
||||||
$directdebitorcreditransfer_id = $obj->fk_prelevement_bons;
|
|
||||||
$payment_amountInDolibarr = $obj->amount;
|
$payment_amountInDolibarr = $obj->amount;
|
||||||
$paymentTypeCodeInDolibarr = $obj->type;
|
$paymentTypeCodeInDolibarr = $obj->type;
|
||||||
|
|
||||||
@@ -382,9 +382,9 @@ if ($event->type == 'payout.created' && getDolGlobalString('STRIPE_AUTO_RECORD_P
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($obj->type == 'card' || empty($obj->type)) {
|
if ($obj->type == 'card' || empty($obj->type)) {
|
||||||
|
$pdid = $obj->rowid;
|
||||||
if ($obj->traite == 0) {
|
if ($obj->traite == 0) {
|
||||||
// This is a card payment not already flagged as sent to Stripe.
|
// This is a card payment not already flagged as sent to Stripe.
|
||||||
$pdid = $obj->rowid;
|
|
||||||
$invoice_id = $obj->fk_facture;
|
$invoice_id = $obj->fk_facture;
|
||||||
$payment_amountInDolibarr = $obj->amount;
|
$payment_amountInDolibarr = $obj->amount;
|
||||||
$paymentTypeCodeInDolibarr = empty($obj->type) ? 'card' : $obj->type;
|
$paymentTypeCodeInDolibarr = empty($obj->type) ? 'card' : $obj->type;
|
||||||
@@ -827,7 +827,7 @@ if ($event->type == 'payout.created' && getDolGlobalString('STRIPE_AUTO_RECORD_P
|
|||||||
$amountdisputestripe = $object->amoutndispute; // In stripe format
|
$amountdisputestripe = $object->amoutndispute; // In stripe format
|
||||||
$amountdispute = $amountdisputestripe; // In real currency format
|
$amountdispute = $amountdisputestripe; // In real currency format
|
||||||
|
|
||||||
$invoice_id = "";
|
$invoice_id = 0;
|
||||||
$paymentTypeCode = ""; // payment type according to Stripe
|
$paymentTypeCode = ""; // payment type according to Stripe
|
||||||
$paymentTypeCodeInDolibarr = ""; // payment type according to Dolibarr
|
$paymentTypeCodeInDolibarr = ""; // payment type according to Dolibarr
|
||||||
$payment_amount = 0;
|
$payment_amount = 0;
|
||||||
@@ -861,7 +861,7 @@ if ($event->type == 'payout.created' && getDolGlobalString('STRIPE_AUTO_RECORD_P
|
|||||||
$payment_amountInDolibarr = $obj->amount;
|
$payment_amountInDolibarr = $obj->amount;
|
||||||
$paymentTypeCodeInDolibarr = empty($obj->type) ? 'card' : $obj->type;
|
$paymentTypeCodeInDolibarr = empty($obj->type) ? 'card' : $obj->type;
|
||||||
|
|
||||||
dol_syslog("Found the payment intent for card in database (pdid = ".$pdid." directdebitorcreditransfer_id=".$directdebitorcreditransfer_id.")");
|
dol_syslog("Found the payment intent for card in database (pdid = ".$pdid.")");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
dol_syslog("Payment intent ".$TRANSACTIONID." not found into database, so ignored.");
|
dol_syslog("Payment intent ".$TRANSACTIONID." not found into database, so ignored.");
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
/* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
||||||
|
* Copyright (C) 2025 MDW <mdeweerd@users.noreply.github.com>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -201,7 +202,7 @@ $sortfield = 'aaa';
|
|||||||
$sortorder = 'ASC';
|
$sortorder = 'ASC';
|
||||||
$tasksarray = array(1, 2, 3); // To force having several lines
|
$tasksarray = array(1, 2, 3); // To force having several lines
|
||||||
$tagidfortablednd = 'tablelines3';
|
$tagidfortablednd = 'tablelines3';
|
||||||
if (!isset($moreforfilter)) {
|
if (!isset($moreforfilter)) { // @phan-suppress-current-line PhanPluginUndeclaredVariableIsset
|
||||||
$moreforfilter = '';
|
$moreforfilter = '';
|
||||||
}
|
}
|
||||||
if (!empty($conf->use_javascript_ajax)) {
|
if (!empty($conf->use_javascript_ajax)) {
|
||||||
@@ -228,7 +229,7 @@ if ($socid) {
|
|||||||
if (isset($showbirthday) && $showbirthday) {
|
if (isset($showbirthday) && $showbirthday) {
|
||||||
$nav .= '<input type="hidden" name="showbirthday" value="1">';
|
$nav .= '<input type="hidden" name="showbirthday" value="1">';
|
||||||
}
|
}
|
||||||
if (isset($pid) && $pid) {
|
if (isset($pid) && $pid) { // @phan-suppress-current-line PhanPluginUndeclaredVariableIsset
|
||||||
$nav .= '<input type="hidden" name="projectid" value="'.$pid.'">';
|
$nav .= '<input type="hidden" name="projectid" value="'.$pid.'">';
|
||||||
}
|
}
|
||||||
if ($type) {
|
if ($type) {
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
/* Copyright (C) 2013-2016 Jean-François FERRY <hello@librethic.io>
|
/* Copyright (C) 2013-2016 Jean-François FERRY <hello@librethic.io>
|
||||||
* Copyright (C) 2016 Christophe Battarel <christophe@altairis.fr>
|
* Copyright (C) 2016 Christophe Battarel <christophe@altairis.fr>
|
||||||
* Copyright (C) 2023 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2023 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
|
* Copyright (C) 2024-2025 MDW <mdeweerd@users.noreply.github.com>
|
||||||
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@@ -153,12 +153,13 @@ if (empty($reshook)) {
|
|||||||
$upload_dir_tmp = $vardir.'/temp/'.session_id();
|
$upload_dir_tmp = $vardir.'/temp/'.session_id();
|
||||||
|
|
||||||
// TODO Delete only files that was uploaded from form
|
// TODO Delete only files that was uploaded from form
|
||||||
dol_remove_file_process(GETPOST('removedfile'), 0, 0);
|
dol_remove_file_process(GETPOSTINT('removedfile'), 0, 0);
|
||||||
$action = 'create_ticket';
|
$action = 'create_ticket';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($action == 'create_ticket' && GETPOST('save', 'alpha')) { // Test on permission not required. This is a public form. Security is managed by mitigation.
|
if ($action == 'create_ticket' && GETPOST('save', 'alpha')) { // Test on permission not required. This is a public form. Security is managed by mitigation.
|
||||||
$error = 0;
|
$error = 0;
|
||||||
|
$cid = -1;
|
||||||
$origin_email = GETPOST('email', 'email');
|
$origin_email = GETPOST('email', 'email');
|
||||||
if (empty($origin_email)) {
|
if (empty($origin_email)) {
|
||||||
$error++;
|
$error++;
|
||||||
@@ -166,16 +167,18 @@ if (empty($reshook)) {
|
|||||||
$action = '';
|
$action = '';
|
||||||
} else {
|
} else {
|
||||||
// Search company saved with email
|
// Search company saved with email
|
||||||
$searched_companies = $object->searchSocidByEmail($origin_email, '0');
|
$searched_companies = $object->searchSocidByEmail($origin_email, 0);
|
||||||
|
|
||||||
// Chercher un contact existent avec cette address email
|
// Chercher un contact existent avec cette address email
|
||||||
// Le premier contact trouvé est utilisé pour déterminer le contact suivi
|
// Le premier contact trouvé est utilisé pour déterminer le contact suivi
|
||||||
$contacts = $object->searchContactByEmail($origin_email);
|
$contacts = $object->searchContactByEmail($origin_email);
|
||||||
|
if (!is_array($contacts)) {
|
||||||
|
$contacts = array();
|
||||||
|
}
|
||||||
|
|
||||||
// Ensure that contact is active and select first active contact
|
// Ensure that contact is active and select first active contact
|
||||||
$cid = -1;
|
|
||||||
foreach ($contacts as $key => $contact) {
|
foreach ($contacts as $key => $contact) {
|
||||||
if ((int) $contact->statut == 1) {
|
if ((int) $contact->status == 1) {
|
||||||
$cid = $key;
|
$cid = $key;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -195,7 +198,7 @@ if (empty($reshook)) {
|
|||||||
$contact_phone = '';
|
$contact_phone = '';
|
||||||
if ($with_contact) {
|
if ($with_contact) {
|
||||||
// set linked contact to add in form
|
// set linked contact to add in form
|
||||||
if (is_array($contacts) && count($contacts) == 1) {
|
if (/* is_array($contacts) && */ count($contacts) == 1) {
|
||||||
$with_contact = current($contacts);
|
$with_contact = current($contacts);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -309,7 +312,7 @@ if (empty($reshook)) {
|
|||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
$error++;
|
$error++;
|
||||||
$errors = ($company->error ? array($company->error) : $company->errors);
|
$errors = ($company->error ? array($company->error) : $company->errors);
|
||||||
array_push($object->errors, $errors);
|
$object->errors = array_merge($object->errors, $errors);
|
||||||
$action = 'create_ticket';
|
$action = 'create_ticket';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -324,7 +327,7 @@ if (empty($reshook)) {
|
|||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
$error++;
|
$error++;
|
||||||
$errors = ($with_contact->error ? array($with_contact->error) : $with_contact->errors);
|
$errors = ($with_contact->error ? array($with_contact->error) : $with_contact->errors);
|
||||||
array_push($object->errors, $errors);
|
$object->errors = array_merge($object->errors, $errors);
|
||||||
$action = 'create_ticket';
|
$action = 'create_ticket';
|
||||||
} else {
|
} else {
|
||||||
$contacts = array($with_contact);
|
$contacts = array($with_contact);
|
||||||
@@ -336,7 +339,7 @@ if (empty($reshook)) {
|
|||||||
$object->fk_soc = $searched_companies[0]->id;
|
$object->fk_soc = $searched_companies[0]->id;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_array($contacts) && count($contacts) > 0 && $cid >= 0) {
|
if (/* is_array($contacts) && */ count($contacts) > 0 && $cid >= 0) {
|
||||||
$object->fk_soc = $contacts[$cid]->socid;
|
$object->fk_soc = $contacts[$cid]->socid;
|
||||||
$usertoassign = $contacts[$cid]->id;
|
$usertoassign = $contacts[$cid]->id;
|
||||||
}
|
}
|
||||||
@@ -363,7 +366,9 @@ if (empty($reshook)) {
|
|||||||
if ($id <= 0) {
|
if ($id <= 0) {
|
||||||
$error++;
|
$error++;
|
||||||
$errors = ($object->error ? array($object->error) : $object->errors);
|
$errors = ($object->error ? array($object->error) : $object->errors);
|
||||||
array_push($object->errors, $object->error ? array($object->error) : $object->errors);
|
if ($object->error) {
|
||||||
|
array_push($object->errors, $object->error);
|
||||||
|
}
|
||||||
$action = 'create_ticket';
|
$action = 'create_ticket';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -421,8 +426,8 @@ if (empty($reshook)) {
|
|||||||
$sendtocc = '';
|
$sendtocc = '';
|
||||||
$deliveryreceipt = 0;
|
$deliveryreceipt = 0;
|
||||||
|
|
||||||
if (getDolGlobalString('TICKET_DISABLE_MAIL_AUTOCOPY_TO') !== '') {
|
|
||||||
$old_MAIN_MAIL_AUTOCOPY_TO = getDolGlobalString('TICKET_DISABLE_MAIL_AUTOCOPY_TO');
|
$old_MAIN_MAIL_AUTOCOPY_TO = getDolGlobalString('TICKET_DISABLE_MAIL_AUTOCOPY_TO');
|
||||||
|
if ($old_MAIN_MAIL_AUTOCOPY_TO !== '') {
|
||||||
$conf->global->MAIN_MAIL_AUTOCOPY_TO = '';
|
$conf->global->MAIN_MAIL_AUTOCOPY_TO = '';
|
||||||
}
|
}
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php';
|
||||||
@@ -432,7 +437,7 @@ if (empty($reshook)) {
|
|||||||
} else {
|
} else {
|
||||||
$result = $mailfile->sendfile();
|
$result = $mailfile->sendfile();
|
||||||
}
|
}
|
||||||
if (getDolGlobalString('TICKET_DISABLE_MAIL_AUTOCOPY_TO') !== '') {
|
if ($old_MAIN_MAIL_AUTOCOPY_TO !== '') {
|
||||||
$conf->global->MAIN_MAIL_AUTOCOPY_TO = $old_MAIN_MAIL_AUTOCOPY_TO;
|
$conf->global->MAIN_MAIL_AUTOCOPY_TO = $old_MAIN_MAIL_AUTOCOPY_TO;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -464,8 +469,8 @@ if (empty($reshook)) {
|
|||||||
$from = getDolGlobalString('MAIN_INFO_SOCIETE_NOM') . ' <' . getDolGlobalString('TICKET_NOTIFICATION_EMAIL_FROM').'>';
|
$from = getDolGlobalString('MAIN_INFO_SOCIETE_NOM') . ' <' . getDolGlobalString('TICKET_NOTIFICATION_EMAIL_FROM').'>';
|
||||||
$replyto = $from;
|
$replyto = $from;
|
||||||
|
|
||||||
if (getDolGlobalString('TICKET_DISABLE_MAIL_AUTOCOPY_TO') !== '') {
|
|
||||||
$old_MAIN_MAIL_AUTOCOPY_TO = getDolGlobalString('TICKET_DISABLE_MAIL_AUTOCOPY_TO');
|
$old_MAIN_MAIL_AUTOCOPY_TO = getDolGlobalString('TICKET_DISABLE_MAIL_AUTOCOPY_TO');
|
||||||
|
if ($old_MAIN_MAIL_AUTOCOPY_TO !== '') {
|
||||||
$conf->global->MAIN_MAIL_AUTOCOPY_TO = '';
|
$conf->global->MAIN_MAIL_AUTOCOPY_TO = '';
|
||||||
}
|
}
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php';
|
||||||
@@ -475,7 +480,7 @@ if (empty($reshook)) {
|
|||||||
} else {
|
} else {
|
||||||
$result = $mailfile->sendfile();
|
$result = $mailfile->sendfile();
|
||||||
}
|
}
|
||||||
if ((getDolGlobalString('TICKET_DISABLE_MAIL_AUTOCOPY_TO') !== '')) {
|
if ($old_MAIN_MAIL_AUTOCOPY_TO !== '') {
|
||||||
$conf->global->MAIN_MAIL_AUTOCOPY_TO = $old_MAIN_MAIL_AUTOCOPY_TO;
|
$conf->global->MAIN_MAIL_AUTOCOPY_TO = $old_MAIN_MAIL_AUTOCOPY_TO;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
|
|
||||||
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
|
||||||
*/
|
|
||||||
/* Copyright (C) 2013-2016 Jean-François FERRY <jfefe@aternatik.fr>
|
/* Copyright (C) 2013-2016 Jean-François FERRY <jfefe@aternatik.fr>
|
||||||
|
* Copyright (C) 2024-2025 MDW <mdeweerd@users.noreply.github.com>
|
||||||
|
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -253,25 +252,25 @@ if ($action == "view_ticketlist") {
|
|||||||
|
|
||||||
// Definition of fields for list
|
// Definition of fields for list
|
||||||
$arrayfields = array(
|
$arrayfields = array(
|
||||||
't.datec' => array('label' => $langs->trans("Date"), 'checked' => 1),
|
't.datec' => array('label' => $langs->trans("Date"), 'checked' => '1'),
|
||||||
't.date_read' => array('label' => $langs->trans("TicketReadOn"), 'checked' => 0),
|
't.date_read' => array('label' => $langs->trans("TicketReadOn"), 'checked' => '0'),
|
||||||
't.date_close' => array('label' => $langs->trans("TicketCloseOn"), 'checked' => 0),
|
't.date_close' => array('label' => $langs->trans("TicketCloseOn"), 'checked' => '0'),
|
||||||
't.ref' => array('label' => $langs->trans("Ref"), 'checked' => 1),
|
't.ref' => array('label' => $langs->trans("Ref"), 'checked' => '1'),
|
||||||
//'t.track_id' => array('label' => $langs->trans("IDTracking"), 'checked' => 0),
|
//'t.track_id' => array('label' => $langs->trans("IDTracking"), 'checked' => '0'),
|
||||||
't.fk_statut' => array('label' => $langs->trans("Status"), 'checked' => 1),
|
't.fk_statut' => array('label' => $langs->trans("Status"), 'checked' => '1'),
|
||||||
't.subject' => array('label' => $langs->trans("Subject"), 'checked' => 1),
|
't.subject' => array('label' => $langs->trans("Subject"), 'checked' => '1'),
|
||||||
'type.code' => array('label' => $langs->trans("Type"), 'checked' => 1),
|
'type.code' => array('label' => $langs->trans("Type"), 'checked' => '1'),
|
||||||
'category.code' => array('label' => $langs->trans("Category"), 'checked' => 1),
|
'category.code' => array('label' => $langs->trans("Category"), 'checked' => '1'),
|
||||||
'severity.code' => array('label' => $langs->trans("Severity"), 'checked' => 1),
|
'severity.code' => array('label' => $langs->trans("Severity"), 'checked' => '1'),
|
||||||
't.progress' => array('label' => $langs->trans("Progression"), 'checked' => 0),
|
't.progress' => array('label' => $langs->trans("Progression"), 'checked' => '0'),
|
||||||
//'t.fk_contract' => array('label' => $langs->trans("Contract"), 'checked' => 0),
|
//'t.fk_contract' => array('label' => $langs->trans("Contract"), 'checked' => '0'),
|
||||||
't.fk_user_create' => array('label' => $langs->trans("Author"), 'checked' => 1),
|
't.fk_user_create' => array('label' => $langs->trans("Author"), 'checked' => '1'),
|
||||||
't.fk_user_assign' => array('label' => $langs->trans("AssignedTo"), 'checked' => 0),
|
't.fk_user_assign' => array('label' => $langs->trans("AssignedTo"), 'checked' => '0'),
|
||||||
|
|
||||||
//'t.entity'=>array('label'=>$langs->trans("Entity"), 'checked'=>1, 'enabled'=>(isModEnabled('multicompany') && empty($conf->multicompany->transverse_mode))),
|
//'t.entity'=>array('label'=>$langs->trans("Entity"), 'checked' => '1', 'enabled'=>(isModEnabled('multicompany') && empty($conf->multicompany->transverse_mode))),
|
||||||
//'t.datec' => array('label' => $langs->trans("DateCreation"), 'checked' => 0, 'position' => 500),
|
//'t.datec' => array('label' => $langs->trans("DateCreation"), 'checked' => '0', 'position' => 500),
|
||||||
//'t.tms' => array('label' => $langs->trans("DateModificationShort"), 'checked' => 0, 'position' => 2)
|
//'t.tms' => array('label' => $langs->trans("DateModificationShort"), 'checked' => '0', 'position' => 2)
|
||||||
//'t.statut'=>array('label'=>$langs->trans("Status"), 'checked'=>1, 'position'=>1000),
|
//'t.statut'=>array('label'=>$langs->trans("Status"), 'checked' => '1', 'position'=>1000),
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!getDolGlobalString('TICKET_SHOW_PROGRESSION')) {
|
if (!getDolGlobalString('TICKET_SHOW_PROGRESSION')) {
|
||||||
@@ -284,7 +283,7 @@ if ($action == "view_ticketlist") {
|
|||||||
if ($extrafields->attributes[$object->table_element]['type'][$key] != 'separate') {
|
if ($extrafields->attributes[$object->table_element]['type'][$key] != 'separate') {
|
||||||
$enabled = abs((int) dol_eval($extrafields->attributes[$object->table_element]['list'][$key], 1, 1, '2'));
|
$enabled = abs((int) dol_eval($extrafields->attributes[$object->table_element]['list'][$key], 1, 1, '2'));
|
||||||
$enabled = (($enabled == 0 || $enabled == 3) ? 0 : $enabled);
|
$enabled = (($enabled == 0 || $enabled == 3) ? 0 : $enabled);
|
||||||
$arrayfields["ef.".$key] = array('label' => $extrafields->attributes[$object->table_element]['label'][$key], 'checked' => ($extrafields->attributes[$object->table_element]['list'][$key] < 0) ? 0 : 1, 'position' => $extrafields->attributes[$object->table_element]['pos'][$key], 'enabled' => $enabled && $extrafields->attributes[$object->table_element]['perms'][$key]);
|
$arrayfields["ef.".$key] = array('label' => $extrafields->attributes[$object->table_element]['label'][$key], 'checked' => ($extrafields->attributes[$object->table_element]['list'][$key] < 0) ? '0' : '1', 'position' => $extrafields->attributes[$object->table_element]['pos'][$key], 'enabled' => (string) (int) ($enabled && $extrafields->attributes[$object->table_element]['perms'][$key]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
/* Copyright (C) 2013-2016 Jean-François FERRY <hello@librethic.io>
|
/* Copyright (C) 2013-2016 Jean-François FERRY <hello@librethic.io>
|
||||||
* Copyright (C) 2018-2024 Frédéric France <frederic.france@free.fr>
|
* Copyright (C) 2018-2024 Frédéric France <frederic.france@free.fr>
|
||||||
* Copyright (C) 2023 Benjamin Falière <benjamin.faliere@altairis.fr>
|
* Copyright (C) 2023 Benjamin Falière <benjamin.faliere@altairis.fr>
|
||||||
|
* Copyright (C) 2025 MDW <mdeweerd@users.noreply.github.com>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -103,9 +104,9 @@ if ($cancel) {
|
|||||||
$action = 'view_ticket';
|
$action = 'view_ticket';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$display_ticket = false;
|
||||||
if (in_array($action, array("view_ticket", "presend", "close", "confirm_public_close", "add_message", "add_contact"))) { // Test on permission not required here. Done later by using the $track_id + check email in session
|
if (in_array($action, array("view_ticket", "presend", "close", "confirm_public_close", "add_message", "add_contact"))) { // Test on permission not required here. Done later by using the $track_id + check email in session
|
||||||
$error = 0;
|
$error = 0;
|
||||||
$display_ticket = false;
|
|
||||||
if (!strlen($track_id)) {
|
if (!strlen($track_id)) {
|
||||||
$error++;
|
$error++;
|
||||||
array_push($object->errors, $langs->trans("ErrorFieldRequired", $langs->transnoentities("TicketTrackId")));
|
array_push($object->errors, $langs->trans("ErrorFieldRequired", $langs->transnoentities("TicketTrackId")));
|
||||||
@@ -124,7 +125,7 @@ if (in_array($action, array("view_ticket", "presend", "close", "confirm_public_c
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!$error) {
|
if (!$error) {
|
||||||
$ret = $object->fetch('', '', $track_id);
|
$ret = $object->fetch(0, '', $track_id);
|
||||||
if ($ret && $object->dao->id > 0) {
|
if ($ret && $object->dao->id > 0) {
|
||||||
// Check if emails provided is the one of author
|
// Check if emails provided is the one of author
|
||||||
$emailofticket = CMailFile::getValidAddress($object->dao->origin_email, 2);
|
$emailofticket = CMailFile::getValidAddress($object->dao->origin_email, 2);
|
||||||
@@ -404,7 +405,7 @@ if ($action == "view_ticket" || $action == "presend" || $action == "close" || $a
|
|||||||
$baseurl = getDolGlobalString('TICKET_URL_PUBLIC_INTERFACE', DOL_URL_ROOT.'/public/ticket/');
|
$baseurl = getDolGlobalString('TICKET_URL_PUBLIC_INTERFACE', DOL_URL_ROOT.'/public/ticket/');
|
||||||
|
|
||||||
$formticket->param = array('track_id' => $object->dao->track_id, 'fk_user_create' => '-1',
|
$formticket->param = array('track_id' => $object->dao->track_id, 'fk_user_create' => '-1',
|
||||||
'returnurl' => $baseurl.'view.php'.(!empty($entity) && isModEnabled('multicompany')?'?entity='.$entity:''));
|
'returnurl' => $baseurl.'view.php'.(!empty($entity) && isModEnabled('multicompany') ? '?entity='.$entity : ''));
|
||||||
|
|
||||||
$formticket->withfile = 2;
|
$formticket->withfile = 2;
|
||||||
$formticket->withcancel = 1;
|
$formticket->withcancel = 1;
|
||||||
@@ -415,7 +416,7 @@ if ($action == "view_ticket" || $action == "presend" || $action == "close" || $a
|
|||||||
if ($action != 'presend') {
|
if ($action != 'presend') {
|
||||||
$baseurl = getDolGlobalString('TICKET_URL_PUBLIC_INTERFACE', DOL_URL_ROOT.'/public/ticket/');
|
$baseurl = getDolGlobalString('TICKET_URL_PUBLIC_INTERFACE', DOL_URL_ROOT.'/public/ticket/');
|
||||||
|
|
||||||
print '<form method="POST" id="form_view_ticket_list" name="form_view_ticket_list" action="'.$baseurl.'list.php'.(!empty($entity) && isModEnabled('multicompany')?'?entity='.$entity:'').'">';
|
print '<form method="POST" id="form_view_ticket_list" name="form_view_ticket_list" action="'.$baseurl.'list.php'.(!empty($entity) && isModEnabled('multicompany') ? '?entity='.$entity : '').'">';
|
||||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||||
print '<input type="hidden" name="action" value="view_ticketlist">';
|
print '<input type="hidden" name="action" value="view_ticketlist">';
|
||||||
print '<input type="hidden" name="track_id" value="'.$object->dao->track_id.'">';
|
print '<input type="hidden" name="track_id" value="'.$object->dao->track_id.'">';
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
/* Copyright (C) 2023-2024 Laurent Destailleur <eldy@users.sourceforge.net>
|
/* Copyright (C) 2023-2024 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2023-2024 Lionel Vessiller <lvessiller@easya.solutions>
|
* Copyright (C) 2023-2024 Lionel Vessiller <lvessiller@easya.solutions>
|
||||||
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
||||||
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
|
* Copyright (C) 2024-2025 MDW <mdeweerd@users.noreply.github.com>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -57,7 +57,7 @@ if (!function_exists('dol_getprefix')) {
|
|||||||
* @param string $mode '' (prefix for session name) or 'email' (prefix for email id)
|
* @param string $mode '' (prefix for session name) or 'email' (prefix for email id)
|
||||||
* @return string A calculated prefix
|
* @return string A calculated prefix
|
||||||
*/
|
*/
|
||||||
function dol_getprefix($mode = '')
|
function dol_getprefix($mode = '') // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
global $dolibarr_main_instance_unique_id,
|
global $dolibarr_main_instance_unique_id,
|
||||||
$dolibarr_main_cookie_cryptkey; // This is loaded by filefunc.inc.php
|
$dolibarr_main_cookie_cryptkey; // This is loaded by filefunc.inc.php
|
||||||
@@ -225,7 +225,7 @@ if (!defined('WEBPORTAL_NOLOGIN') && !empty($context->controllerInstance->access
|
|||||||
$result = $logged_user->fetch($user_id);
|
$result = $logged_user->fetch($user_id);
|
||||||
if ($result <= 0) {
|
if ($result <= 0) {
|
||||||
$error++;
|
$error++;
|
||||||
$error_msg = $langs->transnoentitiesnoconv('WebPortalErrorFetchLoggedUser', $user_id);
|
$error_msg = $langs->transnoentitiesnoconv('WebPortalErrorFetchLoggedUser', (string) $user_id);
|
||||||
dol_syslog($error_msg, LOG_ERR);
|
dol_syslog($error_msg, LOG_ERR);
|
||||||
$context->setEventMessages($error_msg, null, 'errors');
|
$context->setEventMessages($error_msg, null, 'errors');
|
||||||
}
|
}
|
||||||
@@ -237,7 +237,7 @@ if (!defined('WEBPORTAL_NOLOGIN') && !empty($context->controllerInstance->access
|
|||||||
if (!$logged_thirdparty || !($logged_thirdparty->id > 0)) {
|
if (!$logged_thirdparty || !($logged_thirdparty->id > 0)) {
|
||||||
$result = $websiteaccount->fetch_thirdparty();
|
$result = $websiteaccount->fetch_thirdparty();
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
$error_msg = $langs->transnoentitiesnoconv('WebPortalErrorFetchLoggedThirdParty', $websiteaccount->fk_soc);
|
$error_msg = $langs->transnoentitiesnoconv('WebPortalErrorFetchLoggedThirdParty', (string) $websiteaccount->fk_soc);
|
||||||
//dol_syslog("Can't load third-party (ID: ".$websiteaccount->fk_soc.") even if session logged.", LOG_ERR);
|
//dol_syslog("Can't load third-party (ID: ".$websiteaccount->fk_soc.") even if session logged.", LOG_ERR);
|
||||||
dol_syslog($error_msg, LOG_ERR);
|
dol_syslog($error_msg, LOG_ERR);
|
||||||
$context->setEventMessage($error_msg, 'errors');
|
$context->setEventMessage($error_msg, 'errors');
|
||||||
@@ -253,7 +253,7 @@ if (!defined('WEBPORTAL_NOLOGIN') && !empty($context->controllerInstance->access
|
|||||||
$result = $logged_member->fetch(0, '', $websiteaccount->thirdparty->id);
|
$result = $logged_member->fetch(0, '', $websiteaccount->thirdparty->id);
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
$error++;
|
$error++;
|
||||||
$error_msg = $langs->transnoentitiesnoconv('WebPortalErrorFetchLoggedMember', $websiteaccount->thirdparty->id);
|
$error_msg = $langs->transnoentitiesnoconv('WebPortalErrorFetchLoggedMember', (string) $websiteaccount->thirdparty->id);
|
||||||
dol_syslog($error_msg, LOG_ERR);
|
dol_syslog($error_msg, LOG_ERR);
|
||||||
$context->setEventMessage($error_msg, 'errors');
|
$context->setEventMessage($error_msg, 'errors');
|
||||||
}
|
}
|
||||||
@@ -265,7 +265,7 @@ if (!defined('WEBPORTAL_NOLOGIN') && !empty($context->controllerInstance->access
|
|||||||
$result = $logged_partnership->fetch(0, '', $logged_member->id, $websiteaccount->thirdparty->id);
|
$result = $logged_partnership->fetch(0, '', $logged_member->id, $websiteaccount->thirdparty->id);
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
$error++;
|
$error++;
|
||||||
$error_msg = $langs->transnoentitiesnoconv('WebPortalErrorFetchLoggedPartnership', $websiteaccount->thirdparty->id, $logged_member->id);
|
$error_msg = $langs->transnoentitiesnoconv('WebPortalErrorFetchLoggedPartnership', (string) $websiteaccount->thirdparty->id, (string) $logged_member->id);
|
||||||
dol_syslog($error_msg, LOG_ERR);
|
dol_syslog($error_msg, LOG_ERR);
|
||||||
$context->setEventMessage($error_msg, 'errors');
|
$context->setEventMessage($error_msg, 'errors');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2016-2017 Laurent Destailleur <eldy@users.sourceforge.net>
|
/* Copyright (C) 2016-2017 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
|
* Copyright (C) 2024-2025 MDW <mdeweerd@users.noreply.github.com>
|
||||||
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@@ -60,35 +60,39 @@ if (!defined('NOBROWSERNOTIF')) {
|
|||||||
/**
|
/**
|
||||||
* Header empty
|
* Header empty
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @param string $head Optional head lines
|
* @param string $head Optional head lines
|
||||||
* @param string $title HTML title
|
* @param string $title HTML title
|
||||||
* @param string $help_url Url links to help page
|
* @param string $help_url Url links to help page
|
||||||
* Syntax is: For a wiki page: EN:EnglishPage|FR:FrenchPage|ES:SpanishPage|DE:GermanPage
|
* Syntax is: For a wiki page: EN:EnglishPage|FR:FrenchPage|ES:SpanishPage|DE:GermanPage
|
||||||
* For other external page: http://server/url
|
* For other external page: http://server/url
|
||||||
* @param string $target Target to use on links
|
* @param string $target Target to use on links
|
||||||
* @param int $disablejs More content into html header
|
* @param int<0,1> $disablejs More content into html header
|
||||||
* @param int $disablehead More content into html header
|
* @param int<0,1> $disablehead More content into html header
|
||||||
* @param string[]|string $arrayofjs Array of complementary js files
|
* @param string[]|string $arrayofjs Array of complementary js files
|
||||||
* @param string[]|string $arrayofcss Array of complementary css files
|
* @param string[]|string $arrayofcss Array of complementary css files
|
||||||
* @param string $morequerystring Query string to add to the link "print" to get same parameters (use only if autodetect fails)
|
* @param string $morequerystring Query string to add to the link "print" to get same parameters (use only if autodetect fails)
|
||||||
* @param string $morecssonbody More CSS on body tag. For example 'classforhorizontalscrolloftabs'.
|
* @param string $morecssonbody More CSS on body tag. For example 'classforhorizontalscrolloftabs'.
|
||||||
* @param string $replacemainareaby Replace call to main_area() by a print of this string
|
* @param string $replacemainareaby Replace call to main_area() by a print of this string
|
||||||
* @param int $disablenofollow Disable the "nofollow" on meta robot header
|
* @param int<0,1> $disablenofollow Disable the "nofollow" on meta robot header
|
||||||
* @param int $disablenoindex Disable the "noindex" on meta robot header
|
* @param int<0,1> $disablenoindex Disable the "noindex" on meta robot header
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxHeader($head = '', $title = '', $help_url = '', $target = '', $disablejs = 0, $disablehead = 0, $arrayofjs = '', $arrayofcss = '', $morequerystring = '', $morecssonbody = '', $replacemainareaby = '', $disablenofollow = 0, $disablenoindex = 0)
|
function llxHeader($head = '', $title = '', $help_url = '', $target = '', $disablejs = 0, $disablehead = 0, $arrayofjs = '', $arrayofcss = '', $morequerystring = '', $morecssonbody = '', $replacemainareaby = '', $disablenofollow = 0, $disablenoindex = 0) // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Footer empty
|
* Footer empty
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @param string $comment A text to add as HTML comment into HTML generated page
|
* @param string $comment A text to add as HTML comment into HTML generated page
|
||||||
* @param string $zone 'private' (for private pages) or 'public' (for public pages)
|
* @param 'private'|'public' $zone 'private' (for private pages) or 'public' (for public pages)
|
||||||
* @param int $disabledoutputofmessages Clear all messages stored into session without displaying them
|
* @param int<0,1> $disabledoutputofmessages Clear all messages stored into session without displaying them
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxFooter($comment = '', $zone = 'private', $disabledoutputofmessages = 0)
|
function llxFooter($comment = '', $zone = 'private', $disabledoutputofmessages = 0) // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -131,13 +135,13 @@ if (empty($pageid)) {
|
|||||||
|
|
||||||
if ($pageref) {
|
if ($pageref) {
|
||||||
// @phan-suppress-next-line PhanPluginSuspiciousParamPosition
|
// @phan-suppress-next-line PhanPluginSuspiciousParamPosition
|
||||||
$result = $objectpage->fetch(0, $object->id, $pageref);
|
$result = $objectpage->fetch(0, (string) $object->id, $pageref);
|
||||||
if ($result > 0) {
|
if ($result > 0) {
|
||||||
$pageid = $objectpage->id;
|
$pageid = $objectpage->id;
|
||||||
} elseif ($result == 0) {
|
} elseif ($result == 0) {
|
||||||
// Page not found from ref=pageurl, we try using alternative alias
|
// Page not found from ref=pageurl, we try using alternative alias
|
||||||
// @phan-suppress-next-line PhanPluginSuspiciousParamPosition
|
// @phan-suppress-next-line PhanPluginSuspiciousParamPosition
|
||||||
$result = $objectpage->fetch(0, $object->id, null, $pageref);
|
$result = $objectpage->fetch(0, (string) $object->id, null, $pageref);
|
||||||
if ($result > 0) {
|
if ($result > 0) {
|
||||||
$pageid = $objectpage->id;
|
$pageid = $objectpage->id;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2016-2023 Laurent Destailleur <eldy@users.sourceforge.net>
|
/* Copyright (C) 2016-2023 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
|
* Copyright (C) 2024-2025 MDW <mdeweerd@users.noreply.github.com>
|
||||||
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@@ -51,35 +51,39 @@ if (!defined('NOBROWSERNOTIF')) {
|
|||||||
/**
|
/**
|
||||||
* Header empty
|
* Header empty
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @param string $head Optional head lines
|
* @param string $head Optional head lines
|
||||||
* @param string $title HTML title
|
* @param string $title HTML title
|
||||||
* @param string $help_url Url links to help page
|
* @param string $help_url Url links to help page
|
||||||
* Syntax is: For a wiki page: EN:EnglishPage|FR:FrenchPage|ES:SpanishPage|DE:GermanPage
|
* Syntax is: For a wiki page: EN:EnglishPage|FR:FrenchPage|ES:SpanishPage|DE:GermanPage
|
||||||
* For other external page: http://server/url
|
* For other external page: http://server/url
|
||||||
* @param string $target Target to use on links
|
* @param string $target Target to use on links
|
||||||
* @param int $disablejs More content into html header
|
* @param int<0,1> $disablejs More content into html header
|
||||||
* @param int $disablehead More content into html header
|
* @param int<0,1> $disablehead More content into html header
|
||||||
* @param string[]|string $arrayofjs Array of complementary js files
|
* @param string[]|string $arrayofjs Array of complementary js files
|
||||||
* @param string[]|string $arrayofcss Array of complementary css files
|
* @param string[]|string $arrayofcss Array of complementary css files
|
||||||
* @param string $morequerystring Query string to add to the link "print" to get same parameters (use only if autodetect fails)
|
* @param string $morequerystring Query string to add to the link "print" to get same parameters (use only if autodetect fails)
|
||||||
* @param string $morecssonbody More CSS on body tag. For example 'classforhorizontalscrolloftabs'.
|
* @param string $morecssonbody More CSS on body tag. For example 'classforhorizontalscrolloftabs'.
|
||||||
* @param string $replacemainareaby Replace call to main_area() by a print of this string
|
* @param string $replacemainareaby Replace call to main_area() by a print of this string
|
||||||
* @param int $disablenofollow Disable the "nofollow" on meta robot header
|
* @param int<0,1> $disablenofollow Disable the "nofollow" on meta robot header
|
||||||
* @param int $disablenoindex Disable the "noindex" on meta robot header
|
* @param int<0,1> $disablenoindex Disable the "noindex" on meta robot header
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxHeader($head = '', $title = '', $help_url = '', $target = '', $disablejs = 0, $disablehead = 0, $arrayofjs = '', $arrayofcss = '', $morequerystring = '', $morecssonbody = '', $replacemainareaby = '', $disablenofollow = 0, $disablenoindex = 0)
|
function llxHeader($head = '', $title = '', $help_url = '', $target = '', $disablejs = 0, $disablehead = 0, $arrayofjs = '', $arrayofcss = '', $morequerystring = '', $morecssonbody = '', $replacemainareaby = '', $disablenofollow = 0, $disablenoindex = 0) // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Footer empty
|
* Footer empty
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @param string $comment A text to add as HTML comment into HTML generated page
|
* @param string $comment A text to add as HTML comment into HTML generated page
|
||||||
* @param string $zone 'private' (for private pages) or 'public' (for public pages)
|
* @param 'private'|'public' $zone 'private' (for private pages) or 'public' (for public pages)
|
||||||
* @param int $disabledoutputofmessages Clear all messages stored into session without displaying them
|
* @param int<0,1> $disabledoutputofmessages Clear all messages stored into session without displaying them
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxFooter($comment = '', $zone = 'private', $disabledoutputofmessages = 0)
|
function llxFooter($comment = '', $zone = 'private', $disabledoutputofmessages = 0) // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2016-2017 Laurent Destailleur <eldy@users.sourceforge.net>
|
/* Copyright (C) 2016-2017 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
|
* Copyright (C) 2024-2025 MDW <mdeweerd@users.noreply.github.com>
|
||||||
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@@ -51,35 +51,39 @@ if (!defined('NOBROWSERNOTIF')) {
|
|||||||
/**
|
/**
|
||||||
* Header empty
|
* Header empty
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @param string $head Optional head lines
|
* @param string $head Optional head lines
|
||||||
* @param string $title HTML title
|
* @param string $title HTML title
|
||||||
* @param string $help_url Url links to help page
|
* @param string $help_url Url links to help page
|
||||||
* Syntax is: For a wiki page: EN:EnglishPage|FR:FrenchPage|ES:SpanishPage|DE:GermanPage
|
* Syntax is: For a wiki page: EN:EnglishPage|FR:FrenchPage|ES:SpanishPage|DE:GermanPage
|
||||||
* For other external page: http://server/url
|
* For other external page: http://server/url
|
||||||
* @param string $target Target to use on links
|
* @param string $target Target to use on links
|
||||||
* @param int $disablejs More content into html header
|
* @param int<0,1> $disablejs More content into html header
|
||||||
* @param int $disablehead More content into html header
|
* @param int<0,1> $disablehead More content into html header
|
||||||
* @param string[]|string $arrayofjs Array of complementary js files
|
* @param string[]|string $arrayofjs Array of complementary js files
|
||||||
* @param string[]|string $arrayofcss Array of complementary css files
|
* @param string[]|string $arrayofcss Array of complementary css files
|
||||||
* @param string $morequerystring Query string to add to the link "print" to get same parameters (use only if autodetect fails)
|
* @param string $morequerystring Query string to add to the link "print" to get same parameters (use only if autodetect fails)
|
||||||
* @param string $morecssonbody More CSS on body tag. For example 'classforhorizontalscrolloftabs'.
|
* @param string $morecssonbody More CSS on body tag. For example 'classforhorizontalscrolloftabs'.
|
||||||
* @param string $replacemainareaby Replace call to main_area() by a print of this string
|
* @param string $replacemainareaby Replace call to main_area() by a print of this string
|
||||||
* @param int $disablenofollow Disable the "nofollow" on meta robot header
|
* @param int<0,1> $disablenofollow Disable the "nofollow" on meta robot header
|
||||||
* @param int $disablenoindex Disable the "noindex" on meta robot header
|
* @param int<0,1> $disablenoindex Disable the "noindex" on meta robot header
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxHeader($head = '', $title = '', $help_url = '', $target = '', $disablejs = 0, $disablehead = 0, $arrayofjs = '', $arrayofcss = '', $morequerystring = '', $morecssonbody = '', $replacemainareaby = '', $disablenofollow = 0, $disablenoindex = 0)
|
function llxHeader($head = '', $title = '', $help_url = '', $target = '', $disablejs = 0, $disablehead = 0, $arrayofjs = '', $arrayofcss = '', $morequerystring = '', $morecssonbody = '', $replacemainareaby = '', $disablenofollow = 0, $disablenoindex = 0) // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Footer empty
|
* Footer empty
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @param string $comment A text to add as HTML comment into HTML generated page
|
* @param string $comment A text to add as HTML comment into HTML generated page
|
||||||
* @param string $zone 'private' (for private pages) or 'public' (for public pages)
|
* @param 'private'|'public' $zone 'private' (for private pages) or 'public' (for public pages)
|
||||||
* @param int $disabledoutputofmessages Clear all messages stored into session without displaying them
|
* @param int<0,1> $disabledoutputofmessages Clear all messages stored into session without displaying them
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxFooter($comment = '', $zone = 'private', $disabledoutputofmessages = 0)
|
function llxFooter($comment = '', $zone = 'private', $disabledoutputofmessages = 0) // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
|
|||||||
* @var User $user
|
* @var User $user
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$langs->loadLangs(array("admin", "companies", "other"));
|
$langs->loadLangs(array("admin", "accountancy", "companies", "other"));
|
||||||
|
|
||||||
$action = GETPOST('action', 'aZ09');
|
$action = GETPOST('action', 'aZ09');
|
||||||
$value = GETPOST('value', 'alpha');
|
$value = GETPOST('value', 'alpha');
|
||||||
@@ -329,9 +329,11 @@ if ($action == 'setprofidmandatory') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Activate ProfId invoice mandatory
|
//Activate ProfId invoice mandatory
|
||||||
if ($action == 'setprofidinvoicemandatory') {
|
if ($action == 'setprofidinvoicemandatory' || $action == 'setprofidinvoicemandatoryeeconly') {
|
||||||
$status = GETPOST('status', 'alpha');
|
$status = GETPOST('status', 'alpha');
|
||||||
|
if ($status == '1' && $action == 'setprofidinvoicemandatoryeeconly') {
|
||||||
|
$status = 'eeconly';
|
||||||
|
}
|
||||||
$idprof = "SOCIETE_".$value."_INVOICE_MANDATORY";
|
$idprof = "SOCIETE_".$value."_INVOICE_MANDATORY";
|
||||||
$result = dolibarr_set_const($db, $idprof, $status, 'chaine', 0, '', $conf->entity);
|
$result = dolibarr_set_const($db, $idprof, $status, 'chaine', 0, '', $conf->entity);
|
||||||
if ($result <= 0) {
|
if ($result <= 0) {
|
||||||
@@ -777,31 +779,52 @@ print '<td colspan="2">'.$langs->trans('VATIntra')."</td>\n";
|
|||||||
$key = 'VAT_INTRA';
|
$key = 'VAT_INTRA';
|
||||||
if (getDolGlobalString('SOCIETE_VAT_INTRA_UNIQUE')) {
|
if (getDolGlobalString('SOCIETE_VAT_INTRA_UNIQUE')) {
|
||||||
print '<td class="center"><a class="reposition" href="'.$_SERVER['PHP_SELF'].'?action=setprofid&token='.newToken().'&value='.$key.'&status=0">';
|
print '<td class="center"><a class="reposition" href="'.$_SERVER['PHP_SELF'].'?action=setprofid&token='.newToken().'&value='.$key.'&status=0">';
|
||||||
print img_picto($langs->trans("Activated"), 'switch_on');
|
print img_picto($langs->trans("Activated"), 'switch_on', 'class="valignmiddle"');
|
||||||
print '</a></td>';
|
print '</a></td>';
|
||||||
} else {
|
} else {
|
||||||
print '<td class="center"><a class="reposition" href="'.$_SERVER['PHP_SELF'].'?action=setprofid&token='.newToken().'&value='.$key.'&status=1">';
|
print '<td class="center"><a class="reposition" href="'.$_SERVER['PHP_SELF'].'?action=setprofid&token='.newToken().'&value='.$key.'&status=1">';
|
||||||
print img_picto($langs->trans("Disabled"), 'switch_off');
|
print img_picto($langs->trans("Disabled"), 'switch_off', 'class="valignmiddle"');
|
||||||
print '</a></td>';
|
print '</a></td>';
|
||||||
}
|
}
|
||||||
if (getDolGlobalString('SOCIETE_VAT_INTRA_MANDATORY')) {
|
if (getDolGlobalString('SOCIETE_VAT_INTRA_MANDATORY')) {
|
||||||
print '<td class="center"><a class="reposition" href="'.$_SERVER['PHP_SELF'].'?action=setprofidmandatory&token='.newToken().'&value='.$key.'&status=0">';
|
print '<td class="center"><a class="reposition" href="'.$_SERVER['PHP_SELF'].'?action=setprofidmandatory&token='.newToken().'&value='.$key.'&status=0">';
|
||||||
print img_picto($langs->trans("Activated"), 'switch_on');
|
print img_picto($langs->trans("Activated"), 'switch_on', 'class="valignmiddle"');
|
||||||
print '</a></td>';
|
print '</a></td>';
|
||||||
} else {
|
} else {
|
||||||
print '<td class="center"><a class="reposition" href="'.$_SERVER['PHP_SELF'].'?action=setprofidmandatory&token='.newToken().'&value='.$key.'&status=1">';
|
print '<td class="center"><a class="reposition" href="'.$_SERVER['PHP_SELF'].'?action=setprofidmandatory&token='.newToken().'&value='.$key.'&status=1">';
|
||||||
print img_picto($langs->trans("Disabled"), 'switch_off');
|
print img_picto($langs->trans("Disabled"), 'switch_off', 'class="valignmiddle"');
|
||||||
print '</a></td>';
|
print '</a></td>';
|
||||||
}
|
}
|
||||||
if (getDolGlobalString('SOCIETE_VAT_INTRA_INVOICE_MANDATORY')) {
|
print '<td class="center">';
|
||||||
print '<td class="center"><a class="reposition" href="'.$_SERVER['PHP_SELF'].'?action=setprofidinvoicemandatory&token='.newToken().'&value='.$key.'&status=0">';
|
if (getDolGlobalString('SOCIETE_VAT_INTRA_INVOICE_MANDATORY') == 'eeconly') {
|
||||||
print img_picto($langs->trans("Activated"), 'switch_on');
|
print '<a class="reposition" href="'.$_SERVER['PHP_SELF'].'?action=setprofidinvoicemandatoryeeconly&token='.newToken().'&value='.$key.'&status=0">';
|
||||||
print '</a></td>';
|
print img_picto($langs->trans("Activated"), 'switch_on', 'class="valignmiddle paddingrightonly"');
|
||||||
|
print '</a>';
|
||||||
|
print $langs->trans("SaleEEC").'<br>';
|
||||||
|
print '<a class="reposition" href="'.$_SERVER['PHP_SELF'].'?action=setprofidinvoicemandatory&token='.newToken().'&value='.$key.'&status=1">';
|
||||||
|
print img_picto($langs->trans("Activated"), 'switch_off', 'class="valignmiddle paddingrightonly"');
|
||||||
|
print '</a>';
|
||||||
|
print $langs->trans("AnySale");
|
||||||
|
} elseif (getDolGlobalString('SOCIETE_VAT_INTRA_INVOICE_MANDATORY')) {
|
||||||
|
print '<a class="reposition" href="'.$_SERVER['PHP_SELF'].'?action=setprofidinvoicemandatoryeeconly&token='.newToken().'&value='.$key.'&status=1">';
|
||||||
|
print img_picto($langs->trans("Activated"), 'switch_off', 'class="valignmiddle paddingrightonly"');
|
||||||
|
print '</a>';
|
||||||
|
print $langs->trans("SaleEEC").'<br>';
|
||||||
|
print '<a class="reposition" href="'.$_SERVER['PHP_SELF'].'?action=setprofidinvoicemandatory&token='.newToken().'&value='.$key.'&status=0">';
|
||||||
|
print img_picto($langs->trans("Activated"), 'switch_on', 'class="valignmiddle paddingrightonly"');
|
||||||
|
print '</a>';
|
||||||
|
print $langs->trans("AnySale");
|
||||||
} else {
|
} else {
|
||||||
print '<td class="center"><a class="reposition" href="'.$_SERVER['PHP_SELF'].'?action=setprofidinvoicemandatory&token='.newToken().'&value='.$key.'&status=1">';
|
print '<a class="reposition" href="'.$_SERVER['PHP_SELF'].'?action=setprofidinvoicemandatoryeeconly&token='.newToken().'&value='.$key.'&status=1">';
|
||||||
print img_picto($langs->trans("Disabled"), 'switch_off');
|
print img_picto($langs->trans("Disabled"), 'switch_off', 'class="valignmiddle paddingrightonly"');
|
||||||
print '</a></td>';
|
print '</a>';
|
||||||
|
print $langs->trans("SaleEEC").'<br>';
|
||||||
|
print '<a class="reposition" href="'.$_SERVER['PHP_SELF'].'?action=setprofidinvoicemandatory&token='.newToken().'&value='.$key.'&status=1">';
|
||||||
|
print img_picto($langs->trans("Disabled"), 'switch_off', 'class="valignmiddle paddingrightonly"');
|
||||||
|
print '</a>';
|
||||||
|
print $langs->trans("AnySale");
|
||||||
}
|
}
|
||||||
|
print '</td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
print "</table>\n";
|
print "</table>\n";
|
||||||
|
|||||||
@@ -2650,7 +2650,7 @@ class User extends CommonObject
|
|||||||
public function send_password($user, $password = '', $changelater = 0)
|
public function send_password($user, $password = '', $changelater = 0)
|
||||||
{
|
{
|
||||||
// phpcs:enable
|
// phpcs:enable
|
||||||
global $conf, $langs, $mysoc;
|
global $conf, $langs;
|
||||||
global $dolibarr_main_url_root;
|
global $dolibarr_main_url_root;
|
||||||
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php';
|
||||||
@@ -2663,12 +2663,12 @@ class User extends CommonObject
|
|||||||
$outputlangs = new Translate("", $conf);
|
$outputlangs = new Translate("", $conf);
|
||||||
|
|
||||||
if (isset($this->conf->MAIN_LANG_DEFAULT)
|
if (isset($this->conf->MAIN_LANG_DEFAULT)
|
||||||
&& $this->conf->MAIN_LANG_DEFAULT != 'auto') { // If user has defined its own language (rare because in most cases, auto is used)
|
&& getDolGlobalString('MAIN_LANG_DEFAULT') != 'auto') { // If user has defined its own language (rare because in most cases, auto is used)
|
||||||
$outputlangs->getDefaultLang($this->conf->MAIN_LANG_DEFAULT);
|
$outputlangs->getDefaultLang(getDolGlobalString('MAIN_LANG_DEFAULT'));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->conf->MAIN_LANG_DEFAULT) {
|
if (getDolGlobalString('MAIN_LANG_DEFAULT')) {
|
||||||
$outputlangs->setDefaultLang($this->conf->MAIN_LANG_DEFAULT);
|
$outputlangs->setDefaultLang(getDolGlobalString('MAIN_LANG_DEFAULT'));
|
||||||
} else { // If user has not defined its own language, we used current language
|
} else { // If user has not defined its own language, we used current language
|
||||||
$outputlangs = $langs;
|
$outputlangs = $langs;
|
||||||
}
|
}
|
||||||
@@ -2729,7 +2729,7 @@ class User extends CommonObject
|
|||||||
$mailfile = new CMailFile(
|
$mailfile = new CMailFile(
|
||||||
$subject,
|
$subject,
|
||||||
$this->email,
|
$this->email,
|
||||||
$conf->global->MAIN_MAIL_EMAIL_FROM,
|
getDolGlobalString("MAIN_MAIL_EMAIL_FROM_PASSWORDRESET", getDolGlobalString("MAIN_MAIL_EMAIL_FROM")),
|
||||||
$mesg,
|
$mesg,
|
||||||
array(),
|
array(),
|
||||||
array(),
|
array(),
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
* Copyright (C) 2005-2016 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2005-2016 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2005-2016 Regis Houssin <regis.houssin@inodbox.com>
|
* Copyright (C) 2005-2016 Regis Houssin <regis.houssin@inodbox.com>
|
||||||
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
|
||||||
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
|
* Copyright (C) 2024-2025 MDW <mdeweerd@users.noreply.github.com>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -114,6 +114,8 @@ if (is_numeric($entity)) {
|
|||||||
/**
|
/**
|
||||||
* Header empty
|
* Header empty
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @param string $head Optional head lines
|
* @param string $head Optional head lines
|
||||||
* @param string $title HTML title
|
* @param string $title HTML title
|
||||||
* @param string $help_url Url links to help page
|
* @param string $help_url Url links to help page
|
||||||
@@ -131,18 +133,20 @@ if (is_numeric($entity)) {
|
|||||||
* @param int $disablenoindex Disable the "noindex" on meta robot header
|
* @param int $disablenoindex Disable the "noindex" on meta robot header
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxHeader($head = '', $title = '', $help_url = '', $target = '', $disablejs = 0, $disablehead = 0, $arrayofjs = '', $arrayofcss = '', $morequerystring = '', $morecssonbody = '', $replacemainareaby = '', $disablenofollow = 0, $disablenoindex = 0)
|
function llxHeader($head = '', $title = '', $help_url = '', $target = '', $disablejs = 0, $disablehead = 0, $arrayofjs = '', $arrayofcss = '', $morequerystring = '', $morecssonbody = '', $replacemainareaby = '', $disablenofollow = 0, $disablenoindex = 0) // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Footer empty
|
* Footer empty
|
||||||
*
|
*
|
||||||
|
* Note: also called by functions.lib:recordNotFound
|
||||||
|
*
|
||||||
* @param string $comment A text to add as HTML comment into HTML generated page
|
* @param string $comment A text to add as HTML comment into HTML generated page
|
||||||
* @param string $zone 'private' (for private pages) or 'public' (for public pages)
|
* @param string $zone 'private' (for private pages) or 'public' (for public pages)
|
||||||
* @param int $disabledoutputofmessages Clear all messages stored into session without displaying them
|
* @param int $disabledoutputofmessages Clear all messages stored into session without displaying them
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function llxFooter($comment = '', $zone = 'private', $disabledoutputofmessages = 0)
|
function llxFooter($comment = '', $zone = 'private', $disabledoutputofmessages = 0) // @phan-suppress-current-line PhanRedefineFunction
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -166,7 +166,7 @@ class WebPortalOrder extends Commande
|
|||||||
*/
|
*/
|
||||||
public function getTooltipContentArray($params)
|
public function getTooltipContentArray($params)
|
||||||
{
|
{
|
||||||
global $conf, $langs;
|
global $langs;
|
||||||
|
|
||||||
$datas = [];
|
$datas = [];
|
||||||
|
|
||||||
@@ -174,9 +174,8 @@ class WebPortalOrder extends Commande
|
|||||||
return ['optimize' => $langs->trans("WebPortalOrder")];
|
return ['optimize' => $langs->trans("WebPortalOrder")];
|
||||||
}
|
}
|
||||||
$datas['picto'] = img_picto('', $this->picto) . ' <u>' . $langs->trans("WebPortalOrder") . '</u>';
|
$datas['picto'] = img_picto('', $this->picto) . ' <u>' . $langs->trans("WebPortalOrder") . '</u>';
|
||||||
if (isset($this->status)) {
|
|
||||||
$datas['picto'] .= ' ' . $this->getLibStatut(5);
|
$datas['picto'] .= ' ' . $this->getLibStatut(5);
|
||||||
}
|
|
||||||
$datas['ref'] .= '<br><b>' . $langs->trans('Ref') . ':</b> ' . $this->ref;
|
$datas['ref'] .= '<br><b>' . $langs->trans('Ref') . ':</b> ' . $this->ref;
|
||||||
|
|
||||||
return $datas;
|
return $datas;
|
||||||
|
|||||||
Reference in New Issue
Block a user