From 6b99857c8c061f1a0185291bfdd3c1ab375653c1 Mon Sep 17 00:00:00 2001 From: Luca Date: Mon, 7 Mar 2022 12:47:58 +0100 Subject: [PATCH] Avviso fattura di vendita per conto terzi Migliorie grafiche minori --- modules/anagrafiche/ajax/select.php | 3 +- modules/fatture/edit.php | 99 +++++++++++++++----------- plugins/dichiarazioni_intento/add.php | 6 +- plugins/dichiarazioni_intento/edit.php | 8 +-- 4 files changed, 66 insertions(+), 50 deletions(-) diff --git a/modules/anagrafiche/ajax/select.php b/modules/anagrafiche/ajax/select.php index 2d12a0b39..2e7c27501 100755 --- a/modules/anagrafiche/ajax/select.php +++ b/modules/anagrafiche/ajax/select.php @@ -356,8 +356,9 @@ switch ($resource) { * Opzioni utilizzate: * - idanagrafica */ + case 'dichiarazioni_intento': - $query = "SELECT id, CONCAT(CONCAT_WS(' - ', numero_protocollo, numero_progressivo), ' data di fine ', DATE_FORMAT(data_fine, '%d/%m/%Y')) AS descrizione FROM co_dichiarazioni_intento |where| ORDER BY data"; + $query = "SELECT id, CONCAT('Prot. ', numero_protocollo, ' con data fine ', DATE_FORMAT(data_fine, '%d/%m/%Y'),' - utilizzati ',REPLACE(REPLACE(REPLACE(FORMAT(SUM(totale),2), ',', '#'), '.', ','), '#', '.'), ' su ' , REPLACE(REPLACE(REPLACE(FORMAT(SUM(massimale),2), ',', '#'), '.', ','), '#', '.'), ' €' ) AS descrizione FROM co_dichiarazioni_intento |where| ORDER BY data"; foreach ($elements as $element) { $filter[] = 'id='.prepare($element); diff --git a/modules/fatture/edit.php b/modules/fatture/edit.php index d0b7d0e74..db28e5547 100755 --- a/modules/fatture/edit.php +++ b/modules/fatture/edit.php @@ -40,29 +40,13 @@ if ($dir == 'entrata') { // Informazioni sulla dichiarazione d'intento, visibili solo finchè la fattura è in bozza if ($dir == 'entrata' && !empty($fattura->dichiarazione) ) { $diff = $fattura->dichiarazione->massimale - $fattura->dichiarazione->totale; - $diff_in_days = Carbon::parse($fattura->dichiarazione->data_fine)->diffAsCarbonInterval($fattura->data); - - $id_iva = setting("Iva per lettere d'intento"); $iva = Aliquota::find($id_iva); if (!empty($iva)) { - - if ($fattura->stato->descrizione == 'Bozza' && ($diff > 0)){ - - - echo ' -
- '.tr("La fattura è collegata a una dichiarazione d'intento con una diponibilità di _MONEY_: per collegare una riga alla dichiarazione è sufficiente specificare come IVA _IVA_", [ - '_MONEY_' => moneyFormat(abs($diff)), - '_IVA_' => '"'.$iva->codice.' - '.$iva->descrizione.'"', - ]).'. -
'; - - } - + if ($diff == 0) { echo '
@@ -83,7 +67,7 @@ if ($dir == 'entrata' && !empty($fattura->dichiarazione) ) { elseif ($diff_in_days < 0) { echo '
- '.tr("La dichiarazione d'intento ha come data di fine validità _SCADENZA_ mentre la fattura ha data _DATA_", [ + '.tr("La dichiarazione d'intento ha come data fine validità _SCADENZA_ mentre la fattura ha data _DATA_", [ '_SCADENZA_' => dateFormat($fattura->dichiarazione->data_fine), '_DATA_' => dateFormat($fattura->data), ]).'. @@ -101,6 +85,18 @@ if ($dir == 'entrata' && !empty($fattura->dichiarazione) ) { } } +// Ricordo che si sta emettendo una fattura conto terzi +if ($dir == 'entrata' && $fattura->stato->descrizione == 'Bozza' ) { + if ($fattura->is_fattura_conto_terzi){ + + echo ' +
+ '.tr("Questa è una fattura per conto di terzi. Nell'XML della Fattura Elettronica sarà indicato il fornitore _FORNITORE_ come cessionario e il cliente come cedente/prestatore", ['_FORNITORE_' => '"'.stripslashes($database->fetchOne('SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica = '.prepare(setting('Azienda predefinita')))['ragione_sociale']).'"',]).'. +
'; + + } + +} // Verifica aggiuntive sulla sequenzialità dei numeri if ($dir == 'entrata') { $numero_previsto = verifica_numero_fattura($fattura); @@ -398,25 +394,33 @@ elseif ($record['stato'] == 'Bozza') { } ?>
- + +
-
- {[ "type": "checkbox", "label": "", "name": "split_payment", "value": "$split_payment$", "help": "", "placeholder": "" ]} -
- - -
- {[ "type": "checkbox", "label": "", "name": "is_fattura_conto_terzi", "value": "$is_fattura_conto_terzi$", "help": "fetchOne('SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica = '.prepare(setting('Azienda predefinita')))['ragione_sociale']).') come cessionario e il cliente come cedente/prestatore.'); ?>", "placeholder": "" ]} -
- -
+ {[ "type": "checkbox", "label": "", "name": "split_payment", "value": "$split_payment$", "help": "", "placeholder": "" ]} +
+ + +
+ {[ "type": "checkbox", "label": "", "name": "is_fattura_conto_terzi", "value": "$is_fattura_conto_terzi$", "help": "fetchOne('SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica = '.prepare(setting('Azienda predefinita')))['ragione_sociale']).') come cessionario e il cliente come cedente/prestatore.'); ?>", "placeholder": "" ]} +
+ + + {[ "type": "number", "label": "'.tr('Sconto in fattura').'", "name": "sconto_finale", "value": "'.($fattura->sconto_finale_percentuale ?: $fattura->sconto_finale).'", "icon-after": "choice|untprc|'.(empty($fattura->sconto_finale) ? 'PRC' : 'UNT').'", "help": "'.tr('Sconto in fattura, utilizzabile per applicare sconti sul Netto a pagare del documento e le relative scadenze').'. '.tr('Per utilizzarlo in relazione a una riga della Fattura Elettronica, inserire il tipo di dato in \'\'Attributi avanzati\'\' -> \'\'Altri Dati Gestionali\'\' -> \'\'TipoDato\'\' e il testo di descrizione in \'\'Attributi avanzati\'\' -> \'\'Altri Dati Gestionali\'\' -> \'\'RiferimentoTesto\'\' della specifica riga').'. '.tr('Nota: lo sconto in fattura non influenza i movimenti contabili').'." ]} +
'; + + } + ?> +
+ +
+
{[ "type": "select", "label": "", "name": "id_ritenuta_contributi", "value": "$id_ritenuta_contributi$", "values": "query=SELECT *, CONCAT(descrizione,(IF(percentuale>0, CONCAT(\" - \", percentuale, \"% sul \", percentuale_imponibile, \"% imponibile\"), \"\"))) AS descrizione FROM co_ritenuta_contributi", "help": "" ]}
@@ -424,20 +428,20 @@ elseif ($record['stato'] == 'Bozza') { +
{[ "type": "checkbox", "label": "'.tr('Ritenuta pagata dal fornitore').'", "name": "is_ritenuta_pagata", "value": "$is_ritenuta_pagata$" ]}
'; } if ($dir == 'entrata') { echo ' -
'; +
'; if (!empty($record['id_dichiarazione_intento'])) { echo Plugins::link("Dichiarazioni d'Intento", $record['idanagrafica'], null, null, 'class="pull-right"'); } echo ' - {[ "type": "select", "label": "'.tr("Dichiarazione d'intento").'", "name": "id_dichiarazione_intento", "ajax-source": "dichiarazioni_intento", "select-options": {"idanagrafica": '.$record['idanagrafica'].', "data": "'.$record['data'].'"},"value": "$id_dichiarazione_intento$" ]} + {[ "type": "select", "label": "'.tr("Dichiarazione d'intento").'", "name": "id_dichiarazione_intento", "help": "'.tr('Elenco delle dichiarazioni d\'intento definite all\'interno dell\'anagrafica del cliente').'.", "ajax-source": "dichiarazioni_intento", "select-options": {"idanagrafica": '.$record['idanagrafica'].', "data": "'.$record['data'].'"},"value": "$id_dichiarazione_intento$" ]}
'; } echo ' @@ -459,10 +463,6 @@ elseif ($record['stato'] == 'Bozza') {
{[ "type": "number", "label": "'.tr('Importo marca da bollo').'", "name": "bollo", "value": "$bollo$"]}
- -
- {[ "type": "number", "label": "'.tr('Sconto in fattura').'", "name": "sconto_finale", "value": "'.($fattura->sconto_finale_percentuale ?: $fattura->sconto_finale).'", "icon-after": "choice|untprc|'.(empty($fattura->sconto_finale) ? 'PRC' : 'UNT').'", "help": "'.tr('Sconto in fattura, utilizzabile per applicare sconti sul Netto a pagare del documento e le relative scadenze').'. '.tr('Per utilizzarlo in relazione a una riga della Fattura Elettronica, inserire il tipo di dato in \'\'Attributi avanzati\'\' -> \'\'Altri Dati Gestionali\'\' -> \'\'TipoDato\'\' e il testo di descrizione in \'\'Attributi avanzati\'\' -> \'\'Altri Dati Gestionali\'\' -> \'\'RiferimentoTesto\'\' della specifica riga').'. '.tr('Nota: lo sconto in fattura non influenza i movimenti contabili').'." ]} -
'; $bollo = new Bollo($fattura); @@ -650,8 +650,23 @@ if ($record['descrizione_tipo'] == 'Fattura accompagnatoria di vendita') { } echo ' - +'; +//Dich. intento collegata +if ($dir == 'entrata' && !empty($fattura->dichiarazione)){ + + if ($fattura->stato->descrizione == 'Bozza'){ + + echo ' +
+ '.tr("La fattura è collegata ad una dichiarazione d'intento con diponibilità residura pari a _MONEY_.", [ '_MONEY_' => moneyFormat(abs($diff)),]).'
'.tr("Per collegare una riga alla dichiarazione è sufficiente specificare come IVA _IVA_", ['_IVA_' => '"'.$iva->codice.' - '.$iva->descrizione.'"',]).'. +
'; + + } + +} + +echo '
diff --git a/plugins/dichiarazioni_intento/add.php b/plugins/dichiarazioni_intento/add.php index 741718d42..0ffcb4f70 100755 --- a/plugins/dichiarazioni_intento/add.php +++ b/plugins/dichiarazioni_intento/add.php @@ -43,18 +43,18 @@ echo '
- {[ "type": "date", "label": "'.tr('Data di ricezione').'", "name": "data", "required": 1, "value": "-now-" ]} + {[ "type": "date", "label": "'.tr('Data ricezione').'", "name": "data", "required": 1, "value": "-now-" ]}
- {[ "type": "date", "label": "'.tr('Data di inizio').'", "name": "data_inizio", "required": 1 ]} + {[ "type": "date", "label": "'.tr('Data inizio').'", "name": "data_inizio", "required": 1 ]}
- {[ "type": "date", "label": "'.tr('Data di fine').'", "name": "data_fine", "required": 1 ]} + {[ "type": "date", "label": "'.tr('Data fine').'", "name": "data_fine", "required": 1 ]}
diff --git a/plugins/dichiarazioni_intento/edit.php b/plugins/dichiarazioni_intento/edit.php index 65262552a..3d71ffc53 100755 --- a/plugins/dichiarazioni_intento/edit.php +++ b/plugins/dichiarazioni_intento/edit.php @@ -42,18 +42,18 @@ echo '
- {[ "type": "date", "label": "'.tr('Data di ricezione').'", "name": "data", "required": 1, "value": "'.$record['data'].'" ]} + {[ "type": "date", "label": "'.tr('Data ricezione').'", "name": "data", "required": 1, "value": "'.$record['data'].'" ]}
- {[ "type": "date", "label": "'.tr('Data di inizio').'", "name": "data_inizio", "required": 1, "value": "'.$record['data_inizio'].'" ]} + {[ "type": "date", "label": "'.tr('Data inizio').'", "name": "data_inizio", "required": 1, "value": "'.$record['data_inizio'].'" ]}
- {[ "type": "date", "label": "'.tr('Data di fine').'", "name": "data_fine", "required": 1, "value": "'.$record['data_fine'].'" ]} + {[ "type": "date", "label": "'.tr('Data fine').'", "name": "data_fine", "required": 1, "value": "'.$record['data_fine'].'" ]}
@@ -61,7 +61,7 @@ echo '
- {[ "type": "date", "label": "'.tr('Data di emissione').'", "name": "data_emissione", "value": "'.$record['data_emissione'].'", "required": 1 ]} + {[ "type": "date", "label": "'.tr('Data emissione').'", "name": "data_emissione", "value": "'.$record['data_emissione'].'", "required": 1 ]}