* Add hook stripeWebhookEvent in Stripe IPN for external modules
Allow external modules to intercept and handle Stripe webhook events
via the standard Dolibarr hook system. The hook is called before the
built-in event processing, and modules can return >0 to stop default
processing if they handled the event entirely.
Hook context: stripeipn
Hook method: stripeWebhookEvent
Parameters: event (full Stripe event), servicestatus, service
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Fix phpstan: instantiate HookManager before use in ipn.php
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* fix: use ob_end_clean() instead of ob_end_flush() in readfileLowMemory() (fixes#37239)
* fix: use robust ob level cleanup loop per hregis review
---------
Co-authored-by: f-hoedl <hoefla14@htl-kaindorf.ac.at>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* fix: add class existence check after failed include in barcode.php (fixes#37249)
* fix: move continue into catch block per reviewer feedback
* fix: add continue in catch block per hregis review
* fix: replace invalid continue with $error++ in printsheet.php catch block
---------
Co-authored-by: f-hoedl <hoefla14@htl-kaindorf.ac.at>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* fix: add class existence check after failed include in barcode.php (fixes#37249)
* fix: move continue into catch block per reviewer feedback
* fix: add continue in catch block per hregis review
* fix: replace invalid continue with $error++ in printsheet.php catch block
---------
Co-authored-by: f-hoedl <hoefla14@htl-kaindorf.ac.at>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* Add Hook for adapting virtual stock in replenish screen
Currently it is only possible to hook in the loadvirtualstock hook to adapt the virtual stock by external modules. The newer version of the replenish screen doesn't use this hook anymore (by loading stock from product object) as it now uses faster sql queries. Therefore the external module cannot adapt this area and there is an missmatch of the view in replenish.php and the stock tab of the product.
* fix phan warning
- when filtering on inactive services with pagination, clicking on 'next page' will lose filter for 'inactive' status.
- when filtered on 'active / expired' or 'active / not expired', the '(not) expired' part was lost after navigating to next/prev page
* Fix: http_response_code type
# Fix: http_response_code type
- Fixed http_response_code type
* Fix: Initialize refcashcontrol variable
Initialize refcashcontrol variable to 0 to ensure it is defined before use in the invoice.php script.
* Fix: Remove redundant check for BILL_SENTBYMAIL & $object type
# Fix: Remove redundant check for BILL_SENTBYMAIL & $object type
- Removed redundant check for BILL_SENTBYMAIL
* Fix: Correct date calculation for full year cash control
# Fix: Correct date calculation for full year cash control
Calculates the start date by subtracting one year from the end date.
* Qual: Add default batch value for invoice processing
# Qual: Add default batch value for invoice processing
Adds default empty string for the batch variable.
---------
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* verify if Hierarchical Responsible is allowed to validate holiday/expense
* Add messages for holiday and expense report approval
* Add French translations for approval messages
# Qual: Update codespell skip pattern to exclude blockedlog demo archives files
The skip pattern in the pyproject.toml file has been updated to exclude additional files, specifically those in the dev/initdemo/documents_demo/blockedlog/archives/ directory.