1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-02-25 07:47:55 +01:00

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 possibilità di creare una nota di credito da un ddt di acquisto
- Aggiunta stampa del bilancio - Aggiunta stampa del bilancio
- Aggiunta possibilità di notificare al cliente/tecnico in modo automatico quando viene cambiato lo stato dell'intervento - 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) ### Modificato (Changed)
- Impostazione CAP automatico a 99999 nella FE per clienti esteri - Impostazione CAP automatico a 99999 nella FE per clienti esteri

View File

@ -139,6 +139,9 @@ switch (post('op')) {
$dichiarazione_precedente = $fattura->dichiarazione; $dichiarazione_precedente = $fattura->dichiarazione;
$fattura->id_dichiarazione_intento = post('id_dichiarazione_intento') ?: null; $fattura->id_dichiarazione_intento = post('id_dichiarazione_intento') ?: null;
// Flag pagamento ritenuta
$fattura->is_ritenuta_pagata = post('is_ritenuta_pagata') ?: 0;
$fattura->save(); $fattura->save();
// Operazioni automatiche per le Fatture Elettroniche // Operazioni automatiche per le Fatture Elettroniche

View File

@ -350,6 +350,12 @@ elseif ($record['stato'] == 'Bozza') {
</div> </div>
<?php <?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') { if ($dir == 'entrata') {
echo ' echo '
<div class="col-md-3"> <div class="col-md-3">

View File

@ -59,9 +59,10 @@ class Scadenze
$direzione = $this->fattura->tipo->dir; $direzione = $this->fattura->tipo->dir;
$ritenuta_acconto = $this->fattura->ritenuta_acconto; $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 // 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(); $ultima_scadenza = $this->fattura->scadenze->last();
$scadenza = $ultima_scadenza->scadenza->copy()->startOfMonth()->addMonth(); $scadenza = $ultima_scadenza->scadenza->copy()->startOfMonth()->addMonth();
$scadenza->setDate($scadenza->year, $scadenza->month, 15); $scadenza->setDate($scadenza->year, $scadenza->month, 15);

View File

@ -129,6 +129,7 @@ switch (filter('op')) {
'id_riga_riferimento' => post('id_riga_riferimento'), 'id_riga_riferimento' => post('id_riga_riferimento'),
'movimentazione' => post('movimentazione'), 'movimentazione' => post('movimentazione'),
'crea_articoli' => post('crea_articoli'), 'crea_articoli' => post('crea_articoli'),
'is_ritenuta_pagata' => post('is_ritenuta_pagata'),
]; ];
$fattura_pa = FatturaElettronica::manage($filename); $fattura_pa = FatturaElettronica::manage($filename);

View File

@ -252,7 +252,7 @@ if (!empty($anagrafica)) {
echo ' echo '
<div class="col-md-3"> <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>'; </div>';
} }
} }
@ -263,7 +263,7 @@ echo '
// Pagamento // Pagamento
echo ' echo '
<div class="row" > <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\', \'\')"> <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à').' <i class="fa fa-refresh"></i> '.tr('Visualizza tutte le modalità').'
</button> </button>
@ -279,7 +279,17 @@ echo '
<div class="col-md-3"> <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").'" ]} {[ "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>'; </div>';
// Righe // Righe

View File

@ -310,7 +310,7 @@ class FatturaElettronica
* *
* @return Fattura * @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']; $dati_generali = $this->getBody()['DatiGenerali']['DatiGeneraliDocumento'];
$data = self::parseDate($dati_generali['Data']); $data = self::parseDate($dati_generali['Data']);
@ -324,6 +324,7 @@ class FatturaElettronica
$fattura->progressivo_invio = $progressivo_invio; $fattura->progressivo_invio = $progressivo_invio;
$fattura->numero_esterno = $numero_esterno; $fattura->numero_esterno = $numero_esterno;
$fattura->idpagamento = $id_pagamento; $fattura->idpagamento = $id_pagamento;
$fattura->is_ritenuta_pagata = $is_ritenuta_pagata;
// Riferimento per nota di credito e debito // Riferimento per nota di credito e debito
$fattura->ref_documento = $ref_fattura ?: null; $fattura->ref_documento = $ref_fattura ?: null;
@ -361,7 +362,7 @@ class FatturaElettronica
public function save($info = []) 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']); $this->saveRighe($info['articoli'], $info['iva'], $info['conto'], $info['movimentazione'], $info['crea_articoli'], $info['tipo_riga_riferimento'], $info['id_riga_riferimento']);

View File

@ -86,3 +86,6 @@ ALTER TABLE `in_statiintervento` ADD `notifica_cliente` TINYINT NOT NULL AFTER `
-- Api creazione anagrafica da app -- 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`;