Aggiunto flag per il pagamento della ritenuta in fatture di acquisto

This commit is contained in:
MatteoPistorello 2021-02-04 13:19:14 +01:00
parent afdfd9bb44
commit fc4a570708
8 changed files with 33 additions and 7 deletions

View File

@ -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

View File

@ -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

View File

@ -350,6 +350,12 @@ elseif ($record['stato'] == 'Bozza') {
</div>
<?php
if ($dir == 'uscita') {
echo '
<div class="col-md-3">
{[ "type": "checkbox", "label": "'.tr("Ritenuta pagata dal fornitore").'", "name": "is_ritenuta_pagata", "value": "$is_ritenuta_pagata$" ]}
</div>';
}
if ($dir == 'entrata') {
echo '
<div class="col-md-3">

View File

@ -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);

View File

@ -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);

View File

@ -252,7 +252,7 @@ if (!empty($anagrafica)) {
echo '
<div class="col-md-3">
{[ "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.'" ]}
</div>';
}
}
@ -263,7 +263,7 @@ echo '
// Pagamento
echo '
<div class="row" >
<div class="col-md-6">
<div class="col-md-3">
<button type="button" class="btn btn-info btn-xs pull-right" onclick="updateSelectOption(\'codice_modalita_pagamento_fe\', \'\')">
<i class="fa fa-refresh"></i> '.tr('Visualizza tutte le modalità').'
</button>
@ -279,7 +279,17 @@ echo '
<div class="col-md-3">
{[ "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").'" ]}
</div>
</div>';
$ritenuta = $dati_generali['DatiRitenuta'];
if(!empty($ritenuta)){
echo '
<div class="col-md-3">
{[ "type": "checkbox", "label": "'.tr('Ritenuta pagata dal fornitore').'", "name": "is_ritenuta_pagata", "value": 0, "help": "'.tr("Attivare se la ritenuta è stata pagata dal fornitore").'" ]}
</div>';
}
echo '
</div>';
// Righe

View File

@ -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']);

View File

@ -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');
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`;