Merge branch 'develop' into develop
This commit is contained in:
commit
d060cf840d
@ -327,6 +327,9 @@ script:
|
|||||||
php upgrade.php 6.0.0 7.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade600700.log
|
php upgrade.php 6.0.0 7.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade600700.log
|
||||||
php upgrade2.php 6.0.0 7.0.0 MAIN_MODULE_WEBSITE,MAIN_MODULE_SUPPLIERPROPOSAL > $TRAVIS_BUILD_DIR/upgrade600700-2.log
|
php upgrade2.php 6.0.0 7.0.0 MAIN_MODULE_WEBSITE,MAIN_MODULE_SUPPLIERPROPOSAL > $TRAVIS_BUILD_DIR/upgrade600700-2.log
|
||||||
php step5.php 6.0.0 7.0.0 > $TRAVIS_BUILD_DIR/upgrade600700-3.log
|
php step5.php 6.0.0 7.0.0 > $TRAVIS_BUILD_DIR/upgrade600700-3.log
|
||||||
|
php upgrade.php 7.0.0 8.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade700800.log
|
||||||
|
php upgrade2.php 7.0.0 8.0.0 > $TRAVIS_BUILD_DIR/upgrade700800-2.log
|
||||||
|
php step5.php 7.0.0 8.0.0 > $TRAVIS_BUILD_DIR/upgrade700800-3.log
|
||||||
cd -
|
cd -
|
||||||
set +e
|
set +e
|
||||||
echo
|
echo
|
||||||
|
|||||||
346
ChangeLog
346
ChangeLog
@ -2,50 +2,269 @@
|
|||||||
English Dolibarr ChangeLog
|
English Dolibarr ChangeLog
|
||||||
--------------------------------------------------------------
|
--------------------------------------------------------------
|
||||||
|
|
||||||
***** ChangeLog for 6.0.5 compared to 6.0.4 *****
|
|
||||||
FIX: security vulnerability reported by ADLab of Venustech
|
|
||||||
CVE-2017-17897, CVE-2017-17898, CVE-2017-17899, CVE-2017-17900
|
|
||||||
FIX: #7379: Compatibility with PRODUCT_USE_OLD_PATH_FOR_PHOTO variable
|
|
||||||
FIX: #7903
|
|
||||||
FIX: #7933
|
|
||||||
FIX: #8029 Unable to make leave request in holyday module
|
|
||||||
FIX: Edit accountancy account and warning message on loan
|
|
||||||
FIX: $accounts[$bid] is a label !
|
|
||||||
FIX: $oldvatrateclean & $newvatrateclean must be set if preg_match === false
|
|
||||||
FIX: product best price on product list
|
|
||||||
FIX: search on contact list
|
|
||||||
FIX: stats trad for customerinvoice
|
|
||||||
FIX: translate unactivate on contractline
|
|
||||||
|
|
||||||
***** ChangeLog for 6.0.4 compared to 6.0.3 *****
|
***** ChangeLog for 8.0.0 compared to 7.0.0 *****
|
||||||
FIX: #7737
|
|
||||||
FIX: #7751
|
WARNING:
|
||||||
FIX: #7756 Add better error message
|
|
||||||
FIX: #7786
|
Following changes may create regressions for some external modules, but were necessary to make Dolibarr better:
|
||||||
FIX: #7806
|
* Hook 'maildao' was renamed into 'mail' into the method sendfile that send emails, and method was renamed from
|
||||||
FIX: #7824
|
'doaction' into 'sendMail'.
|
||||||
FIX: add line bad price and ref
|
* Rename trigger CONTRACT_SERVICE_ACTIVATE into LINECONTRACT_ACTIVATE and
|
||||||
FIX: A lot of several fix on local taxes and NPR tax
|
CONTRACT_SERVICE_CLOSE into LINECONTRACT_CLOSE
|
||||||
FIX: createfromorder
|
* Remove triggers *_CLONE. The trigger CREATE with context 'createfromclone' is already called so this is
|
||||||
FIX: CSS for IE10
|
a duplicated feature. Cloning is not a business event, the business event is CREATE, so no trigger required.
|
||||||
FIX: external user cannot be set as internal
|
|
||||||
FIX: Filter type on actioncomm with multiselect doesn't work
|
|
||||||
FIX: list of donation not filtered on multicompany
|
|
||||||
FIX: list of module not complete when module mb_strlen not available
|
|
||||||
FIX: Locatax were not propagated when cloning order or proposal
|
|
||||||
FIX: Searching translation should not be case sensitive
|
|
||||||
FIX: Search into language is ok for file into external modules two.
|
|
||||||
FIX: test for filter fk_status
|
|
||||||
FIX: too much users on holiday list
|
|
||||||
FIX: Wrong alias sql
|
|
||||||
|
|
||||||
|
|
||||||
***** ChangeLog for 7.0.0 compared to 6.0.* *****
|
***** ChangeLog for 7.0.0 compared to 6.0.5 *****
|
||||||
For users:
|
For users:
|
||||||
|
NEW: Add a preview icon after files that can be previewed (pdf + images)
|
||||||
|
NEW: When payment is registered, PDF of invoices are also regenerated so payments
|
||||||
|
appears with no need to click on regenerate.
|
||||||
|
NEW: #5711 Add shipment line deleting and editing for draft shipments.
|
||||||
|
NEW: Accept substitution key __(ABC)__ replaced with value of translation of key ABC
|
||||||
|
NEW: Accept substitution key __[ABC]__ replaced with value of const ABC
|
||||||
|
NEW: Accountancy Add fields for sale accounting account for intracommunity sales & export sales
|
||||||
|
NEW: Add a button "Activate all services" on contracts
|
||||||
|
NEW: Add a confirmation for all mass action 'delete'
|
||||||
|
NEW: Add a group task line for tasks on same level on gantt diagram
|
||||||
|
NEW: Add and edit country for chart of accounts systems
|
||||||
|
NEW: add a new notification for the signed closed event of a proposal.
|
||||||
|
NEW: Add a parameter to specify char used as separator for variant product label
|
||||||
|
NEW: Add a profile to import product translations
|
||||||
|
NEW: Add a protection so we can't journalize non balanced transactions
|
||||||
|
NEW: Add a status enabled/disabled on recurring invoices
|
||||||
|
NEW: add burger menu to list action comm
|
||||||
|
NEW: Add button cancel on shipment creation
|
||||||
|
NEW: Add chart of account for england
|
||||||
|
NEW: Add Chile accounting plan
|
||||||
|
NEW: Add class in societe/card.php
|
||||||
|
NEW: add company alias name when create company from member
|
||||||
|
NEW: Add date of birth on user card.
|
||||||
|
NEW: Add date_valid and date_pointoftax on supplier invoices.
|
||||||
|
NEW: Added Region name to state/province form field
|
||||||
|
NEW: Added regions to third party/societe lists, can be filtered
|
||||||
|
NEW: Add error message
|
||||||
|
NEW: Add expense report rules and ik
|
||||||
|
NEW: Add filter on event code on automatic filling setup page
|
||||||
|
NEW: Add filters on month/year on the accountancy binding tools
|
||||||
|
NEW: add fk_unit field into product/service import/export
|
||||||
|
NEW: add 'formObjectOptions' hook to the form setting the product selling price
|
||||||
|
NEW: Add hidden option PROJECT_DISABLE_UNLINK_FROM_OVERVIEW
|
||||||
|
NEW: add image object_phoning_mobile.png
|
||||||
|
NEW: Adding Field "First date of expire" + filter on contract list
|
||||||
|
NEW: add ldap_rename for avoid password if ldap key changed
|
||||||
|
NEW: Add mass action "validate" on supplier invoices.
|
||||||
|
NEW: add members types ldap group management
|
||||||
|
NEW: Add new property visible dy default on lists on extrafields
|
||||||
|
NEW: Add Next/Previous button on operation date of bank line
|
||||||
|
NEW: Add option EXPENSEREPORT_ALLOW_OVERLAPPING_PERIODS
|
||||||
|
NEW: Add option PROPOSAL/ORDER/INVOICE_ALLOW_EXTERNAL_DOWNLOAD
|
||||||
|
NEW: Add product unit fields for ODT substitution
|
||||||
|
NEW: Add project on a various payment
|
||||||
|
NEW: Add project related fields to ODT
|
||||||
|
NEW: Add protection to avoid to send to much emails using builk actions
|
||||||
|
NEW: Add search field for date on supplier payment page
|
||||||
|
NEW: Add search on date and accounting account in various payment list
|
||||||
|
NEW: add specific translation for title of documents (Invoice, Order, Proposal)
|
||||||
|
NEW: Adds the payment reference to the return of the function getListOfPayements
|
||||||
|
NEW: Add supplier proposals into stats of product page.
|
||||||
|
NEW: Add tab "Expense report" on user card
|
||||||
|
NEW: add the ability to regenerate a pdf for the order module
|
||||||
|
NEW: Add The accountancy Switzerland chart of accounts
|
||||||
|
NEW: Add The developed French chart of accounts 2014
|
||||||
|
NEW: Add The Luxembourg chart of accounts
|
||||||
|
NEW: Add The Moroccan chart of accounts
|
||||||
|
NEW: Add The Switzerland chart of accounts
|
||||||
|
NEW: Add The SYSCOHADA chart of accounts
|
||||||
|
NEW: Add the total in the perday view of the time spent form.
|
||||||
|
NEW: Add The Tunisia chart of accounts
|
||||||
|
NEW: Add toolkit for StockLimit and DesiredStock
|
||||||
|
NEW: add translation and possibility to change month and year
|
||||||
|
NEW: Add view of status of template invoice
|
||||||
|
NEW: All search boxes are available on smartphone
|
||||||
|
NEW: All setup of accountancy can be done from menu "Accountancy-Setup"
|
||||||
|
NEW: Attaching doc automatically in email is now a parameter of template.
|
||||||
|
NEW: automatic activation of external module on country set
|
||||||
|
NEW: Better autoselect customer or supplier fields to save clicks
|
||||||
|
NEW: Better behaviour when using a text browser
|
||||||
|
NEW: Break lines per project on the new timesheet page
|
||||||
|
NEW: Bulk action validate on customer invoices
|
||||||
|
NEW: Bulk delete actions available on leave requests
|
||||||
|
NEW: burger menu and hooks on list action
|
||||||
|
NEW: Can add html content on right of tabs
|
||||||
|
NEW: Can add link to other element on a donation
|
||||||
|
NEW: Can create intervention from a proposal
|
||||||
|
NEW: Can create thirdparty from card proposal, order or invoice
|
||||||
|
NEW: Can download PDF document from the payment page
|
||||||
|
NEW: Can edit the language into the email templates editor.
|
||||||
|
NEW: Can edit with delete/insert a forced translation
|
||||||
|
NEW: Can export list of stock movements
|
||||||
|
NEW: Can filter on date on the page showing existing bindings
|
||||||
|
NEW: Can filter on document name in ECM module for automatic tree
|
||||||
|
NEW: can filter on status of template invoices
|
||||||
|
NEW: Can filter on the "other" column on emailing target list
|
||||||
|
NEW: Can filter on type of email template
|
||||||
|
NEW: Can filter on user on unalterable log
|
||||||
|
NEW: Can import local tax rates in prices
|
||||||
|
NEW: Can include extrafields into member card templates
|
||||||
|
NEW: Can include tag {uuu} into some numbering masks to replace with user
|
||||||
|
NEW: Can make a specific setup for SMTP sending for emailing module
|
||||||
|
NEW: Can rename (so reorder) bank receipts
|
||||||
|
NEW: Can send email from contract card
|
||||||
|
NEW: Can send email from the member card using email templates.
|
||||||
|
NEW: Can set a dedicated message on payment forms
|
||||||
|
NEW: Can set email of thirdparty as unique and/or mandatory
|
||||||
|
NEW: Can setup csv accounting export from admin config
|
||||||
|
NEW: Can show currency in list of bank accounts
|
||||||
|
NEW: Can show stock in alert even if alter is set to 0
|
||||||
|
NEW: Can sort joined files on thirdparty and user card.
|
||||||
|
NEW: Can transfer from bank account to bank account with different currencies
|
||||||
|
NEW: Can use an url like $conf->global>-MYPARAM for menu urls
|
||||||
|
NEW: change description on click
|
||||||
|
NEW: Chart of account is loaded when selected into accounting setup
|
||||||
|
NEW: Classify the order as invoiced in the REST API
|
||||||
|
NEW: comments system on task
|
||||||
|
NEW: comment system working with all objects
|
||||||
|
NEW: Compatibility with PHP 7.2
|
||||||
|
NEW: confirm form style to accept or reject proposal
|
||||||
|
NEW: Create an invoice using an existing order
|
||||||
|
NEW: Create an order using an existing proposal
|
||||||
|
NEW: customizable meteo in value or percentage
|
||||||
|
NEW: Days where user is on vacation use different colors in timesheet.
|
||||||
|
NEW: Deduct an available credit to an existing invoice
|
||||||
|
NEW: Default filter and sort order can use partial list of query
|
||||||
|
NEW: Deposit invoice more explicit in invoice line description
|
||||||
|
NEW: deposits can be converted even if unpaid
|
||||||
|
NEW: detection of edge browser
|
||||||
|
NEW: Each user can edit its own email template (menu tools)
|
||||||
|
NEW: Enabled sending email in bulk actions for supplier orders
|
||||||
|
NEW: Enhance the anti XSS filter
|
||||||
|
NEW: extrafield on facture_rec
|
||||||
|
NEW: Extrafields "link to object" now use a combo selection and getNomUrl
|
||||||
|
NEW: filter date for blockedlog
|
||||||
|
NEW: filter on extrafield on product list (as in company list)
|
||||||
|
NEW: General ledger : Add field date_creation and selected field
|
||||||
|
NEW: generate also document when invoice is build from recurring template
|
||||||
|
NEW: Generated files are now indexed in database
|
||||||
|
NEW: generate invoice PDF on disount application or payment
|
||||||
|
NEW: Get a list of payments terms
|
||||||
|
NEW: hrm details output on user
|
||||||
|
NEW: If max nb of generation is reached, date for next gen is striked
|
||||||
|
NEW: improvements of invoices, orders and proposals in the REST API
|
||||||
|
NEW: Include a color syntaxed HTML editor for emailing edition.
|
||||||
|
NEW: Introduce code syntax coloration with mode 'ace' for DolEditor.
|
||||||
|
NEW: Introduce experimental feature to search dolistore from application
|
||||||
|
NEW: jquery date selector become default date selector
|
||||||
|
NEW: langs
|
||||||
|
NEW: link project from other company conf
|
||||||
|
NEW: manageme extrafields with multientity
|
||||||
|
NEW: Mass PDF Merging is available on contracts
|
||||||
|
NEW: merge categories while merging thirdparties
|
||||||
|
NEW: Merge resource/add.php to resource/card.php
|
||||||
|
NEW: Module "Product variants" is moved as stable.
|
||||||
|
NEW: More picto for phone
|
||||||
|
NEW: Move accountancy features into a dedicated menu
|
||||||
|
NEW: Move contacts of a thirdparty on tab Contacts/Addresses
|
||||||
|
NEW: Move the upload input on top right in ECM module
|
||||||
|
NEW: new columns into extrafields table to get update create information
|
||||||
|
NEW: new param on load_board() function in ActionComm class to avoid duplicate code
|
||||||
|
NEW: On bulk email from a list, can uncheck "Join main document".
|
||||||
|
NEW: On reconciliation, show balance including all reconciliated fields
|
||||||
|
NEW: Option "one email per recipient" when using bulk actions emails.
|
||||||
|
NEW: Option STOCK_SUPPORTS_SERVICES become visible.
|
||||||
|
NEW: option to avoid countries to disable there blockedlog
|
||||||
|
NEW: option to fix top menu with eldy theme (hidden conf)
|
||||||
|
NEW: Popup for preview of image add a button "Original size"
|
||||||
|
NEW: post lines of an invoice using the REST API
|
||||||
|
NEW: preload comments in task
|
||||||
|
NEW: Provide a way to download a file from a public URL for files in ECM
|
||||||
|
NEW: Reduce size of HTML page by removing duplicate tooltips
|
||||||
|
NEW: Remove background on agenda view when event is a not busy event.
|
||||||
|
NEW: Retrieves available discounts and payments details from a specific invoice
|
||||||
|
NEW: Revenue stamp can be a percent
|
||||||
|
NEW: Search filters in lists are restored when using "back to list"
|
||||||
|
NEW: Send by email available in bulk for expense report
|
||||||
|
NEW: Set a proposal to draft
|
||||||
|
NEW: Show badge with nbr of shipment on shimpen tab of order
|
||||||
|
NEW: Show country and vat number into company tooltip
|
||||||
|
NEW: Show direct preview link on contract
|
||||||
|
NEW: Show expected worked hours on the timesheet form.
|
||||||
|
NEW: Show line "other filtered task" when using filter on timesheet.
|
||||||
|
NEW: Show list of tracked events into the module config page.
|
||||||
|
NEW: Show the supplier ref into supplier cards
|
||||||
|
NEW: Show user id of web process in system info - web server
|
||||||
|
NEW: Summary of last events on a card are sorted on decreasing date.
|
||||||
|
NEW: Support Italian addresses format. Fixes #7785
|
||||||
|
NEW: Support visibility on extrafields
|
||||||
|
NEW: Template invoices are visible on the customer tab
|
||||||
|
NEW: template invoices support substition key
|
||||||
|
NEW: The bank account is visible on payment of taxes
|
||||||
|
NEW: The comment when closing a proposal is added to commercial proposal
|
||||||
|
NEW: The gantt diagram is now sensitive to hours
|
||||||
|
NEW: The lot of a product uses the link and picto when shown into list.
|
||||||
|
NEW: The "Show detail by account" accepts 3 values: yes, no, if non zero
|
||||||
|
NEW: The unalterable log can be browse by any user with he permission
|
||||||
|
NEW: Tooltip for substitutions variables on tooltips on admin pages
|
||||||
|
NEW: unexistant function load_state_board() on several objects
|
||||||
|
NEW: Update availability
|
||||||
|
NEW: Update bank account when updating an invoice
|
||||||
|
NEW: Update bank account when updating an order
|
||||||
|
NEW: Use autocompletion on selection of chart of account
|
||||||
|
NEW: view company name if different of fullname in dol_banner
|
||||||
|
NEW: warning on module blocked log reset if country code is FR
|
||||||
|
|
||||||
For developers:
|
For developers:
|
||||||
|
NEW: Add 2 new automatic classification in workflow module
|
||||||
|
NEW: Add API for contracts
|
||||||
|
NEW: Add API to activate/unactivate a contract
|
||||||
|
NEW: Add api validate and close on contracts
|
||||||
|
NEW: add doActions hook in admin ihm
|
||||||
|
NEW: add doActions hook in company admin
|
||||||
|
NEW: Added functionality to get order customer contact as contact_xx tags
|
||||||
NEW: Add hook addAdminLdapOptions and doAction in ldap admin page
|
NEW: Add hook addAdminLdapOptions and doAction in ldap admin page
|
||||||
|
NEW: Add method executeCLI and a phpunit
|
||||||
|
NEW: add '$moreatt' parameter in picto_from_langcode function
|
||||||
|
NEW: Add non intrusive js library to make syntaxic coloring of textarea
|
||||||
|
NEW: Add payment line to a specific invoice using the REST API
|
||||||
|
NEW: add possibility to disabled the LDAP trigger
|
||||||
|
NEW: add possibility to hide LDAP tab for non admin
|
||||||
|
NEW: Add possibility to propose last num releve in conciliation
|
||||||
|
NEW: add possibility to remove address field
|
||||||
|
NEW: Add REST API for supplier proposals
|
||||||
|
NEW: Add REST API to add payment line to a specific invoice
|
||||||
|
NEW: Add the attribute accept to the input form for file upload
|
||||||
|
NEW: add translation column for extrafields list
|
||||||
|
NEW: Add performances indexes on calendar events
|
||||||
|
NEW: A module can change order of element in the quick search combo
|
||||||
|
NEW: Can test signature of a version from API
|
||||||
NEW: complete_head_from_modules() in ldap_prepare_head()
|
NEW: complete_head_from_modules() in ldap_prepare_head()
|
||||||
|
NEW: Consolidates REST dictionary APIs into a single tree and a single file
|
||||||
|
NEW: Delete a line of invoice using the REST API
|
||||||
|
NEW: documents REST API return list of documents by element
|
||||||
|
NEW: Download a document using the REST API
|
||||||
|
NEW: Enhance framework so we can use html/icons into SELECT options.
|
||||||
|
NEW: External module can interact with the customer summary page
|
||||||
|
NEW: Generates the document before downloading using REST API
|
||||||
|
NEW: get and post lines of an invoice using the REST API
|
||||||
|
NEW: Get a payment list of a given invoice using the REST API
|
||||||
|
NEW: Get available assets of an invoice using the REST API
|
||||||
|
NEW: Get credit notes or deposits of a thirdparty
|
||||||
|
NEW: GET lines of an invoice in the REST API
|
||||||
|
NEW: get payment types using the REST API + consolidates REST dictionary APIs
|
||||||
|
NEW: Get the list of payments terms.
|
||||||
|
NEW: hook formObjectOptions in the form setting product selling price
|
||||||
|
NEW: hook to enrich homepage open elements dashboard
|
||||||
|
NEW: Insert a discount in a specific invoice using the REST API
|
||||||
|
NEW: Remove js library fileupload that was not used by core code.
|
||||||
|
NEW: Remove tooltip tipTip library replaced with standatd jquery tooltip
|
||||||
|
NEW: Set invoices as draft using the REST API
|
||||||
|
NEW: Sets an invoice as paid using the REST API
|
||||||
|
NEW: Tag the order as validated (opened) in the REST API
|
||||||
|
NEW: Update end of validity date of proposal using the API
|
||||||
|
NEW: Update in the order REST API
|
||||||
|
NEW: Upgrade jquery select2 to 4.0.4
|
||||||
|
|
||||||
|
|
||||||
WARNING:
|
WARNING:
|
||||||
|
|
||||||
@ -74,6 +293,59 @@ Following changes may create regressions for some external modules, but were nec
|
|||||||
* Jquery plugin tableDnd updated. You now need to use decodeURI on the return value of tableDnDSerialize()
|
* Jquery plugin tableDnd updated. You now need to use decodeURI on the return value of tableDnDSerialize()
|
||||||
and add 'td.' to the beginning of the dragHandle match string.
|
and add 'td.' to the beginning of the dragHandle match string.
|
||||||
* IE8 and earlier and Firefox 12 and earlier (< 2012) are no more supported.
|
* IE8 and earlier and Firefox 12 and earlier (< 2012) are no more supported.
|
||||||
|
* The module ExpenseReport use numbering rules that you can setup (like other modules do). If you need to
|
||||||
|
keep the hard coded numbering rule of expenses report used in 6.0, just add constant
|
||||||
|
EXPENSEREPORT_USE_OLD_NUMBERING_RULE to 1.
|
||||||
|
* If you use the external module "multicompany", you must also upgrade the module. Multicompany module for
|
||||||
|
Dolibarr v7 is required because with Dolibarr v7, payment modes and payment conditions are management as data
|
||||||
|
that are dedicated to each company. If you keep your old version of multicompany module, mode and
|
||||||
|
condition of payments will appears empty in all companies that are not the first one. By upgrading the
|
||||||
|
multicompany module to a version that support Dolibarr v7, everything should work as expected.
|
||||||
|
|
||||||
|
|
||||||
|
***** ChangeLog for 6.0.5 compared to 6.0.4 *****
|
||||||
|
FIX: security vulnerability reported by ADLab of Venustech
|
||||||
|
CVE-2017-17897, CVE-2017-17898, CVE-2017-17899, CVE-2017-17900
|
||||||
|
FIX: #7379: Compatibility with PRODUCT_USE_OLD_PATH_FOR_PHOTO variable
|
||||||
|
FIX: #7903
|
||||||
|
FIX: #7933
|
||||||
|
FIX: #8029 Unable to make leave request in holyday module
|
||||||
|
FIX: #8093
|
||||||
|
FIX: Bad name alias showing in name of third column
|
||||||
|
FIX: Cashdesk should not sell to inactive third parties
|
||||||
|
FIX: Edit accountancy account and warning message on loan
|
||||||
|
FIX: $accounts[$bid] is a label !
|
||||||
|
FIX: $oldvatrateclean & $newvatrateclean must be set if preg_match === false
|
||||||
|
FIX: product best price on product list
|
||||||
|
FIX: search on contact list
|
||||||
|
FIX: stats trad for customerinvoice
|
||||||
|
FIX: translate unactivate on contractline
|
||||||
|
FIX: email sent was not in HTML
|
||||||
|
FIX: missing hook invoice index
|
||||||
|
FIX: subject mail sepa
|
||||||
|
|
||||||
|
|
||||||
|
***** ChangeLog for 6.0.4 compared to 6.0.3 *****
|
||||||
|
FIX: #7737
|
||||||
|
FIX: #7751
|
||||||
|
FIX: #7756 Add better error message
|
||||||
|
FIX: #7786
|
||||||
|
FIX: #7806
|
||||||
|
FIX: #7824
|
||||||
|
FIX: add line bad price and ref
|
||||||
|
FIX: A lot of several fix on local taxes and NPR tax
|
||||||
|
FIX: createfromorder
|
||||||
|
FIX: CSS for IE10
|
||||||
|
FIX: external user cannot be set as internal
|
||||||
|
FIX: Filter type on actioncomm with multiselect doesn't work
|
||||||
|
FIX: list of donation not filtered on multicompany
|
||||||
|
FIX: list of module not complete when module mb_strlen not available
|
||||||
|
FIX: Locatax were not propagated when cloning order or proposal
|
||||||
|
FIX: Searching translation should not be case sensitive
|
||||||
|
FIX: Search into language is ok for file into external modules two.
|
||||||
|
FIX: test for filter fk_status
|
||||||
|
FIX: too much users on holiday list
|
||||||
|
FIX: Wrong alias sql
|
||||||
|
|
||||||
|
|
||||||
***** ChangeLog for 6.0.3 compared to 6.0.2 *****
|
***** ChangeLog for 6.0.3 compared to 6.0.2 *****
|
||||||
@ -318,6 +590,8 @@ Following changes may create regression for some external modules, but were nece
|
|||||||
* Use $conf->global->MULTICOMPANY_TRANSVERSE_MODE instead $conf->multicompany->transverse_mode. So, if you set var
|
* Use $conf->global->MULTICOMPANY_TRANSVERSE_MODE instead $conf->multicompany->transverse_mode. So, if you set var
|
||||||
$multicompany_transverse_mode to 1 into your conf file, you must remove this line and a new key into
|
$multicompany_transverse_mode to 1 into your conf file, you must remove this line and a new key into
|
||||||
the Home - setup - other admin page.
|
the Home - setup - other admin page.
|
||||||
|
* If you use Multicompany transverse mode, it will be necessary to check the activation of the modules in the children
|
||||||
|
entities and to review completely the rights of the groups and the users.
|
||||||
* Use getEntity('xxx') instead getEntity('xxx', 1) and use getEntity('xxx', 0) instead getEntity('xxx')
|
* Use getEntity('xxx') instead getEntity('xxx', 1) and use getEntity('xxx', 0) instead getEntity('xxx')
|
||||||
* Some other change were done in the way we read permission of a user when module multicompany is enabled. You can
|
* Some other change were done in the way we read permission of a user when module multicompany is enabled. You can
|
||||||
retreive the old behavior by adding constant MULTICOMPANY_BACKWARD_COMPATIBILITY to 1.
|
retreive the old behavior by adding constant MULTICOMPANY_BACKWARD_COMPATIBILITY to 1.
|
||||||
|
|||||||
@ -34,17 +34,4 @@ This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
|
|||||||
+$conffiletoshow = "/etc/dolibarr/conf.php";
|
+$conffiletoshow = "/etc/dolibarr/conf.php";
|
||||||
|
|
||||||
|
|
||||||
// Load conf file if it is already defined
|
|
||||||
--- a/htdocs/support/inc.php
|
|
||||||
+++ b/htdocs/support/inc.php
|
|
||||||
@@ -69,8 +69,8 @@ $conffiletoshowshort = "conf.php";
|
|
||||||
$conffile = "../conf/conf.php";
|
|
||||||
$conffiletoshow = "htdocs/conf/conf.php";
|
|
||||||
// For debian/redhat like systems
|
|
||||||
-//$conffile = "/etc/dolibarr/conf.php";
|
|
||||||
-//$conffiletoshow = "/etc/dolibarr/conf.php";
|
|
||||||
+$conffile = "/etc/dolibarr/conf.php";
|
|
||||||
+$conffiletoshow = "/etc/dolibarr/conf.php";
|
|
||||||
|
|
||||||
|
|
||||||
// Load conf file if it is already defined
|
// Load conf file if it is already defined
|
||||||
|
|||||||
@ -10,12 +10,23 @@ export DH_OPTIONS=-v
|
|||||||
%:
|
%:
|
||||||
dh $@
|
dh $@
|
||||||
|
|
||||||
|
# Replace standard debian package actions with a new one
|
||||||
|
########################################################
|
||||||
|
|
||||||
override_dh_auto_clean:
|
override_dh_auto_clean:
|
||||||
# Do nothing. Added to disable launchpad to use bugged dh_auto_clean search for ant
|
# Do nothing. Added to disable launchpad to use bugged dh_auto_clean search for ant
|
||||||
|
|
||||||
override_dh_auto_build:
|
override_dh_auto_build:
|
||||||
# Do nothing. Added to disable launchpad to use bugged dh_auto_build search for ant
|
# Do nothing. Added to disable launchpad to use bugged dh_auto_build search for ant
|
||||||
|
|
||||||
|
#override_dh_compress:
|
||||||
|
# dh_compress --no-act -X.png
|
||||||
|
|
||||||
|
# We disable this for png file because it modify content of original file so make
|
||||||
|
# the dolibarr signature not valid.
|
||||||
|
override_dh_strip_nondeterminism:
|
||||||
|
dh_strip_nondeterminism -X.png
|
||||||
|
|
||||||
override_dh_install:
|
override_dh_install:
|
||||||
dh_install
|
dh_install
|
||||||
# Delete files
|
# Delete files
|
||||||
|
|||||||
@ -19,7 +19,7 @@ use Term::ANSIColor;
|
|||||||
# Change this to defined target for option 98 and 99
|
# Change this to defined target for option 98 and 99
|
||||||
$PROJECT="dolibarr";
|
$PROJECT="dolibarr";
|
||||||
$PUBLISHSTABLE="eldy,dolibarr\@frs.sourceforge.net:/home/frs/project/dolibarr";
|
$PUBLISHSTABLE="eldy,dolibarr\@frs.sourceforge.net:/home/frs/project/dolibarr";
|
||||||
$PUBLISHBETARC="ldestailleur\@vmprod.dolibarr.org:/home/dolibarr/dolibarr.org/httpdocs/files";
|
$PUBLISHBETARC="dolibarr\@vmprod1.dolibarr.org:/home/dolibarr/dolibarr.org/httpdocs/files";
|
||||||
|
|
||||||
|
|
||||||
#@LISTETARGET=("TGZ","ZIP","RPM_GENERIC","RPM_FEDORA","RPM_MANDRIVA","RPM_OPENSUSE","DEB","APS","EXEDOLIWAMP","SNAPSHOT"); # Possible packages
|
#@LISTETARGET=("TGZ","ZIP","RPM_GENERIC","RPM_FEDORA","RPM_MANDRIVA","RPM_OPENSUSE","DEB","APS","EXEDOLIWAMP","SNAPSHOT"); # Possible packages
|
||||||
@ -558,7 +558,7 @@ if ($nboftargetok) {
|
|||||||
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/geoip/sample*.*`;
|
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/geoip/sample*.*`;
|
||||||
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/ckeditor/ckeditor/adapters`; # Keep this removal in case we embed libraries
|
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/ckeditor/ckeditor/adapters`; # Keep this removal in case we embed libraries
|
||||||
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/ckeditor/ckeditor/samples`; # Keep this removal in case we embed libraries
|
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/ckeditor/ckeditor/samples`; # Keep this removal in case we embed libraries
|
||||||
#$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/ckeditor/_source`; # _source must be kept into tarball
|
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/ckeditor/_source`; # _source must be kept into tarball for official debian, not for the rest
|
||||||
|
|
||||||
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/jquery/plugins/multiselect/MIT-LICENSE.txt`;
|
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/jquery/plugins/multiselect/MIT-LICENSE.txt`;
|
||||||
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/jquery/plugins/select2/release.sh`;
|
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/jquery/plugins/select2/release.sh`;
|
||||||
@ -767,8 +767,8 @@ if ($nboftargetok) {
|
|||||||
$cmd="cp -pr '$BUILDROOT/$PROJECT' '$BUILDROOT/$FILENAMETGZ2'";
|
$cmd="cp -pr '$BUILDROOT/$PROJECT' '$BUILDROOT/$FILENAMETGZ2'";
|
||||||
$ret=`$cmd`;
|
$ret=`$cmd`;
|
||||||
|
|
||||||
# Removed files we don't need
|
# Removed files we don't need (already removed before)
|
||||||
$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/htdocs/includes/ckeditor/_source`;
|
#$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/htdocs/includes/ckeditor/_source`;
|
||||||
|
|
||||||
print "Set permissions on files/dir\n";
|
print "Set permissions on files/dir\n";
|
||||||
$ret=`chmod -R 755 $BUILDROOT/$FILENAMETGZ2`;
|
$ret=`chmod -R 755 $BUILDROOT/$FILENAMETGZ2`;
|
||||||
@ -915,8 +915,8 @@ if ($nboftargetok) {
|
|||||||
$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/mike42/escpos-php/LICENSE.md`;
|
$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/mike42/escpos-php/LICENSE.md`;
|
||||||
$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/mobiledetect/mobiledetectlib/LICENSE.txt`;
|
$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/mobiledetect/mobiledetectlib/LICENSE.txt`;
|
||||||
|
|
||||||
# Removed files we don't need
|
# Removed files we don't need (already removed)
|
||||||
$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/ckeditor/ckeditor/_source`;
|
#$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/ckeditor/ckeditor/_source`;
|
||||||
|
|
||||||
# Rename upstream changelog to match debian rules
|
# Rename upstream changelog to match debian rules
|
||||||
$ret=`mv $BUILDROOT/$PROJECT.tmp/ChangeLog $BUILDROOT/$PROJECT.tmp/changelog`;
|
$ret=`mv $BUILDROOT/$PROJECT.tmp/ChangeLog $BUILDROOT/$PROJECT.tmp/changelog`;
|
||||||
@ -978,7 +978,7 @@ if ($nboftargetok) {
|
|||||||
$ret=`chmod 755 $BUILDROOT/$PROJECT.tmp/debian/rules`;
|
$ret=`chmod 755 $BUILDROOT/$PROJECT.tmp/debian/rules`;
|
||||||
$ret=`chmod -R 644 $BUILDROOT/$PROJECT.tmp/dev/translation/autotranslator.class.php`;
|
$ret=`chmod -R 644 $BUILDROOT/$PROJECT.tmp/dev/translation/autotranslator.class.php`;
|
||||||
$ret=`chmod -R 644 $BUILDROOT/$PROJECT.tmp/htdocs/modulebuilder/template/class/actions_mymodule.class.php`;
|
$ret=`chmod -R 644 $BUILDROOT/$PROJECT.tmp/htdocs/modulebuilder/template/class/actions_mymodule.class.php`;
|
||||||
$ret=`chmod -R 644 $BUILDROOT/$PROJECT.tmp/htdocs/modulebuilder/template/class/api_myobject.class.php`;
|
$ret=`chmod -R 644 $BUILDROOT/$PROJECT.tmp/htdocs/modulebuilder/template/class/api_mymodule.class.php`;
|
||||||
$ret=`chmod -R 644 $BUILDROOT/$PROJECT.tmp/htdocs/modulebuilder/template/class/myobject.class.php`;
|
$ret=`chmod -R 644 $BUILDROOT/$PROJECT.tmp/htdocs/modulebuilder/template/class/myobject.class.php`;
|
||||||
$ret=`chmod -R 644 $BUILDROOT/$PROJECT.tmp/htdocs/modulebuilder/template/core/modules/modMyModule.class.php`;
|
$ret=`chmod -R 644 $BUILDROOT/$PROJECT.tmp/htdocs/modulebuilder/template/core/modules/modMyModule.class.php`;
|
||||||
$ret=`chmod -R 644 $BUILDROOT/$PROJECT.tmp/htdocs/modulebuilder/template/mymoduleindex.php`;
|
$ret=`chmod -R 644 $BUILDROOT/$PROJECT.tmp/htdocs/modulebuilder/template/mymoduleindex.php`;
|
||||||
|
|||||||
@ -15,21 +15,7 @@ diff -up htdocs/filefunc.inc.php.patch htdocs/filefunc.inc.php
|
|||||||
diff -up htdocs/install/inc.php.patch htdocs/install/inc.php
|
diff -up htdocs/install/inc.php.patch htdocs/install/inc.php
|
||||||
--- htdocs/install/inc.php.patch 2011-09-03 02:33:26.450952000 +0200
|
--- htdocs/install/inc.php.patch 2011-09-03 02:33:26.450952000 +0200
|
||||||
+++ htdocs/install/inc.php 2011-09-03 02:33:36.286952001 +0200
|
+++ htdocs/install/inc.php 2011-09-03 02:33:36.286952001 +0200
|
||||||
@@ -71,8 +71,8 @@
|
@@ -74,8 +74,8 @@
|
||||||
$conffile = "../conf/conf.php";
|
|
||||||
$conffiletoshow = "htdocs/conf/conf.php";
|
|
||||||
// For debian/redhat like systems
|
|
||||||
-//$conffile = "/etc/dolibarr/conf.php";
|
|
||||||
-//$conffiletoshow = "/etc/dolibarr/conf.php";
|
|
||||||
+$conffile = "/etc/dolibarr/conf.php";
|
|
||||||
+$conffiletoshow = "/etc/dolibarr/conf.php";
|
|
||||||
|
|
||||||
|
|
||||||
// Load conf file if it is already defined
|
|
||||||
diff -up htdocs/support/inc.php.patch htdocs/support/inc.php
|
|
||||||
--- htdocs/support/inc.php.patch 2011-09-03 02:34:39.606952000 +0200
|
|
||||||
+++ htdocs/support/inc.php 2011-09-03 02:33:59.814952000 +0200
|
|
||||||
@@ -69,8 +69,8 @@
|
|
||||||
$conffile = "../conf/conf.php";
|
$conffile = "../conf/conf.php";
|
||||||
$conffiletoshow = "htdocs/conf/conf.php";
|
$conffiletoshow = "htdocs/conf/conf.php";
|
||||||
// For debian/redhat like systems
|
// For debian/redhat like systems
|
||||||
|
|||||||
@ -25,7 +25,7 @@ BuildArch: noarch
|
|||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
|
|
||||||
Group: Applications/Productivity
|
Group: Applications/Productivity
|
||||||
Requires: httpd, php >= 5.3.0, php-cli, php-gd, php-ldap, php-imap, php-mysql, php-adodb, php-nusoap, dejavu-sans-fonts
|
Requires: httpd, php >= 5.3.0, php-cli, php-gd, php-ldap, php-imap, php-mysqli, php-adodb, php-nusoap, dejavu-sans-fonts
|
||||||
Requires: mysql-server, mysql
|
Requires: mysql-server, mysql
|
||||||
#BuildRequires: desktop-file-utils
|
#BuildRequires: desktop-file-utils
|
||||||
|
|
||||||
|
|||||||
@ -46,7 +46,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
|||||||
|
|
||||||
%if 0%{?fedora} || 0%{?rhel_version} || 0%{?centos_version}
|
%if 0%{?fedora} || 0%{?rhel_version} || 0%{?centos_version}
|
||||||
Group: Applications/Productivity
|
Group: Applications/Productivity
|
||||||
Requires: httpd, php >= 5.3.0, php-cli, php-gd, php-ldap, php-imap, php-mysql, php-adodb, php-nusoap, dejavu-sans-fonts
|
Requires: httpd, php >= 5.3.0, php-cli, php-gd, php-ldap, php-imap, php-mysqli, php-adodb, php-nusoap, dejavu-sans-fonts, php-mbstring, php-xml
|
||||||
Requires: mysql-server, mysql
|
Requires: mysql-server, mysql
|
||||||
BuildRequires: desktop-file-utils
|
BuildRequires: desktop-file-utils
|
||||||
%else
|
%else
|
||||||
@ -63,9 +63,9 @@ Requires: mysql-community-server, mysql-community-server-client
|
|||||||
BuildRequires: update-desktop-files fdupes
|
BuildRequires: update-desktop-files fdupes
|
||||||
%else
|
%else
|
||||||
Group: Applications/Productivity
|
Group: Applications/Productivity
|
||||||
Requires: httpd, php >= 5.3.0, php-cli, php-gd, php-ldap, php-imap
|
Requires: httpd, php >= 5.3.0, php-cli, php-gd, php-ldap, php-imap, php-mbstring, php-xml
|
||||||
Requires: mysql-server, mysql
|
Requires: mysql-server, mysql
|
||||||
Requires: php-mysql >= 4.1.0
|
Requires: php-mysqli >= 4.1.0
|
||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
@ -441,8 +441,8 @@ if [ "x$os" = "xfedora-redhat" -a -s /sbin/restorecon ]; then
|
|||||||
%else
|
%else
|
||||||
echo Add SE Linux permissions for dolibarr
|
echo Add SE Linux permissions for dolibarr
|
||||||
# semanage add records into /etc/selinux/targeted/contexts/files/file_contexts.local
|
# semanage add records into /etc/selinux/targeted/contexts/files/file_contexts.local
|
||||||
semanage fcontext -a -t httpd_sys_script_rw_t "/etc/dolibarr(/.*?)"
|
semanage fcontext -a -t httpd_sys_rw_content_t "/etc/dolibarr(/.*)?"
|
||||||
semanage fcontext -a -t httpd_sys_script_rw_t "/var/lib/dolibarr(/.*?)"
|
semanage fcontext -a -t httpd_sys_rw_content_t "/var/lib/dolibarr(/.*)?"
|
||||||
restorecon -R -v /etc/dolibarr
|
restorecon -R -v /etc/dolibarr
|
||||||
restorecon -R -v /var/lib/dolibarr
|
restorecon -R -v /var/lib/dolibarr
|
||||||
%endif
|
%endif
|
||||||
|
|||||||
@ -15,8 +15,14 @@ Alias /dolibarr /usr/share/dolibarr/htdocs
|
|||||||
|
|
||||||
# Directory for web pages
|
# Directory for web pages
|
||||||
<DirectoryMatch /usr/share/dolibarr>
|
<DirectoryMatch /usr/share/dolibarr>
|
||||||
|
<IfVersion >= 2.3>
|
||||||
|
Require all granted
|
||||||
|
</IfVersion>
|
||||||
|
<IfVersion < 2.3>
|
||||||
Order deny,allow
|
Order deny,allow
|
||||||
Allow from all
|
Allow from all
|
||||||
|
</IfVersion>
|
||||||
|
|
||||||
DirectoryIndex index.php
|
DirectoryIndex index.php
|
||||||
Options +FollowSymLinks +Indexes
|
Options +FollowSymLinks +Indexes
|
||||||
|
|
||||||
@ -60,27 +66,51 @@ Alias /dolibarr /usr/share/dolibarr/htdocs
|
|||||||
|
|
||||||
# Directory for public pages
|
# Directory for public pages
|
||||||
<DirectoryMatch /usr/share/dolibarr/public>
|
<DirectoryMatch /usr/share/dolibarr/public>
|
||||||
AllowOverride All
|
<IfVersion >= 2.3>
|
||||||
|
Require all granted
|
||||||
|
</IfVersion>
|
||||||
|
<IfVersion < 2.3>
|
||||||
Order deny,allow
|
Order deny,allow
|
||||||
Allow from all
|
Allow from all
|
||||||
|
</IfVersion>
|
||||||
|
|
||||||
|
AllowOverride All
|
||||||
</DirectoryMatch>
|
</DirectoryMatch>
|
||||||
|
|
||||||
# Config files
|
# Config files
|
||||||
<DirectoryMatch /etc/dolibarr>
|
<DirectoryMatch /etc/dolibarr>
|
||||||
AllowOverride All
|
<IfVersion >= 2.3>
|
||||||
|
Require all granted
|
||||||
|
</IfVersion>
|
||||||
|
<IfVersion < 2.3>
|
||||||
Order deny,allow
|
Order deny,allow
|
||||||
Allow from all
|
Allow from all
|
||||||
|
</IfVersion>
|
||||||
|
|
||||||
|
AllowOverride All
|
||||||
</DirectoryMatch>
|
</DirectoryMatch>
|
||||||
|
|
||||||
# Directory for data files
|
# Directory for data files
|
||||||
<DirectoryMatch /usr/share/dolibarr/documents>
|
<DirectoryMatch /usr/share/dolibarr/documents>
|
||||||
AllowOverride All
|
<IfVersion >= 2.3>
|
||||||
|
Require all granted
|
||||||
|
</IfVersion>
|
||||||
|
<IfVersion < 2.3>
|
||||||
Order deny,allow
|
Order deny,allow
|
||||||
Allow from all
|
Allow from all
|
||||||
|
</IfVersion>
|
||||||
|
|
||||||
|
AllowOverride All
|
||||||
</DirectoryMatch>
|
</DirectoryMatch>
|
||||||
<DirectoryMatch /var/lib/dolibarr/documents>
|
<DirectoryMatch /var/lib/dolibarr/documents>
|
||||||
AllowOverride All
|
<IfVersion >= 2.3>
|
||||||
Order deny,allow
|
Require all granted
|
||||||
|
</IfVersion>
|
||||||
|
<IfVersion < 2.3>
|
||||||
|
Order allow,deny
|
||||||
Allow from all
|
Allow from all
|
||||||
|
</IfVersion>
|
||||||
|
|
||||||
|
AllowOverride All
|
||||||
</DirectoryMatch>
|
</DirectoryMatch>
|
||||||
|
|
||||||
|
|||||||
@ -13,7 +13,7 @@
|
|||||||
"agenda"
|
"agenda"
|
||||||
],
|
],
|
||||||
"homepage": "https://www.dolibarr.org",
|
"homepage": "https://www.dolibarr.org",
|
||||||
"license": "GPL-3.0+",
|
"license": "GPL-3.0-or-later",
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/Dolibarr/dolibarr/issues",
|
"issues": "https://github.com/Dolibarr/dolibarr/issues",
|
||||||
"forum": "https://www.dolibarr.org/forum",
|
"forum": "https://www.dolibarr.org/forum",
|
||||||
|
|||||||
2
dev/initdemo/documents_demo/medias/README.txt
Normal file
2
dev/initdemo/documents_demo/medias/README.txt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# File(s) into root medias directory are provide by Pixabay with Licence "CC0 Creative Commons"
|
||||||
|
# https://creativecommons.org/publicdomain/zero/1.0/
|
||||||
BIN
dev/initdemo/documents_demo/medias/background_sunset.jpg
Normal file
BIN
dev/initdemo/documents_demo/medias/background_sunset.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 360 KiB |
@ -171,6 +171,7 @@ then
|
|||||||
cp -pr $mydir/../../htdocs/install/doctemplates/* "$documentdir/doctemplates/"
|
cp -pr $mydir/../../htdocs/install/doctemplates/* "$documentdir/doctemplates/"
|
||||||
mkdir -p "$documentdir/ecm/Administrative documents"
|
mkdir -p "$documentdir/ecm/Administrative documents"
|
||||||
mkdir -p "$documentdir/ecm/Images"
|
mkdir -p "$documentdir/ecm/Images"
|
||||||
|
rm -f "$documentdir/doctemplates/"*/index.html
|
||||||
echo cp -pr $mydir/../../doc/images/* "$documentdir/ecm/Images"
|
echo cp -pr $mydir/../../doc/images/* "$documentdir/ecm/Images"
|
||||||
cp -pr $mydir/../../doc/images/* "$documentdir/ecm/Images"
|
cp -pr $mydir/../../doc/images/* "$documentdir/ecm/Images"
|
||||||
else
|
else
|
||||||
|
|||||||
9871
dev/initdemo/mysqldump_dolibarr_7.0.0.sql
Normal file
9871
dev/initdemo/mysqldump_dolibarr_7.0.0.sql
Normal file
File diff suppressed because one or more lines are too long
@ -113,7 +113,7 @@ $tabcond[32]= ! empty($conf->accounting->enabled);
|
|||||||
|
|
||||||
// List of help for fields
|
// List of help for fields
|
||||||
$tabhelp=array();
|
$tabhelp=array();
|
||||||
$tabhelp[32] = array('code'=>$langs->trans("EnterAnyCode"));
|
$tabhelp[32] = array('code'=>$langs->trans("EnterAnyCode"), 'category_type'=>$langs->trans("SetToYesIfGroupIsComputationOfOtherGroups"), 'formula'=>$langs->trans("EnterCalculationRuleIfPreviousFieldIsYes"));
|
||||||
|
|
||||||
// List of check for fields (NOT USED YET)
|
// List of check for fields (NOT USED YET)
|
||||||
$tabfieldcheck=array();
|
$tabfieldcheck=array();
|
||||||
|
|||||||
@ -135,7 +135,7 @@ llxHeader();
|
|||||||
|
|
||||||
$form = new Form($db);
|
$form = new Form($db);
|
||||||
|
|
||||||
// $linkback = '<a href="' . DOL_URL_ROOT . '/admin/modules.php">' . $langs->trans("BackToModuleList") . '</a>';
|
// $linkback = '<a href="' . DOL_URL_ROOT . '/admin/modules.php?restore_lastsearch_values=1">' . $langs->trans("BackToModuleList") . '</a>';
|
||||||
print load_fiche_titre($langs->trans('ConfigAccountingExpert'), $linkback, 'title_setup');
|
print load_fiche_titre($langs->trans('ConfigAccountingExpert'), $linkback, 'title_setup');
|
||||||
|
|
||||||
print "\n".'<script type="text/javascript" language="javascript">'."\n";
|
print "\n".'<script type="text/javascript" language="javascript">'."\n";
|
||||||
|
|||||||
@ -159,7 +159,7 @@ llxHeader();
|
|||||||
|
|
||||||
$form = new Form($db);
|
$form = new Form($db);
|
||||||
|
|
||||||
//$linkback = '<a href="' . DOL_URL_ROOT . '/admin/modules.php">' . $langs->trans("BackToModuleList") . '</a>';
|
//$linkback = '<a href="' . DOL_URL_ROOT . '/admin/modules.php?restore_lastsearch_values=1">' . $langs->trans("BackToModuleList") . '</a>';
|
||||||
print load_fiche_titre($langs->trans('ConfigAccountingExpert'), $linkback, 'title_setup');
|
print load_fiche_titre($langs->trans('ConfigAccountingExpert'), $linkback, 'title_setup');
|
||||||
|
|
||||||
print '<form action="' . $_SERVER["PHP_SELF"] . '" method="post">';
|
print '<form action="' . $_SERVER["PHP_SELF"] . '" method="post">';
|
||||||
|
|||||||
@ -177,6 +177,11 @@ if (GETPOST('actionadd') || GETPOST('actionmodify'))
|
|||||||
$msg .= $langs->transnoentities('ErrorFieldFormat', $langs->transnoentities('Code')).'<br>';
|
$msg .= $langs->transnoentities('ErrorFieldFormat', $langs->transnoentities('Code')).'<br>';
|
||||||
}*/
|
}*/
|
||||||
}
|
}
|
||||||
|
if (! GETPOST('label','alpha'))
|
||||||
|
{
|
||||||
|
setEventMessages($langs->transnoentities("ErrorFieldRequired", $langs->transnoentitiesnoconv("Label")), null, 'errors');
|
||||||
|
$ok=0;
|
||||||
|
}
|
||||||
|
|
||||||
// Clean some parameters
|
// Clean some parameters
|
||||||
if ($_POST["accountancy_code"] <= 0) $_POST["accountancy_code"]=''; // If empty, we force to null
|
if ($_POST["accountancy_code"] <= 0) $_POST["accountancy_code"]=''; // If empty, we force to null
|
||||||
@ -208,7 +213,7 @@ if (GETPOST('actionadd') || GETPOST('actionmodify'))
|
|||||||
if ($tabrowid[$id] && ! in_array($tabrowid[$id],$listfieldinsert))
|
if ($tabrowid[$id] && ! in_array($tabrowid[$id],$listfieldinsert))
|
||||||
$sql.= $tabrowid[$id].",";
|
$sql.= $tabrowid[$id].",";
|
||||||
$sql.= $tabfieldinsert[$id];
|
$sql.= $tabfieldinsert[$id];
|
||||||
$sql.=",active)";
|
$sql.=",active,entity)";
|
||||||
$sql.= " VALUES(";
|
$sql.= " VALUES(";
|
||||||
|
|
||||||
// List of values
|
// List of values
|
||||||
@ -221,11 +226,11 @@ if (GETPOST('actionadd') || GETPOST('actionmodify'))
|
|||||||
$_POST[$listfieldvalue[$i]] = $conf->entity;
|
$_POST[$listfieldvalue[$i]] = $conf->entity;
|
||||||
}
|
}
|
||||||
if ($i) $sql.=",";
|
if ($i) $sql.=",";
|
||||||
if ($_POST[$listfieldvalue[$i]] == '' && ! ($listfieldvalue[$i] == 'code' && $id == 10)) $sql.="null"; // For vat, we want/accept code = ''
|
if ($_POST[$listfieldvalue[$i]] == '') $sql.="null"; // For vat, we want/accept code = ''
|
||||||
else $sql.="'".$db->escape($_POST[$listfieldvalue[$i]])."'";
|
else $sql.="'".$db->escape($_POST[$listfieldvalue[$i]])."'";
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
$sql.=",1)";
|
$sql.=",1,".$conf->entity.")";
|
||||||
|
|
||||||
dol_syslog("actionadd", LOG_DEBUG);
|
dol_syslog("actionadd", LOG_DEBUG);
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
@ -275,6 +280,7 @@ if (GETPOST('actionadd') || GETPOST('actionmodify'))
|
|||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
$sql.= " WHERE ".$rowidcol." = '".$rowid."'";
|
$sql.= " WHERE ".$rowidcol." = '".$rowid."'";
|
||||||
|
$sql.=" AND entity = ".$conf->entity;
|
||||||
|
|
||||||
dol_syslog("actionmodify", LOG_DEBUG);
|
dol_syslog("actionmodify", LOG_DEBUG);
|
||||||
//print $sql;
|
//print $sql;
|
||||||
@ -298,6 +304,7 @@ if ($action == 'confirm_delete' && $confirm == 'yes') // delete
|
|||||||
else { $rowidcol="rowid"; }
|
else { $rowidcol="rowid"; }
|
||||||
|
|
||||||
$sql = "DELETE from ".$tabname[$id]." WHERE ".$rowidcol."='".$rowid."'";
|
$sql = "DELETE from ".$tabname[$id]." WHERE ".$rowidcol."='".$rowid."'";
|
||||||
|
$sql.=" AND entity = ".$conf->entity;
|
||||||
|
|
||||||
dol_syslog("delete", LOG_DEBUG);
|
dol_syslog("delete", LOG_DEBUG);
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
@ -326,6 +333,7 @@ if ($action == $acts[0])
|
|||||||
elseif ($code) {
|
elseif ($code) {
|
||||||
$sql = "UPDATE ".$tabname[$id]." SET active = 1 WHERE code='".$code."'";
|
$sql = "UPDATE ".$tabname[$id]." SET active = 1 WHERE code='".$code."'";
|
||||||
}
|
}
|
||||||
|
$sql.=" AND entity = ".$conf->entity;
|
||||||
|
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
if (!$result)
|
if (!$result)
|
||||||
@ -346,6 +354,7 @@ if ($action == $acts[1])
|
|||||||
elseif ($code) {
|
elseif ($code) {
|
||||||
$sql = "UPDATE ".$tabname[$id]." SET active = 0 WHERE code='".$code."'";
|
$sql = "UPDATE ".$tabname[$id]." SET active = 0 WHERE code='".$code."'";
|
||||||
}
|
}
|
||||||
|
$sql.=" AND entity = ".$conf->entity;
|
||||||
|
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
if (!$result)
|
if (!$result)
|
||||||
@ -389,13 +398,7 @@ if ($id)
|
|||||||
{
|
{
|
||||||
// Complete requete recherche valeurs avec critere de tri
|
// Complete requete recherche valeurs avec critere de tri
|
||||||
$sql=$tabsql[$id];
|
$sql=$tabsql[$id];
|
||||||
|
$sql.= " WHERE a.entity = ".$conf->entity;
|
||||||
if ($search_country_id > 0)
|
|
||||||
{
|
|
||||||
if (preg_match('/ WHERE /',$sql)) $sql.= " AND ";
|
|
||||||
else $sql.=" WHERE ";
|
|
||||||
$sql.= " c.rowid = ".$search_country_id;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($sortfield)
|
if ($sortfield)
|
||||||
{
|
{
|
||||||
@ -416,7 +419,6 @@ if ($id)
|
|||||||
}
|
}
|
||||||
$sql.=$tabsqlsort[$id];
|
$sql.=$tabsqlsort[$id];
|
||||||
$sql.=$db->plimit($listlimit+1,$offset);
|
$sql.=$db->plimit($listlimit+1,$offset);
|
||||||
//print $sql;
|
|
||||||
|
|
||||||
$fieldlist=explode(',',$tabfield[$id]);
|
$fieldlist=explode(',',$tabfield[$id]);
|
||||||
|
|
||||||
|
|||||||
@ -136,17 +136,25 @@ if ($action == 'update') {
|
|||||||
$accounting = new AccountingAccount($db);
|
$accounting = new AccountingAccount($db);
|
||||||
|
|
||||||
//$msg .= '<div><span class="accountingprocessing">' . count($chk_prod) . ' ' . $langs->trans("SelectedLines") . '</span></div>';
|
//$msg .= '<div><span class="accountingprocessing">' . count($chk_prod) . ' ' . $langs->trans("SelectedLines") . '</span></div>';
|
||||||
|
$arrayofdifferentselectedvalues = array();
|
||||||
|
|
||||||
$cpt = 0; $ok = 0; $ko = 0;
|
$cpt = 0; $ok = 0; $ko = 0;
|
||||||
foreach ( $chk_prod as $productid ) {
|
foreach ( $chk_prod as $productid )
|
||||||
|
{
|
||||||
$accounting_account_id = GETPOST('codeventil_' . $productid);
|
$accounting_account_id = GETPOST('codeventil_' . $productid);
|
||||||
|
|
||||||
|
$result = 0;
|
||||||
|
if ($accounting_account_id > 0)
|
||||||
|
{
|
||||||
|
$arrayofdifferentselectedvalues[$accounting_account_id]=$accounting_account_id;
|
||||||
$result = $accounting->fetch($accounting_account_id, null, 1);
|
$result = $accounting->fetch($accounting_account_id, null, 1);
|
||||||
if ($result < 0) {
|
}
|
||||||
|
if ($result <= 0) {
|
||||||
// setEventMessages(null, $accounting->errors, 'errors');
|
// setEventMessages(null, $accounting->errors, 'errors');
|
||||||
$msg .= '<div><font color="red">' . $langs->trans("ErrorDB") . ' : ' . $langs->trans("Product") . ' ' . $productid . ' ' . $langs->trans("NotVentilatedinAccount") . ' : id=' . $accounting_account_id . '<br/> <pre>' . $sql . '</pre></font></div>';
|
$msg .= '<div><font color="red">' . $langs->trans("ErrorDB") . ' : ' . $langs->trans("Product") . ' ' . $productid . ' ' . $langs->trans("NotVentilatedinAccount") . ' : id=' . $accounting_account_id . '<br/> <pre>' . $sql . '</pre></font></div>';
|
||||||
|
$ko++;
|
||||||
} else {
|
} else {
|
||||||
|
$db->begin();
|
||||||
|
|
||||||
$sql = " UPDATE " . MAIN_DB_PREFIX . "product";
|
$sql = " UPDATE " . MAIN_DB_PREFIX . "product";
|
||||||
if ($accounting_product_mode == 'ACCOUNTANCY_BUY') {
|
if ($accounting_product_mode == 'ACCOUNTANCY_BUY') {
|
||||||
@ -158,23 +166,23 @@ if ($action == 'update') {
|
|||||||
$sql .= " WHERE rowid = " . $productid;
|
$sql .= " WHERE rowid = " . $productid;
|
||||||
|
|
||||||
dol_syslog("/accountancy/admin/productaccount.php sql=" . $sql, LOG_DEBUG);
|
dol_syslog("/accountancy/admin/productaccount.php sql=" . $sql, LOG_DEBUG);
|
||||||
if ($db->query($sql)) {
|
if ($db->query($sql))
|
||||||
|
{
|
||||||
$ok++;
|
$ok++;
|
||||||
//$msg .= '<div><font color="green">' . $langs->trans("Product") . ' ' . $productid . ' - ' . $langs->trans("VentilatedinAccount") . ' : ' . length_accountg($accounting->account_number) . '</font></div>';
|
$db->commit();
|
||||||
} else {
|
} else {
|
||||||
$ko++;
|
$ko++;
|
||||||
//$msg .= '<div><font color="red">' . $langs->trans("ErrorDB") . ' : ' . $langs->trans("Product") . ' ' . $productid . ' ' . $langs->trans("NotVentilatedinAccount") . ' : ' . length_accountg($accounting->account_number) . '<br/> <pre>' . $sql . '</pre></font></div>';
|
$db->rollback();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$cpt ++;
|
$cpt++;
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
//$msg .= '<div><span class="accountingprocessing">' . $langs->trans("AnyLineVentilate") . '</span></div>';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($ko) setEventMessages($langs->trans("XLineFailedToBeBinded", $ko), null, 'errors');
|
if ($ko) setEventMessages($langs->trans("XLineFailedToBeBinded", $ko), null, 'errors');
|
||||||
if ($ok) setEventMessages($langs->trans("XLineSuccessfullyBinded", $ok), null, 'mesgs');
|
if ($ok) setEventMessages($langs->trans("XLineSuccessfullyBinded", $ok), null, 'mesgs');
|
||||||
//$msg .= '<div><span class="accountingprocessing">' . $langs->trans("EndProcessing") . '</span></div>';
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -615,8 +615,8 @@ if ($action == 'create')
|
|||||||
print '<input type="text" name="subledger_account" value="'.$line->subledger_account.'">';
|
print '<input type="text" name="subledger_account" value="'.$line->subledger_account.'">';
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td><input type="text" size="15" name="label_compte" value="' . $line->label_compte . '"/></td>';
|
print '<td><input type="text" class="minwidth100" name="label_compte" value="' . $line->label_compte . '"/></td>';
|
||||||
print '<td><input type="text" size="15" name="label_operation" value="' . $line->label_operation. '"/></td>';
|
print '<td><input type="text" class="minwidth300" name="label_operation" value="' . $line->label_operation. '"/></td>';
|
||||||
print '<td align="right"><input type="text" size="6" class="right" name="debit" value="' . price($line->debit) . '"/></td>';
|
print '<td align="right"><input type="text" size="6" class="right" name="debit" value="' . price($line->debit) . '"/></td>';
|
||||||
print '<td align="right"><input type="text" size="6" class="right" name="credit" value="' . price($line->credit) . '"/></td>';
|
print '<td align="right"><input type="text" size="6" class="right" name="credit" value="' . price($line->credit) . '"/></td>';
|
||||||
print '<td>';
|
print '<td>';
|
||||||
@ -636,8 +636,8 @@ if ($action == 'create')
|
|||||||
print img_edit();
|
print img_edit();
|
||||||
print '</a> ';
|
print '</a> ';
|
||||||
|
|
||||||
$actiontodelete='detele';
|
$actiontodelete='delete';
|
||||||
if ($mode == '_tmp') $actiontodelete='confirm_delete';
|
if ($mode == '_tmp' || $action != 'delmouv') $actiontodelete='confirm_delete';
|
||||||
|
|
||||||
print '<a href="' . $_SERVER["PHP_SELF"] . '?action='.$actiontodelete.'&id=' . $line->id . '&piece_num=' . $line->piece_num . '&mode='.$mode.'">';
|
print '<a href="' . $_SERVER["PHP_SELF"] . '?action='.$actiontodelete.'&id=' . $line->id . '&piece_num=' . $line->piece_num . '&mode='.$mode.'">';
|
||||||
print img_delete();
|
print img_delete();
|
||||||
@ -673,8 +673,8 @@ if ($action == 'create')
|
|||||||
print '<input type="text" name="subledger_account" value="">';
|
print '<input type="text" name="subledger_account" value="">';
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td><input type="text" size="15" name="label_compte" value="' . $line->label_compte . '"/></td>';
|
print '<td><input type="text" class="minwidth100" name="label_compte" value="' . $line->label_compte . '"/></td>';
|
||||||
print '<td><input type="text" size="15" name="label_operation" value="' . $line->label_operation. '"/></td>';
|
print '<td><input type="text" class="minwidth300" name="label_operation" value="' . $line->label_operation. '"/></td>';
|
||||||
print '<td align="right"><input type="text" size="6" class="right" name="debit" value="' . ($debit ? price($debit) : '') . '"/></td>';
|
print '<td align="right"><input type="text" size="6" class="right" name="debit" value="' . ($debit ? price($debit) : '') . '"/></td>';
|
||||||
print '<td align="right"><input type="text" size="6" class="right" name="credit" value="' . ($credit ? price($credit) : '') . '"/></td>';
|
print '<td align="right"><input type="text" size="6" class="right" name="credit" value="' . ($credit ? price($credit) : '') . '"/></td>';
|
||||||
print '<td><input type="submit" class="button" name="save" value="' . $langs->trans("Add") . '"></td>';
|
print '<td><input type="submit" class="button" name="save" value="' . $langs->trans("Add") . '"></td>';
|
||||||
|
|||||||
@ -35,9 +35,6 @@ require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php';
|
|||||||
// Langs
|
// Langs
|
||||||
$langs->load("accountancy");
|
$langs->load("accountancy");
|
||||||
|
|
||||||
$page = GETPOST("page");
|
|
||||||
$sortorder = GETPOST("sortorder");
|
|
||||||
$sortfield = GETPOST("sortfield");
|
|
||||||
$action = GETPOST('action', 'alpha');
|
$action = GETPOST('action', 'alpha');
|
||||||
$search_mvt_num = GETPOST('search_mvt_num', 'int');
|
$search_mvt_num = GETPOST('search_mvt_num', 'int');
|
||||||
$search_doc_type = GETPOST("search_doc_type");
|
$search_doc_type = GETPOST("search_doc_type");
|
||||||
@ -49,7 +46,7 @@ $search_date_creation_start = dol_mktime(0, 0, 0, GETPOST('date_creation_startmo
|
|||||||
$search_date_creation_end = dol_mktime(0, 0, 0, GETPOST('date_creation_endmonth', 'int'), GETPOST('date_creation_endday', 'int'), GETPOST('date_creation_endyear', 'int'));
|
$search_date_creation_end = dol_mktime(0, 0, 0, GETPOST('date_creation_endmonth', 'int'), GETPOST('date_creation_endday', 'int'), GETPOST('date_creation_endyear', 'int'));
|
||||||
$search_date_modification_start = dol_mktime(0, 0, 0, GETPOST('date_modification_startmonth', 'int'), GETPOST('date_modification_startday', 'int'), GETPOST('date_modification_startyear', 'int'));
|
$search_date_modification_start = dol_mktime(0, 0, 0, GETPOST('date_modification_startmonth', 'int'), GETPOST('date_modification_startday', 'int'), GETPOST('date_modification_startyear', 'int'));
|
||||||
$search_date_modification_end = dol_mktime(0, 0, 0, GETPOST('date_modification_endmonth', 'int'), GETPOST('date_modification_endday', 'int'), GETPOST('date_modification_endyear', 'int'));
|
$search_date_modification_end = dol_mktime(0, 0, 0, GETPOST('date_modification_endmonth', 'int'), GETPOST('date_modification_endday', 'int'), GETPOST('date_modification_endyear', 'int'));
|
||||||
|
//var_dump($search_date_start);exit;
|
||||||
if (GETPOST("button_delmvt_x") || GETPOST("button_delmvt.x") || GETPOST("button_delmvt")) {
|
if (GETPOST("button_delmvt_x") || GETPOST("button_delmvt.x") || GETPOST("button_delmvt")) {
|
||||||
$action = 'delbookkeepingyear';
|
$action = 'delbookkeepingyear';
|
||||||
}
|
}
|
||||||
@ -90,7 +87,7 @@ $offset = $limit * $page;
|
|||||||
$pageprev = $page - 1;
|
$pageprev = $page - 1;
|
||||||
$pagenext = $page + 1;
|
$pagenext = $page + 1;
|
||||||
if ($sortorder == "") $sortorder = "ASC";
|
if ($sortorder == "") $sortorder = "ASC";
|
||||||
if ($sortfield == "") $sortfield = "t.rowid";
|
if ($sortfield == "") $sortfield = "t.piece_num,t.rowid";
|
||||||
|
|
||||||
|
|
||||||
$object = new BookKeeping($db);
|
$object = new BookKeeping($db);
|
||||||
@ -99,11 +96,14 @@ $formaccounting = new FormAccounting($db);
|
|||||||
$formother = new FormOther($db);
|
$formother = new FormOther($db);
|
||||||
$form = new Form($db);
|
$form = new Form($db);
|
||||||
|
|
||||||
if (! in_array($action, array('export_file', 'delmouv', 'delmouvconfirm')) && ! isset($_POST['begin']) && ! isset($_GET['begin']) && ! isset($_POST['formfilteraction']) && empty($page) && ! GETPOST('noreset','int'))
|
if (! in_array($action, array('export_file', 'delmouv', 'delmouvconfirm')) && ! isset($_POST['begin']) && ! isset($_GET['begin']) && ! isset($_POST['formfilteraction']) && GETPOST('page','int') == '' && ! GETPOST('noreset','int'))
|
||||||
{
|
{
|
||||||
|
if (empty($search_date_start) && empty($search_date_end))
|
||||||
|
{
|
||||||
$query = "SELECT date_start, date_end from ".MAIN_DB_PREFIX."accounting_fiscalyear ";
|
$query = "SELECT date_start, date_end from ".MAIN_DB_PREFIX."accounting_fiscalyear ";
|
||||||
$query .= " where date_start < now() and date_end > now() limit 1";
|
$query.= " where date_start < '".$db->idate(dol_now())."' and date_end > '".$db->idate(dol_now())."' limit 1";
|
||||||
$res = $db->query($query);
|
$res = $db->query($query);
|
||||||
|
|
||||||
if ($res->num_rows > 0) {
|
if ($res->num_rows > 0) {
|
||||||
$fiscalYear = $db->fetch_object($res);
|
$fiscalYear = $db->fetch_object($res);
|
||||||
$search_date_start = strtotime($fiscalYear->date_start);
|
$search_date_start = strtotime($fiscalYear->date_start);
|
||||||
@ -111,6 +111,7 @@ if (! in_array($action, array('export_file', 'delmouv', 'delmouvconfirm')) && !
|
|||||||
} else {
|
} else {
|
||||||
$month_start= ($conf->global->SOCIETE_FISCAL_MONTH_START?($conf->global->SOCIETE_FISCAL_MONTH_START):1);
|
$month_start= ($conf->global->SOCIETE_FISCAL_MONTH_START?($conf->global->SOCIETE_FISCAL_MONTH_START):1);
|
||||||
$year_start = dol_print_date(dol_now(), '%Y');
|
$year_start = dol_print_date(dol_now(), '%Y');
|
||||||
|
if (dol_print_date(dol_now(), '%m') < $month_start) $year_start--; // If current month is lower that starting fiscal month, we start last year
|
||||||
$year_end = $year_start + 1;
|
$year_end = $year_start + 1;
|
||||||
$month_end = $month_start - 1;
|
$month_end = $month_start - 1;
|
||||||
if ($month_end < 1)
|
if ($month_end < 1)
|
||||||
@ -121,13 +122,14 @@ if (! in_array($action, array('export_file', 'delmouv', 'delmouvconfirm')) && !
|
|||||||
$search_date_start = dol_mktime(0, 0, 0, $month_start, 1, $year_start);
|
$search_date_start = dol_mktime(0, 0, 0, $month_start, 1, $year_start);
|
||||||
$search_date_end = dol_get_last_day($year_end, $month_end);
|
$search_date_end = dol_get_last_day($year_end, $month_end);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$arrayfields=array(
|
$arrayfields=array(
|
||||||
't.piece_num'=>array('label'=>$langs->trans("TransactionNumShort"), 'checked'=>1),
|
't.piece_num'=>array('label'=>$langs->trans("TransactionNumShort"), 'checked'=>1),
|
||||||
't.doc_date'=>array('label'=>$langs->trans("Docdate"), 'checked'=>1),
|
't.doc_date'=>array('label'=>$langs->trans("Docdate"), 'checked'=>1),
|
||||||
't.doc_ref'=>array('label'=>$langs->trans("Docref"), 'checked'=>1),
|
't.doc_ref'=>array('label'=>$langs->trans("Piece"), 'checked'=>1),
|
||||||
't.numero_compte'=>array('label'=>$langs->trans("AccountAccountingShort"), 'checked'=>1),
|
't.numero_compte'=>array('label'=>$langs->trans("AccountAccountingShort"), 'checked'=>1),
|
||||||
't.subledger_account'=>array('label'=>$langs->trans("SubledgerAccount"), 'checked'=>1),
|
't.subledger_account'=>array('label'=>$langs->trans("SubledgerAccount"), 'checked'=>1),
|
||||||
't.label_operation'=>array('label'=>$langs->trans("Label"), 'checked'=>1),
|
't.label_operation'=>array('label'=>$langs->trans("Label"), 'checked'=>1),
|
||||||
@ -433,7 +435,7 @@ else $button.= $langs->trans("ExportList");
|
|||||||
$button.= '</a>';
|
$button.= '</a>';
|
||||||
|
|
||||||
|
|
||||||
$groupby = ' <a class="nohover" href="'.DOL_URL_ROOT.'/accountancy/bookkeeping/listbyaccount.php"">' . $langs->trans("GroupByAccountAccounting") . '</a>';
|
$groupby = ' <a class="nohover" href="'.DOL_URL_ROOT.'/accountancy/bookkeeping/listbyaccount.php?'.$param.'">' . $langs->trans("GroupByAccountAccounting") . '</a>';
|
||||||
$addbutton = '<a class="butAction" href="./card.php?action=create">' . $langs->trans("NewAccountingMvt") . '</a>';
|
$addbutton = '<a class="butAction" href="./card.php?action=create">' . $langs->trans("NewAccountingMvt") . '</a>';
|
||||||
|
|
||||||
print_barre_liste($title_page, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $button, $result, $nbtotalofrecords, 'title_accountancy', 0, $groupby.$addbutton, '', $limit);
|
print_barre_liste($title_page, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $button, $result, $nbtotalofrecords, 'title_accountancy', 0, $groupby.$addbutton, '', $limit);
|
||||||
@ -579,17 +581,17 @@ print '</td>';
|
|||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
if (! empty($arrayfields['t.piece_num']['checked'])) print_liste_field_titre("TransactionNumShort", $_SERVER['PHP_SELF'], "t.piece_num", "", $param, "", $sortfield, $sortorder);
|
if (! empty($arrayfields['t.piece_num']['checked'])) print_liste_field_titre($arrayfields['t.piece_num']['label'], $_SERVER['PHP_SELF'], "t.piece_num", "", $param, "", $sortfield, $sortorder);
|
||||||
if (! empty($arrayfields['t.doc_date']['checked'])) print_liste_field_titre("Docdate", $_SERVER['PHP_SELF'], "t.doc_date", "", $param, 'align="center"', $sortfield, $sortorder);
|
if (! empty($arrayfields['t.doc_date']['checked'])) print_liste_field_titre($arrayfields['t.doc_date']['label'], $_SERVER['PHP_SELF'], "t.doc_date", "", $param, 'align="center"', $sortfield, $sortorder);
|
||||||
if (! empty($arrayfields['t.doc_ref']['checked'])) print_liste_field_titre("Docref", $_SERVER['PHP_SELF'], "t.doc_ref", "", $param, "", $sortfield, $sortorder);
|
if (! empty($arrayfields['t.doc_ref']['checked'])) print_liste_field_titre($arrayfields['t.doc_ref']['label'], $_SERVER['PHP_SELF'], "t.doc_ref", "", $param, "", $sortfield, $sortorder);
|
||||||
if (! empty($arrayfields['t.numero_compte']['checked'])) print_liste_field_titre("AccountAccountingShort", $_SERVER['PHP_SELF'], "t.numero_compte", "", $param, "", $sortfield, $sortorder);
|
if (! empty($arrayfields['t.numero_compte']['checked'])) print_liste_field_titre($arrayfields['t.numero_compte']['label'], $_SERVER['PHP_SELF'], "t.numero_compte", "", $param, "", $sortfield, $sortorder);
|
||||||
if (! empty($arrayfields['t.subledger_account']['checked'])) print_liste_field_titre("SubledgerAccount", $_SERVER['PHP_SELF'], "t.subledger_account", "", $param, "", $sortfield, $sortorder);
|
if (! empty($arrayfields['t.subledger_account']['checked'])) print_liste_field_titre($arrayfields['t.subledger_account']['label'], $_SERVER['PHP_SELF'], "t.subledger_account", "", $param, "", $sortfield, $sortorder);
|
||||||
if (! empty($arrayfields['t.label_operation']['checked'])) print_liste_field_titre("Label", $_SERVER['PHP_SELF'], "t.label_operation", "", $param, "", $sortfield, $sortorder);
|
if (! empty($arrayfields['t.label_operation']['checked'])) print_liste_field_titre($arrayfields['t.label_operation']['label'], $_SERVER['PHP_SELF'], "t.label_operation", "", $param, "", $sortfield, $sortorder);
|
||||||
if (! empty($arrayfields['t.debit']['checked'])) print_liste_field_titre("Debit", $_SERVER['PHP_SELF'], "t.debit", "", $param, 'align="right"', $sortfield, $sortorder);
|
if (! empty($arrayfields['t.debit']['checked'])) print_liste_field_titre($arrayfields['t.debit']['label'], $_SERVER['PHP_SELF'], "t.debit", "", $param, 'align="right"', $sortfield, $sortorder);
|
||||||
if (! empty($arrayfields['t.credit']['checked'])) print_liste_field_titre("Credit", $_SERVER['PHP_SELF'], "t.credit", "", $param, 'align="right"', $sortfield, $sortorder);
|
if (! empty($arrayfields['t.credit']['checked'])) print_liste_field_titre($arrayfields['t.credit']['label'], $_SERVER['PHP_SELF'], "t.credit", "", $param, 'align="right"', $sortfield, $sortorder);
|
||||||
if (! empty($arrayfields['t.code_journal']['checked'])) print_liste_field_titre("Codejournal", $_SERVER['PHP_SELF'], "t.code_journal", "", $param, 'align="center"', $sortfield, $sortorder);
|
if (! empty($arrayfields['t.code_journal']['checked'])) print_liste_field_titre($arrayfields['t.code_journal']['label'], $_SERVER['PHP_SELF'], "t.code_journal", "", $param, 'align="center"', $sortfield, $sortorder);
|
||||||
if (! empty($arrayfields['t.date_creation']['checked'])) print_liste_field_titre("DateCreation", $_SERVER['PHP_SELF'], "t.date_creation", "", $param, 'align="center"', $sortfield, $sortorder);
|
if (! empty($arrayfields['t.date_creation']['checked'])) print_liste_field_titre($arrayfields['t.date_creation']['label'], $_SERVER['PHP_SELF'], "t.date_creation", "", $param, 'align="center"', $sortfield, $sortorder);
|
||||||
if (! empty($arrayfields['t.tms']['checked'])) print_liste_field_titre("DateModification", $_SERVER['PHP_SELF'], "t.tms", "", $param, 'align="center"', $sortfield, $sortorder);
|
if (! empty($arrayfields['t.tms']['checked'])) print_liste_field_titre($arrayfields['t.tms']['label'], $_SERVER['PHP_SELF'], "t.tms", "", $param, 'align="center"', $sortfield, $sortorder);
|
||||||
print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="center"',$sortfield,$sortorder,'maxwidthsearch ');
|
print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="center"',$sortfield,$sortorder,'maxwidthsearch ');
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
@ -680,21 +682,21 @@ if ($num > 0)
|
|||||||
// Creation operation date
|
// Creation operation date
|
||||||
if (! empty($arrayfields['t.date_creation']['checked']))
|
if (! empty($arrayfields['t.date_creation']['checked']))
|
||||||
{
|
{
|
||||||
print '<td align="center">' . dol_print_date($line->date_creation, 'day') . '</td>';
|
print '<td align="center">' . dol_print_date($line->date_creation, 'dayhour') . '</td>';
|
||||||
if (! $i) $totalarray['nbfield']++;
|
if (! $i) $totalarray['nbfield']++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Modification operation date
|
// Modification operation date
|
||||||
if (! empty($arrayfields['t.tms']['checked']))
|
if (! empty($arrayfields['t.tms']['checked']))
|
||||||
{
|
{
|
||||||
print '<td align="center">' . dol_print_date($line->date_modification, 'day') . '</td>';
|
print '<td align="center">' . dol_print_date($line->date_modification, 'dayhour') . '</td>';
|
||||||
if (! $i) $totalarray['nbfield']++;
|
if (! $i) $totalarray['nbfield']++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Action column
|
// Action column
|
||||||
print '<td align="center">';
|
print '<td align="center">';
|
||||||
print '<a href="./card.php?piece_num=' . $line->piece_num . '">' . img_edit() . '</a> ';
|
print '<a href="'.DOL_URL_ROOT.'/accountancy/bookkeeping/card.php?piece_num=' . $line->piece_num . $param . '&page=' . $page . ($sortfield ? '&sortfield='.$sortfield : '') . ($sortorder ? '&sortorder='.$sortorder : '') . '">' . img_edit() . '</a> ';
|
||||||
print '<a href="' . $_SERVER['PHP_SELF'] . '?action=delmouv&mvt_num=' . $line->piece_num . $param . '&page=' . $page . '">' . img_delete() . '</a>';
|
print '<a href="' . $_SERVER['PHP_SELF'] . '?action=delmouv&mvt_num=' . $line->piece_num . $param . '&page=' . $page . ($sortfield ? '&sortfield='.$sortfield : '') . ($sortorder ? '&sortorder='.$sortorder : '') . '">' . img_delete() . '</a>';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
if (! $i) $totalarray['nbfield']++;
|
if (! $i) $totalarray['nbfield']++;
|
||||||
|
|
||||||
@ -707,6 +709,7 @@ if ($num > 0)
|
|||||||
if (isset($totalarray['totaldebitfield']) || isset($totalarray['totalcreditfield']))
|
if (isset($totalarray['totaldebitfield']) || isset($totalarray['totalcreditfield']))
|
||||||
{
|
{
|
||||||
$i=0;
|
$i=0;
|
||||||
|
print '<tr class="liste_total">';
|
||||||
while ($i < $totalarray['nbfield'])
|
while ($i < $totalarray['nbfield'])
|
||||||
{
|
{
|
||||||
$i++;
|
$i++;
|
||||||
@ -727,7 +730,7 @@ if ($num > 0)
|
|||||||
print "</table>";
|
print "</table>";
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
// TODO Replace this with mass action
|
// TODO Replace this with mass delete action
|
||||||
print '<div class="tabsAction tabsActionNoBottom">' . "\n";
|
print '<div class="tabsAction tabsActionNoBottom">' . "\n";
|
||||||
print '<a class="butActionDelete" name="button_delmvt" href="'.$_SERVER["PHP_SELF"].'?action=delbookkeepingyear'.($param?'&'.$param:'').'">' . $langs->trans("DelBookKeeping") . '</a>';
|
print '<a class="butActionDelete" name="button_delmvt" href="'.$_SERVER["PHP_SELF"].'?action=delbookkeepingyear'.($param?'&'.$param:'').'">' . $langs->trans("DelBookKeeping") . '</a>';
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|||||||
@ -68,7 +68,7 @@ $pagenext = $page + 1;
|
|||||||
if ($sortorder == "") $sortorder = "ASC";
|
if ($sortorder == "") $sortorder = "ASC";
|
||||||
if ($sortfield == "") $sortfield = "t.rowid";
|
if ($sortfield == "") $sortfield = "t.rowid";
|
||||||
|
|
||||||
if (empty($search_date_start)) {
|
if (empty($search_date_start) && empty($search_date_end)) {
|
||||||
$sql = "SELECT date_start, date_end from ".MAIN_DB_PREFIX."accounting_fiscalyear ";
|
$sql = "SELECT date_start, date_end from ".MAIN_DB_PREFIX."accounting_fiscalyear ";
|
||||||
$sql.= " where date_start < '".$db->idate(dol_now())."' and date_end > '".$db->idate(dol_now())."'";
|
$sql.= " where date_start < '".$db->idate(dol_now())."' and date_end > '".$db->idate(dol_now())."'";
|
||||||
$sql.= $db->plimit(1);
|
$sql.= $db->plimit(1);
|
||||||
@ -81,6 +81,7 @@ if (empty($search_date_start)) {
|
|||||||
} else {
|
} else {
|
||||||
$month_start= ($conf->global->SOCIETE_FISCAL_MONTH_START?($conf->global->SOCIETE_FISCAL_MONTH_START):1);
|
$month_start= ($conf->global->SOCIETE_FISCAL_MONTH_START?($conf->global->SOCIETE_FISCAL_MONTH_START):1);
|
||||||
$year_start = dol_print_date(dol_now(), '%Y');
|
$year_start = dol_print_date(dol_now(), '%Y');
|
||||||
|
if (dol_print_date(dol_now(), '%m') < $month_start) $year_start--; // If current month is lower that starting fiscal month, we start last year
|
||||||
$year_end = $year_start + 1;
|
$year_end = $year_start + 1;
|
||||||
$month_end = $month_start - 1;
|
$month_end = $month_start - 1;
|
||||||
if ($month_end < 1)
|
if ($month_end < 1)
|
||||||
@ -225,14 +226,13 @@ if ($action == 'delbookkeepingyear') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$param=$options;
|
||||||
|
|
||||||
print '<form method="POST" id="searchFormList" action="' . $_SERVER["PHP_SELF"] . '">';
|
print '<form method="POST" id="searchFormList" action="' . $_SERVER["PHP_SELF"] . '">';
|
||||||
|
|
||||||
$viewflat = ' <a class="nohover" href="'.DOL_URL_ROOT.'/accountancy/bookkeeping/list.php">' . $langs->trans("ViewFlatList") . '</a>';
|
$viewflat = ' <a class="nohover" href="'.DOL_URL_ROOT.'/accountancy/bookkeeping/list.php?'.$param.'">' . $langs->trans("ViewFlatList") . '</a>';
|
||||||
$addbutton = '<a class="butAction" href="./card.php?action=create">' . $langs->trans("NewAccountingMvt") . '</a>';
|
$addbutton = '<a class="butAction" href="./card.php?action=create">' . $langs->trans("NewAccountingMvt") . '</a>';
|
||||||
|
|
||||||
$param=$options;
|
|
||||||
if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.urlencode($contextpage);
|
if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.urlencode($contextpage);
|
||||||
if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($limit);
|
if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($limit);
|
||||||
|
|
||||||
|
|||||||
@ -172,10 +172,10 @@ print '</td></tr>';
|
|||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
$sql = "SELECT bk.rowid, bk.doc_date, bk.doc_type, bk.doc_ref, ";
|
$sql = "SELECT bk.rowid, bk.doc_date, bk.doc_type, bk.doc_ref, ";
|
||||||
$sql .= " bk.thirdparty_code, bk.numero_compte , bk.label_compte, bk.debit, ";
|
$sql .= " bk.subledger_account, bk.numero_compte , bk.label_compte, bk.debit, ";
|
||||||
$sql .= " bk.credit, bk.montant , bk.sens , bk.code_journal , bk.piece_num, bk.lettering_code ";
|
$sql .= " bk.credit, bk.montant , bk.sens , bk.code_journal , bk.piece_num, bk.lettering_code ";
|
||||||
$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk";
|
$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk";
|
||||||
$sql .= " WHERE (bk.thirdparty_code = '" . $object->code_compta . "' AND bk.numero_compte = '" . $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER . "' )";
|
$sql .= " WHERE (bk.subledger_account = '" . $object->code_compta . "' AND bk.numero_compte = '" . $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER . "' )";
|
||||||
|
|
||||||
if (dol_strlen($search_year)) {
|
if (dol_strlen($search_year)) {
|
||||||
$date_start = dol_mktime(0, 0, 0, 1, 1, $search_year);
|
$date_start = dol_mktime(0, 0, 0, 1, 1, $search_year);
|
||||||
|
|||||||
@ -188,10 +188,10 @@ print '</td></tr>';
|
|||||||
print '</table>';
|
print '</table>';
|
||||||
|
|
||||||
$sql = "SELECT bk.rowid, bk.doc_date, bk.doc_type, bk.doc_ref, ";
|
$sql = "SELECT bk.rowid, bk.doc_date, bk.doc_type, bk.doc_ref, ";
|
||||||
$sql .= " bk.thirdparty_code, bk.numero_compte , bk.label_compte, bk.debit, ";
|
$sql .= " bk.subledger_account, bk.numero_compte , bk.label_compte, bk.debit, ";
|
||||||
$sql .= " bk.credit, bk.montant , bk.sens , bk.code_journal , bk.piece_num, bk.lettering_code ";
|
$sql .= " bk.credit, bk.montant , bk.sens , bk.code_journal , bk.piece_num, bk.lettering_code ";
|
||||||
$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk";
|
$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk";
|
||||||
$sql .= " WHERE (bk.thirdparty_code = '" . $object->code_compta_fournisseur . "' AND bk.numero_compte = '" . $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER . "' )";
|
$sql .= " WHERE (bk.subledger_account = '" . $object->code_compta_fournisseur . "' AND bk.numero_compte = '" . $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER . "' )";
|
||||||
|
|
||||||
if (dol_strlen($search_year)) {
|
if (dol_strlen($search_year)) {
|
||||||
$date_start = dol_mktime(0, 0, 0, 1, 1, $search_year);
|
$date_start = dol_mktime(0, 0, 0, 1, 1, $search_year);
|
||||||
|
|||||||
@ -28,27 +28,331 @@ require_once DOL_DOCUMENT_ROOT . '/core/lib/accounting.lib.php';
|
|||||||
/**
|
/**
|
||||||
* Class to manage categories of an accounting account
|
* Class to manage categories of an accounting account
|
||||||
*/
|
*/
|
||||||
class AccountancyCategory
|
class AccountancyCategory // extends CommonObject
|
||||||
{
|
{
|
||||||
private $db;
|
public $db; //!< To store db handler
|
||||||
public $error;
|
public $error; //!< To return error code (or message)
|
||||||
public $errors = array ();
|
public $errors=array(); //!< To return several error codes (or messages)
|
||||||
public $element = 'accounting_category';
|
public $element='c_accounting_category'; //!< Id that identify managed objects
|
||||||
public $table_element = 'c_accounting_category';
|
public $table_element='c_accounting_category'; //!< Name of table without prefix where object is stored
|
||||||
|
|
||||||
public $id;
|
public $id;
|
||||||
|
public $code;
|
||||||
|
public $label;
|
||||||
|
public $range_account;
|
||||||
|
public $sens;
|
||||||
|
public $category_type;
|
||||||
|
public $formula;
|
||||||
|
public $position;
|
||||||
|
public $fk_country;
|
||||||
|
public $active;
|
||||||
|
|
||||||
public $lines_cptbk;
|
public $lines_cptbk;
|
||||||
public $lines_display;
|
public $lines_display;
|
||||||
public $sdc;
|
public $sdc;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*
|
*
|
||||||
* @param DoliDB $db Database handler
|
* @param DoliDb $db Database handler
|
||||||
*/
|
*/
|
||||||
public function __construct($db) {
|
function __construct($db)
|
||||||
|
{
|
||||||
$this->db = $db;
|
$this->db = $db;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create object into database
|
||||||
|
*
|
||||||
|
* @param User $user User that create
|
||||||
|
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
||||||
|
* @return int <0 if KO, Id of created object if OK
|
||||||
|
*/
|
||||||
|
function create($user, $notrigger=0)
|
||||||
|
{
|
||||||
|
global $conf, $langs;
|
||||||
|
$error=0;
|
||||||
|
|
||||||
|
// Clean parameters
|
||||||
|
if (isset($this->code)) $this->code=trim($this->code);
|
||||||
|
if (isset($this->label)) $this->label=trim($this->label);
|
||||||
|
if (isset($this->range_account)) $this->range_account=trim($this->range_account);
|
||||||
|
if (isset($this->sens)) $this->sens=trim($this->sens);
|
||||||
|
if (isset($this->category_type)) $this->category_type=trim($this->category_type);
|
||||||
|
if (isset($this->formula)) $this->formula=trim($this->formula);
|
||||||
|
if (isset($this->position)) $this->position=trim($this->position);
|
||||||
|
if (isset($this->fk_country)) $this->fk_country=trim($this->fk_country);
|
||||||
|
if (isset($this->active)) $this->active=trim($this->active);
|
||||||
|
|
||||||
|
// Check parameters
|
||||||
|
// Put here code to add control on parameters values
|
||||||
|
|
||||||
|
// Insert request
|
||||||
|
$sql = "INSERT INTO ".MAIN_DB_PREFIX."c_accounting_category(";
|
||||||
|
if ($this->rowid > 0) $sql.= "rowid,";
|
||||||
|
$sql.= "code,";
|
||||||
|
$sql.= "label,";
|
||||||
|
$sql.= "range_account,";
|
||||||
|
$sql.= "sens,";
|
||||||
|
$sql.= "category_type,";
|
||||||
|
$sql.= "formula,";
|
||||||
|
$sql.= "position,";
|
||||||
|
$sql.= "fk_country,";
|
||||||
|
$sql.= "active";
|
||||||
|
$sql.= ") VALUES (";
|
||||||
|
if ($this->rowid > 0) $sql.= " ".$this->rowid.",";
|
||||||
|
$sql.= " ".(! isset($this->code)?'NULL':"'".$this->db->escape($this->code)."'").",";
|
||||||
|
$sql.= " ".(! isset($this->label)?'NULL':"'".$this->db->escape($this->label)."'").",";
|
||||||
|
$sql.= " ".(! isset($this->range_account)?'NULL':"'".$this->db->escape($this->range_account)."'").",";
|
||||||
|
$sql.= " ".(! isset($this->sens)?'NULL':"'".$this->db->escape($this->sens)."'").",";
|
||||||
|
$sql.= " ".(! isset($this->category_type)?'NULL':"'".$this->db->escape($this->category_type)."'").",";
|
||||||
|
$sql.= " ".(! isset($this->formula)?'NULL':"'".$this->db->escape($this->formula)."'").",";
|
||||||
|
$sql.= " ".(! isset($this->position)?'NULL':$this->db->escape($this->position)).",";
|
||||||
|
$sql.= " ".(! isset($this->fk_country)?'NULL':$this->db->escape($this->fk_country)).",";
|
||||||
|
$sql.= " ".(! isset($this->active)?'NULL':$this->db->escape($this->active));
|
||||||
|
$sql.= ")";
|
||||||
|
|
||||||
|
$this->db->begin();
|
||||||
|
|
||||||
|
dol_syslog(get_class($this)."::create", LOG_DEBUG);
|
||||||
|
$resql=$this->db->query($sql);
|
||||||
|
if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); }
|
||||||
|
|
||||||
|
if (! $error)
|
||||||
|
{
|
||||||
|
$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."c_accounting_category");
|
||||||
|
|
||||||
|
if (! $notrigger)
|
||||||
|
{
|
||||||
|
// Uncomment this and change MYOBJECT to your own tag if you
|
||||||
|
// want this action call a trigger.
|
||||||
|
|
||||||
|
//// Call triggers
|
||||||
|
//include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
||||||
|
//$interface=new Interfaces($this->db);
|
||||||
|
//$result=$interface->run_triggers('MYOBJECT_CREATE',$this,$user,$langs,$conf);
|
||||||
|
//if ($result < 0) { $error++; $this->errors=$interface->errors; }
|
||||||
|
//// End call triggers
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Commit or rollback
|
||||||
|
if ($error)
|
||||||
|
{
|
||||||
|
foreach($this->errors as $errmsg)
|
||||||
|
{
|
||||||
|
dol_syslog(get_class($this)."::create ".$errmsg, LOG_ERR);
|
||||||
|
$this->error.=($this->error?', '.$errmsg:$errmsg);
|
||||||
|
}
|
||||||
|
$this->db->rollback();
|
||||||
|
return -1*$error;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->db->commit();
|
||||||
|
return $this->id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load object in memory from database
|
||||||
|
*
|
||||||
|
* @param int $id Id object
|
||||||
|
* @param string $code Code
|
||||||
|
* @param string $label Label
|
||||||
|
* @return int <0 if KO, >0 if OK
|
||||||
|
*/
|
||||||
|
function fetch($id,$code='',$label='')
|
||||||
|
{
|
||||||
|
global $langs;
|
||||||
|
$sql = "SELECT";
|
||||||
|
$sql.= " t.rowid,";
|
||||||
|
$sql.= " t.code,";
|
||||||
|
$sql.= " t.label,";
|
||||||
|
$sql.= " t.range_account,";
|
||||||
|
$sql.= " t.sens,";
|
||||||
|
$sql.= " t.category_type,";
|
||||||
|
$sql.= " t.formula,";
|
||||||
|
$sql.= " t.position,";
|
||||||
|
$sql.= " t.fk_country,";
|
||||||
|
$sql.= " t.active";
|
||||||
|
$sql.= " FROM ".MAIN_DB_PREFIX."c_accounting_category as t";
|
||||||
|
if ($id) $sql.= " WHERE t.rowid = ".$id;
|
||||||
|
elseif ($code) $sql.= " WHERE t.code = '".$this->db->escape($code)."'";
|
||||||
|
elseif ($label) $sql.= " WHERE t.label = '".$this->db->escape($label)."'";
|
||||||
|
|
||||||
|
dol_syslog(get_class($this)."::fetch", LOG_DEBUG);
|
||||||
|
$resql=$this->db->query($sql);
|
||||||
|
if ($resql)
|
||||||
|
{
|
||||||
|
if ($this->db->num_rows($resql))
|
||||||
|
{
|
||||||
|
$obj = $this->db->fetch_object($resql);
|
||||||
|
|
||||||
|
$this->id = $obj->rowid;
|
||||||
|
$this->code = $obj->code;
|
||||||
|
$this->label = $obj->label;
|
||||||
|
$this->range_account = $obj->range_account;
|
||||||
|
$this->sens = $obj->sens;
|
||||||
|
$this->category_type = $obj->category_type;
|
||||||
|
$this->formula = $obj->formula;
|
||||||
|
$this->position = $obj->position;
|
||||||
|
$this->fk_country = $obj->fk_country;
|
||||||
|
$this->active = $obj->active;
|
||||||
|
}
|
||||||
|
$this->db->free($resql);
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->error="Error ".$this->db->lasterror();
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update object into database
|
||||||
|
*
|
||||||
|
* @param User $user User that modify
|
||||||
|
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
||||||
|
* @return int <0 if KO, >0 if OK
|
||||||
|
*/
|
||||||
|
function update($user=null, $notrigger=0)
|
||||||
|
{
|
||||||
|
global $conf, $langs;
|
||||||
|
$error=0;
|
||||||
|
|
||||||
|
// Clean parameters
|
||||||
|
if (isset($this->code)) $this->code=trim($this->code);
|
||||||
|
if (isset($this->label)) $this->label=trim($this->label);
|
||||||
|
if (isset($this->range_account)) $this->range_account=trim($this->range_account);
|
||||||
|
if (isset($this->sens)) $this->sens=trim($this->sens);
|
||||||
|
if (isset($this->category_type)) $this->category_type=trim($this->category_type);
|
||||||
|
if (isset($this->formula)) $this->formula=trim($this->formula);
|
||||||
|
if (isset($this->position)) $this->position=trim($this->position);
|
||||||
|
if (isset($this->fk_country)) $this->fk_country=trim($this->fk_country);
|
||||||
|
if (isset($this->active)) $this->active=trim($this->active);
|
||||||
|
|
||||||
|
|
||||||
|
// Check parameters
|
||||||
|
// Put here code to add control on parameters values
|
||||||
|
|
||||||
|
// Update request
|
||||||
|
$sql = "UPDATE ".MAIN_DB_PREFIX."c_accounting_category SET";
|
||||||
|
$sql.= " code=".(isset($this->code)?"'".$this->db->escape($this->code)."'":"null").",";
|
||||||
|
$sql.= " label=".(isset($this->label)?"'".$this->db->escape($this->label)."'":"null").",";
|
||||||
|
$sql.= " range_account=".(isset($this->range_account)?"'".$this->db->escape($this->range_account)."'":"null").",";
|
||||||
|
$sql.= " sens=".(isset($this->sens)?$this->sens:"null").",";
|
||||||
|
$sql.= " category_type=".(isset($this->category_type)?$this->category_type:"null").",";
|
||||||
|
$sql.= " formula=".(isset($this->formula)?"'".$this->db->escape($this->formula)."'":"null").",";
|
||||||
|
$sql.= " position=".(isset($this->position)?$this->position:"null").",";
|
||||||
|
$sql.= " fk_country=".(isset($this->fk_country)?$this->fk_country:"null").",";
|
||||||
|
$sql.= " active=".(isset($this->active)?$this->active:"null")."";
|
||||||
|
$sql.= " WHERE rowid=".$this->id;
|
||||||
|
|
||||||
|
$this->db->begin();
|
||||||
|
|
||||||
|
dol_syslog(get_class($this)."::update", LOG_DEBUG);
|
||||||
|
$resql = $this->db->query($sql);
|
||||||
|
if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); }
|
||||||
|
|
||||||
|
if (! $error)
|
||||||
|
{
|
||||||
|
if (! $notrigger)
|
||||||
|
{
|
||||||
|
// Uncomment this and change MYOBJECT to your own tag if you
|
||||||
|
// want this action call a trigger.
|
||||||
|
|
||||||
|
//// Call triggers
|
||||||
|
//include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
||||||
|
//$interface=new Interfaces($this->db);
|
||||||
|
//$result=$interface->run_triggers('MYOBJECT_MODIFY',$this,$user,$langs,$conf);
|
||||||
|
//if ($result < 0) { $error++; $this->errors=$interface->errors; }
|
||||||
|
//// End call triggers
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Commit or rollback
|
||||||
|
if ($error)
|
||||||
|
{
|
||||||
|
foreach($this->errors as $errmsg)
|
||||||
|
{
|
||||||
|
dol_syslog(get_class($this)."::update ".$errmsg, LOG_ERR);
|
||||||
|
$this->error.=($this->error?', '.$errmsg:$errmsg);
|
||||||
|
}
|
||||||
|
$this->db->rollback();
|
||||||
|
return -1*$error;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->db->commit();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete object in database
|
||||||
|
*
|
||||||
|
* @param User $user User that delete
|
||||||
|
* @param int $notrigger 0=launch triggers after, 1=disable triggers
|
||||||
|
* @return int <0 if KO, >0 if OK
|
||||||
|
*/
|
||||||
|
function delete($user, $notrigger=0)
|
||||||
|
{
|
||||||
|
global $conf, $langs;
|
||||||
|
$error=0;
|
||||||
|
|
||||||
|
$sql = "DELETE FROM ".MAIN_DB_PREFIX."c_accounting_category";
|
||||||
|
$sql.= " WHERE rowid=".$this->id;
|
||||||
|
|
||||||
|
$this->db->begin();
|
||||||
|
|
||||||
|
dol_syslog(get_class($this)."::delete", LOG_DEBUG);
|
||||||
|
$resql = $this->db->query($sql);
|
||||||
|
if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); }
|
||||||
|
|
||||||
|
if (! $error)
|
||||||
|
{
|
||||||
|
if (! $notrigger)
|
||||||
|
{
|
||||||
|
// Uncomment this and change MYOBJECT to your own tag if you
|
||||||
|
// want this action call a trigger.
|
||||||
|
|
||||||
|
//// Call triggers
|
||||||
|
//include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
||||||
|
//$interface=new Interfaces($this->db);
|
||||||
|
//$result=$interface->run_triggers('MYOBJECT_DELETE',$this,$user,$langs,$conf);
|
||||||
|
//if ($result < 0) { $error++; $this->errors=$interface->errors; }
|
||||||
|
//// End call triggers
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Commit or rollback
|
||||||
|
if ($error)
|
||||||
|
{
|
||||||
|
foreach($this->errors as $errmsg)
|
||||||
|
{
|
||||||
|
dol_syslog(get_class($this)."::delete ".$errmsg, LOG_ERR);
|
||||||
|
$this->error.=($this->error?', '.$errmsg:$errmsg);
|
||||||
|
}
|
||||||
|
$this->db->rollback();
|
||||||
|
return -1*$error;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->db->commit();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function to select all accounting accounts from an accounting category
|
* Function to select all accounting accounts from an accounting category
|
||||||
*
|
*
|
||||||
@ -443,65 +747,6 @@ class AccountancyCategory
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// calcule
|
|
||||||
|
|
||||||
/* I try to replace this with dol_eval()
|
|
||||||
|
|
||||||
const PATTERN = '/(?:\-?\d+(?:\.?\d+)?[\+\-\*\/])+\-?\d+(?:\.?\d+)?/';
|
|
||||||
|
|
||||||
const PARENTHESIS_DEPTH = 10;
|
|
||||||
|
|
||||||
public function calculate($input)
|
|
||||||
{
|
|
||||||
global $langs;
|
|
||||||
|
|
||||||
if(strpos($input, '+') != null || strpos($input, '-') != null || strpos($input, '/') != null || strpos($input, '*') != null){
|
|
||||||
// Remove white spaces and invalid math chars
|
|
||||||
$input = str_replace($langs->trans("ThousandSeparator"), '', $input);
|
|
||||||
$input = str_replace(',', '.', $input);
|
|
||||||
$input = preg_replace('[^0-9\.\+\-\*\/\(\)]', '', $input);
|
|
||||||
|
|
||||||
// Calculate each of the parenthesis from the top
|
|
||||||
$i = 0;
|
|
||||||
while(strpos($input, '(') || strpos($input, ')')){
|
|
||||||
$input = preg_replace_callback('/\(([^\(\)]+)\)/', 'self::callback', $input);
|
|
||||||
|
|
||||||
$i++;
|
|
||||||
if($i > self::PARENTHESIS_DEPTH){
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Calculate the result
|
|
||||||
if(preg_match(self::PATTERN, $input, $match)){
|
|
||||||
return $this->compute($match[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $input;
|
|
||||||
}
|
|
||||||
|
|
||||||
private function compute($input){
|
|
||||||
$compute = create_function('', 'return '.$input.';');
|
|
||||||
|
|
||||||
return 0 + $compute();
|
|
||||||
}
|
|
||||||
|
|
||||||
private function callback($input){
|
|
||||||
if(is_numeric($input[1])){
|
|
||||||
return $input[1];
|
|
||||||
}
|
|
||||||
elseif(preg_match(self::PATTERN, $input[1], $match)){
|
|
||||||
return $this->compute($match[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get all accounting account of a group.
|
* Get all accounting account of a group.
|
||||||
* You must choose between first parameter (personalized group) or the second (free criteria filter)
|
* You must choose between first parameter (personalized group) or the second (free criteria filter)
|
||||||
|
|||||||
@ -82,7 +82,7 @@ class AccountingAccount extends CommonObject
|
|||||||
* @param int $rowid Id
|
* @param int $rowid Id
|
||||||
* @param string $account_number Account number
|
* @param string $account_number Account number
|
||||||
* @param int $limittocurrentchart 1=Do not load record if it is into another accounting system
|
* @param int $limittocurrentchart 1=Do not load record if it is into another accounting system
|
||||||
* @return int <0 if KO, Id of record if OK and found
|
* @return int <0 if KO, 0 if not found, Id of record if OK and found
|
||||||
*/
|
*/
|
||||||
function fetch($rowid = null, $account_number = null, $limittocurrentchart = 0) {
|
function fetch($rowid = null, $account_number = null, $limittocurrentchart = 0) {
|
||||||
global $conf;
|
global $conf;
|
||||||
@ -135,7 +135,7 @@ class AccountingAccount extends CommonObject
|
|||||||
$this->errors[] = "Error " . $this->db->lasterror();
|
$this->errors[] = "Error " . $this->db->lasterror();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return - 1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -59,6 +59,8 @@ class AccountingJournal extends CommonObject
|
|||||||
*/
|
*/
|
||||||
function fetch($rowid = null, $journal_code = null)
|
function fetch($rowid = null, $journal_code = null)
|
||||||
{
|
{
|
||||||
|
global $conf;
|
||||||
|
|
||||||
if ($rowid || $journal_code)
|
if ($rowid || $journal_code)
|
||||||
{
|
{
|
||||||
$sql = "SELECT rowid, code, label, nature, active";
|
$sql = "SELECT rowid, code, label, nature, active";
|
||||||
@ -66,8 +68,11 @@ class AccountingJournal extends CommonObject
|
|||||||
$sql .= " WHERE";
|
$sql .= " WHERE";
|
||||||
if ($rowid) {
|
if ($rowid) {
|
||||||
$sql .= " rowid = " . (int) $rowid;
|
$sql .= " rowid = " . (int) $rowid;
|
||||||
} elseif ($journal_code) {
|
}
|
||||||
|
elseif ($journal_code)
|
||||||
|
{
|
||||||
$sql .= " code = '" . $this->db->escape($journal_code) . "'";
|
$sql .= " code = '" . $this->db->escape($journal_code) . "'";
|
||||||
|
$sql .= " AND entity = " . $conf->entity;
|
||||||
}
|
}
|
||||||
|
|
||||||
dol_syslog(get_class($this)."::fetch sql=" . $sql, LOG_DEBUG);
|
dol_syslog(get_class($this)."::fetch sql=" . $sql, LOG_DEBUG);
|
||||||
|
|||||||
@ -48,7 +48,7 @@ class BookKeeping extends CommonObject
|
|||||||
*/
|
*/
|
||||||
public $table_element = 'accounting_bookkeeping';
|
public $table_element = 'accounting_bookkeeping';
|
||||||
|
|
||||||
public $entity = 1;
|
public $entity;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var BookKeepingLine[] Lines
|
* @var BookKeepingLine[] Lines
|
||||||
@ -295,7 +295,7 @@ class BookKeeping extends CommonObject
|
|||||||
$sql .= ",'" . $this->db->escape($this->code_journal) . "'";
|
$sql .= ",'" . $this->db->escape($this->code_journal) . "'";
|
||||||
$sql .= ",'" . $this->db->escape($this->journal_label) . "'";
|
$sql .= ",'" . $this->db->escape($this->journal_label) . "'";
|
||||||
$sql .= "," . $this->db->escape($this->piece_num);
|
$sql .= "," . $this->db->escape($this->piece_num);
|
||||||
$sql .= ", " . (! isset($this->entity) ? '1' : $this->entity);
|
$sql .= ", " . (! isset($this->entity) ? $conf->entity : $this->entity);
|
||||||
$sql .= ")";
|
$sql .= ")";
|
||||||
|
|
||||||
dol_syslog(get_class($this) . ":: create sql=" . $sql, LOG_DEBUG);
|
dol_syslog(get_class($this) . ":: create sql=" . $sql, LOG_DEBUG);
|
||||||
@ -363,6 +363,8 @@ class BookKeeping extends CommonObject
|
|||||||
* @return int <0 if KO, Id of created object if OK
|
* @return int <0 if KO, Id of created object if OK
|
||||||
*/
|
*/
|
||||||
public function createStd(User $user, $notrigger = false, $mode='') {
|
public function createStd(User $user, $notrigger = false, $mode='') {
|
||||||
|
global $conf;
|
||||||
|
|
||||||
dol_syslog(__METHOD__, LOG_DEBUG);
|
dol_syslog(__METHOD__, LOG_DEBUG);
|
||||||
|
|
||||||
$error = 0;
|
$error = 0;
|
||||||
@ -486,7 +488,7 @@ class BookKeeping extends CommonObject
|
|||||||
$sql .= ' ' . (empty($this->code_journal) ? 'NULL' : "'" . $this->db->escape($this->code_journal) . "'") . ',';
|
$sql .= ' ' . (empty($this->code_journal) ? 'NULL' : "'" . $this->db->escape($this->code_journal) . "'") . ',';
|
||||||
$sql .= ' ' . (empty($this->journal_label) ? 'NULL' : "'" . $this->db->escape($this->journal_label) . "'") . ',';
|
$sql .= ' ' . (empty($this->journal_label) ? 'NULL' : "'" . $this->db->escape($this->journal_label) . "'") . ',';
|
||||||
$sql .= ' ' . (empty($this->piece_num) ? 'NULL' : $this->db->escape($this->piece_num)).',';
|
$sql .= ' ' . (empty($this->piece_num) ? 'NULL' : $this->db->escape($this->piece_num)).',';
|
||||||
$sql .= ' ' . (! isset($this->entity) ? '1' : $this->entity);
|
$sql .= ' ' . (! isset($this->entity) ? $conf->entity : $this->entity);
|
||||||
$sql .= ')';
|
$sql .= ')';
|
||||||
|
|
||||||
$this->db->begin();
|
$this->db->begin();
|
||||||
@ -781,7 +783,8 @@ class BookKeeping extends CommonObject
|
|||||||
$sql .= " t.code_journal,";
|
$sql .= " t.code_journal,";
|
||||||
$sql .= " t.journal_label,";
|
$sql .= " t.journal_label,";
|
||||||
$sql .= " t.piece_num,";
|
$sql .= " t.piece_num,";
|
||||||
$sql .= " t.date_creation";
|
$sql .= " t.date_creation,";
|
||||||
|
$sql .= " t.tms as date_modification";
|
||||||
$sql .= ' FROM ' . MAIN_DB_PREFIX . $this->table_element . ' as t';
|
$sql .= ' FROM ' . MAIN_DB_PREFIX . $this->table_element . ' as t';
|
||||||
// Manage filter
|
// Manage filter
|
||||||
$sqlwhere = array ();
|
$sqlwhere = array ();
|
||||||
@ -849,7 +852,8 @@ class BookKeeping extends CommonObject
|
|||||||
$line->code_journal = $obj->code_journal;
|
$line->code_journal = $obj->code_journal;
|
||||||
$line->journal_label = $obj->journal_label;
|
$line->journal_label = $obj->journal_label;
|
||||||
$line->piece_num = $obj->piece_num;
|
$line->piece_num = $obj->piece_num;
|
||||||
$line->date_creation = $obj->date_creation;
|
$line->date_creation = $this->db->jdate($obj->date_creation);
|
||||||
|
$line->date_modification = $this->db->jdate($obj->date_modification);
|
||||||
|
|
||||||
$this->lines[] = $line;
|
$this->lines[] = $line;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -39,6 +39,8 @@ class lettering extends BookKeeping
|
|||||||
*/
|
*/
|
||||||
public function lettrageTiers($socid)
|
public function lettrageTiers($socid)
|
||||||
{
|
{
|
||||||
|
global $conf;
|
||||||
|
|
||||||
$error = 0;
|
$error = 0;
|
||||||
|
|
||||||
$object = new Societe($this->db);
|
$object = new Societe($this->db);
|
||||||
@ -56,18 +58,18 @@ class lettering extends BookKeeping
|
|||||||
/**
|
/**
|
||||||
* Prise en charge des lettering complexe avec prelevment , virement
|
* Prise en charge des lettering complexe avec prelevment , virement
|
||||||
*/
|
*/
|
||||||
$sql = "SELECT DISTINCT bk.rowid, bk.doc_date, bk.doc_type, bk.doc_ref, bk.thirdparty_code, ";
|
$sql = "SELECT DISTINCT bk.rowid, bk.doc_date, bk.doc_type, bk.doc_ref, bk.subledger_account, ";
|
||||||
$sql .= " bk.numero_compte , bk.label_compte, bk.debit , bk.credit, bk.montant ";
|
$sql .= " bk.numero_compte , bk.label_compte, bk.debit , bk.credit, bk.montant ";
|
||||||
$sql .= " , bk.sens , bk.code_journal , bk.piece_num, bk.date_lettering, bu.url_id , bu.type ";
|
$sql .= " , bk.sens , bk.code_journal , bk.piece_num, bk.date_lettering, bu.url_id , bu.type ";
|
||||||
$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk";
|
$sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk";
|
||||||
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "bank_url as bu ON(bk.fk_doc = bu.fk_bank AND bu.type IN ('payment', 'payment_supplier') ) ";
|
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "bank_url as bu ON(bk.fk_doc = bu.fk_bank AND bu.type IN ('payment', 'payment_supplier') ) ";
|
||||||
$sql .= " WHERE ( ";
|
$sql .= " WHERE ( ";
|
||||||
if (! empty($object->code_compta))
|
if (! empty($object->code_compta))
|
||||||
$sql .= " bk.thirdparty_code = '" . $object->code_compta . "' ";
|
$sql .= " bk.subledger_account = '" . $object->code_compta . "' ";
|
||||||
if (! empty($object->code_compta) && ! empty($object->code_compta_fournisseur))
|
if (! empty($object->code_compta) && ! empty($object->code_compta_fournisseur))
|
||||||
$sql .= " OR ";
|
$sql .= " OR ";
|
||||||
if (! empty($object->code_compta_fournisseur))
|
if (! empty($object->code_compta_fournisseur))
|
||||||
$sql .= " bk.thirdparty_code = '" . $object->code_compta_fournisseur . "' ";
|
$sql .= " bk.subledger_account = '" . $object->code_compta_fournisseur . "' ";
|
||||||
|
|
||||||
$sql .= " ) AND (bk.date_lettering ='' OR bk.date_lettering IS NULL) ";
|
$sql .= " ) AND (bk.date_lettering ='' OR bk.date_lettering IS NULL) ";
|
||||||
$sql .= " AND (bk.lettering_code != '' OR bk.lettering_code IS NULL) ";
|
$sql .= " AND (bk.lettering_code != '' OR bk.lettering_code IS NULL) ";
|
||||||
@ -91,16 +93,17 @@ class lettering extends BookKeeping
|
|||||||
$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "paiementfourn as payf ON payfacf.fk_paiementfourn=payf.rowid";
|
$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "paiementfourn as payf ON payfacf.fk_paiementfourn=payf.rowid";
|
||||||
$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk ON (bk.fk_doc = payf.fk_bank AND bk.code_journal='" . $obj->code_journal . "')";
|
$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk ON (bk.fk_doc = payf.fk_bank AND bk.code_journal='" . $obj->code_journal . "')";
|
||||||
$sql .= " WHERE payfacf.fk_paiementfourn = '" . $obj->url_id . "' ";
|
$sql .= " WHERE payfacf.fk_paiementfourn = '" . $obj->url_id . "' ";
|
||||||
$sql .= " AND code_journal IN (SELECT code FROM " . MAIN_DB_PREFIX . "accounting_journal WHERE nature=4) ";
|
$sql .= " AND facf.entity = ".$conf->entity;
|
||||||
|
$sql .= " AND code_journal IN (SELECT code FROM " . MAIN_DB_PREFIX . "accounting_journal WHERE nature=4 AND entity=".$conf->entity.") ";
|
||||||
$sql .= " AND ( ";
|
$sql .= " AND ( ";
|
||||||
if (! empty($object->code_compta)) {
|
if (! empty($object->code_compta)) {
|
||||||
$sql .= " bk.thirdparty_code = '" . $object->code_compta . "' ";
|
$sql .= " bk.subledger_account = '" . $object->code_compta . "' ";
|
||||||
}
|
}
|
||||||
if (! empty($object->code_compta) && ! empty($object->code_compta_fournisseur)) {
|
if (! empty($object->code_compta) && ! empty($object->code_compta_fournisseur)) {
|
||||||
$sql .= " OR ";
|
$sql .= " OR ";
|
||||||
}
|
}
|
||||||
if (! empty($object->code_compta_fournisseur)) {
|
if (! empty($object->code_compta_fournisseur)) {
|
||||||
$sql .= " bk.thirdparty_code = '" . $object->code_compta_fournisseur . "' ";
|
$sql .= " bk.subledger_account = '" . $object->code_compta_fournisseur . "' ";
|
||||||
}
|
}
|
||||||
$sql .= " ) ";
|
$sql .= " ) ";
|
||||||
|
|
||||||
@ -118,16 +121,17 @@ class lettering extends BookKeeping
|
|||||||
$sql = 'SELECT bk.rowid, facf.ref, facf.ref_supplier ';
|
$sql = 'SELECT bk.rowid, facf.ref, facf.ref_supplier ';
|
||||||
$sql .= " FROM " . MAIN_DB_PREFIX . "facture_fourn facf ";
|
$sql .= " FROM " . MAIN_DB_PREFIX . "facture_fourn facf ";
|
||||||
$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk ON( bk.fk_doc = facf.rowid AND facf.rowid IN (" . implode(',', $ids_fact) . "))";
|
$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk ON( bk.fk_doc = facf.rowid AND facf.rowid IN (" . implode(',', $ids_fact) . "))";
|
||||||
$sql .= " WHERE bk.code_journal IN (SELECT code FROM " . MAIN_DB_PREFIX . "accounting_journal WHERE nature=3) ";
|
$sql .= " WHERE bk.code_journal IN (SELECT code FROM " . MAIN_DB_PREFIX . "accounting_journal WHERE nature=3 AND entity=".$conf->entity.") ";
|
||||||
|
$sql .= " AND facf.entity = ".$conf->entity;
|
||||||
$sql .= " AND ( ";
|
$sql .= " AND ( ";
|
||||||
if (! empty($object->code_compta)) {
|
if (! empty($object->code_compta)) {
|
||||||
$sql .= " bk.thirdparty_code = '" . $object->code_compta . "' ";
|
$sql .= " bk.subledger_account = '" . $object->code_compta . "' ";
|
||||||
}
|
}
|
||||||
if (! empty($object->code_compta) && ! empty($object->code_compta_fournisseur)) {
|
if (! empty($object->code_compta) && ! empty($object->code_compta_fournisseur)) {
|
||||||
$sql .= " OR ";
|
$sql .= " OR ";
|
||||||
}
|
}
|
||||||
if (! empty($object->code_compta_fournisseur)) {
|
if (! empty($object->code_compta_fournisseur)) {
|
||||||
$sql .= " bk.thirdparty_code = '" . $object->code_compta_fournisseur . "' ";
|
$sql .= " bk.subledger_account = '" . $object->code_compta_fournisseur . "' ";
|
||||||
}
|
}
|
||||||
$sql .= " ) ";
|
$sql .= " ) ";
|
||||||
|
|
||||||
@ -149,16 +153,17 @@ class lettering extends BookKeeping
|
|||||||
$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "paiement as pay ON payfac.fk_paiement=pay.rowid";
|
$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "paiement as pay ON payfac.fk_paiement=pay.rowid";
|
||||||
$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk ON (bk.fk_doc = pay.fk_bank AND bk.code_journal='" . $obj->code_journal . "')";
|
$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk ON (bk.fk_doc = pay.fk_bank AND bk.code_journal='" . $obj->code_journal . "')";
|
||||||
$sql .= " WHERE payfac.fk_paiement = '" . $obj->url_id . "' ";
|
$sql .= " WHERE payfac.fk_paiement = '" . $obj->url_id . "' ";
|
||||||
$sql .= " AND bk.code_journal IN (SELECT code FROM " . MAIN_DB_PREFIX . "accounting_journal WHERE nature=4) ";
|
$sql .= " AND bk.code_journal IN (SELECT code FROM " . MAIN_DB_PREFIX . "accounting_journal WHERE nature=4 AND entity=".$conf->entity.") ";
|
||||||
|
$sql .= " AND fac.entity = ".$conf->entity;
|
||||||
$sql .= " AND ( ";
|
$sql .= " AND ( ";
|
||||||
if (! empty($object->code_compta)) {
|
if (! empty($object->code_compta)) {
|
||||||
$sql .= " bk.thirdparty_code = '" . $object->code_compta . "' ";
|
$sql .= " bk.subledger_account = '" . $object->code_compta . "' ";
|
||||||
}
|
}
|
||||||
if (! empty($object->code_compta) && ! empty($object->code_compta_fournisseur)) {
|
if (! empty($object->code_compta) && ! empty($object->code_compta_fournisseur)) {
|
||||||
$sql .= " OR ";
|
$sql .= " OR ";
|
||||||
}
|
}
|
||||||
if (! empty($object->code_compta_fournisseur)) {
|
if (! empty($object->code_compta_fournisseur)) {
|
||||||
$sql .= " bk.thirdparty_code = '" . $object->code_compta_fournisseur . "' ";
|
$sql .= " bk.subledger_account = '" . $object->code_compta_fournisseur . "' ";
|
||||||
}
|
}
|
||||||
$sql .= " ) ";
|
$sql .= " ) ";
|
||||||
|
|
||||||
@ -176,16 +181,17 @@ class lettering extends BookKeeping
|
|||||||
$sql = 'SELECT bk.rowid, fac.ref, fac.ref_supplier ';
|
$sql = 'SELECT bk.rowid, fac.ref, fac.ref_supplier ';
|
||||||
$sql .= " FROM " . MAIN_DB_PREFIX . "facture fac ";
|
$sql .= " FROM " . MAIN_DB_PREFIX . "facture fac ";
|
||||||
$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk ON( bk.fk_doc = fac.rowid AND fac.rowid IN (" . implode(',', $ids_fact) . "))";
|
$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk ON( bk.fk_doc = fac.rowid AND fac.rowid IN (" . implode(',', $ids_fact) . "))";
|
||||||
$sql .= " WHERE code_journal IN (SELECT code FROM " . MAIN_DB_PREFIX . "accounting_journal WHERE nature=2) ";
|
$sql .= " WHERE code_journal IN (SELECT code FROM " . MAIN_DB_PREFIX . "accounting_journal WHERE nature=2 AND entity=".$conf->entity.") ";
|
||||||
|
$sql .= " AND fac.entity = ".$conf->entity;
|
||||||
$sql .= " AND ( ";
|
$sql .= " AND ( ";
|
||||||
if (! empty($object->code_compta)) {
|
if (! empty($object->code_compta)) {
|
||||||
$sql .= " bk.thirdparty_code = '" . $object->code_compta . "' ";
|
$sql .= " bk.subledger_account = '" . $object->code_compta . "' ";
|
||||||
}
|
}
|
||||||
if (! empty($object->code_compta) && ! empty($object->code_compta_fournisseur)) {
|
if (! empty($object->code_compta) && ! empty($object->code_compta_fournisseur)) {
|
||||||
$sql .= " OR ";
|
$sql .= " OR ";
|
||||||
}
|
}
|
||||||
if (! empty($object->code_compta_fournisseur)) {
|
if (! empty($object->code_compta_fournisseur)) {
|
||||||
$sql .= " bk.thirdparty_code = '" . $object->code_compta_fournisseur . "' ";
|
$sql .= " bk.subledger_account = '" . $object->code_compta_fournisseur . "' ";
|
||||||
}
|
}
|
||||||
$sql .= " ) ";
|
$sql .= " ) ";
|
||||||
|
|
||||||
|
|||||||
@ -113,7 +113,7 @@ if (is_array($changeaccount) && count($changeaccount) > 0) {
|
|||||||
$db->begin();
|
$db->begin();
|
||||||
|
|
||||||
$sql1 = "UPDATE " . MAIN_DB_PREFIX . "facturedet as l";
|
$sql1 = "UPDATE " . MAIN_DB_PREFIX . "facturedet as l";
|
||||||
$sql1 .= " SET l.fk_code_ventilation=" . $account_parent;
|
$sql1 .= " SET l.fk_code_ventilation=" . GETPOST('account_parent','int');
|
||||||
$sql1 .= ' WHERE l.rowid IN (' . implode(',', $changeaccount) . ')';
|
$sql1 .= ' WHERE l.rowid IN (' . implode(',', $changeaccount) . ')';
|
||||||
|
|
||||||
dol_syslog('accountancy/customer/lines.php::changeaccount sql= ' . $sql1);
|
dol_syslog('accountancy/customer/lines.php::changeaccount sql= ' . $sql1);
|
||||||
@ -163,7 +163,7 @@ print '<script type="text/javascript">
|
|||||||
/*
|
/*
|
||||||
* Customer Invoice lines
|
* Customer Invoice lines
|
||||||
*/
|
*/
|
||||||
$sql = "SELECT f.rowid, f.facnumber, f.type, f.datef, f.ref_client,";
|
$sql = "SELECT f.rowid as facid, f.facnumber, f.type, f.datef, f.ref_client,";
|
||||||
$sql .= " fd.rowid, fd.description, fd.product_type, fd.total_ht, fd.total_tva, fd.tva_tx, fd.vat_src_code, fd.total_ttc,";
|
$sql .= " fd.rowid, fd.description, fd.product_type, fd.total_ht, fd.total_tva, fd.tva_tx, fd.vat_src_code, fd.total_ttc,";
|
||||||
$sql .= " s.rowid as socid, s.nom as name, s.code_compta, s.code_client,";
|
$sql .= " s.rowid as socid, s.nom as name, s.code_compta, s.code_client,";
|
||||||
$sql .= " p.rowid as product_id, p.ref as product_ref, p.label as product_label, p.accountancy_code_sell, aa.rowid as fk_compte, aa.account_number, aa.label as label_compte,";
|
$sql .= " p.rowid as product_id, p.ref as product_ref, p.label as product_label, p.accountancy_code_sell, aa.rowid as fk_compte, aa.account_number, aa.label as label_compte,";
|
||||||
@ -204,7 +204,7 @@ if (strlen(trim($search_account))) {
|
|||||||
$sql .= natural_search("aa.account_number", $search_account);
|
$sql .= natural_search("aa.account_number", $search_account);
|
||||||
}
|
}
|
||||||
if (strlen(trim($search_vat))) {
|
if (strlen(trim($search_vat))) {
|
||||||
$sql .= natural_search("fd.tva_tx", $search_vat);
|
$sql .= natural_search("fd.tva_tx", price2num($search_vat), 1);
|
||||||
}
|
}
|
||||||
if ($search_month > 0)
|
if ($search_month > 0)
|
||||||
{
|
{
|
||||||
@ -223,7 +223,7 @@ if (strlen(trim($search_country))) {
|
|||||||
$sql .= natural_search("co.label", $search_country);
|
$sql .= natural_search("co.label", $search_country);
|
||||||
}
|
}
|
||||||
if (strlen(trim($search_tvaintra))) {
|
if (strlen(trim($search_tvaintra))) {
|
||||||
$sql .= natural_search("s.tva_intra", $search_tva_intra);
|
$sql .= natural_search("s.tva_intra", $search_tvaintra);
|
||||||
}
|
}
|
||||||
$sql .= " AND f.entity IN (" . getEntity('facture', 0) . ")"; // We don't share object for accountancy
|
$sql .= " AND f.entity IN (" . getEntity('facture', 0) . ")"; // We don't share object for accountancy
|
||||||
$sql .= $db->order($sortfield, $sortorder);
|
$sql .= $db->order($sortfield, $sortorder);
|
||||||
@ -245,28 +245,19 @@ if ($result) {
|
|||||||
$i = 0;
|
$i = 0;
|
||||||
|
|
||||||
$param='';
|
$param='';
|
||||||
if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage;
|
if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.urlencode($contextpage);
|
||||||
if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit;
|
if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($limit);
|
||||||
if ($search_invoice)
|
if ($search_invoice) $param .= "&search_invoice=" . urlencode($search_invoice);
|
||||||
$param .= "&search_invoice=" . $search_invoice;
|
if ($search_ref) $param .= "&search_ref=" . urlencode($search_ref);
|
||||||
if ($search_ref)
|
if ($search_label) $param .= "&search_label=" . urlencode($search_label);
|
||||||
$param .= "&search_ref=" . $search_ref;
|
if ($search_desc) $param .= "&search_desc=" . urlencode($search_desc);
|
||||||
if ($search_label)
|
if ($search_account) $param .= "&search_account=" . urlencode($search_account);
|
||||||
$param .= "&search_label=" . $search_label;
|
if ($search_vat) $param .= "&search_vat=" . urlencode($search_vat);
|
||||||
if ($search_desc)
|
if ($search_day) $param .= '&search_day='.urlencode($search_day);
|
||||||
$param .= "&search_desc=" . $search_desc;
|
if ($search_month) $param .= '&search_month='.urlencode($search_month);
|
||||||
if ($search_account)
|
if ($search_year) $param .= '&search_year='.urlencode($search_year);
|
||||||
$param .= "&search_account=" . $search_account;
|
if ($search_country) $param .= "&search_country=" . urlencode($search_country);
|
||||||
if ($search_vat)
|
if ($search_tvaintra) $param .= "&search_tvaintra=" . urlencode($search_tvaintra);
|
||||||
$param .= "&search_vat=" . $search_vat;
|
|
||||||
if ($search_day) $param.='&search_day='.urlencode($search_day);
|
|
||||||
if ($search_month) $param.='&search_month='.urlencode($search_month);
|
|
||||||
if ($search_year) $param.='&search_year='.urlencode($search_year);
|
|
||||||
if ($search_country)
|
|
||||||
$param .= "&search_country=" . $search_country;
|
|
||||||
if ($search_tvaintra)
|
|
||||||
$param .= "&search_tvaintra=" . $search_tvaintra;
|
|
||||||
|
|
||||||
|
|
||||||
print '<form action="' . $_SERVER["PHP_SELF"] . '" method="post">' . "\n";
|
print '<form action="' . $_SERVER["PHP_SELF"] . '" method="post">' . "\n";
|
||||||
print '<input type="hidden" name="action" value="ventil">';
|
print '<input type="hidden" name="action" value="ventil">';
|
||||||
@ -333,7 +324,7 @@ if ($result) {
|
|||||||
$codecompta = length_accountg($objp->account_number) . ' - ' . $objp->label_compte;
|
$codecompta = length_accountg($objp->account_number) . ' - ' . $objp->label_compte;
|
||||||
|
|
||||||
$facture_static->ref = $objp->facnumber;
|
$facture_static->ref = $objp->facnumber;
|
||||||
$facture_static->id = $objp->rowid;
|
$facture_static->id = $objp->facid;
|
||||||
|
|
||||||
$product_static->ref = $objp->product_ref;
|
$product_static->ref = $objp->product_ref;
|
||||||
$product_static->id = $objp->product_id;
|
$product_static->id = $objp->product_id;
|
||||||
@ -370,7 +361,7 @@ if ($result) {
|
|||||||
print '</a>';
|
print '</a>';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
|
|
||||||
print '<td align="center">' . $objp->country .'</td>';
|
print '<td>' . $objp->country .'</td>';
|
||||||
|
|
||||||
print '<td>' . $objp->tva_intra . '</td>';
|
print '<td>' . $objp->tva_intra . '</td>';
|
||||||
|
|
||||||
|
|||||||
@ -223,7 +223,7 @@ $sql.= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON p.accountan
|
|||||||
$sql.= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa2 ON p.accountancy_code_sell_intra = aa2.account_number AND aa2.fk_pcg_version = '" . $chartaccountcode."'";
|
$sql.= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa2 ON p.accountancy_code_sell_intra = aa2.account_number AND aa2.fk_pcg_version = '" . $chartaccountcode."'";
|
||||||
$sql.= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa3 ON p.accountancy_code_sell_export = aa3.account_number AND aa3.fk_pcg_version = '" . $chartaccountcode."'";
|
$sql.= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa3 ON p.accountancy_code_sell_export = aa3.account_number AND aa3.fk_pcg_version = '" . $chartaccountcode."'";
|
||||||
$sql.= " WHERE f.fk_statut > 0 AND l.fk_code_ventilation <= 0";
|
$sql.= " WHERE f.fk_statut > 0 AND l.fk_code_ventilation <= 0";
|
||||||
$sql.= " AND product_type <= 2";
|
$sql.= " AND l.product_type <= 2";
|
||||||
// Add search filter like
|
// Add search filter like
|
||||||
if ($search_lineid) {
|
if ($search_lineid) {
|
||||||
$sql .= natural_search("l.rowid", $search_lineid, 1);
|
$sql .= natural_search("l.rowid", $search_lineid, 1);
|
||||||
|
|||||||
@ -61,10 +61,10 @@ $limit = GETPOST('limit','int')?GETPOST('limit', 'int'):(empty($conf->global->AC
|
|||||||
$sortfield = GETPOST('sortfield', 'alpha');
|
$sortfield = GETPOST('sortfield', 'alpha');
|
||||||
$sortorder = GETPOST('sortorder', 'alpha');
|
$sortorder = GETPOST('sortorder', 'alpha');
|
||||||
$page = GETPOST('page', 'int');
|
$page = GETPOST('page', 'int');
|
||||||
if ($page < 0) $page = 0;
|
if (empty($page) || $page < 0) $page = 0;
|
||||||
$offset = $conf->liste_limit * $page;
|
|
||||||
$pageprev = $page - 1;
|
$pageprev = $page - 1;
|
||||||
$pagenext = $page + 1;
|
$pagenext = $page + 1;
|
||||||
|
$offset = $limit * $page;
|
||||||
if (! $sortfield)
|
if (! $sortfield)
|
||||||
$sortfield = "erd.date, erd.rowid";
|
$sortfield = "erd.date, erd.rowid";
|
||||||
if (! $sortorder) {
|
if (! $sortorder) {
|
||||||
@ -170,19 +170,19 @@ if (strlen(trim($search_expensereport))) {
|
|||||||
$sql .= " AND er.ref like '%" . $search_expensereport . "%'";
|
$sql .= " AND er.ref like '%" . $search_expensereport . "%'";
|
||||||
}
|
}
|
||||||
if (strlen(trim($search_label))) {
|
if (strlen(trim($search_label))) {
|
||||||
$sql .= " AND f.label like '%" . $search_label . "%'";
|
$sql .= natural_search("f.label", $search_label);
|
||||||
}
|
}
|
||||||
if (strlen(trim($search_desc))) {
|
if (strlen(trim($search_desc))) {
|
||||||
$sql .= " AND er.comments like '%" . $search_desc . "%'";
|
$sql .= natural_search("er.comments", $search_desc);
|
||||||
}
|
}
|
||||||
if (strlen(trim($search_amount))) {
|
if (strlen(trim($search_amount))) {
|
||||||
$sql .= " AND erd.total_ht like '%" . $search_amount . "%'";
|
$sql .= natural_search("erd.total_ht", $search_amount, 1);
|
||||||
}
|
}
|
||||||
if (strlen(trim($search_account))) {
|
if (strlen(trim($search_account))) {
|
||||||
$sql .= " AND aa.account_number like '%" . $search_account . "%'";
|
$sql .= natural_search("aa.account_number", $search_account);
|
||||||
}
|
}
|
||||||
if (strlen(trim($search_vat))) {
|
if (strlen(trim($search_vat))) {
|
||||||
$sql .= " AND (erd.tva_tx like '" . $search_vat . "%')";
|
$sql .= natural_search("erd.tva_tx", price2num($search_vat), 1);
|
||||||
}
|
}
|
||||||
if ($search_month > 0)
|
if ($search_month > 0)
|
||||||
{
|
{
|
||||||
@ -219,25 +219,18 @@ if ($result) {
|
|||||||
$i = 0;
|
$i = 0;
|
||||||
|
|
||||||
$param='';
|
$param='';
|
||||||
if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage;
|
if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.urlencode($contextpage);
|
||||||
if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit;
|
if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($limit);
|
||||||
if ($search_expensereport)
|
if ($search_expensereport) $param .= "&search_expensereport=" . urlencode($search_expensereport);
|
||||||
$param .= "&search_expensereport=" . $search_expensereport;
|
if ($search_label) $param .= "&search_label=" . urlencode($search_label);
|
||||||
if ($search_label)
|
if ($search_desc) $param .= "&search_desc=" . urlencode($search_desc);
|
||||||
$param .= "&search_label=" . $search_label;
|
if ($search_account) $param .= "&search_account=" . urlencode($search_account);
|
||||||
if ($search_desc)
|
if ($search_vat) $param .= "&search_vat=" . urlencode($search_vat);
|
||||||
$param .= "&search_desc=" . $search_desc;
|
if ($search_day) $param .= '&search_day='.urlencode($search_day);
|
||||||
if ($search_account)
|
if ($search_month) $param .= '&search_month='.urlencode($search_month);
|
||||||
$param .= "&search_account=" . $search_account;
|
if ($search_year) $param .= '&search_year='.urlencode($search_year);
|
||||||
if ($search_vat)
|
if ($search_country) $param .= "&search_country=" . urlencode($search_country);
|
||||||
$param .= "&search_vat=" . $search_vat;
|
if ($search_tvaintra) $param .= "&search_tvaintra=" . urlencode($search_tvaintra);
|
||||||
if ($search_day) $param.='&search_day='.urlencode($search_day);
|
|
||||||
if ($search_month) $param.='&search_month='.urlencode($search_month);
|
|
||||||
if ($search_year) $param.='&search_year='.urlencode($search_year);
|
|
||||||
if ($search_country)
|
|
||||||
$param .= "&search_country=" . $search_country;
|
|
||||||
if ($search_tvaintra)
|
|
||||||
$param .= "&search_tvaintra=" . $search_tvaintra;
|
|
||||||
|
|
||||||
print '<form action="' . $_SERVER["PHP_SELF"] . '" method="post">' . "\n";
|
print '<form action="' . $_SERVER["PHP_SELF"] . '" method="post">' . "\n";
|
||||||
print '<input type="hidden" name="action" value="ventil">';
|
print '<input type="hidden" name="action" value="ventil">';
|
||||||
@ -297,7 +290,6 @@ if ($result) {
|
|||||||
|
|
||||||
$expensereport_static = new ExpenseReport($db);
|
$expensereport_static = new ExpenseReport($db);
|
||||||
|
|
||||||
$var = True;
|
|
||||||
while ( $i < min($num_lines, $limit) ) {
|
while ( $i < min($num_lines, $limit) ) {
|
||||||
$objp = $db->fetch_object($result);
|
$objp = $db->fetch_object($result);
|
||||||
$codeCompta = length_accountg($objp->account_number) . ' - ' . $objp->label;
|
$codeCompta = length_accountg($objp->account_number) . ' - ' . $objp->label;
|
||||||
@ -347,7 +339,7 @@ if ($result) {
|
|||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
} else {
|
} else {
|
||||||
print $db->error();
|
print $db->lasterror();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -200,7 +200,7 @@ $sql.= " aa.rowid as aarowid";
|
|||||||
$sql.= " FROM " . MAIN_DB_PREFIX . "expensereport as er";
|
$sql.= " FROM " . MAIN_DB_PREFIX . "expensereport as er";
|
||||||
$sql.= " INNER JOIN " . MAIN_DB_PREFIX . "expensereport_det as erd ON er.rowid = erd.fk_expensereport";
|
$sql.= " INNER JOIN " . MAIN_DB_PREFIX . "expensereport_det as erd ON er.rowid = erd.fk_expensereport";
|
||||||
$sql.= " LEFT JOIN " . MAIN_DB_PREFIX . "c_type_fees as f ON f.id = erd.fk_c_type_fees";
|
$sql.= " LEFT JOIN " . MAIN_DB_PREFIX . "c_type_fees as f ON f.id = erd.fk_c_type_fees";
|
||||||
$sql.= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON p.accountancy_code = aa.account_number AND aa.fk_pcg_version = '" . $chartaccountcode."'";
|
$sql.= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON f.accountancy_code = aa.account_number AND aa.fk_pcg_version = '" . $chartaccountcode."'";
|
||||||
$sql.= " WHERE er.fk_statut > 4 AND erd.fk_code_ventilation <= 0";
|
$sql.= " WHERE er.fk_statut > 4 AND erd.fk_code_ventilation <= 0";
|
||||||
// Add search filter like
|
// Add search filter like
|
||||||
if (strlen(trim($search_expensereport))) {
|
if (strlen(trim($search_expensereport))) {
|
||||||
|
|||||||
@ -225,7 +225,7 @@ if ($result) {
|
|||||||
'accountancy_code' => $compta_user,
|
'accountancy_code' => $compta_user,
|
||||||
);
|
);
|
||||||
|
|
||||||
// Variable bookkeeping
|
// Variable bookkeeping ($obj->rowid is Bank Id)
|
||||||
$tabpay[$obj->rowid]["date"] = $obj->do;
|
$tabpay[$obj->rowid]["date"] = $obj->do;
|
||||||
$tabpay[$obj->rowid]["type_payment"] = $obj->fk_type; // CHQ, VIR, LIQ, CB, ...
|
$tabpay[$obj->rowid]["type_payment"] = $obj->fk_type; // CHQ, VIR, LIQ, CB, ...
|
||||||
$tabpay[$obj->rowid]["ref"] = $obj->label; // By default. Not unique. May be changed later
|
$tabpay[$obj->rowid]["ref"] = $obj->label; // By default. Not unique. May be changed later
|
||||||
@ -271,7 +271,8 @@ if ($result) {
|
|||||||
|
|
||||||
if ($links[$key]['type'] == 'payment') {
|
if ($links[$key]['type'] == 'payment') {
|
||||||
$paymentstatic->id = $links[$key]['url_id'];
|
$paymentstatic->id = $links[$key]['url_id'];
|
||||||
$tabpay[$obj->rowid]["lib"] .= ' ' . $paymentstatic->getNomUrl(2);
|
$paymentstatic->ref = $links[$key]['url_id'];
|
||||||
|
$tabpay[$obj->rowid]["lib"] .= ' ' . $paymentstatic->getNomUrl(2, '', ''); // TODO Do not include list of invoice in tooltip, the dol_string_nohtmltag is ko with this
|
||||||
$tabpay[$obj->rowid]["paymentid"] = $paymentstatic->id;
|
$tabpay[$obj->rowid]["paymentid"] = $paymentstatic->id;
|
||||||
} else if ($links[$key]['type'] == 'payment_supplier') {
|
} else if ($links[$key]['type'] == 'payment_supplier') {
|
||||||
$paymentsupplierstatic->id = $links[$key]['url_id'];
|
$paymentsupplierstatic->id = $links[$key]['url_id'];
|
||||||
@ -303,6 +304,7 @@ if ($result) {
|
|||||||
}
|
}
|
||||||
$chargestatic->ref = $chargestatic->lib;
|
$chargestatic->ref = $chargestatic->lib;
|
||||||
$tabpay[$obj->rowid]["soclib"] = $chargestatic->getNomUrl(1, 30);
|
$tabpay[$obj->rowid]["soclib"] = $chargestatic->getNomUrl(1, 30);
|
||||||
|
$tabpay[$obj->rowid]["paymentscid"] = $chargestatic->id;
|
||||||
|
|
||||||
$sqlmid = 'SELECT cchgsoc.accountancy_code';
|
$sqlmid = 'SELECT cchgsoc.accountancy_code';
|
||||||
$sqlmid .= " FROM " . MAIN_DB_PREFIX . "c_chargesociales cchgsoc ";
|
$sqlmid .= " FROM " . MAIN_DB_PREFIX . "c_chargesociales cchgsoc ";
|
||||||
@ -319,11 +321,12 @@ if ($result) {
|
|||||||
}
|
}
|
||||||
} else if ($links[$key]['type'] == 'payment_donation') {
|
} else if ($links[$key]['type'] == 'payment_donation') {
|
||||||
$paymentdonstatic->id = $links[$key]['url_id'];
|
$paymentdonstatic->id = $links[$key]['url_id'];
|
||||||
|
$paymentdonstatic->ref = $links[$key]['url_id'];
|
||||||
$paymentdonstatic->fk_donation = $links[$key]['url_id'];
|
$paymentdonstatic->fk_donation = $links[$key]['url_id'];
|
||||||
$tabpay[$obj->rowid]["lib"] .= ' ' . $paymentdonstatic->getNomUrl(2);
|
$tabpay[$obj->rowid]["lib"] .= ' ' . $paymentdonstatic->getNomUrl(2);
|
||||||
$tabpay[$obj->rowid]["paymentdonationid"] = $paymentdonstatic->id;
|
$tabpay[$obj->rowid]["paymentdonationid"] = $paymentdonstatic->id;
|
||||||
$tabtp[$obj->rowid][$account_pay_donation] += $obj->amount;
|
$tabtp[$obj->rowid][$account_pay_donation] += $obj->amount;
|
||||||
} else if ($links[$key]['type'] == 'payment_vat') {
|
} else if ($links[$key]['type'] == 'payment_vat') { // Payment VAT
|
||||||
$paymentvatstatic->id = $links[$key]['url_id'];
|
$paymentvatstatic->id = $links[$key]['url_id'];
|
||||||
$paymentvatstatic->ref = $links[$key]['url_id'];
|
$paymentvatstatic->ref = $links[$key]['url_id'];
|
||||||
$paymentvatstatic->label = $links[$key]['label'];
|
$paymentvatstatic->label = $links[$key]['label'];
|
||||||
@ -401,7 +404,9 @@ if (! $error && $action == 'writebookkeeping') {
|
|||||||
$now = dol_now();
|
$now = dol_now();
|
||||||
|
|
||||||
$error = 0;
|
$error = 0;
|
||||||
foreach ( $tabpay as $key => $val ) { // $key is rowid into llx_bank
|
foreach ( $tabpay as $key => $val ) // $key is rowid into llx_bank
|
||||||
|
{
|
||||||
|
$date = dol_print_date($db->jdate($val["date"]), 'day');
|
||||||
|
|
||||||
$ref = getSourceDocRef($val, $tabtype[$key]);
|
$ref = getSourceDocRef($val, $tabtype[$key]);
|
||||||
|
|
||||||
@ -423,7 +428,13 @@ if (! $error && $action == 'writebookkeeping') {
|
|||||||
// Line into bank account
|
// Line into bank account
|
||||||
foreach ( $tabbq[$key] as $k => $mt )
|
foreach ( $tabbq[$key] as $k => $mt )
|
||||||
{
|
{
|
||||||
if ($mt) {
|
if ($mt)
|
||||||
|
{
|
||||||
|
$reflabel = '';
|
||||||
|
if (! empty($val['lib'])) $reflabel .= dol_string_nohtmltag($val['lib']) . " - ";
|
||||||
|
$reflabel.= $langs->trans("Bank").' '.dol_string_nohtmltag($val['bank_account_ref']);
|
||||||
|
if (! empty($val['soclib'])) $reflabel .= " - " . dol_string_nohtmltag($val['soclib']);
|
||||||
|
|
||||||
$bookkeeping = new BookKeeping($db);
|
$bookkeeping = new BookKeeping($db);
|
||||||
$bookkeeping->doc_date = $val["date"];
|
$bookkeeping->doc_date = $val["date"];
|
||||||
$bookkeeping->doc_ref = $ref;
|
$bookkeeping->doc_ref = $ref;
|
||||||
@ -442,31 +453,9 @@ if (! $error && $action == 'writebookkeeping') {
|
|||||||
$bookkeeping->date_create = $now;
|
$bookkeeping->date_create = $now;
|
||||||
|
|
||||||
// No subledger_account value for the bank line but add a specific label_operation
|
// No subledger_account value for the bank line but add a specific label_operation
|
||||||
if ($tabtype[$key] == 'payment') {
|
|
||||||
$bookkeeping->subledger_account = '';
|
$bookkeeping->subledger_account = '';
|
||||||
$bookkeeping->label_operation = $tabcompany[$key]['name'] . ' - ' . $ref;
|
$bookkeeping->label_operation = $reflabel;
|
||||||
} else if ($tabtype[$key] == 'payment_supplier') {
|
$bookkeeping->entity = $conf->entity;
|
||||||
$bookkeeping->subledger_account = '';
|
|
||||||
$bookkeeping->label_operation = $tabcompany[$key]['name'] . ' - ' . $ref;
|
|
||||||
} else if ($tabtype[$key] == 'payment_expensereport') {
|
|
||||||
$bookkeeping->subledger_account = '';
|
|
||||||
$bookkeeping->label_operation = $tabuser[$key]['name'] . ' - ' . $ref;
|
|
||||||
} else if ($tabtype[$key] == 'payment_salary') {
|
|
||||||
$bookkeeping->subledger_account = '';
|
|
||||||
$bookkeeping->label_operation = $tabuser[$key]['name'] . ' - ' . $ref;
|
|
||||||
} else if ($tabtype[$key] == 'payment_vat') {
|
|
||||||
$bookkeeping->subledger_account = '';
|
|
||||||
$bookkeeping->label_operation = $ref;
|
|
||||||
} else if ($tabtype[$key] == 'payment_donation') {
|
|
||||||
$bookkeeping->subledger_account = '';
|
|
||||||
$bookkeeping->label_operation = $ref;
|
|
||||||
} else if ($tabtype[$key] == 'payment_various') {
|
|
||||||
$bookkeeping->subledger_account = '';
|
|
||||||
$bookkeeping->label_operation = $ref;
|
|
||||||
} else if ($tabtype[$key] == 'unknown') {
|
|
||||||
// ???
|
|
||||||
$bookkeeping->subledger_account = '';
|
|
||||||
}
|
|
||||||
|
|
||||||
$totaldebit += $bookkeeping->debit;
|
$totaldebit += $bookkeeping->debit;
|
||||||
$totalcredit += $bookkeeping->credit;
|
$totalcredit += $bookkeeping->credit;
|
||||||
@ -491,11 +480,18 @@ if (! $error && $action == 'writebookkeeping') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Third party
|
// Third party
|
||||||
if (! $errorforline && is_array($tabtp[$key]))
|
if (! $errorforline)
|
||||||
|
{
|
||||||
|
if (is_array($tabtp[$key]))
|
||||||
{
|
{
|
||||||
// Line into thirdparty account
|
// Line into thirdparty account
|
||||||
foreach ( $tabtp[$key] as $k => $mt ) {
|
foreach ( $tabtp[$key] as $k => $mt ) {
|
||||||
if ($mt) {
|
if ($mt)
|
||||||
|
{
|
||||||
|
$reflabel = '';
|
||||||
|
if (! empty($val['lib'])) $reflabel .= dol_string_nohtmltag($val['lib']) . ($val['soclib']?" - ":"");
|
||||||
|
$reflabel.= dol_string_nohtmltag($val['soclib']);
|
||||||
|
|
||||||
$bookkeeping = new BookKeeping($db);
|
$bookkeeping = new BookKeeping($db);
|
||||||
$bookkeeping->doc_date = $val["date"];
|
$bookkeeping->doc_date = $val["date"];
|
||||||
$bookkeeping->doc_ref = $ref;
|
$bookkeeping->doc_ref = $ref;
|
||||||
@ -512,55 +508,46 @@ if (! $error && $action == 'writebookkeeping') {
|
|||||||
$bookkeeping->date_create = $now;
|
$bookkeeping->date_create = $now;
|
||||||
|
|
||||||
if ($tabtype[$key] == 'payment') { // If payment is payment of customer invoice, we get ref of invoice
|
if ($tabtype[$key] == 'payment') { // If payment is payment of customer invoice, we get ref of invoice
|
||||||
$bookkeeping->label_operation = $tabcompany[$key]['name'] . ' - ' . $ref;
|
|
||||||
$bookkeeping->subledger_account = $tabcompany[$key]['code_compta'];
|
$bookkeeping->subledger_account = $tabcompany[$key]['code_compta'];
|
||||||
$bookkeeping->subledger_label = $tabcompany[$key]['name'];
|
$bookkeeping->subledger_label = $tabcompany[$key]['name'];
|
||||||
$bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER;
|
$bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER;
|
||||||
$bookkeeping->label_compte = '';
|
$bookkeeping->label_compte = '';
|
||||||
} else if ($tabtype[$key] == 'payment_supplier') { // If payment is payment of supplier invoice, we get ref of invoice
|
} else if ($tabtype[$key] == 'payment_supplier') { // If payment is payment of supplier invoice, we get ref of invoice
|
||||||
$bookkeeping->label_operation = $tabcompany[$key]['name'] . ' - ' . $ref;
|
|
||||||
$bookkeeping->subledger_account = $tabcompany[$key]['code_compta'];
|
$bookkeeping->subledger_account = $tabcompany[$key]['code_compta'];
|
||||||
$bookkeeping->subledger_label = $tabcompany[$key]['name'];
|
$bookkeeping->subledger_label = $tabcompany[$key]['name'];
|
||||||
$bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER;
|
$bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER;
|
||||||
$bookkeeping->label_compte = '';
|
$bookkeeping->label_compte = '';
|
||||||
} else if ($tabtype[$key] == 'payment_expensereport') {
|
} else if ($tabtype[$key] == 'payment_expensereport') {
|
||||||
$bookkeeping->label_operation = $tabuser[$key]['name'] . ' - ' . $ref;
|
|
||||||
$bookkeeping->subledger_account = $tabuser[$key]['accountancy_code'];
|
$bookkeeping->subledger_account = $tabuser[$key]['accountancy_code'];
|
||||||
$bookkeeping->subledger_label = $tabuser[$key]['name'];
|
$bookkeeping->subledger_label = $tabuser[$key]['name'];
|
||||||
$bookkeeping->numero_compte = $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT;
|
$bookkeeping->numero_compte = $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT;
|
||||||
$bookkeeping->label_compte = '';
|
$bookkeeping->label_compte = '';
|
||||||
} else if ($tabtype[$key] == 'payment_salary') {
|
} else if ($tabtype[$key] == 'payment_salary') {
|
||||||
$bookkeeping->label_operation = $tabuser[$key]['name'] . ' - ' . $ref;
|
|
||||||
$bookkeeping->subledger_account = $tabuser[$key]['accountancy_code'];
|
$bookkeeping->subledger_account = $tabuser[$key]['accountancy_code'];
|
||||||
$bookkeeping->subledger_label = $tabuser[$key]['name'];
|
$bookkeeping->subledger_label = $tabuser[$key]['name'];
|
||||||
$bookkeeping->numero_compte = $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT;
|
$bookkeeping->numero_compte = $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT;
|
||||||
$bookkeeping->label_compte = '';
|
$bookkeeping->label_compte = '';
|
||||||
} else if (in_array($tabtype[$key], array('sc', 'payment_sc'))) { // If payment is payment of social contribution
|
} else if (in_array($tabtype[$key], array('sc', 'payment_sc'))) { // If payment is payment of social contribution
|
||||||
$bookkeeping->label_operation = $ref;
|
|
||||||
$bookkeeping->subledger_account = '';
|
$bookkeeping->subledger_account = '';
|
||||||
$bookkeeping->subledger_label = '';
|
$bookkeeping->subledger_label = '';
|
||||||
$bookkeeping->numero_compte = $k;
|
$bookkeeping->numero_compte = $k;
|
||||||
$bookkeeping->label_compte = $objmid->labelc;
|
$bookkeeping->label_compte = $objmid->labelc;
|
||||||
} else if ($tabtype[$key] == 'payment_vat') {
|
} else if ($tabtype[$key] == 'payment_vat') {
|
||||||
$bookkeeping->label_operation = $ref;
|
|
||||||
$bookkeeping->subledger_account = '';
|
$bookkeeping->subledger_account = '';
|
||||||
$bookkeeping->subledger_label = '';
|
$bookkeeping->subledger_label = '';
|
||||||
$bookkeeping->numero_compte = $k;
|
$bookkeeping->numero_compte = $k;
|
||||||
$bookkeeping->label_compte = '';
|
$bookkeeping->label_compte = '';
|
||||||
} else if ($tabtype[$key] == 'payment_donation') {
|
} else if ($tabtype[$key] == 'payment_donation') {
|
||||||
$bookkeeping->label_operation = $ref;
|
|
||||||
$bookkeeping->subledger_account = '';
|
$bookkeeping->subledger_account = '';
|
||||||
$bookkeeping->subledger_label = '';
|
$bookkeeping->subledger_label = '';
|
||||||
$bookkeeping->numero_compte = $k;
|
$bookkeeping->numero_compte = $k;
|
||||||
$bookkeeping->label_compte = '';
|
$bookkeeping->label_compte = '';
|
||||||
} else if ($tabtype[$key] == 'payment_various') {
|
} else if ($tabtype[$key] == 'payment_various') {
|
||||||
$bookkeeping->label_operation = $ref;
|
|
||||||
$bookkeeping->subledger_account = '';
|
$bookkeeping->subledger_account = '';
|
||||||
$bookkeeping->subledger_label = '';
|
$bookkeeping->subledger_label = '';
|
||||||
$bookkeeping->numero_compte = $k;
|
$bookkeeping->numero_compte = $k;
|
||||||
$bookkeeping->label_compte = '';
|
$bookkeeping->label_compte = '';
|
||||||
} else if ($tabtype[$key] == 'banktransfert') {
|
} else if ($tabtype[$key] == 'banktransfert') {
|
||||||
$bookkeeping->label_operation = $ref;
|
|
||||||
$bookkeeping->subledger_account = '';
|
$bookkeeping->subledger_account = '';
|
||||||
$bookkeeping->subledger_label = '';
|
$bookkeeping->subledger_label = '';
|
||||||
$bookkeeping->numero_compte = $k;
|
$bookkeeping->numero_compte = $k;
|
||||||
@ -569,13 +556,14 @@ if (! $error && $action == 'writebookkeeping') {
|
|||||||
if ($tabtype[$key] == 'unknown') // Unknown transaction, we will use a waiting account for thirdparty.
|
if ($tabtype[$key] == 'unknown') // Unknown transaction, we will use a waiting account for thirdparty.
|
||||||
{
|
{
|
||||||
// Temporary account
|
// Temporary account
|
||||||
$bookkeeping->label_operation = '';
|
|
||||||
$bookkeeping->subledger_account = '';
|
$bookkeeping->subledger_account = '';
|
||||||
$bookkeeping->subledger_label = '';
|
$bookkeeping->subledger_label = '';
|
||||||
$bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_SUSPENSE;
|
$bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_SUSPENSE;
|
||||||
$bookkeeping->label_compte = '';
|
$bookkeeping->label_compte = '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
$bookkeeping->label_operation = $reflabel;
|
||||||
|
$bookkeeping->entity = $conf->entity;
|
||||||
|
|
||||||
$totaldebit += $bookkeeping->debit;
|
$totaldebit += $bookkeeping->debit;
|
||||||
$totalcredit += $bookkeeping->credit;
|
$totalcredit += $bookkeeping->credit;
|
||||||
@ -598,8 +586,56 @@ if (! $error && $action == 'writebookkeeping') {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else { // If thirdparty unkown, output the waiting account
|
||||||
|
foreach ( $tabbq[$key] as $k => $mt ) {
|
||||||
|
if ($mt)
|
||||||
|
{
|
||||||
|
$reflabel = '';
|
||||||
|
if (! empty($val['lib'])) $reflabel .= dol_string_nohtmltag($val['lib']) . " - ";
|
||||||
|
$reflabel.= dol_string_nohtmltag('WaitingAccount');
|
||||||
|
|
||||||
if ($totaldebit != $totalcredit)
|
$bookkeeping = new BookKeeping($db);
|
||||||
|
$bookkeeping->doc_date = $val["date"];
|
||||||
|
$bookkeeping->doc_ref = $ref;
|
||||||
|
$bookkeeping->doc_type = 'bank';
|
||||||
|
$bookkeeping->fk_doc = $key;
|
||||||
|
$bookkeeping->fk_docdet = $val["fk_bank"];
|
||||||
|
$bookkeeping->montant = $mt;
|
||||||
|
$bookkeeping->sens = ($mt < 0) ? 'D' : 'C';
|
||||||
|
$bookkeeping->debit = ($mt < 0 ? - $mt : 0);
|
||||||
|
$bookkeeping->credit = ($mt >= 0) ? $mt : 0;
|
||||||
|
$bookkeeping->code_journal = $journal;
|
||||||
|
$bookkeeping->journal_label = $journal_label;
|
||||||
|
$bookkeeping->fk_user_author = $user->id;
|
||||||
|
$bookkeeping->date_create = $now;
|
||||||
|
$bookkeeping->label_compte = '';
|
||||||
|
$bookkeeping->label_operation = $reflabel;
|
||||||
|
$bookkeeping->entity = $conf->entity;
|
||||||
|
|
||||||
|
$totaldebit += $bookkeeping->debit;
|
||||||
|
$totalcredit += $bookkeeping->credit;
|
||||||
|
|
||||||
|
$result = $bookkeeping->create($user);
|
||||||
|
if ($result < 0) {
|
||||||
|
if ($bookkeeping->error == 'BookkeepingRecordAlreadyExists') // Already exists
|
||||||
|
{
|
||||||
|
$error++;
|
||||||
|
$errorforline++;
|
||||||
|
setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->fk_doc.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$error++;
|
||||||
|
$errorforline++;
|
||||||
|
setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (price2num($totaldebit) != price2num($totalcredit))
|
||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
$errorforline++;
|
$errorforline++;
|
||||||
@ -662,61 +698,60 @@ if ($action == 'exportcsv') { // ISO and not UTF8 !
|
|||||||
|
|
||||||
include DOL_DOCUMENT_ROOT . '/accountancy/tpl/export_journal.tpl.php';
|
include DOL_DOCUMENT_ROOT . '/accountancy/tpl/export_journal.tpl.php';
|
||||||
|
|
||||||
$companystatic = new Client($db);
|
// CSV header line
|
||||||
$userstatic = new User($db);
|
print '"' . $langs->trans("BankId").'"' . $sep;
|
||||||
|
print '"' . $langs->trans("Date") . '"' . $sep;
|
||||||
|
print '"' . $langs->trans("PaymentMode") . '"' . $sep;
|
||||||
|
print '"' . $langs->trans("AccountAccounting") . '"' . $sep;
|
||||||
|
print '"' . $langs->trans("LedgerAccount") . '"' . $sep;
|
||||||
|
print '"' . $langs->trans("SubledgerAccount") . '"' . $sep;
|
||||||
|
print '"' . $langs->trans("Label"). '"' . $sep;
|
||||||
|
print '"' . $langs->trans("Amount") . '"' . $sep;
|
||||||
|
print '"' . $langs->trans("Amount") . '"' . $sep;
|
||||||
|
print '"' . $langs->trans("Journal") . '"' . $sep;
|
||||||
|
print '"' . $langs->trans("Note") . '"' . $sep;
|
||||||
|
print "\n";
|
||||||
|
|
||||||
foreach ( $tabpay as $key => $val ) {
|
|
||||||
|
foreach ( $tabpay as $key => $val )
|
||||||
|
{
|
||||||
$date = dol_print_date($db->jdate($val["date"]), 'day');
|
$date = dol_print_date($db->jdate($val["date"]), 'day');
|
||||||
|
|
||||||
$ref = getSourceDocRef($val, $tabtype[$key]);
|
$ref = getSourceDocRef($val, $tabtype[$key]);
|
||||||
|
|
||||||
//
|
|
||||||
if (! empty($tabcompany[$key]['id']))
|
|
||||||
{
|
|
||||||
$companystatic->id = $tabcompany[$key]['id'];
|
|
||||||
$companystatic->name = $tabcompany[$key]['name'];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$companystatic->id = 0;
|
|
||||||
$companystatic->name = '';
|
|
||||||
}
|
|
||||||
if (! empty($tabuser[$key]['id']))
|
|
||||||
{
|
|
||||||
$userstatic->id = $tabuser[$key]['id'];
|
|
||||||
$userstatic->lastname = $tabuser[$key]['lastname'];
|
|
||||||
$userstatic->firstname = $tabuser[$key]['firstname'];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$userstatic->id = 0;
|
|
||||||
$userstatic->lastname = '';
|
|
||||||
$userstatic->firstname = '';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Bank
|
// Bank
|
||||||
foreach ( $tabbq[$key] as $k => $mt ) {
|
foreach ( $tabbq[$key] as $k => $mt ) {
|
||||||
|
if ($mt)
|
||||||
|
{
|
||||||
|
$reflabel = '';
|
||||||
|
if (! empty($val['lib'])) $reflabel .= dol_string_nohtmltag($val['lib']) . " - ";
|
||||||
|
$reflabel.= $langs->trans("Bank").' '.dol_string_nohtmltag($val['bank_account_ref']);
|
||||||
|
if (! empty($val['soclib'])) $reflabel .= " - " . dol_string_nohtmltag($val['soclib']);
|
||||||
|
|
||||||
print '"' . $key . '"' . $sep;
|
print '"' . $key . '"' . $sep;
|
||||||
print '"' . $date . '"' . $sep;
|
print '"' . $date . '"' . $sep;
|
||||||
print '"' . $val["type_payment"] . '"' . $sep;
|
print '"' . $val["type_payment"] . '"' . $sep;
|
||||||
print '"' . length_accountg(html_entity_decode($k)) . '"' . $sep;
|
print '"' . length_accountg(html_entity_decode($k)) . '"' . $sep;
|
||||||
print '"' . length_accountg(html_entity_decode($k)) . '"' . $sep;
|
print '"' . length_accountg(html_entity_decode($k)) . '"' . $sep;
|
||||||
print " " . $sep;
|
print " " . $sep;
|
||||||
if ($companystatic->name == '') {
|
print '"' . $reflabel . '"' . $sep;
|
||||||
print '"' . $val['bank_account_ref'] . " - " . utf8_decode($reflabel) . '"' . $sep;
|
|
||||||
} else {
|
|
||||||
print '"' . $val['bank_account_ref'] . ' - ' . utf8_decode($companystatic->name) . '"' . $sep;
|
|
||||||
}
|
|
||||||
print '"' . ($mt >= 0 ? price($mt) : '') . '"' . $sep;
|
print '"' . ($mt >= 0 ? price($mt) : '') . '"' . $sep;
|
||||||
print '"' . ($mt < 0 ? price(- $mt) : '') . '"' . $sep;
|
print '"' . ($mt < 0 ? price(- $mt) : '') . '"' . $sep;
|
||||||
print '"' . $journal . '"' . $sep;
|
print '"' . $journal . '"' . $sep;
|
||||||
|
print '"' . dol_string_nohtmltag($ref) . '"' . $sep;
|
||||||
print "\n";
|
print "\n";
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Third party
|
// Third party
|
||||||
if (is_array($tabtp[$key])) {
|
if (is_array($tabtp[$key])) {
|
||||||
foreach ( $tabtp[$key] as $k => $mt ) {
|
foreach ( $tabtp[$key] as $k => $mt ) {
|
||||||
if ($mt) {
|
if ($mt)
|
||||||
|
{
|
||||||
|
$reflabel = '';
|
||||||
|
if (! empty($val['lib'])) $reflabel .= dol_string_nohtmltag($val['lib']) . ($val['soclib']?" - ":"");
|
||||||
|
$reflabel.= dol_string_nohtmltag($val['soclib']);
|
||||||
|
|
||||||
print '"' . $key . '"' . $sep;
|
print '"' . $key . '"' . $sep;
|
||||||
print '"' . $date . '"' . $sep;
|
print '"' . $date . '"' . $sep;
|
||||||
print '"' . $val["type_payment"] . '"' . $sep;
|
print '"' . $val["type_payment"] . '"' . $sep;
|
||||||
@ -725,41 +760,46 @@ if ($action == 'exportcsv') { // ISO and not UTF8 !
|
|||||||
print '"' . $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER . '"' . $sep;
|
print '"' . $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER . '"' . $sep;
|
||||||
} else if($tabtype[$key] == 'payment') {
|
} else if($tabtype[$key] == 'payment') {
|
||||||
print '"' . $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER . '"' . $sep;
|
print '"' . $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER . '"' . $sep;
|
||||||
|
} else if($tabtype[$key] == 'payment_expensereport') {
|
||||||
|
print '"' . $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT . '"' . $sep;
|
||||||
|
} else if($tabtype[$key] == 'payment_salary') {
|
||||||
|
print '"' . $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT . '"' . $sep;
|
||||||
} else {
|
} else {
|
||||||
print '"' . length_accounta(html_entity_decode($k)) . '"' . $sep;
|
print '"' . length_accounta(html_entity_decode($k)) . '"' . $sep;
|
||||||
}
|
}
|
||||||
print '"' . length_accounta(html_entity_decode($k)) . '"' . $sep;
|
print '"' . length_accounta(html_entity_decode($k)) . '"' . $sep;
|
||||||
if ($companystatic->name == '') {
|
print '"' . $reflabel . '"' . $sep;
|
||||||
print '"' . $langs->trans('ThirdParty') . " - " . utf8_decode($reflabel) . '"' . $sep;
|
|
||||||
} else {
|
|
||||||
print '"' . $langs->trans('ThirdParty') . " - " . utf8_decode($companystatic->name) . '"' . $sep;
|
|
||||||
}
|
|
||||||
print '"' . ($mt < 0 ? price(- $mt) : '') . '"' . $sep;
|
print '"' . ($mt < 0 ? price(- $mt) : '') . '"' . $sep;
|
||||||
print '"' . ($mt >= 0 ? price($mt) : '') . '"' . $sep;
|
print '"' . ($mt >= 0 ? price($mt) : '') . '"' . $sep;
|
||||||
print '"' . $journal . '"' . $sep;
|
print '"' . $journal . '"' . $sep;
|
||||||
|
print '"' . dol_string_nohtmltag($ref) . '"' . $sep;
|
||||||
print "\n";
|
print "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else { // If thirdparty unkown, output the waiting account
|
||||||
foreach ( $tabbq[$key] as $k => $mt ) {
|
foreach ( $tabbq[$key] as $k => $mt ) {
|
||||||
|
if ($mt)
|
||||||
|
{
|
||||||
|
$reflabel = '';
|
||||||
|
if (! empty($val['lib'])) $reflabel .= dol_string_nohtmltag($val['lib']) . " - ";
|
||||||
|
$reflabel.= dol_string_nohtmltag('WaitingAccount');
|
||||||
|
|
||||||
print '"' . $key . '"' . $sep;
|
print '"' . $key . '"' . $sep;
|
||||||
print '"' . $date . '"' . $sep;
|
print '"' . $date . '"' . $sep;
|
||||||
print '"' . $val["type_payment"] . '"' . $sep;
|
print '"' . $val["type_payment"] . '"' . $sep;
|
||||||
print '"' . length_accountg($conf->global->ACCOUNTING_ACCOUNT_SUSPENSE) . '"' . $sep;
|
print '"' . length_accountg($conf->global->ACCOUNTING_ACCOUNT_SUSPENSE) . '"' . $sep;
|
||||||
print '"' . length_accountg($conf->global->ACCOUNTING_ACCOUNT_SUSPENSE) . '"' . $sep;
|
print '"' . length_accountg($conf->global->ACCOUNTING_ACCOUNT_SUSPENSE) . '"' . $sep;
|
||||||
print " " . $sep;
|
print "" . $sep;
|
||||||
if ($companystatic->name == '') {
|
print '"' . $reflabel . '"' . $sep;
|
||||||
print '"' . $val['bank_account_ref'] . ' - ' . utf8_decode($reflabel) . '"' . $sep;
|
|
||||||
} else {
|
|
||||||
print '"' . $val['bank_account_ref'] . ' - ' . utf8_decode($companystatic->name) . '"' . $sep;
|
|
||||||
}
|
|
||||||
print '"' . ($mt < 0 ? price(- $mt) : '') . '"' . $sep;
|
print '"' . ($mt < 0 ? price(- $mt) : '') . '"' . $sep;
|
||||||
print '"' . ($mt >= 0 ? price($mt) : '') . '"' . $sep;
|
print '"' . ($mt >= 0 ? price($mt) : '') . '"' . $sep;
|
||||||
print '"' . $journal . '"' . $sep;
|
print '"' . $journal . '"' . $sep;
|
||||||
|
print '"' . dol_string_nohtmltag($ref) . '"' . $sep;
|
||||||
print "\n";
|
print "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -862,7 +902,8 @@ if (empty($action) || $action == 'view') {
|
|||||||
|
|
||||||
$r = '';
|
$r = '';
|
||||||
|
|
||||||
foreach ( $tabpay as $key => $val ) { // $key is rowid in llx_bank
|
foreach ( $tabpay as $key => $val ) // $key is rowid in llx_bank
|
||||||
|
{
|
||||||
$date = dol_print_date($db->jdate($val["date"]), 'day');
|
$date = dol_print_date($db->jdate($val["date"]), 'day');
|
||||||
|
|
||||||
$ref = getSourceDocRef($val, $tabtype[$key]);
|
$ref = getSourceDocRef($val, $tabtype[$key]);
|
||||||
@ -870,6 +911,13 @@ if (empty($action) || $action == 'view') {
|
|||||||
// Bank
|
// Bank
|
||||||
foreach ( $tabbq[$key] as $k => $mt )
|
foreach ( $tabbq[$key] as $k => $mt )
|
||||||
{
|
{
|
||||||
|
if ($mt)
|
||||||
|
{
|
||||||
|
$reflabel = '';
|
||||||
|
if (! empty($val['lib'])) $reflabel .= $val['lib'] . " - ";
|
||||||
|
$reflabel.= $langs->trans("Bank").' '.$val['bank_account_ref'];
|
||||||
|
if (! empty($val['soclib'])) $reflabel .= " - " . $val['soclib'];
|
||||||
|
|
||||||
//var_dump($tabpay[$key]);
|
//var_dump($tabpay[$key]);
|
||||||
print '<!-- Bank bank.rowid='.$key.' type='.$tabpay[$key]['type'].' ref='.$tabpay[$key]['ref'].'-->';
|
print '<!-- Bank bank.rowid='.$key.' type='.$tabpay[$key]['type'].' ref='.$tabpay[$key]['ref'].'-->';
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
@ -895,23 +943,24 @@ if (empty($action) || $action == 'view') {
|
|||||||
else print $accounttoshow;*/
|
else print $accounttoshow;*/
|
||||||
print "</td>";
|
print "</td>";
|
||||||
print "<td>";
|
print "<td>";
|
||||||
//var_dump($tabpay[$key]);
|
print $reflabel;
|
||||||
print $langs->trans("Bank");
|
|
||||||
print ' '.$val['bank_account_ref'];
|
|
||||||
if (! empty($val['soclib'])) {
|
|
||||||
print " - " . $val['soclib'];
|
|
||||||
}
|
|
||||||
print "</td>";
|
print "</td>";
|
||||||
print "<td>" . $val["type_payment"] . "</td>";
|
print "<td>" . $val["type_payment"] . "</td>";
|
||||||
print "<td align='right'>" . ($mt >= 0 ? price($mt) : '') . "</td>";
|
print "<td align='right'>" . ($mt >= 0 ? price($mt) : '') . "</td>";
|
||||||
print "<td align='right'>" . ($mt < 0 ? price(- $mt) : '') . "</td>";
|
print "<td align='right'>" . ($mt < 0 ? price(- $mt) : '') . "</td>";
|
||||||
print "</tr>";
|
print "</tr>";
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Third party
|
// Third party
|
||||||
if (is_array($tabtp[$key])) {
|
if (is_array($tabtp[$key])) {
|
||||||
foreach ( $tabtp[$key] as $k => $mt ) {
|
foreach ( $tabtp[$key] as $k => $mt ) {
|
||||||
if ($k != 'type') {
|
if ($mt)
|
||||||
|
{
|
||||||
|
$reflabel = '';
|
||||||
|
if (! empty($val['lib'])) $reflabel .= $val['lib'] . ($val['soclib']?" - ":"");
|
||||||
|
$reflabel.= $val['soclib'];
|
||||||
|
|
||||||
print '<!-- Thirdparty bank.rowid='.$key.' -->';
|
print '<!-- Thirdparty bank.rowid='.$key.' -->';
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print "<td></td>";
|
print "<td></td>";
|
||||||
@ -974,15 +1023,21 @@ if (empty($action) || $action == 'view') {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
print "</td>";
|
print "</td>";
|
||||||
print "<td>" . $reflabel . ' ' . $val['soclib'] . "</td>";
|
print "<td>" . $reflabel . "</td>";
|
||||||
print "<td>" . $val["type_payment"] . "</td>";
|
print "<td>" . $val["type_payment"] . "</td>";
|
||||||
print "<td align='right'>" . ($mt < 0 ? price(- $mt) : '') . "</td>";
|
print "<td align='right'>" . ($mt < 0 ? price(- $mt) : '') . "</td>";
|
||||||
print "<td align='right'>" . ($mt >= 0 ? price($mt) : '') . "</td>";
|
print "<td align='right'>" . ($mt >= 0 ? price($mt) : '') . "</td>";
|
||||||
print "</tr>";
|
print "</tr>";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else { // Waiting account
|
||||||
foreach ( $tabbq[$key] as $k => $mt ) {
|
foreach ( $tabbq[$key] as $k => $mt ) {
|
||||||
|
if ($mt)
|
||||||
|
{
|
||||||
|
$reflabel = '';
|
||||||
|
if (! empty($val['lib'])) $reflabel .= $val['lib'] . " - ";
|
||||||
|
$reflabel.= 'WaitingAccount';
|
||||||
|
|
||||||
print '<!-- Wait bank.rowid='.$key.' -->';
|
print '<!-- Wait bank.rowid='.$key.' -->';
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print "<td></td>";
|
print "<td></td>";
|
||||||
@ -1013,6 +1068,7 @@ if (empty($action) || $action == 'view') {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
print "</table>";
|
print "</table>";
|
||||||
print '</div>';
|
print '</div>';
|
||||||
@ -1089,6 +1145,13 @@ function getSourceDocRef($val, $typerecord)
|
|||||||
$sqlmid .= " WHERE s.rowid=" . $val["paymentsalid"];
|
$sqlmid .= " WHERE s.rowid=" . $val["paymentsalid"];
|
||||||
$ref = $langs->trans("SalaryPayment");
|
$ref = $langs->trans("SalaryPayment");
|
||||||
}
|
}
|
||||||
|
elseif ($typerecord == 'sc')
|
||||||
|
{
|
||||||
|
$sqlmid = 'SELECT sc.rowid as ref';
|
||||||
|
$sqlmid .= " FROM " . MAIN_DB_PREFIX . "paiementcharge as sc";
|
||||||
|
$sqlmid .= " WHERE sc.rowid=" . $val["paymentscid"];
|
||||||
|
$ref = $langs->trans("SocialContribution");
|
||||||
|
}
|
||||||
elseif ($typerecord == 'payment_vat')
|
elseif ($typerecord == 'payment_vat')
|
||||||
{
|
{
|
||||||
$sqlmid = 'SELECT v.rowid as ref';
|
$sqlmid = 'SELECT v.rowid as ref';
|
||||||
@ -1101,7 +1164,7 @@ function getSourceDocRef($val, $typerecord)
|
|||||||
$sqlmid = 'SELECT payd.fk_donation as ref';
|
$sqlmid = 'SELECT payd.fk_donation as ref';
|
||||||
$sqlmid .= " FROM " . MAIN_DB_PREFIX . "payment_donation as payd";
|
$sqlmid .= " FROM " . MAIN_DB_PREFIX . "payment_donation as payd";
|
||||||
$sqlmid .= " WHERE payd.fk_donation=" . $val["paymentdonationid"];
|
$sqlmid .= " WHERE payd.fk_donation=" . $val["paymentdonationid"];
|
||||||
$ref = $langs->trans("Donation").' ';
|
$ref = $langs->trans("Donation");
|
||||||
}
|
}
|
||||||
elseif ($typerecord == 'payment_various')
|
elseif ($typerecord == 'payment_various')
|
||||||
{
|
{
|
||||||
@ -1129,5 +1192,6 @@ function getSourceDocRef($val, $typerecord)
|
|||||||
else dol_print_error($db);
|
else dol_print_error($db);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$ref = dol_trunc($langs->trans("BankId").' '.$val['fk_bank'].' - '.$ref, 295); // 295 + 3 ... i< < than max size of 300
|
||||||
return $ref;
|
return $ref;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -216,6 +216,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
$bookkeeping->code_journal = $journal;
|
$bookkeeping->code_journal = $journal;
|
||||||
$bookkeeping->journal_label = $journal_label;
|
$bookkeeping->journal_label = $journal_label;
|
||||||
$bookkeeping->fk_user_author = $user->id;
|
$bookkeeping->fk_user_author = $user->id;
|
||||||
|
$bookkeeping->entity = $conf->entity;
|
||||||
|
|
||||||
$totaldebit += $bookkeeping->debit;
|
$totaldebit += $bookkeeping->debit;
|
||||||
$totalcredit += $bookkeeping->credit;
|
$totalcredit += $bookkeeping->credit;
|
||||||
@ -265,6 +266,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
$bookkeeping->code_journal = $journal;
|
$bookkeeping->code_journal = $journal;
|
||||||
$bookkeeping->journal_label = $journal_label;
|
$bookkeeping->journal_label = $journal_label;
|
||||||
$bookkeeping->fk_user_author = $user->id;
|
$bookkeeping->fk_user_author = $user->id;
|
||||||
|
$bookkeeping->entity = $conf->entity;
|
||||||
|
|
||||||
$totaldebit += $bookkeeping->debit;
|
$totaldebit += $bookkeeping->debit;
|
||||||
$totalcredit += $bookkeeping->credit;
|
$totalcredit += $bookkeeping->credit;
|
||||||
@ -320,6 +322,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
$bookkeeping->code_journal = $journal;
|
$bookkeeping->code_journal = $journal;
|
||||||
$bookkeeping->journal_label = $journal_label;
|
$bookkeeping->journal_label = $journal_label;
|
||||||
$bookkeeping->fk_user_author = $user->id;
|
$bookkeeping->fk_user_author = $user->id;
|
||||||
|
$bookkeeping->entity = $conf->entity;
|
||||||
|
|
||||||
$totaldebit += $bookkeeping->debit;
|
$totaldebit += $bookkeeping->debit;
|
||||||
$totalcredit += $bookkeeping->credit;
|
$totalcredit += $bookkeeping->credit;
|
||||||
@ -344,7 +347,8 @@ if ($action == 'writebookkeeping') {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($totaldebit != $totalcredit)
|
// Protection against a bug on line before
|
||||||
|
if (price2num($totaldebit) != price2num($totalcredit))
|
||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
$errorforline++;
|
$errorforline++;
|
||||||
@ -554,14 +558,15 @@ if (empty($action) || $action == 'view') {
|
|||||||
print '
|
print '
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
function launch_export() {
|
function launch_export() {
|
||||||
$("div.fiche div.tabBar form input[name=\"action\"]").val("exportcsv");
|
$("div.fiche form input[name=\"action\"]").val("exportcsv");
|
||||||
$("div.fiche div.tabBar form input[type=\"submit\"]").click();
|
$("div.fiche form input[type=\"submit\"]").click();
|
||||||
$("div.fiche div.tabBar form input[name=\"action\"]").val("");
|
$("div.fiche form input[name=\"action\"]").val("");
|
||||||
}
|
}
|
||||||
function writebookkeeping() {
|
function writebookkeeping() {
|
||||||
$("div.fiche div.tabBar form input[name=\"action\"]").val("writebookkeeping");
|
console.log("click on writebookkeeping");
|
||||||
$("div.fiche div.tabBar form input[type=\"submit\"]").click();
|
$("div.fiche form input[name=\"action\"]").val("writebookkeeping");
|
||||||
$("div.fiche div.tabBar form input[name=\"action\"]").val("");
|
$("div.fiche form input[type=\"submit\"]").click();
|
||||||
|
$("div.fiche form input[name=\"action\"]").val("");
|
||||||
}
|
}
|
||||||
</script>';
|
</script>';
|
||||||
|
|
||||||
|
|||||||
@ -98,14 +98,12 @@ $sql = "SELECT f.rowid, f.ref, f.type, f.datef as df, f.libelle,f.ref_supplier,
|
|||||||
$sql .= " fd.rowid as fdid, fd.description, fd.product_type, fd.total_ht, fd.tva as total_tva, fd.total_localtax1, fd.total_localtax2, fd.tva_tx, fd.total_ttc, fd.vat_src_code,";
|
$sql .= " fd.rowid as fdid, fd.description, fd.product_type, fd.total_ht, fd.tva as total_tva, fd.total_localtax1, fd.total_localtax2, fd.tva_tx, fd.total_ttc, fd.vat_src_code,";
|
||||||
$sql .= " s.rowid as socid, s.nom as name, s.fournisseur, s.code_client, s.code_fournisseur, s.code_compta, s.code_compta_fournisseur,";
|
$sql .= " s.rowid as socid, s.nom as name, s.fournisseur, s.code_client, s.code_fournisseur, s.code_compta, s.code_compta_fournisseur,";
|
||||||
$sql .= " p.accountancy_code_buy , aa.rowid as fk_compte, aa.account_number as compte, aa.label as label_compte";
|
$sql .= " p.accountancy_code_buy , aa.rowid as fk_compte, aa.account_number as compte, aa.label as label_compte";
|
||||||
//$sql .= " ct.accountancy_code_buy as account_tva";
|
|
||||||
$sql .= " FROM " . MAIN_DB_PREFIX . "facture_fourn_det as fd";
|
$sql .= " FROM " . MAIN_DB_PREFIX . "facture_fourn_det as fd";
|
||||||
//$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "c_tva as ct ON fd.tva_tx = ct.taux AND ct.fk_pays = '" . $idpays . "'";
|
|
||||||
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON p.rowid = fd.fk_product";
|
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON p.rowid = fd.fk_product";
|
||||||
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON aa.rowid = fd.fk_code_ventilation";
|
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON aa.rowid = fd.fk_code_ventilation";
|
||||||
$sql .= " JOIN " . MAIN_DB_PREFIX . "facture_fourn as f ON f.rowid = fd.fk_facture_fourn";
|
$sql .= " JOIN " . MAIN_DB_PREFIX . "facture_fourn as f ON f.rowid = fd.fk_facture_fourn";
|
||||||
$sql .= " JOIN " . MAIN_DB_PREFIX . "societe as s ON s.rowid = f.fk_soc";
|
$sql .= " JOIN " . MAIN_DB_PREFIX . "societe as s ON s.rowid = f.fk_soc";
|
||||||
$sql .= " WHERE f.fk_statut > 0"; // TODO Facture annulée ?
|
$sql .= " WHERE f.fk_statut > 0";
|
||||||
$sql .= " AND fd.fk_code_ventilation > 0";
|
$sql .= " AND fd.fk_code_ventilation > 0";
|
||||||
$sql .= " AND f.entity IN (" . getEntity('facture_fourn', 0) . ")"; // We don't share object for accountancy
|
$sql .= " AND f.entity IN (" . getEntity('facture_fourn', 0) . ")"; // We don't share object for accountancy
|
||||||
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) {
|
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) {
|
||||||
@ -214,6 +212,29 @@ if ($result) {
|
|||||||
dol_print_error($db);
|
dol_print_error($db);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$errorforinvoice = array();
|
||||||
|
|
||||||
|
// Loop in invoices to detect lines with not binding lines
|
||||||
|
foreach ($tabfac as $key => $val) { // Loop on each invoice
|
||||||
|
$sql = "SELECT COUNT(fd.rowid) as nb";
|
||||||
|
$sql.= " FROM " . MAIN_DB_PREFIX . "facture_fourn_det as fd";
|
||||||
|
$sql.= " WHERE fd.product_type <= 2 AND fd.fk_code_ventilation <= 0";
|
||||||
|
$sql.= " AND fd.total_ttc <> 0 AND fk_facture_fourn = ".$key;
|
||||||
|
$resql=$db->query($sql);
|
||||||
|
if ($resql)
|
||||||
|
{
|
||||||
|
$obj = $db->fetch_object($resql);
|
||||||
|
if ($obj->nb > 0)
|
||||||
|
{
|
||||||
|
$errorforinvoice[$key]='somelinesarenotbound';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else dol_print_error($db);
|
||||||
|
}
|
||||||
|
//var_dump($errorforinvoice);exit;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Bookkeeping Write
|
// Bookkeeping Write
|
||||||
if ($action == 'writebookkeeping') {
|
if ($action == 'writebookkeeping') {
|
||||||
$now = dol_now();
|
$now = dol_now();
|
||||||
@ -257,17 +278,26 @@ if ($action == 'writebookkeeping') {
|
|||||||
if ($alreadydispatched) $replacedinvoice = 2;
|
if ($alreadydispatched) $replacedinvoice = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If not already into bookkeeping, we won't add it, if yes, add the counterpart ???.
|
// If not already into bookkeeping, we won't add it. If yes, do nothing (should not happen because creating replacement not possible if invoice is accounted)
|
||||||
if ($replacedinvoice == 1)
|
if ($replacedinvoice == 1)
|
||||||
{
|
{
|
||||||
|
$db->rollback();
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Error if some lines are not binded/ready to be journalized
|
||||||
|
if ($errorforinvoice[$key] == 'somelinesarenotbound')
|
||||||
|
{
|
||||||
|
$error++;
|
||||||
|
$errorforline++;
|
||||||
|
setEventMessages($langs->trans('ErrorInvoiceContainsLinesNotYetBounded', $val['ref']), null, 'errors');
|
||||||
|
}
|
||||||
|
|
||||||
// Thirdparty
|
// Thirdparty
|
||||||
if (! $errorforline)
|
if (! $errorforline)
|
||||||
{
|
{
|
||||||
foreach ( $tabttc[$key] as $k => $mt ) {
|
foreach ( $tabttc[$key] as $k => $mt ) {
|
||||||
if ($mt) {
|
//if ($mt) {
|
||||||
$bookkeeping = new BookKeeping($db);
|
$bookkeeping = new BookKeeping($db);
|
||||||
$bookkeeping->doc_date = $val["date"];
|
$bookkeeping->doc_date = $val["date"];
|
||||||
$bookkeeping->date_lim_reglement = $val["datereg"];
|
$bookkeeping->date_lim_reglement = $val["datereg"];
|
||||||
@ -288,6 +318,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
$bookkeeping->code_journal = $journal;
|
$bookkeeping->code_journal = $journal;
|
||||||
$bookkeeping->journal_label = $journal_label;
|
$bookkeeping->journal_label = $journal_label;
|
||||||
$bookkeeping->fk_user_author = $user->id;
|
$bookkeeping->fk_user_author = $user->id;
|
||||||
|
$bookkeeping->entity = $conf->entity;
|
||||||
|
|
||||||
$totaldebit += $bookkeeping->debit;
|
$totaldebit += $bookkeeping->debit;
|
||||||
$totalcredit += $bookkeeping->credit;
|
$totalcredit += $bookkeeping->credit;
|
||||||
@ -298,16 +329,18 @@ if ($action == 'writebookkeeping') {
|
|||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
$errorforline++;
|
$errorforline++;
|
||||||
|
$errorforinvoice[$key]='alreadyjournalized';
|
||||||
//setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->fk_doc.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
|
//setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->fk_doc.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
$errorforline++;
|
$errorforline++;
|
||||||
|
$errorforinvoice[$key]='other';
|
||||||
setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors');
|
setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -315,7 +348,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
if (! $errorforline)
|
if (! $errorforline)
|
||||||
{
|
{
|
||||||
foreach ( $tabht[$key] as $k => $mt ) {
|
foreach ( $tabht[$key] as $k => $mt ) {
|
||||||
if ($mt) {
|
//if ($mt) {
|
||||||
// get compte id and label
|
// get compte id and label
|
||||||
$accountingaccount = new AccountingAccount($db);
|
$accountingaccount = new AccountingAccount($db);
|
||||||
if ($accountingaccount->fetch(null, $k, true)) {
|
if ($accountingaccount->fetch(null, $k, true)) {
|
||||||
@ -339,6 +372,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
$bookkeeping->code_journal = $journal;
|
$bookkeeping->code_journal = $journal;
|
||||||
$bookkeeping->journal_label = $journal_label;
|
$bookkeeping->journal_label = $journal_label;
|
||||||
$bookkeeping->fk_user_author = $user->id;
|
$bookkeeping->fk_user_author = $user->id;
|
||||||
|
$bookkeeping->entity = $conf->entity;
|
||||||
|
|
||||||
$totaldebit += $bookkeeping->debit;
|
$totaldebit += $bookkeeping->debit;
|
||||||
$totalcredit += $bookkeeping->credit;
|
$totalcredit += $bookkeeping->credit;
|
||||||
@ -349,17 +383,19 @@ if ($action == 'writebookkeeping') {
|
|||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
$errorforline++;
|
$errorforline++;
|
||||||
|
$errorforinvoice[$key]='alreadyjournalized';
|
||||||
//setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->fk_doc.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
|
//setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->fk_doc.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
$errorforline++;
|
$errorforline++;
|
||||||
|
$errorforinvoice[$key]='other';
|
||||||
setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors');
|
setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -396,6 +432,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
$bookkeeping->code_journal = $journal;
|
$bookkeeping->code_journal = $journal;
|
||||||
$bookkeeping->journal_label = $journal_label;
|
$bookkeeping->journal_label = $journal_label;
|
||||||
$bookkeeping->fk_user_author = $user->id;
|
$bookkeeping->fk_user_author = $user->id;
|
||||||
|
$bookkeeping->entity = $conf->entity;
|
||||||
|
|
||||||
$totaldebit += $bookkeeping->debit;
|
$totaldebit += $bookkeeping->debit;
|
||||||
$totalcredit += $bookkeeping->credit;
|
$totalcredit += $bookkeeping->credit;
|
||||||
@ -406,12 +443,14 @@ if ($action == 'writebookkeeping') {
|
|||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
$errorforline++;
|
$errorforline++;
|
||||||
|
$errorforinvoice[$key]='alreadyjournalized';
|
||||||
//setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->fk_doc.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
|
//setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->fk_doc.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
$errorforline++;
|
$errorforline++;
|
||||||
|
$errorforinvoice[$key]='other';
|
||||||
setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors');
|
setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -422,7 +461,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
|
|
||||||
// Counterpart of VAT for VAT NPR
|
// Counterpart of VAT for VAT NPR
|
||||||
// var_dump($tabother);
|
// var_dump($tabother);
|
||||||
if (! $errorforline)
|
if (! $errorforline && is_array($tabother[$key]))
|
||||||
{
|
{
|
||||||
foreach ( $tabother[$key] as $k => $mt ) {
|
foreach ( $tabother[$key] as $k => $mt ) {
|
||||||
if ($mt) {
|
if ($mt) {
|
||||||
@ -446,6 +485,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
$bookkeeping->code_journal = $journal;
|
$bookkeeping->code_journal = $journal;
|
||||||
$bookkeeping->journal_label = $journal_label;
|
$bookkeeping->journal_label = $journal_label;
|
||||||
$bookkeeping->fk_user_author = $user->id;
|
$bookkeeping->fk_user_author = $user->id;
|
||||||
|
$bookkeeping->entity = $conf->entity;
|
||||||
|
|
||||||
$totaldebit += $bookkeeping->debit;
|
$totaldebit += $bookkeeping->debit;
|
||||||
$totalcredit += $bookkeeping->credit;
|
$totalcredit += $bookkeeping->credit;
|
||||||
@ -456,12 +496,14 @@ if ($action == 'writebookkeeping') {
|
|||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
$errorforline++;
|
$errorforline++;
|
||||||
|
$errorforinvoice[$key]='alreadyjournalized';
|
||||||
//setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->fk_doc.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
|
//setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->fk_doc.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
$errorforline++;
|
$errorforline++;
|
||||||
|
$errorforinvoice[$key]='other';
|
||||||
setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors');
|
setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -469,10 +511,12 @@ if ($action == 'writebookkeeping') {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($totaldebit != $totalcredit)
|
// Protection against a bug on lines before
|
||||||
|
if (! $errorforline && (price2num($totaldebit) != price2num($totalcredit)))
|
||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
$errorforline++;
|
$errorforline++;
|
||||||
|
$errorforinvoice[$key]='amountsnotbalanced';
|
||||||
setEventMessages('Try to insert a non balanced transaction in book for '.$invoicestatic->ref.'. Canceled. Surely a bug.', null, 'errors');
|
setEventMessages('Try to insert a non balanced transaction in book for '.$invoicestatic->ref.'. Canceled. Surely a bug.', null, 'errors');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -567,7 +611,7 @@ if ($action == 'exportcsv') {
|
|||||||
if ($alreadydispatched) $replacedinvoice = 2;
|
if ($alreadydispatched) $replacedinvoice = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If not already into bookkeeping, we won't add it, if yes, add the counterpart ???.
|
// If not already into bookkeeping, we won't add it. If yes, do nothing (should not happen because creating replacement not possible if invoice is accounted)
|
||||||
if ($replacedinvoice == 1)
|
if ($replacedinvoice == 1)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
@ -575,6 +619,7 @@ if ($action == 'exportcsv') {
|
|||||||
|
|
||||||
// Third party
|
// Third party
|
||||||
foreach ( $tabttc[$key] as $k => $mt ) {
|
foreach ( $tabttc[$key] as $k => $mt ) {
|
||||||
|
//if ($mt) {
|
||||||
print '"' . $key . '"' . $sep;
|
print '"' . $key . '"' . $sep;
|
||||||
print '"' . $date . '"' . $sep;
|
print '"' . $date . '"' . $sep;
|
||||||
print '"' . $val["refsologest"] . '"' . $sep;
|
print '"' . $val["refsologest"] . '"' . $sep;
|
||||||
@ -588,13 +633,14 @@ if ($action == 'exportcsv') {
|
|||||||
print '"' . ($mt >= 0 ? price($mt) : '') . '"'. $sep;
|
print '"' . ($mt >= 0 ? price($mt) : '') . '"'. $sep;
|
||||||
print '"' . $journal . '"' ;
|
print '"' . $journal . '"' ;
|
||||||
print "\n";
|
print "\n";
|
||||||
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Product / Service
|
// Product / Service
|
||||||
foreach ( $tabht[$key] as $k => $mt ) {
|
foreach ( $tabht[$key] as $k => $mt ) {
|
||||||
$accountingaccount = new AccountingAccount($db);
|
$accountingaccount = new AccountingAccount($db);
|
||||||
$accountingaccount->fetch(null, $k, true);
|
$accountingaccount->fetch(null, $k, true);
|
||||||
if ($mt) {
|
//if ($mt) {
|
||||||
print '"' . $key . '"' . $sep;
|
print '"' . $key . '"' . $sep;
|
||||||
print '"' . $date . '"' . $sep;
|
print '"' . $date . '"' . $sep;
|
||||||
print '"' . $val["refsologest"] . '"' . $sep;
|
print '"' . $val["refsologest"] . '"' . $sep;
|
||||||
@ -608,7 +654,7 @@ if ($action == 'exportcsv') {
|
|||||||
print '"' . ($mt < 0 ? price(- $mt) : '') . '"'. $sep;
|
print '"' . ($mt < 0 ? price(- $mt) : '') . '"'. $sep;
|
||||||
print '"' . $journal . '"' ;
|
print '"' . $journal . '"' ;
|
||||||
print "\n";
|
print "\n";
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
// VAT
|
// VAT
|
||||||
@ -709,6 +755,7 @@ if (empty($action) || $action == 'view') {
|
|||||||
$("div.fiche form input[name=\"action\"]").val("");
|
$("div.fiche form input[name=\"action\"]").val("");
|
||||||
}
|
}
|
||||||
function writebookkeeping() {
|
function writebookkeeping() {
|
||||||
|
console.log("click on writebookkeeping");
|
||||||
$("div.fiche form input[name=\"action\"]").val("writebookkeeping");
|
$("div.fiche form input[name=\"action\"]").val("writebookkeeping");
|
||||||
$("div.fiche form input[type=\"submit\"]").click();
|
$("div.fiche form input[type=\"submit\"]").click();
|
||||||
$("div.fiche form input[name=\"action\"]").val("");
|
$("div.fiche form input[name=\"action\"]").val("");
|
||||||
@ -786,11 +833,32 @@ if (empty($action) || $action == 'view') {
|
|||||||
print '<td align="right"></td>';
|
print '<td align="right"></td>';
|
||||||
print '<td align="right"></td>';
|
print '<td align="right"></td>';
|
||||||
print "</tr>";
|
print "</tr>";
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if ($errorforinvoice[$key] == 'somelinesarenotbound')
|
||||||
|
{
|
||||||
|
print '<tr class="oddeven">';
|
||||||
|
print "<td><!-- Some lines are not bound --></td>";
|
||||||
|
print "<td>" . $date . "</td>";
|
||||||
|
print "<td>" . $invoicestatic->getNomUrl(1) . "</td>";
|
||||||
|
// Account
|
||||||
|
print "<td>";
|
||||||
|
print '<span class="error">'.$langs->trans('ErrorInvoiceContainsLinesNotYetBoundedShort', $val['ref']).'</span>';
|
||||||
|
print '</td>';
|
||||||
|
// Subledger account
|
||||||
|
print "<td>";
|
||||||
|
print '</td>';
|
||||||
|
print "<td>";
|
||||||
|
print "</td>";
|
||||||
|
print '<td align="right"></td>';
|
||||||
|
print '<td align="right"></td>';
|
||||||
|
print "</tr>";
|
||||||
|
}
|
||||||
|
|
||||||
// Third party
|
// Third party
|
||||||
foreach ( $tabttc[$key] as $k => $mt ) {
|
foreach ( $tabttc[$key] as $k => $mt ) {
|
||||||
|
//if ($mt) {
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print "<td><!-- Thirdparty --></td>";
|
print "<td><!-- Thirdparty --></td>";
|
||||||
print "<td>" . $date . "</td>";
|
print "<td>" . $date . "</td>";
|
||||||
@ -817,6 +885,7 @@ if (empty($action) || $action == 'view') {
|
|||||||
print '<td align="right">' . ($mt < 0 ? - price(- $mt) : '') . "</td>";
|
print '<td align="right">' . ($mt < 0 ? - price(- $mt) : '') . "</td>";
|
||||||
print '<td align="right">' . ($mt >= 0 ? price($mt) : '') . "</td>";
|
print '<td align="right">' . ($mt >= 0 ? price($mt) : '') . "</td>";
|
||||||
print "</tr>";
|
print "</tr>";
|
||||||
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Product / Service
|
// Product / Service
|
||||||
@ -824,7 +893,7 @@ if (empty($action) || $action == 'view') {
|
|||||||
$accountingaccount = new AccountingAccount($db);
|
$accountingaccount = new AccountingAccount($db);
|
||||||
$accountingaccount->fetch(null, $k, true);
|
$accountingaccount->fetch(null, $k, true);
|
||||||
|
|
||||||
if ($mt) {
|
//if ($mt) {
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print "<td><!-- Product --></td>";
|
print "<td><!-- Product --></td>";
|
||||||
print "<td>" . $date . "</td>";
|
print "<td>" . $date . "</td>";
|
||||||
@ -847,7 +916,7 @@ if (empty($action) || $action == 'view') {
|
|||||||
print '<td align="right">' . ($mt >= 0 ? price($mt) : '') . "</td>";
|
print '<td align="right">' . ($mt >= 0 ? price($mt) : '') . "</td>";
|
||||||
print '<td align="right">' . ($mt < 0 ? price(- $mt) : '') . "</td>";
|
print '<td align="right">' . ($mt < 0 ? price(- $mt) : '') . "</td>";
|
||||||
print "</tr>";
|
print "</tr>";
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
// VAT
|
// VAT
|
||||||
@ -889,7 +958,7 @@ if (empty($action) || $action == 'view') {
|
|||||||
if (is_array($tabother[$key]))
|
if (is_array($tabother[$key]))
|
||||||
{
|
{
|
||||||
foreach ( $tabother[$key] as $k => $mt ) {
|
foreach ( $tabother[$key] as $k => $mt ) {
|
||||||
|
if ($mt) {
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print "<td><!-- VAT counterpart NPR --></td>";
|
print "<td><!-- VAT counterpart NPR --></td>";
|
||||||
print "<td>" . $date . "</td>";
|
print "<td>" . $date . "</td>";
|
||||||
@ -913,6 +982,7 @@ if (empty($action) || $action == 'view') {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
print "</table>";
|
print "</table>";
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|||||||
@ -93,17 +93,15 @@ $sql = "SELECT f.rowid, f.facnumber, f.type, f.datef as df, f.ref_client, f.date
|
|||||||
$sql .= " fd.rowid as fdid, fd.description, fd.product_type, fd.total_ht, fd.total_tva, fd.total_localtax1, fd.total_localtax2, fd.tva_tx, fd.total_ttc, fd.situation_percent, fd.vat_src_code,";
|
$sql .= " fd.rowid as fdid, fd.description, fd.product_type, fd.total_ht, fd.total_tva, fd.total_localtax1, fd.total_localtax2, fd.tva_tx, fd.total_ttc, fd.situation_percent, fd.vat_src_code,";
|
||||||
$sql .= " s.rowid as socid, s.nom as name, s.code_client, s.code_fournisseur, s.code_compta, s.code_compta_fournisseur,";
|
$sql .= " s.rowid as socid, s.nom as name, s.code_client, s.code_fournisseur, s.code_compta, s.code_compta_fournisseur,";
|
||||||
$sql .= " p.rowid as pid, p.ref as pref, p.accountancy_code_sell, aa.rowid as fk_compte, aa.account_number as compte, aa.label as label_compte";
|
$sql .= " p.rowid as pid, p.ref as pref, p.accountancy_code_sell, aa.rowid as fk_compte, aa.account_number as compte, aa.label as label_compte";
|
||||||
//$sql .= " ct.accountancy_code_sell as account_tva";
|
|
||||||
$sql .= " FROM " . MAIN_DB_PREFIX . "facturedet as fd";
|
$sql .= " FROM " . MAIN_DB_PREFIX . "facturedet as fd";
|
||||||
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON p.rowid = fd.fk_product";
|
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON p.rowid = fd.fk_product";
|
||||||
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON aa.rowid = fd.fk_code_ventilation";
|
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON aa.rowid = fd.fk_code_ventilation";
|
||||||
$sql .= " JOIN " . MAIN_DB_PREFIX . "facture as f ON f.rowid = fd.fk_facture";
|
$sql .= " JOIN " . MAIN_DB_PREFIX . "facture as f ON f.rowid = fd.fk_facture";
|
||||||
$sql .= " JOIN " . MAIN_DB_PREFIX . "societe as s ON s.rowid = f.fk_soc";
|
$sql .= " JOIN " . MAIN_DB_PREFIX . "societe as s ON s.rowid = f.fk_soc";
|
||||||
//$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "c_tva as ct ON ((fd.vat_src_code <> '' AND fd.vat_src_code = ct.code) OR (fd.vat_src_code = '' AND fd.tva_tx = ct.taux)) AND ct.fk_pays = '" . $idpays . "'";
|
|
||||||
$sql .= " WHERE fd.fk_code_ventilation > 0";
|
$sql .= " WHERE fd.fk_code_ventilation > 0";
|
||||||
$sql .= " AND f.entity IN (".getEntity('facture', 0).')'; // We don't share object for accountancy
|
$sql .= " AND f.entity IN (".getEntity('facture', 0).')'; // We don't share object for accountancy, we use source object sharing
|
||||||
$sql .= " AND f.fk_statut > 0"; // TODO Facture annulée ?
|
$sql .= " AND f.fk_statut > 0";
|
||||||
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) {
|
if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) { // Non common setup
|
||||||
$sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_SITUATION . ")";
|
$sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_SITUATION . ")";
|
||||||
} else {
|
} else {
|
||||||
$sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_DEPOSIT . "," . Facture::TYPE_SITUATION . ")";
|
$sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_DEPOSIT . "," . Facture::TYPE_SITUATION . ")";
|
||||||
@ -123,6 +121,7 @@ if ($in_bookkeeping == 'notyet')
|
|||||||
// $sql .= " AND fd.rowid NOT IN (SELECT fk_docdet FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as ab WHERE ab.doc_type='customer_invoice')"; // Useless, we save one line for all products with same account
|
// $sql .= " AND fd.rowid NOT IN (SELECT fk_docdet FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as ab WHERE ab.doc_type='customer_invoice')"; // Useless, we save one line for all products with same account
|
||||||
}
|
}
|
||||||
$sql .= " ORDER BY f.datef";
|
$sql .= " ORDER BY f.datef";
|
||||||
|
//print $sql;
|
||||||
|
|
||||||
dol_syslog('accountancy/journal/sellsjournal.php', LOG_DEBUG);
|
dol_syslog('accountancy/journal/sellsjournal.php', LOG_DEBUG);
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
@ -218,6 +217,28 @@ if ($result) {
|
|||||||
dol_print_error($db);
|
dol_print_error($db);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$errorforinvoice = array();
|
||||||
|
|
||||||
|
// Loop in invoices to detect lines with not binding lines
|
||||||
|
foreach ($tabfac as $key => $val) { // Loop on each invoice
|
||||||
|
$sql = "SELECT COUNT(fd.rowid) as nb";
|
||||||
|
$sql.= " FROM " . MAIN_DB_PREFIX . "facturedet as fd";
|
||||||
|
$sql.= " WHERE fd.product_type <= 2 AND fd.fk_code_ventilation <= 0";
|
||||||
|
$sql.= " AND fd.total_ttc <> 0 AND fk_facture = ".$key;
|
||||||
|
$resql=$db->query($sql);
|
||||||
|
if ($resql)
|
||||||
|
{
|
||||||
|
$obj = $db->fetch_object($resql);
|
||||||
|
if ($obj->nb > 0)
|
||||||
|
{
|
||||||
|
$errorforinvoice[$key]='somelinesarenotbound';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else dol_print_error($db);
|
||||||
|
}
|
||||||
|
//var_dump($errorforinvoice);exit;
|
||||||
|
|
||||||
|
|
||||||
// Bookkeeping Write
|
// Bookkeeping Write
|
||||||
if ($action == 'writebookkeeping') {
|
if ($action == 'writebookkeeping') {
|
||||||
$now = dol_now();
|
$now = dol_now();
|
||||||
@ -259,17 +280,26 @@ if ($action == 'writebookkeeping') {
|
|||||||
if ($alreadydispatched) $replacedinvoice = 2;
|
if ($alreadydispatched) $replacedinvoice = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If not already into bookkeeping, we won't add it, if yes, add the counterpart ???.
|
// If not already into bookkeeping, we won't add it. If yes, do nothing (should not happen because creating replacement not possible if invoice is accounted)
|
||||||
if ($replacedinvoice == 1)
|
if ($replacedinvoice == 1)
|
||||||
{
|
{
|
||||||
|
$db->rollback();
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Error if some lines are not binded/ready to be journalized
|
||||||
|
if ($errorforinvoice[$key] == 'somelinesarenotbound')
|
||||||
|
{
|
||||||
|
$error++;
|
||||||
|
$errorforline++;
|
||||||
|
setEventMessages($langs->trans('ErrorInvoiceContainsLinesNotYetBounded', $val['ref']), null, 'errors');
|
||||||
|
}
|
||||||
|
|
||||||
// Thirdparty
|
// Thirdparty
|
||||||
if (! $errorforline)
|
if (! $errorforline)
|
||||||
{
|
{
|
||||||
foreach ( $tabttc[$key] as $k => $mt ) {
|
foreach ( $tabttc[$key] as $k => $mt ) {
|
||||||
if ($mt) {
|
//if ($mt) {
|
||||||
$bookkeeping = new BookKeeping($db);
|
$bookkeeping = new BookKeeping($db);
|
||||||
$bookkeeping->doc_date = $val["date"];
|
$bookkeeping->doc_date = $val["date"];
|
||||||
$bookkeeping->date_lim_reglement = $val["datereg"];
|
$bookkeeping->date_lim_reglement = $val["datereg"];
|
||||||
@ -290,6 +320,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
$bookkeeping->code_journal = $journal;
|
$bookkeeping->code_journal = $journal;
|
||||||
$bookkeeping->journal_label = $journal_label;
|
$bookkeeping->journal_label = $journal_label;
|
||||||
$bookkeeping->fk_user_author = $user->id;
|
$bookkeeping->fk_user_author = $user->id;
|
||||||
|
$bookkeeping->entity = $conf->entity;
|
||||||
|
|
||||||
$totaldebit += $bookkeeping->debit;
|
$totaldebit += $bookkeeping->debit;
|
||||||
$totalcredit += $bookkeeping->credit;
|
$totalcredit += $bookkeeping->credit;
|
||||||
@ -300,16 +331,18 @@ if ($action == 'writebookkeeping') {
|
|||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
$errorforline++;
|
$errorforline++;
|
||||||
|
$errorforinvoice[$key]='alreadyjournalized';
|
||||||
//setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->fk_doc.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
|
//setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->fk_doc.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
$errorforline++;
|
$errorforline++;
|
||||||
|
$errorforinvoice[$key]='other';
|
||||||
setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors');
|
setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -317,7 +350,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
if (! $errorforline)
|
if (! $errorforline)
|
||||||
{
|
{
|
||||||
foreach ( $tabht[$key] as $k => $mt ) {
|
foreach ( $tabht[$key] as $k => $mt ) {
|
||||||
if ($mt) {
|
//if ($mt) {
|
||||||
// get compte id and label
|
// get compte id and label
|
||||||
$accountingaccount = new AccountingAccount($db);
|
$accountingaccount = new AccountingAccount($db);
|
||||||
if ($accountingaccount->fetch(null, $k, true)) {
|
if ($accountingaccount->fetch(null, $k, true)) {
|
||||||
@ -341,6 +374,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
$bookkeeping->code_journal = $journal;
|
$bookkeeping->code_journal = $journal;
|
||||||
$bookkeeping->journal_label = $journal_label;
|
$bookkeeping->journal_label = $journal_label;
|
||||||
$bookkeeping->fk_user_author = $user->id;
|
$bookkeeping->fk_user_author = $user->id;
|
||||||
|
$bookkeeping->entity = $conf->entity;
|
||||||
|
|
||||||
$totaldebit += $bookkeeping->debit;
|
$totaldebit += $bookkeeping->debit;
|
||||||
$totalcredit += $bookkeeping->credit;
|
$totalcredit += $bookkeeping->credit;
|
||||||
@ -351,22 +385,23 @@ if ($action == 'writebookkeeping') {
|
|||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
$errorforline++;
|
$errorforline++;
|
||||||
|
$errorforinvoice[$key]='alreadyjournalized';
|
||||||
//setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->fk_doc.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
|
//setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->fk_doc.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
$errorforline++;
|
$errorforline++;
|
||||||
|
$errorforinvoice[$key]='other';
|
||||||
setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors');
|
setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// VAT
|
// VAT
|
||||||
// var_dump($tabtva);
|
|
||||||
if (! $errorforline)
|
if (! $errorforline)
|
||||||
{
|
{
|
||||||
$listoftax=array(0, 1, 2);
|
$listoftax=array(0, 1, 2);
|
||||||
@ -398,6 +433,7 @@ if ($action == 'writebookkeeping') {
|
|||||||
$bookkeeping->code_journal = $journal;
|
$bookkeeping->code_journal = $journal;
|
||||||
$bookkeeping->journal_label = $journal_label;
|
$bookkeeping->journal_label = $journal_label;
|
||||||
$bookkeeping->fk_user_author = $user->id;
|
$bookkeeping->fk_user_author = $user->id;
|
||||||
|
$bookkeeping->entity = $conf->entity;
|
||||||
|
|
||||||
$totaldebit += $bookkeeping->debit;
|
$totaldebit += $bookkeeping->debit;
|
||||||
$totalcredit += $bookkeeping->credit;
|
$totalcredit += $bookkeeping->credit;
|
||||||
@ -408,12 +444,14 @@ if ($action == 'writebookkeeping') {
|
|||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
$errorforline++;
|
$errorforline++;
|
||||||
|
$errorforinvoice[$key]='alreadyjournalized';
|
||||||
//setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->fk_doc.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
|
//setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->fk_doc.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
$errorforline++;
|
$errorforline++;
|
||||||
|
$errorforinvoice[$key]='other';
|
||||||
setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors');
|
setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -422,10 +460,12 @@ if ($action == 'writebookkeeping') {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($totaldebit != $totalcredit)
|
// Protection against a bug on lines before
|
||||||
|
if (! $errorforline && (price2num($totaldebit) != price2num($totalcredit)))
|
||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
$errorforline++;
|
$errorforline++;
|
||||||
|
$errorforinvoice[$key]='amountsnotbalanced';
|
||||||
setEventMessages('Try to insert a non balanced transaction in book for '.$invoicestatic->ref.'. Canceled. Surely a bug.', null, 'errors');
|
setEventMessages('Try to insert a non balanced transaction in book for '.$invoicestatic->ref.'. Canceled. Surely a bug.', null, 'errors');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -522,7 +562,7 @@ if ($action == 'exportcsv') {
|
|||||||
if ($alreadydispatched) $replacedinvoice = 2;
|
if ($alreadydispatched) $replacedinvoice = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If not already into bookkeeping, we won't add it, if yes, add the counterpart ???.
|
// If not already into bookkeeping, we won't add it. If yes, do nothing (should not happen because creating replacement not possible if invoice is accounted)
|
||||||
if ($replacedinvoice == 1)
|
if ($replacedinvoice == 1)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
@ -530,6 +570,7 @@ if ($action == 'exportcsv') {
|
|||||||
|
|
||||||
// Third party
|
// Third party
|
||||||
foreach ($tabttc[$key] as $k => $mt) {
|
foreach ($tabttc[$key] as $k => $mt) {
|
||||||
|
//if ($mt) {
|
||||||
print '"' . $key . '"' . $sep;
|
print '"' . $key . '"' . $sep;
|
||||||
print '"' . $date . '"' . $sep;
|
print '"' . $date . '"' . $sep;
|
||||||
print '"' . $val["ref"] . '"' . $sep;
|
print '"' . $val["ref"] . '"' . $sep;
|
||||||
@ -543,13 +584,14 @@ if ($action == 'exportcsv') {
|
|||||||
print '"' . ($mt < 0 ? price(- $mt) : '') . '"' . $sep;
|
print '"' . ($mt < 0 ? price(- $mt) : '') . '"' . $sep;
|
||||||
print '"' . $journal . '"';
|
print '"' . $journal . '"';
|
||||||
print "\n";
|
print "\n";
|
||||||
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Product / Service
|
// Product / Service
|
||||||
foreach ($tabht[$key] as $k => $mt) {
|
foreach ($tabht[$key] as $k => $mt) {
|
||||||
$accountingaccount = new AccountingAccount($db);
|
$accountingaccount = new AccountingAccount($db);
|
||||||
$accountingaccount->fetch(null, $k, true);
|
$accountingaccount->fetch(null, $k, true);
|
||||||
if ($mt) {
|
//if ($mt) {
|
||||||
print '"' . $key . '"' . $sep;
|
print '"' . $key . '"' . $sep;
|
||||||
print '"' . $date . '"' . $sep;
|
print '"' . $date . '"' . $sep;
|
||||||
print '"' . $val["ref"] . '"' . $sep;
|
print '"' . $val["ref"] . '"' . $sep;
|
||||||
@ -563,7 +605,7 @@ if ($action == 'exportcsv') {
|
|||||||
print '"' . ($mt >= 0 ? price($mt) : '') . '"' . $sep;
|
print '"' . ($mt >= 0 ? price($mt) : '') . '"' . $sep;
|
||||||
print '"' . $journal . '"';
|
print '"' . $journal . '"';
|
||||||
print "\n";
|
print "\n";
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
// VAT
|
// VAT
|
||||||
@ -643,6 +685,7 @@ if (empty($action) || $action == 'view') {
|
|||||||
$("div.fiche form input[name=\"action\"]").val("");
|
$("div.fiche form input[name=\"action\"]").val("");
|
||||||
}
|
}
|
||||||
function writebookkeeping() {
|
function writebookkeeping() {
|
||||||
|
console.log("click on writebookkeeping");
|
||||||
$("div.fiche form input[name=\"action\"]").val("writebookkeeping");
|
$("div.fiche form input[name=\"action\"]").val("writebookkeeping");
|
||||||
$("div.fiche form input[type=\"submit\"]").click();
|
$("div.fiche form input[type=\"submit\"]").click();
|
||||||
$("div.fiche form input[name=\"action\"]").val("");
|
$("div.fiche form input[name=\"action\"]").val("");
|
||||||
@ -718,12 +761,33 @@ if (empty($action) || $action == 'view') {
|
|||||||
print '<td align="right"></td>';
|
print '<td align="right"></td>';
|
||||||
print '<td align="right"></td>';
|
print '<td align="right"></td>';
|
||||||
print "</tr>";
|
print "</tr>";
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if ($errorforinvoice[$key] == 'somelinesarenotbound')
|
||||||
|
{
|
||||||
|
print '<tr class="oddeven">';
|
||||||
|
print "<td><!-- Some lines are not bound --></td>";
|
||||||
|
print "<td>" . $date . "</td>";
|
||||||
|
print "<td>" . $invoicestatic->getNomUrl(1) . "</td>";
|
||||||
|
// Account
|
||||||
|
print "<td>";
|
||||||
|
print '<span class="error">'.$langs->trans('ErrorInvoiceContainsLinesNotYetBoundedShort', $val['ref']).'</span>';
|
||||||
|
print '</td>';
|
||||||
|
// Subledger account
|
||||||
|
print "<td>";
|
||||||
|
print '</td>';
|
||||||
|
print "<td>";
|
||||||
|
print "</td>";
|
||||||
|
print '<td align="right"></td>';
|
||||||
|
print '<td align="right"></td>';
|
||||||
|
print "</tr>";
|
||||||
|
}
|
||||||
|
|
||||||
// Third party
|
// Third party
|
||||||
foreach ($tabttc[$key] as $k => $mt)
|
foreach ($tabttc[$key] as $k => $mt)
|
||||||
{
|
{
|
||||||
|
//if ($mt) {
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print "<td><!-- Thirdparty --></td>";
|
print "<td><!-- Thirdparty --></td>";
|
||||||
print "<td>" . $date . "</td>";
|
print "<td>" . $date . "</td>";
|
||||||
@ -750,6 +814,7 @@ if (empty($action) || $action == 'view') {
|
|||||||
print '<td align="right">' . ($mt >= 0 ? price($mt) : '') . "</td>";
|
print '<td align="right">' . ($mt >= 0 ? price($mt) : '') . "</td>";
|
||||||
print '<td align="right">' . ($mt < 0 ? price(- $mt) : '') . "</td>";
|
print '<td align="right">' . ($mt < 0 ? price(- $mt) : '') . "</td>";
|
||||||
print "</tr>";
|
print "</tr>";
|
||||||
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Product / Service
|
// Product / Service
|
||||||
@ -758,7 +823,7 @@ if (empty($action) || $action == 'view') {
|
|||||||
$accountingaccount = new AccountingAccount($db);
|
$accountingaccount = new AccountingAccount($db);
|
||||||
$accountingaccount->fetch(null, $k, true);
|
$accountingaccount->fetch(null, $k, true);
|
||||||
|
|
||||||
if ($mt) {
|
//if ($mt) {
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print "<td><!-- Product --></td>";
|
print "<td><!-- Product --></td>";
|
||||||
print "<td>" . $date . "</td>";
|
print "<td>" . $date . "</td>";
|
||||||
@ -781,7 +846,7 @@ if (empty($action) || $action == 'view') {
|
|||||||
print "<td align='right'>" . ($mt < 0 ? price(- $mt) : '') . "</td>";
|
print "<td align='right'>" . ($mt < 0 ? price(- $mt) : '') . "</td>";
|
||||||
print "<td align='right'>" . ($mt >= 0 ? price($mt) : '') . "</td>";
|
print "<td align='right'>" . ($mt >= 0 ? price($mt) : '') . "</td>";
|
||||||
print "</tr>";
|
print "</tr>";
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
// VAT
|
// VAT
|
||||||
|
|||||||
@ -65,8 +65,8 @@ $limit = GETPOST('limit','int')?GETPOST('limit', 'int'):(empty($conf->global->AC
|
|||||||
$sortfield = GETPOST('sortfield', 'alpha');
|
$sortfield = GETPOST('sortfield', 'alpha');
|
||||||
$sortorder = GETPOST('sortorder', 'alpha');
|
$sortorder = GETPOST('sortorder', 'alpha');
|
||||||
$page = GETPOST('page', 'int');
|
$page = GETPOST('page', 'int');
|
||||||
if ($page < 0) $page = 0;
|
if (empty($page) || $page < 0) $page = 0;
|
||||||
$offset = $conf->liste_limit * $page;
|
$offset = $limit * $page;
|
||||||
$pageprev = $page - 1;
|
$pageprev = $page - 1;
|
||||||
$pagenext = $page + 1;
|
$pagenext = $page + 1;
|
||||||
if (! $sortfield)
|
if (! $sortfield)
|
||||||
@ -195,10 +195,10 @@ if (strlen(trim($search_amount))) {
|
|||||||
$sql .= natural_search("l.total_ht", $search_amount, 1);
|
$sql .= natural_search("l.total_ht", $search_amount, 1);
|
||||||
}
|
}
|
||||||
if (strlen(trim($search_account))) {
|
if (strlen(trim($search_account))) {
|
||||||
$sql .= natural_search("aa.account_number", $search_account, 1);
|
$sql .= natural_search("aa.account_number", $search_account);
|
||||||
}
|
}
|
||||||
if (strlen(trim($search_vat))) {
|
if (strlen(trim($search_vat))) {
|
||||||
$sql .= natural_search("l.tva_tx", $search_vat, 1);
|
$sql .= natural_search("l.tva_tx", price2num($search_vat), 1);
|
||||||
}
|
}
|
||||||
if ($search_month > 0)
|
if ($search_month > 0)
|
||||||
{
|
{
|
||||||
@ -214,10 +214,10 @@ else if ($search_year > 0)
|
|||||||
$sql.= " AND f.datef BETWEEN '".$db->idate(dol_get_first_day($search_year,1,false))."' AND '".$db->idate(dol_get_last_day($search_year,12,false))."'";
|
$sql.= " AND f.datef BETWEEN '".$db->idate(dol_get_first_day($search_year,1,false))."' AND '".$db->idate(dol_get_last_day($search_year,12,false))."'";
|
||||||
}
|
}
|
||||||
if (strlen(trim($search_country))) {
|
if (strlen(trim($search_country))) {
|
||||||
$sql .= " AND (co.label like'" . $search_country . "%')";
|
$sql .= natural_search("co.label", $search_country);
|
||||||
}
|
}
|
||||||
if (strlen(trim($search_tvaintra))) {
|
if (strlen(trim($search_tvaintra))) {
|
||||||
$sql .= " AND (s.tva_intra like'" . $search_tvaintra . "%')";
|
$sql .= natural_search("s.tva_intra", $search_tvaintra);
|
||||||
}
|
}
|
||||||
$sql .= " AND f.entity IN (" . getEntity('facture_fourn', 0) . ")"; // We don't share object for accountancy
|
$sql .= " AND f.entity IN (" . getEntity('facture_fourn', 0) . ")"; // We don't share object for accountancy
|
||||||
|
|
||||||
@ -241,27 +241,19 @@ if ($result) {
|
|||||||
$i = 0;
|
$i = 0;
|
||||||
|
|
||||||
$param='';
|
$param='';
|
||||||
if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage;
|
if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.urlencode($contextpage);
|
||||||
if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit;
|
if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($limit);
|
||||||
if ($search_invoice)
|
if ($search_invoice) $param .= "&search_invoice=" . urlencode($search_invoice);
|
||||||
$param .= "&search_invoice=" . $search_invoice;
|
if ($search_ref) $param .= "&search_ref=" . urlencode($search_ref);
|
||||||
if ($search_ref)
|
if ($search_label) $param .= "&search_label=" . urlencode($search_label);
|
||||||
$param .= "&search_ref=" . $search_ref;
|
if ($search_desc) $param .= "&search_desc=" . urlencode($search_desc);
|
||||||
if ($search_label)
|
if ($search_account) $param .= "&search_account=" . urlencode($search_account);
|
||||||
$param .= "&search_label=" . $search_label;
|
if ($search_vat) $param .= "&search_vat=" . urlencode($search_vat);
|
||||||
if ($search_desc)
|
if ($search_day) $param .= '&search_day='.urlencode($search_day);
|
||||||
$param .= "&search_desc=" . $search_desc;
|
if ($search_month) $param .= '&search_month='.urlencode($search_month);
|
||||||
if ($search_account)
|
if ($search_year) $param .= '&search_year='.urlencode($search_year);
|
||||||
$param .= "&search_account=" . $search_account;
|
if ($search_country) $param .= "&search_country=" . urlencode($search_country);
|
||||||
if ($search_vat)
|
if ($search_tvaintra) $param .= "&search_tvaintra=" . urlencode($search_tvaintra);
|
||||||
$param .= "&search_vat=" . $search_vat;
|
|
||||||
if ($search_day) $param.='&search_day='.urlencode($search_day);
|
|
||||||
if ($search_month) $param.='&search_month='.urlencode($search_month);
|
|
||||||
if ($search_year) $param.='&search_year='.urlencode($search_year);
|
|
||||||
if ($search_country)
|
|
||||||
$param .= "&search_country=" . $search_country;
|
|
||||||
if ($search_tvaintra)
|
|
||||||
$param .= "&search_tvaintra=" . $search_tvaintra;
|
|
||||||
|
|
||||||
print '<form action="' . $_SERVER["PHP_SELF"] . '" method="post">' . "\n";
|
print '<form action="' . $_SERVER["PHP_SELF"] . '" method="post">' . "\n";
|
||||||
print '<input type="hidden" name="action" value="ventil">';
|
print '<input type="hidden" name="action" value="ventil">';
|
||||||
@ -277,7 +269,7 @@ if ($result) {
|
|||||||
print $langs->trans("DescVentilDoneSupplier") . '<br>';
|
print $langs->trans("DescVentilDoneSupplier") . '<br>';
|
||||||
|
|
||||||
print '<br><div class="inline-block divButAction">' . $langs->trans("ChangeAccount") . '<br>';
|
print '<br><div class="inline-block divButAction">' . $langs->trans("ChangeAccount") . '<br>';
|
||||||
print $formaccounting->select_account(GETPOST('account_parent'), 'account_parent', 1);
|
print $formaccounting->select_account($account_parent, 'account_parent', 1);
|
||||||
print '<input type="submit" class="button valignmiddle" value="' . $langs->trans("ChangeBinding") . '" /></div>';
|
print '<input type="submit" class="button valignmiddle" value="' . $langs->trans("ChangeBinding") . '" /></div>';
|
||||||
|
|
||||||
$moreforfilter = '';
|
$moreforfilter = '';
|
||||||
@ -389,7 +381,7 @@ if ($result) {
|
|||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
} else {
|
} else {
|
||||||
print $db->error();
|
print $db->lasterror();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -222,7 +222,7 @@ $sql.= " INNER JOIN " . MAIN_DB_PREFIX . "facture_fourn_det as l ON f.rowid = 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";
|
||||||
$sql.= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON p.accountancy_code_buy = aa.account_number AND aa.fk_pcg_version = '" . $chartaccountcode."'";
|
$sql.= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON p.accountancy_code_buy = aa.account_number AND aa.fk_pcg_version = '" . $chartaccountcode."'";
|
||||||
$sql.= " WHERE f.fk_statut > 0 AND l.fk_code_ventilation <= 0";
|
$sql.= " WHERE f.fk_statut > 0 AND l.fk_code_ventilation <= 0";
|
||||||
$sql.= " AND product_type <= 2";
|
$sql.= " AND l.product_type <= 2";
|
||||||
// Add search filter like
|
// Add search filter like
|
||||||
if ($search_lineid) {
|
if ($search_lineid) {
|
||||||
$sql .= natural_search("l.rowid", $search_lineid, 1);
|
$sql .= natural_search("l.rowid", $search_lineid, 1);
|
||||||
|
|||||||
@ -53,7 +53,7 @@ if ($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'), '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);
|
||||||
$res2=dolibarr_set_const($db, 'ADHERENT_MAIL_REQUIRED', GETPOST('ADHERENT_MAIL_REQUIRED', 'alpha'), 'chaine', 0, '', $conf->entity);
|
$res2=dolibarr_set_const($db, 'ADHERENT_MAIL_REQUIRED', GETPOST('ADHERENT_MAIL_REQUIRED', 'alpha'), 'chaine', 0, '', $conf->entity);
|
||||||
$res3=dolibarr_set_const($db, 'ADHERENT_DEFAULT_SENDINFOBYMAIL', GETPOST('ADHERENT_DEFAULT_SENDINFOBYMAIL', 'alpha'), 'chaine', 0, '', $conf->entity);
|
$res3=dolibarr_set_const($db, 'ADHERENT_DEFAULT_SENDINFOBYMAIL', GETPOST('ADHERENT_DEFAULT_SENDINFOBYMAIL', 'alpha'), 'chaine', 0, '', $conf->entity);
|
||||||
$res4=dolibarr_set_const($db, 'ADHERENT_BANK_USE', GETPOST('ADHERENT_BANK_USE', 'alpha'), 'chaine', 0, '', $conf->entity);
|
$res4=dolibarr_set_const($db, 'ADHERENT_BANK_USE', GETPOST('ADHERENT_BANK_USE', 'alpha'), 'chaine', 0, '', $conf->entity);
|
||||||
@ -141,7 +141,7 @@ $help_url='EN:Module_Foundations|FR:Module_Adhérents|ES:Módulo_Mie
|
|||||||
llxHeader('',$langs->trans("MembersSetup"),$help_url);
|
llxHeader('',$langs->trans("MembersSetup"),$help_url);
|
||||||
|
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("MembersSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("MembersSetup"),$linkback,'title_setup');
|
||||||
|
|
||||||
|
|
||||||
@ -162,7 +162,7 @@ print "</tr>\n";
|
|||||||
|
|
||||||
// Login/Pass required for members
|
// Login/Pass required for members
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("AdherentLoginRequired").'</td><td>';
|
print '<tr class="oddeven"><td>'.$langs->trans("AdherentLoginRequired").'</td><td>';
|
||||||
print $form->selectyesno('ADHERENT_LOGIN_NOT_REQUIRED',(! empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)?0:1),1);
|
print $form->selectyesno('ADHERENT_LOGIN_NOT_REQUIRED', (! empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)?0:1), 1);
|
||||||
print "</td></tr>\n";
|
print "</td></tr>\n";
|
||||||
|
|
||||||
// Mail required for members
|
// Mail required for members
|
||||||
|
|||||||
@ -141,7 +141,7 @@ $help_url='EN:Module_Foundations|FR:Module_Adhérents|ES:Módulo_Mie
|
|||||||
llxHeader('',$langs->trans("MembersSetup"),$help_url);
|
llxHeader('',$langs->trans("MembersSetup"),$help_url);
|
||||||
|
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("MembersSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("MembersSetup"),$linkback,'title_setup');
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -64,7 +64,7 @@ $help_url='EN:Module_Foundations|FR:Module_Adhérents|ES:Módulo_Mie
|
|||||||
llxHeader('',$langs->trans("MembersSetup"),$help_url);
|
llxHeader('',$langs->trans("MembersSetup"),$help_url);
|
||||||
|
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("MembersSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("MembersSetup"),$linkback,'title_setup');
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -67,7 +67,7 @@ $help_url='EN:Module_Foundations|FR:Module_Adhérents|ES:Módulo_Mie
|
|||||||
llxHeader('',$langs->trans("MembersSetup"),$help_url);
|
llxHeader('',$langs->trans("MembersSetup"),$help_url);
|
||||||
|
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("MembersSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("MembersSetup"),$linkback,'title_setup');
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -89,7 +89,7 @@ $help_url='EN:Module_Foundations|FR:Module_Adhérents|ES:Módulo_Mie
|
|||||||
llxHeader('',$langs->trans("MembersSetup"),$help_url);
|
llxHeader('',$langs->trans("MembersSetup"),$help_url);
|
||||||
|
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("MembersSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("MembersSetup"),$linkback,'title_setup');
|
||||||
|
|
||||||
$head = member_admin_prepare_head();
|
$head = member_admin_prepare_head();
|
||||||
|
|||||||
@ -148,10 +148,10 @@ if ($object->id > 0)
|
|||||||
//print '</div>';
|
//print '</div>';
|
||||||
|
|
||||||
|
|
||||||
$morehtmlcenter = '';
|
$createbutton = '';
|
||||||
if (! empty($conf->agenda->enabled))
|
if (! empty($conf->agenda->enabled))
|
||||||
{
|
{
|
||||||
$morehtmlcenter.='<a class="butAction" href="'.DOL_URL_ROOT.'/comm/action/card.php?action=create&backtopage=1&origin=member&originid='.$id.'">'.$langs->trans("AddAction").'</a>';
|
$createbutton.='<a class="butAction" href="'.DOL_URL_ROOT.'/comm/action/card.php?action=create&backtopage=1&origin=member&originid='.$id.'">'.$langs->trans("AddAction").'</a>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read) ))
|
if (! empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read) ))
|
||||||
@ -162,7 +162,7 @@ if ($object->id > 0)
|
|||||||
if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage;
|
if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage;
|
||||||
if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit;
|
if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit;
|
||||||
|
|
||||||
print_barre_liste($langs->trans("ActionsOnMember"), 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, $morehtmlcenter, 0, -1, '', '', '', '', 0, 1, 1);
|
print_barre_liste($langs->trans("ActionsOnMember"), 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, '', 0, -1, '', '', $createbutton, '', 0, 1, 1);
|
||||||
|
|
||||||
// List of all actions
|
// List of all actions
|
||||||
$filters=array();
|
$filters=array();
|
||||||
|
|||||||
@ -1003,7 +1003,7 @@ else
|
|||||||
if ($res < 0) {
|
if ($res < 0) {
|
||||||
dol_print_error($db,$object->error); exit;
|
dol_print_error($db,$object->error); exit;
|
||||||
}
|
}
|
||||||
$res=$object->fetch_optionals($object->id,$extralabels);
|
$res=$object->fetch_optionals();
|
||||||
if ($res < 0) {
|
if ($res < 0) {
|
||||||
dol_print_error($db); exit;
|
dol_print_error($db); exit;
|
||||||
}
|
}
|
||||||
@ -1272,7 +1272,7 @@ else
|
|||||||
if ($res < 0) {
|
if ($res < 0) {
|
||||||
dol_print_error($db,$object->error); exit;
|
dol_print_error($db,$object->error); exit;
|
||||||
}
|
}
|
||||||
$res=$object->fetch_optionals($object->id,$extralabels);
|
$res=$object->fetch_optionals();
|
||||||
if ($res < 0) {
|
if ($res < 0) {
|
||||||
dol_print_error($db); exit;
|
dol_print_error($db); exit;
|
||||||
}
|
}
|
||||||
@ -1822,7 +1822,7 @@ else
|
|||||||
|
|
||||||
// Presend form
|
// Presend form
|
||||||
$modelmail='member';
|
$modelmail='member';
|
||||||
$defaulttopic='SendMemberRef';
|
$defaulttopic='CardContent';
|
||||||
$diroutput = $conf->adherent->dir_output;
|
$diroutput = $conf->adherent->dir_output;
|
||||||
$trackid = 'mem'.$object->id;
|
$trackid = 'mem'.$object->id;
|
||||||
|
|
||||||
|
|||||||
@ -528,7 +528,10 @@ class Adherent extends CommonObject
|
|||||||
{
|
{
|
||||||
//var_dump($this->user_login);exit;
|
//var_dump($this->user_login);exit;
|
||||||
//var_dump($this->login);exit;
|
//var_dump($this->login);exit;
|
||||||
$luser->login=$this->login;
|
|
||||||
|
// If option ADHERENT_LOGIN_NOT_REQUIRED is on, there is no login of member, so we do not overwrite user login to keep existing one.
|
||||||
|
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) $luser->login=$this->login;
|
||||||
|
|
||||||
$luser->civility_id=$this->civility_id;
|
$luser->civility_id=$this->civility_id;
|
||||||
$luser->firstname=$this->firstname;
|
$luser->firstname=$this->firstname;
|
||||||
$luser->lastname=$this->lastname;
|
$luser->lastname=$this->lastname;
|
||||||
@ -1153,12 +1156,9 @@ class Adherent extends CommonObject
|
|||||||
|
|
||||||
$this->model_pdf = $obj->model_pdf;
|
$this->model_pdf = $obj->model_pdf;
|
||||||
|
|
||||||
// Retreive all extrafield for thirdparty
|
// Retreive all extrafield
|
||||||
// fetch optionals attributes and labels
|
// fetch optionals attributes and labels
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
|
$this->fetch_optionals();
|
||||||
$extrafields=new ExtraFields($this->db);
|
|
||||||
$extralabels=$extrafields->fetch_name_optionals_label($this->table_element,true);
|
|
||||||
$this->fetch_optionals($this->id,$extralabels);
|
|
||||||
|
|
||||||
// Load other properties
|
// Load other properties
|
||||||
$result=$this->fetch_subscriptions();
|
$result=$this->fetch_subscriptions();
|
||||||
@ -1248,9 +1248,9 @@ class Adherent extends CommonObject
|
|||||||
* Insert subscription into database and eventually add links to banks, mailman, etc...
|
* Insert subscription into database and eventually add links to banks, mailman, etc...
|
||||||
*
|
*
|
||||||
* @param int $date Date of effect of subscription
|
* @param int $date Date of effect of subscription
|
||||||
* @param double $montant Amount of subscription (0 accepted for some members)
|
* @param double $amount Amount of subscription (0 accepted for some members)
|
||||||
* @param int $accountid Id bank account
|
* @param int $accountid Id bank account
|
||||||
* @param string $operation Type operation (if Id bank account provided)
|
* @param string $operation Type of payment (if Id bank account provided). Example: 'CB', ...
|
||||||
* @param string $label Label operation (if Id bank account provided)
|
* @param string $label Label operation (if Id bank account provided)
|
||||||
* @param string $num_chq Numero cheque (if Id bank account provided)
|
* @param string $num_chq Numero cheque (if Id bank account provided)
|
||||||
* @param string $emetteur_nom Name of cheque writer
|
* @param string $emetteur_nom Name of cheque writer
|
||||||
@ -1258,7 +1258,7 @@ class Adherent extends CommonObject
|
|||||||
* @param int $datesubend Date end subscription
|
* @param int $datesubend Date end subscription
|
||||||
* @return int rowid of record added, <0 if KO
|
* @return int rowid of record added, <0 if KO
|
||||||
*/
|
*/
|
||||||
function subscription($date, $montant, $accountid=0, $operation='', $label='', $num_chq='', $emetteur_nom='', $emetteur_banque='', $datesubend=0)
|
function subscription($date, $amount, $accountid=0, $operation='', $label='', $num_chq='', $emetteur_nom='', $emetteur_banque='', $datesubend=0)
|
||||||
{
|
{
|
||||||
global $conf,$langs,$user;
|
global $conf,$langs,$user;
|
||||||
|
|
||||||
@ -1267,7 +1267,7 @@ class Adherent extends CommonObject
|
|||||||
$error=0;
|
$error=0;
|
||||||
|
|
||||||
// Clean parameters
|
// Clean parameters
|
||||||
if (! $montant) $montant=0;
|
if (! $amount) $amount=0;
|
||||||
|
|
||||||
$this->db->begin();
|
$this->db->begin();
|
||||||
|
|
||||||
@ -1287,8 +1287,9 @@ class Adherent extends CommonObject
|
|||||||
$subscription->fk_adherent=$this->id;
|
$subscription->fk_adherent=$this->id;
|
||||||
$subscription->dateh=$date; // Date of new subscription
|
$subscription->dateh=$date; // Date of new subscription
|
||||||
$subscription->datef=$datefin; // End data of new subscription
|
$subscription->datef=$datefin; // End data of new subscription
|
||||||
$subscription->amount=$montant;
|
$subscription->amount=$amount;
|
||||||
$subscription->note=$label;
|
$subscription->note=$label; // deprecated
|
||||||
|
$subscription->note_public=$label;
|
||||||
|
|
||||||
$rowid=$subscription->create($user);
|
$rowid=$subscription->create($user);
|
||||||
if ($rowid > 0)
|
if ($rowid > 0)
|
||||||
@ -1300,7 +1301,7 @@ class Adherent extends CommonObject
|
|||||||
{
|
{
|
||||||
// Change properties of object (used by triggers)
|
// Change properties of object (used by triggers)
|
||||||
$this->last_subscription_date=dol_now();
|
$this->last_subscription_date=dol_now();
|
||||||
$this->last_subscription_amount=$montant;
|
$this->last_subscription_amount=$amount;
|
||||||
$this->last_subscription_date_start=$date;
|
$this->last_subscription_date_start=$date;
|
||||||
$this->last_subscription_date_end=$datefin;
|
$this->last_subscription_date_end=$datefin;
|
||||||
}
|
}
|
||||||
@ -1319,11 +1320,303 @@ class Adherent extends CommonObject
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
$this->error=$subscription->error;
|
$this->error=$subscription->error;
|
||||||
|
$this->errors=$subscription->errors;
|
||||||
$this->db->rollback();
|
$this->db->rollback();
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Do complementary actions after subscription recording.
|
||||||
|
*
|
||||||
|
* @param int $subscriptionid Id of created subscription
|
||||||
|
* @param string $option Which action ('bankdirect', 'invoiceonly', ...)
|
||||||
|
* @param int $accountid Id bank account
|
||||||
|
* @param int $datesubscription Date of subscription
|
||||||
|
* @param int $paymentdate Date of payment
|
||||||
|
* @param string $operation Code of type of operation (if Id bank account provided). Example 'CB', ...
|
||||||
|
* @param string $label Label operation (if Id bank account provided)
|
||||||
|
* @param double $amount Amount of subscription (0 accepted for some members)
|
||||||
|
* @param string $num_chq Numero cheque (if Id bank account provided)
|
||||||
|
* @param string $emetteur_nom Name of cheque writer
|
||||||
|
* @param string $emetteur_banque Name of bank of cheque
|
||||||
|
* @param string $autocreatethirdparty Auto create new thirdparty if member not linked to a thirdparty.
|
||||||
|
* @return int <0 if KO, >0 if OK
|
||||||
|
*/
|
||||||
|
function subscriptionComplementaryActions($subscriptionid, $option, $accountid, $datesubscription, $paymentdate, $operation, $label, $amount, $num_chq, $emetteur_nom='', $emetteur_banque='', $autocreatethirdparty=0)
|
||||||
|
{
|
||||||
|
global $conf, $langs, $user, $mysoc;
|
||||||
|
|
||||||
|
$error = 0;
|
||||||
|
|
||||||
|
// Insert into bank account directlty (if option choosed for) + link to llx_subscription if option is 'bankdirect'
|
||||||
|
if ($option == 'bankdirect' && $accountid)
|
||||||
|
{
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
|
||||||
|
|
||||||
|
$acct=new Account($this->db);
|
||||||
|
$result=$acct->fetch($accountid);
|
||||||
|
|
||||||
|
$dateop=$paymentdate;
|
||||||
|
|
||||||
|
$insertid=$acct->addline($dateop, $operation, $label, $amount, $num_chq, '', $user, $emetteur_nom, $emetteur_banque);
|
||||||
|
if ($insertid > 0)
|
||||||
|
{
|
||||||
|
$inserturlid=$acct->add_url_line($insertid, $this->id, DOL_URL_ROOT.'/adherents/card.php?rowid=', $this->getFullname($langs), 'member');
|
||||||
|
if ($inserturlid > 0)
|
||||||
|
{
|
||||||
|
// Update table subscription
|
||||||
|
$sql ="UPDATE ".MAIN_DB_PREFIX."subscription SET fk_bank=".$insertid;
|
||||||
|
$sql.=" WHERE rowid=".$subscriptionid;
|
||||||
|
|
||||||
|
dol_syslog("subscription::subscription", LOG_DEBUG);
|
||||||
|
$resql = $this->db->query($sql);
|
||||||
|
if (! $resql)
|
||||||
|
{
|
||||||
|
$error++;
|
||||||
|
$this->error=$this->db->lasterror();
|
||||||
|
$this->errors[]=$this->error;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$error++;
|
||||||
|
$this->error=$acct->error;
|
||||||
|
$this->errors=$acct->errors;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$error++;
|
||||||
|
$this->error=$acct->error;
|
||||||
|
$this->errors=$acct->errors;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// If option choosed, we create invoice
|
||||||
|
if (($option == 'bankviainvoice' && $accountid) || $option == 'invoiceonly')
|
||||||
|
{
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/paymentterm.class.php';
|
||||||
|
|
||||||
|
$invoice=new Facture($this->db);
|
||||||
|
$customer=new Societe($this->db);
|
||||||
|
|
||||||
|
if (! $error)
|
||||||
|
{
|
||||||
|
if (! ($this->fk_soc > 0))
|
||||||
|
{
|
||||||
|
if ($autocreatethirdparty)
|
||||||
|
{
|
||||||
|
// Create a linked thirdparty to member
|
||||||
|
$companyalias='';
|
||||||
|
$fullname = $this->getFullName($langs);
|
||||||
|
|
||||||
|
if ($this->morphy == 'mor')
|
||||||
|
{
|
||||||
|
$companyname=$this->societe;
|
||||||
|
if (! empty($fullname)) $companyalias=$fullname;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$companyname=$fullname;
|
||||||
|
if (! empty($this->societe)) $companyalias=$this->societe;
|
||||||
|
}
|
||||||
|
|
||||||
|
$result=$customer->create_from_member($this, $companyname, $companyalias);
|
||||||
|
if ($result < 0)
|
||||||
|
{
|
||||||
|
$this->error = $company->error;
|
||||||
|
$this->errors = $company->errors;
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->fk_soc = $result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$langs->load("errors");
|
||||||
|
$this->error=$langs->trans("ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst");
|
||||||
|
$this->errors[]=$this->error;
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (! $error)
|
||||||
|
{
|
||||||
|
$result=$customer->fetch($this->fk_soc);
|
||||||
|
if ($result <= 0)
|
||||||
|
{
|
||||||
|
$this->error=$customer->error;
|
||||||
|
$this->errors=$customer->errors;
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! $error)
|
||||||
|
{
|
||||||
|
// Create draft invoice
|
||||||
|
$invoice->type=Facture::TYPE_STANDARD;
|
||||||
|
$invoice->cond_reglement_id=$customer->cond_reglement_id;
|
||||||
|
if (empty($invoice->cond_reglement_id))
|
||||||
|
{
|
||||||
|
$paymenttermstatic=new PaymentTerm($this->db);
|
||||||
|
$invoice->cond_reglement_id=$paymenttermstatic->getDefaultId();
|
||||||
|
if (empty($invoice->cond_reglement_id))
|
||||||
|
{
|
||||||
|
$error++;
|
||||||
|
$this->error='ErrorNoPaymentTermRECEPFound';
|
||||||
|
$this->errors[]=$this->error;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$invoice->socid=$this->fk_soc;
|
||||||
|
$invoice->date=$datesubscription;
|
||||||
|
|
||||||
|
// Possibility to add external linked objects with hooks
|
||||||
|
$invoice->linked_objects['subscription'] = $subscriptionid;
|
||||||
|
if (! empty($_POST['other_linked_objects']) && is_array($_POST['other_linked_objects']))
|
||||||
|
{
|
||||||
|
$invoice->linked_objects = array_merge($invoice->linked_objects, $_POST['other_linked_objects']);
|
||||||
|
}
|
||||||
|
|
||||||
|
$result=$invoice->create($user);
|
||||||
|
if ($result <= 0)
|
||||||
|
{
|
||||||
|
$this->error=$invoice->error;
|
||||||
|
$this->errors=$invoice->errors;
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! $error)
|
||||||
|
{
|
||||||
|
// Add line to draft invoice
|
||||||
|
$idprodsubscription=0;
|
||||||
|
if (! empty($conf->global->ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS) && (! empty($conf->product->enabled) || ! empty($conf->service->enabled))) $idprodsubscription = $conf->global->ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS;
|
||||||
|
|
||||||
|
$vattouse=0;
|
||||||
|
if (isset($conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS) && $conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS == 'defaultforfoundationcountry')
|
||||||
|
{
|
||||||
|
$vattouse=get_default_tva($mysoc, $mysoc, $idprodsubscription);
|
||||||
|
}
|
||||||
|
//print xx".$vattouse." - ".$mysoc." - ".$customer;exit;
|
||||||
|
$result=$invoice->addline($label,0,1,$vattouse,0,0,$idprodsubscription,0,$datesubscription,$datesubend,0,0,'','TTC',$amount,1);
|
||||||
|
if ($result <= 0)
|
||||||
|
{
|
||||||
|
$this->error=$invoice->error;
|
||||||
|
$this->errors=$invoice->errors;
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! $error)
|
||||||
|
{
|
||||||
|
// Validate invoice
|
||||||
|
$result=$invoice->validate($user);
|
||||||
|
if ($result <= 0)
|
||||||
|
{
|
||||||
|
$this->error=$invoice->error;
|
||||||
|
$this->errors=$invoice->errors;
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add payment onto invoice
|
||||||
|
if (! $error && $option == 'bankviainvoice' && $accountid)
|
||||||
|
{
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/functions.lib.php';
|
||||||
|
|
||||||
|
$amounts = array();
|
||||||
|
$amounts[$invoice->id] = price2num($amount);
|
||||||
|
|
||||||
|
$paiement = new Paiement($this->db);
|
||||||
|
$paiement->datepaye = $paymentdate;
|
||||||
|
$paiement->amounts = $amounts;
|
||||||
|
$paiement->paiementid = dol_getIdFromCode($this->db,$operation,'c_paiement','code','id',1);
|
||||||
|
$paiement->num_paiement = $num_chq;
|
||||||
|
$paiement->note = $label;
|
||||||
|
$paiement->note_public = $label;
|
||||||
|
|
||||||
|
if (! $error)
|
||||||
|
{
|
||||||
|
// Create payment line for invoice
|
||||||
|
$paiement_id = $paiement->create($user);
|
||||||
|
if (! $paiement_id > 0)
|
||||||
|
{
|
||||||
|
$this->error=$paiement->error;
|
||||||
|
$this->errors=$paiement->errors;
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! $error)
|
||||||
|
{
|
||||||
|
// Add transaction into bank account
|
||||||
|
$bank_line_id=$paiement->addPaymentToBank($user,'payment','(SubscriptionPayment)',$accountid,$emetteur_nom,$emetteur_banque);
|
||||||
|
if (! ($bank_line_id > 0))
|
||||||
|
{
|
||||||
|
$this->error=$paiement->error;
|
||||||
|
$this->errors=$paiement->errors;
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! $error)
|
||||||
|
{
|
||||||
|
// Update fk_bank into subscription table
|
||||||
|
$sql = 'UPDATE '.MAIN_DB_PREFIX.'subscription SET fk_bank='.$bank_line_id;
|
||||||
|
$sql.= ' WHERE rowid='.$subscriptionid;
|
||||||
|
|
||||||
|
$result = $this->db->query($sql);
|
||||||
|
if (! $result)
|
||||||
|
{
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! $error)
|
||||||
|
{
|
||||||
|
// Set invoice as paid
|
||||||
|
$invoice->set_paid($user);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! $error)
|
||||||
|
{
|
||||||
|
// Define output language
|
||||||
|
$outputlangs = $langs;
|
||||||
|
$newlang = '';
|
||||||
|
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST['lang_id']))
|
||||||
|
$newlang = $_REQUEST['lang_id'];
|
||||||
|
if ($conf->global->MAIN_MULTILANGS && empty($newlang))
|
||||||
|
$newlang = $customer->default_lang;
|
||||||
|
if (! empty($newlang)) {
|
||||||
|
$outputlangs = new Translate("", $conf);
|
||||||
|
$outputlangs->setDefaultLang($newlang);
|
||||||
|
}
|
||||||
|
// Generate PDF (whatever is option MAIN_DISABLE_PDF_AUTOUPDATE) so we can include it into email
|
||||||
|
//if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE))
|
||||||
|
|
||||||
|
$invoice->generateDocument($invoice->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($error)
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function that validate a member
|
* Function that validate a member
|
||||||
*
|
*
|
||||||
|
|||||||
@ -35,6 +35,7 @@ class AdherentType extends CommonObject
|
|||||||
public $table_element = 'adherent_type';
|
public $table_element = 'adherent_type';
|
||||||
public $element = 'adherent_type';
|
public $element = 'adherent_type';
|
||||||
public $picto = 'group';
|
public $picto = 'group';
|
||||||
|
public $ismultientitymanaged = 1; // 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var string
|
* @var string
|
||||||
@ -307,7 +308,7 @@ class AdherentType extends CommonObject
|
|||||||
|
|
||||||
$sql = "SELECT rowid, libelle as label";
|
$sql = "SELECT rowid, libelle as label";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."adherent_type";
|
$sql.= " FROM ".MAIN_DB_PREFIX."adherent_type";
|
||||||
$sql.= " WHERE entity IN (".getEntity('adherent').")";
|
$sql.= " WHERE entity IN (".getEntity('member_type').")";
|
||||||
|
|
||||||
$resql=$this->db->query($sql);
|
$resql=$this->db->query($sql);
|
||||||
if ($resql)
|
if ($resql)
|
||||||
|
|||||||
@ -97,7 +97,7 @@ class MembersTypes extends DolibarrApi
|
|||||||
|
|
||||||
$sql = "SELECT t.rowid";
|
$sql = "SELECT t.rowid";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."adherent_type as t";
|
$sql.= " FROM ".MAIN_DB_PREFIX."adherent_type as t";
|
||||||
$sql.= ' WHERE t.entity IN ('.getEntity('adherent').')';
|
$sql.= ' WHERE t.entity IN ('.getEntity('member_type').')';
|
||||||
|
|
||||||
// Add sql filters
|
// Add sql filters
|
||||||
if ($sqlfilters)
|
if ($sqlfilters)
|
||||||
|
|||||||
@ -77,15 +77,17 @@ class Subscription extends CommonObject
|
|||||||
$this->error=$langs->trans("ErrorBadValueForDate");
|
$this->error=$langs->trans("ErrorBadValueForDate");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
if (empty($this->datec)) $this->datec = $now;
|
||||||
|
|
||||||
|
|
||||||
$this->db->begin();
|
$this->db->begin();
|
||||||
|
|
||||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."subscription (fk_adherent, datec, dateadh, datef, subscription, note)";
|
$sql = "INSERT INTO ".MAIN_DB_PREFIX."subscription (fk_adherent, datec, dateadh, datef, subscription, note)";
|
||||||
$sql.= " VALUES (".$this->fk_adherent.", '".$this->db->idate($now)."',";
|
$sql.= " VALUES (".$this->fk_adherent.", '".$this->db->idate($this->datec)."',";
|
||||||
$sql.= " '".$this->db->idate($this->dateh)."',";
|
$sql.= " '".$this->db->idate($this->dateh)."',";
|
||||||
$sql.= " '".$this->db->idate($this->datef)."',";
|
$sql.= " '".$this->db->idate($this->datef)."',";
|
||||||
$sql.= " ".$this->amount.",";
|
$sql.= " ".$this->amount.",";
|
||||||
$sql.= " '".$this->db->escape($this->note)."')";
|
$sql.= " '".$this->db->escape($this->note_public?$this->note_public:$this->note)."')";
|
||||||
|
|
||||||
$resql = $this->db->query($sql);
|
$resql = $this->db->query($sql);
|
||||||
if (! $resql) {
|
if (! $resql) {
|
||||||
@ -324,6 +326,8 @@ class Subscription extends CommonObject
|
|||||||
global $langs;
|
global $langs;
|
||||||
|
|
||||||
$result='';
|
$result='';
|
||||||
|
|
||||||
|
$langs->load("members");
|
||||||
$label=$langs->trans("ShowSubscription").': '.$this->ref;
|
$label=$langs->trans("ShowSubscription").': '.$this->ref;
|
||||||
|
|
||||||
$linkstart = '<a href="'.DOL_URL_ROOT.'/adherents/subscription/card.php?rowid='.$this->id.'" title="'.dol_escape_htmltag($label, 1).'" class="classfortooltip">';
|
$linkstart = '<a href="'.DOL_URL_ROOT.'/adherents/subscription/card.php?rowid='.$this->id.'" title="'.dol_escape_htmltag($label, 1).'" class="classfortooltip">';
|
||||||
|
|||||||
@ -65,7 +65,7 @@ $sql.= " FROM ".MAIN_DB_PREFIX."adherent_type as t";
|
|||||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."adherent as d";
|
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."adherent as d";
|
||||||
$sql.= " ON t.rowid = d.fk_adherent_type";
|
$sql.= " ON t.rowid = d.fk_adherent_type";
|
||||||
$sql.= " AND d.entity IN (".getEntity('adherent').")";
|
$sql.= " AND d.entity IN (".getEntity('adherent').")";
|
||||||
$sql.= " WHERE t.entity IN (".getEntity('adherent').")";
|
$sql.= " WHERE t.entity IN (".getEntity('member_type').")";
|
||||||
$sql.= " GROUP BY t.rowid, t.libelle, t.subscription, d.statut";
|
$sql.= " GROUP BY t.rowid, t.libelle, t.subscription, d.statut";
|
||||||
|
|
||||||
dol_syslog("index.php::select nb of members by type", LOG_DEBUG);
|
dol_syslog("index.php::select nb of members by type", LOG_DEBUG);
|
||||||
|
|||||||
@ -574,7 +574,7 @@ if (! empty($arrayfields['d.datefin']['checked'])) print_liste_field_titr
|
|||||||
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php';
|
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php';
|
||||||
|
|
||||||
// Hook fields
|
// Hook fields
|
||||||
$parameters=array('arrayfields'=>$arrayfields);
|
$parameters=array('arrayfields'=>$arrayfields,'param'=>$param,'sortfield'=>$sortfield,'sortorder'=>$sortorder);
|
||||||
$reshook=$hookmanager->executeHooks('printFieldListTitle',$parameters); // Note that $action and $object may have been modified by hook
|
$reshook=$hookmanager->executeHooks('printFieldListTitle',$parameters); // Note that $action and $object may have been modified by hook
|
||||||
print $hookmanager->resPrint;
|
print $hookmanager->resPrint;
|
||||||
if (! empty($arrayfields['d.datec']['checked'])) print_liste_field_titre($arrayfields['d.datec']['label'],$_SERVER["PHP_SELF"],"d.datec","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
|
if (! empty($arrayfields['d.datec']['checked'])) print_liste_field_titre($arrayfields['d.datec']['label'],$_SERVER["PHP_SELF"],"d.datec","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
|
||||||
|
|||||||
@ -118,7 +118,7 @@ if ($action == 'confirm_create_thirdparty' && $confirm == 'yes' && $user->rights
|
|||||||
{
|
{
|
||||||
if ($result > 0)
|
if ($result > 0)
|
||||||
{
|
{
|
||||||
// Creation user
|
// Creation of thirdparty
|
||||||
$company = new Societe($db);
|
$company = new Societe($db);
|
||||||
$result=$company->create_from_member($object, GETPOST('companyname', 'alpha'), GETPOST('companyalias', 'alpha'));
|
$result=$company->create_from_member($object, GETPOST('companyname', 'alpha'), GETPOST('companyalias', 'alpha'));
|
||||||
|
|
||||||
@ -203,8 +203,8 @@ if ($user->rights->adherent->cotisation->creer && $action == 'subscription' && !
|
|||||||
|
|
||||||
$langs->load("banks");
|
$langs->load("banks");
|
||||||
|
|
||||||
$result=$object->fetch($rowid);
|
$result = $object->fetch($rowid);
|
||||||
$result=$adht->fetch($object->typeid);
|
$result = $adht->fetch($object->typeid);
|
||||||
|
|
||||||
// Subscription informations
|
// Subscription informations
|
||||||
$datesubscription=0;
|
$datesubscription=0;
|
||||||
@ -222,7 +222,7 @@ if ($user->rights->adherent->cotisation->creer && $action == 'subscription' && !
|
|||||||
{
|
{
|
||||||
$paymentdate=dol_mktime(0, 0, 0, $_POST["paymentmonth"], $_POST["paymentday"], $_POST["paymentyear"]);
|
$paymentdate=dol_mktime(0, 0, 0, $_POST["paymentmonth"], $_POST["paymentday"], $_POST["paymentyear"]);
|
||||||
}
|
}
|
||||||
$subscription=price2num(GETPOST("subscription",'alpha')); // Amount of subscription
|
$amount=price2num(GETPOST("subscription",'alpha')); // Amount of subscription
|
||||||
$label=$_POST["label"];
|
$label=$_POST["label"];
|
||||||
|
|
||||||
// Payment informations
|
// Payment informations
|
||||||
@ -233,6 +233,7 @@ if ($user->rights->adherent->cotisation->creer && $action == 'subscription' && !
|
|||||||
$emetteur_banque=$_POST["chqbank"];
|
$emetteur_banque=$_POST["chqbank"];
|
||||||
$option=$_POST["paymentsave"];
|
$option=$_POST["paymentsave"];
|
||||||
if (empty($option)) $option='none';
|
if (empty($option)) $option='none';
|
||||||
|
$sendalsoemail=GETPOST("sendmail",'alpha');
|
||||||
|
|
||||||
// Check parameters
|
// Check parameters
|
||||||
if (! $datesubscription)
|
if (! $datesubscription)
|
||||||
@ -263,8 +264,6 @@ if ($user->rights->adherent->cotisation->creer && $action == 'subscription' && !
|
|||||||
$action='addsubscription';
|
$action='addsubscription';
|
||||||
}
|
}
|
||||||
|
|
||||||
$amount = price2num(GETPOST("subscription",'alpha'));
|
|
||||||
|
|
||||||
// Check if a payment is mandatory or not
|
// Check if a payment is mandatory or not
|
||||||
if (! $error && $adht->subscription) // Member type need subscriptions
|
if (! $error && $adht->subscription) // Member type need subscriptions
|
||||||
{
|
{
|
||||||
@ -284,7 +283,7 @@ if ($user->rights->adherent->cotisation->creer && $action == 'subscription' && !
|
|||||||
{
|
{
|
||||||
if (! $_POST["label"]) $errmsg=$langs->trans("ErrorFieldRequired",$langs->transnoentities("Label"));
|
if (! $_POST["label"]) $errmsg=$langs->trans("ErrorFieldRequired",$langs->transnoentities("Label"));
|
||||||
if ($_POST["paymentsave"] != 'invoiceonly' && ! $_POST["operation"]) $errmsg=$langs->trans("ErrorFieldRequired",$langs->transnoentities("PaymentMode"));
|
if ($_POST["paymentsave"] != 'invoiceonly' && ! $_POST["operation"]) $errmsg=$langs->trans("ErrorFieldRequired",$langs->transnoentities("PaymentMode"));
|
||||||
if ($_POST["paymentsave"] != 'invoiceonly' && ! $_POST["accountid"]) $errmsg=$langs->trans("ErrorFieldRequired",$langs->transnoentities("FinancialAccount"));
|
if ($_POST["paymentsave"] != 'invoiceonly' && ! ($_POST["accountid"] > 0)) $errmsg=$langs->trans("ErrorFieldRequired",$langs->transnoentities("FinancialAccount"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -292,19 +291,22 @@ if ($user->rights->adherent->cotisation->creer && $action == 'subscription' && !
|
|||||||
}
|
}
|
||||||
if ($errmsg)
|
if ($errmsg)
|
||||||
{
|
{
|
||||||
|
$error++;
|
||||||
setEventMessages($errmsg, null, 'errors');
|
setEventMessages($errmsg, null, 'errors');
|
||||||
|
$error++;
|
||||||
$action='addsubscription';
|
$action='addsubscription';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Record the subscription then complementary actions
|
||||||
if (! $error && $action=='subscription')
|
if (! $error && $action=='subscription')
|
||||||
{
|
{
|
||||||
$db->begin();
|
$db->begin();
|
||||||
|
|
||||||
// Create subscription
|
// Create subscription
|
||||||
$crowid=$object->subscription($datesubscription, $subscription, $accountid, $operation, $label, $num_chq, $emetteur_nom, $emetteur_banque, $datesubend);
|
$crowid=$object->subscription($datesubscription, $amount, $accountid, $operation, $label, $num_chq, $emetteur_nom, $emetteur_banque, $datesubend);
|
||||||
if ($crowid <= 0)
|
if ($crowid <= 0)
|
||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
@ -314,232 +316,11 @@ if ($user->rights->adherent->cotisation->creer && $action == 'subscription' && !
|
|||||||
|
|
||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
// Insert into bank account directlty (if option choosed for) + link to llx_subscription if option is 'bankdirect'
|
$result = $object->subscriptionComplementaryActions($crowid, $option, $accountid, $datesubscription, $paymentdate, $operation, $label, $amount, $num_chq, $emetteur_nom, $emetteur_banque);
|
||||||
if ($option == 'bankdirect' && $accountid)
|
if ($result < 0)
|
||||||
{
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
|
|
||||||
|
|
||||||
$acct=new Account($db);
|
|
||||||
$result=$acct->fetch($accountid);
|
|
||||||
|
|
||||||
$dateop=$paymentdate;
|
|
||||||
|
|
||||||
$insertid=$acct->addline($dateop, $operation, $label, $subscription, $num_chq, '', $user, $emetteur_nom, $emetteur_banque);
|
|
||||||
if ($insertid > 0)
|
|
||||||
{
|
|
||||||
$inserturlid=$acct->add_url_line($insertid, $object->id, DOL_URL_ROOT.'/adherents/card.php?rowid=', $object->getFullname($langs), 'member');
|
|
||||||
if ($inserturlid > 0)
|
|
||||||
{
|
|
||||||
// Update table subscription
|
|
||||||
$sql ="UPDATE ".MAIN_DB_PREFIX."subscription SET fk_bank=".$insertid;
|
|
||||||
$sql.=" WHERE rowid=".$crowid;
|
|
||||||
|
|
||||||
dol_syslog("subscription::subscription", LOG_DEBUG);
|
|
||||||
$resql = $db->query($sql);
|
|
||||||
if (! $resql)
|
|
||||||
{
|
{
|
||||||
$error++;
|
$error++;
|
||||||
$errmsg=$db->lasterror();
|
setEventMessages($object->error, $object->errors, 'errors');
|
||||||
setEventMessages($errmsg, null, 'errors');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$error++;
|
|
||||||
$errmsg=$acct->error;
|
|
||||||
$errmsgs=$acct->errors;
|
|
||||||
setEventMessages($errmsg, $errmsgs, 'errors');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$error++;
|
|
||||||
$errmsg=$acct->error;
|
|
||||||
$errmsgs=$acct->errors;
|
|
||||||
setEventMessages($errmsg, $errmsgs, 'errors');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// If option choosed, we create invoice
|
|
||||||
if (($option == 'bankviainvoice' && $accountid) || $option == 'invoiceonly')
|
|
||||||
{
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/paymentterm.class.php';
|
|
||||||
|
|
||||||
$invoice=new Facture($db);
|
|
||||||
$customer=new Societe($db);
|
|
||||||
|
|
||||||
if (! $error)
|
|
||||||
{
|
|
||||||
if (! ($object->fk_soc > 0))
|
|
||||||
{
|
|
||||||
$langs->load("errors");
|
|
||||||
$errmsg=$langs->trans("ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst");
|
|
||||||
setEventMessages($errmsg, null, 'errors');
|
|
||||||
$error++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (! $error)
|
|
||||||
{
|
|
||||||
$result=$customer->fetch($object->fk_soc);
|
|
||||||
if ($result <= 0)
|
|
||||||
{
|
|
||||||
$errmsg=$customer->error;
|
|
||||||
$errmsgs=$acct->errors;
|
|
||||||
setEventMessages($errmsg, $errmsgs, 'errors');
|
|
||||||
$error++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (! $error)
|
|
||||||
{
|
|
||||||
// Create draft invoice
|
|
||||||
$invoice->type= Facture::TYPE_STANDARD;
|
|
||||||
$invoice->cond_reglement_id=$customer->cond_reglement_id;
|
|
||||||
if (empty($invoice->cond_reglement_id))
|
|
||||||
{
|
|
||||||
$paymenttermstatic=new PaymentTerm($db);
|
|
||||||
$invoice->cond_reglement_id=$paymenttermstatic->getDefaultId();
|
|
||||||
if (empty($invoice->cond_reglement_id))
|
|
||||||
{
|
|
||||||
$error++;
|
|
||||||
$errmsg='ErrorNoPaymentTermRECEPFound';
|
|
||||||
setEventMessages($errmsg, null, 'errors');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$invoice->socid=$object->fk_soc;
|
|
||||||
$invoice->date=$datesubscription;
|
|
||||||
|
|
||||||
// Possibility to add external linked objects with hooks
|
|
||||||
$invoice->linked_objects['subscription'] = $crowid;
|
|
||||||
if (! empty($_POST['other_linked_objects']) && is_array($_POST['other_linked_objects']))
|
|
||||||
{
|
|
||||||
$invoice->linked_objects = array_merge($invoice->linked_objects, $_POST['other_linked_objects']);
|
|
||||||
}
|
|
||||||
|
|
||||||
$result=$invoice->create($user);
|
|
||||||
if ($result <= 0)
|
|
||||||
{
|
|
||||||
$errmsg=$invoice->error;
|
|
||||||
$errmsgs=$invoice->errors;
|
|
||||||
setEventMessages($errmsg, $errmsgs, 'errors');
|
|
||||||
$error++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (! $error)
|
|
||||||
{
|
|
||||||
// Add line to draft invoice
|
|
||||||
$idprodsubscription=0;
|
|
||||||
if (! empty($conf->global->ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS) && (! empty($conf->product->enabled) || ! empty($conf->service->enabled))) $idprodsubscription = $conf->global->ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS;
|
|
||||||
|
|
||||||
$vattouse=0;
|
|
||||||
if (isset($conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS) && $conf->global->ADHERENT_VAT_FOR_SUBSCRIPTIONS == 'defaultforfoundationcountry')
|
|
||||||
{
|
|
||||||
$vattouse=get_default_tva($mysoc, $mysoc, $idprodsubscription);
|
|
||||||
}
|
|
||||||
//print xx".$vattouse." - ".$mysoc." - ".$customer;exit;
|
|
||||||
$result=$invoice->addline($label,0,1,$vattouse,0,0,$idprodsubscription,0,$datesubscription,$datesubend,0,0,'','TTC',$subscription,1);
|
|
||||||
if ($result <= 0)
|
|
||||||
{
|
|
||||||
$errmsg=$invoice->error;
|
|
||||||
setEventMessages($errmsg, null, 'errors');
|
|
||||||
$error++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (! $error)
|
|
||||||
{
|
|
||||||
// Validate invoice
|
|
||||||
$result=$invoice->validate($user);
|
|
||||||
if ($result <= 0)
|
|
||||||
{
|
|
||||||
$errmsg=$invoice->error;
|
|
||||||
$errmsgs=$invoice->errors;
|
|
||||||
setEventMessages($errmsg, $errmsgs, 'errors');
|
|
||||||
$error++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add payment onto invoice
|
|
||||||
if ($option == 'bankviainvoice' && $accountid)
|
|
||||||
{
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php';
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
|
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/functions.lib.php';
|
|
||||||
|
|
||||||
$amounts[$invoice->id] = price2num($subscription);
|
|
||||||
$paiement = new Paiement($db);
|
|
||||||
$paiement->datepaye = $paymentdate;
|
|
||||||
$paiement->amounts = $amounts;
|
|
||||||
$paiement->paiementid = dol_getIdFromCode($db,$operation,'c_paiement','code','id',1);
|
|
||||||
$paiement->num_paiement = $num_chq;
|
|
||||||
$paiement->note = $label;
|
|
||||||
|
|
||||||
if (! $error)
|
|
||||||
{
|
|
||||||
// Create payment line for invoice
|
|
||||||
$paiement_id = $paiement->create($user);
|
|
||||||
if (! $paiement_id > 0)
|
|
||||||
{
|
|
||||||
$errmsg=$paiement->error;
|
|
||||||
$errmsgs=$paiement->errors;
|
|
||||||
setEventMessages($errmsg, $errmsgs, 'errors');
|
|
||||||
$error++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (! $error)
|
|
||||||
{
|
|
||||||
// Add transaction into bank account
|
|
||||||
$bank_line_id=$paiement->addPaymentToBank($user,'payment','(SubscriptionPayment)',$accountid,$emetteur_nom,$emetteur_banque);
|
|
||||||
if (! ($bank_line_id > 0))
|
|
||||||
{
|
|
||||||
$errmsg=$paiement->error;
|
|
||||||
$errmsgs=$paiement->errors;
|
|
||||||
setEventMessages($paiement->error, $paiement->errors, 'errors');
|
|
||||||
$error++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (! $error)
|
|
||||||
{
|
|
||||||
// Update fk_bank into subscription table
|
|
||||||
$sql = 'UPDATE '.MAIN_DB_PREFIX.'subscription SET fk_bank='.$bank_line_id;
|
|
||||||
$sql.= ' WHERE rowid='.$crowid;
|
|
||||||
|
|
||||||
$result = $db->query($sql);
|
|
||||||
if (! $result)
|
|
||||||
{
|
|
||||||
$error++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (! $error)
|
|
||||||
{
|
|
||||||
// Set invoice as paid
|
|
||||||
$invoice->set_paid($user);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (! $error)
|
|
||||||
{
|
|
||||||
// Define output language
|
|
||||||
$outputlangs = $langs;
|
|
||||||
$newlang = '';
|
|
||||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang) && ! empty($_REQUEST['lang_id']))
|
|
||||||
$newlang = $_REQUEST['lang_id'];
|
|
||||||
if ($conf->global->MAIN_MULTILANGS && empty($newlang))
|
|
||||||
$newlang = $customer->default_lang;
|
|
||||||
if (! empty($newlang)) {
|
|
||||||
$outputlangs = new Translate("", $conf);
|
|
||||||
$outputlangs->setDefaultLang($newlang);
|
|
||||||
}
|
|
||||||
// Generate PDF (whatever is option MAIN_DISABLE_PDF_AUTOUPDATE) so we can include it into email
|
|
||||||
//if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE))
|
|
||||||
|
|
||||||
$invoice->generateDocument($invoice->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -557,7 +338,7 @@ if ($user->rights->adherent->cotisation->creer && $action == 'subscription' && !
|
|||||||
if (! $error)
|
if (! $error)
|
||||||
{
|
{
|
||||||
// Send confirmation Email
|
// Send confirmation Email
|
||||||
if ($object->email && $_POST["sendmail"])
|
if ($object->email && $sendalsoemail)
|
||||||
{
|
{
|
||||||
$subjecttosend=$object->makeSubstitution($conf->global->ADHERENT_MAIL_COTIS_SUBJECT);
|
$subjecttosend=$object->makeSubstitution($conf->global->ADHERENT_MAIL_COTIS_SUBJECT);
|
||||||
$texttosend=$object->makeSubstitution($adht->getMailOnSubscription());
|
$texttosend=$object->makeSubstitution($adht->getMailOnSubscription());
|
||||||
@ -569,7 +350,11 @@ if ($user->rights->adherent->cotisation->creer && $action == 'subscription' && !
|
|||||||
setEventMessages($errmsg, null, 'errors');
|
setEventMessages($errmsg, null, 'errors');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Clean some POST vars
|
||||||
|
if (! $error)
|
||||||
|
{
|
||||||
$_POST["subscription"]='';
|
$_POST["subscription"]='';
|
||||||
$_POST["accountid"]='';
|
$_POST["accountid"]='';
|
||||||
$_POST["operation"]='';
|
$_POST["operation"]='';
|
||||||
@ -933,7 +718,7 @@ if ($rowid > 0)
|
|||||||
|
|
||||||
print load_fiche_titre($langs->trans("NewCotisation"));
|
print load_fiche_titre($langs->trans("NewCotisation"));
|
||||||
|
|
||||||
// Define default choice to select
|
// Define default choice for complementary actions
|
||||||
$bankdirect=0; // 1 means option by default is write to bank direct with no invoice
|
$bankdirect=0; // 1 means option by default is write to bank direct with no invoice
|
||||||
$invoiceonly=0; // 1 means option by default is invoice only
|
$invoiceonly=0; // 1 means option by default is invoice only
|
||||||
$bankviainvoice=0; // 1 means option by default is write to bank via invoice
|
$bankviainvoice=0; // 1 means option by default is write to bank via invoice
|
||||||
@ -1047,15 +832,11 @@ if ($rowid > 0)
|
|||||||
}
|
}
|
||||||
if (! $datefrom)
|
if (! $datefrom)
|
||||||
{
|
{
|
||||||
|
$datefrom=$object->datevalid;
|
||||||
if ($object->datefin > 0)
|
if ($object->datefin > 0)
|
||||||
{
|
{
|
||||||
$datefrom=dol_time_plus_duree($object->datefin,1,'d');
|
$datefrom=dol_time_plus_duree($object->datefin,1,'d');
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
//$datefrom=dol_now();
|
|
||||||
$datefrom=$object->datevalid;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
print $form->select_date($datefrom,'','','','',"subscription",1,1,1);
|
print $form->select_date($datefrom,'','','','',"subscription",1,1,1);
|
||||||
print "</td></tr>";
|
print "</td></tr>";
|
||||||
@ -1207,7 +988,7 @@ if ($rowid > 0)
|
|||||||
$subjecttosend=$object->makeSubstitution($conf->global->ADHERENT_MAIL_COTIS_SUBJECT);
|
$subjecttosend=$object->makeSubstitution($conf->global->ADHERENT_MAIL_COTIS_SUBJECT);
|
||||||
$texttosend=$object->makeSubstitution($adht->getMailOnSubscription());
|
$texttosend=$object->makeSubstitution($adht->getMailOnSubscription());
|
||||||
|
|
||||||
$tmp='<input name="sendmail" type="checkbox"'.(GETPOST('sendmail')?GETPOST('sendmail'):(! empty($conf->global->ADHERENT_DEFAULT_SENDINFOBYMAIL)?' checked':'')).'>';
|
$tmp='<input name="sendmail" type="checkbox"'.(GETPOST('sendmail','alpha')?' checked':(! empty($conf->global->ADHERENT_DEFAULT_SENDINFOBYMAIL)?' checked':'')).'>';
|
||||||
$helpcontent='';
|
$helpcontent='';
|
||||||
$helpcontent.='<b>'.$langs->trans("MailFrom").'</b>: '.$conf->global->ADHERENT_MAIL_FROM.'<br>'."\n";
|
$helpcontent.='<b>'.$langs->trans("MailFrom").'</b>: '.$conf->global->ADHERENT_MAIL_FROM.'<br>'."\n";
|
||||||
$helpcontent.='<b>'.$langs->trans("MailRecipient").'</b>: '.$object->email.'<br>'."\n";
|
$helpcontent.='<b>'.$langs->trans("MailRecipient").'</b>: '.$object->email.'<br>'."\n";
|
||||||
|
|||||||
@ -107,7 +107,7 @@ if ($action == 'add' && $user->rights->adherent->configurer)
|
|||||||
$object->subscription = (int) trim($subscription);
|
$object->subscription = (int) trim($subscription);
|
||||||
$object->note = trim($comment);
|
$object->note = trim($comment);
|
||||||
$object->mail_valid = trim($mail_valid);
|
$object->mail_valid = trim($mail_valid);
|
||||||
$object->vote = trim($vote);
|
$object->vote = (boolean) trim($vote);
|
||||||
|
|
||||||
// Fill array 'array_options' with data from add form
|
// Fill array 'array_options' with data from add form
|
||||||
$ret = $extrafields->setOptionalsFromPost($extralabels,$object);
|
$ret = $extrafields->setOptionalsFromPost($extralabels,$object);
|
||||||
@ -160,7 +160,7 @@ if ($action == 'update' && $user->rights->adherent->configurer)
|
|||||||
$object->subscription = (int) trim($subscription);
|
$object->subscription = (int) trim($subscription);
|
||||||
$object->note = trim($comment);
|
$object->note = trim($comment);
|
||||||
$object->mail_valid = trim($mail_valid);
|
$object->mail_valid = trim($mail_valid);
|
||||||
$object->vote = trim($vote);
|
$object->vote = (boolean) trim($vote);
|
||||||
|
|
||||||
// Fill array 'array_options' with data from add form
|
// Fill array 'array_options' with data from add form
|
||||||
$ret = $extrafields->setOptionalsFromPost($extralabels,$object);
|
$ret = $extrafields->setOptionalsFromPost($extralabels,$object);
|
||||||
@ -216,7 +216,7 @@ if (! $rowid && $action != 'create' && $action != 'edit')
|
|||||||
|
|
||||||
$sql = "SELECT d.rowid, d.libelle as label, d.subscription, d.vote";
|
$sql = "SELECT d.rowid, d.libelle as label, d.subscription, d.vote";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."adherent_type as d";
|
$sql.= " FROM ".MAIN_DB_PREFIX."adherent_type as d";
|
||||||
$sql.= " WHERE d.entity IN (".getEntity('adherent').")";
|
$sql.= " WHERE d.entity IN (".getEntity('member_type').")";
|
||||||
|
|
||||||
$result = $db->query($sql);
|
$result = $db->query($sql);
|
||||||
if ($result)
|
if ($result)
|
||||||
@ -361,7 +361,7 @@ if ($rowid > 0)
|
|||||||
{
|
{
|
||||||
$object = new AdherentType($db);
|
$object = new AdherentType($db);
|
||||||
$object->fetch($rowid);
|
$object->fetch($rowid);
|
||||||
$object->fetch_optionals($object->id,$extralabels);
|
$object->fetch_optionals();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Confirmation suppression
|
* Confirmation suppression
|
||||||
@ -692,7 +692,7 @@ if ($rowid > 0)
|
|||||||
{
|
{
|
||||||
$object = new AdherentType($db);
|
$object = new AdherentType($db);
|
||||||
$object->fetch($rowid);
|
$object->fetch($rowid);
|
||||||
$object->fetch_optionals($object->id,$extralabels);
|
$object->fetch_optionals();
|
||||||
|
|
||||||
$head = member_type_prepare_head($object);
|
$head = member_type_prepare_head($object);
|
||||||
|
|
||||||
|
|||||||
@ -143,7 +143,7 @@ if (preg_match('/del_(.*)/',$action,$reg))
|
|||||||
$wikihelp='EN:Module_Agenda_En|FR:Module_Agenda|ES:Módulo_Agenda';
|
$wikihelp='EN:Module_Agenda_En|FR:Module_Agenda|ES:Módulo_Agenda';
|
||||||
llxHeader('', $langs->trans("AgendaSetup"), $wikihelp);
|
llxHeader('', $langs->trans("AgendaSetup"), $wikihelp);
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("AgendaSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("AgendaSetup"),$linkback,'title_setup');
|
||||||
|
|
||||||
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
|
print '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
|
||||||
|
|||||||
@ -70,7 +70,7 @@ $textobject=$langs->transnoentitiesnoconv("Agenda");
|
|||||||
$wikihelp='EN:Module_Agenda_En|FR:Module_Agenda|ES:Módulo_Agenda';
|
$wikihelp='EN:Module_Agenda_En|FR:Module_Agenda|ES:Módulo_Agenda';
|
||||||
llxHeader('', $langs->trans("AgendaSetup"), $wikihelp);
|
llxHeader('', $langs->trans("AgendaSetup"), $wikihelp);
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("AgendaSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("AgendaSetup"),$linkback,'title_setup');
|
||||||
|
|
||||||
$head=agenda_prepare_head();
|
$head=agenda_prepare_head();
|
||||||
|
|||||||
@ -48,9 +48,11 @@ $MAXAGENDA=$conf->global->AGENDA_EXT_NB;
|
|||||||
// List of aviable colors
|
// List of aviable colors
|
||||||
$colorlist=array('BECEDD','DDBECE','BFDDBE','F598B4','F68654','CBF654','A4A4A5');
|
$colorlist=array('BECEDD','DDBECE','BFDDBE','F598B4','F68654','CBF654','A4A4A5');
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ($actionsave)
|
if ($actionsave)
|
||||||
{
|
{
|
||||||
$db->begin();
|
$db->begin();
|
||||||
@ -128,7 +130,7 @@ $arrayofcss=array();
|
|||||||
$wikihelp='EN:Module_Agenda_En|FR:Module_Agenda|ES:Módulo_Agenda';
|
$wikihelp='EN:Module_Agenda_En|FR:Module_Agenda|ES:Módulo_Agenda';
|
||||||
llxHeader('',$langs->trans("AgendaSetup"),$wikihelp,'',0,0,$arrayofjs,$arrayofcss);
|
llxHeader('',$langs->trans("AgendaSetup"),$wikihelp,'',0,0,$arrayofjs,$arrayofcss);
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("AgendaSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("AgendaSetup"),$linkback,'title_setup');
|
||||||
|
|
||||||
print '<form name="extsitesconfig" action="'.$_SERVER["PHP_SELF"].'" method="post">';
|
print '<form name="extsitesconfig" action="'.$_SERVER["PHP_SELF"].'" method="post">';
|
||||||
|
|||||||
@ -178,7 +178,7 @@ $dirmodels=array_merge(array('/'),(array) $conf->modules_parts['models']);
|
|||||||
$wikihelp='EN:Module_Agenda_En|FR:Module_Agenda|ES:Módulo_Agenda';
|
$wikihelp='EN:Module_Agenda_En|FR:Module_Agenda|ES:Módulo_Agenda';
|
||||||
llxHeader('', $langs->trans("AgendaSetup"),$wikihelp);
|
llxHeader('', $langs->trans("AgendaSetup"),$wikihelp);
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("AgendaSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("AgendaSetup"),$linkback,'title_setup');
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -171,7 +171,7 @@ $formactions=new FormActions($db);
|
|||||||
$dirmodels=array_merge(array('/'),(array) $conf->modules_parts['models']);
|
$dirmodels=array_merge(array('/'),(array) $conf->modules_parts['models']);
|
||||||
llxHeader();
|
llxHeader();
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("AgendaSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("AgendaSetup"),$linkback,'title_setup');
|
||||||
print "<br>\n";
|
print "<br>\n";
|
||||||
|
|
||||||
|
|||||||
@ -74,7 +74,7 @@ if (! isset($conf->global->MAIN_AGENDA_EXPORT_PAST_DELAY)) $conf->global->MAIN_A
|
|||||||
$wikihelp='EN:Module_Agenda_En|FR:Module_Agenda|ES:Módulo_Agenda';
|
$wikihelp='EN:Module_Agenda_En|FR:Module_Agenda|ES:Módulo_Agenda';
|
||||||
llxHeader('', $langs->trans("AgendaSetup"), $wikihelp);
|
llxHeader('', $langs->trans("AgendaSetup"), $wikihelp);
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("AgendaSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("AgendaSetup"),$linkback,'title_setup');
|
||||||
|
|
||||||
|
|
||||||
@ -173,11 +173,12 @@ $message.='<br>';
|
|||||||
$message.='<br>';
|
$message.='<br>';
|
||||||
print $message;
|
print $message;
|
||||||
|
|
||||||
$message=$langs->trans("AgendaUrlOptions1",$user->login,$user->login).'<br>';
|
$message =$langs->trans("AgendaUrlOptions1",$user->login,$user->login).'<br>';
|
||||||
$message.=$langs->trans("AgendaUrlOptions3",$user->login,$user->login).'<br>';
|
$message.=$langs->trans("AgendaUrlOptions3",$user->login,$user->login).'<br>';
|
||||||
$message.=$langs->trans("AgendaUrlOptionsNotAdmin",$user->login,$user->login).'<br>';
|
$message.=$langs->trans("AgendaUrlOptionsNotAdmin",$user->login,$user->login).'<br>';
|
||||||
$message.=$langs->trans("AgendaUrlOptions4",$user->login,$user->login).'<br>';
|
$message.=$langs->trans("AgendaUrlOptions4",$user->login,$user->login).'<br>';
|
||||||
$message.=$langs->trans("AgendaUrlOptionsProject",$user->login,$user->login);
|
$message.=$langs->trans("AgendaUrlOptionsProject",$user->login,$user->login).'<br>';
|
||||||
|
$message.=$langs->trans("AgendaUrlOptionsNotAutoEvent",'systemauto','systemauto').'<br>';
|
||||||
|
|
||||||
print info_admin($message);
|
print info_admin($message);
|
||||||
|
|
||||||
|
|||||||
@ -171,7 +171,7 @@ $dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']);
|
|||||||
|
|
||||||
llxHeader("", $langs->trans("BankSetupModule"));
|
llxHeader("", $langs->trans("BankSetupModule"));
|
||||||
|
|
||||||
$linkback = '<a href="' . DOL_URL_ROOT . '/admin/modules.php">' . $langs->trans("BackToModuleList") . '</a>';
|
$linkback = '<a href="' . DOL_URL_ROOT . '/admin/modules.php?restore_lastsearch_values=1">' . $langs->trans("BackToModuleList") . '</a>';
|
||||||
print load_fiche_titre($langs->trans("BankSetupModule"), $linkback,
|
print load_fiche_titre($langs->trans("BankSetupModule"), $linkback,
|
||||||
'title_setup');
|
'title_setup');
|
||||||
|
|
||||||
|
|||||||
@ -65,7 +65,7 @@ $textobject = $langs->transnoentitiesnoconv("Bank");
|
|||||||
llxHeader('',$langs->trans("BankSetupModule"),$help_url);
|
llxHeader('',$langs->trans("BankSetupModule"),$help_url);
|
||||||
|
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("BankSetupModule"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("BankSetupModule"),$linkback,'title_setup');
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -101,7 +101,7 @@ $formbarcode = new FormBarCode($db);
|
|||||||
$help_url='EN:Module_Barcode|FR:Module_Codes_Barre|ES:Módulo Código de barra';
|
$help_url='EN:Module_Barcode|FR:Module_Codes_Barre|ES:Módulo Código de barra';
|
||||||
llxHeader('',$langs->trans("BarcodeSetup"),$help_url);
|
llxHeader('',$langs->trans("BarcodeSetup"),$help_url);
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("BarcodeSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("BarcodeSetup"),$linkback,'title_setup');
|
||||||
|
|
||||||
// Detect bar codes modules
|
// Detect bar codes modules
|
||||||
|
|||||||
@ -102,7 +102,7 @@ llxHeader("",$langs->trans("BankSetupModule"));
|
|||||||
|
|
||||||
$form=new Form($db);
|
$form=new Form($db);
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("BankSetupModule"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("BankSetupModule"),$linkback,'title_setup');
|
||||||
|
|
||||||
$head = bank_admin_prepare_head(null);
|
$head = bank_admin_prepare_head(null);
|
||||||
|
|||||||
@ -62,7 +62,7 @@ $user->fetch_clicktodial();
|
|||||||
$wikihelp='EN:Module_ClickToDial_En|FR:Module_ClickToDial|ES:Módulo_ClickTodial_Es';
|
$wikihelp='EN:Module_ClickToDial_En|FR:Module_ClickToDial|ES:Módulo_ClickTodial_Es';
|
||||||
llxHeader('',$langs->trans("ClickToDialSetup"),$wikihelp);
|
llxHeader('',$langs->trans("ClickToDialSetup"),$wikihelp);
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("ClickToDialSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("ClickToDialSetup"),$linkback,'title_setup');
|
||||||
|
|
||||||
print $langs->trans("ClickToDialDesc")."<br>\n";
|
print $langs->trans("ClickToDialDesc")."<br>\n";
|
||||||
|
|||||||
@ -253,7 +253,7 @@ $dirmodels=array_merge(array('/'),(array) $conf->modules_parts['models']);
|
|||||||
|
|
||||||
llxHeader("",$langs->trans("OrdersSetup"));
|
llxHeader("",$langs->trans("OrdersSetup"));
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("OrdersSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("OrdersSetup"),$linkback,'title_setup');
|
||||||
|
|
||||||
$head = order_admin_prepare_head();
|
$head = order_admin_prepare_head();
|
||||||
|
|||||||
@ -313,10 +313,9 @@ if ($action == 'edit' || $action == 'updateedit')
|
|||||||
print '<form enctype="multipart/form-data" method="POST" action="'.$_SERVER["PHP_SELF"].'" name="form_index">';
|
print '<form enctype="multipart/form-data" method="POST" action="'.$_SERVER["PHP_SELF"].'" name="form_index">';
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
print '<input type="hidden" name="action" value="update">';
|
print '<input type="hidden" name="action" value="update">';
|
||||||
$var=true;
|
|
||||||
|
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre"><th class="titlefield">'.$langs->trans("CompanyInfo").'</th><th>'.$langs->trans("Value").'</th></tr>'."\n";
|
print '<tr class="liste_titre"><th class="titlefield wordbreak">'.$langs->trans("CompanyInfo").'</th><th>'.$langs->trans("Value").'</th></tr>'."\n";
|
||||||
|
|
||||||
// Name
|
// Name
|
||||||
|
|
||||||
@ -411,7 +410,6 @@ if ($action == 'edit' || $action == 'updateedit')
|
|||||||
// IDs of the company (country-specific)
|
// IDs of the company (country-specific)
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre"><td>'.$langs->trans("CompanyIds").'</td><td>'.$langs->trans("Value").'</td></tr>';
|
print '<tr class="liste_titre"><td>'.$langs->trans("CompanyIds").'</td><td>'.$langs->trans("Value").'</td></tr>';
|
||||||
$var=true;
|
|
||||||
|
|
||||||
$langs->load("companies");
|
$langs->load("companies");
|
||||||
|
|
||||||
@ -697,11 +695,12 @@ else
|
|||||||
//print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=edit">'.$langs->trans("Modify").'</a>';
|
//print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=edit">'.$langs->trans("Modify").'</a>';
|
||||||
//print '</div><br>';
|
//print '</div><br>';
|
||||||
|
|
||||||
|
print '<div class="div-table-responsive-no-min">';
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre"><td>'.$langs->trans("CompanyInfo").'</td><td>'.$langs->trans("Value").'</td></tr>';
|
print '<tr class="liste_titre"><td>'.$langs->trans("CompanyInfo").'</td><td>'.$langs->trans("Value").'</td></tr>';
|
||||||
|
|
||||||
|
|
||||||
print '<tr class="oddeven"><td class="titlefield">'.$langs->trans("CompanyName").'</td><td>';
|
print '<tr class="oddeven"><td class="titlefield wordbreak">'.$langs->trans("CompanyName").'</td><td>';
|
||||||
if (! empty($conf->global->MAIN_INFO_SOCIETE_NOM)) print $conf->global->MAIN_INFO_SOCIETE_NOM;
|
if (! empty($conf->global->MAIN_INFO_SOCIETE_NOM)) print $conf->global->MAIN_INFO_SOCIETE_NOM;
|
||||||
else print img_warning().' <font class="error">'.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("CompanyName")).'</font>';
|
else print img_warning().' <font class="error">'.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("CompanyName")).'</font>';
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
@ -791,7 +790,7 @@ else
|
|||||||
print '<tr class="oddeven"><td class="tdtop">'.$langs->trans("Note").'</td><td>' . (! empty($conf->global->MAIN_INFO_SOCIETE_NOTE) ? nl2br($conf->global->MAIN_INFO_SOCIETE_NOTE) : '') . '</td></tr>';
|
print '<tr class="oddeven"><td class="tdtop">'.$langs->trans("Note").'</td><td>' . (! empty($conf->global->MAIN_INFO_SOCIETE_NOTE) ? nl2br($conf->global->MAIN_INFO_SOCIETE_NOTE) : '') . '</td></tr>';
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
print "</div>";
|
||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
@ -799,8 +798,10 @@ else
|
|||||||
// IDs of the company (country-specific)
|
// IDs of the company (country-specific)
|
||||||
print '<form name="formsoc" method="post">';
|
print '<form name="formsoc" method="post">';
|
||||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
|
||||||
|
print '<div class="div-table-responsive-no-min">';
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre"><td class="titlefield">'.$langs->trans("CompanyIds").'</td><td>'.$langs->trans("Value").'</td></tr>';
|
print '<tr class="liste_titre"><td class="titlefield wordbreak">'.$langs->trans("CompanyIds").'</td><td>'.$langs->trans("Value").'</td></tr>';
|
||||||
|
|
||||||
// Managing Director(s)
|
// Managing Director(s)
|
||||||
|
|
||||||
@ -956,12 +957,16 @@ else
|
|||||||
print '<tr class="oddeven"><td class="tdtop">'.$langs->trans("CompanyObject").'</td><td>' . (! empty($conf->global->MAIN_INFO_SOCIETE_OBJECT) ? nl2br($conf->global->MAIN_INFO_SOCIETE_OBJECT) : '') . '</td></tr>';
|
print '<tr class="oddeven"><td class="tdtop">'.$langs->trans("CompanyObject").'</td><td>' . (! empty($conf->global->MAIN_INFO_SOCIETE_OBJECT) ? nl2br($conf->global->MAIN_INFO_SOCIETE_OBJECT) : '') . '</td></tr>';
|
||||||
|
|
||||||
print '</table>';
|
print '</table>';
|
||||||
|
print "</div>";
|
||||||
|
|
||||||
print '</form>';
|
print '</form>';
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* fiscal year beginning
|
* fiscal year beginning
|
||||||
*/
|
*/
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
|
print '<div class="div-table-responsive-no-min">';
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print '<td class="titlefield">'.$langs->trans("FiscalYearInformation").'</td><td>'.$langs->trans("Value").'</td>';
|
print '<td class="titlefield">'.$langs->trans("FiscalYearInformation").'</td><td>'.$langs->trans("Value").'</td>';
|
||||||
@ -973,11 +978,13 @@ else
|
|||||||
print dol_print_date(dol_mktime(12,0,0,$monthstart,1,2000,1),'%B','gm') . '</td></tr>';
|
print dol_print_date(dol_mktime(12,0,0,$monthstart,1,2000,1),'%B','gm') . '</td></tr>';
|
||||||
|
|
||||||
print "</table>";
|
print "</table>";
|
||||||
|
print "</div>";
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* tax options
|
* tax options
|
||||||
*/
|
*/
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
print '<div class="div-table-responsive-no-min">';
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print '<td class="titlefield">'.$langs->trans("VATManagement").'</td><td>'.$langs->trans("Description").'</td>';
|
print '<td class="titlefield">'.$langs->trans("VATManagement").'</td><td>'.$langs->trans("Description").'</td>';
|
||||||
@ -1005,7 +1012,7 @@ else
|
|||||||
print "</td></tr>\n";
|
print "</td></tr>\n";
|
||||||
|
|
||||||
print "</table>";
|
print "</table>";
|
||||||
|
print "</div>";
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Local Taxes
|
* Local Taxes
|
||||||
@ -1014,6 +1021,7 @@ else
|
|||||||
{
|
{
|
||||||
// Local Tax 1
|
// Local Tax 1
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
print '<div class="div-table-responsive-no-min">';
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print '<td class="titlefield">'.$langs->transcountry("LocalTax1Management",$mysoc->country_code).'</td><td>'.$langs->trans("Description").'</td>';
|
print '<td class="titlefield">'.$langs->transcountry("LocalTax1Management",$mysoc->country_code).'</td><td>'.$langs->trans("Description").'</td>';
|
||||||
@ -1061,11 +1069,13 @@ else
|
|||||||
print "</td></tr>\n";
|
print "</td></tr>\n";
|
||||||
|
|
||||||
print "</table>";
|
print "</table>";
|
||||||
|
print "</div>";
|
||||||
}
|
}
|
||||||
if ($mysoc->useLocalTax(2)) // True if we found at least on vat with a setup adding a localtax 1
|
if ($mysoc->useLocalTax(2)) // True if we found at least on vat with a setup adding a localtax 1
|
||||||
{
|
{
|
||||||
// Local Tax 2
|
// Local Tax 2
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
print '<div class="div-table-responsive-no-min">';
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print '<td class="titlefield">'.$langs->transcountry("LocalTax2Management",$mysoc->country_code).'</td><td>'.$langs->trans("Description").'</td>';
|
print '<td class="titlefield">'.$langs->transcountry("LocalTax2Management",$mysoc->country_code).'</td><td>'.$langs->trans("Description").'</td>';
|
||||||
@ -1113,6 +1123,7 @@ else
|
|||||||
print "</td></tr>\n";
|
print "</td></tr>\n";
|
||||||
|
|
||||||
print "</table>";
|
print "</table>";
|
||||||
|
print "</div>";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -103,7 +103,7 @@ llxHeader();
|
|||||||
|
|
||||||
$form=new Form($db);
|
$form=new Form($db);
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans('ComptaSetup'),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans('ComptaSetup'),$linkback,'title_setup');
|
||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|||||||
@ -89,7 +89,7 @@ $form=new Form($db);
|
|||||||
|
|
||||||
llxHeader("",$langs->trans("SendingsSetup"));
|
llxHeader("",$langs->trans("SendingsSetup"));
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("SendingsSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("SendingsSetup"),$linkback,'title_setup');
|
||||||
print '<br>';
|
print '<br>';
|
||||||
$head = expedition_admin_prepare_head();
|
$head = expedition_admin_prepare_head();
|
||||||
|
|||||||
@ -187,7 +187,7 @@ llxHeader();
|
|||||||
|
|
||||||
$form=new Form($db);
|
$form=new Form($db);
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("ContractsSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("ContractsSetup"),$linkback,'title_setup');
|
||||||
|
|
||||||
$head=contract_admin_prepare_head();
|
$head=contract_admin_prepare_head();
|
||||||
|
|||||||
@ -93,7 +93,7 @@ $hookmanager->initHooks(array('admin'));
|
|||||||
// Put here declaration of dictionaries properties
|
// Put here declaration of dictionaries properties
|
||||||
|
|
||||||
// Sort order to show dictionary (0 is space). All other dictionaries (added by modules) will be at end of this.
|
// Sort order to show dictionary (0 is space). All other dictionaries (added by modules) will be at end of this.
|
||||||
$taborder=array(9,0,4,3,2,0,1,8,19,16,27,0,5,11,0,33,34,0,6,0,29,0,7,24,28,17,35,36,0,10,23,12,13,0,14,0,22,20,18,21,0,15,30,0,26,0,);
|
$taborder=array(9,0,4,3,2,0,1,8,19,16,27,0,5,11,0,33,34,0,6,0,29,0,7,24,28,17,35,36,0,10,23,12,13,0,14,0,22,20,18,21,0,15,30,0,26,0,25,0);
|
||||||
|
|
||||||
// Name of SQL tables of dictionaries
|
// Name of SQL tables of dictionaries
|
||||||
$tabname=array();
|
$tabname=array();
|
||||||
@ -121,7 +121,7 @@ $tabname[21]= MAIN_DB_PREFIX."c_availability";
|
|||||||
$tabname[22]= MAIN_DB_PREFIX."c_input_reason";
|
$tabname[22]= MAIN_DB_PREFIX."c_input_reason";
|
||||||
$tabname[23]= MAIN_DB_PREFIX."c_revenuestamp";
|
$tabname[23]= MAIN_DB_PREFIX."c_revenuestamp";
|
||||||
$tabname[24]= MAIN_DB_PREFIX."c_type_resource";
|
$tabname[24]= MAIN_DB_PREFIX."c_type_resource";
|
||||||
//$tabname[25]= MAIN_DB_PREFIX."c_email_templates";
|
$tabname[25]= MAIN_DB_PREFIX."c_type_container";
|
||||||
$tabname[26]= MAIN_DB_PREFIX."c_units";
|
$tabname[26]= MAIN_DB_PREFIX."c_units";
|
||||||
$tabname[27]= MAIN_DB_PREFIX."c_stcomm";
|
$tabname[27]= MAIN_DB_PREFIX."c_stcomm";
|
||||||
$tabname[28]= MAIN_DB_PREFIX."c_holiday_types";
|
$tabname[28]= MAIN_DB_PREFIX."c_holiday_types";
|
||||||
@ -160,7 +160,7 @@ $tablib[21]= "DictionaryAvailability";
|
|||||||
$tablib[22]= "DictionarySource";
|
$tablib[22]= "DictionarySource";
|
||||||
$tablib[23]= "DictionaryRevenueStamp";
|
$tablib[23]= "DictionaryRevenueStamp";
|
||||||
$tablib[24]= "DictionaryResourceType";
|
$tablib[24]= "DictionaryResourceType";
|
||||||
//$tablib[25]= "DictionaryEMailTemplates";
|
$tablib[25]= "DictionaryTypeOfContainer";
|
||||||
$tablib[26]= "DictionaryUnits";
|
$tablib[26]= "DictionaryUnits";
|
||||||
$tablib[27]= "DictionaryProspectStatus";
|
$tablib[27]= "DictionaryProspectStatus";
|
||||||
$tablib[28]= "DictionaryHolidayTypes";
|
$tablib[28]= "DictionaryHolidayTypes";
|
||||||
@ -187,7 +187,7 @@ $tabsql[9] = "SELECT c.code_iso as code, c.label, c.unicode, c.active FROM ".MAI
|
|||||||
$tabsql[10]= "SELECT t.rowid, t.code, t.taux, t.localtax1_type, t.localtax1, t.localtax2_type, t.localtax2, c.label as country, c.code as country_code, t.fk_pays as country_id, t.recuperableonly, t.note, t.active, t.accountancy_code_sell, t.accountancy_code_buy FROM ".MAIN_DB_PREFIX."c_tva as t, ".MAIN_DB_PREFIX."c_country as c WHERE t.fk_pays=c.rowid";
|
$tabsql[10]= "SELECT t.rowid, t.code, t.taux, t.localtax1_type, t.localtax1, t.localtax2_type, t.localtax2, c.label as country, c.code as country_code, t.fk_pays as country_id, t.recuperableonly, t.note, t.active, t.accountancy_code_sell, t.accountancy_code_buy FROM ".MAIN_DB_PREFIX."c_tva as t, ".MAIN_DB_PREFIX."c_country as c WHERE t.fk_pays=c.rowid";
|
||||||
$tabsql[11]= "SELECT t.rowid as rowid, t.element, t.source, t.code, t.libelle, t.position, t.active FROM ".MAIN_DB_PREFIX."c_type_contact AS t";
|
$tabsql[11]= "SELECT t.rowid as rowid, t.element, t.source, t.code, t.libelle, t.position, t.active FROM ".MAIN_DB_PREFIX."c_type_contact AS t";
|
||||||
$tabsql[12]= "SELECT c.rowid as rowid, c.code, c.libelle, c.libelle_facture, c.nbjour, c.type_cdr, c.decalage, c.active, c.sortorder, c.entity FROM ".MAIN_DB_PREFIX."c_payment_term AS c WHERE c.entity = " . getEntity($tabname[12]);
|
$tabsql[12]= "SELECT c.rowid as rowid, c.code, c.libelle, c.libelle_facture, c.nbjour, c.type_cdr, c.decalage, c.active, c.sortorder, c.entity FROM ".MAIN_DB_PREFIX."c_payment_term AS c WHERE c.entity = " . getEntity($tabname[12]);
|
||||||
$tabsql[13]= "SELECT c.id as rowid, c.code, c.libelle, c.type, c.active, c.accountancy_code, c.entity FROM ".MAIN_DB_PREFIX."c_paiement AS c WHERE c.entity = " . getEntity($tabname[13]);
|
$tabsql[13]= "SELECT c.id as rowid, c.code, c.libelle, c.type, c.active, c.entity FROM ".MAIN_DB_PREFIX."c_paiement AS c WHERE c.entity = " . getEntity($tabname[13]);
|
||||||
$tabsql[14]= "SELECT e.rowid as rowid, e.code as code, e.libelle, e.price, e.organization, e.fk_pays as country_id, c.code as country_code, c.label as country, e.active FROM ".MAIN_DB_PREFIX."c_ecotaxe AS e, ".MAIN_DB_PREFIX."c_country as c WHERE e.fk_pays=c.rowid and c.active=1";
|
$tabsql[14]= "SELECT e.rowid as rowid, e.code as code, e.libelle, e.price, e.organization, e.fk_pays as country_id, c.code as country_code, c.label as country, e.active FROM ".MAIN_DB_PREFIX."c_ecotaxe AS e, ".MAIN_DB_PREFIX."c_country as c WHERE e.fk_pays=c.rowid and c.active=1";
|
||||||
$tabsql[15]= "SELECT rowid as rowid, code, label as libelle, width, height, unit, active FROM ".MAIN_DB_PREFIX."c_paper_format";
|
$tabsql[15]= "SELECT rowid as rowid, code, label as libelle, width, height, unit, active FROM ".MAIN_DB_PREFIX."c_paper_format";
|
||||||
$tabsql[16]= "SELECT code, label as libelle, sortorder, active FROM ".MAIN_DB_PREFIX."c_prospectlevel";
|
$tabsql[16]= "SELECT code, label as libelle, sortorder, active FROM ".MAIN_DB_PREFIX."c_prospectlevel";
|
||||||
@ -199,7 +199,7 @@ $tabsql[21]= "SELECT c.rowid as rowid, code, label, active FROM ".MAIN_DB_PREFIX
|
|||||||
$tabsql[22]= "SELECT rowid as rowid, code, label, active FROM ".MAIN_DB_PREFIX."c_input_reason";
|
$tabsql[22]= "SELECT rowid as rowid, code, label, active FROM ".MAIN_DB_PREFIX."c_input_reason";
|
||||||
$tabsql[23]= "SELECT t.rowid as rowid, t.taux, t.revenuestamp_type, c.label as country, c.code as country_code, t.fk_pays as country_id, t.note, t.active, t.accountancy_code_sell, t.accountancy_code_buy FROM ".MAIN_DB_PREFIX."c_revenuestamp as t, ".MAIN_DB_PREFIX."c_country as c WHERE t.fk_pays=c.rowid";
|
$tabsql[23]= "SELECT t.rowid as rowid, t.taux, t.revenuestamp_type, c.label as country, c.code as country_code, t.fk_pays as country_id, t.note, t.active, t.accountancy_code_sell, t.accountancy_code_buy FROM ".MAIN_DB_PREFIX."c_revenuestamp as t, ".MAIN_DB_PREFIX."c_country as c WHERE t.fk_pays=c.rowid";
|
||||||
$tabsql[24]= "SELECT rowid as rowid, code, label, active FROM ".MAIN_DB_PREFIX."c_type_resource";
|
$tabsql[24]= "SELECT rowid as rowid, code, label, active FROM ".MAIN_DB_PREFIX."c_type_resource";
|
||||||
//$tabsql[25]= "SELECT rowid as rowid, label, type_template, private, position, topic, content_lines, content, active FROM ".MAIN_DB_PREFIX."c_email_templates WHERE entity IN (".getEntity('email_template').")";
|
$tabsql[25]= "SELECT rowid as rowid, code, label, active, module FROM ".MAIN_DB_PREFIX."c_type_container as t WHERE t.entity IN (".getEntity('c_type_container').")";
|
||||||
$tabsql[26]= "SELECT rowid as rowid, code, label, short_label, active FROM ".MAIN_DB_PREFIX."c_units";
|
$tabsql[26]= "SELECT rowid as rowid, code, label, short_label, active FROM ".MAIN_DB_PREFIX."c_units";
|
||||||
$tabsql[27]= "SELECT id as rowid, code, libelle, active FROM ".MAIN_DB_PREFIX."c_stcomm";
|
$tabsql[27]= "SELECT id as rowid, code, libelle, active FROM ".MAIN_DB_PREFIX."c_stcomm";
|
||||||
$tabsql[28]= "SELECT h.rowid as rowid, h.code, h.label, h.affect, h.delay, h.newbymonth, h.fk_country as country_id, c.code as country_code, c.label as country, h.active FROM ".MAIN_DB_PREFIX."c_holiday_types as h LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON h.fk_country=c.rowid";
|
$tabsql[28]= "SELECT h.rowid as rowid, h.code, h.label, h.affect, h.delay, h.newbymonth, h.fk_country as country_id, c.code as country_code, c.label as country, h.active FROM ".MAIN_DB_PREFIX."c_holiday_types as h LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON h.fk_country=c.rowid";
|
||||||
@ -237,8 +237,8 @@ $tabsqlsort[20]="code ASC, libelle ASC";
|
|||||||
$tabsqlsort[21]="code ASC, label ASC";
|
$tabsqlsort[21]="code ASC, label ASC";
|
||||||
$tabsqlsort[22]="code ASC, label ASC";
|
$tabsqlsort[22]="code ASC, label ASC";
|
||||||
$tabsqlsort[23]="country ASC, taux ASC";
|
$tabsqlsort[23]="country ASC, taux ASC";
|
||||||
$tabsqlsort[24]="code ASC,label ASC";
|
$tabsqlsort[24]="code ASC, label ASC";
|
||||||
//$tabsqlsort[25]="label ASC";
|
$tabsqlsort[25]="t.module ASC, t.code ASC, t.label ASC";
|
||||||
$tabsqlsort[26]="code ASC";
|
$tabsqlsort[26]="code ASC";
|
||||||
$tabsqlsort[27]="code ASC";
|
$tabsqlsort[27]="code ASC";
|
||||||
$tabsqlsort[28]="country ASC, code ASC";
|
$tabsqlsort[28]="country ASC, code ASC";
|
||||||
@ -265,7 +265,7 @@ $tabfield[9] = "code,label,unicode";
|
|||||||
$tabfield[10]= "country_id,country,code,taux,localtax1_type,localtax1,localtax2_type,localtax2,recuperableonly,accountancy_code_sell,accountancy_code_buy,note";
|
$tabfield[10]= "country_id,country,code,taux,localtax1_type,localtax1,localtax2_type,localtax2,recuperableonly,accountancy_code_sell,accountancy_code_buy,note";
|
||||||
$tabfield[11]= "element,source,code,libelle,position";
|
$tabfield[11]= "element,source,code,libelle,position";
|
||||||
$tabfield[12]= "code,libelle,libelle_facture,nbjour,type_cdr,decalage,sortorder,entity";
|
$tabfield[12]= "code,libelle,libelle_facture,nbjour,type_cdr,decalage,sortorder,entity";
|
||||||
$tabfield[13]= "code,libelle,type,accountancy_code,entity";
|
$tabfield[13]= "code,libelle,type,entity";
|
||||||
$tabfield[14]= "code,libelle,price,organization,country_id,country";
|
$tabfield[14]= "code,libelle,price,organization,country_id,country";
|
||||||
$tabfield[15]= "code,libelle,width,height,unit";
|
$tabfield[15]= "code,libelle,width,height,unit";
|
||||||
$tabfield[16]= "code,libelle,sortorder";
|
$tabfield[16]= "code,libelle,sortorder";
|
||||||
@ -277,7 +277,7 @@ $tabfield[21]= "code,label";
|
|||||||
$tabfield[22]= "code,label";
|
$tabfield[22]= "code,label";
|
||||||
$tabfield[23]= "country_id,country,taux,revenuestamp_type,accountancy_code_sell,accountancy_code_buy,note";
|
$tabfield[23]= "country_id,country,taux,revenuestamp_type,accountancy_code_sell,accountancy_code_buy,note";
|
||||||
$tabfield[24]= "code,label";
|
$tabfield[24]= "code,label";
|
||||||
//$tabfield[25]= "label,type_template,private,position,topic,content_lines,content";
|
$tabfield[25]= "code,label";
|
||||||
$tabfield[26]= "code,label,short_label";
|
$tabfield[26]= "code,label,short_label";
|
||||||
$tabfield[27]= "code,libelle";
|
$tabfield[27]= "code,libelle";
|
||||||
$tabfield[28]= "code,label,affect,delay,newbymonth,country_id,country";
|
$tabfield[28]= "code,label,affect,delay,newbymonth,country_id,country";
|
||||||
@ -304,7 +304,7 @@ $tabfieldvalue[9] = "code,label,unicode";
|
|||||||
$tabfieldvalue[10]= "country,code,taux,localtax1_type,localtax1,localtax2_type,localtax2,recuperableonly,accountancy_code_sell,accountancy_code_buy,note";
|
$tabfieldvalue[10]= "country,code,taux,localtax1_type,localtax1,localtax2_type,localtax2,recuperableonly,accountancy_code_sell,accountancy_code_buy,note";
|
||||||
$tabfieldvalue[11]= "element,source,code,libelle,position";
|
$tabfieldvalue[11]= "element,source,code,libelle,position";
|
||||||
$tabfieldvalue[12]= "code,libelle,libelle_facture,nbjour,type_cdr,decalage,sortorder";
|
$tabfieldvalue[12]= "code,libelle,libelle_facture,nbjour,type_cdr,decalage,sortorder";
|
||||||
$tabfieldvalue[13]= "code,libelle,type,accountancy_code";
|
$tabfieldvalue[13]= "code,libelle,type";
|
||||||
$tabfieldvalue[14]= "code,libelle,price,organization,country";
|
$tabfieldvalue[14]= "code,libelle,price,organization,country";
|
||||||
$tabfieldvalue[15]= "code,libelle,width,height,unit";
|
$tabfieldvalue[15]= "code,libelle,width,height,unit";
|
||||||
$tabfieldvalue[16]= "code,libelle,sortorder";
|
$tabfieldvalue[16]= "code,libelle,sortorder";
|
||||||
@ -316,7 +316,7 @@ $tabfieldvalue[21]= "code,label";
|
|||||||
$tabfieldvalue[22]= "code,label";
|
$tabfieldvalue[22]= "code,label";
|
||||||
$tabfieldvalue[23]= "country,taux,revenuestamp_type,accountancy_code_sell,accountancy_code_buy,note";
|
$tabfieldvalue[23]= "country,taux,revenuestamp_type,accountancy_code_sell,accountancy_code_buy,note";
|
||||||
$tabfieldvalue[24]= "code,label";
|
$tabfieldvalue[24]= "code,label";
|
||||||
//$tabfieldvalue[25]= "label,type_template,private,position,topic,content_lines,content";
|
$tabfieldvalue[25]= "code,label";
|
||||||
$tabfieldvalue[26]= "code,label,short_label";
|
$tabfieldvalue[26]= "code,label,short_label";
|
||||||
$tabfieldvalue[27]= "code,libelle";
|
$tabfieldvalue[27]= "code,libelle";
|
||||||
$tabfieldvalue[28]= "code,label,affect,delay,newbymonth,country";
|
$tabfieldvalue[28]= "code,label,affect,delay,newbymonth,country";
|
||||||
@ -343,7 +343,7 @@ $tabfieldinsert[9] = "code_iso,label,unicode";
|
|||||||
$tabfieldinsert[10]= "fk_pays,code,taux,localtax1_type,localtax1,localtax2_type,localtax2,recuperableonly,accountancy_code_sell,accountancy_code_buy,note";
|
$tabfieldinsert[10]= "fk_pays,code,taux,localtax1_type,localtax1,localtax2_type,localtax2,recuperableonly,accountancy_code_sell,accountancy_code_buy,note";
|
||||||
$tabfieldinsert[11]= "element,source,code,libelle,position";
|
$tabfieldinsert[11]= "element,source,code,libelle,position";
|
||||||
$tabfieldinsert[12]= "code,libelle,libelle_facture,nbjour,type_cdr,decalage,sortorder,entity";
|
$tabfieldinsert[12]= "code,libelle,libelle_facture,nbjour,type_cdr,decalage,sortorder,entity";
|
||||||
$tabfieldinsert[13]= "code,libelle,type,accountancy_code,entity";
|
$tabfieldinsert[13]= "code,libelle,type,entity";
|
||||||
$tabfieldinsert[14]= "code,libelle,price,organization,fk_pays";
|
$tabfieldinsert[14]= "code,libelle,price,organization,fk_pays";
|
||||||
$tabfieldinsert[15]= "code,label,width,height,unit";
|
$tabfieldinsert[15]= "code,label,width,height,unit";
|
||||||
$tabfieldinsert[16]= "code,label,sortorder";
|
$tabfieldinsert[16]= "code,label,sortorder";
|
||||||
@ -355,7 +355,7 @@ $tabfieldinsert[21]= "code,label";
|
|||||||
$tabfieldinsert[22]= "code,label";
|
$tabfieldinsert[22]= "code,label";
|
||||||
$tabfieldinsert[23]= "fk_pays,taux,revenuestamp_type,accountancy_code_sell,accountancy_code_buy,note";
|
$tabfieldinsert[23]= "fk_pays,taux,revenuestamp_type,accountancy_code_sell,accountancy_code_buy,note";
|
||||||
$tabfieldinsert[24]= "code,label";
|
$tabfieldinsert[24]= "code,label";
|
||||||
//$tabfieldinsert[25]= "label,type_template,private,position,topic,content_lines,content,entity";
|
$tabfieldinsert[25]= "code,label";
|
||||||
$tabfieldinsert[26]= "code,label,short_label";
|
$tabfieldinsert[26]= "code,label,short_label";
|
||||||
$tabfieldinsert[27]= "code,libelle";
|
$tabfieldinsert[27]= "code,libelle";
|
||||||
$tabfieldinsert[28]= "code,label,affect,delay,newbymonth,fk_country";
|
$tabfieldinsert[28]= "code,label,affect,delay,newbymonth,fk_country";
|
||||||
@ -396,7 +396,7 @@ $tabrowid[21]= "rowid";
|
|||||||
$tabrowid[22]= "rowid";
|
$tabrowid[22]= "rowid";
|
||||||
$tabrowid[23]= "";
|
$tabrowid[23]= "";
|
||||||
$tabrowid[24]= "";
|
$tabrowid[24]= "";
|
||||||
//$tabrowid[25]= "";
|
$tabrowid[25]= "";
|
||||||
$tabrowid[26]= "";
|
$tabrowid[26]= "";
|
||||||
$tabrowid[27]= "id";
|
$tabrowid[27]= "id";
|
||||||
$tabrowid[28]= "";
|
$tabrowid[28]= "";
|
||||||
@ -435,7 +435,7 @@ $tabcond[21]= ! empty($conf->propal->enabled);
|
|||||||
$tabcond[22]= (! empty($conf->commande->enabled) || ! empty($conf->propal->enabled));
|
$tabcond[22]= (! empty($conf->commande->enabled) || ! empty($conf->propal->enabled));
|
||||||
$tabcond[23]= true;
|
$tabcond[23]= true;
|
||||||
$tabcond[24]= ! empty($conf->resource->enabled);
|
$tabcond[24]= ! empty($conf->resource->enabled);
|
||||||
//$tabcond[25]= true; // && ! empty($conf->global->MAIN_EMAIL_EDIT_TEMPLATE_FROM_DIC);
|
$tabcond[25]= ! empty($conf->website->enabled);
|
||||||
$tabcond[26]= ! empty($conf->product->enabled);
|
$tabcond[26]= ! empty($conf->product->enabled);
|
||||||
$tabcond[27]= ! empty($conf->societe->enabled);
|
$tabcond[27]= ! empty($conf->societe->enabled);
|
||||||
$tabcond[28]= ! empty($conf->holiday->enabled);
|
$tabcond[28]= ! empty($conf->holiday->enabled);
|
||||||
@ -474,7 +474,7 @@ $tabhelp[21] = array('code'=>$langs->trans("EnterAnyCode"));
|
|||||||
$tabhelp[22] = array('code'=>$langs->trans("EnterAnyCode"));
|
$tabhelp[22] = array('code'=>$langs->trans("EnterAnyCode"));
|
||||||
$tabhelp[23] = array('revenuestamp_type'=>'FixedOfPercent');
|
$tabhelp[23] = array('revenuestamp_type'=>'FixedOfPercent');
|
||||||
$tabhelp[24] = array('code'=>$langs->trans("EnterAnyCode"));
|
$tabhelp[24] = array('code'=>$langs->trans("EnterAnyCode"));
|
||||||
//$tabhelp[25] = array('topic'=>$langs->trans('SeeSubstitutionVars'),'content'=>$langs->trans('SeeSubstitutionVars'),'content_lines'=>$langs->trans('SeeSubstitutionVars'),'type_template'=>$langs->trans("TemplateForElement"),'private'=>$langs->trans("TemplateIsVisibleByOwnerOnly"), 'position'=>$langs->trans("PositionIntoComboList"));
|
$tabhelp[25] = array('code'=>$langs->trans('EnterAnyCode'));
|
||||||
$tabhelp[26] = array('code'=>$langs->trans("EnterAnyCode"));
|
$tabhelp[26] = array('code'=>$langs->trans("EnterAnyCode"));
|
||||||
$tabhelp[27] = array('code'=>$langs->trans("EnterAnyCode"));
|
$tabhelp[27] = array('code'=>$langs->trans("EnterAnyCode"));
|
||||||
$tabhelp[28] = array('affect'=>$langs->trans("FollowedByACounter"),'delay'=>$langs->trans("MinimumNoticePeriod"), 'newbymonth'=>$langs->trans("NbAddedAutomatically"));
|
$tabhelp[28] = array('affect'=>$langs->trans("FollowedByACounter"),'delay'=>$langs->trans("MinimumNoticePeriod"), 'newbymonth'=>$langs->trans("NbAddedAutomatically"));
|
||||||
@ -513,7 +513,7 @@ $tabfieldcheck[21] = array();
|
|||||||
$tabfieldcheck[22] = array();
|
$tabfieldcheck[22] = array();
|
||||||
$tabfieldcheck[23] = array();
|
$tabfieldcheck[23] = array();
|
||||||
$tabfieldcheck[24] = array();
|
$tabfieldcheck[24] = array();
|
||||||
//$tabfieldcheck[25] = array();
|
$tabfieldcheck[25] = array();
|
||||||
$tabfieldcheck[26] = array();
|
$tabfieldcheck[26] = array();
|
||||||
$tabfieldcheck[27] = array();
|
$tabfieldcheck[27] = array();
|
||||||
$tabfieldcheck[28] = array();
|
$tabfieldcheck[28] = array();
|
||||||
@ -1072,8 +1072,7 @@ if ($id)
|
|||||||
if ($fieldlist[$field]=='code') { $valuetoshow=$langs->trans("Code"); $class='width100'; }
|
if ($fieldlist[$field]=='code') { $valuetoshow=$langs->trans("Code"); $class='width100'; }
|
||||||
if ($fieldlist[$field]=='libelle' || $fieldlist[$field]=='label')
|
if ($fieldlist[$field]=='libelle' || $fieldlist[$field]=='label')
|
||||||
{
|
{
|
||||||
if ($id != 25) $valuetoshow=$form->textwithtooltip($langs->trans("Label"), $langs->trans("LabelUsedByDefault"),2,1,img_help(1,''));
|
$valuetoshow=$form->textwithtooltip($langs->trans("Label"), $langs->trans("LabelUsedByDefault"),2,1,img_help(1,''));
|
||||||
else $valuetoshow=$langs->trans("Label");
|
|
||||||
}
|
}
|
||||||
if ($fieldlist[$field]=='libelle_facture') {
|
if ($fieldlist[$field]=='libelle_facture') {
|
||||||
$valuetoshow=$form->textwithtooltip($langs->trans("LabelOnDocuments"), $langs->trans("LabelUsedByDefault"),2,1,img_help(1,''));
|
$valuetoshow=$form->textwithtooltip($langs->trans("LabelOnDocuments"), $langs->trans("LabelUsedByDefault"),2,1,img_help(1,''));
|
||||||
@ -1298,12 +1297,7 @@ if ($id)
|
|||||||
if ($fieldlist[$field]=='type') { $valuetoshow=$langs->trans("Type"); }
|
if ($fieldlist[$field]=='type') { $valuetoshow=$langs->trans("Type"); }
|
||||||
if ($fieldlist[$field]=='code') { $valuetoshow=$langs->trans("Code"); }
|
if ($fieldlist[$field]=='code') { $valuetoshow=$langs->trans("Code"); }
|
||||||
if ($fieldlist[$field]=='position') { $align='right'; }
|
if ($fieldlist[$field]=='position') { $align='right'; }
|
||||||
if ($fieldlist[$field]=='libelle' || $fieldlist[$field]=='label')
|
if ($fieldlist[$field]=='libelle' || $fieldlist[$field]=='label') { $valuetoshow=$langs->trans("Label"); }
|
||||||
{
|
|
||||||
//if ($id != 25) $valuetoshow=$form->textwithtooltip($langs->trans("Label"), $langs->trans("LabelUsedByDefault"),2,1,img_help(1,''));
|
|
||||||
//else $valuetoshow=$langs->trans("Label");
|
|
||||||
$valuetoshow=$langs->trans("Label");
|
|
||||||
}
|
|
||||||
if ($fieldlist[$field]=='libelle_facture') {
|
if ($fieldlist[$field]=='libelle_facture') {
|
||||||
//$valuetoshow=$form->textwithtooltip($langs->trans("LabelOnDocuments"), $langs->trans("LabelUsedByDefault"),2,1,img_help(1,''));
|
//$valuetoshow=$form->textwithtooltip($langs->trans("LabelOnDocuments"), $langs->trans("LabelUsedByDefault"),2,1,img_help(1,''));
|
||||||
$valuetoshow=$langs->trans("LabelOnDocuments");
|
$valuetoshow=$langs->trans("LabelOnDocuments");
|
||||||
|
|||||||
@ -69,7 +69,7 @@ if (preg_match('/del_(.*)/',$action,$reg))
|
|||||||
$help_url='';
|
$help_url='';
|
||||||
llxHeader('',$langs->trans("ECMSetup"),$help_url);
|
llxHeader('',$langs->trans("ECMSetup"),$help_url);
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("ECMSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("ECMSetup"),$linkback,'title_setup');
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
|
|||||||
@ -73,7 +73,7 @@ if ($action == "save")
|
|||||||
$wikihelp='EN:Setup_Security|FR:Paramétrage_Sécurité|ES:Configuración_Seguridad';
|
$wikihelp='EN:Setup_Security|FR:Paramétrage_Sécurité|ES:Configuración_Seguridad';
|
||||||
llxHeader('',$langs->trans("Audit"),$wikihelp);
|
llxHeader('',$langs->trans("Audit"),$wikihelp);
|
||||||
|
|
||||||
//$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
//$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("SecuritySetup"),'','title_setup');
|
print load_fiche_titre($langs->trans("SecuritySetup"),'','title_setup');
|
||||||
|
|
||||||
print $langs->trans("LogEventDesc")."<br>\n";
|
print $langs->trans("LogEventDesc")."<br>\n";
|
||||||
|
|||||||
@ -194,7 +194,7 @@ $form=new Form($db);
|
|||||||
|
|
||||||
llxHeader("",$langs->trans("SendingsSetup"));
|
llxHeader("",$langs->trans("SendingsSetup"));
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("SendingsSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("SendingsSetup"),$linkback,'title_setup');
|
||||||
print '<br>';
|
print '<br>';
|
||||||
$head = expedition_admin_prepare_head();
|
$head = expedition_admin_prepare_head();
|
||||||
|
|||||||
@ -72,7 +72,7 @@ $textobject=$langs->transnoentitiesnoconv("Sendings");
|
|||||||
|
|
||||||
llxHeader('',$langs->trans("SendingsSetup"));
|
llxHeader('',$langs->trans("SendingsSetup"));
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("SendingsSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("SendingsSetup"),$linkback,'title_setup');
|
||||||
print "<br>\n";
|
print "<br>\n";
|
||||||
|
|
||||||
|
|||||||
@ -72,7 +72,7 @@ $textobject=$langs->transnoentitiesnoconv("Sendings");
|
|||||||
|
|
||||||
llxHeader('',$langs->trans("SendingsSetup"));
|
llxHeader('',$langs->trans("SendingsSetup"));
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("SendingsSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("SendingsSetup"),$linkback,'title_setup');
|
||||||
print "<br>\n";
|
print "<br>\n";
|
||||||
|
|
||||||
|
|||||||
@ -199,7 +199,7 @@ llxHeader();
|
|||||||
|
|
||||||
$form=new Form($db);
|
$form=new Form($db);
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("ExpenseReportsSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("ExpenseReportsSetup"),$linkback,'title_setup');
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -69,7 +69,7 @@ $textobject=$langs->transnoentitiesnoconv("expensereports");
|
|||||||
|
|
||||||
llxHeader('',$langs->trans("expensereportsSetup"));
|
llxHeader('',$langs->trans("expensereportsSetup"));
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("ExpenseReportsSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("ExpenseReportsSetup"),$linkback,'title_setup');
|
||||||
|
|
||||||
$head = expensereport_admin_prepare_head();
|
$head = expensereport_admin_prepare_head();
|
||||||
|
|||||||
@ -93,7 +93,7 @@ llxHeader();
|
|||||||
|
|
||||||
$form=new Form($db);
|
$form=new Form($db);
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("ExpenseReportsIkSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("ExpenseReportsIkSetup"),$linkback,'title_setup');
|
||||||
|
|
||||||
$head=expensereport_admin_prepare_head();
|
$head=expensereport_admin_prepare_head();
|
||||||
|
|||||||
@ -149,7 +149,7 @@ llxHeader();
|
|||||||
|
|
||||||
$form=new Form($db);
|
$form=new Form($db);
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("ExpenseReportsRulesSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("ExpenseReportsRulesSetup"),$linkback,'title_setup');
|
||||||
|
|
||||||
$head=expensereport_admin_prepare_head();
|
$head=expensereport_admin_prepare_head();
|
||||||
|
|||||||
103
htdocs/admin/export.php
Normal file
103
htdocs/admin/export.php
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
<?php
|
||||||
|
/* Copyright (C) 2003-2008 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
|
* Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
|
* Copyright (C) 2004 Sebastien Di Cintio <sdicintio@ressource-toi.org>
|
||||||
|
* Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
|
||||||
|
* Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com>
|
||||||
|
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com>
|
||||||
|
* Copyright (C) 2011-2012 Juanjo Menent <jmenent@2byte.es>
|
||||||
|
* Copyright (C) 2011-2015 Philippe Grand <philippe.grand@atoo-net.com>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file htdocs/admin/expedition.php
|
||||||
|
* \ingroup expedition
|
||||||
|
* \brief Page d'administration/configuration du module Expedition
|
||||||
|
*/
|
||||||
|
|
||||||
|
require '../main.inc.php';
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
|
||||||
|
|
||||||
|
|
||||||
|
$langs->load("admin");
|
||||||
|
$langs->load("exports");
|
||||||
|
|
||||||
|
$langs->load('other');
|
||||||
|
|
||||||
|
if (! $user->admin)
|
||||||
|
accessforbidden();
|
||||||
|
|
||||||
|
$action=GETPOST('action','alpha');
|
||||||
|
$value=GETPOST('value','alpha');
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Actions
|
||||||
|
*/
|
||||||
|
|
||||||
|
include DOL_DOCUMENT_ROOT.'/core/actions_setmoduleoptions.inc.php';
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* View
|
||||||
|
*/
|
||||||
|
|
||||||
|
$page_name = "ExportSetup";
|
||||||
|
llxHeader('', $langs->trans($page_name));
|
||||||
|
|
||||||
|
// Subheader
|
||||||
|
$linkback = '<a href="' . DOL_URL_ROOT . '/admin/modules.php">'
|
||||||
|
. $langs->trans("BackToModuleList") . '</a>';
|
||||||
|
print_fiche_titre($langs->trans($page_name), $linkback);
|
||||||
|
|
||||||
|
// Configuration header
|
||||||
|
|
||||||
|
dol_fiche_head(
|
||||||
|
$head,
|
||||||
|
'settings',
|
||||||
|
$langs->trans("ExportsArea"),
|
||||||
|
0,
|
||||||
|
"exports"
|
||||||
|
);
|
||||||
|
|
||||||
|
// Setup page goes here
|
||||||
|
$form=new Form($db);
|
||||||
|
$var=false;
|
||||||
|
print '<table class="noborder" width="100%">';
|
||||||
|
print '<tr class="liste_titre">';
|
||||||
|
print '<td>'.$langs->trans("ExportModel").'</td>'."\n";
|
||||||
|
print '<td align="center" width="20"> </td>';
|
||||||
|
print '<td align="center" width="100"></td>'."\n";
|
||||||
|
|
||||||
|
|
||||||
|
// Example with a yes / no select
|
||||||
|
$var=!$var;
|
||||||
|
print '<tr '.$bc[$var].'>';
|
||||||
|
print '<td>'.$langs->trans("set_EXPORTS_SHARE_MODELS").'</td>';
|
||||||
|
print '<td align="center" width="20"> </td>';
|
||||||
|
print '<td align="center" width="100">';
|
||||||
|
print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
|
||||||
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||||
|
print '<input type="hidden" name="action" value="set_EXPORTS_SHARE_MODELS">';
|
||||||
|
echo ajax_constantonoff('EXPORTS_SHARE_MODELS');
|
||||||
|
print '</form>';
|
||||||
|
print '</td></tr>';
|
||||||
|
|
||||||
|
|
||||||
|
print '</table>';
|
||||||
|
|
||||||
|
llxFooter();
|
||||||
|
|
||||||
|
$db->close();
|
||||||
@ -191,7 +191,7 @@ if ($_POST["delete"])
|
|||||||
|
|
||||||
llxHeader('',$langs->trans("ExternalRSSSetup"));
|
llxHeader('',$langs->trans("ExternalRSSSetup"));
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("ExternalRSSSetup"), $linkback, 'title_setup');
|
print load_fiche_titre($langs->trans("ExternalRSSSetup"), $linkback, 'title_setup');
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
|
|||||||
@ -253,7 +253,7 @@ llxHeader("",$langs->trans("BillsSetup"),'EN:Invoice_Configuration|FR:Configurat
|
|||||||
$form=new Form($db);
|
$form=new Form($db);
|
||||||
|
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("BillsSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("BillsSetup"),$linkback,'title_setup');
|
||||||
|
|
||||||
$head = invoice_admin_prepare_head();
|
$head = invoice_admin_prepare_head();
|
||||||
|
|||||||
@ -135,7 +135,7 @@ if (GETPOST('save','alpha'))
|
|||||||
|
|
||||||
llxHeader();
|
llxHeader();
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("AdvancedEditor"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("AdvancedEditor"),$linkback,'title_setup');
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
|
|||||||
@ -263,7 +263,7 @@ llxHeader();
|
|||||||
|
|
||||||
$form=new Form($db);
|
$form=new Form($db);
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("InterventionsSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("InterventionsSetup"),$linkback,'title_setup');
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -75,7 +75,7 @@ $form=new Form($db);
|
|||||||
|
|
||||||
llxHeader();
|
llxHeader();
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("GeoIPMaxmindSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("GeoIPMaxmindSetup"),$linkback,'title_setup');
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
|
|||||||
@ -89,7 +89,7 @@ if (empty($reshook))
|
|||||||
|
|
||||||
llxHeader('',$langs->trans("LDAPSetup"),'EN:Module_LDAP_En|FR:Module_LDAP|ES:Módulo_LDAP');
|
llxHeader('',$langs->trans("LDAPSetup"),'EN:Module_LDAP_En|FR:Module_LDAP|ES:Módulo_LDAP');
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
|
|
||||||
print load_fiche_titre($langs->trans("LDAPSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("LDAPSetup"),$linkback,'title_setup');
|
||||||
|
|
||||||
|
|||||||
@ -95,7 +95,7 @@ if ($action == 'setvalue' && $user->admin)
|
|||||||
$form=new Form($db);
|
$form=new Form($db);
|
||||||
|
|
||||||
llxHeader('',$langs->trans("LDAPSetup"),'EN:Module_LDAP_En|FR:Module_LDAP|ES:Módulo_LDAP');
|
llxHeader('',$langs->trans("LDAPSetup"),'EN:Module_LDAP_En|FR:Module_LDAP|ES:Módulo_LDAP');
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
|
|
||||||
print load_fiche_titre($langs->trans("LDAPSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("LDAPSetup"),$linkback,'title_setup');
|
||||||
|
|
||||||
|
|||||||
@ -84,7 +84,7 @@ if ($action == 'setvalue' && $user->admin)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
llxHeader('',$langs->trans("LDAPSetup"),'EN:Module_LDAP_En|FR:Module_LDAP|ES:Módulo_LDAP');
|
llxHeader('',$langs->trans("LDAPSetup"),'EN:Module_LDAP_En|FR:Module_LDAP|ES:Módulo_LDAP');
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
|
|
||||||
print load_fiche_titre($langs->trans("LDAPSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("LDAPSetup"),$linkback,'title_setup');
|
||||||
|
|
||||||
|
|||||||
@ -112,7 +112,7 @@ if ($action == 'setvalue' && $user->admin)
|
|||||||
$form=new Form($db);
|
$form=new Form($db);
|
||||||
|
|
||||||
llxHeader('',$langs->trans("LDAPSetup"),'EN:Module_LDAP_En|FR:Module_LDAP|ES:Módulo_LDAP');
|
llxHeader('',$langs->trans("LDAPSetup"),'EN:Module_LDAP_En|FR:Module_LDAP|ES:Módulo_LDAP');
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
|
|
||||||
print load_fiche_titre($langs->trans("LDAPSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("LDAPSetup"),$linkback,'title_setup');
|
||||||
|
|
||||||
|
|||||||
@ -83,7 +83,7 @@ if ($action == 'setvalue' && $user->admin)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
llxHeader('',$langs->trans("LDAPSetup"),'EN:Module_LDAP_En|FR:Module_LDAP|ES:Módulo_LDAP');
|
llxHeader('',$langs->trans("LDAPSetup"),'EN:Module_LDAP_En|FR:Module_LDAP|ES:Módulo_LDAP');
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
|
|
||||||
print load_fiche_titre($langs->trans("LDAPSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("LDAPSetup"),$linkback,'title_setup');
|
||||||
|
|
||||||
|
|||||||
@ -101,7 +101,7 @@ if ($action == 'setvalue' && $user->admin)
|
|||||||
$form=new Form($db);
|
$form=new Form($db);
|
||||||
|
|
||||||
llxHeader('',$langs->trans("LDAPSetup"),'EN:Module_LDAP_En|FR:Module_LDAP|ES:Módulo_LDAP');
|
llxHeader('',$langs->trans("LDAPSetup"),'EN:Module_LDAP_En|FR:Module_LDAP|ES:Módulo_LDAP');
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
|
|
||||||
print load_fiche_titre($langs->trans("LDAPSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("LDAPSetup"),$linkback,'title_setup');
|
||||||
|
|
||||||
|
|||||||
@ -184,7 +184,7 @@ llxHeader("","");
|
|||||||
|
|
||||||
$form=new Form($db);
|
$form=new Form($db);
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("SendingsSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("SendingsSetup"),$linkback,'title_setup');
|
||||||
print '<br>';
|
print '<br>';
|
||||||
$head = expedition_admin_prepare_head();
|
$head = expedition_admin_prepare_head();
|
||||||
|
|||||||
@ -72,7 +72,7 @@ $textobject=$langs->transnoentitiesnoconv("Receivings");
|
|||||||
|
|
||||||
llxHeader('',$langs->trans("SendingsSetup"));
|
llxHeader('',$langs->trans("SendingsSetup"));
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("SendingsSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("SendingsSetup"),$linkback,'title_setup');
|
||||||
print "<br>\n";
|
print "<br>\n";
|
||||||
|
|
||||||
|
|||||||
@ -72,7 +72,7 @@ $textobject=$langs->transnoentitiesnoconv("Receivings");
|
|||||||
|
|
||||||
llxHeader('',$langs->trans("SendingsSetup"));
|
llxHeader('',$langs->trans("SendingsSetup"));
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("SendingsSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("SendingsSetup"),$linkback,'title_setup');
|
||||||
print "<br>\n";
|
print "<br>\n";
|
||||||
|
|
||||||
|
|||||||
@ -79,7 +79,7 @@ llxHeader();
|
|||||||
$form = new Form($db);
|
$form = new Form($db);
|
||||||
if (! empty($conf->accounting->enabled)) $formaccounting = new FormAccounting($db);
|
if (! empty($conf->accounting->enabled)) $formaccounting = new FormAccounting($db);
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans('ConfigLoan'),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans('ConfigLoan'),$linkback,'title_setup');
|
||||||
|
|
||||||
print '<form action="'.$_SERVER["PHP_SELF"].'" method="post">';
|
print '<form action="'.$_SERVER["PHP_SELF"].'" method="post">';
|
||||||
|
|||||||
@ -80,7 +80,7 @@ if ($action == 'setvalue')
|
|||||||
|
|
||||||
llxHeader('',$langs->trans("MailingSetup"));
|
llxHeader('',$langs->trans("MailingSetup"));
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("MailingSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("MailingSetup"),$linkback,'title_setup');
|
||||||
|
|
||||||
if (! empty($conf->use_javascript_ajax))
|
if (! empty($conf->use_javascript_ajax))
|
||||||
|
|||||||
@ -151,7 +151,7 @@ $help_url='';
|
|||||||
llxHeader('',$langs->trans("MailmanSpipSetup"),$help_url);
|
llxHeader('',$langs->trans("MailmanSpipSetup"),$help_url);
|
||||||
|
|
||||||
|
|
||||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>';
|
||||||
print load_fiche_titre($langs->trans("MailmanSpipSetup"),$linkback,'title_setup');
|
print load_fiche_titre($langs->trans("MailmanSpipSetup"),$linkback,'title_setup');
|
||||||
|
|
||||||
$head = mailmanspip_admin_prepare_head();
|
$head = mailmanspip_admin_prepare_head();
|
||||||
|
|||||||
@ -70,6 +70,7 @@ complete_substitutions_array($substitutionarrayfortest, $langs);
|
|||||||
if ($action == 'update' && empty($_POST["cancel"]))
|
if ($action == 'update' && empty($_POST["cancel"]))
|
||||||
{
|
{
|
||||||
dolibarr_set_const($db, "MAIN_DISABLE_ALL_MAILS", GETPOST("MAIN_DISABLE_ALL_MAILS"),'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_DISABLE_ALL_MAILS", GETPOST("MAIN_DISABLE_ALL_MAILS"),'chaine',0,'',$conf->entity);
|
||||||
|
dolibarr_set_const($db, "MAIN_MAIL_FORCE_SENDTO", GETPOST("MAIN_MAIL_FORCE_SENDTO"),'chaine',0,'',$conf->entity);
|
||||||
// Send mode parameters
|
// Send mode parameters
|
||||||
dolibarr_set_const($db, "MAIN_MAIL_SENDMODE", GETPOST("MAIN_MAIL_SENDMODE"),'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_MAIL_SENDMODE", GETPOST("MAIN_MAIL_SENDMODE"),'chaine',0,'',$conf->entity);
|
||||||
dolibarr_set_const($db, "MAIN_MAIL_SMTP_PORT", GETPOST("MAIN_MAIL_SMTP_PORT"),'chaine',0,'',$conf->entity);
|
dolibarr_set_const($db, "MAIN_MAIL_SMTP_PORT", GETPOST("MAIN_MAIL_SMTP_PORT"),'chaine',0,'',$conf->entity);
|
||||||
@ -239,6 +240,11 @@ if ($action == 'edit')
|
|||||||
print $form->selectyesno('MAIN_DISABLE_ALL_MAILS',$conf->global->MAIN_DISABLE_ALL_MAILS,1);
|
print $form->selectyesno('MAIN_DISABLE_ALL_MAILS',$conf->global->MAIN_DISABLE_ALL_MAILS,1);
|
||||||
print '</td></tr>';
|
print '</td></tr>';
|
||||||
|
|
||||||
|
// Force e-mail recipient
|
||||||
|
print '<tr class="oddeven"><td>'.$langs->trans("MAIN_MAIL_FORCE_SENDTO").'</td><td>';
|
||||||
|
print '<input class="flat" name="MAIN_MAIL_FORCE_SENDTO" size="32" value="' . (! empty($conf->global->MAIN_MAIL_FORCE_SENDTO)?$conf->global->MAIN_MAIL_FORCE_SENDTO:'') . '" />';
|
||||||
|
print '</td></tr>';
|
||||||
|
|
||||||
// Separator
|
// Separator
|
||||||
|
|
||||||
print '<tr class="oddeven"><td colspan="2"> </td></tr>';
|
print '<tr class="oddeven"><td colspan="2"> </td></tr>';
|
||||||
@ -478,6 +484,11 @@ else
|
|||||||
|
|
||||||
print '<tr class="oddeven"><td>'.$langs->trans("MAIN_DISABLE_ALL_MAILS").'</td><td>'.yn($conf->global->MAIN_DISABLE_ALL_MAILS).'</td></tr>';
|
print '<tr class="oddeven"><td>'.$langs->trans("MAIN_DISABLE_ALL_MAILS").'</td><td>'.yn($conf->global->MAIN_DISABLE_ALL_MAILS).'</td></tr>';
|
||||||
|
|
||||||
|
// Force e-mail recipient
|
||||||
|
print '<tr class="oddeven"><td>'.$langs->trans("MAIN_MAIL_FORCE_SENDTO").'</td><td>'.$conf->global->MAIN_MAIL_FORCE_SENDTO;
|
||||||
|
if (! empty($conf->global->MAIN_MAIL_FORCE_SENDTO) && ! isValidEmail($conf->global->MAIN_MAIL_FORCE_SENDTO)) print img_warning($langs->trans("ErrorBadEMail"));
|
||||||
|
print '</td></tr>';
|
||||||
|
|
||||||
// Separator
|
// Separator
|
||||||
|
|
||||||
print '<tr class="oddeven"><td colspan="2"> </td></tr>';
|
print '<tr class="oddeven"><td colspan="2"> </td></tr>';
|
||||||
@ -644,25 +655,7 @@ else
|
|||||||
dol_fiche_end();
|
dol_fiche_end();
|
||||||
|
|
||||||
|
|
||||||
if ($conf->global->MAIN_MAIL_SENDMODE == 'mail' && empty($conf->global->MAIN_FIX_FOR_BUGGED_MTA))
|
// Actions button
|
||||||
{
|
|
||||||
print '<br>';
|
|
||||||
/*
|
|
||||||
// Warning 1
|
|
||||||
if ($linuxlike)
|
|
||||||
{
|
|
||||||
$sendmailoption=ini_get('mail.force_extra_parameters');
|
|
||||||
if (empty($sendmailoption) || ! preg_match('/ba/',$sendmailoption))
|
|
||||||
{
|
|
||||||
print info_admin($langs->trans("SendmailOptionNotComplete"));
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
// Warning 2
|
|
||||||
print info_admin($langs->trans("SendmailOptionMayHurtBuggedMTA"));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Boutons actions
|
|
||||||
print '<div class="tabsAction">';
|
print '<div class="tabsAction">';
|
||||||
|
|
||||||
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=edit">'.$langs->trans("Modify").'</a>';
|
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=edit">'.$langs->trans("Modify").'</a>';
|
||||||
@ -689,10 +682,35 @@ else
|
|||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
|
|
||||||
if ($conf->global->MAIN_MAIL_SENDMODE == 'mail' && ! in_array($action, array('testconnect', 'test', 'testhtml')))
|
if ($conf->global->MAIN_MAIL_SENDMODE == 'mail' && empty($conf->global->MAIN_FIX_FOR_BUGGED_MTA))
|
||||||
{
|
{
|
||||||
$text = $langs->trans("WarningPHPMail");
|
/*
|
||||||
print info_admin($text);
|
// Warning 1
|
||||||
|
if ($linuxlike)
|
||||||
|
{
|
||||||
|
$sendmailoption=ini_get('mail.force_extra_parameters');
|
||||||
|
if (empty($sendmailoption) || ! preg_match('/ba/',$sendmailoption))
|
||||||
|
{
|
||||||
|
print info_admin($langs->trans("SendmailOptionNotComplete"));
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
// Warning 2
|
||||||
|
print info_admin($langs->trans("SendmailOptionMayHurtBuggedMTA"));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! in_array($action, array('testconnect', 'test', 'testhtml')))
|
||||||
|
{
|
||||||
|
$text = '';
|
||||||
|
if ($conf->global->MAIN_MAIL_SENDMODE == 'mail')
|
||||||
|
{
|
||||||
|
$text.= $langs->trans("WarningPHPMail");
|
||||||
|
}
|
||||||
|
//$conf->global->MAIN_EXTERNAL_SMTP_CLIENT_IP_ADDRESS='1.2.3.4';
|
||||||
|
if (! empty($conf->global->MAIN_EXTERNAL_SMTP_CLIENT_IP_ADDRESS))
|
||||||
|
{
|
||||||
|
$text.= ($text?'<br>':'').$langs->trans("WarningPHPMail2", $conf->global->MAIN_EXTERNAL_SMTP_CLIENT_IP_ADDRESS);
|
||||||
|
}
|
||||||
|
if ($text) print info_admin($text);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Run the test to connect
|
// Run the test to connect
|
||||||
|
|||||||
@ -507,11 +507,12 @@ print '</form>'."\n";
|
|||||||
|
|
||||||
if (in_array('builddoc',$arrayofmassactions) && ($nbtotalofrecords === '' || $nbtotalofrecords))
|
if (in_array('builddoc',$arrayofmassactions) && ($nbtotalofrecords === '' || $nbtotalofrecords))
|
||||||
{
|
{
|
||||||
if ($massaction == 'builddoc' || $action == 'remove_file' || $show_files)
|
|
||||||
{
|
|
||||||
require_once(DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php');
|
require_once(DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php');
|
||||||
$formfile = new FormFile($db);
|
$formfile = new FormFile($db);
|
||||||
|
|
||||||
|
$hidegeneratedfilelistifempty=1;
|
||||||
|
if ($massaction == 'builddoc' || $action == 'remove_file' || $show_files) $hidegeneratedfilelistifempty=0;
|
||||||
|
|
||||||
// Show list of available documents
|
// Show list of available documents
|
||||||
$urlsource=$_SERVER['PHP_SELF'].'?sortfield='.$sortfield.'&sortorder='.$sortorder;
|
$urlsource=$_SERVER['PHP_SELF'].'?sortfield='.$sortfield.'&sortorder='.$sortorder;
|
||||||
$urlsource.=str_replace('&','&',$param);
|
$urlsource.=str_replace('&','&',$param);
|
||||||
@ -520,12 +521,7 @@ if (in_array('builddoc',$arrayofmassactions) && ($nbtotalofrecords === '' || $nb
|
|||||||
$genallowed=$user->rights->monmodule->read;
|
$genallowed=$user->rights->monmodule->read;
|
||||||
$delallowed=$user->rights->monmodule->create;
|
$delallowed=$user->rights->monmodule->create;
|
||||||
|
|
||||||
print $formfile->showdocuments('massfilesarea_monmodule','',$filedir,$urlsource,0,$delallowed,'',1,1,0,48,1,$param,$title,'');
|
print $formfile->showdocuments('massfilesarea_monmodule','',$filedir,$urlsource,0,$delallowed,'',1,1,0,48,1,$param,$title,'','','',null,$hidegeneratedfilelistifempty);
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
print '<br><a name="show_files"></a><a href="'.$_SERVER["PHP_SELF"].'?show_files=1'.$param.'#show_files">'.$langs->trans("ShowTempMassFilesArea").'</a>';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dol_fiche_end();
|
dol_fiche_end();
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user