diff --git a/CHANGELOG.md b/CHANGELOG.md index 61a706097..384084354 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -45,6 +45,7 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k - Aggiunta possibilità di creare una nota di credito da un ddt di acquisto - Aggiunta stampa del bilancio - Aggiunta possibilità di notificare al cliente/tecnico in modo automatico quando viene cambiato lo stato dell'intervento + - Aggiunta flag per escludere la generazione scadenza di una ritenuta d'acconto se viene versata dal fornitore ### Modificato (Changed) - Impostazione CAP automatico a 99999 nella FE per clienti esteri diff --git a/modules/fatture/actions.php b/modules/fatture/actions.php index 83699f7b9..b4e8ef839 100755 --- a/modules/fatture/actions.php +++ b/modules/fatture/actions.php @@ -139,6 +139,9 @@ switch (post('op')) { $dichiarazione_precedente = $fattura->dichiarazione; $fattura->id_dichiarazione_intento = post('id_dichiarazione_intento') ?: null; + // Flag pagamento ritenuta + $fattura->is_ritenuta_pagata = post('is_ritenuta_pagata') ?: 0; + $fattura->save(); // Operazioni automatiche per le Fatture Elettroniche diff --git a/modules/fatture/edit.php b/modules/fatture/edit.php index fa91f69df..e75b03de0 100755 --- a/modules/fatture/edit.php +++ b/modules/fatture/edit.php @@ -350,6 +350,12 @@ elseif ($record['stato'] == 'Bozza') { + {[ "type": "checkbox", "label": "'.tr("Ritenuta pagata dal fornitore").'", "name": "is_ritenuta_pagata", "value": "$is_ritenuta_pagata$" ]} + '; + } if ($dir == 'entrata') { echo '
diff --git a/modules/fatture/src/Gestori/Scadenze.php b/modules/fatture/src/Gestori/Scadenze.php index 3c52d586b..d64c41fcd 100644 --- a/modules/fatture/src/Gestori/Scadenze.php +++ b/modules/fatture/src/Gestori/Scadenze.php @@ -59,9 +59,10 @@ class Scadenze $direzione = $this->fattura->tipo->dir; $ritenuta_acconto = $this->fattura->ritenuta_acconto; + $is_ritenuta_pagata = $this->fattura->is_ritenuta_pagata; // Se c'è una ritenuta d'acconto, la aggiungo allo scadenzario al 15 del mese dopo l'ultima scadenza di pagamento - if ($direzione == 'uscita' && $ritenuta_acconto > 0) { + if ($direzione == 'uscita' && $ritenuta_acconto > 0 && empty($is_ritenuta_pagata)) { $ultima_scadenza = $this->fattura->scadenze->last(); $scadenza = $ultima_scadenza->scadenza->copy()->startOfMonth()->addMonth(); $scadenza->setDate($scadenza->year, $scadenza->month, 15); diff --git a/plugins/importFE/actions.php b/plugins/importFE/actions.php index e80b2d459..92fe9ad11 100755 --- a/plugins/importFE/actions.php +++ b/plugins/importFE/actions.php @@ -129,6 +129,7 @@ switch (filter('op')) { 'id_riga_riferimento' => post('id_riga_riferimento'), 'movimentazione' => post('movimentazione'), 'crea_articoli' => post('crea_articoli'), + 'is_ritenuta_pagata' => post('is_ritenuta_pagata'), ]; $fattura_pa = FatturaElettronica::manage($filename); diff --git a/plugins/importFE/generate.php b/plugins/importFE/generate.php index 7cfb5adef..648f697fc 100755 --- a/plugins/importFE/generate.php +++ b/plugins/importFE/generate.php @@ -252,7 +252,7 @@ if (!empty($anagrafica)) { echo '
- {[ "type": "select", "label": "'.tr('Fattura pro-forma').'", "name": "ref_fattura", "values": "query='.$query.'" ]} + {[ "type": "select", "label": "'.tr('Collega a fattura pro-forma').'", "name": "ref_fattura", "values": "query='.$query.'" ]}
'; } } @@ -263,7 +263,7 @@ echo ' // Pagamento echo '
-
+
@@ -279,7 +279,17 @@ echo '
{[ "type": "checkbox", "label": "'.tr('Creazione automatica articoli').'", "name": "crea_articoli", "value": 0, "help": "'.tr("Nel caso di righe con tag CodiceArticolo, il gestionale procede alla creazione dell'articolo se la riga non risulta assegnata manualmente").'" ]} -
+
'; + + $ritenuta = $dati_generali['DatiRitenuta']; + + if(!empty($ritenuta)){ + echo ' +
+ {[ "type": "checkbox", "label": "'.tr('Ritenuta pagata dal fornitore').'", "name": "is_ritenuta_pagata", "value": 0, "help": "'.tr("Attivare se la ritenuta è stata pagata dal fornitore").'" ]} +
'; + } + echo '
'; // Righe diff --git a/plugins/importFE/src/FatturaElettronica.php b/plugins/importFE/src/FatturaElettronica.php index 991a1f492..a14ddfcae 100755 --- a/plugins/importFE/src/FatturaElettronica.php +++ b/plugins/importFE/src/FatturaElettronica.php @@ -310,7 +310,7 @@ class FatturaElettronica * * @return Fattura */ - public function saveFattura($id_pagamento, $id_sezionale, $id_tipo, $data_registrazione, $ref_fattura) + public function saveFattura($id_pagamento, $id_sezionale, $id_tipo, $data_registrazione, $ref_fattura, $is_ritenuta_pagata = false) { $dati_generali = $this->getBody()['DatiGenerali']['DatiGeneraliDocumento']; $data = self::parseDate($dati_generali['Data']); @@ -324,6 +324,7 @@ class FatturaElettronica $fattura->progressivo_invio = $progressivo_invio; $fattura->numero_esterno = $numero_esterno; $fattura->idpagamento = $id_pagamento; + $fattura->is_ritenuta_pagata = $is_ritenuta_pagata; // Riferimento per nota di credito e debito $fattura->ref_documento = $ref_fattura ?: null; @@ -361,7 +362,7 @@ class FatturaElettronica public function save($info = []) { - $this->saveFattura($info['id_pagamento'], $info['id_segment'], $info['id_tipo'], $info['data_registrazione'], $info['ref_fattura']); + $this->saveFattura($info['id_pagamento'], $info['id_segment'], $info['id_tipo'], $info['data_registrazione'], $info['ref_fattura'], $info['is_ritenuta_pagata']); $this->saveRighe($info['articoli'], $info['iva'], $info['conto'], $info['movimentazione'], $info['crea_articoli'], $info['tipo_riga_riferimento'], $info['id_riga_riferimento']); diff --git a/update/2_4_22.sql b/update/2_4_22.sql index b7e9bdf54..30003c5b3 100644 --- a/update/2_4_22.sql +++ b/update/2_4_22.sql @@ -85,4 +85,7 @@ INSERT INTO `zz_prints` (`id`, `id_module`, `is_record`, `name`, `title`, `filen ALTER TABLE `in_statiintervento` ADD `notifica_cliente` TINYINT NOT NULL AFTER `notifica`, ADD `notifica_tecnici` TINYINT NOT NULL AFTER `notifica_cliente`; -- Api creazione anagrafica da app -INSERT INTO `zz_api_resources` (`id`, `version`, `type`, `resource`, `class`, `enabled`) VALUES (NULL, 'app-v1', 'create', 'cliente', 'API\\App\\v1\\Clienti', '1'), (NULL, 'app-v1', 'update', 'cliente', 'API\\App\\v1\\Clienti', '1'), (NULL, 'app-v1', 'delete', 'cliente', 'API\\App\\v1\\Clienti', '1'); \ No newline at end of file +INSERT INTO `zz_api_resources` (`id`, `version`, `type`, `resource`, `class`, `enabled`) VALUES (NULL, 'app-v1', 'create', 'cliente', 'API\\App\\v1\\Clienti', '1'), (NULL, 'app-v1', 'update', 'cliente', 'API\\App\\v1\\Clienti', '1'), (NULL, 'app-v1', 'delete', 'cliente', 'API\\App\\v1\\Clienti', '1'); + +-- Aggiunto flag per il pagamento della ritenuta nelle fatture passive +ALTER TABLE `co_documenti` ADD `is_ritenuta_pagata` BOOLEAN NOT NULL AFTER `id_ricevuta_principale`; \ No newline at end of file