# Fix: Protect from negative array index access
Negative array index access can happen when $i is 0.
While this raises a notice before PHP7.1 it would compare to the last
value in the string so it's invalid.
Detected with phan: PhanCompatibleNegativeStringOffset
htdocs/compta/paiement/class/paiement.class.php 115 PHPDoc type array<int, float> of property Paiement::$multicurrency_tx is not covariant with PHPDoc type float of overridden property CommonObject::$multicurrency_tx.
htdocs/compta/paiement/class/paiement.class.php 120 PHPDoc type array<int, string> of property Paiement::$multicurrency_code is not covariant with PHPDoc type string of overridden property CommonObject::$multicurrency_code.
htdocs/commande/class/commande.class.php 538 Property CommonObject::$origin (string) does not accept $this(Commande).
htdocs/commande/class/commande.class.php 675 Property CommonObject::$origin (string) does not accept $this(Commande).
htdocs/compta/facture/class/facture.class.php 2859 Property CommonObject::$origin (string) does not accept $this(Facture).
htdocs/compta/facture/class/facture.class.php 3378 Property CommonObject::$origin (string) does not accept $this(Facture).
htdocs/compta/facture/class/facture.class.php 3696 Property CommonObject::$origin (string) does not accept $this(Facture).
htdocs/expedition/class/expedition.class.php 1245 Property CommonObject::$origin (string) does not accept null.
htdocs/expedition/class/expedition.class.php 1438 Property CommonObject::$origin (string) does not accept null.
htdocs/expedition/class/expedition.class.php 2326 Property CommonObject::$origin (string) does not accept $this(Expedition).
htdocs/expedition/class/expedition.class.php 2487 Property CommonObject::$origin (string) does not accept $this(Expedition).
htdocs/fourn/class/fournisseur.commande.class.php 1283 Property CommonObject::$origin (string) does not accept $this(CommandeFournisseur).
htdocs/fourn/class/fournisseur.commande.class.php 2278 Property CommonObject::$origin (string) does not accept $this(CommandeFournisseur).
htdocs/fourn/class/fournisseur.facture.class.php 1858 Property CommonObject::$origin (string) does not accept $this(FactureFournisseur).
htdocs/fourn/class/fournisseur.facture.class.php 1999 Property CommonObject::$origin (string) does not accept $this(FactureFournisseur).
htdocs/fourn/commande/dispatch.php 435 Property CommonObject::$origin (string) does not accept CommandeFournisseur.
htdocs/fourn/commande/dispatch.php 482 Property CommonObject::$origin (string) does not accept CommandeFournisseur.
htdocs/fourn/commande/dispatch.php 489 Property CommonObject::$origin (string) does not accept CommandeFournisseur.
htdocs/reception/class/reception.class.php 582 Property CommonObject::$origin (string) does not accept $this(Reception).
htdocs/reception/class/reception.class.php 1081 Property CommonObject::$origin (string) does not accept null.
htdocs/reception/class/reception.class.php 1674 Property CommonObject::$origin (string) does not accept $this(Reception).
htdocs/reception/class/reception.class.php 1833 Property CommonObject::$origin (string) does not accept $this(Reception).
htdocs/reception/class/reception.class.php 1967 Property CommonObject::$origin (string) does not accept $this(Reception).
htdocs/takepos/invoice.php 332 Property CommonObject::$origin (string) does not accept Facture.
htdocs/takepos/invoice.php 336 Property CommonObject::$origin (string) does not accept Facture.
* qual: phpstan for htdocs/compta/tva/class/paymentvat.class.php
htdocs/compta/tva/class/paymentvat.class.php 540 Property CommonObject::$tms (int) does not accept string.
* qual: phpstan - various "$enabled (int) does not accept bool."
htdocs/core/boxes/box_actions.php 54 Property box_actions::$enabled (int) does not accept bool.
htdocs/core/boxes/box_actions_future.php 54 Property box_actions_future::$enabled (int) does not accept bool.
htdocs/core/boxes/box_activity.php 53 Property box_activity::$enabled (int) does not accept string.
* qual: phpstan for htdocs/core/boxes/box_activity.php
htdocs/core/boxes/box_activity.php 53 Property box_activity::$enabled (int) does not accept string.
* qual: phpstan for htdocs/core/modules/modTakePos.class.php
htdocs/core/modules/modTakePos.class.php 284 Property Societe::$code_client (string) does not accept int.
htdocs/core/modules/modTakePos.class.php 285 Property Societe::$code_fournisseur (string) does not accept int.
* NEW contact type on auto add contributor
* ADD second option
* RESTORE ticket module for external and fix constant
* GetDolGlobalInt
* Update ticket.class.php
---------
Co-authored-by: Benjamin Falière <benjamin.faliere@altairis.fr>
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* Fix: Allow new & old names to check if module is loaded.
# Fix: Allow new & old names to check if module is loaded.
The method 'isModEnabled()' was already checking some modules for
their new name, but after transitioning Conf this was not working
for 'member'. Now testing for both names as 'Conf' can handle
both and deprecation will be reported.
Several issues were discovered after removing deprecated values.
* Update functions.lib.php
---------
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
* Use address, town, zip & email from CommonPeople
* Use element & table_element from CommonObject
* Updated PHPDoc
* Deleted unused properties
* Revert "Use element & table_element from CommonObject"
This reverts commit 88a06164d1.
---------
Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
# Qual: Optimisation in load criteria (dol_dir_list)
By moving the "$sortcriteria" conditions into the load conditions, the
comparison between strings is less frequent.
The original test can probably even be removed as it is part of load_*.
The only side-effect that I can see is with the hook, but I think
in theory there should not be a negative side-effect, only a positive
one as this tells the hook to load the data we need without relying
on the hook to make the proper interpretation of the searchcriteria.