Setup Other: Difference between revisions

Jump to navigation Jump to search
m
no edit summary
Tag: 2017 source edit
mNo edit summary
Line 227: Line 227:
=Security Options=
=Security Options=


*MAIN_SECURITY_ANTI_SSRF_SERVER_IP ► Can set a complete list of IPs of server.
*'''MAIN_SECURITY_ANTI_SSRF_SERVER_IP''' ► Can set a complete list of IPs of server.


*MAIN_SECURITY_CSRF_WITH_TOKEN ► Activate a second anti-CSRF protection on POST (so a POST from another web site can't be done). Note there is already a default protection using test on referrer. This second protection uses TOKEN on forms and is more powerful. ► (v5.0+)
*'''MAIN_SECURITY_CSRF_WITH_TOKEN''' ► Activate a second anti-CSRF protection on POST (so a POST from another web site can't be done). Note there is already a default protection using test on referrer. This second protection uses TOKEN on forms and is more powerful. ► (v5.0+)


*MAIN_MODULES_FOR_EXTERNAL ► Limit available modules for external users. By default value is '<code>facture,commande,contact,propal,projet,contrat,societe,ficheinter,expedition,agenda</code>'
*'''MAIN_MODULES_FOR_EXTERNAL''' ► Limit available modules for external users. By default value is '<code>facture,commande,contact,propal,projet,contrat,societe,ficheinter,expedition,agenda</code>'


*MAIN_ALLOW_SVG_FILES_AS_IMAGES ► Allow to use SVG file as image files. Warning: This may introduce security vulnerability (javascript can be embedded into SVG file).
*'''MAIN_ALLOW_SVG_FILES_AS_IMAGES''' ► Allow to use SVG file as image files. Warning: This may introduce security vulnerability (javascript can be embedded into SVG file).


*MAIN_RESTRICTHTML_ONLY_VALID_HTML ► Refused parameter if value is not a valid HTML content.
*'''MAIN_RESTRICTHTML_ONLY_VALID_HTML''' ► Refused parameter if value is not a valid HTML content.


*MAIN_RESTRICTHTML_REMOVE_ALSO_BAD_ATTRIBUTES ► Sanitize also non standard attributes on HTML content.
*'''MAIN_RESTRICTHTML_REMOVE_ALSO_BAD_ATTRIBUTES''' ► Sanitize also non standard attributes on HTML content.
*MAIN_SECURITY_SALT ► A salt string to base the hashing on. 8 strings length recommended.
*'''MAIN_SECURITY_SALT''' ► A salt string to base the hashing on. 8 strings length recommended.




Line 245: Line 245:
=Adherent Module=
=Adherent Module=


*MEMBER_NEWFORM_FORCEMORPHY ► Force nature of member set to "phy" for physical or to "mor" for moral ► (v12.0)
*'''MEMBER_NEWFORM_FORCEMORPHY''' ► Force nature of member set to "phy" for physical or to "mor" for moral ► (v12.0)
*MEMBER_ALLOW_CHANGE_OF_TYPE ► Member can edit their type on public subscription page ► (v13.0)
*'''MEMBER_ALLOW_CHANGE_OF_TYPE''' ► Member can edit their type on public subscription page ► (v13.0)
*ADHERENT_DEFAULT_CREATE_THIRDPARTY ► Thirdparty is created when creating a new member ► (v13.0)
*'''ADHERENT_DEFAULT_CREATE_THIRDPARTY''' ► Thirdparty is created when creating a new member ► (v13.0)




Line 254: Line 254:
=Accountancy Module=
=Accountancy Module=


*ACCOUNTANCY_COMBO_FOR_AUX ► Add graphic option for ACCOUNTANCY_COMBO_FOR_AUX. Having this option on may slow down and even freeze the accounting features if you have a very large number of thirdparties ► (v10.0)
*'''ACCOUNTANCY_COMBO_FOR_AUX''' ► Add graphic option for ACCOUNTANCY_COMBO_FOR_AUX. Having this option on may slow down and even freeze the accounting features if you have a very large number of thirdparties ► (v10.0)
*ACCOUNTING_DEFAULT_NOT_NOTIFIED_VALIDATION_DATE ► Avoid validating the lines with the accountancy export.(1= box unchecked by default / 0 = box checked by default) ► (v14.0)
*'''ACCOUNTING_DEFAULT_NOT_NOTIFIED_VALIDATION_DATE''' ► Avoid validating the lines with the accountancy export.(1= box unchecked by default / 0 = box checked by default) ► (v14.0)
*ACCOUNTING_DEFAULT_NOT_NOTIFIED_EXPORT_DATE ► Avoid flaging the lines as exported with the accountancy export.(1= box unchecked by default / 0 = box checked by default) ► (v14.0)
*'''ACCOUNTING_DEFAULT_NOT_NOTIFIED_EXPORT_DATE''' ► Avoid flaging the lines as exported with the accountancy export.(1= box unchecked by default / 0 = box checked by default) ► (v14.0)




Line 263: Line 263:
=Agenda Module=
=Agenda Module=


*AGENDA_ALL_CALENDARS ► Change the default view of calendar pages to see all the Agenda's (instead or yours only be default)
*'''AGENDA_ALL_CALENDARS''' ► Change the default view of calendar pages to see all the Agenda's (instead or yours only be default)


*AGENDA_AUTOSET_END_DATE_WITH_DELTA_HOURS ► To automatically set end date of event to start date + delta on event creation page.
*'''AGENDA_AUTOSET_END_DATE_WITH_DELTA_HOURS''' ► To automatically set end date of event to start date + delta on event creation page.


*AGENDA_DISABLE_LOCATION ► Disable location field in action card  ► (>=v5.0)
*'''AGENDA_DISABLE_LOCATION''' ► Disable location field in action card  ► (>=v5.0)


*AGENDA_MAX_EVENTS_DAY_VIEW ► Define the maximum number of visible entries for each day in agenda. Default value is 3. Value 0 means no limit.
*'''AGENDA_MAX_EVENTS_DAY_VIEW''' ► Define the maximum number of visible entries for each day in agenda. Default value is 3. Value 0 means no limit.


*AGENDA_USE_EVENT_TYPE ► Add a mandatory field "Type" when creating an event ('''''deprecated''''').
*'''AGENDA_USE_EVENT_TYPE''' ► Add a mandatory field "Type" when creating an event ('''''deprecated''''').


*MAIN_ADD_EVENT_ON_ELEMENT_CARD ► Allow to create an event from a document (proposal, order, invoice)
*'''MAIN_ADD_EVENT_ON_ELEMENT_CARD''' ► Allow to create an event from a document (proposal, order, invoice)


*AGENDA_SUPPORT_PRIORITY_IN_EVENTS ► Allow to have priorities in events ► (>=v13.0)
*'''AGENDA_SUPPORT_PRIORITY_IN_EVENTS''' ► Allow to have priorities in events ► (>=v13.0)


*AGENDA_ADDACTIONFORPHONE ► Allow you to create a event from phone number ► (=<v12.0) - Need to be fix for (=>v12.0) https://github.com/Dolibarr/dolibarr/issues/22720
*'''AGENDA_ADDACTIONFORPHONE''' ► Allow you to create a event from phone number ► (=<v12.0) - Need to be fix for (=>v12.0) https://github.com/Dolibarr/dolibarr/issues/22720


*AGENDA_ADDACTIONFOREMAIL ► Allow you to create a event from Email ► (=<v12.0) - Need to be fix for (=>v12.0) https://github.com/Dolibarr/dolibarr/issues/22720
*'''AGENDA_ADDACTIONFOREMAIL''' ► Allow you to create a event from Email ► (=<v12.0) - Need to be fix for (=>v12.0) https://github.com/Dolibarr/dolibarr/issues/22720




Line 285: Line 285:
=Bank Module=
=Bank Module=


*BANK_CAN_RECONCILIATE_CASHACCOUNT ► Can reconciliate cash accounts ► (v3.8)
*'''BANK_CAN_RECONCILIATE_CASHACCOUNT''' ► Can reconciliate cash accounts ► (v3.8)


*BANK_DISABLE_CHECK_DEPOSIT ► Disable check deposit feature
*'''BANK_DISABLE_CHECK_DEPOSIT''' ► Disable check deposit feature


*BANK_ASK_PAYMENT_BANK_DURING_ORDER ► Ask bank account during creation of an order
*'''BANK_ASK_PAYMENT_BANK_DURING_ORDER''' ► Ask bank account during creation of an order


*BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL ► Ask bank account during creation of a proposal
*'''BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL''' ► Ask bank account during creation of a proposal


*BANK_USE_OLD_VARIOUS_PAYMENT ► To allow to enter miscellaneous payments (not covered by other modules) using old method. '''''Deprecated'''''. Entering various payment is preferred ► (<=v12.0).
*'''BANK_USE_OLD_VARIOUS_PAYMENT''' ► To allow to enter miscellaneous payments (not covered by other modules) using old method. '''''Deprecated'''''. Entering various payment is preferred ► (<=v12.0).
*MAIN_IBAN_IS_NEVER_MANDATORY ► IBAN and BIC informations not mandatory. (V15)
*'''MAIN_IBAN_IS_NEVER_MANDATORY''' ► IBAN and BIC informations not mandatory. (V15)


[[#Top|(back to top)]]
[[#Top|(back to top)]]
Line 302: Line 302:
=BOM and MO Module=
=BOM and MO Module=


*ALLOW_USE_KITS_INTO_BOM_AND_MO
*'''ALLOW_USE_KITS_INTO_BOM_AND_MO'''
*BOM_SUB_BOM ►Allow to add a BOM in another BOM►(v16.0)
*'''BOM_SUB_BOM''' ►Allow to add a BOM in another BOM►(v16.0)


[[#Top|(back to top)]]
[[#Top|(back to top)]]
Line 311: Line 311:
=Bookmarks Module=
=Bookmarks Module=


*BOOKMARKS_SHOW_IN_MENU ► Numbers of bookmark entries to be displayed (10 by default)
*'''BOOKMARKS_SHOW_IN_MENU''' ► Numbers of bookmark entries to be displayed (10 by default)


[[#Top|(back to top)]]
[[#Top|(back to top)]]
Line 319: Line 319:
=Inalterable Log Module=
=Inalterable Log Module=


*BLOCKEDLOG_ADD_ACTIONS_SUPPORTED ► Can complete list of triggered action that are logged
*'''BLOCKEDLOG_ADD_ACTIONS_SUPPORTED''' ► Can complete list of triggered action that are logged


[[#Top|(back to top)]]
[[#Top|(back to top)]]
Line 327: Line 327:
=Category-Tags Module=
=Category-Tags Module=


*CATEGORY_SHOW_COUNTS ► Shows nb of object by tags in tag tree
*'''CATEGORY_SHOW_COUNTS''' ► Shows nb of object by tags in tag tree


[[#Top|(back to top)]]
[[#Top|(back to top)]]
Line 335: Line 335:
=Contracts=
=Contracts=


*CONTRACT_SUPPORT_PRODUCTS ► Products are also suggested into module contract.
*'''CONTRACT_SUPPORT_PRODUCTS''' ► Products are also suggested into module contract.
*
*
*CONTRACT_ALLOW_EXTERNAL_DOWNLOAD ► When a PDF is generated, a share key is automatically set so the file can be downloaded using the share key. ► (v7.0+)
*'''CONTRACT_ALLOW_EXTERNAL_DOWNLOAD''' ► When a PDF is generated, a share key is automatically set so the file can be downloaded using the share key. ► (v7.0+)
*CONTRACT_HIDE_PLANNED_DATE_ON_PDF ► allows you to not display dates on pdf files.
*'''CONTRACT_HIDE_PLANNED_DATE_ON_PDF''' ► allows you to not display dates on pdf files.
*CONTRACT_HIDE_REAL_DATE_ON_PDF ► allows you to not display dates on pdf files.
*'''CONTRACT_HIDE_REAL_DATE_ON_PDF''' ► allows you to not display dates on pdf files.




Line 347: Line 347:
=Cron module=
=Cron module=


*CRON_DISABLE_KEY_CHANGE ► When you provide an instance to a customer, you probably also add an entry in the cron of this user so Dolibarr batch and scheduler can work correctly. For security purpose, it may have a security key that is inside the command line into the cron entry and this entry must match the value defined into Dolibarr setup (setup of module 'Scheduled Jobs'). Because, a customer of a Saas platform will probably have no access to edit the cron file, it is also import that he has no way to edit the key into the Dolibarr setup, so the key in the cron command line will always match the key in Dolibarr setup, and the Dolibarr batches will executed without security errors. To be sure, the customer does not change the value, you can set this constant to 1 into the table [[Table_llx_const]].
*'''CRON_DISABLE_KEY_CHANGE''' ► When you provide an instance to a customer, you probably also add an entry in the cron of this user so Dolibarr batch and scheduler can work correctly. For security purpose, it may have a security key that is inside the command line into the cron entry and this entry must match the value defined into Dolibarr setup (setup of module 'Scheduled Jobs'). Because, a customer of a Saas platform will probably have no access to edit the cron file, it is also import that he has no way to edit the key into the Dolibarr setup, so the key in the cron command line will always match the key in Dolibarr setup, and the Dolibarr batches will executed without security errors. To be sure, the customer does not change the value, you can set this constant to 1 into the table [[Table_llx_const]].


*CRON_DISABLE_TUTORIAL_CRON ► Disable the tutorial about how to install the cron script (on a SaaS hosting, this should be done by the web hosting provider)
*'''CRON_DISABLE_TUTORIAL_CRON''' ► Disable the tutorial about how to install the cron script (on a SaaS hosting, this should be done by the web hosting provider)


*CRON_WARNING_DELAY_HOURS ► Set this value to the frequency set for the cron script (so a warning will be shown to user to warn it about max frequency of its scheduled jobs)
*'''CRON_WARNING_DELAY_HOURS''' ► Set this value to the frequency set for the cron script (so a warning will be shown to user to warn it about max frequency of its scheduled jobs)


[[#Top|(back to top)]]
[[#Top|(back to top)]]
Line 359: Line 359:
=Direct Debit Orders=
=Direct Debit Orders=


*WITHDRAWAL_ALLOW_ANY_INVOICE_STATUS ► If this option is set, all invoices status (even already paid) may appear on the list of invoices qualified for a direct debit payment. This is the list of invoices with a payment request done, and not linked to a direct debit payment. By default, only "unpayed" invoices are used to avoid to pay twice the same invoice.
*'''WITHDRAWAL_ALLOW_ANY_INVOICE_STATUS''' ► If this option is set, all invoices status (even already paid) may appear on the list of invoices qualified for a direct debit payment. This is the list of invoices with a payment request done, and not linked to a direct debit payment. By default, only "unpayed" invoices are used to avoid to pay twice the same invoice.


[[#Top|(back to top)]]
[[#Top|(back to top)]]
Line 366: Line 366:
=Donation Module=
=Donation Module=


*DONATION_USE_THIRDPARTIES ► If this option is set, a thirdparty field appear on donation forms.
*'''DONATION_USE_THIRDPARTIES''' ► If this option is set, a thirdparty field appear on donation forms.


[[#Top|(back to top)]]
[[#Top|(back to top)]]
=Email and SMS=
=Email and SMS=


*MAIN_MAILFORM_DISABLE_ENTERKEY ► Activate javascript code to disable the enter key in the MAIL form. ► (>= 8.0.1)
*'''MAIN_MAILFORM_DISABLE_ENTERKEY''' ► Activate javascript code to disable the enter key in the MAIL form. ► (>= 8.0.1)


*MAIL_PREFIX_FOR_EMAIL_ID ► Prefix for the mails ID. Default value is <code>$_SERVER["SERVER_NAME"]</code> ► (>= 8.0.1)
*'''MAIL_PREFIX_FOR_EMAIL_ID''' ► Prefix for the mails ID. Default value is <code>$_SERVER["SERVER_NAME"]</code> ► (>= 8.0.1)


*MAIN_MAIL_DEBUG ► Write content with header of last mail into file <code>dolibarr_mail.log</code> into directory <code>dolibarr_main_data_root</code>.
*'''MAIN_MAIL_DEBUG''' ► Write content with header of last mail into file <code>dolibarr_mail.log</code> into directory <code>dolibarr_main_data_root</code>.


*MAIN_SMS_DEBUG ► Write content of SMS sent into file <code>dolibarr_sms.log</code> into directory <code>dolibarr_main_data_root</code>.
*'''MAIN_SMS_DEBUG''' ► Write content of SMS sent into file <code>dolibarr_sms.log</code> into directory <code>dolibarr_main_data_root</code>.


*MAIN_MAIL_ALLOW_SENDMAIL_F ► On Linux or BSD system, PHP email function use the command sendmail local to server. In some cases, the sender email must be provided on command line of sendmail with option <code>-f</code>. This option is here to ask Dolibarr to call the function mail of PHP by adding value for the option <code>-f</code>. Note that in most cases, even with sendmail, sender email is correctly managed as it is added in the email technical header. This option is here only for rare setup of sendmail that ask the -f option to be mandatory or for sendmail setup that does not use by default the Return-path of header email to define the sender (with this option, the return-path will be provided also on command line and not lost by sendmail).
*'''MAIN_MAIL_ALLOW_SENDMAIL_F''' ► On Linux or BSD system, PHP email function use the command sendmail local to server. In some cases, the sender email must be provided on command line of sendmail with option <code>-f</code>. This option is here to ask Dolibarr to call the function mail of PHP by adding value for the option <code>-f</code>. Note that in most cases, even with sendmail, sender email is correctly managed as it is added in the email technical header. This option is here only for rare setup of sendmail that ask the -f option to be mandatory or for sendmail setup that does not use by default the Return-path of header email to define the sender (with this option, the return-path will be provided also on command line and not lost by sendmail).


*MAIN_MAIL_SENDMAIL_FORCE_BA ► On Linux or BSD system, PHP email function use the command sendmail local to server. In some case, we want to recipient to be provided to sendmail into the email content instead of its command line parameter. For this we must add the -ba parameter to sendmail. This option asks PHP to provide this parameter when sending a mail. Note that another solution is to edit the mail.force_extra_parameters=-ba into <code>php.ini</code> file.
*'''MAIN_MAIL_SENDMAIL_FORCE_BA''' ► On Linux or BSD system, PHP email function use the command sendmail local to server. In some case, we want to recipient to be provided to sendmail into the email content instead of its command line parameter. For this we must add the -ba parameter to sendmail. This option asks PHP to provide this parameter when sending a mail. Note that another solution is to edit the mail.force_extra_parameters=-ba into <code>php.ini</code> file.


*MAIN_MAIL_NO_FULL_EMAIL ► Recipient email and sender are cleaned to be on form "<email>" instead of "Name <email>". This might solve problem of compatibility with very old mailers.
*'''MAIN_MAIL_NO_FULL_EMAIL''' ► Recipient email and sender are cleaned to be on form "<email>" instead of "Name <email>". This might solve problem of compatibility with very old mailers.


*MAIN_FIX_FOR_BUGGED_MTA ► Some MTA agent are bugged and add some CR chars each time they saw a LF. Because Dolibarr emails are forged to be already cleaned, if MTA agent do that, you will send an email with two CR chars. This may result in having recipient not able to read your email. To fix this, add this constant to 1. Dolibarr will then create an email that is not RFC compliant but because the MTA agent is bugged, the email will be modified and become correct during sending, solving the problem of bad email received. Add this constant if your recipient experience problems when opening email for example users using webmail of <code>orange.fr</code> or <code>hotmail.com</code>
*'''MAIN_FIX_FOR_BUGGED_MTA''' ► Some MTA agent are bugged and add some CR chars each time they saw a LF. Because Dolibarr emails are forged to be already cleaned, if MTA agent do that, you will send an email with two CR chars. This may result in having recipient not able to read your email. To fix this, add this constant to 1. Dolibarr will then create an email that is not RFC compliant but because the MTA agent is bugged, the email will be modified and become correct during sending, solving the problem of bad email received. Add this constant if your recipient experience problems when opening email for example users using webmail of <code>orange.fr</code> or <code>hotmail.com</code>


*MAIN_MAIL_DO_NOT_USE_SIGN ► Do not add user signature at end of suggested pre-defined email
*'''MAIN_MAIL_DO_NOT_USE_SIGN''' ► Do not add user signature at end of suggested pre-defined email


*MAIL_FORCE_DELIVERY_RECEIPT_INVOICE ► Set default as "Yes" on requesting delivery receipt when sending email through the ''Customer Invoice'' module.
*'''MAIL_FORCE_DELIVERY_RECEIPT_INVOICE''' ► Set default as "Yes" on requesting delivery receipt when sending email through the ''Customer Invoice'' module.


*MAIL_FORCE_DELIVERY_RECEIPT_ORDER ► Set default as "Yes" on requesting delivery receipt when sending email through the ''Customer Order'' module.
*'''MAIL_FORCE_DELIVERY_RECEIPT_ORDER''' ► Set default as "Yes" on requesting delivery receipt when sending email through the ''Customer Order'' module.


*MAIL_FORCE_DELIVERY_RECEIPT_PROPAL ► Set default as "Yes" on requesting delivery receipt when sending email through the ''Customer Proposal'' module.
*'''MAIL_FORCE_DELIVERY_RECEIPT_PROPAL''' ► Set default as "Yes" on requesting delivery receipt when sending email through the ''Customer Proposal'' module.
*MAIL_FORCE_DELIVERY_RECEIPT_SUPPLIER_PROPOSAL ► Set default as "Yes" on requesting delivery receipt when sending email through the ''Supplier Proposal'' module.
*'''MAIL_FORCE_DELIVERY_RECEIPT_SUPPLIER_PROPOSAL''' ► Set default as "Yes" on requesting delivery receipt when sending email through the ''Supplier Proposal'' module.


*MAIN_EMAIL_USECCC ► 1 = Show field BCC into email forms, If email = Show BCC prefilled with email.
*'''MAIN_EMAIL_USECCC''' ► 1 = Show field BCC into email forms, If email = Show BCC prefilled with email.


*MAIN_MAIL_AUTOCOPY_PROPOSAL_TO, MAIN_MAIL_AUTOCOPY_ORDER_TO, MAIN_MAIL_AUTOCOPY_INVOICE_TO ► Email to use as a BCC recipient when sending email for proposal, order or invoice. You can make this value visible by setting MAIN_EMAIL_USECCC (to 1 or to another email, see previous point)
*'''MAIN_MAIL_AUTOCOPY_PROPOSAL_TO''', '''MAIN_MAIL_AUTOCOPY_ORDER_TO''', '''MAIN_MAIL_AUTOCOPY_INVOICE_TO''' ► Email to use as a BCC recipient when sending email for proposal, order or invoice. You can make this value visible by setting MAIN_EMAIL_USECCC (to 1 or to another email, see previous point)


*MAIN_EMAIL_ADD_TRACK_ID ► When value is 1 (this is also default value if option is not set): The record "Message-id" added into smtp header includes a tracking id to define where the email was sent from. When value is 2: you send an email from third party card, the sender email is completed with the email source tracking string  "+thiXXX" on email (your email will be sent with the "From" that is myname+thi123@mycompany.com). So when user receiving email will make "Answer", email will be sent to myname@mycompany.com but with the tracking id included (into header or into target email), allowing you to know to which third party or object, the email exchange is related to.
*'''MAIN_EMAIL_ADD_TRACK_ID''' ► When value is 1 (this is also default value if option is not set): The record "Message-id" added into smtp header includes a tracking id to define where the email was sent from. When value is 2: you send an email from third party card, the sender email is completed with the email source tracking string  "+thiXXX" on email (your email will be sent with the "From" that is myname+thi123@mycompany.com). So when user receiving email will make "Answer", email will be sent to myname@mycompany.com but with the tracking id included (into header or into target email), allowing you to know to which third party or object, the email exchange is related to.


*MAIL_MAX_NB_OF_RECIPIENTS_IN_SAME_EMAIL ► Restrict sending of 1 email message to <code>x</code> recipients for same email message (x for To: + CC: + BCC:). If not defined, value is <code>10</code>. Required to fight against spamming that include 1000 recipients in 1 message. Note that MAIL_MAX_NB_OF_RECIPIENTS_TO_IN_SAME_EMAIL, MAIL_MAX_NB_OF_RECIPIENTS_CC_IN_SAME_EMAIL and MAIL_MAX_NB_OF_RECIPIENTS_BCC_IN_SAME_EMAIL are also available.
*'''MAIL_MAX_NB_OF_RECIPIENTS_IN_SAME_EMAIL''' ► Restrict sending of 1 email message to <code>x</code> recipients for same email message (x for To: + CC: + BCC:). If not defined, value is <code>10</code>. Required to fight against spamming that include 1000 recipients in 1 message. Note that '''MAIL_MAX_NB_OF_RECIPIENTS_TO_IN_SAME_EMAIL''', '''MAIL_MAX_NB_OF_RECIPIENTS_CC_IN_SAME_EMAIL''' and '''MAIL_MAX_NB_OF_RECIPIENTS_BCC_IN_SAME_EMAIL''' are also available.


*MAIN_MAIL_FORCE_CONTENT_TYPE_TO_HTML ► Force to send all email (event with text only content) as HTML formatted email.
*'''MAIN_MAIL_FORCE_CONTENT_TYPE_TO_HTML''' ► Force to send all email (event with text only content) as HTML formatted email.


*MAIN_MAIL_USE_MULTI_PART ► Forge email content using an alternate text part ► (for 5.0.2+). By default with 6.0+
*'''MAIN_MAIL_USE_MULTI_PART''' ► Forge email content using an alternate text part ► (for 5.0.2+). By default with 6.0+
*MAIN_INFO_SOCIETE_MAIL_ALIASES ► add address aliases for the from field on mail. Set his value with "Firstname Name <firstname.lastname@mydomain.tld, Otherfirstname OtherlastName <othermail@mydomain.tld>,..." ► (v5.0.0+)
*'''MAIN_INFO_SOCIETE_MAIL_ALIASES''' ► add address aliases for the from field on mail. Set his value with "Firstname Name <firstname.lastname@mydomain.tld, Otherfirstname OtherlastName <othermail@mydomain.tld>,..." ► (v5.0.0+)


*MAIN_MAIL_ADD_INLINE_IMAGES_IF_IN_MEDIAS ► If images were stored into the medias directory from CKEditor, then images into emails are replaced with "inline content". This may increase seriously risk of being detected as SPAM.
*'''MAIN_MAIL_ADD_INLINE_IMAGES_IF_IN_MEDIAS''' ► If images were stored into the medias directory from CKEditor, then images into emails are replaced with "inline content". This may increase seriously risk of being detected as SPAM.


*MAIN_COPY_FILE_IN_EVENT_AUTO ► Add attachement document on event auto generated by sending email from dolibarr. ► (v6.0+)
*'''MAIN_COPY_FILE_IN_EVENT_AUTO''' ► Add attachement document on event auto generated by sending email from dolibarr. ► (v6.0+)


*MAIN_EXTERNAL_SMTP_CLIENT_IP_ADDRESS ► (A better name of this option should be MAIN_EXTERNAL_MAIL_CLIENT_IP_ADDRESS). Set here the list of IPs where your Dolibarr instances are hosted. So when your customer go into the setup area of email:
*'''MAIN_EXTERNAL_SMTP_CLIENT_IP_ADDRESS''' ► (A better name of this option should be MAIN_EXTERNAL_MAIL_CLIENT_IP_ADDRESS). Set here the list of IPs where your Dolibarr instances are hosted. So when your customer go into the setup area of email:
**If he chose mail method, a message will explain him how to setup its SPF record for its email domain (showing the list of IP). This is to avoid to have its emails, sent from its Dolibarr instance, fails due to strict antispam rule of some emailing servers.
**If he chose mail method, a message will explain him how to setup its SPF record for its email domain (showing the list of IP). This is to avoid to have its emails, sent from its Dolibarr instance, fails due to strict antispam rule of some emailing servers.
**If he chose smtp method, a message will explain him the list of IP he can use if there is restriction on IP by the SMTP agent. If you also need to add a message to help SPF setup, see option MAIN_EXTERNAL_SMTP_SPF_STRING_TO_ADD.
**If he chose smtp method, a message will explain him the list of IP he can use if there is restriction on IP by the SMTP agent. If you also need to add a message to help SPF setup, see option '''MAIN_EXTERNAL_SMTP_SPF_STRING_TO_ADD'''.


*MAIN_MAIL_ENABLED_USER_DEST_SELECT ► Show also internal users into list of recipients of email in email sending form ► (v8.0+)
*'''MAIN_MAIL_ENABLED_USER_DEST_SELECT''' ► Show also internal users into list of recipients of email in email sending form ► (v8.0+)
*
*


Line 426: Line 426:
=Emailing Module=
=Emailing Module=


*MAILING_PREFIX_FOR_EMAIL_ID ► Set the value that will be used to compose the "Email ID" into email headers. If you set this value to '<code>SERVER_NAME</code>', the virtual host of web server will be used. By default, this is not defined, so a hash key, unique to each instance, is used.
*'''MAILING_PREFIX_FOR_EMAIL_ID''' ► Set the value that will be used to compose the "Email ID" into email headers. If you set this value to '<code>SERVER_NAME</code>', the virtual host of web server will be used. By default, this is not defined, so a hash key, unique to each instance, is used.


*MAILING_NO_USING_PHPMAIL ► If set, the module emailing can't be used with mail setup of "phpmail". Using a thirdparty SMTP server is required. You can complete warning message by adding an email to contact for setup help with constant <code>MAILING_SMTP_SETUP_EMAILS_FOR_QUESTIONS</code>.
*'''MAILING_NO_USING_PHPMAIL''' ► If set, the module emailing can't be used with mail setup of "phpmail". Using a thirdparty SMTP server is required. You can complete warning message by adding an email to contact for setup help with constant <code>'''MAILING_SMTP_SETUP_EMAILS_FOR_QUESTIONS'''</code>.


*MAILING_SMTP_SETUP_EMAILS_FOR_QUESTIONS ► Contains the email of contact to show into the message visible to a user when he try to use emailing module without SMTP server and if option MAILING_NO_USING_PHPMAIL is set to on.
*'''MAILING_SMTP_SETUP_EMAILS_FOR_QUESTIONS''' ► Contains the email of contact to show into the message visible to a user when he try to use emailing module without SMTP server and if option '''MAILING_NO_USING_PHPMAIL''' is set to on.


*MAILING_LIMIT_WARNING_PHPMAIL ► Show a warning message (var contains the '''message to show''', or '''translation key''') on emailing send form if setup is on "phpmail". Note: The application always try to translation the message considering the message is a translation key, before showing the translation or message if translation was not found.
*'''MAILING_LIMIT_WARNING_PHPMAIL''' ► Show a warning message (var contains the '''message to show''', or '''translation key''') on emailing send form if setup is on "phpmail". Note: The application always try to translation the message considering the message is a translation key, before showing the translation or message if translation was not found.


*MAILING_LIMIT_WARNING_NOPHPMAIL ► Show a warning message (var contains the '''message to show''', or '''translation key''') on emailing send form if setup is something else than "phpmail". Note: The application always try to translation the message considering the message is a translation key, before showing the translation or message if translation was not found.
*'''MAILING_LIMIT_WARNING_NOPHPMAIL''' ► Show a warning message (var contains the '''message to show''', or '''translation key''') on emailing send form if setup is something else than "phpmail". Note: The application always try to translation the message considering the message is a translation key, before showing the translation or message if translation was not found.
*EMAILING_USE_ADVANCED_SELECTOR ► Enable the advanced selector for recipients.
*'''EMAILING_USE_ADVANCED_SELECTOR''' ► Enable the advanced selector for recipients.


*MAILING_LIMIT_SENDBYWEB ► Restrict number of emails you can send in same sending session with emailing module from GUI. The value "<code>dolibarr_mailing_limit_sendbyweb</code>" if defined into config file is used in priority for this limit. A negative value means, sending by web is forbidden.
*'''MAILING_LIMIT_SENDBYWEB''' ► Restrict number of emails you can send in same sending session with emailing module from GUI. The value "<code>dolibarr_mailing_limit_sendbyweb</code>" if defined into config file is used in priority for this limit. A negative value means, sending by web is forbidden.


*MAILING_LIMIT_SENDBYCLI ► Restrict number of emails you can send in same sending session with emailing module from CLI script. The value "<code>dolibarr_mailing_limit_sendbycli</code>" if defined into config file is used in priority for this limit.
*'''MAILING_LIMIT_SENDBYCLI''' ► Restrict number of emails you can send in same sending session with emailing module from CLI script. The value "<code>dolibarr_mailing_limit_sendbycli</code>" if defined into config file is used in priority for this limit.


[[#Top|(back to top)]]
[[#Top|(back to top)]]
Line 447: Line 447:
=Expense Report=
=Expense Report=


*EXPENSEREPORT_ALLOW_OVERLAPPING_PERIODS ► Can enter several expense reports on same or overlapping date periods. ► (v7.0+)
*'''EXPENSEREPORT_ALLOW_OVERLAPPING_PERIODS''' ► Can enter several expense reports on same or overlapping date periods. ► (v7.0+)


*EXPENSEREPORT_OVERRIDE_VAT ► Setting this constant to 1 will allow expense reports to show VAT even if the global VAT setting is off ► (v10.0)
*'''EXPENSEREPORT_OVERRIDE_VAT''' ► Setting this constant to 1 will allow expense reports to show VAT even if the global VAT setting is off ► (v10.0)


*EXPENSEREPORT_USE_OLD_NUMBERING_RULE ► The module Expense Report use numbering rules that you can setup (like other modules do). If you need to keep the hard-coded numbering rule of expenses report used in v6.0 set this constant to 1 ► (>=v7.0+)
*'''EXPENSEREPORT_USE_OLD_NUMBERING_RULE''' ► The module Expense Report use numbering rules that you can setup (like other modules do). If you need to keep the hard-coded numbering rule of expenses report used in v6.0 set this constant to 1 ► (>=v7.0+)


*MAIN_USE_EXPENSE_IK ► This feature allows you to set index kilometers against a mileage index for different types of vehicles. ► (v7.0+)
*'''MAIN_USE_EXPENSE_IK''' ► This feature allows you to set index kilometers against a mileage index for different types of vehicles. ► (v7.0+)


*MAIN_USE_EXPENSE_RULE ► This feature allows you to set a variety of rules per user/group/all so they can only create reports within their limits. ► (v7.0+)
*'''MAIN_USE_EXPENSE_RULE''' ► This feature allows you to set a variety of rules per user/group/all so they can only create reports within their limits. ► (v7.0+)


[[#Top|(back to top)]]
[[#Top|(back to top)]]
Line 463: Line 463:
=Export Module=
=Export Module=


*EXPORT_CSV_SEPARATOR_TO_USE ► String value to use as default separator to delimit fields of exported files (by default Dolibarr uses "<code>,</code>"). Example: EXPORT_CSV_SEPARATOR_TO_USE=<code>;</code>
*'''EXPORT_CSV_SEPARATOR_TO_USE''' ► String value to use as default separator to delimit fields of exported files (by default Dolibarr uses "<code>,</code>"). Example: EXPORT_CSV_SEPARATOR_TO_USE=<code>;</code>


*EXPORT_CSV_FORCE_CHARSET ► Choose the charset used in the output file built by the CSV exporter. By default it is ISO-8859-1. Example: EXPORT_CSV_FORCE_CHARSET= <code>utf-8</code>
*'''EXPORT_CSV_FORCE_CHARSET''' ► Choose the charset used in the output file built by the CSV exporter. By default it is ISO-8859-1. Example: EXPORT_CSV_FORCE_CHARSET= <code>utf-8</code>


*EXPORTTOOL_CATEGORIES ► Can export categories (several lines) into one column with the "product export profile"
*'''EXPORTTOOL_CATEGORIES''' ► Can export categories (several lines) into one column with the "product export profile"


*USE_STRICT_CSV_RULES ► Use strict/real CSV format for export. Do not clean/replace CR+LF with '\n' but quote them using the escaping CSV char (<code>"</code>).
*'''USE_STRICT_CSV_RULES''' ► Use strict/real CSV format for export. Do not clean/replace CR+LF with '\n' but quote them using the escaping CSV char (<code>"</code>).
*EXPORTS_SHARE_MODELS  ► Share export models between users.
*'''EXPORTS_SHARE_MODELS''' ► Share export models between users.


[[#Top|(back to top)]]
[[#Top|(back to top)]]
Line 477: Line 477:
=Foundation Module=
=Foundation Module=


*MEMBER_URL_REDIRECT_SUBSCRIPTION ► Link called and shown when a member account is autocreated in member module by a guest user.
*'''MEMBER_URL_REDIRECT_SUBSCRIPTION''' ► Link called and shown when a member account is autocreated in member module by a guest user.


*MEMBER_EXT_URL_SUBSCRIPTION_INFO ► Link of external page pointed by the "Show here" link added in front of payment cell, into the page to make online subscription.
*'''MEMBER_EXT_URL_SUBSCRIPTION_INFO''' ► Link of external page pointed by the "Show here" link added in front of payment cell, into the page to make online subscription.


[[#Top|(back to top)]]
[[#Top|(back to top)]]
Line 485: Line 485:
=Interventions Module=
=Interventions Module=


*FICHINTER_CLASSIFY_BILLED► Allow to classify an intervention card as "Billed". This add also trigger <code>FICHINTER_CLASSIFY_BILLED</code> into list of possible automatic event into agenda.
*'''FICHINTER_CLASSIFY_BILLED'''► Allow to classify an intervention card as "Billed". This add also trigger <code>FICHINTER_CLASSIFY_BILLED</code> into list of possible automatic event into agenda.


*FICHINTER_DISABLE_DETAILS► Disable entry of details line on intervention. Can validate with no line.
*'''FICHINTER_DISABLE_DETAILS'''► Disable entry of details line on intervention. Can validate with no line.


[[#Top|(back to top)]]
[[#Top|(back to top)]]
Line 493: Line 493:
=Invoice Module=
=Invoice Module=


*MAIN_DEPOSIT_MULTI_TVA ► In deposits invoice, creates one line per VAT rate from the origin document ► (6.0)
*'''MAIN_DEPOSIT_MULTI_TVA''' ► In deposits invoice, creates one line per VAT rate from the origin document ► (6.0)


*INVOICE_ALLOW_REUSE_OF_CREDIT_WHEN_PARTIALLY_REFUNDED* ► If a credit note was partially refunded (a refund was sent to the customer), with common situation, we wait to have the remain refunded too. With this option, it is possible to convert the remain of invoice into a discount to reuse it into another invoice.
*'''INVOICE_ALLOW_REUSE_OF_CREDIT_WHEN_PARTIALLY_REFUNDED'''* ► If a credit note was partially refunded (a refund was sent to the customer), with common situation, we wait to have the remain refunded too. With this option, it is possible to convert the remain of invoice into a discount to reuse it into another invoice.


*SUUPLIER_INVOICE_ALLOW_REUSE_OF_CREDIT_WHEN_PARTIALLY_REFUNDED* ► See INVOICE_ALLOW_REUSE_OF_CREDIT_WHEN_PARTIALLY_REFUNDED, but for supplier credit notes.
*'''SUUPLIER_INVOICE_ALLOW_REUSE_OF_CREDIT_WHEN_PARTIALLY_REFUNDED''' ► See INVOICE_ALLOW_REUSE_OF_CREDIT_WHEN_PARTIALLY_REFUNDED, but for supplier credit notes.


*INVOICE_CAN_ALWAYS_BE_EDITED changed in version 15 or 16 to INVOICE_CAN_BE_EDITED_EVEN_IF_PAYMENT_DONE ► Allow to edit invoices even if payment was started. Note: If the module "BlockedLog" is active (required in some countries for legal reasons), this will not change content of archived logs tracked by this module. By definition there is no way to change or remove archived records. It will just update data in your application and a new record to track your change into the read-only archive log.
*'''INVOICE_CAN_ALWAYS_BE_EDITED''' changed in version 15 or 16 to '''INVOICE_CAN_BE_EDITED_EVEN_IF_PAYMENT_DONE''' ► Allow to edit invoices even if payment was started. Note: If the module "BlockedLog" is active (required in some countries for legal reasons), this will not change content of archived logs tracked by this module. By definition there is no way to change or remove archived records. It will just update data in your application and a new record to track your change into the read-only archive log.


*INVOICE_CAN_ALWAYS_BE_REMOVED ► Allow to always delete invoices (even if invoice is not last one). Note: If the module "BlockedLog" is active (required by some countries for legal reason), this will not change content of archived logs tracked by this module. By definition there is no way to change or remove archived records. It will just update data in your application and a new record to track your change into the read-only archive log.
*'''INVOICE_CAN_ALWAYS_BE_REMOVED''' ► Allow to always delete invoices (even if invoice is not last one). Note: If the module "BlockedLog" is active (required by some countries for legal reason), this will not change content of archived logs tracked by this module. By definition there is no way to change or remove archived records. It will just update data in your application and a new record to track your change into the read-only archive log.


*INVOICE_CAN_NEVER_BE_REMOVED ► Never allow to delete invoices (except draft invoices).
*'''INVOICE_CAN_NEVER_BE_REMOVED''' ► Never allow to delete invoices (except draft invoices).


*INVOICE_POSITIVE_CREDIT_NOTE ► All amounts on PDF credit notes are positive.
*'''INVOICE_POSITIVE_CREDIT_NOTE''' ► All amounts on PDF credit notes are positive.


*FACTURE_DEPOSITS_ARE_JUST_PAYMENTS ► An old way to create initial payment. This treats deposit invoices as a special case and not as legal deposit invoice. Deposit invoices don't get counted on turnover. They are then applied as a payment, like a discount, on the final invoice. By default, when you include the deposit into draft of final invoice, the amount of final invoice is reduced. With this option, final amount is not reduced but a payment is registered. WARNING: In a lot of european countries, using this option is not allowed.
*'''FACTURE_DEPOSITS_ARE_JUST_PAYMENTS''' ► An old way to create initial payment. This treats deposit invoices as a special case and not as legal deposit invoice. Deposit invoices don't get counted on turnover. They are then applied as a payment, like a discount, on the final invoice. By default, when you include the deposit into draft of final invoice, the amount of final invoice is reduced. With this option, final amount is not reduced but a payment is registered. WARNING: In a lot of european countries, using this option is not allowed.


*FACTURE_SENDBYEMAIL_FOR_ALL_STATUS ► Can send invoice by email to customer even if invoice has status "draft".
*'''FACTURE_SENDBYEMAIL_FOR_ALL_STATUS''' ► Can send invoice by email to customer even if invoice has status "draft".


*INVOICE_CREDIT_NOTE_STANDALONE ► Start implementation to allow a credit note even without invoice (dangerous) ► (v3.9)
*'''INVOICE_CREDIT_NOTE_STANDALONE''' ► Start implementation to allow a credit note even without invoice (dangerous) ► (v3.9)


*INVOICE_USE_SITUATION ► Enable the "situation invoice" feature. Warning, this feature is bugged and may not be compatible with the final version of the feature once the bug will be solved. Also, using the double-entry accountancy module is not possible when this option is on (due to the same design problem).
*'''INVOICE_USE_SITUATION''' ► Enable the "situation invoice" feature. Warning, this feature is bugged and may not be compatible with the final version of the feature once the bug will be solved. Also, using the double-entry accountancy module is not possible when this option is on (due to the same design problem).


*INVOICE_USE_SITUATION_CREDIT_NOTE ► Enable the "situation credit note" feature (need <code>INVOICE_USE_SITUATION</code>) ► (v8.0)
*'''INVOICE_USE_SITUATION_CREDIT_NOTE''' ► Enable the "situation credit note" feature (need <code>INVOICE_USE_SITUATION</code>) ► (v8.0)
*INVOICE_USE_RETAINED_WARRANTY ► Enable the retained warranty on invoice ► (v14.0)
*'''INVOICE_USE_RETAINED_WARRANTY''' ► Enable the retained warranty on invoice ► (v14.0)


*INVOICE_DISABLE_DEPOSIT ► Disable deposit invoices
*'''INVOICE_DISABLE_DEPOSIT''' ► Disable deposit invoices


*INVOICE_DISABLE_REPLACEMENT ► Disable replacement invoices
*'''INVOICE_DISABLE_REPLACEMENT''' ► Disable replacement invoices


*INVOICE_DISABLE_CREDIT_NOTE ► Disable credit notes
*'''INVOICE_DISABLE_CREDIT_NOTE''' ► Disable credit notes
 
*'''INVOICE_ADD_ZATCA_QR_CODE''' ► Add a QR code with format ZATCA (for Saudi Arabia) on PDF of invoices.


*INVOICE_ADD_ZATCA_QR_CODE ► Add a QR code with format ZATCA (for Saudi Arabia) on PDF of invoices.
Note: To decode a QR image of a ZATCA code: https://www.onlinebarcodereader.com/. You can also use the mobile application https://play.google.com/store/apps/details?id=com.posbankbh.einvoiceqrreader&gl=FR
Note: To decode a QR image of a ZATCA code: https://www.onlinebarcodereader.com/. You can also use the mobile application https://play.google.com/store/apps/details?id=com.posbankbh.einvoiceqrreader&gl=FR


*MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT ► See PDF option
*'''MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT''' ► See PDF option


*MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT_COLUMN ► See PDF options
*'''MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT_COLUMN''' ► See PDF options


*WORKFLOW_BILL_ON_SHIPMENT ► Change label of button with suitable label when you need to create invoice on shipments
*'''WORKFLOW_BILL_ON_SHIPMENT''' ► Change label of button with suitable label when you need to create invoice on shipments


*INVOICE_ALLOW_EXTERNAL_DOWNLOAD ► When a PDF is generated, a share key is automatically set so the file can be downloaded using the share key. Use the tag __DIRECTDOWNLOAD_URL_INVOICE__ in email template to insert it. ► (v7.0+)
*'''INVOICE_ALLOW_EXTERNAL_DOWNLOAD''' ► When a PDF is generated, a share key is automatically set so the file can be downloaded using the share key. Use the tag __DIRECTDOWNLOAD_URL_INVOICE__ in email template to insert it. ► (v7.0+)


*INVOICE_POINTOFTAX_DATE ► Add Point of Tax Date on invoices for country-specific legality reasons ► (v4.0+)
*'''INVOICE_POINTOFTAX_DATE''' ► Add Point of Tax Date on invoices for country-specific legality reasons ► (v4.0+)
*FACTURE_ENABLE_NEGATIVE ► Can validate an invoice when amount is negative
*'''FACTURE_ENABLE_NEGATIVE''' ► Can validate an invoice when amount is negative


*FACTURE_ENABLE_NEGATIVE_LINES ► Allows to add negative lines to an invoice ► (v8.0.2+)
*'''FACTURE_ENABLE_NEGATIVE_LINES''' ► Allows to add negative lines to an invoice ► (v8.0.2+)


*INVOICE_USE_DEFAULT_DOCUMENT ► Allow user to select a default invoice documents models according to invoice type. On invoice create page, the model is dynamically changed on invoice type selection. ► (v9.0+)
*'''INVOICE_USE_DEFAULT_DOCUMENT''' ► Allow user to select a default invoice documents models according to invoice type. On invoice create page, the model is dynamically changed on invoice type selection. ► (v9.0+)


*FACTURE_REUSE_NOTES_ON_CREATE_FROM ► Reuse the Public Note and Private note of the previous object (Proposal,...) when creating the bill.
*'''FACTURE_REUSE_NOTES_ON_CREATE_FROM''' ► Reuse the Public Note and Private note of the previous object (Proposal,...) when creating the bill.
*FACTUREFOURN_REUSE_NOTES_ON_CREATE_FROM ► Reuse the Public Note and Private note of the previous object when creating the supplier bill ► (V13.0)
*'''FACTUREFOURN_REUSE_NOTES_ON_CREATE_FROM''' ► Reuse the Public Note and Private note of the previous object when creating the supplier bill ► (V13.0)
*MAIN_SHOW_FACNUMBER_IN_DISCOUNT_LIST ► Display the reference of credit notes in discount list when creating the bill.
*'''MAIN_SHOW_FACNUMBER_IN_DISCOUNT_LIST''' ► Display the reference of credit notes in discount list when creating the bill.
*INVOICE_ALLOW_FREE_REF ► Capability to change reference of an invoice. This will be possible as long as the invoice has the status “Draft” and only if your country is not in Europe(V11)
*'''INVOICE_ALLOW_FREE_REF''' ► Capability to change reference of an invoice. This will be possible as long as the invoice has the status “Draft” and only if your country is not in Europe(V11)


*INVOICE_DISALLOW_REOPEN
*'''INVOICE_DISALLOW_REOPEN'''


*INVOICE_MAX_FUTURE_DELAY ► Numbers of seconds allowed for billing in the future ► (V14.0)
*'''INVOICE_MAX_FUTURE_DELAY''' ► Numbers of seconds allowed for billing in the future ► (V14.0)
*INVOICE_AUTO_NEXT_MONTH_ON_LINES ► Increase start date and end date by one month, if an invoice line is a clone of a time based service AND if this services started on the first day of month and ended on the last day of month ► (V13.0.1)
*'''INVOICE_AUTO_NEXT_MONTH_ON_LINES''' ► Increase start date and end date by one month, if an invoice line is a clone of a time based service AND if this services started on the first day of month and ended on the last day of month ► (V13.0.1)
*INVOICE_KEEP_DISCOUNT_LINES_AS_IN_ORIGIN ► Does not change a line with a negative price into an absolute discount when creating an invoice ► (V16 ?)
*'''INVOICE_KEEP_DISCOUNT_LINES_AS_IN_ORIGIN''' ► Does not change a line with a negative price into an absolute discount when creating an invoice ► (V16 ?)


[[#Top|(back to top)]]
[[#Top|(back to top)]]
Line 557: Line 558:
=Leave=
=Leave=


*MAIN_NON_WORKING_DAYS_INCLUDE_SATURDAY ► Set this value to 0 if you want to have the saturday as a working day
*'''MAIN_NON_WORKING_DAYS_INCLUDE_SATURDAY''' ► Set this value to 0 if you want to have the saturday as a working day
*MAIN_NON_WORKING_DAYS_INCLUDE_SUNDAY ► Set this value to 0 if you want to have the sunday as a working day
*'''MAIN_NON_WORKING_DAYS_INCLUDE_SUNDAY''' ► Set this value to 0 if you want to have the sunday as a working day


=Look or Theme=
=Look or Theme=


*MAIN_FAVICON_URL ► favicon url
*'''MAIN_FAVICON_URL''' ► favicon url


*MAIN_EASTER_EGG_COMMITSTRIP ► Show a comic image from the CommitStrip website. Images are refreshed daily. ► (v6.0+)
*'''MAIN_EASTER_EGG_COMMITSTRIP''' ► Show a comic image from the CommitStrip website. Images are refreshed daily. ► (v6.0+)


*MAIN_STATUS_USES_CSS ►  Change status design using new style ► (v10.0+)
*'''MAIN_STATUS_USES_CSS''' ►  Change status design using new style ► (v10.0+)


*MAIN_INCLUDE_GLOBAL_STATS_IN_OPENED_DASHBOARD ► This conf will auto remove global stats box item if there are already in the new dashboard of opened elements and keep displayed stats on the opened item box (not only on mouse over) ► (v11.0+)
*'''MAIN_INCLUDE_GLOBAL_STATS_IN_OPENED_DASHBOARD''' ► This conf will auto remove global stats box item if there are already in the new dashboard of opened elements and keep displayed stats on the opened item box (not only on mouse over) ► (v11.0+)


*MAIN_USE_TOP_MENU_SEARCH_DROPDOWN ► Actually only for eldy theme, this conf move search input  to top menu and use new design too ► (v11.0+)
*'''MAIN_USE_TOP_MENU_SEARCH_DROPDOWN''' ► Actually only for eldy theme, this conf move search input  to top menu and use new design too ► (v11.0+)


*THEME_AGRESSIVENESS_RATIO ► This conf can be used to increase/decrease agressiveness of colors. Value 0 is medium, value is between -100 (light grey colors) to +100 (very flashy colors) ► (v11.0+)
*'''THEME_AGRESSIVENESS_RATIO''' ► This conf can be used to increase/decrease agressiveness of colors. Value 0 is medium, value is between -100 (light grey colors) to +100 (very flashy colors) ► (v11.0+)


*THEME_SHOW_BORDER_ON_INPUT
*'''THEME_SHOW_BORDER_ON_INPUT'''
*MAIN_DISABLE_GLOBAL_WORKBOARD ► Hide the workboard of the main page ► (v13.0+)
*'''MAIN_DISABLE_GLOBAL_WORKBOARD''' ► Hide the workboard of the main page ► (v13.0+)
*MAIN_DISABLE_GLOBAL_BOXSTATS ► Hide the Statistic Box of the main page
*'''MAIN_DISABLE_GLOBAL_BOXSTATS''' ► Hide the Statistic Box of the main page


[[#Top|(back to top)]]
[[#Top|(back to top)]]
Line 582: Line 583:
=MultiCurrency=
=MultiCurrency=


*MAIN_MULTICURRENCY_ALLOW_SYNCHRONIZATION ► Enable CurrencyLayer API synchronization
*'''MAIN_MULTICURRENCY_ALLOW_SYNCHRONIZATION''' ► Enable CurrencyLayer API synchronization


[[#Top|(back to top)]]
[[#Top|(back to top)]]
Line 588: Line 589:
=Order Module=
=Order Module=


*MAIN_USE_PROPAL_REFCLIENT_FOR_ORDER => Copy customer reference from proposal to order. ► (v7.0+)
*'''MAIN_USE_PROPAL_REFCLIENT_FOR_ORDER''' => Copy customer reference from proposal to order. ► (v7.0+)


*ORDER_REQUIRE_SOURCE => Make the input field "Source of order" mandatory.
*'''ORDER_REQUIRE_SOURCE''' => Make the input field "Source of order" mandatory.


*ORDER_VALID_AFTER_CLOSE_PROPAL => When an order is created on a proposal close, the order is directly defined with status "Validated".
*'''ORDER_VALID_AFTER_CLOSE_PROPAL''' => When an order is created on a proposal close, the order is directly defined with status "Validated".


*ORDER_ALLOW_EXTERNAL_DOWNLOAD => When a PDF is generated, a share key is automatically set so the file can be downloaded using the share key. ► (v7.0+)
*'''ORDER_ALLOW_EXTERNAL_DOWNLOAD''' => When a PDF is generated, a share key is automatically set so the file can be downloaded using the share key. ► (v7.0+)


*ORDER_ENABLE_NEGATIVE => Can validate an order when amount is negative
*'''ORDER_ENABLE_NEGATIVE''' => Can validate an order when amount is negative


*THIRDPARTY_PROPAGATE_EXTRAFIELDS_TO_ORDER => Copy also extrafields from thirdparty to order (if name match). ► (v11.0+)
*'''THIRDPARTY_PROPAGATE_EXTRAFIELDS_TO_ORDER''' => Copy also extrafields from thirdparty to order (if name match). ► (v11.0+)


[[#Top|(back to top)]]
[[#Top|(back to top)]]
Line 606: Line 607:
=PDF Options=
=PDF Options=


*MAIN_ADD_PDF_BACKGROUND ► Define this constant with short name of a PDF file (example "<code>mypdf.pdf</code>") that must be saved into directory "<code>documents/mycompany</code>". This will add PDF as a background of some of your generated PDF files (proposals,invoices,orders). If you need to concat PDF, see instead [[Module Concat PDF]].
*'''MAIN_ADD_PDF_BACKGROUND''' ► Define this constant with short name of a PDF file (example "<code>mypdf.pdf</code>") that must be saved into directory "<code>documents/mycompany</code>". This will add PDF as a background of some of your generated PDF files (proposals,invoices,orders). If you need to concat PDF, see instead [[Module Concat PDF]].


*MAIN_DISABLE_FORCE_SAVEAS ► If your browser always asks to save downloaded files on disk (like PDF), try this this option. File may be displayed directly in your browser.
*'''MAIN_DISABLE_FORCE_SAVEAS''' ► If your browser always asks to save downloaded files on disk (like PDF), try this this option. File may be displayed directly in your browser.


*MAIN_DISABLE_PDF_AUTOUPDATE ► Disable automatic generation of PDF each time we add/update/delete a product line (we can still build document by clicking on "Generate"). This option may increase interface speed on servers with low CPU.
*'''MAIN_DISABLE_PDF_AUTOUPDATE''' ► Disable automatic generation of PDF each time we add/update/delete a product line (we can still build document by clicking on "Generate"). This option may increase interface speed on servers with low CPU.


*MAIN_DISABLE_PDF_COMPRESSION ► Disable PDF compression.
*'''MAIN_DISABLE_PDF_COMPRESSION''' ► Disable PDF compression.


*MAIN_DOCUMENTS_WITH_PICTURE_WIDTH ► Can change size of picture when hidden option <code>MAIN_GENERATE_PROPOSALS_WITH_PICTURE</code> is used. By default value is <code>20</code>.
*'''MAIN_DOCUMENTS_WITH_PICTURE_WIDTH''' ► Can change size of picture when hidden option <code>MAIN_GENERATE_PROPOSALS_WITH_PICTURE</code> is used. By default value is <code>20</code>.


*MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS ► Adding the company address at the bottom of the page. Disabled by default
*'''MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS''' ► Adding the company address at the bottom of the page. Disabled by default


*MAIN_GENERATE_PROPOSALS_WITH_PICTURE ► Include the first image of the product into the line of the generated PDF for customer proposals.
*'''MAIN_GENERATE_PROPOSALS_WITH_PICTURE''' ► Include the first image of the product into the line of the generated PDF for customer proposals.


*MAIN_GENERATE_INVOICES_WITH_PICTURE ► Include the first image of the product into the line of the generated PDF for customer invoices.
*'''MAIN_GENERATE_INVOICES_WITH_PICTURE''' ► Include the first image of the product into the line of the generated PDF for customer invoices.


*MAIN_GENERATE_SUPPLIER_PROPOSAL_WITH_PICTURE ► Include the first image of the product into the line of the generated PDF for supplier proposals ► (v5.0.3+)
*'''MAIN_GENERATE_SUPPLIER_PROPOSAL_WITH_PICTURE''' ► Include the first image of the product into the line of the generated PDF for supplier proposals ► (v5.0.3+)
*MAIN_GENERATE_SUPPLIER_ORDER_WITH_PICTURE ► Include the first image of the product into the line of the generated PDF for supplier orders
*'''MAIN_GENERATE_SUPPLIER_ORDER_WITH_PICTURE''' ► Include the first image of the product into the line of the generated PDF for supplier orders


*MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT ► Disable VAT on generated documents. like for an association. (Works with crabe template)
*'''MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT''' ► Disable VAT on generated documents. like for an association. (Works with crabe template)


*MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT_COLUMN ► Hide column with VAT information but only column not total.
*'''MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT_COLUMN''' ► Hide column with VAT information but only column not total.


*MAIN_INVERT_SENDER_RECIPIENT ► Invert sender and recipient in some PDF. Note: This option is set automatically if country if Germany.
*'''MAIN_INVERT_SENDER_RECIPIENT''' ► Invert sender and recipient in some PDF. Note: This option is set automatically if country if Germany.


*MAIN_ODT_AS_PDF ► Activate ODT to PDF conversion. Value can be "libreoffice" or "unoconv". Do not use value '''<nowiki/>'jodconverter'<nowiki/>''' any more, as it is declared deprecated and partly not functional, use value '''<nowiki/>'libreoffice'''' instead, it requires only '''soffice''' (OpenOffice or LibreOffice) installed on server (use '''apt install soffice libreoffice-common libreoffice-writer''').
*'''MAIN_ODT_AS_PDF''' ► Activate ODT to PDF conversion. Value can be "libreoffice" or "unoconv". Do not use value '''<nowiki/>'jodconverter'<nowiki/>''' any more, as it is declared deprecated and partly not functional, use value '''<nowiki/>'libreoffice'''' instead, it requires only '''soffice''' (OpenOffice or LibreOffice) installed on server (use '''apt install soffice libreoffice-common libreoffice-writer''').


If you got this error: javaldx failed! Warning: failed to read path from javaldx with no return to prompt when running soffice --headless -env:UserInstallation=file:"/tmp" --convert-to pdf --outdir xxx ./yyy.odt, check that directory defined into env:UserInstallation parameters exists and is writeable.
If you got this error: javaldx failed! Warning: failed to read path from javaldx with no return to prompt when running soffice --headless -env:UserInstallation=file:"/tmp" --convert-to pdf --outdir xxx ./yyy.odt, check that directory defined into env:UserInstallation parameters exists and is writeable.
Line 637: Line 638:
You may also have a look at this page if your server is on Windows: [[Générer automatiquement des documents PDF à partir de fichier ODT avec Doliwamp]]
You may also have a look at this page if your server is on Windows: [[Générer automatiquement des documents PDF à partir de fichier ODT avec Doliwamp]]


*MAIN_ODT_AS_PDF_DEL_SOURCE ► For ODT generation. If set, then initial behaviour is conserved but ODT file is removed when option to convert it as PDF (see previous) is on. Disabled by default
*'''MAIN_ODT_AS_PDF_DEL_SOURCE''' ► For ODT generation. If set, then initial behaviour is conserved but ODT file is removed when option to convert it as PDF (see previous) is on. Disabled by default


*MAIN_PDF_FORCE_FONT ► To ignore font defined into language file and force usage of a particular font. For example "<code>DejaVuSans</code>".
*'''MAIN_PDF_FORCE_FONT''' ► To ignore font defined into language file and force usage of a particular font. For example "<code>DejaVuSans</code>".


*MAIN_PDF_FORCE_FONT_SIZE ► To force size of font (by default 10). For example "<code>12</code>" ► (v11.0)
*'''MAIN_PDF_FORCE_FONT_SIZE''' ► To force size of font (by default 10). For example "<code>12</code>" ► (v11.0)


*MAIN_PDF_FREETEXT_HEIGHT ► Change height of space reserved to output the free text.
*'''MAIN_PDF_FREETEXT_HEIGHT''' ► Change height of space reserved to output the free text.


*MAIN_PDF_TITLE_BACKGROUND_COLOR ► Can define a background color onto title line. Example: <code>220,220,200</code>
*'''MAIN_PDF_TITLE_BACKGROUND_COLOR''' ► Can define a background color onto title line. Example: <code>220,220,200</code>


*MAIN_PDF_USE_LARGE_LOGO ► Use the original logo with its higher resolution into the PDF instead of the small thumb. This may lead to very very large PDF !
*'''MAIN_PDF_USE_LARGE_LOGO''' ► Use the original logo with its higher resolution into the PDF instead of the small thumb. This may lead to very very large PDF !


*MAIN_USE_BACKGROUND_ON_PDF ► Define this constant with short name of an image (example "<code>myimage.jpg</code>") that must be saved into directory "<code>documents/mycompany/logos</code>". This will add this background image into your generated PDF files.
*'''MAIN_USE_BACKGROUND_ON_PDF''' ► Define this constant with short name of an image (example "<code>myimage.jpg</code>") that must be saved into directory "<code>documents/mycompany/logos</code>". This will add this background image into your generated PDF files.


*MAIN_USE_COMPANY_NAME_OF_CONTACT ► Use contact name and information rather than company
*'''MAIN_USE_COMPANY_NAME_OF_CONTACT''' ► Use contact name and information rather than company


*MAIN_PDF_ADDALSOTARGETDETAILS ► If 1, add details of reipient on generated PDFs (email, fax, url and phone). Can be useful in cases where a printed order/invoice etc is given to a delivery driver/courier etc.
*'''MAIN_PDF_ADDALSOTARGETDETAILS''' ► If 1, add details of reipient on generated PDFs (email, fax, url and phone). Can be useful in cases where a printed order/invoice etc is given to a delivery driver/courier etc.


*MAIN_TVAINTRA_IN_SOURCE_ADDRESS ► Show VAT N° in source address of PDF to comply with legalities in certain countries. Note that VAT number should be already visible in footer of page ► (v8.0.1+)
*'''MAIN_TVAINTRA_IN_SOURCE_ADDRESS''' ► Show VAT N° in source address of PDF to comply with legalities in certain countries. Note that VAT number should be already visible in footer of page ► (v8.0.1+)


*MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING ► Add optional esign field in pdf propal ► (v8.0+)
*'''MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING''' ► Add optional esign field in pdf propal ► (v8.0+)


*MAIN_PROFID1_IN_SOURCE_ADDRESS ► Show Professional ID 1 in source address of PDF to comply with legalities in certain countries ► (v8.0.1+)
*'''MAIN_PROFID1_IN_SOURCE_ADDRESS''' ► Show Professional ID 1 in source address of PDF to comply with legalities in certain countries ► (v8.0.1+)


*MAIN_PROFID2_IN_SOURCE_ADDRESS ► Show Professional ID 2 in source address of PDF to comply with legalities in certain countries ► (v8.0.1+)
*'''MAIN_PROFID2_IN_SOURCE_ADDRESS''' ► Show Professional ID 2 in source address of PDF to comply with legalities in certain countries ► (v8.0.1+)


*MAIN_PROFID3_IN_SOURCE_ADDRESS ► Show Professional ID 3 in source address of PDF to comply with legalities in certain countries ► (v8.0.1+)
*'''MAIN_PROFID3_IN_SOURCE_ADDRESS''' ► Show Professional ID 3 in source address of PDF to comply with legalities in certain countries ► (v8.0.1+)


*MAIN_PROFID4_IN_SOURCE_ADDRESS ► Show Professional ID 4 in source address of PDF to comply with legalities in certain countries ► (v8.0.1+)
*'''MAIN_PROFID4_IN_SOURCE_ADDRESS''' ► Show Professional ID 4 in source address of PDF to comply with legalities in certain countries ► (v8.0.1+)


*MAIN_PROFID5_IN_SOURCE_ADDRESS ► Show Professional ID 5 in source address of PDF to comply with legalities in certain countries ► (v8.0.1+)
*'''MAIN_PROFID5_IN_SOURCE_ADDRESS''' ► Show Professional ID 5 in source address of PDF to comply with legalities in certain countries ► (v8.0.1+)


*MAIN_PROFID6_IN_SOURCE_ADDRESS ► Show Professional ID 6 in source address of PDF to comply with legalities in certain countries ► (v8.0.1+)
*'''MAIN_PROFID6_IN_SOURCE_ADDRESS''' ► Show Professional ID 6 in source address of PDF to comply with legalities in certain countries ► (v8.0.1+)


*PDF_BANK_HIDE_NUMBER_SHOW_ONLY_BICIBAN ► Hide bank number ("code banque/guichet/compte" for France, "sort code/account number" for GB, ...) and keep only BIC/IBAN on PDF.
*'''PDF_BANK_HIDE_NUMBER_SHOW_ONLY_BICIBAN''' ► Hide bank number ("code banque/guichet/compte" for France, "sort code/account number" for GB, ...) and keep only BIC/IBAN on PDF.


*PDF_BOLD_PRODUCT_REF_AND_PERIOD ► Add more visibility (bold) on product ref and period of service in desc. ► (v12.0)
*'''PDF_BOLD_PRODUCT_REF_AND_PERIOD''' ► Add more visibility (bold) on product ref and period of service in desc. ► (v12.0)


*PDF_HIDE_PRODUCT_REF_IN_SUPPLIER_LINES ► Modify the use/position of Supplier Ref/Internal Ref with the item Label (name) on PDF documents.
*'''PDF_HIDE_PRODUCT_REF_IN_SUPPLIER_LINES''' ► Modify the use/position of Supplier Ref/Internal Ref with the item Label (name) on PDF documents.


Default (constant not set or Value <code>0</code>): Internal ref followed by supplier ref in brackets."COMPANY-REF-001 (Vendor SKU SUPPLIER-REF-001) - LABEL...".
Default (constant not set or Value <code>0</code>): Internal ref followed by supplier ref in brackets."COMPANY-REF-001 (Vendor SKU SUPPLIER-REF-001) - LABEL...".
Line 683: Line 684:
Value <code>2</code>: Supplier ref followed by internal ref in brackets. eg."SUPPLIER-REF-001 (InternalRef COMPANY-REF-001) - LABEL...".
Value <code>2</code>: Supplier ref followed by internal ref in brackets. eg."SUPPLIER-REF-001 (InternalRef COMPANY-REF-001) - LABEL...".


*PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME ► Include alternative/alias name into name on PDF.
*'''PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME''' ► Include alternative/alias name into name on PDF.


*PDF_SECURITY_ENCRYPTION ► Encrypt PDF produced by dolibarr ► (v?) . See additional parameters :PDF_SECURITY_ENCRYPTION_RIGHTS (block 'modify' or 'copy') - PDF_SECURITY_ENCRYPTION_USERPASS - PDF_SECURITY_ENCRYPTION_OWNERPASS (random if not specified) - PDF_SECURITY_ENCRYPTION_STRENGTH (0 = RC4 40 bit; 1 = RC4 128 bit; 2 = AES 128 bit; 3 = AES 256 bit) - PDF_SECURITY_ENCRYPTION_PUBKEYS Array of recipients containing public-key certificates ('c') and permissions ('p') - For example: array(array('c' => 'file://../examples/data/cert/tcpdf.crt', 'p' => array('print')))
*'''PDF_SECURITY_ENCRYPTION''' ► Encrypt PDF produced by dolibarr ► (v?) . See additional parameters :PDF_SECURITY_ENCRYPTION_RIGHTS (block 'modify' or 'copy') - '''PDF_SECURITY_ENCRYPTION_USERPASS''' - '''PDF_SECURITY_ENCRYPTION_OWNERPASS''' (random if not specified) - '''PDF_SECURITY_ENCRYPTION_STRENGTH''' (0 = RC4 40 bit; 1 = RC4 128 bit; 2 = AES 128 bit; 3 = AES 256 bit) - '''PDF_SECURITY_ENCRYPTION_PUBKEYS''' Array of recipients containing public-key certificates ('c') and permissions ('p') - For example: array(array('c' => 'file://../examples/data/cert/tcpdf.crt', 'p' => array('print')))


*PDF_SHOW_PROJECT ► Show project onto PDF (supported on supplier order only for the moment)
*'''PDF_SHOW_PROJECT''' ► Show project onto PDF (supported on supplier order only for the moment)


*PDF_USE_1A ► PDF files produced by dolibarr respect PDF/A standard ► (v?)
*'''PDF_USE_1A''' ► PDF files produced by dolibarr respect PDF/A standard ► (v?)


*PDF_USE_ALSO_LANGUAGE_CODE ► The value of this constant must be a language code ('fr_FR', 'en_US', 'sa_SA', ...). If set, the PDF document will contains both language (default and the one defined by the constant).
*'''PDF_USE_ALSO_LANGUAGE_CODE''' ► The value of this constant must be a language code ('fr_FR', 'en_US', 'sa_SA', ...). If set, the PDF document will contains both language (default and the one defined by the constant).
*DOC_SHOW_FIRST_SALES_REP ► Show the sales representant on header (at least on propal azur and rubis template)
*'''DOC_SHOW_FIRST_SALES_REP''' ► Show the sales representant on header (at least on propal azur and rubis template)
*MAIN_PDF_DASH_BETWEEN_LINES
*'''MAIN_PDF_DASH_BETWEEN_LINES'''
*
*
*SHOW_SUBPRODUCT_REF_IN_PDF
*'''SHOW_SUBPRODUCT_REF_IN_PDF'''
*PDF_HIDE_PRODUCT_LABEL_IN_SUPPLIER_LINES ► hide product label in supplier order lines (V15+)
*'''PDF_HIDE_PRODUCT_LABEL_IN_SUPPLIER_LINES''' ► hide product label in supplier order lines (V15+)
*SHIPPING_PDF_DISPLAY_AMOUNT_HT ► Show HT unit price and HT total price for lines of PDF shipment
*'''SHIPPING_PDF_DISPLAY_AMOUNT_HT''' ► Show HT unit price and HT total price for lines of PDF shipment


[[#Top|(back to top)]]
[[#Top|(back to top)]]
Line 703: Line 704:
=Point of Sale (POS)=
=Point of Sale (POS)=


*CASHDESK_SHOW_KEYPAD ► Show a mouse key pad into the 'Simple Point of Sale' module.
*'''CASHDESK_SHOW_KEYPAD''' ► Show a mouse key pad into the 'Simple Point of Sale' module.


*POS_ADDON ► Set this value to an existing numbering module rule (for example '<code>mod_facture_terre</code>', '<code>mod_facture_mars</code>', ...) to force the numbering module to use for invoice ref definition when invoice is created by the POS. For example setting value <code>POS_ADDON</code> to '<code>mod_facture_terre</code>' will use the numbering module '<code>terre</code>' for invoice generated from POS, whatever is the numbering rule defined into invoice module setup (you can also use POS_NUMBERING_TERRE_FORCE_PREFIX and POS_NUMBERING_MARS_FORCE_PREFIX variable to change the prefix used).
*'''POS_ADDON''' ► Set this value to an existing numbering module rule (for example '<code>mod_facture_terre</code>', '<code>mod_facture_mars</code>', ...) to force the numbering module to use for invoice ref definition when invoice is created by the POS. For example setting value <code>POS_ADDON</code> to '<code>mod_facture_terre</code>' will use the numbering module '<code>terre</code>' for invoice generated from POS, whatever is the numbering rule defined into invoice module setup (you can also use POS_NUMBERING_TERRE_FORCE_PREFIX and POS_NUMBERING_MARS_FORCE_PREFIX variable to change the prefix used).


*TAKEPOS_ENABLE_SUMUP ► Enable the compatibility of TakePOS with the card reader terminal [https://SumUp.fr SumUp]
*'''TAKEPOS_ENABLE_SUMUP''' ► Enable the compatibility of TakePOS with the card reader terminal [https://SumUp.fr SumUp]
*TAKEPOS_CAN_FORCE_BANK_ACCOUNT_DURING_PAYMENT ► Possibility to force the bank account during the payment in TakePOS  ► (v13.0)
*'''TAKEPOS_CAN_FORCE_BANK_ACCOUNT_DURING_PAYMENT''' ► Possibility to force the bank account during the payment in TakePOS  ► (v13.0)
*TAKEPOS_CONTROL_CASH_OPENING ► Control the cash openning
*'''TAKEPOS_CONTROL_CASH_OPENING''' ► Control the cash openning
*TAKEPOS_NUMPAD_FORCE_PAYMENT_ICONS_LABELS
*'''TAKEPOS_NUMPAD_FORCE_PAYMENT_ICONS_LABELS'''
   
   
[[#Top|(back to top)]]
[[#Top|(back to top)]]
Line 716: Line 717:
=Products Module=
=Products Module=


*CATEGORY_GRAPHSTATS_ON_PRODUCTS ► Show graph of products with categories and totals in Products Area screen
*'''CATEGORY_GRAPHSTATS_ON_PRODUCTS''' ► Show graph of products with categories and totals in Products Area screen


*MAIN_PRODUCT_DISABLE_CUSTOMCOUNTRYCODE ► Avoid customs code and country of origin to be set as product description when added to Propal/Order/Invoice
*'''MAIN_PRODUCT_DISABLE_CUSTOMCOUNTRYCODE''' ► Avoid customs code and country of origin to be set as product description when added to Propal/Order/Invoice


*PRODUCT_ADD_TYPE_IN_DOCUMENTS ► Add text "Product" or "Service" at beginning of details lines on built PDF documents.
*'''PRODUCT_ADD_TYPE_IN_DOCUMENTS''' ► Add text "Product" or "Service" at beginning of details lines on built PDF documents.


*PRODUCT_DONOTSEARCH_ANYWHERE ► When Ajax search is enabled, search is done on criteria anywhere in label of product. By adding this option, search is done only on start of label. This is really faster when you have a huge number of products.
*'''PRODUCT_DONOTSEARCH_ANYWHERE''' ► When Ajax search is enabled, search is done on criteria anywhere in label of product. By adding this option, search is done only on start of label. This is really faster when you have a huge number of products.


*MAIN_DIRECT_STATUS_UPDATE ► Allows you to change the status of the product (''for sale/not for sale for purchase/not for purchase'') directly on the product page via a ''on/off'' switch button. This can be convenient for those who need to quickly disable certain statuses of products without having to go through the editing product page individually. Also can be very useful if used as a filter on the product and product search list. This option doesn't generate a MODIFY trigger, so be careful with external modules. ► (v4.0+)
*'''MAIN_DIRECT_STATUS_UPDATE''' ► Allows you to change the status of the product (''for sale/not for sale for purchase/not for purchase'') directly on the product page via a ''on/off'' switch button. This can be convenient for those who need to quickly disable certain statuses of products without having to go through the editing product page individually. Also can be very useful if used as a filter on the product and product search list. This option doesn't generate a MODIFY trigger, so be careful with external modules. ► (v4.0+)


*MAIN_SEARCH_PRODUCT_BY_FOURN_REF ►  Allow to search a product by supplier ref in document's add line form. ► (>= 8.0)
*'''MAIN_SEARCH_PRODUCT_BY_FOURN_REF''' ►  Allow to search a product by supplier ref in document's add line form. ► (>= 8.0)


*MAIN_DISABLE_FREE_LINES ► Disallow using free lines to add line in documents ► (>= 8.0)
*'''MAIN_DISABLE_FREE_LINES''' ► Disallow using free lines to add line in documents ► (>= 8.0)


*MAIN_SHOW_PRODUCT_ACTIVITY_TRIM ► Show Product and Services turnover before for all four quarters tax over recent years recent years on the product area ► (v5.0+)
*'''MAIN_SHOW_PRODUCT_ACTIVITY_TRIM''' ► Show Product and Services turnover before for all four quarters tax over recent years recent years on the product area ► (v5.0+)


*PRODUIT_DESC_IN_LIST ► Show long description of product/service into lists.
*'''PRODUIT_DESC_IN_LIST''' ► Show long description of product/service into lists.


*PRODUCT_DISABLE_PROPAGATE_CUSTOMER_PRICES_ON_CHILD_COMPANIES ► Disable propagation of prices per customer from a customer to its child company.
*'''PRODUCT_DISABLE_PROPAGATE_CUSTOMER_PRICES_ON_CHILD_COMPANIES''' ► Disable propagation of prices per customer from a customer to its child company.


*PRODUCT_DISABLE_PUBLIC_URL ► Disable public url in product card ► (v14.0+)
*'''PRODUCT_DISABLE_PUBLIC_URL''' ► Disable public url in product card ► (v14.0+)
*PRODUCT_DISABLE_STOCK_LEVELS ► Disable properties of stock limits and desired optimal value on product ► (v14.0+)
*'''PRODUCT_DISABLE_STOCK_LEVELS''' ► Disable properties of stock limits and desired optimal value on product ► (v14.0+)
*PRODUCT_DISABLE_NATURE ► Disable nature in product card ► (v14.0+)
*'''PRODUCT_DISABLE_NATURE''' ► Disable nature in product card ► (v14.0+)
*PRODUCT_DISABLE_WEIGHT ► Disable weight in product card ► (v14.0+)
*'''PRODUCT_DISABLE_WEIGHT''' ► Disable weight in product card ► (v14.0+)
*PRODUCT_DISABLE_PRICES ► Disable prices in product card ► (v14.0+)
*'''PRODUCT_DISABLE_PRICES''' ► Disable prices in product card ► (v14.0+)
*PRODUCT_DISABLE_ACCOUNTING  ► Disable accounting in product card ► (v14.0+)
*'''PRODUCT_DISABLE_ACCOUNTING''' ► Disable accounting in product card ► (v14.0+)
*PRODUCT_DISABLE_SIZE ► Disable size in product card.
*'''PRODUCT_DISABLE_SIZE''' ► Disable size in product card.


*PRODUCT_DISABLE_LENGTH ► Disable length in product card ► (v4.0+)
*'''PRODUCT_DISABLE_LENGTH''' ► Disable length in product card ► (v4.0+)


*PRODUCT_DISABLE_SURFACE ► Disable surface in product card. ► (v4.0+)
*'''PRODUCT_DISABLE_SURFACE''' ► Disable surface in product card. ► (v4.0+)


*PRODUCT_DISABLE_VOLUME ► Disable volume in product card.
*'''PRODUCT_DISABLE_VOLUME''' ► Disable volume in product card.


*PRODUCT_DISABLE_CUSTOM_INFO ► Disable custom info (custom code and country origin) in product/service card.
*'''PRODUCT_DISABLE_CUSTOM_INFO''' ► Disable custom info (custom code and country origin) in product/service card.


*PRODUIT_MULTIPRICES_USE_VAT_PER_LEVEL ► When option to use price per level/segment is on, this allows to also set a dedicated vat for each price level.
*'''PRODUIT_MULTIPRICES_USE_VAT_PER_LEVEL''' ► When option to use price per level/segment is on, this allows to also set a dedicated vat for each price level.


*PRODUIT_CUSTOMER_PRICES_BY_QTY ► If price per quantity ► ''Experimental''
*'''PRODUIT_CUSTOMER_PRICES_BY_QTY''' ► If price per quantity ► ''Experimental''
*PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES ► If price per quantity and customer ► ''Experimental''
*'''PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES''' ► If price per quantity and customer ► ''Experimental''


*PRODUCT_LOT_ENABLE_QUALITY_CONTROL ► Enable feature for control quality on Lot
*'''PRODUCT_LOT_ENABLE_QUALITY_CONTROL''' ► Enable feature for control quality on Lot


*PRODUCT_MAX_LENGTH_COMBO ► Limit the length of the label displayed when adding lines in proposals/invoices/orders
*'''PRODUCT_MAX_LENGTH_COMBO''' ► Limit the length of the label displayed when adding lines in proposals/invoices/orders


*PRODUCT_MAX_VISIBLE_PHOTO ► Show a maximum number of product photos (as thumbnails) on the product main card. Example, setting this constant to '<code>5</code>' will show the first five product photos found on the product card.
*'''PRODUCT_MAX_VISIBLE_PHOTO''' ► Show a maximum number of product photos (as thumbnails) on the product main card. Example, setting this constant to '<code>5</code>' will show the first five product photos found on the product card.


*PRODUIT_PDF_MERGE_PROPAL ► Enable module Propal merge product PDF
*'''PRODUIT_PDF_MERGE_PROPAL''' ► Enable module Propal merge product PDF


*PRODUCT_USE_OLD_PATH_FOR_PHOTO ► Ask dolibarr to check also old path (before 3.7) where photos were stored.
*'''PRODUCT_USE_OLD_PATH_FOR_PHOTO''' ► Ask dolibarr to check also old path (before 3.7) where photos were stored.


*PRODUCT_USE_UNITS ► Add another units on products (Use same dictionnary as default unit feature) and propagate this unit on line of documents.
*'''PRODUCT_USE_UNITS''' ► Add another units on products (Use same dictionnary as default unit feature) and propagate this unit on line of documents.


*RESOURCE_ON_PRODUCTS ► Allow to affect ressources on products/services ► (v10.0+)
*'''RESOURCE_ON_PRODUCTS''' ► Allow to affect ressources on products/services ► (v10.0+)
*RESOURCE_ON_SERVICES ► Allow to affect ressources on products/services ► (v10.0+)
*'''RESOURCE_ON_SERVICES''' ► Allow to affect ressources on products/services ► (v10.0+)
*PRODUCT_SHOW_ORIGIN_IN_COMBO ► Show origin of products when adding lines in proposals/invoices/orders ► (v12.0+)
*'''PRODUCT_SHOW_ORIGIN_IN_COMBO''' ► Show origin of products when adding lines in proposals/invoices/orders ► (v12.0+)
*PRODUIT_ATTRIBUTES_HIDECHILD  ► Add option hide child if variantes
*'''PRODUIT_ATTRIBUTES_HIDECHILD''' ► Add option hide child if variantes


*PRODUCT_ADD_FORM_ADD_TO ► Add a product to a draft proposal/order/invoice, from the product card.
*'''PRODUCT_ADD_FORM_ADD_TO''' ► Add a product to a draft proposal/order/invoice, from the product card.
*PRODUCT_DISABLE_SELLBY ► Hide the Sell by date ► (v13.0+)
*'''PRODUCT_DISABLE_SELLBY''' ► Hide the Sell by date ► (v13.0+)
*PRODUCT_DISABLE_EATBY ► Hide the Eat by date ► (v13.0+)
*'''PRODUCT_DISABLE_EATBY''' ► Hide the Eat by date ► (v13.0+)


*PRODUCT_DENY_CHANGE_PRODUCT_TYPE ► Forbid to change the product type
*'''PRODUCT_DENY_CHANGE_PRODUCT_TYPE''' ► Forbid to change the product type


*PRODUCT_SORT_BY_CATEGORY ► Sort the product by categories instead of by ID
*'''PRODUCT_SORT_BY_CATEGORY''' ► Sort the product by categories instead of by ID
*PRODUCT_ADD_NET_MEASURE ► Support Net Measure in product's card.php (For real weight, volume or piece; needed for some business ie fruits, vegetables....). Note brut value is already available natively, use this option only if you need 2 weights, 2 volumes, ...for each product) ► (v11.0.1+)
*'''PRODUCT_ADD_NET_MEASURE''' ► Support Net Measure in product's card.php (For real weight, volume or piece; needed for some business ie fruits, vegetables....). Note brut value is already available natively, use this option only if you need 2 weights, 2 volumes, ...for each product) ► (v11.0.1+)
*PRODUCT_PRICE_BASE_TYPE  ► value 'TTC' / 'HT' specify the default value of the price (with or without taxes) ► (v16.0.0+)
*'''PRODUCT_PRICE_BASE_TYPE''' ► value 'TTC' / 'HT' specify the default value of the price (with or without taxes) ► (v16.0.0+)


*PRODUCT_LOAD_EXTRAFIELD_INTO_OBJECTLINES ► Load product extrafiled on object lines
*'''PRODUCT_LOAD_EXTRAFIELD_INTO_OBJECTLINES''' ► Load product extrafiled on object lines


[[#Top|(back to top)]]
[[#Top|(back to top)]]
Line 792: Line 793:
=Projects Module=
=Projects Module=


*PROJECT_ALLOW_TO_LINK_FROM_OTHER_COMPANY ► Can link an object to a project of another thirdparty
*'''PROJECT_ALLOW_TO_LINK_FROM_OTHER_COMPANY''' ► Can link an object to a project of another thirdparty
*PROJECT_ALLOW_COMMENT_ON_PROJECT ► Add comment feature on a project
*'''PROJECT_ALLOW_COMMENT_ON_PROJECT''' ► Add comment feature on a project


*PROJECT_ALLOW_COMMENT_ON_TASK ► Add comment feature on project task
*'''PROJECT_ALLOW_COMMENT_ON_TASK''' ► Add comment feature on project task


*PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS ► Enable linking a project to any supplier even when using the third party link feature. Note: Set to 1 by default from 3.7.
*'''PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS''' ► Enable linking a project to any supplier even when using the third party link feature. Note: Set to 1 by default from 3.7.


*PROJECT_CREATE_ON_OVERVIEW_DISABLED ► Hide the "create ..." button on the overview page ► (v4.0)
*'''PROJECT_CREATE_ON_OVERVIEW_DISABLED''' ► Hide the "create ..." button on the overview page ► (v4.0)


*PROJECT_DISABLE_UNLINK_FROM_OVERVIEW ► Enable removing the button from a link in the project overview. ► (>= v8.0.1)
*'''PROJECT_DISABLE_UNLINK_FROM_OVERVIEW''' ► Enable removing the button from a link in the project overview. ► (>= v8.0.1)


*PROJECT_HIDE_UNSELECTABLES ► Hide into select list, all project that we can't select (closed or draft)
*'''PROJECT_HIDE_UNSELECTABLES''' ► Hide into select list, all project that we can't select (closed or draft)


*PROJECT_HIDE_TASKS ► Hide tasks. For user using project only as an analytics key and not using tasks.
*'''PROJECT_HIDE_TASKS''' ► Hide tasks. For user using project only as an analytics key and not using tasks.


*PROJECT_LIST_SHOW_STARTDATE ► Shows start date of projects in project lists.
*'''PROJECT_LIST_SHOW_STARTDATE''' ► Shows start date of projects in project lists.


*PROJECT_LINK_ON_OVERWIEW_DISABLED ► Hide the "link to" form on the overview page ► (v4.0)
*'''PROJECT_LINK_ON_OVERWIEW_DISABLED''' ► Hide the "link to" form on the overview page ► (v4.0)


*PROJECT_SHOW_REF_INTO_LISTS ► Add column with project ref into list (with 3.7 list of supplier invoices only, will be expanded to other lists)
*'''PROJECT_SHOW_REF_INTO_LISTS''' ► Add column with project ref into list (with 3.7 list of supplier invoices only, will be expanded to other lists)


*PROJECT_TIME_ON_ALL_TASKS_MY_PROJECTS ► Can add time spent on tasks, even if i am not assigned to task (however, task must be a project i am a contact).
*'''PROJECT_TIME_ON_ALL_TASKS_MY_PROJECTS''' ► Can add time spent on tasks, even if i am not assigned to task (however, task must be a project i am a contact).


*PROJECT_OPEN_ALWAYS_ON_TAB ► Set to value 'task', or 'preview' to always open the project on the given tab instead of main tab.
*'''PROJECT_OPEN_ALWAYS_ON_TAB''' ► Set to value 'task', or 'preview' to always open the project on the given tab instead of main tab.
*
*
*
*
*PROJECT_ELEMENTS_FOR_MINUS_MARGIN
*'''PROJECT_ELEMENTS_FOR_MINUS_MARGIN'''


[[#Top|(back to top)]]
[[#Top|(back to top)]]
Line 824: Line 825:
=Proposals Module=
=Proposals Module=


*MAIN_GENERATE_PROPOSALS_WITH_PICTURE ► Add a picture of the product (the first one found if there are several) into the generated PDF of proposals. Note that using this will reduce the available width for the product description.
*'''MAIN_GENERATE_PROPOSALS_WITH_PICTURE''' ► Add a picture of the product (the first one found if there are several) into the generated PDF of proposals. Note that using this will reduce the available width for the product description.


*MAIN_PROPAL_CHOOSE_ODT_DOCUMENT ► On setup page, you'll be able to select which ODT document to use when close or cancel proposals.
*'''MAIN_PROPAL_CHOOSE_ODT_DOCUMENT''' ► On setup page, you'll be able to select which ODT document to use when close or cancel proposals.


*MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING ► add optional esign field in pdf propal ► (v8.0+)
*'''MAIN_PDF_PROPAL_USE_ELECTRONIC_SIGNING''' ► add optional esign field in pdf propal ► (v8.0+)


*PROPAL_CLONE_ON_CREATE_PAGE ► On the create proposal page, ask if we want to create the proposal by cloning an already existing one. You should use instead the "Clone" button available on existing proposals.
*'''PROPAL_CLONE_ON_CREATE_PAGE''' ► On the create proposal page, ask if we want to create the proposal by cloning an already existing one. You should use instead the "Clone" button available on existing proposals.


*PROPAL_DISABLE_SIGNATURE ► Do no show the box for signature.
*'''PROPAL_DISABLE_SIGNATURE''' ► Do no show the box for signature.


*PRODUIT_PDF_MERGE_PROPAL ► When generating the proposal PDF, all PDFs linked to products linked to proposal are also included into final PDF
*'''PRODUIT_PDF_MERGE_PROPAL''' ► When generating the proposal PDF, all PDFs linked to products linked to proposal are also included into final PDF


*PROPOSAL_ALLOW_EXTERNAL_DOWNLOAD ► When a PDF is generated, a share key is automatically set so the file can be downloaded using the share key. ► (v7.0+)
*'''PROPOSAL_ALLOW_EXTERNAL_DOWNLOAD''' ► When a PDF is generated, a share key is automatically set so the file can be downloaded using the share key. ► (v7.0+)


*PROPOSAL_AUTO_ADD_AUTHOR_AS_CONTACT ► Add Proposal Author as user contact follow proposal
*'''PROPOSAL_AUTO_ADD_AUTHOR_AS_CONTACT''' ► Add Proposal Author as user contact follow proposal


*PROPOSAL_PDF_HIDE_PAYMENTTERM ► Do not show the payment term on proposal ► (v11.0+)
*'''PROPOSAL_PDF_HIDE_PAYMENTTERM''' ► Do not show the payment term on proposal ► (v11.0+)


*PROPOSAL_PDF_HIDE_PAYMENTMODE ► Do not show the payment mode on proposal ► (v11.0+)
*'''PROPOSAL_PDF_HIDE_PAYMENTMODE''' ► Do not show the payment mode on proposal ► (v11.0+)


*WORKFLOW_PROPAL_CAN_CLASSIFY_BILLED_WITHOUT_INVOICES ► Button "Classified Billed" is visible on proposal even if there is no invoice linked to proposal.
*'''WORKFLOW_PROPAL_CAN_CLASSIFY_BILLED_WITHOUT_INVOICES''' ► Button "Classified Billed" is visible on proposal even if there is no invoice linked to proposal.
*PROPAL_REOPEN_UNSIGNED_ONLY  ► Do not allow reopening of signed (or billed) proposals. (V15)
*'''PROPAL_REOPEN_UNSIGNED_ONLY''' ► Do not allow reopening of signed (or billed) proposals. (V15)
*PROPOSAL_ARE_NOT_BILLABLE  ► Disable billing button on proposals (V15)
*'''PROPOSAL_ARE_NOT_BILLABLE''' ► Disable billing button on proposals (V15)


[[#Top|(back to top)]]
[[#Top|(back to top)]]
Line 854: Line 855:
=Services Module=
=Services Module=


*SERVICE_ARE_ECOMMERCE_200238EC ►  If seller and buyer are in Europe and buyer is not a company, use the VAT of buying country. For french speaking people, see also the page [[Loi_européenne_TVA_Vente_à_Distance_VAD_et_e-commerce_BtoC]].
*'''SERVICE_ARE_ECOMMERCE_200238EC''' ►  If seller and buyer are in Europe and buyer is not a company, use the VAT of buying country. For french speaking people, see also the page [[Loi_européenne_TVA_Vente_à_Distance_VAD_et_e-commerce_BtoC]].


*MAIN_FILL_SERVICE_DATES_FROM_LAST_SERVICE_LINE  ► (v13.0) On add line form add a button to fill service dates from the last service line
*'''MAIN_FILL_SERVICE_DATES_FROM_LAST_SERVICE_LINE''' ► (v13.0) On add line form add a button to fill service dates from the last service line


[[#Top|(back to top)]]
[[#Top|(back to top)]]
Line 862: Line 863:
=Shipments=
=Shipments=


*STOCK_WAREHOUSE_NOT_REQUIRED_FOR_SHIPMENTS ► If set, you can add a shipment line, with no stock source defined. ► (>= 8.0.1)
*'''STOCK_WAREHOUSE_NOT_REQUIRED_FOR_SHIPMENTS''' ► If set, you can add a shipment line, with no stock source defined. ► (>= 8.0.1)


*SHIPMENT_GETS_ALL_ORDER_PRODUCTS ► Add all order lines in shipment, including the one with 0 in quantity
*'''SHIPMENT_GETS_ALL_ORDER_PRODUCTS''' ► Add all order lines in shipment, including the one with 0 in quantity
*SHIPPING_PDF_HIDE_ORDERED ►Hide column quantity ordered on shippment pdf (>=15.0)
*'''SHIPPING_PDF_HIDE_ORDERED''' ►Hide column quantity ordered on shippment pdf (>=15.0)


[[#Top|(back to top)]]
[[#Top|(back to top)]]
Line 871: Line 872:
=Stocks=
=Stocks=


*SUPPLIER_ORDER_DISABLE_STOCK_DISPATCH_WHEN_TOTAL_REACHED ► Disable stock dispatch when total expected was already received
*'''SUPPLIER_ORDER_DISABLE_STOCK_DISPATCH_WHEN_TOTAL_REACHED''' ► Disable stock dispatch when total expected was already received


*STOCK_EXCLUDE_VIRTUAL_PRODUCTS ► If product is a virtual product, we do not manage stock for it.
*'''STOCK_EXCLUDE_VIRTUAL_PRODUCTS''' ► If product is a virtual product, we do not manage stock for it.


*ENTREPOT_EXTRA_STATUS ► Instead of the 2 status (Closed, Open), a Warehouse has 3 status: Closed, Open (for all movements), Open (for internal movement only). Internal movement only means you can't use the warehouse to make shipment or receptions.
*'''ENTREPOT_EXTRA_STATUS''' ► Instead of the 2 status (Closed, Open), a Warehouse has 3 status: Closed, Open (for all movements), Open (for internal movement only). Internal movement only means you can't use the warehouse to make shipment or receptions.
*SUPPLIER_ORDER_STATUS_FOR_VIRTUAL_STOCK ► For the calculation of virtual stocks, by default supplier orders with the status 3 (ordered) and 4 (partially received) are used. You can enter the list of statuses to be taken into account separated by commas for this calculation (example: 0,1,2,3)
*'''SUPPLIER_ORDER_STATUS_FOR_VIRTUAL_STOCK''' ► For the calculation of virtual stocks, by default supplier orders with the status 3 (ordered) and 4 (partially received) are used. You can enter the list of statuses to be taken into account separated by commas for this calculation (example: 0,1,2,3)
*STOCK_MOVEMENT_LIST_HIDE_UNIT_PRICE ► to hide unit price on some pages (V15+)
*'''STOCK_MOVEMENT_LIST_HIDE_UNIT_PRICE''' ► to hide unit price on some pages (V15+)


[[#Top|(back to top)]]
[[#Top|(back to top)]]
Line 883: Line 884:
=Suppliers Module=
=Suppliers Module=


*FOURN_PRODUCT_AVAILABILITY ► On the Suppliers price page of the products, activate the supplier product availability. ''This is duplicate feature with delivery_delay introduced with 3.8.''
*'''FOURN_PRODUCT_AVAILABILITY''' ► On the Suppliers price page of the products, activate the supplier product availability. ''This is duplicate feature with delivery_delay introduced with 3.8.''


*RELOAD_PAGE_ON_SUPPLIER_CHANGE ► On creation of a supplier order/invoice, reload form with supplier-specific details when supplier is selected from drop-down list.
*'''RELOAD_PAGE_ON_SUPPLIER_CHANGE''' ► On creation of a supplier order/invoice, reload form with supplier-specific details when supplier is selected from drop-down list.


*SUPPLIER_INVOICE_WITH_PREDEFINED_PRICES_ONLY ► Restrict selection of products in supplier invoice to only those with a buying price defined for that supplier. ► (v6.0+)
*'''SUPPLIER_INVOICE_WITH_PREDEFINED_PRICES_ONLY''' ► Restrict selection of products in supplier invoice to only those with a buying price defined for that supplier. ► (v6.0+)


*SUPPLIER_ORDER_AUTOADD_USER_CONTACT ► Add user approving supplier order as a contact automatically.
*'''SUPPLIER_ORDER_AUTOADD_USER_CONTACT''' ► Add user approving supplier order as a contact automatically.


*SUPPLIER_ORDER_DEFAULT_PAYMENT_MODE_ID ► Set the default payment method for suppliers (<code>rowid</code> in table <code>llx_c_paiement</code>).
*'''SUPPLIER_ORDER_DEFAULT_PAYMENT_MODE_ID''' ► Set the default payment method for suppliers (<code>rowid</code> in table <code>llx_c_paiement</code>).


*SUPPLIER_ORDER_USE_DISPATCH_STATUS ► Add a status on each dispatch order line when receiving products from suppliers ► (v4.0+)
*'''SUPPLIER_ORDER_USE_DISPATCH_STATUS''' ► Add a status on each dispatch order line when receiving products from suppliers ► (v4.0+)


*SUPPLIER_ORDER_NO_DIRECT_APPROVE ► No button "Validate and Approve". Always do step "Validate" and "Approve" in 2 steps.
*'''SUPPLIER_ORDER_NO_DIRECT_APPROVE''' ► No button "Validate and Approve". Always do step "Validate" and "Approve" in 2 steps.


*SUPPLIER_ORDER_WITH_PREDEFINED_PRICES_ONLY ► Restrict selection of products in supplier order to only those with a buying price defined for that supplier. ► (v6.0+)
*'''SUPPLIER_ORDER_WITH_PREDEFINED_PRICES_ONLY''' ► Restrict selection of products in supplier order to only those with a buying price defined for that supplier. ► (v6.0+)


*SUPPLIER_ORDER_EDIT_BUYINGPRICE_DURING_RECEIPT ► Can modify the buying price used for PMP calculation when making a stock reception on a supplier order. ► (v6.0+)
*'''SUPPLIER_ORDER_EDIT_BUYINGPRICE_DURING_RECEIPT''' ► Can modify the buying price used for PMP calculation when making a stock reception on a supplier order. ► (v6.0+)


*SUPPLIER_PROPOSAL_WITH_PREDEFINED_PRICES_ONLY ► Restrict selection of products in supplier proposal to only those with a buying price defined for that supplier. ► (v6.0+)
*'''SUPPLIER_PROPOSAL_WITH_PREDEFINED_PRICES_ONLY''' ► Restrict selection of products in supplier proposal to only those with a buying price defined for that supplier. ► (v6.0+)


*DISPLAY_DISCOUNTED_SUPPLIER_PRICE ► Allow to display discounted supplier price when searching product in supplier documents ► (v10.0)
*'''DISPLAY_DISCOUNTED_SUPPLIER_PRICE''' ► Allow to display discounted supplier price when searching product in supplier documents ► (v10.0)


*MAIN_CAN_EDIT_SUPPLIER_ON_SUPPLIER_ORDER ►  Allow to change the supplier on a draft supplier order ► (v10.0)
*'''MAIN_CAN_EDIT_SUPPLIER_ON_SUPPLIER_ORDER''' ►  Allow to change the supplier on a draft supplier order ► (v10.0)
*
*
*SUPPLIER_PROPOSAL_ALLOW_EXTERNAL_DOWNLOAD
*'''SUPPLIER_PROPOSAL_ALLOW_EXTERNAL_DOWNLOAD'''


[[#Top|(back to top)]]
[[#Top|(back to top)]]
Line 913: Line 914:
=Third Parties Module=
=Third Parties Module=


*COMPANY_AQUARIUM_CLEAN_REGEX ► Add a REGEX rule on the third parties names. It applies a regex replacement pattern on generated code if COMPANY_AQUARIUM_CLEAN_REGEX is set. Value must be a regex with parenthesis. The part into parenthesis is kept, the rest removed. For example if COMPANY_AQUARIUM_CLEAN_REGEX = '<code>^..(..)..(.*)</code>' the first char and second char are removed and the char 5 and 6 too ► (>= 8.0.1)
*'''COMPANY_AQUARIUM_CLEAN_REGEX''' ► Add a REGEX rule on the third parties names. It applies a regex replacement pattern on generated code if COMPANY_AQUARIUM_CLEAN_REGEX is set. Value must be a regex with parenthesis. The part into parenthesis is kept, the rest removed. For example if COMPANY_AQUARIUM_CLEAN_REGEX = '<code>^..(..)..(.*)</code>' the first char and second char are removed and the char 5 and 6 too ► (>= 8.0.1)


*MAIN_UNKNOWN_CUSTOMERS_ARE_COMPANIES ► See in Global options section.
*'''MAIN_UNKNOWN_CUSTOMERS_ARE_COMPANIES''' ► See in Global options section.


*MAIN_USE_VAT_COMPANIES_IN_EEC_WITH_INVALID_VAT_ID_ARE_INDIVIDUAL ► See in Global options section.
*'''MAIN_USE_VAT_COMPANIES_IN_EEC_WITH_INVALID_VAT_ID_ARE_INDIVIDUAL''' ► See in Global options section.


*SOCIETE_EMAIL_MANDATORY ► E-mail is a mandatory field when creating a thirdparty
*'''SOCIETE_EMAIL_MANDATORY''' ► E-mail is a mandatory field when creating a thirdparty


*SOCIETE_DISABLE_CUSTOMERS ► Remove all menu and features related to customers
*'''SOCIETE_DISABLE_CUSTOMERS''' ► Remove all menu and features related to customers


*SOCIETE_DISABLE_PROSPECTS ► Remove all menu and features related to prospects
*'''SOCIETE_DISABLE_PROSPECTS''' ► Remove all menu and features related to prospects


*SOCIETE_DISABLE_STATE ► Do not use field "state/province"
*'''SOCIETE_DISABLE_STATE''' ► Do not use field "state/province"


*SOCIETE_SORT_ON_TYPEENT ► The combo list of "type of third party" is sorted on alphabetical order instead of the field "position" that appears into dictionary instead.
*'''SOCIETE_SORT_ON_TYPEENT''' ► The combo list of "type of third party" is sorted on alphabetical order instead of the field "position" that appears into dictionary instead.


*SOCIETE_ASK_FOR_SHIPPING_METHOD ► Shipping method can be predefined on customer card and will be used as default on order creation
*'''SOCIETE_ASK_FOR_SHIPPING_METHOD''' ► Shipping method can be predefined on customer card and will be used as default on order creation
*SOCIETE_ADD_REF_IN_LIST ► Displays the code before the name in the lists  ► Value 1 -> Code + name + alias ou Code + name if colone alias 2 -> Code + alias 3 -> Alias
*'''SOCIETE_ADD_REF_IN_LIST''' ► Displays the code before the name in the lists  ► Value 1 -> Code + name + alias ou Code + name if colone alias 2 -> Code + alias 3 -> Alias


*THIRDPARTY_CAN_HAVE_CATEGORY_EVEN_IF_NOT_CUSTOMER_PROSPECT_SUPPLIER ► Possible to add Categories to third parties that are not customer, prospect or supplier.
*'''THIRDPARTY_CAN_HAVE_CATEGORY_EVEN_IF_NOT_CUSTOMER_PROSPECT_SUPPLIER''' ► Possible to add Categories to third parties that are not customer, prospect or supplier.


*THIRDPARTY_DEFAULT_USELOCALTAX1 ► When creating a new third party, the field "Use second tax" is set to on or off depending on value of this parameter.
*'''THIRDPARTY_DEFAULT_USELOCALTAX1''' ► When creating a new third party, the field "Use second tax" is set to on or off depending on value of this parameter.


*THIRDPARTY_DEFAULT_USELOCALTAX2 ► When creating a new third party, the field "Use third tax" is set to on or off depending on value of this parameter.
*'''THIRDPARTY_DEFAULT_USELOCALTAX2''' ► When creating a new third party, the field "Use third tax" is set to on or off depending on value of this parameter.


*THIRDPARTY_NOTCUSTOMERPROSPECT_BY_DEFAULT ► Do not set status "Customer/Prospect" to "on" when creating a new third party from menu "New third party".
*'''THIRDPARTY_NOTCUSTOMERPROSPECT_BY_DEFAULT''' ► Do not set status "Customer/Prospect" to "on" when creating a new third party from menu "New third party".


*THIRDPARTY_INCLUDE_PARENT_IN_LINKTO ► Search also for elements on parent third party when using the "link to" object feature.
*'''THIRDPARTY_INCLUDE_PARENT_IN_LINKTO''' ► Search also for elements on parent third party when using the "link to" object feature.


*THIRDPARTY_INCLUDE_PROJECT_THIRDPARY_IN_LINKTO ► Search also for elements on third party that own the project of the current element when using the "link to" object feature (if project is owned by a different thirdparty than current one).
*'''THIRDPARTY_INCLUDE_PROJECT_THIRDPARY_IN_LINKTO''' ► Search also for elements on third party that own the project of the current element when using the "link to" object feature (if project is owned by a different thirdparty than current one).


*THIRDPARTY_LOGO_ALLOW_EXTERNAL_DOWNLOAD ► When a logo is uploaded, a share key is automatically set so the file can be downloaded using the share key.
*'''THIRDPARTY_LOGO_ALLOW_EXTERNAL_DOWNLOAD''' ► When a logo is uploaded, a share key is automatically set so the file can be downloaded using the share key.


*THIRDPARTY_SUGGEST_ALSO_ADDRESS_CREATION ► Enabled contact creation on third-party create card
*'''THIRDPARTY_SUGGEST_ALSO_ADDRESS_CREATION''' ► Enabled contact creation on third-party create card
*THIRDPARTY_QUICKSEARCH_ON_FIELDS ► Personalized search criterias ► Example: $conf->global->THIRDPARTY_QUICKSEARCH_ON_FIELDS = 's.nom=ThirdPartyName;s.name_alias=AliasNameShort;s.code_client=CustomerCode'
*'''THIRDPARTY_QUICKSEARCH_ON_FIELDS''' ► Personalized search criterias ► Example: $conf->global->THIRDPARTY_QUICKSEARCH_ON_FIELDS = 's.nom=ThirdPartyName;s.name_alias=AliasNameShort;s.code_client=CustomerCode'
*MEMBER_CAN_CONVERT_CUSTOMERS_TO_MEMBERS ► Enabled member creation on third-party create card
*'''MEMBER_CAN_CONVERT_CUSTOMERS_TO_MEMBERS''' ► Enabled member creation on third-party create card
*SOCIETE_DISABLE_PARENTCOMPANY ► Disables attachment to a parent company.
*'''SOCIETE_DISABLE_PARENTCOMPANY''' ► Disables attachment to a parent company.
*THIRDPARTY_CUSTOMERPROSPECT_BY_DEFAULT ► Set the third party to customer by default
*'''THIRDPARTY_CUSTOMERPROSPECT_BY_DEFAULT''' ► Set the third party to customer by default
*THIRDPARTY_SUPPLIER_BY_DEFAULT ► Set the third party to supplier by default
*'''THIRDPARTY_SUPPLIER_BY_DEFAULT''' ► Set the third party to supplier by default
*THIRDPARTY_CUSTOMERTYPE_BY_DEFAULT ► Set the third party type by default (3 = customer & prospect / 2 = prospect / 1 = customer )
*'''THIRDPARTY_CUSTOMERTYPE_BY_DEFAULT''' ► Set the third party type by default (3 = customer & prospect / 2 = prospect / 1 = customer )
*CONTACT_DISABLE_PERSONALINFO ► Disable Personal data on contact page
*'''CONTACT_DISABLE_PERSONALINFO''' ► Disable Personal data on contact page
*SOCIETE_DISABLE_WORKFORCE ► Disable work force selector on society page
*'''SOCIETE_DISABLE_WORKFORCE''' ► Disable work force selector on society page
*SOCIETE_SHOW_VAT_IN_LIST ► display VAT number in combo list of thirdparties ► (V15+)
*'''SOCIETE_SHOW_VAT_IN_LIST''' ► display VAT number in combo list of thirdparties ► (V15+)
*THIRDPARTY_DEFAULT_CREATE_CONTACT ► When set, a contact is created at the creation of an invidual third party ► (v14.0)
*'''THIRDPARTY_DEFAULT_CREATE_CONTACT''' ► When set, a contact is created at the creation of an invidual third party ► (v14.0)


[[#Top|(back to top)]]
[[#Top|(back to top)]]
Line 962: Line 963:
=Ticket Module=
=Ticket Module=


*TICKET_SHOW_MESSAGES_ON_CARD ►Display all ticket related messages on the main ticket card. ► (>= 10.0)
*'''TICKET_SHOW_MESSAGES_ON_CARD''' ►Display all ticket related messages on the main ticket card. ► (>= 10.0)
*TICKET_AUTO_ASSIGN_CONTRACT_CREATE ►Automatically create a contract linked to the ticket ► (>= 10.0)
*'''TICKET_AUTO_ASSIGN_CONTRACT_CREATE''' ►Automatically create a contract linked to the ticket ► (>= 10.0)
*TICKET_AUTO_CREATE_FICHINTER_CREATE ►Automatically create an intervention linked to the ticket ► (>= 10.0)
*'''TICKET_AUTO_CREATE_FICHINTER_CREATE''' ►Automatically create an intervention linked to the ticket ► (>= 10.0)
*WORKFLOW_TICKET_CLOSE_INTERVENTION ►On ticlet close, automatically close an intervention linked to the ticket
*'''WORKFLOW_TICKET_CLOSE_INTERVENTION''' ►On ticlet close, automatically close an intervention linked to the ticket
*TICKET_CHECK_NOTIFY_THIRDPARTY_AT_CREATION ►Automatically check "notify thirdparty at creation" ( >=16)
*'''TICKET_CHECK_NOTIFY_THIRDPARTY_AT_CREATION''' ►Automatically check "notify thirdparty at creation" ( >=16)
*TICKETS_MESSAGE_FORCE_MAIL ► Precheck email sending on ticket message (>=15)
*'''TICKETS_MESSAGE_FORCE_MAIL''' ► Precheck email sending on ticket message (>=15)


<br />
<br />
Line 973: Line 974:
=VAT Report=
=VAT Report=


*MAIN_INCLUDE_ZERO_VAT_IN_REPORTS ► Include lines with VAT to 0% (for "auto-liquidation" in EEC) ► (v8.0.3+)
*'''MAIN_INCLUDE_ZERO_VAT_IN_REPORTS''' ► Include lines with VAT to 0% (for "auto-liquidation" in EEC) ► (v8.0.3+)


[[#Top|(back to top)]]
[[#Top|(back to top)]]
Line 979: Line 980:
=Website Module=
=Website Module=


*WEBSITE_USE_WEBSITE_ACCOUNTS ► Add a table and a tab to manage some accounts for websites to a third party
*'''WEBSITE_USE_WEBSITE_ACCOUNTS''' ► Add a table and a tab to manage some accounts for websites to a third party
*
*
*
*
*WEBSITE_ADD_CSS_TO_BODY
*'''WEBSITE_ADD_CSS_TO_BODY'''


[[#Top|(back to top)]]
[[#Top|(back to top)]]
Line 990: Line 991:
=WYSIWYG Editor=
=WYSIWYG Editor=


*FCKEDITOR_ENABLE_DETAILS_FULL ► Can cut and paste external images (hosted on external server) into description of proposal, orders or invoices. WARNING: PDF generation is not guaranteed with this. Also if the image is removed or renamed by the image hosting service, your proposal, order or invoice will be broken.
*'''FCKEDITOR_ENABLE_DETAILS_FULL''' ► Can cut and paste external images (hosted on external server) into description of proposal, orders or invoices. WARNING: PDF generation is not guaranteed with this. Also if the image is removed or renamed by the image hosting service, your proposal, order or invoice will be broken.
*FCKEDITOR_ALLOW_ANY_CONTENT ► Allow to enter any content. However, this will totally disable content filtering which is one of the most important CKEditor features. You can use this to keep all your tags and attributes in the html content.
*'''FCKEDITOR_ALLOW_ANY_CONTENT''' ► Allow to enter any content. However, this will totally disable content filtering which is one of the most important CKEditor features. You can use this to keep all your tags and attributes in the html content.


[[#Top|(back to top)]]
[[#Top|(back to top)]]
Line 997: Line 998:
=STRIPE Module=
=STRIPE Module=


*STRIPE_FORCE_VERSION ► Force the STRIPE version. For Example: "2019-09-09" (v11+)
*'''STRIPE_FORCE_VERSION''' ► Force the STRIPE version. For Example: "2019-09-09" (v11+)


[[#Top|(back to top)]]
[[#Top|(back to top)]]
Line 1,003: Line 1,004:
=ClickToDial Module=
=ClickToDial Module=


*CLICKTODIAL_FORCENEWTARGET ► Open in new page.
*'''CLICKTODIAL_FORCENEWTARGET''' ► Open in new page.


[[#Top|(back to top)]]
[[#Top|(back to top)]]
Line 1,013: Line 1,014:
The following options are useless for a common usage of Dolibarr. But they are usefull if you plan to host / provide Dolibarr instances as Software As A Service (SAAS) to your customers.
The following options are useless for a common usage of Dolibarr. But they are usefull if you plan to host / provide Dolibarr instances as Software As A Service (SAAS) to your customers.


*CRON_DISABLE_KEY_CHANGE ► When you provide an instance to a customer, you probably also add an entry in the cron of this user so Dolibarr batch and scheduler can work correctly. For security purpose, it may have a security key that is inside the command line into the cron entry and this entry must match the value defined into Dolibarr setup (setup of module 'Scheduled Jobs'). Because, a customer of a Saas platform will probably have no access to edit the cron file, it is also import that he has no way to edit the key into the Dolibarr setup, so the key in the cron command line will always match the key in Dolibarr setup, and the Dolibarr batches will executed without security errors. To be sure, the customer does not change the value, you can set this constant to 1 into the table [[Table_llx_const]].
*'''CRON_DISABLE_KEY_CHANGE''' ► When you provide an instance to a customer, you probably also add an entry in the cron of this user so Dolibarr batch and scheduler can work correctly. For security purpose, it may have a security key that is inside the command line into the cron entry and this entry must match the value defined into Dolibarr setup (setup of module 'Scheduled Jobs'). Because, a customer of a Saas platform will probably have no access to edit the cron file, it is also import that he has no way to edit the key into the Dolibarr setup, so the key in the cron command line will always match the key in Dolibarr setup, and the Dolibarr batches will executed without security errors. To be sure, the customer does not change the value, you can set this constant to 1 into the table [[Table_llx_const]].


*CRON_DISABLE_TUTORIAL_CRON ► Disable the tutorial about how to install the cron script (on a SaaS hosting, this should be done by the web hosting provider)
*'''CRON_DISABLE_TUTORIAL_CRON''' ► Disable the tutorial about how to install the cron script (on a SaaS hosting, this should be done by the web hosting provider)


*CRON_WARNING_DELAY_HOURS ► Set this value to the frequency set for the cron script (so a warning will be shown to user to warn it about max frequency of its scheduled jobs)
*'''CRON_WARNING_DELAY_HOURS''' ► Set this value to the frequency set for the cron script (so a warning will be shown to user to warn it about max frequency of its scheduled jobs)
   
   
*MAILING_NO_USING_PHPMAIL ► To avoid bad use of the emailing module, it is recommended to set this option to 1 (This option is described previously). Also you can complete the message visible by customers when they try to setup the SMTP credentials of their Dolibarr by using the constant MAILING_SMTP_SETUP_EMAILS_FOR_QUESTIONS (This option is described previously). For example, you can point to a FAQ on your website.
*'''MAILING_NO_USING_PHPMAIL''' ► To avoid bad use of the emailing module, it is recommended to set this option to 1 (This option is described previously). Also you can complete the message visible by customers when they try to setup the SMTP credentials of their Dolibarr by using the constant MAILING_SMTP_SETUP_EMAILS_FOR_QUESTIONS (This option is described previously). For example, you can point to a FAQ on your website.


*MAIL_MAX_NB_OF_RECIPIENTS_IN_SAME_EMAIL ► If you set a limit on number of recipient on your system, you can set some option to match the same values so users will be informed: So MAIL_MAX_NB_OF_RECIPIENTS_IN_SAME_EMAIL restricts sending of 1 email message to <code>x</code> recipients for the same email message (x for To: + CC: + BCC:). If not defined, value is <code>10</code>. Required to fight against spamming that include a ton of recipients in 1 message. Note that MAIL_MAX_NB_OF_RECIPIENTS_TO_IN_SAME_EMAIL, MAIL_MAX_NB_OF_RECIPIENTS_CC_IN_SAME_EMAIL and MAIL_MAX_NB_OF_RECIPIENTS_BCC_IN_SAME_EMAIL are also available. Note that this is not a hard limit; it is just the quantity that will be displayed on warnings on screen. For a real limit, this must be implemented into the system.
*'''MAIL_MAX_NB_OF_RECIPIENTS_IN_SAME_EMAIL''' ► If you set a limit on number of recipient on your system, you can set some option to match the same values so users will be informed: So '''MAIL_MAX_NB_OF_RECIPIENTS_IN_SAME_EMAIL''' restricts sending of 1 email message to <code>x</code> recipients for the same email message (x for To: + CC: + BCC:). If not defined, value is <code>10</code>. Required to fight against spamming that include a ton of recipients in 1 message. Note that '''MAIL_MAX_NB_OF_RECIPIENTS_TO_IN_SAME_EMAIL''', '''MAIL_MAX_NB_OF_RECIPIENTS_CC_IN_SAME_EMAIL''' and '''MAIL_MAX_NB_OF_RECIPIENTS_BCC_IN_SAME_EMAIL''' are also available. Note that this is not a hard limit; it is just the quantity that will be displayed on warnings on screen. For a real limit, this must be implemented into the system.


*MAILING_LIMIT_SENDBYDAY ► This is a limit of number of emails, an instance can send. Note that this is not a hard limit; it is just the quantity that will be displayed on warnings on screen. For a real limit, this must be implemented into the system.
*'''MAILING_LIMIT_SENDBYDAY''' ► This is a limit of number of emails, an instance can send. Note that this is not a hard limit; it is just the quantity that will be displayed on warnings on screen. For a real limit, this must be implemented into the system.


*MAILING_LIMIT_WARNING_PHPMAIL ► Set this value to a translation key. Then add translation keys into the instance so user will see a message when into the email setup page. For example, you can set a message to say ''Warning: To avoid abuse, when using default setup, you are restricted to 500 emails per day for all your application (account may be suspended in case of violation of this rule. You can setup application to use your own SMTP server for sending email so you want have no restriction at all (see menu Home-Setup-Emails)''
*'''MAILING_LIMIT_WARNING_PHPMAIL''' ► Set this value to a translation key. Then add translation keys into the instance so user will see a message when into the email setup page. For example, you can set a message to say ''Warning: To avoid abuse, when using default setup, you are restricted to 500 emails per day for all your application (account may be suspended in case of violation of this rule. You can setup application to use your own SMTP server for sending email so you want have no restriction at all (see menu Home-Setup-Emails)''


*MAIN_ALWAYS_CREATE_LOCK_AFTER_LAST_UPGRADE ► If set, when you launch upgrades of your customer instances, you are sure that the upgrade process recreate automatically the file install.lock so the administration tools like install.php and repair.php can't be used on your customer instance (until the lock file is deleted).
*'''MAIN_ALWAYS_CREATE_LOCK_AFTER_LAST_UPGRADE''' ► If set, when you launch upgrades of your customer instances, you are sure that the upgrade process recreate automatically the file install.lock so the administration tools like install.php and repair.php can't be used on your customer instance (until the lock file is deleted).


*MAIN_EXTERNAL_SMTP_CLIENT_IP_ADDRESS ► (A better name of this option should be MAIN_EXTERNAL_MAIL_CLIENT_IP_ADDRESS). Set here the list of IPs where your Dolibarr instances are hosted. So when your customer go into the setup area of email:
*'''MAIN_EXTERNAL_SMTP_CLIENT_IP_ADDRESS''' ► (A better name of this option should be MAIN_EXTERNAL_MAIL_CLIENT_IP_ADDRESS). Set here the list of IPs where your Dolibarr instances are hosted. So when your customer go into the setup area of email:
**If he chose mail method, a message will explain him how to setup its SPF record for its email domain (showing the list of IP). This is to avoid to have its emails, sent from its Dolibarr instance, fails due to strict antispam rule of some emailing servers.
**If he chose mail method, a message will explain him how to setup its SPF record for its email domain (showing the list of IP). This is to avoid to have its emails, sent from its Dolibarr instance, fails due to strict antispam rule of some emailing servers.
**If he chose smtp method, a message will explain him the list of IP he can use if there is restriction on IP by the SMTP agent. If you also need to add a message to help SPF setup, see option MAIN_EXTERNAL_SMTP_SPF_STRING_TO_ADD.
**If he chose smtp method, a message will explain him the list of IP he can use if there is restriction on IP by the SMTP agent. If you also need to add a message to help SPF setup, see option '''MAIN_EXTERNAL_SMTP_SPF_STRING_TO_ADD'''.


*MAIN_EXTERNAL_SMTP_SPF_STRING_TO_ADD ► Set here the string to add in the SPF record This string will be shown into a help message when the user in in the setup of email page and has choose a method using an external SMTP server.
*'''MAIN_EXTERNAL_SMTP_SPF_STRING_TO_ADD''' ► Set here the string to add in the SPF record This string will be shown into a help message when the user in in the setup of email page and has choose a method using an external SMTP server.


*MAIN_FIRST_PING_OK_ID ► Set this value to "disabled" to remove completely any ping after a complete setup.
*'''MAIN_FIRST_PING_OK_ID''' ► Set this value to "disabled" to remove completely any ping after a complete setup.


*MAIN_FILECHECK_LOCAL_SUFFIX and MAIN_FILECHECK_LOCAL_EXT ► If you offer a customized or patched version of Dolibarr, when the user will use the tool to check the integrity of files, the default xml file name used for signature checking will be the official file provided by the Dolibarr team, so it does not includes your own changes. To have the suggested signature file being your own file, you can set the constant MAIN_FILECHECK_LOCAL_SUFFIX to a suffix. For example, set this to "'''-mysaassolution'''". So, when the user will use the file integrity tool, the default file to check for signature will be "'''/install/filelist-10.0.2-mysaassolution.xml'''" instead of "'''/install/filelist-10.0.2.xml'''". All you have to do is generate the signature file '''mysaassolution''' using the tool '''build/generate_filelist_xml.php''' and put this file into the install directory of your customer instance. Doing this, your customer, and yourself, will be able to check if a file was modified without being disturbed by false alerts due to your customized files or patches (they will be included in the signature used for check). Also, if you want to zip the customized signature file into "'''/install/filelist-10.0.2-mysaassolution.xml.zip'''", you can set the constant MAIN_FILECHECK_LOCAL_EXT to '.zip'.
*'''MAIN_FILECHECK_LOCAL_SUFFIX''' and '''MAIN_FILECHECK_LOCAL_EXT''' ► If you offer a customized or patched version of Dolibarr, when the user will use the tool to check the integrity of files, the default xml file name used for signature checking will be the official file provided by the Dolibarr team, so it does not includes your own changes. To have the suggested signature file being your own file, you can set the constant MAIN_FILECHECK_LOCAL_SUFFIX to a suffix. For example, set this to "'''-mysaassolution'''". So, when the user will use the file integrity tool, the default file to check for signature will be "'''/install/filelist-10.0.2-mysaassolution.xml'''" instead of "'''/install/filelist-10.0.2.xml'''". All you have to do is generate the signature file '''mysaassolution''' using the tool '''build/generate_filelist_xml.php''' and put this file into the install directory of your customer instance. Doing this, your customer, and yourself, will be able to check if a file was modified without being disturbed by false alerts due to your customized files or patches (they will be included in the signature used for check). Also, if you want to zip the customized signature file into "'''/install/filelist-10.0.2-mysaassolution.xml.zip'''", you can set the constant MAIN_FILECHECK_LOCAL_EXT to '.zip'.


*MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP ► Set to 1 by default (so warning is hidden). You can set it to 0 to show a warning to encourage admin to set its own SMTP service.
*'''MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP''' ► Set to 1 by default (so warning is hidden). You can set it to 0 to show a warning to encourage admin to set its own SMTP service.


*MAIN_MIN_NB_ENABLED_MODULE_FOR_WARNING ► If set to N, the warning saying modules are not activated will be shown if number of activated module is < N (Having this variable not defined is same than having it set to 1). This may be usefull if you preinstall an application with some modules already loaded by default and you want to keep the warning to be sure the user will enable other modules he need, even if some modules are already enabed.
*'''MAIN_MIN_NB_ENABLED_MODULE_FOR_WARNING''' ► If set to N, the warning saying modules are not activated will be shown if number of activated module is < N (Having this variable not defined is same than having it set to 1). This may be usefull if you preinstall an application with some modules already loaded by default and you want to keep the warning to be sure the user will enable other modules he need, even if some modules are already enabed.


*MAIN_NO_UPGRADE_REDIRECT_ON_LEVEL_3_CHANGE ► The page to make the migration is not shown automatically when deploy files of version X.Y.Z+delta are installed on database version X.Y.Z. The upgrade page will be shown automatically only if there is a change on value of X or Y in version.
*'''MAIN_NO_UPGRADE_REDIRECT_ON_LEVEL_3_CHANGE''' ► The page to make the migration is not shown automatically when deploy files of version X.Y.Z+delta are installed on database version X.Y.Z. The upgrade page will be shown automatically only if there is a change on value of X or Y in version.


*SYSLOG_DISABLE_LOGHANDLER_SYSLOG ► Set this to 1 to disable usage of syslog (having all customer instances logging in the same system file is not a good idea).
*'''SYSLOG_DISABLE_LOGHANDLER_SYSLOG''' ► Set this to 1 to disable usage of syslog (having all customer instances logging in the same system file is not a good idea).


*WEBSITE_REPLACE_INFO_ABOUT_USAGE_WITH_WEBSERVER ► Put here a text or a translation key of a text to show when the user will use the feature "Deploy" when he want to deploy a website done with Dolibarr CMS. So you can, for example, show him a message that this feature is not part of its subscription and putting a website online may need a complementary subscription.
*'''WEBSITE_REPLACE_INFO_ABOUT_USAGE_WITH_WEBSERVER''' ► Put here a text or a translation key of a text to show when the user will use the feature "Deploy" when he want to deploy a website done with Dolibarr CMS. So you can, for example, show him a message that this feature is not part of its subscription and putting a website online may need a complementary subscription.


[[#Top|(back to top)]]
[[#Top|(back to top)]]


<br />
<br />
676

edits

Navigation menu