* redoing PR Api objectlinks #33738
* loading objectlinks api from main api folder
* bringing $FIELDS up to develop branch standard
* trying to tell phan the expected array types
* phan return and input type specifications
* trying to fix 'Method ObjectLink::_makeobject() should return int but return statement is missing.'
* trying to return an ObjecTLink
* get returns an ObjectLink object
* making sure that function _makeobject always has an return
* making sure deleteByValues always has a return statement
* remove empty line
* making sure getByValues always has a return value
* trying to fix phan for _validate
* no < around objectlink
* trying to fix some phan and phan-stan errors
* public variable target should be fk_target
* making TRIGGER_PREFIX more like in core/class/commonobject.class.php
* trying to save and use the notrigger value
* typecast objectlink fk_source and fk_target to string in the hope that they are later made correctly to int
* whitespace to trigger a build of my branch
* back to being int - because that is what they are
* trying to typecast
* trying to help PHPStan to validate fk_source and fk_target
* trying to use the same way as are used
* splitting over multiple lines
* Fix: update ObjectLink return type in API methods
### FIX: Update ObjectLink return type in API methods
- Updated the return type of several methods from `ObjectLink` to `Object` to reflect a return type compatible with Luracast/Restler
* fix: refactor field setting in ObjectLinks class
# Fix: Refactor field setting in ObjectLinks class
- Removed the static `$INTFIELDS` array and moved its logic to a new private
method `_setObjectLinkField`.
- Updated `create`, `getByValues`, and `deleteByValues` methods to use
`_setObjectLinkField` for setting fields.
- Cleaned up the code by removing redundant field validation and type casting
logic.
* noting that relation type can both be string and null
* escaping strings before parsing them to the database
* -> not global
* trying to fix phpstan errors by flipping so the string part is first
---------
Co-authored-by: Jon Bendtsen <xcodeauthor@jonb.dk>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
Co-authored-by: MDW <mdeweerd@users.noreply.github.com>
* FIX : Wrong entity to download document
* MODIFICATION : Remplacement de l'ID d'entité par l'objet dans les fonctions de gestion des fichiers pour une meilleure cohérence.
* Update files.lib.php
* Update files.lib.php
---------
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* Rounding unit price - line discount before applying quantity
On some systems, the line total price is calculated based on the discount applied on the unit price first, giving a new rounded unit price, and then multiplied by the quantity. Whereas the current way Dolibarr acts is to apply the discount on the subtotal (unit price * quantity).
Using an extra OTHER SETUP constant 'MAIN_ROUND_UNIT_PRICE_BEFORE_QTY', we can choose between the two ways.
* Update price.lib.php
* Update price.lib.php
---------
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* linking member subscription contribution <-> proposal, order and invoice
This can both be done manually from an existing proposal/order/invoice to a subscription created without creating an invoice. I use this when we sell memberships as part of registration for our membership classes.
The link will also be shown on the invoice that can be created as part of the subscription contribution creation.
These links show up in the json from the API on proposals, orders and invoices. The subscription does not show anything. It is currently unknown if the API can do this link or it will have to be done manually in the GUI.
* Update html.form.class.php
---------
Co-authored-by: Jon Bendtsen <xcodeauthor@jonb.dk>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>