Commit graph

151928 commits

Author SHA1 Message Date
Jon Bendtsen
c0d303c19d
Fix #38225 webportal member is only in top menu, not on front page (#38257)
Co-authored-by: Jon Bendtsen <jonbendtsen@jonb.dk>
2026-05-18 02:44:08 +02:00
Laurent Destailleur
f0234fa318 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-05-18 02:26:54 +02:00
Laurent Destailleur
76821f3c1d Merge branch '22.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-05-18 02:26:17 +02:00
Jon Bendtsen
6f5bf5c935
FIX #37327 There is no product description displayed in version 22 (#38267)
Co-authored-by: Jon Bendtsen <jonbendtsen@jonb.dk>
2026-05-18 02:22:16 +02:00
Yoan Mollard
8754884a24
fix: Inverted logical condition for showing TVAIsNotUsed only in crabe template (#38271)
Fixes bug introduced in #8e005b19c02435817ecf8207064fd8340245dcd5
2026-05-18 01:55:24 +02:00
Jon Bendtsen
29aa7648e8
Fix api post member subscription returns negative one (#38280)
* Fix #38278 POST to API /members/{id}/subscriptions returns -1

* return the id of the new subscription

---------

Co-authored-by: Jon Bendtsen <jonbendtsen@jonb.dk>
2026-05-18 01:41:32 +02:00
Joachim Kueter
6c342ef754
Fix accountancy_code_*_general stores '-1' from empty dropdown option (#38282)
The empty option in the supplier/customer general account dropdown gets
value='-1' from Form::selectarray. When the form is submitted, GETPOST
returns '-1' and Societe::create()/update() stores it as a string because
the SQL builder's !empty() check accepts '-1' as truthy.

The bookkeeping export in purchasesjournal.php and sellsjournal.php then
uses '-1' as the account code (only bankjournal.php has a != '-1' guard)
and the transfer fails.

Normalize '-1' to '' next to the existing trim() in create() and update()
for both accountancy_code_customer_general and accountancy_code_supplier_general.
The existing SQL !empty() checks then write NULL as intended, and rows
that already contain '-1' self-heal on the next update.
2026-05-18 01:34:28 +02:00
Laurent Destailleur
57d0be7dc9 Fix packaging 23.0.3 2026-05-17 18:19:40 +02:00
Laurent Destailleur
a7af2b7a69 Fix packaging 2026-05-17 18:10:33 +02:00
Laurent Destailleur
8172b31c56 Debug makepack scripts 2026-05-17 16:31:00 +02:00
Laurent Destailleur
f5776c68e1 Prepare 23.0.3 2026-05-17 15:34:44 +02:00
Laurent Destailleur
0032e0becc Fix version 2026-05-17 15:29:17 +02:00
Laurent Destailleur
34ab5bcc33 Prepare v23 2026-05-17 15:28:20 +02:00
Laurent Destailleur
194c81ff8f Doc 2026-05-17 14:56:38 +02:00
Joachim Kueter
1eba22f29b
Fix: skip approver "not enough days" warning for leave types that don't use the balance counter (#38213)
The validator notification email warned about insufficient balance regardless
of whether the leave type has affect=1 in c_holiday_types. For types like
overtime compensation or unpaid leave (affect=0), getCPforUser() always
returns 0 and the warning fires on every request.

Same getTypes(1, 1) filter that the balance display in the form uses.
2026-05-13 14:36:36 +02:00
Ni0rd
f4fe44518b
Fix #37962: TakePos credit note refund payment not recorded and invoice not set as paid (#37963)
For credit notes, getRemainToPay() returns a negative value. The previous
condition ($remaintopay > 0) skipped payment creation entirely, leaving the
credit note in an unpaid/open state after TakePos validation.
2026-05-13 12:42:05 +02:00
Sylvain Legrand
bef782ca09
Add message pdf generated on project (#38197) 2026-05-13 12:34:57 +02:00
Laurent Destailleur
0d24c86dd5 Fix warning 2026-05-12 10:19:39 +02:00
Laurent Destailleur
782c674156 Add option to allow registration even if closed. 2026-05-11 19:45:04 +02:00
Laurent Destailleur
3d4b57cc47 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-05-11 19:12:57 +02:00
Laurent Destailleur
036b6151a7 Trans 2026-05-11 19:10:29 +02:00
Regis Houssin
fc3a1cc0f0
FIX #37552 (#38073)
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-05-11 02:16:08 +02:00
Laurent Destailleur
45ab754c0c Trans 2026-05-11 00:00:41 +02:00
Laurent Destailleur
d53600ae85 Doc 2026-05-10 23:54:14 +02:00
Laurent Destailleur
4a6b03221d Fix regression 2026-05-10 23:53:11 +02:00
Laurent Destailleur
abc09cd3df Fix css 2026-05-10 18:52:43 +02:00
Laurent Destailleur
58a21ebf4f FIX selected default value ko on select_produits_fournisseurs_list() 2026-05-10 18:42:36 +02:00
Laurent Destailleur
9a59213296 FIX selected default value ko on select_produits_fournisseurs_list() 2026-05-10 18:42:15 +02:00
Laurent Destailleur
f6df1be26e Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-05-10 17:00:44 +02:00
Laurent Destailleur
078dee3c81 Fix use of canvas template 2026-05-10 17:00:27 +02:00
daGrumpf
b2b4fc0ca9
FIX: propagate fk_warehouse from BOM/MO to production lines in createProduction() and processBOM() (#38147)
* FIX: propagate fk_warehouse from BOM line in processBOM()

When creating MO lines from a BOM, the fk_warehouse defined on each
BOM line was not copied to the corresponding MO line. This caused
produceandconsumeall() to fail with a stock movement error when a
warehouse is set on BOM lines but not on the MO itself.

* FIX: propagate fk_warehouse from BOM line in processBOM()

When creating MO lines from a BOM, the fk_warehouse defined on each
BOM line was not copied to the corresponding MO line. This caused
produceandconsumeall() to fail with a stock movement error when a
warehouse is set on BOM lines but not on the MO itself.

* Update mo.class.php

---------

Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2026-05-10 13:58:59 +02:00
Regis Houssin
e3c93d2b1d
FIX #38131 (#38140)
* FIX #38131

* FIX pre-commit error
2026-05-09 23:13:22 +02:00
Laurent Destailleur
472f649882 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-05-07 13:31:43 +02:00
Laurent Destailleur
16f5965983 Merge branch '22.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-05-07 13:31:30 +02:00
Laurent Destailleur
d7bdd3256b Fix typo (fix in different direction than #38094) 2026-05-07 13:19:07 +02:00
Laurent Destailleur
efb398ee03 Merge branch '22.0' of git@github.com:Dolibarr/dolibarr.git into 22.0 2026-05-07 13:07:29 +02:00
Laurent Destailleur
c0fb6bf322 Fix typo (fix in different direction than #38094) 2026-05-07 13:07:11 +02:00
atm-lucas
eb5e550490
Fix: reset fk_code_ventilation on invoice clone (#38084) 2026-05-07 12:58:22 +02:00
Rémi Champlon
671f2fc9df
FIX : draft invoice paid when add absolute discount == remain to pay (#38104)
* Fix set paid invoice on status draft when add absolute discount == remain to pay

* fix
2026-05-07 10:11:22 +02:00
Sylvain Legrand
b9507a980c
Fix: scope file picker click to the just-shown attach-new-file form (#38114)
In FormFile::list_of_documents(), when the user clicks the "+ New" button to reveal the upload form (showhideaddbutton), the JS handler triggers jQuery("input[type='file']").click(). This selector matches every <input type="file"> on the page, opening the OS file picker once per match. Users with multiple file inputs in the DOM (e.g. another hidden upload form, an editor's media browser, modules with their own attachers) have to dismiss the file dialog several times before being able to drag-drop or browse normally.

Fix: scope the selector to the form that was just shown:

- jQuery("input[type='file']").click();
+ jQuery(".divattachnewfile input[type='file']").first().click();
No regression on pages with a single .divattachnewfile. Reproduces on any *document.php tab where a hidden second <input type="file"> is present.
2026-05-07 10:04:41 +02:00
Pierre Ardoin
3fa5112ca8
FIX #37649 (#38101)
* Update fournisseur.orderline.class.php

* Update fournisseur.commande.class.php

* Update fournisseur.commande.class.php

* Update fournisseur.commande.class.php

* Update fournisseur.commande.class.php

* Update fournisseur.commande.class.php

* Update fournisseur.commande.class.php
2026-05-06 22:36:24 +02:00
Laurent Destailleur
1933712fc7 Fix value show in info page 2026-05-05 14:44:11 +02:00
Laurent Destailleur
da47038124 Fix alert on blacklisted module when no message provided 2026-05-05 13:41:18 +02:00
Laurent Destailleur
cb7debca53 Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-05-05 01:41:43 +02:00
Laurent Destailleur
643637dc07 Fix missing hooks 2026-05-05 01:41:27 +02:00
Laurent Destailleur
eeb7e8cb5d Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-05-04 18:21:25 +02:00
Laurent Destailleur
3de2fa834a Fix typo 2026-05-04 18:20:25 +02:00
Regis Houssin
4861151c92
FIX #38074 (#38075) 2026-05-04 13:10:20 +02:00
ATM-NicolasV
7a572cd1d3
FIX product price.php: preserve default_vat_code and tva_npr when auto-creating initial product_price row (#38034)
When a product has no row in llx_product_price (typical for products
imported in bulk where only llx_product was populated), price.php
auto-creates an initial history line on first display of the price tab
(branch starting at "We must have at least one initial line").

The two updatePrice() calls in this branch omitted parameter 11
(\$newdefaultvatcode) which defaults to ''. In Product::updatePrice()
the SQL then writes default_vat_code = NULL in BOTH llx_product and
the new llx_product_price row, silently wiping a correctly-stored VAT
code on every first display.

Symptom: "ErrorBadValueForParamNotAString" rendered next to selling
price/min selling price (because \$langs->trans(\$object->price_base_type)
is called with NULL when the row is freshly created with empty fields),
and default_vat_code persistently reset to NULL until the user manually
re-saves through the form.

Fix: forward \$object->default_vat_code (and \$object->tva_npr for the
non-multiprice branch) to updatePrice() so the auto-init preserves the
product's VAT configuration.
2026-05-04 12:57:51 +02:00
Laurent Destailleur
b513d57ffd Merge branch '23.0' of git@github.com:Dolibarr/dolibarr.git into 23.0 2026-05-03 22:17:00 +02:00