diff --git a/ajax_dataload.php b/ajax_dataload.php index 704c3b0cf..6e4bfd3dc 100755 --- a/ajax_dataload.php +++ b/ajax_dataload.php @@ -78,7 +78,7 @@ if (!empty($query)) { // Allineamento delle righe $align = []; - $row = $rows[0] ?: []; + $row = isset($rows[0]) ? $rows[0] : []; foreach ($row as $field => $value) { $value = trim($value); diff --git a/ajax_select.php b/ajax_select.php index 166fc9e29..ea0f20a45 100755 --- a/ajax_select.php +++ b/ajax_select.php @@ -27,7 +27,7 @@ if (!isset($resource)) { // Opzioni di selezione sugli elementi $options = filter('options') ?: []; - $options_compatibility = $_SESSION['superselect'] ?: []; + $options_compatibility = session_get('superselect', []); $options = array_merge($options_compatibility, $options); // Preselezione su $elements dichiarato da file precedente diff --git a/include/manager.php b/include/manager.php index d5075fdce..038bd776b 100755 --- a/include/manager.php +++ b/include/manager.php @@ -176,7 +176,7 @@ if (!empty($type) && $type != 'menu' && $type != 'custom') { foreach ($bulk as $key => $value) { $text = is_array($value) ? $value['text'] : $value; - $data = is_array($value) ? $value['data'] : []; + $data = is_array($value['data']) ? $value['data'] : []; $extra = []; foreach ($data as $k => $v) { $extra[] = 'data-'.$k.'="'.prepareToField(\HTMLBuilder\HTMLBuilder::replace($v)).'"'; diff --git a/modules/anagrafiche/edit.php b/modules/anagrafiche/edit.php index e0f3faac7..83a5f9821 100755 --- a/modules/anagrafiche/edit.php +++ b/modules/anagrafiche/edit.php @@ -47,6 +47,7 @@ if (!$is_cliente) { } } +$nazione_anagrafica = $anagrafica->sedeLegale->nazione; ?>
@@ -129,7 +130,7 @@ if (!$is_cliente) { $help_codice_destinatario .= ' '.tr("Non è necessario comunicare il proprio codice destinatario ai fornitori in quanto è sufficiente che questo sia registrato nel portale del Sistema Di Interscambio dell'Agenzia Entrate (SDI)").'.'; } ?> - {[ "type": "text", "label": "", "name": "codice_destinatario", "required": 0, "class": "text-center text-uppercase alphanumeric-mask", "value": "$codice_destinatario$", "maxlength": , "help": "", "readonly": "sedeLegale->nazione->iso2 != 'IT'); ?>" ]} + {[ "type": "text", "label": "", "name": "codice_destinatario", "required": 0, "class": "text-center text-uppercase alphanumeric-mask", "value": "$codice_destinatario$", "maxlength": , "help": "", "readonly": "iso2 != 'IT' : 0); ?>" ]}
diff --git a/modules/contratti/src/Components/Articolo.php b/modules/contratti/src/Components/Articolo.php index f94871339..d11f2712a 100755 --- a/modules/contratti/src/Components/Articolo.php +++ b/modules/contratti/src/Components/Articolo.php @@ -20,8 +20,6 @@ namespace Modules\Contratti\Components; use Common\Components\Article; -use Modules\Articoli\Articolo as Original; -use Modules\Contratti\Contratto; class Articolo extends Article { @@ -30,16 +28,4 @@ class Articolo extends Article public $movimenta_magazzino = false; protected $table = 'co_righe_contratti'; - - /** - * Crea un nuovo articolo collegato ad un contratto. - * - * @return self - */ - public static function build(Contratto $contratto, Original $articolo) - { - $model = parent::build($contratto, $articolo); - - return $model; - } } diff --git a/modules/contratti/src/Components/Descrizione.php b/modules/contratti/src/Components/Descrizione.php index 70da05f11..4e4614f75 100755 --- a/modules/contratti/src/Components/Descrizione.php +++ b/modules/contratti/src/Components/Descrizione.php @@ -20,23 +20,10 @@ namespace Modules\Contratti\Components; use Common\Components\Description; -use Modules\Contratti\Contratto; class Descrizione extends Description { use RelationTrait; protected $table = 'co_righe_contratti'; - - /** - * Crea una nuova riga collegata ad un contratto. - * - * @return self - */ - public static function build(Contratto $contratto) - { - $model = parent::build($contratto); - - return $model; - } } diff --git a/modules/contratti/src/Components/Riga.php b/modules/contratti/src/Components/Riga.php index 9734b254d..3553883ad 100755 --- a/modules/contratti/src/Components/Riga.php +++ b/modules/contratti/src/Components/Riga.php @@ -20,23 +20,10 @@ namespace Modules\Contratti\Components; use Common\Components\Row; -use Modules\Contratti\Contratto; class Riga extends Row { use RelationTrait; protected $table = 'co_righe_contratti'; - - /** - * Crea una nuova riga collegata ad un contratto. - * - * @return self - */ - public static function build(Contratto $contratto) - { - $model = parent::build($contratto); - - return $model; - } } diff --git a/modules/contratti/src/Components/Sconto.php b/modules/contratti/src/Components/Sconto.php index a40efa1c0..3b112031e 100755 --- a/modules/contratti/src/Components/Sconto.php +++ b/modules/contratti/src/Components/Sconto.php @@ -20,23 +20,10 @@ namespace Modules\Contratti\Components; use Common\Components\Discount; -use Modules\Contratti\Contratto; class Sconto extends Discount { use RelationTrait; protected $table = 'co_righe_contratti'; - - /** - * Crea un nuovo sconto collegato ad un contratto. - * - * @return self - */ - public static function build(Contratto $contratto) - { - $model = parent::build($contratto); - - return $model; - } } diff --git a/modules/ddt/src/Components/Articolo.php b/modules/ddt/src/Components/Articolo.php index 4fc05989c..e3ddb82b6 100755 --- a/modules/ddt/src/Components/Articolo.php +++ b/modules/ddt/src/Components/Articolo.php @@ -29,16 +29,4 @@ class Articolo extends Article protected $table = 'dt_righe_ddt'; protected $serialRowID = 'ddt'; - - /** - * Crea un nuovo articolo collegato ad una ddt. - * - * @return self - */ - public static function build(DDT $ddt, Original $articolo) - { - $model = parent::build($ddt, $articolo); - - return $model; - } } diff --git a/modules/ddt/src/Components/Descrizione.php b/modules/ddt/src/Components/Descrizione.php index aee3455b7..8e363fd7a 100755 --- a/modules/ddt/src/Components/Descrizione.php +++ b/modules/ddt/src/Components/Descrizione.php @@ -27,16 +27,4 @@ class Descrizione extends Description use RelationTrait; protected $table = 'dt_righe_ddt'; - - /** - * Crea una nuova riga collegata ad una ddt. - * - * @return self - */ - public static function build(DDT $ddt) - { - $model = parent::build($ddt); - - return $model; - } } diff --git a/modules/ddt/src/Components/Riga.php b/modules/ddt/src/Components/Riga.php index 5007c2d81..f96f85b77 100755 --- a/modules/ddt/src/Components/Riga.php +++ b/modules/ddt/src/Components/Riga.php @@ -27,16 +27,4 @@ class Riga extends Row use RelationTrait; protected $table = 'dt_righe_ddt'; - - /** - * Crea una nuova riga collegata ad una ddt. - * - * @return self - */ - public static function build(DDT $ddt) - { - $model = parent::build($ddt); - - return $model; - } } diff --git a/modules/ddt/src/Components/Sconto.php b/modules/ddt/src/Components/Sconto.php index eb2bd5afb..454986066 100755 --- a/modules/ddt/src/Components/Sconto.php +++ b/modules/ddt/src/Components/Sconto.php @@ -27,16 +27,4 @@ class Sconto extends Discount use RelationTrait; protected $table = 'dt_righe_ddt'; - - /** - * Crea un nuovo sconto collegato ad un ddt. - * - * @return self - */ - public static function build(DDT $ddt) - { - $model = parent::build($ddt); - - return $model; - } } diff --git a/modules/ddt/src/DDT.php b/modules/ddt/src/DDT.php index 8582ffa00..f86470dc2 100755 --- a/modules/ddt/src/DDT.php +++ b/modules/ddt/src/DDT.php @@ -20,7 +20,7 @@ namespace Modules\DDT; use Auth; -use Common\Components\Description; +use Common\Components\Component; use Common\Document; use Modules\Anagrafiche\Anagrafica; use Traits\RecordTrait; @@ -204,7 +204,7 @@ class DDT extends Document * Effettua un controllo sui campi del documento. * Viene richiamato dalle modifiche alle righe del documento. */ - public function triggerEvasione(Description $trigger) + public function triggerEvasione(Component $trigger) { parent::triggerEvasione($trigger); diff --git a/modules/fatture/src/Components/Articolo.php b/modules/fatture/src/Components/Articolo.php index a5999023f..7b0926de9 100755 --- a/modules/fatture/src/Components/Articolo.php +++ b/modules/fatture/src/Components/Articolo.php @@ -20,9 +20,10 @@ namespace Modules\Fatture\Components; use Common\Components\Article; -use Modules\Articoli\Articolo as Original; -use Modules\Fatture\Fattura; +/** + * @extends Article<\Modules\Fatture\Fattura> + */ class Articolo extends Article { use RelationTrait; @@ -30,18 +31,6 @@ class Articolo extends Article protected $table = 'co_righe_documenti'; protected $serialRowID = 'documento'; - /** - * Crea un nuovo articolo collegato ad una fattura. - * - * @return self - */ - public static function build(Fattura $fattura, Original $articolo) - { - $model = parent::build($fattura, $articolo); - - return $model; - } - public function movimenta($qta) { if (!$this->movimenta_magazzino) { diff --git a/modules/fatture/src/Components/Descrizione.php b/modules/fatture/src/Components/Descrizione.php index 5e5ce32f9..7e8e9c80a 100755 --- a/modules/fatture/src/Components/Descrizione.php +++ b/modules/fatture/src/Components/Descrizione.php @@ -20,23 +20,13 @@ namespace Modules\Fatture\Components; use Common\Components\Description; -use Modules\Fatture\Fattura; +/** + * @extends Description<\Modules\Fatture\Fattura> + */ class Descrizione extends Description { use RelationTrait; protected $table = 'co_righe_documenti'; - - /** - * Crea una nuova riga collegata ad una fattura. - * - * @return self - */ - public static function build(Fattura $fattura) - { - $model = parent::build($fattura); - - return $model; - } } diff --git a/modules/fatture/src/Components/Riga.php b/modules/fatture/src/Components/Riga.php index ba4259f1e..863fe70b5 100755 --- a/modules/fatture/src/Components/Riga.php +++ b/modules/fatture/src/Components/Riga.php @@ -20,23 +20,13 @@ namespace Modules\Fatture\Components; use Common\Components\Row; -use Modules\Fatture\Fattura; +/** + * @extends Row<\Modules\Fatture\Fattura> + */ class Riga extends Row { use RelationTrait; protected $table = 'co_righe_documenti'; - - /** - * Crea una nuova riga collegata ad una fattura. - * - * @return self - */ - public static function build(Fattura $fattura) - { - $model = parent::build($fattura); - - return $model; - } } diff --git a/modules/fatture/src/Components/Sconto.php b/modules/fatture/src/Components/Sconto.php index f0448cbd0..521a5a6be 100755 --- a/modules/fatture/src/Components/Sconto.php +++ b/modules/fatture/src/Components/Sconto.php @@ -20,23 +20,13 @@ namespace Modules\Fatture\Components; use Common\Components\Discount; -use Modules\Fatture\Fattura; +/** + * @extends Discount<\Modules\Fatture\Fattura> + */ class Sconto extends Discount { use RelationTrait; protected $table = 'co_righe_documenti'; - - /** - * Crea un nuovo sconto collegato ad una fattura. - * - * @return self - */ - public static function build(Fattura $fattura) - { - $model = parent::build($fattura); - - return $model; - } } diff --git a/modules/interventi/src/Components/Articolo.php b/modules/interventi/src/Components/Articolo.php index 425ca0eae..4d280297d 100755 --- a/modules/interventi/src/Components/Articolo.php +++ b/modules/interventi/src/Components/Articolo.php @@ -29,14 +29,4 @@ class Articolo extends Article protected $table = 'in_righe_interventi'; protected $serialRowID = 'intervento'; - - /** - * Crea una nuova riga collegata ad un intervento. - * - * @return self - */ - public static function build(Intervento $intervento, Original $articolo) - { - return parent::build($intervento, $articolo); - } } diff --git a/modules/interventi/src/Components/Riga.php b/modules/interventi/src/Components/Riga.php index acf8a326a..ed16e9093 100755 --- a/modules/interventi/src/Components/Riga.php +++ b/modules/interventi/src/Components/Riga.php @@ -27,16 +27,4 @@ class Riga extends Row use RelationTrait; protected $table = 'in_righe_interventi'; - - /** - * Crea una nuova riga collegata ad un intervento. - * - * @return self - */ - public static function build(Intervento $intervento) - { - $model = parent::build($intervento); - - return $model; - } } diff --git a/modules/interventi/src/Components/Sconto.php b/modules/interventi/src/Components/Sconto.php index 5b7eeeb63..42a0a7c6d 100755 --- a/modules/interventi/src/Components/Sconto.php +++ b/modules/interventi/src/Components/Sconto.php @@ -27,18 +27,4 @@ class Sconto extends Discount use RelationTrait; protected $table = 'in_righe_interventi'; - - /** - * Crea un nuovo sconto collegata ad un intervento. - * - * @return self - */ - public static function build(Intervento $intervento) - { - $model = parent::build($intervento); - - $model->prezzo_unitario = 0; - - return $model; - } } diff --git a/modules/interventi/src/Components/Sessione.php b/modules/interventi/src/Components/Sessione.php index 01d1bb4c7..ff7ff7e49 100755 --- a/modules/interventi/src/Components/Sessione.php +++ b/modules/interventi/src/Components/Sessione.php @@ -399,7 +399,7 @@ class Sessione extends Model */ public function getMarginePercentualeAttribute() { - return (1 - ($this->spesa / $this->imponibile)) * 100; + return $this->imponibile ? (1 - ($this->spesa / $this->imponibile)) * 100 : 100; } public function getIvaIndetraibileAttribute() diff --git a/modules/ordini/src/Components/Articolo.php b/modules/ordini/src/Components/Articolo.php index 062f5b5e8..ddbb77774 100755 --- a/modules/ordini/src/Components/Articolo.php +++ b/modules/ordini/src/Components/Articolo.php @@ -31,16 +31,4 @@ class Articolo extends Article protected $table = 'or_righe_ordini'; protected $serialRowID = 'ordine'; - - /** - * Crea un nuovo articolo collegato ad una ordine. - * - * @return self - */ - public static function build(Ordine $ordine, Original $articolo) - { - $model = parent::build($ordine, $articolo); - - return $model; - } } diff --git a/modules/ordini/src/Components/Descrizione.php b/modules/ordini/src/Components/Descrizione.php index a57455f4d..a96348410 100755 --- a/modules/ordini/src/Components/Descrizione.php +++ b/modules/ordini/src/Components/Descrizione.php @@ -27,16 +27,4 @@ class Descrizione extends Description use RelationTrait; protected $table = 'or_righe_ordini'; - - /** - * Crea una nuova riga collegata ad una ordine. - * - * @return self - */ - public static function build(Ordine $ordine) - { - $model = parent::build($ordine); - - return $model; - } } diff --git a/modules/ordini/src/Components/Riga.php b/modules/ordini/src/Components/Riga.php index 46f4131fa..04323e0a5 100755 --- a/modules/ordini/src/Components/Riga.php +++ b/modules/ordini/src/Components/Riga.php @@ -27,16 +27,4 @@ class Riga extends Row use RelationTrait; protected $table = 'or_righe_ordini'; - - /** - * Crea una nuova riga collegata ad una ordine. - * - * @return self - */ - public static function build(Ordine $ordine) - { - $model = parent::build($ordine); - - return $model; - } } diff --git a/modules/ordini/src/Components/Sconto.php b/modules/ordini/src/Components/Sconto.php index ebb3d3bbe..21affb2ba 100755 --- a/modules/ordini/src/Components/Sconto.php +++ b/modules/ordini/src/Components/Sconto.php @@ -27,16 +27,4 @@ class Sconto extends Discount use RelationTrait; protected $table = 'or_righe_ordini'; - - /** - * Crea un nuovo sconto collegato ad un ordine. - * - * @return self - */ - public static function build(Ordine $ordine) - { - $model = parent::build($ordine); - - return $model; - } } diff --git a/modules/preventivi/src/Components/Articolo.php b/modules/preventivi/src/Components/Articolo.php index 647879739..594558065 100755 --- a/modules/preventivi/src/Components/Articolo.php +++ b/modules/preventivi/src/Components/Articolo.php @@ -30,16 +30,4 @@ class Articolo extends Article public $movimenta_magazzino = false; protected $table = 'co_righe_preventivi'; - - /** - * Crea un nuovo articolo collegato ad una preventivo. - * - * @return self - */ - public static function build(Preventivo $preventivo, Original $articolo) - { - $model = parent::build($preventivo, $articolo); - - return $model; - } } diff --git a/modules/preventivi/src/Components/Descrizione.php b/modules/preventivi/src/Components/Descrizione.php index 4f8320183..615bfca7f 100755 --- a/modules/preventivi/src/Components/Descrizione.php +++ b/modules/preventivi/src/Components/Descrizione.php @@ -27,16 +27,4 @@ class Descrizione extends Description use RelationTrait; protected $table = 'co_righe_preventivi'; - - /** - * Crea una nuova riga collegata ad una preventivo. - * - * @return self - */ - public static function build(Preventivo $preventivo) - { - $model = parent::build($preventivo); - - return $model; - } } diff --git a/modules/preventivi/src/Components/Riga.php b/modules/preventivi/src/Components/Riga.php index 41f4c1a5f..46e5b46a9 100755 --- a/modules/preventivi/src/Components/Riga.php +++ b/modules/preventivi/src/Components/Riga.php @@ -27,16 +27,4 @@ class Riga extends Row use RelationTrait; protected $table = 'co_righe_preventivi'; - - /** - * Crea una nuova riga collegata ad una preventivo. - * - * @return self - */ - public static function build(Preventivo $preventivo) - { - $model = parent::build($preventivo); - - return $model; - } } diff --git a/modules/preventivi/src/Components/Sconto.php b/modules/preventivi/src/Components/Sconto.php index 91796eebc..ca7ecce87 100755 --- a/modules/preventivi/src/Components/Sconto.php +++ b/modules/preventivi/src/Components/Sconto.php @@ -27,16 +27,4 @@ class Sconto extends Discount use RelationTrait; protected $table = 'co_righe_preventivi'; - - /** - * Crea un nuovo sconto collegato ad un preventivo. - * - * @return self - */ - public static function build(Preventivo $preventivo) - { - $model = parent::build($preventivo); - - return $model; - } } diff --git a/plugins/pianificazione_fatturazione/edit.php b/plugins/pianificazione_fatturazione/edit.php index 041ce4d04..2bbc1b4ea 100755 --- a/plugins/pianificazione_fatturazione/edit.php +++ b/plugins/pianificazione_fatturazione/edit.php @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -include_once __DIR__.'/../../../core.php'; +include_once __DIR__.'/../../core.php'; use Modules\Contratti\Contratto; use Modules\Contratti\Stato; diff --git a/plugins/revisioni/edit.php b/plugins/revisioni/edit.php index 7b563886a..dbccc1694 100755 --- a/plugins/revisioni/edit.php +++ b/plugins/revisioni/edit.php @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -include_once __DIR__.'/../../../core.php'; +include_once __DIR__.'/../../core.php'; $revisione_principale = $dbo->fetchOne('SELECT master_revision FROM co_preventivi WHERE id = '.prepare($id_record)); diff --git a/src/Common/Components/Accounting.php b/src/Common/Components/Accounting.php index 1fe20c143..44309a090 100644 --- a/src/Common/Components/Accounting.php +++ b/src/Common/Components/Accounting.php @@ -290,7 +290,7 @@ abstract class Accounting extends Component */ public function getMarginePercentualeAttribute() { - return (1 - ($this->spesa / $this->imponibile)) * 100; + return $this->imponibile ? (1 - ($this->spesa / $this->imponibile)) * 100 : 100; } /** diff --git a/src/Common/Components/Component.php b/src/Common/Components/Component.php index 9b4a60ab8..3a1d511db 100644 --- a/src/Common/Components/Component.php +++ b/src/Common/Components/Component.php @@ -35,6 +35,8 @@ use InvalidArgumentException; * @property string original_type * @property string original_id * + * @template T + * * @since 2.4.18 */ abstract class Component extends Model @@ -285,6 +287,8 @@ abstract class Component extends Model * * @param string $type * @param string $id + * + * @return array */ public function impostaOrigine($type, $id) { @@ -314,6 +318,7 @@ abstract class Component extends Model * Imposta il proprietario dell'oggetto e l'ordine relativo all'interno delle righe. * * @param Document $document Documento di riferimento + * @psalm-param T $document */ public function setDocument(Document $document) { @@ -327,6 +332,7 @@ abstract class Component extends Model /** * @return Document + * @psalm-return T */ public function getDocument() { @@ -335,6 +341,9 @@ abstract class Component extends Model abstract public function document(); + /** + * @return string + */ abstract public function getDocumentID(); public function save(array $options = []) diff --git a/src/Common/Document.php b/src/Common/Document.php index d366ef8c4..8e77b1828 100644 --- a/src/Common/Document.php +++ b/src/Common/Document.php @@ -22,13 +22,8 @@ namespace Common; use Common\Components\Component; use Illuminate\Database\Eloquent\Model as Model; -abstract class Document extends Model implements ReferenceInterface +abstract class Document extends Model implements ReferenceInterface, DocumentInterface { - /** - * Restituisce la collezione di righe e articoli con valori rilevanti per i conti. - * - * @return iterable - */ public function getRighe() { $results = $this->mergeCollections($this->descrizioni, $this->righe, $this->articoli, $this->sconti); @@ -38,14 +33,6 @@ abstract class Document extends Model implements ReferenceInterface }); } - /** - * Restituisce la riga identificata dall'ID indicato. - * - * @param $type - * @param $id - * - * @return mixed - */ public function getRiga($type, $id) { $righe = $this->getRighe(); @@ -55,12 +42,6 @@ abstract class Document extends Model implements ReferenceInterface }); } - /** - * Restituisce la collezione di righe e articoli con valori rilevanti per i conti, raggruppate sulla base dei documenti di provenienza. - * La chiave è la serializzazione del documento di origine, oppure null in caso non esista. - * - * @return iterable - */ public function getRigheRaggruppate() { $righe = $this->getRighe(); @@ -88,6 +69,16 @@ abstract class Document extends Model implements ReferenceInterface abstract public function getDirezioneAttribute(); + public function triggerEvasione(Component $trigger) + { + $this->setRelations([]); + } + + public function triggerComponent(Component $trigger) + { + $this->setRelations([]); + } + /** * Calcola l'imponibile del documento. * @@ -165,7 +156,7 @@ abstract class Document extends Model implements ReferenceInterface */ public function getMarginePercentualeAttribute() { - return (1 - ($this->spesa / ($this->totale_imponibile))) * 100; + return $this->imponibile ? (1 - ($this->spesa / $this->totale_imponibile)) * 100 : 100; } public function delete() @@ -188,24 +179,6 @@ abstract class Document extends Model implements ReferenceInterface return parent::delete(); } - /** - * Metodo richiamato a seguito di modifiche sull'evasione generale delle righe del documento. - * Utilizzabile per l'impostazione automatica degli stati. - */ - public function triggerEvasione(Component $trigger) - { - $this->setRelations([]); - } - - /** - * Metodo richiamato a seguito della modifica o creazione di una riga del documento. - * Utilizzabile per limpostazione automatica di campi statici del documento. - */ - public function triggerComponent(Component $trigger) - { - $this->setRelations([]); - } - public function toArray() { $array = parent::toArray(); diff --git a/src/Common/DocumentInterface.php b/src/Common/DocumentInterface.php new file mode 100644 index 000000000..f9435052a --- /dev/null +++ b/src/Common/DocumentInterface.php @@ -0,0 +1,69 @@ +. + */ + +namespace Common; + +use Common\Components\Component; + +interface DocumentInterface +{ + /** + * Restituisce la collezione di righe e articoli con valori rilevanti per i conti. + * + * @return iterable + */ + public function getRighe(); + + /** + * Restituisce la riga identificata dall'ID indicato. + * + * @param $type + * @param $id + * + * @return mixed + */ + public function getRiga($type, $id); + + /** + * Restituisce la collezione di righe e articoli con valori rilevanti per i conti, raggruppate sulla base dei documenti di provenienza. + * La chiave è la serializzazione del documento di origine, oppure null in caso non esista. + * + * @return iterable + */ + public function getRigheRaggruppate(); + + /** + * Restituisce la direzione in relazione al flusso di denaro impostata per il documento. + * + * @return string 'entrata'|'uscita' + */ + public function getDirezioneAttribute(); + + /** + * Metodo richiamato a seguito di modifiche sull'evasione generale delle righe del documento. + * Utilizzabile per l'impostazione automatica degli stati. + */ + public function triggerEvasione(Component $trigger); + + /** + * Metodo richiamato a seguito della modifica o creazione di una riga del documento. + * Utilizzabile per l'impostazione automatica di campi statici del documento. + */ + public function triggerComponent(Component $trigger); +} diff --git a/src/HTMLBuilder/Handler/SelectHandler.php b/src/HTMLBuilder/Handler/SelectHandler.php index 4f508211a..c08c854ef 100755 --- a/src/HTMLBuilder/Handler/SelectHandler.php +++ b/src/HTMLBuilder/Handler/SelectHandler.php @@ -62,7 +62,7 @@ class SelectHandler implements HandlerInterface unset($values['select-source']); // Informazioni aggiuntive per il select - $infos = $values['select-options'] ?: []; + $infos = isset($values['select-options']) ? $values['select-options'] : []; $values['data-select-options'] = json_encode($infos); unset($values['select-options']); @@ -170,7 +170,7 @@ class SelectHandler implements HandlerInterface } $html .= ' - '; + '; } return $html; diff --git a/src/Util/Generator.php b/src/Util/Generator.php index e9c0f95e3..d8280eb59 100755 --- a/src/Util/Generator.php +++ b/src/Util/Generator.php @@ -229,11 +229,13 @@ class Generator $query = $field.' DESC'; // Estraggo blocchi di caratteri standard - preg_match('/[#]+/', $maschera, $m1); + preg_match('/[#]+/', $maschera, $matches); - $pos1 = strpos($maschera, (string) $m1[0]); - if ($pos1 == 0) { - $query = 'CAST('.$field.' AS UNSIGNED) DESC'; + if (!empty($matches)) { + $pos1 = strpos($maschera, (string) $matches[0]); + if ($pos1 == 0) { + $query = 'CAST('.$field.' AS UNSIGNED) DESC'; + } } return $query;