Merge branch 'develop' into develop
This commit is contained in:
commit
1708874306
13
.travis.yml
13
.travis.yml
@ -108,11 +108,11 @@ install:
|
|||||||
echo "Updating Composer"
|
echo "Updating Composer"
|
||||||
rm $TRAVIS_BUILD_DIR/composer.json
|
rm $TRAVIS_BUILD_DIR/composer.json
|
||||||
rm $TRAVIS_BUILD_DIR/composer.lock
|
rm $TRAVIS_BUILD_DIR/composer.lock
|
||||||
|
composer -V
|
||||||
composer self-update
|
composer self-update
|
||||||
# To have composer making parallel downloads
|
|
||||||
composer global require hirak/prestissimo
|
|
||||||
composer -n init
|
composer -n init
|
||||||
composer -n config vendor-dir htdocs/includes
|
composer -n config vendor-dir htdocs/includes
|
||||||
|
composer -n config -g vendor-dir htdocs/includes
|
||||||
echo
|
echo
|
||||||
|
|
||||||
- |
|
- |
|
||||||
@ -146,7 +146,10 @@ install:
|
|||||||
|
|
||||||
- |
|
- |
|
||||||
echo "Adding path of binaries tools installed by composer to the PATH"
|
echo "Adding path of binaries tools installed by composer to the PATH"
|
||||||
export PATH="$TRAVIS_BUILD_DIR/htdocs/includes/bin:$PATH"
|
export PATH="$TRAVIS_BUILD_DIR/htdocs/includes/bin:$TRAVIS_BUILD_DIR/vendor/bin:$TRAVIS_BUILD_DIR/htdocs/includes:$PATH"
|
||||||
|
echo $PATH
|
||||||
|
ls $TRAVIS_BUILD_DIR/vendor
|
||||||
|
ls $TRAVIS_BUILD_DIR/htdocs/includes/bin
|
||||||
echo
|
echo
|
||||||
|
|
||||||
|
|
||||||
@ -177,7 +180,7 @@ before_script:
|
|||||||
# Check PHP
|
# Check PHP
|
||||||
echo "PHP version"
|
echo "PHP version"
|
||||||
php -i | head -
|
php -i | head -
|
||||||
# Check Parallel-lin version
|
# Check Parallel-lint version
|
||||||
echo "Parallel-lint version"
|
echo "Parallel-lint version"
|
||||||
which parallel-lint
|
which parallel-lint
|
||||||
parallel-lint -V
|
parallel-lint -V
|
||||||
@ -300,7 +303,7 @@ script:
|
|||||||
echo
|
echo
|
||||||
|
|
||||||
- |
|
- |
|
||||||
echo "Checking coding style (excluding Pull Requests builds to not overload travis, excluding also for some jobs to avoid duplicate tests)"
|
echo "Checking coding style (excluding Pull Requests builds to not overload travis, excluding also some jobs to avoid duplicate tests)"
|
||||||
# Ensure we catch errors
|
# Ensure we catch errors
|
||||||
set -e
|
set -e
|
||||||
# Exclusions are defined in the ruleset.xml file
|
# Exclusions are defined in the ruleset.xml file
|
||||||
|
|||||||
266
ChangeLog
266
ChangeLog
@ -4,153 +4,155 @@ English Dolibarr ChangeLog
|
|||||||
|
|
||||||
|
|
||||||
***** ChangeLog for 13.0.0 compared to 12.0.0 *****
|
***** ChangeLog for 13.0.0 compared to 12.0.0 *****
|
||||||
|
|
||||||
For users:
|
For users:
|
||||||
|
----------
|
||||||
NEW: Add module "Credit transfer SEPA" to manage payment of vendors using bank credit transfer SEPA files.
|
NEW: Add module "Credit transfer SEPA" to manage payment of vendors using bank credit transfer SEPA files.
|
||||||
NEW: Module Reception (for a more accurate management of your receptions) moved from experimental to stable.
|
NEW: Module Reception (for a more accurate management of your receptions) moved from experimental to stable.
|
||||||
NEW: Several security issues after a private bug bounty campaign.
|
NEW: Several security issues after a private bug bounty campaign.
|
||||||
NEW: #15065 Put the product label in bold in the PDF templates if configured
|
NEW: #15065 Put the product label in bold in the PDF templates if configured
|
||||||
NEW: Accountancy - Add chart of sub accounts
|
NEW: Accountancy - add chart of sub accounts
|
||||||
NEW: Accountancy - Add options to disable binding on sales, purchases & expense reports independently of the modules
|
NEW: Accountancy - add options to disable binding on sales, purchases & expense reports independently of the modules
|
||||||
NEW: Accountancy balance - Add a menu entry to show subtotal by group
|
NEW: Accountancy balance - add a menu entry to show subtotal by group
|
||||||
NEW: Accountancy - Move to real ledger, real journals, menu disposition
|
NEW: Accountancy - move to real ledger, real journals, menu disposition
|
||||||
NEW: Accountancy - On transfers, select the periodicity by default
|
NEW: Accountancy - on transfers, select the periodicity by default
|
||||||
NEW: New currency rate editor.
|
NEW: new currency rate editor
|
||||||
NEW: Add 2 rules for emailcollector: Message send/not sent from Dolibarr
|
NEW: add 2 rules for emailcollector: Message send/not sent from Dolibarr
|
||||||
NEW: Add a counter of number of words for pages in website module
|
NEW: add a counter of number of words for pages in website module
|
||||||
NEW: add alert before changing thirdparty in takepos
|
NEW: add alert before changing thirdparty in TakePOS
|
||||||
NEW: Add a page to list Stock at a given date in the past.
|
NEW: add a page to list Stock at a given date in the past
|
||||||
NEW: Add a start date to begin binding in accountancy
|
NEW: add a start date to begin binding in accountancy
|
||||||
NEW: Add a statistics page to list popularity of products on invoices
|
NEW: add a statistics page to list popularity of products on invoices
|
||||||
NEW: Add calendar selection for agenda view
|
NEW: add calendar selection for agenda view
|
||||||
NEW: Support documents generation for ticket edition (pdf or odt)
|
NEW: Support documents generation for ticket edition (PDF or ODT)
|
||||||
NEW: Add column payment term into list of supplier invoices.
|
NEW: add column payment term into list of supplier invoices
|
||||||
NEW: Add column quantity in product margin page
|
NEW: add column quantity in product margin page
|
||||||
NEW: Add column vat rate in page to define accounting account on product/service
|
NEW: add column vat rate in page to define accounting account on product/service
|
||||||
NEW: Add common list function for available app/module page
|
NEW: add common list function for available app/module page
|
||||||
NEW: add costprice in fields of products list
|
NEW: add costprice in fields of products list
|
||||||
NEW: Added an import profile for CUSTOMER ORDER, PO, PROPOSAL MODULE, SUPPLIER INVOICE
|
NEW: added an import profile for CUSTOMER ORDER, PO, PROPOSAL MODULE, SUPPLIER INVOICE
|
||||||
NEW: Added incoterms dara into the substitution array
|
NEW: added incoterms data into the substitution array
|
||||||
NEW: Add employee link in expense report binding page
|
NEW: add employee link in expense report binding page
|
||||||
NEW: Add export for various payment
|
NEW: add export for various payment
|
||||||
NEW: add extra fields labels and values in mail on create ticket
|
NEW: add Extrafields labels and values in mail on create ticket
|
||||||
NEW: Add extrafields support on ECM module
|
NEW: add Extrafields support on ECM module
|
||||||
NEW: Add filter rules "is answer" and "is not answer" in email collector
|
NEW: add filter rules "is answer" and "is not answer" in email collector
|
||||||
NEW: Add focus when editing on product/stock/product.php Close #14548
|
NEW: add focus when editing on product/stock/product.php Close #14548
|
||||||
NEW: add formConfirm hook on product page
|
NEW: add formConfirm hook on product page
|
||||||
NEW: add free text on each terminal of cash desk
|
NEW: add free text on each terminal of cash desk
|
||||||
NEW: Add function dolButtonToOpenUrlInDialogPopup() to be able to open
|
NEW: add function dolButtonToOpenUrlInDialogPopup() to be able to open
|
||||||
NEW: Add global search for customer payments and vendor payments
|
NEW: add global search for customer payments and vendor payments
|
||||||
NEW: Add global search for miscellaneous payments
|
NEW: add global search for miscellaneous payments
|
||||||
NEW: Add helper function for table headers with numbers
|
NEW: add helper function for table headers with numbers
|
||||||
NEW: add hooks on stats pages
|
NEW: add hooks on stats pages
|
||||||
NEW: Add link to edit property from search result of website pages
|
NEW: add link to edit property from search result of website pages
|
||||||
NEW: Add link to reset qty on supplier dispatch page
|
NEW: add link to reset qty on supplier dispatch page
|
||||||
NEW: add MAIN_EMAILCOLLECTOR_MAIL_WITHOUT_HEADER const to remove header stored by email collector
|
NEW: add MAIN_EMAILCOLLECTOR_MAIL_WITHOUT_HEADER const to remove header stored by email collector
|
||||||
NEW: Add Manufacturing Orders attached files into the automatic ECM view
|
NEW: add Manufacturing Orders attached files into the automatic ECM view
|
||||||
NEW: add margin info in invoice list
|
NEW: add margin info in invoice list
|
||||||
NEW: Add mass action to set category on a list of website pages.
|
NEW: add mass action to set category on a list of website pages
|
||||||
NEW: Add mass deletion for events
|
NEW: add mass deletion for events
|
||||||
NEW: Add mass deletion for draft invoices
|
NEW: add mass deletion for draft invoices
|
||||||
NEW: Add __MEMBER_TYPE__ substitution key
|
NEW: add __MEMBER_TYPE__ substitution key
|
||||||
NEW: Add a message in error_log after detection of SQL or script injection
|
NEW: add a message in error_log after detection of SQL or script injection
|
||||||
NEW: Add module Credit transfer SEPA to manage payment of supplier using
|
NEW: add module Credit transfer SEPA to manage payment of supplier using
|
||||||
NEW: Add more filters on monthly statement list
|
NEW: add more filters on monthly statement list
|
||||||
NEW: Add option TAKEPOS_CAN_FORCE_BANK_ACCOUNT_DURING_PAYMENT
|
NEW: add option TAKEPOS_CAN_FORCE_BANK_ACCOUNT_DURING_PAYMENT
|
||||||
NEW: Add option to define a default warehouse at user level
|
NEW: add option to define a default warehouse at user level
|
||||||
NEW: Add option to include products without alert in replenish
|
NEW: add option to include products without alert in replenish
|
||||||
NEW: add order by lastname and firstname by default in get sales representatives
|
NEW: add order by lastname and firstname by default in get sales representatives
|
||||||
NEW: Add param to not show links when output tags
|
NEW: add param to not show links when output tags
|
||||||
NEW: Add PDF document templates for warehouses (list of stock)
|
NEW: add PDF document templates for warehouses (list of stock)
|
||||||
NEW: Add property cssview when declaring fields of an object
|
NEW: add property cssview when declaring fields of an object
|
||||||
NEW: Add prospect status managment for the contact with managment of custom icon
|
NEW: add prospect status managment for the contact with managment of custom icon
|
||||||
NEW: Add public note on products. This also partially fix the #14342
|
NEW: add public note on products ; this also partially fix the #14342
|
||||||
NEW: Add quick dropdown menu in top right menu (MAIN_USE_TOP_MENU_QUICKADD_DROPDOWN)
|
NEW: add quick dropdown menu in top right menu (MAIN_USE_TOP_MENU_QUICKADD_DROPDOWN)
|
||||||
NEW: add region in export companies and contacts
|
NEW: add region in export companies and contacts
|
||||||
NEW: add rights on margin info on invoice list
|
NEW: add rights on margin info on invoice list
|
||||||
NEW: Add search param for close date on order list
|
NEW: add search param for close date on order list
|
||||||
NEW: add send context for ticket
|
NEW: add send context for ticket
|
||||||
NEW: Add show preview for mail attachement on form mail
|
NEW: add show preview for mail attachement on form mail
|
||||||
NEW: add state origin for product
|
NEW: add state origin for product
|
||||||
NEW: add State/Province origin for products
|
NEW: add State/Province origin for products
|
||||||
NEW: Add the workflow interaction close intervention on closing ticket
|
NEW: add the workflow interaction close intervention on closing ticket
|
||||||
NEW: Add third order printer to TakePOS
|
NEW: add third order printer to TakePOS
|
||||||
NEW: add tracking number in list and search_all items
|
NEW: add tracking number in list and search_all items
|
||||||
NEW: add two hooks printFieldListFrom and printFieldSearchParam
|
NEW: add two hooks printFieldListFrom and printFieldSearchParam
|
||||||
NEW: Add __TYPE__ substitution key
|
NEW: add __TYPE__ substitution key
|
||||||
NEW: Add validation of MX domain for emails
|
NEW: add validation of MX domain for emails
|
||||||
NEW: add vcard for aderent and user
|
NEW: add vcard for aderent and user
|
||||||
NEW: add week number for month view in agenda
|
NEW: add week number for month view in agenda
|
||||||
NEW: Algeria data (tva and forme_juridique)
|
NEW: Algeria data (tva and forme_juridique)
|
||||||
NEW: Allow click on all header numbers on commerce area
|
NEW: allow click on all header numbers on commerce area
|
||||||
NEW: Allow to reopen interventions (green button)
|
NEW: allow to reopen interventions (green button)
|
||||||
NEW: Allow zero quality on supplier/vendor order line
|
NEW: allow zero quality on supplier/vendor order line
|
||||||
NEW: Appearance tab in TakePOS with more visual parameters
|
NEW: appearance tab in TakePOS with more visual parameters
|
||||||
NEW: Better currency rate editor
|
NEW: better currency rate editor
|
||||||
NEW: Calculate the virtual stock in transverse mode ( not on getEntity('commande'), ... but on getEntity('stock') )
|
NEW: calculate the virtual stock in transverse mode ( not on getEntity('commande'), ... but on getEntity('stock') )
|
||||||
NEW: Can add event to log into blockedlog module with a constant.
|
NEW: can add event to log into blockedlog module with a constant
|
||||||
NEW: Can build vendor invoice from vendor orders
|
NEW: can build vendor invoice from vendor orders
|
||||||
NEW: Can change a product in line of recurring invoice or contract
|
NEW: can change a product in line of recurring invoice or contract
|
||||||
NEW: Can change size of logo on PDF documents
|
NEW: can change size of logo on PDF documents
|
||||||
NEW: Can change VAT rate of all lines of a draft object in one step.
|
NEW: can change VAT rate of all lines of a draft object in one step
|
||||||
NEW: Can define date range of validity of a login during creation
|
NEW: can define date range of validity of a login during creation
|
||||||
NEW: Can disable, from edit page, the whole web site
|
NEW: can disable, from edit page, the whole web site
|
||||||
NEW: can edit and set sales representatives directly on thirdparty card
|
NEW: can edit and set sales representatives directly on thirdparty card
|
||||||
NEW: Can edit the list of sending email profiles.
|
NEW: Can edit the list of sending email profiles.
|
||||||
NEW: Can enable/disable users in bulk actions
|
NEW: can enable/disable users in bulk actions
|
||||||
NEW: Can filter on accounting system ref in export of chart of account
|
NEW: can filter on accounting system ref in export of chart of account
|
||||||
NEW: Can filter on container type, language and tags in the list of pages
|
NEW: can filter on container type, language and tags in the list of pages
|
||||||
NEW: Can force the antivirus from conf file or autoprepend ini setup.
|
NEW: can force the antivirus from conf file or autoprepend ini setup
|
||||||
NEW: Can hide eatby, sellby dates with option PRODUCT_DISABLE_SELLBY and PRODUCT_DISABLE_EATBY
|
NEW: can hide eatby, sellby dates with option PRODUCT_DISABLE_SELLBY and PRODUCT_DISABLE_EATBY
|
||||||
NEW: Can import proposals, sales orders, supplier invoices
|
NEW: can import proposals, sales orders, supplier invoices
|
||||||
NEW: can set a dedicated SMTP config for sending email from public ticket interface
|
NEW: can set a dedicated SMTP config for sending email from public ticket interface
|
||||||
NEW: Can set tags/categories to website pages.
|
NEW: can set tags/categories to website pages
|
||||||
NEW: Can set type of price without tax per default for new sale price creation
|
NEW: can set type of price without tax per default for new sale price creation
|
||||||
NEW: Can use desired stock of a given warehouse for replenishment
|
NEW: can use desired stock of a given warehouse for replenishment
|
||||||
NEW: Can use THEME_DARKMODEENABLED=2 for a preview of theme in dark mode
|
NEW: can use THEME_DARKMODEENABLED=2 for a preview of theme in dark mode
|
||||||
NEW: change thirdparty with barcode scan in takepos
|
NEW: change thirdparty with barcode scan in TakePOS
|
||||||
NEW: Common behavior for monthly leave list view
|
NEW: common behavior for monthly leave list view
|
||||||
NEW: conf to allow show full arbo in warehouse getnomurl
|
NEW: conf to allow show full arbo in warehouse getnomurl
|
||||||
NEW: convert all subscription in datetime
|
NEW: convert all subscription in datetime
|
||||||
NEW: create thirdparty customer from TAKEPOS
|
NEW: create thirdparty customer from TakePOS
|
||||||
NEW: Date shipment from order accepts hours
|
NEW: date shipment from order accepts hours
|
||||||
NEW: Declinaison price level compatibility
|
NEW: declinaison price level compatibility
|
||||||
NEW: Delayed payment in TakePOS
|
NEW: delayed payment in TakePOS
|
||||||
NEW: Development of module Recruitment
|
NEW: development of module Recruitment
|
||||||
NEW: display date range if exist in takepos
|
NEW: display date range if exist in TakePOS
|
||||||
NEW: display resiliate status in takepos for member
|
NEW: display resiliate status in TakePOS for member
|
||||||
NEW: display stat for BOM on "object referent"/linked Object product tab
|
NEW: display stat for BOM on "object referent"/linked Object product tab
|
||||||
NEW: edit and update a ticket
|
NEW: edit and update a ticket
|
||||||
NEW: edit or delete dispatched lines
|
NEW: edit or delete dispatched lines
|
||||||
NEW: Email configuration - Allow auto signed certificat when smtp ssl activated
|
NEW: Email configuration - allow auto signed certificat when smtp ssl activated
|
||||||
NEW: enable free emails input with select2
|
NEW: enable free emails input with select2
|
||||||
NEW: endpoint getContacts and Clean results
|
NEW: endpoint getContacts and Clean results
|
||||||
NEW: Events in agenda for contact
|
NEW: Events in agenda for contact
|
||||||
NEW: Field to link website page to an other object
|
NEW: Field to link website page to an other object
|
||||||
NEW: Fill ECM src object fields in dol_add_file_process
|
NEW: fill ECM src object fields in dol_add_file_process
|
||||||
NEW: filter on progress column in task list
|
NEW: filter on progress column in task list
|
||||||
NEW: filter product list by country and/or state/province
|
NEW: filter product list by country and/or state/province
|
||||||
NEW: format tickets sent by mail in public interface
|
NEW: format tickets sent by mail in public interface
|
||||||
NEW: add juridical status for Algeria
|
NEW: add juridical status for Algeria
|
||||||
NEW: form to add customer/supplier into categories
|
NEW: form to add customer/supplier into categories
|
||||||
NEW: Framework is ready for CSRF token protection on explicit GET URLs.
|
NEW: Framework is ready for CSRF token protection on explicit GET URLs
|
||||||
NEW: get all child recursively
|
NEW: get all child recursively
|
||||||
NEW: Get contacts list of a given order
|
NEW: get contacts list of a given order
|
||||||
NEW: helper functions for export with phpspreadsheet
|
NEW: helper functions for export with phpspreadsheet
|
||||||
NEW: hide closed contract lines
|
NEW: hide closed contract lines
|
||||||
NEW: hide label in pdf for variants
|
NEW: hide label in PDF for variants
|
||||||
NEW: Hook on propal card
|
NEW: Hook on propal card
|
||||||
NEW: If specific help page is available, we change color of icon
|
NEW: if specific help page is available, we change color of icon
|
||||||
NEW: Include the tag editor of page as a popup into website editor
|
NEW: include the tag editor of page as a popup into website editor
|
||||||
NEW: Introduce constant FACTUREFOURN_REUSE_NOTES_ON_CREATE_FROM
|
NEW: introduce constant FACTUREFOURN_REUSE_NOTES_ON_CREATE_FROM
|
||||||
NEW: Introducing new modal boxes in TakePOS
|
NEW: introducing new modal boxes in TakePOS
|
||||||
NEW: Keep takepos terminal when login/logout
|
NEW: keep TakePOS terminal when login/logout
|
||||||
NEW: Link on balance to the ledger
|
NEW: link on balance to the ledger
|
||||||
NEW: MAIN_EMAILCOLLECTOR_MAIL_WITHOUT_HEADER const in email collector
|
NEW: MAIN_EMAILCOLLECTOR_MAIL_WITHOUT_HEADER const in email collector
|
||||||
NEW: manage errors on update extra fields in ticket card
|
NEW: manage errors on update extra fields in ticket card
|
||||||
NEW: mass-actions for the event list view
|
NEW: mass-actions for the event list view
|
||||||
NEW: Module Intracomm report
|
NEW: Module Intracomm report
|
||||||
NEW: More filter for "View change logs"
|
NEW: more filter for "View change logs"
|
||||||
NEW: multicurrency total in takepos
|
NEW: multicurrency total in TakePOS
|
||||||
NEW: multiselect type and date to date filter
|
NEW: multiselect type and date to date filter
|
||||||
NEW: Nature of product is now a dictionay
|
NEW: Nature of product is now a dictionay
|
||||||
NEW: new line template: hidden conf to fill service dates from the last service line
|
NEW: new line template: hidden conf to fill service dates from the last service line
|
||||||
@ -159,38 +161,38 @@ NEW: possibilty to group payments by mode and show their subtotal
|
|||||||
NEW: Print payment method and change in TakePOS
|
NEW: Print payment method and change in TakePOS
|
||||||
NEW: Priority and transparency from external calendar events
|
NEW: Priority and transparency from external calendar events
|
||||||
NEW: Products Import/Export 'default warehouse' and 'use batch number' fields
|
NEW: Products Import/Export 'default warehouse' and 'use batch number' fields
|
||||||
NEW: Purchase price table: Added filterable table columns
|
NEW: Purchase price table: added filterable table columns
|
||||||
NEW: rate editor for multicurrency
|
NEW: rate editor for multicurrency
|
||||||
NEW: ref_ext field for Commande lines, order lines, Attributes and Combinations, Invoice lines, payments, order lines
|
NEW: ref_ext field for Commande lines, order lines, Attributes and Combinations, Invoice lines, payments, order lines
|
||||||
NEW: remove new lines in mail on add ticket message
|
NEW: remove new lines in mail on add ticket message
|
||||||
NEW: restrict thirdparty to customer in takepos
|
NEW: restrict thirdparty to customer in TakePOS
|
||||||
NEW: Allow to edit "demand reason" field though API
|
NEW: allow to edit "demand reason" field though API
|
||||||
NEW: Rule "email to" accept wildcard *
|
NEW: Rule "email to" accept wildcard *
|
||||||
NEW: Save filter of the project homepage
|
NEW: Save filter of the project homepage
|
||||||
NEW: Select-able columns on customer invoice paymnet list
|
NEW: select-able columns on customer invoice paymnet list
|
||||||
NEW: Select-able columns on miscellaneous payments + more data columns
|
NEW: select-able columns on miscellaneous payments + more data columns
|
||||||
NEW: Select-able columns on social taxes list
|
NEW: select-able columns on social taxes list
|
||||||
NEW: Select-able columns on supplier invoice payment list
|
NEW: select-able columns on supplier invoice payment list
|
||||||
NEW: send context and remove new lines on create ticket
|
NEW: send context and remove new lines on create ticket
|
||||||
NEW: set entity when creating invoice on takepos
|
NEW: set entity when creating invoice on takepos
|
||||||
NEW: Show available stock in TakePOS
|
NEW: show available stock in TakePOS
|
||||||
NEW: Show category filter on lists only when user have rights to read categories
|
NEW: show category filter on lists only when user have rights to read categories
|
||||||
NEW: Show header number and make it clickable in warehouse arean, payment area, shipment area
|
NEW: show header number and make it clickable in warehouse arean, payment area, shipment area
|
||||||
NEW: Show image of user in the combo select of users
|
NEW: show image of user in the combo select of users
|
||||||
NEW: Show label on batch card
|
NEW: show label on batch card
|
||||||
NEW: Show line number on intervention card (via MAIN_VIEW_LINE_NUMBER)
|
NEW: show line number on intervention card (via MAIN_VIEW_LINE_NUMBER)
|
||||||
NEW: show links for select and multi-select in category extra field
|
NEW: show links for select and multi-select in category extra field
|
||||||
NEW: Show module and permission ids on user/group rights (only admin)
|
NEW: show module and permission ids on user/group rights (only admin)
|
||||||
NEW: Show place from events on import calender
|
NEW: show place from events on import calender
|
||||||
NEW: Show references in contract form on interventions
|
NEW: show references in contract form on interventions
|
||||||
NEW: Show tags and status in search list of website pages
|
NEW: show tags and status in search list of website pages
|
||||||
NEW: Show user on external calender events (when found)
|
NEW: show user on external calender events (when found)
|
||||||
NEW: subject title with company name instead of application title in ticket message
|
NEW: subject title with company name instead of application title in ticket message
|
||||||
NEW: Support for Samba4 AD
|
NEW: Support for Samba4 AD
|
||||||
NEW: TakePOS connector compatibility with RECEIPT PRINTERS module
|
NEW: TakePOS connector compatibility with RECEIPT PRINTERS module
|
||||||
NEW: TakePOS Gift Receipt
|
NEW: TakePOS Gift Receipt
|
||||||
NEW: TakePOS Multicurrency compatibility
|
NEW: TakePOS Multicurrency compatibility
|
||||||
NEW: The global header of a website can also have dynamic content
|
NEW: the global header of a website can also have dynamic content
|
||||||
NEW: Third-Party Import new fields: mother company,outstanding debt limit,bank account,incoterms
|
NEW: Third-Party Import new fields: mother company,outstanding debt limit,bank account,incoterms
|
||||||
NEW: Thirdparty module : box on customer/supplier tab for invoice outsantding amount late
|
NEW: Thirdparty module : box on customer/supplier tab for invoice outsantding amount late
|
||||||
NEW: ticket classification on create from email collector
|
NEW: ticket classification on create from email collector
|
||||||
@ -199,16 +201,18 @@ NEW: translate classification labels in ticket
|
|||||||
NEW: triggers create, modify, delete
|
NEW: triggers create, modify, delete
|
||||||
NEW: VAT for Algeria
|
NEW: VAT for Algeria
|
||||||
NEW: Use preselect third-party from list on new card
|
NEW: Use preselect third-party from list on new card
|
||||||
NEW: Vat report - Invert constant to show by default zero vat in reports
|
NEW: VAT report - Invert constant to show by default zero vat in reports
|
||||||
NEW: website page fields selection
|
NEW: website page fields selection
|
||||||
NEW: Weighing Scale compatibility with TakePOS connector
|
NEW: Weighing Scale compatibility with TakePOS connector
|
||||||
NEW: When creating a user from a member linked to a thirdparty, you can choose to create if as external or internal user
|
NEW: when creating a user from a member linked to a thirdparty, you can choose to create if as external or internal user
|
||||||
NEW: Add clone functionality on miscellaneous payment
|
NEW: add clone functionality on miscellaneous payment
|
||||||
|
|
||||||
|
|
||||||
For developers:
|
For developers:
|
||||||
|
---------------
|
||||||
NEW: Can use dynamic code into the 'enabled' property of DAO fields
|
NEW: Can use dynamic code into the 'enabled' property of DAO fields
|
||||||
NEW: API Can update a payment
|
NEW: API can update a payment
|
||||||
NEW: api get member by thirdparty
|
NEW: API get member by thirdparty
|
||||||
NEW: API get thirdparty by barcode
|
NEW: API get thirdparty by barcode
|
||||||
NEW: API get users by email / login
|
NEW: API get users by email / login
|
||||||
NEW: fetch contact by email with REST API
|
NEW: fetch contact by email with REST API
|
||||||
@ -216,14 +220,15 @@ NEW: field ref_ext in llx_commandedet
|
|||||||
NEW: fields ref_ext for Attributes and Combinations
|
NEW: fields ref_ext for Attributes and Combinations
|
||||||
NEW: get state by REST API
|
NEW: get state by REST API
|
||||||
NEW: get state dictionnary by REST API
|
NEW: get state dictionnary by REST API
|
||||||
NEW: Improve Product API for variant products
|
NEW: improve Product API for variant products
|
||||||
NEW: Oauth SCOPE for Admin SDK
|
NEW: OAuth SCOPE for Admin SDK
|
||||||
NEW: Retrieve discount from invoice from API
|
NEW: retrieve discount from invoice from API
|
||||||
NEW: standardizes API thirdparties by email like other object
|
NEW: standardizes API thirdparties by email like other object
|
||||||
NEW: thirdparty REST API: endpoint to set price level
|
NEW: Thirdparty REST API: endpoint to set price level
|
||||||
NEW: Use new category API for project list view
|
NEW: use new category API for project list view
|
||||||
NEW: Triggers Attributes and Attributes values
|
NEW: Triggers Attributes and Attributes values
|
||||||
NEW: Add hooks on newpayment page to allow external payment modules
|
NEW: add hooks on newpayment page to allow external payment modules
|
||||||
|
|
||||||
|
|
||||||
WARNING:
|
WARNING:
|
||||||
|
|
||||||
@ -289,6 +294,7 @@ FIX: Visualization rights correction on last modified contacts box
|
|||||||
FIX: Wrong redirection
|
FIX: Wrong redirection
|
||||||
FIX: Yogosha report 4425 (backport)
|
FIX: Yogosha report 4425 (backport)
|
||||||
|
|
||||||
|
|
||||||
***** ChangeLog for 12.0.2 compared to 12.0.1 *****
|
***** ChangeLog for 12.0.2 compared to 12.0.1 *****
|
||||||
FIX: computation of the bottom margin of <body> returns NaN because body is not loaded yet
|
FIX: computation of the bottom margin of <body> returns NaN because body is not loaded yet
|
||||||
FIX: DebugBar hides content at page bottom
|
FIX: DebugBar hides content at page bottom
|
||||||
|
|||||||
@ -1,33 +1,45 @@
|
|||||||
README (deutsch / german / allemand)
|
README (deutsch / german / allemand)
|
||||||
--------------------------------
|
------------------------------------
|
||||||
|
|
||||||
|
|
||||||
--------------------------------
|
------------------------------------
|
||||||
Download / Herunterladen
|
Download / Herunterladen
|
||||||
--------------------------------
|
------------------------------------
|
||||||
|
|
||||||
* Dolibarr ERP/CRM kann man über die offizielle Dolibarr Website
|
* Dolibarr ERP/CRM kann man über die offizielle Dolibarr Website
|
||||||
|
|
||||||
https://www.dolibarr.org/downloads
|
https://www.dolibarr.org/downloads
|
||||||
oder direkt von Sourceforge
|
|
||||||
|
oder direkt bei Sourceforge
|
||||||
|
|
||||||
https://sourceforge.net/projects/dolibarr/files/
|
https://sourceforge.net/projects/dolibarr/files/
|
||||||
|
|
||||||
herunterladen.
|
herunterladen.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
* Die meisten externen Module/Themens sind über den DoliStore verfügbar:
|
|
||||||
https://www.dolistore.com/de/
|
|
||||||
|
|
||||||
|
|
||||||
--------------------------------
|
|
||||||
Installation
|
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
* Für eine kurze Einleitung, schau auf die README Datei im Hauptverzeichnis.
|
------------------------------------
|
||||||
|
Installation / Hilfe
|
||||||
|
------------------------------------
|
||||||
|
|
||||||
|
* Für eine kurze Einleitung schau in die README Datei im Hauptverzeichnis.
|
||||||
|
|
||||||
* Umfangreiche Dokumentationen sind im Dolibarr Wiki zu finden:
|
* Umfangreiche Dokumentationen sind im Dolibarr Wiki zu finden:
|
||||||
https://wiki.dolibarr.org/index.php/Hauptseite
|
https://wiki.dolibarr.org/index.php/Hauptseite
|
||||||
|
|
||||||
* eine Deutsche Community bietet der Dolibarr e.V. unter
|
* eine Deutsche Community bietet der Dolibarr e.V. unter
|
||||||
https://www.dolibarr.de/
|
https://www.dolibarr.de/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------
|
||||||
|
Zusatzmodule
|
||||||
|
------------------------------------
|
||||||
|
|
||||||
|
* Die meisten externen Module/Themen sind über den offiziellen DoliStore verfügbar:
|
||||||
|
|
||||||
|
https://www.dolistore.com/de/
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -7,7 +7,8 @@
|
|||||||
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.com>
|
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.com>
|
||||||
* Copyright (C) 2011-2012 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2011-2012 Juanjo Menent <jmenent@2byte.es>
|
||||||
* Copyright (C) 2012 J. Fernando Lagrange <fernando@demo-tic.org>
|
* Copyright (C) 2012 J. Fernando Lagrange <fernando@demo-tic.org>
|
||||||
* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
|
* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
|
||||||
|
* Copyright (C) 2020 Frédéric France <frederic.france@netlogic.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -39,7 +40,12 @@ $langs->loadLangs(array("admin", "members"));
|
|||||||
if (!$user->admin) accessforbidden();
|
if (!$user->admin) accessforbidden();
|
||||||
|
|
||||||
|
|
||||||
$type = array('yesno', 'texte', 'chaine');
|
$choices = array('yesno', 'texte', 'chaine');
|
||||||
|
|
||||||
|
$value = GETPOST('value', 'alpha');
|
||||||
|
$label = GETPOST('label', 'alpha');
|
||||||
|
$scandir = GETPOST('scandir', 'alpha');
|
||||||
|
$type = 'member';
|
||||||
|
|
||||||
$action = GETPOST('action', 'aZ09');
|
$action = GETPOST('action', 'aZ09');
|
||||||
|
|
||||||
@ -48,8 +54,50 @@ $action = GETPOST('action', 'aZ09');
|
|||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//
|
include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php';
|
||||||
if ($action == 'updateall') {
|
|
||||||
|
if ($action == 'set_default') {
|
||||||
|
$ret = addDocumentModel($value, $type, $label, $scandir);
|
||||||
|
$res = true;
|
||||||
|
} elseif ($action == 'del_default') {
|
||||||
|
$ret = delDocumentModel($value, $type);
|
||||||
|
if ($ret > 0) {
|
||||||
|
if ($conf->global->MEMBER_ADDON_PDF_ODT == "$value") {
|
||||||
|
dolibarr_del_const($db, 'MEMBER_ADDON_PDF_ODT', $conf->entity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$res = true;
|
||||||
|
} elseif ($action == 'setdoc') {
|
||||||
|
// Set default model
|
||||||
|
if (dolibarr_set_const($db, "MEMBER_ADDON_PDF_ODT", $value, 'chaine', 0, '', $conf->entity)) {
|
||||||
|
// La constante qui a ete lue en avant du nouveau set
|
||||||
|
// on passe donc par une variable pour avoir un affichage coherent
|
||||||
|
$conf->global->MEMBER_ADDON_PDF_ODT = $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
// On active le modele
|
||||||
|
$ret = delDocumentModel($value, $type);
|
||||||
|
if ($ret > 0) {
|
||||||
|
$ret = addDocumentModel($value, $type, $label, $scandir);
|
||||||
|
}
|
||||||
|
$res = true;
|
||||||
|
} elseif (preg_match('/set_([a-z0-9_\-]+)/i', $action, $reg)) {
|
||||||
|
$code = $reg[1];
|
||||||
|
if (dolibarr_set_const($db, $code, 1, 'chaine', 0, '', $conf->entity) > 0) {
|
||||||
|
header("Location: ".$_SERVER["PHP_SELF"]);
|
||||||
|
exit;
|
||||||
|
} else {
|
||||||
|
dol_print_error($db);
|
||||||
|
}
|
||||||
|
} elseif (preg_match('/del_([a-z0-9_\-]+)/i', $action, $reg)) {
|
||||||
|
$code = $reg[1];
|
||||||
|
if (dolibarr_del_const($db, $code, $conf->entity) > 0) {
|
||||||
|
header("Location: ".$_SERVER["PHP_SELF"]);
|
||||||
|
exit;
|
||||||
|
} else {
|
||||||
|
dol_print_error($db);
|
||||||
|
}
|
||||||
|
} elseif ($action == 'updateall') {
|
||||||
$db->begin();
|
$db->begin();
|
||||||
$res1 = $res2 = $res3 = $res4 = $res5 = $res6 = 0;
|
$res1 = $res2 = $res3 = $res4 = $res5 = $res6 = 0;
|
||||||
$res1 = dolibarr_set_const($db, 'ADHERENT_LOGIN_NOT_REQUIRED', GETPOST('ADHERENT_LOGIN_NOT_REQUIRED', 'alpha') ? 0 : 1, 'chaine', 0, '', $conf->entity);
|
$res1 = dolibarr_set_const($db, 'ADHERENT_LOGIN_NOT_REQUIRED', GETPOST('ADHERENT_LOGIN_NOT_REQUIRED', 'alpha') ? 0 : 1, 'chaine', 0, '', $conf->entity);
|
||||||
@ -86,7 +134,7 @@ if ($action == 'update' || $action == 'add') {
|
|||||||
|
|
||||||
$consttype = GETPOST('consttype', 'alpha');
|
$consttype = GETPOST('consttype', 'alpha');
|
||||||
$constnote = GETPOST('constnote');
|
$constnote = GETPOST('constnote');
|
||||||
$res = dolibarr_set_const($db, $constname, $constvalue, $type[$consttype], 0, $constnote, $conf->entity);
|
$res = dolibarr_set_const($db, $constname, $constvalue, $choices[$consttype], 0, $constnote, $conf->entity);
|
||||||
|
|
||||||
if (!$res > 0) $error++;
|
if (!$res > 0) $error++;
|
||||||
|
|
||||||
@ -245,6 +293,137 @@ $helptext .= '__COMPANY__, __ADDRESS__, __ZIP__, __TOWN__, __COUNTRY__, __EMAIL_
|
|||||||
$helptext .= '__YEAR__, __MONTH__, __DAY__';
|
$helptext .= '__YEAR__, __MONTH__, __DAY__';
|
||||||
|
|
||||||
form_constantes($constantes, 0, $helptext);
|
form_constantes($constantes, 0, $helptext);
|
||||||
|
$dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']);
|
||||||
|
|
||||||
|
// Defini tableau def des modeles
|
||||||
|
$def = array();
|
||||||
|
$sql = "SELECT nom";
|
||||||
|
$sql .= " FROM ".MAIN_DB_PREFIX."document_model";
|
||||||
|
$sql .= " WHERE type = '".$db->escape($type)."'";
|
||||||
|
$sql .= " AND entity = ".$conf->entity;
|
||||||
|
$resql = $db->query($sql);
|
||||||
|
if ($resql) {
|
||||||
|
$i = 0;
|
||||||
|
$num_rows = $db->num_rows($resql);
|
||||||
|
while ($i < $num_rows) {
|
||||||
|
$array = $db->fetch_array($resql);
|
||||||
|
array_push($def, $array[0]);
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
dol_print_error($db);
|
||||||
|
}
|
||||||
|
|
||||||
|
print load_fiche_titre($langs->trans("MembersDocModules"), '', '');
|
||||||
|
|
||||||
|
print '<table class="noborder centpercent">';
|
||||||
|
print '<tr class="liste_titre">';
|
||||||
|
print '<td>'.$langs->trans("Name").'</td>';
|
||||||
|
print '<td>'.$langs->trans("Description").'</td>';
|
||||||
|
print '<td align="center" width="60">'.$langs->trans("Status")."</td>\n";
|
||||||
|
print '<td align="center" width="60">'.$langs->trans("Default")."</td>\n";
|
||||||
|
print '<td align="center" width="80">'.$langs->trans("ShortInfo").'</td>';
|
||||||
|
print '<td align="center" width="80">'.$langs->trans("Preview").'</td>';
|
||||||
|
print "</tr>\n";
|
||||||
|
|
||||||
|
clearstatcache();
|
||||||
|
|
||||||
|
foreach ($dirmodels as $reldir) {
|
||||||
|
foreach (array('', '/doc') as $valdir) {
|
||||||
|
$dir = dol_buildpath($reldir."core/modules/member".$valdir);
|
||||||
|
if (is_dir($dir)) {
|
||||||
|
$handle = opendir($dir);
|
||||||
|
if (is_resource($handle)) {
|
||||||
|
while (($file = readdir($handle)) !== false) {
|
||||||
|
$filelist[] = $file;
|
||||||
|
}
|
||||||
|
closedir($handle);
|
||||||
|
arsort($filelist);
|
||||||
|
foreach ($filelist as $file) {
|
||||||
|
if (preg_match('/\.class\.php$/i', $file) && preg_match('/^(pdf_|doc_)/', $file)) {
|
||||||
|
if (file_exists($dir.'/'.$file)) {
|
||||||
|
$name = substr($file, 4, dol_strlen($file) - 14);
|
||||||
|
$classname = substr($file, 0, dol_strlen($file) - 10);
|
||||||
|
|
||||||
|
require_once $dir.'/'.$file;
|
||||||
|
$module = new $classname($db);
|
||||||
|
|
||||||
|
$modulequalified = 1;
|
||||||
|
if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) $modulequalified = 0;
|
||||||
|
if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) {
|
||||||
|
$modulequalified = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($modulequalified) {
|
||||||
|
print '<tr class="oddeven"><td width="100">';
|
||||||
|
print (empty($module->name) ? $name : $module->name);
|
||||||
|
print "</td><td>\n";
|
||||||
|
if (method_exists($module, 'info')) {
|
||||||
|
print $module->info($langs);
|
||||||
|
} else {
|
||||||
|
print $module->description;
|
||||||
|
}
|
||||||
|
print '</td>';
|
||||||
|
|
||||||
|
// Active
|
||||||
|
if (in_array($name, $def)) {
|
||||||
|
print '<td class="center">'."\n";
|
||||||
|
print '<a href="'.$_SERVER["PHP_SELF"].'?action=del_default&token='.newToken().'&value='.$name.'">';
|
||||||
|
print img_picto($langs->trans("Enabled"), 'switch_on');
|
||||||
|
print '</a>';
|
||||||
|
print '</td>';
|
||||||
|
} else {
|
||||||
|
print '<td class="center">'."\n";
|
||||||
|
print '<a href="'.$_SERVER["PHP_SELF"].'?action=set_default&token='.newToken().'&value='.$name.'&scandir='.$module->scandir.'&label='.urlencode($module->name).'">'.img_picto($langs->trans("Disabled"), 'switch_off').'</a>';
|
||||||
|
print "</td>";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Defaut
|
||||||
|
print '<td class="center">';
|
||||||
|
if ($conf->global->MEMBER_ADDON_PDF == $name) {
|
||||||
|
print img_picto($langs->trans("Default"), 'on');
|
||||||
|
} else {
|
||||||
|
print '<a href="'.$_SERVER["PHP_SELF"].'?action=setdoc&token='.newToken().'&value='.$name.'&scandir='.$module->scandir.'&label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"), 'off').'</a>';
|
||||||
|
}
|
||||||
|
print '</td>';
|
||||||
|
|
||||||
|
// Info
|
||||||
|
$htmltooltip = ''.$langs->trans("Name").': '.$module->name;
|
||||||
|
$htmltooltip .= '<br>'.$langs->trans("Type").': '.($module->type ? $module->type : $langs->trans("Unknown"));
|
||||||
|
if ($module->type == 'pdf') {
|
||||||
|
$htmltooltip .= '<br>'.$langs->trans("Width").'/'.$langs->trans("Height").': '.$module->page_largeur.'/'.$module->page_hauteur;
|
||||||
|
}
|
||||||
|
$htmltooltip .= '<br><br><u>'.$langs->trans("FeaturesSupported").':</u>';
|
||||||
|
$htmltooltip .= '<br>'.$langs->trans("Logo").': '.yn($module->option_logo, 1, 1);
|
||||||
|
$htmltooltip .= '<br>'.$langs->trans("MultiLanguage").': '.yn($module->option_multilang, 1, 1);
|
||||||
|
|
||||||
|
|
||||||
|
print '<td class="center">';
|
||||||
|
print $form->textwithpicto('', $htmltooltip, 1, 0);
|
||||||
|
print '</td>';
|
||||||
|
|
||||||
|
// Preview
|
||||||
|
print '<td class="center">';
|
||||||
|
if ($module->type == 'pdf')
|
||||||
|
{
|
||||||
|
print '<a href="'.$_SERVER["PHP_SELF"].'?action=specimen&module='.$name.'">'.img_object($langs->trans("Preview"), 'contract').'</a>';
|
||||||
|
} else {
|
||||||
|
print img_object($langs->trans("PreviewNotAvailable"), 'generic');
|
||||||
|
}
|
||||||
|
print '</td>';
|
||||||
|
|
||||||
|
print "</tr>\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
print '</table>';
|
||||||
|
print "<br>";
|
||||||
|
|
||||||
print dol_get_fiche_end();
|
print dol_get_fiche_end();
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
* Copyright (C) 2012 Marcos García <marcosgdf@gmail.com>
|
* Copyright (C) 2012 Marcos García <marcosgdf@gmail.com>
|
||||||
* Copyright (C) 2012-2020 Philippe Grand <philippe.grand@atoo-net.com>
|
* Copyright (C) 2012-2020 Philippe Grand <philippe.grand@atoo-net.com>
|
||||||
* Copyright (C) 2015-2018 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
* Copyright (C) 2015-2018 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
||||||
* Copyright (C) 2018 Frédéric France <frederic.france@netlogic.fr>
|
* Copyright (C) 2018-2020 Frédéric France <frederic.france@netlogic.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -1564,7 +1564,9 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) {
|
|||||||
$form->form_users($_SERVER['PHP_SELF'].'?rowid='.$object->id, $object->user_id, 'userid', '');
|
$form->form_users($_SERVER['PHP_SELF'].'?rowid='.$object->id, $object->user_id, 'userid', '');
|
||||||
} else {
|
} else {
|
||||||
if ($object->user_id) {
|
if ($object->user_id) {
|
||||||
$form->form_users($_SERVER['PHP_SELF'].'?rowid='.$object->id, $object->user_id, 'none');
|
$linkeduser = new User($db);
|
||||||
|
$linkeduser->fetch($object->user_id);
|
||||||
|
print $linkeduser->getNomUrl(-1);
|
||||||
} else {
|
} else {
|
||||||
print $langs->trans("NoDolibarrAccess");
|
print $langs->trans("NoDolibarrAccess");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -37,7 +37,8 @@ require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent_type.class.php';
|
|||||||
$langs->loadLangs(array("companies", "members", "other"));
|
$langs->loadLangs(array("companies", "members", "other"));
|
||||||
|
|
||||||
|
|
||||||
$id = GETPOST('id', 'int');
|
$id = GETPOSTISSET('id') ? GETPOST('id', 'int') : GETPOST('rowid', 'int');
|
||||||
|
$ref = GETPOST('ref', 'alphanohtml');
|
||||||
$action = GETPOST('action', 'aZ09');
|
$action = GETPOST('action', 'aZ09');
|
||||||
$confirm = GETPOST('confirm', 'alpha');
|
$confirm = GETPOST('confirm', 'alpha');
|
||||||
|
|
||||||
@ -60,7 +61,7 @@ if (!$sortfield) $sortfield = "name";
|
|||||||
$form = new Form($db);
|
$form = new Form($db);
|
||||||
$object = new Adherent($db);
|
$object = new Adherent($db);
|
||||||
$membert = new AdherentType($db);
|
$membert = new AdherentType($db);
|
||||||
$result = $object->fetch($id);
|
$result = $object->fetch($id, $ref);
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
dol_print_error($db);
|
dol_print_error($db);
|
||||||
exit;
|
exit;
|
||||||
|
|||||||
@ -252,7 +252,7 @@ class PrestaShopWebservice
|
|||||||
* Examples are given in the tutorial</p>
|
* Examples are given in the tutorial</p>
|
||||||
*
|
*
|
||||||
* @param array $options Options
|
* @param array $options Options
|
||||||
* @return SimpleXMLElement status_code, response
|
* @return SimpleXMLElement|boolean status_code, response
|
||||||
*
|
*
|
||||||
* @throw PrestaShopWebserviceException
|
* @throw PrestaShopWebserviceException
|
||||||
*/
|
*/
|
||||||
@ -379,7 +379,7 @@ class PrestaShopWebservice
|
|||||||
* Examples are given in the tutorial</p>
|
* Examples are given in the tutorial</p>
|
||||||
*
|
*
|
||||||
* @param array $options Array representing resource to edit.
|
* @param array $options Array representing resource to edit.
|
||||||
* @return SimpleXMLElement status_code, response
|
* @return SimpleXMLElement|boolean status_code, response
|
||||||
*
|
*
|
||||||
* @throw PrestaShopWebserviceException
|
* @throw PrestaShopWebserviceException
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -69,8 +69,7 @@ $extrafields->fetch_name_optionals_label($object->table_element);
|
|||||||
// Load object
|
// Load object
|
||||||
include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once // Must be include, not include_once. Include fetch and fetch_thirdparty but not fetch_optionals
|
include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once // Must be include, not include_once. Include fetch and fetch_thirdparty but not fetch_optionals
|
||||||
|
|
||||||
//if ($id > 0 || ! empty($ref)) $upload_dir = $conf->bom->multidir_output[$object->entity?$object->entity:1] . "/bom/" . dol_sanitizeFileName($object->id);
|
if ($id > 0 || !empty($ref)) $upload_dir = $conf->bom->multidir_output[$object->entity ? $object->entity : 1]."/bom/".get_exdir(0, 0, 0, 1, $object);
|
||||||
if ($id > 0 || !empty($ref)) $upload_dir = $conf->bom->multidir_output[$object->entity ? $object->entity : 1]."/bom/".dol_sanitizeFileName($object->ref);
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@ -153,7 +153,7 @@ if ($action == 'create')
|
|||||||
|
|
||||||
print '<table class="border centpercent tableforfieldcreate">';
|
print '<table class="border centpercent tableforfieldcreate">';
|
||||||
|
|
||||||
print '<tr><td class="titlefieldcreate fieldrequired">'.$langs->trans("BookmarkTitle").'</td><td><input id="titlebookmark" class="flat minwidth100" name="title" value="'.$title.'"></td><td class="hideonsmartphone">'.$langs->trans("SetHereATitleForLink").'</td></tr>';
|
print '<tr><td class="titlefieldcreate fieldrequired">'.$langs->trans("BookmarkTitle").'</td><td><input id="titlebookmark" class="flat minwidth300" name="title" value="'.dol_escape_htmltag($title).'"></td><td class="hideonsmartphone">'.$langs->trans("SetHereATitleForLink").'</td></tr>';
|
||||||
dol_set_focus('#titlebookmark');
|
dol_set_focus('#titlebookmark');
|
||||||
|
|
||||||
// Url
|
// Url
|
||||||
@ -167,12 +167,12 @@ if ($action == 'create')
|
|||||||
|
|
||||||
// Owner
|
// Owner
|
||||||
print '<tr><td>'.$langs->trans("Owner").'</td><td>';
|
print '<tr><td>'.$langs->trans("Owner").'</td><td>';
|
||||||
print img_picto('', 'user').' '.$form->select_dolusers(isset($_POST['userid']) ? $_POST['userid'] : $user->id, 'userid', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
|
print img_picto('', 'user').' '.$form->select_dolusers(GETPOSTISSET('userid') ? GETPOST('userid', 'int') : $user->id, 'userid', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
|
||||||
print '</td><td class="hideonsmartphone"> </td></tr>';
|
print '</td><td class="hideonsmartphone"> </td></tr>';
|
||||||
|
|
||||||
// Position
|
// Position
|
||||||
print '<tr><td>'.$langs->trans("Position").'</td><td>';
|
print '<tr><td>'.$langs->trans("Position").'</td><td>';
|
||||||
print '<input class="flat" name="position" size="5" value="'.(isset($_POST["position"]) ? $_POST["position"] : $object->position).'">';
|
print '<input class="flat" name="position" size="5" value="'.(GETPOSTISSET("position") ? GETPOST("position", 'int') : $object->position).'">';
|
||||||
print '</td><td class="hideonsmartphone"> </td></tr>';
|
print '</td><td class="hideonsmartphone"> </td></tr>';
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
@ -238,7 +238,7 @@ if ($id > 0 && !preg_match('/^add/i', $action))
|
|||||||
}
|
}
|
||||||
|
|
||||||
print '</td><td>';
|
print '</td><td>';
|
||||||
if ($action == 'edit') print '<input class="flat minwidth200" name="title" value="'.(isset($_POST["title"]) ?GETPOST("title", '', 2) : $object->title).'">';
|
if ($action == 'edit') print '<input class="flat minwidth300" name="title" value="'.(GETPOSTISSET("title") ? GETPOST("title", '', 2) : $object->title).'">';
|
||||||
else print $object->title;
|
else print $object->title;
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
@ -251,7 +251,7 @@ if ($id > 0 && !preg_match('/^add/i', $action))
|
|||||||
print '</span>';
|
print '</span>';
|
||||||
}
|
}
|
||||||
print '</td><td>';
|
print '</td><td>';
|
||||||
if ($action == 'edit') print '<input class="flat minwidth500" name="url" value="'.(isset($_POST["url"]) ? $_POST["url"] : $object->url).'">';
|
if ($action == 'edit') print '<input class="flat minwidth500 quatrevingtpercent" name="url" value="'.(GETPOSTISSET("url") ? GETPOST("url") : $object->url).'">';
|
||||||
else print '<a href="'.(preg_match('/^http/i', $object->url) ? $object->url : DOL_URL_ROOT.$object->url).'"'.($object->target ? ' target="_blank"' : '').'>'.$object->url.'</a>';
|
else print '<a href="'.(preg_match('/^http/i', $object->url) ? $object->url : DOL_URL_ROOT.$object->url).'"'.($object->target ? ' target="_blank"' : '').'>'.$object->url.'</a>';
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
@ -259,7 +259,7 @@ if ($id > 0 && !preg_match('/^add/i', $action))
|
|||||||
if ($action == 'edit')
|
if ($action == 'edit')
|
||||||
{
|
{
|
||||||
$liste = array(1=>$langs->trans("OpenANewWindow"), 0=>$langs->trans("ReplaceWindow"));
|
$liste = array(1=>$langs->trans("OpenANewWindow"), 0=>$langs->trans("ReplaceWindow"));
|
||||||
print $form->selectarray('target', $liste, isset($_POST["target"]) ? $_POST["target"] : $object->target);
|
print $form->selectarray('target', $liste, GETPOSTISSET("target") ? GETPOST("target") : $object->target);
|
||||||
} else {
|
} else {
|
||||||
if ($object->target == 0) print $langs->trans("ReplaceWindow");
|
if ($object->target == 0) print $langs->trans("ReplaceWindow");
|
||||||
if ($object->target == 1) print $langs->trans("OpenANewWindow");
|
if ($object->target == 1) print $langs->trans("OpenANewWindow");
|
||||||
@ -269,7 +269,7 @@ if ($id > 0 && !preg_match('/^add/i', $action))
|
|||||||
print '<tr><td>'.$langs->trans("Owner").'</td><td>';
|
print '<tr><td>'.$langs->trans("Owner").'</td><td>';
|
||||||
if ($action == 'edit' && $user->admin)
|
if ($action == 'edit' && $user->admin)
|
||||||
{
|
{
|
||||||
print img_picto('', 'user').' '.$form->select_dolusers(isset($_POST['userid']) ? $_POST['userid'] : ($object->fk_user ? $object->fk_user : ''), 'userid', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
|
print img_picto('', 'user').' '.$form->select_dolusers(GETPOSTISSET('userid') ? GETPOST('userid', 'int') : ($object->fk_user ? $object->fk_user : ''), 'userid', 1, '', 0, '', '', 0, 0, 0, '', 0, '', 'maxwidth300');
|
||||||
} else {
|
} else {
|
||||||
if ($object->fk_user > 0)
|
if ($object->fk_user > 0)
|
||||||
{
|
{
|
||||||
@ -284,7 +284,7 @@ if ($id > 0 && !preg_match('/^add/i', $action))
|
|||||||
|
|
||||||
// Position
|
// Position
|
||||||
print '<tr><td>'.$langs->trans("Position").'</td><td>';
|
print '<tr><td>'.$langs->trans("Position").'</td><td>';
|
||||||
if ($action == 'edit') print '<input class="flat" name="position" size="5" value="'.(isset($_POST["position"]) ? $_POST["position"] : $object->position).'">';
|
if ($action == 'edit') print '<input class="flat" name="position" size="5" value="'.(GETPOSTISSET("position") ? GETPOST("position", 'int') : $object->position).'">';
|
||||||
else print $object->position;
|
else print $object->position;
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2005-2012 Laurent Destailleur <eldy@users.sourceforge.net>
|
/* Copyright (C) 2005-2020 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -197,14 +197,14 @@ while ($i < min($num, $limit))
|
|||||||
// Title
|
// Title
|
||||||
print "<td>";
|
print "<td>";
|
||||||
$linkintern = 1;
|
$linkintern = 1;
|
||||||
if ($linkintern) print "<a href=\"".$obj->url."\">";
|
if ($linkintern) print '<a href="'.$obj->url.'">';
|
||||||
print $title;
|
print $title;
|
||||||
if ($linkintern) print "</a>";
|
if ($linkintern) print "</a>";
|
||||||
print "</td>\n";
|
print "</td>\n";
|
||||||
|
|
||||||
// Url
|
// Url
|
||||||
print '<td class="tdoverflowmax200">';
|
print '<td class="tdoverflowmax200">';
|
||||||
if (!$linkintern) print '<a href="'.$obj->url.'"'.($obj->target ? ' target="newlink"' : '').'>';
|
if (!$linkintern) print '<a href="'.$obj->url.'"'.($obj->target ? ' target="newlink" rel="noopener"' : '').'>';
|
||||||
print $link;
|
print $link;
|
||||||
if (!$linkintern) print '</a>';
|
if (!$linkintern) print '</a>';
|
||||||
print "</td>\n";
|
print "</td>\n";
|
||||||
@ -241,7 +241,7 @@ while ($i < min($num, $limit))
|
|||||||
print '<td class="nowrap right">';
|
print '<td class="nowrap right">';
|
||||||
if ($user->rights->bookmark->creer)
|
if ($user->rights->bookmark->creer)
|
||||||
{
|
{
|
||||||
print '<a class="editfielda" href="'.DOL_URL_ROOT."/bookmarks/card.php?action=edit&token='.newToken().'&id=".$obj->rowid."&backtopage=".urlencode($_SERVER["PHP_SELF"]).'">'.img_edit()."</a>";
|
print '<a class="editfielda" href="'.DOL_URL_ROOT.'/bookmarks/card.php?action=edit&token='.newToken().'&id='.$obj->rowid.'&backtopage='.urlencode($_SERVER["PHP_SELF"]).'">'.img_edit()."</a>";
|
||||||
}
|
}
|
||||||
if ($user->rights->bookmark->supprimer)
|
if ($user->rights->bookmark->supprimer)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -32,7 +32,7 @@ $conf_db_base = $dolibarr_main_db_name;
|
|||||||
$conf_fksoc = (!empty($_SESSION["CASHDESK_ID_THIRDPARTY"])) ? $_SESSION["CASHDESK_ID_THIRDPARTY"] : ($conf->global->CASHDESK_ID_THIRDPARTY > 0 ? $conf->global->CASHDESK_ID_THIRDPARTY : 0);
|
$conf_fksoc = (!empty($_SESSION["CASHDESK_ID_THIRDPARTY"])) ? $_SESSION["CASHDESK_ID_THIRDPARTY"] : ($conf->global->CASHDESK_ID_THIRDPARTY > 0 ? $conf->global->CASHDESK_ID_THIRDPARTY : 0);
|
||||||
// Identifiant unique correspondant a l'entrepot a utiliser
|
// Identifiant unique correspondant a l'entrepot a utiliser
|
||||||
$conf_fkentrepot = (!empty($_SESSION["CASHDESK_ID_WAREHOUSE"])) ? $_SESSION["CASHDESK_ID_WAREHOUSE"] : ($conf->global->CASHDESK_ID_WAREHOUSE > 0 ? $conf->global->CASHDESK_ID_WAREHOUSE : 0);
|
$conf_fkentrepot = (!empty($_SESSION["CASHDESK_ID_WAREHOUSE"])) ? $_SESSION["CASHDESK_ID_WAREHOUSE"] : ($conf->global->CASHDESK_ID_WAREHOUSE > 0 ? $conf->global->CASHDESK_ID_WAREHOUSE : 0);
|
||||||
if (!empty($conf->global->CASHDESK_NO_DECREASE_STOCK)) $conf_fkentrepot = 0; // If option to disable stock decrease is on, we set warehouse id to 0.
|
if (!empty($conf->global->CASHDESK_NO_DECREASE_STOCK)) $conf_fkentrepot = 0; // If option to disable the stock decrease is on, we set warehouse id to 0.
|
||||||
|
|
||||||
// Identifiant unique correspondant au compte caisse / liquide
|
// Identifiant unique correspondant au compte caisse / liquide
|
||||||
$conf_fkaccount_cash = (!empty($_SESSION["CASHDESK_ID_BANKACCOUNT_CASH"])) ? $_SESSION["CASHDESK_ID_BANKACCOUNT_CASH"] : ($conf->global->CASHDESK_ID_BANKACCOUNT_CASH > 0 ? $conf->global->CASHDESK_ID_BANKACCOUNT_CASH : 0);
|
$conf_fkaccount_cash = (!empty($_SESSION["CASHDESK_ID_BANKACCOUNT_CASH"])) ? $_SESSION["CASHDESK_ID_BANKACCOUNT_CASH"] : ($conf->global->CASHDESK_ID_BANKACCOUNT_CASH > 0 ? $conf->global->CASHDESK_ID_BANKACCOUNT_CASH : 0);
|
||||||
@ -46,6 +46,3 @@ $conf_fkaccount_cb = (!empty($_SESSION["CASHDESK_ID_BANKACCOUNT_CB"])) ? $_SESSI
|
|||||||
// View parameters
|
// View parameters
|
||||||
$conf_taille_listes = (empty($conf->global->PRODUIT_LIMIT_SIZE) ? 1000 : $conf->global->PRODUIT_LIMIT_SIZE); // Number max of lines to show in lists
|
$conf_taille_listes = (empty($conf->global->PRODUIT_LIMIT_SIZE) ? 1000 : $conf->global->PRODUIT_LIMIT_SIZE); // Number max of lines to show in lists
|
||||||
$conf_nbr_car_listes = 60; // Nombre max de caracteres par ligne dans les listes
|
$conf_nbr_car_listes = 60; // Nombre max de caracteres par ligne dans les listes
|
||||||
|
|
||||||
// Add hidden option to force decrease of stock whatever is user setup
|
|
||||||
if (!empty($conf->global->CASHDESK_FORCE_STOCK_ON_BILL)) $conf->global->STOCK_CALCULATE_ON_BILL = 1;
|
|
||||||
|
|||||||
@ -171,13 +171,14 @@ if (empty($reshook))
|
|||||||
GETPOST('date_deliveryday', 'int'),
|
GETPOST('date_deliveryday', 'int'),
|
||||||
GETPOST('date_deliveryyear', 'int')
|
GETPOST('date_deliveryyear', 'int')
|
||||||
);
|
);
|
||||||
if (!empty($object->date_livraison) && !empty($date_delivery))
|
$date_delivery_old = (empty($object->delivery_date) ? $object->date_livraison : $object->delivery_date);
|
||||||
|
if (!empty($date_delivery_old) && !empty($date_delivery))
|
||||||
{
|
{
|
||||||
//Attempt to get the date without possible hour rounding errors
|
//Attempt to get the date without possible hour rounding errors
|
||||||
$old_date_delivery = dol_mktime(12, 0, 0,
|
$old_date_delivery = dol_mktime(12, 0, 0,
|
||||||
dol_print_date($object->date_livraison, '%m'),
|
dol_print_date($date_delivery_old, '%m'),
|
||||||
dol_print_date($object->date_livraison, '%d'),
|
dol_print_date($date_delivery_old, '%d'),
|
||||||
dol_print_date($object->date_livraison, '%Y')
|
dol_print_date($date_delivery_old, '%Y')
|
||||||
);
|
);
|
||||||
//Calculate the difference and apply if necessary
|
//Calculate the difference and apply if necessary
|
||||||
$difference = $date_delivery - $old_date_delivery;
|
$difference = $date_delivery - $old_date_delivery;
|
||||||
@ -341,7 +342,9 @@ if (empty($reshook))
|
|||||||
if ($object->fetch(GETPOST('copie_propal', 'int')) > 0) {
|
if ($object->fetch(GETPOST('copie_propal', 'int')) > 0) {
|
||||||
$object->ref = GETPOST('ref');
|
$object->ref = GETPOST('ref');
|
||||||
$object->datep = $datep;
|
$object->datep = $datep;
|
||||||
$object->date_livraison = $date_delivery;
|
$object->date = $datep;
|
||||||
|
$object->date_livraison = $date_delivery; // deprecated
|
||||||
|
$object->delivery_date = $date_delivery;
|
||||||
$object->availability_id = GETPOST('availability_id');
|
$object->availability_id = GETPOST('availability_id');
|
||||||
$object->demand_reason_id = GETPOST('demand_reason_id');
|
$object->demand_reason_id = GETPOST('demand_reason_id');
|
||||||
$object->fk_delivery_address = GETPOST('fk_address', 'int');
|
$object->fk_delivery_address = GETPOST('fk_address', 'int');
|
||||||
@ -355,8 +358,9 @@ if (empty($reshook))
|
|||||||
$object->socid = GETPOST('socid', 'int');
|
$object->socid = GETPOST('socid', 'int');
|
||||||
$object->contact_id = GETPOST('contactid', 'int');
|
$object->contact_id = GETPOST('contactid', 'int');
|
||||||
$object->fk_project = GETPOST('projectid', 'int');
|
$object->fk_project = GETPOST('projectid', 'int');
|
||||||
$object->model_pdf = GETPOST('model');
|
$object->model_pdf = GETPOST('model', 'alphanohtml');
|
||||||
$object->author = $user->id; // deprecated
|
$object->author = $user->id; // deprecated
|
||||||
|
$object->user_author_id = $user->id;
|
||||||
$object->note_private = GETPOST('note_private', 'restricthtml');
|
$object->note_private = GETPOST('note_private', 'restricthtml');
|
||||||
$object->note_public = GETPOST('note_public', 'restricthtml');
|
$object->note_public = GETPOST('note_public', 'restricthtml');
|
||||||
$object->statut = Propal::STATUS_DRAFT;
|
$object->statut = Propal::STATUS_DRAFT;
|
||||||
@ -372,7 +376,9 @@ if (empty($reshook))
|
|||||||
$object->ref = GETPOST('ref');
|
$object->ref = GETPOST('ref');
|
||||||
$object->ref_client = GETPOST('ref_client');
|
$object->ref_client = GETPOST('ref_client');
|
||||||
$object->datep = $datep;
|
$object->datep = $datep;
|
||||||
|
$object->date = $datep;
|
||||||
$object->date_livraison = $date_delivery;
|
$object->date_livraison = $date_delivery;
|
||||||
|
$object->delivery_date = $date_delivery;
|
||||||
$object->availability_id = GETPOST('availability_id', 'int');
|
$object->availability_id = GETPOST('availability_id', 'int');
|
||||||
$object->demand_reason_id = GETPOST('demand_reason_id', 'int');
|
$object->demand_reason_id = GETPOST('demand_reason_id', 'int');
|
||||||
$object->fk_delivery_address = GETPOST('fk_address', 'int');
|
$object->fk_delivery_address = GETPOST('fk_address', 'int');
|
||||||
@ -1823,8 +1829,8 @@ if ($action == 'create')
|
|||||||
// array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), 'value' => 1),
|
// array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), 'value' => 1),
|
||||||
array('type' => 'other', 'name' => 'socid', 'label' => $langs->trans("SelectThirdParty"), 'value' => $form->select_company(GETPOST('socid', 'int'), 'socid', '(s.client=1 OR s.client=2 OR s.client=3)'))
|
array('type' => 'other', 'name' => 'socid', 'label' => $langs->trans("SelectThirdParty"), 'value' => $form->select_company(GETPOST('socid', 'int'), 'socid', '(s.client=1 OR s.client=2 OR s.client=3)'))
|
||||||
);
|
);
|
||||||
if (!empty($conf->global->PROPAL_CLONE_DATE_DELIVERY) && !empty($object->date_livraison)) {
|
if (!empty($conf->global->PROPAL_CLONE_DATE_DELIVERY) && !empty($object->delivery_date)) {
|
||||||
$formquestion[] = array('type' => 'date', 'name' => 'date_delivery', 'label' => $langs->trans("DeliveryDate"), 'value' => $object->date_livraison);
|
$formquestion[] = array('type' => 'date', 'name' => 'date_delivery', 'label' => $langs->trans("DeliveryDate"), 'value' => $object->delivery_date);
|
||||||
}
|
}
|
||||||
// Incomplete payment. We ask if reason = discount or other
|
// Incomplete payment. We ask if reason = discount or other
|
||||||
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ToClone'), $langs->trans('ConfirmClonePropal', $object->ref), 'confirm_clone', $formquestion, 'yes', 1);
|
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ToClone'), $langs->trans('ConfirmClonePropal', $object->ref), 'confirm_clone', $formquestion, 'yes', 1);
|
||||||
@ -2048,9 +2054,9 @@ if ($action == 'create')
|
|||||||
// Delivery date
|
// Delivery date
|
||||||
$langs->load('deliveries');
|
$langs->load('deliveries');
|
||||||
print '<tr><td>';
|
print '<tr><td>';
|
||||||
print $form->editfieldkey($langs->trans('DeliveryDate'), 'date_livraison', $object->date_livraison, $object, $usercancreate, 'datepicker');
|
print $form->editfieldkey($langs->trans('DeliveryDate'), 'date_livraison', $object->delivery_date, $object, $usercancreate, 'datepicker');
|
||||||
print '</td><td>';
|
print '</td><td>';
|
||||||
print $form->editfieldval($langs->trans('DeliveryDate'), 'date_livraison', $object->date_livraison, $object, $usercancreate, 'datepicker');
|
print $form->editfieldval($langs->trans('DeliveryDate'), 'date_livraison', $object->delivery_date, $object, $usercancreate, 'datepicker');
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
||||||
|
|||||||
@ -991,6 +991,9 @@ class Propal extends CommonObject
|
|||||||
$this->multicurrency_tx = 1;
|
$this->multicurrency_tx = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Set tmp vars
|
||||||
|
$delivery_date = empty($this->delivery_date) ? $this->date_livraison : $this->delivery_date;
|
||||||
|
|
||||||
dol_syslog(get_class($this)."::create");
|
dol_syslog(get_class($this)."::create");
|
||||||
|
|
||||||
// Check parameters
|
// Check parameters
|
||||||
@ -1078,7 +1081,7 @@ class Propal extends CommonObject
|
|||||||
$sql .= ", ".($this->mode_reglement_id > 0 ? $this->mode_reglement_id : 'NULL');
|
$sql .= ", ".($this->mode_reglement_id > 0 ? $this->mode_reglement_id : 'NULL');
|
||||||
$sql .= ", ".($this->fk_account > 0 ? $this->fk_account : 'NULL');
|
$sql .= ", ".($this->fk_account > 0 ? $this->fk_account : 'NULL');
|
||||||
$sql .= ", '".$this->db->escape($this->ref_client)."'";
|
$sql .= ", '".$this->db->escape($this->ref_client)."'";
|
||||||
$sql .= ", ".($this->date_livraison != '' ? "'".$this->db->idate($this->date_livraison)."'" : "NULL");
|
$sql .= ", ".(empty($delivery_date) ? "NULL" : "'".$this->db->idate($delivery_date)."'");
|
||||||
$sql .= ", ".($this->shipping_method_id > 0 ? $this->shipping_method_id : 'NULL');
|
$sql .= ", ".($this->shipping_method_id > 0 ? $this->shipping_method_id : 'NULL');
|
||||||
$sql .= ", ".$this->availability_id;
|
$sql .= ", ".$this->availability_id;
|
||||||
$sql .= ", ".$this->demand_reason_id;
|
$sql .= ", ".$this->demand_reason_id;
|
||||||
@ -1441,7 +1444,7 @@ class Propal extends CommonObject
|
|||||||
$sql .= ", p.date_valid as datev";
|
$sql .= ", p.date_valid as datev";
|
||||||
$sql .= ", p.datep as dp";
|
$sql .= ", p.datep as dp";
|
||||||
$sql .= ", p.fin_validite as dfv";
|
$sql .= ", p.fin_validite as dfv";
|
||||||
$sql .= ", p.date_livraison as date_livraison";
|
$sql .= ", p.date_livraison as delivery_date";
|
||||||
$sql .= ", p.model_pdf, p.last_main_doc, p.ref_client, p.extraparams";
|
$sql .= ", p.model_pdf, p.last_main_doc, p.ref_client, p.extraparams";
|
||||||
$sql .= ", p.note_private, p.note_public";
|
$sql .= ", p.note_private, p.note_public";
|
||||||
$sql .= ", p.fk_projet as fk_project, p.fk_statut";
|
$sql .= ", p.fk_projet as fk_project, p.fk_statut";
|
||||||
@ -1523,8 +1526,8 @@ class Propal extends CommonObject
|
|||||||
$this->date = $this->db->jdate($obj->dp); // Proposal date
|
$this->date = $this->db->jdate($obj->dp); // Proposal date
|
||||||
$this->datep = $this->db->jdate($obj->dp); // deprecated
|
$this->datep = $this->db->jdate($obj->dp); // deprecated
|
||||||
$this->fin_validite = $this->db->jdate($obj->dfv);
|
$this->fin_validite = $this->db->jdate($obj->dfv);
|
||||||
$this->date_livraison = $this->db->jdate($obj->date_livraison);
|
$this->date_livraison = $this->db->jdate($obj->delivery_date); // deprecated
|
||||||
$this->delivery_date = $this->db->jdate($obj->date_livraison);
|
$this->delivery_date = $this->db->jdate($obj->delivery_date);
|
||||||
$this->shipping_method_id = ($obj->fk_shipping_method > 0) ? $obj->fk_shipping_method : null;
|
$this->shipping_method_id = ($obj->fk_shipping_method > 0) ? $obj->fk_shipping_method : null;
|
||||||
$this->availability_id = $obj->fk_availability;
|
$this->availability_id = $obj->fk_availability;
|
||||||
$this->availability_code = $obj->availability_code;
|
$this->availability_code = $obj->availability_code;
|
||||||
@ -2111,7 +2114,7 @@ class Propal extends CommonObject
|
|||||||
{
|
{
|
||||||
$this->oldcopy = clone $this;
|
$this->oldcopy = clone $this;
|
||||||
$this->date_livraison = $delivery_date;
|
$this->date_livraison = $delivery_date;
|
||||||
$this->date_delivery = $delivery_date;
|
$this->delivery_date = $delivery_date;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$notrigger && empty($error))
|
if (!$notrigger && empty($error))
|
||||||
@ -3574,16 +3577,24 @@ class Propal extends CommonObject
|
|||||||
if (isset($this->statut)) {
|
if (isset($this->statut)) {
|
||||||
$label .= ' '.$this->getLibStatut(5);
|
$label .= ' '.$this->getLibStatut(5);
|
||||||
}
|
}
|
||||||
if (!empty($this->ref))
|
if (!empty($this->ref)) {
|
||||||
$label .= '<br><b>'.$langs->trans('Ref').':</b> '.$this->ref;
|
$label .= '<br><b>'.$langs->trans('Ref').':</b> '.$this->ref;
|
||||||
if (!empty($this->ref_client))
|
}
|
||||||
|
if (!empty($this->ref_client)) {
|
||||||
$label .= '<br><b>'.$langs->trans('RefCustomer').':</b> '.$this->ref_client;
|
$label .= '<br><b>'.$langs->trans('RefCustomer').':</b> '.$this->ref_client;
|
||||||
if (!empty($this->total_ht))
|
}
|
||||||
|
if (!empty($this->total_ht)) {
|
||||||
$label .= '<br><b>'.$langs->trans('AmountHT').':</b> '.price($this->total_ht, 0, $langs, 0, -1, -1, $conf->currency);
|
$label .= '<br><b>'.$langs->trans('AmountHT').':</b> '.price($this->total_ht, 0, $langs, 0, -1, -1, $conf->currency);
|
||||||
if (!empty($this->total_tva))
|
}
|
||||||
|
if (!empty($this->total_tva)) {
|
||||||
$label .= '<br><b>'.$langs->trans('VAT').':</b> '.price($this->total_tva, 0, $langs, 0, -1, -1, $conf->currency);
|
$label .= '<br><b>'.$langs->trans('VAT').':</b> '.price($this->total_tva, 0, $langs, 0, -1, -1, $conf->currency);
|
||||||
if (!empty($this->total_ttc))
|
}
|
||||||
|
if (!empty($this->total_ttc)) {
|
||||||
$label .= '<br><b>'.$langs->trans('AmountTTC').':</b> '.price($this->total_ttc, 0, $langs, 0, -1, -1, $conf->currency);
|
$label .= '<br><b>'.$langs->trans('AmountTTC').':</b> '.price($this->total_ttc, 0, $langs, 0, -1, -1, $conf->currency);
|
||||||
|
}
|
||||||
|
if (!empty($this->delivery_date)) {
|
||||||
|
$label .= '<br><b>'.$langs->trans('DeliveryDate').':</b> '.dol_print_date($this->delivery_date, 'dayhour');
|
||||||
|
}
|
||||||
|
|
||||||
if ($option == '') {
|
if ($option == '') {
|
||||||
$url = DOL_URL_ROOT.'/comm/propal/card.php?id='.$this->id.$get_params;
|
$url = DOL_URL_ROOT.'/comm/propal/card.php?id='.$this->id.$get_params;
|
||||||
|
|||||||
@ -120,6 +120,8 @@ if (!empty($conf->expedition->enabled) && !empty($conf->global->WAREHOUSE_ASK_WA
|
|||||||
|
|
||||||
$error = 0;
|
$error = 0;
|
||||||
|
|
||||||
|
$date_delivery = dol_mktime(GETPOST('liv_hour', 'int'), GETPOST('liv_min', 'int'), 0, GETPOST('liv_month', 'int'), GETPOST('liv_day', 'int'), GETPOST('liv_year', 'int'));
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Actions
|
* Actions
|
||||||
@ -274,7 +276,7 @@ if (empty($reshook))
|
|||||||
$object->fk_account = GETPOST('fk_account', 'int');
|
$object->fk_account = GETPOST('fk_account', 'int');
|
||||||
$object->availability_id = GETPOST('availability_id');
|
$object->availability_id = GETPOST('availability_id');
|
||||||
$object->demand_reason_id = GETPOST('demand_reason_id');
|
$object->demand_reason_id = GETPOST('demand_reason_id');
|
||||||
$object->date_livraison = $datelivraison;
|
$object->date_livraison = $datelivraison; // deprecated
|
||||||
$object->delivery_date = $datelivraison;
|
$object->delivery_date = $datelivraison;
|
||||||
$object->shipping_method_id = GETPOST('shipping_method_id', 'int');
|
$object->shipping_method_id = GETPOST('shipping_method_id', 'int');
|
||||||
$object->warehouse_id = GETPOST('warehouse_id', 'int');
|
$object->warehouse_id = GETPOST('warehouse_id', 'int');
|
||||||
@ -539,10 +541,10 @@ if (empty($reshook))
|
|||||||
}
|
}
|
||||||
} elseif ($action == 'setdate_livraison' && $usercancreate) {
|
} elseif ($action == 'setdate_livraison' && $usercancreate) {
|
||||||
// print "x ".$_POST['liv_month'].", ".$_POST['liv_day'].", ".$_POST['liv_year'];
|
// print "x ".$_POST['liv_month'].", ".$_POST['liv_day'].", ".$_POST['liv_year'];
|
||||||
$datedelivery = dol_mktime(GETPOST('liv_hour', 'int'), GETPOST('liv_min', 'int'), 0, GETPOST('liv_month', 'int'), GETPOST('liv_day', 'int'), GETPOST('liv_year', 'int'));
|
$date_delivery = dol_mktime(GETPOST('liv_hour', 'int'), GETPOST('liv_min', 'int'), 0, GETPOST('liv_month', 'int'), GETPOST('liv_day', 'int'), GETPOST('liv_year', 'int'));
|
||||||
|
|
||||||
$object->fetch($id);
|
$object->fetch($id);
|
||||||
$result = $object->setDeliveryDate($user, $datedelivery);
|
$result = $object->setDeliveryDate($user, $date_delivery);
|
||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
setEventMessages($object->error, $object->errors, 'errors');
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
}
|
}
|
||||||
@ -1507,7 +1509,8 @@ if ($action == 'create' && $usercancreate)
|
|||||||
$remise_absolue = (!empty($objectsrc->remise_absolue) ? $objectsrc->remise_absolue : (!empty($soc->remise_absolue) ? $soc->remise_absolue : 0));
|
$remise_absolue = (!empty($objectsrc->remise_absolue) ? $objectsrc->remise_absolue : (!empty($soc->remise_absolue) ? $soc->remise_absolue : 0));
|
||||||
$dateorder = empty($conf->global->MAIN_AUTOFILL_DATE_ORDER) ?-1 : '';
|
$dateorder = empty($conf->global->MAIN_AUTOFILL_DATE_ORDER) ?-1 : '';
|
||||||
|
|
||||||
$datedelivery = (!empty($objectsrc->date_livraison) ? $objectsrc->date_livraison : '');
|
$date_delivery = (!empty($objectsrc->delivery_date) ? $objectsrc->delivery_date : '');
|
||||||
|
if (empty($date_delivery)) $date_delivery = (!empty($objectsrc->date_livraison) ? $objectsrc->date_livraison : '');
|
||||||
|
|
||||||
if (!empty($conf->multicurrency->enabled))
|
if (!empty($conf->multicurrency->enabled))
|
||||||
{
|
{
|
||||||
@ -1620,8 +1623,7 @@ if ($action == 'create' && $usercancreate)
|
|||||||
// Date delivery planned
|
// Date delivery planned
|
||||||
print '<tr><td>'.$langs->trans("DateDeliveryPlanned").'</td>';
|
print '<tr><td>'.$langs->trans("DateDeliveryPlanned").'</td>';
|
||||||
print '<td colspan="3">';
|
print '<td colspan="3">';
|
||||||
//print dol_print_date($object->date_livraison, "day"); // date_livraison come from order and will be stored into date_delivery planed.
|
$date_delivery = ($date_delivery ? $date_delivery : $object->date_delivery);
|
||||||
$date_delivery = ($date_delivery ? $date_delivery : $object->date_livraison); // $date_delivery comes from GETPOST
|
|
||||||
print $form->selectDate($date_delivery ? $date_delivery : -1, 'date_delivery', 1, 1, 1);
|
print $form->selectDate($date_delivery ? $date_delivery : -1, 'date_delivery', 1, 1, 1);
|
||||||
print "</td>\n";
|
print "</td>\n";
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
@ -2138,12 +2140,12 @@ if ($action == 'create' && $usercancreate)
|
|||||||
print '<form name="setdate_livraison" action="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'" method="post">';
|
print '<form name="setdate_livraison" action="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'" method="post">';
|
||||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||||
print '<input type="hidden" name="action" value="setdate_livraison">';
|
print '<input type="hidden" name="action" value="setdate_livraison">';
|
||||||
print $form->selectDate($object->date_livraison ? $object->date_livraison : -1, 'liv_', 1, 1, '', "setdate_livraison", 1, 0);
|
print $form->selectDate($object->delivery_date ? $object->delivery_date : -1, 'liv_', 1, 1, '', "setdate_livraison", 1, 0);
|
||||||
print '<input type="submit" class="button" value="'.$langs->trans('Modify').'">';
|
print '<input type="submit" class="button" value="'.$langs->trans('Modify').'">';
|
||||||
print '</form>';
|
print '</form>';
|
||||||
} else {
|
} else {
|
||||||
print $object->date_livraison ? dol_print_date($object->date_livraison, 'dayhour') : ' ';
|
print $object->delivery_date ? dol_print_date($object->delivery_date, 'dayhour') : ' ';
|
||||||
if ($object->hasDelay() && !empty($object->date_livraison)) {
|
if ($object->hasDelay() && !empty($object->delivery_date)) {
|
||||||
print ' '.img_picto($langs->trans("Late").' : '.$object->showDelay(), "warning");
|
print ' '.img_picto($langs->trans("Late").' : '.$object->showDelay(), "warning");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -886,8 +886,9 @@ class Commande extends CommonOrder
|
|||||||
// Clean parameters
|
// Clean parameters
|
||||||
$this->brouillon = 1; // set command as draft
|
$this->brouillon = 1; // set command as draft
|
||||||
|
|
||||||
// $date_commande is deprecated
|
// Set tmp vars
|
||||||
$date = ($this->date_commande ? $this->date_commande : $this->date);
|
$date = ($this->date_commande ? $this->date_commande : $this->date);
|
||||||
|
$delivery_date = empty($this->delivery_date) ? $this->date_livraison : $this->delivery_date;
|
||||||
|
|
||||||
// Multicurrency (test on $this->multicurrency_tx because we should take the default rate only if not using origin rate)
|
// Multicurrency (test on $this->multicurrency_tx because we should take the default rate only if not using origin rate)
|
||||||
if (!empty($this->multicurrency_code) && empty($this->multicurrency_tx)) list($this->fk_multicurrency, $this->multicurrency_tx) = MultiCurrency::getIdAndTxFromCode($this->db, $this->multicurrency_code, $date);
|
if (!empty($this->multicurrency_code) && empty($this->multicurrency_tx)) list($this->fk_multicurrency, $this->multicurrency_tx) = MultiCurrency::getIdAndTxFromCode($this->db, $this->multicurrency_code, $date);
|
||||||
@ -960,7 +961,7 @@ class Commande extends CommonOrder
|
|||||||
$sql .= ", ".($this->fk_account > 0 ? $this->fk_account : 'NULL');
|
$sql .= ", ".($this->fk_account > 0 ? $this->fk_account : 'NULL');
|
||||||
$sql .= ", ".($this->availability_id > 0 ? $this->availability_id : "null");
|
$sql .= ", ".($this->availability_id > 0 ? $this->availability_id : "null");
|
||||||
$sql .= ", ".($this->demand_reason_id > 0 ? $this->demand_reason_id : "null");
|
$sql .= ", ".($this->demand_reason_id > 0 ? $this->demand_reason_id : "null");
|
||||||
$sql .= ", ".($this->date_livraison ? "'".$this->db->idate($this->date_livraison)."'" : "null");
|
$sql .= ", ".($delivery_date ? "'".$this->db->idate($delivery_date)."'" : "null");
|
||||||
$sql .= ", ".($this->fk_delivery_address > 0 ? $this->fk_delivery_address : 'NULL');
|
$sql .= ", ".($this->fk_delivery_address > 0 ? $this->fk_delivery_address : 'NULL');
|
||||||
$sql .= ", ".($this->shipping_method_id > 0 ? $this->shipping_method_id : 'NULL');
|
$sql .= ", ".($this->shipping_method_id > 0 ? $this->shipping_method_id : 'NULL');
|
||||||
$sql .= ", ".($this->warehouse_id > 0 ? $this->warehouse_id : 'NULL');
|
$sql .= ", ".($this->warehouse_id > 0 ? $this->warehouse_id : 'NULL');
|
||||||
@ -1359,7 +1360,7 @@ class Commande extends CommonOrder
|
|||||||
$this->fk_account = $object->fk_account;
|
$this->fk_account = $object->fk_account;
|
||||||
$this->availability_id = $object->availability_id;
|
$this->availability_id = $object->availability_id;
|
||||||
$this->demand_reason_id = $object->demand_reason_id;
|
$this->demand_reason_id = $object->demand_reason_id;
|
||||||
$this->date_livraison = $object->date_livraison;
|
$this->date_livraison = $object->date_livraison; // deprecated
|
||||||
$this->delivery_date = $object->date_livraison;
|
$this->delivery_date = $object->date_livraison;
|
||||||
$this->shipping_method_id = $object->shipping_method_id;
|
$this->shipping_method_id = $object->shipping_method_id;
|
||||||
$this->warehouse_id = $object->warehouse_id;
|
$this->warehouse_id = $object->warehouse_id;
|
||||||
@ -1784,7 +1785,7 @@ class Commande extends CommonOrder
|
|||||||
$sql .= ', c.amount_ht, c.total_ht, c.total_ttc, c.tva as total_tva, c.localtax1 as total_localtax1, c.localtax2 as total_localtax2, c.fk_cond_reglement, c.fk_mode_reglement, c.fk_availability, c.fk_input_reason';
|
$sql .= ', c.amount_ht, c.total_ht, c.total_ttc, c.tva as total_tva, c.localtax1 as total_localtax1, c.localtax2 as total_localtax2, c.fk_cond_reglement, c.fk_mode_reglement, c.fk_availability, c.fk_input_reason';
|
||||||
$sql .= ', c.fk_account';
|
$sql .= ', c.fk_account';
|
||||||
$sql .= ', c.date_commande, c.date_valid, c.tms';
|
$sql .= ', c.date_commande, c.date_valid, c.tms';
|
||||||
$sql .= ', c.date_livraison';
|
$sql .= ', c.date_livraison as delivery_date';
|
||||||
$sql .= ', c.fk_shipping_method';
|
$sql .= ', c.fk_shipping_method';
|
||||||
$sql .= ', c.fk_warehouse';
|
$sql .= ', c.fk_warehouse';
|
||||||
$sql .= ', c.fk_projet as fk_project, c.remise_percent, c.remise, c.remise_absolue, c.source, c.facture as billed';
|
$sql .= ', c.fk_projet as fk_project, c.remise_percent, c.remise, c.remise_absolue, c.source, c.facture as billed';
|
||||||
@ -1870,8 +1871,8 @@ class Commande extends CommonOrder
|
|||||||
$this->availability = $obj->availability_label;
|
$this->availability = $obj->availability_label;
|
||||||
$this->demand_reason_id = $obj->fk_input_reason;
|
$this->demand_reason_id = $obj->fk_input_reason;
|
||||||
$this->demand_reason_code = $obj->demand_reason_code;
|
$this->demand_reason_code = $obj->demand_reason_code;
|
||||||
$this->date_livraison = $this->db->jdate($obj->date_livraison);
|
$this->date_livraison = $this->db->jdate($obj->delivery_date); // deprecated
|
||||||
$this->delivery_date = $this->db->jdate($obj->date_livraison);
|
$this->delivery_date = $this->db->jdate($obj->delivery_date);
|
||||||
$this->shipping_method_id = ($obj->fk_shipping_method > 0) ? $obj->fk_shipping_method : null;
|
$this->shipping_method_id = ($obj->fk_shipping_method > 0) ? $obj->fk_shipping_method : null;
|
||||||
$this->warehouse_id = ($obj->fk_warehouse > 0) ? $obj->fk_warehouse : null;
|
$this->warehouse_id = ($obj->fk_warehouse > 0) ? $obj->fk_warehouse : null;
|
||||||
$this->fk_delivery_address = $obj->fk_delivery_address;
|
$this->fk_delivery_address = $obj->fk_delivery_address;
|
||||||
@ -2013,7 +2014,7 @@ class Commande extends CommonOrder
|
|||||||
$sql .= ' l.total_ht, l.total_ttc, l.total_tva, l.total_localtax1, l.total_localtax2, l.date_start, l.date_end,';
|
$sql .= ' l.total_ht, l.total_ttc, l.total_tva, l.total_localtax1, l.total_localtax2, l.date_start, l.date_end,';
|
||||||
$sql .= ' l.fk_unit,';
|
$sql .= ' l.fk_unit,';
|
||||||
$sql .= ' l.fk_multicurrency, l.multicurrency_code, l.multicurrency_subprice, l.multicurrency_total_ht, l.multicurrency_total_tva, l.multicurrency_total_ttc,';
|
$sql .= ' l.fk_multicurrency, l.multicurrency_code, l.multicurrency_subprice, l.multicurrency_total_ht, l.multicurrency_total_tva, l.multicurrency_total_ttc,';
|
||||||
$sql .= ' p.ref as product_ref, p.description as product_desc, p.fk_product_type, p.label as product_label, p.tobatch as product_tobatch,';
|
$sql .= ' p.ref as product_ref, p.description as product_desc, p.fk_product_type, p.label as product_label, p.tosell as product_tosell, p.tobuy as product_tobuy, p.tobatch as product_tobatch,';
|
||||||
$sql .= ' p.weight, p.weight_units, p.volume, p.volume_units';
|
$sql .= ' p.weight, p.weight_units, p.volume, p.volume_units';
|
||||||
$sql .= ' FROM '.MAIN_DB_PREFIX.'commandedet as l';
|
$sql .= ' FROM '.MAIN_DB_PREFIX.'commandedet as l';
|
||||||
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON (p.rowid = l.fk_product)';
|
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON (p.rowid = l.fk_product)';
|
||||||
@ -2076,6 +2077,8 @@ class Commande extends CommonOrder
|
|||||||
$line->libelle = $objp->product_label;
|
$line->libelle = $objp->product_label;
|
||||||
$line->product_label = $objp->product_label;
|
$line->product_label = $objp->product_label;
|
||||||
$line->product_desc = $objp->product_desc;
|
$line->product_desc = $objp->product_desc;
|
||||||
|
$line->product_tosell = $objp->product_tosell;
|
||||||
|
$line->product_tobuy = $objp->product_tobuy;
|
||||||
$line->product_tobatch = $objp->product_tobatch;
|
$line->product_tobatch = $objp->product_tobatch;
|
||||||
$line->fk_product_type = $objp->fk_product_type; // Produit ou service
|
$line->fk_product_type = $objp->fk_product_type; // Produit ou service
|
||||||
$line->fk_unit = $objp->fk_unit;
|
$line->fk_unit = $objp->fk_unit;
|
||||||
@ -3660,6 +3663,9 @@ class Commande extends CommonOrder
|
|||||||
if (!empty($this->total_ttc)) {
|
if (!empty($this->total_ttc)) {
|
||||||
$label .= '<br><b>'.$langs->trans('AmountTTC').':</b> '.price($this->total_ttc, 0, $langs, 0, -1, -1, $conf->currency);
|
$label .= '<br><b>'.$langs->trans('AmountTTC').':</b> '.price($this->total_ttc, 0, $langs, 0, -1, -1, $conf->currency);
|
||||||
}
|
}
|
||||||
|
if (!empty($this->delivery_date)) {
|
||||||
|
$label .= '<br><b>'.$langs->trans('DeliveryDate').':</b> '.dol_print_date($this->delivery_date, 'dayhour');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$linkclose = '';
|
$linkclose = '';
|
||||||
|
|||||||
@ -931,7 +931,7 @@ if ($resql)
|
|||||||
$generic_commande->statut = $obj->fk_statut;
|
$generic_commande->statut = $obj->fk_statut;
|
||||||
$generic_commande->billed = $obj->billed;
|
$generic_commande->billed = $obj->billed;
|
||||||
$generic_commande->date = $db->jdate($obj->date_commande);
|
$generic_commande->date = $db->jdate($obj->date_commande);
|
||||||
$generic_commande->date_livraison = $db->jdate($obj->date_delivery);
|
$generic_commande->date_livraison = $db->jdate($obj->date_delivery); // deprecated
|
||||||
$generic_commande->delivery_date = $db->jdate($obj->date_delivery);
|
$generic_commande->delivery_date = $db->jdate($obj->date_delivery);
|
||||||
$generic_commande->ref_client = $obj->ref_client;
|
$generic_commande->ref_client = $obj->ref_client;
|
||||||
$generic_commande->total_ht = $obj->total_ht;
|
$generic_commande->total_ht = $obj->total_ht;
|
||||||
|
|||||||
@ -1093,7 +1093,7 @@ if ($resql)
|
|||||||
}
|
}
|
||||||
|
|
||||||
print '<td class="center">';
|
print '<td class="center">';
|
||||||
print '<input type="checkbox" id="selectAll" />';
|
print '<input type="checkbox" id="selectAll" title="'.dol_escape_htmltag($langs->trans("SelectAll")).'" />';
|
||||||
print ' <script type="text/javascript">
|
print ' <script type="text/javascript">
|
||||||
$("input#selectAll").change(function() {
|
$("input#selectAll").change(function() {
|
||||||
$("input[type=checkbox][name^=rowid]").prop("checked", $(this).is(":checked"));
|
$("input[type=checkbox][name^=rowid]").prop("checked", $(this).is(":checked"));
|
||||||
|
|||||||
@ -92,14 +92,14 @@ $fieldstosearchall = array(
|
|||||||
|
|
||||||
$checkedtypetiers = 0;
|
$checkedtypetiers = 0;
|
||||||
$arrayfields = array(
|
$arrayfields = array(
|
||||||
'b.ref'=>array('label'=>$langs->trans("BankAccounts"), 'checked'=>1),
|
'b.ref'=>array('label'=>$langs->trans("BankAccounts"), 'checked'=>1, 'position'=>10),
|
||||||
'accountype'=>array('label'=>$langs->trans("Type"), 'checked'=>1),
|
'b.label'=>array('label'=>$langs->trans("Label"), 'checked'=>1, 'position'=>12),
|
||||||
'b.label'=>array('label'=>$langs->trans("Label"), 'checked'=>1),
|
'accountype'=>array('label'=>$langs->trans("Type"), 'checked'=>1, 'position'=>14),
|
||||||
'b.number'=>array('label'=>$langs->trans("AccountIdShort"), 'checked'=>1),
|
'b.number'=>array('label'=>$langs->trans("AccountIdShort"), 'checked'=>1, 'position'=>16),
|
||||||
'b.account_number'=>array('label'=>$langs->trans("AccountAccounting"), 'checked'=>(!empty($conf->accounting->enabled) || !empty($conf->accounting->enabled))),
|
'b.account_number'=>array('label'=>$langs->trans("AccountAccounting"), 'checked'=>(!empty($conf->accounting->enabled) || !empty($conf->accounting->enabled)), 'position'=>18),
|
||||||
'b.fk_accountancy_journal'=>array('label'=>$langs->trans("AccountancyJournal"), 'checked'=>(!empty($conf->accounting->enabled) || !empty($conf->accounting->enabled))),
|
'b.fk_accountancy_journal'=>array('label'=>$langs->trans("AccountancyJournal"), 'checked'=>(!empty($conf->accounting->enabled) || !empty($conf->accounting->enabled)), 'position'=>20),
|
||||||
'toreconcile'=>array('label'=>$langs->trans("TransactionsToConciliate"), 'checked'=>1),
|
'toreconcile'=>array('label'=>$langs->trans("TransactionsToConciliate"), 'checked'=>1, 'position'=>50),
|
||||||
'b.currency_code'=>array('label'=>$langs->trans("Currency"), 'checked'=>0),
|
'b.currency_code'=>array('label'=>$langs->trans("Currency"), 'checked'=>0, 'position'=>22),
|
||||||
'b.datec'=>array('label'=>$langs->trans("DateCreation"), 'checked'=>0, 'position'=>500),
|
'b.datec'=>array('label'=>$langs->trans("DateCreation"), 'checked'=>0, 'position'=>500),
|
||||||
'b.tms'=>array('label'=>$langs->trans("DateModificationShort"), 'checked'=>0, 'position'=>500),
|
'b.tms'=>array('label'=>$langs->trans("DateModificationShort"), 'checked'=>0, 'position'=>500),
|
||||||
'b.clos'=>array('label'=>$langs->trans("Status"), 'checked'=>1, 'position'=>1000),
|
'b.clos'=>array('label'=>$langs->trans("Status"), 'checked'=>1, 'position'=>1000),
|
||||||
@ -525,7 +525,7 @@ foreach ($accounts as $key=>$type)
|
|||||||
if ($result < 0) {
|
if ($result < 0) {
|
||||||
setEventMessages($objecttmp->error, $objecttmp->errors, 'errors');
|
setEventMessages($objecttmp->error, $objecttmp->errors, 'errors');
|
||||||
} else {
|
} else {
|
||||||
print '<a href="'.DOL_URL_ROOT.'/compta/bank/bankentries_list.php?id='.$objecttmp->id.'&search_conciliated=0">';
|
print '<a href="'.DOL_URL_ROOT.'/compta/bank/bankentries_list.php?action=reconcile&sortfield=b.datev,b.dateo,b.rowid&sortorder=asc,asc,asc&id='.$objecttmp->id.'&search_account='.$objecttmp->id.'&search_conciliated=0&contextpage=banktransactionlist">';
|
||||||
print '<span class="badge badge-info classfortooltip" title="'.dol_htmlentities($langs->trans("TransactionsToConciliate")).'">';
|
print '<span class="badge badge-info classfortooltip" title="'.dol_htmlentities($langs->trans("TransactionsToConciliate")).'">';
|
||||||
print $result->nbtodo;
|
print $result->nbtodo;
|
||||||
print '</span>';
|
print '</span>';
|
||||||
|
|||||||
@ -1338,8 +1338,8 @@ class Facture extends CommonInvoice
|
|||||||
$this->mode_reglement_id = $object->mode_reglement_id;
|
$this->mode_reglement_id = $object->mode_reglement_id;
|
||||||
$this->availability_id = $object->availability_id;
|
$this->availability_id = $object->availability_id;
|
||||||
$this->demand_reason_id = $object->demand_reason_id;
|
$this->demand_reason_id = $object->demand_reason_id;
|
||||||
$this->date_livraison = $object->date_livraison;
|
$this->delivery_date = (empty($object->delivery_date) ? $object->date_livraison : $object->delivery_date);
|
||||||
$this->delivery_date = $object->date_livraison;
|
$this->date_livraison = $object->delivery_date; // deprecated
|
||||||
$this->fk_delivery_address = $object->fk_delivery_address; // deprecated
|
$this->fk_delivery_address = $object->fk_delivery_address; // deprecated
|
||||||
$this->contact_id = $object->contact_id;
|
$this->contact_id = $object->contact_id;
|
||||||
$this->ref_client = $object->ref_client;
|
$this->ref_client = $object->ref_client;
|
||||||
|
|||||||
@ -44,7 +44,11 @@ class Cchargesociales
|
|||||||
*/
|
*/
|
||||||
public $table_element = 'c_chargesociales';
|
public $table_element = 'c_chargesociales';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string Label
|
||||||
|
*/
|
||||||
public $libelle;
|
public $libelle;
|
||||||
|
|
||||||
public $deductible;
|
public $deductible;
|
||||||
public $active;
|
public $active;
|
||||||
public $code;
|
public $code;
|
||||||
@ -54,6 +58,9 @@ class Cchargesociales
|
|||||||
*/
|
*/
|
||||||
public $fk_pays;
|
public $fk_pays;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string module
|
||||||
|
*/
|
||||||
public $module;
|
public $module;
|
||||||
public $accountancy_code;
|
public $accountancy_code;
|
||||||
|
|
||||||
@ -504,13 +511,12 @@ class Cchargesociales
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Trim object parameters
|
* Trim object parameters
|
||||||
* @param string[] $parameters array of parameters to trim
|
|
||||||
*
|
*
|
||||||
|
* @param string[] $parameters array of parameters to trim
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
private function trimParameters($parameters)
|
private function trimParameters($parameters)
|
||||||
{
|
{
|
||||||
if (!is_array($parameters)) return;
|
|
||||||
foreach ($parameters as $parameter) {
|
foreach ($parameters as $parameter) {
|
||||||
if (isset($this->$parameter)) {
|
if (isset($this->$parameter)) {
|
||||||
$this->$parameter = trim($this->$parameter);
|
$this->$parameter = trim($this->$parameter);
|
||||||
|
|||||||
@ -65,6 +65,11 @@ class Tva extends CommonObject
|
|||||||
*/
|
*/
|
||||||
public $fk_bank;
|
public $fk_bank;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var int accountid
|
||||||
|
*/
|
||||||
|
public $accountid;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var int ID
|
* @var int ID
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -2183,7 +2183,7 @@ if (!empty($conf->margin->enabled) && $action == 'editline')
|
|||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
var idprod = $("input[name='idprod']").val();
|
var idprod = $("input[name='idprod']").val();
|
||||||
var fournprice = $("input[name='fournprice']").val();
|
var fournprice = $("input[name='fournprice']").val();
|
||||||
var token = '<?php echo $_SESSION["token"]; ?>'; // For AJAX Call we use old 'token' and not 'newtoken'
|
var token = '<?php echo currentToken(); ?>'; // For AJAX Call we use old 'token' and not 'newtoken'
|
||||||
if (idprod > 0) {
|
if (idprod > 0) {
|
||||||
$.post('<?php echo DOL_URL_ROOT; ?>/fourn/ajax/getSupplierPrices.php', {
|
$.post('<?php echo DOL_URL_ROOT; ?>/fourn/ajax/getSupplierPrices.php', {
|
||||||
'idprod': idprod,
|
'idprod': idprod,
|
||||||
|
|||||||
@ -100,7 +100,7 @@ if ($action == 'setModuleOptions')
|
|||||||
}
|
}
|
||||||
if ($upload_dir)
|
if ($upload_dir)
|
||||||
{
|
{
|
||||||
$result = dol_add_file_process($upload_dir, 0, 1, 'uploadfile', '');
|
$result = dol_add_file_process($upload_dir, 1, 1, 'uploadfile', '');
|
||||||
if ($result <= 0) $error++;
|
if ($result <= 0) $error++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
/* Copyright (C) 2003-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2003-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
* Copyright (C) 2004-2017 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2004-2017 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.com>
|
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.com>
|
||||||
* Copyright (C) 2015 Frederic France <frederic.france@free.fr>
|
* Copyright (C) 2015-2020 Frederic France <frederic.france@netlogic.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -116,6 +116,7 @@ class box_members extends ModeleBoxes
|
|||||||
$memberstatic->email = $objp->email;
|
$memberstatic->email = $objp->email;
|
||||||
$memberstatic->morphy = $objp->morphy;
|
$memberstatic->morphy = $objp->morphy;
|
||||||
$memberstatic->company = $objp->company;
|
$memberstatic->company = $objp->company;
|
||||||
|
$memberstatic->statut = $objp->status;
|
||||||
|
|
||||||
if (!empty($objp->fk_soc)) {
|
if (!empty($objp->fk_soc)) {
|
||||||
$memberstatic->socid = $objp->fk_soc;
|
$memberstatic->socid = $objp->fk_soc;
|
||||||
|
|||||||
@ -96,11 +96,11 @@ class box_supplier_orders_awaiting_reception extends ModeleBoxes
|
|||||||
if (!$user->rights->societe->client->voir && !$user->socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
|
if (!$user->rights->societe->client->voir && !$user->socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
|
||||||
$sql .= " WHERE c.fk_soc = s.rowid";
|
$sql .= " WHERE c.fk_soc = s.rowid";
|
||||||
$sql .= " AND c.entity IN (".getEntity('supplier_order').")";
|
$sql .= " AND c.entity IN (".getEntity('supplier_order').")";
|
||||||
$sql .= " AND c.fk_statut = ".CommandeFournisseur::STATUS_ORDERSENT;
|
$sql .= " AND c.fk_statut IN (".CommandeFournisseur::STATUS_ORDERSENT.", ".CommandeFournisseur::STATUS_RECEIVED_PARTIALLY.")";
|
||||||
if (!$user->rights->societe->client->voir && !$user->socid) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id;
|
if (!$user->rights->societe->client->voir && !$user->socid) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id;
|
||||||
if ($user->socid) $sql .= " AND s.rowid = ".$user->socid;
|
if ($user->socid) $sql .= " AND s.rowid = ".$user->socid;
|
||||||
if ($conf->global->MAIN_LASTBOX_ON_OBJECT_DATE) $sql .= " ORDER BY c.date_commande DESC, c.ref DESC ";
|
if ($conf->global->MAIN_LASTBOX_ON_OBJECT_DATE) $sql .= " ORDER BY c.date_commande DESC, c.ref DESC";
|
||||||
else $sql .= " ORDER BY c.date_livraison ASC, c.fk_statut ASC ";
|
else $sql .= " ORDER BY c.date_livraison ASC, c.fk_statut ASC";
|
||||||
$sql .= $this->db->plimit($max, 0);
|
$sql .= $this->db->plimit($max, 0);
|
||||||
|
|
||||||
$result = $this->db->query($sql);
|
$result = $this->db->query($sql);
|
||||||
@ -115,7 +115,6 @@ class box_supplier_orders_awaiting_reception extends ModeleBoxes
|
|||||||
$delivery_date = $this->db->jdate($objp->delivery_date);
|
$delivery_date = $this->db->jdate($objp->delivery_date);
|
||||||
$datem = $this->db->jdate($objp->tms);
|
$datem = $this->db->jdate($objp->tms);
|
||||||
|
|
||||||
$supplierorderstatic->date_livraison = $delivery_date;
|
|
||||||
$supplierorderstatic->delivery_date = $delivery_date;
|
$supplierorderstatic->delivery_date = $delivery_date;
|
||||||
$supplierorderstatic->statut = $objp->fk_statut;
|
$supplierorderstatic->statut = $objp->fk_statut;
|
||||||
|
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.com>
|
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.com>
|
||||||
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
|
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
|
||||||
* Copyright (C) 2016 Charlie Benke <charlie@patas-monkey.com>
|
* Copyright (C) 2016 Charlie Benke <charlie@patas-monkey.com>
|
||||||
* Copyright (C) 2018 Frédéric France <frederic.france@netlogic.fr>
|
* Copyright (C) 2018-2020 Frédéric France <frederic.france@netlogic.fr>
|
||||||
* Copyright (C) 2020 Josep Lluís Amador <joseplluis@lliuretic.cat>
|
* Copyright (C) 2020 Josep Lluís Amador <joseplluis@lliuretic.cat>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@ -77,11 +77,11 @@ abstract class CommonDocGenerator
|
|||||||
public function get_substitutionarray_user($user, $outputlangs)
|
public function get_substitutionarray_user($user, $outputlangs)
|
||||||
{
|
{
|
||||||
// phpcs:enable
|
// phpcs:enable
|
||||||
global $conf;
|
global $conf, $extrafields;
|
||||||
|
|
||||||
$logotouse = $conf->user->dir_output.'/'.get_exdir($user->id, 2, 0, 1, $user, 'user').'/'.$user->photo;
|
$logotouse = $conf->user->dir_output.'/'.get_exdir($user->id, 2, 0, 1, $user, 'user').'/'.$user->photo;
|
||||||
|
|
||||||
return array(
|
$array_user = array(
|
||||||
'myuser_lastname'=>$user->lastname,
|
'myuser_lastname'=>$user->lastname,
|
||||||
'myuser_firstname'=>$user->firstname,
|
'myuser_firstname'=>$user->firstname,
|
||||||
'myuser_fullname'=>$user->getFullName($outputlangs, 1),
|
'myuser_fullname'=>$user->getFullName($outputlangs, 1),
|
||||||
@ -101,6 +101,57 @@ abstract class CommonDocGenerator
|
|||||||
'myuser_job'=>$user->job,
|
'myuser_job'=>$user->job,
|
||||||
'myuser_web'=>'' // url not exist in $user object
|
'myuser_web'=>'' // url not exist in $user object
|
||||||
);
|
);
|
||||||
|
// Retrieve extrafields
|
||||||
|
if (is_array($user->array_options) && count($user->array_options)) {
|
||||||
|
$array_user = $this->fill_substitutionarray_with_extrafields($user, $array_user, $extrafields, 'myuser', $outputlangs);
|
||||||
|
}
|
||||||
|
return $array_user;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Define array with couple substitution key => substitution value
|
||||||
|
*
|
||||||
|
* @param Adherent $member Member
|
||||||
|
* @param Translate $outputlangs Language object for output
|
||||||
|
* @return array Array of substitution key->code
|
||||||
|
*/
|
||||||
|
public function getSubstitutionarrayMember($member, $outputlangs)
|
||||||
|
{
|
||||||
|
global $conf, $extrafields;
|
||||||
|
|
||||||
|
if ($member->photo) {
|
||||||
|
$logotouse = $conf->adherent->dir_output.'/'.get_exdir(0, 0, 0, 1, $member, 'user').'/photos/'.$member->photo;
|
||||||
|
} else {
|
||||||
|
$logotouse = DOL_DOCUMENT_ROOT . '/public/theme/common/nophoto.png';
|
||||||
|
}
|
||||||
|
|
||||||
|
$array_member = array(
|
||||||
|
'mymember_lastname' => $member->lastname,
|
||||||
|
'mymember_firstname' => $member->firstname,
|
||||||
|
'mymember_fullname' => $member->getFullName($outputlangs, 1),
|
||||||
|
'mymember_login' => $member->login,
|
||||||
|
'mymember_address' => $member->address,
|
||||||
|
'mymember_zip' => $member->zip,
|
||||||
|
'mymember_town' => $member->town,
|
||||||
|
'mymember_country_code' => $member->country_code,
|
||||||
|
'mymember_country' => $member->country,
|
||||||
|
'mymember_state_code' => $member->state_code,
|
||||||
|
'mymember_state' => $member->state,
|
||||||
|
'mymember_phone_perso' => $member->phone_perso,
|
||||||
|
'mymember_phone_pro' => $member->phone,
|
||||||
|
'mymember_phone_mobile' => $member->phone_mobile,
|
||||||
|
'mymember_email' => $member->email,
|
||||||
|
'mymember_logo' => $logotouse,
|
||||||
|
'mymember_gender' => $member->gender,
|
||||||
|
'mymember_birth_locale' => dol_print_date($member->birth, 'day', 'tzuser', $outputlangs),
|
||||||
|
'mymember_birth' => dol_print_date($member->birth, 'day', 'tzuser'),
|
||||||
|
);
|
||||||
|
// Retrieve extrafields
|
||||||
|
if (is_array($member->array_options) && count($member->array_options)) {
|
||||||
|
$array_member = $this->fill_substitutionarray_with_extrafields($member, $array_member, $extrafields, 'mymember', $outputlangs);
|
||||||
|
}
|
||||||
|
return $array_member;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1249,7 +1300,7 @@ abstract class CommonDocGenerator
|
|||||||
$html = '';
|
$html = '';
|
||||||
$fields = array();
|
$fields = array();
|
||||||
|
|
||||||
if (is_array($extrafields->attributes[$object->table_element]['label'])) {
|
if (!empty($extrafields->attributes[$object->table_element]['label']) && is_array($extrafields->attributes[$object->table_element]['label'])) {
|
||||||
foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $label)
|
foreach ($extrafields->attributes[$object->table_element]['label'] as $key => $label)
|
||||||
{
|
{
|
||||||
// Enable extrafield ?
|
// Enable extrafield ?
|
||||||
|
|||||||
@ -51,12 +51,22 @@ abstract class CommonObject
|
|||||||
*/
|
*/
|
||||||
public $id;
|
public $id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var int The environment ID when using a multicompany module
|
||||||
|
*/
|
||||||
|
public $entity;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var string Error string
|
* @var string Error string
|
||||||
* @see $errors
|
* @see $errors
|
||||||
*/
|
*/
|
||||||
public $error;
|
public $error;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string Error string that is hidden but can be used to store complementatry technical code.
|
||||||
|
*/
|
||||||
|
public $errorhidden;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var string[] Array of error strings
|
* @var string[] Array of error strings
|
||||||
*/
|
*/
|
||||||
@ -1243,9 +1253,7 @@ abstract class CommonObject
|
|||||||
{
|
{
|
||||||
$sql = "SELECT ec.datecreate, ec.statut, ec.fk_socpeople, ec.fk_c_type_contact,";
|
$sql = "SELECT ec.datecreate, ec.statut, ec.fk_socpeople, ec.fk_c_type_contact,";
|
||||||
$sql .= " tc.code, tc.libelle";
|
$sql .= " tc.code, tc.libelle";
|
||||||
//$sql.= ", s.fk_soc";
|
|
||||||
$sql .= " FROM (".MAIN_DB_PREFIX."element_contact as ec, ".MAIN_DB_PREFIX."c_type_contact as tc)";
|
$sql .= " FROM (".MAIN_DB_PREFIX."element_contact as ec, ".MAIN_DB_PREFIX."c_type_contact as tc)";
|
||||||
//$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."socpeople as s ON ec.fk_socpeople=s.rowid"; // Si contact de type external, alors il est lie a une societe
|
|
||||||
$sql .= " WHERE ec.rowid =".$rowid;
|
$sql .= " WHERE ec.rowid =".$rowid;
|
||||||
$sql .= " AND ec.fk_c_type_contact=tc.rowid";
|
$sql .= " AND ec.fk_c_type_contact=tc.rowid";
|
||||||
$sql .= " AND tc.element = '".$this->db->escape($this->element)."'";
|
$sql .= " AND tc.element = '".$this->db->escape($this->element)."'";
|
||||||
@ -2444,8 +2452,6 @@ abstract class CommonObject
|
|||||||
$sql = "UPDATE ".MAIN_DB_PREFIX.$this->table_element;
|
$sql = "UPDATE ".MAIN_DB_PREFIX.$this->table_element;
|
||||||
$sql .= " SET model_pdf = '".$this->db->escape($newmodelpdf)."'";
|
$sql .= " SET model_pdf = '".$this->db->escape($newmodelpdf)."'";
|
||||||
$sql .= " WHERE rowid = ".$this->id;
|
$sql .= " WHERE rowid = ".$this->id;
|
||||||
// if ($this->element == 'facture') $sql.= " AND fk_statut < 2";
|
|
||||||
// if ($this->element == 'propal') $sql.= " AND fk_statut = 0";
|
|
||||||
|
|
||||||
dol_syslog(get_class($this)."::setDocModel", LOG_DEBUG);
|
dol_syslog(get_class($this)."::setDocModel", LOG_DEBUG);
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
@ -2560,8 +2566,7 @@ abstract class CommonObject
|
|||||||
} else dol_print_error($this->db);
|
} else dol_print_error($this->db);
|
||||||
if ($nl > 0)
|
if ($nl > 0)
|
||||||
{
|
{
|
||||||
// The goal of this part is to reorder all lines, with all children lines sharing the same
|
// The goal of this part is to reorder all lines, with all children lines sharing the same counter that parents.
|
||||||
// counter that parents.
|
|
||||||
$rows = array();
|
$rows = array();
|
||||||
|
|
||||||
// We first search all lines that are parent lines (for multilevel details lines)
|
// We first search all lines that are parent lines (for multilevel details lines)
|
||||||
@ -4570,13 +4575,17 @@ abstract class CommonObject
|
|||||||
{
|
{
|
||||||
foreach (array('doc', 'pdf') as $prefix)
|
foreach (array('doc', 'pdf') as $prefix)
|
||||||
{
|
{
|
||||||
if (in_array(get_class($this), array('Adherent'))) $file = $prefix."_".$modele.".class.php"; // Member module use prefix_module.class.php
|
if (in_array(get_class($this), array('Adherent'))) {
|
||||||
else $file = $prefix."_".$modele.".modules.php";
|
// Member module use prefix_modele.class.php
|
||||||
|
$file = $prefix."_".$modele.".class.php";
|
||||||
|
} else {
|
||||||
|
// Other module use prefix_modele.modules.php
|
||||||
|
$file = $prefix."_".$modele.".modules.php";
|
||||||
|
}
|
||||||
|
|
||||||
// On verifie l'emplacement du modele
|
// On verifie l'emplacement du modele
|
||||||
$file = dol_buildpath($reldir.$modelspath.$file, 0);
|
$file = dol_buildpath($reldir.$modelspath.$file, 0);
|
||||||
if (file_exists($file))
|
if (file_exists($file)) {
|
||||||
{
|
|
||||||
$filefound = $file;
|
$filefound = $file;
|
||||||
$classname = $prefix.'_'.$modele;
|
$classname = $prefix.'_'.$modele;
|
||||||
break;
|
break;
|
||||||
@ -5450,7 +5459,6 @@ abstract class CommonObject
|
|||||||
$sql .= ")";
|
$sql .= ")";
|
||||||
|
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
|
|
||||||
if (!$resql)
|
if (!$resql)
|
||||||
{
|
{
|
||||||
$this->error = $this->db->lasterror();
|
$this->error = $this->db->lasterror();
|
||||||
@ -5918,8 +5926,7 @@ abstract class CommonObject
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (in_array($type, array('date', 'datetime')))
|
if (in_array($type, array('date', 'datetime'))) {
|
||||||
{
|
|
||||||
$tmp = explode(',', $size);
|
$tmp = explode(',', $size);
|
||||||
$newsize = $tmp[0];
|
$newsize = $tmp[0];
|
||||||
|
|
||||||
@ -5930,25 +5937,19 @@ abstract class CommonObject
|
|||||||
|
|
||||||
// TODO Must also support $moreparam
|
// TODO Must also support $moreparam
|
||||||
$out = $form->selectDate($value, $keyprefix.$key.$keysuffix, $showtime, $showtime, $required, '', 1, (($keyprefix != 'search_' && $keyprefix != 'search_options_') ? 1 : 0), 0, 1);
|
$out = $form->selectDate($value, $keyprefix.$key.$keysuffix, $showtime, $showtime, $required, '', 1, (($keyprefix != 'search_' && $keyprefix != 'search_options_') ? 1 : 0), 0, 1);
|
||||||
} elseif (in_array($type, array('duration')))
|
} elseif (in_array($type, array('duration'))) {
|
||||||
{
|
|
||||||
$out = $form->select_duration($keyprefix.$key.$keysuffix, $value, 0, 'text', 0, 1);
|
$out = $form->select_duration($keyprefix.$key.$keysuffix, $value, 0, 'text', 0, 1);
|
||||||
} elseif (in_array($type, array('int', 'integer')))
|
} elseif (in_array($type, array('int', 'integer'))) {
|
||||||
{
|
|
||||||
$tmp = explode(',', $size);
|
$tmp = explode(',', $size);
|
||||||
$newsize = $tmp[0];
|
$newsize = $tmp[0];
|
||||||
$out = '<input type="text" class="flat '.$morecss.'" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" maxlength="'.$newsize.'" value="'.dol_escape_htmltag($value).'"'.($moreparam ? $moreparam : '').($autofocusoncreate ? ' autofocus' : '').'>';
|
$out = '<input type="text" class="flat '.$morecss.'" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" maxlength="'.$newsize.'" value="'.dol_escape_htmltag($value).'"'.($moreparam ? $moreparam : '').($autofocusoncreate ? ' autofocus' : '').'>';
|
||||||
} elseif (in_array($type, array('real')))
|
} elseif (in_array($type, array('real'))) {
|
||||||
{
|
|
||||||
$out = '<input type="text" class="flat '.$morecss.'" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" value="'.dol_escape_htmltag($value).'"'.($moreparam ? $moreparam : '').($autofocusoncreate ? ' autofocus' : '').'>';
|
$out = '<input type="text" class="flat '.$morecss.'" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" value="'.dol_escape_htmltag($value).'"'.($moreparam ? $moreparam : '').($autofocusoncreate ? ' autofocus' : '').'>';
|
||||||
} elseif (preg_match('/varchar/', $type))
|
} elseif (preg_match('/varchar/', $type)) {
|
||||||
{
|
|
||||||
$out = '<input type="text" class="flat '.$morecss.'" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" maxlength="'.$size.'" value="'.dol_escape_htmltag($value).'"'.($moreparam ? $moreparam : '').($autofocusoncreate ? ' autofocus' : '').'>';
|
$out = '<input type="text" class="flat '.$morecss.'" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" maxlength="'.$size.'" value="'.dol_escape_htmltag($value).'"'.($moreparam ? $moreparam : '').($autofocusoncreate ? ' autofocus' : '').'>';
|
||||||
} elseif (in_array($type, array('mail', 'phone', 'url')))
|
} elseif (in_array($type, array('mail', 'phone', 'url'))) {
|
||||||
{
|
|
||||||
$out = '<input type="text" class="flat '.$morecss.'" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" value="'.dol_escape_htmltag($value).'" '.($moreparam ? $moreparam : '').($autofocusoncreate ? ' autofocus' : '').'>';
|
$out = '<input type="text" class="flat '.$morecss.'" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" value="'.dol_escape_htmltag($value).'" '.($moreparam ? $moreparam : '').($autofocusoncreate ? ' autofocus' : '').'>';
|
||||||
} elseif (preg_match('/^text/', $type))
|
} elseif (preg_match('/^text/', $type)) {
|
||||||
{
|
|
||||||
if (!preg_match('/search_/', $keyprefix)) // If keyprefix is search_ or search_options_, we must just use a simple text field
|
if (!preg_match('/search_/', $keyprefix)) // If keyprefix is search_ or search_options_, we must just use a simple text field
|
||||||
{
|
{
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
@ -5957,18 +5958,15 @@ abstract class CommonObject
|
|||||||
} else {
|
} else {
|
||||||
$out = '<input type="text" class="flat '.$morecss.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" value="'.dol_escape_htmltag($value).'" '.($moreparam ? $moreparam : '').'>';
|
$out = '<input type="text" class="flat '.$morecss.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" value="'.dol_escape_htmltag($value).'" '.($moreparam ? $moreparam : '').'>';
|
||||||
}
|
}
|
||||||
} elseif (preg_match('/^html/', $type))
|
} elseif (preg_match('/^html/', $type)) {
|
||||||
{
|
if (!preg_match('/search_/', $keyprefix)) { // If keyprefix is search_ or search_options_, we must just use a simple text field
|
||||||
if (!preg_match('/search_/', $keyprefix)) // If keyprefix is search_ or search_options_, we must just use a simple text field
|
|
||||||
{
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
|
||||||
$doleditor = new DolEditor($keyprefix.$key.$keysuffix, $value, '', 200, 'dolibarr_notes', 'In', false, false, !empty($conf->fckeditor->enabled) && $conf->global->FCKEDITOR_ENABLE_SOCIETE, ROWS_5, '90%');
|
$doleditor = new DolEditor($keyprefix.$key.$keysuffix, $value, '', 200, 'dolibarr_notes', 'In', false, false, !empty($conf->fckeditor->enabled) && $conf->global->FCKEDITOR_ENABLE_SOCIETE, ROWS_5, '90%');
|
||||||
$out = $doleditor->Create(1);
|
$out = $doleditor->Create(1);
|
||||||
} else {
|
} else {
|
||||||
$out = '<input type="text" class="flat '.$morecss.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" value="'.dol_escape_htmltag($value).'" '.($moreparam ? $moreparam : '').'>';
|
$out = '<input type="text" class="flat '.$morecss.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" value="'.dol_escape_htmltag($value).'" '.($moreparam ? $moreparam : '').'>';
|
||||||
}
|
}
|
||||||
} elseif ($type == 'boolean')
|
} elseif ($type == 'boolean') {
|
||||||
{
|
|
||||||
$checked = '';
|
$checked = '';
|
||||||
if (!empty($value)) {
|
if (!empty($value)) {
|
||||||
$checked = ' checked value="1" ';
|
$checked = ' checked value="1" ';
|
||||||
@ -5976,20 +5974,17 @@ abstract class CommonObject
|
|||||||
$checked = ' value="1" ';
|
$checked = ' value="1" ';
|
||||||
}
|
}
|
||||||
$out = '<input type="checkbox" class="flat '.$morecss.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" '.$checked.' '.($moreparam ? $moreparam : '').'>';
|
$out = '<input type="checkbox" class="flat '.$morecss.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" '.$checked.' '.($moreparam ? $moreparam : '').'>';
|
||||||
} elseif ($type == 'price')
|
} elseif ($type == 'price') {
|
||||||
{
|
|
||||||
if (!empty($value)) { // $value in memory is a php numeric, we format it into user number format.
|
if (!empty($value)) { // $value in memory is a php numeric, we format it into user number format.
|
||||||
$value = price($value);
|
$value = price($value);
|
||||||
}
|
}
|
||||||
$out = '<input type="text" class="flat '.$morecss.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" value="'.$value.'" '.($moreparam ? $moreparam : '').'> '.$langs->getCurrencySymbol($conf->currency);
|
$out = '<input type="text" class="flat '.$morecss.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" value="'.$value.'" '.($moreparam ? $moreparam : '').'> '.$langs->getCurrencySymbol($conf->currency);
|
||||||
} elseif (preg_match('/^double(\([0-9],[0-9]\)){0,1}/', $type))
|
} elseif (preg_match('/^double(\([0-9],[0-9]\)){0,1}/', $type)) {
|
||||||
{
|
|
||||||
if (!empty($value)) { // $value in memory is a php numeric, we format it into user number format.
|
if (!empty($value)) { // $value in memory is a php numeric, we format it into user number format.
|
||||||
$value = price($value);
|
$value = price($value);
|
||||||
}
|
}
|
||||||
$out = '<input type="text" class="flat '.$morecss.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" value="'.$value.'" '.($moreparam ? $moreparam : '').'> ';
|
$out = '<input type="text" class="flat '.$morecss.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" value="'.$value.'" '.($moreparam ? $moreparam : '').'> ';
|
||||||
} elseif ($type == 'select')
|
} elseif ($type == 'select') {
|
||||||
{
|
|
||||||
$out = '';
|
$out = '';
|
||||||
if (!empty($conf->use_javascript_ajax) && !empty($conf->global->MAIN_EXTRAFIELDS_USE_SELECT2))
|
if (!empty($conf->use_javascript_ajax) && !empty($conf->global->MAIN_EXTRAFIELDS_USE_SELECT2))
|
||||||
{
|
{
|
||||||
@ -6009,18 +6004,15 @@ abstract class CommonObject
|
|||||||
$out .= '>'.$val.'</option>';
|
$out .= '>'.$val.'</option>';
|
||||||
}
|
}
|
||||||
$out .= '</select>';
|
$out .= '</select>';
|
||||||
} elseif ($type == 'sellist')
|
} elseif ($type == 'sellist') {
|
||||||
{
|
|
||||||
$out = '';
|
$out = '';
|
||||||
if (!empty($conf->use_javascript_ajax) && !empty($conf->global->MAIN_EXTRAFIELDS_USE_SELECT2))
|
if (!empty($conf->use_javascript_ajax) && !empty($conf->global->MAIN_EXTRAFIELDS_USE_SELECT2)) {
|
||||||
{
|
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/lib/ajax.lib.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/lib/ajax.lib.php';
|
||||||
$out .= ajax_combobox($keyprefix.$key.$keysuffix, array(), 0);
|
$out .= ajax_combobox($keyprefix.$key.$keysuffix, array(), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
$out .= '<select class="flat '.$morecss.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" '.($moreparam ? $moreparam : '').'>';
|
$out .= '<select class="flat '.$morecss.' maxwidthonsmartphone" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" '.($moreparam ? $moreparam : '').'>';
|
||||||
if (is_array($param['options']))
|
if (is_array($param['options'])) {
|
||||||
{
|
|
||||||
$param_list = array_keys($param['options']);
|
$param_list = array_keys($param['options']);
|
||||||
$InfoFieldList = explode(":", $param_list[0]);
|
$InfoFieldList = explode(":", $param_list[0]);
|
||||||
$parentName = '';
|
$parentName = '';
|
||||||
@ -6166,12 +6158,10 @@ abstract class CommonObject
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
$out .= '</select>';
|
$out .= '</select>';
|
||||||
} elseif ($type == 'checkbox')
|
} elseif ($type == 'checkbox') {
|
||||||
{
|
|
||||||
$value_arr = explode(',', $value);
|
$value_arr = explode(',', $value);
|
||||||
$out = $form->multiselectarray($keyprefix.$key.$keysuffix, (empty($param['options']) ?null:$param['options']), $value_arr, '', 0, '', 0, '100%');
|
$out = $form->multiselectarray($keyprefix.$key.$keysuffix, (empty($param['options']) ?null:$param['options']), $value_arr, '', 0, '', 0, '100%');
|
||||||
} elseif ($type == 'radio')
|
} elseif ($type == 'radio') {
|
||||||
{
|
|
||||||
$out = '';
|
$out = '';
|
||||||
foreach ($param['options'] as $keyopt => $val)
|
foreach ($param['options'] as $keyopt => $val)
|
||||||
{
|
{
|
||||||
@ -6181,8 +6171,7 @@ abstract class CommonObject
|
|||||||
$out .= ($value == $keyopt ? 'checked' : '');
|
$out .= ($value == $keyopt ? 'checked' : '');
|
||||||
$out .= '/><label for="'.$keyprefix.$key.$keysuffix.'_'.$keyopt.'">'.$val.'</label><br>';
|
$out .= '/><label for="'.$keyprefix.$key.$keysuffix.'_'.$keyopt.'">'.$val.'</label><br>';
|
||||||
}
|
}
|
||||||
} elseif ($type == 'chkbxlst')
|
} elseif ($type == 'chkbxlst') {
|
||||||
{
|
|
||||||
if (is_array($value)) {
|
if (is_array($value)) {
|
||||||
$value_arr = $value;
|
$value_arr = $value;
|
||||||
} else {
|
} else {
|
||||||
@ -6323,8 +6312,7 @@ abstract class CommonObject
|
|||||||
print 'Error in request '.$sql.' '.$this->db->lasterror().'. Check setup of extra parameters.<br>';
|
print 'Error in request '.$sql.' '.$this->db->lasterror().'. Check setup of extra parameters.<br>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} elseif ($type == 'link')
|
} elseif ($type == 'link') {
|
||||||
{
|
|
||||||
$param_list = array_keys($param['options']); // $param_list='ObjectName:classPath[:AddCreateButtonOrNot[:Filter]]'
|
$param_list = array_keys($param['options']); // $param_list='ObjectName:classPath[:AddCreateButtonOrNot[:Filter]]'
|
||||||
$param_list_array = explode(':', $param_list[0]);
|
$param_list_array = explode(':', $param_list[0]);
|
||||||
$showempty = (($required && $default != '') ? 0 : 1);
|
$showempty = (($required && $default != '') ? 0 : 1);
|
||||||
@ -6349,25 +6337,20 @@ abstract class CommonObject
|
|||||||
$out .= '<a class="butActionNew" title="'.$langs->trans("New").'" href="'.$url_path.'?action=create&backtopage='.urlencode($_SERVER['PHP_SELF'].($paramforthenewlink ? '?'.$paramforthenewlink : '')).'"><span class="fa fa-plus-circle valignmiddle"></span></a>';
|
$out .= '<a class="butActionNew" title="'.$langs->trans("New").'" href="'.$url_path.'?action=create&backtopage='.urlencode($_SERVER['PHP_SELF'].($paramforthenewlink ? '?'.$paramforthenewlink : '')).'"><span class="fa fa-plus-circle valignmiddle"></span></a>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} elseif ($type == 'password')
|
} elseif ($type == 'password') {
|
||||||
{
|
|
||||||
// If prefix is 'search_', field is used as a filter, we use a common text field.
|
// If prefix is 'search_', field is used as a filter, we use a common text field.
|
||||||
$out = '<input type="'.($keyprefix == 'search_' ? 'text' : 'password').'" class="flat '.$morecss.'" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" value="'.$value.'" '.($moreparam ? $moreparam : '').'>';
|
$out = '<input type="'.($keyprefix == 'search_' ? 'text' : 'password').'" class="flat '.$morecss.'" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" value="'.$value.'" '.($moreparam ? $moreparam : '').'>';
|
||||||
} elseif ($type == 'array')
|
} elseif ($type == 'array') {
|
||||||
{
|
|
||||||
$newval = $val;
|
$newval = $val;
|
||||||
$newval['type'] = 'varchar(256)';
|
$newval['type'] = 'varchar(256)';
|
||||||
|
|
||||||
$out = '';
|
$out = '';
|
||||||
|
|
||||||
$inputs = array();
|
|
||||||
if (!empty($value)) {
|
if (!empty($value)) {
|
||||||
foreach ($value as $option) {
|
foreach ($value as $option) {
|
||||||
$out .= '<span><a class="'.dol_escape_htmltag($keyprefix.$key.$keysuffix).'_del" href="javascript:;"><span class="fa fa-minus-circle valignmiddle"></span></a> ';
|
$out .= '<span><a class="'.dol_escape_htmltag($keyprefix.$key.$keysuffix).'_del" href="javascript:;"><span class="fa fa-minus-circle valignmiddle"></span></a> ';
|
||||||
$out .= $this->showInputField($newval, $keyprefix.$key.$keysuffix.'[]', $option, $moreparam, '', '', $morecss).'<br></span>';
|
$out .= $this->showInputField($newval, $keyprefix.$key.$keysuffix.'[]', $option, $moreparam, '', '', $morecss).'<br></span>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$out .= '<a id="'.dol_escape_htmltag($keyprefix.$key.$keysuffix).'_add" href="javascript:;"><span class="fa fa-plus-circle valignmiddle"></span></a>';
|
$out .= '<a id="'.dol_escape_htmltag($keyprefix.$key.$keysuffix).'_add" href="javascript:;"><span class="fa fa-plus-circle valignmiddle"></span></a>';
|
||||||
|
|
||||||
$newInput = '<span><a class="'.dol_escape_htmltag($keyprefix.$key.$keysuffix).'_del" href="javascript:;"><span class="fa fa-minus-circle valignmiddle"></span></a> ';
|
$newInput = '<span><a class="'.dol_escape_htmltag($keyprefix.$key.$keysuffix).'_del" href="javascript:;"><span class="fa fa-minus-circle valignmiddle"></span></a> ';
|
||||||
@ -6470,27 +6453,20 @@ abstract class CommonObject
|
|||||||
|
|
||||||
if (empty($morecss))
|
if (empty($morecss))
|
||||||
{
|
{
|
||||||
if ($type == 'date')
|
if ($type == 'date') {
|
||||||
{
|
|
||||||
$morecss = 'minwidth100imp';
|
$morecss = 'minwidth100imp';
|
||||||
} elseif ($type == 'datetime' || $type == 'timestamp')
|
} elseif ($type == 'datetime' || $type == 'timestamp') {
|
||||||
{
|
|
||||||
$morecss = 'minwidth200imp';
|
$morecss = 'minwidth200imp';
|
||||||
} elseif (in_array($type, array('int', 'double', 'price')))
|
} elseif (in_array($type, array('int', 'double', 'price'))) {
|
||||||
{
|
|
||||||
$morecss = 'maxwidth75';
|
$morecss = 'maxwidth75';
|
||||||
} elseif ($type == 'url')
|
} elseif ($type == 'url') {
|
||||||
{
|
|
||||||
$morecss = 'minwidth400';
|
$morecss = 'minwidth400';
|
||||||
} elseif ($type == 'boolean')
|
} elseif ($type == 'boolean') {
|
||||||
{
|
|
||||||
$morecss = '';
|
$morecss = '';
|
||||||
} else {
|
} else {
|
||||||
if (round($size) < 12)
|
if (round($size) < 12) {
|
||||||
{
|
|
||||||
$morecss = 'minwidth100';
|
$morecss = 'minwidth100';
|
||||||
} elseif (round($size) <= 48)
|
} elseif (round($size) <= 48) {
|
||||||
{
|
|
||||||
$morecss = 'minwidth200';
|
$morecss = 'minwidth200';
|
||||||
} else {
|
} else {
|
||||||
$morecss = 'minwidth400';
|
$morecss = 'minwidth400';
|
||||||
@ -6501,57 +6477,47 @@ abstract class CommonObject
|
|||||||
// Format output value differently according to properties of field
|
// Format output value differently according to properties of field
|
||||||
if ($key == 'ref' && method_exists($this, 'getNomUrl')) $value = $this->getNomUrl(1, '', 0, '', 1);
|
if ($key == 'ref' && method_exists($this, 'getNomUrl')) $value = $this->getNomUrl(1, '', 0, '', 1);
|
||||||
elseif ($key == 'status' && method_exists($this, 'getLibStatut')) $value = $this->getLibStatut(3);
|
elseif ($key == 'status' && method_exists($this, 'getLibStatut')) $value = $this->getLibStatut(3);
|
||||||
elseif ($type == 'date')
|
elseif ($type == 'date') {
|
||||||
{
|
|
||||||
if (!empty($value)) {
|
if (!empty($value)) {
|
||||||
$value = dol_print_date($value, 'day');
|
$value = dol_print_date($value, 'day');
|
||||||
} else {
|
} else {
|
||||||
$value = '';
|
$value = '';
|
||||||
}
|
}
|
||||||
} elseif ($type == 'datetime' || $type == 'timestamp')
|
} elseif ($type == 'datetime' || $type == 'timestamp') {
|
||||||
{
|
|
||||||
if (!empty($value)) {
|
if (!empty($value)) {
|
||||||
$value = dol_print_date($value, 'dayhour');
|
$value = dol_print_date($value, 'dayhour');
|
||||||
} else {
|
} else {
|
||||||
$value = '';
|
$value = '';
|
||||||
}
|
}
|
||||||
} elseif ($type == 'duration')
|
} elseif ($type == 'duration') {
|
||||||
{
|
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
||||||
if (!is_null($value) && $value !== '') {
|
if (!is_null($value) && $value !== '') {
|
||||||
$value = convertSecondToTime($value, 'allhourmin');
|
$value = convertSecondToTime($value, 'allhourmin');
|
||||||
}
|
}
|
||||||
} elseif ($type == 'double' || $type == 'real')
|
} elseif ($type == 'double' || $type == 'real') {
|
||||||
{
|
|
||||||
if (!is_null($value) && $value !== '') {
|
if (!is_null($value) && $value !== '') {
|
||||||
$value = price($value);
|
$value = price($value);
|
||||||
}
|
}
|
||||||
} elseif ($type == 'boolean')
|
} elseif ($type == 'boolean') {
|
||||||
{
|
|
||||||
$checked = '';
|
$checked = '';
|
||||||
if (!empty($value)) {
|
if (!empty($value)) {
|
||||||
$checked = ' checked ';
|
$checked = ' checked ';
|
||||||
}
|
}
|
||||||
$value = '<input type="checkbox" '.$checked.' '.($moreparam ? $moreparam : '').' readonly disabled>';
|
$value = '<input type="checkbox" '.$checked.' '.($moreparam ? $moreparam : '').' readonly disabled>';
|
||||||
} elseif ($type == 'mail')
|
} elseif ($type == 'mail') {
|
||||||
{
|
|
||||||
$value = dol_print_email($value, 0, 0, 0, 64, 1, 1);
|
$value = dol_print_email($value, 0, 0, 0, 64, 1, 1);
|
||||||
} elseif ($type == 'url')
|
} elseif ($type == 'url') {
|
||||||
{
|
|
||||||
$value = dol_print_url($value, '_blank', 32, 1);
|
$value = dol_print_url($value, '_blank', 32, 1);
|
||||||
} elseif ($type == 'phone')
|
} elseif ($type == 'phone') {
|
||||||
{
|
|
||||||
$value = dol_print_phone($value, '', 0, 0, '', ' ', 1);
|
$value = dol_print_phone($value, '', 0, 0, '', ' ', 1);
|
||||||
} elseif ($type == 'price')
|
} elseif ($type == 'price')
|
||||||
{
|
{
|
||||||
if (!is_null($value) && $value !== '') {
|
if (!is_null($value) && $value !== '') {
|
||||||
$value = price($value, 0, $langs, 0, 0, -1, $conf->currency);
|
$value = price($value, 0, $langs, 0, 0, -1, $conf->currency);
|
||||||
}
|
}
|
||||||
} elseif ($type == 'select')
|
} elseif ($type == 'select') {
|
||||||
{
|
|
||||||
$value = $param['options'][$value];
|
$value = $param['options'][$value];
|
||||||
} elseif ($type == 'sellist')
|
} elseif ($type == 'sellist') {
|
||||||
{
|
|
||||||
$param_list = array_keys($param['options']);
|
$param_list = array_keys($param['options']);
|
||||||
$InfoFieldList = explode(":", $param_list[0]);
|
$InfoFieldList = explode(":", $param_list[0]);
|
||||||
|
|
||||||
@ -6623,11 +6589,9 @@ abstract class CommonObject
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else dol_syslog(get_class($this).'::showOutputField error '.$this->db->lasterror(), LOG_WARNING);
|
} else dol_syslog(get_class($this).'::showOutputField error '.$this->db->lasterror(), LOG_WARNING);
|
||||||
} elseif ($type == 'radio')
|
} elseif ($type == 'radio') {
|
||||||
{
|
|
||||||
$value = $param['options'][$value];
|
$value = $param['options'][$value];
|
||||||
} elseif ($type == 'checkbox')
|
} elseif ($type == 'checkbox') {
|
||||||
{
|
|
||||||
$value_arr = explode(',', $value);
|
$value_arr = explode(',', $value);
|
||||||
$value = '';
|
$value = '';
|
||||||
if (is_array($value_arr) && count($value_arr) > 0)
|
if (is_array($value_arr) && count($value_arr) > 0)
|
||||||
@ -6638,8 +6602,7 @@ abstract class CommonObject
|
|||||||
}
|
}
|
||||||
$value = '<div class="select2-container-multi-dolibarr" style="width: 90%;"><ul class="select2-choices-dolibarr">'.implode(' ', $toprint).'</ul></div>';
|
$value = '<div class="select2-container-multi-dolibarr" style="width: 90%;"><ul class="select2-choices-dolibarr">'.implode(' ', $toprint).'</ul></div>';
|
||||||
}
|
}
|
||||||
} elseif ($type == 'chkbxlst')
|
} elseif ($type == 'chkbxlst') {
|
||||||
{
|
|
||||||
$value_arr = explode(',', $value);
|
$value_arr = explode(',', $value);
|
||||||
|
|
||||||
$param_list = array_keys($param['options']);
|
$param_list = array_keys($param['options']);
|
||||||
@ -6705,8 +6668,7 @@ abstract class CommonObject
|
|||||||
} else {
|
} else {
|
||||||
dol_syslog(get_class($this).'::showOutputField error '.$this->db->lasterror(), LOG_WARNING);
|
dol_syslog(get_class($this).'::showOutputField error '.$this->db->lasterror(), LOG_WARNING);
|
||||||
}
|
}
|
||||||
} elseif ($type == 'link')
|
} elseif ($type == 'link') {
|
||||||
{
|
|
||||||
$out = '';
|
$out = '';
|
||||||
|
|
||||||
// only if something to display (perf)
|
// only if something to display (perf)
|
||||||
@ -6732,14 +6694,11 @@ abstract class CommonObject
|
|||||||
return 'Error bad setup of extrafield';
|
return 'Error bad setup of extrafield';
|
||||||
}
|
}
|
||||||
} else $value = '';
|
} else $value = '';
|
||||||
} elseif (preg_match('/^(text|html)/', $type))
|
} elseif (preg_match('/^(text|html)/', $type)) {
|
||||||
{
|
|
||||||
$value = dol_htmlentitiesbr($value);
|
$value = dol_htmlentitiesbr($value);
|
||||||
} elseif ($type == 'password')
|
} elseif ($type == 'password') {
|
||||||
{
|
|
||||||
$value = preg_replace('/./i', '*', $value);
|
$value = preg_replace('/./i', '*', $value);
|
||||||
} elseif ($type == 'array')
|
} elseif ($type == 'array') {
|
||||||
{
|
|
||||||
$value = implode('<br>', $value);
|
$value = implode('<br>', $value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -7372,8 +7331,7 @@ abstract class CommonObject
|
|||||||
*/
|
*/
|
||||||
protected function isArray($info)
|
protected function isArray($info)
|
||||||
{
|
{
|
||||||
if (is_array($info))
|
if (is_array($info)) {
|
||||||
{
|
|
||||||
if (isset($info['type']) && $info['type'] == 'array') return true;
|
if (isset($info['type']) && $info['type'] == 'array') return true;
|
||||||
else return false;
|
else return false;
|
||||||
}
|
}
|
||||||
@ -7400,8 +7358,7 @@ abstract class CommonObject
|
|||||||
*/
|
*/
|
||||||
public function isDuration($info)
|
public function isDuration($info)
|
||||||
{
|
{
|
||||||
if (is_array($info))
|
if (is_array($info)) {
|
||||||
{
|
|
||||||
if (isset($info['type']) && ($info['type'] == 'duration')) return true;
|
if (isset($info['type']) && ($info['type'] == 'duration')) return true;
|
||||||
else return false;
|
else return false;
|
||||||
} else return false;
|
} else return false;
|
||||||
@ -7415,8 +7372,7 @@ abstract class CommonObject
|
|||||||
*/
|
*/
|
||||||
public function isInt($info)
|
public function isInt($info)
|
||||||
{
|
{
|
||||||
if (is_array($info))
|
if (is_array($info)) {
|
||||||
{
|
|
||||||
if (isset($info['type']) && ($info['type'] == 'int' || preg_match('/^integer/i', $info['type']))) return true;
|
if (isset($info['type']) && ($info['type'] == 'int' || preg_match('/^integer/i', $info['type']))) return true;
|
||||||
else return false;
|
else return false;
|
||||||
} else return false;
|
} else return false;
|
||||||
@ -7430,8 +7386,7 @@ abstract class CommonObject
|
|||||||
*/
|
*/
|
||||||
public function isFloat($info)
|
public function isFloat($info)
|
||||||
{
|
{
|
||||||
if (is_array($info))
|
if (is_array($info)) {
|
||||||
{
|
|
||||||
if (isset($info['type']) && (preg_match('/^(double|real|price)/i', $info['type']))) return true;
|
if (isset($info['type']) && (preg_match('/^(double|real|price)/i', $info['type']))) return true;
|
||||||
else return false;
|
else return false;
|
||||||
}
|
}
|
||||||
@ -7446,8 +7401,7 @@ abstract class CommonObject
|
|||||||
*/
|
*/
|
||||||
public function isText($info)
|
public function isText($info)
|
||||||
{
|
{
|
||||||
if (is_array($info))
|
if (is_array($info)) {
|
||||||
{
|
|
||||||
if (isset($info['type']) && $info['type'] == 'text') return true;
|
if (isset($info['type']) && $info['type'] == 'text') return true;
|
||||||
else return false;
|
else return false;
|
||||||
}
|
}
|
||||||
@ -7462,8 +7416,7 @@ abstract class CommonObject
|
|||||||
*/
|
*/
|
||||||
protected function canBeNull($info)
|
protected function canBeNull($info)
|
||||||
{
|
{
|
||||||
if (is_array($info))
|
if (is_array($info)) {
|
||||||
{
|
|
||||||
if (isset($info['notnull']) && $info['notnull'] != '1') return true;
|
if (isset($info['notnull']) && $info['notnull'] != '1') return true;
|
||||||
else return false;
|
else return false;
|
||||||
}
|
}
|
||||||
@ -7478,8 +7431,7 @@ abstract class CommonObject
|
|||||||
*/
|
*/
|
||||||
protected function isForcedToNullIfZero($info)
|
protected function isForcedToNullIfZero($info)
|
||||||
{
|
{
|
||||||
if (is_array($info))
|
if (is_array($info)) {
|
||||||
{
|
|
||||||
if (isset($info['notnull']) && $info['notnull'] == '-1') return true;
|
if (isset($info['notnull']) && $info['notnull'] == '-1') return true;
|
||||||
else return false;
|
else return false;
|
||||||
}
|
}
|
||||||
@ -7494,8 +7446,7 @@ abstract class CommonObject
|
|||||||
*/
|
*/
|
||||||
protected function isIndex($info)
|
protected function isIndex($info)
|
||||||
{
|
{
|
||||||
if (is_array($info))
|
if (is_array($info)) {
|
||||||
{
|
|
||||||
if (isset($info['index']) && $info['index'] == true) return true;
|
if (isset($info['index']) && $info['index'] == true) return true;
|
||||||
else return false;
|
else return false;
|
||||||
}
|
}
|
||||||
@ -7582,8 +7533,7 @@ abstract class CommonObject
|
|||||||
{
|
{
|
||||||
foreach ($this->fields as $field => $info)
|
foreach ($this->fields as $field => $info)
|
||||||
{
|
{
|
||||||
if ($this->isDate($info))
|
if ($this->isDate($info)) {
|
||||||
{
|
|
||||||
if (empty($obj->{$field}) || $obj->{$field} === '0000-00-00 00:00:00' || $obj->{$field} === '1000-01-01 00:00:00') $this->{$field} = 0;
|
if (empty($obj->{$field}) || $obj->{$field} === '0000-00-00 00:00:00' || $obj->{$field} === '1000-01-01 00:00:00') $this->{$field} = 0;
|
||||||
else $this->{$field} = strtotime($obj->{$field});
|
else $this->{$field} = strtotime($obj->{$field});
|
||||||
} elseif ($this->isArray($info))
|
} elseif ($this->isArray($info))
|
||||||
@ -7595,12 +7545,10 @@ abstract class CommonObject
|
|||||||
} else {
|
} else {
|
||||||
$this->{$field} = array();
|
$this->{$field} = array();
|
||||||
}
|
}
|
||||||
} elseif ($this->isInt($info))
|
} elseif ($this->isInt($info)) {
|
||||||
{
|
|
||||||
if ($field == 'rowid') $this->id = (int) $obj->{$field};
|
if ($field == 'rowid') $this->id = (int) $obj->{$field};
|
||||||
else {
|
else {
|
||||||
if ($this->isForcedToNullIfZero($info))
|
if ($this->isForcedToNullIfZero($info)) {
|
||||||
{
|
|
||||||
if (empty($obj->{$field})) $this->{$field} = null;
|
if (empty($obj->{$field})) $this->{$field} = null;
|
||||||
else $this->{$field} = (double) $obj->{$field};
|
else $this->{$field} = (double) $obj->{$field};
|
||||||
} else {
|
} else {
|
||||||
@ -7611,10 +7559,8 @@ abstract class CommonObject
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} elseif ($this->isFloat($info))
|
} elseif ($this->isFloat($info)) {
|
||||||
{
|
if ($this->isForcedToNullIfZero($info)) {
|
||||||
if ($this->isForcedToNullIfZero($info))
|
|
||||||
{
|
|
||||||
if (empty($obj->{$field})) $this->{$field} = null;
|
if (empty($obj->{$field})) $this->{$field} = null;
|
||||||
else $this->{$field} = (double) $obj->{$field};
|
else $this->{$field} = (double) $obj->{$field};
|
||||||
} else {
|
} else {
|
||||||
@ -8373,8 +8319,8 @@ abstract class CommonObject
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Trim object parameters
|
* Trim object parameters
|
||||||
* @param string[] $parameters array of parameters to trim
|
|
||||||
*
|
*
|
||||||
|
* @param string[] $parameters array of parameters to trim
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function trimParameters($parameters)
|
public function trimParameters($parameters)
|
||||||
|
|||||||
@ -2038,7 +2038,7 @@ class ExtraFields
|
|||||||
$value_arr = GETPOST("options_".$key, 'alpha');
|
$value_arr = GETPOST("options_".$key, 'alpha');
|
||||||
$value_key = price2num($value_arr);
|
$value_key = price2num($value_arr);
|
||||||
} elseif (in_array($key_type, array('html'))) {
|
} elseif (in_array($key_type, array('html'))) {
|
||||||
$value_key = GETPOST("options_".$key, 'alpha');
|
$value_key = GETPOST("options_".$key, 'restricthtml');
|
||||||
} elseif (in_array($key_type, array('text'))) {
|
} elseif (in_array($key_type, array('text'))) {
|
||||||
$value_key = GETPOST("options_".$key, 'alphanohtml');
|
$value_key = GETPOST("options_".$key, 'alphanohtml');
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -188,7 +188,8 @@ class Form
|
|||||||
{
|
{
|
||||||
$ret .= $this->editInPlace($object, $value, $htmlname, $perm, $typeofdata, $editvalue, $extObject, $custommsg);
|
$ret .= $this->editInPlace($object, $value, $htmlname, $perm, $typeofdata, $editvalue, $extObject, $custommsg);
|
||||||
} else {
|
} else {
|
||||||
if (GETPOST('action', 'aZ09') == 'edit'.$htmlname)
|
$editmode = (GETPOST('action', 'aZ09') == 'edit'.$htmlname);
|
||||||
|
if ($editmode)
|
||||||
{
|
{
|
||||||
$ret .= "\n";
|
$ret .= "\n";
|
||||||
$ret .= '<form method="post" action="'.$_SERVER["PHP_SELF"].($moreparam ? '?'.$moreparam : '').'">';
|
$ret .= '<form method="post" action="'.$_SERVER["PHP_SELF"].($moreparam ? '?'.$moreparam : '').'">';
|
||||||
@ -1463,10 +1464,10 @@ class Form
|
|||||||
}
|
}
|
||||||
|
|
||||||
// We search third parties
|
// We search third parties
|
||||||
$sql = "SELECT sp.rowid, sp.lastname, sp.statut, sp.firstname, sp.poste";
|
$sql = "SELECT sp.rowid, sp.lastname, sp.statut, sp.firstname, sp.poste, sp.email, sp.phone, sp.phone_perso, sp.phone_mobile, sp.town AS contact_town";
|
||||||
if ($showsoc > 0) $sql .= " , s.nom as company";
|
if ($showsoc > 0 || !empty($conf->global->CONTACT_SHOW_EMAIL_PHONE_TOWN_SELECTLIST)) $sql .= ", s.nom as company, s.town AS company_town";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."socpeople as sp";
|
$sql .= " FROM ".MAIN_DB_PREFIX."socpeople as sp";
|
||||||
if ($showsoc > 0) $sql .= " LEFT OUTER JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid=sp.fk_soc";
|
if ($showsoc > 0 || !empty($conf->global->CONTACT_SHOW_EMAIL_PHONE_TOWN_SELECTLIST)) $sql .= " LEFT OUTER JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid=sp.fk_soc";
|
||||||
$sql .= " WHERE sp.entity IN (".getEntity('socpeople').")";
|
$sql .= " WHERE sp.entity IN (".getEntity('socpeople').")";
|
||||||
if ($socid > 0 || $socid == -1) $sql .= " AND sp.fk_soc=".$socid;
|
if ($socid > 0 || $socid == -1) $sql .= " AND sp.fk_soc=".$socid;
|
||||||
if (!empty($conf->global->CONTACT_HIDE_INACTIVE_IN_COMBOBOX)) $sql .= " AND sp.statut <> 0";
|
if (!empty($conf->global->CONTACT_HIDE_INACTIVE_IN_COMBOBOX)) $sql .= " AND sp.statut <> 0";
|
||||||
@ -1499,6 +1500,28 @@ class Form
|
|||||||
{
|
{
|
||||||
$obj = $this->db->fetch_object($resql);
|
$obj = $this->db->fetch_object($resql);
|
||||||
|
|
||||||
|
// Set email (or phones) and town extended infos
|
||||||
|
$extendedInfos = '';
|
||||||
|
if (!empty($conf->global->CONTACT_SHOW_EMAIL_PHONE_TOWN_SELECTLIST)) {
|
||||||
|
$extendedInfos = array();
|
||||||
|
$email = trim($obj->email);
|
||||||
|
if (!empty($email)) $extendedInfos[] = $email;
|
||||||
|
else {
|
||||||
|
$phone = trim($obj->phone);
|
||||||
|
$phone_perso = trim($obj->phone_perso);
|
||||||
|
$phone_mobile = trim($obj->phone_mobile);
|
||||||
|
if (!empty($phone)) $extendedInfos[] = $phone;
|
||||||
|
if (!empty($phone_perso)) $extendedInfos[] = $phone_perso;
|
||||||
|
if (!empty($phone_mobile)) $extendedInfos[] = $phone_mobile;
|
||||||
|
}
|
||||||
|
$contact_town = trim($obj->contact_town);
|
||||||
|
$company_town = trim($obj->company_town);
|
||||||
|
if (!empty($contact_town)) $extendedInfos[] = $contact_town;
|
||||||
|
elseif (!empty($company_town)) $extendedInfos[] = $company_town;
|
||||||
|
$extendedInfos = implode(' - ', $extendedInfos);
|
||||||
|
if (!empty($extendedInfos)) $extendedInfos = ' - ' . $extendedInfos;
|
||||||
|
}
|
||||||
|
|
||||||
$contactstatic->id = $obj->rowid;
|
$contactstatic->id = $obj->rowid;
|
||||||
$contactstatic->lastname = $obj->lastname;
|
$contactstatic->lastname = $obj->lastname;
|
||||||
$contactstatic->firstname = $obj->firstname;
|
$contactstatic->firstname = $obj->firstname;
|
||||||
@ -1513,7 +1536,7 @@ class Form
|
|||||||
$out .= '<option value="'.$obj->rowid.'"';
|
$out .= '<option value="'.$obj->rowid.'"';
|
||||||
if ($disabled) $out .= ' disabled';
|
if ($disabled) $out .= ' disabled';
|
||||||
$out .= ' selected>';
|
$out .= ' selected>';
|
||||||
$out .= $contactstatic->getFullName($langs);
|
$out .= $contactstatic->getFullName($langs) . $extendedInfos;
|
||||||
if ($showfunction && $obj->poste) $out .= ' ('.$obj->poste.')';
|
if ($showfunction && $obj->poste) $out .= ' ('.$obj->poste.')';
|
||||||
if (($showsoc > 0) && $obj->company) $out .= ' - ('.$obj->company.')';
|
if (($showsoc > 0) && $obj->company) $out .= ' - ('.$obj->company.')';
|
||||||
$out .= '</option>';
|
$out .= '</option>';
|
||||||
@ -1521,7 +1544,7 @@ class Form
|
|||||||
$out .= '<option value="'.$obj->rowid.'"';
|
$out .= '<option value="'.$obj->rowid.'"';
|
||||||
if ($disabled) $out .= ' disabled';
|
if ($disabled) $out .= ' disabled';
|
||||||
$out .= '>';
|
$out .= '>';
|
||||||
$out .= $contactstatic->getFullName($langs);
|
$out .= $contactstatic->getFullName($langs) . $extendedInfos;
|
||||||
if ($showfunction && $obj->poste) $out .= ' ('.$obj->poste.')';
|
if ($showfunction && $obj->poste) $out .= ' ('.$obj->poste.')';
|
||||||
if (($showsoc > 0) && $obj->company) $out .= ' - ('.$obj->company.')';
|
if (($showsoc > 0) && $obj->company) $out .= ' - ('.$obj->company.')';
|
||||||
$out .= '</option>';
|
$out .= '</option>';
|
||||||
@ -1529,7 +1552,7 @@ class Form
|
|||||||
} else {
|
} else {
|
||||||
if (in_array($obj->rowid, $selected))
|
if (in_array($obj->rowid, $selected))
|
||||||
{
|
{
|
||||||
$out .= $contactstatic->getFullName($langs);
|
$out .= $contactstatic->getFullName($langs) . $extendedInfos;
|
||||||
if ($showfunction && $obj->poste) $out .= ' ('.$obj->poste.')';
|
if ($showfunction && $obj->poste) $out .= ' ('.$obj->poste.')';
|
||||||
if (($showsoc > 0) && $obj->company) $out .= ' - ('.$obj->company.')';
|
if (($showsoc > 0) && $obj->company) $out .= ' - ('.$obj->company.')';
|
||||||
}
|
}
|
||||||
@ -4384,7 +4407,7 @@ class Form
|
|||||||
</script>';
|
</script>';
|
||||||
$formconfirm .= "<!-- end ajax formconfirm -->\n";
|
$formconfirm .= "<!-- end ajax formconfirm -->\n";
|
||||||
} else {
|
} else {
|
||||||
$formconfirm .= "\n<!-- begin formconfirm page=".$page." -->\n";
|
$formconfirm .= "\n<!-- begin formconfirm page=".dol_escape_htmltag($page)." -->\n";
|
||||||
|
|
||||||
if (empty($disableformtag)) $formconfirm .= '<form method="POST" action="'.$page.'" class="notoptoleftroright">'."\n";
|
if (empty($disableformtag)) $formconfirm .= '<form method="POST" action="'.$page.'" class="notoptoleftroright">'."\n";
|
||||||
|
|
||||||
@ -4415,7 +4438,7 @@ class Form
|
|||||||
$formconfirm .= '<td class="valid">';
|
$formconfirm .= '<td class="valid">';
|
||||||
$formconfirm .= $this->selectyesno("confirm", $newselectedchoice);
|
$formconfirm .= $this->selectyesno("confirm", $newselectedchoice);
|
||||||
$formconfirm .= '</td>';
|
$formconfirm .= '</td>';
|
||||||
$formconfirm .= '<td class="valid center"><input class="button valignmiddle" type="submit" value="'.$langs->trans("Validate").'"></td>';
|
$formconfirm .= '<td class="valid center"><input class="button valignmiddle confirmvalidatebutton" type="submit" value="'.$langs->trans("Validate").'"></td>';
|
||||||
$formconfirm .= '</tr>'."\n";
|
$formconfirm .= '</tr>'."\n";
|
||||||
|
|
||||||
$formconfirm .= '</table>'."\n";
|
$formconfirm .= '</table>'."\n";
|
||||||
@ -4423,6 +4446,23 @@ class Form
|
|||||||
if (empty($disableformtag)) $formconfirm .= "</form>\n";
|
if (empty($disableformtag)) $formconfirm .= "</form>\n";
|
||||||
$formconfirm .= '<br>';
|
$formconfirm .= '<br>';
|
||||||
|
|
||||||
|
if (empty($conf->use_javascript_ajax)) {
|
||||||
|
$formconfirm .= '<!-- code to disable button to avoid double clic -->';
|
||||||
|
$formconfirm .= '<script type="text/javascript">'."\n";
|
||||||
|
$formconfirm .= '
|
||||||
|
$(document).ready(function () {
|
||||||
|
$(".confirmvalidatebutton").on("click", function() {
|
||||||
|
console.log("We click on button");
|
||||||
|
$(this).attr("disabled", "disabled");
|
||||||
|
setTimeout(\'$(".confirmvalidatebutton").removeAttr("disabled")\', 3000);
|
||||||
|
//console.log($(this).closest("form"));
|
||||||
|
$(this).closest("form").submit();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
';
|
||||||
|
$formconfirm .= '</script>'."\n";
|
||||||
|
}
|
||||||
|
|
||||||
$formconfirm .= "<!-- end formconfirm -->\n";
|
$formconfirm .= "<!-- end formconfirm -->\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -101,7 +101,7 @@ class SimpleOpenID
|
|||||||
/**
|
/**
|
||||||
* SetRequiredFields
|
* SetRequiredFields
|
||||||
*
|
*
|
||||||
* @param string $a Server
|
* @param string|array $a Server
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function SetRequiredFields($a)
|
public function SetRequiredFields($a)
|
||||||
@ -118,7 +118,7 @@ class SimpleOpenID
|
|||||||
/**
|
/**
|
||||||
* SetOptionalFields
|
* SetOptionalFields
|
||||||
*
|
*
|
||||||
* @param string $a Server
|
* @param string|array $a Server
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function SetOptionalFields($a)
|
public function SetOptionalFields($a)
|
||||||
|
|||||||
@ -105,8 +105,8 @@ if (!($_SERVER['HTTP_REFERER'] === $dolibarr_main_url_root.'/' || $_SERVER['HTTP
|
|||||||
|
|
||||||
if (value.type == 'agenda')
|
if (value.type == 'agenda')
|
||||||
{
|
{
|
||||||
url = '<?php echo DOL_URL_ROOT.'/comm/action/card.php?id='; ?>' + value.id_agenda;
|
url = '<?php print DOL_URL_ROOT.'/comm/action/card.php?id='; ?>' + value.id_agenda;
|
||||||
title = '<?php print $langs->trans('EventReminder') ?>';
|
title = '<?php print dol_escape_js($langs->trans('EventReminder')) ?>';
|
||||||
}
|
}
|
||||||
var extra = {
|
var extra = {
|
||||||
icon: '<?php print DOL_URL_ROOT.'/theme/common/bell.png'; ?>',
|
icon: '<?php print DOL_URL_ROOT.'/theme/common/bell.png'; ?>',
|
||||||
|
|||||||
@ -3190,7 +3190,7 @@ function img_picto($titlealt, $picto, $moreatt = '', $pictoisfullpath = false, $
|
|||||||
'1downarrow', '1uparrow', '1leftarrow', '1rightarrow', '1uparrow_selected', '1downarrow_selected', '1leftarrow_selected', '1rightarrow_selected',
|
'1downarrow', '1uparrow', '1leftarrow', '1rightarrow', '1uparrow_selected', '1downarrow_selected', '1leftarrow_selected', '1rightarrow_selected',
|
||||||
'accountancy', 'account', 'accountline', 'action', 'add', 'address', 'bank_account', 'barcode', 'bank', 'bill', 'bookmark', 'bom', 'building',
|
'accountancy', 'account', 'accountline', 'action', 'add', 'address', 'bank_account', 'barcode', 'bank', 'bill', 'bookmark', 'bom', 'building',
|
||||||
'cash-register', 'category', 'check', 'clock', 'close_title', 'company', 'contact', 'contract', 'cubes',
|
'cash-register', 'category', 'check', 'clock', 'close_title', 'company', 'contact', 'contract', 'cubes',
|
||||||
'delete', 'dolly', 'dollyrevert', 'donation', 'edit', 'ellipsis-h', 'email', 'external-link-alt', 'external-link-square-alt',
|
'delete', 'dolly', 'dollyrevert', 'donation', 'edit', 'ellipsis-h', 'email', 'eraser', 'external-link-alt', 'external-link-square-alt',
|
||||||
'filter', 'file-code', 'file-export', 'file-import', 'file-upload', 'folder', 'folder-open', 'globe', 'globe-americas', 'grip', 'grip_title', 'group',
|
'filter', 'file-code', 'file-export', 'file-import', 'file-upload', 'folder', 'folder-open', 'globe', 'globe-americas', 'grip', 'grip_title', 'group',
|
||||||
'help', 'holiday',
|
'help', 'holiday',
|
||||||
'intervention', 'label', 'language', 'list', 'listlight', 'lot',
|
'intervention', 'label', 'language', 'list', 'listlight', 'lot',
|
||||||
@ -5525,23 +5525,25 @@ function yn($yesno, $case = 1, $color = 0)
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a path to have a the directory according to object where files are stored.
|
* Return a path to have a the directory according to object where files are stored.
|
||||||
* New usage: $conf->module->multidir_output[$object->entity].'/'.get_exdir(0, 0, 0, 1, $object, $modulepart)
|
* New usage: $conf->module->multidir_output[$object->entity].'/'.get_exdir(0, 0, 0, 1, $object, '')
|
||||||
* or: $conf->module->dir_output.'/'.get_exdir(0, 0, 0, 1, $object, $modulepart) if multidir_output not defined.
|
* or: $conf->module->dir_output.'/'.get_exdir(0, 0, 0, 1, $object, '') if multidir_output not defined.
|
||||||
* Example our with new usage: $object is invoice -> 'INYYMM-ABCD'
|
* Example our with new usage: $object is invoice -> 'INYYMM-ABCD'
|
||||||
* Example our with old usage: '015' with level 3->"0/1/5/", '015' with level 1->"5/", 'ABC-1' with level 3 ->"0/0/1/"
|
* Example our with old usage: '015' with level 3->"0/1/5/", '015' with level 1->"5/", 'ABC-1' with level 3 ->"0/0/1/"
|
||||||
*
|
*
|
||||||
* @param string $num Id of object (deprecated, $object will be used in future)
|
* @param string|int $num Id of object (deprecated, $object will be used in future)
|
||||||
* @param int $level Level of subdirs to return (1, 2 or 3 levels). (deprecated, global option will be used in future)
|
* @param int $level Level of subdirs to return (1, 2 or 3 levels). (deprecated, global option will be used in future)
|
||||||
* @param int $alpha 0=Keep number only to forge path, 1=Use alpha part afer the - (By default, use 0). (deprecated, global option will be used in future)
|
* @param int $alpha 0=Keep number only to forge path, 1=Use alpha part afer the - (By default, use 0). (deprecated, global option will be used in future)
|
||||||
* @param int $withoutslash 0=With slash at end (except if '/', we return ''), 1=without slash at end
|
* @param int $withoutslash 0=With slash at end (except if '/', we return ''), 1=without slash at end
|
||||||
* @param Object $object Object
|
* @param Object $object Object to use to get ref to forge the path.
|
||||||
* @param string $modulepart Type of object ('invoice_supplier, 'donation', 'invoice', ...')
|
* @param string $modulepart Type of object ('invoice_supplier, 'donation', 'invoice', ...'). Use '' for autodetect from $object.
|
||||||
* @return string Dir to use ending. Example '' or '1/' or '1/2/'
|
* @return string Dir to use ending. Example '' or '1/' or '1/2/'
|
||||||
*/
|
*/
|
||||||
function get_exdir($num, $level, $alpha, $withoutslash, $object, $modulepart)
|
function get_exdir($num, $level, $alpha, $withoutslash, $object, $modulepart = '')
|
||||||
{
|
{
|
||||||
global $conf;
|
global $conf;
|
||||||
|
|
||||||
|
if (empty($modulepart) && !empty($object->module)) $modulepart = $object->module;
|
||||||
|
|
||||||
$path = '';
|
$path = '';
|
||||||
|
|
||||||
$arrayforoldpath = array('cheque', 'user', 'category', 'holiday', 'supplier_invoice', 'invoice_supplier', 'mailing', 'supplier_payment');
|
$arrayforoldpath = array('cheque', 'user', 'category', 'holiday', 'supplier_invoice', 'invoice_supplier', 'mailing', 'supplier_payment');
|
||||||
@ -5556,14 +5558,12 @@ function get_exdir($num, $level, $alpha, $withoutslash, $object, $modulepart)
|
|||||||
if ($level == 2) $path = substr($num, 1, 1).'/'.substr($num, 0, 1);
|
if ($level == 2) $path = substr($num, 1, 1).'/'.substr($num, 0, 1);
|
||||||
if ($level == 3) $path = substr($num, 2, 1).'/'.substr($num, 1, 1).'/'.substr($num, 0, 1);
|
if ($level == 3) $path = substr($num, 2, 1).'/'.substr($num, 1, 1).'/'.substr($num, 0, 1);
|
||||||
} else {
|
} else {
|
||||||
// TODO
|
// We will enhance here a common way of forging path for document storage.
|
||||||
// We will enhance here a common way of forging path for document storage
|
// In a future, we may distribut directories on several levels depending on setup and object.
|
||||||
// Here, object->id, object->ref and modulepart are required.
|
// Here, $object->id, $object->ref and $modulepart are required.
|
||||||
//var_dump($modulepart);
|
//var_dump($modulepart);
|
||||||
if (in_array($modulepart, array('thirdparty', 'contact', 'member', 'propal', 'proposal', 'commande', 'order', 'facture', 'invoice',
|
if (! in_array($modulepart, array('product'))) { // Test to remove
|
||||||
'supplier_order', 'supplier_proposal', 'shipment', 'contract', 'expensereport', 'ficheinter')))
|
$path = dol_sanitizeFileName(empty($object->ref) ? $object->id : $object->ref);
|
||||||
{
|
|
||||||
$path = ($object->ref ? $object->ref : $object->id);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6260,12 +6260,12 @@ function getCommonSubstitutionArray($outputlangs, $onlykey = 0, $exclude = null,
|
|||||||
$substitutionarray['__REFCLIENT__'] = (isset($object->ref_client) ? $object->ref_client : (isset($object->ref_customer) ? $object->ref_customer : null));
|
$substitutionarray['__REFCLIENT__'] = (isset($object->ref_client) ? $object->ref_client : (isset($object->ref_customer) ? $object->ref_customer : null));
|
||||||
$substitutionarray['__REFSUPPLIER__'] = (isset($object->ref_supplier) ? $object->ref_supplier : null);
|
$substitutionarray['__REFSUPPLIER__'] = (isset($object->ref_supplier) ? $object->ref_supplier : null);
|
||||||
$substitutionarray['__SUPPLIER_ORDER_DATE_DELIVERY__'] = (isset($object->date_livraison) ? dol_print_date($object->date_livraison, 'day', 0, $outputlangs) : '');
|
$substitutionarray['__SUPPLIER_ORDER_DATE_DELIVERY__'] = (isset($object->date_livraison) ? dol_print_date($object->date_livraison, 'day', 0, $outputlangs) : '');
|
||||||
$substitutionarray['__SUPPLIER_ORDER_DELAY_DELIVERY__'] = $outputlangs->transnoentities("AvailabilityType".$object->availability_code) != ('AvailabilityType'.$object->availability_code) ? $outputlangs->transnoentities("AvailabilityType".$object->availability_code) : $outputlangs->convToOutputCharset(isset($object->availability) ? $object->availability : '');
|
$substitutionarray['__SUPPLIER_ORDER_DELAY_DELIVERY__'] = (isset($object->availability_code) ? ($outputlangs->transnoentities("AvailabilityType".$object->availability_code) != ('AvailabilityType'.$object->availability_code) ? $outputlangs->transnoentities("AvailabilityType".$object->availability_code) : $outputlangs->convToOutputCharset(isset($object->availability) ? $object->availability : '')) : '');
|
||||||
|
|
||||||
$birthday = dol_print_date($object->birth, 'day');
|
|
||||||
|
|
||||||
if (is_object($object) && ($object->element == 'adherent' || $object->element == 'member') && $object->id > 0)
|
if (is_object($object) && ($object->element == 'adherent' || $object->element == 'member') && $object->id > 0)
|
||||||
{
|
{
|
||||||
|
$birthday = (empty($object->birth) ? '': dol_print_date($object->birth, 'day'));
|
||||||
|
|
||||||
$substitutionarray['__MEMBER_ID__'] = (isset($object->id) ? $object->id : '');
|
$substitutionarray['__MEMBER_ID__'] = (isset($object->id) ? $object->id : '');
|
||||||
if (method_exists($object, 'getCivilityLabel')) $substitutionarray['__MEMBER_CIVILITY__'] = $object->getCivilityLabel();
|
if (method_exists($object, 'getCivilityLabel')) $substitutionarray['__MEMBER_CIVILITY__'] = $object->getCivilityLabel();
|
||||||
$substitutionarray['__MEMBER_FIRSTNAME__'] = (isset($object->firstname) ? $object->firstname : '');
|
$substitutionarray['__MEMBER_FIRSTNAME__'] = (isset($object->firstname) ? $object->firstname : '');
|
||||||
@ -6660,6 +6660,14 @@ function complete_substitutions_array(&$substitutionarray, $outputlangs, $object
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (!empty($conf->global->ODT_ENABLE_ALL_TAGS_IN_SUBSTITUTIONS)) {
|
||||||
|
// to list all tags in odt template
|
||||||
|
$tags = '';
|
||||||
|
foreach ($substitutionarray as $key => $value) {
|
||||||
|
$tags .= '{' . $key . '} => ' . $value ."\n";
|
||||||
|
}
|
||||||
|
$substitutionarray = array_merge($substitutionarray, array('__ALL_TAGS__' => $tags));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -90,16 +90,6 @@ function product_prepare_head($object)
|
|||||||
$h++;
|
$h++;
|
||||||
}
|
}
|
||||||
|
|
||||||
$head[$h][0] = DOL_URL_ROOT."/product/stats/card.php?id=".$object->id;
|
|
||||||
$head[$h][1] = $langs->trans('Statistics');
|
|
||||||
$head[$h][2] = 'stats';
|
|
||||||
$h++;
|
|
||||||
|
|
||||||
$head[$h][0] = DOL_URL_ROOT."/product/stats/facture.php?showmessage=1&id=".$object->id;
|
|
||||||
$head[$h][1] = $langs->trans('Referers');
|
|
||||||
$head[$h][2] = 'referers';
|
|
||||||
$h++;
|
|
||||||
|
|
||||||
if (!empty($conf->variants->enabled) && ($object->isProduct() || $object->isService())) {
|
if (!empty($conf->variants->enabled) && ($object->isProduct() || $object->isService())) {
|
||||||
global $db;
|
global $db;
|
||||||
|
|
||||||
@ -149,6 +139,16 @@ function product_prepare_head($object)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$head[$h][0] = DOL_URL_ROOT."/product/stats/facture.php?showmessage=1&id=".$object->id;
|
||||||
|
$head[$h][1] = $langs->trans('Referers');
|
||||||
|
$head[$h][2] = 'referers';
|
||||||
|
$h++;
|
||||||
|
|
||||||
|
$head[$h][0] = DOL_URL_ROOT."/product/stats/card.php?id=".$object->id;
|
||||||
|
$head[$h][1] = $langs->trans('Statistics');
|
||||||
|
$head[$h][2] = 'stats';
|
||||||
|
$h++;
|
||||||
|
|
||||||
// Show more tabs from modules
|
// Show more tabs from modules
|
||||||
// Entries must be declared in modules descriptor with line
|
// Entries must be declared in modules descriptor with line
|
||||||
// $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab
|
// $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab
|
||||||
|
|||||||
@ -239,7 +239,7 @@ function llxHeaderTicket($title, $head = "", $disablejs = 0, $disablehead = 0, $
|
|||||||
}
|
}
|
||||||
print '</div>';
|
print '</div>';
|
||||||
if (empty($conf->global->MAIN_HIDE_POWERED_BY)) {
|
if (empty($conf->global->MAIN_HIDE_POWERED_BY)) {
|
||||||
print '<div class="poweredbypublicpayment opacitymedium right"><a href="https://www.dolibarr.org" target="dolibarr" rel="noopener">'.$langs->trans("PoweredBy").'<br><img src="'.DOL_URL_ROOT.'/theme/dolibarr_logo.svg" width="80px"></a></div>';
|
print '<div class="poweredbypublicpayment opacitymedium right"><a class="poweredbyhref?utm_medium=website&utm_source=poweredby" href="https://www.dolibarr.org" target="dolibarr" rel="noopener">'.$langs->trans("PoweredBy").'<br><img src="'.DOL_URL_ROOT.'/theme/dolibarr_logo.svg" width="80px"></a></div>';
|
||||||
}
|
}
|
||||||
print '</div>';
|
print '</div>';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -93,7 +93,7 @@ class pdf_ban extends ModeleBankAccountDoc
|
|||||||
/**
|
/**
|
||||||
* Fonction generant le projet sur le disque
|
* Fonction generant le projet sur le disque
|
||||||
*
|
*
|
||||||
* @param Project $object Object project a generer
|
* @param Account $object Object Account to generate
|
||||||
* @param Translate $outputlangs Lang output object
|
* @param Translate $outputlangs Lang output object
|
||||||
* @return int 1 if OK, <=0 if KO
|
* @return int 1 if OK, <=0 if KO
|
||||||
*/
|
*/
|
||||||
@ -114,8 +114,7 @@ class pdf_ban extends ModeleBankAccountDoc
|
|||||||
//$nblines = count($object->lines); // This is set later with array of tasks
|
//$nblines = count($object->lines); // This is set later with array of tasks
|
||||||
|
|
||||||
// Definition of $dir and $file
|
// Definition of $dir and $file
|
||||||
if ($object->specimen)
|
if ($object->specimen) {
|
||||||
{
|
|
||||||
$dir = $conf->bank->dir_output;
|
$dir = $conf->bank->dir_output;
|
||||||
$file = $dir."/SPECIMEN.pdf";
|
$file = $dir."/SPECIMEN.pdf";
|
||||||
} else {
|
} else {
|
||||||
@ -293,7 +292,7 @@ class pdf_ban extends ModeleBankAccountDoc
|
|||||||
* Show top header of page.
|
* Show top header of page.
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Project $object Object to show
|
* @param Account $object Object to show
|
||||||
* @param int $showaddress 0=no, 1=yes
|
* @param int $showaddress 0=no, 1=yes
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @return void
|
* @return void
|
||||||
@ -378,7 +377,7 @@ class pdf_ban extends ModeleBankAccountDoc
|
|||||||
* Show footer of page. Need this->emetteur object
|
* Show footer of page. Need this->emetteur object
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf PDF
|
* @param TCPDF $pdf PDF
|
||||||
* @param Project $object Object to show
|
* @param Account $object Object to show
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @param int $hidefreetext 1=Hide free text
|
* @param int $hidefreetext 1=Hide free text
|
||||||
* @return integer
|
* @return integer
|
||||||
|
|||||||
@ -90,16 +90,16 @@ class pdf_sepamandate extends ModeleBankAccountDoc
|
|||||||
|
|
||||||
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||||
/**
|
/**
|
||||||
* Fonction generant le projet sur le disque
|
* Function to create pdf of company bank account sepa mandate
|
||||||
*
|
*
|
||||||
* @param Project $object Object project a generer
|
* @param CompanyBankAccount $object Object bank account to generate document for
|
||||||
* @param Translate $outputlangs Lang output object
|
* @param Translate $outputlangs Lang output object
|
||||||
* @param string $srctemplatepath Full path of source filename for generator using a template file
|
* @param string $srctemplatepath Full path of source filename for generator using a template file
|
||||||
* @param int $hidedetails Do not show line details (not used for this template)
|
* @param int $hidedetails Do not show line details (not used for this template)
|
||||||
* @param int $hidedesc Do not show desc (not used for this template)
|
* @param int $hidedesc Do not show desc (not used for this template)
|
||||||
* @param int $hideref Do not show ref (not used for this template)
|
* @param int $hideref Do not show ref (not used for this template)
|
||||||
* @param null|array $moreparams More parameters
|
* @param null|array $moreparams More parameters
|
||||||
* @return int 1 if OK, <=0 if KO
|
* @return int 1 if OK, <=0 if KO
|
||||||
*/
|
*/
|
||||||
public function write_file($object, $outputlangs, $srctemplatepath = '', $hidedetails = 0, $hidedesc = 0, $hideref = 0, $moreparams = null)
|
public function write_file($object, $outputlangs, $srctemplatepath = '', $hidedetails = 0, $hidedesc = 0, $hideref = 0, $moreparams = null)
|
||||||
{
|
{
|
||||||
@ -447,10 +447,10 @@ class pdf_sepamandate extends ModeleBankAccountDoc
|
|||||||
/**
|
/**
|
||||||
* Show miscellaneous information (payment mode, payment term, ...)
|
* Show miscellaneous information (payment mode, payment term, ...)
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Object $object Object to show
|
* @param CompanyBankAccount $object Object to show
|
||||||
* @param int $posy Y
|
* @param int $posy Y
|
||||||
* @param Translate $outputlangs Langs object
|
* @param Translate $outputlangs Langs object
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
protected function _tableau_info(&$pdf, $object, $posy, $outputlangs)
|
protected function _tableau_info(&$pdf, $object, $posy, $outputlangs)
|
||||||
@ -485,11 +485,11 @@ class pdf_sepamandate extends ModeleBankAccountDoc
|
|||||||
/**
|
/**
|
||||||
* Show area for the customer to sign
|
* Show area for the customer to sign
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Facture $object Object invoice
|
* @param CompanyBankAccount $object Object invoice
|
||||||
* @param int $posy Position depart
|
* @param int $posy Position depart
|
||||||
* @param Translate $outputlangs Objet langs
|
* @param Translate $outputlangs Objet langs
|
||||||
* @return int Position pour suite
|
* @return int Position pour suite
|
||||||
*/
|
*/
|
||||||
protected function _signature_area(&$pdf, $object, $posy, $outputlangs)
|
protected function _signature_area(&$pdf, $object, $posy, $outputlangs)
|
||||||
{
|
{
|
||||||
@ -527,10 +527,10 @@ class pdf_sepamandate extends ModeleBankAccountDoc
|
|||||||
/**
|
/**
|
||||||
* Show top header of page.
|
* Show top header of page.
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Project $object Object to show
|
* @param CompanyBankAccount $object Object to show
|
||||||
* @param int $showaddress 0=no, 1=yes
|
* @param int $showaddress 0=no, 1=yes
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs)
|
protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs)
|
||||||
@ -615,13 +615,13 @@ class pdf_sepamandate extends ModeleBankAccountDoc
|
|||||||
|
|
||||||
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore
|
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore
|
||||||
/**
|
/**
|
||||||
* Show footer of page. Need this->emetteur object
|
* Show footer of page. Need this->emetteur object
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf PDF
|
* @param TCPDF $pdf PDF
|
||||||
* @param Project $object Object to show
|
* @param CompanyBankAccount $object Object to show
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @param int $hidefreetext 1=Hide free text
|
* @param int $hidefreetext 1=Hide free text
|
||||||
* @return integer
|
* @return integer
|
||||||
*/
|
*/
|
||||||
protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0)
|
protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
* Copyright (C) 2012 Cedric Salvador <csalvador@gpcsolutions.fr>
|
* Copyright (C) 2012 Cedric Salvador <csalvador@gpcsolutions.fr>
|
||||||
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
|
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
|
||||||
* Copyright (C) 2017-2018 Ferran Marcet <fmarcet@2byte.es>
|
* Copyright (C) 2017-2018 Ferran Marcet <fmarcet@2byte.es>
|
||||||
* Copyright (C) 2018-2019 Frédéric France <frederic.france@netlogic.fr>
|
* Copyright (C) 2018-2020 Frédéric France <frederic.france@netlogic.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -204,7 +204,7 @@ class pdf_einstein extends ModelePDFCommandes
|
|||||||
/**
|
/**
|
||||||
* Function to build pdf onto disk
|
* Function to build pdf onto disk
|
||||||
*
|
*
|
||||||
* @param Object $object Object to generate
|
* @param Commande $object Object to generate
|
||||||
* @param Translate $outputlangs Lang output object
|
* @param Translate $outputlangs Lang output object
|
||||||
* @param string $srctemplatepath Full path of source filename for generator using a template file
|
* @param string $srctemplatepath Full path of source filename for generator using a template file
|
||||||
* @param int $hidedetails Do not show line details
|
* @param int $hidedetails Do not show line details
|
||||||
@ -343,7 +343,7 @@ class pdf_einstein extends ModelePDFCommandes
|
|||||||
|
|
||||||
// Incoterm
|
// Incoterm
|
||||||
$height_incoterms = 0;
|
$height_incoterms = 0;
|
||||||
if ($conf->incoterm->enabled)
|
if (!empty($conf->incoterm->enabled))
|
||||||
{
|
{
|
||||||
$desc_incoterms = $object->getIncotermsForPDF();
|
$desc_incoterms = $object->getIncotermsForPDF();
|
||||||
if ($desc_incoterms)
|
if ($desc_incoterms)
|
||||||
@ -655,7 +655,7 @@ class pdf_einstein extends ModelePDFCommandes
|
|||||||
* Show payments table
|
* Show payments table
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Object $object Object order
|
* @param Commande $object Object order
|
||||||
* @param int $posy Position y in PDF
|
* @param int $posy Position y in PDF
|
||||||
* @param Translate $outputlangs Object langs for output
|
* @param Translate $outputlangs Object langs for output
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
@ -671,7 +671,7 @@ class pdf_einstein extends ModelePDFCommandes
|
|||||||
* Show miscellaneous information (payment mode, payment term, ...)
|
* Show miscellaneous information (payment mode, payment term, ...)
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Object $object Object to show
|
* @param Commande $object Object to show
|
||||||
* @param int $posy Y
|
* @param int $posy Y
|
||||||
* @param Translate $outputlangs Langs object
|
* @param Translate $outputlangs Langs object
|
||||||
* @return int
|
* @return int
|
||||||
@ -741,7 +741,7 @@ class pdf_einstein extends ModelePDFCommandes
|
|||||||
}*/
|
}*/
|
||||||
|
|
||||||
// Show planed date of delivery
|
// Show planed date of delivery
|
||||||
if (!empty($object->date_livraison))
|
if (!empty($object->delivery_date))
|
||||||
{
|
{
|
||||||
$outputlangs->load("sendings");
|
$outputlangs->load("sendings");
|
||||||
$pdf->SetFont('', 'B', $default_font_size - 2);
|
$pdf->SetFont('', 'B', $default_font_size - 2);
|
||||||
@ -750,12 +750,12 @@ class pdf_einstein extends ModelePDFCommandes
|
|||||||
$pdf->MultiCell(80, 4, $titre, 0, 'L');
|
$pdf->MultiCell(80, 4, $titre, 0, 'L');
|
||||||
$pdf->SetFont('', '', $default_font_size - 2);
|
$pdf->SetFont('', '', $default_font_size - 2);
|
||||||
$pdf->SetXY($posxval, $posy);
|
$pdf->SetXY($posxval, $posy);
|
||||||
$dlp = dol_print_date($object->date_livraison, "daytext", false, $outputlangs, true);
|
$dlp = dol_print_date($object->delivery_date, "daytext", false, $outputlangs, true);
|
||||||
$pdf->MultiCell(80, 4, $dlp, 0, 'L');
|
$pdf->MultiCell(80, 4, $dlp, 0, 'L');
|
||||||
|
|
||||||
$posy = $pdf->GetY() + 1;
|
$posy = $pdf->GetY() + 1;
|
||||||
} elseif ($object->availability_code || $object->availability) // Show availability conditions
|
} elseif ($object->availability_code || $object->availability) {
|
||||||
{
|
// Show availability conditions
|
||||||
$pdf->SetFont('', 'B', $default_font_size - 2);
|
$pdf->SetFont('', 'B', $default_font_size - 2);
|
||||||
$pdf->SetXY($this->marge_gauche, $posy);
|
$pdf->SetXY($this->marge_gauche, $posy);
|
||||||
$titre = $outputlangs->transnoentities("AvailabilityPeriod").':';
|
$titre = $outputlangs->transnoentities("AvailabilityPeriod").':';
|
||||||
@ -859,7 +859,7 @@ class pdf_einstein extends ModelePDFCommandes
|
|||||||
* Show total to pay
|
* Show total to pay
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Facture $object Object invoice
|
* @param Commande $object Object invoice
|
||||||
* @param int $deja_regle Montant deja regle
|
* @param int $deja_regle Montant deja regle
|
||||||
* @param int $posy Position depart
|
* @param int $posy Position depart
|
||||||
* @param Translate $outputlangs Objet langs
|
* @param Translate $outputlangs Objet langs
|
||||||
@ -1242,7 +1242,7 @@ class pdf_einstein extends ModelePDFCommandes
|
|||||||
* Show top header of page.
|
* Show top header of page.
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Object $object Object to show
|
* @param Commande $object Object to show
|
||||||
* @param int $showaddress 0=no, 1=yes
|
* @param int $showaddress 0=no, 1=yes
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @param Translate $outputlangsbis Object lang for output bis
|
* @param Translate $outputlangsbis Object lang for output bis
|
||||||
@ -1495,7 +1495,7 @@ class pdf_einstein extends ModelePDFCommandes
|
|||||||
* Show footer of page. Need this->emetteur object
|
* Show footer of page. Need this->emetteur object
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf PDF
|
* @param TCPDF $pdf PDF
|
||||||
* @param Object $object Object to show
|
* @param Commande $object Object to show
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @param int $hidefreetext 1=Hide free text
|
* @param int $hidefreetext 1=Hide free text
|
||||||
* @return int Return height of bottom margin including footer text
|
* @return int Return height of bottom margin including footer text
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
* Copyright (C) 2012 Cedric Salvador <csalvador@gpcsolutions.fr>
|
* Copyright (C) 2012 Cedric Salvador <csalvador@gpcsolutions.fr>
|
||||||
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
|
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
|
||||||
* Copyright (C) 2017 Ferran Marcet <fmarcet@2byte.es>
|
* Copyright (C) 2017 Ferran Marcet <fmarcet@2byte.es>
|
||||||
* Copyright (C) 2018-2019 Frédéric France <frederic.france@netlogic.fr>
|
* Copyright (C) 2018-2020 Frédéric France <frederic.france@netlogic.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -188,7 +188,7 @@ class pdf_eratosthene extends ModelePDFCommandes
|
|||||||
/**
|
/**
|
||||||
* Function to build pdf onto disk
|
* Function to build pdf onto disk
|
||||||
*
|
*
|
||||||
* @param Object $object Object to generate
|
* @param Commande $object Object to generate
|
||||||
* @param Translate $outputlangs Lang output object
|
* @param Translate $outputlangs Lang output object
|
||||||
* @param string $srctemplatepath Full path of source filename for generator using a template file
|
* @param string $srctemplatepath Full path of source filename for generator using a template file
|
||||||
* @param int $hidedetails Do not show line details
|
* @param int $hidedetails Do not show line details
|
||||||
@ -381,7 +381,7 @@ class pdf_eratosthene extends ModelePDFCommandes
|
|||||||
|
|
||||||
// Incoterm
|
// Incoterm
|
||||||
$height_incoterms = 0;
|
$height_incoterms = 0;
|
||||||
if ($conf->incoterm->enabled)
|
if (!empty($conf->incoterm->enabled))
|
||||||
{
|
{
|
||||||
$desc_incoterms = $object->getIncotermsForPDF();
|
$desc_incoterms = $object->getIncotermsForPDF();
|
||||||
if ($desc_incoterms)
|
if ($desc_incoterms)
|
||||||
@ -876,7 +876,7 @@ class pdf_eratosthene extends ModelePDFCommandes
|
|||||||
* Show payments table
|
* Show payments table
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Object $object Object order
|
* @param Commande $object Object order
|
||||||
* @param int $posy Position y in PDF
|
* @param int $posy Position y in PDF
|
||||||
* @param Translate $outputlangs Object langs for output
|
* @param Translate $outputlangs Object langs for output
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
@ -889,7 +889,7 @@ class pdf_eratosthene extends ModelePDFCommandes
|
|||||||
* Show miscellaneous information (payment mode, payment term, ...)
|
* Show miscellaneous information (payment mode, payment term, ...)
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Object $object Object to show
|
* @param Commande $object Object to show
|
||||||
* @param int $posy Y
|
* @param int $posy Y
|
||||||
* @param Translate $outputlangs Langs object
|
* @param Translate $outputlangs Langs object
|
||||||
* @return int Pos y
|
* @return int Pos y
|
||||||
@ -958,7 +958,7 @@ class pdf_eratosthene extends ModelePDFCommandes
|
|||||||
}*/
|
}*/
|
||||||
|
|
||||||
// Show planed date of delivery
|
// Show planed date of delivery
|
||||||
if (!empty($object->date_livraison))
|
if (!empty($object->delivery_date))
|
||||||
{
|
{
|
||||||
$outputlangs->load("sendings");
|
$outputlangs->load("sendings");
|
||||||
$pdf->SetFont('', 'B', $default_font_size - 2);
|
$pdf->SetFont('', 'B', $default_font_size - 2);
|
||||||
@ -967,7 +967,7 @@ class pdf_eratosthene extends ModelePDFCommandes
|
|||||||
$pdf->MultiCell(80, 4, $titre, 0, 'L');
|
$pdf->MultiCell(80, 4, $titre, 0, 'L');
|
||||||
$pdf->SetFont('', '', $default_font_size - 2);
|
$pdf->SetFont('', '', $default_font_size - 2);
|
||||||
$pdf->SetXY($posxval, $posy);
|
$pdf->SetXY($posxval, $posy);
|
||||||
$dlp = dol_print_date($object->date_livraison, "daytext", false, $outputlangs, true);
|
$dlp = dol_print_date($object->delivery_date, "daytext", false, $outputlangs, true);
|
||||||
$pdf->MultiCell(80, 4, $dlp, 0, 'L');
|
$pdf->MultiCell(80, 4, $dlp, 0, 'L');
|
||||||
|
|
||||||
$posy = $pdf->GetY() + 1;
|
$posy = $pdf->GetY() + 1;
|
||||||
@ -1074,8 +1074,8 @@ class pdf_eratosthene extends ModelePDFCommandes
|
|||||||
/**
|
/**
|
||||||
* Show total to pay
|
* Show total to pay
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Facture $object Object invoice
|
* @param Commande $object Object to show
|
||||||
* @param int $deja_regle Montant deja regle
|
* @param int $deja_regle Montant deja regle
|
||||||
* @param int $posy Position depart
|
* @param int $posy Position depart
|
||||||
* @param Translate $outputlangs Objet langs
|
* @param Translate $outputlangs Objet langs
|
||||||
@ -1404,7 +1404,7 @@ class pdf_eratosthene extends ModelePDFCommandes
|
|||||||
* Show top header of page.
|
* Show top header of page.
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Object $object Object to show
|
* @param Commande $object Object to show
|
||||||
* @param int $showaddress 0=no, 1=yes
|
* @param int $showaddress 0=no, 1=yes
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @param Translate $outputlangsbis Object lang for output bis
|
* @param Translate $outputlangsbis Object lang for output bis
|
||||||
@ -1658,7 +1658,7 @@ class pdf_eratosthene extends ModelePDFCommandes
|
|||||||
* Show footer of page. Need this->emetteur object
|
* Show footer of page. Need this->emetteur object
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf PDF
|
* @param TCPDF $pdf PDF
|
||||||
* @param Object $object Object to show
|
* @param Commande $object Object to show
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @param int $hidefreetext 1=Hide free text
|
* @param int $hidefreetext 1=Hide free text
|
||||||
* @return int Return height of bottom margin including footer text
|
* @return int Return height of bottom margin including footer text
|
||||||
@ -1676,7 +1676,7 @@ class pdf_eratosthene extends ModelePDFCommandes
|
|||||||
/**
|
/**
|
||||||
* Define Array Column Field
|
* Define Array Column Field
|
||||||
*
|
*
|
||||||
* @param object $object common object
|
* @param Commande $object common object
|
||||||
* @param Translate $outputlangs langs
|
* @param Translate $outputlangs langs
|
||||||
* @param int $hidedetails Do not show line details
|
* @param int $hidedetails Do not show line details
|
||||||
* @param int $hidedesc Do not show desc
|
* @param int $hidedesc Do not show desc
|
||||||
|
|||||||
@ -63,7 +63,7 @@ class pdf_proforma extends pdf_eratosthene
|
|||||||
* Show top header of page.
|
* Show top header of page.
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Object $object Object to show
|
* @param Commande $object Object to show
|
||||||
* @param int $showaddress 0=no, 1=yes
|
* @param int $showaddress 0=no, 1=yes
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @param string $titlekey Translation key to show as title of document
|
* @param string $titlekey Translation key to show as title of document
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
* Copyright (C) 2011 Fabrice CHERRIER
|
* Copyright (C) 2011 Fabrice CHERRIER
|
||||||
* Copyright (C) 2013-2020 Philippe Grand <philippe.grand@atoo-net.com>
|
* Copyright (C) 2013-2020 Philippe Grand <philippe.grand@atoo-net.com>
|
||||||
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
|
* Copyright (C) 2015 Marcos García <marcosgdf@gmail.com>
|
||||||
* Copyright (C) 2018 Frédéric France <frederic.france@netlogic.fr>
|
* Copyright (C) 2018-2020 Frédéric France <frederic.france@netlogic.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -164,8 +164,8 @@ class pdf_strato extends ModelePDFContract
|
|||||||
/**
|
/**
|
||||||
* Function to build pdf onto disk
|
* Function to build pdf onto disk
|
||||||
*
|
*
|
||||||
* @param CommonObject $object Id of object to generate
|
* @param Contrat $object Object to generate
|
||||||
* @param object $outputlangs Lang output object
|
* @param Translate $outputlangs Lang output object
|
||||||
* @param string $srctemplatepath Full path of source filename for generator using a template file
|
* @param string $srctemplatepath Full path of source filename for generator using a template file
|
||||||
* @param int $hidedetails Do not show line details
|
* @param int $hidedetails Do not show line details
|
||||||
* @param int $hidedesc Do not show desc
|
* @param int $hidedesc Do not show desc
|
||||||
@ -580,7 +580,7 @@ class pdf_strato extends ModelePDFContract
|
|||||||
* Show top header of page.
|
* Show top header of page.
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param CommonObject $object Object to show
|
* @param Contrat $object Object to show
|
||||||
* @param int $showaddress 0=no, 1=yes
|
* @param int $showaddress 0=no, 1=yes
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @return void
|
* @return void
|
||||||
@ -756,7 +756,7 @@ class pdf_strato extends ModelePDFContract
|
|||||||
* Show footer of page. Need this->emetteur object
|
* Show footer of page. Need this->emetteur object
|
||||||
*
|
*
|
||||||
* @param PDF $pdf PDF
|
* @param PDF $pdf PDF
|
||||||
* @param CommonObject $object Object to show
|
* @param Contrat $object Object to show
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @param int $hidefreetext 1=Hide free text
|
* @param int $hidefreetext 1=Hide free text
|
||||||
* @return integer
|
* @return integer
|
||||||
|
|||||||
@ -346,7 +346,7 @@ class pdf_storm extends ModelePDFDeliveryOrder
|
|||||||
|
|
||||||
// Incoterm
|
// Incoterm
|
||||||
$height_incoterms = 0;
|
$height_incoterms = 0;
|
||||||
if ($conf->incoterm->enabled)
|
if (!empty($conf->incoterm->enabled))
|
||||||
{
|
{
|
||||||
$desc_incoterms = $object->getIncotermsForPDF();
|
$desc_incoterms = $object->getIncotermsForPDF();
|
||||||
if ($desc_incoterms)
|
if ($desc_incoterms)
|
||||||
@ -652,7 +652,7 @@ class pdf_storm extends ModelePDFDeliveryOrder
|
|||||||
* Show miscellaneous information (payment mode, payment term, ...)
|
* Show miscellaneous information (payment mode, payment term, ...)
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Object $object Object to show
|
* @param Delivery $object Object to show
|
||||||
* @param int $posy Y
|
* @param int $posy Y
|
||||||
* @param Translate $outputlangs Langs object
|
* @param Translate $outputlangs Langs object
|
||||||
* @return void
|
* @return void
|
||||||
@ -730,7 +730,7 @@ class pdf_storm extends ModelePDFDeliveryOrder
|
|||||||
* Show top header of page.
|
* Show top header of page.
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Object $object Object to show
|
* @param Delivery $object Object to show
|
||||||
* @param int $showaddress 0=no, 1=yes
|
* @param int $showaddress 0=no, 1=yes
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @return void
|
* @return void
|
||||||
@ -906,8 +906,8 @@ class pdf_storm extends ModelePDFDeliveryOrder
|
|||||||
/**
|
/**
|
||||||
* Show footer of page. Need this->emetteur object
|
* Show footer of page. Need this->emetteur object
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf PDF
|
* @param TCPDF $pdf PDF
|
||||||
* @param Object $object Object to show
|
* @param Delivery $object Object to show
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @param int $hidefreetext 1=Hide free text
|
* @param int $hidefreetext 1=Hide free text
|
||||||
* @return int Return height of bottom margin including footer text
|
* @return int Return height of bottom margin including footer text
|
||||||
@ -924,7 +924,7 @@ class pdf_storm extends ModelePDFDeliveryOrder
|
|||||||
/**
|
/**
|
||||||
* Define Array Column Field
|
* Define Array Column Field
|
||||||
*
|
*
|
||||||
* @param object $object common object
|
* @param Delivery $object common object
|
||||||
* @param Translate $outputlangs langs
|
* @param Translate $outputlangs langs
|
||||||
* @param int $hidedetails Do not show line details
|
* @param int $hidedetails Do not show line details
|
||||||
* @param int $hidedesc Do not show desc
|
* @param int $hidedesc Do not show desc
|
||||||
|
|||||||
@ -175,7 +175,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder
|
|||||||
/**
|
/**
|
||||||
* Function to build pdf onto disk
|
* Function to build pdf onto disk
|
||||||
*
|
*
|
||||||
* @param Object $object Object to generate
|
* @param Delivery $object Object to generate
|
||||||
* @param Translate $outputlangs Lang output object
|
* @param Translate $outputlangs Lang output object
|
||||||
* @param string $srctemplatepath Full path of source filename for generator using a template file
|
* @param string $srctemplatepath Full path of source filename for generator using a template file
|
||||||
* @param int $hidedetails Do not show line details
|
* @param int $hidedetails Do not show line details
|
||||||
@ -318,7 +318,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder
|
|||||||
|
|
||||||
// Incoterm
|
// Incoterm
|
||||||
$height_incoterms = 0;
|
$height_incoterms = 0;
|
||||||
if ($conf->incoterm->enabled)
|
if (!empty($conf->incoterm->enabled))
|
||||||
{
|
{
|
||||||
$desc_incoterms = $object->getIncotermsForPDF();
|
$desc_incoterms = $object->getIncotermsForPDF();
|
||||||
if ($desc_incoterms)
|
if ($desc_incoterms)
|
||||||
@ -628,7 +628,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder
|
|||||||
* Show miscellaneous information (payment mode, payment term, ...)
|
* Show miscellaneous information (payment mode, payment term, ...)
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Object $object Object to show
|
* @param Delivery $object Object to show
|
||||||
* @param int $posy Y
|
* @param int $posy Y
|
||||||
* @param Translate $outputlangs Langs object
|
* @param Translate $outputlangs Langs object
|
||||||
* @return void
|
* @return void
|
||||||
@ -723,7 +723,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder
|
|||||||
* Show top header of page.
|
* Show top header of page.
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Object $object Object to show
|
* @param Delivery $object Object to show
|
||||||
* @param int $showaddress 0=no, 1=yes
|
* @param int $showaddress 0=no, 1=yes
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @return void
|
* @return void
|
||||||
@ -897,7 +897,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder
|
|||||||
* Show footer of page. Need this->emetteur object
|
* Show footer of page. Need this->emetteur object
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf PDF
|
* @param TCPDF $pdf PDF
|
||||||
* @param Object $object Object to show
|
* @param Delivery $object Object to show
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @param int $hidefreetext 1=Hide free text
|
* @param int $hidefreetext 1=Hide free text
|
||||||
* @return int Return height of bottom margin including footer text
|
* @return int Return height of bottom margin including footer text
|
||||||
|
|||||||
@ -139,7 +139,7 @@ class mod_delivery_saphir extends ModeleNumRefDeliveryOrder
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
$numFinal = get_next_value($db, $mask, 'delivery', 'ref', '', $objsoc, $object->date_livraison);
|
$numFinal = get_next_value($db, $mask, 'delivery', 'ref', '', $objsoc, $object->delivery_date);
|
||||||
|
|
||||||
return $numFinal;
|
return $numFinal;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
* Copyright (C) 2005-2012 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2005-2012 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.com>
|
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.com>
|
||||||
* Copyright (C) 2014-2015 Marcos García <marcosgdf@gmail.com>
|
* Copyright (C) 2014-2015 Marcos García <marcosgdf@gmail.com>
|
||||||
* Copyright (C) 2018 Frédéric France <frederic.france@netlogic.fr>
|
* Copyright (C) 2018-2020 Frédéric France <frederic.france@netlogic.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -146,7 +146,7 @@ class pdf_espadon extends ModelePdfExpedition
|
|||||||
/**
|
/**
|
||||||
* Function to build pdf onto disk
|
* Function to build pdf onto disk
|
||||||
*
|
*
|
||||||
* @param Object $object Object expedition to generate (or id if old method)
|
* @param Expedition $object Object expedition to generate (or id if old method)
|
||||||
* @param Translate $outputlangs Lang output object
|
* @param Translate $outputlangs Lang output object
|
||||||
* @param string $srctemplatepath Full path of source filename for generator using a template file
|
* @param string $srctemplatepath Full path of source filename for generator using a template file
|
||||||
* @param int $hidedetails Do not show line details
|
* @param int $hidedetails Do not show line details
|
||||||
@ -319,7 +319,7 @@ class pdf_espadon extends ModelePdfExpedition
|
|||||||
|
|
||||||
// Incoterm
|
// Incoterm
|
||||||
$height_incoterms = 0;
|
$height_incoterms = 0;
|
||||||
if ($conf->incoterm->enabled)
|
if (!empty($conf->incoterm->enabled))
|
||||||
{
|
{
|
||||||
$desc_incoterms = $object->getIncotermsForPDF();
|
$desc_incoterms = $object->getIncotermsForPDF();
|
||||||
if ($desc_incoterms)
|
if ($desc_incoterms)
|
||||||
@ -672,7 +672,7 @@ class pdf_espadon extends ModelePdfExpedition
|
|||||||
* Show total to pay
|
* Show total to pay
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Facture $object Object invoice
|
* @param Expedition $object Object expedition
|
||||||
* @param int $deja_regle Amount already paid
|
* @param int $deja_regle Amount already paid
|
||||||
* @param int $posy Start Position
|
* @param int $posy Start Position
|
||||||
* @param Translate $outputlangs Objet langs
|
* @param Translate $outputlangs Objet langs
|
||||||
@ -823,7 +823,7 @@ class pdf_espadon extends ModelePdfExpedition
|
|||||||
* Show top header of page.
|
* Show top header of page.
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Object $object Object to show
|
* @param Expedition $object Object to show
|
||||||
* @param int $showaddress 0=no, 1=yes
|
* @param int $showaddress 0=no, 1=yes
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @return void
|
* @return void
|
||||||
@ -1066,7 +1066,7 @@ class pdf_espadon extends ModelePdfExpedition
|
|||||||
* Show footer of page. Need this->emetteur object
|
* Show footer of page. Need this->emetteur object
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf PDF
|
* @param TCPDF $pdf PDF
|
||||||
* @param Object $object Object to show
|
* @param Expedition $object Object to show
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @param int $hidefreetext 1=Hide free text
|
* @param int $hidefreetext 1=Hide free text
|
||||||
* @return int Return height of bottom margin including footer text
|
* @return int Return height of bottom margin including footer text
|
||||||
@ -1081,7 +1081,7 @@ class pdf_espadon extends ModelePdfExpedition
|
|||||||
/**
|
/**
|
||||||
* Define Array Column Field
|
* Define Array Column Field
|
||||||
*
|
*
|
||||||
* @param object $object common object
|
* @param Expedition $object common object
|
||||||
* @param Translate $outputlangs langs
|
* @param Translate $outputlangs langs
|
||||||
* @param int $hidedetails Do not show line details
|
* @param int $hidedetails Do not show line details
|
||||||
* @param int $hidedesc Do not show desc
|
* @param int $hidedesc Do not show desc
|
||||||
|
|||||||
@ -146,7 +146,7 @@ class pdf_merou extends ModelePdfExpedition
|
|||||||
/**
|
/**
|
||||||
* Function to build pdf onto disk
|
* Function to build pdf onto disk
|
||||||
*
|
*
|
||||||
* @param Object $object Object expedition to generate (or id if old method)
|
* @param Expedition $object Object expedition to generate (or id if old method)
|
||||||
* @param Translate $outputlangs Lang output object
|
* @param Translate $outputlangs Lang output object
|
||||||
* @param string $srctemplatepath Full path of source filename for generator using a template file
|
* @param string $srctemplatepath Full path of source filename for generator using a template file
|
||||||
* @param int $hidedetails Do not show line details
|
* @param int $hidedetails Do not show line details
|
||||||
@ -481,7 +481,7 @@ class pdf_merou extends ModelePdfExpedition
|
|||||||
* Show footer of page. Need this->emetteur object
|
* Show footer of page. Need this->emetteur object
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf PDF
|
* @param TCPDF $pdf PDF
|
||||||
* @param Object $object Object to show
|
* @param Expedition $object Object to show
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @param int $hidefreetext 1=Hide free text
|
* @param int $hidefreetext 1=Hide free text
|
||||||
* @return void
|
* @return void
|
||||||
@ -510,7 +510,7 @@ class pdf_merou extends ModelePdfExpedition
|
|||||||
* Show top header of page.
|
* Show top header of page.
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Object $object Object to show
|
* @param Expedition $object Object to show
|
||||||
* @param int $showaddress 0=no, 1=yes
|
* @param int $showaddress 0=no, 1=yes
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @return void
|
* @return void
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
* Copyright (C) 2005-2012 Laurent Destailleur <eldy@users.sourceforge.net>
|
* Copyright (C) 2005-2012 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.com>
|
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.com>
|
||||||
* Copyright (C) 2014-2015 Marcos García <marcosgdf@gmail.com>
|
* Copyright (C) 2014-2015 Marcos García <marcosgdf@gmail.com>
|
||||||
* Copyright (C) 2018 Frédéric France <frederic.france@netlogic.fr>
|
* Copyright (C) 2018-2020 Frédéric France <frederic.france@netlogic.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -178,7 +178,7 @@ class pdf_rouget extends ModelePdfExpedition
|
|||||||
/**
|
/**
|
||||||
* Function to build pdf onto disk
|
* Function to build pdf onto disk
|
||||||
*
|
*
|
||||||
* @param Object $object Object expedition to generate (or id if old method)
|
* @param Expedition $object Object expedition to generate (or id if old method)
|
||||||
* @param Translate $outputlangs Lang output object
|
* @param Translate $outputlangs Lang output object
|
||||||
* @param string $srctemplatepath Full path of source filename for generator using a template file
|
* @param string $srctemplatepath Full path of source filename for generator using a template file
|
||||||
* @param int $hidedetails Do not show line details
|
* @param int $hidedetails Do not show line details
|
||||||
@ -338,7 +338,7 @@ class pdf_rouget extends ModelePdfExpedition
|
|||||||
|
|
||||||
// Incoterm
|
// Incoterm
|
||||||
$height_incoterms = 0;
|
$height_incoterms = 0;
|
||||||
if ($conf->incoterm->enabled)
|
if (!empty($conf->incoterm->enabled))
|
||||||
{
|
{
|
||||||
$desc_incoterms = $object->getIncotermsForPDF();
|
$desc_incoterms = $object->getIncotermsForPDF();
|
||||||
if ($desc_incoterms)
|
if ($desc_incoterms)
|
||||||
@ -662,8 +662,8 @@ class pdf_rouget extends ModelePdfExpedition
|
|||||||
/**
|
/**
|
||||||
* Show total to pay
|
* Show total to pay
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Facture $object Object invoice
|
* @param Expedition $object Object invoice
|
||||||
* @param int $deja_regle Montant deja regle
|
* @param int $deja_regle Montant deja regle
|
||||||
* @param int $posy Position depart
|
* @param int $posy Position depart
|
||||||
* @param Translate $outputlangs Objet langs
|
* @param Translate $outputlangs Objet langs
|
||||||
@ -858,7 +858,7 @@ class pdf_rouget extends ModelePdfExpedition
|
|||||||
* Show top header of page.
|
* Show top header of page.
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Object $object Object to show
|
* @param Expedition $object Object to show
|
||||||
* @param int $showaddress 0=no, 1=yes
|
* @param int $showaddress 0=no, 1=yes
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @return void
|
* @return void
|
||||||
@ -1101,7 +1101,7 @@ class pdf_rouget extends ModelePdfExpedition
|
|||||||
* Show footer of page. Need this->emetteur object
|
* Show footer of page. Need this->emetteur object
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf PDF
|
* @param TCPDF $pdf PDF
|
||||||
* @param Object $object Object to show
|
* @param Expedition $object Object to show
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @param int $hidefreetext 1=Hide free text
|
* @param int $hidefreetext 1=Hide free text
|
||||||
* @return int Return height of bottom margin including footer text
|
* @return int Return height of bottom margin including footer text
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
/* Copyright (C) 2015 Laurent Destailleur <eldy@users.sourceforge.net>
|
/* Copyright (C) 2015 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2015 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
* Copyright (C) 2015 Alexandre Spangaro <aspangaro@open-dsi.fr>
|
||||||
* Copyright (C) 2016-2019 Philippe Grand <philippe.grand@atoo-net.com>
|
* Copyright (C) 2016-2019 Philippe Grand <philippe.grand@atoo-net.com>
|
||||||
* Copyright (C) 2018 Frédéric France <frederic.france@netlogic.fr>
|
* Copyright (C) 2018-2020 Frédéric France <frederic.france@netlogic.fr>
|
||||||
* Copyright (C) 2018 Francis Appels <francis.appels@z-application.com>
|
* Copyright (C) 2018 Francis Appels <francis.appels@z-application.com>
|
||||||
* Copyright (C) 2019 Markus Welters <markus@welters.de>
|
* Copyright (C) 2019 Markus Welters <markus@welters.de>
|
||||||
* Copyright (C) 2019 Rafael Ingenleuf <ingenleuf@welters.de>
|
* Copyright (C) 2019 Rafael Ingenleuf <ingenleuf@welters.de>
|
||||||
@ -199,13 +199,13 @@ class pdf_standard extends ModeleExpenseReport
|
|||||||
/**
|
/**
|
||||||
* Function to build pdf onto disk
|
* Function to build pdf onto disk
|
||||||
*
|
*
|
||||||
* @param Object $object Object to generate
|
* @param ExpenseReport $object Object to generate
|
||||||
* @param Translate $outputlangs Lang output object
|
* @param Translate $outputlangs Lang output object
|
||||||
* @param string $srctemplatepath Full path of source filename for generator using a template file
|
* @param string $srctemplatepath Full path of source filename for generator using a template file
|
||||||
* @param int $hidedetails Do not show line details
|
* @param int $hidedetails Do not show line details
|
||||||
* @param int $hidedesc Do not show desc
|
* @param int $hidedesc Do not show desc
|
||||||
* @param int $hideref Do not show ref
|
* @param int $hideref Do not show ref
|
||||||
* @return int 1=OK, 0=KO
|
* @return int 1=OK, 0=KO
|
||||||
*/
|
*/
|
||||||
public function write_file($object, $outputlangs, $srctemplatepath = '', $hidedetails = 0, $hidedesc = 0, $hideref = 0)
|
public function write_file($object, $outputlangs, $srctemplatepath = '', $hidedetails = 0, $hidedesc = 0, $hideref = 0)
|
||||||
{
|
{
|
||||||
@ -558,13 +558,13 @@ class pdf_standard extends ModeleExpenseReport
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Object $object Object to show
|
* @param ExpenseReport $object Object to show
|
||||||
* @param int $linenumber line number
|
* @param int $linenumber line number
|
||||||
* @param int $curY current y position
|
* @param int $curY current y position
|
||||||
* @param int $default_font_size default siez of font
|
* @param int $default_font_size default siez of font
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @param int $hidedetails Hide details (0=no, 1=yes, 2=just special lines)
|
* @param int $hidedetails Hide details (0=no, 1=yes, 2=just special lines)
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
protected function printLine(&$pdf, $object, $linenumber, $curY, $default_font_size, $outputlangs, $hidedetails = 0)
|
protected function printLine(&$pdf, $object, $linenumber, $curY, $default_font_size, $outputlangs, $hidedetails = 0)
|
||||||
@ -644,10 +644,10 @@ class pdf_standard extends ModeleExpenseReport
|
|||||||
/**
|
/**
|
||||||
* Show top header of page.
|
* Show top header of page.
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Object $object Object to show
|
* @param ExpenseReport $object Object to show
|
||||||
* @param int $showaddress 0=no, 1=yes
|
* @param int $showaddress 0=no, 1=yes
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs)
|
protected function _pagehead(&$pdf, $object, $showaddress, $outputlangs)
|
||||||
@ -981,11 +981,11 @@ class pdf_standard extends ModeleExpenseReport
|
|||||||
/**
|
/**
|
||||||
* Show payments table
|
* Show payments table
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Object $object Object invoice
|
* @param ExpenseReport $object Object expensereport
|
||||||
* @param int $posy Position y in PDF
|
* @param int $posy Position y in PDF
|
||||||
* @param Translate $outputlangs Object langs for output
|
* @param Translate $outputlangs Object langs for output
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
protected function tablePayments(&$pdf, $object, $posy, $outputlangs)
|
protected function tablePayments(&$pdf, $object, $posy, $outputlangs)
|
||||||
{
|
{
|
||||||
@ -1093,11 +1093,11 @@ class pdf_standard extends ModeleExpenseReport
|
|||||||
/**
|
/**
|
||||||
* Show footer of page. Need this->emetteur object
|
* Show footer of page. Need this->emetteur object
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf PDF
|
* @param TCPDF $pdf PDF
|
||||||
* @param Object $object Object to show
|
* @param ExpenseReport $object Object to show
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @param int $hidefreetext 1=Hide free text
|
* @param int $hidefreetext 1=Hide free text
|
||||||
* @return int Return height of bottom margin including footer text
|
* @return int Return height of bottom margin including footer text
|
||||||
*/
|
*/
|
||||||
protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0)
|
protected function _pagefoot(&$pdf, $object, $outputlangs, $hidefreetext = 0)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -220,7 +220,7 @@ class pdf_crabe extends ModelePDFFactures
|
|||||||
/**
|
/**
|
||||||
* Function to build pdf onto disk
|
* Function to build pdf onto disk
|
||||||
*
|
*
|
||||||
* @param Object $object Object to generate
|
* @param Facture $object Object to generate
|
||||||
* @param Translate $outputlangs Lang output object
|
* @param Translate $outputlangs Lang output object
|
||||||
* @param string $srctemplatepath Full path of source filename for generator using a template file
|
* @param string $srctemplatepath Full path of source filename for generator using a template file
|
||||||
* @param int $hidedetails Do not show line details
|
* @param int $hidedetails Do not show line details
|
||||||
@ -420,7 +420,7 @@ class pdf_crabe extends ModelePDFFactures
|
|||||||
$tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10);
|
$tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10);
|
||||||
|
|
||||||
// Incoterm
|
// Incoterm
|
||||||
if ($conf->incoterm->enabled)
|
if (! empty($conf->incoterm->enabled))
|
||||||
{
|
{
|
||||||
$desc_incoterms = $object->getIncotermsForPDF();
|
$desc_incoterms = $object->getIncotermsForPDF();
|
||||||
if ($desc_incoterms)
|
if ($desc_incoterms)
|
||||||
@ -782,7 +782,7 @@ class pdf_crabe extends ModelePDFFactures
|
|||||||
* Show payments table
|
* Show payments table
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Object $object Object invoice
|
* @param Facture $object Object invoice
|
||||||
* @param int $posy Position y in PDF
|
* @param int $posy Position y in PDF
|
||||||
* @param Translate $outputlangs Object langs for output
|
* @param Translate $outputlangs Object langs for output
|
||||||
* @param int $heightforfooter height for footer
|
* @param int $heightforfooter height for footer
|
||||||
@ -967,7 +967,7 @@ class pdf_crabe extends ModelePDFFactures
|
|||||||
* Show miscellaneous information (payment mode, payment term, ...)
|
* Show miscellaneous information (payment mode, payment term, ...)
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Object $object Object to show
|
* @param Facture $object Object to show
|
||||||
* @param int $posy Y
|
* @param int $posy Y
|
||||||
* @param Translate $outputlangs Langs object
|
* @param Translate $outputlangs Langs object
|
||||||
* @return void
|
* @return void
|
||||||
@ -1588,7 +1588,7 @@ class pdf_crabe extends ModelePDFFactures
|
|||||||
* Show top header of page.
|
* Show top header of page.
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Object $object Object to show
|
* @param Facture $object Object to show
|
||||||
* @param int $showaddress 0=no, 1=yes
|
* @param int $showaddress 0=no, 1=yes
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @return void
|
* @return void
|
||||||
@ -1891,7 +1891,7 @@ class pdf_crabe extends ModelePDFFactures
|
|||||||
* Show footer of page. Need this->emetteur object
|
* Show footer of page. Need this->emetteur object
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf PDF
|
* @param TCPDF $pdf PDF
|
||||||
* @param Object $object Object to show
|
* @param Facture $object Object to show
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @param int $hidefreetext 1=Hide free text
|
* @param int $hidefreetext 1=Hide free text
|
||||||
* @return int Return height of bottom margin including footer text
|
* @return int Return height of bottom margin including footer text
|
||||||
|
|||||||
@ -197,7 +197,7 @@ class pdf_sponge extends ModelePDFFactures
|
|||||||
/**
|
/**
|
||||||
* Function to build pdf onto disk
|
* Function to build pdf onto disk
|
||||||
*
|
*
|
||||||
* @param Object $object Object to generate
|
* @param Facture $object Object to generate
|
||||||
* @param Translate $outputlangs Lang output object
|
* @param Translate $outputlangs Lang output object
|
||||||
* @param string $srctemplatepath Full path of source filename for generator using a template file
|
* @param string $srctemplatepath Full path of source filename for generator using a template file
|
||||||
* @param int $hidedetails Do not show line details
|
* @param int $hidedetails Do not show line details
|
||||||
@ -422,7 +422,7 @@ class pdf_sponge extends ModelePDFFactures
|
|||||||
|
|
||||||
// Incoterm
|
// Incoterm
|
||||||
$height_incoterms = 0;
|
$height_incoterms = 0;
|
||||||
if ($conf->incoterm->enabled)
|
if (!empty($conf->incoterm->enabled))
|
||||||
{
|
{
|
||||||
$desc_incoterms = $object->getIncotermsForPDF();
|
$desc_incoterms = $object->getIncotermsForPDF();
|
||||||
if ($desc_incoterms)
|
if ($desc_incoterms)
|
||||||
@ -926,7 +926,7 @@ class pdf_sponge extends ModelePDFFactures
|
|||||||
* Show payments table
|
* Show payments table
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Object $object Object invoice
|
* @param Facture $object Object invoice
|
||||||
* @param int $posy Position y in PDF
|
* @param int $posy Position y in PDF
|
||||||
* @param Translate $outputlangs Object langs for output
|
* @param Translate $outputlangs Object langs for output
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
@ -1064,7 +1064,7 @@ class pdf_sponge extends ModelePDFFactures
|
|||||||
* Show miscellaneous information (payment mode, payment term, ...)
|
* Show miscellaneous information (payment mode, payment term, ...)
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Object $object Object to show
|
* @param Facture $object Object to show
|
||||||
* @param int $posy Y
|
* @param int $posy Y
|
||||||
* @param Translate $outputlangs Langs object
|
* @param Translate $outputlangs Langs object
|
||||||
* @return int Pos y
|
* @return int Pos y
|
||||||
@ -1829,7 +1829,7 @@ class pdf_sponge extends ModelePDFFactures
|
|||||||
* Show top header of page.
|
* Show top header of page.
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Object $object Object to show
|
* @param Facture $object Object to show
|
||||||
* @param int $showaddress 0=no, 1=yes
|
* @param int $showaddress 0=no, 1=yes
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @param Translate $outputlangsbis Object lang for output bis
|
* @param Translate $outputlangsbis Object lang for output bis
|
||||||
@ -2150,7 +2150,7 @@ class pdf_sponge extends ModelePDFFactures
|
|||||||
* Show footer of page. Need this->emetteur object
|
* Show footer of page. Need this->emetteur object
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf PDF
|
* @param TCPDF $pdf PDF
|
||||||
* @param Object $object Object to show
|
* @param Facture $object Object to show
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @param int $hidefreetext 1=Hide free text
|
* @param int $hidefreetext 1=Hide free text
|
||||||
* @return int Return height of bottom margin including footer text
|
* @return int Return height of bottom margin including footer text
|
||||||
@ -2165,7 +2165,7 @@ class pdf_sponge extends ModelePDFFactures
|
|||||||
/**
|
/**
|
||||||
* Define Array Column Field
|
* Define Array Column Field
|
||||||
*
|
*
|
||||||
* @param object $object common object
|
* @param Facture $object common object
|
||||||
* @param Translate $outputlangs langs
|
* @param Translate $outputlangs langs
|
||||||
* @param int $hidedetails Do not show line details
|
* @param int $hidedetails Do not show line details
|
||||||
* @param int $hidedesc Do not show desc
|
* @param int $hidedesc Do not show desc
|
||||||
|
|||||||
@ -156,7 +156,7 @@ class pdf_soleil extends ModelePDFFicheinter
|
|||||||
/**
|
/**
|
||||||
* Function to build pdf onto disk
|
* Function to build pdf onto disk
|
||||||
*
|
*
|
||||||
* @param Object $object Object to generate
|
* @param Fichinter $object Object to generate
|
||||||
* @param Translate $outputlangs Lang output object
|
* @param Translate $outputlangs Lang output object
|
||||||
* @param string $srctemplatepath Full path of source filename for generator using a template file
|
* @param string $srctemplatepath Full path of source filename for generator using a template file
|
||||||
* @param int $hidedetails Do not show line details
|
* @param int $hidedetails Do not show line details
|
||||||
@ -537,7 +537,7 @@ class pdf_soleil extends ModelePDFFicheinter
|
|||||||
* Show top header of page.
|
* Show top header of page.
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Object $object Object to show
|
* @param Fichinter $object Object to show
|
||||||
* @param int $showaddress 0=no, 1=yes
|
* @param int $showaddress 0=no, 1=yes
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @return void
|
* @return void
|
||||||
@ -710,7 +710,7 @@ class pdf_soleil extends ModelePDFFicheinter
|
|||||||
* Show footer of page. Need this->emetteur object
|
* Show footer of page. Need this->emetteur object
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf PDF
|
* @param TCPDF $pdf PDF
|
||||||
* @param Object $object Object to show
|
* @param Fichinter $object Object to show
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @param int $hidefreetext 1=Hide free text
|
* @param int $hidefreetext 1=Hide free text
|
||||||
* @return integer
|
* @return integer
|
||||||
|
|||||||
420
htdocs/core/modules/member/doc/doc_generic_member_odt.class.php
Normal file
420
htdocs/core/modules/member/doc/doc_generic_member_odt.class.php
Normal file
@ -0,0 +1,420 @@
|
|||||||
|
<?php
|
||||||
|
/* Copyright (C) 2010-2012 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
|
* Copyright (C) 2012 Juanjo Menent <jmenent@2byte.es>
|
||||||
|
* Copyright (C) 2018 Frédéric France <frederic.france@netlogic.fr>
|
||||||
|
*
|
||||||
|
* 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 <https://www.gnu.org/licenses/>.
|
||||||
|
* or see https://www.gnu.org/
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file htdocs/core/modules/member/doc/doc_generic_member_odt.modules.php
|
||||||
|
* \ingroup societe
|
||||||
|
* \brief File of class to build ODT documents for members
|
||||||
|
*/
|
||||||
|
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/modules/member/modules_member.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/doc.lib.php';
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class to build documents using ODF templates generator
|
||||||
|
*/
|
||||||
|
class doc_generic_member_odt extends ModelePDFMember
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var Societe Issuer
|
||||||
|
*/
|
||||||
|
public $emetteur;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array Minimum version of PHP required by module.
|
||||||
|
* e.g.: PHP ≥ 5.6 = array(5, 6)
|
||||||
|
*/
|
||||||
|
public $phpmin = array(5, 6);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dolibarr version of the loaded document
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $version = 'dolibarr';
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*
|
||||||
|
* @param DoliDB $db Database handler
|
||||||
|
*/
|
||||||
|
public function __construct($db)
|
||||||
|
{
|
||||||
|
global $conf, $langs, $mysoc;
|
||||||
|
|
||||||
|
// Load translation files required by the page
|
||||||
|
$langs->loadLangs(array("main", "companies"));
|
||||||
|
|
||||||
|
$this->db = $db;
|
||||||
|
$this->name = "ODT templates";
|
||||||
|
$this->description = $langs->trans("DocumentModelOdt");
|
||||||
|
$this->scandir = 'MEMBER_ADDON_PDF_ODT_PATH'; // Name of constant that is used to save list of directories to scan
|
||||||
|
|
||||||
|
// Page size for A4 format
|
||||||
|
$this->type = 'odt';
|
||||||
|
$this->page_largeur = 0;
|
||||||
|
$this->page_hauteur = 0;
|
||||||
|
$this->format = array($this->page_largeur, $this->page_hauteur);
|
||||||
|
$this->marge_gauche = 0;
|
||||||
|
$this->marge_droite = 0;
|
||||||
|
$this->marge_haute = 0;
|
||||||
|
$this->marge_basse = 0;
|
||||||
|
|
||||||
|
$this->option_logo = 1; // Affiche logo
|
||||||
|
$this->option_tva = 0; // Gere option tva MEMBER_TVAOPTION
|
||||||
|
$this->option_modereg = 0; // Affiche mode reglement
|
||||||
|
$this->option_condreg = 0; // Affiche conditions reglement
|
||||||
|
$this->option_codeproduitservice = 0; // Affiche code produit-service
|
||||||
|
$this->option_multilang = 1; // Dispo en plusieurs langues
|
||||||
|
$this->option_escompte = 0; // Affiche si il y a eu escompte
|
||||||
|
$this->option_credit_note = 0; // Support credit notes
|
||||||
|
$this->option_freetext = 1; // Support add of a personalised text
|
||||||
|
$this->option_draft_watermark = 0; // Support add of a watermark on drafts
|
||||||
|
|
||||||
|
// Recupere emetteur
|
||||||
|
$this->emetteur = $mysoc;
|
||||||
|
if (!$this->emetteur->country_code) $this->emetteur->country_code = substr($langs->defaultlang, -2); // By default if not defined
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return description of a module
|
||||||
|
*
|
||||||
|
* @param Translate $langs Lang object to use for output
|
||||||
|
* @return string Description
|
||||||
|
*/
|
||||||
|
public function info($langs)
|
||||||
|
{
|
||||||
|
global $conf, $langs;
|
||||||
|
|
||||||
|
// Load translation files required by the page
|
||||||
|
$langs->loadLangs(array('companies', 'errors'));
|
||||||
|
|
||||||
|
$form = new Form($this->db);
|
||||||
|
|
||||||
|
$texte = $this->description.".<br>\n";
|
||||||
|
$texte .= '<form action="'.$_SERVER["PHP_SELF"].'" method="POST" enctype="multipart/form-data">';
|
||||||
|
$texte .= '<input type="hidden" name="token" value="'.newToken().'">';
|
||||||
|
$texte .= '<input type="hidden" name="action" value="setModuleOptions">';
|
||||||
|
$texte .= '<input type="hidden" name="param1" value="MEMBER_ADDON_PDF_ODT_PATH">';
|
||||||
|
$texte .= '<table class="nobordernopadding" width="100%">';
|
||||||
|
|
||||||
|
// List of directories area
|
||||||
|
$texte .= '<tr><td>';
|
||||||
|
$texttitle = $langs->trans("ListOfDirectories");
|
||||||
|
$listofdir = explode(',', preg_replace('/[\r\n]+/', ',', trim($conf->global->MEMBER_ADDON_PDF_ODT_PATH)));
|
||||||
|
$listoffiles = array();
|
||||||
|
foreach ($listofdir as $key=>$tmpdir)
|
||||||
|
{
|
||||||
|
$tmpdir = trim($tmpdir);
|
||||||
|
$tmpdir = preg_replace('/DOL_DATA_ROOT/', DOL_DATA_ROOT, $tmpdir);
|
||||||
|
if (!$tmpdir) {
|
||||||
|
unset($listofdir[$key]); continue;
|
||||||
|
}
|
||||||
|
if (!is_dir($tmpdir)) $texttitle .= img_warning($langs->trans("ErrorDirNotFound", $tmpdir), 0);
|
||||||
|
else {
|
||||||
|
$tmpfiles = dol_dir_list($tmpdir, 'files', 0, '\.(ods|odt)');
|
||||||
|
if (count($tmpfiles)) $listoffiles = array_merge($listoffiles, $tmpfiles);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$texthelp = $langs->trans("ListOfDirectoriesForModelGenODT");
|
||||||
|
// Add list of substitution keys
|
||||||
|
$texthelp .= '<br>'.$langs->trans("FollowingSubstitutionKeysCanBeUsed").'<br>';
|
||||||
|
$texthelp .= $langs->transnoentitiesnoconv("FullListOnOnlineDocumentation"); // This contains an url, we don't modify it
|
||||||
|
|
||||||
|
$texte .= $form->textwithpicto($texttitle, $texthelp, 1, 'help', '', 1);
|
||||||
|
$texte .= '<div><div style="display: inline-block; min-width: 100px; vertical-align: middle;">';
|
||||||
|
$texte .= '<textarea class="flat" cols="60" name="value1">';
|
||||||
|
$texte .= $conf->global->MEMBER_ADDON_PDF_ODT_PATH;
|
||||||
|
$texte .= '</textarea>';
|
||||||
|
$texte .= '</div><div style="display: inline-block; vertical-align: middle;">';
|
||||||
|
$texte .= '<input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button">';
|
||||||
|
$texte .= '<br></div></div>';
|
||||||
|
|
||||||
|
// Scan directories
|
||||||
|
if (count($listofdir))
|
||||||
|
{
|
||||||
|
$texte .= $langs->trans("NumberOfModelFilesFound").': <b>'.count($listoffiles).'</b>';
|
||||||
|
$texte .= '<div id="div_'.get_class($this).'" class="hidden">';
|
||||||
|
foreach ($listoffiles as $file) {
|
||||||
|
$texte .= $file['name'].'<br>';
|
||||||
|
}
|
||||||
|
$texte .= '</div>';
|
||||||
|
}
|
||||||
|
// Add input to upload a new template file.
|
||||||
|
$texte .= '<div>'.$langs->trans("UploadNewTemplate").' <input type="file" name="uploadfile">';
|
||||||
|
$texte .= '<input type="hidden" value="MEMBER_ADDON_PDF_ODT_PATH" name="keyforuploaddir">';
|
||||||
|
$texte .= '<input type="submit" class="button" value="'.dol_escape_htmltag($langs->trans("Upload")).'" name="upload">';
|
||||||
|
$texte .= '</div>';
|
||||||
|
$texte .= '</td>';
|
||||||
|
|
||||||
|
$texte .= '<td rowspan="2" class="tdtop hideonsmartphone">';
|
||||||
|
$texte .= $langs->trans("ExampleOfDirectoriesForModelGen");
|
||||||
|
$texte .= '</td>';
|
||||||
|
$texte .= '</tr>';
|
||||||
|
|
||||||
|
$texte .= '</table>';
|
||||||
|
$texte .= '</form>';
|
||||||
|
|
||||||
|
return $texte;
|
||||||
|
}
|
||||||
|
|
||||||
|
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||||
|
/**
|
||||||
|
* Function to build a document on disk using the generic odt module.
|
||||||
|
*
|
||||||
|
* @param Adherent $object Object source to build document
|
||||||
|
* @param Translate $outputlangs Lang output object
|
||||||
|
* @param string $srctemplatepath Full path of source filename for generator using a template file
|
||||||
|
* @param string $mode Tell if doc module is called for 'member', ...
|
||||||
|
* @param int $nooutput 1=Generate only file on disk and do not return it on response
|
||||||
|
* @return int 1 if OK, <=0 if KO
|
||||||
|
*/
|
||||||
|
public function write_file($object, $outputlangs, $srctemplatepath, $mode = 'member', $nooutput = 0)
|
||||||
|
{
|
||||||
|
// phpcs:enable
|
||||||
|
global $user, $langs, $conf, $mysoc, $hookmanager;
|
||||||
|
|
||||||
|
if (empty($srctemplatepath)) {
|
||||||
|
dol_syslog("doc_generic_odt::write_file parameter srctemplatepath empty", LOG_WARNING);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add odtgeneration hook
|
||||||
|
if (!is_object($hookmanager))
|
||||||
|
{
|
||||||
|
include_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php';
|
||||||
|
$hookmanager = new HookManager($this->db);
|
||||||
|
}
|
||||||
|
$hookmanager->initHooks(array('odtgeneration'));
|
||||||
|
global $action;
|
||||||
|
|
||||||
|
if (!is_object($outputlangs)) $outputlangs = $langs;
|
||||||
|
$sav_charset_output = $outputlangs->charset_output;
|
||||||
|
$outputlangs->charset_output = 'UTF-8';
|
||||||
|
|
||||||
|
// Load translation files required by the page
|
||||||
|
$outputlangs->loadLangs(array("main", "companies", "bills", "dict"));
|
||||||
|
|
||||||
|
if ($conf->adherent->dir_output) {
|
||||||
|
// If $object is id instead of object
|
||||||
|
if (!is_object($object)) {
|
||||||
|
$id = $object;
|
||||||
|
$object = new User($this->db);
|
||||||
|
$result = $object->fetch($id);
|
||||||
|
if ($result < 0) {
|
||||||
|
dol_print_error($this->db, $object->error);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$object->fetch_thirdparty();
|
||||||
|
|
||||||
|
$dir = $conf->adherent->dir_output;
|
||||||
|
$objectref = dol_sanitizeFileName($object->ref);
|
||||||
|
if (!preg_match('/specimen/i', $objectref)) $dir .= "/".$objectref;
|
||||||
|
$file = $dir."/".$objectref.".odt";
|
||||||
|
|
||||||
|
if (!file_exists($dir)) {
|
||||||
|
if (dol_mkdir($dir) < 0) {
|
||||||
|
$this->error = $langs->transnoentities("ErrorCanNotCreateDir", $dir);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (file_exists($dir)) {
|
||||||
|
//print "srctemplatepath=".$srctemplatepath; // Src filename
|
||||||
|
$newfile = basename($srctemplatepath);
|
||||||
|
$newfiletmp = preg_replace('/\.od(t|s)/i', '', $newfile);
|
||||||
|
$newfiletmp = preg_replace('/template_/i', '', $newfiletmp);
|
||||||
|
$newfiletmp = preg_replace('/modele_/i', '', $newfiletmp);
|
||||||
|
|
||||||
|
$newfiletmp = $objectref.'_'.$newfiletmp;
|
||||||
|
|
||||||
|
// Get extension (ods or odt)
|
||||||
|
$newfileformat = substr($newfile, strrpos($newfile, '.') + 1);
|
||||||
|
if (!empty($conf->global->MAIN_DOC_USE_TIMING)) {
|
||||||
|
$format = $conf->global->MAIN_DOC_USE_TIMING;
|
||||||
|
if ($format == '1') $format = '%Y%m%d%H%M%S';
|
||||||
|
$filename = $newfiletmp.'-'.dol_print_date(dol_now(), $format).'.'.$newfileformat;
|
||||||
|
} else {
|
||||||
|
$filename = $newfiletmp.'.'.$newfileformat;
|
||||||
|
}
|
||||||
|
$file = $dir.'/'.$filename;
|
||||||
|
//print "newdir=".$dir;
|
||||||
|
//print "newfile=".$newfile;
|
||||||
|
//print "file=".$file;
|
||||||
|
//print "conf->adherent->dir_temp=".$conf->adherent->dir_temp;
|
||||||
|
|
||||||
|
dol_mkdir($conf->adherent->dir_temp);
|
||||||
|
|
||||||
|
|
||||||
|
// If CUSTOMER contact defined on member, we use it
|
||||||
|
$usecontact = false;
|
||||||
|
$arrayidcontact = $object->getIdContact('external', 'CUSTOMER');
|
||||||
|
if (count($arrayidcontact) > 0) {
|
||||||
|
$usecontact = true;
|
||||||
|
$result = $object->fetch_contact($arrayidcontact[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Recipient name
|
||||||
|
if (!empty($usecontact)) {
|
||||||
|
// On peut utiliser le nom de la societe du contact
|
||||||
|
if (!empty($conf->global->MAIN_USE_COMPANY_NAME_OF_CONTACT)) {
|
||||||
|
$socobject = $object->contact;
|
||||||
|
} else {
|
||||||
|
$socobject = $object->thirdparty;
|
||||||
|
// if we have a CUSTOMER contact and we dont use it as recipient we store the contact object for later use
|
||||||
|
$contactobject = $object->contact;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$socobject = $object->thirdparty;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Open and load template
|
||||||
|
require_once ODTPHP_PATH.'odf.php';
|
||||||
|
try {
|
||||||
|
$odfHandler = new odf(
|
||||||
|
$srctemplatepath,
|
||||||
|
array(
|
||||||
|
'PATH_TO_TMP' => $conf->adherent->dir_temp,
|
||||||
|
'ZIP_PROXY' => 'PclZipProxy', // PhpZipProxy or PclZipProxy. Got "bad compression method" error when using PhpZipProxy.
|
||||||
|
'DELIMITER_LEFT' => '{',
|
||||||
|
'DELIMITER_RIGHT' => '}'
|
||||||
|
)
|
||||||
|
);
|
||||||
|
} catch (Exception $e)
|
||||||
|
{
|
||||||
|
$this->error = $e->getMessage();
|
||||||
|
dol_syslog($e->getMessage(), LOG_WARNING);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Make substitutions into odt
|
||||||
|
$array_member = $this->getSubstitutionarrayMember($object, $outputlangs);
|
||||||
|
$array_soc = $this->get_substitutionarray_mysoc($mysoc, $outputlangs);
|
||||||
|
$array_thirdparty = $this->get_substitutionarray_thirdparty($socobject, $outputlangs);
|
||||||
|
$array_other = $this->get_substitutionarray_other($outputlangs);
|
||||||
|
// retrieve contact information for use in object as contact_xxx tags
|
||||||
|
$array_thirdparty_contact = array();
|
||||||
|
if ($usecontact && is_object($contactobject)) $array_thirdparty_contact = $this->get_substitutionarray_contact($contactobject, $outputlangs, 'contact');
|
||||||
|
|
||||||
|
$tmparray = array_merge($array_member, $array_soc, $array_thirdparty, $array_other, $array_thirdparty_contact);
|
||||||
|
complete_substitutions_array($tmparray, $outputlangs, $object);
|
||||||
|
// Call the ODTSubstitution hook
|
||||||
|
$parameters = array(
|
||||||
|
'file'=>$file,
|
||||||
|
'object'=>$object,
|
||||||
|
'outputlangs'=>$outputlangs,
|
||||||
|
'substitutionarray'=>&$tmparray
|
||||||
|
);
|
||||||
|
$reshook = $hookmanager->executeHooks('ODTSubstitution', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks
|
||||||
|
foreach ($tmparray as $key=>$value) {
|
||||||
|
try {
|
||||||
|
if (preg_match('/logo$/', $key)) {
|
||||||
|
// Image
|
||||||
|
if (file_exists($value)) $odfHandler->setImage($key, $value);
|
||||||
|
else $odfHandler->setVars($key, 'ErrorFileNotFound', true, 'UTF-8');
|
||||||
|
} else {
|
||||||
|
// Text
|
||||||
|
$odfHandler->setVars($key, $value, true, 'UTF-8');
|
||||||
|
}
|
||||||
|
} catch (OdfException $e) {
|
||||||
|
dol_syslog($e->getMessage(), LOG_WARNING);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Replace labels translated
|
||||||
|
$tmparray = $outputlangs->get_translations_for_substitutions();
|
||||||
|
foreach ($tmparray as $key=>$value) {
|
||||||
|
try {
|
||||||
|
$odfHandler->setVars($key, $value, true, 'UTF-8');
|
||||||
|
} catch (OdfException $e) {
|
||||||
|
dol_syslog($e->getMessage(), LOG_WARNING);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Call the beforeODTSave hook
|
||||||
|
$parameters = array('odfHandler'=>&$odfHandler, 'file'=>$file, 'object'=>$object, 'outputlangs'=>$outputlangs);
|
||||||
|
$reshook = $hookmanager->executeHooks('beforeODTSave', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks
|
||||||
|
|
||||||
|
// Write new file
|
||||||
|
if (!empty($conf->global->MAIN_ODT_AS_PDF)) {
|
||||||
|
try {
|
||||||
|
$odfHandler->exportAsAttachedPDF($file);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$this->error = $e->getMessage();
|
||||||
|
dol_syslog($e->getMessage(), LOG_WARNING);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
$odfHandler->saveToDisk($file);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$this->error = $e->getMessage();
|
||||||
|
dol_syslog($e->getMessage(), LOG_WARNING);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$reshook = $hookmanager->executeHooks('afterODTCreation', $parameters, $this, $action); // Note that $action and $object may have been modified by some hooks
|
||||||
|
|
||||||
|
if (!empty($conf->global->MAIN_UMASK))
|
||||||
|
@chmod($file, octdec($conf->global->MAIN_UMASK));
|
||||||
|
|
||||||
|
$odfHandler = null; // Destroy object
|
||||||
|
|
||||||
|
$this->result = array('fullpath'=>$file);
|
||||||
|
|
||||||
|
return 1; // Success
|
||||||
|
} else {
|
||||||
|
$this->error = $langs->transnoentities("ErrorCanNotCreateDir", $dir);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||||
|
/**
|
||||||
|
* get substitution array for object
|
||||||
|
*
|
||||||
|
* @param Adherent $object member
|
||||||
|
* @param Translate $outputlangs translation object
|
||||||
|
* @param string $array_key key for array
|
||||||
|
* @return array array of substitutions
|
||||||
|
*/
|
||||||
|
public function get_substitutionarray_object($object, $outputlangs, $array_key = 'object')
|
||||||
|
{
|
||||||
|
// phpcs:enable
|
||||||
|
$array_other = array();
|
||||||
|
foreach ($object as $key => $value) {
|
||||||
|
if (!is_array($value) && !is_object($value)) {
|
||||||
|
$array_other[$array_key.'_'.$key] = $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $array_other;
|
||||||
|
}
|
||||||
|
}
|
||||||
66
htdocs/core/modules/member/modules_member.class.php
Normal file
66
htdocs/core/modules/member/modules_member.class.php
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
<?php
|
||||||
|
/* Copyright (C) 2003-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
|
* Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
|
* Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com>
|
||||||
|
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.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 <https://www.gnu.org/licenses/>.
|
||||||
|
* or see https://www.gnu.org/
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \class ModeleProductCode
|
||||||
|
* \brief Parent class for product code generators
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file htdocs/core/modules/member/modules_member.php
|
||||||
|
* \ingroup members
|
||||||
|
* \brief File with parent class for generating members to PDF
|
||||||
|
*/
|
||||||
|
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parent class to manage intervention document templates
|
||||||
|
*/
|
||||||
|
abstract class ModelePDFMember extends CommonDocGenerator
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var string Error code (or message)
|
||||||
|
*/
|
||||||
|
public $error = '';
|
||||||
|
|
||||||
|
|
||||||
|
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||||
|
/**
|
||||||
|
* Return list of active generation modules
|
||||||
|
*
|
||||||
|
* @param DoliDB $db Database handler
|
||||||
|
* @param integer $maxfilenamelength Max length of value to show
|
||||||
|
* @return array List of templates
|
||||||
|
*/
|
||||||
|
public static function liste_modeles($db, $maxfilenamelength = 0)
|
||||||
|
{
|
||||||
|
// phpcs:enable
|
||||||
|
|
||||||
|
$type = 'member';
|
||||||
|
$list = array();
|
||||||
|
|
||||||
|
include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
|
||||||
|
$list = getListOfModels($db, $type, $maxfilenamelength);
|
||||||
|
return $list;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -60,7 +60,10 @@ class modAdherent extends DolibarrModules
|
|||||||
$this->picto = 'member';
|
$this->picto = 'member';
|
||||||
|
|
||||||
// Data directories to create when module is enabled
|
// Data directories to create when module is enabled
|
||||||
$this->dirs = array("/adherent/temp");
|
$this->dirs = array(
|
||||||
|
"/adherent/temp",
|
||||||
|
"/doctemplates/members",
|
||||||
|
);
|
||||||
|
|
||||||
// Config pages
|
// Config pages
|
||||||
$this->config_page_url = array("adherent.php@adherents");
|
$this->config_page_url = array("adherent.php@adherents");
|
||||||
@ -178,6 +181,13 @@ class modAdherent extends DolibarrModules
|
|||||||
$this->const[$r][4] = 0;
|
$this->const[$r][4] = 0;
|
||||||
$r++;
|
$r++;
|
||||||
|
|
||||||
|
$this->const[$r][0] = "MEMBER_ADDON_PDF_ODT_PATH";
|
||||||
|
$this->const[$r][1] = "chaine";
|
||||||
|
$this->const[$r][2] = "DOL_DATA_ROOT/doctemplates/members";
|
||||||
|
$this->const[$r][3] = "";
|
||||||
|
$this->const[$r][4] = 0;
|
||||||
|
$r++;
|
||||||
|
|
||||||
|
|
||||||
// Boxes
|
// Boxes
|
||||||
//-------
|
//-------
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2014-2018 Frederic France <frederic.france@netlogic.fr>
|
* Copyright (C) 2014-2020 Frederic France <frederic.france@netlogic.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -141,6 +141,8 @@ class printing_printipp extends PrintingDriver
|
|||||||
$ipp->setPort($this->port);
|
$ipp->setPort($this->port);
|
||||||
$ipp->setJobName($file, true);
|
$ipp->setJobName($file, true);
|
||||||
$ipp->setUserName($this->userid);
|
$ipp->setUserName($this->userid);
|
||||||
|
// Set default number of copy
|
||||||
|
$ipp->setCopies(1);
|
||||||
if (!empty($this->user)) $ipp->setAuthentication($this->user, $this->password);
|
if (!empty($this->user)) $ipp->setAuthentication($this->user, $this->password);
|
||||||
|
|
||||||
// select printer uri for module order, propal,...
|
// select printer uri for module order, propal,...
|
||||||
@ -148,10 +150,11 @@ class printing_printipp extends PrintingDriver
|
|||||||
$result = $this->db->query($sql);
|
$result = $this->db->query($sql);
|
||||||
if ($result) {
|
if ($result) {
|
||||||
$obj = $this->db->fetch_object($result);
|
$obj = $this->db->fetch_object($result);
|
||||||
if ($obj)
|
if ($obj) {
|
||||||
{
|
|
||||||
dol_syslog("Found a default printer for user ".$user->id." = ".$obj->printer_id);
|
dol_syslog("Found a default printer for user ".$user->id." = ".$obj->printer_id);
|
||||||
$ipp->setPrinterURI($obj->printer_id);
|
$ipp->setPrinterURI($obj->printer_id);
|
||||||
|
// Set number of copy
|
||||||
|
$ipp->setCopies($obj->copy);
|
||||||
} else {
|
} else {
|
||||||
if (!empty($conf->global->PRINTIPP_URI_DEFAULT))
|
if (!empty($conf->global->PRINTIPP_URI_DEFAULT))
|
||||||
{
|
{
|
||||||
@ -167,8 +170,6 @@ class printing_printipp extends PrintingDriver
|
|||||||
dol_print_error($this->db);
|
dol_print_error($this->db);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set number of copy
|
|
||||||
$ipp->setCopies($obj->copy);
|
|
||||||
$fileprint = $conf->{$module}->dir_output;
|
$fileprint = $conf->{$module}->dir_output;
|
||||||
if ($subdir != '') $fileprint .= '/'.$subdir;
|
if ($subdir != '') $fileprint .= '/'.$subdir;
|
||||||
$fileprint .= '/'.$file;
|
$fileprint .= '/'.$file;
|
||||||
|
|||||||
@ -690,7 +690,7 @@ class pdf_standard extends ModelePDFProduct
|
|||||||
* Show top header of page.
|
* Show top header of page.
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Object $object Object to show
|
* @param Product $object Object to show
|
||||||
* @param int $showaddress 0=no, 1=yes
|
* @param int $showaddress 0=no, 1=yes
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @param string $titlekey Translation key to show as title of document
|
* @param string $titlekey Translation key to show as title of document
|
||||||
@ -837,7 +837,7 @@ class pdf_standard extends ModelePDFProduct
|
|||||||
* Show footer of page. Need this->emetteur object
|
* Show footer of page. Need this->emetteur object
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf PDF
|
* @param TCPDF $pdf PDF
|
||||||
* @param Object $object Object to show
|
* @param Product $object Object to show
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @param int $hidefreetext 1=Hide free text
|
* @param int $hidefreetext 1=Hide free text
|
||||||
* @return int Return height of bottom margin including footer text
|
* @return int Return height of bottom margin including footer text
|
||||||
|
|||||||
@ -38,26 +38,6 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
|
|||||||
|
|
||||||
class pdf_baleine extends ModelePDFProjects
|
class pdf_baleine extends ModelePDFProjects
|
||||||
{
|
{
|
||||||
/**
|
|
||||||
* @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.
|
* @var array Minimum version of PHP required by module.
|
||||||
* e.g.: PHP ≥ 5.6 = array(5, 6)
|
* e.g.: PHP ≥ 5.6 = array(5, 6)
|
||||||
@ -70,44 +50,9 @@ class pdf_baleine extends ModelePDFProjects
|
|||||||
*/
|
*/
|
||||||
public $version = 'dolibarr';
|
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
|
* Issuer
|
||||||
* @var Societe object that emits
|
* @var Societe Object that emits
|
||||||
*/
|
*/
|
||||||
public $emetteur;
|
public $emetteur;
|
||||||
|
|
||||||
@ -149,10 +94,10 @@ class pdf_baleine extends ModelePDFProjects
|
|||||||
// Define position of columns
|
// Define position of columns
|
||||||
$this->posxref = $this->marge_gauche + 1;
|
$this->posxref = $this->marge_gauche + 1;
|
||||||
$this->posxlabel = $this->marge_gauche + 25;
|
$this->posxlabel = $this->marge_gauche + 25;
|
||||||
$this->posxworkload = $this->marge_gauche + 120;
|
$this->posxworkload = $this->marge_gauche + 117;
|
||||||
$this->posxprogress = $this->marge_gauche + 140;
|
$this->posxprogress = $this->marge_gauche + 137;
|
||||||
$this->posxdatestart = $this->marge_gauche + 152;
|
$this->posxdatestart = $this->marge_gauche + 147;
|
||||||
$this->posxdateend = $this->marge_gauche + 170;
|
$this->posxdateend = $this->marge_gauche + 169;
|
||||||
if ($this->page_largeur < 210) // To work with US executive format
|
if ($this->page_largeur < 210) // To work with US executive format
|
||||||
{
|
{
|
||||||
$this->posxref -= 20;
|
$this->posxref -= 20;
|
||||||
@ -420,7 +365,8 @@ class pdf_baleine extends ModelePDFProjects
|
|||||||
// Progress
|
// Progress
|
||||||
$pdf->SetXY($this->posxprogress, $curY);
|
$pdf->SetXY($this->posxprogress, $curY);
|
||||||
$pdf->MultiCell($this->posxdatestart - $this->posxprogress, 3, $progress, 0, 'R');
|
$pdf->MultiCell($this->posxdatestart - $this->posxprogress, 3, $progress, 0, 'R');
|
||||||
// Date
|
|
||||||
|
// Date start and end
|
||||||
$pdf->SetXY($this->posxdatestart, $curY);
|
$pdf->SetXY($this->posxdatestart, $curY);
|
||||||
$pdf->MultiCell($this->posxdateend - $this->posxdatestart, 3, $datestart, 0, 'C');
|
$pdf->MultiCell($this->posxdateend - $this->posxdatestart, 3, $datestart, 0, 'C');
|
||||||
$pdf->SetXY($this->posxdateend, $curY);
|
$pdf->SetXY($this->posxdateend, $curY);
|
||||||
@ -538,7 +484,7 @@ class pdf_baleine extends ModelePDFProjects
|
|||||||
// Draw rect of all tab (title + lines). Rect takes a length in 3rd parameter
|
// Draw rect of all tab (title + lines). Rect takes a length in 3rd parameter
|
||||||
$pdf->Rect($this->marge_gauche, $tab_top, $this->page_largeur - $this->marge_gauche - $this->marge_droite, $tab_height);
|
$pdf->Rect($this->marge_gauche, $tab_top, $this->page_largeur - $this->marge_gauche - $this->marge_droite, $tab_height);
|
||||||
|
|
||||||
// line takes a position y in 3rd parameter
|
// Line takes a position y in 3rd parameter
|
||||||
$pdf->line($this->marge_gauche, $tab_top + $heightoftitleline, $this->page_largeur - $this->marge_droite, $tab_top + $heightoftitleline);
|
$pdf->line($this->marge_gauche, $tab_top + $heightoftitleline, $this->page_largeur - $this->marge_droite, $tab_top + $heightoftitleline);
|
||||||
|
|
||||||
$pdf->SetTextColor(0, 0, 0);
|
$pdf->SetTextColor(0, 0, 0);
|
||||||
@ -556,11 +502,13 @@ class pdf_baleine extends ModelePDFProjects
|
|||||||
$pdf->SetXY($this->posxprogress, $tab_top + 1);
|
$pdf->SetXY($this->posxprogress, $tab_top + 1);
|
||||||
$pdf->MultiCell($this->posxdatestart - $this->posxprogress, 3, '%', 0, 'R');
|
$pdf->MultiCell($this->posxdatestart - $this->posxprogress, 3, '%', 0, 'R');
|
||||||
|
|
||||||
|
// Date start
|
||||||
$pdf->SetXY($this->posxdatestart, $tab_top + 1);
|
$pdf->SetXY($this->posxdatestart, $tab_top + 1);
|
||||||
$pdf->MultiCell($this->posxdateend - $this->posxdatestart, 3, '', 0, 'C');
|
$pdf->MultiCell($this->posxdateend - $this->posxdatestart, 3, $outputlangs->trans("Start"), 0, 'C');
|
||||||
|
|
||||||
|
// Date end
|
||||||
$pdf->SetXY($this->posxdateend, $tab_top + 1);
|
$pdf->SetXY($this->posxdateend, $tab_top + 1);
|
||||||
$pdf->MultiCell($this->page_largeur - $this->marge_droite - $this->posxdatestart, 3, '', 0, 'C');
|
$pdf->MultiCell($this->page_largeur - $this->marge_droite - $this->posxdateend, 3, $outputlangs->trans("End"), 0, 'C');
|
||||||
}
|
}
|
||||||
|
|
||||||
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore
|
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore
|
||||||
|
|||||||
@ -111,14 +111,14 @@ class pdf_beluga extends ModelePDFProjects
|
|||||||
if ($this->orientation == 'L' || $this->orientation == 'Landscape') {
|
if ($this->orientation == 'L' || $this->orientation == 'Landscape') {
|
||||||
$this->posxref = $this->marge_gauche + 1;
|
$this->posxref = $this->marge_gauche + 1;
|
||||||
$this->posxdate = $this->marge_gauche + 105;
|
$this->posxdate = $this->marge_gauche + 105;
|
||||||
$this->posxsociety = $this->marge_gauche + 125;
|
$this->posxsociety = $this->marge_gauche + 126;
|
||||||
$this->posxamountht = $this->marge_gauche + 190;
|
$this->posxamountht = $this->marge_gauche + 190;
|
||||||
$this->posxamountttc = $this->marge_gauche + 215;
|
$this->posxamountttc = $this->marge_gauche + 215;
|
||||||
$this->posxstatut = $this->marge_gauche + 245;
|
$this->posxstatut = $this->marge_gauche + 245;
|
||||||
} else {
|
} else {
|
||||||
$this->posxref = $this->marge_gauche + 1;
|
$this->posxref = $this->marge_gauche + 1;
|
||||||
$this->posxdate = $this->marge_gauche + 25;
|
$this->posxdate = $this->marge_gauche + 25;
|
||||||
$this->posxsociety = $this->marge_gauche + 45;
|
$this->posxsociety = $this->marge_gauche + 46;
|
||||||
$this->posxamountht = $this->marge_gauche + 110;
|
$this->posxamountht = $this->marge_gauche + 110;
|
||||||
$this->posxamountttc = $this->marge_gauche + 135;
|
$this->posxamountttc = $this->marge_gauche + 135;
|
||||||
$this->posxstatut = $this->marge_gauche + 165;
|
$this->posxstatut = $this->marge_gauche + 165;
|
||||||
|
|||||||
@ -37,9 +37,21 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
|
|||||||
|
|
||||||
class pdf_timespent extends ModelePDFProjects
|
class pdf_timespent extends ModelePDFProjects
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @var array Minimum version of PHP required by module.
|
||||||
|
* e.g.: PHP ≥ 5.6 = array(5, 6)
|
||||||
|
*/
|
||||||
|
public $phpmin = array(5, 6);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dolibarr version of the loaded document
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $version = 'dolibarr';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Issuer
|
* Issuer
|
||||||
* @var Societe
|
* @var Societe Object that emits
|
||||||
*/
|
*/
|
||||||
public $emetteur;
|
public $emetteur;
|
||||||
|
|
||||||
@ -81,25 +93,26 @@ class pdf_timespent extends ModelePDFProjects
|
|||||||
// Define position of columns
|
// Define position of columns
|
||||||
$this->posxref = $this->marge_gauche + 1;
|
$this->posxref = $this->marge_gauche + 1;
|
||||||
$this->posxlabel = $this->marge_gauche + 25;
|
$this->posxlabel = $this->marge_gauche + 25;
|
||||||
|
$this->posxworkload = $this->marge_gauche + 100;
|
||||||
$this->posxtimespent = $this->marge_gauche + 120;
|
$this->posxtimespent = $this->marge_gauche + 120;
|
||||||
//$this->posxprogress=$this->marge_gauche+140;
|
//$this->posxprogress=$this->marge_gauche+140;
|
||||||
$this->posxdatestart = $this->marge_gauche + 152;
|
$this->posxuser = $this->marge_gauche + 147;
|
||||||
$this->posxdateend = $this->marge_gauche + 170;
|
//$this->posxdateend = $this->marge_gauche + 169;
|
||||||
if ($this->page_largeur < 210) // To work with US executive format
|
if ($this->page_largeur < 210) // To work with US executive format
|
||||||
{
|
{
|
||||||
$this->posxref -= 20;
|
$this->posxref -= 20;
|
||||||
$this->posxlabel -= 20;
|
$this->posxlabel -= 20;
|
||||||
$this->posxtimespent -= 20;
|
$this->posxtimespent -= 20;
|
||||||
//$this->posxprogress-=20;
|
//$this->posxprogress-=20;
|
||||||
$this->posxdatestart -= 20;
|
$this->posxuser -= 20;
|
||||||
$this->posxdateend -= 20;
|
//$this->posxdateend -= 20;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||||
/**
|
/**
|
||||||
* Fonction generant le projet sur le disque
|
* Function to build pdf project onto disk
|
||||||
*
|
*
|
||||||
* @param Project $object Object project a generer
|
* @param Project $object Object project a generer
|
||||||
* @param Translate $outputlangs Lang output object
|
* @param Translate $outputlangs Lang output object
|
||||||
@ -156,6 +169,7 @@ class pdf_timespent extends ModelePDFProjects
|
|||||||
$heightforinfotot = 40; // Height reserved to output the info and total part
|
$heightforinfotot = 40; // Height reserved to output the info and total part
|
||||||
$heightforfreetext = (isset($conf->global->MAIN_PDF_FREETEXT_HEIGHT) ? $conf->global->MAIN_PDF_FREETEXT_HEIGHT : 5); // Height reserved to output the free text on last page
|
$heightforfreetext = (isset($conf->global->MAIN_PDF_FREETEXT_HEIGHT) ? $conf->global->MAIN_PDF_FREETEXT_HEIGHT : 5); // Height reserved to output the free text on last page
|
||||||
$heightforfooter = $this->marge_basse + 8; // Height reserved to output the footer (value include bottom margin)
|
$heightforfooter = $this->marge_basse + 8; // Height reserved to output the footer (value include bottom margin)
|
||||||
|
if (!empty($conf->global->MAIN_GENERATE_DOCUMENTS_SHOW_FOOT_DETAILS)) $heightforfooter += 6;
|
||||||
|
|
||||||
if (class_exists('TCPDF'))
|
if (class_exists('TCPDF'))
|
||||||
{
|
{
|
||||||
@ -227,7 +241,7 @@ class pdf_timespent extends ModelePDFProjects
|
|||||||
|
|
||||||
// Rect takes a length in 3rd parameter
|
// Rect takes a length in 3rd parameter
|
||||||
$pdf->SetDrawColor(192, 192, 192);
|
$pdf->SetDrawColor(192, 192, 192);
|
||||||
$pdf->Rect($this->marge_gauche, $tab_top - 1, $this->page_largeur - $this->marge_gauche - $this->marge_droite, $height_note + 1);
|
$pdf->Rect($this->marge_gauche, $tab_top - 2, $this->page_largeur - $this->marge_gauche - $this->marge_droite, $height_note + 2);
|
||||||
|
|
||||||
$tab_height = $tab_height - $height_note;
|
$tab_height = $tab_height - $height_note;
|
||||||
$tab_top = $nexY + 6;
|
$tab_top = $nexY + 6;
|
||||||
@ -240,6 +254,10 @@ class pdf_timespent extends ModelePDFProjects
|
|||||||
$curY = $tab_top + $heightoftitleline + 1;
|
$curY = $tab_top + $heightoftitleline + 1;
|
||||||
$nexY = $tab_top + $heightoftitleline + 1;
|
$nexY = $tab_top + $heightoftitleline + 1;
|
||||||
|
|
||||||
|
$tmpuser = new User($this->db);
|
||||||
|
|
||||||
|
// TODO We should loop on record of times spent grouped by user instead of lines of tasks
|
||||||
|
|
||||||
// Loop on each lines
|
// Loop on each lines
|
||||||
for ($i = 0; $i < $nblines; $i++)
|
for ($i = 0; $i < $nblines; $i++)
|
||||||
{
|
{
|
||||||
@ -340,22 +358,24 @@ class pdf_timespent extends ModelePDFProjects
|
|||||||
$pdf->setPage($pageposafter); $curY = $tab_top_newpage + $heightoftitleline + 1;
|
$pdf->setPage($pageposafter); $curY = $tab_top_newpage + $heightoftitleline + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
$pdf->SetFont('', '', $default_font_size - 1); // On repositionne la police par defaut
|
$pdf->SetFont('', '', $default_font_size - 1); // We reposition the default font
|
||||||
|
|
||||||
// Ref of task
|
// Ref of task
|
||||||
$pdf->SetXY($this->posxref, $curY);
|
$pdf->SetXY($this->posxref, $curY);
|
||||||
$pdf->MultiCell($this->posxlabel - $this->posxref, 3, $outputlangs->convToOutputCharset($ref), 0, 'L');
|
$pdf->MultiCell($this->posxlabel - $this->posxref, 3, $outputlangs->convToOutputCharset($ref), 0, 'L');
|
||||||
// timespent
|
// timespent
|
||||||
$pdf->SetXY($this->posxtimespent, $curY);
|
$pdf->SetXY($this->posxtimespent, $curY);
|
||||||
$pdf->MultiCell($this->posxdatestart - $this->posxtimespent, 3, $duration ? $duration : '', 0, 'R');
|
$pdf->MultiCell($this->posxuser - $this->posxtimespent, 3, $duration ? $duration : '', 0, 'R');
|
||||||
// Progress
|
// Progress
|
||||||
//$pdf->SetXY($this->posxprogress, $curY);
|
//$pdf->SetXY($this->posxprogress, $curY);
|
||||||
//$pdf->MultiCell($this->posxdatestart-$this->posxprogress, 3, $progress, 0, 'R');
|
//$pdf->MultiCell($this->posxuser-$this->posxprogress, 3, $progress, 0, 'R');
|
||||||
// Date
|
|
||||||
$pdf->SetXY($this->posxdatestart, $curY);
|
// User spending time
|
||||||
$pdf->MultiCell($this->posxdateend - $this->posxdatestart, 3, $datestart, 0, 'C');
|
/*var_dump($object->lines[$i]);exit;
|
||||||
$pdf->SetXY($this->posxdateend, $curY);
|
$tmpuser->fetch($object->lines[$i]->fk_user);
|
||||||
$pdf->MultiCell($this->page_largeur - $this->marge_droite - $this->posxdateend, 3, $dateend, 0, 'C');
|
$pdf->SetXY($this->posxuser, $curY);
|
||||||
|
$pdf->MultiCell($this->page_largeur - $this->marge_droite - $this->posxuser, 3, $tmpuser->getFullName($outputlangs, 0, -1, 20), 0, 'C');
|
||||||
|
*/
|
||||||
|
|
||||||
// Add line
|
// Add line
|
||||||
if (!empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblines - 1))
|
if (!empty($conf->global->MAIN_PDF_DASH_BETWEEN_LINES) && $i < ($nblines - 1))
|
||||||
@ -408,7 +428,7 @@ class pdf_timespent extends ModelePDFProjects
|
|||||||
else $this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforinfotot - $heightforfreetext - $heightforfooter, 0, $outputlangs, 1, 0);
|
else $this->_tableau($pdf, $tab_top_newpage, $this->page_hauteur - $tab_top_newpage - $heightforinfotot - $heightforfreetext - $heightforfooter, 0, $outputlangs, 1, 0);
|
||||||
$bottomlasttab = $this->page_hauteur - $heightforinfotot - $heightforfreetext - $heightforfooter + 1;
|
$bottomlasttab = $this->page_hauteur - $heightforinfotot - $heightforfreetext - $heightforfooter + 1;
|
||||||
|
|
||||||
// Pied de page
|
// Footer of the page
|
||||||
$this->_pagefoot($pdf, $object, $outputlangs);
|
$this->_pagefoot($pdf, $object, $outputlangs);
|
||||||
if (method_exists($pdf, 'AliasNbPages')) $pdf->AliasNbPages();
|
if (method_exists($pdf, 'AliasNbPages')) $pdf->AliasNbPages();
|
||||||
|
|
||||||
@ -469,7 +489,7 @@ class pdf_timespent extends ModelePDFProjects
|
|||||||
// Draw rect of all tab (title + lines). Rect takes a length in 3rd parameter
|
// Draw rect of all tab (title + lines). Rect takes a length in 3rd parameter
|
||||||
$pdf->Rect($this->marge_gauche, $tab_top, $this->page_largeur - $this->marge_gauche - $this->marge_droite, $tab_height);
|
$pdf->Rect($this->marge_gauche, $tab_top, $this->page_largeur - $this->marge_gauche - $this->marge_droite, $tab_height);
|
||||||
|
|
||||||
// line prend une position y en 3eme param
|
// Line takes a position y in 3rd parameter
|
||||||
$pdf->line($this->marge_gauche, $tab_top + $heightoftitleline, $this->page_largeur - $this->marge_droite, $tab_top + $heightoftitleline);
|
$pdf->line($this->marge_gauche, $tab_top + $heightoftitleline, $this->page_largeur - $this->marge_droite, $tab_top + $heightoftitleline);
|
||||||
|
|
||||||
$pdf->SetTextColor(0, 0, 0);
|
$pdf->SetTextColor(0, 0, 0);
|
||||||
@ -482,16 +502,13 @@ class pdf_timespent extends ModelePDFProjects
|
|||||||
$pdf->MultiCell($this->posxtimespent - $this->posxlabel, 3, $outputlangs->transnoentities("Description"), 0, 'L');
|
$pdf->MultiCell($this->posxtimespent - $this->posxlabel, 3, $outputlangs->transnoentities("Description"), 0, 'L');
|
||||||
|
|
||||||
$pdf->SetXY($this->posxtimespent, $tab_top + 1);
|
$pdf->SetXY($this->posxtimespent, $tab_top + 1);
|
||||||
$pdf->MultiCell($this->posxdatestart - $this->posxtimespent, 3, $outputlangs->transnoentities("TimeSpent"), 0, 'R');
|
$pdf->MultiCell($this->posxuser - $this->posxtimespent, 3, $outputlangs->transnoentities("TimeSpent"), 0, 'R');
|
||||||
|
|
||||||
//$pdf->SetXY($this->posxprogress, $tab_top+1);
|
//$pdf->SetXY($this->posxprogress, $tab_top+1);
|
||||||
//$pdf->MultiCell($this->posxdatestart-$this->posxprogress, 3, '%', 0, 'R');
|
//$pdf->MultiCell($this->posxuser - $this->posxprogress, 3, '%', 0, 'R');
|
||||||
|
|
||||||
$pdf->SetXY($this->posxdatestart, $tab_top + 1);
|
$pdf->SetXY($this->posxuser, $tab_top + 1);
|
||||||
$pdf->MultiCell($this->posxdateend - $this->posxdatestart, 3, $outputlangs->transnoentities("Date"), 0, 'C');
|
$pdf->MultiCell($this->page_largeur - $this->marge_droite - $this->posxuser, 3, '', 0, 'C');
|
||||||
|
|
||||||
$pdf->SetXY($this->posxdateend, $tab_top + 1);
|
|
||||||
$pdf->MultiCell($this->page_largeur - $this->marge_droite - $this->posxdatestart, 3, '', 0, 'C');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore
|
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore
|
||||||
|
|||||||
@ -31,6 +31,61 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php';
|
|||||||
*/
|
*/
|
||||||
abstract class ModelePDFProjects extends CommonDocGenerator
|
abstract class ModelePDFProjects extends CommonDocGenerator
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @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 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;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var string Error code (or message)
|
* @var string Error code (or message)
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -204,7 +204,7 @@ class pdf_azur extends ModelePDFPropales
|
|||||||
/**
|
/**
|
||||||
* Function to build pdf onto disk
|
* Function to build pdf onto disk
|
||||||
*
|
*
|
||||||
* @param Object $object Object to generate
|
* @param Propal $object Object to generate
|
||||||
* @param Translate $outputlangs Lang output object
|
* @param Translate $outputlangs Lang output object
|
||||||
* @param string $srctemplatepath Full path of source filename for generator using a template file
|
* @param string $srctemplatepath Full path of source filename for generator using a template file
|
||||||
* @param int $hidedetails Do not show line details
|
* @param int $hidedetails Do not show line details
|
||||||
@ -396,7 +396,7 @@ class pdf_azur extends ModelePDFPropales
|
|||||||
$tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10);
|
$tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10);
|
||||||
|
|
||||||
// Incoterm
|
// Incoterm
|
||||||
if ($conf->incoterm->enabled)
|
if (!empty($conf->incoterm->enabled))
|
||||||
{
|
{
|
||||||
$desc_incoterms = $object->getIncotermsForPDF();
|
$desc_incoterms = $object->getIncotermsForPDF();
|
||||||
if ($desc_incoterms)
|
if ($desc_incoterms)
|
||||||
@ -827,8 +827,8 @@ class pdf_azur extends ModelePDFPropales
|
|||||||
/**
|
/**
|
||||||
* Show payments table
|
* Show payments table
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Object $object Object proposal
|
* @param Propal $object Object proposal
|
||||||
* @param int $posy Position y in PDF
|
* @param int $posy Position y in PDF
|
||||||
* @param Translate $outputlangs Object langs for output
|
* @param Translate $outputlangs Object langs for output
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
@ -844,7 +844,7 @@ class pdf_azur extends ModelePDFPropales
|
|||||||
* Show miscellaneous information (payment mode, payment term, ...)
|
* Show miscellaneous information (payment mode, payment term, ...)
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Object $object Object to show
|
* @param Propal $object Object to show
|
||||||
* @param int $posy Y
|
* @param int $posy Y
|
||||||
* @param Translate $outputlangs Langs object
|
* @param Translate $outputlangs Langs object
|
||||||
* @return void
|
* @return void
|
||||||
@ -870,7 +870,7 @@ class pdf_azur extends ModelePDFPropales
|
|||||||
$posxval = 52;
|
$posxval = 52;
|
||||||
|
|
||||||
// Show shipping date
|
// Show shipping date
|
||||||
if (!empty($object->date_livraison))
|
if (!empty($object->delivery_date))
|
||||||
{
|
{
|
||||||
$outputlangs->load("sendings");
|
$outputlangs->load("sendings");
|
||||||
$pdf->SetFont('', 'B', $default_font_size - 2);
|
$pdf->SetFont('', 'B', $default_font_size - 2);
|
||||||
@ -879,7 +879,7 @@ class pdf_azur extends ModelePDFPropales
|
|||||||
$pdf->MultiCell(80, 4, $titre, 0, 'L');
|
$pdf->MultiCell(80, 4, $titre, 0, 'L');
|
||||||
$pdf->SetFont('', '', $default_font_size - 2);
|
$pdf->SetFont('', '', $default_font_size - 2);
|
||||||
$pdf->SetXY($posxval, $posy);
|
$pdf->SetXY($posxval, $posy);
|
||||||
$dlp = dol_print_date($object->date_livraison, "daytext", false, $outputlangs, true);
|
$dlp = dol_print_date($object->delivery_date, "daytext", false, $outputlangs, true);
|
||||||
$pdf->MultiCell(80, 4, $dlp, 0, 'L');
|
$pdf->MultiCell(80, 4, $dlp, 0, 'L');
|
||||||
|
|
||||||
$posy = $pdf->GetY() + 1;
|
$posy = $pdf->GetY() + 1;
|
||||||
@ -1415,7 +1415,7 @@ class pdf_azur extends ModelePDFPropales
|
|||||||
* Show top header of page.
|
* Show top header of page.
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Object $object Object to show
|
* @param Propal $object Object to show
|
||||||
* @param int $showaddress 0=no, 1=yes
|
* @param int $showaddress 0=no, 1=yes
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @return void
|
* @return void
|
||||||
@ -1666,7 +1666,7 @@ class pdf_azur extends ModelePDFPropales
|
|||||||
* Show footer of page. Need this->emetteur object
|
* Show footer of page. Need this->emetteur object
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf PDF
|
* @param TCPDF $pdf PDF
|
||||||
* @param Object $object Object to show
|
* @param Propal $object Object to show
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @param int $hidefreetext 1=Hide free text
|
* @param int $hidefreetext 1=Hide free text
|
||||||
* @return int Return height of bottom margin including footer text
|
* @return int Return height of bottom margin including footer text
|
||||||
@ -1684,7 +1684,7 @@ class pdf_azur extends ModelePDFPropales
|
|||||||
* Show area for the customer to sign
|
* Show area for the customer to sign
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Facture $object Object invoice
|
* @param Propal $object Object invoice
|
||||||
* @param int $posy Position depart
|
* @param int $posy Position depart
|
||||||
* @param Translate $outputlangs Objet langs
|
* @param Translate $outputlangs Objet langs
|
||||||
* @return int Position pour suite
|
* @return int Position pour suite
|
||||||
|
|||||||
@ -187,7 +187,7 @@ class pdf_cyan extends ModelePDFPropales
|
|||||||
/**
|
/**
|
||||||
* Function to build pdf onto disk
|
* Function to build pdf onto disk
|
||||||
*
|
*
|
||||||
* @param Object $object Object to generate
|
* @param Propal $object Object to generate
|
||||||
* @param Translate $outputlangs Lang output object
|
* @param Translate $outputlangs Lang output object
|
||||||
* @param string $srctemplatepath Full path of source filename for generator using a template file
|
* @param string $srctemplatepath Full path of source filename for generator using a template file
|
||||||
* @param int $hidedetails Do not show line details
|
* @param int $hidedetails Do not show line details
|
||||||
@ -384,7 +384,7 @@ class pdf_cyan extends ModelePDFPropales
|
|||||||
|
|
||||||
// Incoterm
|
// Incoterm
|
||||||
$height_incoterms = 0;
|
$height_incoterms = 0;
|
||||||
if ($conf->incoterm->enabled)
|
if (!empty($conf->incoterm->enabled))
|
||||||
{
|
{
|
||||||
$desc_incoterms = $object->getIncotermsForPDF();
|
$desc_incoterms = $object->getIncotermsForPDF();
|
||||||
if ($desc_incoterms)
|
if ($desc_incoterms)
|
||||||
@ -967,8 +967,8 @@ class pdf_cyan extends ModelePDFPropales
|
|||||||
/**
|
/**
|
||||||
* Show payments table
|
* Show payments table
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Object $object Object proposal
|
* @param Propal $object Object proposal
|
||||||
* @param int $posy Position y in PDF
|
* @param int $posy Position y in PDF
|
||||||
* @param Translate $outputlangs Object langs for output
|
* @param Translate $outputlangs Object langs for output
|
||||||
* @return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
@ -981,7 +981,7 @@ class pdf_cyan extends ModelePDFPropales
|
|||||||
* Show miscellaneous information (payment mode, payment term, ...)
|
* Show miscellaneous information (payment mode, payment term, ...)
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Object $object Object to show
|
* @param Propal $object Object to show
|
||||||
* @param int $posy Y
|
* @param int $posy Y
|
||||||
* @param Translate $outputlangs Langs object
|
* @param Translate $outputlangs Langs object
|
||||||
* @return int Pos y
|
* @return int Pos y
|
||||||
@ -1006,7 +1006,7 @@ class pdf_cyan extends ModelePDFPropales
|
|||||||
$posxval = 52;
|
$posxval = 52;
|
||||||
|
|
||||||
// Show shipping date
|
// Show shipping date
|
||||||
if (!empty($object->date_livraison))
|
if (!empty($object->delivery_date))
|
||||||
{
|
{
|
||||||
$outputlangs->load("sendings");
|
$outputlangs->load("sendings");
|
||||||
$pdf->SetFont('', 'B', $default_font_size - 2);
|
$pdf->SetFont('', 'B', $default_font_size - 2);
|
||||||
@ -1015,7 +1015,7 @@ class pdf_cyan extends ModelePDFPropales
|
|||||||
$pdf->MultiCell(80, 4, $titre, 0, 'L');
|
$pdf->MultiCell(80, 4, $titre, 0, 'L');
|
||||||
$pdf->SetFont('', '', $default_font_size - 2);
|
$pdf->SetFont('', '', $default_font_size - 2);
|
||||||
$pdf->SetXY($posxval, $posy);
|
$pdf->SetXY($posxval, $posy);
|
||||||
$dlp = dol_print_date($object->date_livraison, "daytext", false, $outputlangs, true);
|
$dlp = dol_print_date($object->delivery_date, "daytext", false, $outputlangs, true);
|
||||||
$pdf->MultiCell(80, 4, $dlp, 0, 'L');
|
$pdf->MultiCell(80, 4, $dlp, 0, 'L');
|
||||||
|
|
||||||
$posy = $pdf->GetY() + 1;
|
$posy = $pdf->GetY() + 1;
|
||||||
@ -1158,8 +1158,8 @@ class pdf_cyan extends ModelePDFPropales
|
|||||||
/**
|
/**
|
||||||
* Show total to pay
|
* Show total to pay
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Facture $object Object invoice
|
* @param Propal $object Object proposal
|
||||||
* @param int $deja_regle Montant deja regle
|
* @param int $deja_regle Montant deja regle
|
||||||
* @param int $posy Position depart
|
* @param int $posy Position depart
|
||||||
* @param Translate $outputlangs Objet langs
|
* @param Translate $outputlangs Objet langs
|
||||||
@ -1507,7 +1507,7 @@ class pdf_cyan extends ModelePDFPropales
|
|||||||
* Show top header of page.
|
* Show top header of page.
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Object $object Object to show
|
* @param Propal $object Object to show
|
||||||
* @param int $showaddress 0=no, 1=yes
|
* @param int $showaddress 0=no, 1=yes
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @param Translate $outputlangsbis Object lang for output bis
|
* @param Translate $outputlangsbis Object lang for output bis
|
||||||
@ -1553,8 +1553,7 @@ class pdf_cyan extends ModelePDFPropales
|
|||||||
} else {
|
} else {
|
||||||
$logo = $logodir.'/logos/'.$this->emetteur->logo;
|
$logo = $logodir.'/logos/'.$this->emetteur->logo;
|
||||||
}
|
}
|
||||||
if (is_readable($logo))
|
if (is_readable($logo)) {
|
||||||
{
|
|
||||||
$height = pdf_getHeightForLogo($logo);
|
$height = pdf_getHeightForLogo($logo);
|
||||||
$pdf->Image($logo, $this->marge_gauche, $posy, 0, $height); // width=0 (auto)
|
$pdf->Image($logo, $this->marge_gauche, $posy, 0, $height); // width=0 (auto)
|
||||||
} else {
|
} else {
|
||||||
@ -1762,7 +1761,7 @@ class pdf_cyan extends ModelePDFPropales
|
|||||||
* Show footer of page. Need this->emetteur object
|
* Show footer of page. Need this->emetteur object
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf PDF
|
* @param TCPDF $pdf PDF
|
||||||
* @param Object $object Object to show
|
* @param Propal $object Object to show
|
||||||
* @param Translate $outputlangs Object lang for output
|
* @param Translate $outputlangs Object lang for output
|
||||||
* @param int $hidefreetext 1=Hide free text
|
* @param int $hidefreetext 1=Hide free text
|
||||||
* @return int Return height of bottom margin including footer text
|
* @return int Return height of bottom margin including footer text
|
||||||
@ -1777,8 +1776,8 @@ class pdf_cyan extends ModelePDFPropales
|
|||||||
/**
|
/**
|
||||||
* Show area for the customer to sign
|
* Show area for the customer to sign
|
||||||
*
|
*
|
||||||
* @param TCPDF $pdf Object PDF
|
* @param TCPDF $pdf Object PDF
|
||||||
* @param Facture $object Object invoice
|
* @param Propal $object Object proposal
|
||||||
* @param int $posy Position depart
|
* @param int $posy Position depart
|
||||||
* @param Translate $outputlangs Objet langs
|
* @param Translate $outputlangs Objet langs
|
||||||
* @return int Position pour suite
|
* @return int Position pour suite
|
||||||
@ -1813,7 +1812,7 @@ class pdf_cyan extends ModelePDFPropales
|
|||||||
/**
|
/**
|
||||||
* Define Array Column Field
|
* Define Array Column Field
|
||||||
*
|
*
|
||||||
* @param object $object common object
|
* @param Propal $object object proposal
|
||||||
* @param Translate $outputlangs langs
|
* @param Translate $outputlangs langs
|
||||||
* @param int $hidedetails Do not show line details
|
* @param int $hidedetails Do not show line details
|
||||||
* @param int $hidedesc Do not show desc
|
* @param int $hidedesc Do not show desc
|
||||||
|
|||||||
@ -254,7 +254,7 @@ class pdf_squille extends ModelePdfReception
|
|||||||
|
|
||||||
// Incoterm
|
// Incoterm
|
||||||
$height_incoterms = 0;
|
$height_incoterms = 0;
|
||||||
if ($conf->incoterm->enabled)
|
if (!empty($conf->incoterm->enabled))
|
||||||
{
|
{
|
||||||
$desc_incoterms = $object->getIncotermsForPDF();
|
$desc_incoterms = $object->getIncotermsForPDF();
|
||||||
if ($desc_incoterms)
|
if ($desc_incoterms)
|
||||||
|
|||||||
@ -336,7 +336,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices
|
|||||||
$tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10);
|
$tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10);
|
||||||
|
|
||||||
// Incoterm
|
// Incoterm
|
||||||
if ($conf->incoterm->enabled)
|
if (!empty($conf->incoterm->enabled))
|
||||||
{
|
{
|
||||||
$desc_incoterms = $object->getIncotermsForPDF();
|
$desc_incoterms = $object->getIncotermsForPDF();
|
||||||
if ($desc_incoterms)
|
if ($desc_incoterms)
|
||||||
|
|||||||
@ -342,7 +342,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders
|
|||||||
$tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10);
|
$tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10);
|
||||||
|
|
||||||
// Incoterm
|
// Incoterm
|
||||||
if ($conf->incoterm->enabled)
|
if (!empty($conf->incoterm->enabled))
|
||||||
{
|
{
|
||||||
$desc_incoterms = $object->getIncotermsForPDF();
|
$desc_incoterms = $object->getIncotermsForPDF();
|
||||||
if ($desc_incoterms)
|
if ($desc_incoterms)
|
||||||
@ -1276,11 +1276,11 @@ class pdf_cornas extends ModelePDFSuppliersOrders
|
|||||||
$pdf->SetTextColor(0, 0, 60);
|
$pdf->SetTextColor(0, 0, 60);
|
||||||
$usehourmin = 'day';
|
$usehourmin = 'day';
|
||||||
if (!empty($conf->global->SUPPLIER_ORDER_USE_HOUR_FOR_DELIVERY_DATE)) $usehourmin = 'dayhour';
|
if (!empty($conf->global->SUPPLIER_ORDER_USE_HOUR_FOR_DELIVERY_DATE)) $usehourmin = 'dayhour';
|
||||||
if (!empty($object->date_livraison))
|
if (!empty($object->delivery_date))
|
||||||
{
|
{
|
||||||
$posy += 4;
|
$posy += 4;
|
||||||
$pdf->SetXY($posx - 90, $posy);
|
$pdf->SetXY($posx - 90, $posy);
|
||||||
$pdf->MultiCell(190, 3, $outputlangs->transnoentities("DateDeliveryPlanned")." : ".dol_print_date($object->date_livraison, $usehourmin, false, $outputlangs, true), '', 'R');
|
$pdf->MultiCell(190, 3, $outputlangs->transnoentities("DateDeliveryPlanned")." : ".dol_print_date($object->delivery_date, $usehourmin, false, $outputlangs, true), '', 'R');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($object->thirdparty->code_fournisseur)
|
if ($object->thirdparty->code_fournisseur)
|
||||||
|
|||||||
@ -370,7 +370,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
|||||||
$tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10);
|
$tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10);
|
||||||
|
|
||||||
// Incoterm
|
// Incoterm
|
||||||
if ($conf->incoterm->enabled)
|
if (!empty($conf->incoterm->enabled))
|
||||||
{
|
{
|
||||||
$desc_incoterms = $object->getIncotermsForPDF();
|
$desc_incoterms = $object->getIncotermsForPDF();
|
||||||
if ($desc_incoterms)
|
if ($desc_incoterms)
|
||||||
@ -1190,11 +1190,11 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
|
|||||||
$pdf->SetTextColor(0, 0, 60);
|
$pdf->SetTextColor(0, 0, 60);
|
||||||
$usehourmin = 'day';
|
$usehourmin = 'day';
|
||||||
if (!empty($conf->global->SUPPLIER_ORDER_USE_HOUR_FOR_DELIVERY_DATE)) $usehourmin = 'dayhour';
|
if (!empty($conf->global->SUPPLIER_ORDER_USE_HOUR_FOR_DELIVERY_DATE)) $usehourmin = 'dayhour';
|
||||||
if (!empty($object->date_livraison))
|
if (!empty($object->delivery_date))
|
||||||
{
|
{
|
||||||
$posy += 4;
|
$posy += 4;
|
||||||
$pdf->SetXY($posx - 90, $posy);
|
$pdf->SetXY($posx - 90, $posy);
|
||||||
$pdf->MultiCell(190, 3, $outputlangs->transnoentities("DateDeliveryPlanned")." : ".dol_print_date($object->date_livraison, $usehourmin, false, $outputlangs, true), '', 'R');
|
$pdf->MultiCell(190, 3, $outputlangs->transnoentities("DateDeliveryPlanned")." : ".dol_print_date($object->delivery_date, $usehourmin, false, $outputlangs, true), '', 'R');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($object->thirdparty->code_fournisseur)
|
if ($object->thirdparty->code_fournisseur)
|
||||||
|
|||||||
@ -724,7 +724,7 @@ class pdf_aurore extends ModelePDFSupplierProposal
|
|||||||
$posxval = 52;
|
$posxval = 52;
|
||||||
|
|
||||||
// Show shipping date
|
// Show shipping date
|
||||||
if (!empty($object->date_livraison))
|
if (!empty($object->delivery_date))
|
||||||
{
|
{
|
||||||
$outputlangs->load("sendings");
|
$outputlangs->load("sendings");
|
||||||
$pdf->SetFont('', 'B', $default_font_size - 2);
|
$pdf->SetFont('', 'B', $default_font_size - 2);
|
||||||
@ -733,7 +733,7 @@ class pdf_aurore extends ModelePDFSupplierProposal
|
|||||||
$pdf->MultiCell(80, 4, $titre, 0, 'L');
|
$pdf->MultiCell(80, 4, $titre, 0, 'L');
|
||||||
$pdf->SetFont('', '', $default_font_size - 2);
|
$pdf->SetFont('', '', $default_font_size - 2);
|
||||||
$pdf->SetXY($posxval, $posy);
|
$pdf->SetXY($posxval, $posy);
|
||||||
$dlp = dol_print_date($object->date_livraison, "daytext", false, $outputlangs, true);
|
$dlp = dol_print_date($object->delivery_date, "daytext", false, $outputlangs, true);
|
||||||
$pdf->MultiCell(80, 4, $dlp, 0, 'L');
|
$pdf->MultiCell(80, 4, $dlp, 0, 'L');
|
||||||
|
|
||||||
$posy = $pdf->GetY() + 1;
|
$posy = $pdf->GetY() + 1;
|
||||||
@ -745,7 +745,7 @@ class pdf_aurore extends ModelePDFSupplierProposal
|
|||||||
$pdf->MultiCell(80, 4, $titre, 0, 'L');
|
$pdf->MultiCell(80, 4, $titre, 0, 'L');
|
||||||
$pdf->SetFont('', '', $default_font_size - 2);
|
$pdf->SetFont('', '', $default_font_size - 2);
|
||||||
$pdf->SetXY($posxval, $posy);
|
$pdf->SetXY($posxval, $posy);
|
||||||
//$dlp=dol_print_date($object->date_livraison,"daytext",false,$outputlangs,true);
|
//$dlp=dol_print_date($object->delivery_date,"daytext",false,$outputlangs,true);
|
||||||
$pdf->MultiCell(80, 4, '', 0, 'L');
|
$pdf->MultiCell(80, 4, '', 0, 'L');
|
||||||
|
|
||||||
$posy = $pdf->GetY() + 1;
|
$posy = $pdf->GetY() + 1;
|
||||||
@ -1325,7 +1325,7 @@ class pdf_aurore extends ModelePDFSupplierProposal
|
|||||||
$posy+=4;
|
$posy+=4;
|
||||||
$pdf->SetXY($posx,$posy);
|
$pdf->SetXY($posx,$posy);
|
||||||
$pdf->SetTextColor(0,0,60);
|
$pdf->SetTextColor(0,0,60);
|
||||||
$pdf->MultiCell(100, 3, $outputlangs->transnoentities("SupplierProposalDate")." : " . dol_print_date($object->date_livraison, "day", false, $outputlangs, true), '', 'R');
|
$pdf->MultiCell(100, 3, $outputlangs->transnoentities("SupplierProposalDate")." : " . dol_print_date($object->delivery_date, "day", false, $outputlangs, true), '', 'R');
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ($object->thirdparty->code_fournisseur)
|
if ($object->thirdparty->code_fournisseur)
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2010-2012 Laurent Destailleur <eldy@users.sourceforge.net>
|
/* Copyright (C) 2010-2012 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
* Copyright (C) 2012 Juanjo Menent <jmenent@2byte.es>
|
* Copyright (C) 2012 Juanjo Menent <jmenent@2byte.es>
|
||||||
* Copyright (C) 2018 Frédéric France <frederic.france@netlogic.fr>
|
* Copyright (C) 2018-2020 Frédéric France <frederic.france@netlogic.fr>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -114,7 +114,7 @@ class doc_generic_user_odt extends ModelePDFUser
|
|||||||
$form = new Form($this->db);
|
$form = new Form($this->db);
|
||||||
|
|
||||||
$texte = $this->description.".<br>\n";
|
$texte = $this->description.".<br>\n";
|
||||||
$texte .= '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
|
$texte .= '<form action="'.$_SERVER["PHP_SELF"].'" method="POST" enctype="multipart/form-data">';
|
||||||
$texte .= '<input type="hidden" name="token" value="'.newToken().'">';
|
$texte .= '<input type="hidden" name="token" value="'.newToken().'">';
|
||||||
$texte .= '<input type="hidden" name="action" value="setModuleOptions">';
|
$texte .= '<input type="hidden" name="action" value="setModuleOptions">';
|
||||||
$texte .= '<input type="hidden" name="param1" value="USER_ADDON_PDF_ODT_PATH">';
|
$texte .= '<input type="hidden" name="param1" value="USER_ADDON_PDF_ODT_PATH">';
|
||||||
@ -187,7 +187,17 @@ class doc_generic_user_odt extends ModelePDFUser
|
|||||||
$texte .= "</td></tr>";
|
$texte .= "</td></tr>";
|
||||||
$texte .= '</table>';
|
$texte .= '</table>';
|
||||||
}
|
}
|
||||||
|
$texte .= '<div id="div_'.get_class($this).'" class="hidden">';
|
||||||
|
foreach ($listoffiles as $file) {
|
||||||
|
$texte .= $file['name'].'<br>';
|
||||||
|
}
|
||||||
|
$texte .= '</div>';
|
||||||
}
|
}
|
||||||
|
// Add input to upload a new template file.
|
||||||
|
$texte .= '<div>'.$langs->trans("UploadNewTemplate").' <input type="file" name="uploadfile">';
|
||||||
|
$texte .= '<input type="hidden" value="USER_ADDON_PDF_ODT_PATH" name="keyforuploaddir">';
|
||||||
|
$texte .= '<input type="submit" class="button" value="'.dol_escape_htmltag($langs->trans("Upload")).'" name="upload">';
|
||||||
|
$texte .= '</div>';
|
||||||
|
|
||||||
$texte .= '</td>';
|
$texte .= '</td>';
|
||||||
|
|
||||||
|
|||||||
0
htdocs/core/modules/user/doc/index.html
Normal file
0
htdocs/core/modules/user/doc/index.html
Normal file
@ -153,7 +153,7 @@ $listofexamplesforlink = 'Societe:societe/class/societe.class.php<br>Contact:con
|
|||||||
<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'); ?>"> <span class="opacitymedium">(<?php echo $langs->trans("AlphaNumOnlyLowerCharsAndNoSpace"); ?>)</span></td></tr>
|
<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'); ?>"> <span class="opacitymedium">(<?php echo $langs->trans("AlphaNumOnlyLowerCharsAndNoSpace"); ?>)</span></td></tr>
|
||||||
<!-- Type -->
|
<!-- Type -->
|
||||||
<tr><td class="fieldrequired"><?php echo $langs->trans("Type"); ?></td><td class="valeur">
|
<tr><td class="fieldrequired"><?php echo $langs->trans("Type"); ?></td><td class="valeur">
|
||||||
<?php print $form->selectarray('type', $type2label, GETPOST('type', 'alpha')); ?>
|
<?php print $form->selectarray('type', $type2label, GETPOST('type', 'alpha'), 0, 0, 0, '', 0, 0, 0, '', '', 1); ?>
|
||||||
</td></tr>
|
</td></tr>
|
||||||
<!-- Size -->
|
<!-- Size -->
|
||||||
<tr class="extra_size"><td class="fieldrequired"><?php echo $langs->trans("Size"); ?></td><td class="valeur"><input id="size" type="text" name="size" size="5" value="<?php echo (GETPOST('size', 'alpha') ?GETPOST('size', 'alpha') : ''); ?>"></td></tr>
|
<tr class="extra_size"><td class="fieldrequired"><?php echo $langs->trans("Size"); ?></td><td class="valeur"><input id="size" type="text" name="size" size="5" value="<?php echo (GETPOST('size', 'alpha') ?GETPOST('size', 'alpha') : ''); ?>"></td></tr>
|
||||||
|
|||||||
@ -205,7 +205,8 @@ $typewecanchangeinto = array(
|
|||||||
'mail'=>array('varchar', 'phone', 'mail', 'url', 'select'),
|
'mail'=>array('varchar', 'phone', 'mail', 'url', 'select'),
|
||||||
'url'=>array('varchar', 'phone', 'mail', 'url', 'select'),
|
'url'=>array('varchar', 'phone', 'mail', 'url', 'select'),
|
||||||
'phone'=>array('varchar', 'phone', 'mail', 'url', 'select'),
|
'phone'=>array('varchar', 'phone', 'mail', 'url', 'select'),
|
||||||
'select'=>array('varchar', 'phone', 'mail', 'url', 'select')
|
'select'=>array('varchar', 'phone', 'mail', 'url', 'select'),
|
||||||
|
'date'=>array('date', 'datetime')
|
||||||
);
|
);
|
||||||
/* Disabled because text is text on several lines, when varchar is text on 1 line, we should not be able to convert
|
/* Disabled because text is text on several lines, when varchar is text on 1 line, we should not be able to convert
|
||||||
if ($size <= 255 && in_array($type, array('text', 'html'))) {
|
if ($size <= 255 && in_array($type, array('text', 'html'))) {
|
||||||
@ -224,6 +225,7 @@ if (in_array($type, array_keys($typewecanchangeinto)))
|
|||||||
else print '<option value="'.$key.'" disabled="disabled"'.$selected.'>'.$val.'</option>';
|
else print '<option value="'.$key.'" disabled="disabled"'.$selected.'>'.$val.'</option>';
|
||||||
}
|
}
|
||||||
print '</select>';
|
print '</select>';
|
||||||
|
print ajax_combobox('type');
|
||||||
} else {
|
} else {
|
||||||
print $type2label[$type];
|
print $type2label[$type];
|
||||||
print '<input type="hidden" name="type" id="type" value="'.$type.'">';
|
print '<input type="hidden" name="type" id="type" value="'.$type.'">';
|
||||||
|
|||||||
@ -88,20 +88,22 @@ else $typeofdata = 'textarea:12:95%';
|
|||||||
print '<!-- BEGIN PHP TEMPLATE NOTES -->'."\n";
|
print '<!-- BEGIN PHP TEMPLATE NOTES -->'."\n";
|
||||||
print '<div class="tagtable border table-border tableforfield centpercent">'."\n";
|
print '<div class="tagtable border table-border tableforfield centpercent">'."\n";
|
||||||
print '<div class="tagtr table-border-row">'."\n";
|
print '<div class="tagtr table-border-row">'."\n";
|
||||||
print '<div class="tagtd tagtdnote tdtop sensiblehtmlcontent table-key-border-col'.(empty($cssclass) ? '' : ' '.$cssclass).'"'.($colwidth ? ' style="width: '.$colwidth.'%"' : '').'>'."\n";
|
$editmode = (GETPOST('action', 'aZ09') == 'edit'.$note_public);
|
||||||
|
print '<div class="tagtd tagtdnote tdtop'.($editmode ? '' : ' sensiblehtmlcontent').' table-key-border-col'.(empty($cssclass) ? '' : ' '.$cssclass).'"'.($colwidth ? ' style="width: '.$colwidth.'%"' : '').'>'."\n";
|
||||||
print $form->editfieldkey("NotePublic", $note_public, $value_public, $object, $permission, $typeofdata, $moreparam, '', 0);
|
print $form->editfieldkey("NotePublic", $note_public, $value_public, $object, $permission, $typeofdata, $moreparam, '', 0);
|
||||||
print '</div>'."\n";
|
print '</div>'."\n";
|
||||||
print '<div class="tagtd wordbreak table-val-border-col sensiblehtmlcontent">'."\n";
|
print '<div class="tagtd wordbreak table-val-border-col'.($editmode ? '' : ' sensiblehtmlcontent').'">'."\n";
|
||||||
print $form->editfieldval("NotePublic", $note_public, $value_public, $object, $permission, $typeofdata, '', null, null, $moreparam, 1)."\n";
|
print $form->editfieldval("NotePublic", $note_public, $value_public, $object, $permission, $typeofdata, '', null, null, $moreparam, 1)."\n";
|
||||||
print '</div>'."\n";
|
print '</div>'."\n";
|
||||||
print '</div>'."\n";
|
print '</div>'."\n";
|
||||||
if (empty($user->socid)) {
|
if (empty($user->socid)) {
|
||||||
// Private notes (always hidden to external users)
|
// Private notes (always hidden to external users)
|
||||||
print '<div class="tagtr table-border-row">'."\n";
|
print '<div class="tagtr table-border-row">'."\n";
|
||||||
print '<div class="tagtd tagtdnote tdtop sensiblehtmlcontent table-key-border-col'.(empty($cssclass) ? '' : ' '.$cssclass).'"'.($colwidth ? ' style="width: '.$colwidth.'%"' : '').'>'."\n";
|
$editmode = (GETPOST('action', 'aZ09') == 'edit'.$note_private);
|
||||||
|
print '<div class="tagtd tagtdnote tdtop'.($editmode ? '' : ' sensiblehtmlcontent').' table-key-border-col'.(empty($cssclass) ? '' : ' '.$cssclass).'"'.($colwidth ? ' style="width: '.$colwidth.'%"' : '').'>'."\n";
|
||||||
print $form->editfieldkey("NotePrivate", $note_private, $value_private, $object, $permission, $typeofdata, $moreparam, '', 0);
|
print $form->editfieldkey("NotePrivate", $note_private, $value_private, $object, $permission, $typeofdata, $moreparam, '', 0);
|
||||||
print '</div>'."\n";
|
print '</div>'."\n";
|
||||||
print '<div class="tagtd wordbreak table-val-border-col sensiblehtmlcontent">'."\n";
|
print '<div class="tagtd wordbreak table-val-border-col'.($editmode ? '' : ' sensiblehtmlcontent').'">'."\n";
|
||||||
print $form->editfieldval("NotePrivate", $note_private, $value_private, $object, $permission, $typeofdata, '', null, null, $moreparam, 1);
|
print $form->editfieldval("NotePrivate", $note_private, $value_private, $object, $permission, $typeofdata, '', null, null, $moreparam, 1);
|
||||||
print '</div>'."\n";
|
print '</div>'."\n";
|
||||||
print '</div>'."\n";
|
print '</div>'."\n";
|
||||||
|
|||||||
@ -693,7 +693,8 @@ if (!empty($usemargins) && $user->rights->margins->creer)
|
|||||||
$("#buying_price").val("").show();
|
$("#buying_price").val("").show();
|
||||||
|
|
||||||
/* Call post to load content of combo list fournprice_predef */
|
/* Call post to load content of combo list fournprice_predef */
|
||||||
$.post('<?php echo DOL_URL_ROOT; ?>/fourn/ajax/getSupplierPrices.php?bestpricefirst=1', { 'idprod': $(this).val(), 'token': '<?php echo newToken(); ?>' }, function(data) {
|
var token = '<?php echo currentToken(); ?>'; // For AJAX Call we use old 'token' and not 'newtoken'
|
||||||
|
$.post('<?php echo DOL_URL_ROOT; ?>/fourn/ajax/getSupplierPrices.php?bestpricefirst=1', { 'idprod': $(this).val(), 'token': token }, function(data) {
|
||||||
if (data && data.length > 0)
|
if (data && data.length > 0)
|
||||||
{
|
{
|
||||||
var options = ''; var defaultkey = ''; var defaultprice = ''; var bestpricefound = 0;
|
var options = ''; var defaultkey = ''; var defaultprice = ''; var bestpricefound = 0;
|
||||||
|
|||||||
@ -434,7 +434,8 @@ jQuery(document).ready(function()
|
|||||||
});
|
});
|
||||||
|
|
||||||
/* Init field buying_price and fournprice */
|
/* Init field buying_price and fournprice */
|
||||||
$.post('<?php echo DOL_URL_ROOT; ?>/fourn/ajax/getSupplierPrices.php', {'idprod': <?php echo $line->fk_product ? $line->fk_product : 0; ?>, 'token': '<?php echo newToken(); ?>'}, function(data) {
|
var token = '<?php echo currentToken(); ?>'; // For AJAX Call we use old 'token' and not 'newtoken'
|
||||||
|
$.post('<?php echo DOL_URL_ROOT; ?>/fourn/ajax/getSupplierPrices.php', {'idprod': <?php echo $line->fk_product ? $line->fk_product : 0; ?>, 'token': token }, function(data) {
|
||||||
if (data && data.length > 0) {
|
if (data && data.length > 0) {
|
||||||
var options = '';
|
var options = '';
|
||||||
var trouve=false;
|
var trouve=false;
|
||||||
|
|||||||
@ -105,6 +105,8 @@ $hookmanager->initHooks(array('expeditioncard', 'globalcard'));
|
|||||||
$permissiondellink = $user->rights->expedition->delivery->creer; // Used by the include of actions_dellink.inc.php
|
$permissiondellink = $user->rights->expedition->delivery->creer; // Used by the include of actions_dellink.inc.php
|
||||||
//var_dump($object->lines[0]->detail_batch);
|
//var_dump($object->lines[0]->detail_batch);
|
||||||
|
|
||||||
|
$date_delivery = dol_mktime(GETPOST('date_deliveryhour', 'int'), GETPOST('date_deliverymin', 'int'), 0, GETPOST('date_deliverymonth', 'int'), GETPOST('date_deliveryday', 'int'), GETPOST('date_deliveryyear', 'int'));
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Actions
|
* Actions
|
||||||
@ -201,8 +203,6 @@ if (empty($reshook))
|
|||||||
$object->size_units = GETPOST('size_units', 'int');
|
$object->size_units = GETPOST('size_units', 'int');
|
||||||
$object->weight_units = GETPOST('weight_units', 'int');
|
$object->weight_units = GETPOST('weight_units', 'int');
|
||||||
|
|
||||||
$date_delivery = dol_mktime(GETPOST('date_deliveryhour', 'int'), GETPOST('date_deliverymin', 'int'), 0, GETPOST('date_deliverymonth', 'int'), GETPOST('date_deliveryday', 'int'), GETPOST('date_deliveryyear', 'int'));
|
|
||||||
|
|
||||||
// We will loop on each line of the original document to complete the shipping object with various info and quantity to deliver
|
// We will loop on each line of the original document to complete the shipping object with various info and quantity to deliver
|
||||||
$classname = ucfirst($object->origin);
|
$classname = ucfirst($object->origin);
|
||||||
$objectsrc = new $classname($db);
|
$objectsrc = new $classname($db);
|
||||||
@ -936,8 +936,7 @@ if ($action == 'create')
|
|||||||
// Date delivery planned
|
// Date delivery planned
|
||||||
print '<tr><td>'.$langs->trans("DateDeliveryPlanned").'</td>';
|
print '<tr><td>'.$langs->trans("DateDeliveryPlanned").'</td>';
|
||||||
print '<td colspan="3">';
|
print '<td colspan="3">';
|
||||||
//print dol_print_date($object->date_livraison, "day"); // date_livraison come from order and will be stored into date_delivery planed.
|
$date_delivery = ($date_delivery ? $date_delivery : $object->delivery_date); // $date_delivery comes from GETPOST
|
||||||
$date_delivery = ($date_delivery ? $date_delivery : $object->date_livraison); // $date_delivery comes from GETPOST
|
|
||||||
print $form->selectDate($date_delivery ? $date_delivery : -1, 'date_delivery', 1, 1, 1);
|
print $form->selectDate($date_delivery ? $date_delivery : -1, 'date_delivery', 1, 1, 1);
|
||||||
print "</td>\n";
|
print "</td>\n";
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
@ -1048,7 +1047,7 @@ if ($action == 'create')
|
|||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
print '});
|
print '});
|
||||||
jQuery("#autoreset").click(function() {';
|
jQuery("#autoreset").click(function() { console.log("Reset values to 0"); ';
|
||||||
$i = 0;
|
$i = 0;
|
||||||
while ($i < $numAsked)
|
while ($i < $numAsked)
|
||||||
{
|
{
|
||||||
@ -1076,12 +1075,12 @@ if ($action == 'create')
|
|||||||
print '<td class="center">'.$langs->trans("QtyToShip");
|
print '<td class="center">'.$langs->trans("QtyToShip");
|
||||||
if (empty($conf->productbatch->enabled))
|
if (empty($conf->productbatch->enabled))
|
||||||
{
|
{
|
||||||
print '<br><a href="#" id="autofill">'.$langs->trans("Fill").'</a>';
|
print '<br><a href="#" id="autofill" class="opacitymedium link cursor cursorpointer">'.$langs->trans("Fill").'</a>';
|
||||||
print ' / ';
|
print ' / ';
|
||||||
} else {
|
} else {
|
||||||
print '<br>';
|
print '<br>';
|
||||||
}
|
}
|
||||||
print '<a href="#" id="autoreset">'.$langs->trans("Reset").'</a>';
|
print '<span id="autoreset" class="opacitymedium link cursor cursorpointer">'.img_picto($langs->trans("Reset"), 'eraser').'</span>';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
if (!empty($conf->stock->enabled))
|
if (!empty($conf->stock->enabled))
|
||||||
{
|
{
|
||||||
@ -1115,7 +1114,7 @@ if ($action == 'create')
|
|||||||
if (!empty($line->date_start)) $type = 1;
|
if (!empty($line->date_start)) $type = 1;
|
||||||
if (!empty($line->date_end)) $type = 1;
|
if (!empty($line->date_end)) $type = 1;
|
||||||
|
|
||||||
print '<!-- line '.$line->rowid.' for product -->'."\n";
|
print '<!-- line '.$line->id.' for product -->'."\n";
|
||||||
print '<tr class="oddeven">'."\n";
|
print '<tr class="oddeven">'."\n";
|
||||||
|
|
||||||
// Product label
|
// Product label
|
||||||
@ -1126,13 +1125,16 @@ if ($action == 'create')
|
|||||||
//var_dump($product->stock_warehouse[1]);
|
//var_dump($product->stock_warehouse[1]);
|
||||||
|
|
||||||
print '<td>';
|
print '<td>';
|
||||||
print '<a name="'.$line->rowid.'"></a>'; // ancre pour retourner sur la ligne
|
print '<a name="'.$line->id.'"></a>'; // ancre pour retourner sur la ligne
|
||||||
|
|
||||||
// Show product and description
|
// Show product and description
|
||||||
$product_static->type = $line->fk_product_type;
|
$product_static->type = $line->fk_product_type;
|
||||||
$product_static->id = $line->fk_product;
|
$product_static->id = $line->fk_product;
|
||||||
$product_static->ref = $line->ref;
|
$product_static->ref = $line->ref;
|
||||||
|
$product_static->status = $line->product_tosell;
|
||||||
|
$product_static->status_buy = $line->product_tobuy;
|
||||||
$product_static->status_batch = $line->product_tobatch;
|
$product_static->status_batch = $line->product_tobatch;
|
||||||
|
|
||||||
$text = $product_static->getNomUrl(1);
|
$text = $product_static->getNomUrl(1);
|
||||||
$text .= ' - '.(!empty($line->label) ? $line->label : $line->product_label);
|
$text .= ' - '.(!empty($line->label) ? $line->label : $line->product_label);
|
||||||
$description = ($conf->global->PRODUIT_DESC_IN_FORM ? '' : dol_htmlentitiesbr($line->desc));
|
$description = ($conf->global->PRODUIT_DESC_IN_FORM ? '' : dol_htmlentitiesbr($line->desc));
|
||||||
@ -2049,7 +2051,7 @@ if ($action == 'create')
|
|||||||
$sql .= ", ed.rowid as shipmentline_id, ed.qty as qty_shipped, ed.fk_expedition as expedition_id, ed.fk_origin_line, ed.fk_entrepot";
|
$sql .= ", ed.rowid as shipmentline_id, ed.qty as qty_shipped, ed.fk_expedition as expedition_id, ed.fk_origin_line, ed.fk_entrepot";
|
||||||
$sql .= ", e.rowid as shipment_id, e.ref as shipment_ref, e.date_creation, e.date_valid, e.date_delivery, e.date_expedition";
|
$sql .= ", e.rowid as shipment_id, e.ref as shipment_ref, e.date_creation, e.date_valid, e.date_delivery, e.date_expedition";
|
||||||
//if ($conf->delivery_note->enabled) $sql .= ", l.rowid as livraison_id, l.ref as livraison_ref, l.date_delivery, ld.qty as qty_received";
|
//if ($conf->delivery_note->enabled) $sql .= ", l.rowid as livraison_id, l.ref as livraison_ref, l.date_delivery, ld.qty as qty_received";
|
||||||
$sql .= ', p.label as product_label, p.ref, p.fk_product_type, p.rowid as prodid, p.tobatch as product_tobatch';
|
$sql .= ', p.label as product_label, p.ref, p.fk_product_type, p.rowid as prodid, p.tosell as product_tosell, p.tobuy as product_tobuy, p.tobatch as product_tobatch';
|
||||||
$sql .= ', p.description as product_desc';
|
$sql .= ', p.description as product_desc';
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."expeditiondet as ed";
|
$sql .= " FROM ".MAIN_DB_PREFIX."expeditiondet as ed";
|
||||||
$sql .= ", ".MAIN_DB_PREFIX."expedition as e";
|
$sql .= ", ".MAIN_DB_PREFIX."expedition as e";
|
||||||
@ -2076,7 +2078,10 @@ if ($action == 'create')
|
|||||||
if ($obj)
|
if ($obj)
|
||||||
{
|
{
|
||||||
// $obj->rowid is rowid in $origin."det" table
|
// $obj->rowid is rowid in $origin."det" table
|
||||||
$alreadysent[$obj->rowid][$obj->shipmentline_id] = array('shipment_ref'=>$obj->shipment_ref, 'shipment_id'=>$obj->shipment_id, 'warehouse'=>$obj->fk_entrepot, 'qty_shipped'=>$obj->qty_shipped, 'date_valid'=>$db->jdate($obj->date_valid), 'date_delivery'=>$db->jdate($obj->date_delivery));
|
$alreadysent[$obj->rowid][$obj->shipmentline_id] = array(
|
||||||
|
'shipment_ref'=>$obj->shipment_ref, 'shipment_id'=>$obj->shipment_id, 'warehouse'=>$obj->fk_entrepot, 'qty_shipped'=>$obj->qty_shipped,
|
||||||
|
'product_tosell'=>$obj->product_tosell, 'product_tobuy'=>$obj->product_tobuy, 'product_tobatch'=>$obj->product_tobatch,
|
||||||
|
'date_valid'=>$db->jdate($obj->date_valid), 'date_delivery'=>$db->jdate($obj->date_delivery));
|
||||||
}
|
}
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
@ -2085,6 +2090,7 @@ if ($action == 'create')
|
|||||||
}
|
}
|
||||||
|
|
||||||
print '<tbody>';
|
print '<tbody>';
|
||||||
|
|
||||||
// Loop on each product to send/sent
|
// Loop on each product to send/sent
|
||||||
for ($i = 0; $i < $num_prod; $i++)
|
for ($i = 0; $i < $num_prod; $i++)
|
||||||
{
|
{
|
||||||
@ -2120,6 +2126,8 @@ if ($action == 'create')
|
|||||||
$product_static->type = $lines[$i]->fk_product_type;
|
$product_static->type = $lines[$i]->fk_product_type;
|
||||||
$product_static->id = $lines[$i]->fk_product;
|
$product_static->id = $lines[$i]->fk_product;
|
||||||
$product_static->ref = $lines[$i]->ref;
|
$product_static->ref = $lines[$i]->ref;
|
||||||
|
$product_static->status = $lines[$i]->product_tosell;
|
||||||
|
$product_static->status_buy = $lines[$i]->product_tobuy;
|
||||||
$product_static->status_batch = $lines[$i]->product_tobatch;
|
$product_static->status_batch = $lines[$i]->product_tobatch;
|
||||||
|
|
||||||
$product_static->weight = $lines[$i]->weight;
|
$product_static->weight = $lines[$i]->weight;
|
||||||
|
|||||||
@ -619,10 +619,8 @@ class Expedition extends CommonObject
|
|||||||
// Tracking url
|
// Tracking url
|
||||||
$this->getUrlTrackingStatus($obj->tracking_number);
|
$this->getUrlTrackingStatus($obj->tracking_number);
|
||||||
|
|
||||||
/*
|
// Thirdparty
|
||||||
* Thirdparty
|
$result = $this->fetch_thirdparty(); // TODO Remove this
|
||||||
*/
|
|
||||||
$result = $this->fetch_thirdparty();
|
|
||||||
|
|
||||||
// Retrieve extrafields
|
// Retrieve extrafields
|
||||||
$this->fetch_optionals();
|
$this->fetch_optionals();
|
||||||
@ -919,6 +917,7 @@ class Expedition extends CommonObject
|
|||||||
|
|
||||||
$line->entrepot_id = $entrepot_id;
|
$line->entrepot_id = $entrepot_id;
|
||||||
$line->origin_line_id = $id;
|
$line->origin_line_id = $id;
|
||||||
|
$line->fk_origin_line = $id;
|
||||||
$line->qty = $qty;
|
$line->qty = $qty;
|
||||||
|
|
||||||
$orderline = new OrderLine($this->db);
|
$orderline = new OrderLine($this->db);
|
||||||
@ -931,31 +930,37 @@ class Expedition extends CommonObject
|
|||||||
{
|
{
|
||||||
$fk_product = $orderline->fk_product;
|
$fk_product = $orderline->fk_product;
|
||||||
|
|
||||||
if (!($entrepot_id > 0) && empty($conf->global->STOCK_WAREHOUSE_NOT_REQUIRED_FOR_SHIPMENTS))
|
if (!($entrepot_id > 0) && empty($conf->global->STOCK_WAREHOUSE_NOT_REQUIRED_FOR_SHIPMENTS)) {
|
||||||
{
|
|
||||||
$langs->load("errors");
|
$langs->load("errors");
|
||||||
$this->error = $langs->trans("ErrorWarehouseRequiredIntoShipmentLine");
|
$this->error = $langs->trans("ErrorWarehouseRequiredIntoShipmentLine");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($conf->global->STOCK_MUST_BE_ENOUGH_FOR_SHIPMENT)
|
if ($conf->global->STOCK_MUST_BE_ENOUGH_FOR_SHIPMENT) {
|
||||||
{
|
|
||||||
// Check must be done for stock of product into warehouse if $entrepot_id defined
|
|
||||||
$product = new Product($this->db);
|
$product = new Product($this->db);
|
||||||
$result = $product->fetch($fk_product);
|
$product->fetch($fk_product);
|
||||||
|
|
||||||
|
// Check must be done for stock of product into warehouse if $entrepot_id defined
|
||||||
if ($entrepot_id > 0) {
|
if ($entrepot_id > 0) {
|
||||||
$product->load_stock('warehouseopen');
|
$product->load_stock('warehouseopen');
|
||||||
$product_stock = $product->stock_warehouse[$entrepot_id]->real;
|
$product_stock = $product->stock_warehouse[$entrepot_id]->real;
|
||||||
} else $product_stock = $product->stock_reel;
|
} else {
|
||||||
|
$product_stock = $product->stock_reel;
|
||||||
|
}
|
||||||
|
|
||||||
$product_type = $product->type;
|
$product_type = $product->type;
|
||||||
if ($product_type == 0 && $product_stock < $qty)
|
if ($product_type == 0 || !empty($conf->global->STOCK_SUPPORTS_SERVICES)) {
|
||||||
{
|
$isavirtualproduct = ($product->hasFatherOrChild(1) > 0);
|
||||||
$langs->load("errors");
|
// The product is qualified for a check of quantity (must be enough in stock to be added into shipment).
|
||||||
$this->error = $langs->trans('ErrorStockIsNotEnoughToAddProductOnShipment', $product->ref);
|
if (!$isavirtualproduct || empty($conf->global->PRODUIT_SOUSPRODUITS) || ($isavirtualproduct && empty($conf->global->STOCK_EXCLUDE_VIRTUAL_PRODUCTS))) { // If STOCK_EXCLUDE_VIRTUAL_PRODUCTS is set, we do not manage stock for kits/virtual products.
|
||||||
$this->db->rollback();
|
if ($product_stock < $qty) {
|
||||||
return -3;
|
$langs->load("errors");
|
||||||
|
$this->error = $langs->trans('ErrorStockIsNotEnoughToAddProductOnShipment', $product->ref);
|
||||||
|
$this->errorhidden = 'ErrorStockIsNotEnoughToAddProductOnShipment';
|
||||||
|
$this->db->rollback();
|
||||||
|
return -3;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1060,13 +1065,13 @@ class Expedition extends CommonObject
|
|||||||
// Clean parameters
|
// Clean parameters
|
||||||
|
|
||||||
if (isset($this->ref)) $this->ref = trim($this->ref);
|
if (isset($this->ref)) $this->ref = trim($this->ref);
|
||||||
if (isset($this->entity)) $this->entity = trim($this->entity);
|
if (isset($this->entity)) $this->entity = (int) $this->entity;
|
||||||
if (isset($this->ref_customer)) $this->ref_customer = trim($this->ref_customer);
|
if (isset($this->ref_customer)) $this->ref_customer = trim($this->ref_customer);
|
||||||
if (isset($this->socid)) $this->socid = trim($this->socid);
|
if (isset($this->socid)) $this->socid = (int) $this->socid;
|
||||||
if (isset($this->fk_user_author)) $this->fk_user_author = trim($this->fk_user_author);
|
if (isset($this->fk_user_author)) $this->fk_user_author = (int) $this->fk_user_author;
|
||||||
if (isset($this->fk_user_valid)) $this->fk_user_valid = trim($this->fk_user_valid);
|
if (isset($this->fk_user_valid)) $this->fk_user_valid = (int) $this->fk_user_valid;
|
||||||
if (isset($this->fk_delivery_address)) $this->fk_delivery_address = trim($this->fk_delivery_address);
|
if (isset($this->fk_delivery_address)) $this->fk_delivery_address = (int) $this->fk_delivery_address;
|
||||||
if (isset($this->shipping_method_id)) $this->shipping_method_id = trim($this->shipping_method_id);
|
if (isset($this->shipping_method_id)) $this->shipping_method_id = (int) $this->shipping_method_id;
|
||||||
if (isset($this->tracking_number)) $this->tracking_number = trim($this->tracking_number);
|
if (isset($this->tracking_number)) $this->tracking_number = trim($this->tracking_number);
|
||||||
if (isset($this->statut)) $this->statut = (int) $this->statut;
|
if (isset($this->statut)) $this->statut = (int) $this->statut;
|
||||||
if (isset($this->trueDepth)) $this->trueDepth = trim($this->trueDepth);
|
if (isset($this->trueDepth)) $this->trueDepth = trim($this->trueDepth);
|
||||||
@ -1122,15 +1127,11 @@ class Expedition extends CommonObject
|
|||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
if (!$resql) { $error++; $this->errors[] = "Error ".$this->db->lasterror(); }
|
if (!$resql) { $error++; $this->errors[] = "Error ".$this->db->lasterror(); }
|
||||||
|
|
||||||
if (!$error)
|
if (!$error && !$notrigger) {
|
||||||
{
|
// Call trigger
|
||||||
if (!$notrigger)
|
$result = $this->call_trigger('SHIPPING_MODIFY', $user);
|
||||||
{
|
if ($result < 0) { $error++; }
|
||||||
// Call trigger
|
// End call triggers
|
||||||
$result = $this->call_trigger('SHIPPING_MODIFY', $user);
|
|
||||||
if ($result < 0) { $error++; }
|
|
||||||
// End call triggers
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Commit or rollback
|
// Commit or rollback
|
||||||
@ -1171,21 +1172,16 @@ class Expedition extends CommonObject
|
|||||||
|
|
||||||
// Add a protection to refuse deleting if shipment has at least one delivery
|
// Add a protection to refuse deleting if shipment has at least one delivery
|
||||||
$this->fetchObjectLinked($this->id, 'shipping', 0, 'delivery'); // Get deliveries linked to this shipment
|
$this->fetchObjectLinked($this->id, 'shipping', 0, 'delivery'); // Get deliveries linked to this shipment
|
||||||
if (count($this->linkedObjectsIds) > 0)
|
if (count($this->linkedObjectsIds) > 0) {
|
||||||
{
|
|
||||||
$this->error = 'ErrorThereIsSomeDeliveries';
|
$this->error = 'ErrorThereIsSomeDeliveries';
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$error)
|
if (!$error && !$notrigger) {
|
||||||
{
|
// Call trigger
|
||||||
if (!$notrigger)
|
$result = $this->call_trigger('SHIPPING_CANCEL', $user);
|
||||||
{
|
if ($result < 0) { $error++; }
|
||||||
// Call trigger
|
// End call triggers
|
||||||
$result = $this->call_trigger('SHIPPING_CANCEL', $user);
|
|
||||||
if ($result < 0) { $error++; }
|
|
||||||
// End call triggers
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Stock control
|
// Stock control
|
||||||
@ -1383,15 +1379,11 @@ class Expedition extends CommonObject
|
|||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$error)
|
if (!$error && !$notrigger) {
|
||||||
{
|
// Call trigger
|
||||||
if (!$notrigger)
|
$result = $this->call_trigger('SHIPPING_DELETE', $user);
|
||||||
{
|
if ($result < 0) { $error++; }
|
||||||
// Call trigger
|
// End call triggers
|
||||||
$result = $this->call_trigger('SHIPPING_DELETE', $user);
|
|
||||||
if ($result < 0) { $error++; }
|
|
||||||
// End call triggers
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Stock control
|
// Stock control
|
||||||
@ -1589,7 +1581,7 @@ class Expedition extends CommonObject
|
|||||||
$sql .= ", cd.fk_multicurrency, cd.multicurrency_code, cd.multicurrency_subprice, cd.multicurrency_total_ht, cd.multicurrency_total_tva, cd.multicurrency_total_ttc, cd.rang";
|
$sql .= ", cd.fk_multicurrency, cd.multicurrency_code, cd.multicurrency_subprice, cd.multicurrency_total_ht, cd.multicurrency_total_tva, cd.multicurrency_total_ttc, cd.rang";
|
||||||
$sql .= ", ed.rowid as line_id, ed.qty as qty_shipped, ed.fk_origin_line, ed.fk_entrepot";
|
$sql .= ", ed.rowid as line_id, ed.qty as qty_shipped, ed.fk_origin_line, ed.fk_entrepot";
|
||||||
$sql .= ", p.ref as product_ref, p.label as product_label, p.fk_product_type";
|
$sql .= ", p.ref as product_ref, p.label as product_label, p.fk_product_type";
|
||||||
$sql .= ", p.weight, p.weight_units, p.length, p.length_units, p.surface, p.surface_units, p.volume, p.volume_units, p.tobatch as product_tobatch";
|
$sql .= ", p.weight, p.weight_units, p.length, p.length_units, p.surface, p.surface_units, p.volume, p.volume_units, p.tosell as product_tosell, p.tobuy as product_tobuy, p.tobatch as product_tobatch";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."expeditiondet as ed, ".MAIN_DB_PREFIX."commandedet as cd";
|
$sql .= " FROM ".MAIN_DB_PREFIX."expeditiondet as ed, ".MAIN_DB_PREFIX."commandedet as cd";
|
||||||
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON p.rowid = cd.fk_product";
|
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON p.rowid = cd.fk_product";
|
||||||
$sql .= " WHERE ed.fk_expedition = ".$this->id;
|
$sql .= " WHERE ed.fk_expedition = ".$this->id;
|
||||||
@ -1651,6 +1643,8 @@ class Expedition extends CommonObject
|
|||||||
$line->product_ref = $obj->product_ref;
|
$line->product_ref = $obj->product_ref;
|
||||||
$line->product_label = $obj->product_label;
|
$line->product_label = $obj->product_label;
|
||||||
$line->libelle = $obj->product_label; // TODO deprecated
|
$line->libelle = $obj->product_label; // TODO deprecated
|
||||||
|
$line->product_tosell = $obj->product_tosell;
|
||||||
|
$line->product_tobuy = $obj->product_tobuy;
|
||||||
$line->product_tobatch = $obj->product_tobatch;
|
$line->product_tobatch = $obj->product_tobatch;
|
||||||
$line->label = $obj->custom_label;
|
$line->label = $obj->custom_label;
|
||||||
$line->description = $obj->description;
|
$line->description = $obj->description;
|
||||||
|
|||||||
@ -212,7 +212,7 @@ llxHeader('', $langs->trans('ListOfSendings'), $helpurl);
|
|||||||
|
|
||||||
$sql = 'SELECT';
|
$sql = 'SELECT';
|
||||||
if ($sall || $search_product_category > 0) $sql = 'SELECT DISTINCT';
|
if ($sall || $search_product_category > 0) $sql = 'SELECT DISTINCT';
|
||||||
$sql .= " e.rowid, e.ref, e.ref_customer, e.date_expedition as date_expedition, e.weight, e.weight_units, e.date_delivery as date_livraison, l.date_delivery as date_reception, e.fk_statut, e.billed, e.tracking_number,";
|
$sql .= " e.rowid, e.ref, e.ref_customer, e.date_expedition as date_expedition, e.weight, e.weight_units, e.date_delivery as delivery_date, l.date_delivery as date_reception, e.fk_statut, e.billed, e.tracking_number,";
|
||||||
$sql .= " s.rowid as socid, s.nom as name, s.town, s.zip, s.fk_pays, s.client, s.code_client, ";
|
$sql .= " s.rowid as socid, s.nom as name, s.town, s.zip, s.fk_pays, s.client, s.code_client, ";
|
||||||
$sql .= " typent.code as typent_code,";
|
$sql .= " typent.code as typent_code,";
|
||||||
$sql .= " state.code_departement as state_code, state.nom as state_name,";
|
$sql .= " state.code_departement as state_code, state.nom as state_name,";
|
||||||
@ -618,6 +618,7 @@ if ($resql)
|
|||||||
|
|
||||||
$object = new Expedition($db);
|
$object = new Expedition($db);
|
||||||
$object->fetch($obj->rowid);
|
$object->fetch($obj->rowid);
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
|
|
||||||
// Ref
|
// Ref
|
||||||
@ -705,7 +706,7 @@ if ($resql)
|
|||||||
if (!empty($arrayfields['e.date_delivery']['checked']))
|
if (!empty($arrayfields['e.date_delivery']['checked']))
|
||||||
{
|
{
|
||||||
print '<td class="center">';
|
print '<td class="center">';
|
||||||
print dol_print_date($db->jdate($obj->date_livraison), "dayhour");
|
print dol_print_date($db->jdate($obj->delivery_date), "dayhour");
|
||||||
/*$now = time();
|
/*$now = time();
|
||||||
if ( ($now - $db->jdate($obj->date_expedition)) > $conf->warnings->lim && $obj->statutid == 1 )
|
if ( ($now - $db->jdate($obj->date_expedition)) > $conf->warnings->lim && $obj->statutid == 1 )
|
||||||
{
|
{
|
||||||
|
|||||||
@ -354,7 +354,7 @@ if ($id > 0 || !empty($ref))
|
|||||||
print '<tr><td>'.$langs->trans('Date').'</td>';
|
print '<tr><td>'.$langs->trans('Date').'</td>';
|
||||||
print '<td colspan="2">';
|
print '<td colspan="2">';
|
||||||
print dol_print_date($object->date, 'day');
|
print dol_print_date($object->date, 'day');
|
||||||
if ($object->hasDelay() && empty($object->date_livraison)) {
|
if ($object->hasDelay() && empty($object->delivery_date)) {
|
||||||
print ' '.img_picto($langs->trans("Late").' : '.$object->showDelay(), "warning");
|
print ' '.img_picto($langs->trans("Late").' : '.$object->showDelay(), "warning");
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
@ -374,12 +374,12 @@ if ($id > 0 || !empty($ref))
|
|||||||
print '<form name="setdate_livraison" action="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'" method="post">';
|
print '<form name="setdate_livraison" action="'.$_SERVER["PHP_SELF"].'?id='.$object->id.'" method="post">';
|
||||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||||
print '<input type="hidden" name="action" value="setdatedelivery">';
|
print '<input type="hidden" name="action" value="setdatedelivery">';
|
||||||
print $form->selectDate($object->date_livraison ? $object->date_livraison : -1, 'liv_', 1, 1, '', "setdate_livraison", 1, 0);
|
print $form->selectDate($object->delivery_date ? $object->delivery_date : -1, 'liv_', 1, 1, '', "setdate_livraison", 1, 0);
|
||||||
print '<input type="submit" class="button" value="'.$langs->trans('Modify').'">';
|
print '<input type="submit" class="button" value="'.$langs->trans('Modify').'">';
|
||||||
print '</form>';
|
print '</form>';
|
||||||
} else {
|
} else {
|
||||||
print dol_print_date($object->date_livraison, 'dayhour');
|
print dol_print_date($object->delivery_date, 'dayhour');
|
||||||
if ($object->hasDelay() && !empty($object->date_livraison)) {
|
if ($object->hasDelay() && !empty($object->delivery_date)) {
|
||||||
print ' '.img_picto($langs->trans("Late").' : '.$object->showDelay(), "warning");
|
print ' '.img_picto($langs->trans("Late").' : '.$object->showDelay(), "warning");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
|
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
|
||||||
* Copyright (C) 2013 Cédric Salvador <csalvador@gpcsolutions.fr>
|
* Copyright (C) 2013 Cédric Salvador <csalvador@gpcsolutions.fr>
|
||||||
* Copyright (C) 2018 Nicolas ZABOURI <info@inovea-conseil.com>
|
* Copyright (C) 2018 Nicolas ZABOURI <info@inovea-conseil.com>
|
||||||
* Copyright (C) 2018-2019 Frédéric France <frederic.france@netlogic.fr>
|
* Copyright (C) 2018-2020 Frédéric France <frederic.france@netlogic.fr>
|
||||||
* Copyright (C) 2018 Ferran Marcet <fmarcet@2byte.es>
|
* Copyright (C) 2018 Ferran Marcet <fmarcet@2byte.es>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@ -121,7 +121,7 @@ class CommandeFournisseur extends CommonOrder
|
|||||||
public $date_livraison;
|
public $date_livraison;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delivery date
|
* @var int Date expected for delivery
|
||||||
*/
|
*/
|
||||||
public $delivery_date;
|
public $delivery_date;
|
||||||
|
|
||||||
@ -132,16 +132,6 @@ class CommandeFournisseur extends CommonOrder
|
|||||||
public $total_ttc;
|
public $total_ttc;
|
||||||
public $source;
|
public $source;
|
||||||
|
|
||||||
/**
|
|
||||||
* @deprecated
|
|
||||||
* @see $note_private, $note_public
|
|
||||||
*/
|
|
||||||
public $note;
|
|
||||||
|
|
||||||
public $note_private;
|
|
||||||
public $note_public;
|
|
||||||
public $model_pdf;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var int ID
|
* @var int ID
|
||||||
*/
|
*/
|
||||||
@ -375,7 +365,7 @@ class CommandeFournisseur extends CommonOrder
|
|||||||
$this->date_approve = $this->db->jdate($obj->date_approve);
|
$this->date_approve = $this->db->jdate($obj->date_approve);
|
||||||
$this->date_approve2 = $this->db->jdate($obj->date_approve2);
|
$this->date_approve2 = $this->db->jdate($obj->date_approve2);
|
||||||
$this->date_commande = $this->db->jdate($obj->date_commande); // date we make the order to supplier
|
$this->date_commande = $this->db->jdate($obj->date_commande); // date we make the order to supplier
|
||||||
$this->date_livraison = $this->db->jdate($obj->delivery_date);
|
$this->date_livraison = $this->db->jdate($obj->delivery_date); // deprecated
|
||||||
$this->delivery_date = $this->db->jdate($obj->delivery_date);
|
$this->delivery_date = $this->db->jdate($obj->delivery_date);
|
||||||
$this->remise_percent = $obj->remise_percent;
|
$this->remise_percent = $obj->remise_percent;
|
||||||
$this->methode_commande_id = $obj->fk_input_method;
|
$this->methode_commande_id = $obj->fk_input_method;
|
||||||
@ -778,16 +768,24 @@ class CommandeFournisseur extends CommonOrder
|
|||||||
if (isset($this->statut)) {
|
if (isset($this->statut)) {
|
||||||
$label .= ' '.$this->getLibStatut(5);
|
$label .= ' '.$this->getLibStatut(5);
|
||||||
}
|
}
|
||||||
if (!empty($this->ref))
|
if (!empty($this->ref)) {
|
||||||
$label .= '<br><b>'.$langs->trans('Ref').':</b> '.$this->ref;
|
$label .= '<br><b>'.$langs->trans('Ref').':</b> '.$this->ref;
|
||||||
if (!empty($this->ref_supplier))
|
}
|
||||||
|
if (!empty($this->ref_supplier)) {
|
||||||
$label .= '<br><b>'.$langs->trans('RefSupplier').':</b> '.$this->ref_supplier;
|
$label .= '<br><b>'.$langs->trans('RefSupplier').':</b> '.$this->ref_supplier;
|
||||||
if (!empty($this->total_ht))
|
}
|
||||||
|
if (!empty($this->total_ht)) {
|
||||||
$label .= '<br><b>'.$langs->trans('AmountHT').':</b> '.price($this->total_ht, 0, $langs, 0, -1, -1, $conf->currency);
|
$label .= '<br><b>'.$langs->trans('AmountHT').':</b> '.price($this->total_ht, 0, $langs, 0, -1, -1, $conf->currency);
|
||||||
if (!empty($this->total_tva))
|
}
|
||||||
|
if (!empty($this->total_tva)) {
|
||||||
$label .= '<br><b>'.$langs->trans('VAT').':</b> '.price($this->total_tva, 0, $langs, 0, -1, -1, $conf->currency);
|
$label .= '<br><b>'.$langs->trans('VAT').':</b> '.price($this->total_tva, 0, $langs, 0, -1, -1, $conf->currency);
|
||||||
if (!empty($this->total_ttc))
|
}
|
||||||
|
if (!empty($this->total_ttc)) {
|
||||||
$label .= '<br><b>'.$langs->trans('AmountTTC').':</b> '.price($this->total_ttc, 0, $langs, 0, -1, -1, $conf->currency);
|
$label .= '<br><b>'.$langs->trans('AmountTTC').':</b> '.price($this->total_ttc, 0, $langs, 0, -1, -1, $conf->currency);
|
||||||
|
}
|
||||||
|
if (!empty($this->delivery_date)) {
|
||||||
|
$label .= '<br><b>'.$langs->trans('DeliveryDate').':</b> '.dol_print_date($this->delivery_date, 'dayhour');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$picto = 'order';
|
$picto = 'order';
|
||||||
@ -1257,9 +1255,10 @@ class CommandeFournisseur extends CommonOrder
|
|||||||
$error = 0;
|
$error = 0;
|
||||||
$now = dol_now();
|
$now = dol_now();
|
||||||
|
|
||||||
// $date_commande is deprecated
|
// set tmp vars
|
||||||
$date = ($this->date_commande ? $this->date_commande : $this->date); // in case of date is set
|
$date = ($this->date_commande ? $this->date_commande : $this->date); // in case of date is set
|
||||||
if (empty($date)) $date = $now;
|
if (empty($date)) $date = $now;
|
||||||
|
$delivery_date = empty($this->delivery_date) ? $this->date_livraison : $this->delivery_date;
|
||||||
|
|
||||||
// Clean parameters
|
// Clean parameters
|
||||||
if (empty($this->source)) $this->source = 0;
|
if (empty($this->source)) $this->source = 0;
|
||||||
@ -1308,7 +1307,7 @@ class CommandeFournisseur extends CommonOrder
|
|||||||
$sql .= ", ".$this->socid;
|
$sql .= ", ".$this->socid;
|
||||||
$sql .= ", ".($this->fk_project > 0 ? $this->fk_project : "null");
|
$sql .= ", ".($this->fk_project > 0 ? $this->fk_project : "null");
|
||||||
$sql .= ", '".$this->db->idate($date)."'";
|
$sql .= ", '".$this->db->idate($date)."'";
|
||||||
$sql .= ", ".($this->date_livraison ? "'".$this->db->idate($this->date_livraison)."'" : "null");
|
$sql .= ", ".($delivery_date ? "'".$this->db->idate($delivery_date)."'" : "null");
|
||||||
$sql .= ", ".$user->id;
|
$sql .= ", ".$user->id;
|
||||||
$sql .= ", ".self::STATUS_DRAFT;
|
$sql .= ", ".self::STATUS_DRAFT;
|
||||||
$sql .= ", ".$this->db->escape($this->source);
|
$sql .= ", ".$this->db->escape($this->source);
|
||||||
@ -2897,7 +2896,7 @@ class CommandeFournisseur extends CommonOrder
|
|||||||
}
|
}
|
||||||
$sql .= $clause." c.entity = ".$conf->entity;
|
$sql .= $clause." c.entity = ".$conf->entity;
|
||||||
if ($mode === 'awaiting') {
|
if ($mode === 'awaiting') {
|
||||||
$sql .= " AND c.fk_statut = ".self::STATUS_ORDERSENT;
|
$sql .= " AND c.fk_statut IN (".self::STATUS_ORDERSENT.", ".self::STATUS_RECEIVED_PARTIALLY.")";
|
||||||
} else {
|
} else {
|
||||||
$sql .= " AND c.fk_statut IN (".self::STATUS_VALIDATED.", ".self::STATUS_ACCEPTED.")";
|
$sql .= " AND c.fk_statut IN (".self::STATUS_VALIDATED.", ".self::STATUS_ACCEPTED.")";
|
||||||
}
|
}
|
||||||
@ -2918,14 +2917,14 @@ class CommandeFournisseur extends CommonOrder
|
|||||||
if ($mode === 'awaiting') {
|
if ($mode === 'awaiting') {
|
||||||
$response->label = $langs->trans("SuppliersOrdersAwaitingReception");
|
$response->label = $langs->trans("SuppliersOrdersAwaitingReception");
|
||||||
$response->labelShort = $langs->trans("AwaitingReception");
|
$response->labelShort = $langs->trans("AwaitingReception");
|
||||||
$response->url = DOL_URL_ROOT.'/fourn/commande/list.php?statut=3&mainmenu=commercial&leftmenu=orders_suppliers';
|
$response->url = DOL_URL_ROOT.'/fourn/commande/list.php?statut=3,4&mainmenu=commercial&leftmenu=orders_suppliers';
|
||||||
}
|
}
|
||||||
|
|
||||||
while ($obj = $this->db->fetch_object($resql))
|
while ($obj = $this->db->fetch_object($resql))
|
||||||
{
|
{
|
||||||
$response->nbtodo++;
|
$response->nbtodo++;
|
||||||
|
|
||||||
$commandestatic->date_livraison = $this->db->jdate($obj->delivery_date);
|
$commandestatic->date_livraison = $this->db->jdate($obj->delivery_date); // deprecated
|
||||||
$commandestatic->delivery_date = $this->db->jdate($obj->delivery_date);
|
$commandestatic->delivery_date = $this->db->jdate($obj->delivery_date);
|
||||||
$commandestatic->date_commande = $this->db->jdate($obj->date_commande);
|
$commandestatic->date_commande = $this->db->jdate($obj->date_commande);
|
||||||
$commandestatic->statut = $obj->fk_statut;
|
$commandestatic->statut = $obj->fk_statut;
|
||||||
@ -3079,12 +3078,12 @@ class CommandeFournisseur extends CommonOrder
|
|||||||
{
|
{
|
||||||
global $conf;
|
global $conf;
|
||||||
|
|
||||||
if (empty($this->date_delivery) && !empty($this->date_livraison)) $this->date_delivery = $this->date_livraison; // For backward compatibility
|
if (empty($this->delivery_date) && !empty($this->date_livraison)) $this->delivery_date = $this->date_livraison; // For backward compatibility
|
||||||
|
|
||||||
$now = dol_now();
|
$now = dol_now();
|
||||||
$date_to_test = empty($this->date_delivery) ? $this->date_commande : $this->date_delivery;
|
$date_to_test = empty($this->delivery_date) ? $this->date_commande : $this->delivery_date;
|
||||||
|
|
||||||
return ($this->statut > 0 && $this->statut < 4) && $date_to_test && $date_to_test < ($now - $conf->commande->fournisseur->warning_delay);
|
return ($this->statut > 0 && $this->statut < 5) && $date_to_test && $date_to_test < ($now - $conf->commande->fournisseur->warning_delay);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -3096,10 +3095,13 @@ class CommandeFournisseur extends CommonOrder
|
|||||||
{
|
{
|
||||||
global $conf, $langs;
|
global $conf, $langs;
|
||||||
|
|
||||||
if (empty($this->date_delivery) && !empty($this->date_livraison)) $this->date_delivery = $this->date_livraison; // For backward compatibility
|
if (empty($this->delivery_date) && !empty($this->date_livraison)) $this->delivery_date = $this->date_livraison; // For backward compatibility
|
||||||
|
|
||||||
if (empty($this->date_delivery)) $text = $langs->trans("OrderDate").' '.dol_print_date($this->date_commande, 'day');
|
if (empty($this->delivery_date)) {
|
||||||
else $text = $text = $langs->trans("DeliveryDate").' '.dol_print_date($this->date_delivery, 'day');
|
$text = $langs->trans("OrderDate").' '.dol_print_date($this->date_commande, 'day');
|
||||||
|
} else {
|
||||||
|
$text = $langs->trans("DeliveryDate").' '.dol_print_date($this->delivery_date, 'day');
|
||||||
|
}
|
||||||
$text .= ' '.($conf->commande->fournisseur->warning_delay > 0 ? '+' : '-').' '.round(abs($conf->commande->fournisseur->warning_delay) / 3600 / 24, 1).' '.$langs->trans("days").' < '.$langs->trans("Today");
|
$text .= ' '.($conf->commande->fournisseur->warning_delay > 0 ? '+' : '-').' '.round(abs($conf->commande->fournisseur->warning_delay) / 3600 / 24, 1).' '.$langs->trans("days").' < '.$langs->trans("Today");
|
||||||
|
|
||||||
return $text;
|
return $text;
|
||||||
|
|||||||
@ -104,6 +104,29 @@ class ProductFournisseur extends Product
|
|||||||
public $fourn_multicurrency_price;
|
public $fourn_multicurrency_price;
|
||||||
public $fourn_multicurrency_unitprice;
|
public $fourn_multicurrency_unitprice;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated
|
||||||
|
* @see $supplier_barcode
|
||||||
|
*/
|
||||||
|
public $fourn_barcode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string $supplier_barcode - Supplier barcode
|
||||||
|
*/
|
||||||
|
public $supplier_barcode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated
|
||||||
|
* @see $supplier_fk_barcode_type
|
||||||
|
*/
|
||||||
|
public $fourn_fk_barcode_type;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string $supplier_fk_barcode_type - Supplier barcode type
|
||||||
|
*/
|
||||||
|
public $supplier_fk_barcode_type;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*
|
*
|
||||||
@ -118,8 +141,6 @@ class ProductFournisseur extends Product
|
|||||||
$this->reputations = array('-1'=>'', 'FAVORITE'=>$langs->trans('Favorite'), 'NOTTHGOOD'=>$langs->trans('NotTheGoodQualitySupplier'), 'DONOTORDER'=>$langs->trans('DoNotOrderThisProductToThisSupplier'));
|
$this->reputations = array('-1'=>'', 'FAVORITE'=>$langs->trans('Favorite'), 'NOTTHGOOD'=>$langs->trans('NotTheGoodQualitySupplier'), 'DONOTORDER'=>$langs->trans('DoNotOrderThisProductToThisSupplier'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
|
||||||
/**
|
/**
|
||||||
* Remove all prices for this couple supplier-product
|
* Remove all prices for this couple supplier-product
|
||||||
@ -537,8 +558,10 @@ class ProductFournisseur extends Product
|
|||||||
$this->fourn_multicurrency_id = $obj->fk_multicurrency;
|
$this->fourn_multicurrency_id = $obj->fk_multicurrency;
|
||||||
$this->fourn_multicurrency_code = $obj->multicurrency_code;
|
$this->fourn_multicurrency_code = $obj->multicurrency_code;
|
||||||
if ($conf->barcode->enabled) {
|
if ($conf->barcode->enabled) {
|
||||||
$this->fourn_barcode = $obj->barcode;
|
$this->fourn_barcode = $obj->barcode; // deprecated
|
||||||
$this->fourn_fk_barcode_type = $obj->fk_barcode_type;
|
$this->fourn_fk_barcode_type = $obj->barcode; // deprecated
|
||||||
|
$this->supplier_barcode = $obj->barcode;
|
||||||
|
$this->supplier_fk_barcode_type = $obj->fk_barcode_type;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($conf->global->PRODUCT_USE_SUPPLIER_PACKAGING)) {
|
if (!empty($conf->global->PRODUCT_USE_SUPPLIER_PACKAGING)) {
|
||||||
|
|||||||
@ -1145,7 +1145,7 @@ if (empty($reshook))
|
|||||||
$object->fk_account = GETPOST('fk_account', 'int');
|
$object->fk_account = GETPOST('fk_account', 'int');
|
||||||
$object->note_private = GETPOST('note_private', 'restricthtml');
|
$object->note_private = GETPOST('note_private', 'restricthtml');
|
||||||
$object->note_public = GETPOST('note_public', 'restricthtml');
|
$object->note_public = GETPOST('note_public', 'restricthtml');
|
||||||
$object->date_livraison = $datelivraison;
|
$object->date_livraison = $datelivraison; // deprecated
|
||||||
$object->delivery_date = $datelivraison;
|
$object->delivery_date = $datelivraison;
|
||||||
$object->fk_incoterms = GETPOST('incoterm_id', 'int');
|
$object->fk_incoterms = GETPOST('incoterm_id', 'int');
|
||||||
$object->location_incoterms = GETPOST('location_incoterms', 'alpha');
|
$object->location_incoterms = GETPOST('location_incoterms', 'alpha');
|
||||||
@ -1200,7 +1200,8 @@ if (empty($reshook))
|
|||||||
$result = $srcobject->fetch($object->origin_id);
|
$result = $srcobject->fetch($object->origin_id);
|
||||||
if ($result > 0)
|
if ($result > 0)
|
||||||
{
|
{
|
||||||
$object->setDeliveryDate($user, $srcobject->date_livraison);
|
$tmpdate = ($srcobject->delivery_date ? $srcobject->delivery_date : $srcobject->date_livraison);
|
||||||
|
$object->setDeliveryDate($user, $tmpdate);
|
||||||
$object->set_id_projet($user, $srcobject->fk_project);
|
$object->set_id_projet($user, $srcobject->fk_project);
|
||||||
|
|
||||||
$lines = $srcobject->lines;
|
$lines = $srcobject->lines;
|
||||||
@ -1552,7 +1553,7 @@ if ($action == 'create')
|
|||||||
$remise_absolue = (!empty($objectsrc->remise_absolue) ? $objectsrc->remise_absolue : (!empty($soc->remise_absolue) ? $soc->remise_absolue : 0));
|
$remise_absolue = (!empty($objectsrc->remise_absolue) ? $objectsrc->remise_absolue : (!empty($soc->remise_absolue) ? $soc->remise_absolue : 0));
|
||||||
$dateinvoice = empty($conf->global->MAIN_AUTOFILL_DATE) ?-1 : '';
|
$dateinvoice = empty($conf->global->MAIN_AUTOFILL_DATE) ?-1 : '';
|
||||||
|
|
||||||
$datedelivery = (!empty($objectsrc->date_livraison) ? $objectsrc->date_livraison : '');
|
$datedelivery = (!empty($objectsrc->date_livraison) ? $objectsrc->date_livraison : (!empty($objectsrc->delivery_date) ? $objectsrc->delivery_date : ''));
|
||||||
|
|
||||||
if (!empty($conf->multicurrency->enabled))
|
if (!empty($conf->multicurrency->enabled))
|
||||||
{
|
{
|
||||||
@ -2001,9 +2002,9 @@ if ($action == 'create')
|
|||||||
if ($object->methode_commande_id > 0)
|
if ($object->methode_commande_id > 0)
|
||||||
{
|
{
|
||||||
print '<tr><td class="titlefield">'.$langs->trans("Date").'</td><td>';
|
print '<tr><td class="titlefield">'.$langs->trans("Date").'</td><td>';
|
||||||
if ($object->date_commande)
|
print $object->date_commande ? dol_print_date($object->date_commande, $usehourmin) : '';
|
||||||
{
|
if ($object->hasDelay() && !empty($object->date_delivery) && !empty($object->date_commande)) {
|
||||||
print dol_print_date($object->date_commande, "dayhour")."\n";
|
print ' '.img_picto($langs->trans("Late").' : '.$object->showDelay(), "warning");
|
||||||
}
|
}
|
||||||
print "</td></tr>";
|
print "</td></tr>";
|
||||||
|
|
||||||
@ -2161,14 +2162,14 @@ if ($action == 'create')
|
|||||||
print '<input type="hidden" name="action" value="setdate_livraison">';
|
print '<input type="hidden" name="action" value="setdate_livraison">';
|
||||||
$usehourmin = 0;
|
$usehourmin = 0;
|
||||||
if (!empty($conf->global->SUPPLIER_ORDER_USE_HOUR_FOR_DELIVERY_DATE)) $usehourmin = 1;
|
if (!empty($conf->global->SUPPLIER_ORDER_USE_HOUR_FOR_DELIVERY_DATE)) $usehourmin = 1;
|
||||||
print $form->selectDate($object->date_livraison ? $object->date_livraison : -1, 'liv_', $usehourmin, $usehourmin, '', "setdate_livraison");
|
print $form->selectDate($object->delivery_date ? $object->delivery_date : -1, 'liv_', $usehourmin, $usehourmin, '', "setdate_livraison");
|
||||||
print '<input type="submit" class="button" value="'.$langs->trans('Modify').'">';
|
print '<input type="submit" class="button" value="'.$langs->trans('Modify').'">';
|
||||||
print '</form>';
|
print '</form>';
|
||||||
} else {
|
} else {
|
||||||
$usehourmin = 'day';
|
$usehourmin = 'day';
|
||||||
if (!empty($conf->global->SUPPLIER_ORDER_USE_HOUR_FOR_DELIVERY_DATE)) $usehourmin = 'dayhour';
|
if (!empty($conf->global->SUPPLIER_ORDER_USE_HOUR_FOR_DELIVERY_DATE)) $usehourmin = 'dayhour';
|
||||||
print $object->date_livraison ? dol_print_date($object->date_livraison, $usehourmin) : ' ';
|
print $object->delivery_date ? dol_print_date($object->delivery_date, $usehourmin) : ' ';
|
||||||
if ($object->hasDelay() && !empty($object->date_livraison)) {
|
if ($object->hasDelay() && !empty($object->delivery_date)) {
|
||||||
print ' '.img_picto($langs->trans("Late").' : '.$object->showDelay(), "warning");
|
print ' '.img_picto($langs->trans("Late").' : '.$object->showDelay(), "warning");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1050,6 +1050,7 @@ if ($resql)
|
|||||||
$objectstatic->total_ht = $obj->total_ht;
|
$objectstatic->total_ht = $obj->total_ht;
|
||||||
$objectstatic->total_tva = $obj->total_tva;
|
$objectstatic->total_tva = $obj->total_tva;
|
||||||
$objectstatic->total_ttc = $obj->total_ttc;
|
$objectstatic->total_ttc = $obj->total_ttc;
|
||||||
|
$objectstatic->date_commande = $db->jdate($obj->date_commande);
|
||||||
$objectstatic->date_delivery = $db->jdate($obj->date_delivery);
|
$objectstatic->date_delivery = $db->jdate($obj->date_delivery);
|
||||||
$objectstatic->note_public = $obj->note_public;
|
$objectstatic->note_public = $obj->note_public;
|
||||||
$objectstatic->note_private = $obj->note_private;
|
$objectstatic->note_private = $obj->note_private;
|
||||||
@ -1159,8 +1160,10 @@ if ($resql)
|
|||||||
if (!empty($arrayfields['cf.date_commande']['checked']))
|
if (!empty($arrayfields['cf.date_commande']['checked']))
|
||||||
{
|
{
|
||||||
print '<td class="center">';
|
print '<td class="center">';
|
||||||
if ($obj->date_commande) print dol_print_date($db->jdate($obj->date_commande), 'day');
|
print dol_print_date($db->jdate($obj->date_commande), 'day');
|
||||||
else print '';
|
if ($objectstatic->hasDelay() && !empty($objectstatic->date_delivery)) {
|
||||||
|
print ' '.img_picto($langs->trans("Late").' : '.$objectstatic->showDelay(), "warning");
|
||||||
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
if (!$i) $totalarray['nbfield']++;
|
if (!$i) $totalarray['nbfield']++;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -64,7 +64,7 @@ if (!$sortfield) $sortfield = "position_name";
|
|||||||
$object = new Holiday($db);
|
$object = new Holiday($db);
|
||||||
$object->fetch($id, $ref);
|
$object->fetch($id, $ref);
|
||||||
|
|
||||||
$upload_dir = $conf->holiday->dir_output.'/'.get_exdir($object->id, 0, 0, 0, $object, 'holiday').dol_sanitizeFileName($object->ref);
|
$upload_dir = $conf->holiday->dir_output.'/'.get_exdir(0, 0, 0, 1, $object, '');
|
||||||
$modulepart = 'holiday';
|
$modulepart = 'holiday';
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,11 +1,12 @@
|
|||||||
-- Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
-- Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
-- Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org>
|
-- Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org>
|
||||||
-- Copyright (C) 2004-2012 Laurent Destailleur <eldy@users.sourceforge.net>
|
-- Copyright (C) 2004-2012 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
-- Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
|
-- Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
|
||||||
-- Copyright (C) 2004 Guillaume Delecourt <guillaume.delecourt@opensides.be>
|
-- Copyright (C) 2004 Guillaume Delecourt <guillaume.delecourt@opensides.be>
|
||||||
-- Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.com>
|
-- Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.com>
|
||||||
-- Copyright (C) 2007 Patrick Raguin <patrick.raguin@gmail.com>
|
-- Copyright (C) 2007 Patrick Raguin <patrick.raguin@gmail.com>
|
||||||
-- Copyright (C) 2011 Juanjo Menent <jmenent@2byte.es>
|
-- Copyright (C) 2011 Juanjo Menent <jmenent@2byte.es>
|
||||||
|
-- Copyright (C) 2020 Udo Tamm <dev@dolibit.de>
|
||||||
--
|
--
|
||||||
-- This program is free software; you can redistribute it and/or modify
|
-- This program is free software; you can redistribute it and/or modify
|
||||||
-- it under the terms of the GNU General Public License as published by
|
-- it under the terms of the GNU General Public License as published by
|
||||||
@ -20,8 +21,11 @@
|
|||||||
-- You should have received a copy of the GNU General Public License
|
-- You should have received a copy of the GNU General Public License
|
||||||
-- along with this program. If not, see <https://www.gnu.org/licenses/>.
|
-- along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
--
|
--
|
||||||
--
|
-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Do not place a comment at the end of the line, this file is parsed when
|
||||||
|
-- of the install and all the acronyms '--' are removed.
|
||||||
--
|
--
|
||||||
-- Ne pas placer de commentaire en fin de ligne, ce fichier est parsé lors
|
-- Ne pas placer de commentaire en fin de ligne, ce fichier est parsé lors
|
||||||
-- de l'install et tous les sigles '--' sont supprimés.
|
-- de l'install et tous les sigles '--' sont supprimés.
|
||||||
@ -31,149 +35,152 @@
|
|||||||
-- Currencies (primary code - code ISO4217 - libelle us)
|
-- Currencies (primary code - code ISO4217 - libelle us)
|
||||||
--
|
--
|
||||||
|
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'ALL', '[76,101,107]', 1, 'Albania Lek');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'ALL', '[76,101,107]', 1, 'Albania Lek');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'DZD', NULL, 1, 'Algeria Dinar');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'DZD', NULL, 1, 'Algeria Dinar');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'AFN', '[1547]', 1, 'Afghanistan Afghani');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'AFN', '[1547]', 1, 'Afghanistan Afghani');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'ARS', '[36]', 1, 'Argentino Peso');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'ARS', '[36]', 1, 'Argentino Peso');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'AWG', '[402]', 1, 'Aruba Guilder');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'AWG', '[402]', 1, 'Aruba Guilder');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'AUD', '[36]', 1, 'Australia Dollar');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'AUD', '[36]', 1, 'Australia Dollar');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'AZN', '[1084,1072,1085]', 1, 'Azerbaijan New Manat');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'AZN', '[1084,1072,1085]', 1, 'Azerbaijan New Manat');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'BHD', NULL, 1, 'Bahrain');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'BHD', NULL, 1, 'Bahrain');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'BSD', '[36]', 1, 'Bahamas Dollar');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'BSD', '[36]', 1, 'Bahamas Dollar');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'BBD', '[36]', 1, 'Barbados Dollar');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'BBD', '[36]', 1, 'Barbados Dollar');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'BDT', '[2547]', 1, 'Bangladeshi Taka');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'BDT', '[2547]', 1, 'Bangladeshi Taka');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'BYR', '[112,46]', 1, 'Belarus Ruble');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'BYR', '[112,46]', 1, 'Belarus Ruble');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'BZD', '[66,90,36]', 1, 'Belize Dollar');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'BZD', '[66,90,36]', 1, 'Belize Dollar');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'BMD', '[36]', 1, 'Bermuda Dollar');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'BMD', '[36]', 1, 'Bermuda Dollar');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'BOB', '[36,98]', 1, 'Bolivia Boliviano');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'BOB', '[36,98]', 1, 'Bolivia Boliviano');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'BAM', '[75,77]', 1, 'Bosnia and Herzegovina Convertible Marka');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'BAM', '[75,77]', 1, 'Bosnia and Herzegovina Convertible Marka');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'BWP', '[80]', 1, 'Botswana Pula');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'BWP', '[80]', 1, 'Botswana Pula');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'BGN', '[1083,1074]', 1, 'Bulgaria Lev');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'BGN', '[1083,1074]', 1, 'Bulgaria Lev');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'BRL', '[82,36]', 1, 'Brazil Real');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'BRL', '[82,36]', 1, 'Brazil Real');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'BND', '[36]', 1, 'Brunei Darussalam Dollar');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'BND', '[36]', 1, 'Brunei Darussalam Dollar');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'KHR', '[6107]', 1, 'Cambodia Riel');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'KHR', '[6107]', 1, 'Cambodia Riel');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'CAD', '[36]', 1, 'Canada Dollar');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'CAD', '[36]', 1, 'Canada Dollar');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'KYD', '[36]', 1, 'Cayman Islands Dollar');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'CVE', '[4217]', 1, 'Cap Verde Escudo');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'CLP', '[36]', 1, 'Chile Peso');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'KYD', '[36]', 1, 'Cayman Islands Dollar');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'CNY', '[165]', 1, 'China Yuan Renminbi');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'CLP', '[36]', 1, 'Chile Peso');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'COP', '[36]', 1, 'Colombia Peso');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'CNY', '[165]', 1, 'China Yuan Renminbi');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'CRC', '[8353]', 1, 'Costa Rica Colon');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'COP', '[36]', 1, 'Colombia Peso');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'HRK', '[107,110]', 1, 'Croatia Kuna');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'CRC', '[8353]', 1, 'Costa Rica Colon');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'CUP', '[8369]', 1, 'Cuba Peso');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'HRK', '[107,110]', 1, 'Croatia Kuna');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'CZK', '[75,269]', 1, 'Czech Republic Koruna');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'CUP', '[8369]', 1, 'Cuba Peso');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'DKK', '[107,114]', 1, 'Denmark Krone');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'CZK', '[75,269]', 1, 'Czech Republic Koruna');
|
||||||
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'DKK', '[107,114]', 1, 'Denmark Krone');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'DOP', '[82,68,36]', 1, 'Dominican Republic Peso');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'DOP', '[82,68,36]', 1, 'Dominican Republic Peso');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'XCD', '[36]', 1, 'East Caribbean Dollar');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'XCD', '[36]', 1, 'East Caribbean Dollar');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'EGP', '[163]', 1, 'Egypt Pound');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'EGP', '[163]', 1, 'Egypt Pound');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'SVC', '[36]', 1, 'El Salvador Colon');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'SVC', '[36]', 1, 'El Salvador Colon');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'EEK', '[107,114]', 1, 'Estonia Kroon');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'EEK', '[107,114]', 1, 'Estonia Kroon');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'EUR', '[8364]', 1, 'Euro Member Countries');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'EUR', '[8364]', 1, 'Euro Member Countries');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'FKP', '[163]', 1, 'Falkland Islands (Malvinas) Pound');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'FKP', '[163]', 1, 'Falkland Islands (Malvinas) Pound');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'FJD', '[36]', 1, 'Fiji Dollar');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'FJD', '[36]', 1, 'Fiji Dollar');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'GHC', '[162]', 1, 'Ghana Cedis');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'GHC', '[162]', 1, 'Ghana Cedis');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'GNF', '[70,71]', 1, 'Franc Guinéen');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'GNF', '[70,71]', 1, 'Guinea Franc');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'GIP', '[163]', 1, 'Gibraltar Pound');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'GIP', '[163]', 1, 'Gibraltar Pound');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'GTQ', '[81]', 1, 'Guatemala Quetzal');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'GTQ', '[81]', 1, 'Guatemala Quetzal');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'GGP', '[163]', 1, 'Guernsey Pound');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'GGP', '[163]', 1, 'Guernsey Pound');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'GYD', '[36]', 1, 'Guyana Dollar');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'GYD', '[36]', 1, 'Guyana Dollar');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'HNL', '[76]', 1, 'Honduras Lempira');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'HNL', '[76]', 1, 'Honduras Lempira');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'HKD', '[36]', 1, 'Hong Kong Dollar');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'HKD', '[36]', 1, 'Hong Kong Dollar');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'HUF', '[70,116]', 1, 'Hungary Forint');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'HUF', '[70,116]', 1, 'Hungary Forint');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'ISK', '[107,114]', 1, 'Iceland Krona');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'ISK', '[107,114]', 1, 'Iceland Krona');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'INR', '[8377]', 1, 'India Rupee');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'INR', '[8377]', 1, 'India Rupee');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'IDR', '[82,112]', 1, 'Indonesia Rupiah');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'IDR', '[82,112]', 1, 'Indonesia Rupiah');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'IRR', '[65020]', 1, 'Iran Rial');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'IRR', '[65020]', 1, 'Iran Rial');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'IMP', '[163]', 1, 'Isle of Man Pound');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'IMP', '[163]', 1, 'Isle of Man Pound');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'ILS', '[8362]', 1, 'Israel Shekel');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'ILS', '[8362]', 1, 'Israel Shekel');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'JMD', '[74,36]', 1, 'Jamaica Dollar');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'JMD', '[74,36]', 1, 'Jamaica Dollar');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'JPY', '[165]', 1, 'Japan Yen');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'JPY', '[165]', 1, 'Japan Yen');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'JEP', '[163]', 1, 'Jersey Pound');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'JEP', '[163]', 1, 'Jersey Pound');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'KES', NULL, 1, 'Kenya Shilling');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'KES', NULL, 1, 'Kenya Shilling');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'KZT', '[1083,1074]', 1, 'Kazakhstan Tenge');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'KZT', '[1083,1074]', 1, 'Kazakhstan Tenge');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'KPW', '[8361]', 1, 'Korea (North) Won');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'KPW', '[8361]', 1, 'Korea (North) Won');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'KRW', '[8361]', 1, 'Korea (South) Won');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'KRW', '[8361]', 1, 'Korea (South) Won');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'KGS', '[1083,1074]', 1, 'Kyrgyzstan Som');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'KGS', '[1083,1074]', 1, 'Kyrgyzstan Som');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'LAK', '[8365]', 1, 'Laos Kip');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'LAK', '[8365]', 1, 'Laos Kip');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'LVL', '[76,115]', 1, 'Latvia Lat');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'LVL', '[76,115]', 1, 'Latvia Lat');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'LBP', '[163]', 1, 'Lebanon Pound');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'LBP', '[163]', 1, 'Lebanon Pound');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'LRD', '[36]', 1, 'Liberia Dollar');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'LRD', '[36]', 1, 'Liberia Dollar');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'LTL', '[76,116]', 1, 'Lithuania Litas');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'LTL', '[76,116]', 1, 'Lithuania Litas');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'MGA', NULL, 1, 'Ariary');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'MGA', NULL, 1, 'Ariary');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'MKD', '[1076,1077,1085]', 1, 'Macedonia Denar');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'MKD', '[1076,1077,1085]', 1, 'Macedonia Denar');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'MYR', '[82,77]', 1, 'Malaysia Ringgit');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'MYR', '[82,77]', 1, 'Malaysia Ringgit');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'MRO', NULL, 1, 'Mauritania Ouguiya');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'MRO', NULL, 1, 'Mauritania Ouguiya');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'MUR', '[8360]', 1, 'Mauritius Rupee');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'MUR', '[8360]', 1, 'Mauritius Rupee');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'MXN', '[36]', 1, 'Mexico Peso');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'MXN', '[36]', 1, 'Mexico Peso');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'MNT', '[8366]', 1, 'Mongolia Tughrik');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'MDL', NULL, 1, 'Moldova Leu');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'MAD', NULL, 1, 'Morocco Dirham');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'MNT', '[8366]', 1, 'Mongolia Tughrik');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'MZN', '[77,84]', 1, 'Mozambique Metical');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'MAD', NULL, 1, 'Morocco Dirham');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'NAD', '[36]', 1, 'Namibia Dollar');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'MZN', '[77,84]', 1, 'Mozambique Metical');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'NPR', '[8360]', 1, 'Nepal Rupee');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'NAD', '[36]', 1, 'Namibia Dollar');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'ANG', '[402]', 1, 'Netherlands Antilles Guilder');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'NPR', '[8360]', 1, 'Nepal Rupee');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'NZD', '[36]', 1, 'New Zealand Dollar');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'ANG', '[402]', 1, 'Netherlands Antilles Guilder');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'NIO', '[67,36]', 1, 'Nicaragua Cordoba');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'NZD', '[36]', 1, 'New Zealand Dollar');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'NGN', '[8358]', 1, 'Nigeria Naira');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'NIO', '[67,36]', 1, 'Nicaragua Cordoba');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'NOK', '[107,114]', 1, 'Norway Krone');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'NGN', '[8358]', 1, 'Nigeria Naira');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'OMR', '[65020]', 1, 'Oman Rial');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'NOK', '[107,114]', 1, 'Norway Krone');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'PKR', '[8360]', 1, 'Pakistan Rupee');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'OMR', '[65020]', 1, 'Oman Rial');
|
||||||
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'PKR', '[8360]', 1, 'Pakistan Rupee');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'PAB', '[66,47,46]', 1, 'Panama Balboa');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'PAB', '[66,47,46]', 1, 'Panama Balboa');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'PYG', '[71,115]', 1, 'Paraguay Guarani');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'PYG', '[71,115]', 1, 'Paraguay Guarani');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'PEN', '[83,47,46]', 1, 'Peru Nuevo Sol');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'PEN', '[83,47,46]', 1, 'Peru Nuevo Sol');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'PHP', '[8369]', 1, 'Philippines Peso');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'PHP', '[8369]', 1, 'Philippines Peso');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'PLN', '[122,322]', 1, 'Poland Zloty');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'PLN', '[122,322]', 1, 'Poland Zloty');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'QAR', '[65020]', 1, 'Qatar Riyal');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'QAR', '[65020]', 1, 'Qatar Riyal');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'RON', '[108,101,105]', 1, 'Romania New Leu');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'RON', '[108,101,105]', 1, 'Romania New Leu');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'RUB', '[1088,1091,1073]', 1, 'Russia Ruble');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'RUB', '[1088,1091,1073]', 1, 'Russia Ruble');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'SHP', '[163]', 1, 'Saint Helena Pound');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'SHP', '[163]', 1, 'Saint Helena Pound');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'SAR', '[65020]', 1, 'Saudi Arabia Riyal');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'SAR', '[65020]', 1, 'Saudi Arabia Riyal');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'RSD', '[1044,1080,1085,46]', 1, 'Serbia Dinar');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'RSD', '[1044,1080,1085,46]', 1, 'Serbia Dinar');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'SCR', '[8360]', 1, 'Seychelles Rupee');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'SCR', '[8360]', 1, 'Seychelles Rupee');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'SGD', '[36]', 1, 'Singapore Dollar');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'SGD', '[36]', 1, 'Singapore Dollar');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'SBD', '[36]', 1, 'Solomon Islands Dollar');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'SBD', '[36]', 1, 'Solomon Islands Dollar');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'SOS', '[83]', 1, 'Somalia Shilling');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'SOS', '[83]', 1, 'Somalia Shilling');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'ZAR', '[82]', 1, 'South Africa Rand');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'ZAR', '[82]', 1, 'South Africa Rand');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'LKR', '[8360]', 1, 'Sri Lanka Rupee');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'LKR', '[8360]', 1, 'Sri Lanka Rupee');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'SEK', '[107,114]', 1, 'Sweden Krona');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'SEK', '[107,114]', 1, 'Sweden Krona');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'CHF', '[67,72,70]', 1, 'Switzerland Franc');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'CHF', '[67,72,70]', 1, 'Switzerland Franc');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'SRD', '[36]', 1, 'Suriname Dollar');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'SRD', '[36]', 1, 'Suriname Dollar');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'SYP', '[163]', 1, 'Syria Pound');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'SYP', '[163]', 1, 'Syria Pound');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'TWD', '[78,84,36]', 1, 'Taiwan New Dollar');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'TWD', '[78,84,36]', 1, 'Taiwan New Dollar');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'THB', '[3647]', 1, 'Thailand Baht');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'THB', '[3647]', 1, 'Thailand Baht');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'TTD', '[84,84,36]', 1, 'Trinidad and Tobago Dollar');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'TTD', '[84,84,36]', 1, 'Trinidad and Tobago Dollar');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'TND', NULL, 1, 'Tunisia Dinar');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'TND', NULL, 1, 'Tunisia Dinar');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'TRL', '[84,76]', 1, 'Turkey Lira');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'TRY', '[8356]', 1, 'Turkey Lira');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'TRY', '[8356]', 1, 'Turkey Lira');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'TVD', '[36]', 1, 'Tuvalu Dollar');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'TVD', '[36]', 1, 'Tuvalu Dollar');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'UAH', '[8372]', 1, 'Ukraine Hryvna');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'UAH', '[8372]', 1, 'Ukraine Hryvna');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'AED', NULL, 1, 'United Arab Emirates Dirham');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'AED', NULL, 1, 'United Arab Emirates Dirham');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'GBP', '[163]', 1, 'United Kingdom Pound');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'GBP', '[163]', 1, 'United Kingdom Pound');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'USD', '[36]', 1, 'United States Dollar');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'USD', '[36]', 1, 'United States Dollar');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'UYU', '[36,85]', 1, 'Uruguay Peso');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'UYU', '[36,85]', 1, 'Uruguay Peso');
|
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'UZS', '[1083,1074]', 1, 'Uzbekistan Som');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'UZS', '[1083,1074]', 1, 'Uzbekistan Som');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'VEF', '[66,115]', 1, 'Venezuela Bolivar Fuerte');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'VEF', '[66,115]', 1, 'Venezuela Bolivar Fuerte');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'VND', '[8363]', 1, 'Viet Nam Dong');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'VND', '[8363]', 1, 'Viet Nam Dong');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'XAF', NULL, 1, 'Communaute Financiere Africaine (BEAC) CFA Franc');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'XAF', NULL, 1, 'Communaute Financiere Africaine (BEAC) CFA Franc');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'XOF', NULL, 1, 'Communaute Financiere Africaine (BCEAO) Franc');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'XOF', NULL, 1, 'Communaute Financiere Africaine (BCEAO) Franc');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'XPF', '[70]', 1, 'Franc CFP');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'XPF', '[70]', 1, 'Franc CFP');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'YER', '[65020]', 1, 'Yemen Rial');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'YER', '[65020]', 1, 'Yemen Rial');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'ZWD', '[90,36]', 1, 'Zimbabwe Dollar');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'ZWD', '[90,36]', 1, 'Zimbabwe Dollar');
|
||||||
|
|
||||||
-- obsolete
|
-- obsolete
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'ATS', NULL, 0, 'Shiliing autrichiens');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'ATS', NULL, 0, 'Shiliing autrichiens');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'BEF', NULL, 0, 'Francs belges');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'BEF', NULL, 0, 'Francs belges');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'DEM', NULL, 0, 'Deutsch mark');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'DEM', NULL, 0, 'Deutsche Mark');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'ESP', NULL, 0, 'Pesete');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'ESP', NULL, 0, 'Pesete');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'FIM', NULL, 0, 'Mark finlandais');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'FIM', NULL, 0, 'Mark finlandais');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'FRF', NULL, 0, 'Francs francais');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'FRF', NULL, 0, 'Francs francais');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'GRD', NULL, 0, 'Drachme (grece)');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'GRD', NULL, 0, 'Drachme (grece)');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'IEP', NULL, 0, 'Livres irlandaises');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'IEP', NULL, 0, 'Livres irlandaises');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'ITL', NULL, 0, 'Lires');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'ITL', NULL, 0, 'Lires');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'LUF', NULL, 0, 'Francs luxembourgeois');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'LUF', NULL, 0, 'Francs luxembourgeois');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'NLG', NULL, 0, 'Florins');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'NLG', NULL, 0, 'Florins');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'PTE', NULL, 0, 'Escudos');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'PTE', NULL, 0, 'Escudos');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'SKK', NULL, 0, 'Couronnes slovaques');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'SKK', NULL, 0, 'Couronnes slovaques');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'SUR', NULL, 0, 'Rouble');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'SUR', NULL, 0, 'Rouble');
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'XEU', NULL, 0, 'Ecus');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'XEU', NULL, 0, 'Ecus');
|
||||||
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'TRL', '[84,76]', 0, 'Turkey Lira');
|
||||||
|
|
||||||
|
|
||||||
-- invalid (for compatibility)
|
-- invalid (for compatibility)
|
||||||
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'ARP', NULL, 0, 'Pesos argentins');
|
INSERT INTO llx_c_currencies ( code_iso, unicode, active, label ) VALUES ( 'ARP', NULL, 0, 'Pesos argentins');
|
||||||
|
|||||||
@ -107,6 +107,11 @@ ALTER TABLE llx_user DROP COLUMN whatsapp;
|
|||||||
ALTER TABLE llx_user ADD COLUMN datestartvalidity datetime;
|
ALTER TABLE llx_user ADD COLUMN datestartvalidity datetime;
|
||||||
ALTER TABLE llx_user ADD COLUMN dateendvalidity datetime;
|
ALTER TABLE llx_user ADD COLUMN dateendvalidity datetime;
|
||||||
|
|
||||||
|
ALTER TABLE llx_user ADD COLUMN idpers1 varchar(128);
|
||||||
|
ALTER TABLE llx_user ADD COLUMN idpers2 varchar(128);
|
||||||
|
ALTER TABLE llx_user ADD COLUMN idpers3 varchar(128);
|
||||||
|
|
||||||
|
|
||||||
-- Intracomm Report
|
-- Intracomm Report
|
||||||
CREATE TABLE llx_c_transport_mode (
|
CREATE TABLE llx_c_transport_mode (
|
||||||
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
rowid integer AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
|||||||
@ -25,6 +25,8 @@ create table llx_user
|
|||||||
ref_ext varchar(50), -- reference into an external system (not used by dolibarr)
|
ref_ext varchar(50), -- reference into an external system (not used by dolibarr)
|
||||||
ref_int varchar(50), -- reference into an internal system (deprecated)
|
ref_int varchar(50), -- reference into an internal system (deprecated)
|
||||||
|
|
||||||
|
admin smallint DEFAULT 0, -- user has admin profile
|
||||||
|
|
||||||
employee tinyint DEFAULT 1, -- 1 if user is an employee
|
employee tinyint DEFAULT 1, -- 1 if user is an employee
|
||||||
fk_establishment integer DEFAULT 0,
|
fk_establishment integer DEFAULT 0,
|
||||||
|
|
||||||
@ -55,22 +57,24 @@ create table llx_user
|
|||||||
personal_mobile varchar(20),
|
personal_mobile varchar(20),
|
||||||
email varchar(255),
|
email varchar(255),
|
||||||
personal_email varchar(255),
|
personal_email varchar(255),
|
||||||
|
signature text DEFAULT NULL,
|
||||||
|
|
||||||
socialnetworks text DEFAULT NULL, -- json with socialnetworks
|
socialnetworks text DEFAULT NULL, -- json with socialnetworks
|
||||||
|
|
||||||
signature text DEFAULT NULL,
|
--module_comm smallint DEFAULT 1,
|
||||||
admin smallint DEFAULT 0,
|
--module_compta smallint DEFAULT 1,
|
||||||
|
|
||||||
module_comm smallint DEFAULT 1,
|
fk_soc integer, -- id thirdparty if user linked to a company (external user)
|
||||||
module_compta smallint DEFAULT 1,
|
fk_socpeople integer, -- id contact origin if user linked to a contact
|
||||||
|
fk_member integer, -- if member if suer linked to a member
|
||||||
fk_soc integer,
|
fk_user integer, -- Supervisor, hierarchic parent
|
||||||
fk_socpeople integer,
|
|
||||||
fk_member integer,
|
|
||||||
fk_user integer, -- Hierarchic parent
|
|
||||||
fk_user_expense_validator integer,
|
fk_user_expense_validator integer,
|
||||||
fk_user_holiday_validator integer,
|
fk_user_holiday_validator integer,
|
||||||
|
|
||||||
|
idpers1 varchar(128),
|
||||||
|
idpers2 varchar(128),
|
||||||
|
idpers3 varchar(128),
|
||||||
|
|
||||||
note_public text,
|
note_public text,
|
||||||
note text DEFAULT NULL,
|
note text DEFAULT NULL,
|
||||||
model_pdf varchar(255) DEFAULT NULL,
|
model_pdf varchar(255) DEFAULT NULL,
|
||||||
@ -103,5 +107,5 @@ create table llx_user
|
|||||||
import_key varchar(14), -- import key
|
import_key varchar(14), -- import key
|
||||||
default_range integer,
|
default_range integer,
|
||||||
default_c_exp_tax_cat integer,
|
default_c_exp_tax_cat integer,
|
||||||
fk_warehouse integer
|
fk_warehouse integer -- default warehouse os user
|
||||||
)ENGINE=innodb;
|
)ENGINE=innodb;
|
||||||
|
|||||||
@ -2068,8 +2068,8 @@ function migrate_commande_livraison($db, $langs, $conf)
|
|||||||
|
|
||||||
$db->begin();
|
$db->begin();
|
||||||
|
|
||||||
$sql = "SELECT l.rowid, l.fk_commande";
|
$sql = "SELECT l.rowid, l.fk_commande,";
|
||||||
$sql .= ", c.ref_client, c.date_livraison";
|
$sql .= " c.ref_client, c.date_livraison as delivery_date";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."livraison as l, ".MAIN_DB_PREFIX."commande as c";
|
$sql .= " FROM ".MAIN_DB_PREFIX."livraison as l, ".MAIN_DB_PREFIX."commande as c";
|
||||||
$sql .= " WHERE c.rowid = l.fk_commande";
|
$sql .= " WHERE c.rowid = l.fk_commande";
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
@ -2090,7 +2090,7 @@ function migrate_commande_livraison($db, $langs, $conf)
|
|||||||
|
|
||||||
if ($resql2)
|
if ($resql2)
|
||||||
{
|
{
|
||||||
$delivery_date = $db->jdate($obj->date_livraison);
|
$delivery_date = $db->jdate($obj->delivery_date);
|
||||||
|
|
||||||
$sqlu = "UPDATE ".MAIN_DB_PREFIX."livraison SET";
|
$sqlu = "UPDATE ".MAIN_DB_PREFIX."livraison SET";
|
||||||
$sqlu .= " ref_client='".$db->escape($obj->ref_client)."'";
|
$sqlu .= " ref_client='".$db->escape($obj->ref_client)."'";
|
||||||
@ -3007,7 +3007,7 @@ function migrate_customerorder_shipping($db, $langs, $conf)
|
|||||||
|
|
||||||
if ($db->query($sqlAdd1) && $db->query($sqlAdd2))
|
if ($db->query($sqlAdd1) && $db->query($sqlAdd2))
|
||||||
{
|
{
|
||||||
$sqlSelect = "SELECT e.rowid as shipping_id, c.ref_client, c.date_livraison";
|
$sqlSelect = "SELECT e.rowid as shipping_id, c.ref_client, c.date_livraison as delivery_date";
|
||||||
$sqlSelect .= " FROM ".MAIN_DB_PREFIX."expedition as e";
|
$sqlSelect .= " FROM ".MAIN_DB_PREFIX."expedition as e";
|
||||||
$sqlSelect .= ", ".MAIN_DB_PREFIX."element_element as el";
|
$sqlSelect .= ", ".MAIN_DB_PREFIX."element_element as el";
|
||||||
$sqlSelect .= " LEFT JOIN ".MAIN_DB_PREFIX."commande as c ON c.rowid = el.fk_source AND el.sourcetype = 'commande'";
|
$sqlSelect .= " LEFT JOIN ".MAIN_DB_PREFIX."commande as c ON c.rowid = el.fk_source AND el.sourcetype = 'commande'";
|
||||||
@ -3028,7 +3028,7 @@ function migrate_customerorder_shipping($db, $langs, $conf)
|
|||||||
|
|
||||||
$sqlUpdate = "UPDATE ".MAIN_DB_PREFIX."expedition SET";
|
$sqlUpdate = "UPDATE ".MAIN_DB_PREFIX."expedition SET";
|
||||||
$sqlUpdate .= " ref_customer = '".$db->escape($obj->ref_client)."'";
|
$sqlUpdate .= " ref_customer = '".$db->escape($obj->ref_client)."'";
|
||||||
$sqlUpdate .= ", date_delivery = '".$db->escape($obj->date_livraison ? $obj->date_livraison : 'null')."'";
|
$sqlUpdate .= ", date_delivery = '".$db->escape($obj->delivery_date ? $obj->delivery_date : 'null')."'";
|
||||||
$sqlUpdate .= " WHERE rowid = ".$obj->shipping_id;
|
$sqlUpdate .= " WHERE rowid = ".$obj->shipping_id;
|
||||||
|
|
||||||
$result = $db->query($sqlUpdate);
|
$result = $db->query($sqlUpdate);
|
||||||
|
|||||||
@ -37,6 +37,8 @@ UnlockNewSessions=Remove connection lock
|
|||||||
YourSession=Your session
|
YourSession=Your session
|
||||||
Sessions=Users Sessions
|
Sessions=Users Sessions
|
||||||
WebUserGroup=Web server user/group
|
WebUserGroup=Web server user/group
|
||||||
|
PermissionsOnFilesInWebRoot=Permissions on files in web root directory
|
||||||
|
PermissionsOnFile=Permissions on file %s
|
||||||
NoSessionFound=Your PHP configuration seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) may be protected (for example by OS permissions or by PHP directive open_basedir).
|
NoSessionFound=Your PHP configuration seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) may be protected (for example by OS permissions or by PHP directive open_basedir).
|
||||||
DBStoringCharset=Database charset to store data
|
DBStoringCharset=Database charset to store data
|
||||||
DBSortingCharset=Database charset to sort data
|
DBSortingCharset=Database charset to sort data
|
||||||
@ -71,7 +73,7 @@ DisableJavascriptNote=Note: For test or debug purpose. For optimization for blin
|
|||||||
UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
|
UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
|
||||||
UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
|
UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string.
|
||||||
DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
|
DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
|
||||||
DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
|
DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient.
|
||||||
NumberOfKeyToSearch=Number of characters to trigger search: %s
|
NumberOfKeyToSearch=Number of characters to trigger search: %s
|
||||||
NumberOfBytes=Number of Bytes
|
NumberOfBytes=Number of Bytes
|
||||||
SearchString=Search string
|
SearchString=Search string
|
||||||
@ -80,6 +82,7 @@ AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a
|
|||||||
JavascriptDisabled=JavaScript disabled
|
JavascriptDisabled=JavaScript disabled
|
||||||
UsePreviewTabs=Use preview tabs
|
UsePreviewTabs=Use preview tabs
|
||||||
ShowPreview=Show preview
|
ShowPreview=Show preview
|
||||||
|
ShowHideDetails=Show-Hide details
|
||||||
PreviewNotAvailable=Preview not available
|
PreviewNotAvailable=Preview not available
|
||||||
ThemeCurrentlyActive=Theme currently active
|
ThemeCurrentlyActive=Theme currently active
|
||||||
CurrentTimeZone=TimeZone PHP (server)
|
CurrentTimeZone=TimeZone PHP (server)
|
||||||
@ -271,7 +274,7 @@ NoticePeriod=Notice period
|
|||||||
NewByMonth=New by month
|
NewByMonth=New by month
|
||||||
Emails=Emails
|
Emails=Emails
|
||||||
EMailsSetup=Emails setup
|
EMailsSetup=Emails setup
|
||||||
EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
|
EMailsDesc=This page allows you to set parameters or options for email sending.
|
||||||
EmailSenderProfiles=Emails sender profiles
|
EmailSenderProfiles=Emails sender profiles
|
||||||
EMailsSenderProfileDesc=You can keep this section empty. If you enter some emails here, they will be added to the list of possible senders into the combobox when your write a new email.
|
EMailsSenderProfileDesc=You can keep this section empty. If you enter some emails here, they will be added to the list of possible senders into the combobox when your write a new email.
|
||||||
MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
|
MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
|
||||||
@ -289,6 +292,7 @@ MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
|
|||||||
MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
|
MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
|
||||||
MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
|
MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
|
||||||
MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
|
MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
|
||||||
|
MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED=Authorise les certificats auto-signés
|
||||||
MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
|
MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
|
||||||
MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
|
MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
|
||||||
MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
|
MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
|
||||||
@ -438,9 +442,9 @@ ExtrafieldParamHelpPassword=Leaving this field blank means this value will be st
|
|||||||
ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example: <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list:<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list:<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
|
ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example: <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list:<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list:<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
|
||||||
ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example: <br>1,value1<br>2,value2<br>3,value3<br>...
|
ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example: <br>1,value1<br>2,value2<br>3,value3<br>...
|
||||||
ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example: <br>1,value1<br>2,value2<br>3,value3<br>...
|
ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example: <br>1,value1<br>2,value2<br>3,value3<br>...
|
||||||
ExtrafieldParamHelpsellist=List of values comes from a table<br>Syntax: table_name:label_field:id_field::filter<br>Example: c_typent:libelle:id::filter<br><br>- idfilter is necessarly a primary int key<br>- filter can be a simple test (eg active=1) to display only active value<br>You can also use $ID$ in filter witch is the current id of current object<br>To do a SELECT in filter use $SEL$<br>if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another complementary attribute list:<br>c_typent:libelle:id:options_<i>parent_list_code</i>|parent_column:filter <br><br>In order to have the list depending on another list:<br>c_typent:libelle:id:<i>parent_list_code</i>|parent_column:filter
|
ExtrafieldParamHelpsellist=List of values comes from a table<br>Syntax: table_name:label_field:id_field::filter<br>Example: c_typent:libelle:id::filter<br><br>- id_field is necessarly a primary int key<br>- filter can be a simple test (eg active=1) to display only active value<br>You can also use $ID$ in filter which is the current id of current object<br>To use a SELECT into the filter use the keyword $SEL$ to bypass anti-injection protection.<br>if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another complementary attribute list:<br>c_typent:libelle:id:options_<i>parent_list_code</i>|parent_column:filter <br><br>In order to have the list depending on another list:<br>c_typent:libelle:id:<i>parent_list_code</i>|parent_column:filter
|
||||||
ExtrafieldParamHelpchkbxlst=List of values comes from a table<br>Syntax: table_name:label_field:id_field::filter<br>Example: c_typent:libelle:id::filter<br><br>filter can be a simple test (eg active=1) to display only active value<br>You can also use $ID$ in filter witch is the current id of current object<br>To do a SELECT in filter use $SEL$<br>if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another complementary attribute list:<br>c_typent:libelle:id:options_<i>parent_list_code</i>|parent_column:filter <br><br>In order to have the list depending on another list:<br>c_typent:libelle:id:<i>parent_list_code</i>|parent_column:filter
|
ExtrafieldParamHelpchkbxlst=List of values comes from a table<br>Syntax: table_name:label_field:id_field::filter<br>Example: c_typent:libelle:id::filter<br><br>filter can be a simple test (eg active=1) to display only active value<br>You can also use $ID$ in filter witch is the current id of current object<br>To do a SELECT in filter use $SEL$<br>if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another complementary attribute list:<br>c_typent:libelle:id:options_<i>parent_list_code</i>|parent_column:filter <br><br>In order to have the list depending on another list:<br>c_typent:libelle:id:<i>parent_list_code</i>|parent_column:filter
|
||||||
ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath<br>Syntax: ObjectName:Classpath<br>Examples:<br>Societe:societe/class/societe.class.php<br>Contact:contact/class/contact.class.php
|
ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath<br>Syntax: ObjectName:Classpath
|
||||||
ExtrafieldParamHelpSeparator=Keep empty for a simple separator<br>Set this to 1 for a collapsing separator (open by default for new session, then status is kept for each user session)<br>Set this to 2 for a collapsing separator (collapsed by default for new session, then status is kept fore each user session)
|
ExtrafieldParamHelpSeparator=Keep empty for a simple separator<br>Set this to 1 for a collapsing separator (open by default for new session, then status is kept for each user session)<br>Set this to 2 for a collapsing separator (collapsed by default for new session, then status is kept fore each user session)
|
||||||
LibraryToBuildPDF=Library used for PDF generation
|
LibraryToBuildPDF=Library used for PDF generation
|
||||||
LocalTaxDesc=Some countries may apply two or three taxes on each invoice line. If this is the case, choose the type for the second and third tax and its rate. Possible type are:<br>1: local tax apply on products and services without vat (localtax is calculated on amount without tax)<br>2: local tax apply on products and services including vat (localtax is calculated on amount + main tax)<br>3: local tax apply on products without vat (localtax is calculated on amount without tax)<br>4: local tax apply on products including vat (localtax is calculated on amount + main vat)<br>5: local tax apply on services without vat (localtax is calculated on amount without tax)<br>6: local tax apply on services including vat (localtax is calculated on amount + tax)
|
LocalTaxDesc=Some countries may apply two or three taxes on each invoice line. If this is the case, choose the type for the second and third tax and its rate. Possible type are:<br>1: local tax apply on products and services without vat (localtax is calculated on amount without tax)<br>2: local tax apply on products and services including vat (localtax is calculated on amount + main tax)<br>3: local tax apply on products without vat (localtax is calculated on amount without tax)<br>4: local tax apply on products including vat (localtax is calculated on amount + main vat)<br>5: local tax apply on services without vat (localtax is calculated on amount without tax)<br>6: local tax apply on services including vat (localtax is calculated on amount + tax)
|
||||||
@ -478,9 +482,13 @@ ModuleCompanyCodeCustomerDigitaria=%s followed by the truncated customer name by
|
|||||||
ModuleCompanyCodeSupplierDigitaria=%s followed by the truncated supplier name by the number of characters: %s for the supplier accounting code.
|
ModuleCompanyCodeSupplierDigitaria=%s followed by the truncated supplier name by the number of characters: %s for the supplier accounting 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.
|
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...
|
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) do not allow you to send an email from another server than their own server. Your current setup uses 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 theirs, so few of your sent Emails may not be accepted (be careful also of your email provider's 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.
|
WarningPHPMail=WARNING: The setup to send emails from the application is using the default generic setup. It is often better to setup outgoing emails to use the email server of your Email Service Provider instead of the default setup for several reasons:
|
||||||
|
WarningPHPMailA=- Using the server of the Email Service Provider increases the trustability of your email, so it increases the deliverablity without being flagged as SPAM
|
||||||
|
WarningPHPMailB=- Some Email Service Providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses 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 theirs, so few of your sent Emails may not be accepted for delivery (be careful also of your email provider's sending quota).
|
||||||
|
WarningPHPMailC=- Using the SMTP server of your own Email Service Provider to send emails is also interesting so all emails sent from application will also be saved into your "Sent" directory of your mailbox.
|
||||||
|
WarningPHPMailD=If the method 'PHP Mail' is really the method you would like to use, you can remove this warning by adding the constant MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP to 1 in Home - Setup - Other.
|
||||||
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>.
|
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>.
|
||||||
WarningPHPMailSPF=If the domain name in your sender email address is protected by SPF (ask you email provider), you must include the following IPs in the SPF record of the DNS of your domain: <strong>%s</strong>.
|
WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask you domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: <strong>%s</strong>.
|
||||||
ClickToShowDescription=Click to show description
|
ClickToShowDescription=Click to show description
|
||||||
DependsOn=This module needs the module(s)
|
DependsOn=This module needs the module(s)
|
||||||
RequiredBy=This module is required by module(s)
|
RequiredBy=This module is required by module(s)
|
||||||
@ -551,8 +559,6 @@ Module57Name=Payments by Direct Debit
|
|||||||
Module57Desc=Management of Direct Debit orders. It includes generation of SEPA file for European countries.
|
Module57Desc=Management of Direct Debit orders. It includes generation of SEPA file for European countries.
|
||||||
Module58Name=ClickToDial
|
Module58Name=ClickToDial
|
||||||
Module58Desc=Integration of a ClickToDial system (Asterisk, ...)
|
Module58Desc=Integration of a ClickToDial system (Asterisk, ...)
|
||||||
Module59Name=Bookmark4u
|
|
||||||
Module59Desc=Add function to generate Bookmark4u account from a Dolibarr account
|
|
||||||
Module60Name=Stickers
|
Module60Name=Stickers
|
||||||
Module60Desc=Management of stickers
|
Module60Desc=Management of stickers
|
||||||
Module70Name=Interventions
|
Module70Name=Interventions
|
||||||
@ -656,7 +662,7 @@ Module50200Desc=Offer customers a PayPal online payment page (PayPal account or
|
|||||||
Module50300Name=Stripe
|
Module50300Name=Stripe
|
||||||
Module50300Desc=Offer customers a Stripe online payment page (credit/debit cards). This can be used to allow your customers to make ad-hoc payments or payments related to a specific Dolibarr object (invoice, order etc...)
|
Module50300Desc=Offer customers a Stripe online payment page (credit/debit cards). This can be used to allow your customers to make ad-hoc payments or payments related to a specific Dolibarr object (invoice, order etc...)
|
||||||
Module50400Name=Accounting (double entry)
|
Module50400Name=Accounting (double entry)
|
||||||
Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
|
Module50400Desc=Accounting management (double entries, support General and Subsidiary Ledgers). Export the ledger in several other accounting software formats.
|
||||||
Module54000Name=PrintIPP
|
Module54000Name=PrintIPP
|
||||||
Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
|
Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
|
||||||
Module55000Name=Poll, Survey or Vote
|
Module55000Name=Poll, Survey or Vote
|
||||||
@ -671,7 +677,7 @@ Module63000Name=Resources
|
|||||||
Module63000Desc=Manage resources (printers, cars, rooms, ...) for allocating to events
|
Module63000Desc=Manage resources (printers, cars, rooms, ...) for allocating to events
|
||||||
Permission11=Read customer invoices
|
Permission11=Read customer invoices
|
||||||
Permission12=Create/modify customer invoices
|
Permission12=Create/modify customer invoices
|
||||||
Permission13=Unvalidate customer invoices
|
Permission13=Invalidate customer invoices
|
||||||
Permission14=Validate customer invoices
|
Permission14=Validate customer invoices
|
||||||
Permission15=Send customer invoices by email
|
Permission15=Send customer invoices by email
|
||||||
Permission16=Create payments for customer invoices
|
Permission16=Create payments for customer invoices
|
||||||
@ -688,6 +694,7 @@ Permission32=Create/modify products
|
|||||||
Permission34=Delete products
|
Permission34=Delete products
|
||||||
Permission36=See/manage hidden products
|
Permission36=See/manage hidden products
|
||||||
Permission38=Export products
|
Permission38=Export products
|
||||||
|
Permission39=Ignore minimum price
|
||||||
Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
|
Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
|
||||||
Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
|
Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
|
||||||
Permission44=Delete projects (shared project and projects I'm contact for)
|
Permission44=Delete projects (shared project and projects I'm contact for)
|
||||||
@ -696,6 +703,9 @@ Permission61=Read interventions
|
|||||||
Permission62=Create/modify interventions
|
Permission62=Create/modify interventions
|
||||||
Permission64=Delete interventions
|
Permission64=Delete interventions
|
||||||
Permission67=Export interventions
|
Permission67=Export interventions
|
||||||
|
Permission68=Send interventions by email
|
||||||
|
Permission69=Validate interventions
|
||||||
|
Permission70=Invalidate interventions
|
||||||
Permission71=Read members
|
Permission71=Read members
|
||||||
Permission72=Create/modify members
|
Permission72=Create/modify members
|
||||||
Permission74=Delete members
|
Permission74=Delete members
|
||||||
@ -718,6 +728,7 @@ Permission95=Read reports
|
|||||||
Permission101=Read sendings
|
Permission101=Read sendings
|
||||||
Permission102=Create/modify sendings
|
Permission102=Create/modify sendings
|
||||||
Permission104=Validate sendings
|
Permission104=Validate sendings
|
||||||
|
Permission105=Send sendings by email
|
||||||
Permission106=Export sendings
|
Permission106=Export sendings
|
||||||
Permission109=Delete sendings
|
Permission109=Delete sendings
|
||||||
Permission111=Read financial accounts
|
Permission111=Read financial accounts
|
||||||
@ -825,10 +836,11 @@ Permission402=Create/modify discounts
|
|||||||
Permission403=Validate discounts
|
Permission403=Validate discounts
|
||||||
Permission404=Delete discounts
|
Permission404=Delete discounts
|
||||||
Permission430=Use Debug Bar
|
Permission430=Use Debug Bar
|
||||||
Permission511=Read payments of salaries
|
Permission511=Read payments of salaries (yours and subordinates)
|
||||||
Permission512=Create/modify payments of salaries
|
Permission512=Create/modify payments of salaries
|
||||||
Permission514=Delete payments of salaries
|
Permission514=Delete payments of salaries
|
||||||
Permission517=Export salaries
|
Permission517=Read payments of salaries of everybody
|
||||||
|
Permission519=Export salaries
|
||||||
Permission520=Read Loans
|
Permission520=Read Loans
|
||||||
Permission522=Create/modify loans
|
Permission522=Create/modify loans
|
||||||
Permission524=Delete loans
|
Permission524=Delete loans
|
||||||
@ -843,6 +855,9 @@ Permission561=Read payment orders by credit transfer
|
|||||||
Permission562=Create/modify payment order by credit transfer
|
Permission562=Create/modify payment order by credit transfer
|
||||||
Permission563=Send/Transmit payment order by credit transfer
|
Permission563=Send/Transmit payment order by credit transfer
|
||||||
Permission564=Record Debits/Rejections of credit transfer
|
Permission564=Record Debits/Rejections of credit transfer
|
||||||
|
Permission601=Read stickers
|
||||||
|
Permission602=Create/modify stickers
|
||||||
|
Permission609=Delete stickers
|
||||||
Permission650=Read Bills of Materials
|
Permission650=Read Bills of Materials
|
||||||
Permission651=Create/Update Bills of Materials
|
Permission651=Create/Update Bills of Materials
|
||||||
Permission652=Delete Bills of Materials
|
Permission652=Delete Bills of Materials
|
||||||
@ -884,7 +899,9 @@ Permission1185=Approve purchase orders
|
|||||||
Permission1186=Order purchase orders
|
Permission1186=Order purchase orders
|
||||||
Permission1187=Acknowledge receipt of purchase orders
|
Permission1187=Acknowledge receipt of purchase orders
|
||||||
Permission1188=Delete purchase orders
|
Permission1188=Delete purchase orders
|
||||||
|
Permission1189=Check/Uncheck a purchase order reception
|
||||||
Permission1190=Approve (second approval) purchase orders
|
Permission1190=Approve (second approval) purchase orders
|
||||||
|
Permission1191=Export supplier orders and their attributes
|
||||||
Permission1201=Get result of an export
|
Permission1201=Get result of an export
|
||||||
Permission1202=Create/Modify an export
|
Permission1202=Create/Modify an export
|
||||||
Permission1231=Read vendor invoices
|
Permission1231=Read vendor invoices
|
||||||
@ -898,6 +915,8 @@ Permission1251=Run mass imports of external data into database (data load)
|
|||||||
Permission1321=Export customer invoices, attributes and payments
|
Permission1321=Export customer invoices, attributes and payments
|
||||||
Permission1322=Reopen a paid bill
|
Permission1322=Reopen a paid bill
|
||||||
Permission1421=Export sales orders and attributes
|
Permission1421=Export sales orders and attributes
|
||||||
|
Permission1521=Read documents
|
||||||
|
Permission1522=Delete documents
|
||||||
Permission2401=Read actions (events or tasks) linked to his user account (if owner of event or just assigned to)
|
Permission2401=Read actions (events or tasks) linked to his user account (if owner of event or just assigned to)
|
||||||
Permission2402=Create/modify actions (events or tasks) linked to his user account (if owner of event)
|
Permission2402=Create/modify actions (events or tasks) linked to his user account (if owner of event)
|
||||||
Permission2403=Delete actions (events or tasks) linked to his user account (if owner of event)
|
Permission2403=Delete actions (events or tasks) linked to his user account (if owner of event)
|
||||||
@ -932,9 +951,13 @@ Permission23001=Read Scheduled job
|
|||||||
Permission23002=Create/update Scheduled job
|
Permission23002=Create/update Scheduled job
|
||||||
Permission23003=Delete Scheduled job
|
Permission23003=Delete Scheduled job
|
||||||
Permission23004=Execute Scheduled job
|
Permission23004=Execute Scheduled job
|
||||||
Permission50101=Use Point of Sale
|
Permission50101=Use Point of Sale (SimplePOS)
|
||||||
|
Permission50151=Use Point of Sale (TakePOS)
|
||||||
Permission50201=Read transactions
|
Permission50201=Read transactions
|
||||||
Permission50202=Import transactions
|
Permission50202=Import transactions
|
||||||
|
Permission50330=Read objects of Zapier
|
||||||
|
Permission50331=Create/Update objects of Zapier
|
||||||
|
Permission50332=Delete objects of Zapier
|
||||||
Permission50401=Bind products and invoices with accounting accounts
|
Permission50401=Bind products and invoices with accounting accounts
|
||||||
Permission50411=Read operations in ledger
|
Permission50411=Read operations in ledger
|
||||||
Permission50412=Write/Edit operations in ledger
|
Permission50412=Write/Edit operations in ledger
|
||||||
@ -958,6 +981,17 @@ Permission63001=Read resources
|
|||||||
Permission63002=Create/modify resources
|
Permission63002=Create/modify resources
|
||||||
Permission63003=Delete resources
|
Permission63003=Delete resources
|
||||||
Permission63004=Link resources to agenda events
|
Permission63004=Link resources to agenda events
|
||||||
|
Permission64001=Allow direct printing
|
||||||
|
Permission67000=Allow printing of receipts
|
||||||
|
Permission68001=Read intracomm report
|
||||||
|
Permission68002=Create/modify intracomm report
|
||||||
|
Permission68004=Delete intracomm report
|
||||||
|
Permission941601=Read receipts
|
||||||
|
Permission941602=Create and modify receipts
|
||||||
|
Permission941603=Validate receipts
|
||||||
|
Permission941604=Send receipts by email
|
||||||
|
Permission941605=Export receipts
|
||||||
|
Permission941606=Delete receipts
|
||||||
DictionaryCompanyType=Third-party types
|
DictionaryCompanyType=Third-party types
|
||||||
DictionaryCompanyJuridicalType=Third-party legal entities
|
DictionaryCompanyJuridicalType=Third-party legal entities
|
||||||
DictionaryProspectLevel=Prospect potential level for companies
|
DictionaryProspectLevel=Prospect potential level for companies
|
||||||
@ -997,6 +1031,8 @@ DictionaryHolidayTypes=Types of leave
|
|||||||
DictionaryOpportunityStatus=Lead status for project/lead
|
DictionaryOpportunityStatus=Lead status for project/lead
|
||||||
DictionaryExpenseTaxCat=Expense report - Transportation categories
|
DictionaryExpenseTaxCat=Expense report - Transportation categories
|
||||||
DictionaryExpenseTaxRange=Expense report - Range by transportation category
|
DictionaryExpenseTaxRange=Expense report - Range by transportation category
|
||||||
|
DictionaryTransportMode=Intracomm report - Transport mode
|
||||||
|
TypeOfUnit=Type of unit
|
||||||
SetupSaved=Setup saved
|
SetupSaved=Setup saved
|
||||||
SetupNotSaved=Setup not saved
|
SetupNotSaved=Setup not saved
|
||||||
BackToModuleList=Back to Module list
|
BackToModuleList=Back to Module list
|
||||||
@ -1047,6 +1083,7 @@ LabelUsedByDefault=Label used by default if no translation can be found for code
|
|||||||
LabelOnDocuments=Label on documents
|
LabelOnDocuments=Label on documents
|
||||||
LabelOrTranslationKey=Label or translation key
|
LabelOrTranslationKey=Label or translation key
|
||||||
ValueOfConstantKey=Value of a configuration constant
|
ValueOfConstantKey=Value of a configuration constant
|
||||||
|
ConstantIsOn=Option %s is on
|
||||||
NbOfDays=No. of days
|
NbOfDays=No. of days
|
||||||
AtEndOfMonth=At end of month
|
AtEndOfMonth=At end of month
|
||||||
CurrentNext=Current/Next
|
CurrentNext=Current/Next
|
||||||
@ -1145,6 +1182,7 @@ InfoWebServer=About Web Server
|
|||||||
InfoDatabase=About Database
|
InfoDatabase=About Database
|
||||||
InfoPHP=About PHP
|
InfoPHP=About PHP
|
||||||
InfoPerf=About Performances
|
InfoPerf=About Performances
|
||||||
|
InfoSecurity=About Security
|
||||||
BrowserName=Browser name
|
BrowserName=Browser name
|
||||||
BrowserOS=Browser OS
|
BrowserOS=Browser OS
|
||||||
ListOfSecurityEvents=List of Dolibarr security events
|
ListOfSecurityEvents=List of Dolibarr security events
|
||||||
@ -1194,7 +1232,8 @@ RestoreDesc=To restore a Dolibarr backup, two steps are required.
|
|||||||
RestoreDesc2=Restore the backup file (zip file for example) of the "documents" directory to a new Dolibarr installation or into this current documents directory (<b>%s</b>).
|
RestoreDesc2=Restore the backup file (zip file for example) of the "documents" directory to a new Dolibarr installation or into this current documents directory (<b>%s</b>).
|
||||||
RestoreDesc3=Restore the database structure and data from a backup dump file into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once the restore is complete, you must use a login/password, that existed from the backup time/installation to connect again.<br>To restore a backup database into this current installation, you can follow this assistant.
|
RestoreDesc3=Restore the database structure and data from a backup dump file into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once the restore is complete, you must use a login/password, that existed from the backup time/installation to connect again.<br>To restore a backup database into this current installation, you can follow this assistant.
|
||||||
RestoreMySQL=MySQL import
|
RestoreMySQL=MySQL import
|
||||||
ForcedToByAModule= This rule is forced to <b>%s</b> by an activated module
|
ForcedToByAModule=This rule is forced to <b>%s</b> by an activated module
|
||||||
|
ValueIsForcedBySystem=This value is forced by the system. You can't change it.
|
||||||
PreviousDumpFiles=Existing backup files
|
PreviousDumpFiles=Existing backup files
|
||||||
PreviousArchiveFiles=Existing archive files
|
PreviousArchiveFiles=Existing archive files
|
||||||
WeekStartOnDay=First day of the week
|
WeekStartOnDay=First day of the week
|
||||||
@ -1282,7 +1321,7 @@ GetBarCode=Get barcode
|
|||||||
NumberingModules=Numbering models
|
NumberingModules=Numbering models
|
||||||
DocumentModules=Document models
|
DocumentModules=Document models
|
||||||
##### Module password generation
|
##### Module password generation
|
||||||
PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase.
|
PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters in lowercase.
|
||||||
PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
|
PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
|
||||||
PasswordGenerationPerso=Return a password according to your personally defined configuration.
|
PasswordGenerationPerso=Return a password according to your personally defined configuration.
|
||||||
SetupPerso=According to your configuration
|
SetupPerso=According to your configuration
|
||||||
@ -1523,7 +1562,9 @@ LDAPDescValues=Example values are designed for <b>OpenLDAP</b> with following lo
|
|||||||
ForANonAnonymousAccess=For an authenticated access (for a write access for example)
|
ForANonAnonymousAccess=For an authenticated access (for a write access for example)
|
||||||
PerfDolibarr=Performance setup/optimizing report
|
PerfDolibarr=Performance setup/optimizing report
|
||||||
YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
|
YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
|
||||||
NotInstalled=Not installed, so your server is not slowed down by this.
|
NotInstalled=Not installed.
|
||||||
|
NotSlowedDownByThis=Not slowed down by this.
|
||||||
|
NotRiskOfLeakWithThis=Not risk of leak with this.
|
||||||
ApplicativeCache=Applicative cache
|
ApplicativeCache=Applicative cache
|
||||||
MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server.
|
MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.<br>More information here <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN</a>.<br>Note that a lot of web hosting provider does not provide such cache server.
|
||||||
MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete.
|
MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete.
|
||||||
@ -1571,9 +1612,9 @@ SyslogLevel=Level
|
|||||||
SyslogFilename=File name and path
|
SyslogFilename=File name and path
|
||||||
YouCanUseDOL_DATA_ROOT=You can use DOL_DATA_ROOT/dolibarr.log for a log file in Dolibarr "documents" directory. You can set a different path to store this file.
|
YouCanUseDOL_DATA_ROOT=You can use DOL_DATA_ROOT/dolibarr.log for a log file in Dolibarr "documents" directory. You can set a different path to store this file.
|
||||||
ErrorUnknownSyslogConstant=Constant %s is not a known Syslog constant
|
ErrorUnknownSyslogConstant=Constant %s is not a known Syslog constant
|
||||||
OnlyWindowsLOG_USER=Windows only supports LOG_USER
|
OnlyWindowsLOG_USER=On Windows, only the LOG_USER facility will be supported
|
||||||
CompressSyslogs=Compression and backup of debug log files (generated by module Log for debug)
|
CompressSyslogs=Compression and backup of debug log files (generated by module Log for debug)
|
||||||
SyslogFileNumberOfSaves=Log backups
|
SyslogFileNumberOfSaves=Number of backup logs to keep
|
||||||
ConfigureCleaningCronjobToSetFrequencyOfSaves=Configure cleaning scheduled job to set log backup frequency
|
ConfigureCleaningCronjobToSetFrequencyOfSaves=Configure cleaning scheduled job to set log backup frequency
|
||||||
##### Donations #####
|
##### Donations #####
|
||||||
DonationsSetup=Donation module setup
|
DonationsSetup=Donation module setup
|
||||||
@ -1639,11 +1680,11 @@ StockSetup=Stock module setup
|
|||||||
IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
|
IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
|
||||||
##### Menu #####
|
##### Menu #####
|
||||||
MenuDeleted=Menu deleted
|
MenuDeleted=Menu deleted
|
||||||
|
Menu=Menu
|
||||||
Menus=Menus
|
Menus=Menus
|
||||||
TreeMenuPersonalized=Personalized menus
|
TreeMenuPersonalized=Personalized menus
|
||||||
NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry
|
NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry
|
||||||
NewMenu=New menu
|
NewMenu=New menu
|
||||||
Menu=Selection of menu
|
|
||||||
MenuHandler=Menu handler
|
MenuHandler=Menu handler
|
||||||
MenuModule=Source module
|
MenuModule=Source module
|
||||||
HideUnauthorizedMenu= Hide unauthorized menus (gray)
|
HideUnauthorizedMenu= Hide unauthorized menus (gray)
|
||||||
@ -1794,7 +1835,6 @@ TypePaymentDesc=0:Customer payment type, 1:Vendor payment type, 2:Both customers
|
|||||||
IncludePath=Include path (defined into variable %s)
|
IncludePath=Include path (defined into variable %s)
|
||||||
ExpenseReportsSetup=Setup of module Expense Reports
|
ExpenseReportsSetup=Setup of module Expense Reports
|
||||||
TemplatePDFExpenseReports=Document templates to generate expense report document
|
TemplatePDFExpenseReports=Document templates to generate expense report document
|
||||||
ExpenseReportsIkSetup=Setup of module Expense Reports - Milles index
|
|
||||||
ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules
|
ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules
|
||||||
ExpenseReportNumberingModules=Expense reports numbering module
|
ExpenseReportNumberingModules=Expense reports numbering module
|
||||||
NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only.
|
NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only.
|
||||||
@ -1864,7 +1904,7 @@ MailToSendReception=Receptions
|
|||||||
MailToThirdparty=Third parties
|
MailToThirdparty=Third parties
|
||||||
MailToMember=Members
|
MailToMember=Members
|
||||||
MailToUser=Users
|
MailToUser=Users
|
||||||
MailToProject=Projects page
|
MailToProject=Projects
|
||||||
MailToTicket=Tickets
|
MailToTicket=Tickets
|
||||||
ByDefaultInList=Show by default on list view
|
ByDefaultInList=Show by default on list view
|
||||||
YouUseLastStableVersion=You use the latest stable version
|
YouUseLastStableVersion=You use the latest stable version
|
||||||
@ -1960,6 +2000,8 @@ LoadThirdPartyFromName=Load third party searching on %s (load only)
|
|||||||
LoadThirdPartyFromNameOrCreate=Load third party searching on %s (create if not found)
|
LoadThirdPartyFromNameOrCreate=Load third party searching on %s (create if not found)
|
||||||
WithDolTrackingID=Message from a conversation initiated by a first email sent from Dolibarr
|
WithDolTrackingID=Message from a conversation initiated by a first email sent from Dolibarr
|
||||||
WithoutDolTrackingID=Message from a conversation initiated by a first email NOT sent from Dolibarr
|
WithoutDolTrackingID=Message from a conversation initiated by a first email NOT sent from Dolibarr
|
||||||
|
WithDolTrackingIDInMsgId=Message sent from Dolibarr
|
||||||
|
WithoutDolTrackingIDInMsgId=Message NOT sent from Dolibarr
|
||||||
CreateCandidature=Create candidature
|
CreateCandidature=Create candidature
|
||||||
FormatZip=Zip
|
FormatZip=Zip
|
||||||
MainMenuCode=Menu entry code (mainmenu)
|
MainMenuCode=Menu entry code (mainmenu)
|
||||||
@ -1974,7 +2016,7 @@ DisabledResourceLinkContact=Disable feature to link a resource to contacts
|
|||||||
EnableResourceUsedInEventCheck=Enable feature to check if a resource is in use in an event
|
EnableResourceUsedInEventCheck=Enable feature to check if a resource is in use in an event
|
||||||
ConfirmUnactivation=Confirm module reset
|
ConfirmUnactivation=Confirm module reset
|
||||||
OnMobileOnly=On small screen (smartphone) only
|
OnMobileOnly=On small screen (smartphone) only
|
||||||
DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
|
DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be "Prospect" or "Customer", but can't be both)
|
||||||
MAIN_OPTIMIZEFORTEXTBROWSER=Simplify interface for blind person
|
MAIN_OPTIMIZEFORTEXTBROWSER=Simplify interface for blind person
|
||||||
MAIN_OPTIMIZEFORTEXTBROWSERDesc=Enable this option if you are a blind person, or if you use the application from a text browser like Lynx or Links.
|
MAIN_OPTIMIZEFORTEXTBROWSERDesc=Enable this option if you are a blind person, or if you use the application from a text browser like Lynx or Links.
|
||||||
MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person
|
MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person
|
||||||
@ -1996,13 +2038,15 @@ UseDebugBar=Use the debug bar
|
|||||||
DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console
|
DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console
|
||||||
WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output
|
WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output
|
||||||
ModuleActivated=Module %s is activated and slows the interface
|
ModuleActivated=Module %s is activated and slows the interface
|
||||||
|
IfYouAreOnAProductionSetThis=If you are on a production environment, you should set this property to %s.
|
||||||
|
AntivirusEnabledOnUpload=Antivirus enabled on uploaded files
|
||||||
EXPORTS_SHARE_MODELS=Export models are share with everybody
|
EXPORTS_SHARE_MODELS=Export models are share with everybody
|
||||||
ExportSetup=Setup of module Export
|
ExportSetup=Setup of module Export
|
||||||
ImportSetup=Setup of module Import
|
ImportSetup=Setup of module Import
|
||||||
InstanceUniqueID=Unique ID of the instance
|
InstanceUniqueID=Unique ID of the instance
|
||||||
SmallerThan=Smaller than
|
SmallerThan=Smaller than
|
||||||
LargerThan=Larger than
|
LargerThan=Larger than
|
||||||
IfTrackingIDFoundEventWillBeLinked=Note that If a tracking ID of an object is found into incoming email, or if the email is an answer of an email aready collected and linked to an object, the event will be automatically linked to the known related object too.
|
IfTrackingIDFoundEventWillBeLinked=Note that If a tracking ID of an object is found into email, or if the email is an answer of an email aready collected and linked to an object, the created event will be automatically linked to the known related object.
|
||||||
WithGMailYouCanCreateADedicatedPassword=With a GMail account, if you enabled the 2 steps validation, it is recommanded to create a dedicated second password for the application instead of using your own account passsword from https://myaccount.google.com/.
|
WithGMailYouCanCreateADedicatedPassword=With a GMail account, if you enabled the 2 steps validation, it is recommanded to create a dedicated second password for the application instead of using your own account passsword from https://myaccount.google.com/.
|
||||||
EmailCollectorTargetDir=It may be a desired behaviour to move the email into another tag/directory when it was processed successfully. Just set name of directory here to use this feature (Do NOT use special characters in name). Note that you must also use a read/write login account.
|
EmailCollectorTargetDir=It may be a desired behaviour to move the email into another tag/directory when it was processed successfully. Just set name of directory here to use this feature (Do NOT use special characters in name). Note that you must also use a read/write login account.
|
||||||
EmailCollectorLoadThirdPartyHelp=You can use this action to use the email content to find and load an existing thirdparty in your database. The found (or created) thirdparty will be used for following actions that need it. In the parameter field you can use for example 'EXTRACT:BODY:Name:\\s([^\\s]*)' if you want to extract the name of the thirdparty from a string 'Name: name to find' found into the body.
|
EmailCollectorLoadThirdPartyHelp=You can use this action to use the email content to find and load an existing thirdparty in your database. The found (or created) thirdparty will be used for following actions that need it. In the parameter field you can use for example 'EXTRACT:BODY:Name:\\s([^\\s]*)' if you want to extract the name of the thirdparty from a string 'Name: name to find' found into the body.
|
||||||
@ -2029,4 +2073,10 @@ MeasuringScaleDesc=The scale is the number of places you have to move the decima
|
|||||||
TemplateAdded=Template added
|
TemplateAdded=Template added
|
||||||
TemplateUpdated=Template updated
|
TemplateUpdated=Template updated
|
||||||
TemplateDeleted=Template deleted
|
TemplateDeleted=Template deleted
|
||||||
MailToSendEventPush=Template for event reminder emails
|
MailToSendEventPush=Event reminder email
|
||||||
|
SwitchThisForABetterSecurity=Switching this value to %s is recommended for more security
|
||||||
|
DictionaryProductNature= Nature of product
|
||||||
|
CountryIfSpecificToOneCountry=Country (if specific to a given country)
|
||||||
|
YouMayFindSecurityAdviceHere=You may find security advisory here
|
||||||
|
ModuleActivatedMayExposeInformation=This module may expose sensitive data. If you don't need it, disable it.
|
||||||
|
ModuleActivatedDoNotUseInProduction=A module designed for the development has been enabled. Do not enable it on a production environment.
|
||||||
|
|||||||
@ -23,19 +23,7 @@ ECMSearchByKeywords=Search by keywords
|
|||||||
ECMSearchByEntity=Search by object
|
ECMSearchByEntity=Search by object
|
||||||
ECMSectionOfDocuments=Directories of documents
|
ECMSectionOfDocuments=Directories of documents
|
||||||
ECMTypeAuto=Automatic
|
ECMTypeAuto=Automatic
|
||||||
ECMDocsBySocialContributions=Documents linked to social or fiscal taxes
|
ECMDocsBy=Documents linked to %s
|
||||||
ECMDocsByThirdParties=Documents linked to third parties
|
|
||||||
ECMDocsByProposals=Documents linked to proposals
|
|
||||||
ECMDocsByOrders=Documents linked to customers orders
|
|
||||||
ECMDocsByContracts=Documents linked to contracts
|
|
||||||
ECMDocsByInvoices=Documents linked to customers invoices
|
|
||||||
ECMDocsByProducts=Documents linked to products
|
|
||||||
ECMDocsByProjects=Documents linked to projects
|
|
||||||
ECMDocsByUsers=Documents linked to users
|
|
||||||
ECMDocsByInterventions=Documents linked to interventions
|
|
||||||
ECMDocsByExpenseReports=Documents linked to expense reports
|
|
||||||
ECMDocsByHolidays=Documents linked to holidays
|
|
||||||
ECMDocsBySupplierProposals=Documents linked to vendor proposals
|
|
||||||
ECMNoDirectoryYet=No directory created
|
ECMNoDirectoryYet=No directory created
|
||||||
ShowECMSection=Show directory
|
ShowECMSection=Show directory
|
||||||
DeleteSection=Remove directory
|
DeleteSection=Remove directory
|
||||||
@ -50,3 +38,6 @@ ReSyncListOfDir=Resync list of directories
|
|||||||
HashOfFileContent=Hash of file content
|
HashOfFileContent=Hash of file content
|
||||||
NoDirectoriesFound=No directories found
|
NoDirectoriesFound=No directories found
|
||||||
FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
|
FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
|
||||||
|
ExtraFieldsEcmFiles=Extrafields Ecm Files
|
||||||
|
ExtraFieldsEcmDirectories=Extrafields Ecm Directories
|
||||||
|
ECMSetup=ECM Setup
|
||||||
|
|||||||
@ -8,15 +8,9 @@ ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permis
|
|||||||
ConfFileIsWritable=Configuration file <b>%s</b> is writable.
|
ConfFileIsWritable=Configuration file <b>%s</b> is writable.
|
||||||
ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
|
ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
|
||||||
ConfFileReload=Reloading parameters from configuration file.
|
ConfFileReload=Reloading parameters from configuration file.
|
||||||
PHPSupportSessions=This PHP supports sessions.
|
|
||||||
PHPSupportPOSTGETOk=This PHP supports variables POST and GET.
|
PHPSupportPOSTGETOk=This PHP supports variables POST and GET.
|
||||||
PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
|
PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
|
||||||
PHPSupportGD=This PHP supports GD graphical functions.
|
PHPSupportSessions=This PHP supports sessions.
|
||||||
PHPSupportCurl=This PHP supports Curl.
|
|
||||||
PHPSupportCalendar=This PHP supports calendars extensions.
|
|
||||||
PHPSupportUTF8=This PHP supports UTF8 functions.
|
|
||||||
PHPSupportIntl=This PHP supports Intl functions.
|
|
||||||
PHPSupportxDebug=This PHP supports extended debug functions.
|
|
||||||
PHPSupport=This PHP supports %s functions.
|
PHPSupport=This PHP supports %s functions.
|
||||||
PHPMemoryOK=Your PHP max session memory is set to <b>%s</b>. This should be enough.
|
PHPMemoryOK=Your PHP max session memory is set to <b>%s</b>. This should be enough.
|
||||||
PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
|
PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
|
||||||
|
|||||||
40
htdocs/langs/am_ET/intracommreport.lang
Normal file
40
htdocs/langs/am_ET/intracommreport.lang
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
Module68000Name = Intracomm report
|
||||||
|
Module68000Desc = Intracomm report management (Support for French DEB/DES format)
|
||||||
|
IntracommReportSetup = Intracommreport module setup
|
||||||
|
IntracommReportAbout = About intracommreport
|
||||||
|
|
||||||
|
# Setup
|
||||||
|
INTRACOMMREPORT_NUM_AGREMENT=Numéro d'agrément (délivré par le CISD de rattachement)
|
||||||
|
INTRACOMMREPORT_TYPE_ACTEUR=Type d'acteur
|
||||||
|
INTRACOMMREPORT_ROLE_ACTEUR=Rôle joué par l'acteur
|
||||||
|
INTRACOMMREPORT_NIV_OBLIGATION_INTRODUCTION=Niveau d'obligation sur les introductions
|
||||||
|
INTRACOMMREPORT_NIV_OBLIGATION_EXPEDITION=Niveau d'obligation sur les expéditions
|
||||||
|
INTRACOMMREPORT_CATEG_FRAISDEPORT=Catégorie de services de type "Frais de port"
|
||||||
|
|
||||||
|
INTRACOMMREPORT_NUM_DECLARATION=Numéro de déclarant
|
||||||
|
|
||||||
|
# Menu
|
||||||
|
MenuIntracommReport=Intracomm report
|
||||||
|
MenuIntracommReportNew=New declaration
|
||||||
|
MenuIntracommReportList=List
|
||||||
|
|
||||||
|
# View
|
||||||
|
NewDeclaration=New declaration
|
||||||
|
Declaration=Declaration
|
||||||
|
AnalysisPeriod=Analysis period
|
||||||
|
TypeOfDeclaration=Type of declaration
|
||||||
|
DEB=Goods exchange declaration (DEB)
|
||||||
|
DES=Services exchange declaration (DES)
|
||||||
|
|
||||||
|
# Export page
|
||||||
|
IntracommReportTitle=Preparation of an XML file in ProDouane format
|
||||||
|
|
||||||
|
# List
|
||||||
|
IntracommReportList=List of generated declarations
|
||||||
|
IntracommReportNumber=Numero of declaration
|
||||||
|
IntracommReportPeriod=Period of nalysis
|
||||||
|
IntracommReportTypeDeclaration=Type of declaration
|
||||||
|
IntracommReportDownload=download XML file
|
||||||
|
|
||||||
|
# Invoice
|
||||||
|
IntracommReportTransportMode=Transport mode
|
||||||
@ -19,14 +19,12 @@ MembersCards=Members business cards
|
|||||||
MembersList=List of members
|
MembersList=List of members
|
||||||
MembersListToValid=List of draft members (to be validated)
|
MembersListToValid=List of draft members (to be validated)
|
||||||
MembersListValid=List of valid members
|
MembersListValid=List of valid members
|
||||||
MembersListUpToDate=List of valid members with up to date subscription
|
MembersListUpToDate=List of valid members with up-to-date subscription
|
||||||
MembersListNotUpToDate=List of valid members with subscription out of date
|
MembersListNotUpToDate=List of valid members with out-of-date subscription
|
||||||
MembersListResiliated=List of terminated members
|
MembersListResiliated=List of terminated members
|
||||||
MembersListQualified=List of qualified members
|
MembersListQualified=List of qualified members
|
||||||
MenuMembersToValidate=Draft members
|
MenuMembersToValidate=Draft members
|
||||||
MenuMembersValidated=Validated members
|
MenuMembersValidated=Validated members
|
||||||
MenuMembersUpToDate=Up to date members
|
|
||||||
MenuMembersNotUpToDate=Out of date members
|
|
||||||
MenuMembersResiliated=Terminated members
|
MenuMembersResiliated=Terminated members
|
||||||
MembersWithSubscriptionToReceive=Members with subscription to receive
|
MembersWithSubscriptionToReceive=Members with subscription to receive
|
||||||
MembersWithSubscriptionToReceiveShort=Subscription to receive
|
MembersWithSubscriptionToReceiveShort=Subscription to receive
|
||||||
@ -34,6 +32,7 @@ DateSubscription=Subscription date
|
|||||||
DateEndSubscription=Subscription end date
|
DateEndSubscription=Subscription end date
|
||||||
EndSubscription=End subscription
|
EndSubscription=End subscription
|
||||||
SubscriptionId=Subscription id
|
SubscriptionId=Subscription id
|
||||||
|
WithoutSubscription=Without subscription
|
||||||
MemberId=Member id
|
MemberId=Member id
|
||||||
NewMember=New member
|
NewMember=New member
|
||||||
MemberType=Member type
|
MemberType=Member type
|
||||||
@ -81,7 +80,7 @@ DeleteType=Delete
|
|||||||
VoteAllowed=Vote allowed
|
VoteAllowed=Vote allowed
|
||||||
Physical=Physical
|
Physical=Physical
|
||||||
Moral=Moral
|
Moral=Moral
|
||||||
MorPhy=Nature
|
MorAndPhy=Moral and Physical
|
||||||
Reenable=Reenable
|
Reenable=Reenable
|
||||||
ResiliateMember=Terminate a member
|
ResiliateMember=Terminate a member
|
||||||
ConfirmResiliateMember=Are you sure you want to terminate this member?
|
ConfirmResiliateMember=Are you sure you want to terminate this member?
|
||||||
@ -117,6 +116,7 @@ SendingEmailOnMemberValidation=Sending email on new member validation
|
|||||||
SendingEmailOnNewSubscription=Sending email on new subscription
|
SendingEmailOnNewSubscription=Sending email on new subscription
|
||||||
SendingReminderForExpiredSubscription=Sending reminder for expired subscriptions
|
SendingReminderForExpiredSubscription=Sending reminder for expired subscriptions
|
||||||
SendingEmailOnCancelation=Sending email on cancelation
|
SendingEmailOnCancelation=Sending email on cancelation
|
||||||
|
SendingReminderActionComm=Sending reminder for agenda event
|
||||||
# Topic of email templates
|
# Topic of email templates
|
||||||
YourMembershipRequestWasReceived=Your membership was received.
|
YourMembershipRequestWasReceived=Your membership was received.
|
||||||
YourMembershipWasValidated=Your membership was validated
|
YourMembershipWasValidated=Your membership was validated
|
||||||
@ -167,6 +167,7 @@ MembersStatisticsByState=Members statistics by state/province
|
|||||||
MembersStatisticsByTown=Members statistics by town
|
MembersStatisticsByTown=Members statistics by town
|
||||||
MembersStatisticsByRegion=Members statistics by region
|
MembersStatisticsByRegion=Members statistics by region
|
||||||
NbOfMembers=Number of members
|
NbOfMembers=Number of members
|
||||||
|
NbOfActiveMembers=Number of current active members
|
||||||
NoValidatedMemberYet=No validated members found
|
NoValidatedMemberYet=No validated members found
|
||||||
MembersByCountryDesc=This screen show you statistics on members by countries. Graphic depends however on Google online graph service and is available only if an internet connection is is working.
|
MembersByCountryDesc=This screen show you statistics on members by countries. Graphic depends however on Google online graph service and is available only if an internet connection is is working.
|
||||||
MembersByStateDesc=This screen show you statistics on members by state/provinces/canton.
|
MembersByStateDesc=This screen show you statistics on members by state/provinces/canton.
|
||||||
@ -176,6 +177,7 @@ MenuMembersStats=Statistics
|
|||||||
LastMemberDate=Latest member date
|
LastMemberDate=Latest member date
|
||||||
LatestSubscriptionDate=Latest subscription date
|
LatestSubscriptionDate=Latest subscription date
|
||||||
MemberNature=Nature of member
|
MemberNature=Nature of member
|
||||||
|
MembersNature=Nature of members
|
||||||
Public=Information are public
|
Public=Information are public
|
||||||
NewMemberbyWeb=New member added. Awaiting approval
|
NewMemberbyWeb=New member added. Awaiting approval
|
||||||
NewMemberForm=New member form
|
NewMemberForm=New member form
|
||||||
|
|||||||
@ -108,20 +108,20 @@ FillWithLastServiceDates=Fill with last service line dates
|
|||||||
MultiPricesAbility=Multiple price segments per product/service (each customer is in one price segment)
|
MultiPricesAbility=Multiple price segments per product/service (each customer is in one price segment)
|
||||||
MultiPricesNumPrices=Number of prices
|
MultiPricesNumPrices=Number of prices
|
||||||
DefaultPriceType=Base of prices per default (with versus without tax) when adding new sale prices
|
DefaultPriceType=Base of prices per default (with versus without tax) when adding new sale prices
|
||||||
AssociatedProductsAbility=Activate virtual products (kits)
|
AssociatedProductsAbility=Activate kits (virtual products)
|
||||||
AssociatedProducts=Virtual products
|
AssociatedProducts=Kits
|
||||||
AssociatedProductsNumber=Number of products composing this virtual product
|
AssociatedProductsNumber=Number of products composing this kit
|
||||||
ParentProductsNumber=Number of parent packaging product
|
ParentProductsNumber=Number of parent packaging product
|
||||||
ParentProducts=Parent products
|
ParentProducts=Parent products
|
||||||
IfZeroItIsNotAVirtualProduct=If 0, this product is not a virtual product
|
IfZeroItIsNotAVirtualProduct=If 0, this product is not a kit
|
||||||
IfZeroItIsNotUsedByVirtualProduct=If 0, this product is not used by any virtual product
|
IfZeroItIsNotUsedByVirtualProduct=If 0, this product is not used by any kit
|
||||||
KeywordFilter=Keyword filter
|
KeywordFilter=Keyword filter
|
||||||
CategoryFilter=Category filter
|
CategoryFilter=Category filter
|
||||||
ProductToAddSearch=Search product to add
|
ProductToAddSearch=Search product to add
|
||||||
NoMatchFound=No match found
|
NoMatchFound=No match found
|
||||||
ListOfProductsServices=List of products/services
|
ListOfProductsServices=List of products/services
|
||||||
ProductAssociationList=List of products/services that are component(s) of this virtual product/kit
|
ProductAssociationList=List of products/services that are component(s) of this kit
|
||||||
ProductParentList=List of virtual products/services with this product as a component
|
ProductParentList=List of kits with this product as a component
|
||||||
ErrorAssociationIsFatherOfThis=One of selected product is parent with current product
|
ErrorAssociationIsFatherOfThis=One of selected product is parent with current product
|
||||||
DeleteProduct=Delete a product/service
|
DeleteProduct=Delete a product/service
|
||||||
ConfirmDeleteProduct=Are you sure you want to delete this product/service?
|
ConfirmDeleteProduct=Are you sure you want to delete this product/service?
|
||||||
@ -287,6 +287,7 @@ PriceExpressionEditorHelp5=Available global values:
|
|||||||
PriceMode=Price mode
|
PriceMode=Price mode
|
||||||
PriceNumeric=Number
|
PriceNumeric=Number
|
||||||
DefaultPrice=Default price
|
DefaultPrice=Default price
|
||||||
|
DefaultPriceLog=Log of previous default prices
|
||||||
ComposedProductIncDecStock=Increase/Decrease stock on parent change
|
ComposedProductIncDecStock=Increase/Decrease stock on parent change
|
||||||
ComposedProduct=Child products
|
ComposedProduct=Child products
|
||||||
MinSupplierPrice=Minimum buying price
|
MinSupplierPrice=Minimum buying price
|
||||||
@ -339,6 +340,7 @@ UseProductFournDesc=Add a feature to define the descriptions of products defined
|
|||||||
ProductSupplierDescription=Vendor description for the product
|
ProductSupplierDescription=Vendor description for the product
|
||||||
UseProductSupplierPackaging=Use packaging on supplier prices (recalculate quantities according to packaging set on supplier price when adding/updating line in supplier documents)
|
UseProductSupplierPackaging=Use packaging on supplier prices (recalculate quantities according to packaging set on supplier price when adding/updating line in supplier documents)
|
||||||
PackagingForThisProduct=Packaging
|
PackagingForThisProduct=Packaging
|
||||||
|
PackagingForThisProductDesc=On supplier order, you will automaticly order this quantity (or a multiple of this quantity). Cannot be less than minimum buying quantity
|
||||||
QtyRecalculatedWithPackaging=The quantity of the line were recalculated according to supplier packaging
|
QtyRecalculatedWithPackaging=The quantity of the line were recalculated according to supplier packaging
|
||||||
|
|
||||||
#Attributes
|
#Attributes
|
||||||
|
|||||||
@ -45,26 +45,31 @@ DateExpected=Expected date
|
|||||||
FutureManager=Future manager
|
FutureManager=Future manager
|
||||||
ResponsibleOfRecruitement=Responsible of recruitment
|
ResponsibleOfRecruitement=Responsible of recruitment
|
||||||
IfJobIsLocatedAtAPartner=If job is located at a partner place
|
IfJobIsLocatedAtAPartner=If job is located at a partner place
|
||||||
PositionToBeFilled=Job offer to be filled
|
PositionToBeFilled=Job position
|
||||||
PositionsToBeFilled=Job offers to be filled
|
PositionsToBeFilled=Job positions
|
||||||
ListOfPositionsToBeFilled=List of job offers to be filled
|
ListOfPositionsToBeFilled=List of job positions
|
||||||
NewPositionToBeFilled=New job offers to be filled
|
NewPositionToBeFilled=New job positions
|
||||||
|
|
||||||
JobOfferToBeFilled=Job offer to be filled
|
JobOfferToBeFilled=Job position to be filled
|
||||||
ThisIsInformationOnJobPosition=Information of the job position to be filled
|
ThisIsInformationOnJobPosition=Information of the job position to be filled
|
||||||
ContactForRecruitment=Contact for recruitment
|
ContactForRecruitment=Contact for recruitment
|
||||||
EmailRecruiter=Email recruiter
|
EmailRecruiter=Email recruiter
|
||||||
ToUseAGenericEmail=To use a generic email. If not defined, the email of the responsible of recruitment will be used
|
ToUseAGenericEmail=To use a generic email. If not defined, the email of the responsible of recruitment will be used
|
||||||
NewCandidature=New candidature
|
NewCandidature=New application
|
||||||
ListOfCandidatures=List of candidatures
|
ListOfCandidatures=List of applications
|
||||||
RequestedRemuneration=Requested remuneration
|
RequestedRemuneration=Requested remuneration
|
||||||
ProposedRemuneration=Proposed remuneration
|
ProposedRemuneration=Proposed remuneration
|
||||||
ContractProposed=Contract proposed
|
ContractProposed=Contract proposed
|
||||||
ContractSigned=Contract signed
|
ContractSigned=Contract signed
|
||||||
RecruitmentCandidature=Candidature
|
ContractRefused=Contract refused
|
||||||
|
RecruitmentCandidature=Application
|
||||||
JobPositions=Job positions
|
JobPositions=Job positions
|
||||||
RecruitmentCandidatures=Candidatures
|
RecruitmentCandidatures=Applications
|
||||||
InterviewToDo=Interview to do
|
InterviewToDo=Interview to do
|
||||||
AnswerCandidature=Candidature answer
|
AnswerCandidature=Application answer
|
||||||
YourCandidature=Your candidature
|
YourCandidature=Your application
|
||||||
YourCandidatureAnswerMessage=Thanks you for your candidature.<br>...
|
YourCandidatureAnswerMessage=Thanks you for your application.<br>...
|
||||||
|
JobClosedTextCandidateFound=The job position is closed. The position has been filled.
|
||||||
|
JobClosedTextCanceled=The job position is closed.
|
||||||
|
ExtrafieldsJobPosition=Complementary attributes (job positions)
|
||||||
|
ExtrafieldsCandidatures=Complementary attributes (job applications)
|
||||||
|
|||||||
@ -34,7 +34,7 @@ StockMovementForId=Movement ID %d
|
|||||||
ListMouvementStockProject=List of stock movements associated to project
|
ListMouvementStockProject=List of stock movements associated to project
|
||||||
StocksArea=Warehouses area
|
StocksArea=Warehouses area
|
||||||
AllWarehouses=All warehouses
|
AllWarehouses=All warehouses
|
||||||
IncludeEmptyDesiredStock=Include also undefined desired stock
|
IncludeEmptyDesiredStock=Include also negative stock with undefined desired stock
|
||||||
IncludeAlsoDraftOrders=Include also draft orders
|
IncludeAlsoDraftOrders=Include also draft orders
|
||||||
Location=Location
|
Location=Location
|
||||||
LocationSummary=Short name location
|
LocationSummary=Short name location
|
||||||
@ -122,8 +122,9 @@ DesiredStockDesc=This stock amount will be the value used to fill the stock by r
|
|||||||
StockToBuy=To order
|
StockToBuy=To order
|
||||||
Replenishment=Replenishment
|
Replenishment=Replenishment
|
||||||
ReplenishmentOrders=Replenishment orders
|
ReplenishmentOrders=Replenishment orders
|
||||||
VirtualDiffersFromPhysical=According to increase/decrease stock options, physical stock and virtual stock (physical + current orders) may differ
|
VirtualDiffersFromPhysical=According to increase/decrease stock options, physical stock and virtual stock (physical stock + open orders) may differ
|
||||||
UseVirtualStockByDefault=Use virtual stock by default, instead of physical stock, for replenishment feature
|
UseRealStockByDefault=Use real stock, instead of virtual stock, for replenishment feature
|
||||||
|
ReplenishmentCalculation=Amount to order will be (desired quantity - real stock) instead of (desired quantity - virtual stock)
|
||||||
UseVirtualStock=Use virtual stock
|
UseVirtualStock=Use virtual stock
|
||||||
UsePhysicalStock=Use physical stock
|
UsePhysicalStock=Use physical stock
|
||||||
CurentSelectionMode=Current selection mode
|
CurentSelectionMode=Current selection mode
|
||||||
@ -198,8 +199,6 @@ inventoryWarningProductAlreadyExists=This product is already into list
|
|||||||
SelectCategory=Category filter
|
SelectCategory=Category filter
|
||||||
SelectFournisseur=Vendor filter
|
SelectFournisseur=Vendor filter
|
||||||
inventoryOnDate=Inventory
|
inventoryOnDate=Inventory
|
||||||
INVENTORY_DISABLE_VIRTUAL=Virtual product (kit): do not decrement stock of a child product
|
|
||||||
INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found
|
|
||||||
INVENTORY_USE_INVENTORY_DATE_FOR_DATE_OF_MVT=Stock movements will have the date of inventory (instead of the date of inventory validation)
|
INVENTORY_USE_INVENTORY_DATE_FOR_DATE_OF_MVT=Stock movements will have the date of inventory (instead of the date of inventory validation)
|
||||||
inventoryChangePMPPermission=Allow to change PMP value for a product
|
inventoryChangePMPPermission=Allow to change PMP value for a product
|
||||||
ColumnNewPMP=New unit PMP
|
ColumnNewPMP=New unit PMP
|
||||||
@ -238,5 +237,6 @@ StockAtDatePastDesc=You can view here the stock (real stock) at a given date in
|
|||||||
StockAtDateFutureDesc=You can view here the stock (virtual stock) at a given date in future
|
StockAtDateFutureDesc=You can view here the stock (virtual stock) at a given date in future
|
||||||
CurrentStock=Current stock
|
CurrentStock=Current stock
|
||||||
InventoryRealQtyHelp=Set value to 0 to reset qty<br>Keep field empty, or remove line, to keep unchanged
|
InventoryRealQtyHelp=Set value to 0 to reset qty<br>Keep field empty, or remove line, to keep unchanged
|
||||||
|
UpdateByScaning=Update by scaning
|
||||||
UpdateByScaningProductBarcode=Update by scan (product barcode)
|
UpdateByScaningProductBarcode=Update by scan (product barcode)
|
||||||
UpdateByScaningLot=Update by scan (lot|Serial barcode)
|
UpdateByScaningLot=Update by scan (lot|serial barcode)
|
||||||
|
|||||||
@ -38,6 +38,7 @@ MenuOrdersSupplierToBill=Purchase orders to invoice
|
|||||||
NbDaysToDelivery=Delivery delay (days)
|
NbDaysToDelivery=Delivery delay (days)
|
||||||
DescNbDaysToDelivery=The longest delivery delay of the products from this order
|
DescNbDaysToDelivery=The longest delivery delay of the products from this order
|
||||||
SupplierReputation=Vendor reputation
|
SupplierReputation=Vendor reputation
|
||||||
|
ReferenceReputation=Reference reputation
|
||||||
DoNotOrderThisProductToThisSupplier=Do not order
|
DoNotOrderThisProductToThisSupplier=Do not order
|
||||||
NotTheGoodQualitySupplier=Low quality
|
NotTheGoodQualitySupplier=Low quality
|
||||||
ReputationForThisProduct=Reputation
|
ReputationForThisProduct=Reputation
|
||||||
|
|||||||
@ -42,5 +42,4 @@ NotTheGoodQualitySupplier=جودة منخفضة
|
|||||||
ReputationForThisProduct=سمعة
|
ReputationForThisProduct=سمعة
|
||||||
BuyerName=اسم المشتري
|
BuyerName=اسم المشتري
|
||||||
AllProductServicePrices=أسعار جميع المنتجات / الخدمات
|
AllProductServicePrices=أسعار جميع المنتجات / الخدمات
|
||||||
AllProductReferencesOfSupplier=جميع مراجع المنتج / الخدمة للمورد
|
|
||||||
BuyingPriceNumShort=أسعار المورد
|
BuyingPriceNumShort=أسعار المورد
|
||||||
|
|||||||
@ -37,6 +37,8 @@ UnlockNewSessions=إزالة قفل الإتصال
|
|||||||
YourSession=الجلسة الخاصة بك
|
YourSession=الجلسة الخاصة بك
|
||||||
Sessions=Users Sessions
|
Sessions=Users Sessions
|
||||||
WebUserGroup=خادم الويب المستخدم / المجموعة
|
WebUserGroup=خادم الويب المستخدم / المجموعة
|
||||||
|
PermissionsOnFilesInWebRoot=Permissions on files in web root directory
|
||||||
|
PermissionsOnFile=Permissions on file %s
|
||||||
NoSessionFound=Your PHP configuration seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) may be protected (for example by OS permissions or by PHP directive open_basedir).
|
NoSessionFound=Your PHP configuration seems to not allow listing of active sessions. The directory used to save sessions (<b>%s</b>) may be protected (for example by OS permissions or by PHP directive open_basedir).
|
||||||
DBStoringCharset=الترميز الخاص بقاعدة البيانات لتخزين المعلومات
|
DBStoringCharset=الترميز الخاص بقاعدة البيانات لتخزين المعلومات
|
||||||
DBSortingCharset=الترميز الخاص بقاعدة البيانات لتخزين المعلومات
|
DBSortingCharset=الترميز الخاص بقاعدة البيانات لتخزين المعلومات
|
||||||
@ -71,7 +73,7 @@ DisableJavascriptNote=Note: For test or debug purpose. For optimization for blin
|
|||||||
UseSearchToSelectCompanyTooltip=أيضا إذا كان لديك عدد كبير من الأحزاب الثالثة (> 100 000)، يمكنك زيادة السرعة عن طريق وضع COMPANY_DONOTSEARCH_ANYWHERE ثابت إلى 1 في الإعداد، <أخرى. وبعد ذلك البحث أن يقتصر على بداية السلسلة.
|
UseSearchToSelectCompanyTooltip=أيضا إذا كان لديك عدد كبير من الأحزاب الثالثة (> 100 000)، يمكنك زيادة السرعة عن طريق وضع COMPANY_DONOTSEARCH_ANYWHERE ثابت إلى 1 في الإعداد، <أخرى. وبعد ذلك البحث أن يقتصر على بداية السلسلة.
|
||||||
UseSearchToSelectContactTooltip=أيضا إذا كان لديك عدد كبير من الأحزاب الثالثة (> 100 000)، يمكنك زيادة السرعة عن طريق وضع CONTACT_DONOTSEARCH_ANYWHERE ثابت إلى 1 في الإعداد، <أخرى. وبعد ذلك البحث أن يقتصر على بداية السلسلة.
|
UseSearchToSelectContactTooltip=أيضا إذا كان لديك عدد كبير من الأحزاب الثالثة (> 100 000)، يمكنك زيادة السرعة عن طريق وضع CONTACT_DONOTSEARCH_ANYWHERE ثابت إلى 1 في الإعداد، <أخرى. وبعد ذلك البحث أن يقتصر على بداية السلسلة.
|
||||||
DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
|
DelaiedFullListToSelectCompany=Wait until a key is pressed before loading content of Third Parties combo list.<br>This may increase performance if you have a large number of third parties, but it is less convenient.
|
||||||
DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient)
|
DelaiedFullListToSelectContact=Wait until a key is pressed before loading content of Contact combo list.<br>This may increase performance if you have a large number of contacts, but it is less convenient.
|
||||||
NumberOfKeyToSearch=Number of characters to trigger search: %s
|
NumberOfKeyToSearch=Number of characters to trigger search: %s
|
||||||
NumberOfBytes=Number of Bytes
|
NumberOfBytes=Number of Bytes
|
||||||
SearchString=Search string
|
SearchString=Search string
|
||||||
@ -80,6 +82,7 @@ AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a
|
|||||||
JavascriptDisabled=الجافا سكربت معطل
|
JavascriptDisabled=الجافا سكربت معطل
|
||||||
UsePreviewTabs=إستخدم زر المعاينة
|
UsePreviewTabs=إستخدم زر المعاينة
|
||||||
ShowPreview=آظهر المعاينة
|
ShowPreview=آظهر المعاينة
|
||||||
|
ShowHideDetails=Show-Hide details
|
||||||
PreviewNotAvailable=المعاينة غير متاحة
|
PreviewNotAvailable=المعاينة غير متاحة
|
||||||
ThemeCurrentlyActive=الثيم النشط حالياً
|
ThemeCurrentlyActive=الثيم النشط حالياً
|
||||||
CurrentTimeZone=حسب توقيت خادم البي إتش بي
|
CurrentTimeZone=حسب توقيت خادم البي إتش بي
|
||||||
@ -271,7 +274,7 @@ NoticePeriod=فترة إشعار
|
|||||||
NewByMonth=New by month
|
NewByMonth=New by month
|
||||||
Emails=Emails
|
Emails=Emails
|
||||||
EMailsSetup=Emails setup
|
EMailsSetup=Emails setup
|
||||||
EMailsDesc=This page allows you to override your default PHP parameters for email sending. In most cases on Unix/Linux OS, the PHP setup is correct and these parameters are unnecessary.
|
EMailsDesc=This page allows you to set parameters or options for email sending.
|
||||||
EmailSenderProfiles=Emails sender profiles
|
EmailSenderProfiles=Emails sender profiles
|
||||||
EMailsSenderProfileDesc=You can keep this section empty. If you enter some emails here, they will be added to the list of possible senders into the combobox when your write a new email.
|
EMailsSenderProfileDesc=You can keep this section empty. If you enter some emails here, they will be added to the list of possible senders into the combobox when your write a new email.
|
||||||
MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
|
MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (default value in php.ini: <b>%s</b>)
|
||||||
@ -289,6 +292,7 @@ MAIN_MAIL_SMTPS_ID=SMTP ID (if sending server requires authentication)
|
|||||||
MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
|
MAIN_MAIL_SMTPS_PW=SMTP Password (if sending server requires authentication)
|
||||||
MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
|
MAIN_MAIL_EMAIL_TLS=Use TLS (SSL) encryption
|
||||||
MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
|
MAIN_MAIL_EMAIL_STARTTLS=Use TLS (STARTTLS) encryption
|
||||||
|
MAIN_MAIL_EMAIL_SMTP_ALLOW_SELF_SIGNED=Authorise les certificats auto-signés
|
||||||
MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
|
MAIN_MAIL_EMAIL_DKIM_ENABLED=Use DKIM to generate email signature
|
||||||
MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
|
MAIN_MAIL_EMAIL_DKIM_DOMAIN=Email Domain for use with dkim
|
||||||
MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
|
MAIN_MAIL_EMAIL_DKIM_SELECTOR=Name of dkim selector
|
||||||
@ -438,9 +442,9 @@ ExtrafieldParamHelpPassword=Leaving this field blank means this value will be st
|
|||||||
ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example: <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list:<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list:<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
|
ExtrafieldParamHelpselect=List of values must be lines with format key,value (where key can't be '0')<br><br> for example: <br>1,value1<br>2,value2<br>code3,value3<br>...<br><br>In order to have the list depending on another complementary attribute list:<br>1,value1|options_<i>parent_list_code</i>:parent_key<br>2,value2|options_<i>parent_list_code</i>:parent_key <br><br>In order to have the list depending on another list:<br>1,value1|<i>parent_list_code</i>:parent_key<br>2,value2|<i>parent_list_code</i>:parent_key
|
||||||
ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example: <br>1,value1<br>2,value2<br>3,value3<br>...
|
ExtrafieldParamHelpcheckbox=List of values must be lines with format key,value (where key can't be '0')<br><br> for example: <br>1,value1<br>2,value2<br>3,value3<br>...
|
||||||
ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example: <br>1,value1<br>2,value2<br>3,value3<br>...
|
ExtrafieldParamHelpradio=List of values must be lines with format key,value (where key can't be '0')<br><br> for example: <br>1,value1<br>2,value2<br>3,value3<br>...
|
||||||
ExtrafieldParamHelpsellist=List of values comes from a table<br>Syntax: table_name:label_field:id_field::filter<br>Example: c_typent:libelle:id::filter<br><br>- idfilter is necessarly a primary int key<br>- filter can be a simple test (eg active=1) to display only active value<br>You can also use $ID$ in filter witch is the current id of current object<br>To do a SELECT in filter use $SEL$<br>if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another complementary attribute list:<br>c_typent:libelle:id:options_<i>parent_list_code</i>|parent_column:filter <br><br>In order to have the list depending on another list:<br>c_typent:libelle:id:<i>parent_list_code</i>|parent_column:filter
|
ExtrafieldParamHelpsellist=List of values comes from a table<br>Syntax: table_name:label_field:id_field::filter<br>Example: c_typent:libelle:id::filter<br><br>- id_field is necessarly a primary int key<br>- filter can be a simple test (eg active=1) to display only active value<br>You can also use $ID$ in filter which is the current id of current object<br>To use a SELECT into the filter use the keyword $SEL$ to bypass anti-injection protection.<br>if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another complementary attribute list:<br>c_typent:libelle:id:options_<i>parent_list_code</i>|parent_column:filter <br><br>In order to have the list depending on another list:<br>c_typent:libelle:id:<i>parent_list_code</i>|parent_column:filter
|
||||||
ExtrafieldParamHelpchkbxlst=List of values comes from a table<br>Syntax: table_name:label_field:id_field::filter<br>Example: c_typent:libelle:id::filter<br><br>filter can be a simple test (eg active=1) to display only active value<br>You can also use $ID$ in filter witch is the current id of current object<br>To do a SELECT in filter use $SEL$<br>if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another complementary attribute list:<br>c_typent:libelle:id:options_<i>parent_list_code</i>|parent_column:filter <br><br>In order to have the list depending on another list:<br>c_typent:libelle:id:<i>parent_list_code</i>|parent_column:filter
|
ExtrafieldParamHelpchkbxlst=List of values comes from a table<br>Syntax: table_name:label_field:id_field::filter<br>Example: c_typent:libelle:id::filter<br><br>filter can be a simple test (eg active=1) to display only active value<br>You can also use $ID$ in filter witch is the current id of current object<br>To do a SELECT in filter use $SEL$<br>if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)<br><br>In order to have the list depending on another complementary attribute list:<br>c_typent:libelle:id:options_<i>parent_list_code</i>|parent_column:filter <br><br>In order to have the list depending on another list:<br>c_typent:libelle:id:<i>parent_list_code</i>|parent_column:filter
|
||||||
ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath<br>Syntax: ObjectName:Classpath<br>Examples:<br>Societe:societe/class/societe.class.php<br>Contact:contact/class/contact.class.php
|
ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath<br>Syntax: ObjectName:Classpath
|
||||||
ExtrafieldParamHelpSeparator=Keep empty for a simple separator<br>Set this to 1 for a collapsing separator (open by default for new session, then status is kept for each user session)<br>Set this to 2 for a collapsing separator (collapsed by default for new session, then status is kept fore each user session)
|
ExtrafieldParamHelpSeparator=Keep empty for a simple separator<br>Set this to 1 for a collapsing separator (open by default for new session, then status is kept for each user session)<br>Set this to 2 for a collapsing separator (collapsed by default for new session, then status is kept fore each user session)
|
||||||
LibraryToBuildPDF=Library used for PDF generation
|
LibraryToBuildPDF=Library used for PDF generation
|
||||||
LocalTaxDesc=Some countries may apply two or three taxes on each invoice line. If this is the case, choose the type for the second and third tax and its rate. Possible type are:<br>1: local tax apply on products and services without vat (localtax is calculated on amount without tax)<br>2: local tax apply on products and services including vat (localtax is calculated on amount + main tax)<br>3: local tax apply on products without vat (localtax is calculated on amount without tax)<br>4: local tax apply on products including vat (localtax is calculated on amount + main vat)<br>5: local tax apply on services without vat (localtax is calculated on amount without tax)<br>6: local tax apply on services including vat (localtax is calculated on amount + tax)
|
LocalTaxDesc=Some countries may apply two or three taxes on each invoice line. If this is the case, choose the type for the second and third tax and its rate. Possible type are:<br>1: local tax apply on products and services without vat (localtax is calculated on amount without tax)<br>2: local tax apply on products and services including vat (localtax is calculated on amount + main tax)<br>3: local tax apply on products without vat (localtax is calculated on amount without tax)<br>4: local tax apply on products including vat (localtax is calculated on amount + main vat)<br>5: local tax apply on services without vat (localtax is calculated on amount without tax)<br>6: local tax apply on services including vat (localtax is calculated on amount + tax)
|
||||||
@ -478,9 +482,13 @@ ModuleCompanyCodeCustomerDigitaria=%s followed by the truncated customer name by
|
|||||||
ModuleCompanyCodeSupplierDigitaria=%s followed by the truncated supplier name by the number of characters: %s for the supplier accounting code.
|
ModuleCompanyCodeSupplierDigitaria=%s followed by the truncated supplier name by the number of characters: %s for the supplier accounting 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.
|
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...
|
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) do not allow you to send an email from another server than their own server. Your current setup uses 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 theirs, so few of your sent Emails may not be accepted (be careful also of your email provider's 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.
|
WarningPHPMail=WARNING: The setup to send emails from the application is using the default generic setup. It is often better to setup outgoing emails to use the email server of your Email Service Provider instead of the default setup for several reasons:
|
||||||
|
WarningPHPMailA=- Using the server of the Email Service Provider increases the trustability of your email, so it increases the deliverablity without being flagged as SPAM
|
||||||
|
WarningPHPMailB=- Some Email Service Providers (like Yahoo) do not allow you to send an email from another server than their own server. Your current setup uses 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 theirs, so few of your sent Emails may not be accepted for delivery (be careful also of your email provider's sending quota).
|
||||||
|
WarningPHPMailC=- Using the SMTP server of your own Email Service Provider to send emails is also interesting so all emails sent from application will also be saved into your "Sent" directory of your mailbox.
|
||||||
|
WarningPHPMailD=If the method 'PHP Mail' is really the method you would like to use, you can remove this warning by adding the constant MAIN_HIDE_WARNING_TO_ENCOURAGE_SMTP_SETUP to 1 in Home - Setup - Other.
|
||||||
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>.
|
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>.
|
||||||
WarningPHPMailSPF=If the domain name in your sender email address is protected by SPF (ask you email provider), you must include the following IPs in the SPF record of the DNS of your domain: <strong>%s</strong>.
|
WarningPHPMailSPF=If the domain name in your sender email address is protected by a SPF record (ask you domain name registar), you must add the following IPs in the SPF record of the DNS of your domain: <strong>%s</strong>.
|
||||||
ClickToShowDescription=Click to show description
|
ClickToShowDescription=Click to show description
|
||||||
DependsOn=This module needs the module(s)
|
DependsOn=This module needs the module(s)
|
||||||
RequiredBy=This module is required by module(s)
|
RequiredBy=This module is required by module(s)
|
||||||
@ -551,8 +559,6 @@ Module57Name=Payments by Direct Debit
|
|||||||
Module57Desc=Management of Direct Debit orders. It includes generation of SEPA file for European countries.
|
Module57Desc=Management of Direct Debit orders. It includes generation of SEPA file for European countries.
|
||||||
Module58Name=انقر للاتصال
|
Module58Name=انقر للاتصال
|
||||||
Module58Desc=ClickToDial التكامل
|
Module58Desc=ClickToDial التكامل
|
||||||
Module59Name=Bookmark4u
|
|
||||||
Module59Desc=إضافة مهمة لتوليد Bookmark4u الحساب من حساب Dolibarr
|
|
||||||
Module60Name=Stickers
|
Module60Name=Stickers
|
||||||
Module60Desc=Management of stickers
|
Module60Desc=Management of stickers
|
||||||
Module70Name=المداخلات
|
Module70Name=المداخلات
|
||||||
@ -656,7 +662,7 @@ Module50200Desc=Offer customers a PayPal online payment page (PayPal account or
|
|||||||
Module50300Name=Stripe
|
Module50300Name=Stripe
|
||||||
Module50300Desc=Offer customers a Stripe online payment page (credit/debit cards). This can be used to allow your customers to make ad-hoc payments or payments related to a specific Dolibarr object (invoice, order etc...)
|
Module50300Desc=Offer customers a Stripe online payment page (credit/debit cards). This can be used to allow your customers to make ad-hoc payments or payments related to a specific Dolibarr object (invoice, order etc...)
|
||||||
Module50400Name=Accounting (double entry)
|
Module50400Name=Accounting (double entry)
|
||||||
Module50400Desc=Accounting management (double entries, support general and auxiliary ledgers). Export the ledger in several other accounting software formats.
|
Module50400Desc=Accounting management (double entries, support General and Subsidiary Ledgers). Export the ledger in several other accounting software formats.
|
||||||
Module54000Name=PrintIPP
|
Module54000Name=PrintIPP
|
||||||
Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
|
Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installed on server).
|
||||||
Module55000Name=استطلاع للرأي، أو مسح التصويت
|
Module55000Name=استطلاع للرأي، أو مسح التصويت
|
||||||
@ -671,7 +677,7 @@ Module63000Name=مصادر
|
|||||||
Module63000Desc=Manage resources (printers, cars, rooms, ...) for allocating to events
|
Module63000Desc=Manage resources (printers, cars, rooms, ...) for allocating to events
|
||||||
Permission11=قراءة الفواتير
|
Permission11=قراءة الفواتير
|
||||||
Permission12=إنشاء / تعديل فواتير العملاء
|
Permission12=إنشاء / تعديل فواتير العملاء
|
||||||
Permission13=تعديل الفواتير
|
Permission13=Invalidate customer invoices
|
||||||
Permission14=التحقق من صحة الفواتير
|
Permission14=التحقق من صحة الفواتير
|
||||||
Permission15=ارسال الفواتير عن طريق البريد الإلكتروني
|
Permission15=ارسال الفواتير عن طريق البريد الإلكتروني
|
||||||
Permission16=إنشاء مدفوعات الفواتير العملاء
|
Permission16=إنشاء مدفوعات الفواتير العملاء
|
||||||
@ -688,6 +694,7 @@ Permission32=إنشاء / تعديل المنتجات
|
|||||||
Permission34=حذف المنتجات
|
Permission34=حذف المنتجات
|
||||||
Permission36=انظر / إدارة المنتجات المخفية
|
Permission36=انظر / إدارة المنتجات المخفية
|
||||||
Permission38=منتجات التصدير
|
Permission38=منتجات التصدير
|
||||||
|
Permission39=Ignore minimum price
|
||||||
Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
|
Permission41=Read projects and tasks (shared project and projects I'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet)
|
||||||
Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
|
Permission42=Create/modify projects (shared project and projects I'm contact for). Can also create tasks and assign users to project and tasks
|
||||||
Permission44=Delete projects (shared project and projects I'm contact for)
|
Permission44=Delete projects (shared project and projects I'm contact for)
|
||||||
@ -696,6 +703,9 @@ Permission61=قراءة التدخلات
|
|||||||
Permission62=إنشاء / تعديل التدخلات
|
Permission62=إنشاء / تعديل التدخلات
|
||||||
Permission64=حذف التدخلات
|
Permission64=حذف التدخلات
|
||||||
Permission67=تصدير التدخلات
|
Permission67=تصدير التدخلات
|
||||||
|
Permission68=Send interventions by email
|
||||||
|
Permission69=Validate interventions
|
||||||
|
Permission70=Invalidate interventions
|
||||||
Permission71=قراءة الأعضاء
|
Permission71=قراءة الأعضاء
|
||||||
Permission72=إنشاء / تعديل أعضاء
|
Permission72=إنشاء / تعديل أعضاء
|
||||||
Permission74=حذف أعضاء
|
Permission74=حذف أعضاء
|
||||||
@ -718,6 +728,7 @@ Permission95=قراءة تقارير
|
|||||||
Permission101=قراءة الإرسال
|
Permission101=قراءة الإرسال
|
||||||
Permission102=إنشاء / تعديل الإرسال
|
Permission102=إنشاء / تعديل الإرسال
|
||||||
Permission104=صحة الإرسال
|
Permission104=صحة الإرسال
|
||||||
|
Permission105=Send sendings by email
|
||||||
Permission106=sendings التصدير
|
Permission106=sendings التصدير
|
||||||
Permission109=حذف الإرسال
|
Permission109=حذف الإرسال
|
||||||
Permission111=قراءة الحسابات المالية
|
Permission111=قراءة الحسابات المالية
|
||||||
@ -825,10 +836,11 @@ Permission402=إنشاء / تعديل الخصومات
|
|||||||
Permission403=تحقق من الخصومات
|
Permission403=تحقق من الخصومات
|
||||||
Permission404=حذف خصومات
|
Permission404=حذف خصومات
|
||||||
Permission430=Use Debug Bar
|
Permission430=Use Debug Bar
|
||||||
Permission511=Read payments of salaries
|
Permission511=Read payments of salaries (yours and subordinates)
|
||||||
Permission512=Create/modify payments of salaries
|
Permission512=Create/modify payments of salaries
|
||||||
Permission514=Delete payments of salaries
|
Permission514=Delete payments of salaries
|
||||||
Permission517=رواتب التصدير
|
Permission517=Read payments of salaries of everybody
|
||||||
|
Permission519=رواتب التصدير
|
||||||
Permission520=قراءة القروض
|
Permission520=قراءة القروض
|
||||||
Permission522=إنشاء / تعديل القروض
|
Permission522=إنشاء / تعديل القروض
|
||||||
Permission524=حذف القروض
|
Permission524=حذف القروض
|
||||||
@ -843,6 +855,9 @@ Permission561=Read payment orders by credit transfer
|
|||||||
Permission562=Create/modify payment order by credit transfer
|
Permission562=Create/modify payment order by credit transfer
|
||||||
Permission563=Send/Transmit payment order by credit transfer
|
Permission563=Send/Transmit payment order by credit transfer
|
||||||
Permission564=Record Debits/Rejections of credit transfer
|
Permission564=Record Debits/Rejections of credit transfer
|
||||||
|
Permission601=Read stickers
|
||||||
|
Permission602=Create/modify stickers
|
||||||
|
Permission609=Delete stickers
|
||||||
Permission650=Read Bills of Materials
|
Permission650=Read Bills of Materials
|
||||||
Permission651=Create/Update Bills of Materials
|
Permission651=Create/Update Bills of Materials
|
||||||
Permission652=Delete Bills of Materials
|
Permission652=Delete Bills of Materials
|
||||||
@ -884,7 +899,9 @@ Permission1185=Approve purchase orders
|
|||||||
Permission1186=Order purchase orders
|
Permission1186=Order purchase orders
|
||||||
Permission1187=Acknowledge receipt of purchase orders
|
Permission1187=Acknowledge receipt of purchase orders
|
||||||
Permission1188=Delete purchase orders
|
Permission1188=Delete purchase orders
|
||||||
|
Permission1189=Check/Uncheck a purchase order reception
|
||||||
Permission1190=Approve (second approval) purchase orders
|
Permission1190=Approve (second approval) purchase orders
|
||||||
|
Permission1191=Export supplier orders and their attributes
|
||||||
Permission1201=ونتيجة للحصول على التصدير
|
Permission1201=ونتيجة للحصول على التصدير
|
||||||
Permission1202=إنشاء / تعديل للتصدير
|
Permission1202=إنشاء / تعديل للتصدير
|
||||||
Permission1231=Read vendor invoices
|
Permission1231=Read vendor invoices
|
||||||
@ -898,6 +915,8 @@ Permission1251=ادارة الدمار الواردات الخارجية الب
|
|||||||
Permission1321=تصدير العملاء والفواتير والمدفوعات والصفات
|
Permission1321=تصدير العملاء والفواتير والمدفوعات والصفات
|
||||||
Permission1322=Reopen a paid bill
|
Permission1322=Reopen a paid bill
|
||||||
Permission1421=Export sales orders and attributes
|
Permission1421=Export sales orders and attributes
|
||||||
|
Permission1521=Read documents
|
||||||
|
Permission1522=Delete documents
|
||||||
Permission2401=Read actions (events or tasks) linked to his user account (if owner of event or just assigned to)
|
Permission2401=Read actions (events or tasks) linked to his user account (if owner of event or just assigned to)
|
||||||
Permission2402=Create/modify actions (events or tasks) linked to his user account (if owner of event)
|
Permission2402=Create/modify actions (events or tasks) linked to his user account (if owner of event)
|
||||||
Permission2403=Delete actions (events or tasks) linked to his user account (if owner of event)
|
Permission2403=Delete actions (events or tasks) linked to his user account (if owner of event)
|
||||||
@ -932,9 +951,13 @@ Permission23001=قراءة مهمة مجدولة
|
|||||||
Permission23002=إنشاء / تحديث المجدولة وظيفة
|
Permission23002=إنشاء / تحديث المجدولة وظيفة
|
||||||
Permission23003=حذف مهمة مجدولة
|
Permission23003=حذف مهمة مجدولة
|
||||||
Permission23004=تنفيذ مهمة مجدولة
|
Permission23004=تنفيذ مهمة مجدولة
|
||||||
Permission50101=Use Point of Sale
|
Permission50101=Use Point of Sale (SimplePOS)
|
||||||
|
Permission50151=Use Point of Sale (TakePOS)
|
||||||
Permission50201=قراءة المعاملات
|
Permission50201=قراءة المعاملات
|
||||||
Permission50202=استيراد المعاملات
|
Permission50202=استيراد المعاملات
|
||||||
|
Permission50330=Read objects of Zapier
|
||||||
|
Permission50331=Create/Update objects of Zapier
|
||||||
|
Permission50332=Delete objects of Zapier
|
||||||
Permission50401=Bind products and invoices with accounting accounts
|
Permission50401=Bind products and invoices with accounting accounts
|
||||||
Permission50411=Read operations in ledger
|
Permission50411=Read operations in ledger
|
||||||
Permission50412=Write/Edit operations in ledger
|
Permission50412=Write/Edit operations in ledger
|
||||||
@ -958,6 +981,17 @@ Permission63001=Read resources
|
|||||||
Permission63002=Create/modify resources
|
Permission63002=Create/modify resources
|
||||||
Permission63003=Delete resources
|
Permission63003=Delete resources
|
||||||
Permission63004=Link resources to agenda events
|
Permission63004=Link resources to agenda events
|
||||||
|
Permission64001=Allow direct printing
|
||||||
|
Permission67000=Allow printing of receipts
|
||||||
|
Permission68001=Read intracomm report
|
||||||
|
Permission68002=Create/modify intracomm report
|
||||||
|
Permission68004=Delete intracomm report
|
||||||
|
Permission941601=Read receipts
|
||||||
|
Permission941602=Create and modify receipts
|
||||||
|
Permission941603=Validate receipts
|
||||||
|
Permission941604=Send receipts by email
|
||||||
|
Permission941605=Export receipts
|
||||||
|
Permission941606=Delete receipts
|
||||||
DictionaryCompanyType=Third-party types
|
DictionaryCompanyType=Third-party types
|
||||||
DictionaryCompanyJuridicalType=Third-party legal entities
|
DictionaryCompanyJuridicalType=Third-party legal entities
|
||||||
DictionaryProspectLevel=Prospect potential level for companies
|
DictionaryProspectLevel=Prospect potential level for companies
|
||||||
@ -997,6 +1031,8 @@ DictionaryHolidayTypes=Types of leave
|
|||||||
DictionaryOpportunityStatus=Lead status for project/lead
|
DictionaryOpportunityStatus=Lead status for project/lead
|
||||||
DictionaryExpenseTaxCat=Expense report - Transportation categories
|
DictionaryExpenseTaxCat=Expense report - Transportation categories
|
||||||
DictionaryExpenseTaxRange=Expense report - Range by transportation category
|
DictionaryExpenseTaxRange=Expense report - Range by transportation category
|
||||||
|
DictionaryTransportMode=Intracomm report - Transport mode
|
||||||
|
TypeOfUnit=Type of unit
|
||||||
SetupSaved=الإعداد المحفوظة
|
SetupSaved=الإعداد المحفوظة
|
||||||
SetupNotSaved=Setup not saved
|
SetupNotSaved=Setup not saved
|
||||||
BackToModuleList=Back to Module list
|
BackToModuleList=Back to Module list
|
||||||
@ -1047,6 +1083,7 @@ LabelUsedByDefault=العلامة التي يستخدمها التقصير إذ
|
|||||||
LabelOnDocuments=علامة على وثائق
|
LabelOnDocuments=علامة على وثائق
|
||||||
LabelOrTranslationKey=Label or translation key
|
LabelOrTranslationKey=Label or translation key
|
||||||
ValueOfConstantKey=Value of a configuration constant
|
ValueOfConstantKey=Value of a configuration constant
|
||||||
|
ConstantIsOn=Option %s is on
|
||||||
NbOfDays=No. of days
|
NbOfDays=No. of days
|
||||||
AtEndOfMonth=في نهاية الشهر
|
AtEndOfMonth=في نهاية الشهر
|
||||||
CurrentNext=Current/Next
|
CurrentNext=Current/Next
|
||||||
@ -1145,6 +1182,7 @@ InfoWebServer=About Web Server
|
|||||||
InfoDatabase=About Database
|
InfoDatabase=About Database
|
||||||
InfoPHP=About PHP
|
InfoPHP=About PHP
|
||||||
InfoPerf=About Performances
|
InfoPerf=About Performances
|
||||||
|
InfoSecurity=About Security
|
||||||
BrowserName=اسم المتصفح
|
BrowserName=اسم المتصفح
|
||||||
BrowserOS=متصفح OS
|
BrowserOS=متصفح OS
|
||||||
ListOfSecurityEvents=قائمة الأحداث الأمنية Dolibarr
|
ListOfSecurityEvents=قائمة الأحداث الأمنية Dolibarr
|
||||||
@ -1194,7 +1232,8 @@ RestoreDesc=To restore a Dolibarr backup, two steps are required.
|
|||||||
RestoreDesc2=Restore the backup file (zip file for example) of the "documents" directory to a new Dolibarr installation or into this current documents directory (<b>%s</b>).
|
RestoreDesc2=Restore the backup file (zip file for example) of the "documents" directory to a new Dolibarr installation or into this current documents directory (<b>%s</b>).
|
||||||
RestoreDesc3=Restore the database structure and data from a backup dump file into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once the restore is complete, you must use a login/password, that existed from the backup time/installation to connect again.<br>To restore a backup database into this current installation, you can follow this assistant.
|
RestoreDesc3=Restore the database structure and data from a backup dump file into the database of the new Dolibarr installation or into the database of this current installation (<b>%s</b>). Warning, once the restore is complete, you must use a login/password, that existed from the backup time/installation to connect again.<br>To restore a backup database into this current installation, you can follow this assistant.
|
||||||
RestoreMySQL=استيراد MySQL
|
RestoreMySQL=استيراد MySQL
|
||||||
ForcedToByAModule= هذه القاعدة <b>%s</b> الى جانب تفعيل وحدة
|
ForcedToByAModule=هذه القاعدة <b>%s</b> الى جانب تفعيل وحدة
|
||||||
|
ValueIsForcedBySystem=This value is forced by the system. You can't change it.
|
||||||
PreviousDumpFiles=Existing backup files
|
PreviousDumpFiles=Existing backup files
|
||||||
PreviousArchiveFiles=Existing archive files
|
PreviousArchiveFiles=Existing archive files
|
||||||
WeekStartOnDay=First day of the week
|
WeekStartOnDay=First day of the week
|
||||||
@ -1282,7 +1321,7 @@ GetBarCode=الحصول على الباركود
|
|||||||
NumberingModules=Numbering models
|
NumberingModules=Numbering models
|
||||||
DocumentModules=Document models
|
DocumentModules=Document models
|
||||||
##### Module password generation
|
##### Module password generation
|
||||||
PasswordGenerationStandard=عودة كلمة سر ولدت الداخلية وفقا لخوارزمية Dolibarr : 8 أحرف مشتركة تتضمن الأرقام والحروف في حرف صغير.
|
PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: %s characters containing shared numbers and characters in lowercase.
|
||||||
PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
|
PasswordGenerationNone=Do not suggest a generated password. Password must be typed in manually.
|
||||||
PasswordGenerationPerso=ترجع كلمة المرور الخاصة بك وفقا لتكوين المعرفة شخصيا.
|
PasswordGenerationPerso=ترجع كلمة المرور الخاصة بك وفقا لتكوين المعرفة شخصيا.
|
||||||
SetupPerso=وفقا لتكوين الخاصة بك
|
SetupPerso=وفقا لتكوين الخاصة بك
|
||||||
@ -1523,7 +1562,9 @@ LDAPDescValues=مثال قيم تهدف <b>لOpenLDAP</b> مع مخططات بع
|
|||||||
ForANonAnonymousAccess=لصحتها accès (لكتابة الحصول على سبيل المثال)
|
ForANonAnonymousAccess=لصحتها accès (لكتابة الحصول على سبيل المثال)
|
||||||
PerfDolibarr=الإعداد أداء / تحسين تقرير
|
PerfDolibarr=الإعداد أداء / تحسين تقرير
|
||||||
YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
|
YouMayFindPerfAdviceHere=This page provides some checks or advice related to performance.
|
||||||
NotInstalled=Not installed, so your server is not slowed down by this.
|
NotInstalled=Not installed.
|
||||||
|
NotSlowedDownByThis=Not slowed down by this.
|
||||||
|
NotRiskOfLeakWithThis=Not risk of leak with this.
|
||||||
ApplicativeCache=مخبأ تطبيقي
|
ApplicativeCache=مخبأ تطبيقي
|
||||||
MemcachedNotAvailable=لم يتم العثور على مخبأ تطبيقي. يمكنك تحسين الأداء عن طريق تثبيت أعطها مخبأ خادم وحدة قادرة على استخدام هذا الخادم ذاكرة التخزين المؤقت. <br> مزيد من المعلومات هنا <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN.</a> <br> لاحظ أن الكثير من مزود استضافة المواقع لا توفر مثل هذا الخادم ذاكرة التخزين المؤقت.
|
MemcachedNotAvailable=لم يتم العثور على مخبأ تطبيقي. يمكنك تحسين الأداء عن طريق تثبيت أعطها مخبأ خادم وحدة قادرة على استخدام هذا الخادم ذاكرة التخزين المؤقت. <br> مزيد من المعلومات هنا <a href="http://wiki.dolibarr.org/index.php/Module_MemCached_EN">http://wiki.dolibarr.org/index.php/Module_MemCached_EN.</a> <br> لاحظ أن الكثير من مزود استضافة المواقع لا توفر مثل هذا الخادم ذاكرة التخزين المؤقت.
|
||||||
MemcachedModuleAvailableButNotSetup=وحدة أعطها لمخبأ تطبيقي وجدت ولكن الإعداد من وحدة ليست كاملة.
|
MemcachedModuleAvailableButNotSetup=وحدة أعطها لمخبأ تطبيقي وجدت ولكن الإعداد من وحدة ليست كاملة.
|
||||||
@ -1571,9 +1612,9 @@ SyslogLevel=المستوى
|
|||||||
SyslogFilename=اسم الملف ومسار
|
SyslogFilename=اسم الملف ومسار
|
||||||
YouCanUseDOL_DATA_ROOT=يمكنك استخدام DOL_DATA_ROOT / dolibarr.log لملف الدخول في Dolibarr "وثائق" دليل. يمكنك أن تحدد مسارا مختلفا لتخزين هذا الملف.
|
YouCanUseDOL_DATA_ROOT=يمكنك استخدام DOL_DATA_ROOT / dolibarr.log لملف الدخول في Dolibarr "وثائق" دليل. يمكنك أن تحدد مسارا مختلفا لتخزين هذا الملف.
|
||||||
ErrorUnknownSyslogConstant=ثابت %s ليس ثابت سيسلوغ معروفة
|
ErrorUnknownSyslogConstant=ثابت %s ليس ثابت سيسلوغ معروفة
|
||||||
OnlyWindowsLOG_USER=نوافذ يعتمد فقط LOG_USER
|
OnlyWindowsLOG_USER=On Windows, only the LOG_USER facility will be supported
|
||||||
CompressSyslogs=Compression and backup of debug log files (generated by module Log for debug)
|
CompressSyslogs=Compression and backup of debug log files (generated by module Log for debug)
|
||||||
SyslogFileNumberOfSaves=Log backups
|
SyslogFileNumberOfSaves=Number of backup logs to keep
|
||||||
ConfigureCleaningCronjobToSetFrequencyOfSaves=Configure cleaning scheduled job to set log backup frequency
|
ConfigureCleaningCronjobToSetFrequencyOfSaves=Configure cleaning scheduled job to set log backup frequency
|
||||||
##### Donations #####
|
##### Donations #####
|
||||||
DonationsSetup=وحدة الإعداد للتبرع
|
DonationsSetup=وحدة الإعداد للتبرع
|
||||||
@ -1639,11 +1680,11 @@ StockSetup=Stock module setup
|
|||||||
IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
|
IfYouUsePointOfSaleCheckModule=If you use the Point of Sale module (POS) provided by default or an external module, this setup may be ignored by your POS module. Most POS modules are designed by default to create an invoice immediately and decrease stock irrespective of the options here. So if you need or not to have a stock decrease when registering a sale from your POS, check also your POS module setup.
|
||||||
##### Menu #####
|
##### Menu #####
|
||||||
MenuDeleted=حذف من القائمة
|
MenuDeleted=حذف من القائمة
|
||||||
|
Menu=Menu
|
||||||
Menus=القوائم
|
Menus=القوائم
|
||||||
TreeMenuPersonalized=شخصي قوائم
|
TreeMenuPersonalized=شخصي قوائم
|
||||||
NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry
|
NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry
|
||||||
NewMenu=قائمة جديدة
|
NewMenu=قائمة جديدة
|
||||||
Menu=اختيار قائمة
|
|
||||||
MenuHandler=قائمة مناول
|
MenuHandler=قائمة مناول
|
||||||
MenuModule=مصدر في وحدة
|
MenuModule=مصدر في وحدة
|
||||||
HideUnauthorizedMenu= إخفاء القوائم غير المصرح به (الرمادي)
|
HideUnauthorizedMenu= إخفاء القوائم غير المصرح به (الرمادي)
|
||||||
@ -1794,7 +1835,6 @@ TypePaymentDesc=0:Customer payment type, 1:Vendor payment type, 2:Both customers
|
|||||||
IncludePath=يشمل المسار (المحدد في متغير%s)
|
IncludePath=يشمل المسار (المحدد في متغير%s)
|
||||||
ExpenseReportsSetup=إعداد تقارير المصروفات وحدة
|
ExpenseReportsSetup=إعداد تقارير المصروفات وحدة
|
||||||
TemplatePDFExpenseReports=قوالب المستند لتوليد حساب ثيقة تقرير
|
TemplatePDFExpenseReports=قوالب المستند لتوليد حساب ثيقة تقرير
|
||||||
ExpenseReportsIkSetup=Setup of module Expense Reports - Milles index
|
|
||||||
ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules
|
ExpenseReportsRulesSetup=Setup of module Expense Reports - Rules
|
||||||
ExpenseReportNumberingModules=Expense reports numbering module
|
ExpenseReportNumberingModules=Expense reports numbering module
|
||||||
NoModueToManageStockIncrease=تم تفعيل أي وحدة قادرة على إدارة زيادة المخزون التلقائي. وسوف يتم زيادة الأسهم على الإدخال اليدوي فقط.
|
NoModueToManageStockIncrease=تم تفعيل أي وحدة قادرة على إدارة زيادة المخزون التلقائي. وسوف يتم زيادة الأسهم على الإدخال اليدوي فقط.
|
||||||
@ -1864,7 +1904,7 @@ MailToSendReception=Receptions
|
|||||||
MailToThirdparty=أطراف ثالثة
|
MailToThirdparty=أطراف ثالثة
|
||||||
MailToMember=أعضاء
|
MailToMember=أعضاء
|
||||||
MailToUser=المستخدمين
|
MailToUser=المستخدمين
|
||||||
MailToProject=Projects page
|
MailToProject=مشاريع
|
||||||
MailToTicket=Tickets
|
MailToTicket=Tickets
|
||||||
ByDefaultInList=تظهر بشكل افتراضي على عرض القائمة
|
ByDefaultInList=تظهر بشكل افتراضي على عرض القائمة
|
||||||
YouUseLastStableVersion=You use the latest stable version
|
YouUseLastStableVersion=You use the latest stable version
|
||||||
@ -1960,6 +2000,8 @@ LoadThirdPartyFromName=Load third party searching on %s (load only)
|
|||||||
LoadThirdPartyFromNameOrCreate=Load third party searching on %s (create if not found)
|
LoadThirdPartyFromNameOrCreate=Load third party searching on %s (create if not found)
|
||||||
WithDolTrackingID=Message from a conversation initiated by a first email sent from Dolibarr
|
WithDolTrackingID=Message from a conversation initiated by a first email sent from Dolibarr
|
||||||
WithoutDolTrackingID=Message from a conversation initiated by a first email NOT sent from Dolibarr
|
WithoutDolTrackingID=Message from a conversation initiated by a first email NOT sent from Dolibarr
|
||||||
|
WithDolTrackingIDInMsgId=Message sent from Dolibarr
|
||||||
|
WithoutDolTrackingIDInMsgId=Message NOT sent from Dolibarr
|
||||||
CreateCandidature=Create candidature
|
CreateCandidature=Create candidature
|
||||||
FormatZip=الرمز البريدي
|
FormatZip=الرمز البريدي
|
||||||
MainMenuCode=Menu entry code (mainmenu)
|
MainMenuCode=Menu entry code (mainmenu)
|
||||||
@ -1974,7 +2016,7 @@ DisabledResourceLinkContact=Disable feature to link a resource to contacts
|
|||||||
EnableResourceUsedInEventCheck=Enable feature to check if a resource is in use in an event
|
EnableResourceUsedInEventCheck=Enable feature to check if a resource is in use in an event
|
||||||
ConfirmUnactivation=Confirm module reset
|
ConfirmUnactivation=Confirm module reset
|
||||||
OnMobileOnly=On small screen (smartphone) only
|
OnMobileOnly=On small screen (smartphone) only
|
||||||
DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be Prospect or Customer but can't be both)
|
DisableProspectCustomerType=Disable the "Prospect + Customer" third party type (so third party must be "Prospect" or "Customer", but can't be both)
|
||||||
MAIN_OPTIMIZEFORTEXTBROWSER=Simplify interface for blind person
|
MAIN_OPTIMIZEFORTEXTBROWSER=Simplify interface for blind person
|
||||||
MAIN_OPTIMIZEFORTEXTBROWSERDesc=Enable this option if you are a blind person, or if you use the application from a text browser like Lynx or Links.
|
MAIN_OPTIMIZEFORTEXTBROWSERDesc=Enable this option if you are a blind person, or if you use the application from a text browser like Lynx or Links.
|
||||||
MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person
|
MAIN_OPTIMIZEFORCOLORBLIND=Change interface's color for color blind person
|
||||||
@ -1996,13 +2038,15 @@ UseDebugBar=Use the debug bar
|
|||||||
DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console
|
DEBUGBAR_LOGS_LINES_NUMBER=Number of last log lines to keep in console
|
||||||
WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output
|
WarningValueHigherSlowsDramaticalyOutput=Warning, higher values slows dramaticaly output
|
||||||
ModuleActivated=Module %s is activated and slows the interface
|
ModuleActivated=Module %s is activated and slows the interface
|
||||||
|
IfYouAreOnAProductionSetThis=If you are on a production environment, you should set this property to %s.
|
||||||
|
AntivirusEnabledOnUpload=Antivirus enabled on uploaded files
|
||||||
EXPORTS_SHARE_MODELS=Export models are share with everybody
|
EXPORTS_SHARE_MODELS=Export models are share with everybody
|
||||||
ExportSetup=Setup of module Export
|
ExportSetup=Setup of module Export
|
||||||
ImportSetup=Setup of module Import
|
ImportSetup=Setup of module Import
|
||||||
InstanceUniqueID=Unique ID of the instance
|
InstanceUniqueID=Unique ID of the instance
|
||||||
SmallerThan=Smaller than
|
SmallerThan=Smaller than
|
||||||
LargerThan=Larger than
|
LargerThan=Larger than
|
||||||
IfTrackingIDFoundEventWillBeLinked=Note that If a tracking ID of an object is found into incoming email, or if the email is an answer of an email aready collected and linked to an object, the event will be automatically linked to the known related object too.
|
IfTrackingIDFoundEventWillBeLinked=Note that If a tracking ID of an object is found into email, or if the email is an answer of an email aready collected and linked to an object, the created event will be automatically linked to the known related object.
|
||||||
WithGMailYouCanCreateADedicatedPassword=With a GMail account, if you enabled the 2 steps validation, it is recommanded to create a dedicated second password for the application instead of using your own account passsword from https://myaccount.google.com/.
|
WithGMailYouCanCreateADedicatedPassword=With a GMail account, if you enabled the 2 steps validation, it is recommanded to create a dedicated second password for the application instead of using your own account passsword from https://myaccount.google.com/.
|
||||||
EmailCollectorTargetDir=It may be a desired behaviour to move the email into another tag/directory when it was processed successfully. Just set name of directory here to use this feature (Do NOT use special characters in name). Note that you must also use a read/write login account.
|
EmailCollectorTargetDir=It may be a desired behaviour to move the email into another tag/directory when it was processed successfully. Just set name of directory here to use this feature (Do NOT use special characters in name). Note that you must also use a read/write login account.
|
||||||
EmailCollectorLoadThirdPartyHelp=You can use this action to use the email content to find and load an existing thirdparty in your database. The found (or created) thirdparty will be used for following actions that need it. In the parameter field you can use for example 'EXTRACT:BODY:Name:\\s([^\\s]*)' if you want to extract the name of the thirdparty from a string 'Name: name to find' found into the body.
|
EmailCollectorLoadThirdPartyHelp=You can use this action to use the email content to find and load an existing thirdparty in your database. The found (or created) thirdparty will be used for following actions that need it. In the parameter field you can use for example 'EXTRACT:BODY:Name:\\s([^\\s]*)' if you want to extract the name of the thirdparty from a string 'Name: name to find' found into the body.
|
||||||
@ -2029,4 +2073,10 @@ MeasuringScaleDesc=The scale is the number of places you have to move the decima
|
|||||||
TemplateAdded=Template added
|
TemplateAdded=Template added
|
||||||
TemplateUpdated=Template updated
|
TemplateUpdated=Template updated
|
||||||
TemplateDeleted=Template deleted
|
TemplateDeleted=Template deleted
|
||||||
MailToSendEventPush=Template for event reminder emails
|
MailToSendEventPush=Event reminder email
|
||||||
|
SwitchThisForABetterSecurity=Switching this value to %s is recommended for more security
|
||||||
|
DictionaryProductNature= Nature of product
|
||||||
|
CountryIfSpecificToOneCountry=Country (if specific to a given country)
|
||||||
|
YouMayFindSecurityAdviceHere=You may find security advisory here
|
||||||
|
ModuleActivatedMayExposeInformation=This module may expose sensitive data. If you don't need it, disable it.
|
||||||
|
ModuleActivatedDoNotUseInProduction=A module designed for the development has been enabled. Do not enable it on a production environment.
|
||||||
|
|||||||
@ -23,19 +23,7 @@ ECMSearchByKeywords=بحث الكلمات الرئيسية
|
|||||||
ECMSearchByEntity=بحث عن وجوه
|
ECMSearchByEntity=بحث عن وجوه
|
||||||
ECMSectionOfDocuments=أدلة وثائق
|
ECMSectionOfDocuments=أدلة وثائق
|
||||||
ECMTypeAuto=التلقائي
|
ECMTypeAuto=التلقائي
|
||||||
ECMDocsBySocialContributions=المستندات المرتبطة بالضرائب الاجتماعية أو المالية
|
ECMDocsBy=Documents linked to %s
|
||||||
ECMDocsByThirdParties=وثائق مرتبطة أطراف ثالثة
|
|
||||||
ECMDocsByProposals=وثائق مرتبطة مقترحات
|
|
||||||
ECMDocsByOrders=وثائق مرتبطة أوامر العملاء
|
|
||||||
ECMDocsByContracts=وثائق مرتبطة بعقود
|
|
||||||
ECMDocsByInvoices=وثائق مرتبطة عملاء الفواتير
|
|
||||||
ECMDocsByProducts=الوثائق المرتبطة بالمنتجات
|
|
||||||
ECMDocsByProjects=المستندات المرتبطة بالمشاريع
|
|
||||||
ECMDocsByUsers=وثائق مرتبطة المستخدمين
|
|
||||||
ECMDocsByInterventions=وثائق مرتبطة بالتدخلات
|
|
||||||
ECMDocsByExpenseReports=Documents linked to expense reports
|
|
||||||
ECMDocsByHolidays=Documents linked to holidays
|
|
||||||
ECMDocsBySupplierProposals=Documents linked to supplier proposals
|
|
||||||
ECMNoDirectoryYet=لا الدليل
|
ECMNoDirectoryYet=لا الدليل
|
||||||
ShowECMSection=وتظهر الدليل
|
ShowECMSection=وتظهر الدليل
|
||||||
DeleteSection=إزالة الدليل
|
DeleteSection=إزالة الدليل
|
||||||
@ -50,3 +38,6 @@ ReSyncListOfDir=Resync list of directories
|
|||||||
HashOfFileContent=Hash of file content
|
HashOfFileContent=Hash of file content
|
||||||
NoDirectoriesFound=No directories found
|
NoDirectoriesFound=No directories found
|
||||||
FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
|
FileNotYetIndexedInDatabase=File not yet indexed into database (try to re-upload it)
|
||||||
|
ExtraFieldsEcmFiles=Extrafields Ecm Files
|
||||||
|
ExtraFieldsEcmDirectories=Extrafields Ecm Directories
|
||||||
|
ECMSetup=ECM Setup
|
||||||
|
|||||||
@ -8,15 +8,9 @@ ConfFileIsNotWritable=Configuration file <b>%s</b> is not writable. Check permis
|
|||||||
ConfFileIsWritable=ملف الإعداد <b>%s</b> قابل للكتابة.
|
ConfFileIsWritable=ملف الإعداد <b>%s</b> قابل للكتابة.
|
||||||
ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
|
ConfFileMustBeAFileNotADir=Configuration file <b>%s</b> must be a file, not a directory.
|
||||||
ConfFileReload=Reloading parameters from configuration file.
|
ConfFileReload=Reloading parameters from configuration file.
|
||||||
PHPSupportSessions=يدعم هذا الـ PHP ميزة الجلسات الزمنية.
|
|
||||||
PHPSupportPOSTGETOk=يدعم هذا الـ PHP وظائف POST و GET.
|
PHPSupportPOSTGETOk=يدعم هذا الـ PHP وظائف POST و GET.
|
||||||
PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
|
PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check the parameter <b>variables_order</b> in php.ini.
|
||||||
PHPSupportGD=This PHP supports GD graphical functions.
|
PHPSupportSessions=يدعم هذا الـ PHP ميزة الجلسات الزمنية.
|
||||||
PHPSupportCurl=This PHP supports Curl.
|
|
||||||
PHPSupportCalendar=This PHP supports calendars extensions.
|
|
||||||
PHPSupportUTF8=This PHP supports UTF8 functions.
|
|
||||||
PHPSupportIntl=This PHP supports Intl functions.
|
|
||||||
PHPSupportxDebug=This PHP supports extended debug functions.
|
|
||||||
PHPSupport=This PHP supports %s functions.
|
PHPSupport=This PHP supports %s functions.
|
||||||
PHPMemoryOK=تم إعداد الجلسة الزمنية للذاكرة في PHP الى <b>%s</b> . من المفترض ان تكون كافية.
|
PHPMemoryOK=تم إعداد الجلسة الزمنية للذاكرة في PHP الى <b>%s</b> . من المفترض ان تكون كافية.
|
||||||
PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
|
PHPMemoryTooLow=Your PHP max session memory is set to <b>%s</b> bytes. This is too low. Change your <b>php.ini</b> to set <b>memory_limit</b> parameter to at least <b>%s</b> bytes.
|
||||||
|
|||||||
40
htdocs/langs/ar_SA/intracommreport.lang
Normal file
40
htdocs/langs/ar_SA/intracommreport.lang
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
Module68000Name = Intracomm report
|
||||||
|
Module68000Desc = Intracomm report management (Support for French DEB/DES format)
|
||||||
|
IntracommReportSetup = Intracommreport module setup
|
||||||
|
IntracommReportAbout = About intracommreport
|
||||||
|
|
||||||
|
# Setup
|
||||||
|
INTRACOMMREPORT_NUM_AGREMENT=Numéro d'agrément (délivré par le CISD de rattachement)
|
||||||
|
INTRACOMMREPORT_TYPE_ACTEUR=Type d'acteur
|
||||||
|
INTRACOMMREPORT_ROLE_ACTEUR=Rôle joué par l'acteur
|
||||||
|
INTRACOMMREPORT_NIV_OBLIGATION_INTRODUCTION=Niveau d'obligation sur les introductions
|
||||||
|
INTRACOMMREPORT_NIV_OBLIGATION_EXPEDITION=Niveau d'obligation sur les expéditions
|
||||||
|
INTRACOMMREPORT_CATEG_FRAISDEPORT=Catégorie de services de type "Frais de port"
|
||||||
|
|
||||||
|
INTRACOMMREPORT_NUM_DECLARATION=Numéro de déclarant
|
||||||
|
|
||||||
|
# Menu
|
||||||
|
MenuIntracommReport=Intracomm report
|
||||||
|
MenuIntracommReportNew=New declaration
|
||||||
|
MenuIntracommReportList=قائمة
|
||||||
|
|
||||||
|
# View
|
||||||
|
NewDeclaration=New declaration
|
||||||
|
Declaration=Declaration
|
||||||
|
AnalysisPeriod=Analysis period
|
||||||
|
TypeOfDeclaration=Type of declaration
|
||||||
|
DEB=Goods exchange declaration (DEB)
|
||||||
|
DES=Services exchange declaration (DES)
|
||||||
|
|
||||||
|
# Export page
|
||||||
|
IntracommReportTitle=Preparation of an XML file in ProDouane format
|
||||||
|
|
||||||
|
# List
|
||||||
|
IntracommReportList=List of generated declarations
|
||||||
|
IntracommReportNumber=Numero of declaration
|
||||||
|
IntracommReportPeriod=Period of nalysis
|
||||||
|
IntracommReportTypeDeclaration=Type of declaration
|
||||||
|
IntracommReportDownload=download XML file
|
||||||
|
|
||||||
|
# Invoice
|
||||||
|
IntracommReportTransportMode=Transport mode
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user