mirror of
https://github.com/Dolibarr/dolibarr.git
synced 2026-02-11 10:22:37 +01:00
Merge pull request #2 from IAS-SYSTEMS-CSC/develop
develop > dolibarr-fixes
This commit is contained in:
170
ChangeLog
170
ChangeLog
@@ -2,7 +2,173 @@
|
||||
English Dolibarr ChangeLog
|
||||
--------------------------------------------------------------
|
||||
|
||||
***** ChangeLog for 8.0.0 compared to 7.0.3 *****
|
||||
***** ChangeLog for 8.0.0 compared to 7.0.0 *****
|
||||
|
||||
For Users:
|
||||
NEW: Experimental module: Ticket
|
||||
NEW: Experimental module: WebDAV
|
||||
NEW: Accept anonymous events (no user assigned)
|
||||
NEW: Accountancy - Add import on general ledger
|
||||
NEW: Accountancy - Show journal name on journal page and hide button draft export (Add an option in admin)
|
||||
NEW: Can create event from record card of a company and member
|
||||
NEW: Add a button to create Stripe customer from the Payment mode tab
|
||||
NEW: Add accounting account number on product tooltip
|
||||
NEW: add any predefined mail content
|
||||
NEW: Add arrows to navigate into containers in website module
|
||||
NEW: Add a tab to specify accountant/auditor of the company
|
||||
NEW: Add Date delivery and Availability on Propals List
|
||||
NEW: Add date in goods reception supplier order table
|
||||
NEW: Add delivery_time_days of suppliers in export profile
|
||||
NEW: Add Documents'tab to expedition module
|
||||
NEW: Use dol_print_phone in thirdparty list page to format phone
|
||||
NEW: Add entry for the GDPR contact
|
||||
NEW: Add extrafield type "html"
|
||||
NEW: Add file number in accountant card and update export filename
|
||||
NEW: Add files management on products lot
|
||||
NEW: add filter on project task list
|
||||
NEW: Add hidden option COMPANY_AQUARIUM_CLEAN_REGEX to clean generated
|
||||
NEW: add internal stripe payment page for invoice
|
||||
NEW: Add key __USER_REMOTE_IP__ into available substitution variables
|
||||
NEW: Add link between credit note invoice and origin
|
||||
NEW: Add linked file tab to vat
|
||||
NEW: add link to stripe's info in bank menu
|
||||
NEW: Add margin filters
|
||||
NEW: Add mass action enable/disable on cron job list
|
||||
NEW: Add mass action on project's list to close projects
|
||||
NEW: Add method to register distributed payments on invoices
|
||||
NEW: Add multicurrency support for product buy price for supplier propales, orders and invoices
|
||||
NEW: Add name of day in the timesheet input page per day.
|
||||
NEW: add new parameters for tcpf encryption
|
||||
NEW: add optional esign field in pdf propal
|
||||
NEW: Add option BANK_ACCOUNT_ALLOW_EXTERNAL_DOWNLOAD
|
||||
NEW: Add option CONTRACT_SYNC_PLANNED_DATE_OF_SERVICES
|
||||
NEW: Add param $dolibarr_main_restrict_ip in config file to limit ips
|
||||
NEW: add pdf function to check if pdf file is protected/encrypted
|
||||
NEW: Add pdf template for stock/warehouse module
|
||||
NEW: Add phone format for a lot of countries
|
||||
NEW: Add product and product categories filters on customer margins
|
||||
NEW: Add product categories filter on product margin
|
||||
NEW: Add romanian chart of accounts
|
||||
NEW: Add stats in salaries module
|
||||
NEW: add stripe transaction
|
||||
NEW: Add tab contact on supplier proposals
|
||||
NEW: Add total of time spent in timespent page at top of page too.
|
||||
NEW: Add trigger CONTRACT_MODIFY
|
||||
NEW: Add triggers on ECM object and add fill src_object_type/id fields
|
||||
NEW: Add type of website container/page into dictionary
|
||||
NEW: advance target filtering can be used everywhere with tpl and fk_element
|
||||
NEW: Allow negative quantity for dispatch (supplier order)
|
||||
NEW: bank reconcile: checkbox to select all bank operations
|
||||
NEW: Better performance with openldap
|
||||
NEW: Can add filter actiontype and notactiontype on event ical export
|
||||
NEW: Can add product in supplier order/invoice even w/o predefined price
|
||||
NEW: cancel orders on massaction
|
||||
NEW: Can crop image files attached in "document" tabs of a member
|
||||
NEW: Can delete dir content in media and ECM module recursively
|
||||
NEW: Can dispatch if more than ordered (if hidden option set)
|
||||
NEW: Can edit the text color for title line of tables
|
||||
NEW: Can enter time spent from the list of time spent of project
|
||||
NEW: Can export leave requests
|
||||
NEW: Can filter on account range in general ledger grouped by account
|
||||
NEW: Can filter on country and taxid into the binding page
|
||||
NEW: Can filter on progression in timesheet
|
||||
NEW: Can fix the bank account of a payment if payment not conciliated
|
||||
NEW: Can force usage of shared link for photo of products
|
||||
NEW: Can get template of email from its label
|
||||
NEW: Can see Unit Purchase Value of product in stock movement
|
||||
NEW: Can select from the user list into send form email (For field to and CC)
|
||||
NEW: Can select sample to use when creating a new page
|
||||
NEW: can send mail from project card
|
||||
NEW: Can set position of images in module tickets
|
||||
NEW: Can set the reply-to into email sent
|
||||
NEW: Can set the start/end date of service line in invoice templates
|
||||
NEW: Can share any file from the "Document" tab.
|
||||
NEW: Can sort on priority in task scheduler list
|
||||
NEW: Can sort order of files in attach tab for leave and expensereport
|
||||
NEW: Can use setValueFrom without user modification field
|
||||
NEW: Cat set the encryption algorithm for extrafields of type password
|
||||
NEW: check idprof1 for country pt
|
||||
NEW: default add action: new param $backurlforcard to redirect to card
|
||||
NEW: default warehouse field for products + prefill warehouses when dispatching supplier orders
|
||||
NEW: Display price HT on all commercial area boards
|
||||
NEW: display total on contract service list
|
||||
NEW: display weight volume in proposal
|
||||
NEW: Edit of extrafields position page on the edit form
|
||||
NEW: Experimental DAV module provides a public and private directory
|
||||
NEW: export filter models can be share or not by user
|
||||
NEW: Externalsite module can accept iframe content.
|
||||
NEW: Filter export model is now by user
|
||||
NEW: Finish implementation of option PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES
|
||||
NEW: generalize use of button to create new element from list
|
||||
NEW: hidden conf AGENDA_NB_WEEKS_IN_VIEW_PER_USER to set nb weeks to show into per user view
|
||||
NEW: hidden conf to assign category to thirparty that are neither customer nor prospect or supplier
|
||||
NEW: hidden conf to set nb weeks to show into user view
|
||||
NEW: hidden option MAIN_DISABLE_FREE_LINES
|
||||
NEW: improve way of adding users/sales representative to thirdparty
|
||||
NEW: Introduce option THIRDPARTY_QUICKSEARCH_ON_FIELDS to personalize fields use to search on quick search.
|
||||
NEW: Introduce permission "approve" for "leave request" like for "expense report"
|
||||
NEW: Load product data optional fields to the line -> enables to use "line_options_{extrafield}"
|
||||
NEW: Look and feel v8 - Show Picto "+" on all links "Add record"
|
||||
NEW: Look and feel v8: Use a different picto for delete and unlink
|
||||
NEW: mail templates for projects
|
||||
NEW: Module variant supported on services
|
||||
NEW: monthly VAT report show "Claimed for the period" + "Paid during this
|
||||
NEW: Mutualize code for action="update_extras"
|
||||
NEW: On invoice card, show accounting account linked
|
||||
NEW: Online payment of invoice and subscription record the payment
|
||||
NEW: OnSearchAndListGoOnCustomerOrSupplierCard conf
|
||||
NEW: Optimize load of hooks classes (save 1-5Kb of memory)
|
||||
NEW: Option MAIN_SHOW_REGION_IN_STATE renamed into MAIN_SHOW_REGION_IN_STATE_SELECT are more complete
|
||||
NEW: Option to force all emails recipient
|
||||
NEW: Hidden option to send to salaries into emails forms
|
||||
NEW: order minimum amount
|
||||
NEW: add price in burger menu on mouvement list
|
||||
NEW: Report a list of leave requests for a month
|
||||
NEW: Section of files generated by mass action not visible if empty
|
||||
NEW: send mails from project card
|
||||
NEW: Show also size in bytes in tooltip if visible unit is not bytes
|
||||
NEW: Show keyboard shortcut of nav arrow into tooltip
|
||||
NEW: Show last result code of cron jobs in error in red
|
||||
NEW: Show region in company info & Global option to show state code MAIN_SHOW_STATE_CODE
|
||||
NEW: Show total number of records by category
|
||||
NEW: Show total of time consumed in week in time spent entry page
|
||||
NEW: Stripe online payments reuse the same stripe customer account
|
||||
NEW: Suggest link to pay online for customer orders
|
||||
NEW: supplier credit notes is now supported like for customer credit notes
|
||||
NEW: supplier order/order lines export: add supplier product ref
|
||||
NEW: supplier relative discounts
|
||||
NEW: Support alternative aliases of page name in website
|
||||
NEW: syslog file autoclean
|
||||
NEW: thirdparty categ filter on lists
|
||||
NEW: Use a css style for weekend in time spent
|
||||
NEW: Use common substitution rule for language to get translation in ODT
|
||||
NEW: Variable __ONLINE_PAYMENT_URL__ available in email templates
|
||||
|
||||
For developers:
|
||||
NEW: class reposition can also work on POST (not only GET)
|
||||
NEW: add a hook in dol_print_phone
|
||||
NEW: The field "visible" on extrafield can accept expression as condition
|
||||
NEW: Upgrade of Stripe lib to 6.4.1
|
||||
NEW: work on CommonObject 'array' field typeNew common object array
|
||||
NEW: method Form::selectArrayFilter() + use in left menu search
|
||||
NEW: [REST API] Add the possibility to remove a category from a thirdparty
|
||||
NEW: doActions on categorycard
|
||||
NEW: add "moreHtmlRef" hook
|
||||
NEW: add hook for more permissions control
|
||||
NEW: add hook moreHtmlStatus to complete to status on banners
|
||||
NEW: Add hook printEmail
|
||||
NEW: Add hook setContentSecurityPolicy
|
||||
NEW: Add password_hash as a hash algorithm
|
||||
NEW: Add dol_is_link function
|
||||
NEW: Adds a contact to an invoice with REST API
|
||||
NEW: Adds a payment for the list of invoices given as parameter
|
||||
NEW: adds billing contacts ids to REST API returns
|
||||
NEW: Add showempty parameter in country selection
|
||||
NEW: add printUserListWhere hook
|
||||
NEW: add "printUserPasswordField" hooks
|
||||
NEW: Call to trigger on payment social contribution creation
|
||||
NEW: Call to trigger on social contribution creation
|
||||
NEW: hook getnomurltooltip is replaced with hook getNomUrl more powerfull
|
||||
|
||||
WARNING:
|
||||
|
||||
@@ -24,6 +190,8 @@ Following changes may create regressions for some external modules, but were nec
|
||||
* Hook getnomurltooltip provide a duplicate feature compared to hook getNomUrl so all hooks getnomurltooltip
|
||||
are now replaced with hook getNomUrl.
|
||||
|
||||
|
||||
|
||||
***** ChangeLog for 7.0.3 compared to 7.0.2 *****
|
||||
FIX: 7.0 task contact card without withproject parameters
|
||||
FIX: #8722
|
||||
|
||||
@@ -37,11 +37,11 @@ $rowid=GETPOST('rowid','int');
|
||||
$entity=GETPOST('entity','int');
|
||||
$action=GETPOST('action','alpha');
|
||||
$update=GETPOST('update','alpha');
|
||||
$delete=GETPOST('delete'); // Do not use alpha here
|
||||
$delete=GETPOST('delete','none'); // Do not use alpha here
|
||||
$debug=GETPOST('debug','int');
|
||||
$consts=GETPOST('const','array');
|
||||
$constname=GETPOST('constname','alpha');
|
||||
$constvalue=GETPOST('constvalue');
|
||||
$constvalue=GETPOST('constvalue','none'); // We shoul dbe able to send everything here
|
||||
$constnote=GETPOST('constnote','alpha');
|
||||
|
||||
|
||||
@@ -248,7 +248,7 @@ if ($result)
|
||||
while ($i < $num)
|
||||
{
|
||||
$obj = $db->fetch_object($result);
|
||||
|
||||
|
||||
|
||||
print "\n";
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ if (!$user->admin) accessforbidden();
|
||||
$id=GETPOST('rowid','int');
|
||||
$action=GETPOST('action','alpha');
|
||||
|
||||
$mode = GETPOST('mode')?GETPOST('mode'):'createform'; // 'createform', 'filters', 'sortorder', 'focus'
|
||||
$mode = GETPOST('mode','aZ09')?GETPOST('mode','aZ09'):'createform'; // 'createform', 'filters', 'sortorder', 'focus'
|
||||
|
||||
$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit;
|
||||
$sortfield = GETPOST("sortfield",'alpha');
|
||||
|
||||
@@ -89,7 +89,7 @@ if ($action == 'update')
|
||||
if ($result > 0)
|
||||
{
|
||||
$menu->titre=GETPOST('titre', 'alpha');
|
||||
$menu->leftmenu=GETPOST('leftmenu', 'alpha');
|
||||
$menu->leftmenu=GETPOST('leftmenu', 'aZ09');
|
||||
$menu->url=GETPOST('url','alpha');
|
||||
$menu->langs=GETPOST('langs','alpha');
|
||||
$menu->position=GETPOST('position','int');
|
||||
|
||||
@@ -157,7 +157,7 @@ $i=0;
|
||||
foreach($_SESSION as $key => $val)
|
||||
{
|
||||
if ($i > 0) print ', ';
|
||||
print $key.' => '.$val;
|
||||
print $key.' => '.dol_escape_htmltag($val);
|
||||
$i++;
|
||||
}
|
||||
print '</td></tr>'."\n";
|
||||
|
||||
@@ -67,92 +67,92 @@ if ($action == 'updateMask') {
|
||||
} elseif ($action == 'setvar') {
|
||||
include_once DOL_DOCUMENT_ROOT . "/core/lib/files.lib.php";
|
||||
|
||||
$notification_email = GETPOST('TICKETS_NOTIFICATION_EMAIL_FROM', 'alpha');
|
||||
$notification_email = GETPOST('TICKET_NOTIFICATION_EMAIL_FROM', 'alpha');
|
||||
if (!empty($notification_email)) {
|
||||
$res = dolibarr_set_const($db, 'TICKETS_NOTIFICATION_EMAIL_FROM', $notification_email, 'chaine', 0, '', $conf->entity);
|
||||
$res = dolibarr_set_const($db, 'TICKET_NOTIFICATION_EMAIL_FROM', $notification_email, 'chaine', 0, '', $conf->entity);
|
||||
} else {
|
||||
$res = dolibarr_set_const($db, 'TICKETS_NOTIFICATION_EMAIL_FROM', '', 'chaine', 0, '', $conf->entity);
|
||||
$res = dolibarr_set_const($db, 'TICKET_NOTIFICATION_EMAIL_FROM', '', 'chaine', 0, '', $conf->entity);
|
||||
}
|
||||
if (!$res > 0) {
|
||||
$error++;
|
||||
}
|
||||
|
||||
// altairis : differentiate notification email FROM and TO
|
||||
$notification_email_to = GETPOST('TICKETS_NOTIFICATION_EMAIL_TO', 'alpha');
|
||||
$notification_email_to = GETPOST('TICKET_NOTIFICATION_EMAIL_TO', 'alpha');
|
||||
if (!empty($notification_email_to)) {
|
||||
$res = dolibarr_set_const($db, 'TICKETS_NOTIFICATION_EMAIL_TO', $notification_email_to, 'chaine', 0, '', $conf->entity);
|
||||
$res = dolibarr_set_const($db, 'TICKET_NOTIFICATION_EMAIL_TO', $notification_email_to, 'chaine', 0, '', $conf->entity);
|
||||
} else {
|
||||
$res = dolibarr_set_const($db, 'TICKETS_NOTIFICATION_EMAIL_TO', '', 'chaine', 0, '', $conf->entity);
|
||||
$res = dolibarr_set_const($db, 'TICKET_NOTIFICATION_EMAIL_TO', '', 'chaine', 0, '', $conf->entity);
|
||||
}
|
||||
if (!$res > 0) {
|
||||
$error++;
|
||||
}
|
||||
|
||||
$mail_new_ticket = GETPOST('TICKETS_MESSAGE_MAIL_NEW', 'alpha');
|
||||
$mail_new_ticket = GETPOST('TICKET_MESSAGE_MAIL_NEW', 'alpha');
|
||||
if (!empty($mail_new_ticket)) {
|
||||
$res = dolibarr_set_const($db, 'TICKETS_MESSAGE_MAIL_NEW', $mail_new_ticket, 'chaine', 0, '', $conf->entity);
|
||||
$res = dolibarr_set_const($db, 'TICKET_MESSAGE_MAIL_NEW', $mail_new_ticket, 'chaine', 0, '', $conf->entity);
|
||||
} else {
|
||||
$res = dolibarr_set_const($db, 'TICKETS_MESSAGE_MAIL_NEW', $langs->trans('TicketMessageMailNewText'), 'chaine', 0, '', $conf->entity);
|
||||
$res = dolibarr_set_const($db, 'TICKET_MESSAGE_MAIL_NEW', $langs->trans('TicketMessageMailNewText'), 'chaine', 0, '', $conf->entity);
|
||||
}
|
||||
if (!$res > 0) {
|
||||
$error++;
|
||||
}
|
||||
|
||||
$mail_intro = GETPOST('TICKETS_MESSAGE_MAIL_INTRO', 'alpha');
|
||||
$mail_intro = GETPOST('TICKET_MESSAGE_MAIL_INTRO', 'alpha');
|
||||
if (!empty($mail_intro)) {
|
||||
$res = dolibarr_set_const($db, 'TICKETS_MESSAGE_MAIL_INTRO', $mail_intro, 'chaine', 0, '', $conf->entity);
|
||||
$res = dolibarr_set_const($db, 'TICKET_MESSAGE_MAIL_INTRO', $mail_intro, 'chaine', 0, '', $conf->entity);
|
||||
} else {
|
||||
$res = dolibarr_set_const($db, 'TICKETS_MESSAGE_MAIL_INTRO', $langs->trans('TicketMessageMailIntroText'), 'chaine', 0, '', $conf->entity);
|
||||
$res = dolibarr_set_const($db, 'TICKET_MESSAGE_MAIL_INTRO', $langs->trans('TicketMessageMailIntroText'), 'chaine', 0, '', $conf->entity);
|
||||
}
|
||||
if (!$res > 0) {
|
||||
$error++;
|
||||
}
|
||||
|
||||
$mail_signature = GETPOST('TICKETS_MESSAGE_MAIL_SIGNATURE', 'alpha');
|
||||
$mail_signature = GETPOST('TICKET_MESSAGE_MAIL_SIGNATURE', 'alpha');
|
||||
if (!empty($mail_signature)) {
|
||||
$res = dolibarr_set_const($db, 'TICKETS_MESSAGE_MAIL_SIGNATURE', $mail_signature, 'chaine', 0, '', $conf->entity);
|
||||
$res = dolibarr_set_const($db, 'TICKET_MESSAGE_MAIL_SIGNATURE', $mail_signature, 'chaine', 0, '', $conf->entity);
|
||||
} else {
|
||||
$res = dolibarr_set_const($db, 'TICKETS_MESSAGE_MAIL_SIGNATURE', $langs->trans('TicketMessageMailSignatureText'), 'chaine', 0, '', $conf->entity);
|
||||
$res = dolibarr_set_const($db, 'TICKET_MESSAGE_MAIL_SIGNATURE', $langs->trans('TicketMessageMailSignatureText'), 'chaine', 0, '', $conf->entity);
|
||||
}
|
||||
if (!$res > 0) {
|
||||
$error++;
|
||||
}
|
||||
|
||||
$url_interface = GETPOST('TICKETS_URL_PUBLIC_INTERFACE', 'alpha');
|
||||
$url_interface = GETPOST('TICKET_URL_PUBLIC_INTERFACE', 'alpha');
|
||||
if (!empty($mail_signature)) {
|
||||
$res = dolibarr_set_const($db, 'TICKETS_URL_PUBLIC_INTERFACE', $url_interface, 'chaine', 0, '', $conf->entity);
|
||||
$res = dolibarr_set_const($db, 'TICKET_URL_PUBLIC_INTERFACE', $url_interface, 'chaine', 0, '', $conf->entity);
|
||||
} else {
|
||||
$res = dolibarr_set_const($db, 'TICKETS_URL_PUBLIC_INTERFACE', '', 'chaine', 0, '', $conf->entity);
|
||||
$res = dolibarr_set_const($db, 'TICKET_URL_PUBLIC_INTERFACE', '', 'chaine', 0, '', $conf->entity);
|
||||
}
|
||||
if (!$res > 0) {
|
||||
$error++;
|
||||
}
|
||||
|
||||
$topic_interface = GETPOST('TICKETS_PUBLIC_INTERFACE_TOPIC', 'alpha');
|
||||
$topic_interface = GETPOST('TICKET_PUBLIC_INTERFACE_TOPIC', 'alpha');
|
||||
if (!empty($mail_signature)) {
|
||||
$res = dolibarr_set_const($db, 'TICKETS_PUBLIC_INTERFACE_TOPIC', $topic_interface, 'chaine', 0, '', $conf->entity);
|
||||
$res = dolibarr_set_const($db, 'TICKET_PUBLIC_INTERFACE_TOPIC', $topic_interface, 'chaine', 0, '', $conf->entity);
|
||||
} else {
|
||||
$res = dolibarr_set_const($db, 'TICKETS_PUBLIC_INTERFACE_TOPIC', '', 'chaine', 0, '', $conf->entity);
|
||||
$res = dolibarr_set_const($db, 'TICKET_PUBLIC_INTERFACE_TOPIC', '', 'chaine', 0, '', $conf->entity);
|
||||
}
|
||||
if (!$res > 0) {
|
||||
$error++;
|
||||
}
|
||||
|
||||
$text_home = GETPOST('TICKETS_PUBLIC_TEXT_HOME', 'alpha');
|
||||
$text_home = GETPOST('TICKET_PUBLIC_TEXT_HOME', 'alpha');
|
||||
if (!empty($mail_signature)) {
|
||||
$res = dolibarr_set_const($db, 'TICKETS_PUBLIC_TEXT_HOME', $text_home, 'chaine', 0, '', $conf->entity);
|
||||
$res = dolibarr_set_const($db, 'TICKET_PUBLIC_TEXT_HOME', $text_home, 'chaine', 0, '', $conf->entity);
|
||||
} else {
|
||||
$res = dolibarr_set_const($db, 'TICKETS_PUBLIC_TEXT_HOME', $langs->trans('TicketPublicInterfaceTextHome'), 'chaine', 0, '', $conf->entity);
|
||||
$res = dolibarr_set_const($db, 'TICKET_PUBLIC_TEXT_HOME', $langs->trans('TicketPublicInterfaceTextHome'), 'chaine', 0, '', $conf->entity);
|
||||
}
|
||||
if (!$res > 0) {
|
||||
$error++;
|
||||
}
|
||||
|
||||
$text_help = GETPOST('TICKETS_PUBLIC_TEXT_HELP_MESSAGE', 'alpha');
|
||||
$text_help = GETPOST('TICKET_PUBLIC_TEXT_HELP_MESSAGE', 'alpha');
|
||||
if (!empty($text_help)) {
|
||||
$res = dolibarr_set_const($db, 'TICKETS_PUBLIC_TEXT_HELP_MESSAGE', $text_help, 'chaine', 0, '', $conf->entity);
|
||||
$res = dolibarr_set_const($db, 'TICKET_PUBLIC_TEXT_HELP_MESSAGE', $text_help, 'chaine', 0, '', $conf->entity);
|
||||
} else {
|
||||
$res = dolibarr_set_const($db, 'TICKETS_PUBLIC_TEXT_HELP_MESSAGE', $langs->trans('TicketPublicPleaseBeAccuratelyDescribe'), 'chaine', 0, '', $conf->entity);
|
||||
$res = dolibarr_set_const($db, 'TICKET_PUBLIC_TEXT_HELP_MESSAGE', $langs->trans('TicketPublicPleaseBeAccuratelyDescribe'), 'chaine', 0, '', $conf->entity);
|
||||
}
|
||||
if (!$res > 0) {
|
||||
$error++;
|
||||
@@ -160,34 +160,34 @@ if ($action == 'updateMask') {
|
||||
}
|
||||
|
||||
if ($action == 'setvarother') {
|
||||
$param_enable_public_interface = GETPOST('TICKETS_ENABLE_PUBLIC_INTERFACE', 'alpha');
|
||||
$res = dolibarr_set_const($db, 'TICKETS_ENABLE_PUBLIC_INTERFACE', $param_enable_public_interface, 'chaine', 0, '', $conf->entity);
|
||||
$param_enable_public_interface = GETPOST('TICKET_ENABLE_PUBLIC_INTERFACE', 'alpha');
|
||||
$res = dolibarr_set_const($db, 'TICKET_ENABLE_PUBLIC_INTERFACE', $param_enable_public_interface, 'chaine', 0, '', $conf->entity);
|
||||
if (!$res > 0) {
|
||||
$error++;
|
||||
}
|
||||
|
||||
$param_must_exists = GETPOST('TICKETS_EMAIL_MUST_EXISTS', 'alpha');
|
||||
$res = dolibarr_set_const($db, 'TICKETS_EMAIL_MUST_EXISTS', $param_must_exists, 'chaine', 0, '', $conf->entity);
|
||||
$param_must_exists = GETPOST('TICKET_EMAIL_MUST_EXISTS', 'alpha');
|
||||
$res = dolibarr_set_const($db, 'TICKET_EMAIL_MUST_EXISTS', $param_must_exists, 'chaine', 0, '', $conf->entity);
|
||||
if (!$res > 0) {
|
||||
$error++;
|
||||
}
|
||||
|
||||
$param_disable_email = GETPOST('TICKETS_DISABLE_ALL_MAILS', 'alpha');
|
||||
$res = dolibarr_set_const($db, 'TICKETS_DISABLE_ALL_MAILS', $param_disable_email, 'chaine', 0, '', $conf->entity);
|
||||
$param_disable_email = GETPOST('TICKET_DISABLE_ALL_MAILS', 'alpha');
|
||||
$res = dolibarr_set_const($db, 'TICKET_DISABLE_ALL_MAILS', $param_disable_email, 'chaine', 0, '', $conf->entity);
|
||||
if (!$res > 0) {
|
||||
$error++;
|
||||
}
|
||||
|
||||
$param_activate_log_by_email = GETPOST('TICKETS_ACTIVATE_LOG_BY_EMAIL', 'alpha');
|
||||
$res = dolibarr_set_const($db, 'TICKETS_ACTIVATE_LOG_BY_EMAIL', $param_activate_log_by_email, 'chaine', 0, '', $conf->entity);
|
||||
$param_activate_log_by_email = GETPOST('TICKET_ACTIVATE_LOG_BY_EMAIL', 'alpha');
|
||||
$res = dolibarr_set_const($db, 'TICKET_ACTIVATE_LOG_BY_EMAIL', $param_activate_log_by_email, 'chaine', 0, '', $conf->entity);
|
||||
if (!$res > 0) {
|
||||
$error++;
|
||||
}
|
||||
|
||||
if ($conf->global->MAIN_FEATURES_LEVEL >= 2)
|
||||
{
|
||||
$param_show_module_logo = GETPOST('TICKETS_SHOW_MODULE_LOGO', 'alpha');
|
||||
$res = dolibarr_set_const($db, 'TICKETS_SHOW_MODULE_LOGO', $param_show_module_logo, 'chaine', 0, '', $conf->entity);
|
||||
$param_show_module_logo = GETPOST('TICKET_SHOW_MODULE_LOGO', 'alpha');
|
||||
$res = dolibarr_set_const($db, 'TICKET_SHOW_MODULE_LOGO', $param_show_module_logo, 'chaine', 0, '', $conf->entity);
|
||||
if (!$res > 0) {
|
||||
$error++;
|
||||
}
|
||||
@@ -195,21 +195,21 @@ if ($action == 'setvarother') {
|
||||
|
||||
if ($conf->global->MAIN_FEATURES_LEVEL >= 2)
|
||||
{
|
||||
$param_notification_also_main_addressemail = GETPOST('TICKETS_NOTIFICATION_ALSO_MAIN_ADDRESS', 'alpha');
|
||||
$res = dolibarr_set_const($db, 'TICKETS_NOTIFICATION_ALSO_MAIN_ADDRESS', $param_notification_also_main_addressemail, 'chaine', 0, '', $conf->entity);
|
||||
$param_notification_also_main_addressemail = GETPOST('TICKET_NOTIFICATION_ALSO_MAIN_ADDRESS', 'alpha');
|
||||
$res = dolibarr_set_const($db, 'TICKET_NOTIFICATION_ALSO_MAIN_ADDRESS', $param_notification_also_main_addressemail, 'chaine', 0, '', $conf->entity);
|
||||
if (!$res > 0) {
|
||||
$error++;
|
||||
}
|
||||
}
|
||||
|
||||
$param_limit_view = GETPOST('TICKETS_LIMIT_VIEW_ASSIGNED_ONLY', 'alpha');
|
||||
$res = dolibarr_set_const($db, 'TICKETS_LIMIT_VIEW_ASSIGNED_ONLY', $param_limit_view, 'chaine', 0, '', $conf->entity);
|
||||
$param_limit_view = GETPOST('TICKET_LIMIT_VIEW_ASSIGNED_ONLY', 'alpha');
|
||||
$res = dolibarr_set_const($db, 'TICKET_LIMIT_VIEW_ASSIGNED_ONLY', $param_limit_view, 'chaine', 0, '', $conf->entity);
|
||||
if (!$res > 0) {
|
||||
$error++;
|
||||
}
|
||||
|
||||
$param_auto_assign = GETPOST('TICKETS_AUTO_ASSIGN_USER_CREATE', 'alpha');
|
||||
$res = dolibarr_set_const($db, 'TICKETS_AUTO_ASSIGN_USER_CREATE', $param_auto_assign, 'chaine', 0, '', $conf->entity);
|
||||
$param_auto_assign = GETPOST('TICKET_AUTO_ASSIGN_USER_CREATE', 'alpha');
|
||||
$res = dolibarr_set_const($db, 'TICKET_AUTO_ASSIGN_USER_CREATE', $param_auto_assign, 'chaine', 0, '', $conf->entity);
|
||||
if (!$res > 0) {
|
||||
$error++;
|
||||
}
|
||||
@@ -358,10 +358,10 @@ print '<table class="noborder" width="100%">';
|
||||
print '<tr class="pair"><td width="70%">' . $langs->trans("TicketsActivatePublicInterface") . '</td>';
|
||||
print '<td align="left">';
|
||||
if ($conf->use_javascript_ajax) {
|
||||
print ajax_constantonoff('TICKETS_ENABLE_PUBLIC_INTERFACE');
|
||||
print ajax_constantonoff('TICKET_ENABLE_PUBLIC_INTERFACE');
|
||||
} else {
|
||||
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
||||
print $form->selectarray("TICKETS_ENABLE_PUBLIC_INTERFACE", $arrval, $conf->global->TICKETS_ENABLE_PUBLIC_INTERFACE);
|
||||
print $form->selectarray("TICKET_ENABLE_PUBLIC_INTERFACE", $arrval, $conf->global->TICKET_ENABLE_PUBLIC_INTERFACE);
|
||||
}
|
||||
print '</td>';
|
||||
print '<td align="center">';
|
||||
@@ -373,10 +373,10 @@ print '</tr>';
|
||||
print '<tr class="pair"><td width="70%">' . $langs->trans("TicketsEmailMustExist") . '</td>';
|
||||
print '<td align="left">';
|
||||
if ($conf->use_javascript_ajax) {
|
||||
print ajax_constantonoff('TICKETS_EMAIL_MUST_EXISTS');
|
||||
print ajax_constantonoff('TICKET_EMAIL_MUST_EXISTS');
|
||||
} else {
|
||||
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
||||
print $form->selectarray("TICKETS_EMAIL_MUST_EXISTS", $arrval, $conf->global->TICKETS_EMAIL_MUST_EXISTS);
|
||||
print $form->selectarray("TICKET_EMAIL_MUST_EXISTS", $arrval, $conf->global->TICKET_EMAIL_MUST_EXISTS);
|
||||
}
|
||||
print '</td>';
|
||||
print '<td align="center">';
|
||||
@@ -390,10 +390,10 @@ print '</tr>';
|
||||
print '<tr class="pair"><td width="70%">' . $langs->trans("TicketsShowModuleLogo") . '</td>';
|
||||
print '<td align="left">';
|
||||
if ($conf->use_javascript_ajax) {
|
||||
print ajax_constantonoff('TICKETS_SHOW_MODULE_LOGO');
|
||||
print ajax_constantonoff('TICKET_SHOW_MODULE_LOGO');
|
||||
} else {
|
||||
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
||||
print $form->selectarray("TICKETS_SHOW_MODULE_LOGO", $arrval, $conf->global->TICKETS_SHOW_MODULE_LOGO);
|
||||
print $form->selectarray("TICKET_SHOW_MODULE_LOGO", $arrval, $conf->global->TICKET_SHOW_MODULE_LOGO);
|
||||
}
|
||||
print '</td>';
|
||||
print '<td align="center">';
|
||||
@@ -406,10 +406,10 @@ print '</tr>';
|
||||
print '<tr class="pair"><td width="70%">' . $langs->trans("TicketsShowCompanyLogo") . '</td>';
|
||||
print '<td align="left">';
|
||||
if ($conf->use_javascript_ajax) {
|
||||
print ajax_constantonoff('TICKETS_SHOW_COMPANY_LOGO');
|
||||
print ajax_constantonoff('TICKET_SHOW_COMPANY_LOGO');
|
||||
} else {
|
||||
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
||||
print $form->selectarray("TICKETS_SHOW_COMPANY_LOGO", $arrval, $conf->global->TICKETS_SHOW_COMPANY_LOGO);
|
||||
print $form->selectarray("TICKET_SHOW_COMPANY_LOGO", $arrval, $conf->global->TICKET_SHOW_COMPANY_LOGO);
|
||||
}
|
||||
print '</td>';
|
||||
print '<td align="center">';
|
||||
@@ -426,10 +426,10 @@ print '<table class="noborder" width="100%">';
|
||||
print '<tr class="pair"><td width="70%">' . $langs->trans("TicketsDisableEmail") . '</td>';
|
||||
print '<td align="left">';
|
||||
if ($conf->use_javascript_ajax) {
|
||||
print ajax_constantonoff('TICKETS_DISABLE_ALL_MAILS');
|
||||
print ajax_constantonoff('TICKET_DISABLE_ALL_MAILS');
|
||||
} else {
|
||||
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
||||
print $form->selectarray("TICKETS_DISABLE_ALL_MAILS", $arrval, $conf->global->TICKETS_DISABLE_ALL_MAILS);
|
||||
print $form->selectarray("TICKET_DISABLE_ALL_MAILS", $arrval, $conf->global->TICKET_DISABLE_ALL_MAILS);
|
||||
}
|
||||
print '</td>';
|
||||
print '<td align="center">';
|
||||
@@ -441,10 +441,10 @@ print '</tr>';
|
||||
print '<tr class="pair"><td width="70%">' . $langs->trans("TicketsLogEnableEmail") . '</td>';
|
||||
print '<td align="left">';
|
||||
if ($conf->use_javascript_ajax) {
|
||||
print ajax_constantonoff('TICKETS_ACTIVATE_LOG_BY_EMAIL');
|
||||
print ajax_constantonoff('TICKET_ACTIVATE_LOG_BY_EMAIL');
|
||||
} else {
|
||||
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
||||
print $form->selectarray("TICKETS_ACTIVATE_LOG_BY_EMAIL", $arrval, $conf->global->TICKETS_ACTIVATE_LOG_BY_EMAIL);
|
||||
print $form->selectarray("TICKET_ACTIVATE_LOG_BY_EMAIL", $arrval, $conf->global->TICKET_ACTIVATE_LOG_BY_EMAIL);
|
||||
}
|
||||
print '</td>';
|
||||
print '<td align="center">';
|
||||
@@ -458,10 +458,10 @@ if ($conf->global->MAIN_FEATURES_LEVEL >= 2)
|
||||
print '<tr class="pair"><td width="70%">' . $langs->trans("TicketsEmailAlsoSendToMainAddress") . '</td>';
|
||||
print '<td align="left">';
|
||||
if ($conf->use_javascript_ajax) {
|
||||
print ajax_constantonoff('TICKETS_NOTIFICATION_ALSO_MAIN_ADDRESS');
|
||||
print ajax_constantonoff('TICKET_NOTIFICATION_ALSO_MAIN_ADDRESS');
|
||||
} else {
|
||||
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
||||
print $form->selectarray("TICKETS_NOTIFICATION_ALSO_MAIN_ADDRESS", $arrval, $conf->global->TICKETS_NOTIFICATION_ALSO_MAIN_ADDRESS);
|
||||
print $form->selectarray("TICKET_NOTIFICATION_ALSO_MAIN_ADDRESS", $arrval, $conf->global->TICKET_NOTIFICATION_ALSO_MAIN_ADDRESS);
|
||||
}
|
||||
print '</td>';
|
||||
print '<td align="center">';
|
||||
@@ -474,10 +474,10 @@ if ($conf->global->MAIN_FEATURES_LEVEL >= 2)
|
||||
print '<tr class="pair"><td width="70%">' . $langs->trans("TicketsLimitViewAssignedOnly") . '</td>';
|
||||
print '<td align="left">';
|
||||
if ($conf->use_javascript_ajax) {
|
||||
print ajax_constantonoff('TICKETS_LIMIT_VIEW_ASSIGNED_ONLY');
|
||||
print ajax_constantonoff('TICKET_LIMIT_VIEW_ASSIGNED_ONLY');
|
||||
} else {
|
||||
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
||||
print $form->selectarray("TICKETS_LIMIT_VIEW_ASSIGNED_ONLY", $arrval, $conf->global->TICKETS_LIMIT_VIEW_ASSIGNED_ONLY);
|
||||
print $form->selectarray("TICKET_LIMIT_VIEW_ASSIGNED_ONLY", $arrval, $conf->global->TICKET_LIMIT_VIEW_ASSIGNED_ONLY);
|
||||
}
|
||||
print '</td>';
|
||||
print '<td align="center">';
|
||||
@@ -494,10 +494,10 @@ if (!$conf->use_javascript_ajax) {
|
||||
print '<tr class="pair"><td width="70%">' . $langs->trans("TicketsAutoAssignTicket") . '</td>';
|
||||
print '<td align="left">';
|
||||
if ($conf->use_javascript_ajax) {
|
||||
print ajax_constantonoff('TICKETS_AUTO_ASSIGN_USER_CREATE');
|
||||
print ajax_constantonoff('TICKET_AUTO_ASSIGN_USER_CREATE');
|
||||
} else {
|
||||
$arrval = array('0' => $langs->trans("No"), '1' => $langs->trans("Yes"));
|
||||
print $form->selectarray("TICKETS_AUTO_ASSIGN_USER_CREATE", $arrval, $conf->global->TICKETS_AUTO_ASSIGN_USER_CREATE);
|
||||
print $form->selectarray("TICKET_AUTO_ASSIGN_USER_CREATE", $arrval, $conf->global->TICKET_AUTO_ASSIGN_USER_CREATE);
|
||||
}
|
||||
print '</td>';
|
||||
print '<td align="center">';
|
||||
@@ -533,7 +533,7 @@ if (empty($conf->global->FCKEDITOR_ENABLE_MAIL)) {
|
||||
// Email d'envoi des notifications
|
||||
print '<tr class="pair"><td>' . $langs->trans("TicketEmailNotificationFrom") . '</td>';
|
||||
print '<td align="left">';
|
||||
print '<input type="text" name="TICKETS_NOTIFICATION_EMAIL_FROM" value="' . $conf->global->TICKETS_NOTIFICATION_EMAIL_FROM . '" size="20" ></td>';
|
||||
print '<input type="text" name="TICKET_NOTIFICATION_EMAIL_FROM" value="' . $conf->global->TICKET_NOTIFICATION_EMAIL_FROM . '" size="20" ></td>';
|
||||
print '<td align="center">';
|
||||
print $form->textwithpicto('', $langs->trans("TicketEmailNotificationFromHelp"), 1, 'help');
|
||||
print '</td>';
|
||||
@@ -542,18 +542,18 @@ print '</tr>';
|
||||
// Email de réception des notifications
|
||||
print '<tr class="pair"><td>' . $langs->trans("TicketEmailNotificationTo") . '</td>';
|
||||
print '<td align="left">';
|
||||
print '<input type="text" name="TICKETS_NOTIFICATION_EMAIL_TO" value="' . (!empty($conf->global->TICKETS_NOTIFICATION_EMAIL_TO) ? $conf->global->TICKETS_NOTIFICATION_EMAIL_TO : $conf->global->TICKETS_NOTIFICATION_EMAIL_FROM) . '" size="20" ></td>';
|
||||
print '<input type="text" name="TICKET_NOTIFICATION_EMAIL_TO" value="' . (!empty($conf->global->TICKET_NOTIFICATION_EMAIL_TO) ? $conf->global->TICKET_NOTIFICATION_EMAIL_TO : $conf->global->TICKET_NOTIFICATION_EMAIL_FROM) . '" size="20" ></td>';
|
||||
print '<td align="center">';
|
||||
print $form->textwithpicto('', $langs->trans("TicketEmailNotificationToHelp"), 1, 'help');
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
// Texte de création d'un ticket
|
||||
$mail_mesg_new = $conf->global->TICKETS_MESSAGE_MAIL_NEW ? $conf->global->TICKETS_MESSAGE_MAIL_NEW : $langs->trans('TicketNewEmailBody');
|
||||
$mail_mesg_new = $conf->global->TICKET_MESSAGE_MAIL_NEW ? $conf->global->TICKET_MESSAGE_MAIL_NEW : $langs->trans('TicketNewEmailBody');
|
||||
print '<tr><td>' . $langs->trans("TicketNewEmailBodyLabel") . '</label>';
|
||||
print '</td><td>';
|
||||
require_once DOL_DOCUMENT_ROOT . '/core/class/doleditor.class.php';
|
||||
$doleditor = new DolEditor('TICKETS_MESSAGE_MAIL_NEW', $mail_mesg_new, '100%', 120, 'dolibarr_mailings', '', false, true, $conf->global->FCKEDITOR_ENABLE_MAIL, ROWS_2, 70);
|
||||
$doleditor = new DolEditor('TICKET_MESSAGE_MAIL_NEW', $mail_mesg_new, '100%', 120, 'dolibarr_mailings', '', false, true, $conf->global->FCKEDITOR_ENABLE_MAIL, ROWS_2, 70);
|
||||
$doleditor->Create();
|
||||
print '</td>';
|
||||
print '<td align="center">';
|
||||
@@ -561,11 +561,11 @@ print $form->textwithpicto('', $langs->trans("TicketNewEmailBodyHelp"), 1, 'help
|
||||
print '</td></tr>';
|
||||
|
||||
// Texte d'introduction
|
||||
$mail_intro = $conf->global->TICKETS_MESSAGE_MAIL_INTRO ? $conf->global->TICKETS_MESSAGE_MAIL_INTRO : $langs->trans('TicketMessageMailIntroText');
|
||||
$mail_intro = $conf->global->TICKET_MESSAGE_MAIL_INTRO ? $conf->global->TICKET_MESSAGE_MAIL_INTRO : $langs->trans('TicketMessageMailIntroText');
|
||||
print '<tr><td>' . $langs->trans("TicketMessageMailIntroLabelAdmin") . '</label>';
|
||||
print '</td><td>';
|
||||
require_once DOL_DOCUMENT_ROOT . '/core/class/doleditor.class.php';
|
||||
$doleditor = new DolEditor('TICKETS_MESSAGE_MAIL_INTRO', $mail_intro, '100%', 120, 'dolibarr_mailings', '', false, true, $conf->global->FCKEDITOR_ENABLE_MAIL, ROWS_2, 70);
|
||||
$doleditor = new DolEditor('TICKET_MESSAGE_MAIL_INTRO', $mail_intro, '100%', 120, 'dolibarr_mailings', '', false, true, $conf->global->FCKEDITOR_ENABLE_MAIL, ROWS_2, 70);
|
||||
$doleditor->Create();
|
||||
print '</td>';
|
||||
print '<td align="center">';
|
||||
@@ -573,11 +573,11 @@ print $form->textwithpicto('', $langs->trans("TicketMessageMailIntroHelpAdmin"),
|
||||
print '</td></tr>';
|
||||
|
||||
// Texte de signature
|
||||
$mail_signature = $conf->global->TICKETS_MESSAGE_MAIL_SIGNATURE ? $conf->global->TICKETS_MESSAGE_MAIL_SIGNATURE : $langs->trans('TicketMessageMailSignatureText');
|
||||
$mail_signature = $conf->global->TICKET_MESSAGE_MAIL_SIGNATURE ? $conf->global->TICKET_MESSAGE_MAIL_SIGNATURE : $langs->trans('TicketMessageMailSignatureText');
|
||||
print '<tr><td>' . $langs->trans("TicketMessageMailSignatureLabelAdmin") . '</label>';
|
||||
print '</td><td>';
|
||||
require_once DOL_DOCUMENT_ROOT . '/core/class/doleditor.class.php';
|
||||
$doleditor = new DolEditor('TICKETS_MESSAGE_MAIL_SIGNATURE', $mail_signature, '100%', 120, 'dolibarr_mailings', '', false, true, $conf->global->FCKEDITOR_ENABLE_MAIL, ROWS_2, 70);
|
||||
$doleditor = new DolEditor('TICKET_MESSAGE_MAIL_SIGNATURE', $mail_signature, '100%', 120, 'dolibarr_mailings', '', false, true, $conf->global->FCKEDITOR_ENABLE_MAIL, ROWS_2, 70);
|
||||
$doleditor->Create();
|
||||
print '</td>';
|
||||
print '<td align="center">';
|
||||
@@ -589,31 +589,31 @@ print '<td colspan="3">' . $langs->trans("PublicInterface") . '</td>';
|
||||
print "</tr>\n";
|
||||
|
||||
// Url public interface
|
||||
$url_interface = $conf->global->TICKETS_URL_PUBLIC_INTERFACE;
|
||||
$url_interface = $conf->global->TICKET_URL_PUBLIC_INTERFACE;
|
||||
print '<tr><td>' . $langs->trans("TicketUrlPublicInterfaceLabelAdmin") . '</label>';
|
||||
print '</td><td>';
|
||||
print '<input type="text" name="TICKETS_URL_PUBLIC_INTERFACE" value="' . $conf->global->TICKETS_URL_PUBLIC_INTERFACE . '" size="40" ></td>';
|
||||
print '<input type="text" name="TICKET_URL_PUBLIC_INTERFACE" value="' . $conf->global->TICKET_URL_PUBLIC_INTERFACE . '" size="40" ></td>';
|
||||
print '</td>';
|
||||
print '<td align="center">';
|
||||
print $form->textwithpicto('', $langs->trans("TicketUrlPublicInterfaceHelpAdmin"), 1, 'help');
|
||||
print '</td></tr>';
|
||||
|
||||
// Interface topic
|
||||
$url_interface = $conf->global->TICKETS_PUBLIC_INTERFACE_TOPIC;
|
||||
$url_interface = $conf->global->TICKET_PUBLIC_INTERFACE_TOPIC;
|
||||
print '<tr><td>' . $langs->trans("TicketPublicInterfaceTopicLabelAdmin") . '</label>';
|
||||
print '</td><td>';
|
||||
print '<input type="text" name="TICKETS_PUBLIC_INTERFACE_TOPIC" value="' . $conf->global->TICKETS_PUBLIC_INTERFACE_TOPIC . '" size="40" ></td>';
|
||||
print '<input type="text" name="TICKET_PUBLIC_INTERFACE_TOPIC" value="' . $conf->global->TICKET_PUBLIC_INTERFACE_TOPIC . '" size="40" ></td>';
|
||||
print '</td>';
|
||||
print '<td align="center">';
|
||||
print $form->textwithpicto('', $langs->trans("TicketPublicInterfaceTopicHelp"), 1, 'help');
|
||||
print '</td></tr>';
|
||||
|
||||
// Texte d'accueil homepage
|
||||
$public_text_home = $conf->global->TICKETS_PUBLIC_TEXT_HOME ? $conf->global->TICKETS_PUBLIC_TEXT_HOME : $langs->trans('TicketPublicInterfaceTextHome');
|
||||
$public_text_home = $conf->global->TICKET_PUBLIC_TEXT_HOME ? $conf->global->TICKET_PUBLIC_TEXT_HOME : $langs->trans('TicketPublicInterfaceTextHome');
|
||||
print '<tr><td>' . $langs->trans("TicketPublicInterfaceTextHomeLabelAdmin") . '</label>';
|
||||
print '</td><td>';
|
||||
require_once DOL_DOCUMENT_ROOT . '/core/class/doleditor.class.php';
|
||||
$doleditor = new DolEditor('TICKETS_PUBLIC_TEXT_HOME', $public_text_home, '100%', 180, 'dolibarr_notes', '', false, true, $conf->global->FCKEDITOR_ENABLE_SOCIETE, ROWS_2, 70);
|
||||
$doleditor = new DolEditor('TICKET_PUBLIC_TEXT_HOME', $public_text_home, '100%', 180, 'dolibarr_notes', '', false, true, $conf->global->FCKEDITOR_ENABLE_SOCIETE, ROWS_2, 70);
|
||||
$doleditor->Create();
|
||||
print '</td>';
|
||||
print '<td align="center">';
|
||||
@@ -621,11 +621,11 @@ print $form->textwithpicto('', $langs->trans("TicketPublicInterfaceTextHomeHelpA
|
||||
print '</td></tr>';
|
||||
|
||||
// Texte d'aide à la saisie du message
|
||||
$public_text_help_message = $conf->global->TICKETS_PUBLIC_TEXT_HELP_MESSAGE ? $conf->global->TICKETS_PUBLIC_TEXT_HELP_MESSAGE : $langs->trans('TicketPublicPleaseBeAccuratelyDescribe');
|
||||
$public_text_help_message = $conf->global->TICKET_PUBLIC_TEXT_HELP_MESSAGE ? $conf->global->TICKET_PUBLIC_TEXT_HELP_MESSAGE : $langs->trans('TicketPublicPleaseBeAccuratelyDescribe');
|
||||
print '<tr><td>' . $langs->trans("TicketPublicInterfaceTextHelpMessageLabelAdmin") . '</label>';
|
||||
print '</td><td>';
|
||||
require_once DOL_DOCUMENT_ROOT . '/core/class/doleditor.class.php';
|
||||
$doleditor = new DolEditor('TICKETS_PUBLIC_TEXT_HELP_MESSAGE', $public_text_help_message, '100%', 180, 'dolibarr_notes', '', false, true, $conf->global->FCKEDITOR_ENABLE_SOCIETE, ROWS_2, 70);
|
||||
$doleditor = new DolEditor('TICKET_PUBLIC_TEXT_HELP_MESSAGE', $public_text_help_message, '100%', 180, 'dolibarr_notes', '', false, true, $conf->global->FCKEDITOR_ENABLE_SOCIETE, ROWS_2, 70);
|
||||
$doleditor->Create();
|
||||
print '</td>';
|
||||
print '<td align="center">';
|
||||
|
||||
@@ -40,7 +40,7 @@ $transkey=GETPOST('transkey','alpha');
|
||||
$transvalue=GETPOST('transvalue','alpha');
|
||||
|
||||
|
||||
$mode = GETPOST('mode')?GETPOST('mode'):'overwrite';
|
||||
$mode = GETPOST('mode','aZ09')?GETPOST('mode','aZ09'):'overwrite';
|
||||
|
||||
$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit;
|
||||
$sortfield = GETPOST("sortfield",'alpha');
|
||||
|
||||
@@ -1290,7 +1290,7 @@ if (empty($reshook))
|
||||
{
|
||||
$arraylist = array('amount' => 'FixAmount','variable' => 'VarAmount');
|
||||
$descline = $langs->trans('Deposit');
|
||||
$descline.= ' - '.$langs->trans($arraylist[$typeamount]);
|
||||
//$descline.= ' - '.$langs->trans($arraylist[$typeamount]);
|
||||
if ($typeamount=='amount') {
|
||||
$descline.= ' ('. price($valuedeposit, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)).')';
|
||||
} elseif ($typeamount=='variable') {
|
||||
@@ -2873,7 +2873,7 @@ if ($action == 'create')
|
||||
if (($origin == 'propal') || ($origin == 'commande'))
|
||||
{
|
||||
print '<td class="nowrap" style="padding-left: 5px">';
|
||||
$arraylist = array('amount' => 'FixAmount','variable' => 'VarAmount');
|
||||
$arraylist = array('amount' => $langs->transnoentitiesnoconv('FixAmount'), 'variable' => $langs->transnoentitiesnoconv('VarAmountOneLine', $langs->transnoentitiesnoconv('Deposit')));
|
||||
print $form->selectarray('typedeposit', $arraylist, GETPOST('typedeposit'), 0, 0, 0, '', 1);
|
||||
print '</td>';
|
||||
print '<td class="nowrap" style="padding-left: 5px">' . $langs->trans('Value') . ':<input type="text" id="valuedeposit" name="valuedeposit" size="3" value="' . GETPOST('valuedeposit', 'int') . '"/>';
|
||||
|
||||
@@ -442,7 +442,7 @@ if ($search_montant_localtax2 != '') $sql.= natural_search('f.localtax2', $searc
|
||||
if ($search_montant_ttc != '') $sql.= natural_search('f.total_ttc', $search_montant_ttc, 1);
|
||||
if ($search_categ_cus > 0) $sql.= " AND cc.fk_categorie = ".$db->escape($search_categ_cus);
|
||||
if ($search_categ_cus == -2) $sql.= " AND cc.fk_categorie IS NULL";
|
||||
if ($search_status != '')
|
||||
if ($search_status != '-1' && $search_status != '')
|
||||
{
|
||||
if (is_numeric($search_status) && $search_status >= 0)
|
||||
{
|
||||
|
||||
@@ -204,7 +204,7 @@ class Contact extends CommonObject
|
||||
if (empty($this->priv)) $this->priv = 0;
|
||||
if (empty($this->statut)) $this->statut = 0; // This is to convert '' into '0' to avoid bad sql request
|
||||
|
||||
$entity = ((isset($this->entity) && is_numeric($this->entity))?$this->entity:$conf->entity);
|
||||
$this->entity = ((isset($this->entity) && is_numeric($this->entity))?$this->entity:$conf->entity);
|
||||
|
||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."socpeople (";
|
||||
$sql.= " datec";
|
||||
@@ -228,7 +228,7 @@ class Contact extends CommonObject
|
||||
$sql.= " ".$this->db->escape($this->priv).",";
|
||||
$sql.= " ".$this->db->escape($this->statut).",";
|
||||
$sql.= " ".(! empty($this->canvas)?"'".$this->db->escape($this->canvas)."'":"null").",";
|
||||
$sql.= " ".$this->db->escape($entity).",";
|
||||
$sql.= " ".$this->db->escape($this->entity).",";
|
||||
$sql.= "'".$this->db->escape($this->ref_ext)."',";
|
||||
$sql.= " ".(! empty($this->import_key)?"'".$this->db->escape($this->import_key)."'":"null");
|
||||
$sql.= ")";
|
||||
@@ -307,6 +307,8 @@ class Contact extends CommonObject
|
||||
|
||||
$this->id = $id;
|
||||
|
||||
$this->entity = ((isset($this->entity) && is_numeric($this->entity))?$this->entity:$conf->entity);
|
||||
|
||||
// Clean parameters
|
||||
$this->lastname=trim($this->lastname)?trim($this->lastname):trim($this->lastname);
|
||||
$this->firstname=trim($this->firstname);
|
||||
@@ -354,6 +356,7 @@ class Contact extends CommonObject
|
||||
$sql .= ", fk_user_modif=".($user->id > 0 ? "'".$this->db->escape($user->id)."'":"NULL");
|
||||
$sql .= ", default_lang=".($this->default_lang?"'".$this->db->escape($this->default_lang)."'":"NULL");
|
||||
$sql .= ", no_email=".($this->no_email?"'".$this->db->escape($this->no_email)."'":"0");
|
||||
$sql .= ", entity = " . $this->db->escape($this->entity);
|
||||
$sql .= " WHERE rowid=".$this->db->escape($id);
|
||||
|
||||
dol_syslog(get_class($this)."::update", LOG_DEBUG);
|
||||
|
||||
@@ -178,7 +178,7 @@ if ($action == 'add')
|
||||
(GETPOST('alwayseditable', 'alpha')?1:0),
|
||||
(GETPOST('perms', 'alpha')?GETPOST('perms', 'alpha'):''),
|
||||
$visibility,
|
||||
0,
|
||||
GETPOST('help','alpha'),
|
||||
GETPOST('computed_value','alpha'),
|
||||
(GETPOST('entitycurrentorall', 'alpha')?0:''),
|
||||
GETPOST('langfile', 'alpha')
|
||||
@@ -344,7 +344,7 @@ if ($action == 'update')
|
||||
(GETPOST('alwayseditable', 'alpha')?1:0),
|
||||
(GETPOST('perms', 'alpha')?GETPOST('perms', 'alpha'):''),
|
||||
$visibility,
|
||||
0,
|
||||
GETPOST('help','alpha'),
|
||||
GETPOST('default_value','alpha'),
|
||||
GETPOST('computed_value','alpha'),
|
||||
(GETPOST('entitycurrentorall', 'alpha')?0:''),
|
||||
|
||||
@@ -256,10 +256,10 @@ class ExtraFields
|
||||
if ($type == 'varchar' && empty($lengthdb)) $lengthdb='255';
|
||||
}
|
||||
$field_desc = array(
|
||||
'type'=>$typedb,
|
||||
'value'=>$lengthdb,
|
||||
'null'=>($required?'NOT NULL':'NULL'),
|
||||
'default' => $default_value
|
||||
'type'=>$typedb,
|
||||
'value'=>$lengthdb,
|
||||
'null'=>($required?'NOT NULL':'NULL'),
|
||||
'default' => $default_value
|
||||
);
|
||||
|
||||
$result=$this->db->DDLAddField(MAIN_DB_PREFIX.$table, $attrname, $field_desc);
|
||||
@@ -376,8 +376,8 @@ class ExtraFields
|
||||
$sql.= " '".$this->db->escape($list)."',";
|
||||
$sql.= " ".($default?"'".$this->db->escape($default)."'":"null").",";
|
||||
$sql.= " ".($computed?"'".$this->db->escape($computed)."'":"null").",";
|
||||
$sql .= " " . $user->id . ",";
|
||||
$sql .= " " . $user->id . ",";
|
||||
$sql .= " " . (is_object($user) ? $user->id : 0). ",";
|
||||
$sql .= " " . (is_object($user) ? $user->id : 0). ",";
|
||||
$sql .= "'" . $this->db->idate(dol_now()) . "',";
|
||||
$sql.= " ".($enabled?"'".$this->db->escape($enabled)."'":"1").",";
|
||||
$sql.= " ".($help?"'".$this->db->escape($help)."'":"null");
|
||||
|
||||
@@ -193,7 +193,12 @@ class Form
|
||||
$morealt=' style="width: '.$cols.'"';
|
||||
$cols='';
|
||||
}
|
||||
$ret.='<textarea id="'.$htmlname.'" name="'.$htmlname.'" wrap="soft" rows="'.($tmp[1]?$tmp[1]:'20').'"'.($cols?' cols="'.$cols.'"':'class="quatrevingtpercent"').$morealt.'">'.($editvalue?$editvalue:$value).'</textarea>';
|
||||
|
||||
$valuetoshow = ($editvalue?$editvalue:$value);
|
||||
|
||||
$ret.='<textarea id="'.$htmlname.'" name="'.$htmlname.'" wrap="soft" rows="'.($tmp[1]?$tmp[1]:'20').'"'.($cols?' cols="'.$cols.'"':'class="quatrevingtpercent"').$morealt.'">';
|
||||
$ret.=dol_string_neverthesehtmltags($valuetoshow, array('textarea'));
|
||||
$ret.='</textarea>';
|
||||
}
|
||||
else if ($typeofdata == 'day' || $typeofdata == 'datepicker')
|
||||
{
|
||||
@@ -1073,10 +1078,10 @@ class Form
|
||||
$out='';
|
||||
$num=0;
|
||||
$outarray=array();
|
||||
|
||||
|
||||
if ($selected === '') $selected = array();
|
||||
else if (!is_array($selected)) $selected = array($selected);
|
||||
|
||||
|
||||
// Clean $filter that may contains sql conditions so sql code
|
||||
if (function_exists('test_sql_and_script_inject')) $filter = test_sql_and_script_inject($filter, 3);
|
||||
|
||||
@@ -1335,7 +1340,7 @@ class Form
|
||||
$langs->load('companies');
|
||||
|
||||
if (empty($htmlid)) $htmlid = $htmlname;
|
||||
|
||||
|
||||
if ($selected === '') $selected = array();
|
||||
else if (!is_array($selected)) $selected = array($selected);
|
||||
$out='';
|
||||
@@ -1484,13 +1489,13 @@ class Form
|
||||
function select_dolusers($selected='', $htmlname='userid', $show_empty=0, $exclude=null, $disabled=0, $include='', $enableonly='', $force_entity='0', $maxlength=0, $showstatus=0, $morefilter='', $show_every=0, $enableonlytext='', $morecss='', $noactive=0, $outputmode=0, $multiple=false)
|
||||
{
|
||||
global $conf,$user,$langs;
|
||||
|
||||
|
||||
// If no preselected user defined, we take current user
|
||||
if ((is_numeric($selected) && ($selected < -2 || empty($selected))) && empty($conf->global->SOCIETE_DISABLE_DEFAULT_SALESREPRESENTATIVE)) $selected=$user->id;
|
||||
|
||||
if ($selected === '') $selected = array();
|
||||
else if (!is_array($selected)) $selected = array($selected);
|
||||
|
||||
|
||||
$excludeUsers=null;
|
||||
$includeUsers=null;
|
||||
|
||||
@@ -1568,7 +1573,7 @@ class Form
|
||||
if ($show_every) $out.= '<option value="-2"'.((in_array(-2,$selected))?' selected':'').'>-- '.$langs->trans("Everybody").' --</option>'."\n";
|
||||
|
||||
$userstatic=new User($this->db);
|
||||
|
||||
|
||||
while ($i < $num)
|
||||
{
|
||||
$obj = $this->db->fetch_object($resql);
|
||||
@@ -2666,7 +2671,7 @@ class Form
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."product as p";
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product_fournisseur_price as pfp ON p.rowid = pfp.fk_product";
|
||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON pfp.fk_soc = s.rowid";
|
||||
$sql.= " WHERE pfp.entity IN (".getEntity('productprice').")";
|
||||
$sql.= " WHERE pfp.entity IN (".getEntity('productsupplierprice').")";
|
||||
$sql.= " AND p.tobuy = 1";
|
||||
$sql.= " AND s.fournisseur = 1";
|
||||
$sql.= " AND p.rowid = ".$productid;
|
||||
@@ -6754,7 +6759,7 @@ class Form
|
||||
if (is_array($include)) $includeGroups = implode("','",$include);
|
||||
|
||||
if (!is_array($selected)) $selected = array($selected);
|
||||
|
||||
|
||||
$out='';
|
||||
|
||||
// On recherche les groupes
|
||||
|
||||
@@ -197,7 +197,7 @@ class FormActions
|
||||
$newcardbutton='';
|
||||
if (! empty($conf->agenda->enabled))
|
||||
{
|
||||
$newcardbutton = '<a class="butActionNew" href="'.DOL_URL_ROOT.'/comm/action/card.php?action=create&datep='.dol_print_date(dol_now(),'dayhourlog').'&origin='.$typeelement.'&originid='.$object->id.($object->socid>0?'&socid='.$object->socid:'').($projectid>0?'&projectid='.$projectid:'').'&backtopage='.urlencode($urlbacktopage).'"><span class="valignmiddle">'.$langs->trans("AddEvent").'</span>';
|
||||
$newcardbutton = '<a class="butActionNew" href="'.DOL_URL_ROOT.'/comm/action/card.php?action=create&datep='.dol_print_date(dol_now(),'dayhourlog').'&origin='.$typeelement.'&originid='.$object->id.($object->socid>0?'&socid='.$object->socid:($socid>0?'&socid='.$socid:'')).($projectid>0?'&projectid='.$projectid:'').'&backtopage='.urlencode($urlbacktopage).'"><span class="valignmiddle">'.$langs->trans("AddEvent").'</span>';
|
||||
$newcardbutton.= '<span class="fa fa-plus-circle valignmiddle"></span>';
|
||||
$newcardbutton.= '</a>';
|
||||
}
|
||||
|
||||
@@ -327,7 +327,7 @@ class FormTicket
|
||||
|
||||
// If public form, display more information
|
||||
if ($this->ispublic) {
|
||||
print '<div class="warning">' . ($conf->global->TICKETS_PUBLIC_TEXT_HELP_MESSAGE ? $conf->global->TICKETS_PUBLIC_TEXT_HELP_MESSAGE : $langs->trans('TicketPublicPleaseBeAccuratelyDescribe')) . '</div>';
|
||||
print '<div class="warning">' . ($conf->global->TICKET_PUBLIC_TEXT_HELP_MESSAGE ? $conf->global->TICKET_PUBLIC_TEXT_HELP_MESSAGE : $langs->trans('TicketPublicPleaseBeAccuratelyDescribe')) . '</div>';
|
||||
}
|
||||
include_once DOL_DOCUMENT_ROOT . '/core/class/doleditor.class.php';
|
||||
$uselocalbrowser = true;
|
||||
@@ -889,8 +889,8 @@ class FormTicket
|
||||
}
|
||||
}
|
||||
|
||||
if ($conf->global->TICKETS_NOTIFICATION_ALSO_MAIN_ADDRESS) {
|
||||
$sendto[] = $conf->global->TICKETS_NOTIFICATION_EMAIL_TO . '(generic email)';
|
||||
if ($conf->global->TICKET_NOTIFICATION_ALSO_MAIN_ADDRESS) {
|
||||
$sendto[] = $conf->global->TICKET_NOTIFICATION_EMAIL_TO . '(generic email)';
|
||||
}
|
||||
|
||||
// Print recipient list
|
||||
@@ -906,7 +906,7 @@ class FormTicket
|
||||
// Intro
|
||||
// External users can't send message email
|
||||
if ($user->rights->ticket->write && !$user->socid) {
|
||||
$mail_intro = GETPOST('mail_intro') ? GETPOST('mail_intro') : $conf->global->TICKETS_MESSAGE_MAIL_INTRO;
|
||||
$mail_intro = GETPOST('mail_intro') ? GETPOST('mail_intro') : $conf->global->TICKET_MESSAGE_MAIL_INTRO;
|
||||
print '<tr class="email_line"><td><label for="mail_intro">' . $langs->trans("TicketMessageMailIntro") . '</label>';
|
||||
|
||||
print '</td><td>';
|
||||
@@ -957,7 +957,7 @@ class FormTicket
|
||||
// Signature
|
||||
// External users can't send message email
|
||||
if ($user->rights->ticket->write && !$user->socid) {
|
||||
$mail_signature = GETPOST('mail_signature') ? GETPOST('mail_signature') : $conf->global->TICKETS_MESSAGE_MAIL_SIGNATURE;
|
||||
$mail_signature = GETPOST('mail_signature') ? GETPOST('mail_signature') : $conf->global->TICKET_MESSAGE_MAIL_SIGNATURE;
|
||||
print '<tr class="email_line"><td><label for="mail_intro">' . $langs->trans("TicketMessageMailSignature") . '</label>';
|
||||
|
||||
print '</td><td>';
|
||||
|
||||
@@ -765,28 +765,36 @@ class DoliDBMysqli extends DoliDB
|
||||
// ex. : $field_desc = array('type'=>'int','value'=>'11','null'=>'not null','extra'=> 'auto_increment');
|
||||
$sql= "ALTER TABLE ".$table." ADD ".$field_name." ";
|
||||
$sql.= $field_desc['type'];
|
||||
if(preg_match("/^[^\s]/i",$field_desc['value']))
|
||||
if (preg_match("/^[^\s]/i",$field_desc['value']))
|
||||
{
|
||||
if (! in_array($field_desc['type'],array('date','datetime')))
|
||||
{
|
||||
$sql.= "(".$field_desc['value'].")";
|
||||
}
|
||||
if(preg_match("/^[^\s]/i",$field_desc['attribute']))
|
||||
$sql.= " ".$field_desc['attribute'];
|
||||
if(preg_match("/^[^\s]/i",$field_desc['null']))
|
||||
$sql.= " ".$field_desc['null'];
|
||||
if(preg_match("/^[^\s]/i",$field_desc['default']))
|
||||
}
|
||||
if (isset($field_desc['attribute']) && preg_match("/^[^\s]/i",$field_desc['attribute']))
|
||||
{
|
||||
$sql.= " ".$field_desc['attribute'];
|
||||
}
|
||||
if (isset($field_desc['null']) && preg_match("/^[^\s]/i",$field_desc['null']))
|
||||
{
|
||||
$sql.= " ".$field_desc['null'];
|
||||
}
|
||||
if (isset($field_desc['default']) && preg_match("/^[^\s]/i",$field_desc['default']))
|
||||
{
|
||||
if(preg_match("/null/i",$field_desc['default']))
|
||||
$sql.= " default ".$field_desc['default'];
|
||||
else
|
||||
$sql.= " default '".$field_desc['default']."'";
|
||||
}
|
||||
if(preg_match("/^[^\s]/i",$field_desc['extra']))
|
||||
$sql.= " ".$field_desc['extra'];
|
||||
if (isset($field_desc['extra']) && preg_match("/^[^\s]/i",$field_desc['extra']))
|
||||
{
|
||||
$sql.= " ".$field_desc['extra'];
|
||||
}
|
||||
$sql.= " ".$field_position;
|
||||
|
||||
dol_syslog(get_class($this)."::DDLAddField ".$sql,LOG_DEBUG);
|
||||
if($this->query($sql)) {
|
||||
if ($this->query($sql)) {
|
||||
return 1;
|
||||
}
|
||||
return -1;
|
||||
|
||||
@@ -234,8 +234,8 @@ function societe_prepare_head(Societe $object)
|
||||
$head[$h][1] = $langs->trans("WebSiteAccounts");
|
||||
$nbNote = 0;
|
||||
$sql = "SELECT COUNT(n.rowid) as nb";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."website_account as n";
|
||||
$sql.= " WHERE fk_soc = ".$object->id;
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."societe_account as n";
|
||||
$sql.= " WHERE fk_soc = ".$object->id.' AND fk_website > 0';
|
||||
$resql=$db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
|
||||
@@ -1219,7 +1219,7 @@ function dol_delete_file($file,$disableglob=0,$nophperrors=0,$nohook=0,$object=n
|
||||
}
|
||||
else dol_syslog("Failed to remove file ".$filename, LOG_WARNING);
|
||||
// TODO Failure to remove can be because file was already removed or because of permission
|
||||
// If error because of not exists, we must should return true and we should return false if this is a permission problem
|
||||
// If error because it does not exists, we should return true, and we should return false if this is a permission problem
|
||||
}
|
||||
}
|
||||
else dol_syslog("No files to delete found", LOG_DEBUG);
|
||||
|
||||
@@ -2021,7 +2021,7 @@ function dol_mktime($hour,$minute,$second,$month,$day,$year,$gm=false,$check=1)
|
||||
}
|
||||
else
|
||||
{
|
||||
dol_print_error('','PHP version must be 5.3+');
|
||||
dol_print_error('','PHP version must be 5.4+');
|
||||
return '';
|
||||
}
|
||||
}
|
||||
@@ -4549,7 +4549,7 @@ function price($amount, $form=0, $outlangs='', $trunc=1, $rounding=-1, $forcerou
|
||||
* 'MT'=Round to Max for totals with Tax (MAIN_MAX_DECIMALS_TOT)
|
||||
* 'MS'=Round to Max for stock quantity (MAIN_MAX_DECIMALS_STOCK)
|
||||
* @param int $alreadysqlnb Put 1 if you know that content is already universal format number
|
||||
* @return string Amount with universal numeric format (Example: '99.99999') or unchanged text if conversion fails.
|
||||
* @return string Amount with universal numeric format (Example: '99.99999') or unchanged text if conversion fails. If amount is null or '', it returns ''.
|
||||
*
|
||||
* @see price Opposite function of price2num
|
||||
*/
|
||||
@@ -5477,7 +5477,7 @@ function picto_required()
|
||||
* @param integer $strip_tags 0=Use internal strip, 1=Use strip_tags() php function (bugged when text contains a < char that is not for a html tag)
|
||||
* @return string String cleaned
|
||||
*
|
||||
* @see dol_escape_htmltag strip_tags
|
||||
* @see dol_escape_htmltag strip_tags dol_string_onlythesehtmltags dol_string_neverthesehtmltags
|
||||
*/
|
||||
function dol_string_nohtmltag($stringtoclean, $removelinefeed=1, $pagecodeto='UTF-8', $strip_tags=0)
|
||||
{
|
||||
@@ -5509,6 +5509,51 @@ function dol_string_nohtmltag($stringtoclean, $removelinefeed=1, $pagecodeto='UT
|
||||
return trim($temp);
|
||||
}
|
||||
|
||||
/**
|
||||
* Clean a string to keep only desirable HTML tags.
|
||||
*
|
||||
* @param string $stringtoclean String to clean
|
||||
* @return string String cleaned
|
||||
*
|
||||
* @see dol_escape_htmltag strip_tags dol_string_nohtmltag dol_string_neverthesehtmltags
|
||||
*/
|
||||
function dol_string_onlythesehtmltags($stringtoclean)
|
||||
{
|
||||
$allowed_tags = array(
|
||||
"html", "head", "meta", "body", "b", "br", "div", "em", "font", "img", "hr", "i", "li", "link",
|
||||
"ol", "p", "s", "section", "span", "strong", "title",
|
||||
"table", "tr", "th", "td", "u", "ul"
|
||||
);
|
||||
|
||||
$allowed_tags_string = join("><", $allowed_tags);
|
||||
$allowed_tags_string = preg_replace('/^>/','',$allowed_tags_string);
|
||||
$allowed_tags_string = preg_replace('/<$/','',$allowed_tags_string);
|
||||
|
||||
$temp = strip_tags($stringtoclean, $allowed_tags_string);
|
||||
|
||||
return $temp;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clean a string from some undesirable HTML tags.
|
||||
*
|
||||
* @param string $stringtoclean String to clean
|
||||
* @param array $disallowed_tags Array of tags not allowed
|
||||
* @return string String cleaned
|
||||
*
|
||||
* @see dol_escape_htmltag strip_tags dol_string_nohtmltag dol_string_onlythesehtmltags
|
||||
*/
|
||||
function dol_string_neverthesehtmltags($stringtoclean, $disallowed_tags=array('textarea'))
|
||||
{
|
||||
$temp = $stringtoclean;
|
||||
foreach($disallowed_tags as $tagtoremove)
|
||||
{
|
||||
$temp = preg_replace('/<\/?'.$tagtoremove.'>/', '', $temp);
|
||||
$temp = preg_replace('/<\/?'.$tagtoremove.'\s+[^>]*>/', '', $temp);
|
||||
}
|
||||
return $temp;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return first line of text. Cut will depends if content is HTML or not.
|
||||
|
||||
@@ -150,7 +150,7 @@ function llxHeaderTicket($title, $head = "", $disablejs = 0, $disablehead = 0, $
|
||||
top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss); // Show html headers
|
||||
print '<body id="mainbody" class="publicnewticketform" style="margin-top: 10px;">';
|
||||
|
||||
if (! empty($conf->global->TICKETS_SHOW_COMPANY_LOGO)) {
|
||||
if (! empty($conf->global->TICKET_SHOW_COMPANY_LOGO)) {
|
||||
// Print logo
|
||||
$urllogo = DOL_URL_ROOT . '/theme/login_logo.png';
|
||||
|
||||
@@ -163,8 +163,8 @@ function llxHeaderTicket($title, $head = "", $disablejs = 0, $disablehead = 0, $
|
||||
$urllogo = DOL_URL_ROOT . '/theme/dolibarr_logo.png';
|
||||
}
|
||||
print '<center>';
|
||||
print '<a href="' . ($conf->global->TICKETS_URL_PUBLIC_INTERFACE ? $conf->global->TICKETS_URL_PUBLIC_INTERFACE : dol_buildpath('/public/ticket/index.php', 1)) . '"><img alt="Logo" id="logosubscribe" title="" src="' . $urllogo . '" style="max-width: 440px" /></a><br>';
|
||||
print '<strong>' . ($conf->global->TICKETS_PUBLIC_INTERFACE_TOPIC ? $conf->global->TICKETS_PUBLIC_INTERFACE_TOPIC : $langs->trans("TicketSystem")) . '</strong>';
|
||||
print '<a href="' . ($conf->global->TICKET_URL_PUBLIC_INTERFACE ? $conf->global->TICKET_URL_PUBLIC_INTERFACE : dol_buildpath('/public/ticket/index.php', 1)) . '"><img alt="Logo" id="logosubscribe" title="" src="' . $urllogo . '" style="max-width: 440px" /></a><br>';
|
||||
print '<strong>' . ($conf->global->TICKET_PUBLIC_INTERFACE_TOPIC ? $conf->global->TICKET_PUBLIC_INTERFACE_TOPIC : $langs->trans("TicketSystem")) . '</strong>';
|
||||
print '</center><br>';
|
||||
}
|
||||
|
||||
|
||||
@@ -143,7 +143,10 @@ function user_prepare_head($object)
|
||||
complete_head_from_modules($conf,$langs,$object,$head,$h,'user');
|
||||
|
||||
if ((! empty($conf->salaries->enabled) && ! empty($user->rights->salaries->read))
|
||||
|| (! empty($conf->hrm->enabled) && ! empty($user->rights->hrm->employee->read)))
|
||||
|| (! empty($conf->hrm->enabled) && ! empty($user->rights->hrm->employee->read))
|
||||
|| (! empty($conf->expensereport->enabled) && ! empty($user->rights->expensereport->lire) && $user->id == $object->id)
|
||||
|| (! empty($conf->holiday->enabled) && ! empty($user->rights->holiday->read) && $user->id == $object->id )
|
||||
)
|
||||
{
|
||||
// Bank
|
||||
$head[$h][0] = DOL_URL_ROOT.'/user/bank.php?id='.$object->id;
|
||||
|
||||
@@ -35,27 +35,82 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php';
|
||||
|
||||
|
||||
/**
|
||||
* Classe permettant de generer les bons de livraison au modele Typho
|
||||
* Class to build Delivery Order documents with typhon model
|
||||
*/
|
||||
class pdf_typhon extends ModelePDFDeliveryOrder
|
||||
{
|
||||
var $db;
|
||||
var $name;
|
||||
var $description;
|
||||
var $type;
|
||||
|
||||
var $phpmin = array(4,3,0); // Minimum version of PHP required by module
|
||||
var $version = 'dolibarr';
|
||||
|
||||
var $page_largeur;
|
||||
var $page_hauteur;
|
||||
var $format;
|
||||
var $marge_gauche;
|
||||
var $marge_droite;
|
||||
var $marge_haute;
|
||||
var $marge_basse;
|
||||
|
||||
var $emetteur; // Objet societe qui emet
|
||||
/**
|
||||
* @var DoliDb Database handler
|
||||
*/
|
||||
public $db;
|
||||
|
||||
/**
|
||||
* @var string model name
|
||||
*/
|
||||
public $name;
|
||||
|
||||
/**
|
||||
* @var string model description (short text)
|
||||
*/
|
||||
public $description;
|
||||
|
||||
/**
|
||||
* @var string document type
|
||||
*/
|
||||
public $type;
|
||||
|
||||
/**
|
||||
* @var array() Minimum version of PHP required by module.
|
||||
* e.g.: PHP ≥ 5.4 = array(5, 4)
|
||||
*/
|
||||
public $phpmin = array(5, 4);
|
||||
|
||||
/**
|
||||
* Dolibarr version of the loaded document
|
||||
* @public string
|
||||
*/
|
||||
public $version = 'dolibarr';
|
||||
|
||||
/**
|
||||
* @var int page_largeur
|
||||
*/
|
||||
public $page_largeur;
|
||||
|
||||
/**
|
||||
* @var int page_hauteur
|
||||
*/
|
||||
public $page_hauteur;
|
||||
|
||||
/**
|
||||
* @var array format
|
||||
*/
|
||||
public $format;
|
||||
|
||||
/**
|
||||
* @var int marge_gauche
|
||||
*/
|
||||
public $marge_gauche;
|
||||
|
||||
/**
|
||||
* @var int marge_droite
|
||||
*/
|
||||
public $marge_droite;
|
||||
|
||||
/**
|
||||
* @var int marge_haute
|
||||
*/
|
||||
public $marge_haute;
|
||||
|
||||
/**
|
||||
* @var int marge_basse
|
||||
*/
|
||||
public $marge_basse;
|
||||
|
||||
/**
|
||||
* Issuer
|
||||
* @var Societe
|
||||
*/
|
||||
public $emetteur; // Objet societe qui emet
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
|
||||
@@ -66,7 +66,7 @@ class modAccounting extends DolibarrModules
|
||||
$this->depends = array("modFacture","modBanque","modTax"); // List of modules id that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of modules id to disable if this one is disabled
|
||||
$this->conflictwith = array("modComptabilite"); // List of modules are in conflict with this module
|
||||
$this->phpmin = array(5, 3); // Minimum version of PHP required by module
|
||||
$this->phpmin = array(5, 4); // Minimum version of PHP required by module
|
||||
$this->need_dolibarr_version = array(3, 9); // Minimum version of Dolibarr required by module
|
||||
$this->langfiles = array("accountancy","compta");
|
||||
|
||||
|
||||
@@ -62,17 +62,17 @@ class modAdherent extends DolibarrModules
|
||||
$this->dirs = array("/adherent/temp");
|
||||
|
||||
// Config pages
|
||||
//-------------
|
||||
$this->config_page_url = array("adherent.php@adherents");
|
||||
|
||||
// Dependencies
|
||||
//------------
|
||||
$this->depends = array();
|
||||
$this->requiredby = array('modMailmanSpip');
|
||||
$this->hidden = false; // A condition to hide module
|
||||
$this->depends = array(); // List of module class names as string that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of module ids to disable if this one is disabled
|
||||
$this->conflictwith = array('modMailmanSpip'); // List of module class names as string this module is in conflict with
|
||||
$this->langfiles = array("members","companies");
|
||||
$this->phpmin = array(5,4); // Minimum version of PHP required by module
|
||||
|
||||
// Constants
|
||||
//-----------
|
||||
$this->const = array();
|
||||
$r=0;
|
||||
|
||||
|
||||
@@ -65,14 +65,15 @@ class modAgenda extends DolibarrModules
|
||||
$this->dirs = array("/agenda/temp");
|
||||
|
||||
// Config pages
|
||||
//-------------
|
||||
$this->config_page_url = array("agenda_other.php");
|
||||
|
||||
// Dependancies
|
||||
//-------------
|
||||
$this->depends = array();
|
||||
$this->requiredby = array();
|
||||
// Dependencies
|
||||
$this->hidden = false; // A condition to hide module
|
||||
$this->depends = array(); // List of module class names as string that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of module ids to disable if this one is disabled
|
||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
||||
$this->langfiles = array("companies");
|
||||
$this->phpmin = array(5,4); // Minimum version of PHP required by module
|
||||
|
||||
// Module parts
|
||||
$this->module_parts = array();
|
||||
|
||||
@@ -82,7 +82,7 @@ class modApi extends DolibarrModules
|
||||
$this->depends = array(); // List of modules id that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of modules id to disable if this one is disabled
|
||||
$this->conflictwith = array(); // List of modules id this module is in conflict with
|
||||
$this->phpmin = array(5,3); // Minimum version of PHP required by module
|
||||
$this->phpmin = array(5,4); // Minimum version of PHP required by module
|
||||
$this->langfiles = array("other");
|
||||
|
||||
// Constants
|
||||
|
||||
@@ -96,7 +96,7 @@ class modAsset extends DolibarrModules
|
||||
$this->requiredby = array(); // List of module ids to disable if this one is disabled
|
||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
||||
$this->langfiles = array("assets");
|
||||
$this->phpmin = array(5,3); // Minimum version of PHP required by module
|
||||
$this->phpmin = array(5,4); // Minimum version of PHP required by module
|
||||
$this->need_dolibarr_version = array(7,0); // Minimum version of Dolibarr required by module
|
||||
$this->warnings_activation = array(); // Warning to show when we activate module. array('always'='text') or array('FR'='textfr','ES'='textes'...)
|
||||
$this->warnings_activation_ext = array(); // Warning to show when we activate an external module. array('always'='text') or array('FR'='textfr','ES'='textes'...)
|
||||
|
||||
@@ -63,9 +63,9 @@ class modBanque extends DolibarrModules
|
||||
// Data directories to create when module is enabled
|
||||
$this->dirs = array("/banque/temp");
|
||||
|
||||
// Config pages
|
||||
//-------------
|
||||
$this->config_page_url = array("bank.php");
|
||||
// Config pages
|
||||
//-------------
|
||||
$this->config_page_url = array("bank.php");
|
||||
|
||||
// Dependancies
|
||||
$this->depends = array();
|
||||
@@ -160,11 +160,11 @@ class modBanque extends DolibarrModules
|
||||
'b.datec'=>"account","bu.url_id"=>"company","s.nom"=>"company","s.code_compta"=>"company","s.code_compta_fournisseur"=>"company"
|
||||
);
|
||||
$this->export_special_array[$r]=array('-b.amount'=>'NULLIFNEG','b.amount'=>'NULLIFNEG');
|
||||
if (empty($conf->fournisseur->enabled))
|
||||
{
|
||||
unset($this->export_fields_array[$r]['s.code_compta_fournisseur']);
|
||||
unset($this->export_entities_array[$r]['s.code_compta_fournisseur']);
|
||||
}
|
||||
if (empty($conf->fournisseur->enabled))
|
||||
{
|
||||
unset($this->export_fields_array[$r]['s.code_compta_fournisseur']);
|
||||
unset($this->export_entities_array[$r]['s.code_compta_fournisseur']);
|
||||
}
|
||||
$this->export_sql_start[$r]='SELECT DISTINCT ';
|
||||
$this->export_sql_end[$r] =' FROM ('.MAIN_DB_PREFIX.'bank_account as ba, '.MAIN_DB_PREFIX.'bank as b)';
|
||||
$this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX."bank_url as bu ON (bu.fk_bank = b.rowid AND bu.type = 'company')";
|
||||
@@ -178,10 +178,10 @@ class modBanque extends DolibarrModules
|
||||
$this->export_label[$r]='Bordereaux remise Chq/Fact';
|
||||
$this->export_permission[$r]=array(array("banque","export"));
|
||||
$this->export_fields_array[$r]=array("bch.rowid"=>"DepositId","bch.ref"=>"Numero","bch.ref_ext"=>"RefExt",'ba.ref'=>'AccountRef','ba.label'=>'AccountLabel','b.datev'=>'DateValue','b.num_chq'=>'ChequeOrTransferNumber','b.amount'=>'Credit','b.num_releve'=>'AccountStatement','b.datec'=>"DateCreation",
|
||||
"bch.date_bordereau"=>"Date","bch.amount"=>"Total","bch.nbcheque"=>"NbCheque","bu.url_id"=>"IdThirdParty","s.nom"=>"ThirdParty","f.facnumber"=>"InvoiceRef"
|
||||
"bch.date_bordereau"=>"Date","bch.amount"=>"Total","bch.nbcheque"=>"NbCheque","bu.url_id"=>"IdThirdParty","s.nom"=>"ThirdParty","s.code_compta"=>"CustomerAccountancyCode","f.facnumber"=>"InvoiceRef"
|
||||
);
|
||||
$this->export_TypeFields_array[$r]=array('ba.ref'=>'Text','ba.label'=>'Text','b.datev'=>'Date','b.num_chq'=>'Text','b.amount'=>'Numeric','b.num_releve'=>'Text','b.datec'=>"Date",
|
||||
"bch.date_bordereau"=>"Date","bch.rowid"=>"Numeric","bch.ref"=>"Numeric","bch.ref_ext"=>"Text","bch.amount"=>"Numeric","bch.nbcheque"=>"Numeric","bu.url_id"=>"Text","s.nom"=>"Text","f.facnumber"=>"Text"
|
||||
"bch.date_bordereau"=>"Date","bch.rowid"=>"Numeric","bch.ref"=>"Numeric","bch.ref_ext"=>"Text","bch.amount"=>"Numeric","bch.nbcheque"=>"Numeric","bu.url_id"=>"Text","s.nom"=>"Text","s.code_compta"=>"Text","f.facnumber"=>"Text"
|
||||
);
|
||||
$this->export_entities_array[$r]=array('ba.ref'=>'account','ba.label'=>'account','b.datev'=>'account','b.num_chq'=>'account','b.amount'=>'account','b.num_releve'=>'account','b.datec'=>"account",
|
||||
"bu.url_id"=>"company","s.nom"=>"company","s.code_compta"=>"company","s.code_compta_fournisseur"=>"company","f.facnumber"=>"invoice");
|
||||
@@ -203,12 +203,12 @@ class modBanque extends DolibarrModules
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Function called when module is enabled.
|
||||
* The init function add constants, boxes, permissions and menus (defined in constructor) into Dolibarr database.
|
||||
* It also creates data directories.
|
||||
*
|
||||
* @param string $options Options when enabling module ('', 'noboxes')
|
||||
/**
|
||||
* Function called when module is enabled.
|
||||
* The init function add constants, boxes, permissions and menus (defined in constructor) into Dolibarr database.
|
||||
* It also creates data directories.
|
||||
*
|
||||
* @param string $options Options when enabling module ('', 'noboxes')
|
||||
* @return int 1 if OK, 0 if KO
|
||||
*/
|
||||
function init($options='')
|
||||
|
||||
@@ -64,9 +64,10 @@ class modCashDesk extends DolibarrModules
|
||||
$this->config_page_url = array("cashdesk.php@cashdesk");
|
||||
|
||||
// Dependencies
|
||||
$this->hidden = false; // A condition to hide module
|
||||
$this->depends = array('always'=>"modBanque", 'always'=>"modFacture", 'always'=>"modProduct", 'FR'=>'modBlockedLog'); // List of modules id that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of modules id to disable if this one is disabled
|
||||
$this->phpmin = array(4,1); // Minimum version of PHP required by module
|
||||
$this->phpmin = array(5,4); // Minimum version of PHP required by module
|
||||
$this->need_dolibarr_version = array(2,4); // Minimum version of Dolibarr required by module
|
||||
$this->langfiles = array("cashdesk");
|
||||
$this->warnings_activation = array('FR'=>'WarningNoteModulePOSForFrenchLaw'); // Warning to show when we activate module. array('always'='text') or array('FR'='text')
|
||||
|
||||
@@ -61,10 +61,11 @@ class modExpenseReport extends DolibarrModules
|
||||
$this->config_page_url = array('expensereport.php');
|
||||
|
||||
// Dependencies
|
||||
$this->depends = array(); // List of modules id that must be enabled if this module is enabled
|
||||
$this->hidden = false; // A condition to hide module
|
||||
$this->depends = array(); // List of module class names as string that must be enabled if this module is enabled
|
||||
// $this->conflictwith = array("modDeplacement"); // Deactivate for access on old information
|
||||
$this->requiredby = array(); // List of modules id to disable if this one is disabled
|
||||
$this->phpmin = array(4,3); // Minimum version of PHP required by module
|
||||
$this->phpmin = array(5,4); // Minimum version of PHP required by module
|
||||
$this->need_dolibarr_version = array(3,7); // Minimum version of Dolibarr required by module
|
||||
$this->langfiles = array("companies","trips");
|
||||
|
||||
|
||||
@@ -65,9 +65,11 @@ class modGeoIPMaxmind extends DolibarrModules
|
||||
$this->config_page_url = array("geoipmaxmind.php");
|
||||
|
||||
// Dependencies
|
||||
$this->depends = array();
|
||||
$this->requiredby = array();
|
||||
$this->phpmin = array(4,2,0);
|
||||
$this->hidden = false; // A condition to hide module
|
||||
$this->depends = array(); // List of module class names as string that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of module ids to disable if this one is disabled
|
||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
||||
$this->phpmin = array(5,4);
|
||||
$this->phpmax = array();
|
||||
$this->need_dolibarr_version = array(2,7,-1); // Minimum version of Dolibarr required by module
|
||||
$this->need_javascript_ajax = 1;
|
||||
|
||||
@@ -71,9 +71,11 @@ class modGravatar extends DolibarrModules
|
||||
$this->config_page_url = array();
|
||||
|
||||
// Dependencies
|
||||
$this->depends = array(); // List of modules id that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of modules id to disable if this one is disabled
|
||||
$this->phpmin = array(4, 3); // Minimum version of PHP required by module
|
||||
$this->hidden = false; // A condition to hide module
|
||||
$this->depends = array(); // List of module class names as string that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of module ids to disable if this one is disabled
|
||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
||||
$this->phpmin = array(5, 4); // Minimum version of PHP required by module
|
||||
$this->need_dolibarr_version = array(2, 7); // Minimum version of Dolibarr required by module
|
||||
$this->langfiles = array();
|
||||
|
||||
|
||||
@@ -66,27 +66,16 @@ class modHRM extends DolibarrModules
|
||||
$this->config_page_url = array('admin_hrm.php@hrm');
|
||||
|
||||
// Dependencies
|
||||
$this->depends = array();
|
||||
$this->requiredby = array(/*"
|
||||
modSalaries,
|
||||
modExpenseReport,
|
||||
modHoliday
|
||||
"*/);
|
||||
$this->conflictwith = array();
|
||||
$this->phpmin = array (
|
||||
5,
|
||||
3
|
||||
); // Minimum version of PHP required by module
|
||||
$this->need_dolibarr_version = array (
|
||||
3,
|
||||
9
|
||||
); // Minimum version of Dolibarr required by module
|
||||
$this->langfiles = array (
|
||||
"hrm"
|
||||
);
|
||||
$this->hidden = false; // A condition to hide module
|
||||
$this->depends = array(); // List of module class names as string that must be enabled if this module is enabled
|
||||
$this->requiredby = array(/*"modSalaries, modExpenseReport, modHoliday"*/); // List of module ids to disable if this one is disabled
|
||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
||||
$this->phpmin = array(5,4); // Minimum version of PHP required by module
|
||||
$this->need_dolibarr_version = array (3,9); // Minimum version of Dolibarr required by module
|
||||
$this->langfiles = array ("hrm");
|
||||
|
||||
// Dictionnaries
|
||||
$this->dictionnaries=array();
|
||||
// Dictionaries
|
||||
$this->dictionaries=array();
|
||||
|
||||
// Constantes
|
||||
$this->const = array ();
|
||||
|
||||
@@ -81,9 +81,11 @@ class modHoliday extends DolibarrModules
|
||||
// $this->config_page_url = array("holiday.php?leftmenu=setup@holiday");
|
||||
|
||||
// Dependencies
|
||||
$this->depends = array(); // List of modules id that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of modules id to disable if this one is disabled
|
||||
$this->phpmin = array(4,3); // Minimum version of PHP required by module
|
||||
$this->hidden = false; // A condition to hide module
|
||||
$this->depends = array(); // List of module class names as string that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of module ids to disable if this one is disabled
|
||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
||||
$this->phpmin = array(5,4); // Minimum version of PHP required by module
|
||||
$this->need_dolibarr_version = array(3,0); // Minimum version of Dolibarr required by module
|
||||
$this->langfiles = array("holiday");
|
||||
|
||||
@@ -116,7 +118,8 @@ class modHoliday extends DolibarrModules
|
||||
$r++;
|
||||
|
||||
// Array to add new pages in new tabs
|
||||
$this->tabs[] = array('data'=>'user:+paidholidays:CPTitreMenu:holiday:$user->rights->holiday->read:/holiday/list.php?mainmenu=hrm&id=__ID__'); // To add a new tab identified by code tabname1
|
||||
//$this->tabs[] = array('data'=>'user:+paidholidays:CPTitreMenu:holiday:$user->rights->holiday->read:/holiday/list.php?mainmenu=hrm&id=__ID__'); // We avoid to get one tab for each module. RH data are already in RH tab.
|
||||
$this->tabs[] = array(); // To add a new tab identified by code tabname1
|
||||
|
||||
// Boxes
|
||||
$this->boxes = array(); // List of boxes
|
||||
|
||||
@@ -60,9 +60,11 @@ class modImport extends DolibarrModules
|
||||
$this->config_page_url = array();
|
||||
|
||||
// Dependencies
|
||||
$this->depends = array();
|
||||
$this->requiredby = array();
|
||||
$this->phpmin = array(4,3,0); // Need auto_detect_line_endings php option to solve MAC pbs.
|
||||
$this->hidden = false; // A condition to hide module
|
||||
$this->depends = array(); // List of module class names as string that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of module ids to disable if this one is disabled
|
||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
||||
$this->phpmin = array(5,4); // Minimum version of PHP required by module - Need auto_detect_line_endings php option to solve MAC pbs.
|
||||
$this->phpmax = array();
|
||||
$this->need_dolibarr_version = array(2,7,-1); // Minimum version of Dolibarr required by module
|
||||
$this->need_javascript_ajax = 1;
|
||||
|
||||
@@ -65,9 +65,11 @@ class modIncoterm extends DolibarrModules
|
||||
$this->config_page_url = array();
|
||||
|
||||
// Dependencies
|
||||
$this->depends = array(); // List of modules id that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of modules id to disable if this one is disabled
|
||||
$this->phpmin = array(5,0); // Minimum version of PHP required by module
|
||||
$this->hidden = false; // A condition to hide module
|
||||
$this->depends = array(); // List of module class names as string that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of module ids to disable if this one is disabled
|
||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
||||
$this->phpmin = array(5,4); // Minimum version of PHP required by module
|
||||
$this->need_dolibarr_version = array(3,0); // Minimum version of Dolibarr required by module
|
||||
$this->langfiles = array("incoterm");
|
||||
|
||||
|
||||
@@ -56,9 +56,12 @@ class modLabel extends DolibarrModules
|
||||
// Data directories to create when module is enabled
|
||||
$this->dirs = array("/label/temp");
|
||||
|
||||
// Dependancies
|
||||
$this->depends = array();
|
||||
$this->requiredby = array();
|
||||
// Dependencies
|
||||
$this->hidden = false; // A condition to hide module
|
||||
$this->depends = array(); // List of module class names as string that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of module ids to disable if this one is disabled
|
||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
||||
$this->phpmin = array(5,4); // Minimum version of PHP required by module
|
||||
|
||||
// Config pages
|
||||
// $this->config_page_url = array("label.php");
|
||||
|
||||
@@ -60,9 +60,12 @@ class modLdap extends DolibarrModules
|
||||
// Config pages
|
||||
$this->config_page_url = array("ldap.php");
|
||||
|
||||
// Dependancies
|
||||
$this->depends = array();
|
||||
$this->requiredby = array();
|
||||
// Dependencies
|
||||
$this->hidden = false; // A condition to hide module
|
||||
$this->depends = array(); // List of module class names as string that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of module ids to disable if this one is disabled
|
||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
||||
$this->phpmin = array(5,4); // Minimum version of PHP required by module
|
||||
|
||||
// Constants
|
||||
$this->const = array(
|
||||
|
||||
@@ -63,9 +63,11 @@ class modLoan extends DolibarrModules
|
||||
$this->config_page_url = array('loan.php');
|
||||
|
||||
// Dependencies
|
||||
$this->depends = array();
|
||||
$this->requiredby = array();
|
||||
$this->conflictwith = array();
|
||||
$this->hidden = false; // A condition to hide module
|
||||
$this->depends = array(); // List of module class names as string that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of module ids to disable if this one is disabled
|
||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
||||
$this->phpmin = array(5,4); // Minimum version of PHP required by module
|
||||
$this->langfiles = array("loan");
|
||||
|
||||
// Constants
|
||||
|
||||
@@ -57,8 +57,11 @@ class modMailing extends DolibarrModules
|
||||
$this->dirs = array("/mailing/temp");
|
||||
|
||||
// Dependencies
|
||||
$this->depends = array();
|
||||
$this->requiredby = array();
|
||||
$this->hidden = false; // A condition to hide module
|
||||
$this->depends = array(); // List of module class names as string that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of module ids to disable if this one is disabled
|
||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
||||
$this->phpmin = array(5,4); // Minimum version of PHP required by module
|
||||
$this->langfiles = array("mails");
|
||||
|
||||
// Config pages
|
||||
|
||||
@@ -58,8 +58,11 @@ class modMailmanSpip extends DolibarrModules
|
||||
$this->dirs = array();
|
||||
|
||||
// Dependencies
|
||||
$this->depends = array('modAdherent');
|
||||
$this->requiredby = array();
|
||||
$this->hidden = false; // A condition to hide module
|
||||
$this->depends = array('modAdherent'); // List of module class names as string that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of module ids to disable if this one is disabled
|
||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
||||
$this->phpmin = array(5,4); // Minimum version of PHP required by module
|
||||
|
||||
// Config pages
|
||||
$this->config_page_url = array('mailman.php');
|
||||
|
||||
@@ -68,9 +68,11 @@ class modMargin extends DolibarrModules
|
||||
$this->config_page_url = array("margin.php@margin");
|
||||
|
||||
// Dependencies
|
||||
$this->depends = array("modPropale", "modProduct"); // List of modules id that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of modules id to disable if this one is disabled
|
||||
$this->phpmin = array(5,1); // Minimum version of PHP required by module
|
||||
$this->hidden = false; // A condition to hide module
|
||||
$this->depends = array("modPropale", "modProduct"); // List of module class names as string that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of module ids to disable if this one is disabled
|
||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
||||
$this->phpmin = array(5,4); // Minimum version of PHP required by module
|
||||
$this->need_dolibarr_version = array(3,2); // Minimum version of Dolibarr required by module
|
||||
$this->langfiles = array("margins");
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ class modModuleBuilder extends DolibarrModules
|
||||
//-------------
|
||||
$this->config_page_url = array('setup@modulebuilder');
|
||||
|
||||
// Dependancies
|
||||
// Dependencies
|
||||
//-------------
|
||||
$this->hidden = false; // A condition to disable module
|
||||
$this->depends = array(); // List of modules id that must be enabled if this module is enabled
|
||||
|
||||
@@ -88,7 +88,7 @@ class modMultiCurrency extends DolibarrModules
|
||||
$this->depends = array(); // List of modules id that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of modules id to disable if this one is disabled
|
||||
$this->conflictwith = array(); // List of modules id this module is in conflict with
|
||||
$this->phpmin = array(5, 0); // Minimum version of PHP required by module
|
||||
$this->phpmin = array(5, 4); // Minimum version of PHP required by module
|
||||
$this->need_dolibarr_version = array(3, 0); // Minimum version of Dolibarr required by module
|
||||
$this->langfiles = array("multicurrency");
|
||||
|
||||
|
||||
@@ -55,8 +55,11 @@ class modNotification extends DolibarrModules
|
||||
$this->dirs = array();
|
||||
|
||||
// Dependencies
|
||||
$this->depends = array();
|
||||
$this->requiredby = array();
|
||||
$this->hidden = false; // A condition to hide module
|
||||
$this->depends = array(); // List of module class names as string that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of module ids to disable if this one is disabled
|
||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
||||
$this->phpmin = array(5,4); // Minimum version of PHP required by module
|
||||
$this->langfiles = array("mails");
|
||||
|
||||
// Config pages
|
||||
|
||||
@@ -67,9 +67,11 @@ class modOauth extends DolibarrModules
|
||||
$this->config_page_url = array("oauth.php");
|
||||
|
||||
// Dependencies
|
||||
$this->depends = array();
|
||||
$this->requiredby = array();
|
||||
$this->phpmin = array(5,1); // Minimum version of PHP required by module
|
||||
$this->hidden = false; // A condition to hide module
|
||||
$this->depends = array(); // List of module class names as string that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of module ids to disable if this one is disabled
|
||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
||||
$this->phpmin = array(5,4); // Minimum version of PHP required by module // Minimum version of PHP required by module
|
||||
$this->need_dolibarr_version = array(3,7,-2); // Minimum version of Dolibarr required by module
|
||||
$this->conflictwith = array();
|
||||
$this->langfiles = array("oauth");
|
||||
|
||||
@@ -72,9 +72,11 @@ class modOpenSurvey extends DolibarrModules
|
||||
//$this->dirs[1] = DOL_DATA_ROOT.'/mymodule/temp;
|
||||
|
||||
// Dependencies
|
||||
$this->depends = array(); // List of modules id that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of modules id to disable if this one is disabled
|
||||
$this->phpmin = array(4,1); // Minimum version of PHP required by module
|
||||
$this->hidden = false; // A condition to hide module
|
||||
$this->depends = array(); // List of module class names as string that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of module ids to disable if this one is disabled
|
||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
||||
$this->phpmin = array(5,4); // Minimum version of PHP required by module
|
||||
$this->need_dolibarr_version = array(3,4,0); // Minimum version of Dolibarr required by module
|
||||
|
||||
// Constants
|
||||
|
||||
@@ -69,9 +69,11 @@ class modPayBox extends DolibarrModules
|
||||
$this->config_page_url = array("paybox.php@paybox");
|
||||
|
||||
// Dependencies
|
||||
$this->depends = array(); // List of modules id that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of modules id to disable if this one is disabled
|
||||
$this->phpmin = array(4,1); // Minimum version of PHP required by module
|
||||
$this->hidden = false; // A condition to hide module
|
||||
$this->depends = array(); // List of module class names as string that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of module ids to disable if this one is disabled
|
||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
||||
$this->phpmin = array(5,4); // Minimum version of PHP required by module
|
||||
$this->need_dolibarr_version = array(2,6); // Minimum version of Dolibarr required by module
|
||||
$this->langfiles = array("paybox");
|
||||
|
||||
|
||||
@@ -70,9 +70,11 @@ class modPaypal extends DolibarrModules
|
||||
$this->config_page_url = array("paypal.php@paypal");
|
||||
|
||||
// Dependencies
|
||||
$this->depends = array(); // List of modules id that must be enabled if this module is enabled
|
||||
$this->requiredby = array('modPaypalPlus'); // List of modules id to disable if this one is disabled
|
||||
$this->phpmin = array(5,2); // Minimum version of PHP required by module
|
||||
$this->hidden = false; // A condition to hide module
|
||||
$this->depends = array(); // List of module class names as string that must be enabled if this module is enabled
|
||||
$this->requiredby = array('modPaypalPlus'); // List of module ids to disable if this one is disabled
|
||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
||||
$this->phpmin = array(5,4); // Minimum version of PHP required by module
|
||||
$this->need_dolibarr_version = array(3,0); // Minimum version of Dolibarr required by module
|
||||
$this->langfiles = array("paypal");
|
||||
|
||||
|
||||
@@ -63,9 +63,12 @@ class modPrelevement extends DolibarrModules
|
||||
// Data directories to create when module is enabled
|
||||
$this->dirs = array("/prelevement/temp","/prelevement/receipts");
|
||||
|
||||
// Dependancies
|
||||
$this->depends = array("modFacture","modBanque");
|
||||
$this->requiredby = array();
|
||||
// Dependencies
|
||||
$this->hidden = false; // A condition to hide module
|
||||
$this->depends = array("modFacture","modBanque"); // List of module class names as string that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of module ids to disable if this one is disabled
|
||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
||||
$this->phpmin = array(5,4); // Minimum version of PHP required by module
|
||||
|
||||
// Config pages
|
||||
$this->config_page_url = array("prelevement.php");
|
||||
|
||||
@@ -66,9 +66,11 @@ class modPrinting extends DolibarrModules
|
||||
$this->config_page_url = array("printing.php@printing");
|
||||
|
||||
// Dependencies
|
||||
$this->depends = array();
|
||||
$this->requiredby = array();
|
||||
$this->phpmin = array(5,1); // Minimum version of PHP required by module
|
||||
$this->hidden = false; // A condition to hide module
|
||||
$this->depends = array(); // List of module class names as string that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of module ids to disable if this one is disabled
|
||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
||||
$this->phpmin = array(5,4); // Minimum version of PHP required by module
|
||||
$this->need_dolibarr_version = array(3,7,-2); // Minimum version of Dolibarr required by module
|
||||
$this->conflictwith = array();
|
||||
$this->langfiles = array("printing");
|
||||
|
||||
@@ -65,8 +65,11 @@ class modProduct extends DolibarrModules
|
||||
$this->dirs = array("/product/temp");
|
||||
|
||||
// Dependencies
|
||||
$this->depends = array();
|
||||
$this->requiredby = array("modStock","modBarcode","modProductBatch");
|
||||
$this->hidden = false; // A condition to hide module
|
||||
$this->depends = array(); // List of module class names as string that must be enabled if this module is enabled
|
||||
$this->requiredby = array("modStock","modBarcode","modProductBatch"); // List of module ids to disable if this one is disabled
|
||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
||||
$this->phpmin = array(5,4); // Minimum version of PHP required by module
|
||||
|
||||
// Config pages
|
||||
$this->config_page_url = array("product.php@product");
|
||||
|
||||
@@ -68,9 +68,11 @@ class modProductBatch extends DolibarrModules
|
||||
$this->config_page_url = array("product_lot_extrafields.php@product");
|
||||
|
||||
// Dependencies
|
||||
$this->depends = array("modProduct","modStock","modExpedition","modFournisseur"); // List of modules id that must be enabled if this module is enabled. modExpedition is required to manage batch exit (by manual stock decrease on shipment), modSupplier to manage batch entry (after supplier order).
|
||||
$this->requiredby = array(); // List of modules id to disable if this one is disabled
|
||||
$this->phpmin = array(5,0); // Minimum version of PHP required by module
|
||||
$this->hidden = false; // A condition to hide module
|
||||
$this->depends = array("modProduct","modStock","modExpedition","modFournisseur"); // List of module class names as string that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of module ids to disable if this one is disabled
|
||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
||||
$this->phpmin = array(5,4); // Minimum version of PHP required by module
|
||||
$this->need_dolibarr_version = array(3,0); // Minimum version of Dolibarr required by module
|
||||
$this->langfiles = array("productbatch");
|
||||
|
||||
|
||||
@@ -64,10 +64,12 @@ class modProjet extends DolibarrModules
|
||||
// Data directories to create when module is enabled
|
||||
$this->dirs = array("/projet/temp");
|
||||
|
||||
// Dependancies
|
||||
$this->depends = array();
|
||||
$this->requiredby = array();
|
||||
$this->conflictwith = array();
|
||||
// Dependencies
|
||||
$this->hidden = false; // A condition to hide module
|
||||
$this->depends = array(); // List of module class names as string that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of module ids to disable if this one is disabled
|
||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
||||
$this->phpmin = array(5,4); // Minimum version of PHP required by module
|
||||
$this->langfiles = array('projects');
|
||||
|
||||
// Constants
|
||||
|
||||
@@ -63,9 +63,12 @@ class modPropale extends DolibarrModules
|
||||
// Data directories to create when module is enabled
|
||||
$this->dirs = array("/propale/temp");
|
||||
|
||||
// Dependancies
|
||||
$this->depends = array("modSociete");
|
||||
$this->requiredby = array();
|
||||
// Dependencies
|
||||
$this->hidden = false; // A condition to hide module
|
||||
$this->depends = array("modSociete"); // List of module class names as string that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of module ids to disable if this one is disabled
|
||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
||||
$this->phpmin = array(5,4); // Minimum version of PHP required by module
|
||||
$this->config_page_url = array("propal.php");
|
||||
$this->langfiles = array("propal","bills","companies","deliveries","products");
|
||||
|
||||
|
||||
@@ -67,9 +67,11 @@ class modReceiptPrinter extends DolibarrModules
|
||||
$this->config_page_url = array("receiptprinter.php");
|
||||
|
||||
// Dependencies
|
||||
$this->depends = array();
|
||||
$this->requiredby = array();
|
||||
$this->phpmin = array(5,1); // Minimum version of PHP required by module
|
||||
$this->hidden = false; // A condition to hide module
|
||||
$this->depends = array(); // List of module class names as string that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of module ids to disable if this one is disabled
|
||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
||||
$this->phpmin = array(5,4); // Minimum version of PHP required by module
|
||||
$this->need_dolibarr_version = array(3,9,-2); // Minimum version of Dolibarr required by module
|
||||
$this->conflictwith = array();
|
||||
$this->langfiles = array("receiptprinter");
|
||||
|
||||
@@ -95,7 +95,7 @@ class modResource extends DolibarrModules
|
||||
// List of modules id to disable if this one is disabled
|
||||
$this->requiredby = array('modPlace');
|
||||
// Minimum version of PHP required by module
|
||||
$this->phpmin = array(5, 3);
|
||||
$this->phpmin = array(5, 4);
|
||||
|
||||
$this->langfiles = array("resource"); // langfiles@resource
|
||||
// Constants
|
||||
|
||||
@@ -70,9 +70,11 @@ class modSalaries extends DolibarrModules
|
||||
$this->config_page_url = array();
|
||||
|
||||
// Dependencies
|
||||
$this->depends = array();
|
||||
$this->requiredby = array();
|
||||
$this->conflictwith = array();
|
||||
$this->hidden = false; // A condition to hide module
|
||||
$this->depends = array(); // List of module class names as string that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of module ids to disable if this one is disabled
|
||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
||||
$this->phpmin = array(5,4); // Minimum version of PHP required by module
|
||||
$this->langfiles = array("salaries","bills");
|
||||
|
||||
// Constants
|
||||
|
||||
@@ -62,9 +62,12 @@ class modService extends DolibarrModules
|
||||
// Data directories to create when module is enabled
|
||||
$this->dirs = array("/product/temp");
|
||||
|
||||
// Dependancies
|
||||
$this->depends = array();
|
||||
$this->requiredby = array();
|
||||
// Dependencies
|
||||
$this->hidden = false; // A condition to hide module
|
||||
$this->depends = array(); // List of module class names as string that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of module ids to disable if this one is disabled
|
||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
||||
$this->phpmin = array(5,4); // Minimum version of PHP required by module
|
||||
|
||||
// Config pages
|
||||
$this->config_page_url = array("product.php@product");
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
include_once DOL_DOCUMENT_ROOT .'/core/modules/DolibarrModules.class.php';
|
||||
|
||||
/**
|
||||
* Class to describe a Cron module
|
||||
* Class to describe a Skype module
|
||||
*/
|
||||
class modSkype extends DolibarrModules
|
||||
{
|
||||
@@ -59,31 +59,26 @@ class modSkype extends DolibarrModules
|
||||
$this->dirs = array();
|
||||
|
||||
// Config pages
|
||||
//-------------
|
||||
$this->config_page_url = array();
|
||||
|
||||
// Dependancies
|
||||
//-------------
|
||||
$this->hidden = ! empty($conf->global->MODULE_SKYPE_DISABLED); // A condition to disable module
|
||||
$this->depends = array('modSociete'); // List of modules id that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of modules id to disable if this one is disabled
|
||||
$this->conflictwith = array(); // List of modules id this module is in conflict with
|
||||
// Dependencies
|
||||
$this->hidden = ! empty($conf->global->MODULE_SKYPE_DISABLED); // A condition to hide module
|
||||
$this->depends = array('modSociete'); // List of module class names as string that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of module ids to disable if this one is disabled
|
||||
$this->conflictwith = array(); // List of module class names as string this module is in conflict with
|
||||
$this->phpmin = array(5,4); // Minimum version of PHP required by module
|
||||
$this->langfiles = array();
|
||||
|
||||
// Constants
|
||||
//-----------
|
||||
|
||||
|
||||
// New pages on tabs
|
||||
// -----------------
|
||||
$this->tabs = array();
|
||||
|
||||
// Boxes
|
||||
//------
|
||||
$this->boxes = array();
|
||||
|
||||
// Main menu entries
|
||||
//------------------
|
||||
$this->menu = array();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -107,8 +107,8 @@ class modTicket extends DolibarrModules
|
||||
// (key, 'chaine', value, desc, visible, 'current' or 'allentities', deleteonunactive)
|
||||
// Example:
|
||||
$this->const = array();
|
||||
$this->const[1] = array('TICKETS_ENABLE_PUBLIC_INTERFACE', 'chaine', '1', 'Enable ticket public interface');
|
||||
$this->const[2] = array('TICKETSUP_ADDON', 'chaine', 'mod_ticket_simple', 'Ticket ref module');
|
||||
$this->const[1] = array('TICKET_ENABLE_PUBLIC_INTERFACE', 'chaine', '1', 'Enable ticket public interface');
|
||||
$this->const[2] = array('TICKET_ADDON', 'chaine', 'mod_ticket_simple', 'Ticket ref module');
|
||||
|
||||
$this->tabs = array(
|
||||
'thirdparty:+ticket:Tickets:@ticket:$user->rights->ticket->read:/ticket/list.php?socid=__ID__',
|
||||
|
||||
@@ -38,7 +38,78 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
||||
|
||||
class pdf_baleine extends ModelePDFProjects
|
||||
{
|
||||
var $emetteur; // Objet societe qui emet
|
||||
/**
|
||||
* @var DoliDb Database handler
|
||||
*/
|
||||
public $db;
|
||||
|
||||
/**
|
||||
* @var string model name
|
||||
*/
|
||||
public $name;
|
||||
|
||||
/**
|
||||
* @var string model description (short text)
|
||||
*/
|
||||
public $description;
|
||||
|
||||
/**
|
||||
* @var string document type
|
||||
*/
|
||||
public $type;
|
||||
|
||||
/**
|
||||
* @var array() Minimum version of PHP required by module.
|
||||
* e.g.: PHP ≥ 5.4 = array(5, 4)
|
||||
*/
|
||||
public $phpmin = array(5, 4);
|
||||
|
||||
/**
|
||||
* Dolibarr version of the loaded document
|
||||
* @public string
|
||||
*/
|
||||
public $version = 'dolibarr';
|
||||
|
||||
/**
|
||||
* @var int page_largeur
|
||||
*/
|
||||
public $page_largeur;
|
||||
|
||||
/**
|
||||
* @var int page_hauteur
|
||||
*/
|
||||
public $page_hauteur;
|
||||
|
||||
/**
|
||||
* @var array format
|
||||
*/
|
||||
public $format;
|
||||
|
||||
/**
|
||||
* @var int marge_gauche
|
||||
*/
|
||||
public $marge_gauche;
|
||||
|
||||
/**
|
||||
* @var int marge_droite
|
||||
*/
|
||||
public $marge_droite;
|
||||
|
||||
/**
|
||||
* @var int marge_haute
|
||||
*/
|
||||
public $marge_haute;
|
||||
|
||||
/**
|
||||
* @var int marge_basse
|
||||
*/
|
||||
public $marge_basse;
|
||||
|
||||
/**
|
||||
* Issuer
|
||||
* @var Societe
|
||||
*/
|
||||
public $emetteur; // Objet societe qui emet
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
|
||||
@@ -38,23 +38,78 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/functionsnumtoword.lib.php';
|
||||
*/
|
||||
class pdf_standard extends ModelePDFSuppliersPayments
|
||||
{
|
||||
var $db;
|
||||
var $name;
|
||||
var $description;
|
||||
var $type;
|
||||
/**
|
||||
* @var DoliDb Database handler
|
||||
*/
|
||||
public $db;
|
||||
|
||||
/**
|
||||
* @var string model name
|
||||
*/
|
||||
public $name;
|
||||
|
||||
/**
|
||||
* @var string model description (short text)
|
||||
*/
|
||||
public $description;
|
||||
|
||||
/**
|
||||
* @var string document type
|
||||
*/
|
||||
public $type;
|
||||
|
||||
var $phpmin = array(4,3,0); // Minimum version of PHP required by module
|
||||
var $version = 'dolibarr';
|
||||
|
||||
var $page_largeur;
|
||||
var $page_hauteur;
|
||||
var $format;
|
||||
var $marge_gauche;
|
||||
var $marge_droite;
|
||||
var $marge_haute;
|
||||
var $marge_basse;
|
||||
|
||||
var $emetteur; // Objet societe qui emet
|
||||
/**
|
||||
* @var array() Minimum version of PHP required by module.
|
||||
* e.g.: PHP ≥ 5.4 = array(5, 4)
|
||||
*/
|
||||
public $phpmin = array(5, 4);
|
||||
|
||||
/**
|
||||
* Dolibarr version of the loaded document
|
||||
* @public string
|
||||
*/
|
||||
public $version = 'dolibarr';
|
||||
|
||||
/**
|
||||
* @var int page_largeur
|
||||
*/
|
||||
public $page_largeur;
|
||||
|
||||
/**
|
||||
* @var int page_hauteur
|
||||
*/
|
||||
public $page_hauteur;
|
||||
|
||||
/**
|
||||
* @var array format
|
||||
*/
|
||||
public $format;
|
||||
|
||||
/**
|
||||
* @var int marge_gauche
|
||||
*/
|
||||
public $marge_gauche;
|
||||
|
||||
/**
|
||||
* @var int marge_droite
|
||||
*/
|
||||
public $marge_droite;
|
||||
|
||||
/**
|
||||
* @var int marge_haute
|
||||
*/
|
||||
public $marge_haute;
|
||||
|
||||
/**
|
||||
* @var int marge_basse
|
||||
*/
|
||||
public $marge_basse;
|
||||
|
||||
/**
|
||||
* Issuer
|
||||
* @var Societe
|
||||
*/
|
||||
public $emetteur;
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -60,9 +60,9 @@ class pdf_aurore extends ModelePDFSupplierProposal
|
||||
|
||||
/**
|
||||
* @var array() Minimum version of PHP required by module.
|
||||
* e.g.: PHP ≥ 5.3 = array(5, 3)
|
||||
* e.g.: PHP ≥ 5.4 = array(5, 4)
|
||||
*/
|
||||
public $phpmin = array(5, 2);
|
||||
public $phpmin = array(5, 4);
|
||||
|
||||
/**
|
||||
* Dolibarr version of the loaded document
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
* \brief File with class to manage the numbering module Simple for ticket references
|
||||
*/
|
||||
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/modules/modules_ticket.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/modules/ticket/modules_ticket.php';
|
||||
|
||||
/**
|
||||
* Class to manage the numbering module Simple for ticket references
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
* \brief Fichier contenant la classe du modele de numerotation de reference de projet Universal
|
||||
*/
|
||||
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/modules/modules_ticket.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/modules/ticket/modules_ticket.php';
|
||||
|
||||
/**
|
||||
* Classe du modele de numerotation de reference de projet Universal
|
||||
@@ -52,7 +52,7 @@ class mod_ticket_universal extends ModeleNumRefTicket
|
||||
$texte .= '<form action="' . $_SERVER["PHP_SELF"] . '" method="POST">';
|
||||
$texte .= '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
|
||||
$texte .= '<input type="hidden" name="action" value="updateMask">';
|
||||
$texte .= '<input type="hidden" name="maskconstticket" value="TICKETSUP_UNIVERSAL_MASK">';
|
||||
$texte .= '<input type="hidden" name="maskconstticket" value="TICKET_UNIVERSAL_MASK">';
|
||||
$texte .= '<table class="nobordernopadding" width="100%">';
|
||||
|
||||
$tooltip = $langs->trans("GenericMaskCodes", $langs->transnoentities("Ticket"), $langs->transnoentities("Ticket"));
|
||||
@@ -63,7 +63,7 @@ class mod_ticket_universal extends ModeleNumRefTicket
|
||||
|
||||
// Parametrage du prefix
|
||||
$texte .= '<tr><td>' . $langs->trans("Mask") . ':</td>';
|
||||
$texte .= '<td align="right">' . $form->textwithpicto('<input type="text" class="flat" size="24" name="maskticket" value="' . $conf->global->TICKETSUP_UNIVERSAL_MASK . '">', $tooltip, 1, 1) . '</td>';
|
||||
$texte .= '<td align="right">' . $form->textwithpicto('<input type="text" class="flat" size="24" name="maskticket" value="' . $conf->global->TICKET_UNIVERSAL_MASK . '">', $tooltip, 1, 1) . '</td>';
|
||||
|
||||
$texte .= '<td align="left" rowspan="2"> <input type="submit" class="button" value="' . $langs->trans("Modify") . '" name="Button"></td>';
|
||||
|
||||
@@ -109,7 +109,7 @@ class mod_ticket_universal extends ModeleNumRefTicket
|
||||
include_once DOL_DOCUMENT_ROOT . '/core/lib/functions2.lib.php';
|
||||
|
||||
// On defini critere recherche compteur
|
||||
$mask = $conf->global->TICKETSUP_UNIVERSAL_MASK;
|
||||
$mask = $conf->global->TICKET_UNIVERSAL_MASK;
|
||||
|
||||
if (!$mask) {
|
||||
$this->error = 'NotConfigured';
|
||||
|
||||
120
htdocs/core/modules/ticket/modules_ticket.php
Normal file
120
htdocs/core/modules/ticket/modules_ticket.php
Normal file
@@ -0,0 +1,120 @@
|
||||
<?php
|
||||
/* Copyright (C) 2010-2014 Regis Houssin <regis.houssin@capnetworks.com>
|
||||
* Copyright (C) 2014 Marcos García <marcosgdf@gmail.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
* or see http://www.gnu.org/
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file htdocs/core/modules/ticket/modules_ticket.php
|
||||
* \ingroup project
|
||||
* \brief File that contain parent class for projects models
|
||||
* and parent class for projects numbering models
|
||||
*/
|
||||
|
||||
/**
|
||||
* Classe mere des modeles de numerotation des references de projets
|
||||
*/
|
||||
abstract class ModeleNumRefTicket
|
||||
{
|
||||
public $error = '';
|
||||
|
||||
/**
|
||||
* Return if a module can be used or not
|
||||
*
|
||||
* @return boolean true if module can be used
|
||||
*/
|
||||
public function isEnabled()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Renvoi la description par defaut du modele de numerotation
|
||||
*
|
||||
* @return string Texte descripif
|
||||
*/
|
||||
public function info()
|
||||
{
|
||||
global $langs;
|
||||
$langs->load("ticket");
|
||||
return $langs->trans("NoDescription");
|
||||
}
|
||||
|
||||
/**
|
||||
* Renvoi un exemple de numerotation
|
||||
*
|
||||
* @return string Example
|
||||
*/
|
||||
public function getExample()
|
||||
{
|
||||
global $langs;
|
||||
$langs->load("ticket");
|
||||
return $langs->trans("NoExample");
|
||||
}
|
||||
|
||||
/**
|
||||
* Test si les numeros deja en vigueur dans la base ne provoquent pas de
|
||||
* de conflits qui empechera cette numerotation de fonctionner.
|
||||
*
|
||||
* @return boolean false si conflit, true si ok
|
||||
*/
|
||||
public function canBeActivated()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Renvoi prochaine valeur attribuee
|
||||
*
|
||||
* @param Societe $objsoc Object third party
|
||||
* @param Project $project Object project
|
||||
* @return string Valeur
|
||||
*/
|
||||
public function getNextValue($objsoc, $project)
|
||||
{
|
||||
global $langs;
|
||||
return $langs->trans("NotAvailable");
|
||||
}
|
||||
|
||||
/**
|
||||
* Renvoi version du module numerotation
|
||||
*
|
||||
* @return string Valeur
|
||||
*/
|
||||
public function getVersion()
|
||||
{
|
||||
global $langs;
|
||||
$langs->load("admin");
|
||||
|
||||
if ($this->version == 'development') {
|
||||
return $langs->trans("VersionDevelopment");
|
||||
}
|
||||
|
||||
if ($this->version == 'experimental') {
|
||||
return $langs->trans("VersionExperimental");
|
||||
}
|
||||
|
||||
if ($this->version == 'dolibarr') {
|
||||
return DOL_VERSION;
|
||||
}
|
||||
|
||||
if ($this->version) {
|
||||
return $this->version;
|
||||
}
|
||||
|
||||
return $langs->trans("NotAvailable");
|
||||
}
|
||||
}
|
||||
@@ -144,7 +144,7 @@ $langs->load("modulebuilder");
|
||||
|
||||
<table summary="listofattributes" class="border centpercent">
|
||||
<!-- Label -->
|
||||
<tr><td class="titlefield fieldrequired"><?php echo $langs->trans("Label"); ?></td><td class="valeur"><input type="text" name="label" size="40" value="<?php echo GETPOST('label','alpha'); ?>"></td></tr>
|
||||
<tr><td class="titlefield fieldrequired"><?php echo $langs->trans("LabelOrTranslationKey"); ?></td><td class="valeur"><input type="text" name="label" size="40" value="<?php echo GETPOST('label','alpha'); ?>"></td></tr>
|
||||
<!-- Code -->
|
||||
<tr><td class="fieldrequired"><?php echo $langs->trans("AttributeCode"); ?></td><td class="valeur"><input type="text" name="attrname" id="attrname" size="10" value="<?php echo GETPOST('attrname','alpha'); ?>"> (<?php echo $langs->trans("AlphaNumOnlyLowerCharsAndNoSpace"); ?>)</td></tr>
|
||||
<!-- Type -->
|
||||
@@ -186,12 +186,15 @@ $langs->load("modulebuilder");
|
||||
<tr class="extra_required"><td><?php echo $langs->trans("Required"); ?></td><td class="valeur"><input id="required" type="checkbox" name="required"<?php echo (GETPOST('required','alpha')?' checked':''); ?>></td></tr>
|
||||
<!-- Always editable -->
|
||||
<tr class="extra_alwayseditable"><td><?php echo $langs->trans("AlwaysEditable"); ?></td><td class="valeur"><input id="alwayseditable" type="checkbox" name="alwayseditable"<?php echo ((GETPOST('alwayseditable','alpha') || ! GETPOST('button','alpha'))?' checked':''); ?>></td></tr>
|
||||
<?php if ($conf->multicompany->enabled) { ?>
|
||||
<tr><td><?php echo $langs->trans("AllEntities"); ?></td><td class="valeur"><input id="entitycurrentorall" type="checkbox" name="entitycurrentorall"<?php echo (GETPOST('entitycurrentorall','alpha') ? '':' checked'); ?>></td></tr>
|
||||
<?php } ?>
|
||||
<!-- Visibility -->
|
||||
<tr><td class="extra_list"><?php echo $form->textwithpicto($langs->trans("Visibility"), $langs->trans("VisibleDesc")); ?>
|
||||
</td><td class="valeur"><input id="list" class="minwidth100" type="text" name="list" value="<?php echo GETPOST('list','int')!='' ? GETPOST('list','int') : '1'; ?>"></td></tr>
|
||||
<!-- Help tooltip -->
|
||||
<tr class="help"><td><?php echo $form->textwithpicto($langs->trans("HelpOnTooltip"), $langs->trans("HelpOnTooltipDesc")); ?></td><td class="valeur"><input id="help" class="quatrevingtpercent" type="text" name="help" value="<?php echo dol_escape_htmltag($help); ?>"></td></tr>
|
||||
<?php if ($conf->multicompany->enabled) { ?>
|
||||
<!-- Multicompany entity -->
|
||||
<tr><td><?php echo $langs->trans("AllEntities"); ?></td><td class="valeur"><input id="entitycurrentorall" type="checkbox" name="entitycurrentorall"<?php echo (GETPOST('entitycurrentorall','alpha') ? '':' checked'); ?>></td></tr>
|
||||
<?php } ?>
|
||||
</table>
|
||||
|
||||
<?php dol_fiche_end(); ?>
|
||||
|
||||
@@ -156,6 +156,7 @@ $param=$extrafields->attributes[$elementtype]['param'][$attrname];
|
||||
$perms=$extrafields->attributes[$elementtype]['perms'][$attrname];
|
||||
$langfile=$extrafields->attributes[$elementtype]['langfile'][$attrname];
|
||||
$list=$extrafields->attributes[$elementtype]['list'][$attrname];
|
||||
$help=$extrafields->attributes[$elementtype]['help'][$attrname];
|
||||
$entitycurrentorall=$extrafields->attributes[$elementtype]['entityid'][$attrname];
|
||||
|
||||
if((($type == 'select') || ($type == 'checkbox') || ($type == 'radio')) && is_array($param))
|
||||
@@ -176,7 +177,7 @@ elseif (($type== 'sellist') || ($type == 'chkbxlst') || ($type == 'link') || ($t
|
||||
}
|
||||
?>
|
||||
<!-- Label -->
|
||||
<tr><td class="titlefield fieldrequired"><?php echo $langs->trans("Label"); ?></td><td class="valeur"><input type="text" name="label" size="40" value="<?php echo $label; ?>"></td></tr>
|
||||
<tr><td class="titlefield fieldrequired"><?php echo $langs->trans("LabelOrTranslationKey"); ?></td><td class="valeur"><input type="text" name="label" size="40" value="<?php echo $label; ?>"></td></tr>
|
||||
<!-- Code -->
|
||||
<tr><td class="fieldrequired"><?php echo $langs->trans("AttributeCode"); ?></td><td class="valeur"><?php echo $attrname; ?></td></tr>
|
||||
<!-- Type -->
|
||||
@@ -248,12 +249,15 @@ else
|
||||
<tr class="extra_required"><td><?php echo $langs->trans("Required"); ?></td><td class="valeur"><input id="required" type="checkbox" name="required"<?php echo ($required?' checked':''); ?>></td></tr>
|
||||
<!-- Always editable -->
|
||||
<tr class="extra_alwayseditable"><td><?php echo $langs->trans("AlwaysEditable"); ?></td><td class="valeur"><input id="alwayseditable" type="checkbox" name="alwayseditable"<?php echo ($alwayseditable?' checked':''); ?>></td></tr>
|
||||
<tr><td class="extra_list"><?php echo $form->textwithpicto($langs->trans("Visibility"), $langs->trans("VisibleDesc")); ?>
|
||||
</td><td class="valeur"><input id="list" class="minwidth100" type="text" name="list" value="<?php echo ($list!=''?$list:'1'); ?>"></td></tr>
|
||||
<!-- Help tooltip -->
|
||||
<tr class="help"><td><?php echo $form->textwithpicto($langs->trans("HelpOnTooltip"), $langs->trans("HelpOnTooltipDesc")); ?></td><td class="valeur"><input id="help" class="quatrevingtpercent" type="text" name="help" value="<?php echo dol_escape_htmltag($help); ?>"></td></tr>
|
||||
<?php if ($conf->multicompany->enabled) { ?>
|
||||
<!-- Multicompany entity -->
|
||||
<tr><td><?php echo $langs->trans("AllEntities"); ?></td><td class="valeur"><input id="entitycurrentorall" type="checkbox" name="entitycurrentorall"<?php echo (empty($entitycurrentorall) ?' checked':''); ?>></td></tr>
|
||||
<?php } ?>
|
||||
<!-- Visibility -->
|
||||
<tr><td class="extra_list"><?php echo $form->textwithpicto($langs->trans("Visibility"), $langs->trans("VisibleDesc")); ?>
|
||||
</td><td class="valeur"><input id="list" class="minwidth100" type="text" name="list" value="<?php echo ($list!=''?$list:'1'); ?>"></td></tr>
|
||||
</table>
|
||||
|
||||
<?php dol_fiche_end(); ?>
|
||||
|
||||
@@ -51,13 +51,13 @@ print '<tr class="liste_titre">';
|
||||
print '<td align="left">'.$langs->trans("Position");
|
||||
print '<span class="nowrap"><img src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/1downarrow.png" alt="" title="A-Z" class="imgdown"></span>';
|
||||
print '</td>';
|
||||
print '<td>'.$langs->trans("Label").'</td>';
|
||||
print '<td>'.$langs->trans("LabelOrTranslationKey").'</td>';
|
||||
print '<td>'.$langs->trans("TranslationString").'</td>';
|
||||
print '<td>'.$langs->trans("AttributeCode").'</td>';
|
||||
print '<td>'.$langs->trans("Type").'</td>';
|
||||
print '<td align="right">'.$langs->trans("Size").'</td>';
|
||||
print '<td align="center">'.$langs->trans("Unique").'</td>';
|
||||
print '<td>'.$langs->trans("ComputedFormula").'</td>';
|
||||
print '<td align="center">'.$langs->trans("Unique").'</td>';
|
||||
print '<td align="center">'.$langs->trans("Required").'</td>';
|
||||
print '<td align="center">'.$langs->trans("AlwaysEditable").'</td>';
|
||||
print '<td align="center">'.$form->textwithpicto($langs->trans("Visible"), $langs->trans("VisibleDesc")).'</td>';
|
||||
@@ -83,8 +83,8 @@ if (is_array($extrafields->attributes[$elementtype]['type']) && count($extrafiel
|
||||
print "<td>".$key."</td>\n";
|
||||
print "<td>".$type2label[$extrafields->attributes[$elementtype]['type'][$key]]."</td>\n";
|
||||
print '<td align="right">'.$extrafields->attributes[$elementtype]['size'][$key]."</td>\n";
|
||||
print '<td align="center">'.yn($extrafields->attributes[$elementtype]['unique'][$key])."</td>\n";
|
||||
print '<td>'.dol_trunc($extrafields->attributes[$elementtype]['computed'][$key], 20)."</td>\n";
|
||||
print '<td align="center">'.yn($extrafields->attributes[$elementtype]['unique'][$key])."</td>\n";
|
||||
print '<td align="center">'.yn($extrafields->attributes[$elementtype]['required'][$key])."</td>\n";
|
||||
print '<td align="center">'.yn($extrafields->attributes[$elementtype]['alwayseditable'][$key])."</td>\n";
|
||||
print '<td align="center">'.$extrafields->attributes[$elementtype]['list'][$key]."</td>\n";
|
||||
|
||||
@@ -116,7 +116,7 @@ class InterfaceTicketEmail extends DolibarrTriggers
|
||||
$res = $userstat->fetch($object->fk_user_assign);
|
||||
if ($res > 0)
|
||||
{
|
||||
if (empty($conf->global->TICKETS_DISABLE_ALL_MAILS))
|
||||
if (empty($conf->global->TICKET_DISABLE_ALL_MAILS))
|
||||
{
|
||||
// Init to avoid errors
|
||||
$filepath = array();
|
||||
@@ -146,7 +146,7 @@ class InterfaceTicketEmail extends DolibarrTriggers
|
||||
|
||||
$message = dol_nl2br($message);
|
||||
|
||||
if (!empty($conf->global->TICKETS_DISABLE_MAIL_AUTOCOPY_TO)) {
|
||||
if (!empty($conf->global->TICKET_DISABLE_MAIL_AUTOCOPY_TO)) {
|
||||
$old_MAIN_MAIL_AUTOCOPY_TO = $conf->global->MAIN_MAIL_AUTOCOPY_TO;
|
||||
$conf->global->MAIN_MAIL_AUTOCOPY_TO = '';
|
||||
}
|
||||
@@ -157,7 +157,7 @@ class InterfaceTicketEmail extends DolibarrTriggers
|
||||
} else {
|
||||
$result = $mailfile->sendfile();
|
||||
}
|
||||
if (!empty($conf->global->TICKETS_DISABLE_MAIL_AUTOCOPY_TO)) {
|
||||
if (!empty($conf->global->TICKET_DISABLE_MAIL_AUTOCOPY_TO)) {
|
||||
$conf->global->MAIN_MAIL_AUTOCOPY_TO = $old_MAIN_MAIL_AUTOCOPY_TO;
|
||||
}
|
||||
}
|
||||
@@ -182,9 +182,9 @@ class InterfaceTicketEmail extends DolibarrTriggers
|
||||
|
||||
// Send email to notification email
|
||||
|
||||
if (empty($conf->global->TICKETS_DISABLE_ALL_MAILS) && empty($object->context['disableticketemail']))
|
||||
if (empty($conf->global->TICKET_DISABLE_ALL_MAILS) && empty($object->context['disableticketemail']))
|
||||
{
|
||||
$sendto = $conf->global->TICKETS_NOTIFICATION_EMAIL_TO;
|
||||
$sendto = $conf->global->TICKET_NOTIFICATION_EMAIL_TO;
|
||||
|
||||
if ($sendto)
|
||||
{
|
||||
@@ -217,12 +217,12 @@ class InterfaceTicketEmail extends DolibarrTriggers
|
||||
$message_admin.='<p>'.$langs->trans('Message').' : <br>'.$object->message.'</p>';
|
||||
$message_admin.='<p><a href="'.dol_buildpath('/ticket/card.php', 2).'?track_id='.$object->track_id.'">'.$langs->trans('SeeThisTicketIntomanagementInterface').'</a></p>';
|
||||
|
||||
$from = $conf->global->MAIN_INFO_SOCIETE_NOM.'<'.$conf->global->TICKETS_NOTIFICATION_EMAIL_FROM.'>';
|
||||
$from = $conf->global->MAIN_INFO_SOCIETE_NOM.'<'.$conf->global->TICKET_NOTIFICATION_EMAIL_FROM.'>';
|
||||
$replyto = $from;
|
||||
|
||||
$message_admin = dol_nl2br($message_admin);
|
||||
|
||||
if (!empty($conf->global->TICKETS_DISABLE_MAIL_AUTOCOPY_TO)) {
|
||||
if (!empty($conf->global->TICKET_DISABLE_MAIL_AUTOCOPY_TO)) {
|
||||
$old_MAIN_MAIL_AUTOCOPY_TO = $conf->global->MAIN_MAIL_AUTOCOPY_TO;
|
||||
$conf->global->MAIN_MAIL_AUTOCOPY_TO = '';
|
||||
}
|
||||
@@ -233,7 +233,7 @@ class InterfaceTicketEmail extends DolibarrTriggers
|
||||
} else {
|
||||
$result=$mailfile->sendfile();
|
||||
}
|
||||
if (!empty($conf->global->TICKETS_DISABLE_MAIL_AUTOCOPY_TO)) {
|
||||
if (!empty($conf->global->TICKET_DISABLE_MAIL_AUTOCOPY_TO)) {
|
||||
$conf->global->MAIN_MAIL_AUTOCOPY_TO = $old_MAIN_MAIL_AUTOCOPY_TO;
|
||||
}
|
||||
}
|
||||
@@ -241,7 +241,7 @@ class InterfaceTicketEmail extends DolibarrTriggers
|
||||
|
||||
// Send email to customer
|
||||
|
||||
if (empty($conf->global->TICKETS_DISABLE_ALL_MAILS) && empty($object->context['disableticketemail']) && $object->notify_tiers_at_create)
|
||||
if (empty($conf->global->TICKET_DISABLE_ALL_MAILS) && empty($object->context['disableticketemail']) && $object->notify_tiers_at_create)
|
||||
{
|
||||
$sendto = '';
|
||||
if (empty($user->socid) && empty($user->email)) {
|
||||
@@ -287,16 +287,16 @@ class InterfaceTicketEmail extends DolibarrTriggers
|
||||
|
||||
$message_customer.='</ul>';
|
||||
$message_customer.='<p>'.$langs->trans('Message').' : <br>'.$object->message.'</p>';
|
||||
$url_public_ticket = ($conf->global->TICKETS_URL_PUBLIC_INTERFACE?$conf->global->TICKETS_URL_PUBLIC_INTERFACE.'/':dol_buildpath('/public/ticket/view.php', 2)).'?track_id='.$object->track_id;
|
||||
$url_public_ticket = ($conf->global->TICKET_URL_PUBLIC_INTERFACE?$conf->global->TICKET_URL_PUBLIC_INTERFACE.'/':dol_buildpath('/public/ticket/view.php', 2)).'?track_id='.$object->track_id;
|
||||
$message_customer.='<p>' . $langs->trans('TicketNewEmailBodyInfosTrackUrlCustomer') . ' : <a href="'.$url_public_ticket.'">'.$url_public_ticket.'</a></p>';
|
||||
$message_customer.='<p>'.$langs->trans('TicketEmailPleaseDoNotReplyToThisEmail').'</p>';
|
||||
|
||||
$from = $conf->global->MAIN_INFO_SOCIETE_NOM.'<'.$conf->global->TICKETS_NOTIFICATION_EMAIL_FROM.'>';
|
||||
$from = $conf->global->MAIN_INFO_SOCIETE_NOM.'<'.$conf->global->TICKET_NOTIFICATION_EMAIL_FROM.'>';
|
||||
$replyto = $from;
|
||||
|
||||
$message_customer = dol_nl2br($message_customer);
|
||||
|
||||
if (!empty($conf->global->TICKETS_DISABLE_MAIL_AUTOCOPY_TO)) {
|
||||
if (!empty($conf->global->TICKET_DISABLE_MAIL_AUTOCOPY_TO)) {
|
||||
$old_MAIN_MAIL_AUTOCOPY_TO = $conf->global->MAIN_MAIL_AUTOCOPY_TO;
|
||||
$conf->global->MAIN_MAIL_AUTOCOPY_TO = '';
|
||||
}
|
||||
@@ -307,7 +307,7 @@ class InterfaceTicketEmail extends DolibarrTriggers
|
||||
} else {
|
||||
$result=$mailfile->sendfile();
|
||||
}
|
||||
if (!empty($conf->global->TICKETS_DISABLE_MAIL_AUTOCOPY_TO)) {
|
||||
if (!empty($conf->global->TICKET_DISABLE_MAIL_AUTOCOPY_TO)) {
|
||||
$conf->global->MAIN_MAIL_AUTOCOPY_TO = $old_MAIN_MAIL_AUTOCOPY_TO;
|
||||
}
|
||||
}
|
||||
@@ -285,6 +285,8 @@ class EcmFiles extends CommonObject
|
||||
*/
|
||||
public function fetch($id, $ref = '', $relativepath = '', $hashoffile='', $hashforshare='', $src_object_type='', $src_object_id=0)
|
||||
{
|
||||
global $conf;
|
||||
|
||||
dol_syslog(__METHOD__, LOG_DEBUG);
|
||||
|
||||
$sql = 'SELECT';
|
||||
@@ -317,25 +319,31 @@ class EcmFiles extends CommonObject
|
||||
}*/
|
||||
if ($relativepath) {
|
||||
$sql .= " AND t.filepath = '" . $this->db->escape(dirname($relativepath)) . "' AND t.filename = '".$this->db->escape(basename($relativepath))."'";
|
||||
$sql .= " AND t.entity = ".$conf->entity; // unique key include the entity so each company has its own index
|
||||
}
|
||||
elseif (! empty($ref)) {
|
||||
elseif (! empty($ref)) { // hash of file path
|
||||
$sql .= " AND t.ref = '".$this->db->escape($ref)."'";
|
||||
$sql .= " AND t.entity = ".$conf->entity; // unique key include the entity so each company has its own index
|
||||
}
|
||||
elseif (! empty($hashoffile)) {
|
||||
elseif (! empty($hashoffile)) { // hash of content
|
||||
$sql .= " AND t.label = '".$this->db->escape($hashoffile)."'";
|
||||
$sql .= " AND t.entity = ".$conf->entity; // unique key include the entity so each company has its own index
|
||||
}
|
||||
elseif (! empty($hashforshare)) {
|
||||
$sql .= " AND t.share = '".$this->db->escape($hashforshare)."'";
|
||||
//$sql .= " AND t.entity = ".$conf->entity; // hashforshare already unique
|
||||
}
|
||||
elseif ($src_object_type && $src_object_id)
|
||||
{
|
||||
$sql.= " AND t.src_object_type ='".$this->db->escape($src_object_type)."' AND t.src_object_id = ".$this->db->escape($src_object_id);
|
||||
// Warning: May return several record, and only first one is returned !
|
||||
$sql .= " AND t.src_object_type ='".$this->db->escape($src_object_type)."' AND t.src_object_id = ".$this->db->escape($src_object_id);
|
||||
$sql .= " AND t.entity = ".$conf->entity;
|
||||
}
|
||||
else {
|
||||
$sql .= ' AND t.rowid = '.$this->db->escape($id);
|
||||
$sql .= ' AND t.rowid = '.$this->db->escape($id); // rowid already unique
|
||||
}
|
||||
// When we search on hash of content, we take the first one. Solve also hash conflict.
|
||||
$this->db->plimit(1);
|
||||
|
||||
$this->db->plimit(1); // When we search on src or on hash of content (hashforfile) to solve hash conflict when several files has same content, we take first one only
|
||||
$this->db->order('t.rowid', 'ASC');
|
||||
|
||||
$resql = $this->db->query($sql);
|
||||
|
||||
@@ -309,8 +309,7 @@ if ($search_status != '' && $search_status >= 0) $sql.=" AND d.fk_statut IN (".$
|
||||
if (empty($user->rights->expensereport->readall) && empty($user->rights->expensereport->lire_tous)
|
||||
&& (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || empty($user->rights->expensereport->writeall_advance)))
|
||||
{
|
||||
$childids = $user->getAllChildIds();
|
||||
$childids[]=$user->id;
|
||||
$childids = $user->getAllChildIds(1);
|
||||
$sql.= " AND d.fk_user_author IN (".join(',',$childids).")\n";
|
||||
}
|
||||
// Add where from extra fields
|
||||
@@ -447,12 +446,15 @@ if ($resql)
|
||||
print '<a href="'.$_SERVER["PHP_SELF"].'?action=edit&id='.$user_id.'" class="butAction">'.$langs->trans("Modify").'</a>';
|
||||
}
|
||||
|
||||
$canedit=(($user->id == $user_id && $user->rights->expensereport->creer) || ($user->id != $user_id));
|
||||
$childids = $user->getAllChildIds(1);
|
||||
|
||||
$canedit=((in_array($user_id, $childids) && $user->rights->expensereport->creer)
|
||||
|| ($conf->global->MAIN_USE_ADVANCED_PERMS && $user->rights->expensereport->writeall_advance));
|
||||
|
||||
// Boutons d'actions
|
||||
if ($canedit)
|
||||
{
|
||||
print '<a href="'.DOL_URL_ROOT.'/expensereport/card.php?action=request&id='.$user_id.'" class="butAction">'.$langs->trans("AddTrip").'</a>';
|
||||
print '<a href="'.DOL_URL_ROOT.'/expensereport/card.php?action=create&fk_user_author='.$fuser->id.'" class="butAction">'.$langs->trans("AddTrip").'</a>';
|
||||
}
|
||||
|
||||
print '</div>';
|
||||
|
||||
@@ -530,7 +530,7 @@ class ProductFournisseur extends Product
|
||||
$sql.= " ,pfp.multicurrency_price, pfp.multicurrency_unitprice, pfp.multicurrency_tx, pfp.fk_multicurrency, pfp.multicurrency_code";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price as pfp";
|
||||
$sql.= ", ".MAIN_DB_PREFIX."societe as s";
|
||||
$sql.= " WHERE pfp.entity IN (".getEntity('productprice').")";
|
||||
$sql.= " WHERE pfp.entity IN (".getEntity('productsupplierprice').")";
|
||||
$sql.= " AND pfp.fk_soc = s.rowid";
|
||||
$sql.= " AND s.status=1"; // only enabled company selected
|
||||
$sql.= " AND pfp.fk_product = ".$prodid;
|
||||
|
||||
@@ -346,12 +346,12 @@ class Holiday extends CommonObject
|
||||
$sql.= " AND cp.fk_user = uu.rowid AND cp.fk_validator = ua.rowid"; // Hack pour la recherche sur le tableau
|
||||
$sql.= " AND cp.fk_user IN (".$user_id.")";
|
||||
|
||||
// Filtre de séléction
|
||||
// Selection filter
|
||||
if(!empty($filter)) {
|
||||
$sql.= $filter;
|
||||
}
|
||||
|
||||
// Ordre d'affichage du résultat
|
||||
// Order of display of the result
|
||||
if(!empty($order)) {
|
||||
$sql.= $order;
|
||||
}
|
||||
@@ -359,19 +359,19 @@ class Holiday extends CommonObject
|
||||
dol_syslog(get_class($this)."::fetchByUser", LOG_DEBUG);
|
||||
$resql=$this->db->query($sql);
|
||||
|
||||
// Si pas d'erreur SQL
|
||||
// If no SQL error
|
||||
if ($resql) {
|
||||
|
||||
$i = 0;
|
||||
$tab_result = $this->holiday;
|
||||
$num = $this->db->num_rows($resql);
|
||||
|
||||
// Si pas d'enregistrement
|
||||
// If no registration
|
||||
if(!$num) {
|
||||
return 2;
|
||||
}
|
||||
|
||||
// Liste les enregistrements et les ajoutent au tableau
|
||||
// List the records and add them to the table
|
||||
while($i < $num) {
|
||||
|
||||
$obj = $this->db->fetch_object($resql);
|
||||
@@ -412,13 +412,13 @@ class Holiday extends CommonObject
|
||||
$i++;
|
||||
}
|
||||
|
||||
// Retourne 1 avec le tableau rempli
|
||||
// Returns 1 with the filled array
|
||||
$this->holiday = $tab_result;
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Erreur SQL
|
||||
// SQL Error
|
||||
$this->error="Error ".$this->db->lasterror();
|
||||
return -1;
|
||||
}
|
||||
@@ -471,12 +471,12 @@ class Holiday extends CommonObject
|
||||
$sql.= " WHERE cp.entity IN (".getEntity('holiday').")";
|
||||
$sql.= " AND cp.fk_user = uu.rowid AND cp.fk_validator = ua.rowid "; // Hack pour la recherche sur le tableau
|
||||
|
||||
// Filtrage de séléction
|
||||
// Selection filtering
|
||||
if(!empty($filter)) {
|
||||
$sql.= $filter;
|
||||
}
|
||||
|
||||
// Ordre d'affichage
|
||||
// order of display
|
||||
if(!empty($order)) {
|
||||
$sql.= $order;
|
||||
}
|
||||
@@ -484,19 +484,19 @@ class Holiday extends CommonObject
|
||||
dol_syslog(get_class($this)."::fetchAll", LOG_DEBUG);
|
||||
$resql=$this->db->query($sql);
|
||||
|
||||
// Si pas d'erreur SQL
|
||||
// If no SQL error
|
||||
if ($resql) {
|
||||
|
||||
$i = 0;
|
||||
$tab_result = $this->holiday;
|
||||
$num = $this->db->num_rows($resql);
|
||||
|
||||
// Si pas d'enregistrement
|
||||
// If no registration
|
||||
if(!$num) {
|
||||
return 2;
|
||||
}
|
||||
|
||||
// On liste les résultats et on les ajoutent dans le tableau
|
||||
// List the records and add them to the table
|
||||
while($i < $num) {
|
||||
|
||||
$obj = $this->db->fetch_object($resql);
|
||||
@@ -536,13 +536,13 @@ class Holiday extends CommonObject
|
||||
|
||||
$i++;
|
||||
}
|
||||
// Retourne 1 et ajoute le tableau à la variable
|
||||
// Returns 1 and adds the array to the variable
|
||||
$this->holiday = $tab_result;
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Erreur SQL
|
||||
// SQL Error
|
||||
$this->error="Error ".$this->db->lasterror();
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ $langs->setDefaultLang($setuplang);
|
||||
|
||||
$langs->load("install");
|
||||
|
||||
// Now we load forced value from install.forced.php file.
|
||||
// Now we load forced/pre-set values from install.forced.php file.
|
||||
$useforcedwizard=false;
|
||||
$forcedfile="./install.forced.php";
|
||||
if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.forced.php";
|
||||
@@ -49,14 +49,14 @@ if (@file_exists($forcedfile)) {
|
||||
include_once $forcedfile;
|
||||
}
|
||||
|
||||
dolibarr_install_syslog("--- check: Dolibarr install/upgrade process started");
|
||||
dolibarr_install_syslog("- check: Dolibarr install/upgrade process started");
|
||||
|
||||
|
||||
/*
|
||||
* View
|
||||
*/
|
||||
|
||||
pHeader('',''); // No next step for navigation buttons. Next step is defined by clik on links.
|
||||
pHeader('',''); // No next step for navigation buttons. Next step is defined by click on links.
|
||||
|
||||
|
||||
//print "<br>\n";
|
||||
@@ -233,13 +233,13 @@ else
|
||||
else dolibarr_install_syslog("check: failed to create a new file " . $conffile . " into current dir " . getcwd() . ". Please check permissions.", LOG_ERR);
|
||||
}
|
||||
|
||||
// First install, we can't upgrade
|
||||
// First install: no upgrade necessary/required
|
||||
$allowupgrade=false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// File is missng and can't be created
|
||||
// File is missing and cannot be created
|
||||
if (! file_exists($conffile))
|
||||
{
|
||||
print '<img src="../theme/eldy/img/error.png" alt="Error"> '.$langs->trans("ConfFileDoesNotExistsAndCouldNotBeCreated",$conffiletoshow);
|
||||
@@ -258,7 +258,7 @@ else
|
||||
|
||||
$allowinstall=0;
|
||||
}
|
||||
// File exists but can't be modified
|
||||
// File exists but cannot be modified
|
||||
elseif (!is_writable($conffile))
|
||||
{
|
||||
if ($confexists)
|
||||
@@ -294,7 +294,7 @@ else
|
||||
}
|
||||
print "<br>\n";
|
||||
|
||||
// Requirements ok, we display the next step button
|
||||
// Requirements met/all ok: display the next step button
|
||||
if ($checksok)
|
||||
{
|
||||
$ok=0;
|
||||
@@ -307,7 +307,7 @@ else
|
||||
{
|
||||
if (! file_exists($dolibarr_main_document_root."/core/lib/admin.lib.php"))
|
||||
{
|
||||
print '<font class="error">A '.$conffiletoshow.' file exists with a dolibarr_main_document_root to '.$dolibarr_main_document_root.' that seems wrong. Try to fix or remove the '.$conffiletoshow.' file.</font><br>'."\n";
|
||||
print '<span class="error">A '.$conffiletoshow.' file exists with a dolibarr_main_document_root to '.$dolibarr_main_document_root.' that seems wrong. Try to fix or remove the '.$conffiletoshow.' file.</span><br>'."\n";
|
||||
dol_syslog("A '" . $conffiletoshow . "' file exists with a dolibarr_main_document_root to " . $dolibarr_main_document_root . " that seems wrong. Try to fix or remove the '" . $conffiletoshow . "' file.", LOG_WARNING);
|
||||
}
|
||||
else
|
||||
@@ -326,7 +326,7 @@ else
|
||||
else $dolibarr_main_db_pass = dol_decode($dolibarr_main_db_encrypted_pass);
|
||||
}
|
||||
|
||||
// $conf is already instancied inside inc.php
|
||||
// $conf already created in inc.php
|
||||
$conf->db->type = $dolibarr_main_db_type;
|
||||
$conf->db->host = $dolibarr_main_db_host;
|
||||
$conf->db->port = $dolibarr_main_db_port;
|
||||
@@ -342,7 +342,7 @@ else
|
||||
}
|
||||
}
|
||||
|
||||
// If a database access is available, we set more variable
|
||||
// If database access is available, we set more variables
|
||||
if ($ok)
|
||||
{
|
||||
if (empty($dolibarr_main_db_encryption)) $dolibarr_main_db_encryption=0;
|
||||
@@ -364,8 +364,8 @@ else
|
||||
// Show title
|
||||
if (! empty($conf->global->MAIN_VERSION_LAST_UPGRADE) || ! empty($conf->global->MAIN_VERSION_LAST_INSTALL))
|
||||
{
|
||||
print $langs->trans("VersionLastUpgrade").': <b><font class="ok">'.(empty($conf->global->MAIN_VERSION_LAST_UPGRADE)?$conf->global->MAIN_VERSION_LAST_INSTALL:$conf->global->MAIN_VERSION_LAST_UPGRADE).'</font></b><br>';
|
||||
print $langs->trans("VersionProgram").': <b><font class="ok">'.DOL_VERSION.'</font></b>';
|
||||
print $langs->trans("VersionLastUpgrade").': <b><span class="ok">'.(empty($conf->global->MAIN_VERSION_LAST_UPGRADE)?$conf->global->MAIN_VERSION_LAST_INSTALL:$conf->global->MAIN_VERSION_LAST_UPGRADE).'</span></b><br>';
|
||||
print $langs->trans("VersionProgram").': <b><span class="ok">'.DOL_VERSION.'</span></b>';
|
||||
//print ' '.img_warning($langs->trans("RunningUpdateProcessMayBeRequired"));
|
||||
print '<br>';
|
||||
print '<br>';
|
||||
@@ -375,7 +375,7 @@ else
|
||||
print $langs->trans("InstallEasy")." ";
|
||||
print $langs->trans("ChooseYourSetupMode");
|
||||
|
||||
print '<br><br>';
|
||||
print '<br>';
|
||||
|
||||
$foundrecommandedchoice=0;
|
||||
|
||||
@@ -383,9 +383,9 @@ else
|
||||
$notavailable_choices = array();
|
||||
|
||||
// Show first install line
|
||||
$choice = '<tr class="listofchoices"><td class="listofchoices nowrap" align="center"><b>'.$langs->trans("FreshInstall").'</b>';
|
||||
$choice = "\n".'<tr><td class="nowrap center"><b>'.$langs->trans("FreshInstall").'</b>';
|
||||
$choice .= '</td>';
|
||||
$choice .= '<td class="listofchoices listofchoicesdesc">';
|
||||
$choice .= '<td class="listofchoicesdesc">';
|
||||
$choice .= $langs->trans("FreshInstallDesc");
|
||||
if (empty($dolibarr_main_db_host)) // This means install process was not run
|
||||
{
|
||||
@@ -397,7 +397,7 @@ else
|
||||
}
|
||||
|
||||
$choice .= '</td>';
|
||||
$choice .= '<td class="listofchoices" align="center">';
|
||||
$choice .= '<td class="center">';
|
||||
if ($allowinstall)
|
||||
{
|
||||
$choice .= '<a class="button" href="fileconf.php?selectlang='.$setuplang.'">'.$langs->trans("Start").'</a>';
|
||||
@@ -465,7 +465,7 @@ else
|
||||
|
||||
if ($ok)
|
||||
{
|
||||
if (count($dolibarrlastupgradeversionarray) >= 2) // If a database access is available and last upgrade version is known
|
||||
if (count($dolibarrlastupgradeversionarray) >= 2) // If database access is available and last upgrade version is known
|
||||
{
|
||||
// Now we check if this is the first qualified choice
|
||||
if ($allowupgrade && empty($foundrecommandedchoice) &&
|
||||
@@ -477,22 +477,23 @@ else
|
||||
}
|
||||
}
|
||||
else {
|
||||
// We can not recommand a choice.
|
||||
// We cannot recommend a choice.
|
||||
// A version of install may be known, but we need last upgrade.
|
||||
}
|
||||
}
|
||||
|
||||
$choice .= '<tr class="listofchoices '.($recommended_choice ? 'choiceselected' : '').'">';
|
||||
$choice .= '<td class="listofchoices nowrap" align="center"><b>'.$langs->trans("Upgrade").'<br>'.$newversionfrom.$newversionfrombis.' -> '.$newversionto.'</b></td>';
|
||||
$choice .= '<td class="listofchoices listofchoicesdesc">';
|
||||
$choice .= "\n".'<tr'.($recommended_choice ? ' class="choiceselected"' : '').'>';
|
||||
$choice .= '<td class="nowrap center"><b>'.$langs->trans("Upgrade").'<br>'.$newversionfrom.$newversionfrombis.' -> '.$newversionto.'</b></td>';
|
||||
$choice .= '<td class="listofchoicesdesc">';
|
||||
$choice .= $langs->trans("UpgradeDesc");
|
||||
|
||||
if ($recommended_choice)
|
||||
{
|
||||
$choice .= '<br>';
|
||||
//print $langs->trans("InstallChoiceRecommanded",DOL_VERSION,$conf->global->MAIN_VERSION_LAST_UPGRADE);
|
||||
$choice .= '<div class="center"><div class="ok">'.$langs->trans("InstallChoiceSuggested").'</div>';
|
||||
if ($count < count($migarray)) // There is other choices after
|
||||
$choice .= '<div class="center">';
|
||||
$choice .= '<div class="ok">'.$langs->trans("InstallChoiceSuggested").'</div>';
|
||||
if ($count < count($migarray)) // There are other choices after
|
||||
{
|
||||
print $langs->trans("MigrateIsDoneStepByStep",DOL_VERSION);
|
||||
}
|
||||
@@ -500,7 +501,7 @@ else
|
||||
}
|
||||
|
||||
$choice .= '</td>';
|
||||
$choice .= '<td class="listofchoices" align="center">';
|
||||
$choice .= '<td class="center">';
|
||||
if ($allowupgrade)
|
||||
{
|
||||
$disabled=false;
|
||||
@@ -512,8 +513,14 @@ else
|
||||
{
|
||||
$foundrecommandedchoice = 2;
|
||||
}
|
||||
if ($disabled) $choice .= '<span class="buttonDisable runupgrade"'.($disabled?' disabled="disabled"':'').' href="#">'.$langs->trans("NotAvailable").'</span>';
|
||||
else $choice .= '<a class="button runupgrade"'.($disabled?' disabled="disabled"':'').' href="upgrade.php?action=upgrade'.($count<count($migrationscript)?'_'.$versionto:'').'&selectlang='.$setuplang.'&versionfrom='.$versionfrom.'&versionto='.$versionto.'">'.$langs->trans("Start").'</a>';
|
||||
if ($disabled)
|
||||
{
|
||||
$choice .= '<span class="button">'.$langs->trans("NotAvailable").'</span>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$choice .= '<a class="button runupgrade" href="upgrade.php?action=upgrade'.($count<count($migrationscript)?'_'.$versionto:'').'&selectlang='.$setuplang.'&versionfrom='.$versionfrom.'&versionto='.$versionto.'">'.$langs->trans("Start").'</a>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -537,28 +544,28 @@ else
|
||||
}
|
||||
|
||||
// Array of install choices
|
||||
print"\n";
|
||||
print '<table width="100%" class="listofchoices">';
|
||||
foreach ($available_choices as $choice) {
|
||||
print $choice;
|
||||
}
|
||||
|
||||
print '</table>';
|
||||
print '</table>'."\n";
|
||||
|
||||
if (count($notavailable_choices)) {
|
||||
|
||||
print '<br>';
|
||||
print '<div id="AShowChoices">';
|
||||
print '<img src="../theme/eldy/img/1downarrow.png"> <a href="#">'.$langs->trans('ShowNotAvailableOptions').'</a>';
|
||||
print '</div>';
|
||||
|
||||
print '<div id="navail_choices" style="display:none">';
|
||||
print '<br>';
|
||||
print "<br>\n";
|
||||
print '<table width="100%" class="listofchoices">';
|
||||
foreach ($notavailable_choices as $choice) {
|
||||
print $choice;
|
||||
}
|
||||
|
||||
print '</table>';
|
||||
print '</table>'."\n";
|
||||
print '</div>';
|
||||
}
|
||||
|
||||
@@ -590,6 +597,5 @@ $(".runupgrade").click(function() {
|
||||
|
||||
</script>';
|
||||
|
||||
dolibarr_install_syslog("--- check: end");
|
||||
dolibarr_install_syslog("- check: end");
|
||||
pFooter(1); // Never display next button
|
||||
|
||||
|
||||
@@ -199,7 +199,7 @@ input:-webkit-autofill {
|
||||
-webkit-box-shadow: 0 0 0 50px #FBFFEA inset;
|
||||
}
|
||||
|
||||
table.listofchoices, tr.listofchoices, td.listofchoices {
|
||||
table.listofchoices, table.listofchoices tr, table.listofchoices td {
|
||||
border-collapse: collapse;
|
||||
padding: 4px;
|
||||
color: #000000;
|
||||
@@ -207,9 +207,6 @@ table.listofchoices, tr.listofchoices, td.listofchoices {
|
||||
line-height: 18px;
|
||||
}
|
||||
|
||||
tr.listofchoices {
|
||||
height: 42px;
|
||||
}
|
||||
.listofchoicesdesc {
|
||||
color: #999 !important;
|
||||
}
|
||||
@@ -230,7 +227,7 @@ tr.listofchoices {
|
||||
div.ok {
|
||||
color: #114466;
|
||||
}
|
||||
font.ok {
|
||||
span.ok {
|
||||
color: #114466;
|
||||
}
|
||||
|
||||
@@ -238,7 +235,7 @@ font.ok {
|
||||
div.warning {
|
||||
color: #777711;
|
||||
}
|
||||
font.warning {
|
||||
span.warning {
|
||||
color: #777711;
|
||||
}
|
||||
|
||||
@@ -249,7 +246,7 @@ div.error {
|
||||
padding: 0.2em 0.2em 0.2em 0;
|
||||
margin: 0.5em 0 0.5em 0;
|
||||
}
|
||||
font.error {
|
||||
span.error {
|
||||
color: #550000;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
/**
|
||||
* \file htdocs/install/fileconf.php
|
||||
* \ingroup install
|
||||
* \brief Ask all informations required to build Dolibarr htdocs/conf/conf.php file (will be wrote on disk on next page step1)
|
||||
* \brief Ask all information required to build Dolibarr htdocs/conf/conf.php file (will be written to disk on next page step1)
|
||||
*/
|
||||
|
||||
include_once 'inc.php';
|
||||
@@ -39,7 +39,7 @@ $langs->setDefaultLang($setuplang);
|
||||
$langs->load("install");
|
||||
$langs->load("errors");
|
||||
|
||||
dolibarr_install_syslog("--- fileconf: entering fileconf.php page");
|
||||
dolibarr_install_syslog("- fileconf: entering fileconf.php page");
|
||||
|
||||
// You can force preselected values of the config step of Dolibarr by adding a file
|
||||
// install.forced.php into directory htdocs/install (This is the case with some wizard
|
||||
@@ -56,7 +56,7 @@ if (! isset($force_install_databaselogin)) $force_install_databaselogin='';
|
||||
if (! isset($force_install_databasepass)) $force_install_databasepass='';
|
||||
if (! isset($force_install_databaserootlogin)) $force_install_databaserootlogin='';
|
||||
if (! isset($force_install_databaserootpass)) $force_install_databaserootpass='';
|
||||
// Now we load forced value from install.forced.php file.
|
||||
// Now we load forced values from install.forced.php file.
|
||||
$useforcedwizard=false;
|
||||
$forcedfile="./install.forced.php";
|
||||
if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.forced.php"; // Must be after inc.php
|
||||
@@ -71,7 +71,7 @@ if (@file_exists($forcedfile)) {
|
||||
* View
|
||||
*/
|
||||
|
||||
session_start(); // To be able to keep info into session (used for not loosing pass during navigation. pass must not transit throug parmaeters)
|
||||
session_start(); // To be able to keep info into session (used for not losing pass during navigation. pass must not transit through parmaeters)
|
||||
|
||||
pHeader($langs->trans("ConfigurationFile"), "step1", "set", "", (empty($force_dolibarr_js_JQUERY)?'':$force_dolibarr_js_JQUERY.'/'), 'main-inside-bis');
|
||||
|
||||
@@ -80,7 +80,7 @@ if (! is_writable($conffile))
|
||||
{
|
||||
print $langs->trans("ConfFileIsNotWritable", $conffiletoshow);
|
||||
dolibarr_install_syslog("fileconf: config file is not writable", LOG_WARNING);
|
||||
dolibarr_install_syslog("--- fileconf: end");
|
||||
dolibarr_install_syslog("- fileconf: end");
|
||||
pFooter(1,$setuplang,'jscheckparam');
|
||||
exit;
|
||||
}
|
||||
@@ -117,20 +117,18 @@ if (! empty($force_install_message))
|
||||
|
||||
<!-- Documents root $dolibarr_main_document_root -->
|
||||
<tr>
|
||||
<?php
|
||||
print '<td class="tdtop label"><b>';
|
||||
print $langs->trans("WebPagesDirectory");
|
||||
print "</b></td>";
|
||||
|
||||
<td class="label"><label for="main_dir"><b><?php print $langs->trans("WebPagesDirectory"); ?></b></label></td>
|
||||
<?php
|
||||
if (empty($dolibarr_main_url_root)) {
|
||||
$dolibarr_main_document_root = detect_dolibarr_main_document_root();
|
||||
}
|
||||
?>
|
||||
<td class="label tdtop">
|
||||
<td class="label">
|
||||
<input type="text"
|
||||
class="minwidth300"
|
||||
value="<?php print $dolibarr_main_document_root ?>"
|
||||
name="main_dir"
|
||||
id="main_dir"
|
||||
name="main_dir"
|
||||
value="<?php print $dolibarr_main_document_root ?>"
|
||||
<?php if (!empty($force_install_noedit)) {
|
||||
print ' disabled';
|
||||
} ?>
|
||||
@@ -149,19 +147,19 @@ if (! empty($force_install_message))
|
||||
|
||||
<!-- Documents URL $dolibarr_main_data_root -->
|
||||
<tr>
|
||||
<td class="tdtop label"><b> <?php print $langs->trans("DocumentsDirectory"); ?></b>
|
||||
</td>
|
||||
<td class="label"><label for="main_data_dir"><b><?php print $langs->trans("DocumentsDirectory"); ?></b></label></td>
|
||||
<?php
|
||||
$dolibarr_main_data_root = @$force_install_main_data_root;
|
||||
if (empty($dolibarr_main_data_root)) {
|
||||
$dolibarr_main_data_root = detect_dolibarr_main_data_root($dolibarr_main_document_root);
|
||||
}
|
||||
?>
|
||||
<td class="label tdtop">
|
||||
<td class="label">
|
||||
<input type="text"
|
||||
class="minwidth300"
|
||||
value="<?php print $dolibarr_main_data_root ?>"
|
||||
name="main_data_dir"
|
||||
id="main_data_dir"
|
||||
name="main_data_dir"
|
||||
value="<?php print $dolibarr_main_data_root ?>"
|
||||
<?php if (!empty($force_install_noedit)) {
|
||||
print ' disabled';
|
||||
} ?>
|
||||
@@ -186,12 +184,13 @@ if (! empty($force_install_message))
|
||||
}
|
||||
?>
|
||||
<tr>
|
||||
<td class="tdtop label"><b> <?php echo $langs->trans("URLRoot"); ?></b>
|
||||
<td class="label"><label for="main_url"><b><?php echo $langs->trans("URLRoot"); ?></b></label>
|
||||
</td>
|
||||
<td class="tdtop label">
|
||||
<td class="label">
|
||||
<input type="text"
|
||||
class="minwidth300"
|
||||
name="main_url"
|
||||
id="main_url"
|
||||
name="main_url"
|
||||
value="<?php print $dolibarr_main_url_root; ?> "
|
||||
<?php if (!empty($force_install_noedit)) {
|
||||
print ' disabled';
|
||||
@@ -210,10 +209,11 @@ if (! empty($force_install_message))
|
||||
if (! empty($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == 'on') { // Enabled if the installation process is "https://"
|
||||
?>
|
||||
<tr>
|
||||
<td class="tdtop label"><?php echo $langs->trans("ForceHttps"); ?></td>
|
||||
<td class="label tdtop">
|
||||
<input type="checkbox"
|
||||
name="main_force_https"
|
||||
<td class="label"><label for="main_force_https"><?php echo $langs->trans("ForceHttps"); ?></label></td>
|
||||
<td class="label">
|
||||
<input type="checkbox"
|
||||
id="main_force_https"
|
||||
name="main_force_https"
|
||||
<?php if (!empty($force_install_mainforcehttps)) {
|
||||
print ' checked';
|
||||
} ?>
|
||||
@@ -239,11 +239,11 @@ if (! empty($force_install_message))
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="label tdtop"><b> <?php echo $langs->trans("DatabaseName"); ?>
|
||||
</b></td>
|
||||
<td class="label tdtop">
|
||||
<input type="text" id="db_name"
|
||||
name="db_name"
|
||||
<td class="label"><label for="db_name"><b><?php echo $langs->trans("DatabaseName"); ?></b></label></td>
|
||||
<td class="label">
|
||||
<input type="text"
|
||||
id="db_name"
|
||||
name="db_name"
|
||||
value="<?php echo (!empty($dolibarr_main_db_name)) ? $dolibarr_main_db_name : ($force_install_database ? $force_install_database : 'dolibarr'); ?>"
|
||||
<?php if ($force_install_noedit == 2 && $force_install_database !== null) {
|
||||
print ' disabled';
|
||||
@@ -262,8 +262,7 @@ if (! empty($force_install_message))
|
||||
?>
|
||||
<tr>
|
||||
<!-- Driver type -->
|
||||
<td class="tdtop label"><b> <?php echo $langs->trans("DriverType"); ?>
|
||||
</b></td>
|
||||
<td class="label"><label for="db_type"><b><?php echo $langs->trans("DriverType"); ?></b></label></td>
|
||||
|
||||
<td class="label">
|
||||
<?php
|
||||
@@ -338,10 +337,10 @@ if (! empty($force_install_message))
|
||||
</tr>
|
||||
|
||||
<tr class="hidesqlite">
|
||||
<td class="tdtop label"><b> <?php echo $langs->trans("DatabaseServer"); ?>
|
||||
</b></td>
|
||||
<td class="tdtop label">
|
||||
<td class="label"><label for="db_host"><b><?php echo $langs->trans("DatabaseServer"); ?></b></label></td>
|
||||
<td class="label">
|
||||
<input type="text"
|
||||
id="db_host"
|
||||
name="db_host"
|
||||
value="<?php print (!empty($force_install_dbserver) ? $force_install_dbserver : (!empty($dolibarr_main_db_host) ? $dolibarr_main_db_host : 'localhost')); ?>"
|
||||
<?php if ($force_install_noedit == 2 && $force_install_dbserver !== null) {
|
||||
@@ -355,8 +354,8 @@ if (! empty($force_install_message))
|
||||
</tr>
|
||||
|
||||
<tr class="hidesqlite">
|
||||
<td class="tdtop label"><?php echo $langs->trans("Port"); ?></td>
|
||||
<td class="tdtop label">
|
||||
<td class="label"><label for="db_port"><?php echo $langs->trans("Port"); ?></label></td>
|
||||
<td class="label">
|
||||
<input type="text"
|
||||
name="db_port"
|
||||
id="db_port"
|
||||
@@ -372,10 +371,10 @@ if (! empty($force_install_message))
|
||||
</tr>
|
||||
|
||||
<tr class="hidesqlite">
|
||||
<td class="label tdtop"><?php echo $langs->trans("DatabasePrefix"); ?>
|
||||
</td>
|
||||
<td class="label tdtop">
|
||||
<input type="text" id="db_prefix"
|
||||
<td class="label"><label for="db_prefix"><?php echo $langs->trans("DatabasePrefix"); ?></label></td>
|
||||
<td class="label">
|
||||
<input type="text"
|
||||
id="db_prefix"
|
||||
name="db_prefix"
|
||||
value="<?php echo(!empty($force_install_prefix) ? $force_install_prefix : (!empty($dolibarr_main_db_prefix) ? $dolibarr_main_db_prefix : 'llx_')); ?>"
|
||||
<?php if ($force_install_noedit == 2 && $force_install_prefix !== null) {
|
||||
@@ -387,9 +386,8 @@ if (! empty($force_install_message))
|
||||
</tr>
|
||||
|
||||
<tr class="hidesqlite">
|
||||
<td class="label tdtop"><?php echo $langs->trans("CreateDatabase"); ?>
|
||||
</td>
|
||||
<td class="label tdtop">
|
||||
<td class="label"><label for="db_create_database"><?php echo $langs->trans("CreateDatabase"); ?></label></td>
|
||||
<td class="label">
|
||||
<input type="checkbox"
|
||||
id="db_create_database"
|
||||
name="db_create_database"
|
||||
@@ -406,10 +404,10 @@ if (! empty($force_install_message))
|
||||
</tr>
|
||||
|
||||
<tr class="hidesqlite">
|
||||
<td class="label tdtop"><b><?php echo $langs->trans("Login"); ?></b>
|
||||
</td>
|
||||
<td class="label tdtop">
|
||||
<input type="text" id="db_user"
|
||||
<td class="label"><label for="db_user"><b><?php echo $langs->trans("Login"); ?></b></label></td>
|
||||
<td class="label">
|
||||
<input type="text"
|
||||
id="db_user"
|
||||
name="db_user"
|
||||
value="<?php print (!empty($force_install_databaselogin)) ? $force_install_databaselogin : $dolibarr_main_db_user; ?>"
|
||||
<?php if ($force_install_noedit == 2 && $force_install_databaselogin !== null) {
|
||||
@@ -421,10 +419,10 @@ if (! empty($force_install_message))
|
||||
</tr>
|
||||
|
||||
<tr class="hidesqlite">
|
||||
<td class="label tdtop"><b><?php echo $langs->trans("Password"); ?></b>
|
||||
</td>
|
||||
<td class="label tdtop">
|
||||
<input type="password" id="db_pass" autocomplete="off"
|
||||
<td class="label"><label for="db_pass"><b><?php echo $langs->trans("Password"); ?></b></label></td>
|
||||
<td class="label">
|
||||
<input type="password"
|
||||
id="db_pass" autocomplete="off"
|
||||
name="db_pass"
|
||||
value="<?php
|
||||
// If $force_install_databasepass is on, we don't want to set password, we just show '***'. Real value will be extracted from the forced install file at step1.
|
||||
@@ -443,11 +441,11 @@ if (! empty($force_install_message))
|
||||
</tr>
|
||||
|
||||
<tr class="hidesqlite">
|
||||
<td class="label tdtop"><?php echo $langs->trans("CreateUser"); ?>
|
||||
</td>
|
||||
<td class="label tdtop">
|
||||
<td class="label"><label for="db_create_user"><?php echo $langs->trans("CreateUser"); ?></label></td>
|
||||
<td class="label">
|
||||
<input type="checkbox"
|
||||
id="db_create_user" name="db_create_user"
|
||||
id="db_create_user"
|
||||
name="db_create_user"
|
||||
<?php if (!empty($force_install_createuser)) {
|
||||
print ' checked';
|
||||
} ?>
|
||||
@@ -473,8 +471,8 @@ if (! empty($force_install_message))
|
||||
</tr>
|
||||
|
||||
<tr class="hidesqlite hideroot">
|
||||
<td class="label tdtop"><b><?php echo $langs->trans("Login"); ?></b></td>
|
||||
<td class="label tdtop">
|
||||
<td class="label"><label for="db_user_root"><b><?php echo $langs->trans("Login"); ?></b></label></td>
|
||||
<td class="label">
|
||||
<input type="text"
|
||||
id="db_user_root"
|
||||
name="db_user_root"
|
||||
@@ -497,9 +495,8 @@ if (! empty($force_install_message))
|
||||
|
||||
</tr>
|
||||
<tr class="hidesqlite hideroot">
|
||||
<td class="label tdtop"><b><?php echo $langs->trans("Password"); ?></b>
|
||||
</td>
|
||||
<td class="label tdtop">
|
||||
<td class="label"><label for="db_pass_root"><b><?php echo $langs->trans("Password"); ?></b></label></td>
|
||||
<td class="label">
|
||||
<input type="password"
|
||||
autocomplete="off"
|
||||
id="db_pass_root"
|
||||
@@ -648,5 +645,5 @@ function jscheckparam()
|
||||
|
||||
// $db->close(); Not database connexion yet
|
||||
|
||||
dolibarr_install_syslog("--- fileconf: end");
|
||||
dolibarr_install_syslog("- fileconf: end");
|
||||
pFooter($err,$setuplang,'jscheckparam');
|
||||
|
||||
@@ -149,7 +149,7 @@ if ($suburi == '/') $suburi = ''; // If $suburi is /, it is now ''
|
||||
define('DOL_URL_ROOT', $suburi); // URL relative root ('', '/dolibarr', ...)
|
||||
|
||||
|
||||
if (empty($conf->file->character_set_client)) $conf->file->character_set_client="UTF-8";
|
||||
if (empty($conf->file->character_set_client)) $conf->file->character_set_client="utf-8";
|
||||
if (empty($conf->db->character_set)) $conf->db->character_set='utf8';
|
||||
if (empty($conf->db->dolibarr_main_db_collation)) $conf->db->dolibarr_main_db_collation='utf8_unicode_ci';
|
||||
if (empty($conf->db->dolibarr_main_db_encryption)) $conf->db->dolibarr_main_db_encryption=0;
|
||||
|
||||
@@ -55,7 +55,7 @@ print '<br><br><div class="center">';
|
||||
print '<table>';
|
||||
|
||||
print '<tr>';
|
||||
print '<td>'.$langs->trans("DefaultLanguage").' : </td><td align="left">';
|
||||
print '<td>'.$langs->trans("DefaultLanguage").' : </td><td>';
|
||||
print $formadmin->select_language('auto','selectlang',1,0,0,1);
|
||||
print '</td>';
|
||||
print '</tr>';
|
||||
|
||||
@@ -43,6 +43,8 @@ ALTER TABLE llx_website_page ADD COLUMN fk_user_create integer;
|
||||
ALTER TABLE llx_website_page ADD COLUMN fk_user_modif integer;
|
||||
ALTER TABLE llx_website_page ADD COLUMN type_container varchar(16) NOT NULL DEFAULT 'page';
|
||||
|
||||
ALTER TABLE llx_ecm_files DROP INDEX uk_ecm_files;
|
||||
ALTER TABLE llx_ecm_files ADD UNIQUE INDEX uk_ecm_files (filepath, filename, entity);
|
||||
|
||||
|
||||
-- drop very old table (bad name)
|
||||
@@ -84,6 +86,9 @@ INSERT INTO llx_accounting_system (fk_country, pcg_version, label, active) VALUE
|
||||
|
||||
-- For 8.0
|
||||
|
||||
DROP TABLE llx_website_account;
|
||||
DROP TABLE llx_website_account_extrafields;
|
||||
|
||||
ALTER TABLE llx_paiementfourn ADD COLUMN fk_user_modif integer AFTER fk_user_author;
|
||||
|
||||
-- delete old permission no more used
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
-- ============================================================================
|
||||
|
||||
|
||||
ALTER TABLE llx_ecm_files ADD UNIQUE INDEX uk_ecm_files (filepath, filename);
|
||||
ALTER TABLE llx_ecm_files ADD UNIQUE INDEX uk_ecm_files (filepath, filename, entity);
|
||||
ALTER TABLE llx_ecm_files ADD INDEX idx_ecm_files_label (label);
|
||||
|
||||
--ALTER TABLE llx_ecm_files ADD UNIQUE INDEX uk_ecm_files_fullpath(fullpath); Disabled, mysql limits size of index
|
||||
|
||||
@@ -13,7 +13,8 @@
|
||||
-- You should have received a copy of the GNU General Public License
|
||||
-- along with this program. If not, see http://www.gnu.org/licenses/.
|
||||
--
|
||||
-- Table to store accounts of thirdparties on websites
|
||||
-- Table to store accounts of thirdparties on external websites (like on stripe field site = 'stripe')
|
||||
-- or on local website (fk_website).
|
||||
|
||||
CREATE TABLE llx_societe_account(
|
||||
-- BEGIN MODULEBUILDER FIELDS
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
-- Copyright (C) 2016 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
--
|
||||
-- This program is free software: you can redistribute it and/or modify
|
||||
-- it under the terms of the GNU General Public License as published by
|
||||
-- the Free Software Foundation, either version 3 of the License, or
|
||||
-- (at your option) any later version.
|
||||
--
|
||||
-- This program is distributed in the hope that it will be useful,
|
||||
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
-- GNU General Public License for more details.
|
||||
--
|
||||
-- You should have received a copy of the GNU General Public License
|
||||
-- along with this program. If not, see http://www.gnu.org/licenses/.
|
||||
|
||||
|
||||
-- BEGIN MODULEBUILDER INDEXES
|
||||
ALTER TABLE llx_website_account ADD INDEX idx_website_account_rowid (rowid);
|
||||
ALTER TABLE llx_website_account ADD INDEX idx_website_account_login (login);
|
||||
ALTER TABLE llx_website_account ADD INDEX idx_website_account_import_key (import_key);
|
||||
ALTER TABLE llx_website_account ADD INDEX idx_website_account_status (status);
|
||||
ALTER TABLE llx_website_account ADD INDEX idx_website_account_fk_soc (fk_soc);
|
||||
ALTER TABLE llx_website_account ADD INDEX idx_website_account_fk_website (fk_website);
|
||||
-- END MODULEBUILDER INDEXES
|
||||
|
||||
ALTER TABLE llx_website_account ADD UNIQUE INDEX uk_website_account_login_website_soc(login, fk_website, fk_soc);
|
||||
|
||||
ALTER TABLE llx_website_account ADD CONSTRAINT llx_website_account_fk_website FOREIGN KEY (fk_website) REFERENCES llx_website(rowid);
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
-- Copyright (C) 2016 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
--
|
||||
-- This program is free software: you can redistribute it and/or modify
|
||||
-- it under the terms of the GNU General Public License as published by
|
||||
-- the Free Software Foundation, either version 3 of the License, or
|
||||
-- (at your option) any later version.
|
||||
--
|
||||
-- This program is distributed in the hope that it will be useful,
|
||||
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
-- GNU General Public License for more details.
|
||||
--
|
||||
-- You should have received a copy of the GNU General Public License
|
||||
-- along with this program. If not, see http://www.gnu.org/licenses/.
|
||||
|
||||
|
||||
CREATE TABLE llx_website_account(
|
||||
-- BEGIN MODULEBUILDER FIELDS
|
||||
rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL,
|
||||
login varchar(64) NOT NULL,
|
||||
pass_encoding varchar(24) NOT NULL,
|
||||
pass_crypted varchar(128),
|
||||
pass_temp varchar(128), -- temporary password when asked for forget password
|
||||
fk_soc integer,
|
||||
fk_website integer NOT NULL,
|
||||
note_private text,
|
||||
date_last_login datetime,
|
||||
date_previous_login datetime,
|
||||
date_creation datetime NOT NULL,
|
||||
tms timestamp NOT NULL,
|
||||
fk_user_creat integer NOT NULL,
|
||||
fk_user_modif integer,
|
||||
import_key varchar(14),
|
||||
status integer
|
||||
-- END MODULEBUILDER FIELDS
|
||||
) ENGINE=innodb;
|
||||
@@ -549,11 +549,11 @@ if ($ok && GETPOST('clean_menus','alpha'))
|
||||
dol_print_error($db);
|
||||
}
|
||||
else
|
||||
print ' - <font class="warning">Cleaned</font>';
|
||||
print ' - <span class="warning">Cleaned</span>';
|
||||
}
|
||||
else
|
||||
{
|
||||
print ' - <font class="warning">Canceled (test mode)</font>';
|
||||
print ' - <span class="warning">Canceled (test mode)</span>';
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -982,11 +982,11 @@ if ($ok && GETPOST('force_disable_of_modules_not_found','alpha'))
|
||||
dol_print_error($db);
|
||||
}
|
||||
else
|
||||
print ' - <font class="warning">Cleaned</font>';
|
||||
print ' - <span class="warning">Cleaned</span>';
|
||||
}
|
||||
else
|
||||
{
|
||||
print ' - <font class="warning">Canceled (test mode)</font>';
|
||||
print ' - <span class="warning">Canceled (test mode)</span>';
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@@ -46,7 +46,7 @@ $main_dir = GETPOST('main_dir')?GETPOST('main_dir'):(empty($argv[3])?'':$argv[3]
|
||||
$main_data_dir = GETPOST('main_data_dir') ? GETPOST('main_data_dir') : (empty($argv[4])? ($main_dir . '/documents') :$argv[4]);
|
||||
// Dolibarr root URL
|
||||
$main_url = GETPOST('main_url')?GETPOST('main_url'):(empty($argv[5])?'':$argv[5]);
|
||||
// Database login informations
|
||||
// Database login information
|
||||
$userroot=GETPOST('db_user_root','alpha')?GETPOST('db_user_root','alpha'):(empty($argv[6])?'':$argv[6]);
|
||||
$passroot=GETPOST('db_pass_root','none')?GETPOST('db_pass_root','none'):(empty($argv[7])?'':$argv[7]);
|
||||
// Database server
|
||||
@@ -68,18 +68,18 @@ $main_alt_dir_name = ((GETPOST("main_alt_dir_name",'alpha') && GETPOST("main_alt
|
||||
|
||||
session_start(); // To be able to keep info into session (used for not losing password during navigation. The password must not transit through parameters)
|
||||
|
||||
// Save a flag to tell to restore input value if we do back
|
||||
// Save a flag to tell to restore input value if we go back
|
||||
$_SESSION['dol_save_pass']=$db_pass;
|
||||
//$_SESSION['dol_save_passroot']=$passroot;
|
||||
|
||||
// Now we load forced value from install.forced.php file.
|
||||
// Now we load forced values from install.forced.php file.
|
||||
$useforcedwizard=false;
|
||||
$forcedfile="./install.forced.php";
|
||||
if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.forced.php";
|
||||
if (@file_exists($forcedfile)) {
|
||||
$useforcedwizard = true;
|
||||
include_once $forcedfile;
|
||||
// If forced install is enabled, let's replace post values. These are empty because form fields are disabled.
|
||||
// If forced install is enabled, replace the post values. These are empty because form fields are disabled.
|
||||
if ($force_install_noedit) {
|
||||
$main_dir = detect_dolibarr_main_document_root();
|
||||
if (!empty($force_install_main_data_root)) {
|
||||
@@ -204,7 +204,7 @@ if (! $error) {
|
||||
$result=@include_once $main_dir."/core/db/".$db_type.'.class.php';
|
||||
if ($result)
|
||||
{
|
||||
// If we ask database or user creation we need to connect as root, so we need root login
|
||||
// If we require database or user creation we need to connect as root, so we need root login credentials
|
||||
if (!empty($db_create_database) && !$userroot) {
|
||||
print '<div class="error">'.$langs->trans("YouAskDatabaseCreationSoDolibarrNeedToConnect",$db_name).'</div>';
|
||||
print '<br>';
|
||||
@@ -397,7 +397,7 @@ if (! $error && $db->connected && $action == "set")
|
||||
print "<tr><td>".$langs->trans("ErrorDirDoesNotExists",$main_data_dir);
|
||||
print ' '.$langs->trans("YouMustCreateItAndAllowServerToWrite");
|
||||
print '</td><td>';
|
||||
print '<font class="error">'.$langs->trans("Error").'</font>';
|
||||
print '<span class="error">'.$langs->trans("Error").'</span>';
|
||||
print "</td></tr>";
|
||||
print '<tr><td colspan="2"><br>'.$langs->trans("CorrectProblemAndReloadPage",$_SERVER['PHP_SELF'].'?testget=ok').'</td></tr>';
|
||||
$error++;
|
||||
@@ -420,7 +420,7 @@ if (! $error && $db->connected && $action == "set")
|
||||
}
|
||||
}
|
||||
|
||||
// Les documents sont en dehors de htdocs car ne doivent pas pouvoir etre telecharges en passant outre l'authentification
|
||||
// Documents are stored above the web pages root to prevent being downloaded without authentification
|
||||
$dir=array();
|
||||
$dir[] = $main_data_dir."/mycompany";
|
||||
$dir[] = $main_data_dir."/medias";
|
||||
@@ -431,7 +431,7 @@ if (! $error && $db->connected && $action == "set")
|
||||
$dir[] = $main_data_dir."/produit";
|
||||
$dir[] = $main_data_dir."/doctemplates";
|
||||
|
||||
// Boucle sur chaque repertoire de dir[] pour les creer s'ils nexistent pas
|
||||
// Loop on each directory of dir [] to create them if they do not exist
|
||||
$num=count($dir);
|
||||
for ($i = 0; $i < $num; $i++)
|
||||
{
|
||||
@@ -469,7 +469,7 @@ if (! $error && $db->connected && $action == "set")
|
||||
print "<tr><td>".$langs->trans("ErrorDirDoesNotExists",$main_data_dir);
|
||||
print ' '.$langs->trans("YouMustCreateItAndAllowServerToWrite");
|
||||
print '</td><td>';
|
||||
print '<font class="error">'.$langs->trans("Error").'</font>';
|
||||
print '<span class="error">'.$langs->trans("Error").'</span>';
|
||||
print "</td></tr>";
|
||||
print '<tr><td colspan="2"><br>'.$langs->trans("CorrectProblemAndReloadPage",$_SERVER['PHP_SELF'].'?testget=ok').'</td></tr>';
|
||||
}
|
||||
@@ -519,7 +519,7 @@ if (! $error && $db->connected && $action == "set")
|
||||
// Save old conf file on disk
|
||||
if (file_exists("$conffile"))
|
||||
{
|
||||
// We must ignore errors as an existing old file may already exists and not be replacable or
|
||||
// We must ignore errors as an existing old file may already exist and not be replaceable or
|
||||
// the installer (like for ubuntu) may not have permission to create another file than conf.php.
|
||||
// Also no other process must be able to read file or we expose the new file, so content with password.
|
||||
@dol_copy($conffile, $conffile.'.old', '0400');
|
||||
@@ -539,7 +539,7 @@ if (! $error && $db->connected && $action == "set")
|
||||
print '</td>';
|
||||
print '<td><img src="../theme/eldy/img/tick.png" alt="Ok"></td></tr>';
|
||||
|
||||
// Si creation utilisateur admin demandee, on le cree
|
||||
// Create database user if requested
|
||||
if (isset($db_create_user) && ($db_create_user == "1" || $db_create_user == "on")) {
|
||||
dolibarr_install_syslog("step1: create database user: " . $dolibarr_main_db_user);
|
||||
|
||||
@@ -558,7 +558,7 @@ if (! $error && $db->connected && $action == "set")
|
||||
$databasefortest='master';
|
||||
}
|
||||
|
||||
// Creation handler de base, verification du support et connexion
|
||||
// Check database connection
|
||||
|
||||
$db=getDoliDBInstance($conf->db->type,$conf->db->host,$userroot,$passroot,$databasefortest,$conf->db->port);
|
||||
|
||||
@@ -629,7 +629,7 @@ if (! $error && $db->connected && $action == "set")
|
||||
print '<td><img src="../theme/eldy/img/error.png" alt="Error"></td>';
|
||||
print '</tr>';
|
||||
|
||||
// Affiche aide diagnostique
|
||||
// warning message due to connection failure
|
||||
print '<tr><td colspan="2"><br>';
|
||||
print $langs->trans("YouAskDatabaseCreationSoDolibarrNeedToConnect",$dolibarr_main_db_user,$dolibarr_main_db_host,$userroot);
|
||||
print '<br>';
|
||||
@@ -640,10 +640,10 @@ if (! $error && $db->connected && $action == "set")
|
||||
$error++;
|
||||
}
|
||||
}
|
||||
} // Fin si "creation utilisateur"
|
||||
} // end of user account creation
|
||||
|
||||
|
||||
// If database creation is asked, we create it
|
||||
// If database creation was asked, we create it
|
||||
if (!$error && (isset($db_create_database) && ($db_create_database == "1" || $db_create_database == "on"))) {
|
||||
dolibarr_install_syslog("step1: create database: " . $dolibarr_main_db_name . " " . $dolibarr_main_db_character_set . " " . $dolibarr_main_db_collation . " " . $dolibarr_main_db_user);
|
||||
$newdb=getDoliDBInstance($conf->db->type,$conf->db->host,$userroot,$passroot,'',$conf->db->port);
|
||||
@@ -672,7 +672,7 @@ if (! $error && $db->connected && $action == "set")
|
||||
}
|
||||
else
|
||||
{
|
||||
// Affiche aide diagnostique
|
||||
// warning message
|
||||
print '<tr><td colspan="2"><br>';
|
||||
print $langs->trans("ErrorFailedToCreateDatabase",$dolibarr_main_db_name).'<br>';
|
||||
print $newdb->lasterror().'<br>';
|
||||
@@ -693,7 +693,7 @@ if (! $error && $db->connected && $action == "set")
|
||||
print '<td><img src="../theme/eldy/img/error.png" alt="Error"></td>';
|
||||
print '</tr>';
|
||||
|
||||
// Affiche aide diagnostique
|
||||
// warning message
|
||||
print '<tr><td colspan="2"><br>';
|
||||
print $langs->trans("YouAskDatabaseCreationSoDolibarrNeedToConnect",$dolibarr_main_db_user,$dolibarr_main_db_host,$userroot);
|
||||
print '<br>';
|
||||
@@ -703,7 +703,7 @@ if (! $error && $db->connected && $action == "set")
|
||||
|
||||
$error++;
|
||||
}
|
||||
} // Fin si "creation database"
|
||||
} // end of create database
|
||||
|
||||
|
||||
// We test access with dolibarr database user (not admin)
|
||||
@@ -724,7 +724,7 @@ if (! $error && $db->connected && $action == "set")
|
||||
print '<img src="../theme/eldy/img/tick.png" alt="Ok">';
|
||||
print "</td></tr>";
|
||||
|
||||
// si acces serveur ok et acces base ok, tout est ok, on ne va pas plus loin, on a meme pas utilise le compte root.
|
||||
// server access ok, basic access ok
|
||||
if ($db->database_selected)
|
||||
{
|
||||
dolibarr_install_syslog("step1: connection to database " . $conf->db->name . " by user " . $conf->db->user . " ok");
|
||||
@@ -747,7 +747,7 @@ if (! $error && $db->connected && $action == "set")
|
||||
print '<img src="../theme/eldy/img/error.png" alt="Error">';
|
||||
print "</td></tr>";
|
||||
|
||||
// Affiche aide diagnostique
|
||||
// warning message
|
||||
print '<tr><td colspan="2"><br>';
|
||||
print $langs->trans('CheckThatDatabasenameIsCorrect',$dolibarr_main_db_name).'<br>';
|
||||
print $langs->trans('IfAlreadyExistsCheckOption').'<br>';
|
||||
@@ -767,7 +767,7 @@ if (! $error && $db->connected && $action == "set")
|
||||
print '<img src="../theme/eldy/img/error.png" alt="Error">';
|
||||
print "</td></tr>";
|
||||
|
||||
// Affiche aide diagnostique
|
||||
// warning message
|
||||
print '<tr><td colspan="2"><br>';
|
||||
print $langs->trans("ErrorConnection",$conf->db->host,$conf->db->name,$conf->db->user);
|
||||
print $langs->trans('IfLoginDoesNotExistsCheckCreateUser').'<br>';
|
||||
@@ -893,45 +893,45 @@ function write_conf_file($conffile)
|
||||
fputs($fp,'// and explanations for all possibles parameters.'."\n");
|
||||
fputs($fp,'//'."\n");
|
||||
|
||||
fputs($fp, '$dolibarr_main_url_root=\''.str_replace("'","\'",($main_url)).'\';');
|
||||
fputs($fp, '$dolibarr_main_url_root=\''.str_replace("'","\'",trim($main_url)).'\';');
|
||||
fputs($fp,"\n");
|
||||
|
||||
fputs($fp, '$dolibarr_main_document_root=\''.str_replace("'","\'",($main_dir)).'\';');
|
||||
fputs($fp, '$dolibarr_main_document_root=\''.str_replace("'","\'",trim($main_dir)).'\';');
|
||||
fputs($fp,"\n");
|
||||
|
||||
fputs($fp, $main_use_alt_dir.'$dolibarr_main_url_root_alt=\''.str_replace("'","\'",("/".$main_alt_dir_name)).'\';');
|
||||
fputs($fp, $main_use_alt_dir.'$dolibarr_main_url_root_alt=\''.str_replace("'","\'",trim("/".$main_alt_dir_name)).'\';');
|
||||
fputs($fp,"\n");
|
||||
|
||||
fputs($fp, $main_use_alt_dir.'$dolibarr_main_document_root_alt=\''.str_replace("'","\'",($main_dir."/".$main_alt_dir_name)).'\';');
|
||||
fputs($fp, $main_use_alt_dir.'$dolibarr_main_document_root_alt=\''.str_replace("'","\'",trim($main_dir."/".$main_alt_dir_name)).'\';');
|
||||
fputs($fp,"\n");
|
||||
|
||||
fputs($fp, '$dolibarr_main_data_root=\''.str_replace("'","\'",($main_data_dir)).'\';');
|
||||
fputs($fp, '$dolibarr_main_data_root=\''.str_replace("'","\'",trim($main_data_dir)).'\';');
|
||||
fputs($fp,"\n");
|
||||
|
||||
fputs($fp, '$dolibarr_main_db_host=\''.str_replace("'","\'",($db_host)).'\';');
|
||||
fputs($fp, '$dolibarr_main_db_host=\''.str_replace("'","\'",trim($db_host)).'\';');
|
||||
fputs($fp,"\n");
|
||||
|
||||
fputs($fp, '$dolibarr_main_db_port=\''.str_replace("'","\'",($db_port)).'\';');
|
||||
fputs($fp, '$dolibarr_main_db_port=\''.str_replace("'","\'",trim($db_port)).'\';');
|
||||
fputs($fp,"\n");
|
||||
|
||||
fputs($fp, '$dolibarr_main_db_name=\''.str_replace("'","\'",($db_name)).'\';');
|
||||
fputs($fp, '$dolibarr_main_db_name=\''.str_replace("'","\'",trim($db_name)).'\';');
|
||||
fputs($fp,"\n");
|
||||
|
||||
fputs($fp, '$dolibarr_main_db_prefix=\''.str_replace("'","\'",($main_db_prefix)).'\';');
|
||||
fputs($fp, '$dolibarr_main_db_prefix=\''.str_replace("'","\'",trim($main_db_prefix)).'\';');
|
||||
fputs($fp,"\n");
|
||||
|
||||
fputs($fp, '$dolibarr_main_db_user=\''.str_replace("'","\'",($db_user)).'\';');
|
||||
fputs($fp, '$dolibarr_main_db_user=\''.str_replace("'","\'",trim($db_user)).'\';');
|
||||
fputs($fp,"\n");
|
||||
fputs($fp, '$dolibarr_main_db_pass=\''.str_replace("'","\'",($db_pass)).'\';');
|
||||
fputs($fp, '$dolibarr_main_db_pass=\''.str_replace("'","\'",trim($db_pass)).'\';');
|
||||
fputs($fp,"\n");
|
||||
|
||||
fputs($fp, '$dolibarr_main_db_type=\''.str_replace("'","\'",($db_type)).'\';');
|
||||
fputs($fp, '$dolibarr_main_db_type=\''.str_replace("'","\'",trim($db_type)).'\';');
|
||||
fputs($fp,"\n");
|
||||
|
||||
fputs($fp, '$dolibarr_main_db_character_set=\''.str_replace("'","\'",($db_character_set)).'\';');
|
||||
fputs($fp, '$dolibarr_main_db_character_set=\''.str_replace("'","\'",trim($db_character_set)).'\';');
|
||||
fputs($fp,"\n");
|
||||
|
||||
fputs($fp, '$dolibarr_main_db_collation=\''.str_replace("'","\'",($db_collation)).'\';');
|
||||
fputs($fp, '$dolibarr_main_db_collation=\''.str_replace("'","\'",trim($db_collation)).'\';');
|
||||
fputs($fp,"\n");
|
||||
|
||||
/* Authentication */
|
||||
@@ -1023,7 +1023,7 @@ function write_conf_file($conffile)
|
||||
|
||||
if (file_exists("$conffile"))
|
||||
{
|
||||
include $conffile; // On force rechargement. Ne pas mettre include_once !
|
||||
include $conffile; // force config reload, do not put include_once
|
||||
conf($dolibarr_main_document_root);
|
||||
|
||||
print "<tr><td>";
|
||||
|
||||
@@ -58,7 +58,7 @@ if ($dolibarr_main_db_type == "sqlite3") $choix=5;
|
||||
|
||||
//if (empty($choix)) dol_print_error('','Database type '.$dolibarr_main_db_type.' not supported into step2.php page');
|
||||
|
||||
// Now we load forced value from install.forced.php file.
|
||||
// Now we load forced values from install.forced.php file.
|
||||
$useforcedwizard=false;
|
||||
$forcedfile="./install.forced.php";
|
||||
if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.forced.php";
|
||||
@@ -67,7 +67,7 @@ if (@file_exists($forcedfile)) {
|
||||
include_once $forcedfile;
|
||||
}
|
||||
|
||||
dolibarr_install_syslog("--- step2: entering step2.php page");
|
||||
dolibarr_install_syslog("- step2: entering step2.php page");
|
||||
|
||||
|
||||
/*
|
||||
@@ -88,7 +88,7 @@ if ($action == "set")
|
||||
{
|
||||
print '<h3><img class="valigntextbottom" src="../theme/common/octicons/build/svg/database.svg" width="20" alt="Database"> '.$langs->trans("Database").'</h3>';
|
||||
|
||||
print '<table cellspacing="0" style="padding: 4px 4px 4px 0px" border="0" width="100%">';
|
||||
print '<table cellspacing="0" style="padding: 4px 4px 4px 0" border="0" width="100%">';
|
||||
$error=0;
|
||||
|
||||
$db=getDoliDBInstance($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
|
||||
@@ -237,7 +237,7 @@ if ($action == "set")
|
||||
print "<tr><td>".$langs->trans("CreateTableAndPrimaryKey",$name);
|
||||
print "<br>\n".$langs->trans("Request").' '.$requestnb.' : '.$buffer.' <br>Executed query : '.$db->lastquery;
|
||||
print "\n</td>";
|
||||
print '<td><font class="error">'.$langs->trans("ErrorSQL")." ".$db->errno()." ".$db->error().'</font></td></tr>';
|
||||
print '<td><span class="error">'.$langs->trans("ErrorSQL")." ".$db->errno()." ".$db->error().'</span></td></tr>';
|
||||
$error++;
|
||||
}
|
||||
}
|
||||
@@ -246,7 +246,7 @@ if ($action == "set")
|
||||
{
|
||||
print "<tr><td>".$langs->trans("CreateTableAndPrimaryKey",$name);
|
||||
print "</td>";
|
||||
print '<td><font class="error">'.$langs->trans("Error").' Failed to open file '.$dir.$file.'</td></tr>';
|
||||
print '<td><span class="error">'.$langs->trans("Error").' Failed to open file '.$dir.$file.'</span></td></tr>';
|
||||
$error++;
|
||||
dolibarr_install_syslog("step2: failed to open file " . $dir . $file, LOG_ERR);
|
||||
}
|
||||
@@ -384,7 +384,7 @@ if ($action == "set")
|
||||
print "<tr><td>".$langs->trans("CreateOtherKeysForTable",$name);
|
||||
print "<br>\n".$langs->trans("Request").' '.$requestnb.' : '.$db->lastqueryerror();
|
||||
print "\n</td>";
|
||||
print '<td><font class="error">'.$langs->trans("ErrorSQL")." ".$db->errno()." ".$db->error().'</font></td></tr>';
|
||||
print '<td><span class="error">'.$langs->trans("ErrorSQL")." ".$db->errno()." ".$db->error().'</span></td></tr>';
|
||||
$error++;
|
||||
}
|
||||
}
|
||||
@@ -395,7 +395,7 @@ if ($action == "set")
|
||||
{
|
||||
print "<tr><td>".$langs->trans("CreateOtherKeysForTable",$name);
|
||||
print "</td>";
|
||||
print '<td><font class="error">'.$langs->trans("Error")." Failed to open file ".$dir.$file."</font></td></tr>";
|
||||
print '<td><span class="error">'.$langs->trans("Error")." Failed to open file ".$dir.$file."</span></td></tr>";
|
||||
$error++;
|
||||
dolibarr_install_syslog("step2: failed to open file " . $dir . $file, LOG_ERR);
|
||||
}
|
||||
@@ -417,7 +417,7 @@ if ($action == "set")
|
||||
***************************************************************************************/
|
||||
if ($ok && $createfunctions)
|
||||
{
|
||||
// For this file, we use directory according to database type
|
||||
// For this file, we use a directory according to database type
|
||||
if ($choix==1) $dir = "mysql/functions/";
|
||||
elseif ($choix==2) $dir = "pgsql/functions/";
|
||||
elseif ($choix==3) $dir = "mssql/functions/";
|
||||
@@ -473,7 +473,7 @@ if ($action == "set")
|
||||
print "<tr><td>".$langs->trans("FunctionsCreation");
|
||||
print "<br>\n".$langs->trans("Request").' '.$requestnb.' : '.$buffer;
|
||||
print "\n</td>";
|
||||
print '<td><font class="error">'.$langs->trans("ErrorSQL")." ".$db->errno()." ".$db->error().'</font></td></tr>';
|
||||
print '<td><span class="error">'.$langs->trans("ErrorSQL")." ".$db->errno()." ".$db->error().'</span></td></tr>';
|
||||
$error++;
|
||||
}
|
||||
}
|
||||
@@ -594,7 +594,7 @@ if ($action == "set")
|
||||
{
|
||||
$ok = 0;
|
||||
$okallfile = 0;
|
||||
print '<font class="error">'.$langs->trans("ErrorSQL")." : ".$db->lasterrno()." - ".$db->lastqueryerror()." - ".$db->lasterror()."</font><br>";
|
||||
print '<span class="error">'.$langs->trans("ErrorSQL")." : ".$db->lasterrno()." - ".$db->lastqueryerror()." - ".$db->lasterror()."</span><br>";
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -627,7 +627,7 @@ $ret=0;
|
||||
if (!$ok && isset($argv[1])) $ret=1;
|
||||
dolibarr_install_syslog("Exit ".$ret);
|
||||
|
||||
dolibarr_install_syslog("--- step2: end");
|
||||
dolibarr_install_syslog("- step2: end");
|
||||
|
||||
pFooter($ok?0:1,$setuplang);
|
||||
|
||||
@@ -635,4 +635,3 @@ if (isset($db) && is_object($db)) $db->close();
|
||||
|
||||
// Return code if ran from command line
|
||||
if ($ret) exit($ret);
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ if (@file_exists($forcedfile)) {
|
||||
include_once $forcedfile;
|
||||
}
|
||||
|
||||
dolibarr_install_syslog("--- step4: entering step4.php page");
|
||||
dolibarr_install_syslog("- step4: entering step4.php page");
|
||||
|
||||
$error=0;
|
||||
$ok = 0;
|
||||
@@ -74,18 +74,18 @@ print '<h3><img class="valigntextbottom" src="../theme/common/octicons/build/svg
|
||||
print $langs->trans("LastStepDesc").'<br><br>';
|
||||
|
||||
|
||||
print '<table cellspacing="0" cellpadding="2" width="100%">';
|
||||
print '<table cellspacing="0" cellpadding="2">';
|
||||
|
||||
$db=getDoliDBInstance($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
|
||||
|
||||
if ($db->ok)
|
||||
{
|
||||
print '<tr><td>'.$langs->trans("Login").' :</td><td>';
|
||||
print '<input name="login" type="text" value="' . (!empty($_GET["login"]) ? GETPOST("login") : (isset($force_install_dolibarrlogin) ? $force_install_dolibarrlogin : '')) . '"' . (@$force_install_noedit == 2 && $force_install_dolibarrlogin !== null ? ' disabled' : '') . '></td></tr>';
|
||||
print '<tr><td>'.$langs->trans("Password").' :</td><td>';
|
||||
print '<input type="password" name="pass"></td></tr>';
|
||||
print '<tr><td>'.$langs->trans("PasswordAgain").' :</td><td>';
|
||||
print '<input type="password" name="pass_verif"></td></tr>';
|
||||
print '<tr><td><label for="login">'.$langs->trans("Login").' :</label></td><td>';
|
||||
print '<input id="login" name="login" type="text" value="' . (!empty($_GET["login"]) ? GETPOST("login") : (isset($force_install_dolibarrlogin) ? $force_install_dolibarrlogin : '')) . '"' . (@$force_install_noedit == 2 && $force_install_dolibarrlogin !== null ? ' disabled' : '') . '></td></tr>';
|
||||
print '<tr><td><label for="pass">'.$langs->trans("Password").' :</label></td><td>';
|
||||
print '<input type="password" id="pass" name="pass"></td></tr>';
|
||||
print '<tr><td><label for="pass_verif">'.$langs->trans("PasswordAgain").' :</label></td><td>';
|
||||
print '<input type="password" id="pass_verif" name="pass_verif"></td></tr>';
|
||||
print '</table>';
|
||||
|
||||
if (isset($_GET["error"]) && $_GET["error"] == 1)
|
||||
@@ -113,12 +113,11 @@ if ($db->ok)
|
||||
|
||||
}
|
||||
|
||||
|
||||
$ret=0;
|
||||
if ($error && isset($argv[1])) $ret=1;
|
||||
dolibarr_install_syslog("Exit ".$ret);
|
||||
|
||||
dolibarr_install_syslog("--- step4: end");
|
||||
dolibarr_install_syslog("- step4: end");
|
||||
|
||||
pFooter($error,$setuplang);
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
/**
|
||||
* \file htdocs/install/step5.php
|
||||
* \ingroup install
|
||||
* \brief Last page of upgrade or install process
|
||||
* \brief Last page of upgrade / install process
|
||||
*/
|
||||
|
||||
include_once 'inc.php';
|
||||
@@ -67,7 +67,7 @@ if ($conffile == "/etc/dolibarr/conf.php") $forcedfile="/etc/dolibarr/install.fo
|
||||
if (@file_exists($forcedfile)) {
|
||||
$useforcedwizard = true;
|
||||
include_once $forcedfile;
|
||||
// If forced install is enabled, let's replace post values. These are empty because form fields are disabled.
|
||||
// If forced install is enabled, replace post values. These are empty because form fields are disabled.
|
||||
if ($force_install_noedit == 2) {
|
||||
if (!empty($force_install_dolibarrlogin)) {
|
||||
$login = $force_install_dolibarrlogin;
|
||||
@@ -75,16 +75,15 @@ if (@file_exists($forcedfile)) {
|
||||
}
|
||||
}
|
||||
|
||||
dolibarr_install_syslog("--- step5: entering step5.php page");
|
||||
dolibarr_install_syslog("- step5: entering step5.php page");
|
||||
|
||||
$error=0;
|
||||
|
||||
|
||||
/*
|
||||
* Actions
|
||||
*/
|
||||
|
||||
// If install, check pass and pass_verif used to create admin account
|
||||
// If install, check password and password_verification used to create admin account
|
||||
if ($action == "set") {
|
||||
if ($pass <> $pass_verif) {
|
||||
header("Location: step4.php?error=1&selectlang=$setuplang" . (isset($login) ? '&login=' . $login : ''));
|
||||
@@ -394,8 +393,8 @@ if ($action == "set" && $success)
|
||||
else
|
||||
{
|
||||
// If here MAIN_VERSION_LAST_UPGRADE is not empty
|
||||
print $langs->trans("VersionLastUpgrade").': <b><font class="ok">'.$conf->global->MAIN_VERSION_LAST_UPGRADE.'</font></b><br>';
|
||||
print $langs->trans("VersionProgram").': <b><font class="ok">'.DOL_VERSION.'</font></b><br>';
|
||||
print $langs->trans("VersionLastUpgrade").': <b><span class="ok">'.$conf->global->MAIN_VERSION_LAST_UPGRADE.'</span></b><br>';
|
||||
print $langs->trans("VersionProgram").': <b><span class="ok">'.DOL_VERSION.'</span></b><br>';
|
||||
print $langs->trans("MigrationNotFinished").'<br>';
|
||||
print "<br>";
|
||||
|
||||
@@ -442,8 +441,8 @@ elseif (empty($action) || preg_match('/upgrade/i',$action))
|
||||
else
|
||||
{
|
||||
// If here MAIN_VERSION_LAST_UPGRADE is not empty
|
||||
print $langs->trans("VersionLastUpgrade").': <b><font class="ok">'.$conf->global->MAIN_VERSION_LAST_UPGRADE.'</font></b><br>';
|
||||
print $langs->trans("VersionProgram").': <b><font class="ok">'.DOL_VERSION.'</font></b>';
|
||||
print $langs->trans("VersionLastUpgrade").': <b><span class="ok">'.$conf->global->MAIN_VERSION_LAST_UPGRADE.'</span></b><br>';
|
||||
print $langs->trans("VersionProgram").': <b><span class="ok">'.DOL_VERSION.'</span></b>';
|
||||
|
||||
print "<br>";
|
||||
|
||||
@@ -457,17 +456,14 @@ else
|
||||
dol_print_error('','step5.php: unknown choice of action');
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Clear cache files
|
||||
clearstatcache();
|
||||
|
||||
|
||||
$ret=0;
|
||||
if ($error && isset($argv[1])) $ret=1;
|
||||
dolibarr_install_syslog("Exit ".$ret);
|
||||
|
||||
dolibarr_install_syslog("--- step5: Dolibarr setup finished");
|
||||
dolibarr_install_syslog("- step5: Dolibarr setup finished");
|
||||
|
||||
pFooter(1,$setuplang);
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||
* Copyright (C) 2004-2016 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2004-2018 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2005-2010 Regis Houssin <regis.houssin@capnetworks.com>
|
||||
* Copyright (C) 2015-2016 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
||||
*
|
||||
@@ -21,10 +21,13 @@
|
||||
*
|
||||
* cd htdocs/install
|
||||
* php upgrade.php 3.4.0 3.5.0 [dirmodule|ignoredbversion]
|
||||
* php upgrade2.php 3.4.0 3.5.0
|
||||
* php upgrade2.php 3.4.0 3.5.0 [MODULE_NAME1_TO_ENABLE,MODULE_NAME2_TO_ENABLE]
|
||||
*
|
||||
* Option 'dirmodule' allows to provide a path for an external module, so we migrate from command line a script from a module.
|
||||
* Option 'ignoredbversion' allows to run migration even if database is a bugged database version.
|
||||
* And for final step:
|
||||
* php step5.php 3.4.0 3.5.0
|
||||
*
|
||||
* Option 'dirmodule' allows to provide a path for an external module, so we migrate from command line using a script from a module.
|
||||
* Option 'ignoredbversion' allows to run migration even if database version does not match start version of migration
|
||||
* Return code is 0 if OK, >0 if error
|
||||
*/
|
||||
|
||||
@@ -84,7 +87,7 @@ if (! is_object($conf)) dolibarr_install_syslog("upgrade2: conf file not initial
|
||||
if (! $versionfrom && ! $versionto)
|
||||
{
|
||||
print 'Error: Parameter versionfrom or versionto missing.'."\n";
|
||||
print 'Upgrade must be ran from command line with parameters or called from page install/index.php (like a first install) instead of page install/upgrade.php'."\n";
|
||||
print 'Upgrade must be ran from command line with parameters or called from page install/index.php (like a first install)'."\n";
|
||||
// Test if batch mode
|
||||
$sapi_type = php_sapi_name();
|
||||
$script_file = basename(__FILE__);
|
||||
@@ -297,7 +300,7 @@ if (! GETPOST('action','aZ09') || preg_match('/upgrade/i',GETPOST('action','aZ09
|
||||
{
|
||||
if ($db->lasterrno() != 'DB_ERROR_NOSUCHTABLE')
|
||||
{
|
||||
print '<tr><td colspan="2"><font class="error">'.$sql.' : '.$db->lasterror()."</font></td></tr>\n";
|
||||
print '<tr><td colspan="2"><span class="error">'.$sql.' : '.$db->lasterror()."</font></td></tr>\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/* Copyright (C) 2005 Marc Barilley / Ocebo <marc@ocebo.com>
|
||||
* Copyright (C) 2005-2012 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2005-2018 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
* Copyright (C) 2005-2011 Regis Houssin <regis.houssin@capnetworks.com>
|
||||
* Copyright (C) 2010 Juanjo Menent <jmenent@2byte.es>
|
||||
* Copyright (C) 2015-2016 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
|
||||
@@ -18,13 +18,19 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Upgrade scripts can be ran from command line with syntax:
|
||||
* Upgrade2 scripts can be ran from command line with syntax:
|
||||
*
|
||||
* cd htdocs/install
|
||||
* php upgrade.php 3.4.0 3.5.0
|
||||
* php upgrade2.php 3.4.0 3.5.0 [MODULE_NAME1_TO_ENABLE,MODULE_NAME2_TO_ENABLE]
|
||||
* php upgrade.php 3.4.0 3.5.0 [dirmodule|ignoredbversion]
|
||||
* php upgrade2.php 3.4.0 3.5.0 [MAIN_MODULE_NAME1_TO_ENABLE,MAIN_MODULE_NAME2_TO_ENABLE]
|
||||
*
|
||||
* And for final step:
|
||||
* php step5.php 3.4.0 3.5.0
|
||||
*
|
||||
* Return code is 0 if OK, >0 if error
|
||||
*
|
||||
* Note: To just enable a module from command line, use this syntax:
|
||||
* php upgrade2.php 0.0.0 0.0.0 [MAIN_MODULE_NAME1_TO_ENABLE,MAIN_MODULE_NAME2_TO_ENABLE]
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -77,7 +83,7 @@ if ($dolibarr_main_db_type == 'pgsql') $choix=2;
|
||||
if ($dolibarr_main_db_type == 'mssql') $choix=3;
|
||||
|
||||
|
||||
dolibarr_install_syslog("--- upgrade2: entering upgrade2.php page ".$versionfrom." ".$versionto);
|
||||
dolibarr_install_syslog("--- upgrade2: entering upgrade2.php page ".$versionfrom." ".$versionto." ".$enablemodules);
|
||||
if (! is_object($conf)) dolibarr_install_syslog("upgrade2: conf file not initialized", LOG_ERR);
|
||||
|
||||
|
||||
@@ -89,14 +95,14 @@ if (! is_object($conf)) dolibarr_install_syslog("upgrade2: conf file not initial
|
||||
if ((! $versionfrom || preg_match('/version/', $versionfrom)) && (! $versionto || preg_match('/version/', $versionto)))
|
||||
{
|
||||
print 'Error: Parameter versionfrom or versionto missing or having a bad format.'."\n";
|
||||
print 'Upgrade must be ran from command line with parameters or called from page install/index.php (like a first install) instead of page install/upgrade.php'."\n";
|
||||
print 'Upgrade must be ran from command line with parameters or called from page install/index.php (like a first install)'."\n";
|
||||
// Test if batch mode
|
||||
$sapi_type = php_sapi_name();
|
||||
$script_file = basename(__FILE__);
|
||||
$path=dirname(__FILE__).'/';
|
||||
if (substr($sapi_type, 0, 3) == 'cli')
|
||||
{
|
||||
print 'Syntax from command line: '.$script_file." x.y.z a.b.c\n";
|
||||
print 'Syntax from command line: '.$script_file." x.y.z a.b.c [MAIN_MODULE_NAME1_TO_ENABLE,MAIN_MODULE_NAME2_TO_ENABLE...]\n";
|
||||
}
|
||||
exit;
|
||||
}
|
||||
@@ -438,6 +444,13 @@ if (! GETPOST('action','aZ09') || preg_match('/upgrade/i',GETPOST('action','aZ09
|
||||
migrate_rename_directories($db,$langs,$conf,'/contracts','/contract');
|
||||
}
|
||||
|
||||
// Scripts for 9.0
|
||||
$afterversionarray=explode('.','8.0.9');
|
||||
$beforeversionarray=explode('.','9.0.9');
|
||||
if (versioncompare($versiontoarray,$afterversionarray) >= 0 && versioncompare($versiontoarray,$beforeversionarray) <= 0)
|
||||
{
|
||||
//migrate_rename_directories($db,$langs,$conf,'/contracts','/contract');
|
||||
}
|
||||
}
|
||||
|
||||
// Code executed only if migration is LAST ONE. Must always be done.
|
||||
@@ -541,12 +554,12 @@ if (! GETPOST('action','aZ09') || preg_match('/upgrade/i',GETPOST('action','aZ09
|
||||
dolCopyDir($srcroot, $destroot, 0, 0);
|
||||
|
||||
|
||||
// Actions for all versions (no database change, delete files and directories)
|
||||
// Actions for all versions (no database change but delete some files and directories)
|
||||
migrate_delete_old_files($db, $langs, $conf);
|
||||
migrate_delete_old_dir($db, $langs, $conf);
|
||||
// Actions for all versions (no database change, create directories)
|
||||
// Actions for all versions (no database change but create some directories)
|
||||
dol_mkdir(DOL_DATA_ROOT.'/bank');
|
||||
// Actions for all versions (no database change, rename directories)
|
||||
// Actions for all versions (no database change but rename some directories)
|
||||
migrate_rename_directories($db, $langs, $conf, '/banque/bordereau', '/bank/checkdeposits');
|
||||
|
||||
print '<div><br>'.$langs->trans("MigrationFinished").'</div>';
|
||||
@@ -4536,11 +4549,11 @@ function migrate_delete_old_dir($db,$langs,$conf)
|
||||
* @param int $force 1=Reload module even if not already loaded
|
||||
* @return void
|
||||
*/
|
||||
function migrate_reload_modules($db,$langs,$conf,$listofmodule=array(),$force=0)
|
||||
function migrate_reload_modules($db, $langs, $conf, $listofmodule=array(), $force=0)
|
||||
{
|
||||
if (count($listofmodule) == 0) return;
|
||||
|
||||
dolibarr_install_syslog("upgrade2::migrate_reload_modules force=".$force);
|
||||
dolibarr_install_syslog("upgrade2::migrate_reload_modules force=".$force.", listofmodule=".join(',', array_keys($listofmodule)));
|
||||
|
||||
foreach($listofmodule as $moduletoreload => $reloadmode) // reloadmodule can be 'noboxes', 'newboxdefonly', 'forceactivate'
|
||||
{
|
||||
@@ -4723,8 +4736,15 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array(),$force=0)
|
||||
$tmp = preg_match('/MAIN_MODULE_([a-zA-Z0-9]+)/', $moduletoreload, $reg);
|
||||
if (! empty($reg[1]))
|
||||
{
|
||||
$moduletoreloadshort = ucfirst(strtolower($reg[1]));
|
||||
dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate module ".$moduletoreloadshort);
|
||||
if (strtoupper($moduletoreload) == $moduletoreload) // If key is un uppercase
|
||||
{
|
||||
$moduletoreloadshort = ucfirst(strtolower($reg[1]));
|
||||
}
|
||||
else // If key is a mix of up and low case
|
||||
{
|
||||
$moduletoreloadshort = $reg[1];
|
||||
}
|
||||
dolibarr_install_syslog("upgrade2::migrate_reload_modules Reactivate module ".$moduletoreloadshort." with mode ".$reloadmode);
|
||||
$res=@include_once DOL_DOCUMENT_ROOT.'/core/modules/mod'.$moduletoreloadshort.'.class.php';
|
||||
if ($res) {
|
||||
$classname = 'mod'.$moduletoreloadshort;
|
||||
@@ -4732,10 +4752,27 @@ function migrate_reload_modules($db,$langs,$conf,$listofmodule=array(),$force=0)
|
||||
//$mod->remove('noboxes');
|
||||
$mod->init($reloadmode);
|
||||
}
|
||||
else
|
||||
{
|
||||
dolibarr_install_syslog('Failed to include '.DOL_DOCUMENT_ROOT.'/core/modules/mod'.$moduletoreloadshort.'.class.php');
|
||||
|
||||
$res=@dol_include_once(strtolower($moduletoreloadshort).'/core/modules/mod'.$moduletoreloadshort.'.class.php');
|
||||
if ($res) {
|
||||
$classname = 'mod'.$moduletoreloadshort;
|
||||
$mod=new $classname($db);
|
||||
//$mod->remove('noboxes');
|
||||
$mod->init($reloadmode);
|
||||
}
|
||||
else
|
||||
{
|
||||
dolibarr_install_syslog('Failed to include '.strtolower($moduletoreloadshort).'/core/modules/mod'.$moduletoreloadshort.'.class.php');
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
print "Error, can't find module name";
|
||||
dolibarr_install_syslog("Error, can't find module with name ".$moduletoreload, LOG_WARNING);
|
||||
print "Error, can't find module with name ".$moduletoreload;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -55,6 +55,7 @@ AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from m
|
||||
AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s
|
||||
|
||||
AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s.
|
||||
AccountancyAreaDescDefault=STEP %s: Define default accounting accounts. For this, use the menu entry %s.
|
||||
AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s.
|
||||
AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s.
|
||||
AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s.
|
||||
@@ -131,6 +132,7 @@ ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set
|
||||
ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen)
|
||||
ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero.
|
||||
BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account
|
||||
ACCOUNTING_ENABLE_EXPORT_DRAFT_JOURNAL=Enable draft export on journal
|
||||
|
||||
ACCOUNTING_SELL_JOURNAL=دفتر البيع اليومي
|
||||
ACCOUNTING_PURCHASE_JOURNAL=دفتر الشراء اليومي
|
||||
|
||||
@@ -454,7 +454,7 @@ ModuleCompanyCodeDigitaria=Accounting code depends on third party code. The code
|
||||
Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).<br>Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required.
|
||||
UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than...
|
||||
WarningPHPMail=WARNING: It is often better to setup outgoing emails to use the email server of your provider instead of the default setup. Some email providers (like Yahoo) does not allow you to send an email from another server than their own server. Your current setup use the server of the application to send email and not the server of your email provider, so some recipients (the one compatible with the restrictive DMARC protocol), will ask your email provider if they can accept your email and some email providers (like Yahoo) may respond "no" because the server is not a server of them, so few of your sent Emails may not be accepted (be carefull also to your email provider sending quota).<br>If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account).
|
||||
WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of your ERP CRM application: <strong>%s</strong>.
|
||||
WarningPHPMail2=If your email SMTP provider need to restrict email client to some IP addresses (very rare), this is the IP address of the mail user agent (MUA) for your ERP CRM application: <strong>%s</strong>.
|
||||
ClickToShowDescription=Click to show description
|
||||
DependsOn=This module need the module(s)
|
||||
RequiredBy=This module is required by module(s)
|
||||
@@ -497,7 +497,7 @@ Module25Desc=طلبات الزبائن إدارة
|
||||
Module30Name=فواتير
|
||||
Module30Desc=ويلاحظ اعتماد الفواتير وإدارة العملاء. فواتير إدارة الموردين
|
||||
Module40Name=الموردين
|
||||
Module40Desc=الموردين وإدارة وشراء (الأوامر والفواتير)
|
||||
Module40Desc=Suppliers and purchase management (purchase orders and billing)
|
||||
Module42Name=Debug Logs
|
||||
Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes.
|
||||
Module49Name=المحررين
|
||||
@@ -605,7 +605,7 @@ Module4000Desc=Human resources management (management of department, employee co
|
||||
Module5000Name=شركة متعددة
|
||||
Module5000Desc=يسمح لك لإدارة الشركات المتعددة
|
||||
Module6000Name=سير العمل
|
||||
Module6000Desc=إدارة سير العمل
|
||||
Module6000Desc=Workflow management (automatic creation of object and/or automatic status change)
|
||||
Module10000Name=Websites
|
||||
Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server (Apache, Nginx, ...) to point to the dedicated Dolibarr directory to have it online on the Internet with your own domain name.
|
||||
Module20000Name=ترك إدارة الطلبات
|
||||
@@ -891,7 +891,7 @@ DictionaryCivility=Personal and professional titles
|
||||
DictionaryActions=Types of agenda events
|
||||
DictionarySocialContributions=الضرائب الاجتماعية أو المالية أنواع
|
||||
DictionaryVAT=أسعار الضريبة على القيمة المضافة أو ضريبة المبيعات الاسعار
|
||||
DictionaryRevenueStamp=كمية من طوابع الواردات
|
||||
DictionaryRevenueStamp=Amount of tax stamps
|
||||
DictionaryPaymentConditions=شروط الدفع
|
||||
DictionaryPaymentModes=وسائل الدفع
|
||||
DictionaryTypeContact=الاتصال / أنواع العناوين
|
||||
@@ -919,7 +919,7 @@ SetupSaved=الإعداد المحفوظة
|
||||
SetupNotSaved=Setup not saved
|
||||
BackToModuleList=العودة إلى قائمة الوحدات
|
||||
BackToDictionaryList=العودة إلى قائمة القواميس
|
||||
TypeOfRevenueStamp=Type of revenue stamp
|
||||
TypeOfRevenueStamp=Type of tax stamp
|
||||
VATManagement=إدارة الضريبة على القيمة المضافة
|
||||
VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:<br>If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.<br>If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule. <br>If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.<br>If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold. End of rule.<br>If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.<br>In any othe case the proposed default is VAT=0. End of rule.
|
||||
VATIsNotUsedDesc=افتراضي المقترحة 0 ضريبة القيمة المضافة هو الذي يمكن أن يستخدم في حالات مثل الجمعيات والأفراد والشركات الصغيرة où.
|
||||
@@ -1027,7 +1027,7 @@ Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned
|
||||
Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time
|
||||
Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet
|
||||
Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet
|
||||
Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on suppliers orders not processed yet
|
||||
Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on purchase orders not processed yet
|
||||
Delays_MAIN_DELAY_PROPALS_TO_CLOSE=التسامح التأخير (في يوم) في حالة تأهب على المقترحات المعروضة ليقفل
|
||||
Delays_MAIN_DELAY_PROPALS_TO_BILL=تأخير التسامح (أيام) قبل تنبيه بشأن المقترحات لا توصف
|
||||
Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=تأخير التسامح (في يوم) في حالة تأهب قبل يوم والخدمات لتفعيل
|
||||
@@ -1458,7 +1458,7 @@ SyslogFilename=اسم الملف ومسار
|
||||
YouCanUseDOL_DATA_ROOT=يمكنك استخدام DOL_DATA_ROOT / dolibarr.log لملف الدخول في Dolibarr "وثائق" دليل. يمكنك أن تحدد مسارا مختلفا لتخزين هذا الملف.
|
||||
ErrorUnknownSyslogConstant=ثابت %s ليس ثابت سيسلوغ معروفة
|
||||
OnlyWindowsLOG_USER=نوافذ يعتمد فقط LOG_USER
|
||||
CompressSyslogs=Syslog files compression and backup
|
||||
CompressSyslogs=Compression and backup of debug log files (generated by module Log for debug)
|
||||
SyslogFileNumberOfSaves=Log backups
|
||||
ConfigureCleaningCronjobToSetFrequencyOfSaves=Configure cleaning scheduled job to set log backup frequency
|
||||
##### Donations #####
|
||||
|
||||
@@ -1,163 +1,165 @@
|
||||
# Dolibarr language file - Source file is en_US - banks
|
||||
Bank=البنك
|
||||
MenuBankCash=البنك / النقدية
|
||||
MenuVariousPayment=Miscellaneous payments
|
||||
MenuNewVariousPayment=New Miscellaneous payment
|
||||
MenuBankCash=Bank | Cash
|
||||
MenuVariousPayment=مدفوعات متنوعة
|
||||
MenuNewVariousPayment=مدفوعات متنوعة جديدة
|
||||
BankName=اسم المصرف
|
||||
FinancialAccount=حساب
|
||||
FinancialAccount=الحساب
|
||||
BankAccount=الحساب المصرفي
|
||||
BankAccounts=الحسابات المصرفية
|
||||
ShowAccount=مشاهدة الحساب
|
||||
AccountRef=الحساب المالي المرجع
|
||||
AccountLabel=الحساب المالي العلامة
|
||||
BankAccountsAndGateways=Bank accounts | Gateways
|
||||
ShowAccount=عرض الحساب
|
||||
AccountRef=مرجع الحساب المالي
|
||||
AccountLabel=بطاقة الحساب المالي
|
||||
CashAccount=الحساب النقدي
|
||||
CashAccounts=حسابات نقدية
|
||||
CurrentAccounts=الحسابات الجارية
|
||||
SavingAccounts=حسابات التوفير
|
||||
ErrorBankLabelAlreadyExists=الحساب المالي الملصق موجود بالفعل
|
||||
ErrorBankLabelAlreadyExists=بطاقة الحساب المالي موجوده بالفعل
|
||||
BankBalance=التوازن
|
||||
BankBalanceBefore=التوازن قبل
|
||||
BankBalanceAfter=التوازن بعد
|
||||
BalanceMinimalAllowed=الحد الأدنى المسموح التوازن
|
||||
BalanceMinimalDesired=الحد الأدنى من التوازن المطلوب
|
||||
BankBalanceBefore=الرصيد قبل
|
||||
BankBalanceAfter=الرصيد بعد
|
||||
BalanceMinimalAllowed=الحد الأدنى المسموح من الرصيد
|
||||
BalanceMinimalDesired=الحد الأدنى المطلوب من الرصيد
|
||||
InitialBankBalance=الرصيد الأولي
|
||||
EndBankBalance=رصيد نهاية
|
||||
EndBankBalance=الرصيد النهائي
|
||||
CurrentBalance=الرصيد الحالي
|
||||
FutureBalance=التوازن في المستقبل
|
||||
ShowAllTimeBalance=يظهر من البداية على التوازن
|
||||
ShowAllTimeBalance=عرض الرصيد من البداية
|
||||
AllTime=من البداية
|
||||
Reconciliation=المصالحة
|
||||
Reconciliation=التسوية
|
||||
RIB=رقم الحساب المصرفي
|
||||
IBAN=عدد إيبان
|
||||
BIC=بيك / سويفت عدد
|
||||
SwiftValid=BIC/SWIFT valid
|
||||
SwiftVNotalid=BIC/SWIFT not valid
|
||||
IbanValid=BAN valid
|
||||
IbanNotValid=BAN not valid
|
||||
StandingOrders=Direct Debit orders
|
||||
StandingOrder=Direct debit order
|
||||
AccountStatement=كشف حساب
|
||||
SwiftValid=بيك / سويفت صالحة
|
||||
SwiftVNotalid=بيك / سويفت غير صالح
|
||||
IbanValid=بان صالحة
|
||||
IbanNotValid=بان غير صالح
|
||||
StandingOrders=أوامر الخصم المباشر
|
||||
StandingOrder=أمر الخصم المباشر
|
||||
AccountStatement=كشف الحساب
|
||||
AccountStatementShort=بيان
|
||||
AccountStatements=بيانات الحساب
|
||||
LastAccountStatements=كشوفات الحساب الأخير
|
||||
AccountStatements=كشوفات الحساب
|
||||
LastAccountStatements=كشوفات الحساب الأخيرة
|
||||
IOMonthlyReporting=تقارير شهرية
|
||||
BankAccountDomiciliation=معالجة حساب
|
||||
BankAccountCountry=حساب البلاد
|
||||
BankAccountDomiciliation=عنوان الحساب
|
||||
BankAccountCountry=بلد حساب
|
||||
BankAccountOwner=اسم صاحب الحساب
|
||||
BankAccountOwnerAddress=معالجة حساب المالك
|
||||
RIBControlError=التحقق من تكامل القيم يفشل. وهذا يعني حصول على معلومات عن هذا رقم الحساب ليست كاملة أو خاطئة (ارجع البلد والأرقام وIBAN).
|
||||
BankAccountOwnerAddress=عنوان مالك الحساب
|
||||
RIBControlError=فشل التحقق من سلامة القيم. وهذا يعني أن المعلومات الخاصة برقم الحساب هذا غير كاملة أو خاطئة (راجع البلد والأرقام و إيبان).
|
||||
CreateAccount=إنشاء حساب
|
||||
NewBankAccount=حساب جديد
|
||||
NewFinancialAccount=الحساب المالي الجديد
|
||||
MenuNewFinancialAccount=الحساب المالي الجديد
|
||||
EditFinancialAccount=تحرير الحساب
|
||||
LabelBankCashAccount=بطاقة مصرفية أو نقدا
|
||||
NewFinancialAccount=حساب مالي جديد
|
||||
MenuNewFinancialAccount=حساب مالي جديد
|
||||
EditFinancialAccount=تعديل الحساب
|
||||
LabelBankCashAccount=بطاقة مصرفية أو نقدية
|
||||
AccountType=نوع الحساب
|
||||
BankType0=حساب توفير
|
||||
BankType1=الحساب الجاري
|
||||
BankType1=الحساب الجاري او حساب بطاقة الائتمان
|
||||
BankType2=الحساب النقدي
|
||||
AccountsArea=حسابات المنطقة
|
||||
AccountCard=حساب بطاقة
|
||||
DeleteAccount=حذف حساب
|
||||
ConfirmDeleteAccount=Are you sure you want to delete this account?
|
||||
AccountsArea=منطقة الحسابات
|
||||
AccountCard=بطاقة الحساب
|
||||
DeleteAccount=حذف الحساب
|
||||
ConfirmDeleteAccount=هل أنت متأكد أنك تريد حذف هذا الحساب؟
|
||||
Account=حساب
|
||||
BankTransactionByCategories=Bank entries by categories
|
||||
BankTransactionForCategory=Bank entries for category <b>%s</b>
|
||||
BankTransactionByCategories=القيود البنكية حسب الفئات
|
||||
BankTransactionForCategory=القيود البنكية للفئة <b>%s</b>
|
||||
RemoveFromRubrique=إزالة الارتباط مع هذه الفئة
|
||||
RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry and the category?
|
||||
ListBankTransactions=List of bank entries
|
||||
IdTransaction=رقم المعاملات
|
||||
BankTransactions=Bank entries
|
||||
BankTransaction=Bank entry
|
||||
ListTransactions=List entries
|
||||
ListTransactionsByCategory=List entries/category
|
||||
TransactionsToConciliate=Entries to reconcile
|
||||
Conciliable=Conciliable
|
||||
Conciliate=التوفيق
|
||||
Conciliation=توفيق
|
||||
ReconciliationLate=Reconciliation late
|
||||
RemoveFromRubriqueConfirm=هل انت متأكد أنك تريد إزالة الربط بين القيد والفئة؟
|
||||
ListBankTransactions=قائمة القيود البنكية
|
||||
IdTransaction=معرف المعاملة
|
||||
BankTransactions=القيود البنكية
|
||||
BankTransaction=قيد بنكي
|
||||
ListTransactions=قائمة القيود
|
||||
ListTransactionsByCategory=قائمةالقيود/الفئات
|
||||
TransactionsToConciliate=قيود للتسويات
|
||||
Conciliable=يمكن أن يتم تسويتة
|
||||
Conciliate=التسوية
|
||||
Conciliation=تسوية
|
||||
ReconciliationLate=التسوية في وقت متأخر
|
||||
IncludeClosedAccount=وتشمل حسابات مغلقة
|
||||
OnlyOpenedAccount=إلا فتح حسابات
|
||||
AccountToCredit=الحساب على الائتمان
|
||||
AccountToDebit=لحساب الخصم
|
||||
DisableConciliation=تعطيل ميزة التوفيق لهذا الحساب
|
||||
ConciliationDisabled=توفيق سمة المعوقين
|
||||
LinkedToAConciliatedTransaction=Linked to a conciliated entry
|
||||
StatusAccountOpened=Opened
|
||||
StatusAccountClosed=مغلقة
|
||||
AccountIdShort=عدد
|
||||
LineRecord=المعاملات
|
||||
AddBankRecord=Add entry
|
||||
AddBankRecordLong=Add entry manually
|
||||
Conciliated=Reconciled
|
||||
ConciliatedBy=طريق التصالح
|
||||
DateConciliating=التوفيق التاريخ
|
||||
BankLineConciliated=Entry reconciled
|
||||
Reconciled=Reconciled
|
||||
NotReconciled=Not reconciled
|
||||
CustomerInvoicePayment=عملاء الدفع
|
||||
SupplierInvoicePayment=المورد الدفع
|
||||
OnlyOpenedAccount=الحسابات المفتوحة فقط
|
||||
AccountToCredit=تقييد مبلغ دائن بالحساب
|
||||
AccountToDebit=تقييد مبلغ مدين بالحساب
|
||||
DisableConciliation=تعطيل خاصية التسوية لهذا الحساب
|
||||
ConciliationDisabled=خاصية التسوية معطلة
|
||||
LinkedToAConciliatedTransaction=مرتبط بقيد تمت تسويتة
|
||||
StatusAccountOpened=مفتوح
|
||||
StatusAccountClosed=مغلق
|
||||
AccountIdShort=رقم
|
||||
LineRecord=المعاملة
|
||||
AddBankRecord=إضافة قيد
|
||||
AddBankRecordLong=إضافة قيد يدوي
|
||||
Conciliated=تمت تسويتة
|
||||
ConciliatedBy=تمت التسوية بواسطة
|
||||
DateConciliating=تاريخ التسوية
|
||||
BankLineConciliated=تم تسوية القيد
|
||||
Reconciled=تمت تسويتة
|
||||
NotReconciled=لم يتم تسويتة
|
||||
CustomerInvoicePayment=مدفوعات العميل
|
||||
SupplierInvoicePayment=دفع المورد
|
||||
SubscriptionPayment=دفع الاشتراك
|
||||
WithdrawalPayment=انسحاب الدفع
|
||||
SocialContributionPayment=اجتماعي / دفع الضرائب المالية
|
||||
WithdrawalPayment=سحب المدفوعات
|
||||
SocialContributionPayment=مدفوعات الضرائب الاجتماعية / المالية
|
||||
BankTransfer=حوالة مصرفية
|
||||
BankTransfers=التحويلات المصرفية
|
||||
MenuBankInternalTransfer=Internal transfer
|
||||
TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction)
|
||||
BankTransfers=حوالات المصرفية
|
||||
MenuBankInternalTransfer=حوالة داخلية
|
||||
TransferDesc=التحويل من حساب إلى آخر، سوف يقوم دوليبار بكتابة سجلين (مدين في حساب المصدر و دائن في حساب الهدف، نفس المبلغ (باستثناء العلامة)، سيتم استخدام البطاقة و التاريخ لهذه المعاملة)
|
||||
TransferFrom=من
|
||||
TransferTo=إلى
|
||||
TransferFromToDone=ونقل من هناك إلى ٪ <b>%s ق %s</b> ٪ وقد سجلت ق.
|
||||
CheckTransmitter=الإرسال
|
||||
ValidateCheckReceipt=Validate this check receipt?
|
||||
ConfirmValidateCheckReceipt=Are you sure you want to validate this check receipt, no change will be possible once this is done?
|
||||
DeleteCheckReceipt=Delete this check receipt?
|
||||
ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt?
|
||||
TransferFromToDone=التحويل من <b>%s</b>إلى <b>%s</b>من <b>%s</b>%s قد تم تسجيلة.
|
||||
CheckTransmitter=المرسل
|
||||
ValidateCheckReceipt=تأكيد صحة الشيك المستلم؟
|
||||
ConfirmValidateCheckReceipt=هل تريد تأكيد هذا الشيك ، لن يكون من الممكن إجراء أي تغيير بعد الانتهاء من ذلك؟
|
||||
DeleteCheckReceipt=حذف هذا الشيك ؟
|
||||
ConfirmDeleteCheckReceipt=هل انت متأكد أنك تريد حذف هذا الشيك؟
|
||||
BankChecks=الشيكات المصرفية
|
||||
BankChecksToReceipt=Checks awaiting deposit
|
||||
ShowCheckReceipt=الاختيار إظهار تلقي الودائع
|
||||
NumberOfCheques=ملاحظة : للشيكات
|
||||
DeleteTransaction=Delete entry
|
||||
ConfirmDeleteTransaction=Are you sure you want to delete this entry?
|
||||
ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry
|
||||
BankChecksToReceipt=شيكات في انتظار الإيداع
|
||||
ShowCheckReceipt=عرض إيصال إيداع شيكات
|
||||
NumberOfCheques=عدد الشيكات
|
||||
DeleteTransaction=حذف المعاملة
|
||||
ConfirmDeleteTransaction=هل تريد بالتأكيد حذف هذه المعاملة؟
|
||||
ThisWillAlsoDeleteBankRecord=سيؤدي هذا أيضا إلى حذف القيد البنكي الذي تم إنشاؤه
|
||||
BankMovements=حركات
|
||||
PlannedTransactions=Planned entries
|
||||
PlannedTransactions=المعاملات المخططة
|
||||
Graph=الرسومات
|
||||
ExportDataset_banque_1=Bank entries and account statement
|
||||
ExportDataset_banque_2=إيداع زلة
|
||||
TransactionOnTheOtherAccount=صفقة على حساب الآخرين
|
||||
PaymentNumberUpdateSucceeded=Payment number updated successfully
|
||||
PaymentNumberUpdateFailed=دفع عددا لا يمكن تحديث
|
||||
PaymentDateUpdateSucceeded=Payment date updated successfully
|
||||
PaymentDateUpdateFailed=دفع حتى الآن لا يمكن تحديث
|
||||
ExportDataset_banque_1=القيود البنكية وكشف الحساب
|
||||
ExportDataset_banque_2=قسيمة الإيداع
|
||||
TransactionOnTheOtherAccount=معاملة على الحساب الآخر
|
||||
PaymentNumberUpdateSucceeded=تم تحديث رقم الدفع بنجاح
|
||||
PaymentNumberUpdateFailed=تعذر تحديث رقم الدفعة
|
||||
PaymentDateUpdateSucceeded=تم تحديث تاريخ الدفع بنجاح
|
||||
PaymentDateUpdateFailed=تعذر تحديث تاريخ الدفع
|
||||
Transactions=المعاملات
|
||||
BankTransactionLine=Bank entry
|
||||
AllAccounts=جميع المصرفية / حسابات نقدية
|
||||
BackToAccount=إلى حساب
|
||||
ShowAllAccounts=وتبين للجميع الحسابات
|
||||
FutureTransaction=الصفقة في أجل المستقبل. أي وسيلة للتوفيق.
|
||||
SelectChequeTransactionAndGenerate=حدد / تصفية الشيكات لتشمل في الاختيار استلام الودائع وانقر على "إنشاء".
|
||||
InputReceiptNumber=اختيار كشف حساب مصرفي ذات الصلة مع التوفيق. استخدام قيمة رقمية للفرز: YYYYMM أو YYYYMMDD
|
||||
BankTransactionLine=قيد البنك
|
||||
AllAccounts=All bank and cash accounts
|
||||
BackToAccount=عودة إلى الحساب
|
||||
ShowAllAccounts=عرض لجميع الحسابات
|
||||
FutureTransaction=المعاملة أجلة. لا يوجد فرصة للتسوية.
|
||||
SelectChequeTransactionAndGenerate=تحديد / تصفية الشيكات ليتم تضمينها في ايصال ايداع الشيكات وانقر على "إنشاء".
|
||||
InputReceiptNumber=اختيار كشف الحساب البنكي ذات الصلة مع التسوية. استخدام قيمة رقمية للفرز: شهر سنة أو يوم شهر سنة
|
||||
EventualyAddCategory=في نهاية المطاف، حدد الفئة التي لتصنيف السجلات
|
||||
ToConciliate=To reconcile?
|
||||
ThenCheckLinesAndConciliate=ثم، والتحقق من خطوط الحالية في بيان البنك وانقر
|
||||
ToConciliate=للتسوية؟
|
||||
ThenCheckLinesAndConciliate=ثم، تحقق من السطور الحالية في كشف الحساب البنكي وانقر
|
||||
DefaultRIB=BAN الافتراضي
|
||||
AllRIB=جميع BAN
|
||||
LabelRIB=BAN تسمية
|
||||
LabelRIB=بطاقة BAN
|
||||
NoBANRecord=لا يوجد سجل BAN
|
||||
DeleteARib=حذف سجل BAN
|
||||
ConfirmDeleteRib=Are you sure you want to delete this BAN record?
|
||||
RejectCheck=تحقق عاد
|
||||
ConfirmRejectCheck=Are you sure you want to mark this check as rejected?
|
||||
RejectCheckDate=تاريخ أعيد الاختيار
|
||||
CheckRejected=تحقق عاد
|
||||
CheckRejectedAndInvoicesReopened=تحقق عاد والفواتير فتح
|
||||
BankAccountModelModule=Document templates for bank accounts
|
||||
DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only.
|
||||
DocumentModelBan=Template to print a page with BAN information.
|
||||
NewVariousPayment=New miscellaneous payments
|
||||
VariousPayment=Miscellaneous payments
|
||||
VariousPayments=Miscellaneous payments
|
||||
ShowVariousPayment=Show miscellaneous payments
|
||||
AddVariousPayment=Add miscellaneous payments
|
||||
YourSEPAMandate=Your SEPA mandate
|
||||
FindYourSEPAMandate=This is your SEPA mandate to authorize our company to make direct debit order to your bank. Thanks to return it signed (scan of the signed document) or sent it by mail to
|
||||
ConfirmDeleteRib=هل أنت متأكد أنك تريد حذف سجل BAN هذا ؟
|
||||
RejectCheck=تم إرجاع الشيك
|
||||
ConfirmRejectCheck=هل انت متأكد انك تريد وضع علامة على هذا الشيك على أنه مرفوض؟
|
||||
RejectCheckDate=تاريخ إرجاع الشيك
|
||||
CheckRejected=تم إرجاع الشيك
|
||||
CheckRejectedAndInvoicesReopened=تم ارجاع الشيك وإعادة فتح الفواتير
|
||||
BankAccountModelModule=نماذج مستندات للحسابات البنكية
|
||||
DocumentModelSepaMandate=نموذج تفويض سيبا. مفيدة للبلدان الأوروبية في السوق الأوروبية المشتركة فقط.
|
||||
DocumentModelBan=نموذج لطباعة صفحة تحتوي على معلومات BAN .
|
||||
NewVariousPayment=مدفوعات متنوعة جديدة
|
||||
VariousPayment=مدفوعات متنوعة
|
||||
VariousPayments=مدفوعات متنوعة
|
||||
ShowVariousPayment=عرض الدفعات المتنوعة
|
||||
AddVariousPayment=إضافة دفعات متنوعة
|
||||
SEPAMandate=SEPA mandate
|
||||
YourSEPAMandate=تفويض سيبا الخاص بك
|
||||
FindYourSEPAMandate=هذا هو تفويض سيبا الخاصة بك لتخويل شركتنا لتقديم أمر الخصم المباشر إلى البنك الذي تتعامل معه. شكرا للعودة وقعت (فحص الوثيقة الموقعة) أو إرسالها عن طريق البريد إلى
|
||||
|
||||
@@ -110,8 +110,8 @@ SendRemindByMail=إرسال تذكرة عن طريق البريد الإلكتر
|
||||
DoPayment=Enter payment
|
||||
DoPaymentBack=Enter refund
|
||||
ConvertToReduc=Mark as credit available
|
||||
ConvertExcessReceivedToReduc=Convert excess received into future discount
|
||||
ConvertExcessPaidToReduc=Convert excess paid into future discount
|
||||
ConvertExcessReceivedToReduc=Convert excess received into available credit
|
||||
ConvertExcessPaidToReduc=Convert excess paid into available discount
|
||||
EnterPaymentReceivedFromCustomer=دخول الدفع الواردة من العملاء
|
||||
EnterPaymentDueToCustomer=من المقرر أن يسدد العميل
|
||||
DisabledBecauseRemainderToPayIsZero=تعطيل بسبب المتبقية غير المدفوعة صفر
|
||||
@@ -282,6 +282,7 @@ RelativeDiscount=الخصم النسبي
|
||||
GlobalDiscount=خصم العالمية
|
||||
CreditNote=علما الائتمان
|
||||
CreditNotes=ويلاحظ الائتمان
|
||||
CreditNotesOrExcessReceived=Credit notes or excess received
|
||||
Deposit=Down payment
|
||||
Deposits=Down payments
|
||||
DiscountFromCreditNote=خصم من دائن %s
|
||||
@@ -393,6 +394,7 @@ PaymentConditionShort14DENDMONTH=14 days of month-end
|
||||
PaymentCondition14DENDMONTH=Within 14 days following the end of the month
|
||||
FixAmount=كمية الإصلاح
|
||||
VarAmount=مقدار متغير (٪٪ TOT).
|
||||
VarAmountOneLine=Variable amount (%% tot.) - 1 line with label '%s'
|
||||
# PaymentType
|
||||
PaymentTypeVIR=حوالة مصرفية
|
||||
PaymentTypeShortVIR=حوالة مصرفية
|
||||
|
||||
@@ -19,7 +19,8 @@ Income=الدخل
|
||||
Outcome=نتائج
|
||||
MenuReportInOut=دخل / نتائج
|
||||
ReportInOut=Balance of income and expenses
|
||||
ReportTurnover=دوران
|
||||
ReportTurnover=Turnover invoiced
|
||||
ReportTurnoverCollected=Turnover collected
|
||||
PaymentsNotLinkedToInvoice=المدفوعات ليست مرتبطة بأي الفاتورة ، وذلك ليس مرتبطا بأي طرف ثالث
|
||||
PaymentsNotLinkedToUser=المدفوعات ليست مرتبطة بأي مستخدم
|
||||
Profit=الأرباح
|
||||
@@ -77,7 +78,7 @@ MenuNewSocialContribution=الضريبة الاجتماعية / مالية جد
|
||||
NewSocialContribution=الضريبة الاجتماعية / مالية جديدة
|
||||
AddSocialContribution=Add social/fiscal tax
|
||||
ContributionsToPay=الضرائب الاجتماعية / المالية لدفع
|
||||
AccountancyTreasuryArea=المحاسبة / الخزانة المنطقة
|
||||
AccountancyTreasuryArea=Billing and payment area
|
||||
NewPayment=دفع جديدة
|
||||
Payments=المدفوعات
|
||||
PaymentCustomerInvoice=الزبون تسديد الفاتورة
|
||||
@@ -105,6 +106,7 @@ VATPayment=Sales tax payment
|
||||
VATPayments=Sales tax payments
|
||||
VATRefund=Sales tax refund
|
||||
NewVATPayment=New sales tax payment
|
||||
NewLocalTaxPayment=New tax %s payment
|
||||
Refund=رد
|
||||
SocialContributionsPayments=الاجتماعية المدفوعات / الضرائب المالية
|
||||
ShowVatPayment=وتظهر دفع ضريبة القيمة المضافة
|
||||
@@ -116,8 +118,9 @@ CustomerAccountancyCodeShort=الزبون. حساب. رمز
|
||||
SupplierAccountancyCodeShort=سوب. حساب. رمز
|
||||
AccountNumber=رقم الحساب
|
||||
NewAccountingAccount=حساب جديد
|
||||
SalesTurnover=مبيعات
|
||||
SalesTurnoverMinimum=الحد الأدنى حجم مبيعات
|
||||
Turnover=Turnover invoiced
|
||||
TurnoverCollected=Turnover collected
|
||||
SalesTurnoverMinimum=Minimum turnover
|
||||
ByExpenseIncome=By expenses & incomes
|
||||
ByThirdParties=بو أطراف ثالثة
|
||||
ByUserAuthorOfInvoice=فاتورة من قبل المؤلف
|
||||
@@ -137,8 +140,8 @@ ConfirmDeleteSocialContribution=هل أنت متأكد أنك تريد حذف /
|
||||
ExportDataset_tax_1=الضرائب والمدفوعات الاجتماعية والمالية
|
||||
CalcModeVATDebt=<b>الوضع٪ SVAT بشأن المحاسبة الالتزام٪ الصورة.</b>
|
||||
CalcModeVATEngagement=وضع <b>SVAT٪ على مداخيل مصاريف٪ الصورة.</b>
|
||||
CalcModeDebt=<b>وقال٪</b> وضع <b>sClaims-الديون٪ الصورة</b> <b>المحاسبة الالتزام.</b>
|
||||
CalcModeEngagement=وقال <b>واسطة٪ sIncomes-المصروفات٪ الصورة</b> <b>المحاسبة النقدية</b>
|
||||
CalcModeDebt=Analysis of known recorded invoices even if they are not yet accounted in ledger.
|
||||
CalcModeEngagement=Analysis of known recorded payments, even if they are not yet accounted in Ledger.
|
||||
CalcModeBookkeeping=Analysis of <b>data journalized in Bookkeeping Ledger table</b>
|
||||
CalcModeLT1= <b>الوضع٪ زارة العلاقات الخارجية على فواتير العملاء - فواتير الموردين٪ الصورة</b>
|
||||
CalcModeLT1Debt=<b>الوضع٪ زارة العلاقات الخارجية على فواتير العملاء٪ الصورة</b>
|
||||
@@ -151,9 +154,9 @@ AnnualSummaryInputOutputMode=ميزان الإيرادات والمصروفات
|
||||
AnnualByCompanies=Balance of income and expenses, by predefined groups of account
|
||||
AnnualByCompaniesDueDebtMode=Balance of income and expenses, detail by predefined groups, mode <b>%sClaims-Debts%s</b> said <b>Commitment accounting</b>.
|
||||
AnnualByCompaniesInputOutputMode=Balance of income and expenses, detail by predefined groups, mode <b>%sIncomes-Expenses%s</b> said <b>cash accounting</b>.
|
||||
SeeReportInInputOutputMode=انظر التقرير <b>sIncomes ٪</b> بين <b>المصروفات ٪ ق</b> قال <b>المحاسبة النقدية</b> لحساب المدفوعات الفعلية
|
||||
SeeReportInDueDebtMode=انظر التقرير <b>sClaims ٪</b> بين <b>ديونها ٪ ق الالتزام والمحاسبة</b> وقال لحساب فواتير
|
||||
SeeReportInBookkeepingMode=See report <b>%sBookeeping%s</b> for a calculation on <b>bookkeeping table analysis</b>
|
||||
SeeReportInInputOutputMode=See %sanalysis of payments%s for a calculation on actual payments made even if they are not yet accounted in Ledger.
|
||||
SeeReportInDueDebtMode=See %sanalysis of invoices%s for a calculation based on known recorded invoices even if they are not yet accounted in Ledger.
|
||||
SeeReportInBookkeepingMode=See <b>%sBookeeping report%s</b> for a calculation on <b>Bookkeeping Ledger table</b>
|
||||
RulesAmountWithTaxIncluded=- المبالغ المبينة لمع جميع الضرائب المدرجة
|
||||
RulesResultDue=- وتتضمن الفواتير غير المسددة، والنفقات، ضريبة القيمة المضافة، والتبرعات سواء كانت بأجر أو لا. هو أيضا يتضمن الرواتب المدفوعة. <br> - وهو يستند إلى تاريخ المصادقة على الفواتير وضريبة القيمة المضافة وعلى الموعد المحدد للنفقات. لرواتب محددة مع وحدة الراتب، يتم استخدام قيمة تاريخ الدفع.
|
||||
RulesResultInOut=- ويشمل المدفوعات الحقيقية المحرز في الفواتير والمصاريف والضريبة على القيمة المضافة والرواتب. <br> - لأنه يقوم على مواعيد دفع الفواتير والمصاريف والضريبة على القيمة المضافة والرواتب. تاريخ التبرع للتبرع.
|
||||
@@ -218,8 +221,8 @@ Mode1=طريقة 1
|
||||
Mode2=طريقة 2
|
||||
CalculationRuleDesc=لحساب مجموع الضريبة على القيمة المضافة، هناك طريقتين: <br> طريقة 1 والتقريب ضريبة القيمة المضافة في كل سطر، ثم ملخصا لها. <br> طريقة 2 يتم تلخيص كل ضريبة القيمة المضافة في كل سطر، ثم التقريب النتيجة. <br> النتيجة النهائية قد تختلف من بضعة سنتات. الوضع الافتراضي هو وضع <b>الصورة٪.</b>
|
||||
CalculationRuleDescSupplier=وفقا لالمورد، واختيار الطريقة المناسبة لتطبيق الحكم حساب نفسها والحصول على نفس النتيجة المتوقعة من المورد الخاص بك.
|
||||
TurnoverPerProductInCommitmentAccountingNotRelevant=The Turnover report per product, when using a <b>cash accounting</b> mode is not relevant. This report is only available when using <b>commitment accounting</b> mode (see setup of accountancy module).
|
||||
TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=The Turnover report per sale tax rate, when using a <b>cash accounting</b> mode is not relevant. This report is only available when using <b>commitment accounting</b> mode (see setup of accountancy module).
|
||||
TurnoverPerProductInCommitmentAccountingNotRelevant=The report of Turnover collected per product is not available. This report is only available for turnover invoiced.
|
||||
TurnoverPerSaleTaxRateInCommitmentAccountingNotRelevant=The report of Turnover collected per sale tax rate is not available. This report is only available for turnover invoiced.
|
||||
CalculationMode=وضع الحساب
|
||||
AccountancyJournal=Accounting code journal
|
||||
ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for VAT on sales (used if not defined on VAT dictionary setup)
|
||||
@@ -251,5 +254,6 @@ VATDue=Sale tax claimed
|
||||
ClaimedForThisPeriod=Claimed for the period
|
||||
PaidDuringThisPeriod=Paid during this period
|
||||
ByVatRate=By sale tax rate
|
||||
TurnoverbyVatrate=Turnover by sale tax rate
|
||||
TurnoverbyVatrate=Turnover invoiced by sale tax rate
|
||||
TurnoverCollectedbyVatrate=Turnover collected by sale tax rate
|
||||
PurchasebyVatrate=Purchase by sale tax rate
|
||||
|
||||
@@ -204,3 +204,7 @@ MigrationResetBlockedLog=Reset module BlockedLog for v7 algorithm
|
||||
ShowNotAvailableOptions=عرض خيارات غير متوفرة
|
||||
HideNotAvailableOptions=إخفاء خيارات غير متوفرة
|
||||
ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can <a href="%s">click here</a>, but application or some features may not work correctly until fixed.
|
||||
YouTryInstallDisabledByDirLock=The application try to sefl upgrade, but install/upgrade pages have been disabled for security reason (directory renamed with .lock suffix).<br>
|
||||
YouTryInstallDisabledByFileLock=The application try to sefl upgrade, but install/upgrade pages pages have been disabled for security reason (by lock file <strong>install.lock</strong> into dolibarr documents directory).<br>
|
||||
ClickHereToGoToApp=Click here to go to your application
|
||||
ClickOnLinkOrRemoveManualy=Click on following link and if you always reach this page, you must remove the file install.lock into documents directory manually
|
||||
|
||||
@@ -507,6 +507,7 @@ NoneF=لا شيء
|
||||
NoneOrSeveral=None or several
|
||||
Late=متأخر
|
||||
LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts.
|
||||
NoItemLate=No late item
|
||||
Photo=صورة
|
||||
Photos=الصور
|
||||
AddPhoto=إضافة الصورة
|
||||
@@ -945,3 +946,5 @@ KeyboardShortcut=Keyboard shortcut
|
||||
AssignedTo=مخصص ل
|
||||
Deletedraft=Delete draft
|
||||
ConfirmMassDraftDeletion=Draft Bulk delete confirmation
|
||||
FileSharedViaALink=File shared via a link
|
||||
|
||||
|
||||
@@ -74,6 +74,7 @@ NoWidget=No widget
|
||||
GoToApiExplorer=Go to API explorer
|
||||
ListOfMenusEntries=List of menu entries
|
||||
ListOfPermissionsDefined=List of defined permissions
|
||||
SeeExamples=See examples here
|
||||
EnabledDesc=Condition to have this field active (Examples: 1 or $conf->global->MYMODULE_MYOPTION)
|
||||
VisibleDesc=Is the field visible ? (Examples: 0=Never visible, 1=Visible on list and create/update/view forms, 2=Visible on list only, 3=Visible on create/update/view form only. Using a negative value means field is not shown by default on list but can be selected for viewing)
|
||||
IsAMeasureDesc=Can the value of field be cumulated to get a total into list ? (Examples: 1 or 0)
|
||||
@@ -95,3 +96,6 @@ DropTableIfEmpty=(Delete table if empty)
|
||||
TableDoesNotExists=The table %s does not exists
|
||||
TableDropped=Table %s deleted
|
||||
InitStructureFromExistingTable=Build the structure array string of an existing table
|
||||
UseAboutPage=Disallow the about page
|
||||
UseDocFolder=Disallow the documentation folder
|
||||
UseSpecificReadme=Use a specific ReadMe
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user