2
0
forked from Wavyzz/dolibarr

Compare commits

..

529 Commits
16.0.0 ... 14.0

Author SHA1 Message Date
lvessiller-opendsi
50afc9682b FIX create invoice from order using API and multi-entity (#35654)
* FIX create invoice from order using API and multi-entity

* FIX API not allow to access order in other entity on creating invoice from order

* Update api_invoices.class.php

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2025-10-06 13:56:50 +02:00
lvessiller-opendsi
bcf6d6a7a2 FIX api orders : forward database error on failure (backpot commit d9e81cb) (#35478) 2025-09-25 11:47:51 +02:00
lvessiller-opendsi
e818bf732d FIX extra field list depend on parent list when editing a card (#35165) 2025-09-01 19:55:00 +02:00
POTIER Mathieu
18725aec6b [FIX] loop interrupt if an error occurs in sendEmailsRemindersOnInvoiceDueDate (#34657) 2025-06-28 16:45:52 +02:00
ThomasNgr-OpenDSI
7fa3474ecd FIX : constant PAYMENTBYBANKTRANSFER_ADDDAYS was never saved (#33799) 2025-04-09 15:44:51 +02:00
ldestailleur
d81a2d060e Merge branch '13.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2025-03-14 11:27:49 +01:00
Eric - CAP-REL
97aaff7395 13.0 fix migration missing tms auto update (#33443)
* tms field in llx_product is not updated to default timestamp

* but that's not the only one ...
2025-03-13 23:01:52 +01:00
Laurent Destailleur
b67fdb3e51 Merge pull request #32719 from Easya-Solutions/14.0_fix-supplier-order-linked-line-delete
FIX delete supplier order line when linked to customer order line
2025-01-20 15:13:22 +01:00
VESSILLER
ad60a50d4d Uniformize SQL concat char 2025-01-20 11:58:58 +01:00
VESSILLER
08a976fd85 FIX delete supplier order when at least one line linked to customer order line 2025-01-20 11:56:54 +01:00
VESSILLER
db47ce3bb1 FIX delete supplier order line when linked to customer order line 2025-01-20 11:33:24 +01:00
Laurent Destailleur
5354b54ec0 Merge pull request #32663 from Easya-Solutions/14_FIX_socpeopleassigned_update_event
Backport Fix bad management when inserting contacts of actioncomm
2025-01-15 14:40:07 +01:00
Laurent Destailleur
42d8591758 Merge pull request #32660 from Easya-Solutions/14_FIX_selectcontacts_param_update_event
FIX selectcontact is loading all contacts when update event
2025-01-15 14:35:32 +01:00
Laurent Destailleur
628189f57f Backport of #00e65eb
Fix bad management when inserting contacts of actioncomm
2025-01-15 11:00:05 +01:00
uvaldenaire-opendsi
748dcd0881 FIX selectcontact is loading all contacts if socid is empty and MAIN_ACTIONCOM_CAN_ADD_ANY_CONTACT is not set 2025-01-15 10:12:16 +01:00
Laurent Destailleur
7a7146c03d Merge pull request #32600 from Easya-Solutions/14_fix_selectcontacts_socid_param
fix selectcontacts  param
2025-01-10 12:03:36 +01:00
uvaldenaire-opendsi
0912b3b04f fix selectcontacts param 2025-01-09 15:09:38 +01:00
Laurent Destailleur
2dd81deb13 Merge pull request #32568 from atm-maxime/14.0
Fix : cron job user rights force reload
2025-01-07 21:29:15 +01:00
Maxime Kohlhaas
273ec857a3 Fix : cron job user rights force reload 2025-01-07 18:39:19 +01:00
Laurent Destailleur
2519278269 Merge pull request #32558 from Easya-Solutions/14_fix_join_soc_commerciaux
fix join societe_commerciaux in societe list
2025-01-07 15:54:42 +01:00
uvaldenaire-opendsi
74881ae251 fix join societe_commerciaux in societe list 2025-01-07 13:51:34 +01:00
alkaan
115323dec8 FIX : removes traces of <<<HEAD conflicts following the postponement of branch 13 modifications (#32014)
Co-authored-by: John Fleuret <john.fleuret@atgp.net>
2024-11-20 20:57:22 +01:00
Laurent Destailleur
753e5e535d Merge branch '13.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2024-11-19 12:47:14 +01:00
Mathieu Moulin
a602309e04 Fix user::load_previous_next_ref() with MULTICOMPANY_TRANSVERSE_MODE bad sql query (cartesian product replaced by INNER JOIN) (#31946) 2024-11-16 18:19:59 +01:00
Mathieu Moulin
f51935a258 Fix slow user card when many users in same group, disable loading of all other users (#31947) 2024-11-16 18:10:08 +01:00
thomas-Ngr
93f23fe452 ODF : fix : escape specials chars in IF ELSE ENDIF $key (#31796)
* ODF : fix : escape specials chars in IF ELSE ENDIF $key

* fix missing brackets

* add delimiter to preg_quote

---------

Co-authored-by: Brice Werry <bwerry@open-dsi.fr>
2024-11-13 16:18:08 +01:00
lvessiller-opendsi
8a55e2f6a4 FIX old copy not needed in supplier order create method (#31733) 2024-11-08 17:51:44 +01:00
lvessiller-opendsi
e0a3756c6e FIX update status on create supplier order for trigger (#31642) 2024-10-30 23:35:39 +01:00
Laurent Destailleur
910f7e8564 Merge branch '13.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2024-10-29 15:46:12 +01:00
Laurent Destailleur
7cf1a97673 Merge branch '12.0' of git@github.com:Dolibarr/dolibarr.git into 13.0 2024-10-29 15:44:55 +01:00
Laurent Destailleur
cf57e7e88b Merge 2024-10-29 15:44:25 +01:00
Laurent Destailleur
a186e16568 Backport fix for mysql 8 export 2024-10-29 15:32:54 +01:00
thomas-Ngr
70a453a5c2 FIX: substitutions THIRDPARTY_XXX are not available for actioncomm reminders (#31385) 2024-10-14 11:57:55 +02:00
thomas-Ngr
336d3ad8e5 finish fix (#31203) 2024-10-03 21:03:13 +02:00
thomas-Ngr
e71631abe0 fix : missing update for extrafields on holidays (#31256) 2024-10-03 19:33:33 +02:00
Laurent Destailleur
624493fb26 Merge branch '13.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2024-09-29 22:30:07 +02:00
Laurent Destailleur
6eddee9a78 Merge branch '12.0' of git@github.com:Dolibarr/dolibarr.git into 13.0 2024-09-29 22:29:19 +02:00
Laurent Destailleur
52138372ce Merge branch '12.0' of git@github.com:Dolibarr/dolibarr.git into 12.0 2024-09-29 22:27:54 +02:00
Laurent Destailleur
a27538f582 Merge branch '11.0' of git@github.com:Dolibarr/dolibarr.git into 12.0 2024-09-29 22:27:42 +02:00
Florian Mortgat
385927fe06 FIX: box_actions.php still uses fk_user_done which no longer exists (#31190)
Co-authored-by: FlorianMortgat <5845502+FlorianMortgat@users.noreply.github.com>
2024-09-29 22:18:18 +02:00
Laurent Destailleur
a621032643 Merge branch '11.0' of git@github.com:Dolibarr/dolibarr.git into 11.0 2024-09-29 19:28:05 +02:00
Laurent Destailleur
32646cb7f4 Merge branch '10.0' of git@github.com:Dolibarr/dolibarr.git into 11.0 2024-09-29 19:25:49 +02:00
Florian Mortgat
74b67eb6c6 FIX - use price() to display qty on a product's stats tab to avoid showing too many decimals when rounding errors are possible (#31165) 2024-09-29 15:57:05 +02:00
Laurent Destailleur
eef0d0bddb Merge branch '13.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2024-09-26 18:48:45 +02:00
Laurent Destailleur
c1889afd7b Merge remote-tracking branch 'origin/12.0' into 13.0 2024-09-26 18:47:39 +02:00
Laurent Destailleur
644f365455 Merge remote-tracking branch 'origin/11.0' into 12.0 2024-09-26 18:47:12 +02:00
Laurent Destailleur
667890247c Merge remote-tracking branch 'origin/10.0' into 11.0 2024-09-26 18:46:30 +02:00
Florian Mortgat
c727bbb530 FIX: when qty is not an integer, apply price() (#31138)
* FIX: when qty is not an integer, apply price() to avoid displaying precision errors if php.ini's precision settings are too high

* Apply eldy's suggestion to use price's parameters rather than a test
2024-09-26 18:41:41 +02:00
thomas-Ngr
bb40a43c5f FIX Add same security test whe nuploading files from API than from GUI (#31114)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2024-09-26 03:13:34 +02:00
thomas-Ngr
9f5ef68123 fix replenish with multicurrency (#30832)
* fix replenish

* Use multicurrency supplier price instead of recomputing from EUR supplier price
2024-09-05 16:01:31 +02:00
MaximilienR-easya
30f1d4f18b Backport fix from develop (#30421) 2024-07-20 18:24:01 +02:00
MaximilienR-easya
eca8735e22 Fix les lien de téléchargement de facture fournisseur sur la page vue d'ensemble des projets (#30349) 2024-07-13 18:13:32 +02:00
lvessiller-opendsi
c5bb1856c2 FIX modification date from label in accounting bookkeeping list (#30038) 2024-06-15 15:02:19 +02:00
Maxime Kohlhaas
040e9083da Fix : expense report reapproval email, wrong date format + missing parameter (#29874) 2024-06-07 23:56:14 +02:00
Laurent Destailleur
72a2a96063 Fix travis 2024-06-07 23:46:21 +02:00
Rémi Champlon
a3e7151633 fix restrictedArea on selectobject (#29882) 2024-06-07 16:20:25 +02:00
IC-Mathieu
f3460eae48 FIX REPLENISH MANY FOURN WHEN ORDER ALREADY CREATE (#29710) 2024-05-21 20:01:36 +02:00
Alban Durrheimer
a174922733 Fix translation of permissions only en_US after 6c521073ea (#29525) 2024-04-29 19:29:55 +02:00
Laurent Destailleur
50e9b4c9da Revert "Fix translation of permissions after 6c521073ea9215fb7baddca5e48345b2…" (#29506)
This reverts commit 35aa10a28f.
2024-04-27 04:28:03 +02:00
Alban Durrheimer
35aa10a28f Fix translation of permissions after 6c521073ea (#29477) 2024-04-27 04:22:18 +02:00
thomas-Ngr
5129454883 Backport : Fix VAT computation. Fix #28620 (#29493) 2024-04-27 03:45:13 +02:00
Laurent Destailleur
3723ae025f Merge branch '14.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2024-04-24 21:01:44 +02:00
Laurent Destailleur
2d971f3a05 Fix regression 2024-04-24 21:00:38 +02:00
Eric
c8ef530d52 note_private and note_public was forgotten too (#29440)
* note_private and note_public was forgotten

* sql error missing comma

* sql error missing comma for rang=
2024-04-24 15:11:27 +02:00
Laurent Destailleur
2768d80b9b FIX Regression #29340 2024-04-14 03:15:49 +02:00
Laurent Destailleur
459ff72732 FIX Regression #29340 2024-04-14 02:56:17 +02:00
Eric
2a93168d48 object tasks: priority is fetch but not updated and others... (#29340)
* priority is fetch but not updated and others...

* insert too
2024-04-14 00:52:01 +02:00
lvessiller-opendsi
22244a9d84 FIX supplier price duplicate entry on update supplier product ref (#29290)
* FIX supplier price duplicate entry on update supplier product ref

* Add ref_fourn_price_id in fetch method
2024-04-09 20:16:10 +02:00
Laurent Destailleur
5a6c6b0509 Merge branch '14.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2024-04-04 17:50:54 +02:00
Laurent Destailleur
87bee3fb8c SEC Merge pull request #29231 from hregis/fix_14_security
FIX avoid to delete "lock" and "unlock" files
2024-04-04 17:50:47 +02:00
Laurent Destailleur
b0055c502e Merge pull request #29231 from hregis/fix_14_security
FIX avoid to delete "lock" and "unlock" files
2024-04-04 16:50:08 +02:00
Regis Houssin
cb9a93d97e FIX syntax error (but same result) :-) 2024-04-04 16:32:24 +02:00
Regis Houssin
9e638ccc12 FIX avoid to delete "lock" and "unlock" files 2024-04-04 16:22:31 +02:00
Laurent Destailleur
efc96c8cf4 Merge pull request #28781 from rycks/14_fix_default_commercial_on_create_thirdpart
fix default current user as commercial for the thirdparty
2024-03-15 00:29:59 +01:00
Laurent Destailleur
7ecf1ac082 Merge 2024-03-14 23:43:25 +01:00
Laurent Destailleur
f61c837b41 Merge pull request #28833 from rycks/14_fix_login_autocorrect_on_smartphone
Fix autocorrect on login input field (smartphone)
2024-03-14 22:58:18 +01:00
Eric Seigne
1c9129497f autocomplete on 2024-03-14 12:36:01 +01:00
Eric Seigne
0903b4da87 disable auto correct login field on smartphone 2024-03-14 12:35:19 +01:00
Eric Seigne
71442efa03 remove check againts read access (and if that user create a thirdpart read access is implicit) 2024-03-13 12:19:01 +01:00
Eric Seigne
94dbde9cfd fix default current user as commercial for the thirdparty 2024-03-12 15:28:35 +01:00
ATM-NicolasV
4dcf98b9f7 fix entity in sql from RemoveFromGroup (#28682) 2024-03-07 15:55:07 +01:00
Laurent Destailleur
f7e8725406 Clean code 2024-02-22 00:12:33 +01:00
Saami PERDRIX
52646ee9f5 fix aperçu/dl fichier quand il est dans {userid}/temp (#27211) 2024-02-22 00:10:04 +01:00
Eric
6defdcd018 better fix with this->entity thanks to regis (#28331)
* better fix with this->entity thanks to regis

* Update fichinter.class.php

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2024-02-21 17:06:05 +01:00
Eric
75ad2e82fd fix entity if interventions are shared between entities (#28317) 2024-02-20 23:01:16 +01:00
MaximilienR-easya
05cf98fae8 Fix lost POST data when redirection after drag_n_drop an event inside the agenda (#28212) 2024-02-18 16:38:46 +01:00
Regis Houssin
1ef91d3a21 FIX avoid Unknown column 'pfp.ref_fourn' (#28145) 2024-02-15 16:47:07 +01:00
Eric
280ceef46b outputlangs must not be a string as default value like others generateDocument functions (#28132) 2024-02-12 17:55:32 +01:00
thomas-Ngr
6a8be838be 14.0 fix CVE 2024 23817 (#28090)
* FIX CVE-2024-23817

* FIX syntax error

---------

Co-authored-by: Regis Houssin <regis.houssin@inodbox.com>
2024-02-09 11:37:55 +01:00
Laurent Destailleur
662ab45037 Merge pull request #27904 from rycks/14.0_fix_zero_could_be_a_value_into_conf_global_key
fix #27883 : zero could be a value stored
2024-02-01 10:59:11 +01:00
Laurent Destailleur
356bb80676 Merge pull request #27903 from rycks/14.0_fix_datehour_to_datetime_comment
fix comment about datehour -> datetime
2024-01-30 23:47:44 +01:00
Eric Seigne
1f21e1a945 fix #27883 : zero could be a value stored 2024-01-30 21:42:57 +01:00
Eric Seigne
8d9ddf4a51 fix comment about datehour -> datetime 2024-01-30 21:35:19 +01:00
Laurent Destailleur
2f18dc1b9c Merge pull request #27834 from Easya-Solutions/14.0_takepos_display_errors_on_payment_error
Takepos : display errors on payment error
2024-01-28 12:44:37 +01:00
tnegre
9c638968ff Takepos : display errors on payment error 2024-01-26 16:23:24 +01:00
Laurent Destailleur
18b896f034 Merge pull request #27740 from MaximilienR-easya/14.0_Fix_expedition_filter
Fix expedition list filter on product category
2024-01-23 17:14:03 +01:00
mrozniecki
951535a3d5 Fix expedition list filter on product category 2024-01-23 09:36:15 +01:00
Laurent Destailleur
f3f6515c72 Merge pull request #27543 from rycks/14.0_end_fix_10417_custom_num_payment
end fix #10417 : custom payment number for supplier invoices
2024-01-15 19:36:08 +01:00
Eric Seigne
5a04b2393d end fix #10417 : custom payment number for supplier invoices 2024-01-15 18:43:17 +01:00
Laurent Destailleur
0dffaa53dd Fix doc 2024-01-02 14:45:49 +01:00
Laurent Destailleur
086da9f73f Merge branch '13.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2024-01-02 14:34:34 +01:00
Laurent Destailleur
adf9fcb290 Merge pull request #27205 from rycks/13.0_fix_multiple_autoloader_collision_with_restler
next fix for  #17665 : autoloader collision
2023-12-27 14:41:33 +01:00
Laurent Destailleur
46dc264654 Update dolibarr_changes.txt 2023-12-27 14:40:16 +01:00
Eric Seigne
23e39cb8b3 update changes 2023-12-22 11:05:17 +01:00
Eric Seigne
40329db2b2 next fix for #17665 : autoloader collision 2023-12-21 18:20:05 +01:00
Laurent Destailleur
0c2bcfa79e Merge branch '14.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2023-12-07 16:16:34 +01:00
Laurent Destailleur
ea7afeb007 Fix warning 2023-12-07 16:16:22 +01:00
Laurent Destailleur
61591d8094 Merge pull request #26976 from rycks/14.0_fix_create_bank_account_with_empty_solde_field
fix sql error in case of balance is empty
2023-12-06 15:52:53 +01:00
Eric Seigne
5601fab14f fix sql error in case of balance is empty 2023-12-05 10:41:02 +01:00
Laurent Destailleur
a79e016321 Merge pull request #26906 from rycks/14.0_fix_join_file_on_sendEmailsRemindersOnInvoiceDueDate
fix #26862 but on 14.0 where that bug was present
2023-12-02 12:42:59 +01:00
Eric Seigne
d6c97bd75e check if last_main_doc is not empty 2023-11-30 19:17:14 +01:00
Eric Seigne
951afdcb68 cleanup 2023-11-30 19:15:56 +01:00
Eric Seigne
7782ae4fd0 fix #26862 but on 14.0 where that bug was present 2023-11-30 19:12:26 +01:00
Laurent Destailleur
19450554b2 Merge branch '13.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2023-11-23 18:41:52 +01:00
Laurent Destailleur
887d0a5d01 Merge branch '12.0' of git@github.com:Dolibarr/dolibarr.git into 13.0 2023-11-23 18:41:18 +01:00
Laurent Destailleur
e2b5315e23 Merge branch '11.0' of git@github.com:Dolibarr/dolibarr.git into 12.0 2023-11-23 18:40:52 +01:00
Laurent Destailleur
2609f0dac5 Merge branch '13.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2023-11-23 18:40:29 +01:00
Alexandre SPANGARO
cc452f2136 FIX Accountancy - Possibility to write in bookkeeping expense report operation with some line not bound (#26545)
* FIX Accountancy - Possibility to write in bookkeeping expense report operation with some line not bound

* Update expensereportsjournal.php

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2023-11-12 22:16:47 +01:00
lvessiller-opendsi
785c85205b FIX substitute project variables in invoice documents (#26445)
* FIX substitute project variables in invoice documents

* Keep key to substitute if no link with project
2023-11-08 17:32:23 +01:00
Laurent Destailleur
05f42d1341 Fix phpcs 2023-11-08 11:15:23 +01:00
Pichi1966
7a7869aeb3 FIX # Bug Estimated Stock at date value in V14 (#26479)
In stockatdate page, the estimatedvalue is wrong. Backport of V17 solution as explained in #23782
2023-11-07 18:10:37 +01:00
Laurent Destailleur
e64d1f6e46 Fix phpcs 2023-11-06 00:16:26 +01:00
Laurent Destailleur
1a2e49cebe Merge branch '14.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2023-11-05 19:45:42 +01:00
Laurent Destailleur
51574768f4 Merge branch '12.0' of git@github.com:Dolibarr/dolibarr.git into 13.0 2023-11-05 19:40:07 +01:00
Laurent Destailleur
2462daf1ed Merge branch '12.0' of git@github.com:Dolibarr/dolibarr.git into 12.0 2023-11-05 19:36:01 +01:00
Laurent Destailleur
9c7381601f Backport or better module compatibility 2023-11-05 19:35:34 +01:00
Laurent Destailleur
35a25599e5 FIX Backport memory fix for fatal error when +100000 products 2023-11-05 19:28:04 +01:00
atm-lena
9bfeb5e424 Add Hook "printFieldListFrom" in supplier order list (#26376)
Co-authored-by: atm-lena <lena.papazian@atm-consulting.fr>
2023-10-26 17:13:36 +02:00
Thibault Fiacre
e79f7706ad FIX_add_customer_ref_on_linked_shipment (#26349)
Adding missing customer reference for shipment on linked object block
2023-10-26 12:49:55 +02:00
Alexandre SPANGARO
a17447cd07 FIX #26100 - Ticket - On edit, list of closed project must be excluded (#26223)
* FIX #26100 - Ticket - On creation, list of closed project are excluded

* In project list, discard closed projects on ticket creation/edit
2023-10-20 04:08:14 +02:00
Eric
0975b2bbb8 check if $_FILES['userfile'] is an array before getting values (#26269) 2023-10-20 02:30:15 +02:00
Eric
e4987c8f3b fix #26244 todelete could contains dupplicate val (#26245) 2023-10-18 03:05:05 +02:00
Alexandre SPANGARO
95a15ae6f9 FIX #26195 - Various payment - List of project excluded those assigned to third parties (#26222) 2023-10-16 13:13:32 +02:00
Laurent Destailleur
e2d3404651 Merge pull request #22475 from atm-kevin/FIX_Enable_Negative_Qty_In_Propal
FIX : Propal's negative quantities
2023-10-06 19:10:07 +02:00
Laurent Destailleur
b145dd4e82 Merge pull request #26101 from Easya-Solutions/14.0_fix-product-list-stock-rounded
FIX regression on rounding stocks fields on product list
2023-10-04 09:39:27 +02:00
VESSILLER
49d084721b FIX regression on rounding stocks fields on product list 2023-10-03 09:17:32 +02:00
Laurent Destailleur
9c00ddac24 Merge pull request #26051 from Easya-Solutions/14.0_fix-proposal-card-fetch-thirdparty
FIX thirdparty object in proposal card is not loaded
2023-09-28 23:00:50 +02:00
VESSILLER
2980d90bdd Fix load thirdparty object once time 2023-09-28 08:49:13 +02:00
Laurent Destailleur
46d4e83b5f Merge pull request #26043 from hregis/fix_trigger_delete
FIX missing contact_id for the trigger
2023-09-27 15:31:12 +02:00
VESSILLER
afe71305fa FIX thirdparty object in proposal card is not loaded 2023-09-27 12:15:44 +02:00
Regis Houssin
9eb4c93c1c FIX add warning in the changelog 2023-09-27 09:44:58 +02:00
Regis Houssin
19e2f0c75c FIX missing contact_id for the trigger 2023-09-27 08:54:54 +02:00
Laurent Destailleur
a3f9b14e9d Merge pull request #26039 from hregis/fix_trigger_delete
FIX wrong place of trigger delete
2023-09-27 01:34:26 +02:00
Regis Houssin
bcc97f8b9f FIX wrong place of trigger delete 2023-09-26 23:49:21 +02:00
Laurent Destailleur
c2b9ea2192 Merge pull request #25986 from thomas-Ngr/14.0_fix_commandefourn_delete_row
FIX : Can't delete a fourn commande row if a commande ligne is linked
2023-09-21 19:20:50 +02:00
tnegre
08bb3c1a84 FIX : could not delete a fourn commande row if a commande ligne is linked 2023-09-21 14:20:23 +02:00
Laurent Destailleur
56118e854c Merge pull request #25940 from aspangaro/14p43
FIX Accountancy - Update Quadra export format
2023-09-19 23:48:45 +02:00
Alexandre SPANGARO
4fabc22624 FIX Accountancy - Update Quadra export format 2023-09-17 07:38:03 +02:00
Laurent Destailleur
c529ae8c61 Merge branch '14.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2023-09-16 13:28:22 +02:00
Laurent Destailleur
42590d8274 Merge pull request #25723 from atm-quentin/FIX_accounting_length
Fix accounting length is not everywhere
2023-09-15 02:43:52 +02:00
Laurent Destailleur
92503447c0 Merge pull request #21447 from atm-steve/fix_expensereport_validate_with_main_entity
fix ndf validate with main entity
2023-09-14 14:21:03 +02:00
Quentin VIAL-GOUTEYRON
48a2fd3c61 FIX include 2023-09-14 14:03:23 +02:00
Laurent Destailleur
923ef135f4 Merge pull request #25910 from atm-quentin/FIX_bad_check_return
FIX : bad check return for sendfile
2023-09-14 11:28:21 +02:00
Quentin VIAL-GOUTEYRON
ed4a8e88c0 FIX : bad from and to 2023-09-14 10:21:16 +02:00
Quentin VIAL-GOUTEYRON
3dad9d0899 FIX : bad check return for sendfile 2023-09-14 10:03:28 +02:00
Laurent Destailleur
df4df7ab1b Update expensereport.class.php 2023-09-11 17:51:38 +02:00
Laurent Destailleur
b98b9250c9 Merge branch '14.0' into fix_expensereport_validate_with_main_entity 2023-09-11 17:45:40 +02:00
Laurent Destailleur
904b3a47dd Merge branch '14.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2023-09-11 12:42:24 +02:00
Laurent Destailleur
1ead990e9f Fix phpcs 2023-09-11 12:41:39 +02:00
Laurent Destailleur
16e7a71ea3 Merge pull request #25865 from Easya-Solutions/14.0_fix-salary-card-security
FIX right access on salary card and tabs
2023-09-11 11:44:27 +02:00
VESSILLER
03272b12b0 FIX right access on salary card and tabs 2023-09-11 11:01:00 +02:00
Laurent Destailleur
6df3661044 Merge pull request #25834 from thomas-Ngr/14.0_fix_stripe_language
FIX payment : language is not propagated to following pages
2023-09-08 10:59:59 +02:00
tnegre
822981b561 FIX payment : language is not propagated to following pages 2023-09-07 16:56:29 +02:00
Quentin VIAL-GOUTEYRON
5001cc6de5 same fix for fec2 2023-09-06 14:23:16 +02:00
Laurent Destailleur
6e3f84c98d Merge pull request #25802 from thomas-Ngr/14.0_fix_ticket_message_order
FIX : message order in ticket public view
2023-09-05 18:17:38 +02:00
tnegre
ab7ab5c817 FIX : message order in ticket public view is not coherent with tickets events tab 2023-09-05 16:19:20 +02:00
Quentin VIAL-GOUTEYRON
bbca5118b7 FIX export FEC 2023-08-29 12:12:21 +02:00
Quentin VIAL-GOUTEYRON
383fc27618 Merge branch '13.0' of github.com:Dolibarr/dolibarr into FIX_accounting_length 2023-08-29 11:46:02 +02:00
Quentin VIAL-GOUTEYRON
fe7c71d1c2 FIX product list accounting length 2023-08-29 11:45:26 +02:00
Laurent Destailleur
a8ac1f48f9 Merge pull request #25659 from Easya-Solutions/14.0_fix-reception-odt-dir-output
FIX dir output path for ODT models on reception card
2023-08-25 00:36:24 +02:00
VESSILLER
ebed2211b6 FIX reception odt dir output path 2023-08-23 11:24:09 +02:00
Laurent Destailleur
973a2ede97 Fix syntax error 2023-08-10 11:35:19 +02:00
Laurent Destailleur
f89c026f3f Merge branch '13.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2023-08-10 10:51:43 +02:00
Laurent Destailleur
b0c2ccafcd Merge branch '12.0' of git@github.com:Dolibarr/dolibarr.git into 13.0 2023-08-10 10:47:05 +02:00
Laurent Destailleur
d3fc152001 Merge 2023-08-10 10:46:44 +02:00
Laurent Destailleur
e8fd551043 Merge branch '10.0' of git@github.com:Dolibarr/dolibarr.git into 11.0 2023-08-10 10:43:44 +02:00
Laurent Destailleur
34b3113bb7 Merge branch '9.0' of git@github.com:Dolibarr/dolibarr.git into 10.0 2023-08-10 10:41:20 +02:00
Laurent Destailleur
90854dc2bf FIX Use the wrong logo size on PDF 2023-07-30 19:53:56 +02:00
Laurent Destailleur
b44ddaa696 FIX Use the wrong logo size on PDF 2023-07-30 18:04:03 +02:00
Laurent Destailleur
2182cb6f16 Fix css 2023-07-10 02:27:01 +02:00
Laurent Destailleur
ebb1504fde Merge branch '13.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2023-07-06 22:05:15 +02:00
Laurent Destailleur
a5fe2ab0e5 Merge pull request #25291 from atm-greg/Fix_13.0_bankentries_label_for_suppliers_payments
fix bankentries label for supplier payments
2023-07-06 22:03:40 +02:00
atm-greg
dccaf116a2 fix bankentries label for supplier payments 2023-07-06 12:03:16 +02:00
Laurent Destailleur
924ba40c23 Fix migration 2023-07-05 22:09:34 +02:00
Laurent Destailleur
c61e4b0e25 Better migration code 2023-07-05 22:07:49 +02:00
Laurent Destailleur
d432620708 Fix pgsql regression 2023-07-05 22:03:38 +02:00
Laurent Destailleur
316838afb3 Merge pull request #25278 from rycks/13.0_add_emailcollector_tms
fix #25275: tms default timestamp
2023-07-05 18:56:31 +02:00
Laurent Destailleur
6cd4b2c7da Merge pull request #25280 from rycks/14.0_add_emailcollector_tms
fix #25275: tms default timestamp
2023-07-05 18:56:15 +02:00
Eric Seigne
e6e915a5f1 fix #25275: tms default timestamp 2023-07-05 17:35:25 +02:00
Eric Seigne
3477930db2 fix #25275: tms default timestamp 2023-07-05 17:34:04 +02:00
Laurent Destailleur
c7d66c6643 Disable scan logs 2023-06-27 22:14:11 +02:00
Laurent Destailleur
5443b7c4bc Merge branch '13.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2023-06-19 19:19:22 +02:00
Laurent Destailleur
bdd48c38b0 Merge branch '12.0' of git@github.com:Dolibarr/dolibarr.git into 13.0 2023-06-19 19:16:03 +02:00
Laurent Destailleur
d10f277bba Merge branch '11.0' of git@github.com:Dolibarr/dolibarr.git into 12.0 2023-06-19 19:13:54 +02:00
Laurent Destailleur
03a9daa3e6 Merge pull request #25139 from atm-greg/Fix_11.0_bankentries_list_missing_hook
add missing hook printFieldListValue
2023-06-19 16:48:13 +02:00
atm-greg
e5193f16cc add printFieldListJoin 2023-06-19 16:09:34 +02:00
atm-greg
9abde6c057 add missing hook printFieldListValue 2023-06-19 14:26:49 +02:00
Laurent Destailleur
39f8932b80 Fix phpcs 2023-06-16 00:35:55 +02:00
Laurent Destailleur
2140e989f8 Merge pull request #25112 from OPEN-DSI/10.4_fix_accountancy_journal_menu
FIX: Fix main and left menu info for the root menu of the list of accountancy journal
2023-06-16 00:25:26 +02:00
kkhelifa
3009cfa628 FIX: Fix main and left menu info for the root menu of the list of accountancy journal 2023-06-15 14:22:07 +02:00
Laurent Destailleur
4c681cb501 Merge pull request #25058 from atm-maxime/fix_virtualstock_calculation_with_creditnote
Fix #23822 virtualstock calculation with credit note
2023-06-11 11:27:57 +02:00
Laurent Destailleur
9ca87498f3 Merge pull request #25070 from atm-maxime/fix_contacttype_position
Fix #23806 use dictionary position to display contact type list
2023-06-11 11:23:27 +02:00
Maxime Kohlhaas
c7304271fa Fix #23806 use dictionary position to display contact type list 2023-06-11 00:42:29 +02:00
Maxime Kohlhaas
87ead82db0 Fix #23822 virtualstock calculation with credit note 2023-06-10 22:55:56 +02:00
Laurent Destailleur
d1bc7a59f0 Merge pull request #25053 from atm-maxime/fix_warehouse_backtopage
Fix #23946 : wrong backtopage from warehouse to product
2023-06-10 19:27:52 +02:00
Maxime Kohlhaas
ab49f3d13b Fix #23946 : wrong backtopage from warehouse to product 2023-06-10 17:42:52 +02:00
Laurent Destailleur
fb63861ad3 Merge pull request #25016 from inovea-conseil/FIX_#24695
FIX #24695
2023-06-09 12:01:48 +02:00
Nicolas
455293da94 FIX #24695 2023-06-09 10:08:09 +02:00
Laurent Destailleur
89ef2212f1 Merge pull request #24998 from Delthair/patch-3
FIX #24997 Update slovakia vat rate
2023-06-09 01:15:36 +02:00
Laurent Destailleur
39c2393be8 Merge pull request #23745 from vold-lu/fix-updateExtraField
FIX: Homogenise handling of null extrafield value in create/update
2023-06-08 23:54:08 +02:00
Delthair
367d7360db FIX #24997 Update slovakia vat rate 2023-06-08 17:36:07 +02:00
Laurent Destailleur
719be7beda Merge branch '14.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2023-06-04 03:00:35 +02:00
Laurent Destailleur
bcf7a374b0 Merge branch '13.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2023-06-04 03:00:22 +02:00
Laurent Destailleur
ab51e30c7a Merge branch '13.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2023-05-21 23:24:51 +02:00
Laurent Destailleur
5060d2c4f0 Merge branch '13.0' of git@github.com:Dolibarr/dolibarr.git into 13.0 2023-05-21 23:23:15 +02:00
Laurent Destailleur
7475d4aaa2 Merge branch '12.0' of git@github.com:Dolibarr/dolibarr.git into 13.0 2023-05-21 23:22:55 +02:00
Laurent Destailleur
249cbc0232 Merge pull request #24485 from atm-lena/14.0_FIX_ReassortLot_Search
FIX reassortlot search categorie + add inithooks
2023-05-20 12:05:54 +02:00
Laurent Destailleur
8cbafe940d Merge pull request #24814 from daraelmin/patch-1
FIX #24798 Deleting member subscription is not possible
2023-05-20 11:55:21 +02:00
stickler-ci
b70676cc1f Fixing style errors. 2023-05-17 21:47:51 +00:00
daraelmin
8fa581f936 FIX #24798 Deleting member subscription is not possible
object subscription has no getfullname method, it's in adherent class
2023-05-17 22:59:51 +02:00
Laurent Destailleur
af5b821b44 Merge pull request #24578 from Easya-Solutions/14.0_fix-massaction-builddoc-special-chars
FIX special chars in generated file name from build doc mass action
2023-05-01 16:39:30 +02:00
Laurent Destailleur
5218a43a42 FIX Click on "NEW" in simple POS was broken 2023-04-28 18:59:12 +02:00
Laurent Destailleur
1805b3ae78 Merge pull request #24572 from vold-lu/add_origin_in_create_from_proposal
FIX: Propagate correct origin/origin_id when creating order from proposal
2023-04-25 18:16:46 +02:00
VESSILLER
99206d5570 FIX special chars in generated file name from build doc mass action 2023-04-24 12:08:45 +02:00
Aloïs Micard
5ec6b29345 Fix order line origin/origin_id when creating from proposal 2023-04-23 14:01:52 +02:00
Laurent Destailleur
440a526b0a Merge pull request #24542 from altairisfr/emptyshipping
FIX for emptyshipping
2023-04-18 17:12:00 +02:00
Christophe Battarel
d7436d5d8c fix test 2023-04-18 16:38:13 +02:00
Christophe Battarel
3de0a682c1 FIX for empty shipping 2023-04-18 16:31:58 +02:00
atm-lena
d8c51e712d FIX reassortlot search categorie + add inihook 2023-04-12 10:17:13 +02:00
Laurent Destailleur
7b3653e11e Merge branch '14.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2023-04-04 21:08:33 +02:00
Laurent Destailleur
09b6837049 Merge branch '13.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2023-04-04 21:07:18 +02:00
Laurent Destailleur
662f610319 Merge pull request #24426 from aspangaro/14p42
FIX Propagate extrafields from supplier order to reception
2023-04-04 21:04:45 +02:00
Laurent Destailleur
d22ab42031 Merge pull request #24431 from Easya-Solutions/14.0_fix-prelevement-line-supplier-link
FIX supplier link on bank transfer line
2023-04-04 19:51:25 +02:00
Laurent Destailleur
8e2d2ac70f Merge pull request #24432 from atm-quentin/FIX_filter_on_consumption_contact
FIX filter missing id on consumption contact card
2023-04-04 19:50:48 +02:00
Laurent Destailleur
e770d7f624 Merge pull request #24433 from Easya-Solutions/14.0_fix-prelevement-line-invoice-status
FIX supplier invoice status on bank transfer line
2023-04-04 19:50:30 +02:00
VESSILLER
9f8b67a6ec FIX supplier invoice status on bank transfer line 2023-04-04 11:33:23 +02:00
Quentin VIAL-GOUTEYRON
66f1696a9b FIX filter missing id 2023-04-04 11:05:50 +02:00
VESSILLER
144d061db3 FIX supplier link on bank transfer line 2023-04-04 11:01:03 +02:00
Alexandre SPANGARO
0173688d05 FIX Propagate extrafields from supplier order to reception 2023-04-03 15:49:38 +02:00
Laurent Destailleur
8f0bafd6c7 Merge pull request #24371 from atm-gauthier/fix_cant_update_extrafields_expedition_line
FIX : it was not possible to update extrafields of expedition lines w…
2023-03-31 02:29:55 +02:00
stickler-ci
cb63bbba32 Fixing style errors. 2023-03-29 09:06:53 +00:00
Gauthier PC portable 024
538a6870f1 FIX : it was not possible to update extrafields of expedition lines with batch without editing batch value 2023-03-29 11:00:20 +02:00
Laurent Destailleur
d1bd12ab33 Merge branch '14.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2023-03-24 19:35:49 +01:00
Laurent Destailleur
bcbf4d54ab Merge branch '13.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2023-03-24 19:35:41 +01:00
Laurent Destailleur
6a878d9c13 Fix php warning 2023-03-24 19:33:51 +01:00
Laurent Destailleur
b29648fb6a Merge pull request #24312 from atm-thibaultf/patch-1
FIX invoices order on sells journal
2023-03-22 15:24:31 +01:00
Thibault Fiacre
45b7a911d8 FIX invoices order on sells journal
On sells journal, invoices are ordered by date (datef) but when several invoices have the same date, sometimes they are not ordered by reference.
2023-03-22 08:14:58 +01:00
Laurent Destailleur
05de5d7e9f Merge pull request #24206 from noec764/14_AddContextFor_selectForFormsListWhere_hook
FIX: Add more context for selectForFormsListWhere Hook
2023-03-18 02:35:57 +01:00
Laurent Destailleur
926c99f913 Update html.form.class.php 2023-03-18 02:35:31 +01:00
Laurent Destailleur
66643a0dc6 Fix phpcs 2023-03-18 00:33:51 +01:00
Laurent Destailleur
d8f3d8afef Merge pull request #24247 from noec764/FIX_Add_Hook_on_ticket_libStatut
FIX: Add missing hook on LibStatut
2023-03-17 23:13:20 +01:00
Noé Courtier
e618eb3e64 FIX: Add missing hook on LibStatut 2023-03-17 10:58:41 +01:00
Laurent Destailleur
5c0179d5ed Merge branch '13.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2023-03-16 09:32:50 +01:00
Laurent Destailleur
5af17195b7 Merge branch '12.0' of git@github.com:Dolibarr/dolibarr.git into 13.0 2023-03-16 09:31:50 +01:00
Laurent Destailleur
a52ae607ba Merge branch '11.0' of git@github.com:Dolibarr/dolibarr.git into 12.0 2023-03-16 09:30:36 +01:00
Laurent Destailleur
6aa8ba8935 Removed unexpected files 2023-03-16 09:29:10 +01:00
Laurent Destailleur
0a8ebb7dc4 Removed unexpected files 2023-03-16 09:27:45 +01:00
Laurent Destailleur
f9b9c7eefe Removed unexpected files 2023-03-16 09:27:12 +01:00
Noé Courtier
645b0c563e FIX: Add more context for selectForFormsListWhere Hook 2023-03-14 11:43:36 +01:00
Laurent Destailleur
e7546e6da1 FIX #23804 2023-02-22 14:29:36 +01:00
Rémi Champlon
baa28e175d indent 2023-02-20 16:47:01 +01:00
Rémi Champlon
aa60bd29c1 check link empty in switch 2023-02-20 16:39:03 +01:00
Laurent Destailleur
884ecc9e87 Merge branch '14.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2023-02-17 16:14:37 +01:00
Laurent Destailleur
711bf2e6a8 Merge branch '13.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2023-02-17 16:14:23 +01:00
Laurent Destailleur
0f9af62808 Merge pull request #23938 from rycks/13.0_fix_undefined_var
msg is not defined
2023-02-16 22:01:59 +01:00
Eric Seigne
bf9a44ac6f msg is not defined 2023-02-16 21:48:55 +01:00
Laurent Destailleur
5d58c993bd Merge pull request #23930 from aspangaro/14p42
Supplier proposal - List - SQL error on total_ht
2023-02-16 21:02:12 +01:00
Alexandre SPANGARO
f24ffe5b91 Supplier proposal - List - SQL error on total_ht 2023-02-16 10:20:37 +01:00
Laurent Destailleur
89817c8ead Fix message for profit calculation 2023-02-15 18:17:06 +01:00
Laurent Destailleur
b57d1ed263 FIX Profit calculation on project preview tab. 2023-02-15 18:16:54 +01:00
Laurent Destailleur
3278b7bc86 Merge branch '13.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2023-02-13 23:38:07 +01:00
Laurent Destailleur
6eda0f4c2e Merge branch '13.0' of git@github.com:Dolibarr/dolibarr.git into 13.0 2023-02-13 21:58:26 +01:00
Laurent Destailleur
5217ae28f8 Fix load of margin infos 2023-02-13 21:35:48 +01:00
Laurent Destailleur
c3214ff3e0 Merge pull request #23895 from rycks/13_fix_loi_de_finance_525
fix loi de finance 525
2023-02-13 18:09:07 +01:00
Eric Seigne
cac9a00bac fix loi de finance 525 2023-02-13 16:19:00 +01:00
Laurent Destailleur
a10bd18601 Merge pull request #23872 from aspangaro/14p42
FIX : Missing right to edit service note when module product is disabled
2023-02-10 19:39:10 +01:00
Alexandre SPANGARO
c61326cdae Merge branch '14.0' into 14p42 2023-02-10 15:01:29 +01:00
Alexandre SPANGARO
1bc16f47c0 FIX : Missing right to edit service note when module product is disabled 2023-02-10 15:00:27 +01:00
Laurent Destailleur
802ee770c3 FIX #23860 2023-02-09 19:25:55 +01:00
Laurent Destailleur
d221aa3f95 Merge pull request #23826 from Easya-Solutions/14.0_fix_prelevement_line_facture_fourn_link
Fix prelevement line : the link to the facture was to a customer fac, not fourn fac
2023-02-09 15:11:00 +01:00
Laurent Destailleur
3da79a677f Merge pull request #23852 from Easya-Solutions/14.0_fix-ticket-send-email-at-same-recipient
FIX several email sent to the same recipient when adding message from ticket
2023-02-09 14:42:38 +01:00
VESSILLER
01e0503b0f FIX several email sent to the same recipient when adding message from ticket 2023-02-09 11:52:41 +01:00
tnegre
55d6e2ead0 Fix prelevement line : the link to the facture was to a customer facture, even when it was a facturefourn. 2023-02-07 17:32:35 +01:00
Laurent Destailleur
2560a543b1 Merge pull request #23767 from Easya-Solutions/14.0_fix-ticket-join-file
FIX attach file and send by mail in ticket
2023-02-04 15:24:33 +01:00
Laurent Destailleur
86c2f2fcde Fix phpcs 2023-02-03 17:08:24 +01:00
VESSILLER
c2f91b2e15 FIX attach file and send by mail in ticket 2023-02-03 14:02:46 +01:00
Rémi Champlon
b1a7c23daa fix updateExtrafield option key empty set null 2023-02-01 11:20:44 +01:00
Laurent Destailleur
5395a4ab4b Merge branch '14.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2023-01-30 02:23:53 +01:00
Laurent Destailleur
10d822896d Merge branch '13.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2023-01-30 02:23:45 +01:00
Laurent Destailleur
971b3f2bfc Merge pull request #23717 from rycks/13.0_fix_newpayment_handle_hooks
fix #23716 : handle hookmanagers returns
2023-01-29 20:24:31 +01:00
Eric Seigne
d3b1ee367a fix #23716 : handle hookmanagers returns 2023-01-28 14:27:45 +01:00
Laurent Destailleur
7aeff6db98 Merge pull request #23714 from aspangaro/14p42
FIX Accountancy - Quadra export
2023-01-28 10:43:34 +01:00
Alexandre SPANGARO
791a69dd09 FIX Accountancy - Quadra export 2023-01-28 04:48:55 +01:00
Laurent Destailleur
59f163f699 Fix regression 2023-01-26 02:12:42 +01:00
Laurent Destailleur
98e94b9901 Merge pull request #23672 from Easya-Solutions/14.0_fix-massaction-builddoc-simple-quote
FIX simple quote in generated file name from build doc mass action
2023-01-26 00:04:05 +01:00
Laurent Destailleur
14b9a88218 Merge pull request #23675 from noec764/14_FixExpenseReportAddLine
FIX: ExpenseReport card was not reloaded after addline
2023-01-25 23:51:39 +01:00
stickler-ci
08bd8caaf2 Fixing style errors. 2023-01-24 13:28:59 +00:00
Noé Courtier
b964f1a476 FIX: page was not reloaded after addline causing a new lline creation was page was reloaded 2023-01-24 14:21:14 +01:00
VESSILLER
b2ac7a72be FIX simple quote in generated file name from build doc mass action 2023-01-24 11:21:59 +01:00
Laurent Destailleur
dac3acd71f Merge pull request #23634 from piernov/14.0-fix-donPaid
Fix: don setPaid sets paid field
2023-01-23 02:23:03 +01:00
Laurent Destailleur
92d977655c Merge pull request #23636 from Easya-Solutions/14.0_fix_public_ticket_list_pages
FIX on public ticket list, pages > 1 were 404 errors
2023-01-23 02:21:50 +01:00
Thomas Negre
51f1871dd6 FIX on public ticket list, only the page 1 was accessible. Other pages were 404 error. 2023-01-19 17:22:31 +01:00
piernov
9a40c966bd Fix: don setPaid sets paid field
When donation is classified as paid, paid field also needs to be set to 1 so that accounting reports show the correct information.
2023-01-19 16:31:32 +01:00
Laurent Destailleur
4001101f59 Merge branch '14.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2023-01-18 22:50:29 +01:00
Laurent Destailleur
20956e9b7d Fix data truncated 2023-01-18 22:50:13 +01:00
Laurent Destailleur
f49a14f8d9 Merge pull request #23574 from atm-maxime/fix_ecm_keywords
Fix missing keywords in dol_dir_list_in_database
2023-01-18 20:19:36 +01:00
Laurent Destailleur
a849496050 Merge pull request #23612 from noec764/14_Fix_missingTokenDeletingTemplate
FIX: Add missing token when deleting template inn order_supplier admin menu
2023-01-18 20:12:07 +01:00
Laurent Destailleur
3e7b16e8ca Merge pull request #23620 from FHenry/14_fix_mod_builder
fix: module builder, backport working solution form 15.0
2023-01-18 20:11:26 +01:00
Laurent Destailleur
aa273d2155 Update index.php 2023-01-18 20:11:12 +01:00
Laurent Destailleur
0fd085d5bb Merge pull request #23613 from noec764/14_FIX_Errors_handling_CreateFrom_Hooks
FIX: Errors Handling for CreateFrom Hooks
2023-01-18 20:04:15 +01:00
Laurent Destailleur
f1718d0116 Merge pull request #23616 from fmarcet/14.0
FIX: API access for deactivated users
2023-01-18 19:37:35 +01:00
Florian HENRY
6d8f80d46e fix: module builder, backport workgin solution form 15.0 2023-01-18 16:10:21 +01:00
Ferran Marcet
8c969c7765 Merge branch '14.0up' into 14.0 2023-01-18 10:52:40 +01:00
Ferran Marcet
cb96378031 FIX: API access for deactivated users 2023-01-18 10:48:18 +01:00
stickler-ci
4ee0ede6d8 Fixing style errors. 2023-01-18 08:53:28 +00:00
Noé Courtier
d344e108c9 FIX: Errors Handling for CreateFrom Hooks 2023-01-18 09:44:23 +01:00
Noé Courtier
29966d8499 FIX: Add missing token when deleting template inn order_supplier admin menu 2023-01-18 09:29:11 +01:00
Maxime Kohlhaas
b54a15f504 Fix missing keywords in dol_dir_list_in_database 2023-01-15 09:11:29 +01:00
Laurent Destailleur
597dfc04b7 Merge branch '14.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2023-01-13 11:14:55 +01:00
Laurent Destailleur
5d42bbc86a Merge branch '13.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2023-01-13 11:14:47 +01:00
Laurent Destailleur
a06a5d0f65 Fix lang file not loaded 2023-01-13 11:09:06 +01:00
Laurent Destailleur
849fd56616 Merge pull request #23522 from hregis/fix_compatibility_with_multicompany
FIX wrong stock list with multicompany and without stock sharing
2023-01-12 10:04:32 +01:00
Regis Houssin
968c50d6f9 FIX wrong stock list with multicompany and without stock sharing 2023-01-12 09:49:12 +01:00
Laurent Destailleur
e27875142c Merge pull request #23465 from Easya-Solutions/14.0_fix-muscadet-hide-details
FIX hide details option in supplier order PDF model
2023-01-11 21:15:40 +01:00
Laurent Destailleur
74501fb20e Merge pull request #23511 from noec764/FIX_Ecmfile_Ref
FIX: ref not available after ecmFiles::create()
2023-01-11 19:08:39 +01:00
Noé Courtier
cfb16cc9cd FIX: ref not available after ecmFile create() 2023-01-11 16:49:59 +01:00
VESSILLER
4c9d6b5e51 FIX hide details option in supplier order PDF model 2023-01-09 13:57:20 +01:00
Laurent Destailleur
81e39646ac Merge pull request #23426 from atm-gauthier/fix_hierarchyme_on_activity_permonth
FIX : hierarchyme and not hierachyme
2023-01-06 15:48:38 +01:00
Gauthier PC portable 024
e7d31a821c FIX : hierarchyme and not hierachyme 2023-01-05 15:41:57 +01:00
Laurent Destailleur
25eac607eb Merge pull request #23407 from daraelmin/daraelmin-patch-2
Fix v14 fatal error undefined fct lenght_accounta
2023-01-04 17:48:08 +01:00
stickler-ci
1d29400cdf Fixing style errors. 2023-01-04 08:15:39 +00:00
daraelmin
23d535197d Fix v14 fatal error undefined fct lenght_accounta
Following #23403
See https://www.dolibarr.fr/forum/t/erreur-fatal-paiements-divers-v15-0-3/41914
2023-01-04 09:13:40 +01:00
Laurent Destailleur
af45ef8799 Merge pull request #23294 from atm-gauthier/fix_multicurrency_when_create_order_from_propal
FIX : get multicurrency infos of propal when create order from propal…
2023-01-03 01:36:57 +01:00
Laurent Destailleur
fa3b4e92c5 Merge pull request #23362 from rycks/update_retainedwarranty_only_if_draft_invoice
avoid editretainedwarranty if invoice is not draft
2022-12-28 18:18:29 +01:00
Eric Seigne
2aa271d96e avoid editretainedwarranty if invoice is not draft 2022-12-28 17:50:16 +01:00
Laurent Destailleur
a17c417205 Merge pull request #23018 from Easya-Solutions/14.0_fix-22837
FIX #22837
2022-12-27 00:26:52 +01:00
Laurent Destailleur
1d7c550adb Fix add BARCODE_INIT_MAX to solve timeout in barcode generation 2022-12-26 16:09:05 +01:00
Laurent Destailleur
11c86416a9 Merge branch '14.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2022-12-26 15:15:13 +01:00
Laurent Destailleur
f6149903dc FIX bad selection of barcode numbering module 2022-12-26 15:08:51 +01:00
Gauthier PC portable 024
2c7e0afabd FIX : travis 2022-12-21 17:17:33 +01:00
Gauthier PC portable 024
69b0cf9bcf FIX : include class multicurrency 2022-12-21 14:05:54 +01:00
Gauthier PC portable 024
b38f163b02 Merge branch 'fix_multicurrency_when_create_order_from_propal' of github.com:atm-gauthier/dolibarr into fix_multicurrency_when_create_order_from_propal 2022-12-21 12:31:48 +01:00
Gauthier PC portable 024
a48d1ae8e3 FIX : multicurrency_tx and not currency_tx 2022-12-21 12:31:24 +01:00
stickler-ci
3b9d39c1d2 Fixing style errors. 2022-12-21 10:00:26 +00:00
Gauthier PC portable 024
0582653a67 FIX : get multicurrency infos of propal when create order from propal with "WORKFLOW_PROPAL_AUTOCREATE_ORDER" conf 2022-12-21 10:55:03 +01:00
Laurent Destailleur
6950e2be20 Merge pull request #23243 from Hystepik/develop_v14#1
Fix #19485 : add of missing tickets trad key for menu
2022-12-17 00:39:21 +01:00
hystepik
c0a0b977bf Fix #19485 : add of missing tickets trad key for menu 2022-12-16 16:20:43 +01:00
Laurent Destailleur
af6854c5fb Merge pull request #23213 from henrynopo/patch-1
Create invoice from Shipment - fix error of multicurrency code
2022-12-14 10:10:30 +01:00
stickler-ci
24585cf61b Fixing style errors. 2022-12-14 02:45:20 +00:00
Henry
c4dbc5e6d6 Create invoice from Shipment - fix error of multicurrency code 2022-12-14 10:39:15 +08:00
Laurent Destailleur
9087fb937d Merge pull request #23196 from vold-lu/order_inventory_det
FIX: Give predictable order to inventory lines
2022-12-14 00:19:41 +01:00
Aloïs Micard
8a1df1df92 Give order to inventory lines 2022-12-12 17:36:00 +01:00
Laurent Destailleur
570fc5c0ed Merge pull request #23164 from vold-lu/fix_confirm_valid
FIX: CommonObject - showOptionals - Display blank td when MAIN_VIEW_LINE_NUMBER is enabled and action is confirm_valid
2022-12-10 16:31:34 +01:00
Aloïs Micard
285731200a Add confirm_cancel action 2022-12-09 13:45:15 +01:00
Aloïs Micard
381b998413 Display blank td when action is confirm_valid 2022-12-09 11:45:09 +01:00
Laurent Destailleur
7dd0c6646d Merge pull request #23114 from aspangaro/14p42
Fix CSS
2022-12-06 21:06:53 +01:00
Laurent Destailleur
37e91fa6bf Merge pull request #23066 from FHenry/14_fix_stats_propal_order
FIX: propal and order stats broken on Tag+User(retricted customer list)
2022-12-06 21:04:55 +01:00
Alexandre SPANGARO
a107c81bf1 Merge branch '14.0' into 14p42 2022-12-06 04:53:10 +01:00
Alexandre SPANGARO
89b10b0dfb Fix css 2022-12-06 04:48:04 +01:00
Florian HENRY
f405f859ca ineer join is better than coma and where 2022-12-02 22:49:52 +01:00
Laurent Destailleur
931fe92148 Merge pull request #23068 from noec764/14_0_FIX_PGSQL_UpdatField
FIX: PGSQL Integer type does not have a free lenght
2022-12-01 17:13:26 +01:00
Noé Courtier
a4ac90a316 FIX: PGSQL Int type does not have a free lenght 2022-12-01 15:15:31 +01:00
Florian HENRY
8ddc4c8db6 FIX: propal and order stats broken on Tag+User(retricted customer list) 2022-12-01 14:28:00 +01:00
VESSILLER
ad07fdfd79 FIX #22837 2022-11-27 01:06:40 +01:00
Laurent Destailleur
7884216197 Merge pull request #23003 from rycks/14_fix_api_status_on_delete
fix #22766: better API response HTTP code
2022-11-26 10:26:21 +01:00
Laurent Destailleur
37f4c846cb Merge pull request #22996 from ATM-Nicolas/fix_api_documents_inconsistency
FIX : Documents API inconsistency
2022-11-26 10:22:58 +01:00
Laurent Destailleur
860f2414c4 Merge branch '14.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2022-11-26 01:46:37 +01:00
Laurent Destailleur
63541d1515 Fix phpcs 2022-11-26 01:45:58 +01:00
stickler-ci
3fd81293a3 Fixing style errors. 2022-11-25 23:57:35 +00:00
Eric Seigne
616e2b79ef fix #22766: better API response HTTP code 2022-11-26 00:50:45 +01:00
ATM-Nicolas
e767c9b4a9 FIX : Stickler 2022-11-26 00:42:50 +01:00
ATM-Nicolas
a0553c6e52 FIX : Stickler 2022-11-26 00:35:08 +01:00
ATM-Nicolas
f3e689f841 FIX : Documents API inconsistency 2022-11-26 00:02:17 +01:00
Laurent Destailleur
1ec862b491 Merge pull request #22982 from inovea-conseil/fix_19877
FIX#19877
2022-11-25 23:41:18 +01:00
Laurent Destailleur
42d09f597c Merge pull request #22980 from inovea-conseil/FIX#19828
FIX#19828
2022-11-25 23:36:28 +01:00
Mathieu
023bc7d20e FIX#19877 2022-11-25 22:29:44 +01:00
IC-Ilies
b5ab1f612c FIX#19828 2022-11-25 22:29:35 +01:00
Laurent Destailleur
2ce4e1d125 Merge pull request #22978 from ATM-Nicolas/fix_bankaccount_api
FIX : Bankaccounts API fetch with 'id' and 'socid'
2022-11-25 22:18:02 +01:00
ATM-Nicolas
3475e55b80 FIX : Bankaccounts API fetch with 'id' and 'socid' 2022-11-25 22:11:17 +01:00
Laurent Destailleur
03485a2f73 Merge pull request #22680 from OPEN-DSI/14.0_fix_start_cron_in_multientities_with_verif_test_condition
FIX: Fix the position of the verification condition of the test field in case of multi entities
2022-11-25 16:34:27 +01:00
Laurent Destailleur
ba0e7a9744 Merge pull request #22966 from noec764/14_FIX_Use_Hook_Resprints
FIX:  use addMoreActionsButton hook resprints
2022-11-25 15:32:00 +01:00
stickler-ci
ec156ddf84 Fixing style errors. 2022-11-25 11:26:31 +00:00
Noé Courtier
043b2e9ea3 FIX: copy same behaviour in other accountancy files 2022-11-25 12:18:32 +01:00
Noé Courtier
2ada053855 FIX: Use the Hook addMoreActionsButtons resPrint 2022-11-25 11:44:34 +01:00
Laurent Destailleur
795895e18f Merge pull request #22936 from Easya-Solutions/14.0_fix-get-next-value-year-on-one-digit
FIX compute next value when year is on one digit for reset counter
2022-11-23 12:33:27 +01:00
Laurent Destailleur
9ee4c73036 Merge branch '14.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2022-11-23 11:58:59 +01:00
Laurent Destailleur
c9930ee6ce Merge branch '13.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2022-11-23 11:58:46 +01:00
VESSILLER
ed2a9a22e8 FIX compute next value when year is on one digit for reset counter 2022-11-23 08:36:20 +01:00
Laurent Destailleur
a59bdfba0c Merge branch '12.0' of git@github.com:Dolibarr/dolibarr.git into 13.0 2022-11-23 00:00:47 +01:00
Laurent Destailleur
5ad7894849 Merge branch '12.0' of git@github.com:Dolibarr/dolibarr.git into 12.0 2022-11-22 22:05:43 +01:00
Laurent Destailleur
2c1571c514 Merge branch '11.0' of git@github.com:Dolibarr/dolibarr.git into 12.0 2022-11-22 22:05:33 +01:00
Laurent Destailleur
f782ac6654 Merge branch '11.0' of git@github.com:Dolibarr/dolibarr.git into 11.0 2022-11-22 22:03:47 +01:00
Laurent Destailleur
1e54e695b2 Merge branch '10.0' of git@github.com:Dolibarr/dolibarr.git into 11.0 2022-11-22 22:00:59 +01:00
Laurent Destailleur
f2eb3c1a55 Merge pull request #22919 from atm-maxime/11.0
Fix API right check
2022-11-22 21:40:12 +01:00
Laurent Destailleur
41a970c90f Merge pull request #22922 from ATM-Nicolas/fix_sql_request_parenthesis
FIX sql request parenthesis
2022-11-22 21:39:11 +01:00
Laurent Destailleur
f3b7b7b41c Merge pull request #22932 from josett225/14.0
FIX PaymentBankTransfer Type page management with Select and Input on create.php
2022-11-22 21:32:23 +01:00
stickler-ci
76fdf0006d Fixing style errors. 2022-11-22 20:17:37 +00:00
josett225
e38ef6bc8c Update create.php 2022-11-22 21:03:28 +01:00
ATM-Nicolas
3d9b2a1676 FIX : SQL request parenthesis 2022-11-22 15:32:37 +01:00
Maxime Kohlhaas
7be0e0da1c Fix API right check 2022-11-22 13:46:42 +01:00
Laurent Destailleur
cc200a501f Merge pull request #22906 from josett225/14.0
FIX PaymentBankTransfer Line page management with Select and Input
2022-11-21 21:12:32 +01:00
josett225
19273c8da1 Fix PaymentBankTransfer Line page management with Select and Input 2022-11-20 05:33:31 +01:00
kkhelifa
dff5f46749 Add for htdocs/public/cron/cron_run_jobs_by_url.php 2022-11-18 10:37:35 +01:00
kkhelifa
e8413a68c9 Merge branch '14.0' of github.com:Dolibarr/dolibarr into 14.0_fix_start_cron_in_multientities_with_verif_test_condition 2022-11-18 10:36:29 +01:00
Laurent Destailleur
53eb370c4e Merge pull request #22863 from FHenry/fix_sec_dol_eval
FIX: base64_decode shloud be forbiden in dol_eval
2022-11-17 10:26:19 +01:00
Laurent Destailleur
aaa2ad710c Merge branch '14.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2022-11-16 20:06:06 +01:00
Laurent Destailleur
45e3f19bd7 Fix remove files not expected 2022-11-16 20:05:52 +01:00
Laurent Destailleur
844a46cd58 Merge pull request #22864 from Easya-Solutions/14.0_fix-mailing-card-merge-errors
FIX merge errors on mailing card
2022-11-16 11:37:58 +01:00
VESSILLER
10154cc357 FIX remove not initialized variable 2022-11-16 11:05:39 +01:00
VESSILLER
6e33d1e2b1 FIX merge errors on mailing card 2022-11-16 10:48:25 +01:00
Florian HENRY
85aa9f7481 FIX: base64_decode shloud be forbiden in dol_eval 2022-11-16 09:32:14 +01:00
Laurent Destailleur
8ea9f11664 Merge branch '14.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2022-11-15 19:40:44 +01:00
Laurent Destailleur
81187106c1 Merge branch '13.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2022-11-15 19:40:36 +01:00
Laurent Destailleur
f4b1d31013 Merge branch '12.0' of git@github.com:Dolibarr/dolibarr.git into 13.0 2022-11-15 19:36:37 +01:00
Laurent Destailleur
bb01ad7d9a Merge pull request #22850 from daraelmin/patch-4
FIx #18304 No adh create if error on public form
2022-11-15 13:12:02 +01:00
stickler-ci
c81c91755d Fixing style errors. 2022-11-15 10:55:09 +00:00
daraelmin
cd2b9538c1 FIx #18304 No adh create if error on public form
FIX #18304 - Member subscription confirmation email sent even if mandatory fields are missing
2022-11-15 11:51:20 +01:00
Laurent Destailleur
90b44fc184 Merge pull request #22743 from noec764/14_FixAssetsExtraFieldsList
FIX: Wrong extrafields element in assets list
2022-11-14 22:16:31 +01:00
Laurent Destailleur
0d7c9b0a84 Merge branch '14.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2022-11-14 22:02:49 +01:00
Laurent Destailleur
b766e6de66 FIX #22786 2022-11-14 21:08:54 +01:00
Laurent Destailleur
fc8a136a34 Merge pull request #22818 from thomas-Ngr/14.0_fix_supplier_proposal_line_clone_subprice_zero
Fix supplier proposal clone : when a line subprice is empty, it should be saved as 0 in the Database, not null.
2022-11-12 12:37:17 +01:00
Thomas Negre
dba6c68181 Fix supplier proposal clone : when a line subprice is empty, it should be saved as 0 in the Database, not null. 2022-11-10 16:55:23 +01:00
Laurent Destailleur
026404657d Merge pull request #22747 from FHenry/14_fix_notif
fix: bad SQL parenthesis in notification
2022-11-07 19:00:21 +01:00
Florian HENRY
d375aca2c8 fix bad SQL parenthesis in notification 2022-11-04 11:29:52 +01:00
Noé Courtier
f85b6315fb FIX: Wrong Extrafields Element For Assets" 2022-11-03 16:46:15 +01:00
Laurent Destailleur
ff16d74bd2 FIX install wizard error management 2022-11-02 00:00:02 +01:00
Laurent Destailleur
ab2d306abd Merge pull request #22692 from thomas-Ngr/14.0_fix_propal_page_reload
Fix propal page reload : use thirdparty values
2022-11-01 23:33:23 +01:00
Laurent Destailleur
8e9be8f40f Update card.php 2022-11-01 23:33:08 +01:00
Laurent Destailleur
8b3c73a96a Merge pull request #22702 from OPEN-DSI/14.0_fix_request_sql_entity_filter_for_usergroup
FIX: Fix the request SQL for transversal user
2022-11-01 21:48:19 +01:00
Laurent Destailleur
f0b4cfc875 Merge pull request #22724 from aspangaro/14p42
FIX Accountancy - Review of Winfic - eWinfic - Winsis compta export format
2022-11-01 19:36:17 +01:00
Alexandre SPANGARO
d3d55240f9 FIX Accountancy - Review of Winfic - eWinfic - Winsis compta export format 2022-11-01 08:00:37 +01:00
Alexandre SPANGARO
4bd9bdaccd FIX Accountancy - Review of Winfic - eWinfic - Winsis compta export format 2022-11-01 07:56:24 +01:00
kkhelifa
c4543eff73 FIX: Fix the request SQL for transversal user, the join on usergroup table must be with getEntity('usergroup') and not other element 2022-10-28 16:31:01 +02:00
Alexandre SPANGARO
f45f3740e2 FIX Accountancy - Review of Winfic - eWinfic - Winsis compta export format 2022-10-28 08:10:39 +02:00
Thomas Negre
02942e844e Fix propal page reload : use thirdparty values 2022-10-27 15:26:40 +02:00
Laurent Destailleur
f0c257f62e Merge pull request #22617 from atm-jpb/FIX_task_never_deleted_in_bdd_on_deleted_project
FIX : add loadRoleMode on getlinearray
2022-10-26 13:59:49 +02:00
kkhelifa
d25c16bf77 FIX: Fix the position of the verification condition of the test field in case of multi entities 2022-10-26 12:14:53 +02:00
Laurent Destailleur
bf794cacc0 Merge pull request #22615 from marc-dll/14.0_FIX_hidden_extrafields_update
FIX: only modify hidden checkbox/multislected extrafields on update if they are provided in request
2022-10-25 19:43:41 +02:00
Laurent Destailleur
f9f209b249 Merge pull request #22543 from atm-jpb/fix_short_civility_dict
add short civility
2022-10-25 17:27:03 +02:00
Laurent Destailleur
a7a4e76194 Merge branch '13.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2022-10-24 19:07:10 +02:00
Laurent Destailleur
d021c0b2a1 Merge pull request #22665 from atm-maxime/fix_dict_error_data_toolong
Fix : dict data too long error
2022-10-24 16:38:10 +02:00
Maxime Kohlhaas
92ad656bf0 Fix : dict data too long error 2022-10-23 12:06:13 +02:00
jpb
87339de68d add human readeable trad 2022-10-19 09:29:11 +02:00
Laurent Destailleur
c727ebd9dd Merge branch '13.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2022-10-18 21:12:04 +02:00
Laurent Destailleur
da3ae71a47 Try to fix rounding error 2022-10-18 13:32:18 +02:00
stickler-ci
71bae4f94b Fixing style errors. 2022-10-18 09:43:55 +00:00
jpb
6050f60704 add loadRoleMode on getlinearray 2022-10-18 11:36:17 +02:00
Marc de Lima Lucio
82ca472245 FIX: only modify hidden checkbox/multislected extrafields on update if they are provided in request 2022-10-18 10:50:21 +02:00
Laurent Destailleur
7df36e4a1f Try fix phpunit 2022-10-18 00:53:13 +02:00
Laurent Destailleur
459086b11e Merge pull request #22569 from atm-gauthier/fix_conf_PRODUCT_LOAD_EXTRAFIELD_INTO_OBJECTLINES
FIX : input selector is wrong with PRODUCT_LOAD_EXTRAFIELD_INTO_OBJEC…
2022-10-14 19:22:56 +02:00
Gauthier PC portable 024
8850412da8 FIX : input selector is wrong with PRODUCT_LOAD_EXTRAFIELD_INTO_OBJECTLINES usage 2022-10-13 11:25:42 +02:00
Laurent Destailleur
2ba4993666 Merge pull request #22518 from hregis/fix_avoid_error_with_postgresql
FIX remove db object for avoid error with postgresql
2022-10-13 10:24:50 +02:00
Laurent Destailleur
fccebe7fba Merge pull request #22533 from fmarcet/14.0
Fix: Not load project title when sending email from project
2022-10-13 09:56:08 +02:00
Laurent Destailleur
b6a85271e6 Merge branch '14.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2022-10-13 00:52:33 +02:00
Laurent Destailleur
14edd053fb Merge branch '13.0' of git@github.com:Dolibarr/dolibarr.git into 14.0 2022-10-13 00:52:23 +02:00
Laurent Destailleur
374e56d938 FIX #22538 2022-10-13 00:50:55 +02:00
Laurent Destailleur
467a97c0e9 Merge pull request #22542 from marc-dll/14.0_FIX_update_buyprice_error_reporting
FIX: supplier price update: missing error reporting
2022-10-13 00:37:57 +02:00
jpb
c5c0628ee8 add short cicility 2022-10-11 10:05:56 +02:00
Marc de Lima Lucio
ba94bc146f FIX: supplier price update: missing error reporting 2022-10-11 10:00:23 +02:00
Ferran Marcet
1aa2427fd2 Fix: Not load project title when sending email from project 2022-10-10 11:26:20 +02:00
stickler-ci
837573c6ea Fixing style errors. 2022-10-08 05:53:48 +00:00
Regis Houssin
53502ccd70 FIX better fix for compatibility 2022-10-08 07:49:02 +02:00
Regis Houssin
4bb4d2dc64 FIX remove db object for avoid error with postgresql 2022-10-07 08:54:13 +02:00
Laurent Destailleur
dc898fbc19 Merge pull request #22490 from FHenry/14_fix_warning
fix: remove php warning Non Numeric Value
2022-10-06 11:46:36 +02:00
Laurent Destailleur
a3a9044043 Merge pull request #22492 from ksar-ksar/patch-15
FIX #22241
2022-10-06 11:29:24 +02:00
stickler-ci
82cb267fb8 Fixing style errors. 2022-10-05 14:57:47 +00:00
ksar
a72fff4a5d FIX #22241 2022-10-05 16:39:26 +02:00
Florian HENRY
b2cd5fc3ca fix: remove php warning non_numeric_value 2022-10-05 16:14:59 +02:00
Laurent Destailleur
a8d194ae0d Merge pull request #22477 from marc-dll/14.0_FIX_contact_delete_trigger
FIX: contact deletion: execute trigger before really deleting
2022-10-04 16:57:52 +02:00
Marc de Lima Lucio
787de2fd8a FIX: contact deletion: execute trigger before really deleting 2022-10-03 15:16:41 +02:00
kevin
368f5e57a9 Add a global constant to allow a negative quantity in propal's line 2022-10-02 20:03:42 +02:00
Laurent Destailleur
02cad2c23e Merge pull request #22431 from fmarcet/14.0
Fix: Loss of the purchase price on reception
2022-09-28 20:11:40 +02:00
Laurent Destailleur
f844e3f79b Merge pull request #22442 from FHenry/14.0_fix_bad_Token
fix: Download Accoutancy file result to Expired Token
2022-09-28 20:04:58 +02:00
Florian HENRY
09b3311d45 fix: Download Accoutancy file result to Expired Token 2022-09-28 08:16:50 +02:00
Ferran Marcet
0b586eb0cf Fix: Loss of the purchase price no reception 2022-09-27 11:36:51 +02:00
Laurent Destailleur
9b33bd1b57 Merge pull request #22398 from aspangaro/14p41
FIX Accountancy - Some manuals operations are displayed in subledger
2022-09-25 13:04:22 +02:00
Laurent Destailleur
be770eefdc Update bookkeeping.class.php 2022-09-25 13:04:04 +02:00
Laurent Destailleur
df0e4997d6 Merge pull request #22266 from aspangaro/14p38
FIX #22264 Accountancy - Translation on chart of accounts export
2022-09-25 11:52:44 +02:00
Alexandre SPANGARO
ecb6814e89 FIX Accountancy - Some manuals operations are displayed in subledger 2022-09-25 06:42:51 +02:00
Laurent Destailleur
bf4f6ce0a9 Merge branch '14.0' into 14p38 2022-09-24 19:37:14 +02:00
Laurent Destailleur
9fa43a3bfe Picto are lowercase 2022-09-24 19:36:14 +02:00
Laurent Destailleur
cc10dd2944 Merge pull request #22393 from bloxera/devcampvienna-21799
FIX #21799 inactive companies shall not be selectable for new proposals, orders and invoices
2022-09-24 18:18:10 +02:00
priojk
a0a66dfa6f Apply fix also to supplier invoices 2022-09-24 17:36:43 +02:00
priojk
03f6df206b improve formatting 2022-09-24 17:27:38 +02:00
priojk
33291b7cc7 FIX #21799 inactive companies cannot be selected 2022-09-24 17:19:52 +02:00
Laurent Destailleur
94328771f9 Merge pull request #22369 from aspangaro/14p40
FIX #22263 Accountancy - Account number expected in place of a rowid on parent account on export
2022-09-23 17:28:11 +02:00
Laurent Destailleur
194d7a2110 Update modAccounting.class.php 2022-09-23 17:26:28 +02:00
Alexandre SPANGARO
3fdd34400f FIX #22265 Accountancy - Account number expected in place of a rowid on export 2022-09-23 05:12:21 +02:00
Laurent Destailleur
af0c6c0600 Try restore old travis script 2022-09-20 19:36:47 +02:00
Laurent Destailleur
2664f1bce0 Test 2022-09-20 18:45:17 +02:00
Laurent Destailleur
962018d5c7 Try fix 2022-09-20 18:14:34 +02:00
Laurent Destailleur
ebc3df35ee Try fix 2022-09-20 17:27:32 +02:00
Laurent Destailleur
d39eca4d50 Fix phpcs 2022-09-20 16:36:29 +02:00
Laurent Destailleur
bab7ff256f Try fix travis 2022-09-20 16:35:22 +02:00
Laurent Destailleur
5afbfd0a0a Try fix rounding 2022-09-20 16:20:00 +02:00
Laurent Destailleur
802c06c15e Try travis fix 2022-09-20 16:15:13 +02:00
Laurent Destailleur
48f0a95682 Try fix travis 2022-09-20 15:51:00 +02:00
Laurent Destailleur
5d39f7b6a3 Try to move to bionic 2022-09-20 15:20:17 +02:00
Laurent Destailleur
12ce79ab07 Fix rounding 2022-09-20 14:50:12 +02:00
Laurent Destailleur
dd4be90525 Fix warning 2022-09-20 14:15:41 +02:00
Laurent Destailleur
299649820d Merge pull request #22261 from frederic34/patch-7
Update bonprelevement.class.php
2022-09-20 01:01:28 +02:00
Frédéric FRANCE
81e8b872a8 Update bonprelevement.class.php 2022-09-14 08:51:22 +02:00
Alexandre SPANGARO
7124b5bf75 FIX #22264 Accountancy - Translation on chart of accounts export 2022-09-14 05:16:50 +02:00
Frédéric FRANCE
cba04c9648 Update bonprelevement.class.php 2022-09-13 20:48:59 +02:00
Laurent Destailleur
3dd9eb5a3e Merge pull request #21998 from OPEN-DSI/14.0_fix_preview_button_position_on_documents_list
FIX: Preview button position on documents list (case when the file is too long)
2022-09-09 18:33:57 +02:00
Laurent Destailleur
e7075be29a Merge pull request #22177 from aspangaro/14p38
FIX #21859 - Don't show html balise on list for private/public note
2022-09-09 17:08:22 +02:00
Alexandre SPANGARO
6b4bd6c09e FIX #21859 - Don't show html balise on list for private/public note 2022-09-09 15:56:17 +02:00
Laurent Destailleur
586a61d6b2 Merge pull request #22174 from noec764/FIX_ProductSupplierPriceWithNoStatus
Fix: Product supplier price status  was not recovered
2022-09-09 15:42:44 +02:00
Noé Courtier
ca8c650feb Fix: status of product suplier price was not recovered 2022-09-09 12:20:47 +02:00
Laurent Destailleur
c2772aab8b Merge pull request #22080 from atm-gauthier/fix_fk_expedition_missing_in_updateline
FIX : fk_expedition in $line can be usefull for triggers
2022-09-07 13:26:34 +02:00
Laurent Destailleur
b33b39e3b9 Merge pull request #22091 from aspangaro/14p39
FIX Column label
2022-09-07 13:12:09 +02:00
Laurent Destailleur
f27a49d30c Fix missing var 2022-09-07 12:45:43 +02:00
Gauthier PC portable 024
4d396bbf50 FIX : same thing in deleteline 2022-09-06 09:48:10 +02:00
Alexandre SPANGARO
9a5927d833 FIX Column label 2022-09-06 05:30:35 +02:00
Gauthier PC portable 024
aff9a423ab FIX : fk_expedition in $line can be usefull for triggers 2022-09-05 12:28:59 +02:00
Laurent Destailleur
317e28ff6f Merge pull request #22062 from FHenry/14_fix_22040_bis
fix: bookmark global declaration
2022-09-04 12:35:21 +02:00
Laurent Destailleur
029ea70c53 Merge pull request #22068 from aspangaro/14p38
FIX Dictionary - Display error on cache_vatrates
2022-09-04 12:31:46 +02:00
Laurent Destailleur
8cd265c312 Merge pull request #22069 from aspangaro/14p35
FIX Project - on global view, missing display of ref customer
2022-09-04 12:29:10 +02:00
Alexandre SPANGARO
a542c86bcd FIX Project - on global view, missing display of ref customer 2022-09-04 04:59:31 +02:00
Alexandre SPANGARO
c5b3df23ba FIX Dictionary - Display error on >cache_vatrates 2022-09-04 04:49:09 +02:00
Florian HENRY
d5665e220e fix: better global declaration 2022-09-03 13:00:24 +02:00
Florian HENRY
7fe9784ddb fix: better global declaration 2022-09-03 12:55:54 +02:00
Laurent Destailleur
f25ad40514 Merge pull request #22023 from Easya-Solutions/14.0_fix_wrong_total_in_custom_category_report
14.0 fix wrong total in custom category report
2022-09-02 11:42:01 +02:00
Alexandre SPANGARO
16e1c7ea71 Update result.php
Fixed Stickler
2022-09-02 10:25:12 +02:00
Thomas Negre
f1ce732639 empty commit to re-launch stickler 2022-09-01 18:06:35 +02:00
Thomas Negre
ce78e0164a Fix: When a custom compta group would be unactive, its code would stay in the computed formula. This would lead to wrong totals if the code is a number. 2022-09-01 17:49:05 +02:00
Thomas Negre
30ce816c0c Fix: On a not configured personalized accounting group, the group code would be used in the formula. 2022-09-01 17:49:04 +02:00
kamel
88b5594af3 FIX: Preview button position on documents list (case when the file is too long) 2022-08-31 10:03:58 +02:00
atm-steve
d3e0e1f695 fix ndf validate with main entity 2022-07-04 17:14:01 +02:00
6840 changed files with 212034 additions and 369565 deletions

View File

@@ -26,9 +26,8 @@ Default **language here is english**. So please prepare your contributions in en
1. [Fork](https://help.github.com/articles/fork-a-repo) the [GitHub repository](https://github.com/Dolibarr/dolibarr).
2. Clone your fork.
3. Choose a branch(See the [Branches](#branches) section below).
4. Read our developer documentation on the [Dolibarr Wiki](https://wiki.dolibarr.org/index.php?title=Developer_documentation).
5. Commit and push your changes.
6. [Make a pull request](https://help.github.com/articles/creating-a-pull-request).
4. Commit and push your changes.
5. [Make a pull request](https://help.github.com/articles/creating-a-pull-request).
<span id="branches" name="branches"></span>
### Branches
@@ -117,13 +116,13 @@ a process to follow to optimize the chance to have PRs merged efficiently...
Also, some code changes need a prior approbation:
* if you want to include a new external library (into htdocs/includes directory), please ask before to the core project manager (mention @dolibarr-jedi in your issue) to see if such a library can be accepted.
* if you want to include a new external library (into htdocs/includes directory), please ask before to the core project manager (mention @dolibarr-yoda in your issue) to see if such a library can be accepted.
* if you add a new tables or fields, you MUST first submit a standalone PR with the data structure changes you plan to add/modify (and only data structure changes). Start development only once this data structure has been accepted.
* if you add a new table, you must first create a page on https://wiki.dolibarr.org/index.php/Category:Table_SQL (copy an existing page changing its name to see it into this index page). Then ask the project manager (@dolibarr-yoda) if the new data model you plan to add is compatible with curent and future works in progress and can be accepted as you suggest.
Once a PR has been submitted, you may need to wait for its integration. It is common that the project leader let the PR open for a long delay to allow every developer discuss about the PR (A label is added in such a case).
If the label of PR start with "Draft" or "WIP" (Work In Progress), it will not be analyzed for merging until you change the label of the PR (but it can be analyzed for discussion).
If the label of PR start with "Draft" or "WIP" (Work In Progress), it will not be analyzed for merging until you change the label of PR (but it can be analyzed for discussion).
If your PR has errors reported by the Continuous Integration Platform, it means your PR is not valid and nothing will be done with it. It will be kept open to allow developers to fix this, or it may be closed several month later. Don't expect anything on your PR if you have such errors, you MUST first fix the Continuous Integration error to have it taken into consideration.

2
.github/FUNDING.yml vendored
View File

@@ -2,4 +2,4 @@
open_collective: dolibarr
custom: https://wiki.dolibarr.org/index.php/Subscribe
github: [eldy]
# github: [eldy]

35
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@@ -0,0 +1,35 @@
---
name: Bug report
about: Create a report to help us fix something that is broken
title: ''
labels: Bug
assignees: ''
---
# Instructions
*This is a template to help you report good issues. You may use [Github Markdown](https://help.github.com/articles/getting-started-with-writing-and-formatting-on-github/) syntax to format your issue report.*
*Please:*
- *replace the bracket enclosed texts with meaningful information*
- *remove any unused sub-section*
# Bug
[*Short description*]
## Environment
- **Version**: [*Affected Dolibarr version(s)*]
- **OS**: [*Server OS type and version*]
- **Web server**: [*Webserver type and version*]
- **PHP**: [*PHP version*]
- **Database**: [*Database type and version*]
- **URL(s)**: [*Affected URL(s)*]
## Expected and actual behavior
[*Verbose description*]
## Steps to reproduce the behavior
[*Verbose description*]
## [Attached files](https://help.github.com/articles/issue-attachments) (Screenshots, screencasts, dolibarr.log, debugging informations…)
[*Files*]

View File

@@ -1,71 +0,0 @@
name: Bug report
description: Create a report to help us fix something that is broken
labels: ["Bug"]
body:
- type: markdown
attributes:
value: |
This is a template to help you report good issues. You may use [Github Markdown](https://help.github.com/articles/getting-started-with-writing-and-formatting-on-github/) syntax to format your issue report.
- type: textarea
id: bug
attributes:
label: Bug
description: Please give a short description of the bug
validations:
required: true
- type: input
id: environment-version
attributes:
label: Environment Version
description: Affected Dolibarr version(s)
- type: input
id: environment-os
attributes:
label: Environment OS
description: Server OS type and version
- type: input
id: environment-webserver
attributes:
label: Environment Web server
description: Webserver type and version
- type: input
id: environment-php
attributes:
label: Environment PHP
description: PHP version
- type: input
id: environment-database
attributes:
label: Environment Database
description: Database type and version
- type: input
id: environment-urls
attributes:
label: Environment URL(s)
description: Affected URL(s)
- type: textarea
id: expected-behaviour
attributes:
label: Expected and actual behavior
description: Verbose description
- type: textarea
id: reproduce
attributes:
label: Steps to reproduce the behavior
description: Verbose description
- type: textarea
id: files
attributes:
label: Attached files
description: Screenshots, screencasts, dolibarr.log, debugging informations

View File

@@ -0,0 +1,27 @@
---
name: Feature request
about: Suggest a new idea for this project
title: ''
labels: Feature request
assignees: ''
---
# Instructions
*This is a template to help you report good issues. You may use [Github Markdown](https://help.github.com/articles/getting-started-with-writing-and-formatting-on-github/) syntax to format your issue report.*
*Please:*
- *replace the bracket enclosed texts with meaningful information*
- *remove any unused sub-section*
# Feature Request
[*Short description*]
## Use case
[*Verbose description*]
## Suggested implementation
[*Verbose description*]
## Suggested steps
[*List of tasks to achieve goal*]

View File

@@ -1,35 +0,0 @@
name: Feature request
description: Suggest a new idea for this project
labels: ["Feature request"]
body:
- type: markdown
attributes:
value: |
This is a template to help you report good issues. You may use [Github Markdown](https://help.github.com/articles/getting-started-with-writing-and-formatting-on-github/) syntax to format your issue report.
- type: textarea
id: feature-request
attributes:
label: Feature Request
description: Short description
validations:
required: true
- type: textarea
id: use-case
attributes:
label: Use case
description: Verbose description
- type: textarea
id: suggested-implementation
attributes:
label: Suggested implementation
description: Verbose description
- type: textarea
id: suggested-steps
attributes:
label: Suggested steps
description: List of tasks to achieve goal

View File

@@ -1,18 +1,18 @@
# Instructions
*This is a template to help you make good pull requests. You may use [Github Markdown](https://help.github.com/articles/getting-started-with-writing-and-formatting-on-github/) syntax to format your issue report.*
*Please:*
- *only keep the "FIX", "CLOSE" or "NEW" section* (use uppercase to have the PR appears into the ChangeLog, lowercase will not appears)
- *only keep the "Fix", "Close" or "New" section*
- *follow the project [contributing guidelines](/.github/CONTRIBUTING.md)*
- *replace the bracket enclosed texts with meaningful information*
- *replace the bracket enclosed textswith meaningful informations*
# FIX|Fix #[*issue_number Short description*]
# Fix #[*issue_number Short description*]
[*Long description*]
# CLOSE|Close #[*issue_number Short description*]
# Close #[*issue_number Short description*]
[*Long description*]
# NEW|New [*Short description*]
# New [*Short description*]
[*Long description*]

View File

@@ -1,6 +0,0 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"

View File

@@ -5,14 +5,11 @@ on:
schedule:
- cron: "0 20 * * *"
permissions:
contents: read
jobs:
exakat:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v2
- name: Exakat
uses: docker://exakat/exakat-ga
with:

3
.gitignore vendored
View File

@@ -42,8 +42,6 @@ htdocs/includes/sebastian/
htdocs/includes/squizlabs/
htdocs/includes/webmozart/
htdocs/.well-known/apple-developer-merchantid-domain-association
/factory/
/output/
# Node Modules
build/yarn-error.log
@@ -57,3 +55,4 @@ yarn.lock
package-lock.json
doc/install.lock
/factory/

View File

@@ -18,10 +18,9 @@ filter:
- dev/*
- doc/*
- documents/*
- htdocs/includes/*
- node_modules/*
- test/*
dependency_paths:
- htdocs/includes/*
paths:
- htdocs/*
- scripts/*

View File

@@ -9,6 +9,8 @@ dist: xenial
language: php
scan_logs: false
git:
depth: 1
@@ -57,7 +59,7 @@ jobs:
php: nightly
env: DB=mysql
- stage: PHP Dev
if: type = push AND branch = 15.0
if: type = push AND branch = 14.0
php: nightly
env: DB=mysql
@@ -93,26 +95,23 @@ install:
echo
- |
echo "Installing Composer dependencies - PHP Unit, Parallel Lint, PHP CodeSniffer, PHP Vardump check - for $TRAVIS_PHP_VERSION"
echo "Installing Composer dependencies - PHP Unit, Parallel Lint, PHP CodeSniffer - for $TRAVIS_PHP_VERSION"
if [ "$TRAVIS_PHP_VERSION" = '5.6' ]; then
composer -n require phpunit/phpunit ^5 \
php-parallel-lint/php-parallel-lint ^1 \
php-parallel-lint/php-console-highlighter ^0 \
php-parallel-lint/php-var-dump-check ~0.4 \
squizlabs/php_codesniffer ^3
fi
if [ "$TRAVIS_PHP_VERSION" = '7.0' ] || [ "$TRAVIS_PHP_VERSION" = '7.1' ] || [ "$TRAVIS_PHP_VERSION" = '7.2' ]; then
composer -n require phpunit/phpunit ^6 \
php-parallel-lint/php-parallel-lint ^1 \
php-parallel-lint/php-console-highlighter ^0 \
php-parallel-lint/php-var-dump-check ~0.4 \
squizlabs/php_codesniffer ^3
fi
if [ "$TRAVIS_PHP_VERSION" = '7.3' ] || [ "$TRAVIS_PHP_VERSION" = '7.4' ] || [ "$TRAVIS_PHP_VERSION" = '7.4.22' ]; then
composer -n require phpunit/phpunit ^7 \
php-parallel-lint/php-parallel-lint ^1.2 \
php-parallel-lint/php-console-highlighter ^0 \
php-parallel-lint/php-var-dump-check ~0.4 \
squizlabs/php_codesniffer ^3
fi
# phpunit 9 is required for php 8
@@ -120,7 +119,6 @@ install:
composer -n require --ignore-platform-reqs phpunit/phpunit ^7 \
php-parallel-lint/php-parallel-lint ^1.2 \
php-parallel-lint/php-console-highlighter ^0 \
php-parallel-lint/php-var-dump-check ~0.4 \
squizlabs/php_codesniffer ^3
fi
echo
@@ -170,10 +168,6 @@ before_script:
which phpcs
phpcs --version | head -
phpcs -i | head -
# Check PHP Vardump check version
echo "PHP Vardump check version"
which var_dump_check
var_dump_check --version
# Check PHPUnit version
echo "PHPUnit version"
which phpunit
@@ -305,17 +299,6 @@ script:
set +e
echo
- |
echo "Checking missing debug"
# Ensure we catch errors
set -e
# Exclusions are defined in the ruleset.xml file
if [ "$TRAVIS_PULL_REQUEST" = "false" ] && [ "$TRAVIS_PHP_VERSION" = "7.4.22" ]; then
var-dump-check --extensions php --tracy --exclude htdocs/includes --exclude test/ --exclude htdocs/public/test/ --exclude htdocs/core/lib/functions.lib.php .
fi
set +e
echo
- |
export INSTALL_FORCED_FILE=htdocs/install/install.forced.php
echo "Setting up Dolibarr $INSTALL_FORCED_FILE to test installation"
@@ -430,12 +413,6 @@ script:
php upgrade.php 13.0.0 14.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade13001400.log
php upgrade2.php 13.0.0 14.0.0 > $TRAVIS_BUILD_DIR/upgrade13001400-2.log
php step5.php 13.0.0 14.0.0 > $TRAVIS_BUILD_DIR/upgrade13001400-3.log
php upgrade.php 14.0.0 15.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade14001500.log
php upgrade2.php 14.0.0 15.0.0 > $TRAVIS_BUILD_DIR/upgrade14001500-2.log
php step5.php 14.0.0 15.0.0 > $TRAVIS_BUILD_DIR/upgrade14001500-3.log
php upgrade.php 15.0.0 16.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade15001600.log
php upgrade2.php 15.0.0 16.0.0 > $TRAVIS_BUILD_DIR/upgrade15001600-2.log
php step5.php 15.0.0 16.0.0 > $TRAVIS_BUILD_DIR/upgrade15001600-3.log
ls -alrt $TRAVIS_BUILD_DIR/
- |

View File

@@ -140,6 +140,18 @@ source_file = htdocs/langs/en_US/exports.lang
source_lang = en_US
type = MOZILLAPROPERTIES
[dolibarr.externalsite]
file_filter = htdocs/langs/<lang>/externalsite.lang
source_file = htdocs/langs/en_US/externalsite.lang
source_lang = en_US
type = MOZILLAPROPERTIES
[dolibarr.ftp]
file_filter = htdocs/langs/<lang>/ftp.lang
source_file = htdocs/langs/en_US/ftp.lang
source_lang = en_US
type = MOZILLAPROPERTIES
[dolibarr.help]
file_filter = htdocs/langs/<lang>/help.lang
source_file = htdocs/langs/en_US/help.lang
@@ -158,6 +170,12 @@ source_file = htdocs/langs/en_US/hrm.lang
source_lang = en_US
type = MOZILLAPROPERTIES
[dolibarr.intracommreport]
file_filter = htdocs/langs/<lang>/intracommreport.lang
source_file = htdocs/langs/en_US/intracommreport.lang
source_lang = en_US
type = MOZILLAPROPERTIES
[dolibarr.install]
file_filter = htdocs/langs/<lang>/install.lang
source_file = htdocs/langs/en_US/install.lang
@@ -170,12 +188,6 @@ source_file = htdocs/langs/en_US/interventions.lang
source_lang = en_US
type = MOZILLAPROPERTIES
[dolibarr.intracommreport]
file_filter = htdocs/langs/<lang>/intracommreport.lang
source_file = htdocs/langs/en_US/intracommreport.lang
source_lang = en_US
type = MOZILLAPROPERTIES
[dolibarr.knowledgemanagement]
file_filter = htdocs/langs/<lang>/knowledgemanagement.lang
source_file = htdocs/langs/en_US/knowledgemanagement.lang
@@ -380,18 +392,18 @@ source_file = htdocs/langs/en_US/stripe.lang
source_lang = en_US
type = MOZILLAPROPERTIES
[dolibarr.supplier_proposal]
file_filter = htdocs/langs/<lang>/supplier_proposal.lang
source_file = htdocs/langs/en_US/supplier_proposal.lang
source_lang = en_US
type = MOZILLAPROPERTIES
[dolibarr.suppliers]
file_filter = htdocs/langs/<lang>/suppliers.lang
source_file = htdocs/langs/en_US/suppliers.lang
source_lang = en_US
type = MOZILLAPROPERTIES
[dolibarr.supplier_proposal]
file_filter = htdocs/langs/<lang>/supplier_proposal.lang
source_file = htdocs/langs/en_US/supplier_proposal.lang
source_lang = en_US
type = MOZILLAPROPERTIES
[dolibarr.ticket]
file_filter = htdocs/langs/<lang>/ticket.lang
source_file = htdocs/langs/en_US/ticket.lang

View File

@@ -24,35 +24,34 @@ Component Version License GPL Compatible
-------------------------------------------------------------------------------------
PHP libraries:
ADOdb-Date 0.36 Modified BSD License Yes Date convertion (not into rpm package)
CKEditor 4.12.1 LGPL-2.1+ Yes Editor WYSIWYG
EvalMath 1.0 BSD Yes Safe math expressions evaluation
Escpos-php 2.2 MIT License Yes Thermal receipt printer library, for use with ESC/POS compatible printers
GeoIP2 0.2.0 Apache License 2.0 Yes Lib to make geoip convert
Mobiledetect 2.8.39 MIT License Yes Detect mobile devices browsers
Mobiledetect 2.8.34 MIT License Yes Detect mobile devices browsers
NuSoap 0.9.5 LGPL 2.1+ Yes Library to develop SOAP Web services (not into rpm and deb package)
PEAR Mail_MIME 1.8.9 BSD Yes NuSoap dependency
ParseDown 1.6 MIT License Yes Markdown parser
PCLZip 2.8.4 LGPL-3+ Yes Library to zip/unzip files
PHPDebugBar 1.15.1 MIT License Yes Used only by the module "debugbar" for developers
PHPSpreadSheet 1.8.2 LGPL-2.1+ Yes Read/Write XLS files, read ODS files
php-iban 4.1 LGPL-3+ Yes Parse and validate IBAN (and IIBAN) bank account information in PHP
php-iban 1.4.7 LGPL-3+ Yes Parse and validate IBAN (and IIBAN) bank account information in PHP
PHPoAuthLib 0.8.2 MIT License Yes Library to provide oauth1 and oauth2 to different service
PHPPrintIPP 1.3 GPL-2+ Yes Library to send print IPP requests
PSR/Logs 1.0 MIT License Yes Library for logs (used by DebugBar)
PSR/Logs 1.0 Library for logs (used by DebugBar)
PSR/simple-cache ? MIT License Yes Library for cache (used by PHPSpreadSheet)
Restler 3.1.1 LGPL-3+ Yes Library to develop REST Web services (+ swagger-ui js lib into dir explorer)
Sabre 3.2.2 BSD Yes DAV support
Swift Mailer 5.4.2-DEV MIT License Yes Comprehensive mailing tools for PHP
Symfony/var-dumper ??? MIT License Yes Library to make var dump (used by DebugBar)
Stripe 7.67.0 MIT Licence Yes Library for Stripe module
TCPDF 6.3.2 LGPL-3+ Yes PDF generation
TCPDI 1.0.0 LGPL-3+ / Apache 2.0 Yes FPDI replacement
JS libraries:
Ace 1.4.14 BSD Yes JS library to get code syntaxique coloration in a textarea.
ChartJS 3.7.1 MIT License Yes JS library for graph
CKEditor 4.18 LGPL-2.1+ Yes Editor WYSIWYG
jQuery 3.6.0 MIT License Yes JS library
jQuery UI 1.13.1 GPL and MIT License Yes JS library plugin UI
Ace 1.4.8 BSD Yes JS library to get code syntaxique coloration in a textarea.
ChartJS 2.9.4 MIT License Yes JS library for graph
jQuery 3.5.1 MIT License Yes JS library
jQuery UI 1.12.1 GPL and MIT License Yes JS library plugin UI
jQuery select2 4.0.13 GPL and Apache License Yes JS library plugin for sexier multiselect. Warning: 4.0.6+ create troubles without patching css
jQuery blockUI 2.70.0 GPL and MIT License Yes JS library plugin blockUI (to use ajax popups)
jQuery Colorpicker 1.1 MIT License Yes JS library for color picker for a defined list of colors

588
ChangeLog
View File

@@ -3,581 +3,6 @@ English Dolibarr ChangeLog
--------------------------------------------------------------
***** ChangeLog for 16.0.0 compared to 15.0.0 *****
For users:
---------------
NEW: PHP 8.1 compatibility:
Warning: Application works correctly with PHP8 and 8.1 but you may experience a lot of PHP warning into the PHP server log files (depending
on the PHP setup). Removal of all PHP warnings on server side is planned for v17.
NEW: Support for recurring purchase invoices.
NEW: #20292 Include German public holidays
NEW: Can show ZATCA QRCode on PDFs
NEW: Can show Swiss QR Code on PDFs
NEW: #17123 added ExtraFields for Stock Mouvement
NEW: #20609 : new massaction to assign a sale representatives on a selection of thirdparties
NEW: #20653 edit discount pourcentage for all lines in one shot
NEW: Accept 'auto' for ref of object on import of purchase order/proposal
NEW: Accountancy - Add more filters and info on page to bind accounting accounts
NEW: Accountancy - Add subledger account when we generate a transaction with a deposit invoice
NEW: Accountancy - Add a massaction to preselect an account (customer and supplier list)
NEW: ACE Editor is restored at same cursor position after a save.
NEW: Add "addMoreActionsButtons" hook to subscription form
NEW: Add an option in GUI to show a Quick add button into top menu bar
NEW: Module Recruitment - Add a public page with all list of open job positions.
NEW: Module Recruitment - Add a tab with list of application on the jobposition file.
NEW: Add a workflow to auto link contract on a ticket
NEW: Add column date of Signature on proposal list
NEW: Add column template invoice in invoice list
NEW: Add column "Total HT" to products array on document creation card
NEW: ADD configuration for text color of button action
NEW: Add constant to hide categories in TakePos
NEW: Add constant to show category description in TakePos
NEW: Add constant to show only the products in stock in TakePos
NEW: Add entity filter in exports
NEW: Show the event block on recurring invoices #20870
NEW: Add filter "opportunity status" on statistics of projects.
NEW: Add firstname, lastname and max number of attendees for module "Event Organization"
NEW: add margin info in proposal and order list
NEW: Add massaction "Edit Extrafield" for Product
NEW: Add more fields to detect duplicate during import of thirdparties
NEW: Add option to foce delivery on email for purchase order receipt to yes
NEW: Add param boder table for md theme
NEW: Add param color button action
NEW: Add possibility to create contract from invoice
NEW: Add possibility with constant MAIN_LOGIN_BADCHARUNAUTHORIZED to define bad character unauthorized into login name
NEW: Add private and public notes on tax files.
NEW: Add status "Obsolete" to KM articles
NEW: Add substitutions "user numbers"
NEW: Add the possibility to add sub-BOMs to BOM
NEW: allow a ticket to be automatically marked as read when created from backend.
NEW: allow cut&paste as real numeric value to excel
NEW: A public form to send a message and create a lead is available
NEW: automatically set totally received status in reception
NEW: Auto set invoice paid when adding credit not and remain to pay is 0
NEW: Availibility dictionnary has a new column unit and number
NEW: barcode rule to insert product in takepos
NEW: Can change value of AWP during the inventory
NEW: Can enter price with tax for predefined products on purchase objects
NEW: Can filter on a thirdparty on product statistics
NEW: Can removed doc templates from setup page of thirdparty
NEW: Can set the parent company during the creation of thirdparty (action=add of societe/card.php)
NEW: Can use ! to make a search that exclude a string
NEW: Change in theme colors does not need to use the refresh button
NEW: clean values and amount in FEC import
NEW: const MAIL_MASS_ACTION_ADD_LAST_IF_MAIN_DOC_NOT_FOUND for mailing mass action
NEW: Contact filter project list
NEW: Create contract from invoice
NEW: create third-party with contact if not found on public ticket
NEW: Default value for MAIN_SECURITY_CSRF_WITH_TOKEN is now 2 (GET are also protected agains CSRF attacks)
NEW: deposit payment terms: add field into dictionary admin page to define default percentage of deposit.
NEW: Dictionaries - add possibility to manage countries in EEC
NEW: display errors in a message box after generating documents
NEW: Display physical and virtual stock of the products when creating OF from a BOM
NEW: Display product ref in "Object link" product tab for BOM
NEW: Enhance the import. Can use 'auto' for the ref (import of orders)
NEW: Events on Proposal to Return to Draft
NEW: Page to list expense report payments
NEW: JS inventory autocalc input
NEW: language support for more emailing target selectors
NEW: leave requests: add field into type dictionary to block request if balance is negative
NEW: MAIN_MAIL_AUTOCOPY_TO can accept several email and special keys
NEW: MAIN_SEARCH_CAT_OR_BY_DEFAULT const for search by category
NEW: Mass action "Close shipments"
NEW: Module website now supports the multicompany module
NEW: More mode for THEME_TOPMENU_DISABLE_IMAGE (2, 3, ...)
NEW: Add option to move checkbox column as first column on Thirdparty list (only few screens)
NEW: Add tabs for nets Bom
NEW: on redirect of page in website module, GET parameters are kept.
NEW: optional display warning icons on ticket list
NEW: option to default check "notify tier at creation" in ticket module
NEW: option update prices on proposal cloning
NEW: payment conditions enabling semi-automatic deposit creation (Issue #18439)
NEW: possibility to consume multiple batch
NEW: Reverse movement product consumption
NEW: Send email to the supplier order contact
NEW: New permission to report time on timesheet.
NEW: SEPA XML - option to place payment Type Info at Credit transfer Transaction level
NEW: Show number of votes into the label of tab "Results" of a survey
NEW: Show product reference in Takepos
NEW: Some core tables are created only at module activation
NEW: split consumption line on MO
NEW: stock filter in reassort lists
NEW: stock limit in stock export CSV
NEW: Sub-bom are availables
NEW: Supplier order - Show ref supplier of reception in linked object block
NEW: support user_modif in order
NEW: TakePos - pagination on search results
NEW: The backup tools has an "lowmemory" option for mysqldump on large database
NEW: The 'reposition' class works on ajax constantonoff that make redirects
NEW: Thirdparty - Add rules "customer accountancy code" is mandatory to validate invoice
NEW: thumbnail field in product list
NEW: total mark rate in list
NEW: uncheck "send message" by default on a ticket when private messages has been checked
NEW: VAT Report by month - Show detail by rate and also by code
NEW: Ticket triggers: allow to automatically send messages on new tickets
NEW: Accountancy - Add hidden feature for accounting reconciliation
NEW: Can store the session into database (instead of beeing managed by PHP)
NEW: Added MMK currency (Myanmar Kyat)
NEW: On a form to send an email, we show all emails of contacts of object
Modules
NEW: Module Partnership Management
NEW: Module Event Organization Management
For developers or integrators:
------------------------------
NEW: dol_uncompress() supports more extensions (.gz, .bz2, .zstd). Only .zip was supported before.
NEW: Implement a generic method for Kaban views
NEW: Upgrade chartjs library to 3.7.1
NEW: update rank line is possible on API for customer invoices, sales orders and supplier invoice
NEW: stripe element with more gateways
NEW: solde() function evolution to be able to get solde until a chosen date
NEW: Suggest a way to run upgrade per entities.
NEW: Support html content for multiselect component.
NEW: ModuleBuilder - Add tabs view in module builder
NEW: ModuleBuilder - More feature that can be modifed after module generation
NEW: Hook getNomUrl available everywhere in tooltip of ref links
NEW: Identification of tr is possible with by attribute data-id on some pages
NEW: Import with select boxes V2
NEW: Can update rank of invoice, proposal and order lines with API update
NEW: Can use current entity filter on 'chkbxlst'
NEW: Creation of the function select_bom() used to display bom select list
NEW: add printFieldListWhere hook in product reassort card
NEW: Add trigger and event on completely received status change
NEW: Add utility function send backup by mail
NEW: add WordPress OAuth to save a token (not SSO)
NEW: A module can embed a sql script run at each Dolibarr upgrade
NEW: API Proposals - Add POST lines
NEW: API REST filter states by country
NEW: Add option INVOICEREC_SET_AUTOFILL_DATE_START/END
NEW: Add option MAIN_API_DEBUG to save API logs into a file
NEW: Add param to keep the robot=index meta tag on public pages
NEW: Add method hintindex() in database handlers.
NEW: add modifications for new function "$db->prefix()"
NEW: addMoreActionsButtonsList hook for button in list
NEW: Add API to get a template invoice
NEW: Standardize a lot of code.
NEW: #20736 Allow extrafields SQL filters on REST API product lookup
NEW: #19294 implement detailed timespent in task of project API
NEW: Add a protection into PHPunit to avoid to forget a var_dump
NEW: Add datem and type parameters to API to create movements
NEW: Add hidden option on contract PDF line to hide qty and price
NEW: Option MAIL_MASS_ACTION_ADD_LAST_IF_MAIN_DOC_NOT_FOUND to send last document in mass mailing action
NEW: Add hooks: selectContactListWhere hook, selectThirdpartyListWhere hook
NEW: TakePos - add hooks complete product display
NEW: TakePos - add hooks for cart display
NEW: TakePos - add hooks to complete ajax return array
NEW: Add hook before the public ticket list
NEW: Add hook doaction in takepos invoice
NEW: Add Hook for Notif
NEW: Add hook for more buttons
NEW: Add hook printFieldListWhere in "show_contacts" function
NEW: Add hook printFieldWhere in load_state_board function
NEW: Add hooks contact tab badge and hooks parameter for avoid conflicts
NEW: Add hook selectProductsListWhere in select_produits_list function
NEW: Add hooks in commercial index
NEW: Add hooks in customers and products boxes
NEW: Add hooks in thirdparty index page
NEW: Add hooks on project task time page
NEW: Add hooks on salaries and sociales card
NEW: Add hooks select product list and select thirdparty list function
NEW: Add hook to getSellPrice function
Following changes may create regressions for some external modules, but were necessary to make Dolibarr better:
* There is a new specific permission to be allowed to enter timesheets. If you use timesheet, don't forget to give the new permission (disable and
enable the module project if it is not visible).
* The default value for MAIN_SECURITY_CSRF_WITH_TOKEN has been set to 2. It means any POST and any GET request that contains the "action" or "massaction"
with a value of a sensitive action must also a valid token parameter (With previous value 1, only POST was concerned). Note: With value 3, any URL
with parameter "action" or "massaction" need the token, whatever is the value of the action.
* verifCond('stringtoevaluate') now return false when string contains a bad syntax content instead of true.
* The deprecated method thirdparty_doc_create() has been removed. You can use the generateDocument() instead.
* All triggers with a name XXX_UPDATE have been renamed with name XXX_MODIFY for code consistency purpose.
* Rename build_path_from_id_categ() into buildPathFromId() and set method to private.
* Move massaction 'confirm_createbills' from actions_massactions.inc.php to commande/list.php
* Method fetch_all_resources(), fetch_all_used(), fetch_all_available() of DolResource has been removed (they were not used by core code).
* Method fetch_all of DolResource has been renamed into fetchAll() to match naming conventions.
* The hook 'upgrade' and 'doUpgrade2" has been renamed 'doUpgradeBefore' and 'doUpgradeAfterDB'. A new trigger 'doUpgradeAfterFiles' has been introduced.
* The context hook 'suppliercard' when on the supplier tab of a thirdparty has been renamed into 'thirdpartysupplier'
***** ChangeLog for 15.0.3 compared to 15.0.2 *****
FIX: 15.0: modules cannot declare more than 1 cron job using the same method with different parameters
FIX: 15 fix graph ficheinter status
FIX: #18704
FIX: #20444
FIX: #20448 missing preg_replace for vat rate when adding a free line
FIX: #20476 migration postgresql 13.0.x to 14.0.x packaging type
FIX: #20487 missing letter D in constant THIRDPARTIES_DISABLE_RELATED_…
FIX: #20487 missing letter D in constant THIRDPARTIES_DISABLE_RELATED_OBJECT_TAB
FIX: #20527 Accountancy - Unbalanced entry proposed when an employee are declared on a social contribution
FIX: #20527 Accountancy Unbalanced entry proposed when an employee are declared on social contribution
FIX: #20621 signature online with proposal with n page.
FIX: #20696
FIX: #20828
FIX: #20886 : manage durations in list_print_total.tpl.php
FIX: #20902
FIX: #21051
FIX: #21093
FIX: #21138
FIX: #21140
FIX: #21174
FIX: #21323
FIX: #21472 On the bank transfer lists, a change of page switches to the lists of the direct debit module
FIX: #21495
FIX: #21518
FIX: Accountancy - Label of VAT account is empty
FIX: Accountancy - Model account list - Problem of CSRF
FIX: Accountancy - Partitioning of the entity on an automatic binding
FIX: add missing thead, th and id on table
FIX: backport commit 5b3fcc5e43979b1b0789bf81fb8f1b2b59c93056, chkbxlst cannot be emptied
FIX: Bank account not set when creating invoice from order
FIX: Bank transfer - Link on code supplier invoice was bad
FIX: Can convert a partially closed down payment when close for
FIX: class center linkedObjectblock order date
FIX: count elements in invoice list (Issue #21444)
FIX: Customer price non numeric warning when 0 vat.
FIX: errors in getLinesArray()
FIX: False alert of WAF when there is "set" into some URL action=update.
FIX: Intervention graph by status on ficheinter Index page
FIX: Intervention url link into Commerce index
FIX: Fix get origin from other than supplier proposal when add a new supplier proposal
FIX: Fix show errors in card
FIX: fourn/commande/card.php Added "$object" parameter to $formfile->showdocuments call
FIX: french traductions for payment methods
FIX: hook for dol_format_address
FIX: Index page for "Sales" give wrong URL link to Intervention
FIX: issue Dolibarr#21495 for v15
FIX: label and get_substitutionarray_each_var_object on ODT generation
FIX: load product stock in inventory lines
FIX: missing morecss for multiselectarray
FIX: missins time spent list menu
FIX: new member subscription: bank account and payment mode might be hidden
FIX: ODT generation of BOM document
FIX: ODT tags for subobjects {object_subobject_yyy} was not working.
FIX: qty received label in Squille PDF model
FIX: rank duplicate on mass action invoice from multiple orders
FIX: regression + add $forceentity parameter
FIX: regression PR #20713
FIX: security breach if we have same ref number in multiple entities
FIX: selection of type of invoice
FIX: Send remind to pay invoice only on validated invoices
FIX: Show sellist type of extrafield when none category selected
FIX: signature online with proposal with n page.
FIX: sql error when PRODUCT_USE_SUPPLIER_PACKAGING enabled.
FIX: sql order
FIX: trash icon on crontask list to do not work
FIX: v15 linked object block center order date
FIX: Warning on attribut
FIX: We must remove empty values of $features array in fetchByProductCombination2ValuePairs() because some products can use only several attributes in their variations and not necessarily all. In this case, fetch doesn't work without my correction
FIX: with callback function
FIX: xml file for company with special chars in name
FIX: Zatca QR code must use company name/vat
***** ChangeLog for 15.0.2 compared to 15.0.1 *****
FIX: #19777 #20281
FIX: #20140 #20301
FIX: #20279 Accountancy - PostGreSQL - Error on mass update lines already binded
FIX: #20476 migration postgresql 14.0.x to 15.0.x packaging type
FIX: #20733 Inventory: Do not use batch qty even if present if batch module is disabled.
FIX: action comm list: holiday last day not included + handle duration with halfdays
FIX: Add missing entity on salary's payment
FIX: Add 'recruitment' into check array
FIX: add tools to fix bad bank amount in accounting with multicurrency
FIX: assign member cateogry to a member
FIX: backport
FIX: bad bank amount in accounting with multicurrency
FIX: Bad condition on remx
FIX: Bad filter on date on salary list
FIX: bad link to add a customer price (token duplicated)
FIX: bad status of member on widget by type and status
FIX: better error management at product selling price update
FIX: Can't edit bank record
FIX: check mandatory thirdparty fields for mass action
FIX: check thirdparty object loaded and properties exist
FIX: comment
FIX: compatibility for ticket number sharing
FIX: compatibility with multicompany sharings
FIX: contact card: single extrafield update failed
FIX: country not visible into list of states
FIX: Delete an extrafield where type is double
FIX: deprecated module are not more viewed as external modules
FIX: Disable customer type by default if type prospect/customer is disabled
FIX: each time we create a supplier order, we need to give it a ref_supplier
FIX: Error management
FIX: fatal error for $db usage in tpl
FIX: filter into the list of product lots
FIX: Filter on Object Referent page give CRSF page
FIX: Fix default options ($hidedetails, $hidedesc, $hideref) with globales when generate PDF in mass actions
FIX: Fix search by filters
FIX: Fix the adding of lines in the create invoice functions
FIX: forgotten form confirm before various payment delete
FIX: holiday/leave requests: write status change emails in HTML
FIX: include discount price for PMP after a reception (Issue #20029)
FIX: incrementation
FIX: in salary stats and payment list, we must check right perms as well as salary list
FIX: intervention entity missing
FIX: label tax cat trad
FIX: Mass action ship orders
FIX: missing advanced perms
FIX: missing call to executeHooks()
FIX: Missing entity on adding new VAT
FIX: missing hook for row ordering
FIX: missing hook parameter ($possiblelinks)
FIX: missing parenthesis
FIX: missing picto in combo of mass actions of thirdparties.
FIX: missing signature library when ODT model is used
FIX: Missing unset fields after updateline expensereport
FIX: ModuileBuilder - Fix getLinesArray() error reporting
FIX: Move delete task time trigger position
FIX: Navigation between invoices
FIX: No empty line inserted into accounting_bookkeeping
FIX: Numbering of sepa files
FIX: object cloning: set unique extrafield values to null to prevent duplicates
FIX: on update with action reminder in future there is user key error
FIX: originproductline array td identification data-id
FIX: out of memory when more than 100 000 invoices.
FIX: permit access to medias when logged in a different entity
FIX: phpcs
FIX: project creation prevented if PROJECTLEADER contact role renamed, de-activated or deleted
FIX: project timesheet by week: cleanup unused code
FIX: project timesheet: public holidays offset by 1 day
FIX: project timesheets: assume Saturday and Sunday as default weekend days when working days conf is empty or badly formed
FIX: propal list: bad error management when setting "not signed" mass action
FIX: propal list mass action translations and error management (v14 edition)
FIX: propal list: missing not signed massaction translation keys for transifex
FIX: PR returns
FIX: ref_client doesn't exists on supplier invoice, then ref_fourn needs to have a default value when we want to bill several supplier orders
FIX: replenish and manage product stock by warhouse
FIX: sending email on payment of registration of event
FIX: SEPA ICS is not mandatory for bank transfer
FIX: Set datec when add time spent on a project task
FIX: status filter on supplierOrder stats doesn't work
FIX: stickler-ci
FIX: still prevent project creation if PROJECTLEADER role unavailable, but with a specific error message
FIX: Supplier order stats
FIX: Tabulation must be allowed for HTML content
FIX: tool to fix bank account not in main currency for vendor invoice
FIX: translations
FIX: Travis + Update dev
FIX: truncate Customer Reference too long on PDF header (PR #20718)
FIX: uniformize code
FIX: Update of sale price (log not correctly updated)
FIX: user actions rights when mulit-company transverse mode is enabled
FIX: user employee tab: offset in open days messes up holiday length calculation
FIX: We need to have a different default_ref_supplier for each new fourn invoice
FIX: "WHERE" clause missing on resource export
FIX: #yogosha9754
***** ChangeLog for 15.0.1 compared to 15.0.0 *****
FIX: #19777 #20281
FIX: bad position of extrafields for interventions
FIX: Blocking situation when a payment was deleted in bank.
FIX: creation of the shipment if order contains services
FIX: Drag and drop line of files on join files tab
FIX: Error management on mass action "Approve holiday"
FIX: error with php8
FIX: in case of VAT refund, negative amount must be allowed
FIX: invoice pdf: lines originating from deposits were not detailed anymore
FIX: Invoice - When you create an invoice for a given thirdparty, fk_account is not retrieved from company card
FIX: list of visible type of event was not correctly filtered
FIX: Missing or bad permissions
FIX: Missing the field date start/end in export supplier invoice/order
FIX: On large proposal or invoice, fix n(n+1) sql into a n sql.
FIX: options should not exists on invoices
FIX: payment not completed when using Paypal.
FIX: permission to download files of expense report with readall.
FIX- Preview icon in documents list PDF in the admin page third-party
FIX: shipping list, e.shipping_method_id should be e.fk_shipping_method.
FIX: Show product photo on Supplier order Cornas model.
FIX: User name in ManufacturingOrder
FIX: viewimage.php blocks requests with multicompany from other enties
FIX: #yogosha9048
FIX: #yogosha9054
FIX: #yogosha9095
***** ChangeLog for 15.0.0 compared to 14.0.0 *****
For users:
---------------
NEW: Online proposal signature
NEW: Can define some max limit on expense report (per period, per type or expense, ...)
NEW: Provide a special pages for bookmarks and multicompany for a better use of some mobile applications (like DoliDroid)
NEW: Allow the use of __NEWREF__ to get for example the new reference a draft order will get after validation.
NEW: Add option to disable globaly some notifications emails.
NEW: #18401 Add __NEWREF__ subtitute to get new object reference.
NEW: #18403 Add __URL_SHIPMENT__ substitute to get the URL of a shipment
NEW: #18689 REST API module: add api key generate / modify permission.
NEW: #18663 Make "L'Annuaire des Entreprises" the default provider for SIREN verification for French thirdparties.
NEW: #18046 Add tags on ticket/categories
NEW: #18326 Workflow: Close order on shipment closing.
NEW: #18770 Can enter the buying price (for Weighted Average Price update) on lines during the reception step
NEW: #18814 Add legal form for Sweden
NEW: #18820 Accountancy - Add product account in import/export of thirdparty (level 3)
NEW: Accountancy - Format FEC/FEC2 - Add column NumFacture
NEW: Add $dolibarr_main_db_readonly in conf.php for readonly access.
NEW: add auto creation of agenda event on supplier_order cancellation
NEW: Add a PDF document template for Manufacturing Orders
NEW: Add budget field into task #18986
NEW: add cancel button to `classify reception` form on supplier_orders
NEW: Added address field into contacts list
NEW: Added documents page and send mail possibility in payments
NEW: Add edit option in propal
NEW: Added linked files page and send mail possibility in payments
NEW: Add field date from/to in customer and supplier payment list
NEW: Add filter from date to date into action/evt list
NEW: Add import / export of MO and BOMLines - Close #18499
NEW: Adding accounting export model for iSuite Expert
NEW: add link to an element by ref
NEW: add missing printFieldListFrom hook call on several lists
NEW: add MRP into Object Linked Box
NEW: Add option to hide customer code on PDF documents
NEW: Add param $nolog to avoid logging into dol_delete_recursive_dir()
NEW: Add sale representative in order and invoice list
NEW: add a setting to create PDF in PDF/A - 1b format #18990
NEW: Add `SOCIETE_SHOW_VAT_IN_LIST` to display VAT number in combo list of thirdparties
NEW: Add sortorder on units list
NEW: Adds PDF_HIDE_PRODUCT_LABEL_IN_SUPPLIER_LINES to hide product label in supplier order lines
NEW: Add STOCK_MOVEMENT_LIST_HIDE_UNIT_PRICE to hide unit price on some pages
NEW: add support for zstd compression
NEW: Allow drag and drop on kits
NEW: Allow exporting supplier order validation date + validation user
NEW: Allows product ref generation after the form is validated with PRODUCT_GENERATE_REF_AFTER_FORM
NEW: autocomplete account group when editing an account card
NEW: Auto create invoice for payment done on an order with online payment link of order
NEW: Can edit fields of proposal when proposal is not yet signed
NEW: Can edit the translation key of an overwrote translation key.
NEW: can enable/disable external calendar by default
NEW: Can hide sender name on PDF documents
NEW: Can select lot from a combo list of existing batch numbers (in MRP consumtion)
NEW: Can set the default BOM on a product
NEW: Can set/unset the usual working day of the week (friday, saturday, sunday)
NEW: Can show progression of task into combo list of tasks
NEW: can upload the odt file for the product doc template
NEW: Contract - Add From/to input on search date
NEW: Customer Display with TakePOS
NEW: Split Sale in TakePOS
NEW: Customer invoice template list - Add input date from/to
NEW: date filter on project list and task list From->To
NEW: display shipping method and tracking url on shipment list
NEW: expense reports: conf to force amounts to be entered only including taxes
NEW: expense reports: conf to pre-fill start/end dates with bounds of current month
NEW: expense reports: show link to already existing overlapping expense report
NEW: expense reports: can make project field mandatory on lines
NEW: Expose bank account holder, label and number
NEW: feature #18986
NEW: field and behavior in product object
NEW: generate intervention from time spent
NEW: holiday: handle monthly balance updates with cronjob
NEW: HRM integration, source code
NEW: HRM admin - Add tabs
NEW: HRM - Include more options to manage/custom dashboard
NEW: Increase size of params of actions for emailcollector
NEW: Invoice list - Use complete country select field with EEC or not
NEW: mass action delete, no more break if at least one object has child
NEW: mass action paid on customer invoice list
NEW: mass action validate on supplier orders list
NEW: mass action send email to all attendees of an event
NEW: mass action to switch status on sale / on purchase of a product
NEW: expense reports: conf to pre-fill start/end dates with bounds of current month
NEW: Option "Add a link on the PDF to make the online payment"
NEW: More options to generate PDF (show Frame option, width of picture option)
NEW: Preview of pdf files of expense report lines
NEW: print without details
NEW: project time spent: conf to prevent recording time after X months
NEW: rewrite bind accountancy code finding on customer and sales invoice
NEW: Societe - Add perentity functionality on customer/supplier accountancy auxiliary account
NEW: Survey - Add a clickable link in email send
NEW: Social Contributions - Add from/to filter on list
NEW: Supplier order and proposal - Add From/to input on search date
NEW: Task - Add From/to input on search date
NEW: Add theme option THEME_ELDY_USEBORDERONTABLE
NEW: The Anti-CSRF protection MAIN_SECURITY_CSRF_WITH_TOKEN is on to value 1 by default
NEW: Update SQL : install and migration
NEW: Use an ajax call for the clicktodial feature instead of href link.
NEW: when multiple order linked to facture, show list into note.
NEW: when we delete several objects with massaction, if somes object has child we must see which objects are concerned and nevertheless delete objects which can be deleted
NEW: Editing a page in website module keep old page with name .back
NEW: External backups can be downloaded from the "About info page".
Modules
NEW: Stable module Knowledge Management
NEW: Experimental module Event Organization Management
NEW: Experimental module Workstations Management
NEW: Development of module Partnership Management
OLD: module SimplePOS has been completely removed -> use TakePOS
For developers:
---------------
API:
NEW: #18319 REST API - Shipment: Add 'close' action / endpoint / POST method.
NEW: add API /approve and /makeOrder for purchase orders
NEW: API for knowledgemanagement
NEW: API get list of legal form of business
NEW: API list of staff units
NEW: Hidden option API_DISABLE_COMPRESSION is now visible in API setup page.
Hook:
NEW: add hook 'beforeBodyClose'
NEW: add hook 'hookGetEntity'
NEW: add hook 'menuLeftMenuItems' to filter the leftmenu items
NEW: add hook 'printUnderHeaderPDFline' on invoice PDF templates (can be used for example to add a barcode or more information on header of invoices).
NEW: add hookmanager on note pages
NEW: hook after rank update
NEW: 'printFieldListFrom' hook call on several lists
ModuleBuilder:
NEW: add the property "copytoclipboard" in modulebuilder
NEW: Use lang selector when using a field key 'lang' in modulebuilder
Options:
NEW: add options MAIN_IBAN_IS_NEVER_MANDATORY, MAIN_IBAN_NOT_MANDATORY, PROPAL_NOT_BILLABLE, PROPAL_REOPEN_UNSIGNED_ONLY, PROPOSAL_ARE_NOT_BILLABLE, TICKETS_MESSAGE_FORCE_MAIL
Trigger:
NEW: add action trigger for member excluded
NEW: Introduce method hasRight
NEW: Can use textarea field into a confirm popup.
NEW: Can use the result_mode of mysqli driver. Save memory for list count
NEW: add code codebar column on serial/lot structure
NEW: add date_valid and date_approve columns in the list of supplier orders
NEW: we need to be able to put more filters on deleteByParentField() function
NEW: make it easier to set the `keyword`, `keywords` and `description` attributes of an ecm file object
NEW: Experimental feature to manage user sessions in database
Following changes may create regressions for some external modules, but were necessary to make Dolibarr better:
* ALL EXTERNAL MODULES THAT WERE NOT CORRECTLY DEVELOPPED WILL NOT WORK ON V15 (All modules that forgot to manage the security token field
into forms will be broken. The security token field is expected since Dolibarr v9 but a lot of external modules did not implement it).
* Update hook 'printOriginObjectLine', removed check on product type and special code. Need now reshook.
* Old deprecated module "SimplePOS" has been completely removed. Use module "TakePOS" is you need a Point Of Sale.
* The method static ActionComm::getActions($db, ...) is no more static. Use $actioncomm->getActions(...) instead (without $db param).
* The 'action=delete&file=...' has been replaced with 'action=deletefile&file=...' to avoid confusion with deletion of object lines.
* Method getDictvalue has been renamed into getDictionaryValue to match camel case rule.
* To execute shell or command line command, your code must never use method like exec, shell_exec, popen, .. but must use the built-in
method executeCLI() available into core/class/utils.class.php
* Class file expeditionbatch.class.php renamed to expeditionlinebatch.class.php
* ExpeditionLineBatch::fetchAll is not static anymore and first parameter $db is removed
* ExtraFields->showOutputField parameter 4 'extrafieldsobjectkey' is now required
* CommonObject method add_object_linked now sets targettype to 'mymodule_myobject' instead of 'myobject',
you can use hook 'setLinkedObjectSourceTargetType' to set your usual targettype
***** ChangeLog for 14.0.5 compared to 14.0.4 *****
FIX: 13.0: printFieldListWhere called twice on same query
@@ -1077,7 +502,7 @@ Following changes may create regressions for some external modules, but were nec
* The ICS value for direct debit or credit transfer is now stored on each bank account instead of into the global setup.
* API /setup/shipment_methods has been replaced with API /setup/shipping_methods
* Field "total" renamed into "total_ht" for table llx_facture, llx_facture_rec for better field name consistency
* Field "tva" renamed into "total_tva" for llx_facture, table llx_propal, llx_supplier_proposal, llx_commande, llx_commande_fournisseur for better field name consistency
* Field "tva" renamed into "total_tva" for table llx_propal, llx_supplier_proposal, llx_commande, llx_commande_fournisseur for better field name consistency
* Field "total" renamed into "total_ttc" for table llx_propal, llx_supplier_proposal for better field name consistency
* If your database is PostgreSQL, you must use version 9.1.0 or more (Dolibarr need the SQL function CONCAT)
* If your database is MySQL or MariaDB, you need at least version 5.1
@@ -1087,6 +512,8 @@ Following changes may create regressions for some external modules, but were nec
* v14 seems to work correctly on PHP v8 but it generates a lot of verbose warnings. Currently, v14 i snot yet officialy supported with PHP 8.
* To execute shell or command line command, your code must never use method like exec, shell_exec, popen, .. but must use the built-in
method executeCLI() available into core/class/utils.class.php
* the trigger "*_DELETE_CONTACT" inside "delete_contact()" function from commonobject.class.php is call before delete the object element
and a $object->context['contact_id'] is now available for this trigger
***** ChangeLog for 13.0.5 compared to 13.0.4 *****
@@ -1122,11 +549,11 @@ FIX: wrong users count in multicompany transverse mode
***** ChangeLog for 13.0.4 compared to 13.0.3 *****
FIX: Allow disabling of a module (not a dangerous action) even if there is problem with token (due to bugged modules).
FIX: 13.0 - fatal - missing inclusion of ajax.lib.php for calling 'ajax_autocompleter()'
FIX: #17919 pictures in docs
FIX: 13.0 - fatal - missing inclusion of ajax.lib.php for calling `ajax_autocompleter()`
FIX: #17919 pictures in docs.
FIX: #18006
FIX: Accountancy - if we define a date start, automatic binding try to continue to solve old binding
FIX: Accountancy - Limit date payment not registered on purchases operations
FIX: Accoutancy Limit date payment not registered on purchases operations
FIX: Can't edit replacement invoice
FIX: deposit can create credit note in payment conf
FIX: division by zero on create
@@ -1230,7 +657,7 @@ FIX: File attachment on lots/batches
FIX: handling $heightforinfotot when he's superior to a page height on Supplier Invoice
FIX: hourglass and hide button to pay
FIX: massaction validate invoice do not regenerate PDF
FIX: #16627 fix missing mp4 video mime
FIX: missing mp4 video mime
FIX: picto on shipment to reset qty to 0. Some quantities were not reset.
FIX: Protection to avoid #16504
FIX: rounding amount on card updating
@@ -1416,6 +843,7 @@ NEW: introduce constant FACTUREFOURN_REUSE_NOTES_ON_CREATE_FROM
NEW: introducing new modal boxes in TakePOS
NEW: keep TakePOS terminal when login/logout
NEW: link on balance to the ledger
NEW: MAIN_EMAILCOLLECTOR_MAIL_WITHOUT_HEADER const in email collector
NEW: manage errors on update extra fields in ticket card
NEW: mass-actions for the event list view
NEW: more filter for "View change logs"

View File

@@ -8,10 +8,12 @@ Il est simple d'utilisation et modulaire, vous permettant de n'activez que les f
![ScreenShot](https://www.dolibarr.org/medias/dolibarr_screenshot1_1920x1080.jpg)
## LICENCE
Dolibarr est distribué sous les termes de la licence GNU General Public License v3+ ou supérieure.
## INSTALLER DOLIBARR
### Configuration simple
@@ -52,6 +54,7 @@ Vous pouvez aussi utiliser un serveur Web et une base de données prise en charg
- Suivez les instructions de l'installateur
## METTRE A JOUR DOLIBARR
Pour mettre à jour Dolibarr depuis une vieille version vers celle ci:
@@ -62,12 +65,14 @@ Pour mettre à jour Dolibarr depuis une vieille version vers celle ci:
- Au prochain accès, Dolibarr proposera la page de "mise à jour" des données (si nécessaire).
Si un fichier install.lock existe pour verrouiller le processus de mise à jour, il sera demandé de le supprimer manuellement (vous devriez trouver le fichier install.lock dans le répertoire utilisé pour stocker les documents générés ou transférés sur le serveur. Dans la plupart des cas, c'est le répertoire appelé "documents")
Note: *Le processus de migration peut être lancé manuellement et plusieurs fois, sans risque, en appelant la page /install/*
*Note: Le processus de migration peut être lancé manuellement et plusieurs fois, sans risque, en appelant la page /install/*
## CE QUI EST NOUVEAU
See the [ChangeLog](https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog) file.
## CE QUE DOLIBARR PEUT FAIRE
### Modules principaux (tous optionnels)
@@ -117,7 +122,7 @@ See the [ChangeLog](https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog)
- Peux être multi-société par ajout du module externe multi-société.
- Plusieurs thèmes visuels.
- Application simple à utiliser.
- Requiert PHP et MariaDb, Mysql ou Postgresql (Voir versions exactes sur [https://wiki.dolibarr.org/index.php/Prérequis](https://wiki.dolibarr.org/index.php/Prérequis)).
- Requiert PHP et MariaDb, Mysql ou Postgresql (Voir versions exactes sur https://wiki.dolibarr.org/index.php/Prérequis).
- Compatible avec toutes les offres Cloud du marché respectant les prérequis de base de données et PHP.
- APIs.
- Génération PDF et ODT des éléments (factures, propositions commerciales, commandes, bons expéditions, etc...)
@@ -137,6 +142,7 @@ See the [ChangeLog](https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog)
Dolibarr peut aussi être étendu à volonté avec l'ajout de module/applications externes développées par des développeus tiers, disponible sur [DoliStore](https://www.dolistore.com).
## CE QUE DOLIBARR NE PEUT PAS (ENCORE) FAIRE
Voici un liste de fonctionnalités pas encore gérées par Dolibarr:
@@ -146,15 +152,18 @@ Voici un liste de fonctionnalités pas encore gérées par Dolibarr:
- Dolibarr n'embarque pas de Webmail intégré nativement.
- Dolibarr ne fait pas le café (pas encore).
## DOCUMENTATION
La documentation utilisateur, développeur et traducteur est disponible sous forme de ressources de la communauté via le site [Wiki](https://wiki.dolibarr.org).
## CONTRIBUER
Ce projet existe grâce à ses nombreux contributeurs [[Contribuer](https://github.com/Dolibarr/dolibarr/blob/develop/.github/CONTRIBUTING.md)].
[![Dolibarr](https://opencollective.com/dolibarr/contributors.svg?width=890&button=false)](https://github.com/Dolibarr/dolibarr/graphs/contributors)
<a href="https://github.com/Dolibarr/dolibarr/graphs/contributors"><img src="https://opencollective.com/dolibarr/contributors.svg?width=890&button=false" /></a>
## CREDITS
@@ -162,6 +171,7 @@ Dolibarr est le résultat du travail de nombreux contributeurs depuis des année
Voir le fichier [COPYRIGHT](https://github.com/Dolibarr/dolibarr/blob/develop/COPYRIGHT)
## ACTUALITES ET RESEAUX SOCIAUX
Suivez le projet Dolibarr project sur les réseaux francophones

143
README.md
View File

@@ -4,7 +4,6 @@
![Build status](https://img.shields.io/travis/Dolibarr/dolibarr/develop.svg)
[![Minimum PHP Version](https://img.shields.io/badge/php-%3E%3D%205.6-8892BF.svg?style=flat-square)](https://php.net/)
[![GitHub release](https://img.shields.io/github/v/release/Dolibarr/dolibarr)](https://github.com/Dolibarr/dolibarr)
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/5521/badge)](https://bestpractices.coreinfrastructure.org/projects/5521)
Dolibarr ERP & CRM is a modern software package that helps manage your organization's activity (contacts, suppliers, invoices, orders, stocks, agenda…).
@@ -32,7 +31,7 @@ Other licenses apply for some included dependencies. See [COPYRIGHT](https://git
If you have low technical skills and you're looking to install Dolibarr ERP/CRM in just a few clicks, you can use one of the packaged versions:
- [DoliWamp for Windows](https://wiki.dolibarr.org/index.php/Dolibarr_for_Windows_(DoliWamp))
- [DoliWamp for Windows](https://wiki.dolibarr.org/index.php/Dolibarr_for_Windows_DoliWamp)
- [DoliDeb for Debian](https://wiki.dolibarr.org/index.php/Dolibarr_for_Ubuntu_or_Debian)
- DoliRpm for Redhat, Fedora, OpenSuse, Mandriva or Mageia
@@ -44,7 +43,7 @@ You can use a web server and a supported database (MariaDB, MySQL or PostgreSQL)
On GNU/Linux, first check if your distribution has already packaged Dolibarr.
#### Generic install steps
#### Generic install steps:
- Check that your installed PHP version is supported [see PHP support](https://wiki.dolibarr.org/index.php/Releases).
@@ -72,113 +71,116 @@ On GNU/Linux, first check if your distribution has already packaged Dolibarr.
- Follow the installer instructions
### Saas/Cloud setup
If you don't have time to install it yourself, you can try some commercial 'ready to use' Cloud offers (See [https://saas.dolibarr.org](https://saas.dolibarr.org)). However, this third solution is not free.
If you don't have time to install it yourself, you can try some commercial 'ready to use' Cloud offers (See https://saas.dolibarr.org). However, this third solution is not free.
## UPGRADING
Dolibarr supports upgrading, usually without the need for any (commercial) support (depending on if you use any commercial extensions). It supports upgrading all the way from any version after 2.8 without breakage. This is unique in the ERP ecosystem and a benefit our users highly appreciate!
- At first make a backup of your Dolibarr files & then [see](https://wiki.dolibarr.org/index.php/Installation_-_Upgrade#Upgrade_Dolibarr)
Dolibarr supports upgrading usually wihtout the need for any (commercial) support (depending on if you use any commercial extensions) and supports upgrading all the way from any version after 2.8 without breakage. This is unique in the ERP ecosystem and a benefit our users highly appreciate!
- At first make a backup of your Dolibarr files & than [see](https://wiki.dolibarr.org/index.php/Installation_-_Upgrade#Upgrade_Dolibarr)
- Check that your installed PHP version is supported by the new version [see PHP support](./doc/phpmatrix.md).
- Overwrite all old files from 'dolibarr' directory with files provided into the new version's package.
- At first next access, Dolibarr will redirect you to the "install/" page to follow the upgrade process.
 If an `install.lock` file exists to lock any other upgrade process, the application will ask you to remove the file manually (you should find the `install.lock` file in the directory used to store generated and uploaded documents, in most cases, it is the directory called "*documents*").
## WHAT'S NEW
See the [ChangeLog](https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog) file.
## FEATURES
### Main application/modules (all optional)
- Third-Parties Management: Customers, Prospects (Leads) and/or Suppliers + Contacts
- Members/Membership/Foundation management
- Third-Parties Management: Customers, Prospects (Leads) and/or Suppliers + Contacts
- Members/Membership/Foundation management
Product Management
- Products and/or Services catalog
- Stock / Warehouse management + Inventory
- Barcodes
- Batches / Lots / Serials
- Product Variants
Product Management
- Products and/or Services catalog
- Stock / Warehouse management + Inventory
- Barcodes
- Batches / Lots / Serials
- Product Variants
- Bill of Materials (BOM)
- Manufacturing Orders
- Manufacturing Orders
Customer/Sales Management
Customer/Sales Management
- Customers/Prospects + Contacts management
- Opportunities or Leads management
- Commercial proposals management
- Customer Orders management
- Contracts/Subscription management
- Interventions management
- Ticket System
- Shipping management
- Customer Invoices/Credit notes and payment management
- Point of Sale (POS)
- Customers/Prospects + Contacts management
- Opportunities or Leads management
- Commercial proposals management (online signing)
- Customer Orders management
- Contracts/Subscription management
- Interventions management
- Ticket System
- Shipping management
- Customer Invoices/Credit notes and payment management
- Point of Sale (POS)
Supplier/Purchase Management
- Suppliers/Vendors + Contacts
- Supplier (price) requests
- Purchase Orders management
- Delivery/Receiption
- Supplier Invoices/credit notes and payment management
- INCOTERMS
Supplier/Purchase Management
Finance / Accounting
- Invoices / Payments
- Bank accounts management
- Direct debit orders management (European SEPA)
- Accounting management
- Donations management
- Loan management
- Margins
- Reports
- Suppliers/Vendors + Contacts
- Supplier (price) requests
- Purchase Orders management
- Delivery/Receiption
- Supplier Invoices/credit notes and payment management
- INCOTERMS
Finance/Accounting
- Invoices/Payments
- Bank accounts management
- Direct debit and Credit transfer management (European SEPA)
- Accounting management
- Donations management
- Loan management
- Margins
- Reports
Collaboration
- Shared calendar/agenda (with ical and vcal import/export for third party tools integration)
- Projects & Tasks management
- Ticket System
Collaboration
- Shared calendar/agenda (with ical and vcal export for third party tools integration)
- Projects & Tasks management
- Ticket System
- Surveys
HR
HR
- Employee's leave requests management
- Expense reports
- Recruitment management
- Timesheets
- Employee's leaves management
- Expense reports
- Recruitment management
- Timesheets
### Other application/modules
- Electronic Document Management (EDM)
- Bookmarks
- Bookmarks management
- Reporting
- Data export/import
- Barcodes
- Margin calculations
- LDAP connectivity
- ClickToDial integration
- Mass emailing
- RSS integration
- Skype integration
- Social platforms linking
- Payment platforms integration (PayPal, Stripe, Paybox...)
- Email-Collector
(around 100 modules available by default, 1000+ on the addon market place)
### Other general features
- Multi-Language Support (Localization in most major languages)
- Localization in most major languages
- Multi-Language Support
- Multi-Users and groups with finely grained rights
- Multi-Currency
- Multi-Company (by adding of an external module)
- Very user friendly and easy to use
- Customizable dashboards
- customizable Dashboard
- Highly customizable: enable only the modules you need, add user personalized fields, choose your skin, several menu managers (can be used by internal users as a back-office with a particular menu, or by external users as a front-office with another one)
- APIs (REST, SOAP)
- Code that is easy to understand, maintain and develop (PHP with no heavy framework; trigger and hook architecture)
@@ -188,25 +190,27 @@ See the [ChangeLog](https://github.com/Dolibarr/dolibarr/blob/develop/ChangeLog)
- Canadian double taxes (federal/province) and other countries using cumulative VAT
- Tunisian tax stamp
- Argentina invoice numbering using A,B,C...
- ZATCA e-invoicing QR-Code
- Compatible with [European directives](https://europa.eu/legislation_summaries/taxation/l31057_en.htm) (2006/112/CE ... 2010/45/UE)
- Compatible with data privacy rules (europe GDPR, ...)
- Compatible with [European directives] (https://europa.eu/legislation_summaries/taxation/l31057_en.htm) (2006/112/CE ... 2010/45/UE)
- Compatible with European GDPR rules
- ...
- Flexible PDF & ODT generation for invoices, proposals, orders...
- ...
### System Environment / Requirements
- PHP
- MariaDB, MySQL or PostgreSQL
- MariaDB, MySQL or PostgreSQL
- Compatible with all Cloud solutions that match PHP & MySQL or PostgreSQL prerequisites.
See exact requirements on the [Wiki](https://wiki.dolibarr.org/index.php/Prerequisite)
### Extending
Dolibarr can be extended with a lot of other external application or modules from third party developers available at the [DoliStore](https://www.dolistore.com).
## WHAT DOLIBARR CAN'T DO YET
These are features that Dolibarr does **not** yet fully support:
@@ -216,18 +220,21 @@ These are features that Dolibarr does **not** yet fully support:
- No native embedded Webmail, but you can send email to contacts in Dolibarr with e.g. offers, invoices, etc.
- Dolibarr can't do coffee (yet)
## DOCUMENTATION
Administrator, user, developer and translator's documentations are available along with other community resources in the [Wiki](https://wiki.dolibarr.org).
## CONTRIBUTING
This project exists thanks to all the people who contribute.
This project exists thanks to all the people who contribute.
Please read the instructions how to contribute (report a bug/error, a feature request, send code ...) [[Contribute](https://github.com/Dolibarr/dolibarr/blob/develop/.github/CONTRIBUTING.md)]
A view on Contributors:
[![Dolibarr](https://opencollective.com/dolibarr/contributors.svg?width=890&button=false)](https://github.com/Dolibarr/dolibarr/graphs/contributors)
<a href="https://github.com/Dolibarr/dolibarr/graphs/contributors"><img src="https://opencollective.com/dolibarr/contributors.svg?width=890&button=false" /></a>
## CREDITS
@@ -235,6 +242,7 @@ Dolibarr is the work of many contributors over the years and uses some fine PHP
See [COPYRIGHT](https://github.com/Dolibarr/dolibarr/blob/develop/COPYRIGHT) file.
## NEWS AND SOCIAL NETWORKS
Follow Dolibarr project on:
@@ -242,10 +250,11 @@ Follow Dolibarr project on:
- [Facebook](https://www.facebook.com/dolibarr)
- [Twitter](https://www.twitter.com/dolibarr)
- [LinkedIn](https://www.linkedin.com/company/association-dolibarr)
- [Reddit](https://www.reddit.com/r/Dolibarr_ERP_CRM/)
- [YouTube](https://www.youtube.com/user/DolibarrERPCRM)
- [GitHub](https://github.com/Dolibarr/dolibarr)
### Sponsors
Support this project by becoming a sponsor. Your logo will show up here. 🙏 [[Become a sponsor/backer](https://opencollective.com/dolibarr#backer)]

View File

@@ -4,27 +4,26 @@ This file contains some policies about the security reports on Dolibarr ERP CRM
## Supported Versions for security reports
| Version | Supported |
| ---------- | ---------------------- |
| <= 15.0.0 | :x: |
| >= 15.0.1+ | :white_check_mark: except CSRF attacks|
| >= 16.0.0 | :white_check_mark: |
| >= develop | :white_check_mark: |
| Version | Supported |
| --------- | ------------------ |
| <= 12.* | :x: |
| >= 13.* | :white_check_mark: |
## Reporting a Vulnerability
To report a vulnerability, for a private report, please use GitHub security advisory at [https://github.com/Dolibarr/dolibarr/security/advisories/new](https://github.com/Dolibarr/dolibarr/security/advisories/new) (if you have permissions).
Alternatively send an email to security@dolibarr.org (for everybody)
To report a vulnerability, please use GitHub security advisory at https://github.com/Dolibarr/dolibarr/security/advisories/new (if you have permissions) or alternatively send an email to security@dolibarr.org (for everybody)
## Hunting vulnerabilities on Dolibarr
We believe that the future of software is online SaaS. This means software are more and more critical and no technology is perfect. Working with skilled security researchers is crucial in identifying weaknesses in our technology.
We believe that future of software is online SaaS. This means software are more and more critical and no technology is perfect. Working with skilled security researchers is crucial in identifying weaknesses in our technology.
If you believe you've found a security bug in our service, we are happy to work with you to resolve the issue promptly and ensure you are fairly rewarded for your discovery.
Any type of denial of service attacks is strictly forbidden, as well as any interference with network equipment and Dolibarr infrastructure.
We recommand to install Dolibarr ERP CRM on your own server (as most Open Source software, download and use is free: [https://www.dolibarr.org/download](https://www.dolibarr.org/download)) to get access on every side of application.
We recommand to install Dolibarr ERP CRM on your own server (as most Open Source software, download and use is free: https://www.dolibarr.org/download) to get access on every side of application.
### User Agent
@@ -32,20 +31,22 @@ If you try to find bug on Dolibarr, we recommend to append to your user-agent he
### Account access
You can install the web application yourself on your own platform/server so you get full access to application and sources. Download the zip of the files to put into your own web server virtual host from [https://www.dolibarr.org/download](https://www.dolibarr.org/download)
You can install the web application yourself on your own platform/server so you get full access to application and sources. Download the zip of the files to put into your own web server virtual host from https://www.dolibarr.org/download
## Eligibility and Responsible Disclosure
We are happy to thank everyone who submits valid reports which help us improve the security of Dolibarr, however only those that meet the following eligibility requirements will be "validated reports" (if not, we may close the report without any answer):
We are happy to thank everyone who submits valid reports which help us improve the security of Dolibarr however, only those that meet the following eligibility requirements will be "validated reports" (if not, we may close the report without any answer):
You must be the first reporter of the vulnerability (duplicate reports are closed).
You must send a clear textual description of the report along with steps to reproduce the issue, include attachments such as screenshots or proof of concept code as necessary.
You must avoid tests that could cause degradation or interruption of our service (refrain from using automated tools, and limit yourself about requests per second), that's why we recommand to install software on your own platform.
You must avoid tests that could cause degradation or interruption of our service (refrain from using automated tools, and limit yourself about requests per second), that's why we recommand to install softwate on your own platform.
You must not leak, manipulate, or destroy any user data of third parties to find your vulnerability.
## Scope for qualified vulnerabilities
ONLY vulnerabilities discovered, when the following setup on test platform is used, are "valid":
@@ -53,22 +54,23 @@ ONLY vulnerabilities discovered, when the following setup on test platform is us
* $dolibarr_main_prod must be set to 1 into conf.php
* $dolibarr_nocsrfcheck must be kept to the value 0 into conf.php (this is the default value)
* $dolibarr_main_force_https must be set to something else than 0.
* The constant MAIN_SECURITY_CSRF_WITH_TOKEN must be set to 3 into backoffice menu Home - Setup - Other (this protection should be set to 3 soon by default)
* The constant MAIN_SECURITY_CSRF_WITH_TOKEN must be set to 1 into backoffice menu Home - Setup - Other (this protection should be set to 1 soon by default)
* The module DebugBar and ModuleBuilder must NOT be enabled (by default, these modules are not enabled. They are developer tools)
* ONLY security reports on modules provided by default and with the "stable" status are valid (troubles into "experimental", "developement" or external modules are not valid vulnerabilities).
* The root of web server must link to htdocs and the documents directory must be outside of the web server root (this is the default when using the default installer but may differs with external installer).
* The web server setup must be done so that only the documents directory is in write mode. The root directory called htdocs must be read-only.
* CSRF attacks are accepted but double check that you have set MAIN_SECURITY_CSRF_WITH_TOKEN to value 3.
* The web server setup must be done so only the documents directory is in write mode. The root directory called htdocs must be readonly.
* CSRF attacks are accepted when using a POST URL, but when using GET URL, they are validated only for creating, updating or deleting data resctricted from pages restricted to admin users.
* Ability for a high level user to edit web site pages into the CMS by including HTML or Javascript is an expected feature. Vulnerabilities into the website module are validated only if HTML or Javascript injection can be done by a non allowed user.
Scope is the web application (back office) and the APIs.
## Qualifying vulnerabilities for reporting
* Remote code execution (RCE)
* Local files access and manipulation (LFI, RFI, XXE, SSRF, XSPA)
* Code injections (HTML, JS, SQL, PHP, ...)
* Cross-Site Scripting (XSS), except from setup page of module "External web site" (allowing any content here, editable by admin user only, is accepted on purpose) and except into module "Web site" when permission to edit website content is allowed (injecting any data in this case is allowed too).
* Cross-Site Scripting (XSS), except from setup page of module "External web site" (allowing any content here, editable by admin user only, is accepted on purpose or into module "Web site" when permission to edit website content is allowed).
* Cross-Site Requests Forgery (CSRF) with real security impact (when using GET URLs, CSRF are qualified only for creating, updating or deleting data from pages restricted to admin users)
* Open redirect
* Broken authentication & session management
@@ -79,6 +81,7 @@ Scope is the web application (back office) and the APIs.
* Software version disclosure (for non admin users only)
* Stack traces or path disclosure (for non admin users only)
## Non-qualifying vulnerabilities for reporting
* "Self" XSS
@@ -87,8 +90,9 @@ Scope is the web application (back office) and the APIs.
* Clickjacking/UI redressing
* Physical or social engineering attempts or issues that require physical access to a victims computer/device
* Presence of autocomplete attribute on web forms
* Vulnerabilities affecting outdated browsers or platforms, or vulnerabilities inside browsers themself.
* Vulnerabilities affecting outdated browsers or platforms
* Logout and other instances of low-severity Cross-Site Request Forgery
* Missing cookie flags
* Missing security-related HTTP headers which do not lead directly to a vulnerability
* Reports from automated web vulnerability scanners (Acunetix, Vega, etc.) that have not been validated
* Invalid or missing SPF (Sender Policy Framework) records (Incomplete or missing SPF/DKIM/DMARC)
@@ -96,3 +100,4 @@ Scope is the web application (back office) and the APIs.
* Software version or private IP disclosure when logged user is admin
* Stack traces or path disclosure when logged user is admin
* Any vulnerabilities due to a configuration different than the one defined into chapter "Scope for qualified vulnerabilities".

View File

@@ -13,12 +13,32 @@ It is here only to build Dolibarr packages, and those generated packages will no
There are several tools:
--------------------------------------------------------------------------------------------------
- To build full Dolibarr packages, launch the script
> Launch command perl makepack-dolibarr.pl
See makepack-howto.txt for prerequisites.
--------------------------------------------------------------------------------------------------
Prerequisites to build tgz, debian and rpm packages:
> apt-get install tar dpkg dpatch p7zip-full rpm zip
--------------------------------------------------------------------------------------------------
Prerequisites to build autoexe DoliWamp package:
> apt-get install wine q4wine
> Launch "wine cmd" to check a drive Z: pointing to / exists.
> Install InnoSetup
For example by running isetup-5.5.8.exe (https://www.jrsoftware.org) https://files.jrsoftware.org/is/5/
> Install WampServer into "C:\wamp64" to have Apache, PHP and MariaDB
For example by running wampserver3.2.0_x64.exe (https://www.wampserver.com).
See file build/exe/doliwamp.iss to know the doliwamp version currently setup.
> Add path to ISCC into PATH windows var:
Launch wine cmd, then regedit and add entry int HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment\PATH
> To build manually the .exe from Windows (running from makepack-dolibarr.pl script is however recommanded),
open file build/exe/doliwamp.iss and click on button "Compile".
The .exe file will be build into directory build.
--------------------------------------------------------------------------------------------------

View File

@@ -55,6 +55,7 @@ RUN echo "host mail" >> /etc/msmtprc
RUN echo "from local@localdomain.com" >> /etc/msmtprc
RUN echo "domain localhost.localdomain" >> /etc/msmtprc
RUN echo "sendmail_path=/usr/bin/msmtp -t" >> /usr/local/etc/php/conf.d/php-sendmail.ini
RUN echo "localhost localhost.localdomain" >> /etc/hosts
EXPOSE 80

View File

@@ -1,6 +1,4 @@
#!/bin/bash
# Script used by the Dockerfile.
# See README.md to know how to create a Dolibarr env with docker
usermod -u ${HOST_USER_ID} www-data
groupmod -g ${HOST_USER_ID} www-data

View File

@@ -1 +1 @@
/doliwamp.tmp.iss*
/doliwamp.tmp.iss

View File

@@ -24,14 +24,15 @@ OutputBaseFilename=__FILENAMEEXEDOLIWAMP__
;OutputManifestFile=build\doliwampbuild.log
; Define full path from which all relative path are defined
; You must modify this to put here your dolibarr root directory
;SourceDir=Z:\home\ldestailleur\git\dolibarrxxx
SourceDir=..\..\..
AppId=doliwamp
AppPublisher=DoliCloud
AppPublisherURL=https://www.dolicloud.com
AppPublisher=NLTechno
AppPublisherURL=https://www.nltechno.com
AppSupportURL=https://www.dolibarr.org
AppUpdatesURL=https://www.dolibarr.org
AppComments=DoliWamp includes Dolibarr, Apache, PHP and Mysql software.
AppCopyright=Copyright (C) 2008-2022 Laurent Destailleur (DoliCloud), Fabian Rodriguez (Le Goût du Libre)
AppCopyright=Copyright (C) 2008-2020 Laurent Destailleur (NLTechno), Fabian Rodriguez (Le Goût du Libre)
DefaultDirName=c:\dolibarr
DefaultGroupName=Dolibarr
;LicenseFile=COPYING
@@ -80,7 +81,7 @@ Name: "desktopicon"; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:
Name: "{app}\logs"
Name: "{app}\tmp"
Name: "{app}\dolibarr_documents"
Name: "{app}\bin\apache\apache2.4.51\logs"
Name: "{app}\bin\apache\apache2.4.41\logs"
[Files]
; Stop/start
@@ -98,12 +99,19 @@ Source: "build\exe\doliwamp\startdoliwamp_manual_donotuse.bat.install"; DestDir:
Source: "build\exe\doliwamp\builddemosslfiles.bat.install"; DestDir: "{app}\"; Flags: ignoreversion;
Source: "build\exe\doliwamp\UsedPort.exe"; DestDir: "{app}\"; Flags: ignoreversion;
; Apache, Php, Mysql
; PhpMyAdmin, Apache, Php, Mysql
; Put here path of Wampserver applications
; Value OK: apache 2.4.51, php 7.3.33, mariadb10.6.5 (wampserver3.2.6_x64.exe)
Source: "C:\wamp64\bin\apache\apache2.4.51\*.*"; DestDir: "{app}\bin\apache\apache2.4.51"; Flags: ignoreversion recursesubdirs; Excludes: "php.ini,httpd.conf,wampserver.conf,*.log,*_log"
Source: "C:\wamp64\bin\php\php7.3.33\*.*"; DestDir: "{app}\bin\php\php7.3.33"; Flags: ignoreversion recursesubdirs; Excludes: "php.ini,phpForApache.ini,wampserver.conf,*.log,*_log"
Source: "C:\wamp64\bin\mariadb\mariadb10.6.5\*.*"; DestDir: "{app}\bin\mariadb\mariadb10.6.5"; Flags: ignoreversion recursesubdirs; Excludes: "my.ini,data\*,wampserver.conf,*.log,*_log,MySQLInstanceConfig.exe"
; Value OK: apache 2.2.6, php 5.2.5 (5.2.11, 5.3.0 and 5.3.1 fails if php_exif, php_pgsql, php_zip is on), mysql 5.0.45
; Value OK: apache 2.2.11, php 5.3.0 (if no php_exif, php_pgsql, php_zip), mysql 5.0.45
; Value OK: apache 2.4.9, php 5.5.12, mysql 5.0.45 instead of 5.6.17 (wampserver2.5-Apache-2.4.9-Mysql-5.6.17-php5.5.12-32b.exe)
; Value OK: apache 2.4.41, php 7.3.12, mariadb10.4.10 (wampserver3.2.0_x64.exe)
Source: "C:\wamp64\apps\phpmyadmin4.9.2\*.*"; DestDir: "{app}\apps\phpmyadmin4.9.2"; Flags: ignoreversion recursesubdirs; Excludes: "config.inc.php,wampserver.conf,*.log,*_log,darkblue_orange"
;Source: "C:\Program Files\Wamp\bin\apache\apache2.4.9\*.*"; DestDir: "{app}\bin\apache\apache2.4.9"; Flags: ignoreversion recursesubdirs; Excludes: "php.ini,httpd.conf,wampserver.conf,*.log,*_log"
Source: "C:\wamp64\bin\apache\apache2.4.41\*.*"; DestDir: "{app}\bin\apache\apache2.4.41"; Flags: ignoreversion recursesubdirs; Excludes: "php.ini,httpd.conf,wampserver.conf,*.log,*_log"
;Source: "C:\Program Files\Wamp\bin\php\php5.5.12\*.*"; DestDir: "{app}\bin\php\php5.5.12"; Flags: ignoreversion recursesubdirs; Excludes: "php.ini,phpForApache.ini,wampserver.conf,*.log,*_log"
Source: "C:\wamp64\bin\php\php7.3.12\*.*"; DestDir: "{app}\bin\php\php7.3.12"; Flags: ignoreversion recursesubdirs; Excludes: "php.ini,phpForApache.ini,wampserver.conf,*.log,*_log"
;Source: "C:\Program Files\Wamp\bin\mysql\mysql5.0.45\*.*"; DestDir: "{app}\bin\mysql\mysql5.0.45"; Flags: ignoreversion recursesubdirs; Excludes: "my.ini,data\*,wampserver.conf,*.log,*_log,MySQLInstanceConfig.exe"
Source: "C:\wamp64\bin\mariadb\mariadb10.4.10\*.*"; DestDir: "{app}\bin\mariadb\mariadb10.4.10"; Flags: ignoreversion recursesubdirs; Excludes: "my.ini,data\*,wampserver.conf,*.log,*_log,MySQLInstanceConfig.exe"
; Mysql data files (does not overwrite if exists)
; We must copy them because the tool mysql_install_db.exe to generate them at first install does not return to prompt so make install hang
@@ -117,11 +125,15 @@ Source: "scripts\*.*"; DestDir: "{app}\www\dolibarr\scripts"; Flags: ignoreversi
Source: "*.*"; DestDir: "{app}\www\dolibarr"; Flags: ignoreversion; Excludes: ".gitignore,.project,CVS\*,Thumbs.db,default.properties,install.lock"
; Config files
Source: "build\exe\doliwamp\phpmyadmin.conf.install"; DestDir: "{app}\alias"; Flags: ignoreversion;
Source: "build\exe\doliwamp\dolibarr.conf.install"; DestDir: "{app}\alias"; Flags: ignoreversion;
Source: "build\exe\doliwamp\httpd.conf.install"; DestDir: "{app}\bin\apache\apache2.4.51\conf"; Flags: ignoreversion;
Source: "build\exe\doliwamp\config.inc.php.install"; DestDir: "{app}\apps\phpmyadmin4.1.14"; Flags: ignoreversion;
;Source: "build\exe\doliwamp\httpd.conf.install"; DestDir: "{app}\bin\apache\apache2.4.9\conf"; Flags: ignoreversion;
Source: "build\exe\doliwamp\httpd.conf.install"; DestDir: "{app}\bin\apache\apache2.4.41\conf"; Flags: ignoreversion;
Source: "build\exe\doliwamp\my.ini.install"; DestDir: "{app}\bin\mysql\mysql5.0.45"; Flags: ignoreversion;
Source: "build\exe\doliwamp\my.ini.install"; DestDir: "{app}\bin\mariadb\mariadb10.6.5"; Flags: ignoreversion;
Source: "build\exe\doliwamp\php.ini.install"; DestDir: "{app}\bin\php\php7.3.33"; Flags: ignoreversion;
Source: "build\exe\doliwamp\my.ini.install"; DestDir: "{app}\bin\mariadb\mariadb10.4.10"; Flags: ignoreversion;
;Source: "build\exe\doliwamp\php.ini.install"; DestDir: "{app}\bin\php\php5.5.12"; Flags: ignoreversion;
Source: "build\exe\doliwamp\php.ini.install"; DestDir: "{app}\bin\php\php7.3.12"; Flags: ignoreversion;
Source: "build\exe\doliwamp\index.php.install"; DestDir: "{app}\www"; Flags: ignoreversion;
Source: "build\exe\doliwamp\install.forced.php.install"; DestDir: "{app}\www\dolibarr\htdocs\install"; Flags: ignoreversion;
Source: "build\exe\doliwamp\openssl.conf"; DestDir: "{app}"; Flags: ignoreversion;
@@ -184,6 +196,7 @@ var destFileA: String;
var srcContents: String;
var browser: String;
var mysqlVersion: String;
var phpmyadminVersion: String;
var phpDllCopy: String;
var batFile: String;
@@ -227,9 +240,13 @@ procedure InitializeWizard();
begin
//version des applis, a modifier pour chaque version de WampServer 2
apacheVersion := '2.4.51';
phpVersion := '7.3.33' ;
mysqlVersion := '10.6.5';
//apacheVersion := '2.4.9';
//phpVersion := '5.5.12' ;
apacheVersion := '2.4.41';
phpVersion := '7.3.12' ;
//mysqlVersion := '5.0.45';
mysqlVersion := '10.4.10';
phpmyadminVersion := '4.1.14';
smtpServer := 'localhost';
apachePort := '80';
@@ -363,9 +380,9 @@ begin
// Migration of database
// datadir := pathWithSlashes+'/bin/mariadb/mariadb10.6.5/data';
// exedirold := pathWithSlashes+'/bin/mariadb/mariadb10.6.5/';
// exedirnew := pathWithSlashes+'/bin/mariadb/mariadb10.6.5/';
// datadir := pathWithSlashes+'/bin/mariadb/marradb10.4.10/data';
// exedirold := pathWithSlashes+'/bin/mariadb/marradb10.4.10/';
// exedirnew := pathWithSlashes+'/bin/mariadb/marradb10.4.10/';
// If we have a new database version, we should only copy old my.ini file into new directory
// and change only all basedir= strings to use new version. Like this, data dir is still correct.
@@ -618,6 +635,27 @@ begin
begin
//----------------------------------------------
// Create file alias phpmyadmin (always)
//----------------------------------------------
destFile := pathWithSlashes+'/alias/phpmyadmin.conf';
srcFile := pathWithSlashes+'/alias/phpmyadmin.conf.install';
if FileExists(srcFile) then
begin
LoadStringFromFile (srcFile, srcContents);
//installDir et version de phpmyadmin
StringChangeEx (srcContents, 'WAMPROOT', pathWithSlashes, True);
StringChangeEx (srcContents, 'WAMPPHPMYADMINVERSION', phpmyadminVersion, True);
SaveStringToFile(destFile,srcContents, False);
end;
DeleteFile(srcFile);
//----------------------------------------------
// Create file alias dolibarr (if not exists)
//----------------------------------------------
@@ -653,6 +691,35 @@ begin
//----------------------------------------------
// Create file configuration for phpmyadmin (if not exists)
//----------------------------------------------
destFile := pathWithSlashes+'/apps/phpmyadmin'+phpmyadminVersion+'/config.inc.php';
srcFile := pathWithSlashes+'/apps/phpmyadmin'+phpmyadminVersion+'/config.inc.php.install';
if FileExists(srcFile) then
begin
if not FileExists (destFile) then
begin
LoadStringFromFile (srcFile, srcContents);
StringChangeEx (srcContents, 'WAMPMYSQLNEWPASSWORD', mypass, True);
StringChangeEx (srcContents, 'WAMPMYSQLPORT', myport, True);
SaveStringToFile(destFile,srcContents, False);
end
else
begin
// We must replace to use format 2.4 of apache
DeleteFile(destFile);
LoadStringFromFile (srcFile, srcContents);
StringChangeEx (srcContents, 'WAMPMYSQLNEWPASSWORD', mypass, True);
StringChangeEx (srcContents, 'WAMPMYSQLPORT', myport, True);
SaveStringToFile(destFile,srcContents, False);
end;
end;
//----------------------------------------------
// Create file httpd.conf (if not exists)
//----------------------------------------------
@@ -1015,7 +1082,7 @@ Filename: "{app}\rundoliwamp.bat"; Description: {cm:LaunchNow}; Flags: shellexec
[UninstallDelete]
Type: files; Name: "{app}\*.*"
Type: files; Name: "{app}\bin\mariadb\mariadb10.6.5\*.*"
Type: files; Name: "{app}\bin\mariadb\mariadb10.4.10\*.*"
Type: filesandordirs; Name: "{app}\alias"
Type: filesandordirs; Name: "{app}\apps"
Type: filesandordirs; Name: "{app}\bin\apache"

View File

@@ -55,9 +55,10 @@ if (empty($argv[1])) {
$i=0;
$result = array();
while ($i < $argc) {
if (! empty($argv[$i])) {
parse_str($argv[$i]); // set all params $release, $includecustom, $includeconstant, $buildzip ...
if (!empty($argv[$i])) {
parse_str($argv[$i], $result); // set all params $release, $includecustom, $includeconstant, $buildzip ...
}
if (preg_match('/includeconstant=/', $argv[$i])) {
$tmp=explode(':', $includeconstant, 3); // $includeconstant has been set with previous parse_str()

View File

@@ -65,7 +65,7 @@ $DIR||='.'; $DIR =~ s/([^\/\\])[\\\/]+$/$1/;
$SOURCE="$DIR/..";
$DESTI="$SOURCE/build";
if ($SOURCE !~ /^\// && $SOURCE !~ /^[a-z]:/i)
if ($SOURCE !~ /^\//)
{
print "Error: Launch the script $PROG.$Extension with its full path from /.\n";
print "$PROG.$Extension aborted.\n";
@@ -76,23 +76,15 @@ if (! $ENV{"DESTIBETARC"} || ! $ENV{"DESTISTABLE"})
{
print "Error: Missing environment variables.\n";
print "You must define the environment variable DESTIBETARC and DESTISTABLE to point to the\ndirectories where you want to save the generated packages.\n";
print "$PROG.$Extension aborted.\n";
print "\n";
print "You can set them with\n";
print "On Linux:\n";
print "export DESTIBETARC='/tmp'; export DESTISTABLE='/tmp';\n";
print "On Windows:\n";
print "set DESTIBETARC=c:/tmp\n";
print "set DESTISTABLE=c:/tmp\n";
print "\n";
print "Example: DESTIBETARC='/media/HDDATA1_LD/Mes Sites/Web/Dolibarr/dolibarr.org/files/lastbuild'\n";
print "Example: DESTISTABLE='/media/HDDATA1_LD/Mes Sites/Web/Dolibarr/dolibarr.org/files/stable'\n";
print "$PROG.$Extension aborted.\n";
sleep 2;
exit 1;
}
if (! -d $ENV{"DESTIBETARC"} || ! -d $ENV{"DESTISTABLE"})
{
print "Error: Directory of environment variable DESTIBETARC ($ENV{'DESTIBETARC'}) or DESTISTABLE ($ENV{'DESTISTABLE'}) does not exist.\n";
print "Error: Directory of environment variable DESTIBETARC or DESTISTABLE does not exist.\n";
print "$PROG.$Extension aborted.\n";
sleep 2;
exit 1;
@@ -102,7 +94,7 @@ if (! -d $ENV{"DESTIBETARC"} || ! -d $ENV{"DESTISTABLE"})
# --------------
if ("$^O" =~ /linux/i || (-d "/etc" && -d "/var" && "$^O" !~ /cygwin/i)) { $OS='linux'; $CR=''; }
elsif (-d "/etc" && -d "/Users") { $OS='macosx'; $CR=''; }
elsif ("$^O" =~ /cygwin/i || "$^O" =~ /win32/i || "$^O" =~ /msys/i) { $OS='windows'; $CR="\r"; }
elsif ("$^O" =~ /cygwin/i || "$^O" =~ /win32/i) { $OS='windows'; $CR="\r"; }
if (! $OS) {
print "Error: Can't detect your OS.\n";
print "Can't continue.\n";
@@ -398,7 +390,7 @@ if ($nboftargetok) {
$olddir=getcwd();
chdir("$SOURCE");
print "Clean $SOURCE/htdocs/includes/autoload.php\n";
print "Clean $SOURCE/htdocs\n";
$ret=`rm -f $SOURCE/htdocs/includes/autoload.php`;
$ret=`git ls-files . --exclude-standard --others`;
@@ -507,9 +499,8 @@ if ($nboftargetok) {
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/cache.manifest`;
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf.php`;
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf.php.mysql`;
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf.php.nova*`;
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf.php.old`;
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf.php.pgsql`;
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf.php.postgres`;
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf*sav*`;
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/install/mssql/README`;
@@ -591,7 +582,9 @@ if ($nboftargetok) {
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/teclib*`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/timesheet*`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/webmail*`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/theme/common/fontawesome-5/svgs`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/themes/oblyon*`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/themes/allscreen*`;
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/theme/common/octicons/LICENSE`;
# Removed other test files
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/public/test`;
@@ -621,7 +614,6 @@ if ($nboftargetok) {
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/nnnick/chartjs/scripts`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/nnnick/chartjs/src`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/nnnick/chartjs/test`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/nusoap/lib/Mail`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/nusoap/samples`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/php-iban/docs`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/sabre/sabre/*/tests`;
@@ -632,7 +624,7 @@ if ($nboftargetok) {
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/fonts/freefont-*`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/fonts/ae_fonts_*`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/fonts/utils`;
$ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/tools`;
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/tecnickcom/tcpdf/tools`;
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/vendor`;
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/webmozart`;
$ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/autoload.php`;
@@ -1082,52 +1074,28 @@ if ($nboftargetok) {
print "Remove target $NEWDESTI/$FILENAMEEXEDOLIWAMP.exe...\n";
unlink "$NEWDESTI/$FILENAMEEXEDOLIWAMP.exe";
if ($OS eq 'windows') {
print "Check that ISCC.exe is in your PATH.\n";
} else {
print "Check that in your Wine setup, you have created a Z: drive that point to your / directory.\n";
}
print "Check that in your Wine setup, you have created a Z: drive that point to your / directory.\n";
$SOURCEBACK=$SOURCE;
$SOURCEBACK =~ s/\//\\/g;
print "Prepare file \"$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.tmp.iss\" from \"$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.iss\"\n";
#$ret=`cat "$SOURCE/build/exe/doliwamp/doliwamp.iss" | sed -e 's/__FILENAMEEXEDOLIWAMP__/$FILENAMEEXEDOLIWAMP/g' > "$SOURCE/build/exe/doliwamp/doliwamp.tmp.iss"`;
open(IN, '<' . $SOURCE."/build/exe/doliwamp/doliwamp.iss") or die $!;
open(OUT, '>' . "$SOURCE/build/exe/doliwamp/doliwamp.tmp.iss") or die $!;
while(<IN>)
{
$_ =~ s/__FILENAMEEXEDOLIWAMP__/$FILENAMEEXEDOLIWAMP/g;
print OUT $_;
}
close(IN);
close(OUT);
print "Prepare file \"$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.tmp.iss from \"$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.iss\"\n";
$ret=`cat "$SOURCE/build/exe/doliwamp/doliwamp.iss" | sed -e 's/__FILENAMEEXEDOLIWAMP__/$FILENAMEEXEDOLIWAMP/g' > "$SOURCE/build/exe/doliwamp/doliwamp.tmp.iss"`;
print "Compil exe $FILENAMEEXEDOLIWAMP.exe file from iss file \"$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.tmp.iss\" on OS $OS\n";
if ($OS eq 'windows') {
$cmd= "ISCC.exe \"$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.tmp.iss\"";
} else {
#$cmd= "wine ISCC.exe \"Z:$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.tmp.iss\"";
}
print "Compil exe $FILENAMEEXEDOLIWAMP.exe file from iss file \"$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.tmp.iss\"\n";
$cmd= "wine ISCC.exe \"Z:$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.tmp.iss\"";
print "$cmd\n";
$ret= `$cmd`;
print "ret=$ret\n";
#print "$ret\n";
# Move to final dir
print "Move \"$SOURCE\\build\\$FILENAMEEXEDOLIWAMP.exe\" to $NEWDESTI/$FILENAMEEXEDOLIWAMP.exe\n";
rename("$SOURCE/build/$FILENAMEEXEDOLIWAMP.exe","$NEWDESTI/$FILENAMEEXEDOLIWAMP.exe");
print "Move $SOURCE/build/$FILENAMEEXEDOLIWAMP.exe to $NEWDESTI/$FILENAMEEXEDOLIWAMP.exe\n";
use File::Copy;
#$ret=`mv "$SOURCE/build/$FILENAMEEXEDOLIWAMP.exe" "$NEWDESTI/$FILENAMEEXEDOLIWAMP.exe"`;
$ret=move("$SOURCE/build/$FILENAMEEXEDOLIWAMP.exe", "$NEWDESTI/$FILENAMEEXEDOLIWAMP.exe");
$ret=`mv "$SOURCE/build/$FILENAMEEXEDOLIWAMP.exe" "$NEWDESTI/$FILENAMEEXEDOLIWAMP.exe"`;
print "Remove tmp file $SOURCE/build/exe/doliwamp/doliwamp.tmp.iss\n";
#$ret=`rm "$SOURCE/build/exe/doliwamp/doliwamp.tmp.iss"`;
$ret=unlink("$SOURCE/build/exe/doliwamp/doliwamp.tmp.iss");
$ret=`rm "$SOURCE/build/exe/doliwamp/doliwamp.tmp.iss"`;
next;
}
@@ -1274,7 +1242,7 @@ if ($nboftargetok) {
print "\n----- Summary -----\n";
foreach my $target (sort keys %CHOOSEDTARGET) {
if ($target eq '-CHKSUM') { print "Checksum was generated\n"; next; }
if ($target eq '-CHKSUM') { print "Checksum was generated"; next; }
if ($CHOOSEDTARGET{$target} < 0) {
print "Package $target not built (bad requirement).\n";
} else {

View File

@@ -1,47 +1,19 @@
----- Dolibarr Makepack How To -----
This documentation describe steps to build a BETA or RELEASE versions
of Dolibarr. There is a chapter for BETA version and a chapter for RELEASE version.
***** Prerequisites For Linux *****
Prerequisites to build tgz, debian and rpm packages:
> apt-get install perl tar dpkg dpatch p7zip-full rpm zip php-cli
Prerequisites to build autoexe DoliWamp package:
> apt-get install wine q4wine
> Launch "wine cmd" to check a drive Z: pointing to / exists.
> Install InnoSetup
For example by running isetup-5.5.8.exe (https://www.jrsoftware.org) https://files.jrsoftware.org/is/5/
> Install WampServer into "C:\wamp64" to have Apache, PHP and MariaDB
For example by running wampserver3.2.0_x64.exe (https://www.wampserver.com).
See file build/exe/doliwamp.iss to know the doliwamp version currently setup.
> Add path to ISCC into PATH windows var:
Launch wine cmd, then regedit and add entry int HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment\PATH
> To build manually the .exe from Windows (running from makepack-dolibarr.pl script is however recommanded),
open file build/exe/doliwamp.iss and click on button "Compile".
The .exe file will be build into directory build.
***** Prerequisites For Windows *****
Install Perl
Install WampServer-3.2.*-64.exe
isetup-5.5.8.exe
of Dolibarr. There is a chapter for BETA version and a chapter for
RELEASE version.
***** Actions to do a BETA *****
This files describe steps made by Dolibarr packaging team to make a
beta version of Dolibarr, step by step.
- Check all files are commited.
- Update version/info in ChangeLog, for this you can:
To generate a changelog of a major new version x.y.0 (from a repo on branch develop), you can do "cd ~/git/dolibarr; git log `diff -u <(git rev-list --first-parent x.(y-1).0) <(git rev-list --first-parent develop) | sed -ne 's/^ //p' | head -1`.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa"
To generate a changelog of a major new version x.y.0 (from a repo on branch x.y repo), you can do "cd ~/git/dolibarr_x.y; git log `diff -u <(git rev-list --first-parent x.(y-1).0) <(git rev-list --first-parent x.y.0) | sed -ne 's/^ //p' | head -1`.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa"
- Update version/info in ChangeLog.
To generate a changelog of a major new version x.y.0 (from develop repo), you can do "cd ~/git/dolibarr; git log `diff -u <(git rev-list --first-parent x.(y-1).0) <(git rev-list --first-parent develop) | sed -ne 's/^ //p' | head -1`.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa"
To generate a changelog of a major new version x.y.0 (from x.y repo), you can do "cd ~/git/dolibarr_x.y; git log `diff -u <(git rev-list --first-parent x.(y-1).0) <(git rev-list --first-parent x.y.0) | sed -ne 's/^ //p' | head -1`.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa"
To generate a changelog of a maintenance version x.y.z, you can do "cd ~/git/dolibarr_x.y; git log x.y.z-1.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa"
Recopy the content of the output file into the file ChangeLog.
- Note: To know number of lines changes: git diff --shortstat A B
- Update version number with x.y.z-w in file htdocs/filefunc.inc.php
- To know number of lines changes: git diff --shortstat A B
- Update version number with x.y.z-w in htdocs/filefunc.inc.php
- Commit all changes.
- Run makepack-dolibarr.pl to generate all packages.
@@ -52,6 +24,7 @@ Recopy the content of the output file into the file ChangeLog.
(/home/dolibarr/wwwroot/files/lastbuild).
- Post a news on dolibarr.org/dolibarr.fr + social networks
- Send mail on mailings-list
***** Actions to do a RELEASE *****
@@ -59,13 +32,12 @@ This files describe steps made by Dolibarr packaging team to make a
complete release of Dolibarr, step by step.
- Check all files are commited.
- Update version/info in ChangeLog, for this you can:
To generate a changelog of a major new version x.y.0 (from a repo on branch develop), you can do "cd ~/git/dolibarr; git log `diff -u <(git rev-list --first-parent x.(y-1).0) <(git rev-list --first-parent develop) | sed -ne 's/^ //p' | head -1`.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa"
To generate a changelog of a major new version x.y.0 (from a repo pn branch x.y), you can do "cd ~/git/dolibarr_x.y; git log `diff -u <(git rev-list --first-parent x.(y-1).0) <(git rev-list --first-parent x.y.0) | sed -ne 's/^ //p' | head -1`.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa"
- Update version/info in ChangeLog.
To generate a changelog of a major new version x.y.0 (from develop repo), you can do "cd ~/git/dolibarr; git log `diff -u <(git rev-list --first-parent x.(y-1).0) <(git rev-list --first-parent develop) | sed -ne 's/^ //p' | head -1`.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa"
To generate a changelog of a major new version x.y.0 (from x.y repo), you can do "cd ~/git/dolibarr_x.y; git log `diff -u <(git rev-list --first-parent x.(y-1).0) <(git rev-list --first-parent x.y.0) | sed -ne 's/^ //p' | head -1`.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa"
To generate a changelog of a maintenance version x.y.z, you can do "cd ~/git/dolibarr_x.y; git log x.y.z-1.. --no-merges --pretty=short --oneline | sed -e "s/^[0-9a-z]* //" | grep -e '^FIX\|NEW' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' > /tmp/aaa"
Recopy the content of the output file into the file ChangeLog.
- Note: To know the number of lines changes: git diff --shortstat A B
- Update version number with x.y.z in file htdocs/filefunc.inc.php
- To know number of lines changes: git diff --shortstat A B
- Update version number with x.y.z in htdocs/filefunc.inc.php
- Commit all changes.
- Run makepack-dolibarr.pl to generate all packages.
@@ -80,3 +52,4 @@ Recopy the content of the output file into the file ChangeLog.
on server to point to new files (used by some web sites).
- Post a news on dolibarr.org/dolibarr.fr + social networks
- Send mail on mailings-list

View File

@@ -1,7 +1,6 @@
README (English)
##################################################
Building PAD files
http://pad.asp-software.org/padgen.php
##################################################
This directory contains files and docs used to build

View File

@@ -30,7 +30,7 @@ return "Regis Houssin";
# script_dolibarr_versions()
sub script_dolibarr_versions
{
return ( "14.0.5", "13.0.5", "12.0.5", "11.0.5", "10.0.7", "9.0.4", "8.0.6", "7.0.5" );
return ( "12.0.3", "11.0.5", "10.0.7", "9.0.4", "8.0.6", "7.0.5" );
}
sub script_dolibarr_release
@@ -400,8 +400,6 @@ sub script_dolibarr_check_latest
{
local ($ver) = @_;
local @vers = &osdn_package_versions("dolibarr",
$ver >= 14.0 ? "dolibarr\\-(12\\.0\\.[0-9\\.]+)\\.tgz" :
$ver >= 13.0 ? "dolibarr\\-(12\\.0\\.[0-9\\.]+)\\.tgz" :
$ver >= 12.0 ? "dolibarr\\-(12\\.0\\.[0-9\\.]+)\\.tgz" :
$ver >= 11.0 ? "dolibarr\\-(11\\.0\\.[0-9\\.]+)\\.tgz" :
$ver >= 10.0 ? "dolibarr\\-(10\\.0\\.[0-9\\.]+)\\.tgz" :

View File

@@ -166,6 +166,7 @@ done >>%{name}.lang
%_datadir/dolibarr/htdocs/blockedlog
%_datadir/dolibarr/htdocs/bookmarks
%_datadir/dolibarr/htdocs/bom
%_datadir/dolibarr/htdocs/cashdesk
%_datadir/dolibarr/htdocs/categories
%_datadir/dolibarr/htdocs/collab
%_datadir/dolibarr/htdocs/comm
@@ -227,7 +228,6 @@ done >>%{name}.lang
%_datadir/dolibarr/htdocs/ticket
%_datadir/dolibarr/htdocs/user
%_datadir/dolibarr/htdocs/variants
%_datadir/dolibarr/htdocs/webhook
%_datadir/dolibarr/htdocs/webservices
%_datadir/dolibarr/htdocs/website
%_datadir/dolibarr/htdocs/workstation

View File

@@ -54,7 +54,7 @@ BuildRequires: desktop-file-utils
Group: Applications/Productivity
Requires: apache-base, apache-mod_php, php-cgi, php-cli, php-bz2, php-gd, php-ldap, php-imap, php-mysqli, php-openssl, fonts-ttf-dejavu
Requires: mysql, mysql-client
%else
%else%_datadir/dolibarr/htdocs/datapolicy
%if 0%{?suse_version}
# Voir http://en.opensuse.org/openSUSE:Packaging_Conventions_RPM_Macros
Group: Productivity/Office/Management
@@ -67,7 +67,7 @@ Requires: httpd, php >= 5.3.0, php-cli, php-gd, php-ldap, php-imap, php-mbstring
Requires: mysql-server, mysql
Requires: php-mysqli >= 4.1.0
%endif
%endif
%endif%_datadir/dolibarr/htdocs/eventorganization
%endif
@@ -125,7 +125,7 @@ cui hai bisogno ed essere facile da usare.
%if 0%{?sles_version}
%{__rm} -rf $RPM_BUILD_ROOT
%{__mkdir} $RPM_BUILD_ROOT%
%{__mkdir} $RPM_BUILD_ROOT%_datadir/dolibarr/htdocs/datapolicy
%{__mkdir} $RPM_BUILD_ROOT%{_sysconfdir}
%{__mkdir} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}
%else
@@ -247,6 +247,7 @@ done >>%{name}.lang
%_datadir/dolibarr/htdocs/blockedlog
%_datadir/dolibarr/htdocs/bookmarks
%_datadir/dolibarr/htdocs/bom
%_datadir/dolibarr/htdocs/cashdesk
%_datadir/dolibarr/htdocs/categories
%_datadir/dolibarr/htdocs/collab
%_datadir/dolibarr/htdocs/comm
@@ -308,7 +309,6 @@ done >>%{name}.lang
%_datadir/dolibarr/htdocs/ticket
%_datadir/dolibarr/htdocs/user
%_datadir/dolibarr/htdocs/variants
%_datadir/dolibarr/htdocs/webhook
%_datadir/dolibarr/htdocs/webservices
%_datadir/dolibarr/htdocs/website
%_datadir/dolibarr/htdocs/workstation

View File

@@ -163,6 +163,7 @@ done >>%{name}.lang
%_datadir/dolibarr/htdocs/blockedlog
%_datadir/dolibarr/htdocs/bookmarks
%_datadir/dolibarr/htdocs/bom
%_datadir/dolibarr/htdocs/cashdesk
%_datadir/dolibarr/htdocs/categories
%_datadir/dolibarr/htdocs/collab
%_datadir/dolibarr/htdocs/comm
@@ -224,7 +225,6 @@ done >>%{name}.lang
%_datadir/dolibarr/htdocs/ticket
%_datadir/dolibarr/htdocs/user
%_datadir/dolibarr/htdocs/variants
%_datadir/dolibarr/htdocs/webhook
%_datadir/dolibarr/htdocs/webservices
%_datadir/dolibarr/htdocs/website
%_datadir/dolibarr/htdocs/workstation

View File

@@ -66,7 +66,7 @@ ed essere facile da usare.
Programmo web, progettato per poter fornire solo ciò di
cui hai bisogno ed essere facile da usare.
%_datadir/dolibarr/htdocs/webhook
#---- prep
%prep
@@ -174,6 +174,7 @@ done >>%{name}.lang
%_datadir/dolibarr/htdocs/blockedlog
%_datadir/dolibarr/htdocs/bookmarks
%_datadir/dolibarr/htdocs/bom
%_datadir/dolibarr/htdocs/cashdesk
%_datadir/dolibarr/htdocs/categories
%_datadir/dolibarr/htdocs/collab
%_datadir/dolibarr/htdocs/comm
@@ -235,7 +236,6 @@ done >>%{name}.lang
%_datadir/dolibarr/htdocs/ticket
%_datadir/dolibarr/htdocs/user
%_datadir/dolibarr/htdocs/variants
%_datadir/dolibarr/htdocs/webhook
%_datadir/dolibarr/htdocs/webservices
%_datadir/dolibarr/htdocs/website
%_datadir/dolibarr/htdocs/workstation

View File

@@ -28,14 +28,14 @@
"ext-curl" : "*",
"ckeditor/ckeditor" : "4.12.1",
"mike42/escpos-php" : "2.2",
"mobiledetect/mobiledetectlib" : "2.8.39",
"mobiledetect/mobiledetectlib" : "2.8.34",
"phpoffice/phpexcel" : "1.8.2",
"restler/framework" : "3.0.0-RC6",
"tecnickcom/tcpdf" : "6.3.2",
"nnnick/chartjs" : "^2.9",
"stripe/stripe-php" : "6.43.1",
"maximebf/debugbar" : "1.15.1",
"symfony/var-dumper" : "3.2"
"symfony/var-dumper" : "3"
},
"require-dev" : {
"php-parallel-lint/php-parallel-lint" : "^0",
@@ -59,4 +59,4 @@
"ext-zip" : "ODT, Excel and file compression support",
"ext-xml" : "Excel support"
}
}
}

2349
composer.lock generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -102,7 +102,7 @@ with
* Replace in tcpdf.php
if (!@TCPDF_STATIC::file_exists($file)) {
return false;
return false;
}
with
@@ -110,13 +110,9 @@ with
if (!@TCPDF_STATIC::file_exists($file)) {
// DOL CHANGE If we keep this, the image is not visible on pages after the first one.
//var_dump($file.' '.(!@TCPDF_STATIC::file_exists($file)));
//return false;
$tfile = str_replace(' ', '%20', $file);
if (@TCPDF_STATIC::file_exists($tfile)) {
$file = $tfile;
}
//return false;
}
* Replace in tcpdf.php
if (($imgsrc[0] === '/') AND !empty($_SERVER['DOCUMENT_ROOT']) AND ($_SERVER['DOCUMENT_ROOT'] != '/')) {
@@ -138,7 +134,6 @@ with
}
elseif (($imgsrc[0] === '/') AND !empty($_SERVER['DOCUMENT_ROOT']) AND ($_SERVER['DOCUMENT_ROOT'] != '/')) {
* In tecnickcom/tcpdf/include/tcpdf_static.php, in function fopenLocal, replace
if (strpos($filename, '://') === false) {
@@ -154,16 +149,16 @@ with
elseif (strpos($filename, '://') === false)
* To avoid to have QRcode changed because generated with a random mask, replace
define('QR_FIND_FROM_RANDOM', 2);
with
define('QR_FIND_FROM_RANDOM', false);
define('QR_FIND_FROM_RANDOM', 2);
with:
define('QR_FIND_FROM_RANDOM', false);
* Removed useless directories ("examples", "tools")
* Optionnaly, removed all fonts except
dejavusans* (used by greek, arab, persan, romanian, turkish),
freemono* (russian),
cid*+msungstdlight+stsongstdlight+uni2cid* (chinese),
* Optionnaly, removed all fonts except
dejavusans* (used by greek, arab, persan, romanian, turkish),
freemono* (russian),
cid*+msungstdlight+stsongstdlight+uni2cid* (chinese),
helvetica* (all other languages),
zapfdingbats.php (for special chars like form checkboxes)
@@ -175,15 +170,15 @@ In htdocs/includes/tecnickcom/tcpdf/tcpdf.php
* In tecnickcom/tcpdf/include/tcpdf_static, in function intToRoman, right at the beginning
of the function, replace:
$roman = '';
$roman = '';
with:
with:
$roman = '';
if ($number >= 4000) {
// do not represent numbers above 4000 in Roman numerals
return strval($number);
}
$roman = '';
if ($number >= 4000) {
// do not represent numbers above 4000 in Roman numerals
return strval($number);
}
@@ -201,14 +196,9 @@ with:
* Fix syntax error by replacing
} elseif (($key == '/Index') AND ($v[0] == PDF_TYPE_ARRAY AND count($v[1] >= 2))) {
with
with
} elseif (($key == '/Index') AND ($v[0] == PDF_TYPE_ARRAY AND count($v[1]) >= 2)) {
* Fix php fatal error on php 8.0 on tcpdi.php
while (list($k, $v) = each($value[1])) {
with
foreach ($value[1] as $k => $v) {
JSGANTT:
@@ -239,13 +229,11 @@ JCROP:
* Remove analytics tag into file index.html
JQUERYFILETREE:
---------------
* Remove directory htdocs/includes/jquery/plugins/jqueryFileTree/connectors
RESTLER:
--------
@@ -275,13 +263,24 @@ RESTLER:
with
$loaders = array_unique(static::$rogueLoaders, SORT_REGULAR);
* Replace CommentParser.php line 423
elseif (count($value) && is_numeric($value[0]))
with
elseif (count($value) && isset($value[0]) && is_numeric($value[0]))
* Add a test into AutoLoader.php to complete function loadThisLoader and test if property exists before calling it. For this replace code
if (false !== $file = $b::$loader[1]($className) && $this->exists($className, $b::$loader[1])) {
return $file;
}
with:
//avoid PHP Fatal error: Uncaught Error: Access to undeclared static property: Composer\\Autoload\\ClassLoader::$loader
//in case of multiple autoloader systems
if(property_exists($b, $loader[1])) {
if (false !== $file = $b::$loader[1]($className)
&& $this->exists($className, $b::$loader[1])) {
return $file;
}
}
+With swagger 2 provided into /explorer:
@@ -297,16 +296,15 @@ PARSEDOWN
* Add support of css by adding in Parsedown.php:
// @CHANGE LDR
'class' => $Link['element']['attributes']['class']
'class' => $Link['element']['attributes']['class']
...
// @CHANGE LDR
if (preg_match('/{([^}]+)}/', $remainder, $matches2))
{
$Element['attributes']['class'] = $matches2[1];
$remainder = preg_replace('/{'.preg_quote($matches2[1],'/').'}/', '', $remainder);
}
if (preg_match('/{([^}]+)}/', $remainder, $matches2)) {
$Element['attributes']['class'] = $matches2[1];
$remainder = preg_replace('/{'.preg_quote($matches2[1],'/').'}/', '', $remainder);
}
// @CHANGE LDR
@@ -339,7 +337,7 @@ Add into Class Google of file OAuth2/Service/Google:
}
$this->approvalPrompt = $prompt;
}
JEDITABLE.JS

View File

@@ -5,4 +5,4 @@ This directory contains samples of code to use Dolibarr business classes to buil
external interfaces that need to read/update data from/into Dolibarr.
You can also have a look at the Dolibarr doxygen doc that describes all files and classes:
https://doxygen.dolibarr.org/
http://www.dolibarr.org/html_doxygen/index.html

View File

@@ -15,7 +15,7 @@
"npm": ">=5.6.0"
},
"dependencies": {
"zapier-platform-core": "11.3.1"
"zapier-platform-core": "11.0.1"
},
"devDependencies": {
"mocha": "^5.2.0",

View File

@@ -132,7 +132,7 @@ then
fichtemp=`tempfile 2>/dev/null` || fichtemp=/tmp/test$$
trap "rm -f $fichtemp" 0 1 2 5 15
$DIALOG --title "Init Dolibarr with demo values" --clear \
--passwordbox "Password for Mysql user login :" 16 55 2> $fichtemp
--inputbox "Password for Mysql user login :" 16 55 2> $fichtemp
valret=$?
@@ -153,7 +153,7 @@ then
# ---------------------------- confirmation
DIALOG=${DIALOG=dialog}
$DIALOG --title "Init Dolibarr with demo values" --clear \
--yesno "Do you confirm ? \n Dump file : '$dumpfile' \n Dump dir : '$mydir' \n Document dir : '$documentdir' \n Mysql database : '$base' \n Mysql port : '$port' \n Mysql login: '$admin' \n Mysql password : --hidden--" 15 55
--yesno "Do you confirm ? \n Dump file : '$dumpfile' \n Dump dir : '$mydir' \n Document dir : '$documentdir' \n Mysql database : '$base' \n Mysql port : '$port' \n Mysql login: '$admin' \n Mysql password : '$passwd'" 15 55
case $? in
0) echo "Ok, start process...";;

View File

@@ -171,10 +171,7 @@ if [ $res -ne 0 ]; then
fi
if [ -s "$mydir/initdemopostsql.sql" ]; then
echo A file initdemopostsql.sql was found, we execute it.
mysql -P$port $base < "$mydir/initdemopostsql.sql"
else
echo No file initdemopostsql.sql found, so no extra sql action done.
fi

File diff suppressed because one or more lines are too long

View File

@@ -116,7 +116,7 @@ then
fichtemp=`tempfile 2>/dev/null` || fichtemp=/tmp/test$$
trap "rm -f $fichtemp" 0 1 2 5 15
$DIALOG --title "Save Dolibarr with demo values" --clear \
--passwordbox "Password for Mysql root login :" 16 55 2> $fichtemp
--inputbox "Password for Mysql root login :" 16 55 2> $fichtemp
valret=$?
@@ -150,7 +150,7 @@ then
# ---------------------------- confirmation
DIALOG=${DIALOG=dialog}
$DIALOG --title "Save Dolibarr with demo values" --clear \
--yesno "Do you confirm ? \n Dump file : '$dumpfile' \n Dump dir : '$mydir' \n Mysql database : '$base' \n Mysql port : '$port' \n Mysql login: '$admin' \n Mysql password : --hidden--" 15 55
--yesno "Do you confirm ? \n Dump file : '$dumpfile' \n Dump dir : '$mydir' \n Mysql database : '$base' \n Mysql port : '$port' \n Mysql login: '$admin' \n Mysql password : '$passwd'" 15 55
case $? in
0) echo "Ok, start process...";;

View File

@@ -4,7 +4,7 @@
*
* 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
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,

View File

@@ -4,7 +4,7 @@
*
* 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
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,

View File

@@ -2,13 +2,13 @@
Gestion escompte:
Sur une facture de 120 € TTC :
707xxx 100 € HT
44571x 20 € TVA
411xxx 120 € TTC
707xxx 100 € HT
44571x 20 € TVA
411xxx 120 € TTC
Le client règle rapidement et on lui accorde un escompte de 3% (120 € * 3% = 3.6 € TTC), on aura donc :
665000 3,00 € HT
44571x 0,60 € TVA
411xxx 3,60 € TTC
665000 3,00 € HT
44571x 0,60 € TVA
411xxx 3.60 € TVA
Et ça marche à linverse avec un fournisseur sauf que lon est en 775000 au lieu de 665000 pour escompte obtenus.

View File

@@ -1,5 +1,3 @@
Address format
https://bitboost.com/ref/international-address-formats.html#Formats
https://www.upu.int/en/Postal-Solutions/Programmes-Services/Addressing-Solutions

View File

@@ -0,0 +1,129 @@
Barcode EAN 13
FR
==
Signification des chiffres.
- 2 chiffres pour le code pays ou code systeme
- 5 chiffres pour l'identificateur de societe
- 5 chiffres pour l'identificateur d'article
- 1 chiffre pour la somme de controle
Cette regle subit de nombreuses entorses pour ameliorer l'usage des chiffres disponibles.
Voici la liste des codes pays ou systeme :
EN
==
Meaning of the numbers.
- 2 digits for the country code or system code
- 5 digits for the company identifier
- 5 digits for item identifier
- 1 digit for checksum
This rule has been twisted many times to improve the use of the available numbers.
Here is the list of country codes or system:
List
====
00 <20> 13 UCC (Etats-Unis et Canada)
20 <20> 29 Codification interne en magasin
30 <20> 37 GENCOD-EAN France
380 BCCI (Bulgarie)
383 SANA (Slovenie)
385 CRO-EAN (Croatie)
387 EAN-BIH (Bosnie-Herzegovine)
400 <20> 440 CCG (Allemagne)
45 + 49 Distribution Code Center <20> DCC (Japon)
460 <20> 469 UNISCAN - EAN Russie (Federation de Russie)
471 CAN (Taiwan)
474 EAN Estonie
475 EAN Lettonie
476 EAN Azerba<62> djan
477 EAN Lituanie
478 EAN Ouzbekistan
479 EAN Sri Lanka
480 PANC (Philippines)
481 EAN Bielorussie
482 EAN Ukraine
484 EAN Moldavie
485 EAN Armenie
486 EAN Georgie
487 EAN Kazakhstan
489 HKANA (Hong Kong)
50 E Centre UK
520 HELLCAN-EAN HELLAS (Grece)
528 EAN Liban
529 EAN Chypre
531 EAN-MAC (FYR Mac<61>donie)
535 EAN Malte
539 EAN Irlande
54 ICODIF/EAN Belgique. Luxembourg
560 CODIPOR (Portugal)
569 EAN Islande
57 EAN Danemark
590 EAN Pologne
594 EAN Roumanie
599 H.A.P.M.H. (Hongrie)
600 - 601 EAN Afrique du Sud
609 EAN Ile Maurice
611 EAN Maroc
613 EAN Algerie
619 Tunicode (Tunisie)
621 EAN Syrie
622 EAN Egypte
625 EAN Jordanie
626 EAN Iran
628 EAN Arabie Saoudite
64 EAN Finlande
690 - 693 Article Numbering Centre of China - ANCC (Chine)
70 EAN Norge (Norvege)
729 Israeli Bar Code Association <20> EAN Israel
73 EAN Suede
740 EAN Guatemala
741 EAN El Salvador
742 ICCC (Honduras)
743 EAN Nicaragua
744 EAN Costa Rica Panama
746 746 EAN Republique Dominicaine
750 AMECE (Mexique)
759 EAN Venezuela
76 EAN (Schweiz, Suisse, Svizzera)
770 IAC (Colombie)
773 EAN Uruguay
775 APC - EAN Peru (Perou)
777 EAN Bolivie
779 CODIGO - EAN Argentine
780 EAN Chili
784 EAN Paraguay
786 ECOP (Equateur)
789 EAN Bresil
80 <20> 83 INDICOD (Italie)
84 AECOC (Espagne)
850 Camera de Comercio de la Republica de Cuba (Cuba)
858 EAN Slovaquie
859 EAN Republique Tcheque
860 EAN YU (Yougoslavie)
867 EAN DPR Korea (Coree du Nord)
869 Union of Chambers of Commerce of Turkey (Turquie)
87 EAN Nederland (Hollande)
880 EAN Korea (Coree du Sud)
885 EAN Thailande
888 SANC (Singapour)
890 EAN Inde
893 EAN Vietnam
899 EAN Indonesie
90 - 91 EAN Autriche
93 EAN Australie
94 EAN Nouvelle Zelande
955 Malaysian Article Numbering Council (MANC) - Malaisie
977 Publications sirielles (ISSN)
978 - 979 Livres (ISBN)
980 Refus de remboursement
981 - 982 Coupons (monnaie courante)
99 Coupons

View File

@@ -1,12 +1,8 @@
# File of all ISO-4217 currencies codes
# http://en.wikipedia.org/wiki/ISO_4217
# http://fx.sauder.ubc.ca/currency_table.html for symbols for 2 letter code
#
# https://en.wikipedia.org/wiki/ISO_4217
# https://en.wikipedia.org/wiki/Currency_symbol for symbols for 2 letter code
#
# Code, Currency Name, Nb decimals
# Code,Name,Nb decimals
AED,UAE Dirham,2
AFN,Afghanistan Afghani,2
ALL,Albanian Lek,2

View File

@@ -1,5 +1,3 @@
Date and number format
----------------------
For languages:
https://icu4c-demos.unicode.org/icu-bin/icudemos - Locale Explorer -> Error 404

View File

@@ -1,29 +0,0 @@
QR-Code = Quick Response Code - is a two-dimensional / 2D- / Matrix-Barcode
ISO/IEC 18004
List of QR Code format we found on some invoices
------------------------------------------------
* For SEPA QR payment Code format (Europe)
------------------------------------------
https://en.wikipedia.org/wiki/EPC_QR_code#Generators
* For ZATCA QR Code format (Saudi Arabia). Used when INVOICE_ADD_ZATCA_QR_CODE is set
-------------------------------------------------------------------------------------
https://www.pwc.com/m1/en/services/tax/me-tax-legal-news/2021/saudi-arabia-guide-to-develop-compliant-qr-code-for-simplified-einvoices.html
https://www.tecklenborgh.com/post/ksa-zatca-publishes-guide-on-how-to-develop-a-fatoora-compliant-qr-code
Method to encode/decode ZATCA string is available in test/phpunit/BarcodeTest.php
* FOR QR-Bill in switzerland
----------------------------
Syntax of QR Code https://www.swiss-qr-invoice.org/fr/
Syntax of complentary field named "structured information of invoice S1": https://www.swiss-qr-invoice.org/downloads/qr-bill-s1-syntax-fr.pdf
To test/validate: https://www.swiss-qr-invoice.org/validator/

View File

@@ -1,129 +0,0 @@
Barcode EAN 13
FR
==
Signification des chiffres.
- 2 chiffres pour le code pays ou code systeme
- 5 chiffres pour l'identificateur de societe
- 5 chiffres pour l'identificateur d'article
- 1 chiffre pour la somme de controle
Cette regle subit de nombreuses entorses pour ameliorer l'usage des chiffres disponibles.
Voici la liste des codes pays ou systeme :
EN
==
Meaning of the numbers:
- first 2-3 digits for the country code or system code
- 5 digits for the company identifier
- 5 digits for item identifier
- 1 digit for checksum
This rule has been twisted many times to improve the use of the available numbers.
Here is the list of country codes or system:
List
====
00 - 13 UCC (U.S.A / États-Unis & Canada)
20 - 29 Flag for internal numbering / Codification interne en magasin
30 - 37 GENCOD-EAN France
380 BCCI (Bulgaria)
383 SANA (Slovenia)
385 CRO-EAN (Croatia)
387 EAN-BIH (Bosnia-Herzegovina)
400-440 CCG (DE/Germany/Allemagne)
45 + 49 Distribution Code Center - DCC (Japan)
460-469 UNISCAN - EAN Russia (Federation de Russie)
471 CAN Taiwan
474 EAN Estonia
475 EAN Latvia
476 EAN Azerbaijan
477 EAN Lithuania
478 EAN Uzbekistan
479 EAN Sri Lanka
480 PANC Philippines
481 EAN Belarus
482 EAN Ukraine
484 EAN Moldova
485 EAN Armenia
486 EAN Georgia
487 EAN Kazakhstan
489 HKANA Hong Kong
50 E Centre UK - United Kingdom
520 HELLCAN-EAN HELLAS - Greece
528 EAN Lebanon
529 EAN Cyprus
531 EAN-MAC (FYR Macedonia)
535 EAN Malta
539 EAN Ireland
54 ICODIF/EAN Belgium & Luxembourg
560 CODIPOR (Portugal)
569 EAN Iceland/Islande
57 EAN Denmark
590 EAN Poland
594 EAN Romania
599 H.A.P.M.H. (Hungary)
600-601 EAN South Africa
609 EAN Mauritius Island
611 EAN Morocco
613 EAN Algeria
619 Tunicode (Tunisia)
621 EAN Syria
622 EAN Egypt
625 EAN Jordan/Jordanie
626 EAN Iran
628 EAN Saudi Arabia
64 EAN Finland
690-693 ANCC - Article Numbering Centre of China
70 EAN Norge (Norvege)
729 Israeli Bar Code Association - EAN Israel
73 EAN Suede
740 EAN Guatemala
741 EAN El Salvador
742 ICCC (Honduras)
743 EAN Nicaragua
744 EAN Costa Rica Panama
746 746 EAN Republique Dominicaine
750 AMECE (Mexique)
759 EAN Venezuela
76 EAN (Schweiz, Suisse, Svizzera)
770 IAC (Colombie)
773 EAN Uruguay
775 APC - EAN Peru (Perou)
777 EAN Bolivie
779 CODIGO - EAN Argentine
780 EAN Chili
784 EAN Paraguay
786 ECOP (Equateur)
789 EAN Bresil
80 - 83 INDICOD (Italy)
84 AECOC (Espagne)
850 Camera de Comercio de la Republica de Cuba (Cuba)
858 EAN Slovaquie
859 EAN Republique Tcheque
860 EAN YU (Yougoslavie)
867 EAN DPR Korea (Coree du Nord)
869 Union of Chambers of Commerce of Turkey (Turquie)
87 EAN Nederland (Hollande)
880 EAN Korea (Coree du Sud)
885 EAN Thailande
888 SANC (Singapour)
890 EAN Inde
893 EAN Vietnam
899 EAN Indonesie
90 - 91 EAN Autriche
93 EAN Australie
94 EAN Nouvelle Zelande
955 Malaysian Article Numbering Council (MANC) - Malaisie
977 Publications sirielles (ISSN)
978 - 979 Livres (ISBN)
980 Refus de remboursement
981 - 982 Coupons (monnaie courante)
99 Coupons

View File

@@ -1,6 +1,3 @@
VAT Rates
---------
http://www.taxrates.cc/index.html
https://en.wikipedia.org/wiki/List_of_countries_by_tax_rates

View File

@@ -1,93 +1,62 @@
<VirtualHost *:80>
#php_admin_value sendmail_path "/usr/sbin/sendmail -t -i"
#php_admin_value mail.force_extra_parameters "-f postmaster@mydomain.com"
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f postmaster@mydomain.com"
php_admin_value open_basedir /tmp/:/home/.../htdocs:/home/.../dolibarr_documents:
ServerName myvirtualalias
ServerAlias myvirtualalias
UseCanonicalName On
KeepAlive On
KeepAliveTimeout 5
MaxKeepAliveRequests 20
AddDefaultCharset UTF-8
DocumentRoot "/home/.../htdocs"
<Directory /home/.../htdocs/>
AllowOverride None
Options -Indexes -MultiViews +FollowSymLinks -ExecCGI
Require all granted
#php_admin_value sendmail_path "/usr/sbin/sendmail -t -i"
#php_admin_value mail.force_extra_parameters "-f postmaster@mydomain.com"
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f postmaster@mydomain.com"
php_admin_value open_basedir /tmp/:/home/../htdocs
# To restrict access by a HTTP basic auth
#AuthType Basic
#AuthName "Authenticate to backoffice"
#AuthUserFile /etc/apache2/.htpasswd
#require valid-user
</Directory>
# Leaving /public and /api, /dav, .well_known but also wrappers for document and viewimage accessible to everyone
<Directory /home/admin/wwwroot/dolibarr/htdocs/public/>
AuthType None
Require all granted
Satisfy any
</Directory>
<Directory /home/admin/wwwroot/dolibarr/htdocs/api/>
AuthType None
Require all granted
Satisfy any
</Directory>
<Directory /home/admin/wwwroot/dolibarr/htdocs/dav/>
AuthType None
Require all granted
Satisfy any
</Directory>
<Directory /home/admin/wwwroot/dolibarr/htdocs/.well-known/>
AuthType None
Require all granted
Satisfy any
</Directory>
<Files ~ "(document\.php|viewimage\.php|\.js\.php|\.json\.php|\.js|\.css\.php|\.css|\.gif|\.png|\.svg|\.woff2|favicon\.ico)$">
AuthType None
Require all granted
Satisfy any
</Files>
ServerName myvirtualalias
ServerAlias myvirtualalias
ErrorLog /var/log/apache2/myvirtualalias_error_log
TransferLog /var/log/apache2/myvirtualalias_access_log
# Compress returned resources of type php pages, text file export, css and javascript
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/x-javascript
AddType text/javascript .jgz
AddEncoding gzip .jgz
ExpiresActive On
ExpiresByType image/x-icon A2592000
ExpiresByType image/gif A2592000
ExpiresByType image/png A2592000
ExpiresByType image/jpeg A2592000
ExpiresByType text/css A2592000
ExpiresByType text/javascript A2592000
ExpiresByType application/x-javascript A2592000
ExpiresByType application/javascript A2592000
SSLEngine On
# A self-signed (snakeoil) certificate can be created by installing
# the ssl-cert package. See
# /usr/share/doc/apache2.2-common/README.Debian.gz for more info.
# If both key and certificate are stored in the same file, only the
# SSLCertificateFile directive is needed.
SSLCertificateFile /etc/letsencrypt/live/www.mydomain.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.mydomain.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/www.mydomain.com/chain.pem
#RewriteEngine on
#RewriteCond %{SERVER_PORT} ^80$
#RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R]
UseCanonicalName On
AddDefaultCharset UTF-8
DocumentRoot "/home/.../htdocs"
<Directory /home/.../htdocs/>
AllowOverride None
Options -Indexes -MultiViews +FollowSymLinks -ExecCGI
Require all granted
</Directory>
<Directory "/home/../htdocs/cache">
Deny from all
RemoveHandler .phtml .php .php3 .php4 .php5 .php6 .phps .cgi .exe .pl .asp .aspx .shtml .shtm .fcgi .fpl .jsp .htm .html .wml
AddType application/x-httpd-php-source .phtml .php .php3 .php4 .php5 .php6 .phps .cgi .exe .pl .asp .aspx .shtml .shtm .fcgi .fpl .jsp .htm .html .wml
</Directory>
ErrorLog /var/log/apache2/myvirtualalias_error_log
TransferLog /var/log/apache2/myvirtualalias_access_log
# Compress returned resources of type php pages, text file export, css and javascript
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/x-javascript
AddType text/javascript .jgz
AddEncoding gzip .jgz
ExpiresActive On
ExpiresByType image/x-icon A2592000
ExpiresByType image/gif A2592000
ExpiresByType image/png A2592000
ExpiresByType image/jpeg A2592000
ExpiresByType text/css A2592000
ExpiresByType text/javascript A2592000
ExpiresByType application/x-javascript A2592000
ExpiresByType application/javascript A2592000
SSLEngine On
# A self-signed (snakeoil) certificate can be created by installing
# the ssl-cert package. See
# /usr/share/doc/apache2.2-common/README.Debian.gz for more info.
# If both key and certificate are stored in the same file, only the
# SSLCertificateFile directive is needed.
SSLCertificateFile /etc/letsencrypt/live/www.mydomain.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.mydomain.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/www.mydomain.com/chain.pem
#RewriteEngine on
#RewriteCond %{SERVER_PORT} ^80$
#RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R]
</VirtualHost>

View File

@@ -7,7 +7,7 @@
# To run the fix manually: cd ~/git/dolibarr; phpcbf -s -p -d memory_limit=-1 --extensions=php --colors --tab-width=4 --standard=dev/setup/codesniffer/ruleset.xml --encoding=utf-8 --runtime-set ignore_warnings_on_exit true "fileordir"
PROJECT=`php -r "echo dirname(dirname(dirname(realpath('$0'))));"`
STAGED_FILES_CMD=`git diff --cached --name-only --diff-filter=ACMR HEAD | grep -v '/includes/'| grep \\\\.php`
STAGED_FILES_CMD=`git diff --cached --name-only --diff-filter=ACMR HEAD | grep \\\\.php`
DIRPHPCS=""
AUTOFIX=1

View File

@@ -10,7 +10,6 @@
# Syntax
if [ "x$1" != "xlist" -a "x$1" != "xfix" ]
then
echo "Detect .sh and .spec files that does not contains any tab inside"
echo "Usage: fixnotabfiles.sh [list|fix]"
fi

View File

@@ -50,10 +50,6 @@ then
then
aaupper="SA"
fi
if [ $bb = "IQ" ]
then
aaupper="SA"
fi
bblower=`echo $dirshort | nawk -F"_" '{ print tolower($2) }'`
@@ -61,29 +57,23 @@ then
if [ "$aa" != "$bblower" -a "$dirshort" != "en_US" ]
then
reflang="htdocs/langs/"$aa"_"$aaupper
echo $reflang" "$aa"_"$bb != $aa"_"$aaupper
# If $reflang is a main language to use to sanitize the alternative file
if [ -d $reflang ]
if [ -d $reflang -a $aa"_"$bb != $aa"_"$aaupper ]
then
if [ $aa"_"$bb != $aa"_"$aaupper ]
then
echo "***** Search original into "$reflang
echo $dirshort is an alternative language of $reflang
echo ./dev/translation/strip_language_file.php $aa"_"$aaupper $aa"_"$bb $2
./dev/translation/strip_language_file.php $aa"_"$aaupper $aa"_"$bb $2
for fic in `ls htdocs/langs/${aa}_${bb}/*.delta`; do f=`echo $fic | sed -e 's/\.delta//'`; echo $f; mv $f.delta $f; done
for fic in `ls htdocs/langs/${aa}_${bb}/*.lang`;
do f=`cat $fic | wc -l`;
#echo $f lines into file $fic;
if [ $f = 1 ]
then
echo Only one line remainging into file $fic, we delete it;
rm $fic
fi;
done
fi
fi
echo "***** Search original into "$reflang
echo $dirshort is an alternative language of $reflang
echo ./dev/translation/strip_language_file.php $aa"_"$aaupper $aa"_"$bb $2
./dev/translation/strip_language_file.php $aa"_"$aaupper $aa"_"$bb $2
for fic in `ls htdocs/langs/${aa}_${bb}/*.delta`; do f=`echo $fic | sed -e 's/\.delta//'`; echo $f; mv $f.delta $f; done
for fic in `ls htdocs/langs/${aa}_${bb}/*.lang`;
do f=`cat $fic | wc -l`;
#echo $f lines into file $fic;
if [ $f = 1 ]
then
echo Only one line remainging into file $fic, we delete it;
rm $fic
fi;
done
fi
fi
done;
fi

View File

@@ -17,14 +17,14 @@ fi
# To detec
if [ "x$1" = "xlist" ]
then
find . \( -iname "functions" -o -iname "*.md" -o -iname "*.html" -o -iname "*.htm" -o -iname "*.php" -o -iname "*.sh" -o -iname "*.cml" -o -iname "*.css" -o -iname "*.js" -o -iname "*.lang" -o -iname "*.pl" -o -iname "*.sql" -o -iname "*.txt" -o -iname "*.xml" -o -iname "*.pml" \) -exec file "{}" + | grep -v "CRLF" | grep -v 'custom\/' | grep -v 'documents\/website' | grep -v 'documents\/medias' | grep -v 'documents\/sellyoursaas' | grep CRLF
# find . \( -iname "*.md" -o -iname "*.html" -o -iname "*.htm" -o -iname "*.php" -o -iname "*.sh" -o -iname "*.cml" -o -iname "*.css" -o -iname "*.js" -o -iname "*.lang" -o -iname "*.pl" -o -iname "*.sql" -o -iname "*.txt" -o -iname "*.xml" \) -exec file "{}" + | grep -v "CRLF" | grep -v 'custom\/' | grep -v 'documents\/website' | grep -v 'documents\/medias' | grep -v 'documents\/sellyoursaas' | grep -v 'htdocs\/includes' | grep CRLF
find . \( -iname "functions" -o -iname "*.md" -o -iname "*.html" -o -iname "*.htm" -o -iname "*.php" -o -iname "*.sh" -o -iname "*.cml" -o -iname "*.css" -o -iname "*.js" -o -iname "*.lang" -o -iname "*.pl" -o -iname "*.sql" -o -iname "*.txt" -o -iname "*.xml" -o -iname "*.pml" \) -exec file "{}" + | grep -v 'documents\/website' | grep -v 'documents\/mdedias' | grep CRLF
# find . \( -iname "*.md" -o -iname "*.html" -o -iname "*.htm" -o -iname "*.php" -o -iname "*.sh" -o -iname "*.cml" -o -iname "*.css" -o -iname "*.js" -o -iname "*.lang" -o -iname "*.pl" -o -iname "*.sql" -o -iname "*.txt" -o -iname "*.xml" \) -exec file "{}" + | grep -v 'documents\/website' | grep -v 'documents\/mdedias' | grep -v 'htdocs\/includes' | grep CRLF
fi
# To convert
if [ "x$1" = "xfix" ]
then
for fic in `find . \( -iname "functions" -o -iname "*.md" -o -iname "*.html" -o -iname "*.htm" -o -iname "*.php" -o -iname "*.sh" -o -iname "*.cml" -o -iname "*.css" -o -iname "*.js" -o -iname "*.lang" -o -iname "*.pl" -o -iname "*.sql" -o -iname "*.txt" -o -iname "*.xml" -o -iname "*.pml" \) -exec file "{}" + | grep -v "CRLF" | grep -v 'custom\/' | grep -v 'documents\/website' | grep -v 'documents\/medias' | grep -v 'documents\/sellyoursaas' | grep CRLF | awk -F':' '{ print $1 }' `
for fic in `find . \( -iname "functions" -o -iname "*.md" -o -iname "*.html" -o -iname "*.htm" -o -iname "*.php" -o -iname "*.sh" -o -iname "*.cml" -o -iname "*.css" -o -iname "*.js" -o -iname "*.lang" -o -iname "*.pl" -o -iname "*.sql" -o -iname "*.txt" -o -iname "*.xml" -o -iname "*.pml" \) -exec file "{}" + | grep -v 'documents\/website' | grep -v 'documents\/mdedias' | grep CRLF | awk -F':' '{ print $1 }' `
do
echo "Fix file $fic"
dos2unix "$fic"

View File

@@ -24,7 +24,6 @@ fi
if [ "x$1" = "xfix" ]
then
find ./htdocs -type f -iname "*.php" -exec chmod a-x {} \;
find ./htdocs/install/ -type d -exec chmod ug+rw {} \;
chmod a+x ./scripts/*/*.php
chmod a+x ./scripts/*/*.sh
chmod g-w ./scripts/*/*.php

View File

@@ -14,8 +14,7 @@ max_output_size=0
usage()
{
cat <<EO
Usage: $PROGNAME (list|fix) [options]
Example: optimize_images.sh (list|fix) -i dirtoscan
Usage: $PROGNAME [options]
Script to optimize JPG and PNG images in a directory.
@@ -39,14 +38,13 @@ optimize_image()
max_input_size=$(expr $max_input_size + $input_file_size)
if [ "${1##*.}" = "png" ]; then
#optipng -o1 -clobber -quiet "$1" -out "$2.firstpass"
echo optipng -o1 -quiet "$1" -out "$2.firstpass"
optipng -o1 -quiet "$1" -out "$2.firstpass"
pngcrush -q -rem alla -reduce "$2.firstpass" "$2" >/dev/null
rm -fr "$2.firstpass"
#optipng -o1 -clobber -quiet $1 -out $2.firstpass
optipng -o1 -quiet $1 -out $2.firstpass
pngcrush -q -rem alla -reduce $2.firstpass $2 >/dev/null
rm -fr $2.firstpass
fi
if [ "${1##*.}" = "jpg" -o "${1##*.}" = "jpeg" ]; then
jpegtran -copy none -progressive "$1" > $2
jpegtran -copy none -progressive $1 > $2
fi
output_file_size=$(stat -c%s "$2")
@@ -121,8 +119,8 @@ main()
# Search of all jpg/jpeg/png in $INPUT
# We remove images from $OUTPUT if $OUTPUT is a subdirectory of $INPUT
echo "Scan $INPUT to find images with find $INPUT -regextype posix-extended -regex '.*\.(jpg|jpeg|png)' | grep -v '/gource/' | grep -v '/includes/' | grep -v '/custom/' | grep -v $OUTPUT"
IMAGES=$(find $INPUT -regextype posix-extended -regex '.*\.(jpg|jpeg|png)' | grep -v '/gource/' | grep -v '/includes/' | grep -v '/custom/' | grep -v '/documents/' | grep -v $OUTPUT)
echo "Scan $INPUT to find images"
IMAGES=$(find $INPUT -regextype posix-extended -regex '.*\.(jpg|jpeg|png)' | grep -v $OUTPUT)
if [ "$QUIET" == "0" ]; then
echo --- Optimizing $INPUT ---
@@ -136,11 +134,11 @@ main()
printf '%*.*s' 0 $((linelength - ${#filename} - ${#sDone} )) "$pad"
fi
optimize_image "$CURRENT_IMAGE" "$OUTPUT/$filename"
optimize_image $CURRENT_IMAGE $OUTPUT/$filename
# Replace file
if [[ "$INPLACE" == "1" ]]; then
mv "$OUTPUT/$filename" "$CURRENT_IMAGE"
mv $OUTPUT/$filename $CURRENT_IMAGE
fi
if [ "$QUIET" == "0" ]; then
@@ -185,8 +183,8 @@ ARGS=$(getopt -s bash --options $SHORTOPTS --longoptions $LONGOPTS --name $PROGN
# Syntax
if [ "x$1" != "xlist" -a "x$1" != "xfix" ]
then
usage
exit 0
echo "Usage: optimize_images.sh (list|fix) -i dirtoscan"
exit
fi
eval set -- "$ARGS"

View File

@@ -1,145 +0,0 @@
#!/usr/bin/env php
<?php
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
/**
* \file dev/tools/spider.php
* \brief Script to spider Dolibarr app.
*
* To use it:
* - Disable module "bookmark"
* - Exclude param optioncss, token, sortfield, sortorder
*/
$crawledLinks=array();
const MAX_DEPTH=2;
/**
* @param string $url URL
* @param string $depth Depth
* @return string String
*/
function followLink($url, $depth = 0)
{
global $crawledLinks;
$crawling=array();
if ($depth>MAX_DEPTH) {
echo "<div style='color:red;'>The Crawler is giving up!</div>";
return;
}
$options=array(
'http'=>array(
'method'=>"GET",
'user-agent'=>"gfgBot/0.1\n"
)
);
$context=stream_context_create($options);
$doc=new DomDocument();
@$doc->loadHTML(file_get_contents($url, false, $context));
$links=$doc->getElementsByTagName('a');
$pageTitle=getDocTitle($doc, $url);
$metaData=getDocMetaData($doc);
foreach ($links as $i) {
$link=$i->getAttribute('href');
if (ignoreLink($link)) continue;
$link=convertLink($url, $link);
if (!in_array($link, $crawledLinks)) {
$crawledLinks[]=$link;
$crawling[]=$link;
insertIntoDatabase($link, $pageTitle, $metaData, $depth);
}
}
foreach ($crawling as $crawlURL)
followLink($crawlURL, $depth+1);
}
/**
* @param string $site Site
* @param string $path Path
* @return string String
*/
function convertLink($site, $path)
{
if (substr_compare($path, "//", 0, 2)==0)
return parse_url($site)['scheme'].$path;
elseif (substr_compare($path, "http://", 0, 7)==0 or
substr_compare($path, "https://", 0, 8)==0 or
substr_compare($path, "www.", 0, 4)==0)
return $path;
else return $site.'/'.$path;
}
/**
* @param string $url URL
* @return boolean
*/
function ignoreLink($url)
{
return $url[0]=="#" or substr($url, 0, 11) == "javascript:";
}
/**
* @param string $link URL
* @param string $title Title
* @param string $metaData Array
* @param int $depth Depth
* @return void
*/
function insertIntoDatabase($link, $title, &$metaData, $depth)
{
//global $crawledLinks;
echo "Inserting new record {URL= ".$link.", Title = '$title', Description = '".$metaData['description']."', Keywords = ' ".$metaData['keywords']."'}<br/><br/><br/>";
//²$crawledLinks[]=$link;
}
/**
* @param string $doc Doc
* @param string $url URL
* @return string URL/Title
*/
function getDocTitle(&$doc, $url)
{
$titleNodes=$doc->getElementsByTagName('title');
if (count($titleNodes)==0 or !isset($titleNodes[0]->nodeValue))
return $url;
$title=str_replace('', '\n', $titleNodes[0]->nodeValue);
return (strlen($title)<1)?$url:$title;
}
/**
* @param string $doc Doc
* @return array Array
*/
function getDocMetaData(&$doc)
{
$metaData=array();
$metaNodes=$doc->getElementsByTagName('meta');
foreach ($metaNodes as $node)
$metaData[$node->getAttribute("name")] = $node->getAttribute("content");
if (!isset($metaData['description']))
$metaData['description']='No Description Available';
if (!isset($metaData['keywords'])) $metaData['keywords']='';
return array(
'keywords'=>str_replace('', '\n', $metaData['keywords']),
'description'=>str_replace('', '\n', $metaData['description'])
);
}
followLink("http://localhost/dolibarr_dev/htdocs");

View File

@@ -1,7 +1,7 @@
<?php
/*spl_autoload_register(function ($class_name) {
//var_dump('class='.$class_name);
var_dump('class='.$class_name);
require $class_name;
});
*/

View File

@@ -6,7 +6,7 @@
*
* 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
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,

View File

@@ -5,7 +5,7 @@
*
* 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
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
@@ -177,7 +177,7 @@ foreach ($filesToProcess as $fileToProcess) {
// Start reading and parsing English
$aEnglish = array();
if ($handle = fopen($lEnglishFile, 'r')) {
print "Read English File $lEnglishFile:\n";
$cnt = 0;
@@ -246,9 +246,6 @@ foreach ($filesToProcess as $fileToProcess) {
fwrite($oh, "# Dolibarr language file - Source file is en_US - ".(preg_replace('/\.lang$/', '', $fileToProcess))."\n");
$fileFirstFound = array();
$lineFirstFound = array();
$cnt = 0;
while (($line = fgets($handle)) !== false) {
$cnt++;
@@ -302,7 +299,6 @@ foreach ($filesToProcess as $fileToProcess) {
}
// String exists in both files and value into alternative language differs from main language but also from english files
// so we keep it.
if ((! empty($aSecondary[$key]) && $aSecondary[$key] != $aPrimary[$key]
&& ! empty($aEnglish[$key]) && $aSecondary[$key] != $aEnglish[$key])
|| in_array($key, $arrayofkeytoalwayskeep) || preg_match('/^FormatDate/', $key) || preg_match('/^FormatHour/', $key)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 338 B

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 549 B

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 946 B

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 163 KiB

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

After

Width:  |  Height:  |  Size: 10 KiB

BIN
doc/images/dolibarr_logo.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 211 KiB

After

Width:  |  Height:  |  Size: 219 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 KiB

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 272 KiB

After

Width:  |  Height:  |  Size: 281 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 156 KiB

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 KiB

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 KiB

After

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 63 KiB

View File

@@ -38,7 +38,6 @@ $cancel = GETPOST('cancel', 'alpha');
$id = GETPOST('id', 'int');
$rowid = GETPOST('rowid', 'int');
$massaction = GETPOST('massaction', 'aZ09');
$optioncss = GETPOST('optioncss', 'alpha');
$contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'accountingaccountlist'; // To manage different context of search
$search_account = GETPOST('search_account', 'alpha');
@@ -52,14 +51,14 @@ $confirm = GETPOST('confirm', 'alpha');
$chartofaccounts = GETPOST('chartofaccounts', 'int');
$permissiontoadd = !empty($user->rights->accounting->chartofaccount);
$permissiontodelete = !empty($user->rights->accounting->chartofaccount);
$permissiontoadd = $user->rights->accounting->chartofaccount;
$permissiontodelete = $user->rights->accounting->chartofaccount;
// Security check
if ($user->socid > 0) {
accessforbidden();
}
if (empty($user->rights->accounting->chartofaccount)) {
if (!$user->rights->accounting->chartofaccount) {
accessforbidden();
}
@@ -196,7 +195,7 @@ if (empty($reshook)) {
} elseif ($action == 'enable' && $permissiontoadd) {
if ($accounting->fetch($id)) {
$mode = GETPOST('mode', 'int');
$result = $accounting->accountActivate($id, $mode);
$result = $accounting->account_activate($id, $mode);
}
$action = 'update';
if ($result < 0) {
@@ -350,8 +349,6 @@ if ($resql) {
</script>';
}
$newcardbutton = '';
print '<form method="POST" id="searchFormList" action="'.$_SERVER["PHP_SELF"].'">';
if ($optioncss != '') {
print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
@@ -365,7 +362,7 @@ if ($resql) {
$newcardbutton .= dolGetButtonTitle($langs->trans("New"), $langs->trans("Addanaccount"), 'fa fa-plus-circle', './card.php?action=create');
include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php';
print_barre_liste($langs->trans('ListAccounts'), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'accounting_account', 0, $newcardbutton, '', $limit, 0, 0, 1);
print_barre_liste($langs->trans('ListAccounts'), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'title_accountancy', 0, $newcardbutton, '', $limit, 0, 0, 1);
// Box to select active chart of account
print $langs->trans("Selectchartofaccounts")." : ";
@@ -395,7 +392,7 @@ if ($resql) {
}
print "</select>";
print ajax_combobox("chartofaccounts");
print '<input type="'.(empty($conf->use_javascript_ajax) ? 'submit' : 'button').'" class="button button-edit" name="change_chart" id="change_chart" value="'.dol_escape_htmltag($langs->trans("ChangeAndLoad")).'">';
print '<input type="'.(empty($conf->use_javascript_ajax) ? 'submit' : 'button').'" class="button" name="change_chart" id="change_chart" value="'.dol_escape_htmltag($langs->trans("ChangeAndLoad")).'">';
print '<br>';
print '<br>';
@@ -406,11 +403,6 @@ if ($resql) {
$moreforfilter = '';
$accountstatic = new AccountingAccount($db);
$accountparent = new AccountingAccount($db);
$totalarray = array();
$totalarray['nbfield'] = 0;
print '<div class="div-table-responsive">';
print '<table class="tagtable liste'.($moreforfilter ? " listwithfilterbefore" : "").'">'."\n";
@@ -446,33 +438,44 @@ if ($resql) {
print $searchpicto;
print '</td>';
print '</tr>';
$totalarray = array();
print '<tr class="liste_titre">';
if (!empty($arrayfields['aa.account_number']['checked'])) {
print_liste_field_titre($arrayfields['aa.account_number']['label'], $_SERVER["PHP_SELF"], "aa.account_number", "", $param, '', $sortfield, $sortorder);
$totalarray['nbfield']++;
}
if (!empty($arrayfields['aa.label']['checked'])) {
print_liste_field_titre($arrayfields['aa.label']['label'], $_SERVER["PHP_SELF"], "aa.label", "", $param, '', $sortfield, $sortorder);
$totalarray['nbfield']++;
}
if (!empty($arrayfields['aa.labelshort']['checked'])) {
print_liste_field_titre($arrayfields['aa.labelshort']['label'], $_SERVER["PHP_SELF"], "aa.labelshort", "", $param, '', $sortfield, $sortorder);
$totalarray['nbfield']++;
}
if (!empty($arrayfields['aa.account_parent']['checked'])) {
print_liste_field_titre($arrayfields['aa.account_parent']['label'], $_SERVER["PHP_SELF"], "aa.account_parent", "", $param, '', $sortfield, $sortorder, 'left ');
$totalarray['nbfield']++;
}
if (!empty($arrayfields['aa.pcg_type']['checked'])) {
print_liste_field_titre($arrayfields['aa.pcg_type']['label'], $_SERVER["PHP_SELF"], 'aa.pcg_type,aa.account_number', '', $param, '', $sortfield, $sortorder, '', $arrayfields['aa.pcg_type']['help'], 1);
$totalarray['nbfield']++;
}
if ($conf->global->MAIN_FEATURES_LEVEL >= 2) {
if (!empty($arrayfields['aa.reconcilable']['checked'])) {
print_liste_field_titre($arrayfields['aa.reconcilable']['label'], $_SERVER["PHP_SELF"], 'aa.reconcilable', '', $param, '', $sortfield, $sortorder);
$totalarray['nbfield']++;
}
}
if (!empty($arrayfields['aa.active']['checked'])) {
print_liste_field_titre($arrayfields['aa.active']['label'], $_SERVER["PHP_SELF"], 'aa.active', '', $param, '', $sortfield, $sortorder);
$totalarray['nbfield']++;
}
print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch ');
print "</tr>\n";
$accountstatic = new AccountingAccount($db);
$accountparent = new AccountingAccount($db);
$i = 0;
while ($i < min($num, $limit)) {
$obj = $db->fetch_object($resql);
@@ -617,13 +620,8 @@ if ($resql) {
}
if ($num == 0) {
$colspan = 1;
foreach ($arrayfields as $key => $val) {
if (!empty($val['checked'])) {
$colspan++;
}
}
print '<tr><td colspan="'.$colspan.'"><span class="opacitymedium">'.$langs->trans("None").'</span></td></tr>';
$totalarray['nbfield']++;
print '<tr><td colspan="'.$totalarray['nbfield'].'"><span class="opacitymedium">'.$langs->trans("None").'</span></td></tr>';
}
print "</table>";

View File

@@ -39,7 +39,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
if (isModEnabled('accounting')) {
if (!empty($conf->accounting->enabled)) {
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php';
}
@@ -78,7 +78,7 @@ $search_country_id = GETPOST('search_country_id', 'int');
if ($user->socid > 0) {
accessforbidden();
}
if (empty($user->rights->accounting->chartofaccount)) {
if (!$user->rights->accounting->chartofaccount) {
accessforbidden();
}
@@ -126,7 +126,7 @@ $tabrowid[31] = "";
// Condition to show dictionary in setup page
$tabcond = array();
$tabcond[31] = isModEnabled('accounting');
$tabcond[31] = !empty($conf->accounting->enabled);
// List of help for fields
$tabhelp = array();
@@ -185,6 +185,11 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha')) {
$ok = 0;
setEventMessages($langs->transnoentities('ErrorCodeCantContainZero'), null, 'errors');
}
/*if (!is_numeric($_POST['code'])) // disabled, code may not be in numeric base
{
$ok = 0;
$msg .= $langs->transnoentities('ErrorFieldFormat', $langs->transnoentities('Code')).'<br>';
}*/
}
if (GETPOSTISSET("country") && (GETPOST("country") == '0') && ($id != 2)) {
$ok = 0;
@@ -223,17 +228,17 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha')) {
$i = 0;
foreach ($listfieldinsert as $f => $value) {
if ($value == 'price' || preg_match('/^amount/i', $value) || $value == 'taux') {
$_POST[$listfieldvalue[$i]] = price2num(GETPOST($listfieldvalue[$i]), 'MU');
$_POST[$listfieldvalue[$i]] = price2num($_POST[$listfieldvalue[$i]], 'MU');
} elseif ($value == 'entity') {
$_POST[$listfieldvalue[$i]] = $conf->entity;
}
if ($i) {
$sql .= ",";
}
if (GETPOST($listfieldvalue[$i]) == '') {
if ($_POST[$listfieldvalue[$i]] == '') {
$sql .= "null";
} else {
$sql .= "'".$db->escape(GETPOST($listfieldvalue[$i]))."'";
$sql .= "'".$db->escape($_POST[$listfieldvalue[$i]])."'";
}
$i++;
}
@@ -271,7 +276,7 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha')) {
$i = 0;
foreach ($listfieldmodify as $field) {
if ($field == 'price' || preg_match('/^amount/i', $field) || $field == 'taux') {
$_POST[$listfieldvalue[$i]] = price2num(GETPOST($listfieldvalue[$i]), 'MU');
$_POST[$listfieldvalue[$i]] = price2num($_POST[$listfieldvalue[$i]], 'MU');
} elseif ($field == 'entity') {
$_POST[$listfieldvalue[$i]] = $conf->entity;
}
@@ -279,10 +284,10 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha')) {
$sql .= ",";
}
$sql .= $field."=";
if (GETPOST($listfieldvalue[$i]) == '') {
if ($_POST[$listfieldvalue[$i]] == '') {
$sql .= "null";
} else {
$sql .= "'".$db->escape(GETPOST($listfieldvalue[$i]))."'";
$sql .= "'".$db->escape($_POST[$listfieldvalue[$i]])."'";
}
$i++;
}
@@ -490,7 +495,7 @@ if ($id) {
if ($valuetoshow != '') {
print '<td class="'.$class.'">';
if (!empty($tabhelp[$id][$value]) && preg_match('/^http(s*):/i', $tabhelp[$id][$value])) {
print '<a href="'.$tabhelp[$id][$value].'">'.$valuetoshow.' '.img_help(1, $valuetoshow).'</a>';
print '<a href="'.$tabhelp[$id][$value].'" target="_blank">'.$valuetoshow.' '.img_help(1, $valuetoshow).'</a>';
} elseif (!empty($tabhelp[$id][$value])) {
print $form->textwithpicto($valuetoshow, $tabhelp[$id][$value]);
} else {
@@ -530,7 +535,7 @@ if ($id) {
}
print '<td colspan="3" class="right">';
print '<input type="submit" class="button button-add" name="actionadd" value="'.$langs->trans("Add").'">';
print '<input type="submit" class="button" name="actionadd" value="'.$langs->trans("Add").'">';
print '</td>';
print "</tr>";
@@ -548,16 +553,16 @@ if ($id) {
$num = $db->num_rows($resql);
$i = 0;
$param = '&id='.urlencode($id);
$param = '&id='.$id;
if ($search_country_id > 0) {
$param .= '&search_country_id='.urlencode($search_country_id);
$param .= '&search_country_id='.$search_country_id;
}
$paramwithsearch = $param;
if ($sortorder) {
$paramwithsearch .= '&sortorder='.urlencode($sortorder);
$paramwithsearch .= '&sortorder='.$sortorder;
}
if ($sortfield) {
$paramwithsearch .= '&sortfield='.urlencode($sortfield);
$paramwithsearch .= '&sortfield='.$sortfield;
}
// There is several pages
@@ -626,7 +631,7 @@ if ($id) {
fieldListAccountModel($fieldlist, $obj, $tabname[$id], 'edit');
}
print '<td colspan="3" class="right"><a name="'.(!empty($obj->rowid) ? $obj->rowid : $obj->code).'">&nbsp;</a><input type="submit" class="button button-edit" name="actionmodify" value="'.$langs->trans("Modify").'">';
print '<td colspan="3" class="right"><a name="'.(!empty($obj->rowid) ? $obj->rowid : $obj->code).'">&nbsp;</a><input type="submit" class="button" name="actionmodify" value="'.$langs->trans("Modify").'">';
print '&nbsp;<input type="submit" class="button button-cancel" name="actioncancel" value="'.$langs->trans("Cancel").'"></td>';
} else {
$tmpaction = 'view';

View File

@@ -48,7 +48,7 @@ $label = GETPOST('label', 'alpha');
if ($user->socid > 0) {
accessforbidden();
}
if (empty($user->rights->accounting->chartofaccount)) {
if (!$user->rights->accounting->chartofaccount) {
accessforbidden();
}
@@ -61,7 +61,7 @@ $object = new AccountingAccount($db);
*/
if (GETPOST('cancel', 'alpha')) {
$urltogo = $backtopage ? $backtopage : DOL_URL_ROOT.'/accountancy/admin/account.php';
$urltogo = $backtopage ? $backtopage : dol_buildpath('/accountancy/admin/account.php', 1);
header("Location: ".$urltogo);
exit;
}
@@ -75,7 +75,7 @@ if ($action == 'add' && $user->rights->accounting->chartofaccount) {
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Label")), null, 'errors');
$action = 'create';
} else {
$sql = "SELECT pcg_version FROM " . MAIN_DB_PREFIX . "accounting_system WHERE rowid = ".((int) $conf->global->CHARTOFACCOUNTS);
$sql = 'SELECT pcg_version FROM ' . MAIN_DB_PREFIX . 'accounting_system WHERE rowid='.((int) $conf->global->CHARTOFACCOUNTS);
dol_syslog('accountancy/admin/card.php:: $sql=' . $sql);
$result = $db->query($sql);
@@ -121,7 +121,7 @@ if ($action == 'add' && $user->rights->accounting->chartofaccount) {
}
if (!$error) {
setEventMessages("RecordCreatedSuccessfully", null, 'mesgs');
$urltogo = $backtopage ? $backtopage : DOL_URL_ROOT.'/accountancy/admin/account.php';
$urltogo = $backtopage ? $backtopage : dol_buildpath('/accountancy/admin/account.php', 1);
header("Location: " . $urltogo);
exit;
}
@@ -138,7 +138,7 @@ if ($action == 'add' && $user->rights->accounting->chartofaccount) {
} else {
$result = $object->fetch($id);
$sql = "SELECT pcg_version FROM ".MAIN_DB_PREFIX."accounting_system WHERE rowid=".((int) $conf->global->CHARTOFACCOUNTS);
$sql = 'SELECT pcg_version FROM '.MAIN_DB_PREFIX.'accounting_system WHERE rowid='.((int) $conf->global->CHARTOFACCOUNTS);
dol_syslog('accountancy/admin/card.php:: $sql=' . $sql);
$result2 = $db->query($sql);
@@ -168,13 +168,10 @@ if ($action == 'add' && $user->rights->accounting->chartofaccount) {
$object->labelshort = GETPOST('labelshort', 'alpha');
$result = $object->update($user);
if ($result > 0) {
$urltogo = $backtopage ? $backtopage : ($_SERVER["PHP_SELF"] . "?id=" . $id);
header("Location: " . $urltogo);
exit();
} elseif ($result == -2) {
setEventMessages($langs->trans("ErrorAccountNumberAlreadyExists", $object->account_number), null, 'errors');
} else {
setEventMessages($object->error, null, 'errors');
}
@@ -260,20 +257,7 @@ if ($action == 'create') {
print $form->textwithpicto($langs->trans("Pcgtype"), $langs->transnoentitiesnoconv("PcgtypeDesc"));
print '</td>';
print '<td>';
print '<input type="text" name="pcg_type" list="pcg_type_datalist" value="'.dol_escape_htmltag(GETPOSTISSET('pcg_type') ? GETPOST('pcg_type', 'alpha') : $object->pcg_type).'">';
// autosuggest from existing account types if found
print '<datalist id="pcg_type_datalist">';
$sql = "SELECT DISTINCT pcg_type FROM " . MAIN_DB_PREFIX . "accounting_account";
$sql .= " WHERE fk_pcg_version = '" . $db->escape($accountsystem->ref) . "'";
$sql .= ' AND entity in ('.getEntity('accounting_account', 0).')'; // Always limit to current entity. No sharing in accountancy.
$sql .= ' LIMIT 50000'; // just as a sanity check
$resql = $db->query($sql);
if ($resql) {
while ($obj = $db->fetch_object($resql)) {
print '<option value="' . dol_escape_htmltag($obj->pcg_type) . '">';
}
}
print '</datalist>';
print '<input type="text" name="pcg_type" value="'.dol_escape_htmltag(GETPOSTISSET('pcg_type') ? GETPOST('pcg_type', 'alpha') : $object->pcg_type).'">';
print '</td></tr>';
// Category
@@ -303,7 +287,7 @@ if ($action == 'create') {
// Edit mode
if ($action == 'update') {
print dol_get_fiche_head($head, 'card', $langs->trans('AccountAccounting'), 0, 'accounting_account');
print dol_get_fiche_head($head, 'card', $langs->trans('AccountAccounting'), 0, 'billr');
print '<form name="update" action="'.$_SERVER["PHP_SELF"].'" method="POST">'."\n";
print '<input type="hidden" name="token" value="'.newToken().'">';
@@ -336,20 +320,7 @@ if ($action == 'create') {
print $form->textwithpicto($langs->trans("Pcgtype"), $langs->transnoentitiesnoconv("PcgtypeDesc"));
print '</td>';
print '<td>';
print '<input type="text" name="pcg_type" list="pcg_type_datalist" value="'.dol_escape_htmltag(GETPOSTISSET('pcg_type') ? GETPOST('pcg_type', 'alpha') : $object->pcg_type).'">';
// autosuggest from existing account types if found
print '<datalist id="pcg_type_datalist">';
$sql = 'SELECT DISTINCT pcg_type FROM ' . MAIN_DB_PREFIX . 'accounting_account';
$sql .= " WHERE fk_pcg_version = '" . $db->escape($accountsystem->ref) . "'";
$sql .= ' AND entity in ('.getEntity('accounting_account', 0).')'; // Always limit to current entity. No sharing in accountancy.
$sql .= ' LIMIT 50000'; // just as a sanity check
$resql = $db->query($sql);
if ($resql) {
while ($obj = $db->fetch_object($resql)) {
print '<option value="' . dol_escape_htmltag($obj->pcg_type) . '">';
}
}
print '</datalist>';
print '<input type="text" name="pcg_type" value="'.dol_escape_htmltag(GETPOSTISSET('pcg_type') ? GETPOST('pcg_type', 'alpha') : $object->pcg_type).'">';
print '</td></tr>';
// Category
@@ -364,14 +335,18 @@ if ($action == 'create') {
print dol_get_fiche_end();
print $form->buttonsSaveCancel();
print '<div class="center">';
print '<input type="submit" class="button button-save" value="'.$langs->trans("Save").'">';
print '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
print '<input type="submit" name="cancel" class="button button-cancel" value="'.$langs->trans("Cancel").'">';
print '</div>';
print '</form>';
} else {
// View mode
$linkback = '<a href="'.DOL_URL_ROOT.'/accountancy/admin/account.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
print dol_get_fiche_head($head, 'card', $langs->trans('AccountAccounting'), -1, 'accounting_account');
print dol_get_fiche_head($head, 'card', $langs->trans('AccountAccounting'), -1, 'billr');
dol_banner_tab($object, 'ref', $linkback, 1, 'account_number', 'ref');
@@ -420,13 +395,13 @@ if ($action == 'create') {
print '<div class="tabsAction">';
if (!empty($user->rights->accounting->chartofaccount)) {
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=update&token='.newToken().'&id='.$object->id.'">'.$langs->trans('Modify').'</a>';
print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=update&token='.newToken().'&id='.$id.'">'.$langs->trans('Modify').'</a>';
} else {
print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">'.$langs->trans('Modify').'</a>';
}
if (!empty($user->rights->accounting->chartofaccount)) {
print '<a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?action=delete&token='.newToken().'&id='.$object->id.'">'.$langs->trans('Delete').'</a>';
print '<a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?action=delete&token='.newToken().'&id='.$id.'">'.$langs->trans('Delete').'</a>';
} else {
print '<a class="butActionRefused classfortooltip" href="#" title="'.dol_escape_htmltag($langs->trans("NotAllowed")).'">'.$langs->trans('Delete').'</a>';
}

View File

@@ -1,6 +1,6 @@
<?php
/* Copyright (C) 2016 Jamal Elbaz <jamelbaz@gmail.pro>
* Copyright (C) 2017-2022 Alexandre Spangaro <aspangaro@open-dsi.fr>
/* Copyright (C) 2016 Jamal Elbaz <jamelbaz@gmail.pro>
* Copyright (C) 2017 Alexandre Spangaro <aspangaro@open-dsi.fr>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -110,7 +110,7 @@ print '<table class="border centpercent">';
print '<tr><td class="titlefield">'.$langs->trans("AccountingCategory").'</td>';
print '<td>';
$formaccounting->select_accounting_category($cat_id, 'account_category', 1, 0, 0, 1);
print '<input type="submit" class="button" value="'.$langs->trans("Select").'">';
print '<input class="button" type="submit" value="'.$langs->trans("Select").'">';
print '</td></tr>';
// Select the accounts
@@ -124,8 +124,7 @@ if (!empty($cat_id)) {
$arraykeyvalue = array();
foreach ($accountingcategory->lines_cptbk as $key => $val) {
$doc_ref = !empty($val->doc_ref) ? $val->doc_ref : '';
$arraykeyvalue[length_accountg($val->numero_compte)] = length_accountg($val->numero_compte) . ' - ' . $val->label_compte . ($doc_ref ? ' '.$doc_ref : '');
$arraykeyvalue[length_accountg($val->numero_compte)] = length_accountg($val->numero_compte).' ('.$val->label_compte.($val->doc_ref ? ' '.$val->doc_ref : '').')';
}
if (is_array($accountingcategory->lines_cptbk) && count($accountingcategory->lines_cptbk) > 0) {
@@ -138,7 +137,7 @@ if (!empty($cat_id)) {
print '</select><br>';
print ajax_combobox('cpt_bk');
*/
print '<input type="submit" class="button button-add" id="" class="action-delete" value="'.$langs->trans("Add").'"> ';
print '<input class="button" type="submit" id="" class="action-delete" value="'.$langs->trans("Add").'"> ';
}
print '</td></tr>';
}

View File

@@ -111,7 +111,7 @@ $tabrowid[32] = "";
// Condition to show dictionary in setup page
$tabcond = array();
$tabcond[32] = isModEnabled('accounting');
$tabcond[32] = !empty($conf->accounting->enabled);
// List of help for fields
$tabhelp = array();
@@ -148,10 +148,10 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha')) {
if ($value == 'formula' && !GETPOST('formula')) {
continue;
}
if ($value == 'range_account' && !GETPOST('range_account')) {
if ($value == 'range_account' && empty($_POST['range_account'])) {
continue;
}
if (($value == 'country' || $value == 'country_id') && GETPOST('country_id')) {
if (($value == 'country' || $value == 'country_id') && (!empty($_POST['country_id']))) {
continue;
}
if (!GETPOSTISSET($value) || GETPOST($value) == '') {
@@ -195,6 +195,17 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha')) {
setEventMessages($langs->transnoentities('ErrorFieldMustBeANumeric', $langs->transnoentities("Position")), null, 'errors');
}
// Clean some parameters
if ($_POST["accountancy_code"] <= 0) {
$_POST["accountancy_code"] = ''; // If empty, we force to null
}
if ($_POST["accountancy_code_sell"] <= 0) {
$_POST["accountancy_code_sell"] = ''; // If empty, we force to null
}
if ($_POST["accountancy_code_buy"] <= 0) {
$_POST["accountancy_code_buy"] = ''; // If empty, we force to null
}
// Si verif ok et action add, on ajoute la ligne
if ($ok && GETPOST('actionadd', 'alpha')) {
if ($tabrowid[$id]) {
@@ -232,7 +243,7 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha')) {
if ($i) {
$sql .= ",";
}
if (GETPOST($listfieldvalue[$i]) == '' && !$listfieldvalue[$i] == 'formula') {
if ($_POST[$listfieldvalue[$i]] == '' && !$listfieldvalue[$i] == 'formula') {
$sql .= "null"; // For vat, we want/accept code = ''
} else {
$sql .= "'".$db->escape(GETPOST($listfieldvalue[$i]))."'";
@@ -272,8 +283,8 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha')) {
}
$i = 0;
foreach ($listfieldmodify as $field) {
if ($field == 'fk_country' && GETPOST('country') > 0) {
$_POST[$listfieldvalue[$i]] = GETPOST('country');
if ($field == 'fk_country' && $_POST['country'] > 0) {
$_POST[$listfieldvalue[$i]] = $_POST['country'];
} elseif ($field == 'entity') {
$_POST[$listfieldvalue[$i]] = $conf->entity;
}
@@ -281,10 +292,10 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha')) {
$sql .= ",";
}
$sql .= $field."=";
if (GETPOST($listfieldvalue[$i]) == '' && !$listfieldvalue[$i] == 'range_account') {
if ($_POST[$listfieldvalue[$i]] == '' && !$listfieldvalue[$i] == 'range_account') {
$sql .= "null"; // For range_account, we want/accept code = ''
} else {
$sql .= "'".$db->escape(GETPOST($listfieldvalue[$i]))."'";
$sql .= "'".$db->escape($_POST[$listfieldvalue[$i]])."'";
}
$i++;
}
@@ -509,7 +520,7 @@ if ($tabname[$id]) {
if ($valuetoshow != '') {
print '<td class="'.$class.'">';
if (!empty($tabhelp[$id][$value]) && preg_match('/^http(s*):/i', $tabhelp[$id][$value])) {
print '<a href="'.$tabhelp[$id][$value].'">'.$valuetoshow.' '.img_help(1, $valuetoshow).'</a>';
print '<a href="'.$tabhelp[$id][$value].'" target="_blank">'.$valuetoshow.' '.img_help(1, $valuetoshow).'</a>';
} elseif (!empty($tabhelp[$id][$value])) {
print $form->textwithpicto($valuetoshow, $tabhelp[$id][$value]);
} else {
@@ -550,7 +561,7 @@ if ($tabname[$id]) {
}
print '<td colspan="4" class="right">';
print '<input type="submit" class="button button-add" name="actionadd" value="'.$langs->trans("Add").'">';
print '<input type="submit" class="button" name="actionadd" value="'.$langs->trans("Add").'">';
print '</td>';
print "</tr>";
@@ -572,7 +583,7 @@ if ($resql) {
$param = '&id='.$id;
if ($search_country_id > 0) {
$param .= '&search_country_id='.urlencode($search_country_id);
$param .= '&search_country_id='.$search_country_id;
}
$paramwithsearch = $param;
if ($sortorder) {
@@ -726,14 +737,14 @@ if ($resql) {
print '<td class="center">';
print '<input type="hidden" name="page" value="'.$page.'">';
print '<input type="hidden" name="rowid" value="'.$rowid.'">';
print '<input type="submit" class="button button-edit" name="actionmodify" value="'.$langs->trans("Modify").'">';
print '<input type="submit" class="button" name="actionmodify" value="'.$langs->trans("Modify").'">';
print '<div name="'.(!empty($obj->rowid) ? $obj->rowid : $obj->code).'"></div>';
print '<input type="submit" class="button button-cancel" name="actioncancel" value="'.$langs->trans("Cancel").'">';
print '</td>';
print '<td></td>';
} else {
$tmpaction = 'view';
$parameters = array('fieldlist'=>$fieldlist, 'tabname'=>$tabname[$id]);
$parameters = array('var'=>$var, 'fieldlist'=>$fieldlist, 'tabname'=>$tabname[$id]);
$reshook = $hookmanager->executeHooks('viewDictionaryFieldlist', $parameters, $obj, $tmpaction); // Note that $action and $object may have been modified by some hooks
$error = $hookmanager->error; $errors = $hookmanager->errors;
@@ -803,7 +814,7 @@ if ($resql) {
// Modify link
if ($canbemodified) {
print '<td class="center"><a class="reposition editfielda" href="'.$url.'action=edit&token='.newToken().'">'.img_edit().'</a></td>';
print '<td class="center"><a class="reposition editfielda" href="'.$url.'action=edit">'.img_edit().'</a></td>';
} else {
print '<td>&nbsp;</td>';
}
@@ -812,7 +823,7 @@ if ($resql) {
if ($iserasable) {
print '<td class="center">';
if ($user->admin) {
print '<a href="'.$url.'action=delete&token='.newToken().'">'.img_delete().'</a>';
print '<a href="'.$url.'action=delete">'.img_delete().'</a>';
}
//else print '<a href="#">'.img_delete().'</a>'; // Some dictionary can be edited by other profile than admin
print '</td>';
@@ -875,7 +886,7 @@ function fieldListAccountingCategories($fieldlist, $obj = '', $tabname = '', $co
$formadmin = new FormAdmin($db);
$formcompany = new FormCompany($db);
if (isModEnabled('accounting')) {
if (!empty($conf->accounting->enabled)) {
$formaccounting = new FormAccounting($db);
}

Some files were not shown because too many files have changed in this diff Show More