Compare commits

...

1847 Commits

Author SHA1 Message Date
Laurent Destailleur
a2822764e5 WIP LNE 2026-02-09 07:11:20 +01:00
Laurent Destailleur
426f13d495 CSS 2026-02-09 04:35:40 +01:00
Laurent Destailleur
22c824642a Add currency 2026-02-09 04:31:22 +01:00
Laurent Destailleur
616ba86bb8 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-02-09 04:25:03 +01:00
Laurent Destailleur
5321c29a00 Protect module 2026-02-09 04:24:41 +01:00
Yamil Esteban Garcia
eaa146293e Fix: IRPF tax not applied when creating invoice from project times (#37077)
* Remove 'supplier_invoice' from old path array

* Update module path in arrayforoldpath

Sorry Eldy, I was confused. You are absolutely right, it is already corrected.

* Replace localtax2 assignment with get_localtax function


Error when creating an invoice with personal income tax from project times. The rate does not apply

* Refactor localtax1 calculation using get_localtax

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-02-09 03:55:34 +01:00
Laurent Destailleur
9da14a6eb2 Fix CI 2026-02-09 03:54:32 +01:00
Laurent Destailleur
71e4553504 CI 2026-02-09 03:23:06 +01:00
Laurent Destailleur
a84271f339 More legal info 2026-02-09 03:21:18 +01:00
Laurent Destailleur
776fed3834 Fix phpunit 2026-02-09 03:18:00 +01:00
Laurent Destailleur
ed03a6f1f8 CSS 2026-02-09 01:06:34 +01:00
Laurent Destailleur
f921204bd4 Clean code. File not used. 2026-02-09 00:05:00 +01:00
Laurent Destailleur
8eda44e96a Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-02-08 23:59:27 +01:00
Laurent Destailleur
822bc7ffef CI 2026-02-08 23:59:18 +01:00
Laurent Destailleur
a25d4e0e22 CI 2026-02-08 23:42:45 +01:00
Laurent Destailleur
8eb76e4da8 CI 2026-02-08 23:25:11 +01:00
Laurent Destailleur
900b28b97a Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-02-08 23:21:38 +01:00
Laurent Destailleur
9ab084cee2 CI 2026-02-08 23:21:27 +01:00
Lucas Marcouiller
0e27ee5643 New LNE Collect of buisness informations (#37084)
* Working LNE ping

* remove GPDA

* Add of other informations

* remove testing var

* fix Ci

* fix Ci

* fix ci

* fix CI

* Fix Ci

* fix Ci

---------

Co-authored-by: Lucas Marcouiller <lmarcouiller@dolicloud.com>
2026-02-08 23:14:07 +01:00
Laurent Destailleur
7e1fb745b5 NEW Use the js lib into htdocs/public/includes instead of htdocs/includes 2026-02-08 23:11:40 +01:00
Laurent Destailleur
1025c6798a Clean code 2026-02-08 22:38:26 +01:00
Jarvis
9d52c129e4 Update modProduct.class.php (#37087)
Fix: allow import of sell_or_eat_by_mandatory for products

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-02-08 22:26:21 +01:00
adamhocini
138c571c75 TakePOS hook “AddAction” jamais exécuté (#35961) (#37113)
@defrance 
Adam Hocini
2026-02-08 22:25:08 +01:00
Laurent Destailleur
67a598d0be Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-02-08 21:58:41 +01:00
Laurent Destailleur
a7a7dfb738 Debug v23 2026-02-08 21:34:12 +01:00
Laurent Destailleur
008a22eb17 Fix spellcheck 2026-02-08 21:24:34 +01:00
Laurent Destailleur
1c435e2a67 Clean sql 2026-02-08 21:17:56 +01:00
Laurent Destailleur
102b65364c Avoid ( in sql 2026-02-08 20:57:11 +01:00
Laurent Destailleur
fe3314d07a Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-02-08 20:40:42 +01:00
Laurent Destailleur
79bf9a0a4b Add error message 2026-02-08 20:40:25 +01:00
minimexat
b74c6d3ee0 FIX PHP 8.1 undefined array key warnings in ProductCombination multiprices loop (#37142)
When PRODUIT_MULTIPRICES is enabled and a product variant's parent has
multiprices configured, the updateChildPrice() method iterates through
all price levels up to PRODUIT_MULTIPRICES_LIMIT. For price levels that
don't have prices defined, accessing $parent->multiprices[$i] and
related arrays directly causes 'undefined array key' warnings on
PHP 8.1+.

Changes:
- Add isset() check before comparing $parent->multiprices[$i]
- Use isset() ternary for $parent->multiprices_min[$i] (default: 0)
- Use !empty() for $parent->prices_by_qty_list[$i] check
- Use isset() ternary for $parent->multiprices_ttc[$i] (default: 0)
- Use isset() ternary for second $parent->multiprices[$i] (default: 0)

Co-authored-by: f-hoedl <hoefla14@htl-kaindorf.ac.at>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-02-08 20:02:02 +01:00
Eric - CAP-REL
b560a05e68 add fk_parent on group group for permission inheritance (#37152) 2026-02-08 20:01:25 +01:00
Laurent Destailleur
938f8b2d46 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-02-08 19:52:49 +01:00
Laurent Destailleur
c386f94fab Debug v23 - Filter on action type ko 2026-02-08 19:33:09 +01:00
Laurent Destailleur
1173164d7e Debug v23 - Filter on action type ko 2026-02-08 19:30:17 +01:00
Laurent Destailleur
8c5fe25137 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-02-08 19:04:03 +01:00
Laurent Destailleur
3b6c448787 Debug v23 - Min price was wrong in multicurrency mode 2026-02-08 18:52:24 +01:00
Laurent Destailleur
48254ef6d0 Comment 2026-02-08 17:51:20 +01:00
Laurent Destailleur
f4dc5dfee9 Fix CI 2026-02-08 17:51:08 +01:00
Laurent Destailleur
ba28d16da4 Sec: Add param $dolibarr_website_allow_custom_php to block by default
any PHP content in website module.
2026-02-08 17:41:42 +01:00
David Beniamine
de71085394 Ensure that if $object->members is not loaded either we do not send m… (#37126)
* Ensure that if $object->members is not loaded either we do not send members to LDAP or we explicitly loads them before according to LDAP configuration

* Fix typo
2026-02-08 15:39:27 +01:00
Laurent Destailleur
8feb5275ba Debug v23 2026-02-08 15:38:19 +01:00
MDW
1166dd305b Qual: Update comments from French to English (#37097)
* Qual: Update comments from French to English

# Qual: Update comments from French to English

* Qual: Fix missing initialisations

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-02-08 15:29:53 +01:00
Laurent Destailleur
2b1d0e1012 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-02-08 15:28:31 +01:00
Laurent Destailleur
8a8ba06698 Fix CI 2026-02-08 15:28:19 +01:00
minimexat
f70eaae6f5 FIX #34342 PHP 8.1 undefined array key warnings in Product::getSellPrice() multiprices (#37144)
When using multiprices (PRODUIT_MULTIPRICES or
PRODUIT_CUSTOMER_PRICES_AND_MULTIPRICES), getSellPrice() accesses
$this->multiprices[$level], multiprices_ttc, multiprices_min,
multiprices_min_ttc, and multiprices_base_type arrays using the
buyer's price_level as key without checking if the key exists.

This causes 'undefined array key' warnings on PHP 8.1+ when a
third party has a price_level set but the product doesn't have
prices defined for that specific level.

Similarly, prices_by_qty array accesses for PRODUIT_CUSTOMER_PRICES_BY_QTY
and PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES modes could trigger
warnings when the array index doesn't exist.

Changes:
- Add isset() checks with safe defaults for all multiprices array
  accesses (0 for prices, 'HT' for price_base_type)
- Replace direct prices_by_qty access with !empty() checks

Co-authored-by: f-hoedl <hoefla14@htl-kaindorf.ac.at>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-02-08 15:08:58 +01:00
Laurent Destailleur
8d96ed3a03 Debug v23 2026-02-08 15:02:48 +01:00
Laurent Destailleur
28a7c69f11 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-02-08 14:56:01 +01:00
Laurent Destailleur
4a7c6c6700 Merge branch '22.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-02-08 14:55:13 +01:00
Laurent Destailleur
9ec77dada2 Merge branch '22.0' of git@github.com:Dolibarr/dolibarr.git into 22.0 2026-02-08 14:54:15 +01:00
Laurent Destailleur
afc3879d84 Merge branch '21.0' of git@github.com:Dolibarr/dolibarr.git into 22.0 2026-02-08 14:53:59 +01:00
Laurent Destailleur
d15f196249 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-02-08 14:51:29 +01:00
Laurent Destailleur
f6ec5b44fe CI 2026-02-08 14:51:11 +01:00
Florian Hödl
4660d0eec9 FIX #37118 Add missing require_once for CMailFile and functions2 in advtargetemailing (#37136)
Co-authored-by: Florian Hödl <florian@hoedl.co>
2026-02-08 14:47:11 +01:00
minimexat
7496ec701c FIX #36923 Fix undefined array key warnings in opensurvey create_survey.php (#37140)
The session variable initialization logic was inverted: it set variables
to null only when they already existed, instead of initializing them
when they were missing. This caused 'undefined array key' warnings on
PHP 8.1+ when accessing the poll creation form for the first time.

Changes:
- Inverted isset() condition to !isset() to properly initialize missing
  session variables
- Initialize to empty string instead of null
- Added missing session variables (allow_comments, allow_spy, champdatefin)
  to the initialization array
- Added dol_escape_htmltag() for title output (XSS hardening)

Co-authored-by: f-hoedl <hoefla14@htl-kaindorf.ac.at>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-02-08 14:46:02 +01:00
Vanyo
534995dd6c Initialize arrayforbutaction before hook (#37149) 2026-02-08 14:44:29 +01:00
Vanyo
1cd73239fc Initialize arrayforbutaction before hook (#37149) 2026-02-08 14:44:15 +01:00
Laurent Destailleur
aa36309755 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-02-08 14:40:13 +01:00
Laurent Destailleur
c939f56b56 NEW Add method formatLogObject to allow logs in 1 line #37135 2026-02-08 14:39:46 +01:00
Alexandre SPANGARO
7bb57721bb FIX Invoice - Don't show discount on credit note type (#37145) 2026-02-08 14:29:25 +01:00
Mathieu G.
3f412cf745 fix avoids undefined array key (#37103) 2026-02-08 14:28:09 +01:00
Laurent Destailleur
ce50e32a71 Fix regression 2026-02-08 14:25:27 +01:00
Laurent Destailleur
d0c5d523a3 FIX Show total on multicurrency only if currency are the same on all
lines
2026-02-08 13:59:19 +01:00
Laurent Destailleur
5e960ae089 FIX Show total on multicurrency only if currency are the same on all
lines
2026-02-08 13:57:11 +01:00
Laurent Destailleur
04c72eea0f Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into
develop
2026-02-08 13:15:16 +01:00
Laurent Destailleur
574b4b5d62 Merge branch '22.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-02-08 13:12:52 +01:00
Laurent Destailleur
01e947cfad Rename var 2026-02-08 13:10:29 +01:00
Laurent Destailleur
713918dadf Debug v23 2026-02-08 13:05:57 +01:00
Laurent Destailleur
eeae12ed63 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-02-08 13:05:32 +01:00
Laurent Destailleur
9fa2fd0b92 Debug v23 2026-02-08 13:04:23 +01:00
Laurent Destailleur
5c6bc657f4 CI 2026-02-08 12:58:22 +01:00
minimexat
02d0b6524c FIX Add missing isset() check for $_GET['file'] in viewimage.php (#37141)
On line 65, $_GET['file'] is accessed without isset() check inside
the modulepart=='mycompany' condition. This causes an 'undefined array
key' warning on PHP 8.1+ when modulepart is 'mycompany' but no file
parameter is provided.

Note: GETPOST() is intentionally not used here as it is not available
before main.inc.php is loaded (see existing code comment).

Co-authored-by: f-hoedl <hoefla14@htl-kaindorf.ac.at>
2026-02-08 03:06:36 +01:00
minimexat
61ece3d5c5 FIX Replace direct $_POST access with GETPOST() in origin/originid recovery paths (#37143)
When a create action fails and rolls back, several list/card pages
restore origin parameters by assigning $_POST values directly to
$_GET. This causes 'undefined array key' warnings on PHP 8.1+ if
the POST data is missing or malformed.

Replace raw $_POST['origin'] with GETPOST('origin', 'alpha') and
raw $_POST['originid'] with GETPOSTINT('originid') which safely
handle missing parameters.

Files fixed:
- htdocs/expedition/list.php
- htdocs/fourn/commande/list.php
- htdocs/commande/list.php
- htdocs/compta/facture/card.php
- htdocs/reception/list.php

These files had TODO-style comments ('Keep this ?', 'Keep GET and
POST here ?') indicating the pattern was already questionable.

Co-authored-by: f-hoedl <hoefla14@htl-kaindorf.ac.at>
2026-02-08 03:05:47 +01:00
Laurent Destailleur
0111114502 Fix CI 2026-02-08 00:19:56 +01:00
Laurent Destailleur
9369f4aea3 Fix CI 2026-02-08 00:19:03 +01:00
adamhocini
79ba81a75d Correct linked_objects assignment for 'propal' #Wrong sourcetype 'commande' instead of 'propal' when creating recurring invoice template from invoice linked to proposal #37099 @defrance (#37112)
* Correct linked_objects assignment for 'propal'

@defrance Adam Hocini

* Refactor linked objects assignment for proposals

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-02-08 00:11:46 +01:00
DarmonNoah
08040ec30e Fixed Bug : email sending test #36741 (#37107)
Fixed Bug : email sending test #36741
@defrance 
-->
Issue fixed
The problem was caused by initializing $result = 0 in core/actions_sendmails.inc.php.
When sending a test email from Setup → Emails, there is no $object to fetch. As a result, $result remained 0 and the code incorrectly triggered ErrorFailedToReadObject.

The fix consists in explicitly setting $result = 1 when no $object is provided (test email / generic email context). This correctly treats the absence of an object as a valid case and restores the ability to send test emails, while keeping $result properly initialized.

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-02-08 00:11:36 +01:00
Laurent Destailleur
192e181d8a Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-02-08 00:11:09 +01:00
Laurent Destailleur
b82f488c54 Fix CI 2026-02-08 00:11:01 +01:00
Joachim Kueter
3361d4b0ba Fix: auto-generate pdf from odt-templates also for not yet validatedocuments (#37082)
* Fix: auto-generate pdf from odt-templates also for not yet validated documents

Not validated documents have a ref containing (PROV

When auto-generating pdf documents from odt documents is activated, this fails for not validated documents: the brackets ( ) in the ref are getting escaped twice which leads the pdf generation to fail.

The change removes the double escaping, the$command is already escaped before. With this change, also for unvalidated documents, pdf documents are getting generated.

* replace ( ) for escapeshellcmd

temporarily replace ( ) by placeholders to avoid them getting escaped

check that no placeholder injection happened before

apply to both execmethods (1 and 2)

* Retrigger check
2026-02-08 00:04:45 +01:00
DarmonNoah
7cd3abb9f8 Fixed Bug : email sending test #36741 (#37107)
Fixed Bug : email sending test #36741
@defrance 
-->
Issue fixed
The problem was caused by initializing $result = 0 in core/actions_sendmails.inc.php.
When sending a test email from Setup → Emails, there is no $object to fetch. As a result, $result remained 0 and the code incorrectly triggered ErrorFailedToReadObject.

The fix consists in explicitly setting $result = 1 when no $object is provided (test email / generic email context). This correctly treats the absence of an object as a valid case and restores the ability to send test emails, while keeping $result properly initialized.

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-02-08 00:00:12 +01:00
adamhocini
ebce799bdb Correct linked_objects assignment for 'propal' #Wrong sourcetype 'commande' instead of 'propal' when creating recurring invoice template from invoice linked to proposal #37099 @defrance (#37112)
* Correct linked_objects assignment for 'propal'

@defrance Adam Hocini

* Refactor linked objects assignment for proposals

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-02-07 23:58:14 +01:00
Laurent Destailleur
f20eb01d0e Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-02-07 23:57:50 +01:00
Laurent Destailleur
fd6ecb3901 Fix CI 2026-02-07 23:57:41 +01:00
Laurent Destailleur
43034bfc30 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-02-07 23:56:27 +01:00
Laurent Destailleur
ee0df74f83 Fix CI 2026-02-07 23:54:21 +01:00
Laurent Destailleur
e364607856 Fix CI 2026-02-07 23:53:07 +01:00
Anthony Berton
6ef62a45b5 FIX - getModuleDirForApiClass for propal (#37098)
Co-authored-by: Anthony Berton <anthony.berton@bb2a.fr>
2026-02-07 23:44:57 +01:00
AnthoXic
51c7074687 Update card.php (#37108)
@defrance https://github.com/Dolibarr/dolibarr/issues/36767
2026-02-07 23:41:34 +01:00
AnthoXic
5078e42330 Update card.php (#37108)
@defrance https://github.com/Dolibarr/dolibarr/issues/36767
2026-02-07 23:41:13 +01:00
Francis Appels
7eae776e13 Fix #37089, still some checks on PRODUIT_SOUSPRODUITS_ALSO_ENABLE_PARENT_STOCK_MOVE (#37115) 2026-02-07 23:28:36 +01:00
Laurent Destailleur
ce6802ab77 Edit form must match have order of field similat to create form 2026-02-07 23:25:50 +01:00
Charlène Benke
712b4ce5c4 Increase editor height for note input fields (#37128) 2026-02-07 23:23:56 +01:00
atm-lucas
251b57641b fix timespent in timeline (#37132) 2026-02-07 22:53:52 +01:00
Laurent Destailleur
6bc3bb0761 More debug info 2026-02-07 22:28:11 +01:00
Laurent Destailleur
a781d91469 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-02-07 22:04:13 +01:00
Laurent Destailleur
a48485195f Fix CI 2026-02-07 22:03:11 +01:00
Laurent Destailleur
556b103dc6 Fix max 2026-02-07 21:57:02 +01:00
Laurent Destailleur
205cb50766 Debug v23 2026-02-07 21:55:20 +01:00
Laurent Destailleur
2ceadc0741 css 2026-02-07 21:39:27 +01:00
Laurent Destailleur
c852aa346a Fix the limit 2026-02-07 21:38:51 +01:00
Laurent Destailleur
c352ae9615 Debug v23 2026-02-07 21:31:33 +01:00
Laurent Destailleur
8d54cac841 Code comment 2026-02-07 21:03:04 +01:00
Laurent Destailleur
fab3521672 Clean code 2026-02-07 20:44:03 +01:00
Laurent Destailleur
012c1fb078 Debug v23 - sql request for list of actioncomm must not use a OR 2026-02-07 20:07:09 +01:00
Laurent Destailleur
7b91fdcfa5 Better rate showing 2026-02-07 17:22:46 +01:00
Laurent Destailleur
e5b2243565 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-02-07 17:13:24 +01:00
Laurent Destailleur
50e7d41f7a Fix missing lagal requirement 2026-02-07 17:09:43 +01:00
Laurent Destailleur
447242b3d5 Debug v23 2026-02-07 15:43:49 +01:00
Laurent Destailleur
529db21a6c Debug extrafields chckbxlist v23 2026-02-07 14:56:58 +01:00
Laurent Destailleur
1ec65e0589 Debug extrafields chckbxlist v23 2026-02-07 14:55:51 +01:00
Laurent Destailleur
943827834c Clean code 2026-02-07 13:21:53 +01:00
Laurent Destailleur
d11c85be43 Debug v23 2026-02-07 12:06:35 +01:00
Laurent Destailleur
d03e1bd940 Debug v23 2026-02-07 12:05:53 +01:00
Laurent Destailleur
a1bc833c3f Fix link 2026-02-07 11:54:54 +01:00
Laurent Destailleur
5b0b22fe28 NEW Add direct debit to close on home thumbs 2026-02-07 11:24:26 +01:00
Laurent Destailleur
c92a6aaf04 Debug v23 2026-02-07 10:26:57 +01:00
Laurent Destailleur
0ee93311e9 Fix status code 2026-02-06 22:14:38 +01:00
Laurent Destailleur
8ba58b33ae Fix list of status 2026-02-06 22:11:17 +01:00
Laurent Destailleur
2f023619e9 Fix link 2026-02-06 21:57:46 +01:00
Laurent Destailleur
eaab8a8242 Fix link 2026-02-06 21:53:20 +01:00
Laurent Destailleur
fbd92432b1 Debug v24 2026-02-06 21:50:44 +01:00
Laurent Destailleur
bbba60fa3f Link are clicable on page 2026-02-06 21:47:11 +01:00
Laurent Destailleur
e907abd201 NEW Add status canceled on direct debit payment 2026-02-06 21:27:31 +01:00
Laurent Destailleur
5bde9c7b56 Add tab on sepa direct debit 2026-02-06 20:22:21 +01:00
Laurent Destailleur
38690cd872 Clean code 2026-02-06 19:41:16 +01:00
Laurent Destailleur
92e05a521d Debug filter on status 2026-02-06 19:04:15 +01:00
Laurent Destailleur
d909b6cb75 NEW Filter on status of direct debit 2026-02-06 18:58:34 +01:00
Laurent Destailleur
53045c7377 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-02-06 18:08:06 +01:00
Laurent Destailleur
4721d852bf Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into
develop
2026-02-06 18:07:54 +01:00
Laurent Destailleur
bbac3b9a4a Add tool to fix data of payments not correctly linked to bank (need
hidden option to allow this data correction)
2026-02-06 18:05:53 +01:00
Laurent Destailleur
8a4d4a8056 Fix when thirdparty found twice. 2026-02-06 13:42:47 +01:00
Jarvis
954233c67d Fix extrafields visibility formulas using $objectoffield without computed fields (#37116)
Initialize $objectoffield before evaluating extrafield visibility/perms so formulas work even when no computed field exists.
Affects create/edit/view visibility logic for extrafields.

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-02-06 12:57:19 +01:00
Laurent Destailleur
f4b7ce7f20 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-02-06 12:46:04 +01:00
Laurent Destailleur
5728e44c3d NEW Introduce THIRDPARTY_LIMIT_SIZE for a limit on thirdpaty in select
list
2026-02-06 12:45:40 +01:00
Christophe Battarel
7c20573ef2 FIX : permission on pmp (#37119)
* fix pmp auth on stock at date screen

* fix pmp auth on warehouse list

* fix pmp auth on warehouse card

* FIX: bad argument for print_liste_field_titre

---------

Co-authored-by: Christophe Battarel <christophe@altairis.fr>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
Co-authored-by: Noé Cendrier <81741011+altairis-noe@users.noreply.github.com>
Co-authored-by: Noé Cendrier <noe.cendrier@altairis.fr>
2026-02-06 12:13:21 +01:00
Laurent Destailleur
22e7100281 Trans 2026-02-06 03:17:44 +01:00
Laurent Destailleur
7e3df7c5f8 FIX Error on large product database 2026-02-06 03:11:52 +01:00
Laurent Destailleur
5e206952f4 FIX Error on large product database 2026-02-06 03:10:25 +01:00
Laurent Destailleur
081e05047d Fix var 2026-02-06 02:41:22 +01:00
Laurent Destailleur
920627e75f Fix var 2026-02-06 02:41:02 +01:00
Florian Hödl
65224fe6cc fix(emailcollector): prevent PHPIMAP body carryover between emails (#37121)
Reset global variables $htmlmsg, $plainmsg, and $attachments before
processing each email in PHPIMAP mode to prevent email body content
from previous email carrying over into the next one.

This issue only affected Microsoft OAuth (PHPIMAP) mode. When an email
had no plain-text body but the previous email did, the previous email's
plain-text would incorrectly be used for the current email.

The $charset variable is intentionally not reset as PHPIMAP handles
charset internally, unlike native IMAP mode.

Also standardized array syntax to use array() consistently per Dolibarr
coding conventions.

Co-authored-by: Florian Hödl <florian@hoedl.co>
2026-02-06 02:38:35 +01:00
Laurent Destailleur
2dada142ba Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-02-06 02:38:10 +01:00
Florian Hödl
26aabf9e2d fix(emailcollector): prevent PHPIMAP body carryover between emails (#37121)
Reset global variables $htmlmsg, $plainmsg, and $attachments before
processing each email in PHPIMAP mode to prevent email body content
from previous email carrying over into the next one.

This issue only affected Microsoft OAuth (PHPIMAP) mode. When an email
had no plain-text body but the previous email did, the previous email's
plain-text would incorrectly be used for the current email.

The $charset variable is intentionally not reset as PHPIMAP handles
charset internally, unlike native IMAP mode.

Also standardized array syntax to use array() consistently per Dolibarr
coding conventions.

Co-authored-by: Florian Hödl <florian@hoedl.co>
2026-02-06 02:37:37 +01:00
Laurent Destailleur
9d68bebac4 NEW Can set position of search object in combo search 2026-02-06 01:29:53 +01:00
Laurent Destailleur
4112213431 Trans 2026-02-06 01:08:29 +01:00
Laurent Destailleur
7bc2523f57 Fix phan 2026-02-05 19:31:41 +01:00
Laurent Destailleur
7773c2504f Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-02-05 13:55:24 +01:00
Laurent Destailleur
b74e50d7e6 NEW Add method calculateVATNumberFromProperties() 2026-02-05 13:54:13 +01:00
Laurent Destailleur
c9b270b035 Code comment 2026-02-05 13:30:59 +01:00
ThomasNgr-OpenDSI
0f378d5ecf Fix : PR #36804 includes a regression that blocks navigation between pages (#36821) 2026-02-05 12:52:50 +01:00
William Mead
efb61ca449 NEW product barcode label print options (#36656)
* Added product reference and product label options to barcode label. Updated EN localization. Updated contributor details.

* Added reference and label input placeholder

* Updated logic and localizations

* Updated styling

* Updated localization

* Cleaned code
2026-02-05 12:44:00 +01:00
Anthony Berton
86a913d5b1 FIX - Standardization with other Dolibarr objects (#36725)
* FIX - Standardization with other Dolibarr objects

* Solve CI error

---------

Co-authored-by: Anthony Berton <anthony.berton@bb2a.fr>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-02-05 12:42:15 +01:00
William Mead
feca86b812 FIX supplier order delivery date from order (#36860)
* Fixed delivery date from order

* Updated comment

* Fixed delivery date from order

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-02-05 12:35:53 +01:00
Laurent Destailleur
16fe32f908 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-02-05 03:57:09 +01:00
Laurent Destailleur
a798501af3 Fix CI 2026-02-05 03:56:54 +01:00
atm-GregM
77a033999d Add new multiselect OF status search on list (#37069)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-02-05 03:28:37 +01:00
Anthony Berton
7b33e1c752 UIUX - Look and feel for knowledge (#37096)
* FIX

* FIX

* NEW - Look and feel for knowledge

---------

Co-authored-by: Anthony Berton <anthony.berton@bb2a.fr>
2026-02-05 01:08:00 +01:00
Frédéric FRANCE
ccdcee471b fix french doc (#37095) 2026-02-05 01:06:46 +01:00
Laurent Destailleur
e79416c801 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-02-04 21:33:26 +01:00
Laurent Destailleur
15658c56d5 CI 2026-02-04 21:33:07 +01:00
Laurent Destailleur
c681071c65 Fix phan 2026-02-04 21:30:16 +01:00
Benjamin Falière
5ed012c6e5 NEW(API): create fixed amount discount (#37091)
* NEW(API): create fixed amount discount

* FIX CI

* FIX CI

---------

Co-authored-by: Benjamin Falière <benjamin.faliere@altairis.fr>
2026-02-04 21:23:46 +01:00
Francis Appels
6ce11adba1 FIX: #36944 father kits with lot (#37089) 2026-02-04 21:22:59 +01:00
ThomasNgr-OpenDSI
d75499d076 NEW : hide remise_except unit price on invoice lines (#37066)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-02-04 21:19:06 +01:00
Laurent Destailleur
2905b6096e Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-02-04 19:49:49 +01:00
Laurent Destailleur
30e8eff3d9 css 2026-02-04 19:47:40 +01:00
Laurent Destailleur
cabc42f308 Close #36975 2026-02-04 18:05:40 +01:00
Laurent Destailleur
5453a7a79b Close #36975 2026-02-04 18:05:10 +01:00
Laurent Destailleur
1ede9e3630 Fix comment and keep external modules out of core modules 2026-02-04 17:36:44 +01:00
Charlène Benke
ca64d18833 family assignment logic on user perms of external modules (#36456)
* family assignment logic on user perms of external modules

Updated family assignment logic to default to 'other' if family does not exist in $familyinfo.

* Update copyright year for Charlene Benke
2026-02-04 17:19:43 +01:00
Charlène Benke
af7f01750b family assignment logic on user perms of external modules (#36456)
* family assignment logic on user perms of external modules

Updated family assignment logic to default to 'other' if family does not exist in $familyinfo.

* Update copyright year for Charlene Benke
2026-02-04 17:19:23 +01:00
Laurent Destailleur
7b96c31789 Fix CI 2026-02-04 17:13:38 +01:00
Laurent Destailleur
5b20b70b66 Doc 2026-02-04 16:56:20 +01:00
Laurent Destailleur
3399db3471 Fix CI 2026-02-04 16:33:50 +01:00
Laurent Destailleur
0ca6f7366b Clean code 2026-02-04 16:21:51 +01:00
AWeerWolf
09a840b6c3 #36843 Update card-rec.php (#37062)
The item desc is already added into the line when selecting the Item. No Need to concat it again when clicking the "add" button.
2026-02-04 16:21:11 +01:00
Laurent Destailleur
f3aa82e4ba Restrict to modiied files 2026-02-04 16:16:51 +01:00
Laurent Destailleur
d6bff9f364 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-02-04 16:16:10 +01:00
Laurent Destailleur
e3b3a8bbec Fix CI 2026-02-04 16:15:26 +01:00
LePat
8bca07597d fix: add missing geturl lib (#37088) 2026-02-04 16:11:55 +01:00
Laurent Destailleur
5fa75e981b CLOSE #37085 - Popup notif is just under the menu bar 2026-02-04 16:00:16 +01:00
Laurent Destailleur
e22ba4a3d2 Fix CI 2026-02-04 15:20:36 +01:00
Lenin Rivas
624407afcc NEW Show total multicurrency on payment (#37070)
* Total multicurrency

* Total multicurrency paiment

* total result multicurrency

* show total multicurrency
2026-02-04 15:19:48 +01:00
Vanyo
2304e4ccfe Change translation function to transnoentities (#37065)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-02-04 15:09:23 +01:00
Vanyo
34f7bf1e68 Change translation function to transnoentities (#37065)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-02-04 15:08:56 +01:00
Laurent Destailleur
96a9d1f4e5 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into
develop
2026-02-04 15:08:02 +01:00
Laurent Destailleur
89c40d9be6 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-02-04 15:05:56 +01:00
Laurent Destailleur
1a26f9a42e Trans 2026-02-04 15:05:35 +01:00
Frédéric FRANCE
80f9839253 translate french doc to english (#37064)
* fix french doc

* fix french doc

* fix french doc

* fix french doc

* fix

* fix

* fix

* fix
2026-02-04 14:49:13 +01:00
Laurent Destailleur
82d4bb9df6 fix: dev/examples/zapier/package.json to reduce vulnerabilities (#37071)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-LODASH-15053838

Co-authored-by: snyk-bot <snyk-bot@snyk.io>
2026-02-04 14:48:57 +01:00
Braito
d45ed9d78e EmailCollector: exclude sender emails/domains (#37075)
# Conflicts:
#	htdocs/langs/en_US/admin.lang

Co-authored-by: braito4 <braito4@users.noreply.github.com>
2026-02-04 14:46:14 +01:00
Charlène Benke
00b04e9691 Adjust signature appearance position in PDF generation (#37076) 2026-02-04 14:45:07 +01:00
Benjamin Falière
e2aed0f5c1 FIX: #36989 private mention on ticket pdf (#37079)
Co-authored-by: Benjamin Falière <benjamin.faliere@altairis.fr>
2026-02-04 14:41:29 +01:00
Laurent Destailleur
1cfb3dfaa3 Fix new path of dolreceiptprinter.class.php 2026-02-04 14:36:45 +01:00
Laurent Destailleur
85687d5d88 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into
develop
2026-02-04 14:27:02 +01:00
Laurent Destailleur
4fdbfcf581 Debug v23 2026-02-04 14:24:18 +01:00
Laurent Destailleur
8b920938de Clean code for Takepos 2026-02-04 14:21:47 +01:00
LePat
70d522a6d4 FIX: TakePOS, webapp-hardware-bridge and TakePOS-Connector for modern weighing scales (#37078)
* feat: CustomerDisplay through Webapp-Hardware-Bridge

* feat: WeighingScale through Webapp-Hardware-Bridge

* feat: WeighingScale through Webapp-Hardware-Bridge

* fix: looks like a typo

* feat: for small screens

* fix: attribut contenant le prix du produit ajouté

* feat: ajout d'un callback de gestion d'erreur
2026-02-04 14:20:59 +01:00
Charlène Benke
2a157d1aec bad link on sql in fichinter list (#37081) 2026-02-04 14:20:01 +01:00
Charlène Benke
11241cd8da bad link on sql in fichinter list (#37081) 2026-02-04 14:19:46 +01:00
Laurent Destailleur
456affb148 Debug v23 2026-02-03 19:06:49 +01:00
Laurent Destailleur
4b3a8ff24f Debug v23 2026-02-03 19:05:22 +01:00
Laurent Destailleur
fdce9453bc Make array of dispute status a shared constant 2026-02-03 18:40:36 +01:00
Laurent Destailleur
ca7e4346f0 More complete message 2026-02-03 18:16:05 +01:00
Laurent Destailleur
4cdd513914 css 2026-02-03 17:57:18 +01:00
Laurent Destailleur
cd71bf33ca Debug v23 2026-02-03 14:38:03 +01:00
Laurent Destailleur
3a6bd97fc8 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-02-03 14:08:20 +01:00
Laurent Destailleur
581aafdbff CSS on current day 2026-02-03 12:30:03 +01:00
Laurent Destailleur
ac5b2c994b css 2026-02-03 12:09:54 +01:00
Laurent Destailleur
29cadfb644 Debug v23 2026-02-03 11:36:51 +01:00
Laurent Destailleur
276cbb2cd7 Trans 2026-02-03 11:32:11 +01:00
Laurent Destailleur
de4dd2e735 Link and filter on ountry for holiday types 2026-02-03 11:23:48 +01:00
Laurent Destailleur
9d8314a65a Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into
develop
2026-02-03 11:23:24 +01:00
Laurent Destailleur
2faa3a0ae2 Link and filter on ountry for holiday types 2026-02-03 11:22:23 +01:00
Laurent Destailleur
62384bedb4 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into
develop
2026-02-02 20:56:47 +01:00
Laurent Destailleur
fe6b6a8e42 Debug v23 2026-02-02 20:52:20 +01:00
Laurent Destailleur
3379457ed7 Fix situation invoice 2026-02-02 20:03:36 +01:00
Laurent Destailleur
fd41237049 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-02-02 20:03:05 +01:00
Laurent Destailleur
faa60854f9 Fix situation invoice 2026-02-02 20:02:28 +01:00
Charlène Benke
0a247c57ca load tables in init for create categorie table associated (#37059) 2026-02-02 19:24:31 +01:00
Frédéric FRANCE
95da49edf3 fix french doc (#37056)
* fix french doc

* fix french doc

* fix french doc

* doc translation

* doc translation

* doc translation

* doc translation

* doc translation
2026-02-02 19:22:04 +01:00
hansemschnokeloch
3ff9722903 Add optionnal img to openid login (#37060) 2026-02-02 19:09:57 +01:00
Laurent Destailleur
b28c19d48d Fix sql syntax error 2026-02-02 16:19:37 +01:00
Laurent Destailleur
b5d5087550 Fix sql syntax error 2026-02-02 16:18:43 +01:00
Laurent Destailleur
9ce603eb97 Fix CSS 2026-02-02 16:12:21 +01:00
Laurent Destailleur
84592e1f5d Fix CSS 2026-02-02 16:11:46 +01:00
Laurent Destailleur
f8d8abd70b Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-02-02 15:59:37 +01:00
Laurent Destailleur
c2574715f1 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-02-02 15:54:18 +01:00
Laurent Destailleur
440050b7a8 Debug v23 2026-02-02 15:53:41 +01:00
Frédéric FRANCE
d02b05f1a7 remove french doc and fix travis migration missing (#37053)
* fix french doc

* fix french doc

* fix french doc

* fix french doc

* Clean up comments in card.php

Removed unnecessary comments from card.php

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-02-02 00:43:28 +01:00
Pierre Ardoin
73273a48da Fix Signature position (#37048)
Move up the position of the signature to fix its explosion on 3 pages
2026-02-02 00:38:06 +01:00
ThomasNgr-OpenDSI
079f0565d7 NEW : Manage discount for all lines for supplier elements. (#36954)
* NEW : Manage remise for all lines for supplier elements.

* Cast remise_percent to float in updateline call

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-02-02 00:23:40 +01:00
Laurent Destailleur
5b8eeba33d Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-02-01 19:22:03 +01:00
Laurent Destailleur
e2206a5849 FIX #36892 2026-02-01 19:20:52 +01:00
Frédéric FRANCE
d3dbfd8c6e Add thumbnails for avif (#37045)
* vignette for avif

* vignette for avif

* vignette for avif

* vignette for avif

* vignette for avif

* vignette for avif

* vignette for avif

* vignette for avif

* vignette for avif

* vignette for avif

* vignette for avif

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-02-01 19:07:15 +01:00
Laurent Destailleur
1395b5f66c CI 2026-02-01 19:04:53 +01:00
Lenin Rivas
429aff6991 FIX divisa rate indirect to direct because Dolibarr use indirect for default (#37046)
* FIX rate_indirect to rate_direct

Direct	: 	1 Divisa Currency = X Currency Main.
Indirect	: 	1 Currency Main = X Divisa Currency.
Then for Dolibarr use is Indirect for default

* FIX divisa rate indirect to direct

Direct	: 	1 Divisa Currency = X Currency Main.
Indirect: 	1 Currency Main = X Divisa Currency.
Then for Dolibarr use is Indirect for default

* FIX divisa rate indirect to direct

Direct	: 	1 Divisa Currency = X Currency Main.
Indirect: 	1 Currency Main = X Divisa Currency.
Then for Dolibarr use is Indirect for default

* FIX divisa rate indirect to direct

Direct	: 	1 Divisa Currency = X Currency Main.
Indirect: 	1 Currency Main = X Divisa Currency.
Then for Dolibarr use is Indirect for default

* FIX divisa rate indirect to direct

Direct	: 	1 Divisa Currency = X Currency Main.
Indirect: 	1 Currency Main = X Divisa Currency.
Then for Dolibarr use is Indirect for default

* Divisa rate direct

Direct	: 	1 Divisa Currency = X Currency Main.
Indirect: 	1 Currency Main = X Divisa Currency.
Then for Dolibarr use is Indirect for default

* Add col rate_direct because Dolibarr use for.default rate indirect

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-02-01 18:13:09 +01:00
MDW
4e8b6dc21d Qual: Translate french 'avec' comments to English (#37049)
# Qual: Translate french 'avec' comments to English
2026-02-01 18:09:39 +01:00
Alexandre SPANGARO
4faef8f791 NEW Accountancy - Select between accrual accounting and cash accounting (#37050) 2026-02-01 18:09:24 +01:00
MDW
c5582f5085 Qual: Translate French 'valeur' in comments to English (#37051) 2026-02-01 18:05:15 +01:00
Alexandre SPANGARO
a84b9cf89d Qual: Translate French comments to English (#37052) 2026-02-01 18:04:58 +01:00
Laurent Destailleur
d02dfe0966 Fix ci 2026-02-01 02:56:16 +01:00
Laurent Destailleur
3ac710d260 Fix CI 2026-02-01 02:48:21 +01:00
Laurent Destailleur
3a67d56a4f Fix CI 2026-02-01 02:33:07 +01:00
Laurent Destailleur
20186dd991 Fix CI 2026-02-01 02:30:28 +01:00
Jyhere
b74382c7e2 FIX: Add htmlname and selectedrate to parameters array for hook (#36998)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-02-01 02:09:40 +01:00
Laurent Destailleur
3eed365991 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-02-01 02:08:29 +01:00
Jyhere
9bb2ae7772 FIX: Add htmlname and selectedrate to parameters array for hook (#36998)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-02-01 02:08:03 +01:00
Vincent Maury
892f49ffb2 Fix #35394 Display public note on first page (#36993)
* Display public note (an incoterms and sales rep signat) only on real first page

* Display public note (an incoterms and sales rep signat) only on real first page

---------

Co-authored-by: vmaury <vmaury@vmaury-Lafite-Pro-16-AMD>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-02-01 02:05:08 +01:00
Alexandre SPANGARO
51b66f0c17 Warning on account model (#37042)
* Error on account model

* Simplify rowid assignment in accountmodel.php

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-02-01 02:01:16 +01:00
Laurent Destailleur
280fb84147 Clean comment 2026-02-01 01:52:58 +01:00
Alexandre SPANGARO
19a29402de Warning on export/import - Add isset() protection in Export::load_arrays() & Import::load_arrays() (#37043)
* Warning on export - Add isset() protection in Export::load_arrays()

* Warning on import - Add isset() protection in Import::load_arrays()

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-02-01 01:27:33 +01:00
Thatoo
296372cf5f Minimum amount and subscription's amount formula description (#37006)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-02-01 01:19:29 +01:00
Laurent Destailleur
01faea65d5 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-02-01 01:02:52 +01:00
Laurent Destailleur
265acd7133 Fix CI 2026-02-01 01:01:49 +01:00
Laurent Destailleur
1e5a12708d CI 2026-02-01 00:44:24 +01:00
Laurent Destailleur
09ded05029 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into
develop
2026-02-01 00:40:38 +01:00
Laurent Destailleur
47089ec3e1 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-02-01 00:14:21 +01:00
Laurent Destailleur
93c1013eff Fix CI 2026-02-01 00:13:37 +01:00
Frédéric FRANCE
d74cbcb26d fix french doc (#37047)
* fix french doc

* Update index.php

* Update index.php
2026-02-01 00:00:49 +01:00
Frédéric FRANCE
f7092b4377 fix CI v21 (#37035)
* fix CI v21

* Update functions.lib.php
2026-01-31 20:30:12 +01:00
Frédéric FRANCE
2e21b1d596 fix french doc (#37037)
* fix french doc

* Update dispatch.php

* Update dispatch.php

* Update graph.php
2026-01-31 20:29:59 +01:00
Charlène Benke
d4f68f8986 warning error if no societe->id defined (#37039) 2026-01-31 20:29:22 +01:00
Frédéric FRANCE
84774abc2c fix french doc (#37040) 2026-01-31 20:28:43 +01:00
MDW
e444abc3d1 Qual: Translate French comments to English ("niveau") (#37041)
Translate French comments to English (comments with "niveau")
2026-01-31 20:28:26 +01:00
Alexandre SPANGARO
1ac1cbf8de Qual: Translate French comments to English (#37044)
* Qual: Translate French comments to English

* Qual: Translate French comments to English
2026-01-31 20:28:09 +01:00
atm-lucas
87f81fb853 fix column total ht pdf espadon (#37038) 2026-01-31 20:26:31 +01:00
Frédéric FRANCE
73ec501b20 fix french doc (#36897)
* fix french doc

* fix french doc

* fix french doc

* fix french doc

* fix french doc

* fix french doc

* fix french doc

* fix french doc

* fix french doc

* fix french doc

* fix french doc

* fix

* fix

* fix

* fix

* fix french doc

* fix french doc

* fix french doc

* fix french doc

* fix french doc

* fix french doc

* fix french doc

* fix french doc

* Update html.form.class.php

* Update html.form.class.php

* Update index.php

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* Update modules_facture.php

* Update phpstan.neon.dist

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-30 14:22:56 +01:00
Laurent Destailleur
f64c0136d7 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-30 13:33:44 +01:00
Laurent Destailleur
a71e07c6e4 Merge branch '22.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-01-30 13:33:27 +01:00
Laurent Destailleur
2e768edbb2 Close #37034 2026-01-30 13:32:34 +01:00
Laurent Destailleur
66746b7e18 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-30 13:26:28 +01:00
Laurent Destailleur
4ec7c5c3f6 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-30 13:26:10 +01:00
Laurent Destailleur
8d7588fbf6 Merge branch '22.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-01-30 13:24:28 +01:00
Laurent Destailleur
6b73bb78a4 CI 2026-01-30 13:22:02 +01:00
Laurent Destailleur
4fd58bf4ea CI 2026-01-30 13:21:27 +01:00
Frédéric FRANCE
00bc3e60d9 fix CI (#37033) 2026-01-30 13:09:17 +01:00
Frédéric FRANCE
003c22e772 fix CI (#37033) 2026-01-30 13:08:48 +01:00
Laurent Destailleur
92e655a28d Debug v23 - Fix ipn for dispute and withdraw funds. 2026-01-30 05:48:51 +01:00
Laurent Destailleur
5ae622fb28 Clean code 2026-01-30 05:40:34 +01:00
Laurent Destailleur
611188e32c Log 2026-01-30 05:40:27 +01:00
Laurent Destailleur
08b55f54c5 Fix IPN 2026-01-30 05:31:16 +01:00
Laurent Destailleur
a02afa7641 Fix IPN payment 2026-01-30 05:11:17 +01:00
Laurent Destailleur
2f76d0bc5a More Log 2026-01-30 04:46:32 +01:00
Laurent Destailleur
51c6165983 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into
develop
2026-01-30 04:12:15 +01:00
Laurent Destailleur
1f77162fef More log 2026-01-30 04:11:42 +01:00
Laurent Destailleur
764f23c1b8 More log 2026-01-30 03:57:07 +01:00
Laurent Destailleur
a8cbcd7150 More log 2026-01-30 03:54:23 +01:00
Laurent Destailleur
39ca59eb37 FIX Division by zero 2026-01-30 03:20:29 +01:00
Laurent Destailleur
dd7906a1d9 FIX Division by zero 2026-01-30 03:20:08 +01:00
Laurent Destailleur
805f0ed971 Debug v24 2026-01-30 03:14:22 +01:00
Laurent Destailleur
8923cd9ac0 Fix when there is more than 99 direct debit in same month 2026-01-30 03:14:06 +01:00
Laurent Destailleur
413021900a CSS 2026-01-30 03:13:09 +01:00
Laurent Destailleur
0b891d1790 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-01-30 03:11:29 +01:00
Laurent Destailleur
fd71ba3fec Debug v24 2026-01-30 02:56:17 +01:00
Laurent Destailleur
adec349442 Fix when there is more than 99 direct debit in same month 2026-01-30 02:54:03 +01:00
Laurent Destailleur
842b09b2f5 FIX When bank direct debit SEPA ref is > 99 2026-01-30 02:52:34 +01:00
Laurent Destailleur
8882c5e79a Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-30 02:10:43 +01:00
Laurent Destailleur
c9dee9bcd1 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-30 02:10:31 +01:00
Laurent Destailleur
965fa8da72 Doc comment 2026-01-30 02:10:21 +01:00
Laurent Destailleur
22ef8998fb Doc 2026-01-30 00:56:32 +01:00
Laurent Destailleur
7c02095d4d Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-01-30 00:54:49 +01:00
Frédéric FRANCE
b5d1f8d569 fix phan (#37030)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-30 00:52:36 +01:00
Frédéric FRANCE
001755285b fix phan (#37029)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-30 00:47:45 +01:00
MDW
3fef69e9bf Qual: Update french comments with 'nombre' (#37032)
Update french comments with 'nombre' in their phrasing

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-30 00:37:23 +01:00
Laurent Destailleur
78b21d26d1 Debug v23 2026-01-30 00:12:46 +01:00
Frédéric FRANCE
479fcde7e9 fix facture.class.php (#37031) 2026-01-30 00:06:29 +01:00
Laurent Destailleur
ab0395e8c9 Fix LDAP 2026-01-29 23:52:43 +01:00
Laurent Destailleur
bb5a37e0ef Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-29 23:46:17 +01:00
Laurent Destailleur
26630a746b Debug v23 2026-01-29 23:45:05 +01:00
Laurent Destailleur
63e4f2305f Clean code 2026-01-29 23:33:04 +01:00
Laurent Destailleur
8befaf1ae6 Clean code 2026-01-29 23:30:39 +01:00
Laurent Destailleur
736c269790 Fix phan 2026-01-29 23:19:36 +01:00
Laurent Destailleur
9140024505 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-29 23:17:02 +01:00
Laurent Destailleur
01d715053a try to fix phan 2026-01-29 23:16:51 +01:00
Laurent Destailleur
6469399afc Clean code 2026-01-29 23:15:17 +01:00
Laurent Destailleur
6b0a3e0f68 FIX Pb in total price of line when adding the discount of a down payment
when unit price was using a high accuracy.
2026-01-29 23:15:07 +01:00
Alexandre SPANGARO
2af5a71c91 NEW Invoice - List - use select2 multiselect for status (#36834)
* NEW Invoice - List - use select2 multiselect for status

* Optimize

* CI

* CI

* Review

* Duplicate line and last problem

* CI

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-29 23:01:26 +01:00
Charlène Benke
a1662ed122 Add api document management for holiday (#36915)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-29 22:55:38 +01:00
Lucas Marcouiller
aa33f7c155 Fix duplicate button for delivery reciept creation on shipment object (#36914)
Co-authored-by: Lucas Marcouiller <lmarcouiller@dolicloud.com>
2026-01-29 22:55:02 +01:00
Laurent Destailleur
be86aa3c37 CI 2026-01-29 19:21:34 +01:00
Laurent Destailleur
16bdaa5b50 Test without file list 2026-01-29 19:09:57 +01:00
Laurent Destailleur
f30acef13a Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-29 16:48:26 +01:00
Laurent Destailleur
bb833f7641 CI 2026-01-29 15:33:02 +01:00
Laurent Destailleur
225eda7d18 CI 2026-01-29 15:30:30 +01:00
Laurent Destailleur
75ae360898 Fix type 2026-01-29 15:20:52 +01:00
Laurent Destailleur
0e4243a994 Debug v23 2026-01-29 15:13:29 +01:00
Laurent Destailleur
07a2920ef6 css 2026-01-29 15:08:54 +01:00
Zakaria Boushaba
252ac1e008 NEW: Display thirdparty name with ref in supplier orders linked objects (#36952)
Co-authored-by: Zakaria Boushaba <z.boushaba@vold.africa>
2026-01-29 14:55:44 +01:00
Thatoo
eed9d743c1 [database] Minimum amount and subscription's amount formula description (#37021)
* Remove jstz.min.js from JavaScript array (#37017)

jstz.min.js was deleted in 5599ac733b

* prevent ST_AsWKT() (#37013)

* prevent ST_AsWKT()

* Update commonobject.class.php

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>

* css

* Update llx_adherent_type.sql

add minimumamount and amountformuladescription rows

* Update 22.0.0-23.0.0.sql

add minimumamount and amountformuladescription column

---------

Co-authored-by: hansemschnokeloch <hansemschnokeloch@users.noreply.github.com>
Co-authored-by: atm-jonathan <146709163+atm-jonathan@users.noreply.github.com>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-29 14:46:57 +01:00
Laurent Destailleur
416370eddf Fix label of dispute 2026-01-29 13:44:25 +01:00
Charlène Benke
d9910be2ea NEW allow to disable freezone product on takepos (#37004)
* allow to disable freezone product on takepos

* Conditionally add FreeZone product to menus

* Add NoFreeZoneProduct language entry

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-29 13:33:16 +01:00
Laurent Destailleur
8abe26fde8 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-29 13:32:01 +01:00
Laurent Destailleur
e4d4f65b27 Fix syntax error 2026-01-29 13:31:35 +01:00
Laurent Destailleur
2b1a2e1357 Debug v24 2026-01-29 13:18:03 +01:00
Laurent Destailleur
a746d9b122 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-29 13:14:33 +01:00
Laurent Destailleur
c1456e9db9 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-29 13:14:14 +01:00
sonikf
48791de235 MCP server sql part (#37025)
* Create llx_ai_request_log.sql

* Create llx_ai_request_log.key.sql

* Update 23.0.0-24.0.0.sql

* Update llx_ai_request_log.sql

* Update 23.0.0-24.0.0.sql

* Remove foreign key constraint from llx_ai_request_log

Removed foreign key constraint for fk_user in llx_ai_request_log.

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-29 13:13:52 +01:00
Laurent Destailleur
285371f49e Debug v23 - fix code for rounding 2026-01-29 13:01:49 +01:00
Laurent Destailleur
ac8c35fa9d Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-29 12:32:03 +01:00
Laurent Destailleur
cde20fd1b9 CI 2026-01-29 12:31:55 +01:00
hansemschnokeloch
0e86d0c33a Populate openid data from wellknow url (#37023)
* Delete inexistant file

File jstz.min.js was deleted in
5599ac733b

* Populate openid parameters from wellknow url
2026-01-29 12:09:53 +01:00
Laurent Destailleur
758ee4bef7 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-29 11:28:53 +01:00
Laurent Destailleur
5cf7b54c41 More robust phpunit 2026-01-29 11:25:33 +01:00
Laurent Destailleur
234607a3dd Log 2026-01-29 11:00:43 +01:00
Laurent Destailleur
c23b58d416 Merge manually changes from #37012 that seems good. 2026-01-29 10:56:26 +01:00
Laurent Destailleur
ca017aa342 Debug v23 2026-01-29 10:55:21 +01:00
Laurent Destailleur
c07ac38ddb Fix test 2026-01-29 10:31:49 +01:00
Laurent Destailleur
183451c607 Clean code 2026-01-29 09:56:10 +01:00
Laurent Destailleur
aa451769ce Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-28 19:47:35 +01:00
Laurent Destailleur
ffc5ee41f9 ci 2026-01-28 19:47:23 +01:00
MDW
ec69a624e0 qual: Update french texts (comments) to english (#37009)
* qual: Update french texts (comments) to english

* Qual: Update comment to english in card-rec.php and card.php

Translation of comments in the files card-rec.php and card.php.

* Qual: Translate comments to English

* Qual: Translate comments to English

* Fix space into tab

* Fix spelling

* Qual: Translate comments to English

* Update website.php

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-28 19:34:12 +01:00
Laurent Destailleur
28925a4fa1 css 2026-01-28 19:19:59 +01:00
Laurent Destailleur
42751b532e ci 2026-01-28 19:06:13 +01:00
Laurent Destailleur
3a80f4296f ci 2026-01-28 19:00:46 +01:00
Laurent Destailleur
863b5e4303 CI 2026-01-28 18:55:29 +01:00
Laurent Destailleur
de7190eb24 CI 2026-01-28 18:41:58 +01:00
Laurent Destailleur
72a13b8586 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-28 18:37:02 +01:00
Laurent Destailleur
2ed9107dc0 Try to fix phan 2026-01-28 18:32:27 +01:00
atm-jonathan
65c38c92fb prevent ST_AsWKT() (#37013)
* prevent ST_AsWKT()

* Update commonobject.class.php

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-28 18:21:50 +01:00
atm-jonathan
d9ee7a6b5e prevent ST_AsWKT() (#37013)
* prevent ST_AsWKT()

* Update commonobject.class.php

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-28 18:21:32 +01:00
hansemschnokeloch
192ac39831 Remove jstz.min.js from JavaScript array (#37017)
jstz.min.js was deleted in 5599ac733b
2026-01-28 18:01:39 +01:00
hansemschnokeloch
4682a9bbfa Remove jstz.min.js from JavaScript array (#37017)
jstz.min.js was deleted in 5599ac733b
2026-01-28 18:01:17 +01:00
hansemschnokeloch
4f2d91d30b Fix typo in phpstan.neon.dist for isset() rule (#37018)
See https://github.com/Dolibarr/dolibarr/actions/runs/21444577128/job/61756970301?pr=37017
2026-01-28 18:00:32 +01:00
Laurent Destailleur
6323e09ba9 CI 2026-01-28 17:59:21 +01:00
Laurent Destailleur
0ccb67c2ef CI 2026-01-28 17:35:00 +01:00
Laurent Destailleur
fdaff88ff7 CI 2026-01-28 17:13:30 +01:00
Laurent Destailleur
49589ab9b1 Trans 2026-01-28 17:11:30 +01:00
Laurent Destailleur
568e69d537 CI 2026-01-28 17:03:52 +01:00
Laurent Destailleur
2890d4a196 CI 2026-01-28 16:55:01 +01:00
Laurent Destailleur
35305eb56e CI 2026-01-28 16:52:52 +01:00
Laurent Destailleur
0ccc9c2802 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into
develop
2026-01-28 16:23:07 +01:00
Laurent Destailleur
71cb371a1a Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-28 16:21:37 +01:00
Laurent Destailleur
9c832c58ad Exclude non interesting warning 2026-01-28 16:21:24 +01:00
Frédéric FRANCE
11c2feb486 NEW add image format avif (#37014)
* add format avif

* Update functions.lib.php
2026-01-28 16:19:01 +01:00
Lucas Marcouiller
27db2c8169 NEW add import of leave balance (Implementation) (#37011)
* New add import Leave Balance

* add eof

* Update modHoliday.class.php

---------

Co-authored-by: Lucas Marcouiller <lmarcouiller@dolicloud.com>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-28 16:16:20 +01:00
Braito
d3bb30c1d5 Improve OAuth HTTP error details (#36951)
Keep throwing TokenResponseException on HTTP 4xx/5xx while also capturing the response body (ignore_errors) to include a short snippet for admins.

Co-authored-by: caminotravelcenter <caminotravelcenter@localhost>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-28 15:56:01 +01:00
Laurent Destailleur
882200d897 Fix CI 2026-01-28 15:24:31 +01:00
Laurent Destailleur
fa800c532a ci 2026-01-28 15:23:06 +01:00
Laurent Destailleur
2977297582 Doc 2026-01-28 15:21:46 +01:00
Alexandre SPANGARO
58709579cc NEW Add new EUID number (#36997) 2026-01-28 15:18:43 +01:00
Laurent Destailleur
f403a0c705 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-28 15:07:27 +01:00
Laurent Destailleur
06e328eb0b Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-28 15:06:59 +01:00
Laurent Destailleur
afc22d2ba0 CI 2026-01-28 15:06:40 +01:00
Frédéric FRANCE
1819296689 fix phan (#37008)
PhanTypeMismatchArgumentNullable Argument 3 ($txt) is $productlot->batch of type ?string but \TCPDF::MultiCell() takes string defined at htdocs/includes/tecnickcom/tcpdf/tcpdf.php:5871 (expected type to be non-nullable)
2026-01-28 15:04:49 +01:00
Laurent Destailleur
8710651e45 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-28 15:04:14 +01:00
Laurent Destailleur
1bcc8e7fbd CI 2026-01-28 15:04:03 +01:00
Frédéric FRANCE
35b74ef7d6 fix phan (#37007) 2026-01-28 14:58:32 +01:00
Laurent Destailleur
3646b8cbe7 Try to fix CI 2026-01-28 14:58:18 +01:00
Laurent Destailleur
f23394dd53 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-28 14:57:28 +01:00
Laurent Destailleur
18e7d44790 CI 2026-01-28 14:54:40 +01:00
Laurent Destailleur
67fe092db0 Fix error message 2026-01-28 12:55:15 +01:00
Laurent Destailleur
a02cf18703 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-01-28 12:51:14 +01:00
Laurent Destailleur
62fe933b79 Doc 2026-01-28 12:50:39 +01:00
Laurent Destailleur
cbc64dfcbf Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-01-27 23:29:29 +01:00
Laurent Destailleur
47f8bec9ce Better error management 2026-01-27 23:28:49 +01:00
Laurent Destailleur
abb195ff68 Log 2026-01-27 23:04:33 +01:00
Laurent Destailleur
84ef61596d Better log 2026-01-27 23:02:53 +01:00
MDW
58ee81186f Qual: Update Phan baseline.txt with reduced issue counts (#36996)
This commit updates the Phan baseline.txt file.
2026-01-27 17:56:36 +01:00
Lucas Marcouiller
8d6e02c373 New import Leave Balance (Datastructure) (#37001)
* New import Leave Balance (Datastructure)

* fix

---------

Co-authored-by: Lucas Marcouiller <lmarcouiller@dolicloud.com>
2026-01-27 17:55:23 +01:00
Laurent Destailleur
0a98a5ca44 Doc 2026-01-27 17:39:02 +01:00
Laurent Destailleur
050f3ec78a Debug v23 2026-01-27 16:52:49 +01:00
Laurent Destailleur
812ea8f66f Debug v23 2026-01-27 16:23:39 +01:00
Laurent Destailleur
cd0b8ceab5 Debug v23 2026-01-27 16:21:35 +01:00
Laurent Destailleur
4017f8166e Doc 2026-01-27 14:47:04 +01:00
Laurent Destailleur
2d4e09b519 Fix trans and warning 2026-01-27 14:26:39 +01:00
Laurent Destailleur
08bf5af5d4 Default value 2026-01-27 13:46:35 +01:00
Laurent Destailleur
3ff33915c0 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-27 01:15:58 +01:00
Laurent Destailleur
6808e132f3 WIP LNE 2026-01-27 01:15:30 +01:00
Laurent Destailleur
97b7e52a97 Add the registration page 2026-01-27 01:13:22 +01:00
Laurent Destailleur
70089d2e4d Prepare v23 2026-01-26 22:38:38 +01:00
Laurent Destailleur
1212f640c0 Trans 2026-01-26 21:41:02 +01:00
Laurent Destailleur
8fbb1afae9 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-26 20:36:29 +01:00
Laurent Destailleur
48f067fdfc Set default value to on 2026-01-26 20:09:10 +01:00
Laurent Destailleur
5efcd7652f Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-26 19:35:29 +01:00
Laurent Destailleur
4224c9fc05 Merge branch '22.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-01-26 19:34:10 +01:00
Laurent Destailleur
b623ea1f57 Merge branch '21.0' of git@github.com:Dolibarr/dolibarr.git into 22.0 2026-01-26 19:22:43 +01:00
Laurent Destailleur
360718fa7b Merge branch '20.0' of git@github.com:Dolibarr/dolibarr.git into 21.0 2026-01-26 19:19:13 +01:00
Laurent Destailleur
c6a398639c Merge branch '19.0' of git@github.com:Dolibarr/dolibarr.git into 20.0 2026-01-26 19:17:02 +01:00
Laurent Destailleur
c933e4a25a Merge branch '19.0' of git@github.com:Dolibarr/dolibarr.git into 19.0 2026-01-26 19:05:17 +01:00
Laurent Destailleur
449870d347 Merge branch '18.0' of git@github.com:Dolibarr/dolibarr.git into 19.0 2026-01-26 19:05:09 +01:00
Laurent Destailleur
bf09f22239 Merge branch '18.0' of git@github.com:Dolibarr/dolibarr.git into 18.0 2026-01-26 18:58:35 +01:00
Laurent Destailleur
5595cdbb25 Merge branch '17.0' of git@github.com:Dolibarr/dolibarr.git into 18.0 2026-01-26 18:58:26 +01:00
Laurent Destailleur
dece1bc0f7 Merge branch '16.0' of git@github.com:/Dolibarr/dolibarr.git into 17.0 2026-01-26 18:57:53 +01:00
Laurent Destailleur
a0e2235adf Merge branch '15.0' of git@github.com:Dolibarr/dolibarr.git into 16.0 2026-01-26 18:56:40 +01:00
Laurent Destailleur
bec138412b Merge branch '14.0' of git@github.com:Dolibarr/dolibarr.git into 15.0 2026-01-26 18:56:02 +01:00
Laurent Destailleur
299380057b Debug v23 2026-01-26 18:41:07 +01:00
Braito
9ab11b497e FIX|Fix supplier payment presend mail/PDF (#36939)
- Keep the presend form open after applying an email template.

- Use getDolGlobalString('SUPPLIER_PAYMENT_ADDON_PDF') (no direct ->global access).

- Ensure a PDF model is selected (fallback to first available or standard_supplierpayment) so receipt generation/attachment works.

Signed-off-by: Camino Travel Center <noreply@caminotravelcenter.com>
Co-authored-by: Camino Travel Center <noreply@caminotravelcenter.com>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-26 18:23:01 +01:00
Laurent Destailleur
c1cb839d7d ci 2026-01-26 18:21:49 +01:00
Laurent Destailleur
801fcfbf34 CI 2026-01-26 18:07:51 +01:00
Laurent Destailleur
375fb90bed ci 2026-01-26 18:00:00 +01:00
Laurent Destailleur
45b15db4c6 ci 2026-01-26 17:37:31 +01:00
Laurent Destailleur
d3a1bd58eb Code comment 2026-01-26 16:19:45 +01:00
Francis Appels
8c179fad46 FIX: #36493 (#36853) for having parent kit stock changes you need to set PRODUIT_SOUSPRODUITS_ALSO_ENABLE_PARENT_STOCK_MOVE constant. (#36970)
* FIX: #36493 and #36853 Disable parent kit stock change should be optional.

* Revert "FIX: #36493 and #36853 Disable parent kit stock change should be optional."

This reverts commit 09bc922e2f.

* White space to have title in changelog
2026-01-26 16:14:21 +01:00
Laurent Destailleur
00e19d474e Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-26 16:11:36 +01:00
Laurent Destailleur
fab5a769e4 Fix CI 2026-01-26 16:11:21 +01:00
Vincent Penel
ba3df067f3 Automatically send the invoice generated from a template DB (#36947)
* Update DB

* Add flag auto send

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-26 15:53:45 +01:00
Laurent Destailleur
22ffe7f645 Fix ci 2026-01-26 15:47:04 +01:00
Laurent Destailleur
0b7dfad2cf Code comment 2026-01-26 15:21:50 +01:00
Laurent Destailleur
7e29718148 CSS v23 2026-01-26 15:17:28 +01:00
Laurent Destailleur
1db633ee43 Debug v23 2026-01-26 15:09:45 +01:00
Laurent Destailleur
e6fc383355 CSS v23 2026-01-26 15:06:18 +01:00
Laurent Destailleur
3e2217c47f Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-01-26 14:32:40 +01:00
Laurent Destailleur
35847a94f0 Debug v23 2026-01-26 14:32:30 +01:00
Laurent Destailleur
28ce9c657c Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-26 11:58:08 +01:00
Laurent Destailleur
a3c8a832a2 ci 2026-01-26 11:57:58 +01:00
Alexandre SPANGARO
e3323c3ff1 Remove message for Invoice Situation level 2 - Need more test (#36987) 2026-01-26 11:49:46 +01:00
Alexandre SPANGARO
7efb82fc79 Update VAT rate by default (#36988)
* Update VAT rate for Nederland

* Update VAT rate for Italy
2026-01-26 11:48:34 +01:00
Frédéric FRANCE
8ef582eaf5 display color selected in dict (#36500)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-25 16:16:47 +01:00
Laurent Destailleur
98cba6a94a Trans 2026-01-25 16:01:31 +01:00
noec764
4b2ca3bd28 FIX: Add missing event counter on Agenda tab (#36972)
Co-authored-by: Noé <noe@scopen.fr>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-25 15:55:05 +01:00
Laurent Destailleur
3822ae8e77 Debug v23 2026-01-25 15:52:25 +01:00
Laurent Destailleur
619fb3a590 Debug v23 2026-01-25 15:49:44 +01:00
Laurent Destailleur
156828ac1f Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-25 15:35:34 +01:00
Laurent Destailleur
57950b25fd Trans 2026-01-25 15:33:54 +01:00
Laurent Destailleur
e3eb12c9d7 Debug v23 - Fix trans 2026-01-25 15:33:19 +01:00
Laurent Destailleur
6318b1a836 Clean code 2026-01-25 14:54:56 +01:00
Laurent Destailleur
e79c8d0b87 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-25 14:20:52 +01:00
Laurent Destailleur
1da17070f5 Code comment 2026-01-25 14:19:59 +01:00
Alexandre SPANGARO
c1ab24f227 FIX #36980 Accounting - Error on create return operation (#36982) 2026-01-25 14:14:24 +01:00
Alexandre SPANGARO
82cf80cbc3 Move module asset to stable (#36983) 2026-01-25 14:13:09 +01:00
Joachim Kueter
685ec96807 FIX #36961 - not showing financial data related to task times (#36963)
* FIX #36961 - not showing financial data related to task times

see detailed description in issue #36961

when users have minimal rights to just record their task times, they should not see the calculated hourly rates

* Minor change

* Update element.php

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-25 14:12:40 +01:00
Braito
388c25f588 Fix SMTP OAuth refresh scopes (#36950)
Recreate the OAuth service with its configured scopes when refreshing an access token (required by some providers like Microsoft v2).

Also keep the previous refresh token when the refreshed token does not include one (e.g. Google returns it only once).

Co-authored-by: caminotravelcenter <caminotravelcenter@localhost>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-24 20:13:35 +01:00
Laurent Destailleur
57be3472a2 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-24 20:13:16 +01:00
Braito
3a61d3f2c9 Fix SMTP OAuth refresh scopes (#36950)
Recreate the OAuth service with its configured scopes when refreshing an access token (required by some providers like Microsoft v2).

Also keep the previous refresh token when the refreshed token does not include one (e.g. Google returns it only once).

Co-authored-by: caminotravelcenter <caminotravelcenter@localhost>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-24 20:13:06 +01:00
Laurent Destailleur
7f13a3035c Lazy load of substitution array can accept arrays. 2026-01-24 19:43:12 +01:00
Laurent Destailleur
06e2e60364 Fix ci 2026-01-24 19:24:19 +01:00
Laurent Destailleur
6b8214ea6a Fix ci 2026-01-24 18:07:53 +01:00
Laurent Destailleur
27026eced9 Fix ci 2026-01-24 18:00:45 +01:00
Laurent Destailleur
c8e755e5a8 ci 2026-01-24 17:53:57 +01:00
Laurent Destailleur
a452dfb596 FIX substitution of vars in donation templates 2026-01-24 17:41:06 +01:00
Laurent Destailleur
101b0d7e12 FIX substitution of vars in donation templates 2026-01-24 17:40:22 +01:00
Anthony Berton
8dafeb0984 FIX - Save param SYSTEMTOOLS_MYSQLDUMP and SYSTEMTOOLS_POSTGRESQLDUMP (#36791)
* FIX - Save param SYSTEMTOOLS_MYSQLDUMP and SYSTEMTOOLS_POSTGRESQLDUMP

* Fix copyright formatting for Anthony Berton

---------

Co-authored-by: Anthony Berton <anthony.berton@bb2a.fr>
2026-01-24 16:28:08 +01:00
Anthony Berton
adc4405d98 FIX - Select warehouse on propal create (#36745)
* FIX - Select warehouse on propal create

* Solve CI Errror

* clean

* clean

---------

Co-authored-by: Anthony Berton <anthony.berton@bb2a.fr>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-24 16:26:14 +01:00
Anthony Berton
9f972a7b4f FIX - Select warehouse on propal list (#36746)
* FIX - Select warehouse on propal list

* Solve CI error

---------

Co-authored-by: Anthony Berton <anthony.berton@bb2a.fr>
2026-01-24 16:23:36 +01:00
Laurent Destailleur
bb28eed850 Fix ci 2026-01-24 16:15:31 +01:00
Laurent Destailleur
88a1b168ad Fix ci 2026-01-24 16:13:00 +01:00
Laurent Destailleur
1ddbaf1181 Debug v23 - navigation into fiscal years 2026-01-24 15:57:40 +01:00
Laurent Destailleur
1eb0970e11 Fix ci 2026-01-24 15:10:33 +01:00
Laurent Destailleur
c134da09ea Debug v23 2026-01-24 14:53:17 +01:00
Alexandre SPANGARO
17c50b10a3 Fix CSS (#36977)
* Fix CSS

* Hide on smartphone

* Same on journal view

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-24 14:02:21 +01:00
Laurent Destailleur
023c7f4d1b Fix ci 2026-01-24 13:58:07 +01:00
Laurent Destailleur
ea69506e53 Fix code action 2026-01-24 13:54:57 +01:00
Laurent Destailleur
7b17ceeefa Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-24 13:54:37 +01:00
Laurent Destailleur
e18220e8eb Fix code action 2026-01-24 13:54:10 +01:00
Laurent Destailleur
ed84b59f22 Fix ci 2026-01-24 13:43:20 +01:00
Charlène Benke
0e51a7a529 Add source parameter to getContacts on api interventional (#36931)
Added a new parameter 'source' to the getContacts method to filter contacts based on their source (internal or external). Updated the method to handle the new parameter appropriately.

propose to add this feature on all getContacts method.

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-24 13:42:54 +01:00
Laurent Destailleur
0029d891a6 Fix ci 2026-01-24 12:46:32 +01:00
Laurent Destailleur
b6c9c42144 Fix ci 2026-01-24 12:43:14 +01:00
Alexandre SPANGARO
ee32411d6a FIX Contract - Wrong button to edit contract odt path (#36965)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-24 00:00:14 +01:00
Laurent Destailleur
237d623d31 Try fix ci 2026-01-23 22:53:22 +01:00
Laurent Destailleur
639e75b8ae Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-23 22:44:55 +01:00
Laurent Destailleur
455f91c215 Debug v23 2026-01-23 22:44:34 +01:00
Laurent Destailleur
eed0f219a1 Fix ci 2026-01-23 22:43:56 +01:00
Laurent Destailleur
ebbaeb5129 Clean code 2026-01-23 22:34:17 +01:00
Laurent Destailleur
b79814f864 Debug v23 - Stock management on parent kit does not work yet (for example when creating/closing shipment). Edit interface to be more clear with that. 2026-01-23 22:32:32 +01:00
Laurent Destailleur
7842897373 Merge branch '22.0' of git@github.com:Dolibarr/dolibarr.git into 22.0 2026-01-23 20:45:31 +01:00
Laurent Destailleur
364a3d3614 Merge branch '22.0' of git@github.com:Dolibarr/dolibarr.git into 22.0 2026-01-23 20:44:18 +01:00
NicolasL-SCOPEN
63fd9d326d Fix: subtotal lines from order to purchase order break lines on new document (#36973)
* Added a fix to prevent origin subtotal order lines from breaking purchase order lines

* Refactored code and fixed formating
2026-01-23 19:53:30 +01:00
Laurent Destailleur
2fc7d78709 Debug v23 2026-01-23 19:18:13 +01:00
Laurent Destailleur
5e176ab605 Fix count into badge 2026-01-23 19:14:45 +01:00
Laurent Destailleur
de877188c1 ci 2026-01-23 18:48:57 +01:00
Laurent Destailleur
818dea526b ci 2026-01-23 18:46:38 +01:00
Laurent Destailleur
4c07ef386e Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-23 18:44:37 +01:00
Laurent Destailleur
61c913dff0 Fix ci 2026-01-23 18:43:54 +01:00
Laurent Destailleur
bf9f0e6eb8 Fix ci 2026-01-23 18:40:36 +01:00
Laurent Destailleur
e1b48219df Fix ci 2026-01-23 18:37:58 +01:00
Laurent Destailleur
daae0f6f82 Fix select resource 2026-01-23 18:34:31 +01:00
Charlène Benke
42d270d3df Change resource selection index from 1 to 2 (#36955)
fix warning causing by returning array (1 to 2) and suppress search button (0 to 2)
2026-01-23 18:34:26 +01:00
Laurent Destailleur
b75383670c Fix select resource 2026-01-23 18:33:45 +01:00
Charlène Benke
4f15a2e408 Change resource selection index from 1 to 2 (#36955)
fix warning causing by returning array (1 to 2) and suppress search button (0 to 2)
2026-01-23 18:32:34 +01:00
noec764
c19e4e33cb FIX: Massaction Create Bills from expedition (#36958)
Co-authored-by: Noé <noe@scopen.fr>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-23 18:29:12 +01:00
Laurent Destailleur
037ba0212a Fix label of vdp report 2026-01-23 18:28:13 +01:00
Laurent Destailleur
a92cd402d6 Fix ci 2026-01-23 18:21:10 +01:00
Laurent Destailleur
21102855a7 Fix french comment 2026-01-23 18:16:53 +01:00
Laurent Destailleur
6d03ec417a Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-23 18:08:12 +01:00
Laurent Destailleur
237d8d5b90 ci 2026-01-23 18:07:16 +01:00
Alexandre SPANGARO
fd44a5f0e8 NEW - VAT Report - Add button to collapse / expand all rates (#36946)
* NEW - VAT Report - Add button to collapse / expand all rates

* Fix CI

* CI

* Update disposition

* Escape HTML tags in URL parameter handling

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-23 17:55:24 +01:00
Joachim Kueter
835d3811a4 FIX #36960 - User can access some data (product price, invoice amount) without having the respective rights (#36962)
* FIX #36960 - User can access some data (product price, invoice amount) without having the respective rights

See detailed description in issue #36960

Product price and invoice amount was shown to users without checking right to read.

* removed white space

* Minor change

to trigger checks again

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-23 17:55:03 +01:00
Laurent Destailleur
ec04a1bbbd Fix ci 2026-01-23 17:52:27 +01:00
Laurent Destailleur
35f3c56b96 Fix ci 2026-01-23 17:49:37 +01:00
Laurent Destailleur
39d39f475d Merge branch '22.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-01-23 17:46:38 +01:00
Laurent Destailleur
7c9eb40000 Merge branch '21.0' of git@github.com:Dolibarr/dolibarr.git into 22.0 2026-01-23 17:15:26 +01:00
Laurent Destailleur
f44dc26e63 Merge branch '20.0' of git@github.com:Dolibarr/dolibarr.git into 21.0 2026-01-23 17:14:48 +01:00
Laurent Destailleur
36b681153e Fix CI 2026-01-23 17:14:17 +01:00
Zakaria Boushaba
6a6994cbdc fix: exclude special lines from supplier order dispatch count (#36964)
Co-authored-by: Zakaria Boushaba <z.boushaba@vold.africa>
2026-01-23 16:57:49 +01:00
Zakaria Boushaba
ca56cbdaf7 fix: exclude special lines from supplier order dispatch count (#36964)
Co-authored-by: Zakaria Boushaba <z.boushaba@vold.africa>
2026-01-23 16:57:11 +01:00
Laurent Destailleur
059656b5ef Merge branch '22.0' of git@github.com:Dolibarr/dolibarr.git into 22.0 2026-01-23 16:56:00 +01:00
Laurent Destailleur
be0f368629 Fix CI 2026-01-23 16:55:48 +01:00
Lucas Marcouiller
efa4a27b2a Fix bad trans for member subscription on import (#36969)
* Fix bad trans for member subscription on import

* fix CI

---------

Co-authored-by: Lucas Marcouiller <lmarcouiller@dolicloud.com>
2026-01-23 16:52:44 +01:00
Lucas Marcouiller
4c0f567ced Fix email collector ticket fetch (#36968)
* Fix email collector ticket fetch

* fix CI

---------

Co-authored-by: Lucas Marcouiller <lmarcouiller@dolicloud.com>
2026-01-23 16:52:39 +01:00
Lucas Marcouiller
cc222b3ca7 Fix bad trans for member subscription on import (#36969)
* Fix bad trans for member subscription on import

* fix CI

---------

Co-authored-by: Lucas Marcouiller <lmarcouiller@dolicloud.com>
2026-01-23 16:51:57 +01:00
Lucas Marcouiller
1fd2674795 Fix email collector ticket fetch (#36968)
* Fix email collector ticket fetch

* fix CI

---------

Co-authored-by: Lucas Marcouiller <lmarcouiller@dolicloud.com>
2026-01-23 16:51:13 +01:00
Laurent Destailleur
081a1abbe8 Debug v23 2026-01-23 16:49:49 +01:00
Laurent Destailleur
ecee7722c5 Fix CSS 2026-01-23 16:31:51 +01:00
Laurent Destailleur
9a6f9c6190 Trans 2026-01-23 14:31:34 +01:00
Laurent Destailleur
3fc7f06a30 Fix CI 2026-01-23 13:46:42 +01:00
Laurent Destailleur
f848220c59 Clean code 2026-01-23 13:29:28 +01:00
Laurent Destailleur
35285756a9 Fix label 2026-01-22 16:42:23 +01:00
Laurent Destailleur
5e406a945b Fix message on button tooltip 2026-01-22 16:41:11 +01:00
Laurent Destailleur
882dc419d4 Label 2026-01-21 21:49:13 +01:00
Laurent Destailleur
669e2bd726 Need a label for autorecord stripe payouts 2026-01-21 21:48:28 +01:00
Laurent Destailleur
34a195c810 Fix label 2026-01-21 21:46:38 +01:00
Laurent Destailleur
0e960ea32d Fix round in stripe amount 2026-01-21 21:00:37 +01:00
Laurent Destailleur
4e9965ea70 Fix log 2026-01-21 19:19:57 +01:00
Laurent Destailleur
0ae23ec0d1 Fix log 2026-01-21 19:19:36 +01:00
Laurent Destailleur
585c4ae04e Log 2026-01-21 19:15:52 +01:00
Laurent Destailleur
ff1bf6b2df Add log 2026-01-21 18:47:04 +01:00
Laurent Destailleur
12ca0fc894 Debug v23 2026-01-21 18:27:18 +01:00
Laurent Destailleur
7ad0874162 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-21 18:23:15 +01:00
Laurent Destailleur
3cbe24ad8c Doc 2026-01-21 18:23:03 +01:00
Laurent Destailleur
a3e6bbb862 Code comment 2026-01-21 17:43:10 +01:00
Laurent Destailleur
1edf2a6ae1 ci 2026-01-21 14:30:04 +01:00
splohmer
f39ef3d5c7 FIX missmatch of permission check of button and action of cancel delivery note (expedition) (#36943)
In expedition/card.php there is the action "confirm_cancel" which checks for the right supprimer of expedition. The corresponding UI Button checks for creer of expedition. This means some people can see the button, but nothing happens when clicking on it (also no error message).
2026-01-21 14:25:40 +01:00
splohmer
508cf6fba9 FIX missmatch of permission check of button and action of cancel delivery note (expedition) (#36943)
In expedition/card.php there is the action "confirm_cancel" which checks for the right supprimer of expedition. The corresponding UI Button checks for creer of expedition. This means some people can see the button, but nothing happens when clicking on it (also no error message).
2026-01-21 14:25:24 +01:00
John BOTELLA
3a3a20e537 QUAL : remove PHP in JS CODE (#36473)
* New hooks and data for ajax getSupplier price

* Fix header

* Quality of code : remove PHP from js code part 02

* Quality of code : remove PHP from js code part 02

* Quality of code : remove PHP from js code part 02

* remove last php

* import last develop changes

* Update objectline_create.tpl.php

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-21 14:24:30 +01:00
Laurent Destailleur
e72345334a Fix ci 2026-01-21 13:40:25 +01:00
Laurent Destailleur
7f3a6a5a40 ci 2026-01-21 13:35:29 +01:00
Laurent Destailleur
b14bae17ae Fix ci 2026-01-21 13:22:02 +01:00
Laurent Destailleur
c89d710fdd Fix ci 2026-01-21 12:47:45 +01:00
Laurent Destailleur
a79d80e11a Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-21 12:45:03 +01:00
Laurent Destailleur
ad092a37f3 Fix ci 2026-01-21 12:44:12 +01:00
Laurent Destailleur
0daf289924 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-01-21 12:31:51 +01:00
Laurent Destailleur
d4602e6b6f Fix ci 2026-01-21 12:31:38 +01:00
Laurent Destailleur
d4030302c9 Comment 2026-01-21 12:29:49 +01:00
Lucas Marcouiller
7c533b7068 Fix email layout selector for product (#36948)
Co-authored-by: Lucas Marcouiller <lmarcouiller@dolicloud.com>
2026-01-21 12:28:05 +01:00
Laurent Destailleur
b0a67d5c4d Fix ci 2026-01-21 12:27:46 +01:00
Laurent Destailleur
fba2a97ab6 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into
develop
2026-01-21 12:16:44 +01:00
Laurent Destailleur
a2555bab6b Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-21 12:14:46 +01:00
Laurent Destailleur
eff943bbcf Fix false positive 2026-01-21 12:14:27 +01:00
Laurent Destailleur
068fdc9431 Debug v23 2026-01-21 12:02:13 +01:00
Laurent Destailleur
ec77531a2a Debug v23 2026-01-21 11:58:56 +01:00
Laurent Destailleur
70d7357128 Debug v23 2026-01-21 11:35:36 +01:00
Laurent Destailleur
f8d9a2e829 Fix css and responsive pb 2026-01-21 11:16:10 +01:00
Charlène Benke
47ae685061 NEW Update holiday class to handle date_create field (#36918)
* Update holiday class to handle date_create field

Add conditional logic to include date_create in SQL update.

* Update holiday.class.php

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-21 01:41:03 +01:00
Charlène Benke
9a75f66e29 NEW Can add date_create on expense report update (#36936)
* Add date_create on expense report update

* Update expensereport.class.php

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-21 01:39:46 +01:00
John BOTELLA
5672008258 FIX WebPortal responsive menu dropdown (#36937)
* Fix responsive menu dropdown

* Change comment from French to English

Updated comment to English for better clarity.

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-21 01:39:23 +01:00
Frédéric FRANCE
5ecc8fe61e add filter on product list (#36926)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-21 01:36:58 +01:00
Laurent Destailleur
7e17711871 Fix trans 2026-01-21 00:58:54 +01:00
Laurent Destailleur
b769c1a8b0 Fix css 2026-01-21 00:47:25 +01:00
Laurent Destailleur
01c2c563fb Fix css 2026-01-21 00:47:06 +01:00
Laurent Destailleur
c570b91c96 Debug 2026-01-21 00:36:37 +01:00
Laurent Destailleur
fb7232dc82 Doc 2026-01-21 00:33:24 +01:00
Laurent Destailleur
60dcff1475 Clean code 2026-01-21 00:31:08 +01:00
Laurent Destailleur
0698c3316b Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-21 00:10:40 +01:00
Laurent Destailleur
db49600983 Fix ci 2026-01-21 00:10:30 +01:00
Charlène Benke
33c51e3704 add holiday reference on user hr bank tabs (#36933) 2026-01-21 00:08:29 +01:00
Braito
8d388632cf fix(cron): clamp lastoutput and harden run_jobs (#36938)
* FIX|Fix Cron job lastoutput overflow

Clamp cronjob.lastoutput to MAXIMUM_LENGTH_FOR_LASTOUTPUT_FIELD in create/update to avoid SQL errors when output exceeds DB TEXT size.

Also harden run_jobs():
- jobtype=function: report lib/lang load failures into lastoutput/lastresult and parse params more reliably (comma + trim, supports "0").
- jobtype=command: mark run as failed when CLI is disabled, fall back to sys_get_temp_dir(), and report an explicit error if no temp dir can be resolved.

Signed-off-by: Camino Travel Center <noreply@caminotravelcenter.com>

* Update cronjob.class.php

---------

Signed-off-by: Camino Travel Center <noreply@caminotravelcenter.com>
Co-authored-by: Camino Travel Center <noreply@caminotravelcenter.com>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-20 23:53:29 +01:00
Laurent Destailleur
f8123ebc64 CSS 2026-01-20 23:49:36 +01:00
Laurent Destailleur
5e72196245 Fix link 2026-01-20 23:43:58 +01:00
Laurent Destailleur
106ffcfbd6 Fix legacy code 2026-01-20 23:35:41 +01:00
Laurent Destailleur
38f6c4bce1 Remove a TODO 2026-01-20 23:25:27 +01:00
Laurent Destailleur
53231470fc Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-20 23:16:38 +01:00
Laurent Destailleur
715aeb91d9 Fix CI 2026-01-20 23:16:24 +01:00
Frédéric FRANCE
d77fe3afe8 fix ci (#36942)
* fix ci

* Update contact.php
2026-01-20 23:07:24 +01:00
Laurent Destailleur
b93aacbba2 Fix CI 2026-01-20 17:39:40 +01:00
Laurent Destailleur
618ef9925b Fix CI 2026-01-20 17:36:38 +01:00
Laurent Destailleur
6549f135d1 FIX CI 2026-01-20 17:12:25 +01:00
Laurent Destailleur
8da132d4ce Fix CI 2026-01-20 17:04:07 +01:00
Laurent Destailleur
d8a146d6f3 Fix CI 2026-01-20 16:48:27 +01:00
Laurent Destailleur
a6c11e27b1 Fix CI 2026-01-20 16:46:14 +01:00
Laurent Destailleur
275b82e51e Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-20 14:57:32 +01:00
Laurent Destailleur
6f8a8834b8 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into
develop
2026-01-20 14:57:22 +01:00
Laurent Destailleur
9aa5bf4aef Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-01-20 14:54:01 +01:00
Laurent Destailleur
aee871f0b5 Debug v23 2026-01-20 14:53:50 +01:00
lvessiller-opendsi
d51a5a9068 FIX color of ajax on/off button on setup page (#36917)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-20 14:51:43 +01:00
Laurent Destailleur
4ee6eb2e2d Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-20 14:04:47 +01:00
Laurent Destailleur
7d13c12252 Fix CI 2026-01-20 14:01:09 +01:00
HENRY Florian
926ed04ebe fix: PHP fatal error on php 8.2 Unsupported operand types: string * string (#36930) 2026-01-20 13:58:17 +01:00
Alexandre SPANGARO
3913f4418e Asset - Simplify menu (#36911)
* Asset - Simplify menu

* Asset - Simplify menu

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-20 13:57:33 +01:00
Laurent Destailleur
ff4b7c54d8 Fix CI 2026-01-20 13:56:52 +01:00
Laurent Destailleur
1e8fdd41c9 Fix CI 2026-01-20 13:35:31 +01:00
Laurent Destailleur
7b9a485f17 Fix CI 2026-01-20 13:22:48 +01:00
Laurent Destailleur
8af405a3e8 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-20 12:36:29 +01:00
Laurent Destailleur
ae52d75335 NEW Can add more tags to default tags in dolPrintHTML 2026-01-20 12:30:08 +01:00
Vincent Penel
20dfc743e0 Update DB (#36925) 2026-01-20 11:36:00 +01:00
Alexandre SPANGARO
b2c5ee5c4a FIX Accountancy - Chart of account - Some problem on backtopage (#36910)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-20 11:35:02 +01:00
Laurent Destailleur
6571096107 Merge 2026-01-20 02:37:16 +01:00
Laurent Destailleur
99d1aad0b2 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-01-20 02:11:52 +01:00
Laurent Destailleur
cba8ccaa32 Fix PROPAL_ENABLE_NEGATIVE_QTY and ORDER_ENABLE_NEGATIVE_QTY 2026-01-20 02:11:14 +01:00
Laurent Destailleur
6e6779f401 Merge branch 'develop' of github.com:Dolibarr/dolibarr into develop 2026-01-20 00:30:09 +01:00
Laurent Destailleur
b79ade4c1f Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into
develop
2026-01-19 21:18:00 +01:00
Laurent Destailleur
61f90ab20c Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-19 21:16:07 +01:00
Laurent Destailleur
9c899899f3 Fix CI 2026-01-19 21:15:46 +01:00
Laurent Destailleur
3e3e2a3759 Fix CI 2026-01-19 21:06:51 +01:00
Frédéric FRANCE
3401bd6249 fetchAll ecm_files load extrafields (#36894) 2026-01-19 20:53:30 +01:00
Laurent Destailleur
92048de0f5 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-19 20:52:09 +01:00
Laurent Destailleur
8757990a52 Try to force phan version 2026-01-19 20:46:11 +01:00
ThomasNgr-OpenDSI
a025628c97 FIX concatenation of labels in extrafields (#36888)
IF:
- The extrafield is of type "Select from list"
- AND it would use a join as table
- AND the label would be a concatenation of fields from both tables
THEN, the EF value could not be displayed (showOutputField os showInputField).

example of syntax that would trigger this error : `commande c INNER JOIN llx_societe s ON s.rowid = c.fk_soc:s.nom|c.ref:c.rowid::`

This commit fixes this.
2026-01-19 20:36:37 +01:00
Laurent Destailleur
dec35ff489 Merge manually #36851 emailcollector phpimap in reply to oauth v22. 2026-01-19 20:33:47 +01:00
Laurent Destailleur
01e37657a6 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-19 19:48:50 +01:00
Laurent Destailleur
f7e688f580 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-19 19:48:43 +01:00
Laurent Destailleur
28cdf7d121 Close #36889 manually, too many conflict due to non atomic PR. 2026-01-19 19:47:36 +01:00
William Mead
566aec36c6 Added since tags to orders api PHPDoc (#36919) 2026-01-19 19:10:44 +01:00
Charlène Benke
eeaa02390e Rename expense report to holiday in API class (#36920) 2026-01-19 19:10:20 +01:00
Laurent Destailleur
2893311770 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-19 19:08:15 +01:00
Laurent Destailleur
9790bf61c6 Fix CI 2026-01-19 19:08:02 +01:00
Laurent Destailleur
3f14dc0562 Fix CI 2026-01-19 19:07:29 +01:00
Laurent Destailleur
1175f20f97 Fix CI 2026-01-19 19:07:14 +01:00
Laurent Destailleur
13d872a265 Fix warning 2026-01-19 18:39:34 +01:00
Laurent Destailleur
94217e800d Fix CI 2026-01-19 18:28:06 +01:00
Laurent Destailleur
3b23e76237 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-19 18:18:27 +01:00
Laurent Destailleur
7d62a04fda Fix CI 2026-01-19 18:16:57 +01:00
Laurent Destailleur
6cde33dfd1 Try to fix ci 2026-01-19 18:00:48 +01:00
Laurent Destailleur
07d10fdb22 CI 2026-01-19 17:36:11 +01:00
Laurent Destailleur
e00086d057 Fix ci 2026-01-19 17:34:05 +01:00
Laurent Destailleur
7b12b10f9b Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-19 17:31:48 +01:00
Laurent Destailleur
68d92e59d2 Fix CI 2026-01-19 17:29:02 +01:00
Laurent Destailleur
e3d1e21df3 Fix ci 2026-01-19 17:21:45 +01:00
Laurent Destailleur
8dd729af9a Fix id ci 2026-01-19 17:18:57 +01:00
Laurent Destailleur
9857539204 Fix ci 2026-01-19 17:11:42 +01:00
Laurent Destailleur
76a2945d88 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-19 17:06:06 +01:00
Laurent Destailleur
abb256212a Ci 2026-01-19 17:05:01 +01:00
Laurent Destailleur
fd1b690813 ci 2026-01-19 16:53:17 +01:00
Laurent Destailleur
05f8d70c39 ci 2026-01-19 16:46:00 +01:00
Laurent Destailleur
e6c735b66e cs 2026-01-19 16:42:25 +01:00
Laurent Destailleur
d4860519a6 ci 2026-01-19 16:36:47 +01:00
Laurent Destailleur
af24facf4a Ci 2026-01-19 16:20:55 +01:00
Laurent Destailleur
2a2bc335c8 Fix ci 2026-01-19 16:14:20 +01:00
Laurent Destailleur
b12b20221b Fix CI 2026-01-19 16:10:30 +01:00
Laurent Destailleur
0fb5a9b3e9 Fix CI 2026-01-19 16:05:31 +01:00
Laurent Destailleur
b46b8b4476 Fix shellcheck 2026-01-19 16:00:11 +01:00
Laurent Destailleur
22283af99c Fix CI 2026-01-19 15:55:51 +01:00
Laurent Destailleur
6a103a9ac9 Fix CI 2026-01-19 15:50:45 +01:00
Laurent Destailleur
3043cf65d1 Fix CI 2026-01-19 15:48:01 +01:00
Laurent Destailleur
99f5ede0ec Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-19 15:39:48 +01:00
Laurent Destailleur
5ab2014e09 Try to run phan and phpstan on modified files only 2026-01-19 15:34:28 +01:00
Laurent Destailleur
5c63541097 Fix CI 2026-01-19 15:12:57 +01:00
Laurent Destailleur
99c7effb9b Fix civility_code vs civility_id 2026-01-19 15:04:13 +01:00
Laurent Destailleur
e61c8989f3 Ignore phan false positive 2026-01-19 14:55:37 +01:00
Laurent Destailleur
b304e13499 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into
develop
2026-01-19 14:50:31 +01:00
Laurent Destailleur
3a01cd9002 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-19 14:48:21 +01:00
Laurent Destailleur
60fbdb1bc9 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-19 14:48:06 +01:00
Laurent Destailleur
e52bd93ce0 Fix #36896 2026-01-19 14:46:58 +01:00
boudet jean pascal
f9c8164e57 FIX: [BOM] Reset date_creation when cloning a BOM" -m "The creation date of the source object was preserved. This fix ensures the new object gets the current timestamp. (#36898)
Co-authored-by: jpb <jean-pascal.boudet@atm-consulting>
2026-01-19 14:38:13 +01:00
Laurent Destailleur
f4693352ca Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-01-19 14:36:39 +01:00
Laurent Destailleur
a85e25c807 Fix warning 2026-01-19 14:36:29 +01:00
Laurent Destailleur
6ed576bc9f Debug v23 2026-01-19 14:28:33 +01:00
atm-lucas
39d30a23fe Duplicates in the result of the SQL query (#36913) 2026-01-19 13:44:09 +01:00
Laurent Destailleur
6a5a8ad951 FIX #36902 2026-01-19 13:36:48 +01:00
Charlène Benke
76399298dc fix field name for create update payement (#36903) 2026-01-19 13:27:50 +01:00
Charlène Benke
b79aaf99d7 Add setpaid call on api expensereport (#36904) 2026-01-19 13:27:22 +01:00
Laurent Destailleur
27aa36b537 Fix div balance 2026-01-19 03:50:15 +01:00
Laurent Destailleur
a7e54c5e36 Better title for stipe pages 2026-01-19 01:17:36 +01:00
Laurent Destailleur
f2455704d2 NEW Button to close/reopen bank account status 2026-01-19 01:07:33 +01:00
Laurent Destailleur
354559aa19 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-19 00:27:30 +01:00
Laurent Destailleur
820f3f44c7 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-19 00:26:48 +01:00
Laurent Destailleur
a42ce189ea Trans 2026-01-19 00:22:15 +01:00
Laurent Destailleur
a9abf5c9f2 Trans 2026-01-19 00:21:31 +01:00
Laurent Destailleur
47c4ebeb14 WIP Upload file with AI parsing 2026-01-18 21:29:19 +01:00
Laurent Destailleur
e26c965b7c Doc 2026-01-18 14:23:52 +01:00
Laurent Destailleur
3ba8daab0c Work on AI doc parsing protopype 2026-01-18 14:21:09 +01:00
Laurent Destailleur
f99df3ddc8 Fix position of html components 2026-01-17 18:32:25 +01:00
Laurent Destailleur
2e3d1b0ccd CSS 2026-01-17 16:03:14 +01:00
Laurent Destailleur
5d18db5aea Disable remote access in test 2026-01-16 18:15:51 +01:00
Laurent Destailleur
ec27124e24 Log message 2026-01-16 18:08:48 +01:00
Laurent Destailleur
c3e043d656 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-16 16:51:37 +01:00
Laurent Destailleur
f94e1c24fc Fix status of dispute 2026-01-16 16:51:15 +01:00
Laurent Destailleur
06a5ea19c4 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-16 16:43:45 +01:00
Laurent Destailleur
062f6d18a4 Fix label in list 2026-01-16 16:43:00 +01:00
Laurent Destailleur
3cc2f1b146 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-16 16:37:56 +01:00
Laurent Destailleur
8b79913f6f Fix no translate 2026-01-16 16:36:36 +01:00
Laurent Destailleur
7dee283762 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into
develop
2026-01-16 16:34:32 +01:00
Laurent Destailleur
949c111f68 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-16 16:32:40 +01:00
Laurent Destailleur
d953f0caf8 Fix color of status 2026-01-16 16:29:26 +01:00
Laurent Destailleur
a7d0206156 Debug v23 - Fix label of dispute status 2026-01-16 16:28:07 +01:00
Laurent Destailleur
5bb00b827a Fix trans 2026-01-16 16:17:14 +01:00
Laurent Destailleur
f240f53e8c Sync transifex 2026-01-16 16:00:55 +01:00
Laurent Destailleur
020895f404 Doc 2026-01-16 15:13:33 +01:00
Laurent Destailleur
d378d1f8cc Debug v23 2026-01-16 14:51:32 +01:00
Frédéric FRANCE
d07ce2bd08 enhance actioncomm reminder (#36316)
* enhance actioncomm reminder

* fix
2026-01-16 11:32:43 +01:00
Alexandre SPANGARO
8838ad7636 UX Accountancy - Card - Add link to element (#36452)
* UX Accountancy - Card - Add link to element

* CI
2026-01-16 11:31:20 +01:00
Francis
5180d59fc3 Update visibility logic for individual and professional lines (#36449)
Hi
It is a long time that I modify my Dolibarr to erase some items which are not interesting for individual customer...
I decided to post my solution !!!
A css class call professionalline to allow to erase some items !
A simple switch show/hide...
Francis
2026-01-16 11:29:41 +01:00
Frédéric FRANCE
723df03c0d clean printipp (#36472)
* clean printipp

* clean printipp

* clean printipp

* clean printipp

* clean printipp

* clean printipp

* Update functions.lib.php
2026-01-16 11:28:47 +01:00
Frédéric FRANCE
b5394f763a time to init modules (#36526)
* time to init modules

* time to init modules

* Update modules.php

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-16 11:14:27 +01:00
atm-corentin
9c04379799 NEW : add support for label field in addline method In supplier order (#36544)
* add support for label field in addline method to set description when empty

* update
2026-01-16 11:12:47 +01:00
Eric - CAP-REL
7f6966ee06 add hooks on extrafields (#36536) 2026-01-16 11:12:22 +01:00
Lucas Marcouiller
0aa629cfe0 fix change some conf->global to getdolglobal (#36874)
* fix change some conf->global to getdolglobal

* revert some changes

---------

Co-authored-by: Lucas Marcouiller <lmarcouiller@dolicloud.com>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-16 02:55:21 +01:00
Alexandre SPANGARO
048d71dec3 FIX warnings with GETPOSTDATE and saverestore (#36886) 2026-01-16 02:54:27 +01:00
Alexandre SPANGARO
bd4b90eadf NEW Supplier invoice - List - use select2 multiselect for status (#36887) 2026-01-16 02:51:21 +01:00
atm-vincent-p
d4d3c2089e Fix type contact translation (#36891) 2026-01-16 02:37:58 +01:00
Zakaria Boushaba
e18526dec5 Fix: Add SEARCH_LIMIT_AJAX constant support to select_produits_list() (#36893)
Co-authored-by: Zakaria Boushaba <z.boushaba@vold.africa>
2026-01-16 02:33:43 +01:00
Frédéric FRANCE
b6a49cb4bd fix french doc (#36895)
* fix french doc

* fix french

* Update sync_members_types_dolibarr2ldap.php

* fix french doc

* Update translate.class.php

* Update export-bank-receipts.php

* Update product.class.php

* Update product.class.php
2026-01-16 02:32:37 +01:00
Laurent Destailleur
79d5c0c418 Debug v23 2026-01-15 16:12:14 +01:00
Laurent Destailleur
8ed279a488 Missing PGK currency 2026-01-15 16:10:15 +01:00
Frédéric FRANCE
d770d37e29 add phpcs rule extension (#36561)
* add phpcs rule extension

* add phpcs rule extension

* add phpcs rule extension

* add phpcs rule extension

* add phpcs rule extension

* add phpcs rule extension

* add phpcs rule extension

* add phpcs rule extension

* add phpcs rule extension

* add phpcs rule extension

* add phpcs rule extension

* add phpcs rule extension

* add phpcs rule extension

* add phpcs rule extension

* add phpcs rule extension

* add phpcs rule extension

* add phpcs rule extension

* add phpcs rule extension

* add phpcs rule extension

* add phpcs rule extension

* add phpcs rule extension

* add phpcs rule extension

* test

* test

* test

* test

* test

* test

* fix

* fix

* fix

* fix

* fix

* fix

* fix translations

* fix translations

* translate

* translate

* translate

* translate

* translate

* translate

* translate

* Update propal.class.php
2026-01-15 16:05:06 +01:00
Laurent Destailleur
7abf0cfe68 Add PGK currency 2026-01-15 15:49:38 +01:00
Laurent Destailleur
f8e0ff19da Debug v23 2026-01-15 15:44:03 +01:00
Laurent Destailleur
24d7e4f24d Debug v23 - PDF generation error if additional PDF name not set 2026-01-15 15:37:33 +01:00
Laurent Destailleur
87c01a3371 Debug v23 - migrate_reload_modules was broken 2026-01-15 15:22:33 +01:00
Laurent Destailleur
7f2d0efa22 Debug v23 2026-01-15 11:52:04 +01:00
Laurent Destailleur
bedf25f1f4 Debug v23 2026-01-15 11:19:07 +01:00
Laurent Destailleur
1be0b12b3f Debug v23 2026-01-15 11:00:57 +01:00
Charlène Benke
2c5be593c4 Add includepermissions parameter to infoGroups api method (#36856)
Added parameter to include permissions in infoGroups method.

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-15 03:19:59 +01:00
Laurent Destailleur
5929de443e Debug v24 2026-01-15 03:18:50 +01:00
William Mead
7b9a878af2 NEW IP restriction to CIDR range (#36855)
* Added IP in CIDR range check

* Cleaned code

* Cleaned code

* Updated conf example

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-15 03:16:10 +01:00
Charlène Benke
d37d84b66e add user table on api holiday index (#36862)
added a join to the user table in the SQL query.

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-15 03:14:24 +01:00
Laurent Destailleur
89d380db67 Fix description 2026-01-15 03:12:15 +01:00
Charlène Benke
a994dbf674 NEW : Fichinter model on stable version (#36873)
* fichinter model on stable version

* Simplify menu addition for ListOfTemplates

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-15 03:04:27 +01:00
Laurent Destailleur
a5dd3cf63b Fix css regression 2026-01-15 02:44:23 +01:00
Lucas Marcouiller
69de2e8cdd Fix agenda search for holiday or birthday (#36878)
Co-authored-by: Lucas Marcouiller <lmarcouiller@dolicloud.com>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-15 02:05:33 +01:00
Lucas Marcouiller
f1b4379a0e Fix agenda search for holiday or birthday (#36878)
Co-authored-by: Lucas Marcouiller <lmarcouiller@dolicloud.com>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-15 02:04:57 +01:00
tcesar
200c88a55b New Add day selection for payment reports (#36799)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-15 02:04:41 +01:00
Charlène Benke
417bdc88ce Fix warning : add test on $key_fields['default'] is set (#36870)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-15 01:57:41 +01:00
Lucas Marcouiller
7c11c3a2a5 Fix #36290 (#36875)
Co-authored-by: Lucas Marcouiller <lmarcouiller@dolicloud.com>
2026-01-15 01:48:26 +01:00
github-actions[bot]
35602c6ff4 PHPStan > Update baseline (#36876)
Co-authored-by: Dolibot <dolibarr-bot@users.noreply.github.com>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-15 01:28:31 +01:00
Laurent Destailleur
4b9b0877b1 Debug v23 2026-01-15 01:10:28 +01:00
Laurent Destailleur
091b2b3f77 Fix trans 2026-01-15 00:46:33 +01:00
Laurent Destailleur
4126329f3d Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-01-15 00:39:06 +01:00
Laurent Destailleur
f17cc801b6 css 2026-01-15 00:38:35 +01:00
Laurent Destailleur
4af57f9f46 CSS 2026-01-14 22:09:56 +01:00
Laurent Destailleur
4255228273 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-14 21:39:25 +01:00
Laurent Destailleur
d4051faf35 Fix CI 2026-01-14 21:38:45 +01:00
Laurent Destailleur
e510043ade css 2026-01-14 19:44:19 +01:00
Laurent Destailleur
c39939fb21 Log travis 2026-01-14 17:48:49 +01:00
Laurent Destailleur
263cba5c0e Fix CI 2026-01-14 17:40:43 +01:00
Laurent Destailleur
4cffb37310 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-14 16:23:52 +01:00
Laurent Destailleur
9ff559a0ad Fix demo file 2026-01-14 16:07:56 +01:00
Laurent Destailleur
6a80ef4019 Demo template 2026-01-14 16:01:25 +01:00
Laurent Destailleur
0a12caf313 Debug v23 2026-01-14 15:59:58 +01:00
Laurent Destailleur
e2cd37a178 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-14 15:42:21 +01:00
Laurent Destailleur
c940376446 Clean sql 2026-01-14 15:41:44 +01:00
Laurent Destailleur
efdbf9a95c Trans 2026-01-14 14:28:30 +01:00
Laurent Destailleur
b487a95d86 Fix export for quadratus 2026-01-14 14:27:16 +01:00
Laurent Destailleur
053cd4e020 Init var 2026-01-14 14:13:13 +01:00
Laurent Destailleur
3e2598f8ff FIX Debug v23 - Pb in export accountancy. Var not defined. Missing
conditions for dol_dir_list. Pb cache not used when not found. Header
set at end.
2026-01-14 14:04:53 +01:00
Laurent Destailleur
e266a42545 Fix warning 2026-01-14 12:22:11 +01:00
Laurent Destailleur
dec9dfc06b FIX css 2026-01-14 12:01:22 +01:00
Laurent Destailleur
4d65ce61d6 Clean code 2026-01-13 23:25:12 +01:00
Laurent Destailleur
e9ac39c031 Fix CI 2026-01-13 23:06:07 +01:00
Laurent Destailleur
cb99921d7c Fix include 2026-01-13 21:51:01 +01:00
Laurent Destailleur
b02d1e0ada Fix error code 2026-01-13 21:48:45 +01:00
Laurent Destailleur
8e4762b2e1 Fix generic password type 2026-01-13 19:00:22 +01:00
Laurent Destailleur
7a93278cb7 Fix generic password type 2026-01-13 19:00:00 +01:00
Laurent Destailleur
02656bbcb8 Doc 2026-01-13 18:50:10 +01:00
Laurent Destailleur
1eda4e6157 Fix name of Oauth entry must not have special chars 2026-01-13 16:37:18 +01:00
Laurent Destailleur
750e1ccc90 NEW Global option do diable email is on each email setup page 2026-01-13 16:10:34 +01:00
Laurent Destailleur
7df6595351 Merge branch '18.0' of git@github.com:Dolibarr/dolibarr.git into 18.0 2026-01-13 16:04:30 +01:00
Laurent Destailleur
2cfdbd6b5f Try to use PR ID instead of PR url 2026-01-13 16:04:20 +01:00
Laurent Destailleur
85c8612c87 Fix warning oauth 2026-01-13 15:57:09 +01:00
Laurent Destailleur
72b746ddd3 Fix CI 2026-01-13 15:56:03 +01:00
Laurent Destailleur
4abad0b347 Fix warning oauth 2026-01-13 15:55:56 +01:00
Laurent Destailleur
dc5b719065 Fix add missing message once token has been saved 2026-01-13 15:39:04 +01:00
Laurent Destailleur
58d1254212 Fix missing state 2026-01-13 15:38:58 +01:00
Laurent Destailleur
f1e45a3f69 Fix add missing message once token has been saved 2026-01-13 15:24:26 +01:00
Laurent Destailleur
f373c65b08 Fix missing state 2026-01-13 14:53:31 +01:00
ThomasNgr-OpenDSI
00d1bbce9c FIX: on event create/edit card, when adding a user, the reminder info was lost. (#36857)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-13 11:39:46 +01:00
Joachim Kueter
7f407a1183 FIX #36866 Project/Time Spent: changing a lined of consumed time does not store changed task assignment (#36867)
On the tab Project/Time Spent there is a list of consumed time, spent on the tasks of the project. Each line is showing a pencil icon to allow a modification of the data.

In edit mode, the assigned task can get changed to a different task of the project. Upon saving the edits, this change is getting ignored, the old task is still assigned:

We need to update the fk_element referencing the task, but we also need to adjust the values for duration_effective of both affected tasks (old and new).
2026-01-13 11:39:15 +01:00
ThomasNgr-OpenDSI
2e7ab21d01 FIX #GHSA-w5j3-8fcr-h87w (#36868)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-13 11:37:36 +01:00
atm-vincent-p
de96c57acf FIX contact type translation (#36863) 2026-01-13 11:35:32 +01:00
Laurent Destailleur
5c43f8a2cf Fix CI 2026-01-13 11:34:25 +01:00
Laurent Destailleur
8531f6a2aa Fix CI 2026-01-13 11:33:09 +01:00
Laurent Destailleur
509e93e425 Fix CI 2026-01-13 11:31:48 +01:00
Laurent Destailleur
6ca16f700d Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-13 11:21:00 +01:00
Laurent Destailleur
ab9c1a80e6 CSS 2026-01-13 11:20:42 +01:00
Laurent Destailleur
8ed5f73a71 Add registration number into file 2026-01-12 19:44:43 +01:00
Laurent Destailleur
98a179f638 Fix filter 2026-01-12 19:18:52 +01:00
Laurent Destailleur
9cd99ba4d2 Fix warning 2026-01-12 16:15:17 +01:00
Laurent Destailleur
9464f88162 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-12 16:14:28 +01:00
Laurent Destailleur
1d37667947 Fix warning 2026-01-12 16:14:19 +01:00
Laurent Destailleur
fcef8ec922 Merge branch '22.0' of git@github.com:Dolibarr/dolibarr.git into 22.0 2026-01-12 16:12:29 +01:00
Laurent Destailleur
4c1cde76d5 Fix warning 2026-01-12 16:12:18 +01:00
github-actions[bot]
84ac2a32ee PHPStan > Update baseline (#36852)
Co-authored-by: Dolibot <dolibarr-bot@users.noreply.github.com>
2026-01-12 16:05:40 +01:00
Braito
362113e653 Fix/emailcollector isanswer dolibarr references 22.0 (#36859)
* fix(emailcollector): accept replies via Dolibarr References

* style(emailcollector): fix indentation

---------

Co-authored-by: braito4 <braito4@users.noreply.github.com>
2026-01-12 15:56:50 +01:00
Laurent Destailleur
e1345e225f Fix css 2026-01-12 15:55:34 +01:00
Laurent Destailleur
fcedaa150e CSS 2026-01-12 14:34:14 +01:00
Laurent Destailleur
9140e0599a Debug v23 2026-01-12 14:32:59 +01:00
Laurent Destailleur
9f151233be Clean code 2026-01-12 14:14:19 +01:00
Laurent Destailleur
c92b7874a3 Enhance modify control of invoices 2026-01-12 14:13:37 +01:00
Laurent Destailleur
91c35d4e40 NEW Add a protection against total change on a validated invoice. 2026-01-12 13:44:30 +01:00
Laurent Destailleur
15054810ba Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop
Debug v23
2026-01-12 13:42:02 +01:00
Laurent Destailleur
8dd0aeb1c8 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-12 01:36:19 +01:00
Laurent Destailleur
2754b6485d Debug v23 2026-01-12 01:34:27 +01:00
Laurent Destailleur
041f50a438 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-12 01:00:32 +01:00
Laurent Destailleur
544f4971bc Debug v23 2026-01-12 01:00:05 +01:00
Laurent Destailleur
fb99d6e736 Debug v23 2026-01-12 00:59:17 +01:00
Laurent Destailleur
8d1cb356c3 Link to societe_rib into llx_facture 2026-01-11 19:16:22 +01:00
Laurent Destailleur
9403eb5aab Copy some field of customer invoices into supplier invoices 2026-01-11 19:12:19 +01:00
Laurent Destailleur
94c75d399d Add field thirdparty_payment_id 2026-01-11 19:08:28 +01:00
Laurent Destailleur
a56645784c Prepare 23.0 2026-01-11 18:58:17 +01:00
Laurent Destailleur
b533548caa Prepare 23.0 2026-01-11 18:57:40 +01:00
Laurent Destailleur
aa0563a54a Debug v23 2026-01-11 18:41:11 +01:00
Laurent Destailleur
9c68ba8759 Debug v23 2026-01-11 18:17:21 +01:00
Laurent Destailleur
d280468216 Debug v23 2026-01-11 18:12:45 +01:00
Laurent Destailleur
c019159f05 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-11 17:57:29 +01:00
Laurent Destailleur
2759d409e4 Debug v23 2026-01-11 17:57:15 +01:00
Laurent Destailleur
a303b97330 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-11 17:53:32 +01:00
Laurent Destailleur
049fcba06a Doc 2026-01-11 17:53:04 +01:00
Laurent Destailleur
342a6f754b Fix CI 2026-01-11 17:51:13 +01:00
Laurent Destailleur
a96bba2199 CSS v23 2026-01-11 17:40:21 +01:00
Laurent Destailleur
382a211962 Try to fix warning 2026-01-11 16:25:10 +01:00
Laurent Destailleur
a4852508e3 Clean code 2026-01-11 16:19:47 +01:00
Laurent Destailleur
d803fc5f28 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-11 16:18:52 +01:00
Laurent Destailleur
6e9225ce8b Debug v23 2026-01-11 16:17:12 +01:00
Laurent Destailleur
a41e9941f9 CSS 2026-01-11 16:00:00 +01:00
Laurent Destailleur
99b88e876f css 2026-01-11 14:26:55 +01:00
Laurent Destailleur
4d23bfbffa Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-11 13:13:14 +01:00
Laurent Destailleur
3fbee82d99 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-11 13:13:06 +01:00
Laurent Destailleur
c698f4dc28 Backport some fixes of #36851 2026-01-11 13:12:38 +01:00
Alexandre SPANGARO
6b19b592ad FIX Accountancy - Add validation for overlapping fiscal year dates (#36836)
* FIX Accountancy - Add validation for overlapping fiscal year dates

* Optimize

* CI
2026-01-11 13:02:31 +01:00
Laurent Destailleur
04787d8cb0 FIX icon of mastodon social network 2026-01-11 12:57:26 +01:00
Laurent Destailleur
391fd8dab6 FIX icon of mastodon social network 2026-01-11 12:55:58 +01:00
Laurent Destailleur
39ed2ece8f Backport fix for #36850 2026-01-11 12:48:58 +01:00
spsolauv
8e37e310e0 CLOSE issue 36744 fix user can delete some actioncomm on which he has not the right (#36747)
* CLOSE issue 36744 fix user can delete some actioncomm on which he has not the right

* Fix whitespace

* Refactor delete confirmation logic for user access

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-11 12:34:47 +01:00
spsolauv
ca52029551 CLOSE issue 36744 fix user can delete some actioncomm on which he has not the right (#36747)
* CLOSE issue 36744 fix user can delete some actioncomm on which he has not the right

* Fix whitespace

* Refactor delete confirmation logic for user access

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-11 12:33:17 +01:00
Expresion
6d6dfb3a5e Fix numeric input parsing to support comma as decimal separator (#36845)
* Fix numeric input parsing to support comma as decimal separator

GETPOSTINT()  only handles integer values and fails when input uses a comma as decimal

* Update dispatch.php

* Change GETPOST to GETPOSTFLOAT for price input

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-10 18:25:06 +01:00
Expresion
9fa9d395dc Fix numeric input parsing to support comma as decimal separator (#36845)
* Fix numeric input parsing to support comma as decimal separator

GETPOSTINT()  only handles integer values and fails when input uses a comma as decimal

* Update dispatch.php

* Change GETPOST to GETPOSTFLOAT for price input

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-10 18:24:19 +01:00
Laurent Destailleur
cf621642fb Revert "NEW : allow to save stocks as 0 on a stock movement. (#36812)" (#36848)
This reverts commit 5662bfad31.
2026-01-10 18:21:41 +01:00
ThomasNgr-OpenDSI
5662bfad31 NEW : allow to save stocks as 0 on a stock movement. (#36812)
* NEW: Add global STOCK_MOVEMENT_FORCE_DO_NOT_CLEAN_EMPTY_LINES to force do not clean empty lines on movement stock. Because customer need to see the warehouse when the product previously even if the stock is at 0. And when in the reassort page, the product with a stock at 0 don't display and block the repleinishment of the stock of the product

* Fix un code manquant pour l'affichage des entrepots avec un stock a 0 lorsque la globale STOCK_MOVEMENT_FORCE_DO_NOT_CLEAN_EMPTY_LINES est activé

---------

Co-authored-by: Kamel Khelifa <kkhelifa@open-dsi.fr>
2026-01-10 18:21:22 +01:00
Laurent Destailleur
608f89e882 Fix CI 2026-01-10 18:12:56 +01:00
William Mead
dcbccdc0eb NEW concatenate PDF to strato contract model (#36803)
* Added option to concatenate terms of sale PDF to end of strato contract model

* Cleaned code

* Cleaned code

* Fix module name from 'contrat' to 'contract'

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-10 17:50:08 +01:00
Lucas Marcouiller
489197f1a5 NEW import process by removing some steps (#36811)
* Fix import process by removing some steps

* fix Ci

---------

Co-authored-by: Lucas Marcouiller <lmarcouiller@dolicloud.com>
2026-01-10 17:49:28 +01:00
Laurent Destailleur
984e3d88d8 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-10 17:48:24 +01:00
Laurent Destailleur
502106384c Fix CI 2026-01-10 17:48:08 +01:00
Benjamin Falière
7b6051a0d0 FIX(ticket): check on TICKET_IMAGE_PUBLIC_INTERFACE (#36833)
* FIX(ticket): check on TICKET_IMAGE_PUBLIC_INTERFACE

Must use getDolGlobalString instead of getDolGlobalInt here

* Add contributor

---------

Co-authored-by: Benjamin Falière <benjamin.faliere@altairis.fr>
2026-01-10 17:46:45 +01:00
Laurent Destailleur
6fabf82f1d Merge branch '18.0' of git@github.com:Dolibarr/dolibarr.git into 18.0 2026-01-10 17:45:28 +01:00
Laurent Destailleur
b3669d4333 Try to fix script 2026-01-10 17:45:20 +01:00
Mathieu Moulin
a5b106fe70 Fix error removing reception with product batches (eatby/sellby) (#36846) 2026-01-10 17:30:45 +01:00
Laurent Destailleur
e8d12c8448 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-10 17:29:30 +01:00
Laurent Destailleur
03099babed Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-10 17:29:22 +01:00
Laurent Destailleur
8f12d3d0de Debug 2026-01-10 17:29:01 +01:00
Laurent Destailleur
0c49c8298e Fix case 2026-01-10 17:28:44 +01:00
lvessiller-opendsi
8e58606559 NEW webportal hooks on form list (#36844) 2026-01-10 17:09:01 +01:00
Laurent Destailleur
da20d5100a Trans 2026-01-10 16:49:33 +01:00
Laurent Destailleur
f35a9b65e9 Debug v23 2026-01-10 16:20:57 +01:00
Laurent Destailleur
089800e477 Add try catch 2026-01-10 15:14:28 +01:00
Laurent Destailleur
0f48d5badf Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-10 15:12:39 +01:00
Laurent Destailleur
8149b907a3 Debug v23 2026-01-10 14:06:10 +01:00
Laurent Destailleur
1cc14e9942 Trans 2026-01-10 13:18:27 +01:00
Laurent Destailleur
e81cac68ec Debug v23 2026-01-10 13:14:01 +01:00
Laurent Destailleur
5faccd7216 Debug v23 2026-01-10 12:47:13 +01:00
Laurent Destailleur
0bf75fcc93 Debug v23 2026-01-09 20:01:26 +01:00
Laurent Destailleur
9469ba672b Add log 2026-01-09 19:22:46 +01:00
Laurent Destailleur
cfc3787dbf Debug 2026-01-09 15:25:26 +01:00
Laurent Destailleur
28b2b0c1d6 Debug v23 2026-01-09 13:38:27 +01:00
Laurent Destailleur
2208c49082 Debug tracking 2026-01-09 00:04:56 +01:00
Laurent Destailleur
e69290ee22 Implement the ping of last rowid 2026-01-08 23:58:34 +01:00
Laurent Destailleur
a32c92c8ad Debug track 2026-01-08 23:51:19 +01:00
Laurent Destailleur
d24cb36841 Debug sending message 2026-01-08 23:20:56 +01:00
Laurent Destailleur
5d07856182 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-08 23:14:20 +01:00
Laurent Destailleur
d3fab3540e css 2026-01-08 23:06:01 +01:00
Laurent Destailleur
82ee93e2c2 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-08 22:55:36 +01:00
Laurent Destailleur
f47c6bbce8 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-08 22:55:15 +01:00
Laurent Destailleur
08c909195a Add tracking of event 2026-01-08 22:55:03 +01:00
Laurent Destailleur
375b81434c Debug v23 2026-01-08 22:54:22 +01:00
Laurent Destailleur
5eb088cbfc Debug v23 2026-01-08 21:45:10 +01:00
Laurent Destailleur
aa0b793f78 Debug v23 2026-01-08 21:39:02 +01:00
Laurent Destailleur
0f324ff91d Trans 2026-01-08 21:18:56 +01:00
Laurent Destailleur
af77d738be Trans 2026-01-08 21:13:11 +01:00
Laurent Destailleur
a9601e81a6 Doc 2026-01-08 21:11:00 +01:00
Laurent Destailleur
bb9cdca711 Trans 2026-01-08 21:01:52 +01:00
Laurent Destailleur
42f161421e css 2026-01-08 19:40:47 +01:00
Laurent Destailleur
e08f9eaebd css 2026-01-08 19:15:21 +01:00
Anthony Berton
d5a6f92e0d Ajout d'une div responsive autour du formulaire pour améliorer la mise en page (#36825)
Co-authored-by: Anthony Berton <anthony.berton@bb2a.fr>
2026-01-08 18:56:32 +01:00
Anthony Berton
4eeb3cfaae Ajout d'une div responsive autour du formulaire pour améliorer la mise en page (#36825)
Co-authored-by: Anthony Berton <anthony.berton@bb2a.fr>
2026-01-08 18:56:13 +01:00
Jyhere
9a7a660b66 FIX: getCombination response is way too big (even db object is serialized) (#36830) 2026-01-08 18:55:41 +01:00
lvessiller-opendsi
f497a6a4fe FIX warning accountancy export from external module (#36832) 2026-01-08 18:54:15 +01:00
Laurent Destailleur
6d48c9f36f Fix CI 2026-01-08 18:24:21 +01:00
Laurent Destailleur
f66ba35226 Clean code 2026-01-08 15:20:08 +01:00
Laurent Destailleur
3a0c8114f9 Fix CI 2026-01-08 15:07:56 +01:00
Laurent Destailleur
2e064b4015 Fix fatal error 2026-01-08 14:52:25 +01:00
Laurent Destailleur
235725b157 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-08 14:38:01 +01:00
Laurent Destailleur
99cf740f47 Debug v23 2026-01-08 14:28:53 +01:00
Laurent Destailleur
c26a10fbb8 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-08 13:07:44 +01:00
Laurent Destailleur
681d25dd54 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-01-08 13:06:54 +01:00
Laurent Destailleur
0e6db7d7ea Merge branch '22.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-01-08 13:06:47 +01:00
Laurent Destailleur
2e47d661e5 Fix CI 2026-01-08 13:06:30 +01:00
Laurent Destailleur
aab17ffe0c Fix CI 2026-01-08 13:00:26 +01:00
Eric - CAP-REL
db3d8a0a1a Merge pull request #35863 from RyAbn/18.0_FIX_CMailFile_syslog_message
FIX: php8.1 warning in syslog message
2026-01-08 09:56:27 +01:00
Eric - CAP-REL
d5cab67f4c Fix log message for empty cid_list
apply same fix as 20.0 to avoid conflicts on next merges
2026-01-08 09:55:28 +01:00
Eric - CAP-REL
85a0383b46 Merge branch '18.0' into 18.0_FIX_CMailFile_syslog_message 2026-01-08 09:52:47 +01:00
Eric - CAP-REL
c981b7ccb6 Merge pull request #36343 from noec764/18_FIX_socid_undefined
FIX: TakePos sometimes thirdpartyid = undefined
2026-01-08 09:47:52 +01:00
lvessiller-opendsi
590bf2dd0e Merge pull request #36616 from rycks/18_fix_ticket_double_slash_on_url
remove slash like other parts of dolibarr code for TICKET_URL_PUBLIC_…
2026-01-08 09:41:28 +01:00
lvessiller-opendsi
c25dda01b4 Merge pull request #36815 from lemathou/mmi-fix-reception-delete-stock-mvt
FIX : remove stock correctly when reception is deleted (like 82e092f)
2026-01-08 09:30:04 +01:00
Laurent Destailleur
52e3830618 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-08 03:47:32 +01:00
Laurent Destailleur
41de9c48c6 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-08 03:07:05 +01:00
Laurent Destailleur
d94fe28c6d Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-01-08 03:01:39 +01:00
Laurent Destailleur
78bb09d3a7 Clean code 2026-01-08 03:01:18 +01:00
Laurent Destailleur
f535b0efc9 Fix warning 2026-01-08 02:40:44 +01:00
Laurent Destailleur
e46a31a6ab Code clean 2026-01-08 01:41:55 +01:00
Laurent Destailleur
95d18194f3 NEW Switch default value of nature of a thirdparty. Individual if no
data to guess instead of company by default.
2026-01-08 01:38:32 +01:00
Laurent Destailleur
16506899eb Include last id in answer 2026-01-08 01:00:17 +01:00
Laurent Destailleur
b95e35b392 Merge branch '22.0' of git@github.com:Dolibarr/dolibarr.git into 22.0 2026-01-07 20:21:46 +01:00
Laurent Destailleur
d175489fde Add more phpunits 2026-01-07 20:21:35 +01:00
Zakaria Boushaba
efb87f011c FIX: Correct due date calculation for payment term 45J FDM on 15th (#36808)
Co-authored-by: Zakaria Boushaba <z.boushaba@vold.africa>
2026-01-07 20:21:07 +01:00
ThomasNgr-OpenDSI
74f3cedaf5 Manage THIRDPARTY_PROPAGATE_EXTRAFIELDS_TO_PROPAL (#36810) 2026-01-07 19:16:45 +01:00
Laurent Destailleur
48fab7528f Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-07 19:15:36 +01:00
Laurent Destailleur
66989d4fef Clean files 2026-01-07 19:15:06 +01:00
Laurent Destailleur
448385ceb2 Merge branch '22.0' of git@github.com:Dolibarr/dolibarr.git into 22.0 2026-01-07 19:09:09 +01:00
Laurent Destailleur
99e08613f1 Merge branch '21.0' of git@github.com:Dolibarr/dolibarr.git into 22.0 2026-01-07 19:08:58 +01:00
Laurent Destailleur
8e5c5782bd Merge branch '20.0' of git@github.com:Dolibarr/dolibarr.git into 21.0 2026-01-07 19:04:04 +01:00
Laurent Destailleur
ca387ab576 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-07 19:02:52 +01:00
Laurent Destailleur
aeeb88ac19 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-07 19:02:45 +01:00
Laurent Destailleur
578a1ef568 Clean files 2026-01-07 19:01:54 +01:00
Laurent Destailleur
807db03167 Fix #36709 2026-01-07 18:46:28 +01:00
Laurent Destailleur
f450dd00a8 Merge branch '18.0' into mmi-fix-reception-delete-stock-mvt 2026-01-07 18:41:06 +01:00
Laurent Destailleur
61bd956fe0 Merge branch '19.0' of git@github.com:Dolibarr/dolibarr.git into 20.0 2026-01-07 18:40:40 +01:00
Laurent Destailleur
39fe5e85e5 Merge branch '18.0' of git@github.com:Dolibarr/dolibarr.git into 19.0 2026-01-07 18:36:51 +01:00
Laurent Destailleur
05c11e71e2 Fix CI 2026-01-07 18:33:22 +01:00
ThomasNgr-OpenDSI
c4dc8b9276 NEW : Add global MAIL_MASS_ACTION_SEARCH_MOST_RECENT_FILE_IF_NOT_FOUND for search and attach the most recent file if none file found when send email in mass action (#36813)
Co-authored-by: Kamel Khelifa <kkhelifa@open-dsi.fr>
2026-01-07 18:30:16 +01:00
atm-corentin
224aab4265 FIX - Add validation for manufacturing order date changes (#36823)
* Add validation for manufacturing order date changes and update translations

* Fix indentation in manufacturing order date handling logic
2026-01-07 18:28:58 +01:00
Laurent Destailleur
a35d180c16 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-07 18:25:36 +01:00
Laurent Destailleur
b4b602cdbc Fix var not used 2026-01-07 18:25:27 +01:00
Jérémy
76f6048ba4 NEW : Add “Bank Account” column in invoicing views (customer & supplier invoice lists) (#36718)
* Fix: avoid empty from_template id on first email form display

* first try

* work now

* work with fourn

* perfect.

* perfect.

* Update list.php

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-07 18:23:39 +01:00
Laurent Destailleur
5c00048630 Trans 2026-01-07 18:23:32 +01:00
Laurent Destailleur
103d350fb8 Merge branch '22.0' of git@github.com:Dolibarr/dolibarr.git into 22.0 2026-01-07 15:46:27 +01:00
Laurent Destailleur
adf788b38e Doc 2026-01-07 15:11:44 +01:00
Laurent Destailleur
4bfda08f7f Fix #GHSA-px39-mwcr-hvxp 2026-01-07 15:10:47 +01:00
Laurent Destailleur
b493ed7f96 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-07 14:16:49 +01:00
Laurent Destailleur
2ff2ee02ed Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-07 14:16:39 +01:00
Laurent Destailleur
3aff6cded3 More phpuint tests 2026-01-07 14:14:37 +01:00
Laurent Destailleur
70a4de6394 Fix with accent like é are allowed in path 2026-01-07 13:28:56 +01:00
Laurent Destailleur
1a363037b3 FIX #GHSA-w5j3-8fcr-h87w 2026-01-07 13:19:08 +01:00
Laurent Destailleur
71293d00c7 Merge branch '22.0' of git@github.com:Dolibarr/dolibarr.git into 22.0 2026-01-07 11:51:59 +01:00
Laurent Destailleur
4d26c3c553 Fix pb with a bad file 2026-01-07 11:42:51 +01:00
atm-corentin
515e095e27 NEW add Tags & Categories on MOs (#36816) 2026-01-07 11:23:20 +01:00
Frédéric FRANCE
fda736be6f can use an extrafield value in filter (#36822) 2026-01-07 11:14:27 +01:00
HENRY Florian
2dbc4c5e01 fix: if holiday type have bock if negative, it is ignored when balance is 0 (#36817)
* fix: backport of holiday approval if block_if_negative

* fix: backport of holiday approval if block_if_negative
2026-01-07 11:08:40 +01:00
Frédéric FRANCE
5509203cef clean code (#36819) 2026-01-07 11:07:31 +01:00
Laurent Destailleur
55a17a33c3 Debug v23 2026-01-07 02:35:53 +01:00
Laurent Destailleur
9ab0d26e71 Merge branch '22.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-01-07 01:14:42 +01:00
Laurent Destailleur
e12e15d89f CSS 2026-01-07 01:12:10 +01:00
Laurent Destailleur
4c6c654cd9 Fix exemple 2026-01-07 01:07:30 +01:00
ThomasNgr-OpenDSI
bf8575698d NEW : chose which payment request to include in bank transfer (#36814)
* Add checkboxes to bank transfer screen

* make checked lines be used when creating the SEPA mandate
2026-01-06 16:02:35 +01:00
Frédéric FRANCE
b369576a9d NEW add support of subtotals on more objects (#34125)
* add more subtotals

* add more subtotals

* class

* class

* wip

* wip

* wip

* wip

* doc

* clean code

* clean code

* clean code

* clean code

* clean code

* clean code

* clean code

* clean code

* clean code

* clean code

* clean code

* clean code

* clean code

* clean code

* clean code

* clean code

* fix

* fix

* fix

* fix

* fix

* fix

* clean code

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* fix

* fix

* fix

* fix

* fix

* fix

* fetch extraparams

* add confirms

* add options

* add options

* add options

* add options

* add options

* add options

* add options

* fix

* wip

* wip

* fix

* fix

* fix

* fix

* fix

* fix
2026-01-06 15:58:06 +01:00
Mathieu Moulin
ad3304832d FIX : remove stock correctly when reception is deleted (like 82e092f) 2026-01-06 15:32:59 +01:00
Alexandre SPANGARO
55ba9fc1f9 NEW Accountancy - Add transaction model (SQL Part) (#36807)
* NEW Accountancy - Add transaction model

* FIX CI

* Fix name & length
2026-01-06 14:49:22 +01:00
github-actions[bot]
192b5525af PHPStan > Update baseline (#36809)
Co-authored-by: Dolibot <dolibarr-bot@users.noreply.github.com>
2026-01-06 14:48:25 +01:00
Laurent Destailleur
938903a836 css 2026-01-06 11:48:51 +01:00
Laurent Destailleur
9edc85b0be Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-01-06 11:22:47 +01:00
Laurent Destailleur
a703aa6b0f css 2026-01-06 11:22:36 +01:00
Alexandre SPANGARO
d112d09a52 Missing translation (#36806)
* Missing link to language file

* Missing link to language file
2026-01-06 10:52:34 +01:00
Laurent Destailleur
3a1892e0cd css 2026-01-06 10:34:53 +01:00
Laurent Destailleur
76cebeca39 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-06 10:26:32 +01:00
Laurent Destailleur
7f73d92dc8 Fix select of product and last date in list of time spent 2026-01-06 10:25:39 +01:00
Laurent Destailleur
925381937a Add last date of change 2026-01-06 10:05:59 +01:00
PsyCrow
c4ca165970 NEW Add condition to exclude unpaid invoices from profit (#36693)
* Add condition to exclude unpaid invoices from profit

Only qualify paid invoices to profit calculation

* Fix condition to check invoice status instead of type

Fix condition to check invoice status instead of type.
FIX #36692 issue
2026-01-06 07:44:58 +01:00
Adnan RIHAN
a8ec96baf5 CLOSE #36727 Add ability to objectlink invoice_supplier (#36728)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-06 00:12:05 +01:00
Lucas Marcouiller
e0f3ee85ca Fix fill news & product on email template (#36756)
* Fix fill news & product on email template

* fix CI

* Update mailtemplate.php

---------

Co-authored-by: Lucas Marcouiller <lmarcouiller@dolicloud.com>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-06 00:09:37 +01:00
spsolauv
ac36cda432 ActionComm clone also categories when cloning object (#36761)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-06 00:04:59 +01:00
spsolauv
d6abd9305f Make CommonObject::cloneCategories() generic (#36758)
It was working only for products

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-05 23:45:26 +01:00
Laurent Destailleur
b957f768cb Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-01-05 20:29:24 +01:00
Laurent Destailleur
b5e265524c Fix CI 2026-01-05 20:29:15 +01:00
Jyhere
00d2d24fe5 Add printFieldListWhere / printFieldListTitle missing hooks in invoice template list (#36778)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-05 20:21:08 +01:00
Laurent Destailleur
41caa96dd8 CSS 2026-01-05 19:52:34 +01:00
Laurent Destailleur
4d2c86aa8d NEW Can use colored switch in setup factory 2026-01-05 19:34:31 +01:00
Laurent Destailleur
8873639379 Debug v23 2026-01-05 19:21:18 +01:00
Frédéric FRANCE
619a2a6d65 list product and service categories (#36779)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-05 19:01:11 +01:00
Laurent Destailleur
23930ca58e Fix CI 2026-01-05 18:52:32 +01:00
Laurent Destailleur
340e969120 css 2026-01-05 18:50:38 +01:00
Maxime Kohlhaas
bfe8f57c03 Fix : updateline was not possible because of wrong status test (#36802)
* Fix : updateline was not possible because of wrong status test

* Fix : better fix, remove useless test to work like on customer facrec
2026-01-05 18:44:55 +01:00
lvessiller-opendsi
eecc4a901d FIX height of shipping address box in proposal PDF model (#36775)
* FIX height of shipping adress box in proposal PDF model

* Update pdf_cyan.modules.php

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-05 18:39:27 +01:00
Laurent Destailleur
9f7a5da7c2 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-05 18:05:59 +01:00
Laurent Destailleur
7bc72d348c Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-01-05 18:05:44 +01:00
Laurent Destailleur
729ea3afcc Merge branch '22.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-01-05 18:05:33 +01:00
Laurent Destailleur
263362069f Merge branch '21.0' of git@github.com:Dolibarr/dolibarr.git into 22.0 2026-01-05 18:05:17 +01:00
ThomasNgr-OpenDSI
a648ec6670 FIX: inventory qty is not saved if page > 1 (#36804)
* FIX: inventory quantities were not saved when on page != 1

* Add sorting by batch number
2026-01-05 17:55:11 +01:00
ptibogxiv
285a67ad3b FIX API content-type assignment (#36771)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-05 17:53:14 +01:00
Laurent Destailleur
ec88bf8426 Fix warnings 2026-01-05 17:52:57 +01:00
Jyhere
05f010a655 FIX: reception reopening lacks of message when an error occurs (#36752)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-05 17:47:02 +01:00
Jyhere
d88730174c FIX: reception reopening lacks of message when an error occurs (#36752)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-05 17:46:45 +01:00
Frédéric FRANCE
7f06060592 fix getTooltipContentArray in myobject.class.php (#36755) 2026-01-05 17:45:24 +01:00
Francis Appels
21f4769c6c Fix missing line number when bom card in sub bom mode (#36805) 2026-01-05 17:43:22 +01:00
Francis Appels
007f8d6ea8 Fix missing line number when bom card in sub bom mode (#36805) 2026-01-05 17:43:08 +01:00
Laurent Destailleur
8734fb9f3b Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-05 17:41:33 +01:00
Laurent Destailleur
01884525f8 Fix warning 2026-01-05 17:40:13 +01:00
Laurent Destailleur
67e4c0e72b Fix warning 2026-01-05 17:39:54 +01:00
Laurent Destailleur
3b4cc79749 Fix warning 2026-01-05 17:37:35 +01:00
Laurent Destailleur
4efd32a0d6 Fix merge on wrong branch 2026-01-05 17:34:06 +01:00
Laurent Destailleur
993f74ac3e Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-05 17:18:15 +01:00
Laurent Destailleur
eef19fe761 Fix warnings 2026-01-05 17:12:38 +01:00
Laurent Destailleur
cf712df213 Fix warning 2026-01-05 17:04:59 +01:00
Laurent Destailleur
d2b68aac97 Fix warning 2026-01-05 16:46:10 +01:00
Laurent Destailleur
c6da6763de Fix warnings 2026-01-05 16:43:00 +01:00
Laurent Destailleur
f97f73aa2a Debug v23 2026-01-05 16:34:39 +01:00
Laurent Destailleur
26c3e3a1af Debug v23 2026-01-05 16:17:40 +01:00
Laurent Destailleur
910a1a03d8 Fix warning 2026-01-05 15:24:05 +01:00
Laurent Destailleur
ba2661a3a9 Debug v23 2026-01-05 15:21:35 +01:00
Laurent Destailleur
a5f76c6a47 Debug v23 2026-01-05 15:13:34 +01:00
Laurent Destailleur
0b172e0d27 Debug v23 2026-01-05 15:13:05 +01:00
Laurent Destailleur
a22d481f9e Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-05 14:57:18 +01:00
Laurent Destailleur
6af3e5f278 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-05 14:57:06 +01:00
Laurent Destailleur
fe09149661 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-01-05 14:44:04 +01:00
Maxime Kohlhaas
5179e05cbd Fix : wrong html end of fiche section (#36793)
* Fix : wrong html end of fiche section

* Update card.php

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-05 14:43:52 +01:00
Maxime Kohlhaas
ff8a8f5bb4 Fix : presend on reception resulted in fatal error (#36794) 2026-01-05 14:39:42 +01:00
Laurent Destailleur
ba816b847d Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into 23.0
Debug v23
2026-01-05 14:36:23 +01:00
Josep Lluís
b04d1dedb1 Fix qty 'tobuy' from INT to FLOAT type (#36780)
Change qty 'tobuy' from INT to FLOAT type

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-05 13:33:26 +01:00
Josep Lluís
a833788378 Fix qty 'tobuy' from INT to FLOAT type (#36780)
Change qty 'tobuy' from INT to FLOAT type

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-01-05 13:33:07 +01:00
Zakaria Boushaba
2a8df9e3b1 Fix : Set empty td at the correct position when product use unit (#36787)
Co-authored-by: Zakaria Boushaba <z.boushaba@vold.africa>
2026-01-05 13:29:21 +01:00
Alexandre SPANGARO
39b251f3ca FIX #36735 Invoice & Supplier invoice - Inconsistency of fk_code_ventilation for lines (FactureLigne & SupplierInvoiceLine) (#36792) 2026-01-05 13:28:09 +01:00
Alexandre SPANGARO
70a03a60a5 FIX Accountancy - Not being able to reopen a closed fiscal year by simply editing its information (#36798) 2026-01-05 13:23:12 +01:00
Laurent Destailleur
3b6d803bbd Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-01-05 13:18:07 +01:00
Laurent Destailleur
bdcfe3f131 Debug v23 and migration 2026-01-05 13:17:36 +01:00
Vincent Maury
d66d02cd63 Fix bug #36800 (#36801)
mod_syslog_chromephp still present in syslog folder and crashes syslog admin page
2026-01-05 12:59:04 +01:00
Frédéric FRANCE
e6249eee32 fix phpstan for v23 (#36774)
* fix phpstan

* Update functions.lib.php

* Update admin.lang

* Update errors.lang

* Update fournisseur.commande.class.php

* Update fournisseur.commande.class.php

* Update blockedlog_archives.php

* Update blockedlog_archives.php

* Update blockedlog_archives.php

* Update blockedlog_archives.php
2026-01-05 12:48:07 +01:00
Laurent Destailleur
47091a7d37 Fix warning 2026-01-05 12:47:51 +01:00
Laurent Destailleur
2dfc343450 Fix warnings 2026-01-05 12:44:52 +01:00
Laurent Destailleur
1739a6ec5f Fix warning 2026-01-05 12:42:09 +01:00
Zakaria Boushaba
ecb14aecf2 Fix text overflow in linked object table lists (v22) (#36776)
Co-authored-by: Zakaria Boushaba <z.boushaba@vold.africa>
2026-01-05 11:31:55 +01:00
Alexandre SPANGARO
6882e26638 FIX Accountancy - On annual closing, propose the last exercise not closing (#36797)
* FIX Accountancy - On annual closing, propose the last exercise not closing

* Fix CI
2026-01-05 11:30:33 +01:00
Laurent Destailleur
7aecfb0988 Debug v23 2026-01-05 04:18:03 +01:00
Laurent Destailleur
047cf65fc9 Debug v23 2026-01-05 04:15:08 +01:00
Laurent Destailleur
e61c2d21f1 Trans 2026-01-05 03:26:09 +01:00
Laurent Destailleur
ec2131a354 css 2026-01-05 01:18:47 +01:00
Laurent Destailleur
1d188ec199 Fix sql 2026-01-05 01:12:16 +01:00
Laurent Destailleur
85d5f90cc0 Debug v23 2026-01-05 01:11:10 +01:00
Laurent Destailleur
d558db5eca Debug v23 2026-01-05 00:59:50 +01:00
Laurent Destailleur
136c8a4e95 Debug v23 2026-01-05 00:32:32 +01:00
Laurent Destailleur
32d303690f Fix default sort 2026-01-05 00:24:30 +01:00
Laurent Destailleur
548a1f1636 Fix reopen button 2026-01-05 00:21:44 +01:00
Laurent Destailleur
362f37d783 Finish cash control feature of v23 2026-01-05 00:18:43 +01:00
Laurent Destailleur
c1a9c5469a Solve pb to manage cash control 2026-01-04 19:28:34 +01:00
Laurent Destailleur
1ed288539f Debug cash control 2026-01-04 19:23:18 +01:00
Laurent Destailleur
4ce4b3eb57 css 2026-01-04 19:12:07 +01:00
Laurent Destailleur
ab6d868a0f Debug cash control feature 2026-01-04 18:55:36 +01:00
Laurent Destailleur
65f1c23541 Debug blockedlog module 2026-01-04 16:11:13 +01:00
Laurent Destailleur
e4cecad00d Debug v23 2026-01-04 15:36:32 +01:00
Laurent Destailleur
2e50d64ccc Debug v23 2026-01-04 13:49:58 +01:00
Laurent Destailleur
0258fea095 Show ID of payment request 2026-01-03 19:03:44 +01:00
Laurent Destailleur
86e6baf1cf Doc 2026-01-03 18:52:09 +01:00
Laurent Destailleur
6bb6c916c8 Finish tracking of event BLOCKEDLOG_EXPORT 2026-01-03 18:48:58 +01:00
Laurent Destailleur
a16a787669 Debug v23 2026-01-03 18:35:59 +01:00
Laurent Destailleur
da7a14b606 Doc 2026-01-03 18:26:46 +01:00
Laurent Destailleur
55cadd47f0 Debug v23 2026-01-03 18:18:06 +01:00
Laurent Destailleur
3b9aa7d85c Debug v23 2026-01-03 17:24:43 +01:00
Laurent Destailleur
9772dff1b5 Debug v23 2026-01-03 16:50:59 +01:00
Laurent Destailleur
eaa3976b2c Maxi debug blockedlog module 2026-01-03 16:36:12 +01:00
Laurent Destailleur
08f3fbd5fd Fix maxi debug blockedlog 2026-01-03 14:00:21 +01:00
Laurent Destailleur
80365a0dac Maxi debug blockedlog 2026-01-03 13:59:26 +01:00
Laurent Destailleur
676e27d32b Fix maxi debug blockedlog 2026-01-03 13:59:09 +01:00
Laurent Destailleur
1f4f660110 Missing filter on pos source 2026-01-03 13:34:50 +01:00
Laurent Destailleur
3f16ed2b1c Debug 2026-01-02 21:10:41 +01:00
Laurent Destailleur
ed023e8b22 Missing amount lifetime (legal requirement) 2026-01-02 20:31:45 +01:00
Laurent Destailleur
7cf76e6da3 Debug v23 2026-01-02 20:20:11 +01:00
Laurent Destailleur
489dfba69f Trans 2026-01-02 19:42:15 +01:00
Laurent Destailleur
4c7f6d5949 Fix v23 - missing control 2026-01-02 18:54:26 +01:00
Laurent Destailleur
fdbebb089a Debug v23 2026-01-02 18:31:48 +01:00
Laurent Destailleur
07efadaa86 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2026-01-02 18:16:47 +01:00
Laurent Destailleur
5eed4e6d2e Look and feel v23 2026-01-02 18:16:21 +01:00
Laurent Destailleur
edab31d2bf Fix regression 2026-01-02 17:58:38 +01:00
Laurent Destailleur
01d504c8ea Trans 2026-01-02 17:52:31 +01:00
Laurent Destailleur
c981cadfd8 Fix text 2026-01-02 17:28:51 +01:00
Laurent Destailleur
4e458fa949 Debug v23 2026-01-02 17:03:36 +01:00
Laurent Destailleur
3a4221f78d Debug v23 2026-01-02 17:00:43 +01:00
Laurent Destailleur
97b7897e8e Add legal mention in TakePOS setup. 2026-01-02 16:53:08 +01:00
Laurent Destailleur
242245b59e Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-01-02 16:16:12 +01:00
Laurent Destailleur
e9f6db629f Debug v23 2026-01-02 16:15:52 +01:00
Laurent Destailleur
08ea100f1a Debug v23 2026-01-02 04:21:46 +01:00
Laurent Destailleur
9e2a70e9a3 CSS 2026-01-02 04:19:06 +01:00
Laurent Destailleur
0624f388f1 Debug v23 2026-01-02 04:11:20 +01:00
Laurent Destailleur
b2e609d8dc CSS v23 2026-01-02 04:05:03 +01:00
Laurent Destailleur
e3f7947cc5 Debug v23 2026-01-02 02:49:33 +01:00
Laurent Destailleur
b348745b42 Debug v23 2026-01-01 23:24:39 +01:00
Laurent Destailleur
ea9eddffa5 Debug v23 2026-01-01 23:21:17 +01:00
Laurent Destailleur
ca91994294 Debug v23 2026-01-01 23:15:16 +01:00
Laurent Destailleur
ada7bd2fd8 Debug v23 2026-01-01 16:43:14 +01:00
Laurent Destailleur
3da7cceb81 Debug v23 - Missing cumulative total in export 2026-01-01 12:26:35 +01:00
Laurent Destailleur
3a09c7cfd9 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-31 15:00:40 +01:00
Laurent Destailleur
dfd745f77e FIX date saving when using html dates (like with blind-user mode). 2025-12-31 14:58:24 +01:00
Laurent Destailleur
952c1146e0 FIX date saving when using html dates (like with blind-user mode). 2025-12-31 14:54:54 +01:00
Laurent Destailleur
ebd018a476 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-31 14:42:02 +01:00
Laurent Destailleur
7030684812 Debug v23 2025-12-31 14:40:26 +01:00
Laurent Destailleur
285360f67c Debug v23 2025-12-31 14:06:19 +01:00
Laurent Destailleur
8e257a3a8c Debug v23 2025-12-31 14:06:14 +01:00
Laurent Destailleur
a18a544ca2 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-31 14:05:35 +01:00
Laurent Destailleur
9c43e00ed8 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2025-12-31 14:05:11 +01:00
Laurent Destailleur
954b661b84 Sync transifex 2025-12-31 14:04:59 +01:00
Laurent Destailleur
ca103df7f2 Sync transifex 2025-12-31 14:03:38 +01:00
Laurent Destailleur
39cff81fd3 CSS 2025-12-31 13:49:42 +01:00
Laurent Destailleur
f5aff05704 Debug v23 2025-12-31 01:30:20 +01:00
Laurent Destailleur
e7a6f779de Debug v23 2025-12-31 01:16:37 +01:00
Laurent Destailleur
f6ca154c4a Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-31 00:51:13 +01:00
Laurent Destailleur
c4c86470e5 Debug v23 2025-12-31 00:50:52 +01:00
Laurent Destailleur
670dde1074 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-31 00:24:15 +01:00
Laurent Destailleur
0d9850819f Debug v23 2025-12-31 00:21:29 +01:00
Laurent Destailleur
1cee678067 Debug v23 2025-12-31 00:21:00 +01:00
Laurent Destailleur
bc7d5d21e3 Clean code 2025-12-30 16:21:15 +01:00
Laurent Destailleur
d500a4a4d9 Sync transifex 2025-12-30 15:14:31 +01:00
Laurent Destailleur
17f6d584ce Debug v23 2025-12-30 14:53:03 +01:00
Laurent Destailleur
aacf34b3b5 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-30 14:52:44 +01:00
Laurent Destailleur
32ed90740c Debug v23 2025-12-30 14:51:28 +01:00
Laurent Destailleur
d6687819d9 Debug v23 2025-12-30 13:12:01 +01:00
Laurent Destailleur
4e7c6aae75 Debug v23 2025-12-30 13:09:47 +01:00
Laurent Destailleur
b474c07d48 Debug v23 2025-12-30 13:08:23 +01:00
Laurent Destailleur
0f3e61db47 Doc 2025-12-30 12:58:36 +01:00
Laurent Destailleur
548b89a612 Debug v23 2025-12-30 12:57:23 +01:00
Laurent Destailleur
a5d95ae8e6 Debug v23 2025-12-30 12:55:39 +01:00
Laurent Destailleur
cc5a6cd76b Debug v23 2025-12-30 12:06:39 +01:00
Laurent Destailleur
6177dccc05 Debug v23 2025-12-30 11:57:29 +01:00
Laurent Destailleur
99b685ce2a Debug v23 2025-12-30 11:57:01 +01:00
atm-lucas
70348f8c85 Supplier Proposal line option (#36753) 2025-12-30 11:09:38 +01:00
Anthony Berton
64e5b9569b FIX - Change of email to send backup (#36742)
Co-authored-by: Anthony Berton <anthony.berton@bb2a.fr>
2025-12-30 11:06:26 +01:00
Zakaria Boushaba
3e9cc69433 FIX: Prevent default payment term/type from auto-filling list filters (#36765)
Co-authored-by: Zakaria Boushaba <z.boushaba@vold.africa>
2025-12-30 11:05:01 +01:00
lvessiller-opendsi
c33b7e0bf1 FIX finished regex in product import (#36770) 2025-12-30 11:03:20 +01:00
Laurent Destailleur
0953156549 Debug v23 2025-12-29 22:58:32 +01:00
Laurent Destailleur
a009bf4ef7 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-29 18:38:17 +01:00
Laurent Destailleur
5f70077cc6 Fix version 2025-12-29 18:31:00 +01:00
Laurent Destailleur
60c98ddc30 Prepare v24 2025-12-29 17:52:21 +01:00
Laurent Destailleur
e06888e02a Debug v23 2025-12-29 17:34:10 +01:00
Laurent Destailleur
feeda2ab58 CSS 2025-12-29 17:01:08 +01:00
Laurent Destailleur
3be8bd3692 Look and feel v23 2025-12-29 16:53:04 +01:00
Laurent Destailleur
a8f369c4cf Prepare 23.0.0 2025-12-29 16:34:08 +01:00
Laurent Destailleur
0133ee3f54 Debug v23 2025-12-29 16:27:38 +01:00
Laurent Destailleur
4fc39f65bf Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-29 16:18:00 +01:00
Laurent Destailleur
0cf9cec3f3 Typo 2025-12-29 16:17:48 +01:00
Laurent Destailleur
74c3a45daa Fix url 2025-12-29 16:07:13 +01:00
Laurent Destailleur
71648323ea css 2025-12-29 14:17:38 +01:00
Laurent Destailleur
b740ad545d Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-29 13:20:58 +01:00
Laurent Destailleur
817b32399b Trans 2025-12-29 13:20:38 +01:00
Laurent Destailleur
169b74b7bd Debug v23 2025-12-29 02:42:50 +01:00
Laurent Destailleur
e61d80c847 CSS 2025-12-29 00:43:50 +01:00
Laurent Destailleur
30da90b5a1 CSS 2025-12-29 00:33:24 +01:00
Laurent Destailleur
1400d0dd93 Debug v23 2025-12-28 19:59:23 +01:00
Laurent Destailleur
87e05c4aee css 2025-12-28 18:39:01 +01:00
Laurent Destailleur
1f70132be7 Debug v23 2025-12-28 17:57:37 +01:00
Laurent Destailleur
5f8e20f0f1 css 2025-12-28 17:48:58 +01:00
Laurent Destailleur
c4dd2f5895 CSS 2025-12-28 17:25:12 +01:00
Laurent Destailleur
a1b2e40d38 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-28 16:09:00 +01:00
Laurent Destailleur
514964d015 Debug v23 2025-12-28 16:08:38 +01:00
Laurent Destailleur
d2eee5491c Fix phpstan 2025-12-28 03:12:44 +01:00
Laurent Destailleur
9aefeb074b CSS 2025-12-28 02:43:16 +01:00
Laurent Destailleur
e3876f3295 Debug v23 - restore geoipmaxmind 2025-12-28 02:19:01 +01:00
Laurent Destailleur
d44361eb67 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-28 00:08:05 +01:00
Laurent Destailleur
898a2a21bb Debug v23 2025-12-28 00:07:18 +01:00
Laurent Destailleur
e2dac4c6d9 CSS 2025-12-27 23:18:39 +01:00
Eric - CAP-REL
2e22f9e75a fix concat for a undef entry of array (#36754) 2025-12-27 23:04:40 +01:00
Laurent Destailleur
1644430d62 Doc 2025-12-24 13:27:05 +01:00
Laurent Destailleur
2b4416f063 CSS 2025-12-24 03:45:45 +01:00
Laurent Destailleur
4da5441e27 Clean code 2025-12-24 03:20:22 +01:00
Laurent Destailleur
4f6e636e7e Clean file 2025-12-23 20:21:40 +01:00
Laurent Destailleur
10bde49cbd Trans 2025-12-23 20:19:51 +01:00
Laurent Destailleur
c7ce560031 Trans 2025-12-23 20:17:16 +01:00
Laurent Destailleur
4a36a73d04 Merge branch '22.0' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-23 20:12:03 +01:00
Laurent Destailleur
5bc8578523 Merge branch '22.0' of git@github.com:Dolibarr/dolibarr.git into 22.0 2025-12-23 20:07:24 +01:00
Laurent Destailleur
6634e5a610 Prepare 22.0.4 2025-12-23 20:07:13 +01:00
Laurent Destailleur
af0c8bd5a1 CSS 2025-12-23 16:08:18 +01:00
Laurent Destailleur
1c6fa4e8ba Fix v23has no more duplicate menu entry for each view mode 2025-12-23 16:03:56 +01:00
Laurent Destailleur
34c93d82ce Debug v23 2025-12-23 13:56:59 +01:00
Laurent Destailleur
33acfc6963 Debug v23 2025-12-23 12:02:10 +01:00
Laurent Destailleur
96583a11fc Debug v23 2025-12-23 11:48:56 +01:00
Laurent Destailleur
6de709d6bd Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-23 10:39:46 +01:00
Laurent Destailleur
3853b469ab Debug v23 2025-12-23 10:39:34 +01:00
Laurent Destailleur
c75e5fd607 Merge pull request #36704 from leninrivas/patch-35
NEW In Facture fetch_lines() first param only products or services
2025-12-22 20:43:38 +01:00
Laurent Destailleur
d9ad1bae8c Merge pull request #36720 from leninrivas/patch-36
NEW substitutions values
2025-12-22 20:40:56 +01:00
Laurent Destailleur
7afdff3e7d Rename constant 2025-12-22 20:09:06 +01:00
Laurent Destailleur
befd5e93c8 Merge pull request #36689 from thersane-john/fix_data_exposure
Fix: prevent data exposure between customer and supplier
2025-12-22 19:57:05 +01:00
Laurent Destailleur
4cbfb4829c Rename TVAINTRA to VATNUMBER in functions.lib.php 2025-12-22 19:22:03 +01:00
Laurent Destailleur
a775249aed Merge pull request #36706 from frederic34/set_share_key_generic_case
add more case to set share key
2025-12-22 19:15:10 +01:00
Laurent Destailleur
d7f9c0157e Merge pull request #36699 from W1W1-M/fix-document-api-agenda-event-list-download
FIX document API agenda event list and download
2025-12-22 19:08:55 +01:00
Laurent Destailleur
834784ac29 Merge pull request #36711 from fappels/23_fix_print_sql
Fix print $sql
2025-12-22 19:06:59 +01:00
Laurent Destailleur
594dad2652 Update facture.class.php 2025-12-22 19:02:49 +01:00
Laurent Destailleur
5615034b01 Merge pull request #36729 from aspangaro/24_Quadra
Update Quadra Export
2025-12-22 18:56:10 +01:00
Laurent Destailleur
f9db010918 Merge pull request #36707 from atm-corentin/FIX/addFRLangsTrans
FIX|Fix # Add fr langs trans
2025-12-22 18:53:33 +01:00
Laurent Destailleur
06cf0c95fd Merge pull request #36705 from thersane-john/fix_css_webportal_duration
Fix css duration input for webportal
2025-12-22 18:53:01 +01:00
Laurent Destailleur
4c020a9a04 Merge pull request #36708 from FHenry/dev_fix_fatal
fix: Fatal in WebHook Triggers ($this->errors is null in array merge)
2025-12-22 18:52:18 +01:00
Laurent Destailleur
f7474b2ee5 Merge pull request #36737 from will2022/patch-1
FIX - Improve Danish legal forms and fix typos
2025-12-22 18:50:01 +01:00
Laurent Destailleur
e1643ac5b8 Merge pull request #36719 from frederic34/phpstan_config
align phpstan config files
2025-12-22 18:49:42 +01:00
Laurent Destailleur
8625218d49 Merge pull request #36740 from defrance/patch-697941
fix warning $filters['search_complete'] maybe empty
2025-12-22 18:40:48 +01:00
Laurent Destailleur
79b813efe4 Merge branch 'develop' into patch-36 2025-12-22 18:33:18 +01:00
Frédéric FRANCE
9cce445ece Merge branch 'develop' into set_share_key_generic_case 2025-12-22 18:23:59 +01:00
Laurent Destailleur
8e0dd5560d Merge branch 'develop' into 23_fix_print_sql 2025-12-22 18:21:31 +01:00
Laurent Destailleur
7228c1f1c0 Merge branch 'develop' into 24_Quadra 2025-12-22 18:11:38 +01:00
Laurent Destailleur
34d9b41e40 Merge branch 'develop' into patch-1 2025-12-22 18:10:00 +01:00
Frédéric FRANCE
6e6202dbd5 Merge remote-tracking branch 'origin/phpstan_config' into phpstan_config 2025-12-22 18:08:45 +01:00
Frédéric FRANCE
33c8ce48d1 Merge remote-tracking branch 'upstream/develop' into phpstan_config 2025-12-22 18:08:31 +01:00
Laurent Destailleur
6ac509da5d Merge branch 'develop' into patch-697941 2025-12-22 18:08:14 +01:00
Laurent Destailleur
310fd1bd12 Fix CI 2025-12-22 18:07:33 +01:00
Laurent Destailleur
1b6263a672 Merge branch 'develop' into phpstan_config 2025-12-22 17:44:42 +01:00
Laurent Destailleur
761977b28f Merge branch 'develop' into patch-697941 2025-12-22 17:44:26 +01:00
Laurent Destailleur
e8d9c2da58 Merge branch 'develop' into patch-1 2025-12-22 17:42:29 +01:00
Laurent Destailleur
5eaa2b3265 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-22 17:42:01 +01:00
Laurent Destailleur
e265c2938f Fix CI 2025-12-22 17:40:50 +01:00
Charlène Benke
056929639a fix warning $filters['search_complete'] maybe empty 2025-12-22 17:27:17 +01:00
Laurent Destailleur
b50858e6a3 Merge branch 'develop' into 24_Quadra 2025-12-22 17:24:48 +01:00
Laurent Destailleur
8ac7f73d4f Merge branch 'develop' into patch-36 2025-12-22 17:24:22 +01:00
Laurent Destailleur
7717b0a35e Merge branch 'develop' into phpstan_config 2025-12-22 17:24:03 +01:00
Laurent Destailleur
5184c71a26 Merge pull request #36733 from AlainCis/fix/improve-limits-precision-error-message
FIX #36246 Clarify decimal precision validation error message in ../htdocs/admin/limits.php
2025-12-22 17:22:47 +01:00
Laurent Destailleur
6f65af18ac Merge pull request #36738 from atm-corentin/FIX/project-opportunity-null-thirdparty
FIX : project opportunity null thirdparty
2025-12-22 17:21:51 +01:00
Laurent Destailleur
3a370803e4 Merge branch 'develop' into patch-1 2025-12-22 17:17:59 +01:00
Laurent Destailleur
e7ffea07e7 Fix CI 2025-12-22 17:16:37 +01:00
Laurent Destailleur
321d20da71 Merge branch '22.0' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-22 16:36:01 +01:00
Laurent Destailleur
ba82c1cb30 Merge branch '22.0' into FIX/project-opportunity-null-thirdparty 2025-12-22 16:33:33 +01:00
Laurent Destailleur
93fdf6c487 Fix CI 2025-12-22 16:33:10 +01:00
Laurent Destailleur
3068a03aa4 Merge branch '22.0' into FIX/project-opportunity-null-thirdparty 2025-12-22 16:20:44 +01:00
Laurent Destailleur
74e52260e5 Restore param 2025-12-22 16:12:31 +01:00
Laurent Destailleur
8abeb47da1 Merge branch '22.0' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-22 16:06:05 +01:00
Laurent Destailleur
3d55a7a792 Merge branch '22.0' of git@github.com:Dolibarr/dolibarr.git into 22.0 2025-12-22 15:11:32 +01:00
Laurent Destailleur
7990b182d1 Merge branch '20.0' of git@github.com:Dolibarr/dolibarr.git into 21.0 2025-12-22 15:04:37 +01:00
Laurent Destailleur
dddbe3f462 Update gitattributes 2025-12-22 14:48:46 +01:00
atm-corentin
a41622707e Fix crash when opportunity won without third-party 2025-12-22 14:26:38 +01:00
Laurent Destailleur
230634721d Merge branch 'develop' into phpstan_config 2025-12-22 14:03:57 +01:00
Laurent Destailleur
a50394e4df Merge pull request #36734 from Boushabazakaria/fix/reassort-category-text-colspan-22
FIX|Fix reassort page colspan and category/tag text color when filtering
2025-12-22 13:55:09 +01:00
Laurent Destailleur
73b534a9eb Merge branch 'develop' into patch-1 2025-12-22 13:54:01 +01:00
Laurent Destailleur
69adf182d3 Fix lockfile 2025-12-22 13:53:39 +01:00
Laurent Destailleur
53b07f760b Merge pull request #36730 from fappels/20_fix_regression
FIX getOutstandingBills regression from #35266
2025-12-22 13:50:29 +01:00
Laurent Destailleur
eb633abef0 Merge pull request #36731 from fpiccinali/refacto_initdemo
refacto initdemo.sh
2025-12-22 13:49:53 +01:00
Laurent Destailleur
254d4ac882 Merge pull request #36736 from atm-lucasmantegari/FIX/HolidaysWithoutDays
# FIX - Asking Holidays When Negative Balance
2025-12-22 13:41:03 +01:00
William
312efc09c1 Fix: Improve Danish legal forms and fix typos 2025-12-22 13:11:36 +01:00
ATM-Lucas
c6a6d14627 False balance 2025-12-22 12:08:00 +01:00
Alexandre SPANGARO
e8d573cf33 Merge branch 'develop' into 24_Quadra 2025-12-22 12:01:11 +01:00
Laurent Destailleur
256443a904 Solve hardcoded title 2025-12-22 11:17:18 +01:00
Laurent Destailleur
38b691c5bb Trans 2025-12-22 10:53:16 +01:00
Zakaria Boushaba
103d77d332 FIX | Fix colspan rendering and category/tag text color in reassort page 2025-12-22 10:27:07 +01:00
Laurent Destailleur
8db3a2e4fc Move algo for checksum file 2025-12-22 04:52:12 +01:00
Laurent Destailleur
a6d1b2235e Try to fix CI for pgsql 2025-12-22 03:45:20 +01:00
Laurent Destailleur
b4a5167e78 Log of migration 2025-12-22 03:27:48 +01:00
alain.cisirika
c3451192d9 FIX: Clarify decimal precision validation error message in ../htdocs/admin/limits.php 2025-12-22 04:18:00 +02:00
Laurent Destailleur
edd53e41b3 Debug v23 2025-12-22 03:14:22 +01:00
Laurent Destailleur
0f30eb5f34 CSS 2025-12-22 01:16:07 +01:00
Fabrice Piccinali
657d02bc38 refacto initdemo.sh 2025-12-21 19:00:12 +01:00
Laurent Destailleur
16a7229d85 Doc 2025-12-21 17:32:47 +01:00
Laurent Destailleur
f88bb0bd59 Debug v23 2025-12-21 17:00:04 +01:00
Laurent Destailleur
94c06cca90 css 2025-12-21 16:34:22 +01:00
Laurent Destailleur
db7cccd588 css 2025-12-21 16:18:52 +01:00
Francis Appels
3243126ab6 Fix getOutstandingBills regression from #35266 2025-12-21 16:11:35 +01:00
Laurent Destailleur
f133fce841 Debug v23 2025-12-21 16:04:12 +01:00
Laurent Destailleur
c57eb789b4 Debug v23 2025-12-21 14:46:13 +01:00
Laurent Destailleur
69cea28a14 Debug v23 2025-12-21 14:33:25 +01:00
Laurent Destailleur
3a4cf15857 Debug v23 no propagation of warnings 2025-12-21 13:32:32 +01:00
Laurent Destailleur
c2930e768e Debug v23 2025-12-21 12:54:03 +01:00
Laurent Destailleur
78ad7b3857 Fix hard coded value 2025-12-21 12:17:00 +01:00
Laurent Destailleur
26962aeefb Debug v23 2025-12-21 11:43:44 +01:00
Laurent Destailleur
02bc402ae6 Debug v23 2025-12-21 11:26:14 +01:00
Alexandre SPANGARO
b8fd5f83b1 Update Quadra Export 2025-12-21 07:55:28 +01:00
Lenin Rivas
89b515a884 NEW substitutions values
__AMOUNT_MULTICURRENCY_FORMATED__
__MYCOMPANY_TVAINTRA__
2025-12-20 11:39:56 -05:00
Laurent Destailleur
d9532c5c3e css 2025-12-20 17:02:39 +01:00
Laurent Destailleur
b6c2a6509d Debug v23 2025-12-20 16:24:52 +01:00
Laurent Destailleur
d191e1060c Debug v23 2025-12-20 14:28:36 +01:00
Laurent Destailleur
684e726ec5 Debug v23 2025-12-20 13:53:43 +01:00
Laurent Destailleur
81248447d0 Debug v23 2025-12-20 13:37:09 +01:00
Laurent Destailleur
adb3ceee2b Debug v23 2025-12-20 13:10:50 +01:00
Frédéric FRANCE
270c025eb6 clean code 2025-12-20 10:42:00 +01:00
Frédéric FRANCE
f138005d73 clean code 2025-12-20 10:39:39 +01:00
Frédéric FRANCE
e33376d10e align config files 2025-12-20 09:30:54 +01:00
Laurent Destailleur
46e98cf02a Trans 2025-12-20 02:06:39 +01:00
Laurent Destailleur
764dbcf940 Fix bad default param 2025-12-20 01:49:45 +01:00
Frédéric FRANCE
4b323ea1fa Merge branch 'develop' into set_share_key_generic_case 2025-12-19 23:21:37 +01:00
Frédéric FRANCE
d7fe40a512 add more case to set share key 2025-12-19 19:19:11 +01:00
Laurent Destailleur
6089925a06 Trans 2025-12-19 18:26:23 +01:00
Laurent Destailleur
7bfd4a5844 Debug v23 - Pb with timezone on cash control 2025-12-19 18:13:12 +01:00
William Mead
1d32ded07f Refactored and cleaned code 2025-12-19 16:26:35 +01:00
Laurent Destailleur
6222b83104 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-19 13:00:05 +01:00
Laurent Destailleur
85f9d620ac Fix print 2025-12-19 12:59:58 +01:00
Francis Appels
49d37793e2 Fix print $sql 2025-12-19 11:28:03 +01:00
John BOTELLA
8863233f96 Fix radio 2025-12-19 10:54:25 +01:00
Frédéric FRANCE
fa86ca7c88 add more case to set share key 2025-12-19 10:39:29 +01:00
Frédéric FRANCE
36d982682d add more case to set share key 2025-12-19 10:37:52 +01:00
Frédéric FRANCE
e24e7c4713 add more case to set share key 2025-12-19 10:35:04 +01:00
Florian HENRY
1269313304 fix: Fatal in WebHook Triggers (->errors is null in array merge 2025-12-19 10:15:23 +01:00
Frédéric FRANCE
bb5931c592 add more case to set share key 2025-12-19 10:10:42 +01:00
Frédéric FRANCE
289e696a38 add more case to set share key 2025-12-19 10:10:31 +01:00
Frédéric FRANCE
407201c5c4 Merge remote-tracking branch 'upstream/develop' into set_share_key_generic_case 2025-12-19 10:05:19 +01:00
Frédéric FRANCE
028a5ca076 add more case to set share key 2025-12-19 10:04:09 +01:00
atm-corentin
d09aab2718 add langs trans which was in US but not in FR 2025-12-19 10:03:46 +01:00
John BOTELLA
7ac9baefd4 Fix css duration input for webportal 2025-12-19 09:47:27 +01:00
William Mead
a31e01bd77 Refactored to use getMultidirOutput 2025-12-19 08:50:50 +01:00
Lenin Rivas
ebc48db9b8 NEW fetch_lines() first param only products or services 2025-12-18 19:26:29 -05:00
Laurent Destailleur
26b73201fc Merge pull request #36702 from le-reparateur/patch-5
Add hidden input for socid in card.php
2025-12-18 21:06:25 +01:00
Laurent Destailleur
cf63b68b75 Merge pull request #36686 from LePat/anomalieboutonsactiontakepos
FIX : TakePOS action button panel display (partial)
2025-12-18 21:04:57 +01:00
Laurent Destailleur
3f67ddf071 FIX missing p.default_vat_code in product import profile. 2025-12-18 19:36:03 +01:00
Laurent Destailleur
aca83a0c85 FIX missing p.default_vat_code in product import profile. 2025-12-18 19:32:39 +01:00
Francis
377a567e4b Add hidden input for socid in card.php
In creation mode from an origin order, the socid is not input
2025-12-18 17:09:30 +01:00
Laurent Destailleur
0d368fc41d Merge branch 'develop' into anomalieboutonsactiontakepos 2025-12-18 16:40:19 +01:00
Laurent Destailleur
565ea4d065 Code comment 2025-12-18 16:38:26 +01:00
Laurent Destailleur
23be021550 Code comment 2025-12-18 16:35:06 +01:00
Laurent Destailleur
cdf2464076 Doc 2025-12-18 16:33:09 +01:00
Laurent Destailleur
810cb6774c Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-18 16:29:31 +01:00
Laurent Destailleur
5d2f951281 Fix Remove the DISTINCT 2025-12-18 16:29:17 +01:00
Laurent Destailleur
2cf6269caf Merge pull request #36694 from bradley-jarvis/fix-mo-production-dissassembly
Fix - Error when producing dissassembly MO
2025-12-18 15:57:11 +01:00
Laurent Destailleur
1d4fc65fbe Update mo_production.php 2025-12-18 15:56:54 +01:00
Laurent Destailleur
5873a61562 Merge pull request #36697 from W1W1-M/new-document-api-stock-warehouse-upload
NEW document API upload stock warehouse
2025-12-18 15:55:56 +01:00
Laurent Destailleur
b624c35f12 Merge pull request #36701 from frederic34/fix_search_import_key
fix search import key filter not working
2025-12-18 15:53:09 +01:00
Laurent Destailleur
5ebbf9a70f Code comment 2025-12-18 15:07:54 +01:00
Laurent Destailleur
b7d7f6be3d Label 2025-12-18 14:37:34 +01:00
Laurent Destailleur
9c5f323b55 Clean code 2025-12-18 14:10:05 +01:00
Frédéric FRANCE
ec46ff9b10 fix search import key filter not working 2025-12-18 13:28:16 +01:00
William Mead
86328e840e Cleaned code 2025-12-18 11:25:31 +01:00
William Mead
a66a897a07 Fixed document API agenda event list and download 2025-12-18 11:22:33 +01:00
Laurent Destailleur
e4e3990703 Doc 2025-12-18 10:35:48 +01:00
Laurent Destailleur
fcefef410c Compatibility with the GHSA VDP 2025-12-18 10:35:06 +01:00
Laurent Destailleur
b2718dc80e Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-18 10:11:57 +01:00
Laurent Destailleur
6ff315bfb3 Trans 2025-12-18 10:11:40 +01:00
William Mead
0ea4a4d071 Added stock warehouse document upload 2025-12-18 09:41:43 +01:00
Eric Seigne
c017ea0341 Merge branch '18_fix_ticket_double_slash_on_url' of github.com:rycks/dolibarr into 18_fix_ticket_double_slash_on_url 2025-12-18 09:36:48 +01:00
Eric Seigne
eb4d9dec53 thanks to lionel : remove view.php in default value like other part of dolibarr 2025-12-18 09:36:45 +01:00
brad
475d719014 Fix - Error when producing dissassembly MO
Trying to product a dissassembly MO causes the produced SQL insert
statement to fail on a database constraint related to fk_stock_movement,
the consume statement was successful. The consume statement was checking
for a '0' and setting the value to 'null' but the produce line was not
doing this check. Adding this check to fk_stock_movement fixes the error
and generates the database entries
2025-12-18 15:36:12 +11:00
pat
400c31def6 FIX : action button panel display (partial)
- simplify function which simulates navigating to the next/previous panel
- call the hook only after all original buttons have been added
- Remove button hiding at positions %3 == 2 depending on Dolibarr configuration
2025-12-17 23:06:58 +01:00
Laurent Destailleur
cf828d6223 Merge pull request #36691 from W1W1-M/new-document-api-builddoc-intervention
NEW document API build doc intervention
2025-12-17 19:15:44 +01:00
Laurent Destailleur
d57f2872c8 Merge pull request #36687 from W1W1-M/fix-document-api-expense-report-generate
FIX document API expense report generation
2025-12-17 19:15:18 +01:00
Laurent Destailleur
06afb92901 Merge pull request #36688 from FHenry/21_fix_auguria
fix perms in auguria menu handler
2025-12-17 19:02:31 +01:00
Laurent Destailleur
34f4ad5c5d FIX Selection of email when prefilled from a template 2025-12-17 18:22:21 +01:00
Laurent Destailleur
8aeff05512 Merge branch '22.0' of git@github.com:Dolibarr/dolibarr.git into 22.0 2025-12-17 17:26:08 +01:00
Laurent Destailleur
c30ebc08fd Fix missing message popup 2025-12-17 17:25:57 +01:00
William Mead
b0e10d67b6 Added intervention document generation 2025-12-17 16:59:04 +01:00
John BOTELLA
d6adb66789 fix(data): prevent data exposure between customer and supplier 2025-12-17 14:53:49 +01:00
Florian HENRY
6684ea7074 fix perms in auguria 2025-12-17 14:27:51 +01:00
Laurent Destailleur
5b66035f23 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-17 14:23:34 +01:00
Laurent Destailleur
549bc5cc04 css 2025-12-17 14:23:23 +01:00
Laurent Destailleur
54e5ab5e0a Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-17 13:41:50 +01:00
William Mead
c8b4ad24bd Fixed expense report document generation. Cleaned error messages. 2025-12-17 13:41:41 +01:00
Laurent Destailleur
96162564a3 Try fix for #36513 2025-12-17 13:41:35 +01:00
Laurent Destailleur
2ca80ffa67 Merge branch '18.0' into 18_fix_ticket_double_slash_on_url 2025-12-17 13:27:57 +01:00
Laurent Destailleur
45c4f4fa3c Merge pull request #36572 from aspangaro/22_asset5
FIX Accountancy - Problem calculating fiscal year with different periods on fixed assets
2025-12-17 13:25:41 +01:00
Laurent Destailleur
0c2b34be80 Merge pull request #36683 from W1W1-M/new-document-api-generate-builddoc-warehouse
NEW document API builddoc warehouse
2025-12-17 13:24:16 +01:00
Laurent Destailleur
9ec8d30692 Merge pull request #36682 from W1W1-M/new-document-api-warehouse
NEW document API stock warehouse
2025-12-17 13:23:56 +01:00
Laurent Destailleur
f563fe9256 Merge pull request #36666 from frederic34/duplicate_api_key_in_demo_data
remove duplicate api key in demo db 22
2025-12-17 12:59:21 +01:00
Laurent Destailleur
6d477a0f7b Merge pull request #36669 from atm-maxime/fix_tag_services
Fix : tags were not available if product module is disabled
2025-12-17 12:59:08 +01:00
Laurent Destailleur
179cf4e043 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-17 12:58:00 +01:00
Laurent Destailleur
56452b122d Debug v23 pb with height of popup 2025-12-17 12:57:44 +01:00
Laurent Destailleur
3caa7ffd93 Merge pull request #36673 from nateogroup-antoine/develop
Filter on "all deposits" on quotes was not possible
2025-12-17 12:53:48 +01:00
Laurent Destailleur
b2260457d7 Merge pull request #36674 from atm-vincent-p/FIX_Warning
FIX : warning on select
2025-12-17 12:52:51 +01:00
Laurent Destailleur
71d55d86e7 Merge pull request #36684 from W1W1-M/qual-intervention-api-duplicate-draft-route
QUAL intervention API merged duplicate routes/methods
2025-12-17 12:51:13 +01:00
William Mead
239f036252 Deleted duplicate route. Cleaned settodraft method. Updated changelog. 2025-12-17 10:11:50 +01:00
William Mead
c0503d1e89 Updated modulepart check 2025-12-17 09:08:00 +01:00
William Mead
46cc35faff Added warehouse document generation 2025-12-17 09:07:32 +01:00
William Mead
969b4e68d4 Added warehouse document download 2025-12-17 08:58:24 +01:00
William Mead
7ab079d0f0 Added stock warehouse documents 2025-12-17 08:39:46 +01:00
Laurent Destailleur
cf309ecc87 Merge pull request #36675 from ATM-Consulting/FIX/APIProductLot
FIX : ProductLot API does not work
2025-12-16 21:25:30 +01:00
Laurent Destailleur
90000a24ea Trans 2025-12-16 20:38:11 +01:00
Laurent Destailleur
b64ae7eb55 Fix script for windows 2025-12-16 20:08:42 +01:00
Laurent Destailleur
591eb02d4b Prepare 22.0.4 2025-12-16 20:05:34 +01:00
Stéphanie Arrestier
35ba9dc47a Fix doliwamp packager 2025-12-16 19:36:51 +01:00
Stéphanie Arrestier
70903d32d7 Fix doliwamp packager 2025-12-16 18:51:59 +01:00
Adrien Raze
55b20bfdb9 FIX : displaing errors 2025-12-16 16:54:24 +01:00
Adrien Raze
74bfc0af71 FIX : ProductLot API does not work 2025-12-16 16:30:30 +01:00
Laurent Destailleur
ee0e2e5e16 FIX #36667 2025-12-16 16:05:27 +01:00
nateogroup-antoine
205251d4b9 If an item in the order is not managed in stock, the default quantity offered during shipping is 0 rather than the quantity ordered.
If an item in the order is not managed in stock, the default quantity offered during shipping is 0 rather than the quantity ordered.
2025-12-16 15:48:35 +01:00
Laurent Destailleur
f9f4e3d890 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-16 15:04:44 +01:00
Laurent Destailleur
1601e35696 Clean code 2025-12-16 15:04:28 +01:00
=
975514f3c4 FIX : warning on select 2025-12-16 14:54:35 +01:00
nateogroup-antoine
6c2359ad53 Merge pull request #2 from nateogroup-antoine/nateogroup-antoine-patch-3
Filter on "all warehouse " on proposals
2025-12-16 14:47:54 +01:00
nateogroup-antoine
37da2c2630 Filter on "all warehouse " on proposals
Filter on "all deposits" on quotes
It was no longer possible to filter on “all deposits” on quotes.

Style harmonization with the order list
2025-12-16 14:45:17 +01:00
Laurent Destailleur
edaa8e1bb6 Merge branch '22.0' into fix_tag_services 2025-12-16 14:31:18 +01:00
Laurent Destailleur
2e0ada7d51 Merge pull request #36668 from thersane-john/fix_missing_css
Fix missing css rules for special inputs in WebPortal
2025-12-16 14:25:35 +01:00
Laurent Destailleur
d0dd4cdd57 Merge pull request #36671 from frederic34/patch-8
fix missing import_key fetch in categories class
2025-12-16 14:24:55 +01:00
Laurent Destailleur
4edfad3295 Merge branch '22.0' into duplicate_api_key_in_demo_data 2025-12-16 14:24:13 +01:00
Laurent Destailleur
abdc086993 Fix CI 2025-12-16 14:23:59 +01:00
John BOTELLA
86a8172571 Fix form price currency 2025-12-16 11:32:03 +01:00
John BOTELLA
4140591621 Fix form price currency 2025-12-16 11:31:33 +01:00
Frédéric FRANCE
3edf615d08 fix missing import_key fetch in categories class 2025-12-16 11:21:03 +01:00
John BOTELLA
ac3c8df5e6 fix select 2 multi select 2025-12-16 10:50:36 +01:00
Maxime Kohlhaas
52646b1dca Fix : tags were not available if product module is disabled 2025-12-16 10:43:51 +01:00
John BOTELLA
03728dec47 Fix missing css rules for special inputs 2025-12-16 10:06:06 +01:00
Frédéric FRANCE
86ded33b51 Merge remote-tracking branch 'upstream/22.0' into duplicate_api_key_in_demo_data 2025-12-16 08:40:55 +01:00
Frédéric FRANCE
619a9719c5 remove duplicate api key in demo db 22 2025-12-16 08:39:28 +01:00
Laurent Destailleur
e10354bed0 Merge pull request #36632 from braito4/patch-10
FIX Check if lines are structured HTML before processing
2025-12-16 02:29:37 +01:00
Laurent Destailleur
efdd99c854 Merge pull request #36654 from hregis/fix_21_missing_extrafield_search_input
FIX missing search tasks extrafields input and title
2025-12-16 02:24:29 +01:00
Laurent Destailleur
26c4204df7 Merge pull request #36664 from nicolas-eoxia/fix_check_create_action
Fix: Need to check strict on default value on create action
2025-12-16 02:24:02 +01:00
Laurent Destailleur
da39a6a394 Merge branch '21.0' of git@github.com:Dolibarr/dolibarr.git into 22.0 2025-12-16 01:33:36 +01:00
Laurent Destailleur
ec91c8ddd2 Merge pull request #36661 from atm-lucasmantegari/FIX/CanValidatedHolidaysWhenNegativeBalance
FIX - Can Validated Holidays When Negative Balance
2025-12-16 01:32:09 +01:00
Laurent Destailleur
de58e5cbcf Merge branch '21.0' into FIX/CanValidatedHolidaysWhenNegativeBalance 2025-12-16 01:10:45 +01:00
Laurent Destailleur
bb7502d880 Fix condition check for negative balance 2025-12-16 01:10:28 +01:00
Laurent Destailleur
2b7346bf97 Fix link formatting in SECURITY.md 2025-12-16 01:06:54 +01:00
Laurent Destailleur
4b824a82ef Update SECURITY.md 2025-12-16 01:06:01 +01:00
Laurent Destailleur
52f71b5faf Update security reporting instructions in SECURITY.md
Clarified instructions for reporting security vulnerabilities via email.
2025-12-16 00:49:27 +01:00
Laurent Destailleur
442e1ea3e0 Update SECURITY.md 2025-12-16 00:48:04 +01:00
Laurent Destailleur
7902e31177 Fix RSS 2025-12-16 00:24:48 +01:00
Laurent Destailleur
a450967efa Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-16 00:10:49 +01:00
Laurent Destailleur
ac4a110ca5 Sec: Fix Dolibarr Stored XSS via Meta Tag Injection GHSA-59gv-36h7-qwh8 2025-12-16 00:10:28 +01:00
Laurent Destailleur
2e2438084a Update SECURITY.md 2025-12-15 23:36:16 +01:00
Laurent Destailleur
a039d200fa Merge branch '21.0' into fix_21_missing_extrafield_search_input 2025-12-15 22:50:37 +01:00
Laurent Destailleur
f5cae96280 Complete blacklist. 2025-12-15 17:06:18 +01:00
Laurent Destailleur
b2e73c9bd7 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-15 16:57:20 +01:00
Laurent Destailleur
e80a9929c0 Debug v23. dolChmod required after file_puts_content 2025-12-15 16:57:06 +01:00
Nicolas Domenech
c2cc34f630 Fix: Need to check strict on default value on create action
In php7.4 we need to check strict because with default value 0 we have true on bool check instead of false in php8.0 >
2025-12-15 16:44:51 +01:00
Braito
ab53b28c1b Simplify lines substitution logic
Removed unnecessary check for structured HTML in default lines.
2025-12-15 16:30:16 +01:00
Laurent Destailleur
31e1ce2ca6 Merge pull request #36556 from thersane-john/fix_webportal_missing_hooks
WebPortal missing hooks
2025-12-15 16:29:42 +01:00
Braito
cf0642e53c Remove unused variable 'linesisstructuredhtml' 2025-12-15 16:28:51 +01:00
Laurent Destailleur
591feefa15 Merge pull request #36584 from Pcauderlier/fix-trigger-prospect-status
Fix: Fire COMPANY_MODIFY trigger when updating prospect status via ajaxstatusprospect.php
2025-12-15 16:24:04 +01:00
Laurent Destailleur
7ae333c51e Merge branch '20.0' of git@github.com:Dolibarr/dolibarr.git into 21.0 2025-12-15 16:15:45 +01:00
ATM-Lucas
e40c6b7c5f user num open day 2025-12-15 15:57:24 +01:00
Laurent Destailleur
3690babb73 Merge branch '19.0' of git@github.com:Dolibarr/dolibarr.git into 20.0 2025-12-15 15:57:01 +01:00
Laurent Destailleur
e1b5e024f5 Merge 2025-12-15 15:56:34 +01:00
Laurent Destailleur
a0be2c8890 Merge branch '17.0' of git@github.com:Dolibarr/dolibarr.git into 18.0 2025-12-15 15:54:00 +01:00
Laurent Destailleur
77d7ec8a2b Merge branch '16.0' of git@github.com:/Dolibarr/dolibarr.git into 17.0 2025-12-15 15:53:38 +01:00
Laurent Destailleur
cc37c778dc Merge branch '15.0' of git@github.com:Dolibarr/dolibarr.git into 16.0 2025-12-15 15:53:00 +01:00
Laurent Destailleur
722c31d182 Merge branch '14.0' of git@github.com:Dolibarr/dolibarr.git into 15.0 2025-12-15 15:52:34 +01:00
Laurent Destailleur
ba2c173936 Merge pull request #36203 from Easya-Solutions/14.0_fix-purge-files-api-temp
FIX re-create API temp dir after purging temp files
2025-12-15 15:51:52 +01:00
Laurent Destailleur
03151795a4 Merge pull request #36611 from aspangaro/22_fixasset6
FIX Accountancy - Verify fiscal year on last hour to enable the integration of asset entries
2025-12-15 15:48:38 +01:00
Laurent Destailleur
454eb415ca Merge branch '22.0' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-15 15:43:55 +01:00
Laurent Destailleur
dc14e43e5d Fix for #36144 2025-12-15 15:41:23 +01:00
ATM-Lucas
89f254eb35 Can Validated Holidays When Negative Balance 2025-12-15 15:21:57 +01:00
Laurent Destailleur
474e21dc6f Debug v23 2025-12-15 15:15:41 +01:00
Laurent Destailleur
4c092da9d6 FIX #36576 - date creation is empty on import 2025-12-15 14:57:25 +01:00
Laurent Destailleur
7ce1e893de FIX #36576 - date creation is empty on import 2025-12-15 14:56:16 +01:00
Laurent Destailleur
5a4c10a2de Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-15 14:26:08 +01:00
Laurent Destailleur
dea8957ec0 Merge pull request #36622 from rlaurent-alb/22.0
FIX | Fixing addPayment /invoices/id/payments
2025-12-15 14:25:24 +01:00
Laurent Destailleur
836a50489d Merge pull request #36635 from W1W1-M/new-document-api-builddoc-expense-report
NEW document API builddoc expense report
2025-12-15 14:21:06 +01:00
Laurent Destailleur
39f6b71f99 Merge pull request #36642 from aspangaro/22_cat3
Problem on request for category on account
2025-12-15 14:18:18 +01:00
Laurent Destailleur
c933408763 Doc 2025-12-15 14:14:02 +01:00
Laurent Destailleur
e29c9c6f3e Merge pull request #36633 from mdeweerd/n/baseline20251213
Qual: Update Phan baseline and fix type mismatch
2025-12-15 14:02:19 +01:00
Laurent Destailleur
124c304677 Update api_documents.class.php 2025-12-15 13:59:56 +01:00
Laurent Destailleur
6f88117ab8 Merge branch 'develop' into new-document-api-builddoc-expense-report 2025-12-15 13:59:15 +01:00
Laurent Destailleur
a4627eb0cd Merge pull request #36644 from W1W1-M/fix-document-api-contact-document-download
FIX document API contact document download
2025-12-15 13:57:14 +01:00
Laurent Destailleur
9dde4495f0 Merge pull request #36643 from W1W1-M/fix-document-api-post-third-party
FIX document API third party document POST
2025-12-15 13:56:31 +01:00
Laurent Destailleur
1bb057e046 Merge pull request #36646 from W1W1-M/new-document-api-builddoc-product
NEW document API builddoc product
2025-12-15 13:54:38 +01:00
Laurent Destailleur
9d5074d303 Merge pull request #36647 from sonikf/sonikf-fix-reception
fix reception card regression broken layout
2025-12-15 13:53:59 +01:00
Laurent Destailleur
159f498122 Merge pull request #36648 from sonikf/sonikf-patch-typos
fix typos
2025-12-15 13:53:39 +01:00
Laurent Destailleur
b1cbe96f36 Merge pull request #36649 from mdeweerd/qual/phpdoc
Qual: Update type hints in supplier order class
2025-12-15 13:53:03 +01:00
Laurent Destailleur
d9f54b7bae Merge pull request #36653 from Dolibarr/dependabot/github_actions/actions/upload-artifact-6
Bump actions/upload-artifact from 5 to 6
2025-12-15 13:52:32 +01:00
Laurent Destailleur
c07d4629dc Merge pull request #36652 from Dolibarr/dependabot/github_actions/actions/cache-5
Bump actions/cache from 4 to 5
2025-12-15 13:52:09 +01:00
Laurent Destailleur
17024b3278 Merge pull request #36655 from splohmer/patch-1
FIX: Search all for supplier proposals via object reference
2025-12-15 13:51:55 +01:00
Laurent Destailleur
c92a347c5e Merge pull request #36657 from splohmer/patch-2
FIX: SQL error for LIST_OF_QUALIFIED_INVOICES_LIMIT_DEFINED
2025-12-15 13:51:09 +01:00
Laurent Destailleur
35ad674345 Debug v23 2025-12-15 13:14:04 +01:00
Regis Houssin
ab19aa8d13 FIX avoid sql error with search option pattern 2025-12-15 12:33:37 +01:00
Laurent Destailleur
8a74a72d55 Trans 2025-12-15 12:18:42 +01:00
splohmer
65134e0746 FIX: SQL error for LIST_OF_QUALIFIED_INVOICES_LIMIT_DEFINED
sql error fix for mentioned secret parameter
2025-12-15 11:12:07 +01:00
splohmer
a658b7fe89 FIX: Search all function for supplier proposals
In commit 6c8ae0b2a6 the behavior of searching all functionality for supplier proposals via the list.php was changed a bit. It was provided that the supplier_proposal.class.php defines the array of $fields with the flag if a search all is allowed in this field. This short fix adds only the two fields to the list to make the function again working. Without this you cannot search after the reference via the search all functionality.
2025-12-15 11:07:06 +01:00
Regis Houssin
da2d1e6e38 FIX missing search extrafields input and title 2025-12-15 10:41:22 +01:00
dependabot[bot]
491711b283 Bump actions/upload-artifact from 5 to 6
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5 to 6.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15 05:02:35 +00:00
dependabot[bot]
7112f510c1 Bump actions/cache from 4 to 5
Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15 05:02:30 +00:00
Alexandre SPANGARO
a9d41338d0 Problem on request for category on account 2025-12-14 22:06:13 +01:00
MDW
479000631d Qual: Update type hints in supplier order class
# Qual: Update type hints in supplier order class

- Update type hints for `$price_base_type` to be either 'HT' or 'TTC'
- Update type hints for `$type` and `$notrigger` to be integers between 0 and 1
2025-12-14 21:39:56 +01:00
sonikf
c05dc10da3 fix regression broken layout
Removed call to dol_get_fiche_end() in card.php.
2025-12-14 20:45:30 +02:00
William Mead
f7078da238 Updated PHPDoc 2025-12-14 18:21:39 +01:00
William Mead
117aedfede Added product document generation 2025-12-14 18:20:29 +01:00
William Mead
00e48957eb Fixed contact document download 2025-12-14 15:23:15 +01:00
William Mead
aa3f357064 Cleaned code 2025-12-14 13:47:53 +01:00
William Mead
fa6e85fbed Cleaned code 2025-12-14 13:19:02 +01:00
William Mead
96b8515b3d Fixed type 2025-12-14 12:49:34 +01:00
William Mead
905040e5ab Updated PHPDoc 2025-12-14 12:06:41 +01:00
William Mead
8885393940 Fixed document upload for third party 2025-12-14 11:54:09 +01:00
Alexandre SPANGARO
ecfbc8293b Problem on request for category on account 2025-12-14 07:03:17 +01:00
William Mead
af55f4efe7 Added expense report to document API builddoc 2025-12-13 17:44:14 +01:00
Laurent Destailleur
dca2685042 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-13 14:13:49 +01:00
Laurent Destailleur
c1790d758f Comment 2025-12-13 14:13:30 +01:00
Laurent Destailleur
b3f7ffdaed Fix translate buttons 2025-12-13 13:54:16 +01:00
Laurent Destailleur
71a090388b Debug v23, the cancel button was lost. 2025-12-13 13:47:19 +01:00
MDW
7456c119e5 Qual: Update Phan baseline and fix type mismatch in conferenceorbooth_list.php
# Qual: Update Phan baseline and fix type mismatch in conferenceorbooth_list.php

- Updated the Phan baseline to reflect the reduced number of PhanUndeclaredMethod occurrences
- Fixed a type mismatch in conferenceorbooth_list.php by changing the values from integers to strings in the editfieldkey and editfieldval functions
2025-12-13 13:46:45 +01:00
Braito
97043d0ce0 Fix HTML check for __LINES__ substitution 2025-12-13 12:34:09 +01:00
Braito
88760d71c3 Fix line formatting for HTML content handling 2025-12-13 12:29:16 +01:00
sonikf
2b32856c7d fix typo 2025-12-13 13:18:25 +02:00
sonikf
8d62cbe912 Fix typo 2025-12-13 13:15:19 +02:00
sonikf
dd314257e6 Fix typo 2025-12-13 13:13:04 +02:00
Braito
48bebca965 Check if lines are structured HTML before processing 2025-12-13 12:12:39 +01:00
sonikf
9d0e061bf3 Translate error message to English 2025-12-13 13:08:54 +02:00
sonikf
f76605866b Fix description wording for public interface
Updated description for public interface company page.
2025-12-13 12:59:21 +02:00
sonikf
3f53aa073a Fix typos 2025-12-13 12:57:04 +02:00
Laurent Destailleur
3dfdd0fbee Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-13 11:04:24 +01:00
Laurent Destailleur
7bd0a8a76e CSS 2025-12-13 11:04:16 +01:00
Laurent Destailleur
0a1db227ad Merge pull request #36583 from aspangaro/22_fixcat
FIX Accountancy - No limit on chart of account to define category on account
2025-12-12 23:56:36 +01:00
Laurent Destailleur
095f7f6e81 Merge pull request #36617 from Dolibarr/phpstan-baseline
PHPStan > Update baseline
2025-12-12 23:51:31 +01:00
Laurent Destailleur
f4b3b2870f Merge pull request #36620 from frederic34/fix_bad_trgger_name
fix bad trigger name
2025-12-12 23:51:10 +01:00
Laurent Destailleur
6f677cf83b Merge pull request #36621 from frederic34/patch-8
fix warning in company.lib.php
2025-12-12 23:49:56 +01:00
Laurent Destailleur
66e4aff401 Merge pull request #36623 from frederic34/patch-12
fix parameter of search product
2025-12-12 23:49:38 +01:00
Laurent Destailleur
2bf6ae5050 Merge pull request #36629 from defrance/patch-333432
Fix SQL condition for project calendar filtering
2025-12-12 23:49:06 +01:00
Laurent Destailleur
9fbdb66194 Merge pull request #36625 from Hystepik/fix-blog-email-template
Fix blog email template selection
2025-12-12 23:48:01 +01:00
Laurent Destailleur
9a4029174d Merge pull request #36627 from AlainCis/fix/36624-adding-line-to-intervention-impossible
FIX #36624 SQL syntax error when adding line to intervention
2025-12-12 23:12:02 +01:00
Charlène Benke
8c692cec85 Fix SQL condition for project calendar filtering 2025-12-12 16:10:31 +01:00
alain.cisirika
edc077c1a4 FIX #36624 SQL syntax error when adding line to intervention 2025-12-12 15:15:56 +02:00
Lucas Marcouiller
6c33fe6b7c Fix blog email template selection 2025-12-12 13:12:45 +01:00
Dolibot
5f89a4a2d2 PHPStan > Update baseline 2025-12-12 12:10:57 +00:00
Frédéric FRANCE
b58394fbaa fix parameter of search product 2025-12-12 09:19:17 +01:00
Frédéric FRANCE
825f719217 Merge branch 'develop' into patch-8 2025-12-12 08:22:40 +01:00
Laurent Destailleur
f7befc2385 Fix massaction list 2025-12-12 00:15:36 +01:00
Laurent Destailleur
13c7aaf2f8 Merge pull request #36501 from Danelif/add-rang-in-import
improve purchase order line import by adding rang and flexible key se…
2025-12-11 22:17:47 +01:00
Rayan LAURENT
77f4fc7b76 FIX | Fixing addPayment /invoices/id/payments
Fixing the API route as it is currently impossible to pay a Facture::TYPE_CREDIT_NOTE with this route (it keeps negating the ttc amount used as resteapayer), inspired by the other route /paymentsdistributed, line 1717.
2025-12-11 18:48:18 +01:00
Frédéric FRANCE
938e0ec34c fix warning in company.lib.php 2025-12-11 18:33:11 +01:00
Frédéric FRANCE
cd3fd5f9c7 fix bad trigger name 2025-12-11 18:17:00 +01:00
Eric Seigne
8d84cec3ca remove slash like other parts of dolibarr code for TICKET_URL_PUBLIC_INTERFACE 2025-12-11 10:43:24 +01:00
lvessiller-opendsi
3c2e85bdb1 Merge pull request #36541 from rycks/18_fix_deposit_backport_43f551e270a00165dcb7274c0904b66b9eaf30b8
backport of PR36378 : Problem with deposit line on Type of operation
2025-12-11 10:18:58 +01:00
Eric Seigne
18f85df343 remove spaces from prev fix 2025-12-11 10:11:58 +01:00
Eric - CAP-REL
9afa5c713d Merge pull request #36585 from Easya-Solutions/18.0_fix-invoice-card-variables2
FIX undefined variables on create invoice card from order (backport f…
2025-12-11 09:30:15 +01:00
Pcauderlier
4e9370b89d Merge branch 'develop' into fix-trigger-prospect-status 2025-12-11 09:14:59 +01:00
Pcauderlier
75bf0f7d1e FIX php-stan erros 2025-12-11 09:02:15 +01:00
Alexandre SPANGARO
621625e082 FIX Accountancy - Verify fiscal year on last hour to enable the integration of asset entries 2025-12-11 05:44:15 +01:00
Alexandre SPANGARO
8995247192 Merge branch '22.0' into 22_asset5 2025-12-11 04:29:53 +01:00
Alexandre SPANGARO
e36c34b48d Update request 2025-12-11 04:25:53 +01:00
Alexandre SPANGARO
9bab3ba7e4 Merge branch '22.0' into 22_fixcat 2025-12-11 04:22:37 +01:00
Laurent Destailleur
6b00f41fed Merge pull request #36571 from W1W1-M/new-expense-report-api-update-line
NEW expense report API update line method
2025-12-11 03:25:32 +01:00
Laurent Destailleur
83dca9b93f Merge pull request #36574 from Hystepik/fix-some-phpstan-warnings
Fix some php stan warnings
2025-12-11 03:19:48 +01:00
Laurent Destailleur
22c595057d Merge pull request #36581 from aspangaro/21_fixacc1
FIX #35375 Accountancy - SQL error on empty filter account category
2025-12-11 03:19:18 +01:00
Laurent Destailleur
4b8a3be9b4 Merge pull request #36593 from mdeweerd/qual/phan20251209
Qual: Update phan baseline
2025-12-11 03:18:31 +01:00
Laurent Destailleur
48d3b2d953 Merge pull request #36607 from Boushabazakaria/fix/filter-closed-thirdparty-contacts
FIX|Fix Exclude closed third parties from contacts selection
2025-12-11 03:18:14 +01:00
Laurent Destailleur
18af96d910 Merge pull request #36586 from frederic34/fix_project
fix read property client on null
2025-12-11 03:13:22 +01:00
Laurent Destailleur
fa18c4a5ae Merge branch '22.0' of git@github.com:Dolibarr/dolibarr.git into 22.0 2025-12-11 03:08:53 +01:00
Laurent Destailleur
5598bc066a FIX List is filtered on task status when it should not 2025-12-11 03:06:44 +01:00
Laurent Destailleur
5a81106174 Merge pull request #36522 from lippoliv/fix-accelerated-depreciation-lines-when-disabled
do not create accelerated deprecation lines if disabled
2025-12-11 02:01:00 +01:00
Laurent Destailleur
75748b9280 Merge branch '22.0' into 22_asset5 2025-12-11 01:58:42 +01:00
Laurent Destailleur
fe123327bc Merge branch '21.0' of git@github.com:Dolibarr/dolibarr.git into 22.0 2025-12-11 01:58:16 +01:00
Laurent Destailleur
20b6250e57 Merge pull request #36547 from thersane-john/fix_select2_missing
FIX :  missing public select2 and fix public url usage by introduce  CDN url for webportal
2025-12-11 01:56:44 +01:00
Laurent Destailleur
4640f4e6cd Merge pull request #36558 from thersane-john/fix-dialog-patch-02-grab-to-scroll
UIUX : Add real-size image dialog with drag-to-scroll support in WebPortal
2025-12-11 01:54:15 +01:00
Laurent Destailleur
ade51d30ee Merge pull request #36580 from defrance/patch-712763
partnership add info to use dictionnary on type
2025-12-11 01:52:27 +01:00
Laurent Destailleur
d42f5c0eaf Merge branch '21.0' into 21_fixacc1 2025-12-11 01:51:46 +01:00
Laurent Destailleur
c9a2f53ff4 Merge pull request #36594 from AlainCis/fix/stock-card-sort-link
#FIX #35136
2025-12-11 01:49:35 +01:00
Laurent Destailleur
613b576367 Merge branch 'develop' into fix_project 2025-12-11 01:48:45 +01:00
Laurent Destailleur
7e052e5852 Merge branch 'develop' into new-expense-report-api-update-line 2025-12-11 01:48:10 +01:00
Laurent Destailleur
6349c6641b Merge pull request #36606 from defrance/patch-606226
add new route on api holiday (and change since in comment)
2025-12-11 01:47:40 +01:00
Laurent Destailleur
c07d53993d Merge pull request #36573 from frederic34/patch-8
fix do not hide errors
2025-12-11 01:38:19 +01:00
Laurent Destailleur
b4b78bc5e7 Merge pull request #36598 from Hystepik/fix-phan-warnings-on-calendar.class
fix phan warnings on calendar class
2025-12-11 01:37:14 +01:00
Laurent Destailleur
9c9244d780 Merge branch 'develop' into fix-some-phpstan-warnings 2025-12-11 01:35:22 +01:00
Laurent Destailleur
a4a439b4ff Merge branch 'develop' into fix-trigger-prospect-status 2025-12-11 01:30:50 +01:00
Laurent Destailleur
8bd3838194 Merge pull request #36588 from frederic34/patch-12
fix warnings
2025-12-11 01:30:03 +01:00
Laurent Destailleur
da981d9486 Merge pull request #36590 from W1W1-M/fix-product-card-creation-reload
FIX field reset on product creation form reload
2025-12-11 01:29:31 +01:00
Laurent Destailleur
bc79dddaee Merge pull request #36592 from Hystepik/fix-path-traversal
Fix path traversal  with $_SERVER["CONTEXT_DOCUMENT_ROOT"] variable for modulebuilder modules
2025-12-11 01:28:24 +01:00
Laurent Destailleur
5576da754f Merge pull request #36600 from Danelif/add-source-field-export-purchase
Add source field export purchase
2025-12-11 01:26:33 +01:00
Laurent Destailleur
1deba3a482 Merge branch 'develop' into add-source-field-export-purchase 2025-12-11 01:25:42 +01:00
Laurent Destailleur
3dabe3f0c3 Merge branch 'develop' into qual/phan20251209 2025-12-11 01:24:47 +01:00
Laurent Destailleur
f9ea66a205 Merge pull request #36599 from frederic34/patch-14
Fix CI v21 Update commonobject.class.php with same phpdoc than in develop
2025-12-11 01:21:53 +01:00
Laurent Destailleur
4f5918a9c9 Merge branch 'develop' into fix/filter-closed-thirdparty-contacts 2025-12-11 01:20:22 +01:00
Laurent Destailleur
6023aae923 Merge branch 'develop' into patch-606226 2025-12-11 01:19:53 +01:00
Laurent Destailleur
c892df2d40 Update api_holidays.class.php 2025-12-11 01:19:20 +01:00
Laurent Destailleur
46312053db Merge branch 'develop' into fix-phan-warnings-on-calendar.class 2025-12-11 01:17:31 +01:00
Laurent Destailleur
3ad84da873 Merge pull request #36595 from mdeweerd/fix/ci/phan/20251209
Fix(ci/phan): Fix several phan notices
2025-12-11 01:17:10 +01:00
Laurent Destailleur
971fbbfd77 Merge branch 'develop' into fix/ci/phan/20251209 2025-12-11 01:15:36 +01:00
Laurent Destailleur
852f5c66ad Merge pull request #36601 from ibuiv/patch-13
FIX Enhance VAT loading logic for supplier and buyer
2025-12-11 01:12:33 +01:00
Laurent Destailleur
b15889139e Merge branch 'develop' into patch-13 2025-12-11 01:10:21 +01:00
Laurent Destailleur
420a4d6199 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-11 01:09:58 +01:00
Laurent Destailleur
9b4b25fc0f Fix CI 2025-12-11 01:09:40 +01:00
Laurent Destailleur
d1c829a79f Fix CI 2025-12-11 01:07:44 +01:00
Laurent Destailleur
392862ad23 Merge pull request #36578 from HB9HIL/develop
UIUX: Small Typo in German Language
2025-12-11 00:55:45 +01:00
Laurent Destailleur
258722e545 Merge pull request #36575 from Dolibarr/phpstan-baseline
PHPStan > Update baseline
2025-12-11 00:55:05 +01:00
Laurent Destailleur
365c5b1015 Fix test on negative balance 2025-12-11 00:50:37 +01:00
Charlène Benke
f9dbe91c3f Update api_holidays.class.php 2025-12-10 17:38:42 +01:00
Charlène Benke
34f78f581b Set holiday status to approved before approval 2025-12-10 17:33:10 +01:00
Zakaria Boushaba
dd7a76b1b5 Fix: exclude closed third parties from contacts selection 2025-12-10 16:57:22 +01:00
Charlène Benke
da6dfebc70 Remove unnecessary blank lines in api_holidays.class.php 2025-12-10 16:52:52 +01:00
Charlène Benke
3dc2731e0e Set holiday status to validated on specific actions 2025-12-10 16:36:34 +01:00
Charlène Benke
9289383cfa Change permission check from 'write' to 'approve' 2025-12-10 16:17:00 +01:00
Charlène Benke
8ef1b5756b add new route on api holiday (and change since in comment) 2025-12-10 16:09:42 +01:00
Laurent Destailleur
2d0c554011 Debug v23 Missing button for Prepare Credit Transfer 2025-12-10 15:33:33 +01:00
alain.cisirika
4585f4e157 [FIX] Fixed sorting links in /product/stock/card.php by correcting print_liste_field_titre arguments (passing warehouse ID to the 5th argument instead of the 4th) and replacing &amp; with & to prevent double-encoding. 2025-12-10 14:32:39 +02:00
antonin_tdj
e8bb08ea47 FIX Enhance VAT loading logic for supplier and buyer
Refactor VAT loading to handle supplier and buyer roles dynamically.
2025-12-10 10:50:52 +01:00
Danelif
629a66ce9d Add source field to export purchase 2025-12-10 11:19:34 +02:00
Danelif
cd4c555af8 improve purchase order line import by adding rang and flexible key selection 2025-12-10 10:52:28 +02:00
Lucas Marcouiller
16ea5afd31 Merge branch 'develop' into fix-some-phpstan-warnings 2025-12-10 09:38:20 +01:00
Lucas Marcouiller
81988d5be8 Merge branch 'develop' into fix-path-traversal 2025-12-10 09:38:13 +01:00
Lucas Marcouiller
021c7da3c5 Merge branch 'develop' into fix-phan-warnings-on-calendar.class 2025-12-10 09:38:00 +01:00
Frédéric FRANCE
06f29c559e Update propal.class.php 2025-12-09 21:23:31 +01:00
Laurent Destailleur
64f966eddf Debug v23 2025-12-09 21:14:03 +01:00
Frédéric FRANCE
70f7a21ad1 Update commonobject.class.php with same phpdoc than in develop 2025-12-09 21:04:23 +01:00
Laurent Destailleur
332662aeaa WIP LNE 2025-12-09 20:56:05 +01:00
Lucas Marcouiller
8b4d4f0512 Merge branch 'develop' into fix-phan-warnings-on-calendar.class 2025-12-09 16:48:54 +01:00
Lucas Marcouiller
c6b8c03137 fix phan warnings on calendar class 2025-12-09 16:45:24 +01:00
Laurent Destailleur
d400c0d89a Debug v23 - Pbwith high number of products
Add filter on country into partnership selector.
2025-12-09 16:27:49 +01:00
MDW
6f4516f310 Qual: Allow null for $outputlangs in get_date_range
# Qual: Allow null for $outputlangs in get_date_range

`null` is already the default for $outputlangs so allow it as an
argument value (fixes phan notice)
2025-12-09 15:03:04 +01:00
MDW
245fdda75b Qual: Update deleteLine method parameter type for $fuser
The parameter `$fuser` in the `deleteLine` method has been updated to explicitly accept a `?User` type, which is the type that is expected by ExpenseReport::call_trigger
2025-12-09 15:02:57 +01:00
MDW
9d39ac76de Qual(menu): Replace str_pad with str_repeat (fix phan notices)
The changes replace instances of `str_pad('', $level)` with `str_repeat(' ', $level)`.
This fixes suspicious argument order notices for str_pad (in phan).
2025-12-09 15:02:51 +01:00
Laurent Destailleur
2bdcec1e63 Doc 2025-12-09 14:51:03 +01:00
Laurent Destailleur
add2758316 CSS 2025-12-09 14:30:40 +01:00
Lucas Marcouiller
b7a3dab010 Merge branch 'develop' into fix-some-phpstan-warnings 2025-12-09 14:07:57 +01:00
MDW
32ab4f1217 Qual: Update phan baseline 2025-12-09 13:46:55 +01:00
Lucas Marcouiller
3f406a994f Fix path traversal with $_SERVER["CONTEXT_DOCUMENT_ROOT"] variable for new modulebuilder modules 2025-12-09 13:36:20 +01:00
Dolibot
56c6b48eff PHPStan > Update baseline 2025-12-09 12:11:04 +00:00
Laurent Destailleur
f5903feb53 CSS 2025-12-09 11:57:09 +01:00
Laurent Destailleur
b4d659d8d9 CSS 2025-12-09 11:46:30 +01:00
William Mead
c464a2d5b2 Fixed field reset on reload. Updated contributor details. 2025-12-09 11:38:24 +01:00
Laurent Destailleur
0e42497112 Debug v23 2025-12-09 11:20:21 +01:00
Laurent Destailleur
e8ac6cddd0 Fix Replace of__[xx]__ variables. 2025-12-09 11:09:19 +01:00
Frédéric FRANCE
8c55ffd324 fix warnings 2025-12-09 11:01:22 +01:00
Frédéric FRANCE
39baead02d fix read property client on null 2025-12-09 10:45:06 +01:00
Frédéric FRANCE
6ce7ba17f4 fix read property client on null 2025-12-09 10:42:51 +01:00
VESSILLER
157aa32e0a FIX undefined variables on create invoice card from order (backport from v19) 2025-12-09 10:12:10 +01:00
Pcauderlier
4bb5a0cdf1 Fix: Correct implementation of update() call in ajaxstatusprospect.php 2025-12-09 09:30:42 +01:00
Pcauderlier
40a789f42e Fix: Use Societe->update() in ajaxstatusprospect.php to fire COMPANY_MODIFY trigger 2025-12-09 09:05:20 +01:00
William Mead
3304ae0819 Merge branch 'develop' into new-expense-report-api-update-line 2025-12-09 08:54:52 +01:00
Alexandre SPANGARO
f8c66e9199 FIX Accountancy - No limit on chart of account to define category on account 2025-12-09 06:50:15 +01:00
Alexandre SPANGARO
23a01f78d0 FIX #35375 Accountancy - SQL error on empty filter account category 2025-12-09 04:25:37 +01:00
Charlène Benke
064b6e2d2d partnership add info to use dictionnary on type 2025-12-08 23:29:34 +01:00
HB9HIL
97b811f170 Fixed Typo in German Language 2025-12-08 21:44:47 +01:00
Laurent Destailleur
29a157f8ee Debug v23 2025-12-08 20:58:03 +01:00
Laurent Destailleur
c5ddb76fd7 Debug v23. Bad balance ul/li in menu. 2025-12-08 20:33:48 +01:00
Laurent Destailleur
8b98a5a019 CSS 2025-12-08 18:39:42 +01:00
William Mead
0590d45a12 Cleaned code 2025-12-08 15:52:12 +01:00
Lucas Marcouiller
5998e20030 fix Ci 2025-12-08 15:51:50 +01:00
Lucas Marcouiller
9331445266 fix missing change 2025-12-08 15:27:45 +01:00
Lucas Marcouiller
67a60aac44 Fix some php stan warnings 2025-12-08 12:02:31 +01:00
Alexandre SPANGARO
75b357ff70 Translate 2025-12-08 10:12:02 +01:00
Frédéric FRANCE
c02f768bda Update commonsubtotal.class.php 2025-12-08 10:11:04 +01:00
Alexandre SPANGARO
2abd7a561f CI 2025-12-08 10:10:39 +01:00
Frédéric FRANCE
5484235993 fix do not hide errors 2025-12-08 10:01:37 +01:00
Alexandre SPANGARO
a60f0a9dda FIX Accountancy - Problem calculating exercises with different tax periods on fixed assets 2025-12-08 09:56:42 +01:00
William Mead
118ab320a1 Fixed line unit price 2025-12-08 08:41:22 +01:00
William Mead
4da1fb91df Added expense report line update method. Fixed line unit price. 2025-12-08 08:40:20 +01:00
Laurent Destailleur
bd1927a3ee Merge pull request #36564 from W1W1-M/new-expense-report-api-delete-line
NEW expense report API delete line method
2025-12-08 00:14:54 +01:00
Laurent Destailleur
b9923592b7 Merge pull request #36549 from Hystepik/fix-phan-warnings
Fix some phan warnings
2025-12-07 23:58:29 +01:00
Laurent Destailleur
9772f8e211 Merge pull request #36552 from priojk/patch-1
Fix #36550 - Multiline-text from substitution variables in ODT has arbitrary spaces at beginnings of some lines
2025-12-07 23:58:02 +01:00
Laurent Destailleur
5822887d32 Merge pull request #36555 from noec764/17_FIX_missing_product_ref
FIX: Missing Product ref in Bom stats
2025-12-07 23:50:13 +01:00
Laurent Destailleur
58e0131e98 Merge pull request #36557 from thersane-john/fix-dialog-patch-02
FIX : WebPortal dialog for objects
2025-12-07 23:49:39 +01:00
Laurent Destailleur
3a18ab8285 Merge pull request #36563 from W1W1-M/new-expense-report-api-add-line
NEW expense report API post line method
2025-12-07 23:42:20 +01:00
Laurent Destailleur
459109c7e5 Merge pull request #36565 from W1W1-M/new-expense-report-api-get-lines
NEW expense report API get lines method
2025-12-07 23:42:02 +01:00
Laurent Destailleur
520cd52784 Merge pull request #36566 from W1W1-M/new-expense-report-api-reopen
NEW expense report API settodraft method
2025-12-07 23:38:24 +01:00
Laurent Destailleur
d4a2d10db6 Merge pull request #36567 from W1W1-M/new-expense-report-api-cancel
NEW expense report API cancel method
2025-12-07 23:38:11 +01:00
Laurent Destailleur
6b1ce0c63c CSS 2025-12-07 19:34:35 +01:00
Laurent Destailleur
91aecad64c CSS 2025-12-07 19:33:21 +01:00
Laurent Destailleur
df0db5beb2 CSS 2025-12-07 19:13:16 +01:00
Laurent Destailleur
73947be822 Fix CI 2025-12-07 17:46:24 +01:00
Laurent Destailleur
f3d3969ed8 Fix CI 2025-12-07 16:34:33 +01:00
Laurent Destailleur
c3b56f928f CSS 2025-12-07 16:28:00 +01:00
Laurent Destailleur
0a03dae12e CSS 2025-12-07 16:18:29 +01:00
William Mead
7693c23fde Added return object 2025-12-07 14:36:06 +01:00
William Mead
df1c9694cb Added cancel exepense report method 2025-12-07 14:32:27 +01:00
William Mead
bd9a97e196 Updated PHPDoc 2025-12-07 14:21:23 +01:00
William Mead
a1a4b2a43b Updated PHPDoc 2025-12-07 14:16:11 +01:00
William Mead
aa29430af0 Updated PHPDoc 2025-12-07 14:15:26 +01:00
William Mead
4ac6fc5c2b Cleaned code 2025-12-07 14:14:52 +01:00
William Mead
df4e4bf8ff Added setToDraft method 2025-12-07 14:10:57 +01:00
Laurent Destailleur
0a0c61ca8c Merge branch '22.0' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-07 14:08:38 +01:00
William Mead
8c4b346174 Added getLines method 2025-12-07 13:58:04 +01:00
William Mead
0a8a9e5f4d Added deleteLine method. Updated contributor details. 2025-12-07 13:40:02 +01:00
William Mead
3e16fac9ea Added postLine method to expense report API. Added mandatory expense report line fields check. 2025-12-07 11:52:13 +01:00
Joachim Kueter
e226a94399 Update odf.php 2025-12-06 23:04:10 +01:00
Laurent Destailleur
a0960d78b4 Fix CI 2025-12-06 14:22:56 +01:00
John BOTELLA
b7fabfda68 add grab to scroll behavior 2025-12-06 14:21:15 +01:00
Laurent Destailleur
89c568ccb7 Fix picto 2025-12-06 13:53:34 +01:00
John BOTELLA
fe0dce8072 fix modal css and display 2025-12-06 13:16:53 +01:00
Elifeleti Mukisa Dan
6ebbcb0162 Merge branch 'develop' into add-rang-in-import 2025-12-06 12:33:31 +02:00
John BOTELLA
161d1de917 Merge branch 'develop' into fix_webportal_missing_hooks 2025-12-06 10:48:10 +01:00
Laurent Destailleur
20ecee89d5 Debug v23 - hide field with unknown meaning. 2025-12-06 05:20:32 +01:00
Laurent Destailleur
f7114175ab Merge v22 2025-12-06 05:06:24 +01:00
Laurent Destailleur
418188f37b Debug v23 - fix link social networks 2025-12-06 05:01:27 +01:00
Laurent Destailleur
8f99ea3e67 Fix bad consistency when price_base_type is undefined. Must use the same
default value everywhere (so use price without tax).
2025-12-06 04:34:19 +01:00
Laurent Destailleur
b4589e846d FIX info on supplier payment card on v22 and payment link 2025-12-06 04:18:38 +01:00
Laurent Destailleur
feae915293 Fix var_dump 2025-12-06 04:04:55 +01:00
Laurent Destailleur
38932da470 Debug v23 2025-12-06 03:51:59 +01:00
Laurent Destailleur
40a6eb31ec Debug v23 2025-12-06 03:50:22 +01:00
Laurent Destailleur
fcd6b4ce6b Debug v23 2025-12-06 03:27:49 +01:00
Laurent Destailleur
05c52317b2 Translation 2025-12-06 02:15:47 +01:00
Laurent Destailleur
b3c0daab13 CSS 2025-12-06 02:10:33 +01:00
John BOTELLA
2637e554fb Merge branch 'develop' of https://github.com/Dolibarr/dolibarr into fix_webportal_missing_hooks 2025-12-05 18:18:24 +01:00
John BOTELLA
2556543ec8 add missing hooks 2025-12-05 17:59:26 +01:00
Noé
aa6ef5ae11 FIX: Missing Product ref in Bom stats 2025-12-05 17:22:18 +01:00
Laurent Destailleur
c32cae4051 Merge branch '22.0' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-05 16:42:25 +01:00
Laurent Destailleur
4ea6af9535 Merge branch '21.0' of git@github.com:Dolibarr/dolibarr.git into 22.0 2025-12-05 16:38:15 +01:00
Laurent Destailleur
2e46ac45c5 Merge branch '20.0' of git@github.com:Dolibarr/dolibarr.git into 21.0 2025-12-05 16:34:02 +01:00
Laurent Destailleur
5db0825b49 Merge branch '20.0' of git@github.com:Dolibarr/dolibarr.git into 20.0 2025-12-05 16:28:27 +01:00
Laurent Destailleur
a098185476 Merge branch '19.0' of git@github.com:Dolibarr/dolibarr.git into 20.0 2025-12-05 16:27:07 +01:00
Laurent Destailleur
7cd529a179 Merge branch '18.0' of git@github.com:Dolibarr/dolibarr.git into 19.0 2025-12-05 16:22:11 +01:00
Laurent Destailleur
82c3849baa Fix CI 2025-12-05 16:21:15 +01:00
Joachim Kueter
62aee70f9f Fix for #36550
there are \n and other characters that need to get handled here, otherwise they will get replaced with space character later.
2025-12-05 16:14:48 +01:00
Lucas Marcouiller
02037dd0cc remove var_dump 2025-12-05 15:37:50 +01:00
Lucas Marcouiller
4f093be492 Merge branch 'develop' into fix-phan-warnings 2025-12-05 15:29:56 +01:00
Lucas Marcouiller
ffd6a45550 Fix some phan warnings 2025-12-05 15:29:23 +01:00
Laurent Destailleur
6ccec8fcbf Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-05 12:55:31 +01:00
Laurent Destailleur
13e6a7b936 Debug v23 2025-12-05 12:55:20 +01:00
John BOTELLA
76dd1bae4b Fix missing public select2 and Add CDN url for webportal 2025-12-05 12:13:24 +01:00
Laurent Destailleur
7f6737845e Merge pull request #36546 from defrance/patch-835467
Update holiday api methods from setValidate/setApproved to validate/a…
2025-12-05 12:09:23 +01:00
Laurent Destailleur
b36d6b4f06 Merge pull request #36529 from thersane-john/fix_css_display_webportal_card
Fix :  webportal css for cards + responsive behavior
2025-12-05 12:04:38 +01:00
Laurent Destailleur
d3d02d90f1 Merge pull request #36545 from BenjaminFlr/betterissue36514
FIX(propal): values lost when editing HT price
2025-12-05 12:02:44 +01:00
Laurent Destailleur
c4dc7b6fdb Doc 2025-12-05 11:57:45 +01:00
Laurent Destailleur
4f6c7f6168 CSS 2025-12-05 11:55:29 +01:00
Charlène Benke
5149d567e1 Update holiday api methods from setValidate/setApproved to validate/approve 2025-12-05 11:47:40 +01:00
Laurent Destailleur
11a89e218d Typo 2025-12-05 11:32:08 +01:00
Laurent Destailleur
8e79dfd84b Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-05 11:30:56 +01:00
Laurent Destailleur
54f767f48a Allow to define if data is user input or not into GETPOSTFLOAT. 2025-12-05 11:30:21 +01:00
Benjamin Falière
2050a657cf FIX(propal): values lost when editing HT price 2025-12-05 11:23:31 +01:00
John BOTELLA
181b0c1156 Merge branch 'develop' of https://github.com/Dolibarr/dolibarr into fix_css_display_webportal_card 2025-12-05 11:16:46 +01:00
Laurent Destailleur
bc0a3ddca3 Merge pull request #36543 from thersane-john/fix_webportal_iframe_dialog
FIX : WebPortal  dialog for iframe
2025-12-05 11:15:46 +01:00
John BOTELLA
da6cbf88a6 Fix isset usage 2025-12-05 11:01:28 +01:00
John BOTELLA
12969ff1bd Merge branch 'fix_css_display_webportal_card' of github.com:thersane-john/dolibarr into fix_css_display_webportal_card 2025-12-05 10:55:16 +01:00
John BOTELLA
4d0d2249c5 Merge branch 'develop' of https://github.com/Dolibarr/dolibarr into fix_css_display_webportal_card 2025-12-05 10:54:57 +01:00
John BOTELLA
844e3996b3 Fix isset usage 2025-12-05 10:54:35 +01:00
John BOTELLA
9cfab852b8 restaure times 2025-12-05 10:47:03 +01:00
John BOTELLA
8041cdee1a Fix dialog for iframe 2025-12-05 10:27:29 +01:00
Laurent Destailleur
ae0d704aa0 Merge pull request #36508 from defrance/patch-259291
Update addTimeSpent api method to use default progress
2025-12-05 09:57:19 +01:00
Laurent Destailleur
d2acb6010f Merge pull request #36537 from aspangaro/22_asset1
FIX Accountancy - #36090 Inconsistent date on various journal
2025-12-05 09:50:28 +01:00
Laurent Destailleur
b2fe08cd3b Merge pull request #36538 from aspangaro/22_asset2
FIX Accountancy - Not propose to write operation on draft asset
2025-12-05 09:49:08 +01:00
Laurent Destailleur
c932a1c878 Merge pull request #36542 from ATM-Consulting/FIX/155/18.0/regression-variable-renaming
FIX: fix #36401 (for v17.0) doesn't work in v18.0+ because of variable renaming
2025-12-05 09:48:32 +01:00
Laurent Destailleur
f2f8278603 Merge pull request #36539 from W1W1-M/backport-fix-propal-update-shipping-availability
FIX propal shipping and availability update (v18+)
2025-12-05 09:47:25 +01:00
Laurent Destailleur
59aa76e475 Merge pull request #36540 from aspangaro/22_asset4
FIX Accountancy - Reverse accounting account in depreciation expense entries for fixed assets
2025-12-05 09:46:45 +01:00
Eric Seigne
c6ed34ebcc backport of PR36378 : Problem with deposit line on Type of operation 2025-12-05 09:32:03 +01:00
atm-florian
cc5a8fd15a FIX: PR#36401 fixed a missing GETPOSTISSET() but the check involves a variable ($taskid) that was renamed ($tmptaskid) in 18.0 2025-12-05 09:29:15 +01:00
Alexandre SPANGARO
c480cd4801 FIX Accountancy - Reverse accounting account in depreciation expense entries for fixed assets 2025-12-05 08:58:00 +01:00
William Mead
a567cade7d Fixed shipping and availability updating. Updated contributor details. 2025-12-05 08:56:14 +01:00
Alexandre SPANGARO
67d7fa8f78 FIX Accountancy - Not propose to write operation on draft asset 2025-12-05 06:47:49 +01:00
Alexandre SPANGARO
77e8924c93 FIX #36090 Accountancy - Inconsistent date on various journal 2025-12-05 06:41:39 +01:00
Laurent Destailleur
550db706dc Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-05 02:13:27 +01:00
Laurent Destailleur
d6ae74b3a9 CSS 2025-12-05 02:12:35 +01:00
Laurent Destailleur
a5729bc6e9 Merge branch 'develop' into fix_css_display_webportal_card 2025-12-04 22:16:00 +01:00
Laurent Destailleur
dff6319ffd Merge pull request #36503 from atm-florianm/FIX/155/DA027405/situation-percent-two-modes
FIX: when INVOICE_USE_SITUATION === 2, some libs still use the old algorithms
2025-12-04 22:13:47 +01:00
Laurent Destailleur
5648a23027 Merge branch 'develop' into patch-259291 2025-12-04 22:02:50 +01:00
Laurent Destailleur
8b51ff85fd Fix CI 2025-12-04 21:58:10 +01:00
Laurent Destailleur
764bb3791b Fix CI 2025-12-04 21:51:03 +01:00
Laurent Destailleur
9ac82f488e Fix CI 2025-12-04 21:50:26 +01:00
Laurent Destailleur
8fe5d2758a Fix CI 2025-12-04 21:48:44 +01:00
Laurent Destailleur
a9d2c95fdd Fix CI 2025-12-04 21:47:02 +01:00
Laurent Destailleur
b4c374fd48 Fix CI 2025-12-04 21:45:34 +01:00
Laurent Destailleur
c9d1f3baa3 Merge pull request #36527 from FHenry/22_fix_subtotal_attribute_copy
fix: when create invoices from orders list, title and subtotal attribute is now copied
2025-12-04 21:26:01 +01:00
Laurent Destailleur
ab18e9d647 Merge branch 'develop' into patch-259291 2025-12-04 21:12:26 +01:00
Laurent Destailleur
810ac047dc Fix CI 2025-12-04 21:08:17 +01:00
Laurent Destailleur
dc0656bf02 Merge branch 'develop' into patch-259291 2025-12-04 21:01:15 +01:00
Laurent Destailleur
757e01eaaa Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-04 20:58:00 +01:00
Laurent Destailleur
1cd7de6e21 Better compatibility 2025-12-04 20:57:43 +01:00
Laurent Destailleur
e49f907cdc Merge pull request #36511 from lelex86/lelex86-patch-1
FIX: use suspended status in FactureFournisseurRec::updateline()
2025-12-04 20:57:04 +01:00
Laurent Destailleur
e350886c15 Merge branch '22.0' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-04 20:38:22 +01:00
HENRY Florian
a3dfae7792 Merge branch '22.0' into 22_fix_subtotal_attribute_copy 2025-12-04 20:30:17 +01:00
Laurent Destailleur
78316a577d Merge branch '21.0' of git@github.com:Dolibarr/dolibarr.git into 22.0 2025-12-04 20:26:59 +01:00
Florian HENRY
7e264b0097 Merge branch '22.0' of https://github.com/Dolibarr/dolibarr into 22_fix_subtotal_attribute_copy 2025-12-04 19:58:49 +01:00
Florian HENRY
12936afb13 review 2025-12-04 19:58:42 +01:00
Laurent Destailleur
3068a778da Merge branch '20.0' of git@github.com:Dolibarr/dolibarr.git into 21.0 2025-12-04 19:51:48 +01:00
Laurent Destailleur
9d307a4238 Merge branch '19.0' of git@github.com:Dolibarr/dolibarr.git into 20.0 2025-12-04 19:07:33 +01:00
Laurent Destailleur
193a42cd47 Fix #36520 2025-12-04 19:02:57 +01:00
Laurent Destailleur
222cd76799 Merge branch '18.0' of git@github.com:Dolibarr/dolibarr.git into 19.0 2025-12-04 18:53:04 +01:00
Laurent Destailleur
47799b88cf Merge branch '17.0' of git@github.com:Dolibarr/dolibarr.git into 18.0 2025-12-04 18:40:23 +01:00
Laurent Destailleur
78ca968db6 Merge pull request #36517 from atm-florianm/SEC/commented-out-restrictedArea
SEC: FIX #36430 permissions not checked on other tabs of HRM evaluation card
2025-12-04 18:37:46 +01:00
Laurent Destailleur
880eaa4592 Merge pull request #36530 from W1W1-M/fix-propal-update-shipping-availability
FIX propal shipping and availability update
2025-12-04 18:35:57 +01:00
Laurent Destailleur
4b2b01b1cd Merge branch 'develop' into fix_css_display_webportal_card 2025-12-04 18:34:43 +01:00
Laurent Destailleur
e6f9741987 Merge pull request #36521 from JonBendtsen/BUG_35655_API_Contract_Creation_Fails_for_Non-Admin_Users_in_Version_22.0.2
FIX #35655 API Contract Creation Fails for Non-Admin Users in Version 22.0.2
2025-12-04 18:32:46 +01:00
Laurent Destailleur
9c038b6bbb Merge branch 'develop' into add-rang-in-import 2025-12-04 18:32:24 +01:00
Laurent Destailleur
46e509448d Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-04 18:31:52 +01:00
Laurent Destailleur
bb9f381e9f Fix CI 2025-12-04 18:31:31 +01:00
Laurent Destailleur
5155b65263 Merge branch 'develop' into add-rang-in-import 2025-12-04 18:23:42 +01:00
Laurent Destailleur
50db4e6499 Merge pull request #36518 from JonBendtsen/fix_36507_commit_9801f02
Fix broken commit 9801f02 mentioned in issue #36507
2025-12-04 18:15:43 +01:00
Laurent Destailleur
b4309adb23 Merge pull request #36534 from JonBendtsen/BUG__API_POST_contact_to_a_non-existing_socid_gives_DB_error__36407
FIX #36407 BUG: API POST contact to a non-existing socid gives DB error
2025-12-04 18:09:59 +01:00
Laurent Destailleur
c2902827a9 Fix CI 2025-12-04 18:09:43 +01:00
Laurent Destailleur
0235e86f64 Merge pull request #36484 from Hystepik/fix-#36475
Fix #36475 bad value for project  gantt start
2025-12-04 17:43:03 +01:00
Laurent Destailleur
c0bb5d2d77 Merge pull request #36499 from frederic34/patch-8
clean code
2025-12-04 17:42:16 +01:00
William Mead
7f68370536 Merge branch 'develop' into fix-propal-update-shipping-availability 2025-12-04 17:37:37 +01:00
Noé
2ee07bb049 FIX: Remove <?= 2025-12-04 17:27:57 +01:00
Frédéric FRANCE
50c27b304e Update blockedlog.php 2025-12-04 17:27:15 +01:00
Jon Bendtsen
3d2a826865 FIX #36407 BUG: API POST contact to a non-existing socid gives DB error 2025-12-04 17:09:59 +01:00
Laurent Destailleur
adf3ca572c Merge pull request #36509 from defrance/patch-781201
Fix permission check from 'lire' to 'read'
2025-12-04 16:53:43 +01:00
Laurent Destailleur
bdb4a66088 Merge branch 'develop' into patch-781201 2025-12-04 16:53:26 +01:00
Laurent Destailleur
a578757389 Merge branch 'develop' into patch-8 2025-12-04 16:38:03 +01:00
Laurent Destailleur
526da8e5a7 Merge pull request #36505 from otcesar/22.0
Fix translation for import error
2025-12-04 16:37:31 +01:00
Jon Bendtsen
8deec3f918 it returns an Object, but it can not be TimeSpent because that creates a infinite loop 2025-12-04 16:23:13 +01:00
William Mead
8be39d4f5a Fixed shipping and availability updating. Updated contributor details. 2025-12-04 15:05:10 +01:00
Laurent Destailleur
9257e5e3bd Merge branch 'develop' into fix_css_display_webportal_card 2025-12-04 14:53:52 +01:00
Laurent Destailleur
998d8c4b50 Fix warning 2025-12-04 14:53:33 +01:00
Laurent Destailleur
966bdc84e5 Fix warning 2025-12-04 14:46:10 +01:00
Laurent Destailleur
23db225ec3 Merge pull request #36523 from FHenry/22_fix_subtotal_feature
FIX: subtotal feature button availablity according setup
2025-12-04 14:30:43 +01:00
Laurent Destailleur
d647a95de8 Merge pull request #36525 from BenjaminFlr/issue36514
FIX(propal): Incorrect HT/TTC recalculation when editing proposal lines #36514
2025-12-04 14:24:08 +01:00
Laurent Destailleur
863dd31ab1 Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-04 14:20:24 +01:00
Laurent Destailleur
9e63298b2e CSS 2025-12-04 14:20:08 +01:00
Laurent Destailleur
0a45c9b368 Merge pull request #36524 from FHenry/22_feat_subtotal_defaut_values
new: defaut to True show unit price on title and sub total
2025-12-04 14:06:47 +01:00
Laurent Destailleur
39e200eb50 Debug v23 2025-12-04 14:00:34 +01:00
John BOTELLA
e80752edfd Fix webportal css 2025-12-04 13:16:46 +01:00
Laurent Destailleur
e329c11e82 Fix warning 2025-12-04 12:54:56 +01:00
Laurent Destailleur
03f26d3a6d Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-04 12:51:59 +01:00
Laurent Destailleur
c635f5f9c5 Fix detection of security commit 2025-12-04 12:51:49 +01:00
Laurent Destailleur
69cfb09b62 Fix detection of security commit 2025-12-04 12:42:02 +01:00
Laurent Destailleur
11787eb4ff Trans 2025-12-04 12:30:17 +01:00
Laurent Destailleur
47896f320a Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop 2025-12-04 12:23:17 +01:00
Laurent Destailleur
b530ab7e5d Debug v23 - Navigation in timespent and style 2025-12-04 12:22:44 +01:00
Florian HENRY
7f3ac106fc fix: when create bills from orders list, title and subtotal attribute is now copied 2025-12-04 11:00:58 +01:00
Florian HENRY
c39cba8395 fix: when create bills from orders list, title and subtotal attribute is now copied 2025-12-04 10:57:24 +01:00
Laurent Destailleur
aa8fac1deb Merge pull request #36429 from atm-adrien/FIX/MulticompanyStockCompatibility
FIX : Implementation of multi-company compatibility with inventory/warehouse management
2025-12-04 10:42:35 +01:00
Benjamin Falière
68004a4009 FIX(propal): Incorrect HT/TTC recalculation when editing proposal lines 2025-12-04 10:35:42 +01:00
Florian HENRY
6b05561ee8 new: defaut to True show unit price on title and sub total 2025-12-04 10:22:47 +01:00
lippoliv
959308c910 fix line indentation 2025-12-04 10:20:38 +01:00
Florian HENRY
a38ffa02ac fix: subtotal feature button availablity according setup 2025-12-04 10:18:01 +01:00
lippoliv
bb06e850f1 do not create accelerated deprecation lines if disabled 2025-12-04 10:15:50 +01:00
Eric - CAP-REL
2ebdcfda5c Merge pull request #35788 from Easya-Solutions/18_allow_credit_invoice_on_situation
FIX : remove useless condition to create credit on situation invoice …
2025-12-04 09:56:30 +01:00
Eric - CAP-REL
70431043af Merge pull request #36398 from Easya-Solutions/18.0_fix-invoice-card-variables
FIX undefined variables on create invoice from shipment card (backport from v20)
2025-12-04 09:30:56 +01:00
lvessiller-opendsi
ad37ece7bc Merge pull request #36494 from atm-florianm/FIX/155/date/minute-second-vs-min-sec
FIX 18.0: `GETPOSTDATE()` and `buildParamDate()` assumed wrong HTTP param names
2025-12-04 09:27:44 +01:00
Frédéric FRANCE
23694d67f1 Update blockedlog.php 2025-12-04 08:48:01 +01:00
Frédéric FRANCE
5701aa4b35 Merge branch 'develop' into patch-8 2025-12-04 08:36:15 +01:00
Jon Bendtsen
11cd186e9a remove debugging dol_syslog 2025-12-03 21:54:33 +01:00
Jon Bendtsen
8dc2eb0fe4 Checking for access to both new and old socid 2025-12-03 21:52:35 +01:00
Jon Bendtsen
66d3df4cc6 Fix broken commit 9801f02 mentioned in issue #36507 2025-12-03 21:06:13 +01:00
atm-florian
a1476fd221 SEC: permissions not checked on other tabs of HRM evaluation card 2025-12-03 17:11:14 +01:00
atm-florian
a49047b0d8 phpdoc: wrong return type 2025-12-03 16:57:09 +01:00
atm-florian
c464150b4b FIX bad ratio calculation 2025-12-03 16:43:11 +01:00
atm-florian
a2b1d1ed02 FIX missing space before cast 2025-12-03 16:01:11 +01:00
atm-florian
9737acc75a FIX wrong indentation 2025-12-03 15:34:12 +01:00
atm-florian
0c4fbc5270 Merge branch 'FIX/155/DA027405/situation-percent-two-modes' of github.com:atm-florianm/dolibarr into FIX/155/DA027405/situation-percent-two-modes 2025-12-03 15:14:38 +01:00
atm-florian
c5b0c1c318 FIX: INVOICE_USE_SITUATION (1 = legacy, 2 = new): some functions still use only the legacy algorithm 2025-12-03 15:13:39 +01:00
Charlène Benke
656255eecd Fix progress assignment in addTimeSpent method 2025-12-03 13:03:09 +01:00
lelex86
f6e667da1a FIX: use suspended status in FactureFournisseurRec::updateline()
- The method checks `$this->status == self::STATUS_SUSPENDED`.
- For recurring **supplier** invoices, `$this->status` is not populated (it is always `null`).
- The real field used to store the suspended flag of the template is `$this->suspended`.
2025-12-03 09:59:03 +01:00
Lucas Marcouiller
59ccde0087 Merge branch '22.0' into fix-#36475 2025-12-03 09:49:23 +01:00
Charlène Benke
dc6c593187 Fix permission check from 'lire' to 'read' 2025-12-03 09:29:48 +01:00
Charlène Benke
4c597d650b Update addTimeSpent api method to use default progress
with null parameters, swagger validator fail
2025-12-03 07:40:57 +01:00
Frédéric FRANCE
0c6b16060f Merge branch 'develop' into patch-8 2025-12-02 20:59:27 +01:00
Jon Bendtsen
268996c672 testing for access to the thirdpartytmp 2025-12-02 17:26:53 +01:00
Jon Bendtsen
ddd2927e31 This commit has errors, if you use PUT in the API with a new socid that the user does not have permission to, then it STILL updates the contract, and then it gets the contract after update and tells me I do not have access 2025-12-02 17:23:26 +01:00
Jon Bendtsen
b48fed1719 PUT now checks both existing socid and any potentially updated socid for access 2025-12-02 17:23:26 +01:00
Jon Bendtsen
26a39d1cc8 creating Thirdparties object takes no arguments 2025-12-02 17:23:26 +01:00
Jon Bendtsen
6f18235bab both socid exists and access to is checked in api_thirdparty GET :-) 2025-12-02 17:23:26 +01:00
Jon Bendtsen
1c697607b1 default deny access, allow access if user has the right combination of permissions and/or is the sales representative for the thirdparty 2025-12-02 17:23:26 +01:00
Jon Bendtsen
36415f1fd2 giving a slight better error message 2025-12-02 17:23:26 +01:00
Jon Bendtsen
9941a20fa8 Check if API user has rights to see all thirdparties
Check if API user has rights to see all thirdparties - though perhaps we should check if the user has rights to this particular thirdparty in this contract?
2025-12-02 17:23:26 +01:00
tcesar
6545957cbd Fix traduction for import error 2025-12-02 16:37:30 +01:00
Danelif
5ef3998a54 improve purchase order line import by adding rang and flexible key selection 2025-12-02 16:19:18 +02:00
atm-florian
c48b719473 FIX: now there are two values for INVOICE_USE_SITUATION (1 = legacy, 2 = new), leading to two interpretations of situation_percent; in some algorithms, only the old algorithm was applied even when the new mode was on 2025-12-02 15:10:43 +01:00
atm-florian
c27146f44c FIX: now there are two values for INVOICE_USE_SITUATION (1 = legacy, 2 = new), leading to two interpretations of situation_percent; in some algorithms, only the old algorithm was applied even when the new mode was on 2025-12-02 14:42:15 +01:00
Frédéric FRANCE
a560d4f886 clean code 2025-12-02 09:11:56 +01:00
Lucas Marcouiller
894bbd5786 Merge branch '22.0' into fix-#36475 2025-12-02 08:36:25 +01:00
Lucas Marcouiller
55977d16f1 fix warning 2025-12-02 08:35:53 +01:00
Lucas Marcouiller
792070b5f5 fix a potential warning 2025-12-02 08:34:41 +01:00
Laurent Destailleur
64bab261a9 Merge pull request #36495 from mapiolca/patch-67
Backport: fix intervention “Signed” confirmation when no status is selected
2025-12-01 16:47:51 +01:00
Pierre Ardoin
1c94462405 Update copyright year for Pierre Ardoin 2025-12-01 14:03:40 +01:00
Pierre Ardoin
dad4bbddd2 Report fix on 21.0
Fix an issue that have been fixed by Charlene Benke on v22
2025-12-01 14:00:38 +01:00
atm-florian
0e1c580f11 FIX 18.0: GETPOSTDATE and buildParamDate assumed HTTP param names 'minute' and 'second' instead of 'min' and 'sec' 2025-12-01 13:47:50 +01:00
Laurent Destailleur
4223ff08ce Merge pull request #36491 from Easya-Solutions/18.0_fix-update-extras
FIX not remove value of others extra-fields on update extras action
2025-12-01 13:10:08 +01:00
lvessiller-opendsi
0beee0bec5 Merge branch '14.0' into 14.0_fix-purge-files-api-temp 2025-12-01 11:53:59 +01:00
VESSILLER
d16f8b68db FIX not remove value of others extra-fields on update extras action 2025-12-01 11:14:16 +01:00
Lucas Marcouiller
8664f74154 Fix #36475 bad value for project gantt start 2025-11-29 21:55:45 +01:00
Laurent Destailleur
f4bcf47008 Merge pull request #36467 from emheyarssi/35061
FIX #35061
2025-11-29 11:28:03 +01:00
marc
5c6b4f62c8 FIX #35061
Signed-off-by: marc <marc.baur@ptmsoft.fr>
2025-11-28 18:25:00 +01:00
Laurent Destailleur
d8891130f5 Merge pull request #36463 from vold-lu/18.0
NEW: Automatically release docker image for each GitHub release
2025-11-28 18:13:47 +01:00
Aloïs Micard
b2f9de7489 Add new workflow to trigger Docker build 2025-11-28 17:27:32 +01:00
Noé
3416c6ccc0 FIX: getDolGlobalInt 2025-11-27 10:00:43 +01:00
Laurent Destailleur
63cc9127ba Merge pull request #36434 from atm-lucasmantegari/FIX/ErrorFieldFilterInEvaluation
FIX - Missing AND on fields filter on evaluation class
2025-11-26 22:27:03 +01:00
Laurent Destailleur
097168cb05 Merge branch '21.0' into FIX/ErrorFieldFilterInEvaluation 2025-11-26 22:12:22 +01:00
Laurent Destailleur
f3b467a9ba Merge branch '21.0' into FIX/ErrorFieldFilterInEvaluation 2025-11-26 22:03:40 +01:00
ATM-Lucas
4585facfcc Missing AND on fields filter on evaluation class 2025-11-26 16:47:32 +01:00
Adrien Raze
c1c2358e75 FIX : Implementation of multi-company compatibility with inventory/warehouse management 2025-11-26 12:30:22 +01:00
VESSILLER
1cd3ca3222 FIX undefined variables on create invoice from shipment card (backport from v20) 2025-11-24 10:30:08 +01:00
Noé
92197cb100 FIX: php echo instead of <? 2025-11-21 16:06:09 +01:00
Noé
9319059349 FIX: Sometimes socid = undefined 2025-11-20 14:01:29 +01:00
VESSILLER
c2ae7d2da1 FIX create API temp directory in Dolibarr API constructor 2025-11-13 14:01:34 +01:00
VESSILLER
71ec381d3e FIX re-create API temp dir after purging temp files 2025-11-10 10:56:07 +01:00
Laurent Destailleur
1eed0e18a9 Update CMailFile.class.php 2025-10-21 02:11:56 +02:00
Laurent Destailleur
2153dbb0f1 Update CMailFile.class.php 2025-10-21 02:09:51 +02:00
Ryad ABANI
52446678d0 FIX: php8.1 warning in syslog message 2025-10-20 16:23:22 +02:00
tnegre
8ddf9f6075 FIX : remove useless condition to create credit on situation invoice (#35786) 2025-10-16 11:57:49 +02:00
3291 changed files with 119154 additions and 30691 deletions

10
.gitattributes vendored
View File

@@ -39,20 +39,20 @@
# Export ignores to generate clean production tarballs
/build export-ignore
/dev export-ignore
/doc export-ignore
/test export-ignore
/.github export-ignore
/.phan export-ignore
/.tx export-ignore
.buildpath export-ignore
/build.xml export-ignore
.codeclimate.yml export-ignore
Dockerfile export-ignore
.dockerignore export-ignore
.editorconfig export-ignore
.gitattributes export-ignore
.gitignore export-ignore
.mailmap export-ignore
.scrutinizer.yml export-ignore
.pre-commit-config.yaml export-ignore
.settings export-ignore
.travis.yml export-ignore
.tx export-ignore
Dockerfile export-ignore

View File

@@ -136,9 +136,9 @@ If your PR is a change on interface, you must also paste a screenshot showing th
#### Examples
<pre>
FIX|Fix #456 Short description (where #456 is number of bug fix, if it exists. In upper case to appear into ChangeLog)
FIX|Fix #456 Short description (where #456 is number of bug fix, if an issue ID exists, or #xxx456 with xxx as the name of the VDP platform in lower case for security issues. The "Fix" must be in upper case to appear into ChangeLog)
or
CLOSE|Close #456 Short description (where #456 is number of feature request, if it exists. In upper case to appear into ChangeLog)
CLOSE|Close #456 Short description (where #456 is number of feature request, if it exists. The "Close" must be in upper case to appear into ChangeLog)
or
NEW|New|QUAL|Qual|PERF|Perf Short description (In upper case to appear into ChangeLog, use this if you add a feature not tracked, otherwise use CLOSE #xxx)
or

24
.github/workflows/ci-on-release.yml vendored Normal file
View File

@@ -0,0 +1,24 @@
name: "CI-RELEASE"
on:
release:
types: [published]
jobs:
trigger-docker:
runs-on: ubuntu-latest
steps:
- name: Generate a token
id: generate-token
uses: actions/create-github-app-token@v2
with:
app-id: ${{ vars.RELEASE_DOCKER_ID }}
private-key: ${{ secrets.RELEASE_DOCKER_SECRET }}
- uses: peter-evans/repository-dispatch@v4
with:
token: ${{ steps.generate-token.outputs.token }}
repository: Dolibarr/dolibarr-docker
event-type: new-release
client-payload: '{"version": "${{ github.event.release.tag_name }}"}'

View File

@@ -47,7 +47,7 @@ jobs:
# Restore old cache
- name: Restore phpstan cache
id: cache
uses: actions/cache/restore@v4
uses: actions/cache/restore@v5
with:
path: ./.github/tmp
key: phpstan-cache-${{ env.PHP_VERSION }}-${{ env.CACHE_KEY_PART }}-${{

View File

@@ -13,7 +13,7 @@ on:
workflow_dispatch:
concurrency:
group: phan-${{ github.workflow }}-${{ github.ref }}
group: phan-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
@@ -34,13 +34,33 @@ jobs:
|| github.event.schedule == false
steps:
- uses: actions/checkout@v6
# Another method to get the list of changed files
# It sets the variable steps.changed-php.outputs.all_changed_files for other steps
- name: Get all changed php files (if PR)
id: changed-php
if: env.gh_event == 'pull_request'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: ./.github/scripts/get_changed_php.sh
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 8.2
coverage: none # disable xdebug, pcov
tools: phan
tools: phan:5.5.2
- name: Run Phan analysis
if: "! cancelled() && steps.changed-php.outputs.any_changed == 'true'"
env:
ALL_CHANGED_FILES: ${{ steps.changed-php.outputs.all_changed_files }}
# shellcheck disable=2086
run: |
# shellcheck disable=2086
phan $PHAN_QUICK -k "$PHAN_CONFIG" -B "$PHAN_BASELINE" --analyze-twice --minimum-target-php-version "$PHAN_MIN_PHP" --output-mode=github
> /tmp/phpstan-files.txt
for f in $ALL_CHANGED_FILES; do echo "$f" >> /tmp/phan-files.txt; done
cat /tmp/phan-files.txt
echo phan --file-list /tmp/phan-files.txt $PHAN_QUICK -k "$PHAN_CONFIG" -B "$PHAN_BASELINE" --analyze-twice --minimum-target-php-version "$PHAN_MIN_PHP" --output-mode=github
#echo phan $PHAN_QUICK -k "$PHAN_CONFIG" -B "$PHAN_BASELINE" --analyze-twice --minimum-target-php-version "$PHAN_MIN_PHP" --output-mode=github
phan --file-list /tmp/phan-files.txt $PHAN_QUICK -k "$PHAN_CONFIG" -B "$PHAN_BASELINE" --analyze-twice --minimum-target-php-version "$PHAN_MIN_PHP" --output-mode=github

View File

@@ -52,7 +52,7 @@ jobs:
# Restore old cache
- name: Restore phpstan cache
id: cache
uses: actions/cache/restore@v4
uses: actions/cache/restore@v5
with:
path: ./.github/tmp
key: phpstan-cache-${{ matrix.php-version }}-${{ env.CACHE_KEY_PART }}-${{
@@ -62,31 +62,61 @@ jobs:
phpstan-cache-${{ matrix.php-version }}-${{ github.head_ref }}-
phpstan-cache-${{ matrix.php-version }}-${{ github.base_ref }}-
phpstan-cache-${{ matrix.php-version }}-
- name: Show debug into
run: cd ./.github/tmp && ls -al
# Another method to get the list of changed files
# It sets the variable steps.changed-php.outputs.all_changed_files for other steps
- name: Get all changed php files (if PR)
id: changed-php
if: env.gh_event == 'pull_request'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: ./.github/scripts/get_changed_php.sh
#- name: Get changed PHP files
# id: files
# run: |
# git fetch origin ${{ github.base_ref }}
# FILES=$(git diff --name-only "origin/${{ github.base_ref }}...HEAD" | grep '\.php$' || true)
# {
# echo "files<<EOF"
# echo "$FILES"
# echo "EOF"
# } > "$GITHUB_OUTPUT"
# Run PHPStan
- name: Run PHPStan
id: phpstan
if: "! cancelled() && steps.changed-php.outputs.any_changed == 'true'"
env:
ALL_CHANGED_FILES: ${{ steps.changed-php.outputs.all_changed_files }}
# shellcheck disable=2086
run: |
phpstan -vvv analyse --error-format=checkstyle --memory-limit 7G -a dev/build/phpstan/bootstrap_action.php | tee _stan.xml | cs2pr --graceful-warnings
# shellcheck disable=2086
> /tmp/phpstan-files.txt
echo "$ALL_CHANGED_FILES" >> /tmp/phpstan-files.txt
cat /tmp/phpstan-files.txt
phpstan -vvv analyse --error-format=checkstyle --memory-limit 7G -a dev/build/phpstan/bootstrap_action.php ${ALL_CHANGED_FILES} | tee _stan.xml | cs2pr --graceful-warnings
# continue-on-error: true
# Save cache
- name: Save phpstan cache
uses: actions/cache/save@v4
uses: actions/cache/save@v5
if: ${{ success() || ( ! cancelled() && steps.cache.outputs.cache-hit != 'true' ) }}
with:
path: ./.github/tmp
key: phpstan-cache-${{ matrix.php-version }}-${{ env.CACHE_KEY_PART }}-${{
github.run_id }}
- name: Provide phpstan log as artifact
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@v6
if: ${{ always() }}
with:
name: phpstan-srcrt
path: ${{ github.workspace }}/_stan.xml
retention-days: 2
# Run PHPStan generate baseline
# - name: Run PHPStan generate baseline
# id: phpstan-baseline

View File

@@ -12,8 +12,7 @@ on:
workflow_dispatch:
concurrency:
group: pre-commit-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref
}}
group: pre-commit-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
gh_event: ${{ inputs.gh_event || github.event_name }}
@@ -75,7 +74,7 @@ jobs:
- run: python -m pip install pre-commit
# Restore previous cache of precommit
- uses: actions/cache/restore@v4
- uses: actions/cache/restore@v5
with:
path: ~/.cache/pre-commit/
key: pre-commit-4|${{ env.pythonLocation }}|${{ hashFiles('.pre-commit-config.yaml') }}
@@ -110,15 +109,15 @@ jobs:
tools: phpcs
# Install perltidy and perlcritic
- name: Install perltidy and perlcritic
run: sudo apt-get update && sudo apt-get install -y perltidy libperl-critic-perl
#- name: Install perltidy and perlcritic
# run: sudo apt-get update && sudo apt-get install -y perltidy libperl-critic-perl
# Run all the precommit tools (defined into pre-commit-config.yaml).
# We can force exclusion of some of them here.
- name: Run pre-commit hooks
env:
# SKIP is used by pre-commit to not execute certain hooks
SKIP: no-commit-to-branch,php-cs,php-cbf,trailing-whitespace,end-of-file-fixer
SKIP: no-commit-to-branch,php-cs,php-cbf,trailing-whitespace,end-of-file-fixer,shellcheck
run: |
set -o pipefail
pre-commit gc
@@ -163,14 +162,14 @@ jobs:
in: ${{ env.RAW_LOG }}
# Save the precommit cache
- uses: actions/cache/save@v4
- uses: actions/cache/save@v5
if: ${{ ! cancelled() }}
with:
path: ~/.cache/pre-commit/
key: pre-commit-4|${{ env.pythonLocation }}|${{ hashFiles('.pre-commit-config.yaml') }}
# Upload result log files of precommit into the Artifact shared store
- name: Provide log as artifact
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@v6
if: ${{ ! cancelled() }}
with:
name: precommit-logs

View File

@@ -57,7 +57,7 @@ jobs:
# Restore cache
- name: Restore cache
id: cache
uses: actions/cache/restore@v4
uses: actions/cache/restore@v5
env:
HASH: ${{ hashFiles('htdocs/install/**', 'htdocs/filefunc.inc.php', 'htdocs/version.inc.php') }}
KEY_ROOT: ${{ matrix.os }}-${{ env.ckey }}-${{ matrix.php_version }}
@@ -173,7 +173,7 @@ jobs:
in: ${{ env.PHPUNIT_LOG }}
- name: Provide dolibarr and phpunit logs as artifact
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@v6
if: ${{ ! cancelled() }}
with:
name: win-ci-logs
@@ -187,7 +187,7 @@ jobs:
# Save cache
- name: Save cache
uses: actions/cache/save@v4
uses: actions/cache/save@v5
if: ${{ ! cancelled() }}
with:
# See https://github.com/actions/cache/issues/1275#issuecomment-1925217178

View File

@@ -1,5 +1,5 @@
---
exclude: (?x)^( htdocs/includes/ckeditor/.*|(\.(?!github/workflows)[^/]*/.*))$
exclude: (?x)^( htdocs/includes/ckeditor/.*|htdocs/public/includes/ckeditor/.*|htdocs/public/includes/jquery/.*|(\.(?!github/workflows)[^/]*/.*))$
repos:
# Several miscellaneous checks and fix (on yaml files, end of files fix)
- repo: https://github.com/pre-commit/pre-commit-hooks
@@ -65,10 +65,10 @@ repos:
- id: gitleaks
# Check github actions
- repo: https://github.com/rhysd/actionlint
rev: v1.7.8
hooks:
- id: actionlint
#- repo: https://github.com/rhysd/actionlint
# rev: v1.7.8
# hooks:
# - id: actionlint
# Beautify shell scripts
- repo: https://github.com/lovesegfault/beautysh.git
@@ -245,11 +245,11 @@ repos:
- ned
# Check some shell scripts
- repo: https://github.com/shellcheck-py/shellcheck-py
rev: v0.11.0.1
hooks:
- id: shellcheck
args: [-W, "100"]
#- repo: https://github.com/shellcheck-py/shellcheck-py
# rev: v0.11.0.1
# hooks:
# - id: shellcheck
# args: [-W, "100"]
# Check sql file syntax
- repo: https://github.com/sqlfluff/sqlfluff
@@ -275,20 +275,21 @@ repos:
|htdocs/modulebuilder/template/sql/.*\.sql
)$
- repo: https://github.com/perltidy/perltidy
rev: '20250105.03'
hooks:
- id: perltidy
# virtualmin excuded - reason https://github.com/Dolibarr/dolibarr/pull/36370#issuecomment-3565101823
exclude: (?x)^
(dev/build/perl/virtualmin/dolibarr.pl
)$
args: [ --tabs, --nola ]
- repo: https://github.com/henryykt/pre-commit-perl
rev: v0.0.5
hooks:
- id: perlcritic
# virtualmin excuded - reason https://github.com/Dolibarr/dolibarr/pull/36370#issuecomment-3565101823
exclude: (?x)^
(dev/build/perl/virtualmin/dolibarr.pl
)$
#- repo: https://github.com/perltidy/perltidy
# rev: '20250105.03'
# hooks:
# - id: perltidy
# # virtualmin excuded - reason https://github.com/Dolibarr/dolibarr/pull/36370#issuecomment-3565101823
# exclude: (?x)^
# (dev/build/perl/virtualmin/dolibarr.pl
# )$
# args: [ --tabs, --nola ]
#- repo: https://github.com/henryykt/pre-commit-perl
# rev: v0.0.5
# hooks:
# - id: perlcritic
# # virtualmin excluded - reason https://github.com/Dolibarr/dolibarr/pull/36370#issuecomment-3565101823
# exclude: (?x)^
# (dev/build/perl/virtualmin/dolibarr.pl
# )$

View File

@@ -531,13 +531,16 @@ script:
php upgrade.php 22.0.0 23.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade22002300.log || cat $TRAVIS_BUILD_DIR/upgrade22002300.log
php upgrade2.php 22.0.0 23.0.0 > $TRAVIS_BUILD_DIR/upgrade22002300-2.log || cat $TRAVIS_BUILD_DIR/upgrade22002300-2.log
php step5.php 22.0.0 23.0.0 > $TRAVIS_BUILD_DIR/upgrade22002300-3.log || cat $TRAVIS_BUILD_DIR/upgrade22002300-3.log
php upgrade.php 23.0.0 24.0.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade23002400.log || cat $TRAVIS_BUILD_DIR/upgrade23002400.log
php upgrade2.php 23.0.0 24.0.0 > $TRAVIS_BUILD_DIR/upgrade23002400-2.log || cat $TRAVIS_BUILD_DIR/upgrade23002400-2.log
php step5.php 23.0.0 24.0.0 > $TRAVIS_BUILD_DIR/upgrade23002400-3.log || cat $TRAVIS_BUILD_DIR/upgrade23002400-3.log
set +e
echo
- |
echo Show some debug info like table content or log
#echo '\d llx_adherent' | psql 'postgresql://postgres:postgres@127.0.0.1:5432/travis'
cat $TRAVIS_BUILD_DIR/upgrade18001900.log
echo Show some debug info, like table content, or migration log from some versions
echo '\d llx_blockedlog' | psql 'postgresql://postgres:postgres@127.0.0.1:5432/travis'
cat $TRAVIS_BUILD_DIR/upgrade500600.log
cat $TRAVIS_BUILD_DIR/upgrade19002000.log
echo
@@ -557,6 +560,7 @@ script:
php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_RECEPTION,MAIN_MODULE_RECRUITMENT >> $TRAVIS_BUILD_DIR/enablemodule.log
php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_KnowledgeManagement,MAIN_MODULE_EventOrganization,MAIN_MODULE_PARTNERSHIP >> $TRAVIS_BUILD_DIR/enablemodule.log
php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_EmailCollector >> $TRAVIS_BUILD_DIR/enablemodule.log
php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_BlockedLog >> $TRAVIS_BUILD_DIR/enablemodule.log
echo $?
cd -
set +e
@@ -570,6 +574,8 @@ script:
# Execute phpunit, check its exit status and that the phpunit output shows a test summary
phpunit -d memory_limit=-1 -c test/phpunit/phpunittest.xml test/phpunit/AllTests.php | tee /dev/tty | grep -qE "(OK .*[0-9]+ tests.*[0-9]+ assertions|Tests: [0-9]+)" ; phpunitresult=$((PIPESTATUS[0]?PIPESTATUS[0]:PIPESTATUS[2]))
echo "Phpunit return code = $phpunitresult"
echo "Content of end of apache error.log"
sudo tail -n 200 /var/log/apache2/travis_error_log
# Comment next line if you want to go to the end to see the dolibarr.log file.
[ $phpunitresult == 0 ] || exit $phpunitresult
echo

View File

@@ -162,6 +162,7 @@ NEW: Add API for Holidays/Leaves
NEW: add api for members statistics (#35851)
NEW: add api List VAT (#35920)
NEW: add api_paiements.class.php (#34756)
NEW: document API builddoc product
NEW: Add contact management on project Api (#35459)
NEW: Add contact support on products in REST API (#35925)
NEW: Add country ID resolution from country code for thirdparty api (#36345)
@@ -182,6 +183,7 @@ NEW: API User - Remove user from group (#35453)
NEW: Implement listTimespent method in api_projects.class.php (#36093)
NEW: qual fixes on api contract (#36066)
NEW: stock API GET movement (#36193)
NEW: action to clone ticket
WARNING:
@@ -212,6 +214,85 @@ The following changes may create regressions for some external modules, but were
* $conf use into "computed formulae" of etrafields is now deprecated (not yet forbidden). You can replace use of $conf->currency by the new method getCurrency() and $conf->global->xxx by getDolGlobalString('xxx').
* $user->rights->module->perms is also deprecated. You can use $user->hasRight() instead.
* The API endpoint /proposals/{id}/contact/{contactid}/{type}/{source} is now {id}/contact/{contactid}/{type} to match same behaviour than order and invoices.
* The API endpoint /interventions/{id}/reopen hase been removed in favor of /interventions/{id}/settodraft
* If the module geoipmaxmind is used, you must resubmit the geoip data file as it is now stored differently.
***** ChangeLog for 22.0.4 compared to 22.0.3 *****
FIX: $param is the 5th parameter of print_liste_field_titre ($moreparam) (#36250)
FIX: 17.0: perweek.php resets task progress to 0% when: (#36401)
FIX: 18.0: GETPOSTDATE and buildParamDate assumed HTTP param names 'minute' and 'second' instead of 'min' and 'sec'
FIX: 19.0 - attachments upload dir for invoices not always determined correctly (doesn't always take multi-entity into account) (#36302)
FIX: #33148 - partial payments are taken into account in EPC QR codes (#36338)
FIX: #33899 API Timespent Service Field
FIX: #35061
FIX: #35096 #36393 Add minimal fields required asthe class is used by
FIX: #35141 (#36390)
FIX: #35375 Accountancy - SQL error on empty filter account category
FIX: #35655 API Contract Creation Fails for Non-Admin Users in Version 22.0.2
FIX: #36090 Accountancy - Inconsistent date on various journal
FIX: #36149 (#36150)
FIX: #36310 Accountancy - Data - Wrong account labels (cache) on write bookkeeping action (#36410)
FIX: #36334 - reload invoice data before pdf-creation in process of generating a new member contribution (#36335)
FIX: #36347 (#36358)
FIX: #36368 - avoid overlaying of EPC-QR Code and payment information (#36369)
FIX: #36576 - date creation is empty on import
FIX: Accountancy - #36090 Inconsistent date on various journal
FIX: Accountancy - No limit on chart of account to define category on account
FIX: Accountancy - Not propose to write operation on draft asset
FIX: Accountancy - Problem calculating exercises with different tax periods on fixed assets
FIX: Accountancy - Problem calculating fiscal year with different periods on fixed assets
FIX: Accountancy - Reverse accounting account in depreciation expense entries for fixed assets
FIX: Accountancy - Verify fiscal year on last hour to enable the integration of asset entries
FIX: allow a situation with credit to be removed from cycle
FIX: API task getTimeSpent to actually return data
FIX: avoid php warning error (#36330), avoid php warnings (#36301), (#36411)
FIX: Can Validated Holidays When Negative Balance
FIX: Concat of PDF to invoices (#36329)
FIX: create API temp directory in Dolibarr API constructor
FIX: DA027383: permissions not checked on HRM evaluation card (#36328) (#36399)
FIX: do not force rowid to int (#36412)
FIX: Email Collector Module: manage error when imap_fetchstructure return false. Previously it generated warning and fatal error because the returned value was not of type class
FIX: empty origin type passed to addline when creating invoices from expeditions using massaction (confirm_createbills) (#36413)
FIX: expense report card: do not show bank account if user cannot see them
FIX: expense report card: use correct bank module designator for detection
FIX: Export of extrafield in organized events
FIX: fix #36401 (for v17.0) doesn't work in v18.0+ because of variable renaming
FIX: | Fixing addPayment /invoices/id/payments
FIX: getEntity use element instead table_element (#36405)
FIX: Implementation of multi-company compatibility with inventory/warehouse management
FIX: info on supplier payment card on v22 and payment link
FIX: keep user who validate proposal on update (#36257)
FIX: List is filtered on task status when it should not
FIX: Missing AND on fields filter on evaluation class
FIX: missing p.default_vat_code in product import profile.
FIX: Missing Product ref in Bom stats
FIX: Mo::deleteLine() - stock movement correction (#34733)
FIX: Multicompany compatibility with "project_task"
FIX: not remove value of others extra-fields on update extras action
FIX: Object should be cloned here (#36289)
FIX: PR#36401 fixed a missing GETPOSTISSET() but the check involves a variable ($taskid) that was renamed ($tmptaskid) in 18.0
FIX: (propal): Incorrect HT/TTC recalculation when editing proposal lines #36514
FIX: (propal): values lost when editing HT price
FIX: propal shipping and availability update (v18+)
FIX: re-create API temp dir after purging temp files
FIX: remove situation invoice from cycle
FIX: remove useless condition to create credit on situation invoice (#35786)
FIX: Search all for supplier proposals via object reference
FIX: Selection of email when prefilled from a template
FIX: SQL error for LIST_OF_QUALIFIED_INVOICES_LIMIT_DEFINED
FIX: subtotal feature button availability according setup
FIX: TakePOS Missing Thirdparty Id when getting more products (#36341)
FIX: (tasks): dates in gantt view
FIX: undefined variables on create invoice card from order (backport from v19) or shipment card (backport from v20)
FIX: use array_intersect instead in_array
FIX: warning on select
FIX: wrong $param parameter position (#36265)
SEC: 7ed0af2a138a34e7c7005b95c85ffc791976a6cf
SEC: empty commit for CI automata
SEC: FIX: #36430 permissions not checked on other tabs of HRM evaluation card
SEC: fix IDOR attack on employee evaluation. Missing permission test https://github.com/atm-florianm/dolibarr/commit/7ed0af2a138a34e7c7005b95c85ffc791976a6cf
SEC: permissions not checked on other tabs of HRM evaluation card
***** ChangeLog for 22.0.3 compared to 22.0.2 *****

View File

@@ -12,12 +12,12 @@ Security report are valid only on any current stable version for the last 5 majo
To report a vulnerability, for a private report, you can:
- Send your report on Vulnerability Disclosure Program (VDP): Link will be updated soon (recommended for everybody)
- Send your report as an issue on https://github.com/Dolibarr/dolibarr/issues or on GitHub Vulnerability Disclosure Program tool (VDP): https://github.com/Dolibarr/dolibarr/security/advisories (recommended)
<!--
- Send your report on Vulnerability Disclosure Program (VDP) [https://app.yogosha.com/cvd/dolibarr/10VxeNx6Ui3rSEhAgX63US](https://app.yogosha.com/cvd/dolibarr/10VxeNx6Ui3rSEhAgX63US) (recommended for everybody)
- Or if you have permissions, use GitHub security advisory at [https://github.com/Dolibarr/dolibarr/security/advisories/new](https://github.com/Dolibarr/dolibarr/security/advisories/new)
-->
- Or send an email to security@dolibarr.org with 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.
- Or send an email to security@dolibarr.org with 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 (in such a case, the issue may be created by the developer that will fix the vulnerability or the Release Manager).
## Hunting vulnerabilities on Dolibarr
@@ -114,3 +114,8 @@ Scope is the web application (backoffice) and the APIs.
* Invalid or missing SPF (Sender Policy Framework) records (Incomplete or missing SPF/DKIM/DMARC)
* Physical or social engineering attempts or issues that require physical access to a victims computer/device
* Vulnerabilities of type XSS exploited by using javascript into a website page of the website module or by using php code into a website page (being able to set javascript or php code is the expected behaviour in the website module), except if the user does not have the permission to edit page or php code.
## Be informed of a new vulnerability
You can get more information on how to be informed on a new vulnerability on the page https://wiki.dolibarr.org/index.php/Security_information

View File

@@ -7,3 +7,4 @@
/dolibarr-*.zip
/*.exe
/html
/*.bak

View File

@@ -299,12 +299,12 @@ If script fails with error Bad certificate, you can set "export PERL_LWP_SSL_VER
* Edit orig.tar.gz file to remove
- debian
- htdocs/includes/ckeditor
- htdocs/includes/jquery/css
- htdocs/includes/jquery/js
- htdocs/includes/jquery/plugins/flot
- htdocs/includes/jquery/plugins/multiselect
- htdocs/includes/jquery/plugins/datatables
- htdocs/public/includes/ckeditor
- htdocs/public/includes/jquery/css
- htdocs/public/includes/jquery/js
- htdocs/public/includes/jquery/plugins/flot
- htdocs/public/includes/jquery/plugins/multiselect
- htdocs/public/includes/jquery/plugins/datatables
- htdocs/includes/jszip
- htdocs/includes/mike42
- htdocs/includes/phpoffice

View File

@@ -61,7 +61,7 @@ License: GPL-3+
------------------------------------------------------------
Files: htdocs/includes/ckeditor/*
Files: htdocs/public/includes/ckeditor/*
Copyright: 2003-2012 CKSource - Frederico Knabben
License: GPL-2+
The ckeditor is triple licensed under the GNU General Public License (GPL),
@@ -190,7 +190,7 @@ License: CC-By-SA
------------------------------------------------------------
Files: htdocs/includes/jquery/*
Files: htdocs/public/includes/jquery/*
Copyright: JQuery team
https://www.jquery.com
License: GPL-2+ or MIT

View File

@@ -97,10 +97,9 @@ override_dh_install:
# rm -fr htdocs/includes/nusoap
# rm -fr htdocs/includes/odtphp/zip/pclzip
# clean from all JS-CSS embedded libraries (we use package dependencies instead)
# rm -fr htdocs/includes/ckeditor
# rm -fr htdocs/includes/jquery/js
# rm -fr htdocs/includes/jquery/css
# rm -fr htdocs/includes/jquery/plugins/flot
# rm -fr htdocs/public/includes/ckeditor
# rm -fr htdocs/public/includes/jquery/js
# rm -fr htdocs/public/includes/jquery/css
# clean from all embedded fonts (we use package dependencies instead)
# rm -fr htdocs/includes/fonts

View File

@@ -1,16 +1,16 @@
# Remove warning, we want to keep both standard and minified sources.
dolibarr: source-contains-prebuilt-javascript-object htdocs/includes/jquery/*
dolibarr: source-contains-prebuilt-javascript-object htdocs/public/includes/jquery/*
dolibarr: source-contains-prebuilt-javascript-object htdocs/includes/jsgantt/*
dolibarr: source-contains-prebuilt-javascript-object htdocs/includes/jstz/*
# Those are false positives, the files are their own sources since
# they are not minified
source-is-missing htdocs/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/*.js
source-is-missing htdocs/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/*.js
source-is-missing htdocs/includes/ckeditor/ckeditor/lang/*.js
source-is-missing htdocs/includes/ckeditor/ckeditor/plugins/*/dialogs/*.js
source-is-missing htdocs/includes/ckeditor/ckeditor/plugins/*/filter/*.js
source-is-missing htdocs/includes/ckeditor/ckeditor/plugins/templates/templates/default.js
source-is-missing htdocs/includes/restler/framework/Luracast/Restler/explorer/lib/*.js
source-is-missing htdocs/public/includes/ckeditor/ckeditor/plugins/a11yhelp/dialogs/lang/*.js
source-is-missing htdocs/public/includes/ckeditor/ckeditor/plugins/specialchar/dialogs/lang/*.js
source-is-missing htdocs/public/includes/ckeditor/ckeditor/lang/*.js
source-is-missing htdocs/public/includes/ckeditor/ckeditor/plugins/*/dialogs/*.js
source-is-missing htdocs/public/includes/ckeditor/ckeditor/plugins/*/filter/*.js
source-is-missing htdocs/public/includes/ckeditor/ckeditor/plugins/templates/templates/default.js
source-is-missing htdocs/public/includes/restler/framework/Luracast/Restler/explorer/lib/*.js
# Those are false positives, the files are their own sources since
# they are data files
source-is-missing htdocs/includes/mobiledetect/mobiledetectlib/Mobile_Detect.json

View File

@@ -30,5 +30,3 @@ services:
networks:
- internal-pod
- external-pod

View File

@@ -21,7 +21,7 @@ AppVerName=__FILENAMEEXEDOLIWAMP__
; Replace key with DoliWamp-x.x x or DoliWamp-x.x.x-alpha or DoliWamp-x.x.x-beta or DoliWamp-x.x.x-rc or DoliWamp-x.x.x
OutputBaseFilename=__FILENAMEEXEDOLIWAMP__
; ----- End of change
;OutputManifestFile=build\doliwampbuild.log
;OutputManifestFile=dev\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=..\..\..\..
@@ -48,28 +48,28 @@ ChangesEnvironment=no
CreateUninstallRegKey=yes
;UseSetupLdr=no
;UninstallDisplayIcon={app}\bidon
OutputDir=build
OutputDir=dev\build
ShowLanguageDialog=auto
ShowUndisplayableLanguages=no
LanguageDetectionMethod=uilanguage
;SignedUninstaller=yes
[Languages]
Name: "en"; MessagesFile: "compiler:Default.isl,build\exe\doliwamp\Languages\MyEnglish.isl"
Name: "br"; MessagesFile: "compiler:Languages\Portuguese.isl,build\exe\doliwamp\Languages\MyBrazilianPortuguese.isl"
Name: "ca"; MessagesFile: "compiler:Languages\Catalan.isl,build\exe\doliwamp\Languages\MyCatalan.isl"
Name: "da"; MessagesFile: "compiler:Languages\Danish.isl,build\exe\doliwamp\Languages\MyDanish.isl"
Name: "es"; MessagesFile: "compiler:Languages\Spanish.isl,build\exe\doliwamp\Languages\MySpanish.isl"
Name: "nl"; MessagesFile: "compiler:Languages\Dutch.isl,build\exe\doliwamp\Languages\MyDutch.isl"
Name: "fi"; MessagesFile: "compiler:Languages\Finnish.isl,build\exe\doliwamp\Languages\MyFinnish.isl"
Name: "fr"; MessagesFile: "compiler:Languages\French.isl,build\exe\doliwamp\Languages\MyFrench.isl"
Name: "ge"; MessagesFile: "compiler:Languages\German.isl,build\exe\doliwamp\Languages\MyGerman.isl"
Name: "it"; MessagesFile: "compiler:Languages\Italian.isl,build\exe\doliwamp\Languages\MyItalian.isl"
Name: "nb"; MessagesFile: "compiler:Languages\Norwegian.isl,build\exe\doliwamp\Languages\MyNorwegian.isl"
Name: "po"; MessagesFile: "compiler:Languages\Polish.isl,build\exe\doliwamp\Languages\MyPolish.isl"
Name: "pt"; MessagesFile: "compiler:Languages\Portuguese.isl,build\exe\doliwamp\Languages\MyPortuguese.isl"
Name: "ru"; MessagesFile: "compiler:Languages\Russian.isl,build\exe\doliwamp\Languages\MyRussian.isl"
Name: "sv"; MessagesFile: "compiler:Languages\Slovenian.isl,build\exe\doliwamp\Languages\MySlovenian.isl"
Name: "en"; MessagesFile: "compiler:Default.isl,dev\build\exe\doliwamp\Languages\MyEnglish.isl"
Name: "br"; MessagesFile: "compiler:Languages\Portuguese.isl,dev\build\exe\doliwamp\Languages\MyBrazilianPortuguese.isl"
Name: "ca"; MessagesFile: "compiler:Languages\Catalan.isl,dev\build\exe\doliwamp\Languages\MyCatalan.isl"
Name: "da"; MessagesFile: "compiler:Languages\Danish.isl,dev\build\exe\doliwamp\Languages\MyDanish.isl"
Name: "es"; MessagesFile: "compiler:Languages\Spanish.isl,dev\build\exe\doliwamp\Languages\MySpanish.isl"
Name: "nl"; MessagesFile: "compiler:Languages\Dutch.isl,dev\build\exe\doliwamp\Languages\MyDutch.isl"
Name: "fi"; MessagesFile: "compiler:Languages\Finnish.isl,dev\build\exe\doliwamp\Languages\MyFinnish.isl"
Name: "fr"; MessagesFile: "compiler:Languages\French.isl,dev\build\exe\doliwamp\Languages\MyFrench.isl"
Name: "ge"; MessagesFile: "compiler:Languages\German.isl,dev\build\exe\doliwamp\Languages\MyGerman.isl"
Name: "it"; MessagesFile: "compiler:Languages\Italian.isl,dev\build\exe\doliwamp\Languages\MyItalian.isl"
Name: "nb"; MessagesFile: "compiler:Languages\Norwegian.isl,dev\build\exe\doliwamp\Languages\MyNorwegian.isl"
Name: "po"; MessagesFile: "compiler:Languages\Polish.isl,dev\build\exe\doliwamp\Languages\MyPolish.isl"
Name: "pt"; MessagesFile: "compiler:Languages\Portuguese.isl,dev\build\exe\doliwamp\Languages\MyPortuguese.isl"
Name: "ru"; MessagesFile: "compiler:Languages\Russian.isl,dev\build\exe\doliwamp\Languages\MyRussian.isl"
Name: "sv"; MessagesFile: "compiler:Languages\Slovenian.isl,dev\build\exe\doliwamp\Languages\MySlovenian.isl"
[Tasks]
;Name: "autostart"; Description: "Automatically launch DoliWamp server on startup. If you check this option, Services will be installed as automatic. Otherwise, services will be installed as manual and will start and stop with the service manager."; GroupDescription: "Auto Start:" ;Flags: unchecked;
@@ -84,19 +84,19 @@ Name: "{app}\bin\apache\apache2.4.51\logs"
[Files]
; Stop/start
Source: "build\exe\doliwamp\stopdoliwamp.bat"; DestDir: "{app}\"; Flags: ignoreversion; AfterInstall: close()
Source: "build\exe\doliwamp\startdoliwamp.bat"; DestDir: "{app}\"; Flags: ignoreversion;
Source: "build\exe\doliwamp\install_services.bat.install"; DestDir: "{app}\"; Flags: ignoreversion;
Source: "build\exe\doliwamp\uninstall_services.bat.install"; DestDir: "{app}\"; Flags: ignoreversion;
Source: "build\exe\doliwamp\removefiles.bat"; DestDir: "{app}\"; Flags: ignoreversion;
Source: "build\exe\doliwamp\rundoliwamp.bat.install"; DestDir: "{app}\"; Flags: ignoreversion;
Source: "build\exe\doliwamp\rundolihelp.bat.install"; DestDir: "{app}\"; Flags: ignoreversion;
Source: "build\exe\doliwamp\rundoliadmin.bat.install"; DestDir: "{app}\"; Flags: ignoreversion;
Source: "build\exe\doliwamp\mysqlinitpassword.bat.install"; DestDir: "{app}\"; Flags: ignoreversion;
Source: "build\exe\doliwamp\mysqltestinstall.bat.install"; DestDir: "{app}\"; Flags: ignoreversion;
Source: "build\exe\doliwamp\startdoliwamp_manual_donotuse.bat.install"; DestDir: "{app}\"; Flags: ignoreversion;
Source: "build\exe\doliwamp\builddemosslfiles.bat.install"; DestDir: "{app}\"; Flags: ignoreversion;
Source: "build\exe\doliwamp\UsedPort.exe"; DestDir: "{app}\"; Flags: ignoreversion;
Source: "dev\build\exe\doliwamp\stopdoliwamp.bat"; DestDir: "{app}\"; Flags: ignoreversion; AfterInstall: close()
Source: "dev\build\exe\doliwamp\startdoliwamp.bat"; DestDir: "{app}\"; Flags: ignoreversion;
Source: "dev\build\exe\doliwamp\install_services.bat.install"; DestDir: "{app}\"; Flags: ignoreversion;
Source: "dev\build\exe\doliwamp\uninstall_services.bat.install"; DestDir: "{app}\"; Flags: ignoreversion;
Source: "dev\build\exe\doliwamp\removefiles.bat"; DestDir: "{app}\"; Flags: ignoreversion;
Source: "dev\build\exe\doliwamp\rundoliwamp.bat.install"; DestDir: "{app}\"; Flags: ignoreversion;
Source: "dev\build\exe\doliwamp\rundolihelp.bat.install"; DestDir: "{app}\"; Flags: ignoreversion;
Source: "dev\build\exe\doliwamp\rundoliadmin.bat.install"; DestDir: "{app}\"; Flags: ignoreversion;
Source: "dev\build\exe\doliwamp\mysqlinitpassword.bat.install"; DestDir: "{app}\"; Flags: ignoreversion;
Source: "dev\build\exe\doliwamp\mysqltestinstall.bat.install"; DestDir: "{app}\"; Flags: ignoreversion;
Source: "dev\build\exe\doliwamp\startdoliwamp_manual_donotuse.bat.install"; DestDir: "{app}\"; Flags: ignoreversion;
Source: "dev\build\exe\doliwamp\builddemosslfiles.bat.install"; DestDir: "{app}\"; Flags: ignoreversion;
Source: "dev\build\exe\doliwamp\UsedPort.exe"; DestDir: "{app}\"; Flags: ignoreversion;
; Apache, Php, Mysql
; Put here path of Wampserver applications
@@ -117,16 +117,16 @@ 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\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\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.4.26"; 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;
Source: "build\exe\doliwamp\ca_demo_dolibarr.crt"; DestDir: "{app}"; Flags: ignoreversion;
Source: "build\exe\doliwamp\ca_demo_dolibarr.key"; DestDir: "{app}"; Flags: ignoreversion;
Source: "dev\build\exe\doliwamp\dolibarr.conf.install"; DestDir: "{app}\alias"; Flags: ignoreversion;
Source: "dev\build\exe\doliwamp\httpd.conf.install"; DestDir: "{app}\bin\apache\apache2.4.51\conf"; Flags: ignoreversion;
Source: "dev\build\exe\doliwamp\my.ini.install"; DestDir: "{app}\bin\mysql\mysql5.0.45"; Flags: ignoreversion;
Source: "dev\build\exe\doliwamp\my.ini.install"; DestDir: "{app}\bin\mariadb\mariadb10.6.5"; Flags: ignoreversion;
Source: "dev\build\exe\doliwamp\php.ini.install"; DestDir: "{app}\bin\php\php7.4.26"; Flags: ignoreversion;
Source: "dev\build\exe\doliwamp\index.php.install"; DestDir: "{app}\www"; Flags: ignoreversion;
Source: "dev\build\exe\doliwamp\install.forced.php.install"; DestDir: "{app}\www\dolibarr\htdocs\install"; Flags: ignoreversion;
Source: "dev\build\exe\doliwamp\openssl.conf"; DestDir: "{app}"; Flags: ignoreversion;
Source: "dev\build\exe\doliwamp\ca_demo_dolibarr.crt"; DestDir: "{app}"; Flags: ignoreversion;
Source: "dev\build\exe\doliwamp\ca_demo_dolibarr.key"; DestDir: "{app}"; Flags: ignoreversion;
; Licence
Source: "COPYRIGHT"; DestDir: "{app}"; Flags: ignoreversion;

View File

@@ -40,6 +40,9 @@ if (substr($sapi_type, 0, 3) == 'cgi') {
define('DOL_DOCUMENT_ROOT', dirname(dirname($path)).'/htdocs');
//$algo = 'md5'; // Old algorithm
$algo = 'sha256';
require_once $path."../../htdocs/master.inc.php";
require_once DOL_DOCUMENT_ROOT."/core/lib/files.lib.php";
@@ -180,6 +183,7 @@ if ($checklock && empty($checksource)) {
if ($release) {
print "Working on files into : ".DOL_DOCUMENT_ROOT."\n";
print "Version of target release : ".$release."\n";
print "Algo : ".$algo."\n";
print "Include custom dir in signature : ".(empty($includecustom) ? 'no' : 'yes')."\n";
print "Include constants in signature : ".(empty($includeconstants) ? 'none' : '');
foreach ($includeconstants as $countrycode => $tmp) {
@@ -188,6 +192,7 @@ if ($release) {
}
}
print "\n";
print "\n";
}
if ($checklock) {
print "Working on files into : ".DOL_DOCUMENT_ROOT."\n";
@@ -231,7 +236,7 @@ if ($release) {
$gitcommit = trim($fileforgitcontent);
fputs($fp, '<?xml version="1.0" encoding="UTF-8" ?>'."\n");
fputs($fp, '<checksum_list version="'.$release.'" date="'.dol_print_date(dol_now(), 'dayhourrfc').'" generator="'.$script_file.'" gitcommit="'.$gitcommit.'">'."\n");
fputs($fp, '<checksum_list version="'.$release.'" date="'.dol_print_date(dol_now(), 'dayhourrfc').'" generator="'.$script_file.'" algo="'.$algo.'" gitcommit="'.$gitcommit.'">'."\n");
foreach ($includeconstants as $countrycode => $tmp) {
fputs($fp, '<dolibarr_constants country="'.$countrycode.'">'."\n");
@@ -265,9 +270,9 @@ if ($release) {
$needtoclose = 1;
}
if (filetype($file) == "file") {
$md5 = md5_file($file);
$checksumconcat[] = $md5;
fputs($fp, ' <md5file name="'.basename($file).'" size="'.filesize($file).'">'.$md5.'</md5file>'."\n");
$hashoffile = hash_file($algo, $file);
$checksumconcat[] = $hashoffile;
fputs($fp, ' <'.$algo.'file name="'.basename($file).'" size="'.filesize($file).'">'.$hashoffile.'</'.$algo.'file>'."\n");
}
}
if ($needtoclose) {
@@ -277,10 +282,10 @@ if ($release) {
fputs($fp, '</dolibarr_htdocs_dir>'."\n");
asort($checksumconcat); // Sort list of checksum
$md5htdocsdir = md5(join(',', $checksumconcat));
$hashhtdocsdir = hash($algo, join(',', $checksumconcat));
fputs($fp, '<dolibarr_htdocs_dir_checksum>'."\n");
fputs($fp, $md5htdocsdir."\n");
fputs($fp, $hashhtdocsdir."\n");
fputs($fp, '</dolibarr_htdocs_dir_checksum>'."\n\n");
@@ -308,9 +313,9 @@ if ($release) {
$needtoclose = 1;
}
if (filetype($file) == "file") {
$md5 = md5_file($file);
$checksumconcat[] = $md5;
fputs($fp, ' <md5file name="'.basename($file).'" size="'.filesize($file).'">'.$md5.'</md5file>'."\n");
$hashoffile = hash_file($algo, $file);
$checksumconcat[] = $hashoffile;
fputs($fp, ' <'.$algo.'file name="'.basename($file).'" size="'.filesize($file).'">'.$hashoffile.'</'.$algo.'file>'."\n");
}
}
if ($needtoclose) {
@@ -320,10 +325,10 @@ if ($release) {
fputs($fp, '</dolibarr_scripts_dir>'."\n");
asort($checksumconcat); // Sort list of checksum
$md5scriptsdir = md5(join(',', $checksumconcat));
$hashscriptsdir = hash($algo, join(',', $checksumconcat));
fputs($fp, '<dolibarr_scripts_dir_checksum>'."\n");
fputs($fp, $md5scriptsdir."\n");
fputs($fp, $hashscriptsdir."\n");
fputs($fp, '</dolibarr_scripts_dir_checksum>'."\n\n");
}
@@ -371,10 +376,10 @@ foreach ($arrayofunalterablefiles as $entry) {
$needtoclose = 1;
}
if (filetype($file) == "file") {
$md5 = md5_file($file);
$checksumconcat[] = $md5;
$hashoffile = hash_file($algo, $file);
$checksumconcat[] = $hashoffile;
if ($release) {
fputs($fp, ' <md5file name="'.basename($file).'" size="'.filesize($file).'">'.$md5.'</md5file>'."\n");
fputs($fp, ' <'.$algo.'file name="'.basename($file).'" size="'.filesize($file).'">'.$hashoffile.'</'.$algo.'file>'."\n");
}
}
}
@@ -407,10 +412,10 @@ foreach ($arrayofunalterablefiles as $entry) {
$needtoclose = 1;
}
if (filetype($file) == "file") {
$md5 = md5_file($file);
$checksumconcat[] = $md5;
$hashoffile = hash_file($algo, $file);
$checksumconcat[] = $hashoffile;
if ($release) {
fputs($fp, ' <md5file name="'.basename($file).'" size="'.filesize($file).'">'.$md5.'</md5file>'."\n");
fputs($fp, ' <'.$algo.'file name="'.basename($file).'" size="'.filesize($file).'">'.$hashoffile.'</'.$algo.'file>'."\n");
}
}
if ($needtoclose) {
@@ -423,13 +428,13 @@ foreach ($arrayofunalterablefiles as $entry) {
}
asort($checksumconcat); // Sort list of checksum
$md5unalterable_files = md5(join(',', $checksumconcat));
$hashunalterable_files = hash($algo, join(',', $checksumconcat));
if ($release) {
fputs($fp, '</dolibarr_unalterable_files>'."\n");
fputs($fp, '<dolibarr_unalterable_files_checksum>'."\n");
fputs($fp, $md5unalterable_files."\n");
fputs($fp, $hashunalterable_files."\n");
fputs($fp, '</dolibarr_unalterable_files_checksum>'."\n\n");
// End of file
@@ -443,9 +448,9 @@ print "\n";
if ($release) {
if (empty($buildzip)) {
print "File ".$outputfile." generated.\n";
print "Signature for htdocs files: ".$md5htdocsdir."\n";
print "Signature for scripts files: ".$md5scriptsdir."\n";
print "Signature for the ".count($checksumconcat)." unalterable files: ".$md5unalterable_files."\n";
print "Signature for htdocs files: ".$hashhtdocsdir."\n";
print "Signature for scripts files: ".$hashscriptsdir."\n";
print "Signature for the ".count($checksumconcat)." unalterable files: ".$hashunalterable_files."\n";
} else {
if ($buildzip == '1' || $buildzip == 'zip') {
$result = dol_compress_file($outputfile, $outputfile.'.zip', 'zip');
@@ -464,7 +469,7 @@ if ($release) {
}
if ($checklock) {
print "Signature for unalterable files: ".$md5unalterable_files."\n";
print "Signature for unalterable files: ".$algo." ".$hashunalterable_files."\n";
$lockedfile = DOL_DOCUMENT_ROOT.'/../dev/lockedfiles.txt';
$checksuminlockedfile = '';
@@ -475,15 +480,15 @@ if ($checklock) {
// Now we check the content of lockedfiles.txt
$arraylocked = file($lockedfile);
foreach ($arraylocked as $line) {
$tmparray = preg_split("/\s+/", $line, 3);
if ($tmparray[0] == $checklockmajorversion) {
$checksuminlockedfile = $tmparray[2];
$tmparray = preg_split("/\s+/", $line, 4);
if ($tmparray[0] == $checklockmajorversion && $tmparray[2] == $algo) {
$checksuminlockedfile = $tmparray[3];
}
}
if (empty($checksuminlockedfile)) {
print "The major version ".$checklockmajorversion." is not locked on the scope ".$checksource." (file found but no matching entry found into dev/lockedfiles.txt).\n";
} elseif ($checksuminlockedfile != $md5unalterable_files) {
print "The major version ".$checklockmajorversion." is locked on scope '".$checksource."' to checksum ".$checksuminlockedfile."\n";
print "The major version ".$checklockmajorversion." is not locked on the scope '".$checksource."' (file found but no matching entry found into dev/lockedfiles.txt).\n";
} elseif ($checksuminlockedfile != $hashunalterable_files) {
print "The major version ".$checklockmajorversion." is locked on scope '".$checksource."' to checksum ".$algo." ".$checksuminlockedfile."\n";
if ($checklockmajorversion != $checksource) {
print "The checksum now differs from the locked one, so we return an error.\n";
print "\n";

View File

@@ -2,7 +2,7 @@
#----------------------------------------------------------------------------
# \file dev/build/makepack-dolibarr.pl
# \brief Dolibarr package builder (tgz, zip, rpm, deb, exe, aps)
# \author (c)2004-2023 Laurent Destailleur <eldy@users.sourceforge.net>
# \author (c)2004-2025 Laurent Destailleur <eldy@users.sourceforge.net>
#
# This is list of constant you can set to have generated packages moved into a specific dir:
#DESTIBETARC='/media/HDDATA1_LD/Mes Sites/Web/Dolibarr/dolibarr.org/files/lastbuild'
@@ -14,33 +14,34 @@
#----------------------------------------------------------------------------
## no critic (InputOutput::ProhibitExplicitStdin,InputOutput::RequireBriefOpen)
use strict;
#use strict;
use warnings;
use Cwd;
use Term::ANSIColor;
# Change this to defined target for option 98 and 99
$PROJECT = "dolibarr";
my $PROJECT = "dolibarr";
$PUBLISHBETARC =
my $PUBLISHBETARC =
"$ENV{'DESTIASSOLOGIN'}\@vmprod1.dolibarr.org:/home/dolibarr/asso.dolibarr.org/dolibarr_documents/website/www.dolibarr.org/files";
$PUBLISHSTABLE =
my $PUBLISHSTABLE =
"$ENV{'DESTISFLOGIN'}\@frs.sourceforge.net:/home/frs/project/dolibarr";
# due to implicit origin on git commands, example: implicit origin, lionel upstream, eric dolibarr
$GITREMOTENAME = "$ENV{'GITREMOTENAME'}";
my $GITREMOTENAME = "$ENV{'GITREMOTENAME'}";
#@LISTETARGET=("TGZ","ZIP","RPM_GENERIC","RPM_FEDORA","RPM_MANDRIVA","RPM_OPENSUSE","DEB","EXEDOLIWAMP","SNAPSHOT"); # Possible packages
@LISTETARGET = (
my @LISTETARGET = (
"TGZ", "ZIP", "RPM_GENERIC", "RPM_FEDORA",
"RPM_MANDRIVA", "RPM_OPENSUSE", "DEB", "EXEDOLIWAMP",
"SNAPSHOT"
); # Possible packages
%REQUIREMENTPUBLISH = (
my %REQUIREMENTPUBLISH = (
"SF" => "git ssh rsync",
"ASSO" => "git ssh rsync"
);
%REQUIREMENTTARGET = ( # Tool requirement for each package
my %REQUIREMENTTARGET = ( # Tool requirement for each package
"-CHKSUM" => "",
"TGZ" => "tar",
"ZIP" => "7z",
"XZ" => "xz",
@@ -53,18 +54,18 @@ $GITREMOTENAME = "$ENV{'GITREMOTENAME'}";
"EXEDOLIWAMP" => "ISCC.exe",
"SNAPSHOT" => "tar"
);
%ALTERNATEPATH = (
my %ALTERNATEPATH = (
"7z" => "7-ZIP",
"makensis.exe" => "NSIS"
);
$RPMSUBVERSION = "auto"; # auto use value found into BUILD
my $RPMSUBVERSION = "auto"; # auto use value found into BUILD
if ( -d "/usr/src/redhat" ) { $RPMDIR = "/usr/src/redhat"; } # redhat
if ( -d "/usr/src/packages" ) { $RPMDIR = "/usr/src/packages"; } # opensuse
if ( -d "/usr/src/RPM" ) { $RPMDIR = "/usr/src/RPM"; } # mandrake
use vars qw/ $REVISION $VERSION /;
$VERSION = "4.0";
my $VERSION = "4.0";
#------------------------------------------------------------------------------
# MAIN
@@ -114,8 +115,8 @@ if ( !$ENV{"DESTIBETARC"} || !$ENV{"DESTISTABLE"} ) {
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 "set DESTIBETARC=c:/temp\n";
print "set DESTISTABLE=c:/temp\n";
print "\n";
print "Example in .bashrc:\n";
print
@@ -137,6 +138,15 @@ if ( !$ENV{"GITREMOTENAME"} ) {
print
"Error: environment variable GITREMOTENAME does not exist. You can set it to 'origin' or any other git remote name.\n";
print "$PROG.$Extension aborted.\n";
print "\n";
print "You can set it with\n";
print "On Linux:\n";
print "export GITREMOTENAME='origin'";
print "On Windows:\n";
print "set GITREMOTENAME=origin\n";
print "\n";
print "Example in .bashrc:\n";
print "export GITREMOTENAME='origin'\n";
sleep 2;
exit 1;
}
@@ -189,7 +199,7 @@ open( my $IN, "<", $SOURCE . "/htdocs/version.inc.php" )
while (<$IN>) {
if ( $_ =~ /define\('DOL_MAJOR_VERSION',\s*'([\d\.a-z\-]+)'\)/ ) {
$MAJORVERSION = $1;
break;
last;
}
}
close $IN;
@@ -200,7 +210,7 @@ open( my $IN2, "<", $SOURCE . "/htdocs/filefunc.inc.php" )
while (<$IN2>) {
if ( $_ =~ /define\('DOL_MINOR_VERSION',\s*'([\d\.a-z\-]+)'\)/ ) {
$MINORVERSION = $1;
break;
last;
}
}
close $IN2;
@@ -386,6 +396,7 @@ foreach my $target ( sort keys %CHOOSEDTARGET ) {
}
$atleastonerpm = 1;
}
foreach my $req ( split( /[,\s]/, $REQUIREMENTTARGET{$target} ) ) {
# Test
@@ -540,7 +551,7 @@ if ($nboftargetok) {
chdir("$SOURCE");
print "Clean $SOURCE/htdocs/includes/autoload.php\n";
$ret = `rm -f $SOURCE/htdocs/includes/autoload.php`;
unlink("$SOURCE/htdocs/includes/autoload.php");
$ret = `git ls-files . --exclude-standard --others`;
if ($ret) {
@@ -805,19 +816,19 @@ if ($nboftargetok) {
$ret = `rm -f $BUILDROOT/$PROJECT/htdocs/includes/geoip/sample*.*`;
$ret = `rm -f $BUILDROOT/$PROJECT/htdocs/includes/bin`;
$ret =
`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/ckeditor/ckeditor/adapters`
`rm -fr $BUILDROOT/$PROJECT/htdocs/public/includes/ckeditor/ckeditor/adapters`
; # Keep this removal in case we embed libraries
$ret =
`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/ckeditor/ckeditor/samples`
`rm -fr $BUILDROOT/$PROJECT/htdocs/public/includes/ckeditor/ckeditor/samples`
; # Keep this removal in case we embed libraries
$ret = `rm -fr $BUILDROOT/$PROJECT/htdocs/includes/ckeditor/_source`
$ret = `rm -fr $BUILDROOT/$PROJECT/htdocs/public/includes/ckeditor/_source`
; # _source must be kept into tarball for official debian, not for the rest
$ret = `rm -f $BUILDROOT/$PROJECT/htdocs/includes/composer`;
$ret = `rm -f $BUILDROOT/$PROJECT/htdocs/includes/doctrine`;
$ret =
`rm -f $BUILDROOT/$PROJECT/htdocs/includes/jquery/plugins/multiselect/MIT-LICENSE.txt`;
`rm -f $BUILDROOT/$PROJECT/htdocs/public/includes/jquery/plugins/multiselect/MIT-LICENSE.txt`;
$ret =
`rm -f $BUILDROOT/$PROJECT/htdocs/includes/jquery/plugins/select2/release.sh`;
`rm -f $BUILDROOT/$PROJECT/htdocs/public/includes/jquery/plugins/select2/release.sh`;
$ret =
`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/mike42/escpos-php/doc`;
$ret =
@@ -923,7 +934,7 @@ if ($nboftargetok) {
$ret = `rm -fr $BUILDROOT/$FILENAMETGZ/dev/build/exe`;
$ret =
`rm -fr $BUILDROOT/$FILENAMETGZ/htdocs/includes/ckeditor/_source`
`rm -fr $BUILDROOT/$FILENAMETGZ/htdocs/public/includes/ckeditor/_source`
; # We can't remove it with exclude file, we need it for some tarball packages
print "Compress $FILENAMETGZ into $FILENAMETGZ.tgz...\n";
@@ -960,7 +971,7 @@ if ($nboftargetok) {
$ret = `rm -fr $BUILDROOT/$FILENAMEXZ/dev/build/exe`;
$ret =
`rm -fr $BUILDROOT/$FILENAMEXZ/htdocs/includes/ckeditor/_source`
`rm -fr $BUILDROOT/$FILENAMEXZ/htdocs/public/includes/ckeditor/_source`
; # We can't remove it with exclude file, we need it for some tarball packages
print "Compress $FILENAMEXZ into $FILENAMEXZ.xz...\n";
@@ -999,7 +1010,7 @@ if ($nboftargetok) {
$ret = `rm -fr $BUILDROOT/$FILENAMEZIP/dev/build/exe`;
$ret =
`rm -fr $BUILDROOT/$FILENAMEZIP/htdocs/includes/ckeditor/_source`
`rm -fr $BUILDROOT/$FILENAMEZIP/htdocs/public/includes/ckeditor/_source`
; # We can't remove it with exclude file, we need it for some tarball packages
print "Compress $FILENAMEZIP into $FILENAMEZIP.zip...\n";
@@ -1051,7 +1062,7 @@ if ($nboftargetok) {
$ret = `$cmd`;
# Removed files we don't need (already removed before)
#$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/htdocs/includes/ckeditor/_source`;
#$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/htdocs/public/includes/ckeditor/_source`;
print "Set permissions on files/dir\n";
$ret = `chmod -R 755 $BUILDROOT/$FILENAMETGZ2`;
@@ -1250,17 +1261,17 @@ if ($nboftargetok) {
# Removed duplicate license files
$ret =
`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/ckeditor/ckeditor/_source/LICENSE.md`;
`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/public/includes/ckeditor/ckeditor/_source/LICENSE.md`;
$ret =
`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/LICENSE.md`;
`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/public/includes/ckeditor/ckeditor/_source/plugins/scayt/LICENSE.md`;
$ret =
`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/ckeditor/ckeditor/_source/plugins/wsc/LICENSE.md`;
`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/public/includes/ckeditor/ckeditor/_source/plugins/wsc/LICENSE.md`;
$ret =
`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/ckeditor/ckeditor/LICENSE.md`;
`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/public/includes/ckeditor/ckeditor/LICENSE.md`;
$ret =
`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/ckeditor/ckeditor/plugins/scayt/LICENSE.md`;
`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/public/includes/ckeditor/ckeditor/plugins/scayt/LICENSE.md`;
$ret =
`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/ckeditor/ckeditor/plugins/wsc/LICENSE.md`;
`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/public/includes/ckeditor/ckeditor/plugins/wsc/LICENSE.md`;
$ret =
`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/php-iban/LICENSE`;
$ret =
@@ -1283,7 +1294,7 @@ if ($nboftargetok) {
`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/mobiledetect/mobiledetectlib/LICENSE.txt`;
# Removed files we don't need (already removed)
#$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/ckeditor/ckeditor/_source`;
#$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/public/includes/ckeditor/ckeditor/_source`;
$ret = `rm -fr $BUILDROOT/$PROJECT.tmp/.codeclimate.yml`;
$ret = `rm -fr $BUILDROOT/$PROJECT.tmp/.pre-commit-config.yaml`;
$ret = `rm -fr $BUILDROOT/$PROJECT.tmp/.vscode`;

View File

@@ -7,24 +7,24 @@
#----------------------------------------------------------------------------
## no critic (InputOutput::ProhibitExplicitStdin,InputOutput::RequireBriefOpen)
use strict;
#use strict;
use warnings;
use Cwd;
use Term::ANSIColor;
$OWNER = "ldestailleur";
$GROUP = "ldestailleur";
my $OWNER = "ldestailleur";
my $GROUP = "ldestailleur";
@LISTETARGET = ("ZIP"); # Possible packages
%REQUIREMENTTARGET = ( # Tool requirement for each package
my @LISTETARGET = ("ZIP"); # Possible packages
my %REQUIREMENTTARGET = ( # Tool requirement for each package
"TGZ" => "tar",
"ZIP" => "7z"
);
%ALTERNATEPATH = ();
my %ALTERNATEPATH = ();
use vars qw/ $REVISION $VERSION /;
$REVISION = '1.0';
$VERSION = "3.5 (build $REVISION)";
my $REVISION = '1.0';
my $VERSION = "3.5 (build $REVISION)";
#------------------------------------------------------------------------------
# MAIN
@@ -184,7 +184,7 @@ foreach my $PROJECT (@PROJECTLIST) {
while (<$IN>) {
if ( $_ =~ /this->version\s*=\s*'([\d\.]+)'/ ) {
$PROJVERSION = $1;
break;
last;
}
}
close $IN;

View File

@@ -250,7 +250,7 @@ if ($upgrade) {
&copy_source_dest_as_domain_user($d, $oldcfile, $cfile);
&copy_source_dest_as_domain_user($d, $olddocdir, $docdir);
&copy_source_dest_as_domain_user($d, $oldaltdir, $altdir);
# First page (Update database schema)
local @params = ( [ "action", "upgrade" ],
[ "versionfrom", $upgrade->{'version'} ],
@@ -258,7 +258,7 @@ if ($upgrade) {
);
local $err = &call_dolibarr_wizard_page(\@params, "upgrade", $d, $opts);
return (-1, "Dolibarr wizard failed : $err") if ($err);
# Second page (Migrate some data)
local @params = ( [ "action", "upgrade" ],
[ "versionfrom", $upgrade->{'version'} ],
@@ -266,7 +266,7 @@ if ($upgrade) {
);
local $err = &call_dolibarr_wizard_page(\@params, "upgrade2", $d, $opts);
return (-1, "Dolibarr wizard failed : $err") if ($err);
# Third page (Update version number)
local @params = ( [ "action", "upgrade" ],
[ "versionfrom", $upgrade->{'version'} ],
@@ -276,12 +276,12 @@ if ($upgrade) {
local $p = $ver >= 3.8 ? "step5" : "etape5";
local $err = &call_dolibarr_wizard_page(\@params, $p, $d, $opts);
return (-1, "Dolibarr wizard failed : $err") if ($err);
# Remove the installation directory. (deprecated)
# local $dinstall = "$opts->{'dir'}/install";
# $dinstall =~ s/\/$//;
# $out = &run_as_domain_user($d, "rm -rf ".quotemeta($dinstall));
}
else {
# First page (Db connection and config file creation)
@@ -306,13 +306,13 @@ else {
local $p = $ver >= 3.8 ? "step1" : "etape1";
local $err = &call_dolibarr_wizard_page(\@params, $p, $d, $opts);
return (-1, "Dolibarr wizard failed : $err") if ($err);
# Second page (Populate database)
local @params = ( [ "action", "set" ] );
local $p = $ver >= 3.8 ? "step2" : "etape2";
local $err = &call_dolibarr_wizard_page(\@params, $p, $d, $opts);
return (-1, "Dolibarr wizard failed : $err") if ($err);
# Third page (Add administrator account)
local @params = ( [ "action", "set" ],
[ "login", "admin" ],
@@ -323,17 +323,17 @@ else {
local $p = $ver >= 3.8 ? "step5" : "etape5";
local $err = &call_dolibarr_wizard_page(\@params, $p, $d, $opts);
return (-1, "Dolibarr wizard failed : $err") if ($err);
# Remove the installation directory (deprecated)
# local $dinstall = "$opts->{'dir'}/install";
# $dinstall =~ s/\/$//;
# $out = &run_as_domain_user($d, "rm -rf ".quotemeta($dinstall));
# Protect config file
&set_permissions_as_domain_user($d, 0644, $cfile);
&set_permissions_as_domain_user($d, 0755, $cfiledir);
}
# Return a URL for the user
local $rp = $opts->{'dir'};
$rp =~ s/^$d->{'home'}\///;
@@ -443,7 +443,7 @@ return 2;
sub script_dolibarr_db_conn_desc
{
my $db_conn_desc =
my $db_conn_desc =
{ 'conf/conf.php' =>
{
'dbpass' =>

View File

@@ -6,12 +6,6 @@ parameters:
count: 1
path: ../../../htdocs/accountancy/admin/categories.php
-
message: '#^If condition is always true\.$#'
identifier: if.alwaysTrue
count: 2
path: ../../../htdocs/accountancy/admin/categories_list.php
-
message: '#^Loose comparison using \=\= between 32 and 32 will always evaluate to true\.$#'
identifier: equal.alwaysTrue
@@ -36,24 +30,12 @@ parameters:
count: 1
path: ../../../htdocs/accountancy/admin/journals_list.php
-
message: '#^If condition is always true\.$#'
identifier: if.alwaysTrue
count: 1
path: ../../../htdocs/accountancy/admin/productaccount.php
-
message: '#^Right side of && is always true\.$#'
identifier: booleanAnd.rightAlwaysTrue
count: 1
path: ../../../htdocs/accountancy/admin/productaccount.php
-
message: '#^If condition is always true\.$#'
identifier: if.alwaysTrue
count: 1
path: ../../../htdocs/accountancy/admin/report_list.php
-
message: '#^Loose comparison using \=\= between 45 and 45 will always evaluate to true\.$#'
identifier: equal.alwaysTrue
@@ -450,12 +432,6 @@ parameters:
count: 1
path: ../../../htdocs/admin/emailcollector_card.php
-
message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#'
identifier: empty.variable
count: 1
path: ../../../htdocs/admin/emailcollector_list.php
-
message: '#^Left side of && is always true\.$#'
identifier: booleanAnd.leftAlwaysTrue
@@ -492,12 +468,6 @@ parameters:
count: 1
path: ../../../htdocs/admin/fediverse.php
-
message: '#^Variable \$result might not be defined\.$#'
identifier: variable.undefined
count: 1
path: ../../../htdocs/admin/fediverse.php
-
message: '#^If condition is always true\.$#'
identifier: if.alwaysTrue
@@ -564,12 +534,6 @@ parameters:
count: 1
path: ../../../htdocs/admin/hrm.php
-
message: '#^Variable \$object might not be defined\.$#'
identifier: variable.undefined
count: 1
path: ../../../htdocs/admin/hrm.php
-
message: '#^If condition is always true\.$#'
identifier: if.alwaysTrue
@@ -828,12 +792,6 @@ parameters:
count: 1
path: ../../../htdocs/admin/security_file.php
-
message: '#^Variable \$smsfile might not be defined\.$#'
identifier: variable.undefined
count: 5
path: ../../../htdocs/admin/sms.php
-
message: '#^Loose comparison using \=\= between ''add'' and ''add'' will always evaluate to true\.$#'
identifier: equal.alwaysTrue
@@ -2310,12 +2268,6 @@ parameters:
count: 5
path: ../../../htdocs/compta/accounting-files.php
-
message: '#^Variable \$mc might not be defined\.$#'
identifier: variable.undefined
count: 5
path: ../../../htdocs/compta/accounting-files.php
-
message: '#^Variable \$modulepart might not be defined\.$#'
identifier: variable.undefined
@@ -2592,12 +2544,6 @@ parameters:
count: 1
path: ../../../htdocs/compta/bank/treso.php
-
message: '#^Variable \$mc might not be defined\.$#'
identifier: variable.undefined
count: 2
path: ../../../htdocs/compta/bank/treso.php
-
message: '#^Call to function is_array\(\) with array will always evaluate to true\.$#'
identifier: function.alreadyNarrowedType
@@ -2661,7 +2607,7 @@ parameters:
-
message: '#^Loose comparison using \=\= between ''card'' and ''card'' will always evaluate to true\.$#'
identifier: equal.alwaysTrue
count: 1
count: 2
path: ../../../htdocs/compta/cashcontrol/cashcontrol_card.php
-
@@ -2679,7 +2625,7 @@ parameters:
-
message: '#^Loose comparison using \=\= between ''create''\|''start'' and ''close'' will always evaluate to false\.$#'
identifier: equal.alwaysFalse
count: 2
count: 1
path: ../../../htdocs/compta/cashcontrol/cashcontrol_card.php
-
@@ -3288,12 +3234,6 @@ parameters:
count: 1
path: ../../../htdocs/compta/paiement/card.php
-
message: '#^Variable \$mc might not be defined\.$#'
identifier: variable.undefined
count: 2
path: ../../../htdocs/compta/paiement/card.php
-
message: '#^Ternary operator condition is always false\.$#'
identifier: ternary.alwaysFalse
@@ -6679,7 +6619,7 @@ parameters:
path: ../../../htdocs/core/lib/functions2.lib.php
-
message: '#^Call to function function_exists\(\) with ''imagecreatefromgif''\|''imagecreatefromjpeg''\|''imagecreatefrompng''\|''imagecreatefromwbmp''\|''imagecreatefromwebp'' will always evaluate to true\.$#'
message: '#^Call to function function_exists\(\) with ''imagecreatefromavif''\|''imagecreatefromgif''\|''imagecreatefromjpeg''\|''imagecreatefrompng''\|''imagecreatefromwbmp''\|''imagecreatefromwebp'' will always evaluate to true\.$#'
identifier: function.alreadyNarrowedType
count: 3
path: ../../../htdocs/core/lib/images.lib.php
@@ -6885,7 +6825,7 @@ parameters:
-
message: '#^Left side of \|\| is always true\.$#'
identifier: booleanOr.leftAlwaysTrue
count: 4
count: 3
path: ../../../htdocs/core/menus/standard/eldy.lib.php
-
@@ -7356,24 +7296,6 @@ parameters:
count: 1
path: ../../../htdocs/core/modules/import/import_csv.modules.php
-
message: '#^Property ModeleImports\:\:\$errors \(array\<string\>\) does not accept array\<array\<string, mixed\>\|string\>\.$#'
identifier: assign.propertyType
count: 3
path: ../../../htdocs/core/modules/import/import_csv.modules.php
-
message: '#^Property ModeleImports\:\:\$errors \(array\<string\>\) does not accept array\<array\<string, string\>\|string\>\.$#'
identifier: assign.propertyType
count: 3
path: ../../../htdocs/core/modules/import/import_csv.modules.php
-
message: '#^Property ModeleImports\:\:\$warnings \(array\<string\>\) does not accept array\<array\<string, mixed\>\|string\>\.$#'
identifier: assign.propertyType
count: 1
path: ../../../htdocs/core/modules/import/import_csv.modules.php
-
message: '#^Variable \$key might not be defined\.$#'
identifier: variable.undefined
@@ -7422,24 +7344,6 @@ parameters:
count: 1
path: ../../../htdocs/core/modules/import/import_xlsx.modules.php
-
message: '#^Property ModeleImports\:\:\$errors \(array\<string\>\) does not accept array\<array\<string, mixed\>\|string\>\.$#'
identifier: assign.propertyType
count: 3
path: ../../../htdocs/core/modules/import/import_xlsx.modules.php
-
message: '#^Property ModeleImports\:\:\$errors \(array\<string\>\) does not accept array\<array\<string, string\>\|string\>\.$#'
identifier: assign.propertyType
count: 3
path: ../../../htdocs/core/modules/import/import_xlsx.modules.php
-
message: '#^Property ModeleImports\:\:\$warnings \(array\<string\>\) does not accept array\<array\<string, mixed\>\|string\>\.$#'
identifier: assign.propertyType
count: 1
path: ../../../htdocs/core/modules/import/import_xlsx.modules.php
-
message: '#^Variable \$where might not be defined\.$#'
identifier: variable.undefined
@@ -7908,12 +7812,6 @@ parameters:
count: 1
path: ../../../htdocs/core/modules/oauth/generic_oauthcallback.php
-
message: '#^Variable \$state might not be defined\.$#'
identifier: variable.undefined
count: 1
path: ../../../htdocs/core/modules/oauth/github_oauthcallback.php
-
message: '#^Strict comparison using \=\=\= between null and null will always evaluate to true\.$#'
identifier: identical.alwaysTrue
@@ -8148,12 +8046,6 @@ parameters:
count: 1
path: ../../../htdocs/core/multicompany_page.php
-
message: '#^Variable \$mc might not be defined\.$#'
identifier: variable.undefined
count: 2
path: ../../../htdocs/core/multicompany_page.php
-
message: '#^Negated boolean expression is always false\.$#'
identifier: booleanNot.alwaysFalse
@@ -8406,12 +8298,6 @@ parameters:
count: 1
path: ../../../htdocs/core/website.inc.php
-
message: '#^Variable \$mc might not be defined\.$#'
identifier: variable.undefined
count: 2
path: ../../../htdocs/cron/card.php
-
message: '#^Call to function is_array\(\) with array will always evaluate to true\.$#'
identifier: function.alreadyNarrowedType
@@ -9096,18 +8982,6 @@ parameters:
count: 1
path: ../../../htdocs/fourn/class/fournisseur.commande.class.php
-
message: '#^Call to function property_exists\(\) with \$this\(CommandeFournisseur\) and ''socid'' will always evaluate to true\.$#'
identifier: function.alreadyNarrowedType
count: 1
path: ../../../htdocs/fourn/class/fournisseur.commande.class.php
-
message: '#^Call to function property_exists\(\) with \$this\(CommandeFournisseur\) and ''total_tva'' will always evaluate to true\.$#'
identifier: function.alreadyNarrowedType
count: 1
path: ../../../htdocs/fourn/class/fournisseur.commande.class.php
-
message: '#^If condition is always true\.$#'
identifier: if.alwaysTrue
@@ -10185,7 +10059,7 @@ parameters:
-
message: '#^If condition is always true\.$#'
identifier: if.alwaysTrue
count: 12
count: 10
path: ../../../htdocs/imports/import.php
-
@@ -13728,12 +13602,6 @@ parameters:
count: 1
path: ../../../htdocs/public/stripe/ipn.php
-
message: '#^Variable \$mc might not be defined\.$#'
identifier: variable.undefined
count: 1
path: ../../../htdocs/public/stripe/ipn.php
-
message: '#^Ternary operator condition is always true\.$#'
identifier: ternary.alwaysTrue
@@ -14568,12 +14436,6 @@ parameters:
count: 1
path: ../../../htdocs/salaries/virement_request.php
-
message: '#^Variable \$mc might not be defined\.$#'
identifier: variable.undefined
count: 1
path: ../../../htdocs/societe/admin/societe.php
-
message: '#^Call to function is_object\(\) with Societe will always evaluate to true\.$#'
identifier: function.alreadyNarrowedType
@@ -14604,12 +14466,6 @@ parameters:
count: 1
path: ../../../htdocs/societe/canvas/company/tpl/card_view.tpl.php
-
message: '#^Variable \$socid might not be defined\.$#'
identifier: variable.undefined
count: 3
path: ../../../htdocs/societe/canvas/company/tpl/card_view.tpl.php
-
message: '#^Variable \$objcanvas might not be defined\.$#'
identifier: variable.undefined
@@ -14814,12 +14670,6 @@ parameters:
count: 1
path: ../../../htdocs/societe/paymentmodes.php
-
message: '#^Left side of && is always true\.$#'
identifier: booleanAnd.leftAlwaysTrue
count: 1
path: ../../../htdocs/societe/paymentmodes.php
-
message: '#^Negated boolean expression is always true\.$#'
identifier: booleanNot.alwaysTrue
@@ -15486,12 +15336,6 @@ parameters:
count: 7
path: ../../../htdocs/user/card.php
-
message: '#^Variable \$mc might not be defined\.$#'
identifier: variable.undefined
count: 3
path: ../../../htdocs/user/card.php
-
message: '#^Call to function method_exists\(\) with \$this\(User\) and ''getLibStatut'' will always evaluate to true\.$#'
identifier: function.alreadyNarrowedType
@@ -15642,12 +15486,6 @@ parameters:
count: 1
path: ../../../htdocs/user/document.php
-
message: '#^Variable \$mc might not be defined\.$#'
identifier: variable.undefined
count: 3
path: ../../../htdocs/user/group/card.php
-
message: '#^Loose comparison using \!\= between '''' and '''' will always evaluate to false\.$#'
identifier: notEqual.alwaysFalse
@@ -15666,36 +15504,12 @@ parameters:
count: 1
path: ../../../htdocs/user/group/list.php
-
message: '#^Variable \$mc might not be defined\.$#'
identifier: variable.undefined
count: 1
path: ../../../htdocs/user/group/list.php
-
message: '#^Variable \$mc might not be defined\.$#'
identifier: variable.undefined
count: 1
path: ../../../htdocs/user/group/perms.php
-
message: '#^Variable \$mc might not be defined\.$#'
identifier: variable.undefined
count: 2
path: ../../../htdocs/user/hierarchy.php
-
message: '#^Variable \$mode in empty\(\) always exists and is not falsy\.$#'
identifier: empty.variable
count: 1
path: ../../../htdocs/user/hierarchy.php
-
message: '#^Variable \$mc might not be defined\.$#'
identifier: variable.undefined
count: 2
path: ../../../htdocs/user/home.php
-
message: '#^Offset ''u\.salary'' on array\{u\.salary\: \(float\|int\)\} in isset\(\) always exists and is not nullable\.$#'
identifier: isset.offset
@@ -15708,12 +15522,6 @@ parameters:
count: 1
path: ../../../htdocs/user/list.php
-
message: '#^Variable \$mc might not be defined\.$#'
identifier: variable.undefined
count: 1
path: ../../../htdocs/user/list.php
-
message: '#^Variable \$searchCategoryUserList in empty\(\) always exists and is not falsy\.$#'
identifier: empty.variable

View File

@@ -103,7 +103,7 @@ cui hai bisogno ed essere facile da usare.
%{__cp} -pr dev/build/tgz/* $RPM_BUILD_ROOT%{_datadir}/%{name}/dev/build/tgz
%{__cp} -pr htdocs $RPM_BUILD_ROOT%{_datadir}/%{name}
%{__cp} -pr scripts $RPM_BUILD_ROOT%{_datadir}/%{name}
%{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/includes/ckeditor/_source
%{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/public/includes/ckeditor/_source
%{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/includes/nusoap
%{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/includes/fonts

View File

@@ -167,7 +167,7 @@ cui hai bisogno ed essere facile da usare.
%{__cp} -pr dev/build/tgz/* $RPM_BUILD_ROOT%{_datadir}/%{name}/dev/build/tgz
%{__cp} -pr htdocs $RPM_BUILD_ROOT%{_datadir}/%{name}
%{__cp} -pr scripts $RPM_BUILD_ROOT%{_datadir}/%{name}
%{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/includes/ckeditor/_source
%{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/public/includes/ckeditor/_source
%if 0%{?fedora} || 0%{?rhel_version} || 0%{?centos_version}
%{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/includes/nusoap
%{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/includes/fonts

View File

@@ -102,7 +102,7 @@ cui hai bisogno ed essere facile da usare.
%{__cp} -pr dev/build/tgz/* $RPM_BUILD_ROOT%{_datadir}/%{name}/dev/build/tgz
%{__cp} -pr htdocs $RPM_BUILD_ROOT%{_datadir}/%{name}
%{__cp} -pr scripts $RPM_BUILD_ROOT%{_datadir}/%{name}
%{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/includes/ckeditor/_source
%{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/public/includes/ckeditor/_source
%{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/includes/fonts
# Lang

View File

@@ -102,7 +102,7 @@ cui hai bisogno ed essere facile da usare.
%{__cp} -pr dev/build/tgz/* $RPM_BUILD_ROOT%{_datadir}/%{name}/dev/build/tgz
%{__cp} -pr htdocs $RPM_BUILD_ROOT%{_datadir}/%{name}
%{__cp} -pr scripts $RPM_BUILD_ROOT%{_datadir}/%{name}
%{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/includes/ckeditor/_source
%{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/public/includes/ckeditor/_source
%{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/includes/fonts
# Lang

View File

@@ -263,7 +263,19 @@ with
PHP JQUERYFILETREE:
-------------------
* Remove directory htdocs/includes/jquery/plugins/jqueryFileTree/connectors
* Remove directory htdocs/public/includes/jquery/plugins/jqueryFileTree/connectors
PHP Mobile_DETECT:
------------------
Remplacer:
array $headers = null,
par
$headers = null,

View File

@@ -1,4 +1,4 @@
README (english)
--------------------------------
This directory contains some sample files to test ldap command on command line.
They are used to help developmement and debugging of Dolibarr LDAP features.
They are used to help developmement and debugging of Dolibarr LDAP features.

View File

@@ -8,4 +8,4 @@
dn: ou=contacts,dc=my-domain,dc=com
objectClass: organizationalUnit
ou: contacts
ou: contacts

View File

@@ -24,6 +24,5 @@
# ldapsearch -h hostname -p 389 -x -D "cn=manager,o=somecompany.com" -w password -b "ou=people,dc=teclib,dc=infra"
# ldapsearch -h hostname -p 389 -x -D "cn=manager,o=somecompany.com" -w password -b "o=somecompany.com" "(objectclass=*)"
#
# Example to test a ldap search:
# Example to test a ldap search:
# ldapsearch -h hostname -p 389 -x -z 5 -b 'OU=Collaborateurs,OU=Utilisateurs,OU=MyCompany,DC=bocal,DC=lan' -D 'CN=UserAdmin,OU=Informatique,OU=Utilisateurs,OU=MyCompany,DC=bocal,DC=lan' -w password

View File

@@ -65,4 +65,4 @@ o9CFUO94RUiiEpmahN6IfgQXpQJUft9yuDseAluyCkKif5QkQA3IvwVYD2mv0R1uc9gY
fZt0uru+Tc93cnQQ82A5KVrVVvvahsyxtQFRMOgFLl8ct3wu6NVPyQPby9YUk2J4dpQr
R5X+bCaMew5mDNsdjMV95GesdhT3n3y32Az+XZsuecMoxePVX5S+GRSu/9XVL9Z+w7Ki
--468358388441498ebb24096bfda88a45--
--468358388441498ebb24096bfda88a45--

View File

@@ -46,4 +46,4 @@ Content-Transfer-Encoding: quoted-printable
... attach-file ...
--------------090104020208060008040809-- (end multipart/mixed)
--------------090104020208060008040809-- (end multipart/mixed)

View File

@@ -45,4 +45,4 @@ VEImZGI9b2Rvb192OCc+UGFydG5lciBBZ3JvbGFpdDwvYT48L3NtYWxsPjwvc3Bhbj4K
--===============8764907306434163361==--
--===============4543832834454763172==--
--===============4543832834454763172==--

View File

@@ -71,7 +71,7 @@ Content-Type: text/plain; charset="UTF-8"
adfsdfsdfds
--
--
Laurent.
------------------------------------------------------------------------------------
Twitter: https://www.twitter.com/eldy10

View File

@@ -3,4 +3,3 @@
Take a look at the dolibarr wiki page of Zapier module:
https://wiki.dolibarr.org/index.php?title=Module_Zapier

View File

@@ -1,56 +1,25 @@
{
"table_rowid": "id",
"id": 6764,
"ref": null,
"type_id": "5",
"type_code": "AC_RDV",
"type": null,
"type_color": null,
"code": null,
"label": "azerty",
"datec": null,
"datem": null,
"authorid": null,
"usermodid": null,
"datep": 1555365600,
"datef": 1555538399,
"durationp": 172799,
"fulldayevent": 1,
"punctual": 1,
"percentage": "-1",
"location": "",
"transparency": 1,
"priority": 0,
"userassigned": {
"1": {
"id": "1",
"transparency": 1
}
},
"userownerid": "1",
"userdoneid": null,
"usertodo": null,
"userdone": null,
"socid": null,
"contactid": null,
"elementtype": "",
"icalname": null,
"icalcolor": null,
"actions": [],
"email_msgid": null,
"email_from": null,
"email_sender": null,
"email_to": null,
"email_tocc": null,
"email_tobcc": null,
"email_subject": null,
"errors_to": null,
"import_key": null,
"linkedObjectsIds": null,
"fk_project": 0,
"modelpdf": null,
"note_public": null,
"note_private": null,
"note": "wxcvbn",
"duree": 0
}
"table_rowid" : "id",
"id" : 6764,
"type_id" : "5",
"type_code" : "AC_RDV",
"label" : "azerty",
"datep" : 1555365600,
"datef" : 1555538399,
"durationp" : 172799,
"fulldayevent" : 1,
"punctual" : 1,
"percentage" : "-1",
"transparency" : 1,
"priority" : 0,
"userassigned" : {
"1" : {
"id" : "1",
"transparency" : 1
}
},
"userownerid" : "1",
"fk_project" : 0,
"note" : "wxcvbn",
"duree" : 0
}

View File

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

View File

@@ -46,6 +46,8 @@ passwd=$6
if [ "$confirm" != "confirm" ]
then
echo "----- $0 -----"
echo "Usage: initdemo.sh confirm "
echo " or"
echo "Usage: initdemo.sh confirm [mysqldump_dolibarr_x.x.x.sql database port login pass]"
exit
fi
@@ -56,6 +58,8 @@ command -v dialog >/dev/null 2>&1 || {
echo "Error: command dialog not found. On Linux, you can install it with: apt install dialog"
exit
}
DIALOG=${DIALOG:=dialog}
DIALOG="$DIALOG --ascii-lines"
# ----------------------------- if no params on command line
@@ -67,8 +71,7 @@ then
dumpfile=$(basename "$dumpfile")
# ----------------------------- input file
DIALOG=${DIALOG:=dialog}
DIALOG="$DIALOG --ascii-lines"
fichtemp=$(mktemp 2>/dev/null) || fichtemp=/tmp/test$$
# shellcheck disable=2064,2172
trap "rm -f $fichtemp" 0 1 2 5 15
@@ -85,8 +88,6 @@ then
rm "$fichtemp"
# ----------------------------- database name
DIALOG=${DIALOG:=dialog}
DIALOG="$DIALOG --ascii-lines"
fichtemp=$(mktemp 2>/dev/null) || fichtemp=/tmp/test$$
# shellcheck disable=2064,2172
trap "rm -f '$fichtemp'" 0 1 2 5 15
@@ -103,13 +104,10 @@ then
rm "$fichtemp"
# ---------------------------- database port
DIALOG=${DIALOG:=dialog}
fichtemp=$(mktemp 2>/dev/null) || fichtemp=/tmp/test$$
# shellcheck disable=2064,2172
trap "rm -f '$fichtemp'" 0 1 2 5 15
$DIALOG --title "Init Dolibarr with demo values" --clear \
--inputbox "Mysql port (ex: 3306):" 16 55 3306 2> "$fichtemp"
$DIALOG --title "Init Dolibarr with demo values" --clear --inputbox "Mysql port (ex: 3306):" 16 55 3306 2> "$fichtemp"
valret=$?
case $valret in
@@ -123,13 +121,10 @@ then
rm "$fichtemp"
# ---------------------------- compte admin mysql
DIALOG=${DIALOG:=dialog}
fichtemp=$(mktemp 2>/dev/null) || fichtemp=/tmp/test$$
# shellcheck disable=2064,2172
trap "rm -f '$fichtemp'" 0 1 2 5 15
$DIALOG --title "Init Dolibarr with demo values" --clear \
--inputbox "Mysql user login (ex: root):" 16 55 root 2> "$fichtemp"
$DIALOG --title "Init Dolibarr with demo values" --clear --inputbox "Mysql user login (ex: root):" 16 55 root 2> "$fichtemp"
valret=$?
case $valret in
@@ -143,13 +138,10 @@ then
rm "$fichtemp"
# ---------------------------- password admin mysql (root)
DIALOG=${DIALOG:=dialog}
fichtemp=$(mktemp 2>/dev/null) || fichtemp=/tmp/test$$
# shellcheck disable=2064,2172
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"
$DIALOG --title "Init Dolibarr with demo values" --clear --passwordbox "Password for Mysql user login :" 16 55 2> "$fichtemp"
valret=$?
case $valret in
@@ -169,9 +161,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
$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
case $? in
0) echo "Ok, start process..." ;;
@@ -211,26 +201,21 @@ export documentdir
documentdir=$(< "$mydir/../../htdocs/conf/conf.php" grep '^\$dolibarr_main_data_root' | sed -e 's/$dolibarr_main_data_root=//' | sed -e 's/;//' | sed -e "s/'//g" | sed -e 's/"//g')
if [ "$documentdir" != "" ]
then
"$DIALOG" --title "Reset document directory" --clear \
--inputbox "DELETE and recreate document directory '$documentdir/':" 16 55 n 2> "$fichtemp"
$DIALOG --title "Reset document directory" --clear --yesno "DELETE and recreate document directory '$documentdir/':" 16 55
valret=$?
case $valret in
0)
rep=$(cat "$fichtemp") ;;
# YES
echo "RECREATE $documentdir"
echo " rm -fr '$documentdir/'*"
rm -fr "${documentdir:?}/"* ;;
1)
exit ;;
255)
exit ;;
esac
echo "rep=$rep"
if [ "$rep" = "y" ]; then
echo "rm -fr '$documentdir/'*"
rm -fr "${documentdir:?}/"*
fi
echo "cp -pr '$mydir/documents_demo/'* '$documentdir/'"
cp -pr "$mydir/documents_demo/"* "$documentdir/"

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -256,6 +256,7 @@ export list="
--ignore-table=$base.llx_c_ticketsup_type
--ignore-table=$base.llx_cabinetmed_c_banques
--ignore-table=$base.llx_cabinetmed_c_examconclusion
--ignore-table=$base.llx_cabinetmed_cons
--ignore-table=$base.llx_cabinetmed_cons_extrafields
--ignore-table=$base.llx_cabinetmed_diaglec
--ignore-table=$base.llx_cabinetmed_examaut
@@ -269,6 +270,7 @@ export list="
--ignore-table=$base.llx_congespayes_events
--ignore-table=$base.llx_congespayes_logs
--ignore-table=$base.llx_congespayes_users
--ignore-table=$base.llx_deplacement
--ignore-table=$base.llx_dolicloud_customers
--ignore-table=$base.llx_dolicloud_stats
--ignore-table=$base.llx_dolicloud_emailstemplates

View File

@@ -2,6 +2,6 @@
This file is the list of the signatures of some set of files locked to block a commit if files are tried to be modified for a given version.
It is used by the CI or the script to check and guarantee that no change is done on a given scope of files.
Version Scope Signature (generated by dev/build/generate_filelist_xml.php) that must remain unchanged for this couple version/scope
Version Scope Algo Signature (generated by dev/build/generate_filelist_xml.php) that must remain unchanged for this couple version/scope
x.0.0 unalterable_files 123456
x.0.0 unalterable_files sha256 123456

View File

@@ -1,2 +1,2 @@
This directory contains the file with the graphical database structure.
It can be read with MySQL Workbench software.
It can be read with MySQL Workbench software.

View File

@@ -2,5 +2,5 @@ EORI
https://en.wikipedia.org/wiki/EORI_number
in Dolibarr avaiable since v13
in Dolibarr avaiable since v13
- it is set to field 'profid5'

View File

@@ -18,5 +18,3 @@ Et ça marche à linverse avec un fournisseur sauf que lon est en 775000 a
Un compte comptable de Tiers vente = Acount Receivable
Un compte comptable de Tiers achat = Acount Payable

View File

@@ -3,4 +3,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

@@ -117,5 +117,3 @@ IBAN : FR54 3000 4031 2800 032T 56H9 125
Division :
3000403128000322956179125152754 / 97 =
3000403128000322956179125152753 reste 1.

View File

@@ -1,4 +1,4 @@
NACE
NACE
https://ec.europa.eu/eurostat/ramon/nomenclatures/index.cfm?TargetUrl=LST_CLS_DLD&StrNom=NACE_REV2&StrLanguageCode=EN&StrLayoutCode=

View File

@@ -3,7 +3,7 @@
# The list is updated whenever a change to the official code list in ISO 3166-1 is effected by the ISO 3166/MA.
# It lists 240 official short names and code elements. One line of text contains one entry.
# A country name and its code element are separated by a semicolon (;).
# https://www.iso.org/iso-3166-country-codes.html
# https://www.iso.org/iso-3166-country-codes.html
# https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes
# ISO-3166: https://en.wikipedia.org/wiki/ISO_3166-1

View File

@@ -136,4 +136,4 @@
<xsd:element name="regionCode" type="xsd:string"/>
<xsd:element name="date" type="xsd:date"/>
<xsd:element name="time" type="xsd:time"/>
</xsd:schema>
</xsd:schema>

View File

@@ -52,12 +52,12 @@ GUARANI GN AMERINDIAN
GUJARATI GU INDIAN
HAUSA HA NEGRO-AFRICAN
HEBREW HE SEMITIC [*Changed 1989 from original ISO 639:1988, IW]
HEBREW HE SEMITIC [*Changed 1989 from original ISO 639:1988, IW]
HINDI HI INDIAN
HUNGARIAN HU FINNO-UGRIC
ICELANDIC IS GERMANIC
INDONESIAN ID OCEANIC/INDONESIAN [*Changed 1989 from original ISO 639:1988, IN]
INDONESIAN ID OCEANIC/INDONESIAN [*Changed 1989 from original ISO 639:1988, IN]
INTERLINGUA IA INTERNATIONAL AUX.
INTERLINGUE IE INTERNATIONAL AUX.
INUKTITUT IU [ ]
@@ -159,7 +159,7 @@ WOLOF WO NEGRO-AFRICAN
XHOSA XH NEGRO-AFRICAN
YIDDISH YI GERMANIC [*Changed 1989 from original ISO 639:1988, JI]
YIDDISH YI GERMANIC [*Changed 1989 from original ISO 639:1988, JI]
YORUBA YO NEGRO-AFRICAN
ZHUANG ZA [ ]
@@ -211,7 +211,7 @@ GALICIAN GL ROMANCE
GUARANI GN AMERINDIAN
GUJARATI GU INDIAN
HAUSA HA NEGRO-AFRICAN
HEBREW HE SEMITIC [*Changed 1989 from original ISO 639:1988, IW]
HEBREW HE SEMITIC [*Changed 1989 from original ISO 639:1988, IW]
HINDI HI INDIAN
CROATIAN HR SLAVIC
HUNGARIAN HU FINNO-UGRIC
@@ -219,7 +219,7 @@ ARMENIAN HY INDO-EUROPEAN (OTHER)
INTERLINGUA IA INTERNATIONAL AUX.
INTERLINGUE IE INTERNATIONAL AUX.
INUPIAK IK ESKIMO
INDONESIAN ID OCEANIC/INDONESIAN [*Changed 1989 from original ISO 639:1988, IN]
INDONESIAN ID OCEANIC/INDONESIAN [*Changed 1989 from original ISO 639:1988, IN]
ICELANDIC IS GERMANIC
ITALIAN IT ROMANCE
INUKTITUT IU [ ]
@@ -304,7 +304,7 @@ VIETNAMESE VI ASIAN
VOLAPUK VO INTERNATIONAL AUX.
WOLOF WO NEGRO-AFRICAN
XHOSA XH NEGRO-AFRICAN
YIDDISH YI GERMANIC [*Changed 1989 from original ISO 639:1988, JI]
YIDDISH YI GERMANIC [*Changed 1989 from original ISO 639:1988, JI]
YORUBA YO NEGRO-AFRICAN
ZHUANG ZA [ ]
CHINESE ZH ASIAN
@@ -362,7 +362,7 @@ GERMAN DE GERMANIC
ICELANDIC IS GERMANIC
NORWEGIAN NO GERMANIC
SWEDISH SV GERMANIC
YIDDISH YI GERMANIC [*Changed 1989 from original ISO 639:1988, JI]
YIDDISH YI GERMANIC [*Changed 1989 from original ISO 639:1988, JI]
AFAN (OROMO) OM HAMITIC
AFAR AA HAMITIC
@@ -420,7 +420,7 @@ YORUBA YO NEGRO-AFRICAN
ZULU ZU NEGRO-AFRICAN
FIJI FJ OCEANIC/INDONESIAN
INDONESIAN ID OCEANIC/INDONESIAN [*Changed 1989 from original ISO 639:1988, IN]
INDONESIAN ID OCEANIC/INDONESIAN [*Changed 1989 from original ISO 639:1988, IN]
JAVANESE JV OCEANIC/INDONESIAN
MALAGASY MG OCEANIC/INDONESIAN
MALAY MS OCEANIC/INDONESIAN
@@ -444,7 +444,7 @@ SPANISH ES ROMANCE
AMHARIC AM SEMITIC
ARABIC AR SEMITIC
HEBREW HE SEMITIC [*Changed 1989 from original ISO 639:1988, IW]
HEBREW HE SEMITIC [*Changed 1989 from original ISO 639:1988, IW]
MALTESE MT SEMITIC
TIGRINYA TI SEMITIC

View File

@@ -5,4 +5,4 @@ terms
(fr) TVA = Taxe sur la Valeur Ajouté
(es) NIF / CIF
(de) USt / MwSt = UmsatzSteuer / Mehrwertsteuer
(it) IVA
(it) IVA

View File

@@ -5,6 +5,6 @@ https://www.taxrates.cc/index.html
https://en.wikipedia.org/wiki/List_of_countries_by_tax_rates
For India: VAT=IGST / CGST=Localtax1 / SGST=Localtax2
see:
see:
https://cleartax.in/s/what-is-sgst-cgst-igst
https://www.mastersindia.co/blog/what-is-cgst-sgst-igst-and-ugst/

View File

@@ -3,4 +3,4 @@ README (English)
If your web hosting does not allow you to place the folder "documents" outside
the site root, add the htaccess.txt in the root directory of
folder "documents" by renaming it into .htaccess
folder "documents" by renaming it into .htaccess

View File

@@ -0,0 +1,103 @@
<?php
/* Copyright (C) 2025 Frédéric France <frederic.france@free.fr>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
namespace codesniffer\Sniffs\Dolibarr;
use PHP_CodeSniffer\Sniffs\Sniff;
use PHP_CodeSniffer\Files\File;
/**
* CheckIsModEnabledArgumentSniff
*/
class CheckIsModEnabledArgumentSniff implements Sniff
{
// Nom de la fonction cible
protected $targetFunction = 'ismodenabled';
protected $deprecatedModulesNames = [
'actioncomm' => 'agenda',
'adherent' => 'member',
'adherent_type' => 'member_type',
'banque' => 'bank',
'categorie' => 'category',
'commande' => 'order',
'contrat' => 'contract',
'entrepot' => 'stock',
'expedition' => 'shipping',
'facture' => 'invoice',
'ficheinter' => 'intervention',
'product_fournisseur_price' => 'productsupplierprice',
'product_price' => 'productprice',
'projet' => 'project',
'propale' => 'propal',
'socpeople' => 'contact',
];
/**
* register
*
* @return void
*/
public function register()
{
// We are listening function calls (T_STRING)
return [T_STRING];
}
/**
* process
*
* @param File $phpcsFile file to process
* @param mixed $stackPtr pointer
* @return void
*/
public function process(File $phpcsFile, $stackPtr)
{
$tokens = $phpcsFile->getTokens();
if (strtolower($tokens[$stackPtr]['content']) !== strtolower($this->targetFunction)) {
return;
}
// Check that it is a function call (followed by '(')
$openParen = $phpcsFile->findNext(T_WHITESPACE, $stackPtr + 1, null, true);
if ($tokens[$openParen]['code'] !== T_OPEN_PARENTHESIS) {
return;
}
// We are looking for the first 'useful' token after the parenthesis
$firstArgTokenPtr = $phpcsFile->findNext(T_WHITESPACE, $openParen + 1, null, true);
// If the function is called without arguments (isModEnabled()), we stop
if ($tokens[$firstArgTokenPtr]['code'] === T_CLOSE_PARENTHESIS) {
return;
}
// check value of argument
$argContent = str_replace(["'", '"'], '', $tokens[$firstArgTokenPtr]['content']);
$argCode = $tokens[$firstArgTokenPtr]['code'];
if (array_key_exists($argContent, $this->deprecatedModulesNames)) {
$phpcsFile->addError(
'The function "%s" has deprecated argument ("%s") to replace with "%s".',
$firstArgTokenPtr,
'DeprecatedArgument',
[$tokens[$stackPtr]['content'], $argContent, $this->deprecatedModulesNames[$argContent]]
);
}
}
}

View File

@@ -0,0 +1,112 @@
<?php
/* Copyright (C) 2025 Frédéric France <frederic.france@free.fr>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
namespace codesniffer\Sniffs\Dolibarr;
use PHP_CodeSniffer\Sniffs\Sniff;
use PHP_CodeSniffer\Files\File;
/**
* LanguageOfCommentsSniff
*/
class LanguageOfCommentsSniff implements Sniff
{
// List of words that betray a comment in French
public $frenchWords = [
' additionner ',
' arrondir ',
' avec ',
' calculer ',
' chaine ',
' chaîne ',
' chercher ',
' chiffre ',
' chiffres ',
// ' commande ',
' commandes ',
' compteur ',
' compteurs ',
' contrats ',
' depuis ',
' diviser ',
' donnée ',
' entier ',
// ' facture ', // avoid french name of dolibarr object
' factures ',
' ligne ',
' lignes ',
' modèle ',
' niveau ',
' niveaux ',
' nombre ',
' parametrage ',
' paramétrage ',
' pourcentage ',
' produit ',
' produits ',
' quand ',
' rechercher ',
' sinon ',
' stocker ',
' soustraire ',
' sujet ',
' sujets ',
' suppression ',
' utilisateur ',
' utilisateurs ',
' valeur ',
' valeurs ',
];
/**
* Which tokens to listen ?
* T_COMMENT = comments // or #
* T_DOC_COMMENT_STRING = text in block comments
* @return int[]
*/
public function register()
{
return [
T_COMMENT,
T_DOC_COMMENT_STRING,
];
}
/**
* process
*
* @param File $phpcsFile file to process
* @param mixed $stackPtr pointer
* @return void
*/
public function process(File $phpcsFile, $stackPtr)
{
$tokens = $phpcsFile->getTokens();
$content = $tokens[$stackPtr]['content'];
// Basic cleanup (lowercase for comparison)
$contentLower = strtolower($content);
foreach ($this->frenchWords as $word) {
if (strpos($contentLower, $word) !== false) {
$error = "The comment appears to be in French (word detected: '%s'). Please write in English.";
$data = [trim($word)];
$phpcsFile->addWarning($error, $stackPtr, 'FrenchDetected', $data);
return; // We stop at the first occurrence.
}
}
}
}

View File

@@ -1,7 +1,7 @@
[PHP]
; ************************
: Need a special php.ini to allow usage of
: Need a special php.ini to allow usage of
; ************************
;;;;;;;;;;;;;;;;;;;

View File

@@ -21,6 +21,11 @@
<exclude-pattern>/\.git/</exclude-pattern>
<exclude-pattern>/\.cache/</exclude-pattern>
<!-- Custom rules -->
<config name="installed_paths" value="/dev/setup/codesniffer" />
<rule ref="codesniffer.Dolibarr.LanguageOfComments"/>
<rule ref="codesniffer.Dolibarr.CheckIsModEnabledArgument"/>
<!-- List of all tests -->
@@ -31,12 +36,12 @@
<!-- Rules from Generic Standard -->
<!--
<rule ref="PSR12.Files.OpenTag">
<properties>
<property name="ignoreIndent" value="true"/>
</properties>
</rule>
<properties>
<property name="ignoreIndent" value="true"/>
</properties>
</rule>
<exclude name="PSR12.WhiteSpace.ScopeIndent"/>
-->
-->
<!-- We want to allow empty statement: It allows to put some code comments into the else for examples -->
<rule ref="Generic.CodeAnalysis.EmptyStatement">
@@ -76,16 +81,16 @@
<severity>0</severity>
</rule>
<!-- Lower severity on warnings we do not want to show in the pre-commit reports -->
<rule ref="Generic.Files.LineLength.TooLong">
<!-- Lower severity on warnings we do not want to show in the pre-commit reports -->
<rule ref="Generic.Files.LineLength.TooLong">
<severity>4</severity>
</rule>
<rule ref="Generic.Metrics.CyclomaticComplexity.TooHigh">
</rule>
<rule ref="Generic.Metrics.CyclomaticComplexity.TooHigh">
<severity>4</severity>
</rule>
<rule ref="Generic.Metrics.NestingLevel.TooHigh">
</rule>
<rule ref="Generic.Metrics.NestingLevel.TooHigh">
<severity>4</severity>
</rule>
</rule>
<!-- Warnings on TODO -->

View File

@@ -7,7 +7,7 @@
*/</template><template autoinsert="true" context="phpcomment" deleted="false" description="Comment for created constructors" enabled="true" id="org.eclipse.php.ui.editor.templates.php.codetemplates.constructorcomment" name="constructorcomment">/**
* ${tags}
*/</template><template autoinsert="true" context="phpcomment" deleted="false" description="Comment for created PHP files" enabled="true" id="org.eclipse.php.ui.editor.templates.php.codetemplates.filecomment" name="filecomment">/**
*
*
*/
</template><template autoinsert="true" context="phpcomment" deleted="false" description="Comment for created types" enabled="true" id="org.eclipse.php.ui.editor.templates.php.codetemplates.typecomment" name="typecomment">/**
* @author ${user}
@@ -47,7 +47,7 @@ ${cursor}</template><template autoinsert="false" context="php" deleted="false" d
case ${value}:
${cursor};
break;
default:
;
break;
@@ -66,21 +66,21 @@ ${cursor}</template><template autoinsert="false" context="php" deleted="false" d
</template><template autoinsert="false" context="php" deleted="false" description="lambda function statement (closure)" enabled="true" id="org.eclipse.php.ui.editor.templates.php.closure" name="closure">function (${parameters}) use (${lexical_variables}) {
${cursor};
}
</template><template autoinsert="false" context="php" deleted="false" description="class statement" enabled="true" id="org.eclipse.php.ui.editor.templates.php.cls" name="cls">class ${class_name}
</template><template autoinsert="false" context="php" deleted="false" description="class statement" enabled="true" id="org.eclipse.php.ui.editor.templates.php.cls" name="cls">class ${class_name}
{
function ${function_name}()
function ${function_name}()
{
${cursor};
}
}
</template><template autoinsert="false" context="php" deleted="false" description="class statement" enabled="true" id="org.eclipse.php.ui.editor.templates.php.class" name="class">class ${class_name}
</template><template autoinsert="false" context="php" deleted="false" description="class statement" enabled="true" id="org.eclipse.php.ui.editor.templates.php.class" name="class">class ${class_name}
{
function ${function_name}()
function ${function_name}()
{
${cursor};
}
}
</template><template autoinsert="false" context="php" deleted="false" description="if statement" enabled="true" id="org.eclipse.php.ui.editor.templates.php.if" name="if">if (${condition})
</template><template autoinsert="false" context="php" deleted="false" description="if statement" enabled="true" id="org.eclipse.php.ui.editor.templates.php.if" name="if">if (${condition})
{
${cursor};
}
@@ -115,7 +115,7 @@ if (${dollar}${dirh}) {
${cursor};
}
</template><template autoinsert="false" context="php" deleted="false" description="Trap code output" enabled="true" id="org.eclipse.php.ui.editor.templates.php.my_gc" name="my_gc">ob_start();
${cursor};
${dollar}${contents} = ob_get_contents();
@@ -142,4 +142,4 @@ ${cursor}
&lt;/body&gt;
&lt;/noframes&gt;
&lt;/frameset&gt;
&lt;/html&gt;</template></templates>
&lt;/html&gt;</template></templates>

View File

@@ -9,4 +9,4 @@ cs_re:red:.*ERR.*
cs_re:white,yellow:.*WARNING.*
cs_re:green,yellow:.*NOTICE.*
cs_re:green:.*INFO.*
cs_re:white:.*DEBUG.*
cs_re:white:.*DEBUG.*

View File

@@ -16,4 +16,4 @@ xdebug.show_local_vars=off
xdebug.profiler_output_dir=/var/tmp
xdebug.profiler_append=0
Then xdebug profiling can be enabled by adding XDEBUG_PROFILE=1 on URL.
Then xdebug profiling can be enabled by adding XDEBUG_PROFILE=1 on URL.

View File

@@ -1 +1 @@
Files and tools of a skeleton to build a module were moved into htdocs/modulebuilder/template
Files and tools of a skeleton to build a module were moved into htdocs/modulebuilder/template

View File

@@ -5,29 +5,27 @@ README (English)
RapidAPI
##############
RapidAPI for Mac is a full-featured HTTP client that let's you test and describe the APIs you build or consume.
RapidAPI for Mac is a full-featured HTTP client that let's you test and describe the APIs you build or consume.
It has a beautiful native macOS interface to compose requests, inspect server responses, generate client code and export API definitions.
https://paw.cloud/
@@@
(@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@%
@@@@@@, @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@,
@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
(@@@@@@( @@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@* @@@@@@@@@@@. /@@@@@@@@@@@@@@@@@(
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* @@@@@@@@@@@. @@@@@@@@@@@@@
@@@
(@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@%
@@@@@@, @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@,
@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
(@@@@@@( @@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@* @@@@@@@@@@@. /@@@@@@@@@@@@@@@@@(
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* @@@@@@@@@@@. @@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@ /@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@ @@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@ @@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@# @@@@@@@@@@@ @@@@@@@@@@@@&
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@ @@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@ &@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@ &@@@@@@@@@@@@@@@@@@@@/
@@@@@@@@@@@@@@@@@@@@@@@@@@& .@@@@@@@@@@@ &@@@@@@@@@@@@@@@@@@/
(@@@@@@@@@@@@@@@@@@@@@@@ .@@@@@@@@@@@ &@@@@@@@@@@@@@@@(
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@ @@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@ &@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@ &@@@@@@@@@@@@@@@@@@@@/
@@@@@@@@@@@@@@@@@@@@@@@@@@& .@@@@@@@@@@@ &@@@@@@@@@@@@@@@@@@/
(@@@@@@@@@@@@@@@@@@@@@@@ .@@@@@@@@@@@ &@@@@@@@@@@@@@@@(
@@@@@ @@@@@ .@@@@@@@@@@@ @@@@@@@@@@@*

View File

@@ -61,7 +61,7 @@ if (empty($argv[1])) {
$outputpath = $argv[1];
$outputdir = dirname($outputpath);
$outputfile = basename($outputpath);
$outputfilerss = preg_replace('/\.\w+$/i', '', $outputfile).'-security.rss';
$outputfilerss = preg_replace('/\.\w+$/i', '', $outputfile).'-security.rss'; // Replace the .html by -security.rss
if (!is_dir($outputdir)) {
print 'Error: dir '.$outputdir.' does not exists or is not writable'."\n";
@@ -271,7 +271,7 @@ $nbofmonth = 6;
$delay = (3600 * 24 * 30 * $nbofmonth);
$arrayofalerts = array();
$commandcheck = "git log --all --shortstat --no-renames --use-mailmap --pretty=".escapeshellarg('format:%cI;%H;%aN;%aE;%ce;%s')." --since=".escapeshellarg(dol_print_date(dol_now() - $delay, '%Y-%m-%d'))." | grep -i -E ".escapeshellarg("(#yogosha|CVE|Sec:|Sec |Sec$)");
$commandcheck = "git log --all --shortstat --no-renames --use-mailmap --pretty=".escapeshellarg('format:%cI;%H;%aN;%aE;%ce;%s')." --since=".escapeshellarg(dol_print_date(dol_now() - $delay, '%Y-%m-%d'))." | grep -i -E ".escapeshellarg("(#ghsa|#yogosha|CVE|Sec:|Sec |^Sec$)");
print 'Execute git log to get commits related to security: '.$commandcheck."\n";
$output_arrglpu = array();
$resexecglpu = 0;
@@ -280,12 +280,12 @@ foreach ($output_arrglpu as $valgitlog) { // The most recent lines are first.
// Parse the line to split interesting data
$tmpval = cleanVal2($valgitlog);
if (preg_match('/(#yogosha|CVE[\s\-]*\d|Sec:|Sec\s|Sec$)/i', $tmpval['title'])) { // Recommended git comment: "Sec: Fix #..."
if (preg_match('/(#ghsa|#yogosha|CVE[\s\-]*\d|Sec:|Sec\s|^Sec$)/i', $tmpval['title'])) { // Recommended git comment: "Fix #..."
$alreadyfound = '';
$alreadyfoundcommitid = '';
foreach ($arrayofalerts as $val) { // Loop on already found alerts
if ($val['issueidyogosha'] && $val['issueidyogosha'] == $tmpval['issueidyogosha']) { // Already in list
$alreadyfound = 'yogosha';
if ($val['issueidvdp'] && $val['issueidvdp'] == $tmpval['issueidvdp']) { // Already in list
$alreadyfound = 'vdp';
$alreadyfoundcommitid = $val['commitid'];
break;
}
@@ -841,10 +841,10 @@ $html .= '<h2><span class="fas fa-code pictofixedwidth"></span>'.$title_security
$html .= '<div class="boxallwidth">'."\n";
$html .= '<div class="div-table-responsive">'."\n";
$html .= '<table class="list_technical_debt centpercent">'."\n";
$html .= '<tr class="trgroup"><td>Commit ID</td><td>Date</td><td style="white-space: nowrap">Reported on<br>Yogosha</td><td style="white-space: nowrap">Reported on<br>GIT</td><td style="white-space: nowrap"><a href="https://www.cve.org/CVERecord/SearchResults?query=dolibarr">Reported on<br>CVE</a></td><td>Title</td><td>Branch of fix</td></tr>'."\n";
$html .= '<tr class="trgroup"><td>Commit ID</td><td>Date</td><td style="white-space: nowrap">Reported on a<br>VDP (GHSA, Yogosha...)</td><td style="white-space: nowrap">Reported on<br>GitHub issues</td><td style="white-space: nowrap"><a href="https://www.cve.org/CVERecord/SearchResults?query=dolibarr">Reported on<br>CVE</a></td><td>Title</td><td>Branch of fix</td></tr>'."\n";
foreach ($arrayofalerts as $key => $alert) {
$cve = '';
$yogosha = empty($alert['issueidyogosha']) ? '' : $alert['issueidyogosha'];
$vdp = empty($alert['issueidvdp']) ? '' : $alert['issueidvdp'];
$arrayofalerts[$key]['url_commit'] = 'https://github.com/Dolibarr/dolibarr/commit/'.$alert['commitid'];
if (!empty($alert['issueid'])) {
$arrayofalerts[$key]['url_issue'] = 'https://github.com/Dolibarr/dolibarr/issues/'.$alert['issueid'];
@@ -853,7 +853,7 @@ foreach ($arrayofalerts as $key => $alert) {
$cve = preg_replace('/\s+/', '-', trim($alert['issueidcve']));
$arrayofalerts[$key]['url_cve'] = 'https://nvd.nist.gov/vuln/detail/CVE-'.$cve;
}
$arrayofalerts[$key]['title'] = ($project ? "[".$project."] " : "").'Security alert - '.($yogosha ? ' Yogosha #'.$yogosha.' - ' : '').($cve ? 'CVE-'.$cve.' - ' : '');
$arrayofalerts[$key]['title'] = ($project ? "[".$project."] " : "").'Security alert - '.($vdp ? ' VDP #'.$vdp.' - ' : '').($cve ? 'CVE-'.$cve.' - ' : '');
$arrayofalerts[$key]['title'] .= 'Fix committed as: '.dol_trunc($alert['commitid'], 8);
$arrayofalerts[$key]['description'] = '<![CDATA[Security alert<br>';
@@ -880,13 +880,11 @@ foreach ($arrayofalerts as $key => $alert) {
$html .= preg_replace('/T.*$/', '', $alert['created_at']);
$html .= '</td>';
// Yogosha ID
// VDP ID
$html .= '<td style="white-space: nowrap">';
if (!empty($alert['issueidyogosha'])) {
//$html .= '<a target="_blank" href="https://yogosha.com?'.$alert['issueidyogosha'].'">';
$html .= '#yogosha'.$alert['issueidyogosha'];
$arrayofalerts[$key]['description'] .= "\n<br>".'Yogosha ID #'.$alert['issueidyogosha'];
//$html .= '</a>';
if (!empty($alert['issueidvdp'])) {
$html .= '#'.$alert['issueidvdp'];
$arrayofalerts[$key]['description'] .= "\n<br>".'VDP ID #'.$alert['issueidvdp'];
} else {
//$html .= '<span class="opacitymedium">public issue</span>';
}
@@ -932,7 +930,7 @@ $html .= '</div>';
$html .= '</div>';
$html .= '<br>';
$html .= 'Note:Search is done in git repository on regex string "#yogosha|CVE[\s\-]*\d|Sec:|Sec\s" (not case sensitive)<br>';
$html .= 'Note:Search is done in git repository on regex string "#ghsa|#yogosha|CVE[\s\-]*\d|Sec:|Sec |^Sec\s" (not case sensitive)<br>';
$html .= 'You can use this URL for RSS notifications: <a href="/'.$outputfilerss.'">'.$outputfilerss.'</a><br><br>';
$html .= '</section>';
@@ -973,6 +971,18 @@ if ($fh) {
}
fwrite($fh, '</image>'."\n");
// Loop on arrayofalert to remove alerts that are on develop
foreach ($arrayofalerts as $tmpkey => $alert) {
$arrayuniquetmp = array_unique($alert['branch']);
if (count($arrayuniquetmp) == 1 && in_array('develop', $arrayuniquetmp)) {
// The alert has been fixed into develop only, so we discard it for RSS alert
print 'The alert with key '.$tmpkey.' is fixed into branch develop only, so we discard it for RSS'."\n";
unset($arrayofalerts[$tmpkey]);
}
}
// Loop on array of alerts on stable branches
foreach ($arrayofalerts as $alert) {
$alert['url_commit'] = 'https://github.com/Dolibarr/dolibarr/commit/'.$alert['commitid'];
@@ -1135,7 +1145,7 @@ function cleanVal2($val)
$tmpval['commitid'] = $tmp[1];
$tmpval['url'] = '';
$tmpval['issueid'] = '';
$tmpval['issueidyogosha'] = '';
$tmpval['issueidvdp'] = '';
$tmpval['issueidcve'] = '';
$tmpval['title'] = array_key_exists(5, $tmp) ? preg_replace('/\.$/', '', $tmp[5]) : '';
$tmpval['created_at'] = array_key_exists(0, $tmp) ? $tmp[0] : '';
@@ -1148,8 +1158,11 @@ function cleanVal2($val)
if (preg_match('/CVE([0-9\-\s]+)/', $tmpval['title'], $reg)) {
$tmpval['issueidcve'] = preg_replace('/^\-/', '', preg_replace('/\s+/', '-', trim($reg[1])));
}
if (preg_match('/#yogosha(\d+)/i', $tmpval['title'], $reg)) {
$tmpval['issueidyogosha'] = $reg[1];
if (preg_match('/#(yogosha\d+)/i', $tmpval['title'], $reg)) {
$tmpval['issueidvdp'] = strtolower($reg[1]);
}
if (preg_match('/#(ghsa[a-z\-\d]+)/i', $tmpval['title'], $reg)) {
$tmpval['issueidvdp'] = strtolower($reg[1]);
}
return $tmpval;

View File

@@ -128,5 +128,3 @@ for f in ${TFile[@]}; do
done
done

View File

@@ -9,19 +9,18 @@
*/
return [
// # Issue statistics:
// PhanUndeclaredProperty : 420+ occurrences
// PhanTypeMismatchProperty : 95+ occurrences
// PhanUndeclaredProperty : 410+ occurrences
// PhanTypeMismatchArgument : 65+ occurrences
// PhanUndeclaredGlobalVariable : 60+ occurrences
// PhanUndeclaredGlobalVariable : 55+ occurrences
// PhanTypeMismatchArgumentNullable : 20+ occurrences
// PhanTypeMismatchProperty : 20+ occurrences
// PhanTypeInvalidDimOffset : 15+ occurrences
// PhanTypeMismatchDimFetch : 10+ occurrences
// PhanUndeclaredMethod : 6 occurrences
// PhanTypeArraySuspiciousNull : 5 occurrences
// PhanTypeExpectedObjectPropAccess : 5 occurrences
// PhanUndeclaredMethod : 5 occurrences
// PhanPluginDuplicateArrayKey : 4 occurrences
// PhanPluginUndeclaredVariableIsset : 2 occurrences
// PhanPossiblyUndeclaredGlobalVariable : 2 occurrences
// PhanTypeMismatchArgumentProbablyReal : 2 occurrences
// PhanParamTooMany : 1 occurrence
// PhanPossiblyUndeclaredVariable : 1 occurrence
@@ -30,8 +29,6 @@ return [
// Currently, file_suppressions and directory_suppressions are the only supported suppressions
'file_suppressions' => [
'htdocs/bookcal/class/calendar.class.php' => ['PhanUndeclaredMethod', 'PhanUndeclaredProperty'],
'htdocs/categories/viewcat.php' => ['PhanUndeclaredProperty'],
'htdocs/comm/action/index.php' => ['PhanTypeMismatchArgument', 'PhanTypeMismatchProperty'],
'htdocs/comm/action/pertype.php' => ['PhanTypeExpectedObjectPropAccess'],
'htdocs/comm/action/peruser.php' => ['PhanTypeMismatchArgument'],
@@ -51,7 +48,6 @@ return [
'htdocs/compta/bank/various_payment/info.php' => ['PhanUndeclaredGlobalVariable', 'PhanUndeclaredProperty'],
'htdocs/compta/clients.php' => ['PhanUndeclaredGlobalVariable'],
'htdocs/compta/facture/card-rec.php' => ['PhanTypeMismatchArgument'],
'htdocs/compta/facture/card.php' => ['PhanUndeclaredProperty'],
'htdocs/compta/facture/class/facture-rec.class.php' => ['PhanUndeclaredProperty'],
'htdocs/compta/facture/class/facture.class.php' => ['PhanUndeclaredProperty'],
'htdocs/compta/localtax/card.php' => ['PhanUndeclaredGlobalVariable'],
@@ -104,7 +100,7 @@ return [
'htdocs/core/modules/cheque/modules_chequereceipts.php' => ['PhanTypeMismatchArgument'],
'htdocs/core/modules/commande/doc/pdf_einstein.modules.php' => ['PhanTypeMismatchArgumentNullable', 'PhanTypeMismatchDimFetch', 'PhanTypeMismatchProperty', 'PhanUndeclaredProperty'],
'htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php' => ['PhanTypeMismatchArgument', 'PhanTypeMismatchDimFetch', 'PhanTypeMismatchProperty', 'PhanUndeclaredProperty'],
'htdocs/core/modules/contract/doc/pdf_strato.modules.php' => ['PhanTypeMismatchArgument', 'PhanTypeMismatchArgumentNullable'],
'htdocs/core/modules/contract/doc/pdf_strato.modules.php' => ['PhanTypeMismatchArgument'],
'htdocs/core/modules/delivery/doc/pdf_storm.modules.php' => ['PhanTypeMismatchArgumentNullable'],
'htdocs/core/modules/delivery/doc/pdf_typhon.modules.php' => ['PhanTypeMismatchArgumentNullable'],
'htdocs/core/modules/delivery/mod_delivery_saphir.php' => ['PhanUndeclaredProperty'],
@@ -116,14 +112,11 @@ return [
'htdocs/core/modules/facture/doc/pdf_octopus.modules.php' => ['PhanTypeMismatchArgument', 'PhanUndeclaredProperty'],
'htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php' => ['PhanTypeMismatchArgumentNullable'],
'htdocs/core/modules/holiday/mod_holiday_immaculate.php' => ['PhanTypeMismatchArgument'],
'htdocs/core/modules/hrm/doc/pdf_standard_evaluation.modules.php' => ['PhanUndeclaredProperty'],
'htdocs/core/modules/hrm/mod_evaluation_advanced.php' => ['PhanUndeclaredProperty'],
'htdocs/core/modules/import/import_csv.modules.php' => ['PhanPossiblyUndeclaredVariable', 'PhanTypeMismatchProperty'],
'htdocs/core/modules/import/import_xlsx.modules.php' => ['PhanTypeMismatchProperty'],
'htdocs/core/modules/import/import_csv.modules.php' => ['PhanPossiblyUndeclaredVariable'],
'htdocs/core/modules/member/modules_cards.php' => ['PhanTypeMismatchArgument'],
'htdocs/core/modules/mrp/doc/pdf_vinci.modules.php' => ['PhanUndeclaredProperty'],
'htdocs/core/modules/mrp/mod_mo_advanced.php' => ['PhanUndeclaredProperty'],
'htdocs/core/modules/oauth/github_oauthcallback.php' => ['PhanUndeclaredGlobalVariable'],
'htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php' => ['PhanUndeclaredProperty'],
'htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php' => ['PhanUndeclaredProperty'],
'htdocs/core/modules/propale/doc/pdf_azur.modules.php' => ['PhanTypeMismatchArgumentNullable', 'PhanUndeclaredProperty'],
@@ -149,7 +142,6 @@ return [
'htdocs/delivery/class/delivery.class.php' => ['PhanUndeclaredProperty'],
'htdocs/emailcollector/class/emailcollector.class.php' => ['PhanUndeclaredProperty'],
'htdocs/eventorganization/class/conferenceorboothattendee.class.php' => ['PhanUndeclaredMethod', 'PhanUndeclaredProperty'],
'htdocs/eventorganization/conferenceorbooth_list.php' => ['PhanTypeMismatchArgument'],
'htdocs/eventorganization/core/actions_massactions_mail.inc.php' => ['PhanUndeclaredProperty'],
'htdocs/expedition/card.php' => ['PhanUndeclaredGlobalVariable', 'PhanUndeclaredProperty'],
'htdocs/expedition/class/expedition.class.php' => ['PhanUndeclaredProperty'],
@@ -239,11 +231,11 @@ return [
'htdocs/salaries/virement_request.php' => ['PhanUndeclaredProperty'],
'htdocs/societe/ajax/company.php' => ['PhanUndeclaredProperty'],
'htdocs/societe/class/societe.class.php' => ['PhanTypeMismatchProperty'],
'htdocs/societe/paymentmodes.php' => ['PhanPossiblyUndeclaredGlobalVariable', 'PhanTypeMismatchArgument'],
'htdocs/societe/paymentmodes.php' => ['PhanTypeMismatchArgument'],
'htdocs/supplier_proposal/card.php' => ['PhanUndeclaredGlobalVariable', 'PhanUndeclaredProperty'],
'htdocs/supplier_proposal/class/api_supplier_proposals.class.php' => ['PhanUndeclaredProperty'],
'htdocs/supplier_proposal/class/supplier_proposal.class.php' => ['PhanUndeclaredProperty'],
'htdocs/takepos/invoice.php' => ['PhanPossiblyUndeclaredGlobalVariable', 'PhanUndeclaredGlobalVariable'],
'htdocs/takepos/invoice.php' => ['PhanUndeclaredGlobalVariable'],
'htdocs/takepos/split.php' => ['PhanPluginUndeclaredVariableIsset'],
'htdocs/ticket/card.php' => ['PhanUndeclaredProperty'],
'htdocs/ticket/class/actions_ticket.class.php' => ['PhanUndeclaredProperty'],

View File

@@ -227,6 +227,24 @@ return [
'backward_compatibility_checks' => false,
'simplify_ast' => true,
'analyzed_file_extensions' => ['php','inc'],
/*'included_extension_subset' => [
'curl',
'dom',
'filter',
'gd',
'imap',
'intl',
'json',
'libxml',
'mbstring',
'mysqli',
'opcache',
'openssl',
'session',
'sqlite3',
'xml',
'zip'
],*/
'globals_type_map' => [
'_Avery_Labels' => 'array<string,array{name:string,paper-size:string|array{0:float,1:float},orientation:string,metric:string,marginLeft:float,marginTop:float,NX:int,NY:int,SpaceX:float,SpaceY:float,width:float,height:float,font-size:int,custom_x:float,custom_y:float}>',
'action' => 'string',
@@ -439,6 +457,7 @@ return [
'PhanTypeObjectUnsetDeclaredProperty',
'PhanTypePossiblyInvalidDimOffset', // a lot of false positive, in most cases, we want to keep the code as it is
// 'PhanPluginUnknownArrayFunctionReturnType', // a lot of false positive, in most cases, we want to keep the code as it is
'PhanTypeMismatchArgumentSuperType', // a lot of false positive, in most cases, we want to keep the code as it is
'PhanPluginWhitespaceTab', // Dolibarr uses tabs
'PhanPluginCanUsePHP71Void', // Dolibarr is maintaining 7.0 compatibility

View File

@@ -74,6 +74,7 @@ $config['suppress_issue_types'] = [
'PhanTypeObjectUnsetDeclaredProperty',
'PhanTypePossiblyInvalidDimOffset', // a lot of false positive, in most cases, we want to keep the code as it is
'PhanPluginUnknownArrayFunctionReturnType', // a lot of false positive, in most cases, we want to keep the code as it is
'PhanTypeMismatchArgumentSuperType', // a lot of false positive, in most cases, we want to keep the code as it is
'PhanPluginWhitespaceTab', // Dolibarr used tabs
'PhanPluginCanUsePHP71Void', // Dolibarr is maintaining 7.0 compatibility

View File

@@ -1,4 +1,5 @@
parameters:
phpVersion: 80200 # PHP 8.2
tmpDir: ./.github/tmp
parallel:
# Commented some of the settings, reminding the defaults:
@@ -46,12 +47,15 @@ parameters:
- htdocs/includes/tecnickcom/*
- htdocs/includes/webklex/*
- htdocs/core/class/lessc.class.php
checkAlwaysTrueCheckTypeFunctionCall: false
checkAlwaysTrueInstanceof: false
checkAlwaysTrueStrictComparison: false
# checkAlwaysTrueCheckTypeFunctionCall: false
# checkAlwaysTrueInstanceof: false
# checkAlwaysTrueStrictComparison: false
polluteScopeWithLoopInitialAssignments: false
polluteScopeWithAlwaysIterableForeach: false
checkClassCaseSensitivity: true
checkFunctionArgumentTypes: true
checkFunctionNameCase: true
checkInternalClassCaseSensitivity: true
checkArgumentsPassedByReference: true
checkMaybeUndefinedVariables: true
checkNullables: false
@@ -61,8 +65,6 @@ parameters:
reportMaybes: false
reportMaybesInMethodSignatures: false
reportStaticMethodSignatures: false
polluteScopeWithLoopInitialAssignments: true
polluteScopeWithAlwaysIterableForeach: true
reportMagicMethods: false
reportMagicProperties: false
treatPhpDocTypesAsCertain: false
@@ -74,6 +76,8 @@ parameters:
- '#Empty array passed to foreach#'
- '#Unable to resolve the template type T#'
- '#in empty\(\) always exists and is always falsy#'
- '#in empty\(\) always exists and is not falsy#'
- '#in isset() is not nullable#'
- '#is always#'
internalErrorsCountLimit: 50
cache:

View File

@@ -1,2 +1,2 @@
/test.php
/vendor
/vendor

View File

@@ -36,4 +36,3 @@ then
wmctrl -i -r $1 -e 0,0,0,$width,$height
echo Size of windows $1 modified to $width x $height
fi

View File

@@ -93,5 +93,3 @@ if __name__ == '__main__':
options, arguments = parser.parse_args()
sys.argv[:] = arguments
main(options, arguments)

View File

@@ -1,4 +1,4 @@
Test to migrate Dolibarr to namespace "Dolibarr".
Script bbb.php is a script of an external module with current code writing.
It must works after migration.
It must works after migration.

View File

@@ -14,7 +14,7 @@ https://www.transifex.com/dolibarr-association/dolibarr/dashboard/
Installation of Transifex Client:
---------------------------------
for Linux OS
to install or to update transifex client:
to install or to update transifex client:
sudo pip install --upgrade transifex-client

View File

@@ -939,7 +939,6 @@ Don
ECM
EmptyMessageNotAllowedError
ErrorInputRequired
ErrorLDAPFunctionsAreDisabledOnThisPHP
ErrorUpdating
Extra
FailedToConnectToSFTPAfterSSHAuthentication
@@ -1014,7 +1013,6 @@ TicketMessageMailSignatureText
TicketSetupPage
Timeline
Transfer
TryAnotherConnectionMode
UndefinedKey
UnknownType
UpdateMember

View File

@@ -65,4 +65,3 @@ fi
echo Think to launch also:
echo "> dev/tools/fixaltlanguages.sh fix all"
#echo "For v11: Replace also regex \(.*(sponge|cornas|eratosthene|cyan).*\) with '' on *.lang files"

View File

@@ -19,4 +19,4 @@ But if you are looking for other resources (downloads, documentation, addons, ..
* <a href="https://www.dolistore.com">DoliStore (official addons/plugins market place)</a><br>
</body>
</html>
</html>

View File

@@ -8,14 +8,14 @@ Download / Herunterladen
* Dolibarr ERP/CRM kann man über die offizielle Dolibarr Website
https://www.dolibarr.org/downloads
https://www.dolibarr.org/downloads
oder direkt bei Sourceforge
https://sourceforge.net/projects/dolibarr/files/
herunterladen.
@@ -26,10 +26,10 @@ Installation / Hilfe
* Für eine kurze Einleitung schau in die README.md Datei im Hauptverzeichnis.
* Umfangreiche Dokumentationen sind im Dolibarr Wiki zu finden:
https://wiki.dolibarr.org/index.php/Hauptseite
* eine Deutsche Community bietet der Dolibarr e.V. unter
https://www.dolibarr.de/
https://wiki.dolibarr.org/index.php/Hauptseite
* eine Deutsche Community bietet der Dolibarr e.V. unter
https://www.dolibarr.de/
@@ -38,8 +38,6 @@ Installation / Hilfe
Zusatzmodule
------------------------------------
* Die meisten externen Module/Themen sind über den offiziellen DoliStore verfügbar:
* Die meisten externen Module/Themen sind über den offiziellen DoliStore verfügbar:
https://www.dolistore.com/de/

View File

@@ -1,6 +1,6 @@
<?php
/* Copyright (C) 2013-2016 Olivier Geffroy <jeff@jeffinfo.com>
* Copyright (C) 2013-2025 Alexandre Spangaro <alexandre@inovea-conseil.com>
* Copyright (C) 2013-2026 Alexandre Spangaro <alexandre@inovea-conseil.com>
* Copyright (C) 2016-2018 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2024-2025 MDW <mdeweerd@users.noreply.github.com>
* Copyright (C) 2024-2025 Frédéric France <frederic.france@free.fr>
@@ -27,11 +27,6 @@
// Load Dolibarr environment
require '../../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingaccount.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php';
/**
* @var Conf $conf
* @var DoliDB $db
@@ -39,6 +34,10 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php';
* @var Translate $langs
* @var User $user
*/
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingaccount.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php';
// Load translation files required by the page
$langs->loadLangs(array('accountancy', 'admin', 'bills', 'compta', 'salaries'));
@@ -440,7 +439,9 @@ if ($resql) {
print '<input type="hidden" name="action" value="list">';
print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
print '<input type="hidden" name="page" value="'.$page.'">';
print '<input type="hidden" name="contextpage" value="'.$contextpage.'">';
print '<input type="hidden" name="page_y" value="">';
// @phan-suppress-next-line PhanPluginSuspiciousParamOrder
print_barre_liste($langs->trans('ListAccounts'), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'accounting_account', 0, $newcardbutton, '', $limit, 0, 0, 1);
@@ -467,7 +468,7 @@ if ($resql) {
$obj = $db->fetch_object($resqlchart);
if ($obj) {
$labeltoshow = $obj->country_code.' - '.$obj->pcg_version.' - '.$obj->label;
$htmltoshow = picto_from_langcode($obj->country_code).' '.$obj->country_code.' - '.$obj->pcg_version.' - '.$obj->label;
$htmltoshow = picto_from_langcode($obj->country_code).' '.$obj->country_code.' - '.$obj->pcg_version.' <span class="opacitymedium">- '.$obj->label.'</span>';
print '<option value="'.$obj->rowid.'" data-html="'.dolPrintHTMLForAttribute($htmltoshow).'"';
print ($pcgver == $obj->rowid) ? ' selected' : '';
print '>'.$labeltoshow.'</option>';
@@ -842,11 +843,11 @@ if ($resql) {
if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) {
print '<td class="center nowraponall">';
// if ($permissiontoadd) { // test is always true
print '<a class="editfielda" href="./card.php?action=update&token='.newToken().'&id='.$obj->rowid.'&backtopage='.urlencode($_SERVER["PHP_SELF"].'?'.$param).'">';
print '<a class="editfielda" href="./card.php?action=update&token='.newToken().'&id='.$obj->rowid.'&backtopage='.urlencode($_SERVER["PHP_SELF"].'?'.$param.'&page='.$page).'">';
print img_edit();
print '</a>';
print '&nbsp;';
print '<a class="marginleftonly" href="./card.php?action=delete&token='.newToken().'&id='.$obj->rowid.'&backtopage='.urlencode($_SERVER["PHP_SELF"].'?'.$param).'">';
print '<a class="marginleftonly" href="./card.php?action=delete&token='.newToken().'&id='.$obj->rowid.'&backtopage='.urlencode($_SERVER["PHP_SELF"].'?'.$param.'&page='.$page).'">';
print img_delete();
print '</a>';
print '&nbsp;';

View File

@@ -8,11 +8,11 @@
* Copyright (C) 2011 Remy Younes <ryounes@gmail.com>
* Copyright (C) 2012-2015 Marcos García <marcosgdf@gmail.com>
* Copyright (C) 2012 Christophe Battarel <christophe.battarel@ltairis.fr>
* Copyright (C) 2011-2024 Alexandre Spangaro <aspangaro@easya.solutions>
* Copyright (C) 2011-2026 Alexandre Spangaro <alexandre@inovea-conseil.com>
* Copyright (C) 2015 Ferran Marcet <fmarcet@2byte.es>
* Copyright (C) 2016 Raphaël Doursenaud <rdoursenaud@gpcsolutions.fr>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
* Copyright (C) 2024-2025 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2024-2026 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2024-2026 MDW <mdeweerd@users.noreply.github.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -196,7 +196,7 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha')) {
setEventMessages($langs->transnoentities("ErrorFieldRequired", $langs->transnoentities("Country")), null, 'errors');
}
// Si verif ok et action add, on ajoute la ligne
// In case of 'actionadd' and with valid parameters, add the line
if ($ok && GETPOST('actionadd', 'alpha')) {
$newid = 0;
@@ -241,11 +241,11 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha')) {
}
}
// Si verif ok et action modify, on modifie la ligne
// In case of 'actionmodify' and with valid parameters, modify the line
if ($ok && GETPOST('actionmodify', 'alpha')) {
// Modify entry
$sql = "UPDATE ".$db->sanitize($tabname[$id])." SET ";
// Modifie valeur des champs
// Change field's value
$i = 0;
foreach ($listfieldmodify as $field) {
@@ -268,7 +268,6 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha')) {
$sql .= " WHERE rowid = ".((int) $rowid);
dol_syslog("actionmodify", LOG_DEBUG);
//print $sql;
$resql = $db->query($sql);
if (!$resql) {
setEventMessages($db->error(), null, 'errors');
@@ -327,13 +326,13 @@ $linkback = '';
print load_fiche_titre($titre, $linkback, 'title_accountancy');
// Confirmation de la suppression de la ligne
// Confirmation of line deletion
if ($action == 'delete') {
print $form->formconfirm(dolBuildUrl($_SERVER["PHP_SELF"], ['page'=> $page, 'sortfield' => $sortfield, 'sortorder' => $sortorder, 'rowid' => $rowid, 'code' => $code, 'id' => $id]), $langs->trans('DeleteLine'), $langs->trans('ConfirmDeleteLine'), 'confirm_delete', '', 0, 1);
}
// Complete requete recherche valeurs avec critere de tri
// Complete the values search query with the sort order
$sql = $tabsql[$id];
if ($search_country_id > 0) {
@@ -351,7 +350,6 @@ if ($sortfield == 'country') {
}
$sql .= $db->order($sortfield, $sortorder);
$sql .= $db->plimit($listlimit + 1, $offset);
//print $sql;
$fieldlist = explode(',', $tabfield[$id]);
@@ -368,8 +366,8 @@ $fieldlist = explode(',', $tabfield[$id]);
// Line for title
print '<tr class="liste_titre">';
foreach ($fieldlist as $field => $value) {
// Determine le nom du champ par rapport aux noms possibles
// dans les dictionnaires de donnees
// Determine the field name based on the possible names
// in the data dictionaries
$valuetoshow = ucfirst($fieldlist[$field]); // By default
$valuetoshow = $langs->trans($valuetoshow); // try to translate
$class = "left";
@@ -393,7 +391,6 @@ foreach ($fieldlist as $field => $value) {
if ($fieldlist[$field] == 'pcg_version' || $fieldlist[$field] == 'fk_pcg_version') {
$valuetoshow = $langs->trans("Pcg_version");
}
//var_dump($value);
if ($valuetoshow != '') {
print '<td class="'.$class.'">';
@@ -588,8 +585,7 @@ if ($resql) {
'page' => $page,
'sortfield' => $sortfield,
'sortorder' => $sortorder,
'rowid' => (!empty($obj->rowid) ? $obj->rowid : (!empty($obj->code) ? $obj->code : '')),
'code' => $obj->code,
'rowid' => (!empty($obj->rowid) ? $obj->rowid : '')
]);
// Active

View File

@@ -1,6 +1,6 @@
<?php
/* Copyright (C) 2013-2014 Olivier Geffroy <jeff@jeffinfo.com>
* Copyright (C) 2013-2024 Alexandre Spangaro <aspangaro@easya.solutions>
* Copyright (C) 2013-2026 Alexandre Spangaro <alexandre@inovea-conseil.com>
* Copyright (C) 2014 Florian Henry <florian.henry@open-concept.pro>
* Copyright (C) 2024-2025 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2025 MDW <mdeweerd@users.noreply.github.com>
@@ -72,7 +72,7 @@ $object = new AccountingAccount($db);
*/
if (GETPOST('cancel', 'alpha')) {
$urltogo = $backtopage ? $backtopage : DOL_URL_ROOT.'/accountancy/admin/account.php';
$urltogo = (!empty($backtopage) ? $backtopage : DOL_URL_ROOT.'/accountancy/admin/account.php');
header("Location: ".$urltogo);
exit;
}
@@ -126,7 +126,7 @@ if ($action == 'add' /* && $user->hasRight('accounting', 'chartofaccount') // al
}
if (!$error) {
setEventMessages("RecordCreatedSuccessfully", null, 'mesgs');
$urltogo = $backtopage ? $backtopage : DOL_URL_ROOT.'/accountancy/admin/account.php';
$urltogo = (!empty($backtopage) ? $backtopage : DOL_URL_ROOT.'/accountancy/admin/account.php');
header("Location: " . $urltogo);
exit;
}
@@ -169,7 +169,7 @@ if ($action == 'add' /* && $user->hasRight('accounting', 'chartofaccount') // al
$result = $object->update($user);
if ($result > 0) {
$urltogo = $backtopage ? $backtopage : ($_SERVER["PHP_SELF"] . "?id=" . $id);
$urltogo = (!empty($backtopage) ? $backtopage : ($_SERVER["PHP_SELF"] . "?id=" . $id));
header("Location: " . $urltogo);
exit();
} elseif ($result == -2) {
@@ -179,7 +179,7 @@ if ($action == 'add' /* && $user->hasRight('accounting', 'chartofaccount') // al
}
}
} else {
$urltogo = $backtopage ? $backtopage : ($_SERVER["PHP_SELF"]."?id=".$id);
$urltogo = (!empty($backtopage) ? $backtopage : ($_SERVER["PHP_SELF"]."?id=".$id));
header("Location: ".$urltogo);
exit();
}
@@ -190,7 +190,8 @@ if ($action == 'add' /* && $user->hasRight('accounting', 'chartofaccount') // al
$result = $object->delete($user);
if ($result > 0) {
header("Location: account.php");
$urltogo = (!empty($backtopage) ? $backtopage : DOL_URL_ROOT.'/accountancy/admin/account.php');
header("Location: ".$urltogo);
exit;
}
}

View File

@@ -1,8 +1,8 @@
<?php
/* Copyright (C) 2004-2023 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2011-2025 Alexandre Spangaro <alexandre@inovea-conseil.com>
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2024-2025 MDW <mdeweerd@users.noreply.github.com>
* Copyright (C) 2024-2026 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2024-2026 MDW <mdeweerd@users.noreply.github.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -209,7 +209,7 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha')) {
setEventMessages($langs->transnoentities('ErrorFieldMustBeANumeric', $langs->transnoentities("Position")), null, 'errors');
}
// Si verif ok et action add, on ajoute la ligne
// In case of 'actionadd' and with valid parameters, add the line
if ($ok && GETPOST('actionadd', 'alpha')) {
$newid = 0;
@@ -280,7 +280,7 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha')) {
// Modify entry
$sql = "UPDATE ".$db->sanitize($tabname[$id])." SET ";
// Modifie valeur des champs
// Modify field values
if ($tabrowid[$id] && !in_array($tabrowid[$id], $listfieldmodify)) {
$sql .= $db->sanitize($tabrowid[$id])." = ";
$sql .= "'".$db->escape($rowid)."', ";
@@ -465,9 +465,7 @@ $paramwithsearch = $param;
if ($sortorder) {
$paramwithsearch .= '&sortorder='.urlencode($sortorder);
}
if ($sortfield) {
$paramwithsearch .= '&sortfield='.urlencode($sortfield);
}
$paramwithsearch .= '&sortfield='.urlencode($sortfield);
if (GETPOST('from', 'alpha')) {
$paramwithsearch .= '&from='.urlencode(GETPOST('from', 'alpha'));
}
@@ -495,8 +493,8 @@ if ($tabname[$id]) {
print '<td></td>';
}
foreach ($fieldlist as $field => $value) {
// Determine le nom du champ par rapport aux noms possibles
// dans les dictionnaires de donnees
// Determine the field name based on the possible names
// in the data dictionaries.
$valuetoshow = ucfirst($fieldlist[$field]); // By default
$valuetoshow = $langs->trans($valuetoshow); // try to translate
$class = "left";
@@ -825,9 +823,7 @@ if ($resql) {
}
}
$url = $_SERVER["PHP_SELF"].'?'.($page ? 'page='.$page.'&' : '').'sortfield='.$sortfield.'&sortorder='.$sortorder.'&rowid='.(!empty($obj->rowid) ? $obj->rowid : (!empty($obj->code) ? $obj->code : '')).'&code='.(!empty($obj->code) ? urlencode($obj->code) : '');
if ($param) {
$url .= '&'.$param;
}
$url .= '&'.$param;
$url .= '&';
$canbemodified = $iserasable;

View File

@@ -24,11 +24,6 @@
// Load Dolibarr environment
require '../../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/fiscalyear.class.php';
/**
* @var Conf $conf
* @var DoliDB $db
@@ -36,6 +31,9 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/fiscalyear.class.php';
* @var Translate $langs
* @var User $user
*/
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/fiscalyear.class.php';
$action = GETPOST('action', 'aZ09');
@@ -123,7 +121,8 @@ llxHeader('', $title, $help_url, '', 0, 0, '', '', '', 'mod-accountancy page-adm
$sql = "SELECT f.rowid, f.label, f.date_start, f.date_end, f.statut as status, f.entity";
$sql .= " FROM ".MAIN_DB_PREFIX."accounting_fiscalyear as f";
$sql .= " WHERE f.entity = ".$conf->entity;
$sql .= " WHERE f.entity = ".((int) $conf->entity);
$sql .= $db->order($sortfield, $sortorder);
// Count total nb of records

View File

@@ -1,5 +1,5 @@
<?php
/* Copyright (C) 2014-2024 Alexandre Spangaro <aspangaro@easya.solutions>
/* Copyright (C) 2014-2026 Alexandre Spangaro <alexandre@inovea-conseil.com>
* Copyright (C) 2018-2025 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2025 MDW <mdeweerd@users.noreply.github.com>
*
@@ -25,10 +25,6 @@
// Load Dolibarr environment
require '../../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/fiscalyear.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/fiscalyear.class.php';
/**
* @var Conf $conf
* @var DoliDB $db
@@ -36,13 +32,15 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/fiscalyear.class.php';
* @var Translate $langs
* @var User $user
*/
require_once DOL_DOCUMENT_ROOT.'/core/lib/fiscalyear.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/fiscalyear.class.php';
// Load translation files required by the page
$langs->loadLangs(array("admin", "compta"));
// Get parameters
$id = GETPOSTINT('id');
$ref = GETPOST('ref', 'alpha');
$ref = GETPOST('ref', 'alpha') ? GETPOST('ref', 'alpha') : GETPOST('label', 'alpha');
$action = GETPOST('action', 'aZ09');
$confirm = GETPOST('confirm', 'alpha');
@@ -62,17 +60,16 @@ $extrafields = new ExtraFields($db);
include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be 'include', not 'include_once'.
// List of status
/*
static $tmpstatus2label = array(
'0' => 'OpenFiscalYear',
'1' => 'CloseFiscalYear'
);
$status2label = array(
'' => ''
'0' => 'OpenFiscalYear',
'1' => 'CloseFiscalYear'
);
$status2label = array('' => '');
foreach ($tmpstatus2label as $key => $val) {
$status2label[$key] = $langs->trans($val);
}
*/
$date_start = dol_mktime(0, 0, 0, GETPOSTINT('fiscalyearmonth'), GETPOSTINT('fiscalyearday'), GETPOSTINT('fiscalyearyear'));
$date_end = dol_mktime(0, 0, 0, GETPOSTINT('fiscalyearendmonth'), GETPOSTINT('fiscalyearendday'), GETPOSTINT('fiscalyearendyear'));
@@ -128,16 +125,19 @@ if ($action == 'confirm_delete' && $confirm == "yes" /* && $permissiontoadd // a
$db->begin();
$id = $object->create($user);
if ($id > 0) {
$db->commit();
header("Location: ".$_SERVER["PHP_SELF"]."?id=".$id);
exit();
header("Location: " . $_SERVER["PHP_SELF"] . "?id=" . $id);
exit;
} else {
$db->rollback();
setEventMessages($object->error, $object->errors, 'errors');
// Handle overlap error
if ($id == -5 && !empty($object->errors[0])) {
setEventMessages($langs->trans($object->error, $object->errors[0]), null, 'errors');
} else {
setEventMessages($object->error, $object->errors, 'errors');
}
$action = 'create';
}
} else {
@@ -145,7 +145,7 @@ if ($action == 'confirm_delete' && $confirm == "yes" /* && $permissiontoadd // a
}
} else {
header("Location: ./fiscalyear.php");
exit();
exit;
}
} elseif ($action == 'update' /* && $permissiontoadd // always true */) {
// Update record
@@ -158,16 +158,20 @@ if ($action == 'confirm_delete' && $confirm == "yes" /* && $permissiontoadd // a
$object->status = GETPOSTINT('status');
$result = $object->update($user);
if ($result > 0) {
header("Location: ".$_SERVER["PHP_SELF"]."?id=".$id);
exit();
header("Location: " . $_SERVER["PHP_SELF"] . "?id=" . $id);
exit;
} else {
setEventMessages($object->error, $object->errors, 'errors');
// Handle overlap error
if ($result == -5 && !empty($object->errors[0])) {
setEventMessages($langs->trans($object->error, $object->errors[0]), null, 'errors');
} else {
setEventMessages($object->error, $object->errors, 'errors');
}
}
} else {
header("Location: ".$_SERVER["PHP_SELF"]."?id=".$id);
exit();
header("Location: " . $_SERVER["PHP_SELF"] . "?id=" . $id);
exit;
}
} elseif ($action == 'reopen' /* && $permissiontoadd // always true */ && getDolGlobalString('ACCOUNTING_CAN_REOPEN_CLOSED_PERIOD')) {
$result = $object->fetch($id);
@@ -211,7 +215,9 @@ if ($action == 'create') {
print '<table class="border centpercent tableforfieldcreate">'."\n";
// Label
print '<tr><td class="titlefieldcreate fieldrequired">'.$langs->trans("Label").'</td><td><input name="label" size="32" value="'.GETPOST('label', 'alpha').'"></td></tr>';
print '<tr><td class="titlefieldcreate fieldrequired">'.$langs->trans("Label").'</td><td>';
print '<input name="label" size="32" value="'.GETPOST('label', 'alpha').'">';
print '</td></tr>';
// Date start
print '<tr><td class="fieldrequired">'.$langs->trans("DateStart").'</td><td>';
@@ -257,6 +263,7 @@ if (($id || $ref) && $action == 'edit') {
print '<form method="POST" name="update" action="'.$_SERVER["PHP_SELF"].'">'."\n";
print '<input type="hidden" name="token" value="'.newToken().'">';
print '<input type="hidden" name="action" value="update">';
print '<input type="hidden" name="status" value="' . $object->status . '">';
print '<input type="hidden" name="id" value="'.$object->id.'">';
if ($backtopage) {
print '<input type="hidden" name="backtopage" value="'.$backtopage.'">';
@@ -340,6 +347,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
print '<div class="fichecenter">';
print '<div class="fichehalfleft">';
print '<div class="underbanner clearboth"></div>';
print '<table class="border centpercent tableforfield">'."\n";
// Id
@@ -370,6 +378,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
print '</td></tr>';
print '</table>';
print '</div>';
print '</div>';

View File

@@ -24,10 +24,6 @@
// Load Dolibarr environment
require '../../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/fiscalyear.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/fiscalyear.class.php';
/**
* @var Conf $conf
* @var DoliDB $db
@@ -35,10 +31,21 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/fiscalyear.class.php';
* @var Translate $langs
* @var User $user
*/
require_once DOL_DOCUMENT_ROOT.'/core/lib/fiscalyear.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/fiscalyear.class.php';
// Load translation files required by the page
$langs->loadLangs(array("admin", "compta"));
$id = GETPOSTINT('id');
$ref = GETPOST('ref', 'alpha') ? GETPOST('ref', 'alpha') : GETPOST('label', 'alpha');
$object = new Fiscalyear($db);
// Load object
include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be 'include', not 'include_once'.
// Security check
if ($user->socid > 0) {
accessforbidden();
@@ -47,10 +54,17 @@ if (!$user->hasRight('accounting', 'fiscalyear', 'write')) {
accessforbidden();
}
$id = GETPOSTINT('id');
/*
* Actions
*/
// None
// View
/*
* View
*/
$title = $langs->trans("Fiscalyear")." - ".$langs->trans("Info");
@@ -59,19 +73,18 @@ $help_url = 'EN:Module_Double_Entry_Accounting#Setup|FR:Module_Comptabilit&eacut
llxHeader('', $title, $help_url, '', 0, 0, '', '', '', 'mod-accountancy page-admin_fiscalyear_info');
if ($id) {
$object = new Fiscalyear($db);
$object->fetch($id);
$object->info($id);
$head = fiscalyear_prepare_head($object);
print dol_get_fiche_head($head, 'info', $langs->trans("Fiscalyear"), -1, $object->picto);
print dol_get_fiche_head($head, 'info', $langs->trans("Fiscalyear"), -1, $object->picto, 0, '', '', 0, '', 1);
$linkback = '<a href="'.DOL_URL_ROOT.'/accountancy/admin/fiscalyear.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>';
$morehtmlref = '';
dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref);
dol_banner_tab($object, 'label', $linkback, 1, 'label', 'label', $morehtmlref);
print '<div class="fichecenter">';
print '<div class="underbanner clearboth"></div>';

View File

@@ -1,7 +1,7 @@
<?php
/* Copyright (C) 2013-2014 Olivier Geffroy <jeff@jeffinfo.com>
* Copyright (C) 2013-2014 Florian Henry <florian.henry@open-concept.pro>
* Copyright (C) 2013-2025 Alexandre Spangaro <alexandre@inovea-conseil.com>
* Copyright (C) 2013-2026 Alexandre Spangaro <alexandre@inovea-conseil.com>
* Copyright (C) 2014-2015 Ari Elbaz (elarifr) <github@accedinfo.com>
* Copyright (C) 2014 Marcos García <marcosgdf@gmail.com>
* Copyright (C) 2014 Juanjo Menent <jmenent@2byte.es>
@@ -32,13 +32,6 @@
// Load Dolibarr environment
require '../../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountancyexport.class.php';
require_once DOL_DOCUMENT_ROOT.'/accountancy/class/bookkeeping.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formsetup.class.php';
/**
* @var Conf $conf
* @var DoliDB $db
@@ -47,6 +40,12 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formsetup.class.php';
* @var Translate $langs
* @var User $user
*/
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountancyexport.class.php';
require_once DOL_DOCUMENT_ROOT.'/accountancy/class/bookkeeping.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formsetup.class.php';
// Load translation files required by the page
$langs->loadLangs(array("compta", "bills", "admin", "accountancy", "other"));
@@ -482,33 +481,28 @@ print '<br>';
// Case of the parameter ACCOUNTING_MODE
print '<form action="'.$_SERVER["PHP_SELF"].'" method="post">';
print '<input type="hidden" name="token" value="'.newToken().'">';
print '<input type="hidden" name="action" value="updatemode">';
if (getDolGlobalInt('MAIN_FEATURES_LEVEL') >= 1) {
print '<form action="'.$_SERVER["PHP_SELF"].'" method="post">';
print '<input type="hidden" name="token" value="'.newToken().'">';
print '<input type="hidden" name="action" value="updatemode">';
print '<table class="noborder centpercent">';
print '<table class="noborder centpercent">';
print '<tr class="liste_titre">';
print '<td colspan="2">'.$langs->trans('OptionMode').'</td>';
print "</tr>\n";
print '<tr class="oddeven"><td class="nowraponall"><input type="radio" id="accounting_mode_1" name="accounting_mode" value="CREANCES-DETTES"'.($accounting_mode != 'RECETTES-DEPENSES' ? ' checked' : '').'><label for="accounting_mode_1"> '.$langs->trans('OptionModeVirtual').'</label> ('.$langs->trans('Default').')</td>';
print '<td><span class="opacitymedium">'.nl2br($langs->trans('ACCOUNTING_USE_NON_TREASURY_Desc')).'</span>';
print "</td></tr>\n";
print '<tr class="oddeven"><td class="nowraponall"><input type="radio" id="accounting_mode_2" name="accounting_mode" value="RECETTES-DEPENSES"'.($accounting_mode == 'RECETTES-DEPENSES' ? ' checked' : '').'><label for="accounting_mode_2"> '.$langs->trans('OptionModeTrue').'</label></td>';
print '<td><span class="opacitymedium">'.nl2br($langs->trans('ACCOUNTING_USE_TREASURY_Desc'))."</span>";
print "</td></tr>\n";
print '<tr class="liste_titre">';
print '<td colspan="2">'.$langs->trans('OptionMode').'</td>';
print "</tr>\n";
print '<tr class="oddeven"><td class="nowraponall"><input type="radio" id="accounting_mode_1" name="accounting_mode" value="CREANCES-DETTES"'.($accounting_mode != 'RECETTES-DEPENSES' ? ' checked' : '').'><label for="accounting_mode_1"> '.$langs->trans('OptionModeVirtual').'</label> ('.$langs->trans('Default').')</td>';
print '<td><span class="opacitymedium">'.nl2br($langs->trans('ACCOUNTING_USE_NON_TREASURY_Desc')).'</span>';
print "</td></tr>\n";
print '<tr class="oddeven"><td class="nowraponall"><input type="radio" id="accounting_mode_2" name="accounting_mode" value="RECETTES-DEPENSES"'.($accounting_mode == 'RECETTES-DEPENSES' ? ' checked' : '').'><label for="accounting_mode_2"> '.$langs->trans('OptionModeTrue').'</label></td>';
print '<td><span class="opacitymedium">'.nl2br($langs->trans('ACCOUNTING_USE_TREASURY_Desc'))."</span>";
print "</td></tr>\n";
print "</table>\n";
print "</table>\n";
print '<div class="center"><input type="submit" class="button button-edit" name="button" value="'.$langs->trans('Save').'"></div>';
print '</form>';
print '<br><br>';
}
print '<div class="center"><input type="submit" class="button button-edit" name="button" value="'.$langs->trans('Save').'"></div>';
print '</form>';
print '<br><br>';
// Show form main options
print $formSetup->generateOutput(true);
@@ -660,7 +654,7 @@ print '</form>';
print '<br><br>';
// Accountancy Numbering model
$dirmodels = array_merge(array('/'), $conf->modules_parts['models']);
$dirmodels = array_merge(array('/'), (array) $conf->modules_parts['models']);
print '<div class="div-table-responsive-no-min">';
print '<table class="noborder centpercent">';

View File

@@ -1,7 +1,7 @@
<?php
/* Copyright (C) 2017-2024 Alexandre Spangaro <aspangaro@easya.solutions>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
* Copyright (C) 2024-2025 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2024-2026 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2024-2026 MDW <mdeweerd@users.noreply.github.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -194,7 +194,7 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha')) {
$ok = 0;
}
// Si verif ok et action add, on ajoute la ligne
// In case of 'actionadd' and with valid parameters, add the line
if ($ok && GETPOST('actionadd', 'alpha')) {
$newid = 0; // Initialise before if for static analysis
if ($tabrowid[$id]) {
@@ -251,7 +251,7 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha')) {
}
}
// Si verif ok et action modify, on modifie la ligne
// If check ok and action modify, we modify the line
if ($ok && GETPOST('actionmodify', 'alpha')) {
if ($tabrowid[$id]) {
$rowidcol = $tabrowid[$id];
@@ -261,7 +261,7 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha')) {
// Modify entry
$sql = "UPDATE ".$db->sanitize($tabname[$id])." SET ";
// Modifie valeur des champs
// Modify the field values
if ($tabrowid[$id] && !in_array($tabrowid[$id], $listfieldmodify)) {
$sql .= $db->sanitize($tabrowid[$id])." = ";
$sql .= "'".$db->escape($rowid)."', ";
@@ -373,7 +373,7 @@ $titlepicto = 'title_accountancy';
print load_fiche_titre($titre, $linkback, $titlepicto);
// Confirmation de la suppression de la ligne
// Generate a form to confirm the deletion of the row
if ($action == 'delete') {
print $form->formconfirm($_SERVER["PHP_SELF"].'?'.($page ? 'page='.$page.'&' : '').'sortfield='.$sortfield.'&sortorder='.$sortorder.'&rowid='.$rowid.'&code='.$code.'&id='.$id, $langs->trans('DeleteLine'), $langs->trans('ConfirmDeleteLine'), 'confirm_delete', '', 0, 1);
}
@@ -382,7 +382,7 @@ if ($action == 'delete') {
* Show a dictionary
*/
// Complete requete recherche valeurs avec critere de tri
// Complete the search query with sort criteria
$sql = $tabsql[$id];
$sql .= " WHERE a.entity = ".((int) $conf->entity);
@@ -409,8 +409,8 @@ if ($tabname[$id]) {
// Line for title
print '<tr class="liste_titre">';
foreach ($fieldlist as $field => $value) {
// Determine le nom du champ par rapport aux noms possibles
// dans les dictionnaires de donnees
// Determine the field name based on the possible names
// in the data dictionaries.
$valuetoshow = ucfirst($fieldlist[$field]); // By default
$valuetoshow = $langs->trans($valuetoshow); // try to translate
$class = "left";
@@ -522,8 +522,8 @@ if ($resql) {
// Title of lines
print '<tr class="liste_titre liste_titre_add">';
foreach ($fieldlist as $field => $value) {
// Determine le nom du champ par rapport aux noms possibles
// dans les dictionnaires de donnees
// Determine the field name based on the possible names
// in the data dictionaries.
$class = "left";
$sortable = 1;
$valuetoshow = '';

View File

@@ -6,7 +6,7 @@
* Copyright (C) 2015 Ari Elbaz (elarifr) <github@accedinfo.com>
* Copyright (C) 2021 Gauthier VERDOL <gauthier.verdol@atm-consulting.fr>
* Copyright (C) 2024-2025 MDW <mdeweerd@users.noreply.github.com>
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2024-2025 Frédéric France <frederic.france@free.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
@@ -202,7 +202,7 @@ if ($action == 'update' && $permissiontobind) {
$ko = 0;
$msg = '';
$sql = '';
if (!empty($toselect) && in_array($accounting_product_mode, $accounting_product_modes)) { // @phpstan-ignore-line Bug phpstan thinking that empty(array()) is always true
if (in_array($accounting_product_mode, $accounting_product_modes)) {
$accounting = new AccountingAccount($db);
$arrayofdifferentselectedvalues = array();
@@ -466,9 +466,9 @@ if ($resql) {
if ($search_current_account_valid && $search_current_account_valid != '-1') {
$param .= "&search_current_account_valid=".urlencode($search_current_account_valid);
}
if ($accounting_product_mode) {
$param .= '&accounting_product_mode='.urlencode($accounting_product_mode);
}
// if ($accounting_product_mode) { // can't be empty see line 91-93
$param .= '&accounting_product_mode='.urlencode($accounting_product_mode);
// }
print '<form action="'.$_SERVER["PHP_SELF"].'" method="post">';
if ($optioncss != '') {
@@ -552,10 +552,12 @@ if ($resql) {
if ($massaction == 'set_default_account') {
$formquestion = array();
$formquestion[] = array('type' => 'other',
$formquestion[] = array(
'type' => 'other',
'name' => 'set_default_account',
'label' => $langs->trans("AccountancyCode"),
'value' => $form->select_account('', 'default_account', 1, array(), 0, 0, 'maxwidth200 maxwidthonsmartphone', 'cachewithshowemptyone'));
'value' => $form->select_account('', 'default_account', 1, array(), 0, 0, 'maxwidth200 maxwidthonsmartphone', 'cachewithshowemptyone')
);
print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmPreselectAccount"), $langs->trans("ConfirmPreselectAccountQuestion", $nbselected), "confirm_set_default_account", $formquestion, 1, 0, 200, 500, 1);
}
@@ -563,7 +565,7 @@ if ($resql) {
$moreforfilter = '';
if (isModEnabled('category') && $user->hasRight('categorie', 'lire')) {
$formcategory = new FormCategory($db);
$moreforfilter .= $formcategory->getFilterBox(Categorie::TYPE_PRODUCT, $searchCategoryProductList, 'minwidth300', $searchCategoryProductList ? $searchCategoryProductList : 0);
$moreforfilter .= $formcategory->getFilterBox(Categorie::TYPE_PRODUCT, $searchCategoryProductList, 'minwidth300', $searchCategoryProductList ? $searchCategoryProductOperator : 0);
}
// Show/hide child products. Hidden by default
@@ -662,7 +664,7 @@ if ($resql) {
while ($i < min($num, $limit)) {
$obj = $db->fetch_object($resql);
// Ref produit as link
// Product ref as link
$product_static->ref = $obj->ref;
$product_static->id = $obj->rowid;
$product_static->type = $obj->product_type;
@@ -907,49 +909,48 @@ if ($resql) {
}
print '</table>';
print '</div>';
?>
<script type="text/javascript">
jQuery(document).ready(function() {
function init_savebutton() {
console.log("We check if at least one line is checked")
print '<script type="text/javascript">
jQuery(document).ready(function() {
function init_savebutton()
{
console.log("We check if at least one line is checked")
atleastoneselected = 0;
jQuery(".checkforselect").each(function(index) {
/* console.log( index + ": " + $( this ).text() ); */
if ($(this).is(':checked')) atleastoneselected++;
});
atleastoneselected=0;
jQuery(".checkforselect").each(function( index ) {
/* console.log( index + ": " + $( this ).text() ); */
if ($(this).is(\':checked\')) atleastoneselected++;
});
if (atleastoneselected) jQuery("#changeaccount").removeAttr('disabled');
else jQuery("#changeaccount").attr('disabled', 'disabled');
if (atleastoneselected) jQuery("#changeaccount").attr('class', 'button');
else jQuery("#changeaccount").attr('class', 'button');
}
if (atleastoneselected) jQuery("#changeaccount").removeAttr(\'disabled\');
else jQuery("#changeaccount").attr(\'disabled\',\'disabled\');
if (atleastoneselected) jQuery("#changeaccount").attr(\'class\',\'button\');
else jQuery("#changeaccount").attr(\'class\',\'button\');
}
jQuery(".checkforselect").change(function() {
init_savebutton();
});
jQuery(".productforselect").change(function() {
console.log($(this).attr("id")+" "+$(this).val());
jQuery(".checkforselect").change(function() {
init_savebutton();
});
jQuery(".productforselect").change(function() {
console.log($(this).attr("id") + " " + $(this).val());
if ($(this).val() && $(this).val() != -1) {
$(".productforselect"+$(this).attr("id")).prop(\'checked\', true);
$(".productforselect"+$(this).attr("id")).prop('checked', true);
} else {
$(".productforselect"+$(this).attr("id")).prop(\'checked\', false);
$(".productforselect"+$(this).attr("id")).prop('checked', false);
}
init_savebutton();
});
init_savebutton();
});
init_savebutton();
init_savebutton();
jQuery("#search_current_account").keyup(function() {
if (jQuery("#search_current_account").val() != \'\')
{
console.log("We set a value of account to search "+jQuery("#search_current_account").val()+", so we disable the other search criteria on account");
jQuery("#search_current_account_valid").val(-1);
}
});
});
</script>';
jQuery("#search_current_account").keyup(function() {
if (jQuery("#search_current_account").val() != '') {
console.log("We set a value of account to search " + jQuery("#search_current_account").val() + ", so we disable the other search criteria on account");
jQuery("#search_current_account_valid").val(-1);
}
});
});
</script>
<?php
print '</form>';

View File

@@ -1,6 +1,7 @@
<?php
/* Copyright (C) 2024 Alexandre Spangaro <alexandre@inovea-conseil.com>
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2024-2026 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2026 MDW <mdeweerd@users.noreply.github.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -183,7 +184,7 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha')) {
}
}
// Si verif ok et action add, on ajoute la ligne
// In case of 'actionadd' and with valid parameters, add the line
if ($ok && GETPOST('actionadd', 'alpha')) {
$newid = 0;
@@ -254,7 +255,7 @@ if (GETPOST('actionadd', 'alpha') || GETPOST('actionmodify', 'alpha')) {
// Modify entry
$sql = "UPDATE ".$db->sanitize($tabname[$id])." SET ";
// Modifie valeur des champs
// Modify field values
if ($tabrowid[$id] && !in_array($tabrowid[$id], $listfieldmodify)) {
$sql .= $db->sanitize($tabrowid[$id])." = ";
$sql .= "'".$db->escape($rowid)."', ";
@@ -427,8 +428,8 @@ if ($tabname[$id]) {
print '<td></td>';
}
foreach ($fieldlist as $field => $value) {
// Determine le nom du champ par rapport aux noms possibles
// dans les dictionnaires de donnees
// Determine the field name based on the possible names
// in the data dictionaries.
$valuetoshow = ucfirst($fieldlist[$field]); // By default
$valuetoshow = $langs->trans($valuetoshow); // try to translate
$class = "left";
@@ -680,9 +681,7 @@ if ($resql) {
}
}
$url = $_SERVER["PHP_SELF"].'?'.($page ? 'page='.$page.'&' : '').'sortfield='.$sortfield.'&sortorder='.$sortorder.'&rowid='.(!empty($obj->rowid) ? $obj->rowid : (!empty($obj->code) ? $obj->code : '')).'&code='.(!empty($obj->code) ? urlencode($obj->code) : '');
if ($param) {
$url .= '&'.$param;
}
$url .= '&'.$param;
$url .= '&';
$canbemodified = $iserasable;

View File

@@ -235,8 +235,8 @@ if ($action == 'export' && $user->hasRight('accounting', 'mouvements', 'lire'))
if ($exportType === 'csv') {
$sep = getDolGlobalString('ACCOUNTING_EXPORT_SEPARATORCSV');
$filename = 'balance';
$type_export = 'balance';
$filename = 'balance'; // Used by the tpl
$type_export = 'balance'; // Used by the tpl
include DOL_DOCUMENT_ROOT.'/accountancy/tpl/export_journal.tpl.php';
foreach ($object->lines as $line) {

View File

@@ -34,6 +34,7 @@ require_once DOL_DOCUMENT_ROOT.'/accountancy/class/bookkeeping.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php';
require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php';
require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php';
require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingjournal.class.php';
require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingaccount.class.php';
require_once DOL_DOCUMENT_ROOT.'/accountancy/class/lettering.class.php';
@@ -738,7 +739,38 @@ if ($action == 'create') {
print '<input type="submit" class="button button-edit smallpaddingimp" value="'.$langs->trans('Modify').'">';
print '</form>';
} else {
print $object->doc_ref;
// Get information of an element
if ($object->doc_type === 'customer_invoice' && !empty($object->fk_doc)) {
$invoicestatic = new Facture($db);
$result = $invoicestatic->fetch($object->fk_doc);
if ($result > 0) {
$label_element = $invoicestatic->getNomUrl(1);
} else {
$label_element = $object->doc_ref;
}
} elseif ($object->doc_type === 'supplier_invoice' && !empty($object->fk_doc)) {
$supplierinvoicestatic = new FactureFournisseur($db);
$result = $supplierinvoicestatic->fetch($object->fk_doc);
if ($result > 0) {
$label_element = $supplierinvoicestatic->getNomUrl(1);
} else {
$label_element = $object->doc_ref;
}
} elseif ($object->doc_type === 'expense_report' && !empty($object->fk_doc)) {
$expensereportstatic = new ExpenseReport($db);
$result = $expensereportstatic->fetch($object->fk_doc);
if ($result > 0) {
$label_element = $expensereportstatic->getNomUrl(1);
} else {
$label_element = $object->doc_ref;
}
} else {
$label_element = $object->doc_ref;
}
print $label_element;
}
print '</td>';
print '</tr>';
@@ -804,7 +836,13 @@ if ($action == 'create') {
print '<input type="submit" class="button button-edit" value="'.$langs->trans('Modify').'">';
print '</form>';
} else {
print $object->code_journal;
// Get information of a journal
$accountingjournalstatic = new AccountingJournal($db);
$accountingjournalstatic->fetch(0, $object->code_journal);
$journal = $accountingjournalstatic->code;
$journal_label = $accountingjournalstatic->label;
print $accountingjournalstatic->getNomUrl(1, 1, 1);
}
print '</td>';
print '</tr>';

View File

@@ -30,6 +30,13 @@
// Load Dolibarr environment
require '../../main.inc.php';
/**
* @var Conf $conf
* @var DoliDB $db
* @var HookManager $hookmanager
* @var Translate $langs
* @var User $user
*/
require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountancyexport.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php';
require_once DOL_DOCUMENT_ROOT.'/accountancy/class/lettering.class.php';
@@ -41,14 +48,6 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
/**
* @var Conf $conf
* @var DoliDB $db
* @var HookManager $hookmanager
* @var Translate $langs
* @var User $user
*/
// Load translation files required by the page
$langs->loadLangs(array("accountancy", "compta"));
@@ -851,15 +850,26 @@ if ($action == 'export_file') {
|| getDolGlobalString('ACCOUNTING_EXPORT_MODELCSV') == AccountancyExport::$EXPORT_TYPE_FEC
|| getDolGlobalString('ACCOUNTING_EXPORT_MODELCSV') == AccountancyExport::$EXPORT_TYPE_FEC2
) {
$except = array();
if (getDolGlobalInt('ACCOUNTING_EXPORT_REMOVE_INVOICE_SOURCE_FILE')) {
$except[] = $langs->trans('Invoice');
}
if (getDolGlobalInt('ACCOUNTING_EXPORT_REMOVE_EXPENSEREPORT_SOURCE_FILE')) {
$except[] = $langs->trans('ExpenseReport');
}
if (getDolGlobalInt('ACCOUNTING_EXPORT_REMOVE_SUPPLIERINVOICE_SOURCE_FILE')) {
$except[] = $langs->trans('SupplierInvoice');
}
$form_question['notifiedexportfull'] = array(
'name' => 'notifiedexportfull',
'type' => 'checkbox',
'label' => $langs->trans('NotifiedExportFull'),
'label' => $langs->trans('NotifiedExportFull').(empty($except) ? '' : ' <spanc class="opacitymedium">('.$langs->trans("except").' '.implode(', ', $except).')</span>'),
'value' => 'false',
);
}
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?'.$param, $langs->trans("ExportFilteredList").'...', $langs->trans('ConfirmExportFile'), 'export_fileconfirm', $form_question, '', 1, 390, 700);
$formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?'.$param, $langs->trans("ExportFilteredList").'...', '', 'export_fileconfirm', $form_question, '', 1, 390, 700);
}
// Print form confirm

View File

@@ -31,6 +31,13 @@
// Load Dolibarr environment
require '../../main.inc.php';
/**
* @var Conf $conf
* @var DoliDB $db
* @var HookManager $hookmanager
* @var Translate $langs
* @var User $user
*/
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfiscalyear.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
@@ -42,16 +49,8 @@ require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingjournal.class.php';
require_once DOL_DOCUMENT_ROOT.'/accountancy/class/bookkeeping.class.php';
require_once DOL_DOCUMENT_ROOT.'/accountancy/class/lettering.class.php';
/**
* @var Conf $conf
* @var DoliDB $db
* @var HookManager $hookmanager
* @var Translate $langs
* @var User $user
*/
// Load translation files required by the page
$langs->loadLangs(array("accountancy", "compta"));
$langs->loadLangs(array("accountancy", "categories", "compta", "other"));
// Get Parameters
$socid = GETPOSTINT('socid');
@@ -339,7 +338,12 @@ if (empty($reshook)) {
$listofaccountsforgroup2[] = "'".$db->escape((string) $tmpval['account_number'])."'";
}
}
$filter['t.search_accounting_code_in'] = implode(',', $listofaccountsforgroup2);
if (!empty($listofaccountsforgroup2)) {
$filter['t.search_accounting_code_in'] = implode(',', $listofaccountsforgroup2);
} else {
$filter['t.search_accounting_code_in'] = "''";
setEventMessages($langs->trans("ThisCategoryHasNoItems"), null, 'warnings');
}
$param .= '&search_account_category='.urlencode((string) ($search_account_category));
}
if (!empty($search_accountancy_code)) {
@@ -484,6 +488,7 @@ if (empty($reshook)) {
$uploaddir = $conf->societe->dir_output;
global $error;
/** @var int $error */
include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php';
if (!$error && $action == 'deletebookkeepingwriting' && $confirm == "yes" && $user->hasRight('accounting', 'mouvements', 'supprimer')) {
@@ -742,13 +747,13 @@ if (count($filter) > 0) {
$sqlwhere[] = natural_search($key, $value, 1, 1);
} elseif ($key == 't.reconciled_option') {
$sqlwhere[] = 't.lettering_code IS NULL';
} elseif ($key == 't.code_journal' && !empty($value)) {
} elseif ($key == 't.code_journal' && !empty($value)) { // @phpstan-ignore-line false positive on !empty
if (is_array($value)) {
$sqlwhere[] = natural_search("t.code_journal", implode(',', $value), 3, 1);
} else {
$sqlwhere[] = natural_search("t.code_journal", $value, 3, 1);
}
} elseif ($key == 't.search_accounting_code_in' && !empty($value)) {
} elseif ($key == 't.search_accounting_code_in' && !empty($value)) { // @phpstan-ignore-line false positive on !empty
$sqlwhere[] = 't.numero_compte IN ('.$db->sanitize($value, 1).')';
} else {
$sqlwhere[] = natural_search($key, $value, 0, 1);
@@ -1267,17 +1272,19 @@ while ($i < min($num, $limit)) {
// Piece number
if (!empty($arrayfields['t.piece_num']['checked'])) {
print '<td>';
print '<td class="nowraponall">';
$object->id = $line->id;
$object->piece_num = $line->piece_num;
$object->ref = $line->ref;
print $object->getNomUrl(1, '', 0, '', 1);
print '<span class="hideonsmartphone">';
if (!empty($line->date_export)) {
print img_picto($langs->trans("DateExport").": ".dol_print_date($line->date_export, 'dayhour')." (".$langs->trans("TransactionExportDesc").")", 'fa-file-export', 'class="paddingleft pictofixedwidth opacitymedium"');
}
if (!empty($line->date_validation)) {
print img_picto($langs->trans("DateValidation").": ".dol_print_date($line->date_validation, 'dayhour')." (".$langs->trans("TransactionBlockedLockedDesc").")", 'fa-lock', 'class="paddingleft pictofixedwidth opacitymedium"');
}
print '</span>';
print '</td>';
if (!$i) {
$totalarray['nbfield']++;

View File

@@ -2,7 +2,7 @@
/* Copyright (C) 2016 Neil Orley <neil.orley@oeris.fr>
* Copyright (C) 2013-2016 Olivier Geffroy <jeff@jeffinfo.com>
* Copyright (C) 2013-2020 Florian Henry <florian.henry@open-concept.pro>
* Copyright (C) 2013-2025 Alexandre Spangaro <alexandre@inovea-conseil.com>
* Copyright (C) 2013-2026 Alexandre Spangaro <alexandre@inovea-conseil.com>
* Copyright (C) 2018-2025 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2024-2025 MDW <mdeweerd@users.noreply.github.com>
* Copyright (C) 2025 Nicolas Barrouillet <nicolas@pragma-tech.fr>
@@ -49,7 +49,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
*/
// Load translation files required by the page
$langs->loadLangs(array("accountancy", "compta"));
$langs->loadLangs(array("accountancy", "categories", "compta", "other"));
$journal_code = GETPOST('code_journal', 'alpha');
$account = GETPOST("account", 'int');
@@ -359,7 +359,12 @@ if (empty($reshook)) {
$listofaccountsforgroup2[] = "'".$db->escape((string) $tmpval['account_number'])."'";
}
}
$filter['t.search_accounting_code_in'] = implode(',', $listofaccountsforgroup2);
if (!empty($listofaccountsforgroup2)) {
$filter['t.search_accounting_code_in'] = implode(',', $listofaccountsforgroup2);
} else {
$filter['t.search_accounting_code_in'] = "''";
setEventMessages($langs->trans("ThisCategoryHasNoItems"), null, 'warnings');
}
$param .= '&search_account_category='.urlencode((string) ($search_account_category));
}
if (!empty($search_accountancy_code_start)) {
@@ -1415,17 +1420,19 @@ while ($i < min($num, $limit)) {
}
// Piece number
if (!empty($arrayfields['t.piece_num']['checked'])) {
print '<td>';
print '<td class="nowraponall">';
$object->id = $line->id;
$object->piece_num = $line->piece_num;
$object->ref = $line->ref;
print $object->getNomUrl(1, '', 0, '', 1);
print '<span class="hideonsmartphone">';
if (!empty($line->date_export)) {
print img_picto($langs->trans("DateExport").": ".dol_print_date($line->date_export, 'dayhour')." (".$langs->trans("TransactionExportDesc").")", 'fa-file-export', 'class="paddingleft pictofixedwidth opacitymedium"');
}
if (!empty($line->date_validation)) {
print img_picto($langs->trans("DateValidation").": ".dol_print_date($line->date_validation, 'dayhour')." (".$langs->trans("TransactionBlockedLockedDesc").")", 'fa-lock', 'class="paddingleft pictofixedwidth opacitymedium"');
}
print '</span>';
print '</td>';
if (!$i) {
$totalarray['nbfield']++;

View File

@@ -1,6 +1,6 @@
<?php
/* Copyright (C) 2016 Jamal Elbaz <jamelbaz@gmail.pro>
* Copyright (C) 2016-2017 Alexandre Spangaro <aspangaro@open-dsi.fr>
* Copyright (C) 2016-2025 Alexandre Spangaro <alexandre@inovea-conseil.com>
* Copyright (C) 2018-2025 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2024-2025 MDW <mdeweerd@users.noreply.github.com>
*
@@ -438,8 +438,11 @@ class AccountancyCategory // extends CommonObject
{
global $conf;
$pcgver = getDolGlobalInt('CHARTOFACCOUNTS');
$sql = "SELECT t.rowid, t.account_number, t.label";
$sql .= " FROM ".$this->db->prefix()."accounting_account as t";
$sql .= " INNER JOIN ".MAIN_DB_PREFIX."accounting_system as asy ON t.fk_pcg_version = asy.pcg_version AND asy.rowid = ".((int) $pcgver);
$sql .= " WHERE t.fk_accounting_category = ".((int) $id);
$sql .= " AND t.entity = ".$conf->entity;

View File

@@ -14,7 +14,7 @@
* Copyright (C) 2020 Guillaume Alexandre <guillaume@tag-info.fr>
* Copyright (C) 2022 Joachim Kueter <jkueter@gmx.de>
* Copyright (C) 2022 Progiseize <a.bisotti@progiseize.fr>
* Copyright (C) 2024-2025 MDW <mdeweerd@users.noreply.github.com>
* Copyright (C) 2024-2026 MDW <mdeweerd@users.noreply.github.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -230,7 +230,7 @@ class AccountancyExport
);
global $hookmanager;
$code = $formatcode[$type];
$code = $formatcode[$type] ?? '';
$parameters = array('type' => $type);
$reshook = $hookmanager->executeHooks('getFormatCode', $parameters, $code);
@@ -382,12 +382,12 @@ class AccountancyExport
*/
public function export(&$TData, $formatexportset, $withAttachment = 0, $downloadMode = 1, $outputMode = 1, $noouput = 1)
{
global $db, $conf, $langs; // The tpl file use $db
global $search_date_end; // Used into /accountancy/tpl/export_journal.tpl.php
global $db, $conf, $langs; // Used into /accountancy/tpl/export_journal.tpl.php
global $search_date_end, $hookmanager; // Used into /accountancy/tpl/export_journal.tpl.php
// Define name of file to save
$filename = 'general_ledger-'.$this->getFormatCode($formatexportset);
$type_export = 'general_ledger';
$filename = 'general_ledger-'.$this->getFormatCode($formatexportset); // Used into /accountancy/tpl/export_journal.tpl.php
$type_export = 'general_ledger'; // Used into /accountancy/tpl/export_journal.tpl.php
$completefilename = '';
$exportFile = null;
@@ -422,7 +422,8 @@ class AccountancyExport
top_httphead($mimetype, 1);
}
include DOL_DOCUMENT_ROOT.'/accountancy/tpl/export_journal.tpl.php';
// Set var $completefilename and add HTTP header.
include DOL_DOCUMENT_ROOT.'/accountancy/tpl/export_journal.tpl.php'; // TODO Fix this: A tpl is for rendering data on output. For including common code, we must use .inc.php
if ($outputMode == 1 || $outputMode == 2) {
if ($outputMode == 1) {
@@ -884,7 +885,7 @@ class AccountancyExport
/**
* Export format : Quadratus (Format ASCII)
* Format since 2015 compatible QuadraCOMPTA
* Last review for this format : 2023/10/12 Alexandre Spangaro (aspangaro@open-dsi.fr)
* Last review for this format : 2025/12/21 Alexandre Spangaro (alexandre@inovea-conseil.com)
*
* Information on format: https://docplayer.fr/20769649-Fichier-d-entree-ascii-dans-quadracompta.html
* Help to import in Quadra: https://wiki.dolibarr.org/index.php?title=Module_Comptabilit%C3%A9_en_Partie_Double#Import_vers_CEGID_Quadra
@@ -902,8 +903,13 @@ class AccountancyExport
$end_line = "\r\n";
$conf->cache['archiveFileList_notfound'] = array();
// We should use dol_now function not time however this is wrong date to transfer in accounting
$i = 0;
foreach ($objectLines as $line) {
$i++;
// Clean some data
$line->doc_ref = dol_string_unaccent($line->doc_ref);
@@ -931,11 +937,11 @@ class AccountancyExport
$tab['lib_compte'] = str_pad(self::trunc($line->subledger_label, 30), 30);
if ($line->doc_type == 'customer_invoice') {
$tab['lib_alpha'] = strtoupper(str_pad('C'.self::trunc(dol_string_unaccent($line->subledger_label), 6), 7));
$tab['lib_alpha'] = strtoupper(self::trunc(dol_string_unaccent($line->subledger_label), 7));
$tab['filler'] = str_repeat(' ', 52);
$tab['coll_compte'] = str_pad(self::trunc(getDolGlobalString('ACCOUNTING_ACCOUNT_CUSTOMER'), 8), 8);
} elseif ($line->doc_type == 'supplier_invoice') {
$tab['lib_alpha'] = strtoupper(str_pad('F'.self::trunc(dol_string_unaccent($line->subledger_label), 6), 7));
$tab['lib_alpha'] = strtoupper(self::trunc(dol_string_unaccent($line->subledger_label), 7));
$tab['filler'] = str_repeat(' ', 52);
$tab['coll_compte'] = str_pad(self::trunc(getDolGlobalString('ACCOUNTING_ACCOUNT_SUPPLIER'), 8), 8);
} else {
@@ -1034,12 +1040,14 @@ class AccountancyExport
$tab['num_piece3'] = str_pad(substr(self::trunc($line->doc_ref, 20), -10), 10);
$tab['reserved'] = str_repeat(' ', 10); // position 159
$tab['currency_amount'] = str_repeat(' ', 13); // position 169
// get document file
$attachmentFileName = '';
if ($withAttachment == 1) {
$attachmentFileKey = trim((string) $line->piece_num);
if (!isset($archiveFileList[$attachmentFileKey])) {
// We complete the $archiveFileList to add the file to the existing list (first entry was filled when function was called, we add here the next one)
$objectDirPath = '';
$objectFileName = dol_sanitizeFileName($line->doc_ref);
if ($line->doc_type == 'customer_invoice') {
@@ -1053,33 +1061,45 @@ class AccountancyExport
$objectDirPath = !empty($conf->fournisseur->facture->multidir_output[$conf->entity]) ? $conf->fournisseur->facture->multidir_output[$conf->entity] : $conf->fournisseur->facture->dir_output;
$objectDirPath .= '/'.rtrim(get_exdir($invoice->id, 2, 0, 0, $invoice, 'invoice_supplier'), '/');
}
$arrayofinclusion = array();
// If it is a supplier invoice, we want to use last uploaded file
$arrayofinclusion[] = '^'.preg_quote($objectFileName, '/').(($line->doc_type == 'supplier_invoice') ? '.+' : '').'\.pdf$';
$fileFoundList = dol_dir_list($objectDirPath.'/'.$objectFileName, 'files', 0, implode('|', $arrayofinclusion), '(\.meta|_preview.*\.png)$', 'date', SORT_DESC, 0, 1);
if (!empty($fileFoundList)) {
$attachmentFileNameTrunc = str_pad(self::trunc((string) $line->piece_num, 8), 8, '0', STR_PAD_LEFT);
foreach ($fileFoundList as $fileFound) {
if (strstr($fileFound['name'], $objectFileName)) {
// skip native invoice pdfs (canelle)
// We want to retrieve an attachment representative of the supplier invoice, not a fake document generated by Dolibarr.
if ($line->doc_type == 'supplier_invoice') {
if ($fileFound['name'] === $objectFileName.'.pdf') {
if ($objectDirPath && empty($conf->cache['archiveFileList_notfound'][$attachmentFileKey])) {
$arrayofinclusion = array();
// If it is a supplier invoice, we want to use last uploaded file
$arrayofinclusion[] = '^'.preg_quote($objectFileName, '/').(($line->doc_type == 'supplier_invoice') ? '.+' : '').'\.pdf$';
$fileFoundPath = '';
$fileFoundList = dol_dir_list($objectDirPath.'/'.$objectFileName, 'files', 0, implode('|', $arrayofinclusion), '(\.meta|_preview.*\.png)$', 'date', SORT_DESC, 0, 1);
if (!empty($fileFoundList)) {
$attachmentFileNameTrunc = str_pad(self::trunc((string) $line->piece_num, 8), 8, '0', STR_PAD_LEFT);
foreach ($fileFoundList as $fileFound) {
if (strstr($fileFound['name'], $objectFileName)) {
// skip native invoice pdfs (canelle)
// We want to retrieve an attachment representative of the supplier invoice, not a fake document generated by Dolibarr.
if ($line->doc_type == 'supplier_invoice') {
if ($fileFound['name'] === $objectFileName.'.pdf') {
continue;
}
} elseif ($fileFound['name'] !== $objectFileName.'.pdf') {
continue;
}
} elseif ($fileFound['name'] !== $objectFileName.'.pdf') {
continue;
}
$fileFoundPath = $objectDirPath.'/'.$objectFileName.'/'.$fileFound['name'];
if (file_exists($fileFoundPath)) {
$archiveFileList[$attachmentFileKey] = array(
'path' => $fileFoundPath,
'name' => $attachmentFileNameTrunc.'.pdf',
);
break;
$fileFoundPath = $objectDirPath.'/'.$objectFileName.'/'.$fileFound['name'];
if (file_exists($fileFoundPath)) {
$archiveFileList[$attachmentFileKey] = array(
'path' => $fileFoundPath,
'name' => $attachmentFileNameTrunc.'.pdf',
);
break;
}
}
}
}
if (empty($fileFoundPath)) {
// Use also a cache if no file were found
$conf->cache['archiveFileList_notfound'][$attachmentFileKey] = 1;
}
}
}
@@ -1087,6 +1107,7 @@ class AccountancyExport
$attachmentFileName = $archiveFileList[$attachmentFileKey]['name'];
}
}
if (dol_strlen((string) $attachmentFileName) == 12) {
$tab['attachment'] = $attachmentFileName; // position 182
} else {
@@ -1370,7 +1391,7 @@ class AccountancyExport
$separator = ';';
$end_line = "\n";
// parcours du tableau pour recuperation des numero de compte des tiers pour pouvoir les fournir dans la bonne ligne pour istea
// Extract the Third party account numbers from the table to provide the correct line for ISTEA
$tiers = [];
foreach ($objectLines as $line) {
if ($line->subledger_account && substr($line->subledger_account, 0, 1) == '4') {
@@ -1462,11 +1483,16 @@ class AccountancyExport
print $output;
}
$conf->cache['archiveFileList_notfound'] = array();
$i = 0;
foreach ($objectLines as $line) {
if ($line->debit == 0 && $line->credit == 0) {
//var_dump($line->id);
//unset($array[$line]);
} else {
$i++;
$date_creation = dol_print_date($line->date_creation, '%Y%m%d');
$date_document = dol_print_date($line->doc_date, '%Y%m%d');
$date_lettering = dol_print_date($line->date_lettering, '%Y%m%d');
@@ -1475,6 +1501,8 @@ class AccountancyExport
$refInvoice = '';
$invoice = null;
// TODO The fetch of invoice is just to get the ->id, ->ref (and ->ref_supplier for supplier invoice) so
// may be we can get them into the $objectLines and reuse a generic static objectinstead ?
if ($line->doc_type == 'customer_invoice') {
// Customer invoice
require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
@@ -1567,6 +1595,7 @@ class AccountancyExport
$attachmentFileKey = trim((string) $line->piece_num);
if (!isset($archiveFileList[$attachmentFileKey])) {
// We complete the $archiveFileList to add the file to the existing list (first entry was filled when function was called, we add here the next one)
$objectDirPath = '';
$objectFileName = dol_sanitizeFileName($line->doc_ref);
if ($line->doc_type == 'customer_invoice') {
@@ -1584,33 +1613,45 @@ class AccountancyExport
$objectDirPath .= '/' . rtrim(get_exdir($invoice->id, 2, 0, 0, $invoice, 'invoice_supplier'), '/');
}
}
$arrayofinclusion = array();
// If it is a supplier invoice, we want to use last uploaded file
$arrayofinclusion[] = '^'.preg_quote($objectFileName, '/').(($line->doc_type == 'supplier_invoice') ? '.+' : '').'\.pdf$';
$fileFoundList = dol_dir_list($objectDirPath.'/'.$objectFileName, 'files', 0, implode('|', $arrayofinclusion), '(\.meta|_preview.*\.png)$', 'date', SORT_DESC, 0, 1);
if (!empty($fileFoundList)) {
$attachmentFileNameTrunc = $line->doc_ref;
foreach ($fileFoundList as $fileFound) {
if (strstr($fileFound['name'], $objectFileName)) {
// skip native invoice pdfs (canelle)
// We want to retrieve an attachment representative of the supplier invoice, not a fake document generated by Dolibarr.
if ($line->doc_type == 'supplier_invoice') {
if ($fileFound['name'] === $objectFileName.'.pdf') {
if ($objectDirPath && empty($conf->cache['archiveFileList_notfound'][$attachmentFileKey])) {
$arrayofinclusion = array();
// If it is a supplier invoice, we want to use last uploaded file
$arrayofinclusion[] = '^'.preg_quote($objectFileName, '/').(($line->doc_type == 'supplier_invoice') ? '.+' : '').'\.pdf$';
$fileFoundPath = ''; // The path of last file found
$fileFoundList = dol_dir_list($objectDirPath.'/'.$objectFileName, 'files', 0, implode('|', $arrayofinclusion), '(\.meta|_preview.*\.png)$', 'date', SORT_DESC, 0, 1);
if (!empty($fileFoundList)) {
$attachmentFileNameTrunc = $line->doc_ref;
foreach ($fileFoundList as $fileFound) {
if (strstr($fileFound['name'], $objectFileName)) {
// skip native invoice pdfs (canelle)
// We want to retrieve an attachment representative of the supplier invoice, not a fake document generated by Dolibarr.
if ($line->doc_type == 'supplier_invoice') {
if ($fileFound['name'] === $objectFileName.'.pdf') {
continue;
}
} elseif ($fileFound['name'] !== $objectFileName.'.pdf') {
continue;
}
} elseif ($fileFound['name'] !== $objectFileName.'.pdf') {
continue;
}
$fileFoundPath = $objectDirPath.'/'.$objectFileName.'/'.$fileFound['name'];
if (file_exists($fileFoundPath)) {
$archiveFileList[$attachmentFileKey] = array(
'path' => $fileFoundPath,
'name' => $attachmentFileNameTrunc.'.pdf',
);
break;
$fileFoundPath = $objectDirPath.'/'.$objectFileName.'/'.$fileFound['name'];
if (file_exists($fileFoundPath)) {
$archiveFileList[$attachmentFileKey] = array(
'path' => $fileFoundPath,
'name' => $attachmentFileNameTrunc.'.pdf',
);
break;
}
}
}
}
if (empty($fileFoundPath)) {
// Use also a cache if no file were found
$conf->cache['archiveFileList_notfound'][$attachmentFileKey] = 1;
}
}
}
@@ -1683,10 +1724,15 @@ class AccountancyExport
print $output;
}
$conf->cache['archiveFileList_notfound'] = array();
$i = 0;
foreach ($objectLines as $line) {
if ($line->debit == 0 && $line->credit == 0) {
//unset($array[$line]);
} else {
$i++;
$date_creation = dol_print_date($line->date_creation, '%Y%m%d');
$date_document = dol_print_date($line->doc_date, '%Y%m%d');
$date_lettering = dol_print_date($line->date_lettering, '%Y%m%d');
@@ -1695,6 +1741,8 @@ class AccountancyExport
$refInvoice = '';
$invoice = null;
// TODO The fetch of invoice is just to get the ->id, ->ref (and ->ref_supplier for supplier invoice) so
// may be we can get them into the $objectLines and reuse a generic static objectinstead ?
if ($line->doc_type == 'customer_invoice') {
// Customer invoice
require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
@@ -1787,6 +1835,7 @@ class AccountancyExport
$attachmentFileKey = trim((string) $line->piece_num);
if (!isset($archiveFileList[$attachmentFileKey])) {
// We complete the $archiveFileList to add the file to the existing list (first entry was filled when function was called, we add here the next one)
$objectDirPath = '';
$objectFileName = dol_sanitizeFileName($line->doc_ref);
if ($line->doc_type == 'customer_invoice') {
@@ -1804,33 +1853,45 @@ class AccountancyExport
$objectDirPath .= '/' . rtrim(get_exdir($invoice->id, 2, 0, 0, $invoice, 'invoice_supplier'), '/');
}
}
$arrayofinclusion = array();
// If it is a supplier invoice, we want to use last uploaded file
$arrayofinclusion[] = '^'.preg_quote($objectFileName, '/').(($line->doc_type == 'supplier_invoice') ? '.+' : '').'\.pdf$';
$fileFoundList = dol_dir_list($objectDirPath.'/'.$objectFileName, 'files', 0, implode('|', $arrayofinclusion), '(\.meta|_preview.*\.png)$', 'date', SORT_DESC, 0, 1);
if (!empty($fileFoundList)) {
$attachmentFileNameTrunc = $line->doc_ref;
foreach ($fileFoundList as $fileFound) {
if (strstr($fileFound['name'], $objectFileName)) {
// skip native invoice pdfs (canelle)
// We want to retrieve an attachment representative of the supplier invoice, not a fake document generated by Dolibarr.
if ($line->doc_type == 'supplier_invoice') {
if ($fileFound['name'] === $objectFileName.'.pdf') {
if ($objectDirPath && empty($conf->cache['archiveFileList_notfound'][$attachmentFileKey])) {
$arrayofinclusion = array();
// If it is a supplier invoice, we want to use last uploaded file
$arrayofinclusion[] = '^'.preg_quote($objectFileName, '/').(($line->doc_type == 'supplier_invoice') ? '.+' : '').'\.pdf$';
$fileFoundPath = ''; // The path of last file found
$fileFoundList = dol_dir_list($objectDirPath.'/'.$objectFileName, 'files', 0, implode('|', $arrayofinclusion), '(\.meta|_preview.*\.png)$', 'date', SORT_DESC, 0, 1);
if (!empty($fileFoundList)) {
$attachmentFileNameTrunc = $line->doc_ref;
foreach ($fileFoundList as $fileFound) {
if (strstr($fileFound['name'], $objectFileName)) {
// skip native invoice pdfs (canelle)
// We want to retrieve an attachment representative of the supplier invoice, not a fake document generated by Dolibarr.
if ($line->doc_type == 'supplier_invoice') {
if ($fileFound['name'] === $objectFileName.'.pdf') {
continue;
}
} elseif ($fileFound['name'] !== $objectFileName.'.pdf') {
continue;
}
} elseif ($fileFound['name'] !== $objectFileName.'.pdf') {
continue;
}
$fileFoundPath = $objectDirPath.'/'.$objectFileName.'/'.$fileFound['name'];
if (file_exists($fileFoundPath)) {
$archiveFileList[$attachmentFileKey] = array(
'path' => $fileFoundPath,
'name' => $attachmentFileNameTrunc.'.pdf',
);
break;
$fileFoundPath = $objectDirPath.'/'.$objectFileName.'/'.$fileFound['name'];
if (file_exists($fileFoundPath)) {
$archiveFileList[$attachmentFileKey] = array(
'path' => $fileFoundPath,
'name' => $attachmentFileNameTrunc.'.pdf',
);
break;
}
}
}
}
if (empty($fileFoundPath)) {
// Use also a cache if no file were found
$conf->cache['archiveFileList_notfound'][$attachmentFileKey] = 1;
}
}
}
@@ -2691,7 +2752,7 @@ class AccountancyExport
$tab[] = substr($date, 3, 2);
$tab[] = substr($date, 0, 2);
$tab[] = $line->doc_ref;
//Conversion de chaine UTF8 en Latin9
// Convert the UTF-8 string in latin9
$tab[] = mb_convert_encoding(str_replace(' - Compte auxiliaire', '', $line->label_operation), "Windows-1252", 'UTF-8');
//Calcul de la longueur des numéros de comptes

View File

@@ -72,6 +72,11 @@ class AccountingAccount extends CommonObject
*/
public $rowid;
/**
* @var string Ref
*/
public $ref;
/**
* Date creation record (datec)
*

View File

@@ -1,6 +1,6 @@
<?php
/* Copyright (C) 2017-2022 OpenDSI <support@open-dsi.fr>
* Copyright (C) 2024-2025 MDW <mdeweerd@users.noreply.github.com>
* Copyright (C) 2024-2026 MDW <mdeweerd@users.noreply.github.com>
* Copyright (C) 2024-2025 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2024 Alexandre Janniaux <alexandre.janniaux@gmail.com>
* Copyright (C) 2025 Alexandre Spangaro <alexandre@inovea-conseil.com>
@@ -1323,7 +1323,7 @@ class AccountingJournal extends CommonObject
$element['blocks'][] = $lines_book;
}
} else {
// si TVA = 0, pousser les 2 lignes view/bookkeeping déjà constituées
// When VAT = 0, push the 2 lines view/bookkeeping already prepared
if ($type == 'view') {
$element['blocks'][] = $lines_view;
} elseif ($type == 'bookkeeping') {

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