Aggiunta controllo stato fattura elettronica

This commit is contained in:
Pek5892 2023-07-17 14:15:41 +02:00
parent 78a303f892
commit 2dd9e5f09f
1 changed files with 539 additions and 428 deletions

View File

@ -71,6 +71,14 @@ switch (post('op')) {
$tipo = Tipo::find(post('idtipodocumento'));
$fattura->tipo()->associate($tipo);
// Controllo se la fattura è già stata inviata allo SDI
$stato_fe= $dbo->fetchOne('SELECT codice_stato_fe FROM co_documenti WHERE id = '.$fattura->id);
if ($dir == 'entrata' && $stato_fe['codice_stato_fe'] == 'WAIT') {
flash()->warning(tr('La fattura numero _NUM_ è già stata inviata allo SDI, non è possibile effettuare modifiche!', [
'_NUM_' => $fattura->numero_esterno,
]));
} else {
$data_fattura_precedente = $dbo->fetchOne('
SELECT
MAX(DATA) AS datamax
@ -159,7 +167,6 @@ switch (post('op')) {
$fattura->is_ritenuta_pagata = post('is_ritenuta_pagata') ?: 0;
$fattura->setScontoFinale(post('sconto_finale'), post('tipo_sconto_finale'));
$results = $fattura->save();
$message = '';
@ -232,8 +239,8 @@ switch (post('op')) {
flash()->warning(tr('Esiste già una fattura con lo stesso numero!'));
}
}
flash()->info(tr('Fattura modificata correttamente!'));
}
break;
@ -398,6 +405,14 @@ switch (post('op')) {
case 'add_intervento':
$id_intervento = post('idintervento');
// Controllo se la fattura è già stata inviata allo SDI
$stato_fe= $dbo->fetchOne('SELECT codice_stato_fe FROM co_documenti WHERE id = '.$fattura->id);
if ($dir == 'entrata' && $stato_fe['codice_stato_fe'] == 'WAIT') {
flash()->warning(tr('La fattura numero _NUM_ è già stata inviata allo SDI, non è possibile effettuare modifiche!', [
'_NUM_' => $fattura->numero_esterno,
]));
} else {
if (!empty($id_record) && $id_intervento !== null) {
$copia_descrizione = post('copia_descrizione');
$intervento = $dbo->fetchOne('SELECT descrizione FROM in_interventi WHERE id = '.prepare($id_intervento));
@ -414,11 +429,20 @@ switch (post('op')) {
'_NUM_' => $idintervento,
]));
}
}
break;
case 'manage_documento_fe':
$data = Filter::getPOST();
// Controllo se la fattura è già stata inviata allo SDI
$stato_fe= $dbo->fetchOne('SELECT codice_stato_fe FROM co_documenti WHERE id = '.$fattura->id);
if ($dir == 'entrata' && $stato_fe['codice_stato_fe'] == 'WAIT') {
flash()->warning(tr('La fattura numero _NUM_ è già stata inviata allo SDI, non è possibile effettuare modifiche!', [
'_NUM_' => $fattura->numero_esterno,
]));
} else {
$ignore = [
'id_plugin',
'id_module',
@ -437,11 +461,21 @@ switch (post('op')) {
$fattura->save();
flash()->info(tr('Dati FE aggiornati correttamente!'));
}
break;
case 'manage_riga_fe':
$id_riga = post('id_riga');
// Controllo se la fattura è già stata inviata allo SDI
$stato_fe= $dbo->fetchOne('SELECT codice_stato_fe FROM co_documenti WHERE id = '.$fattura->id);
if ($dir == 'entrata' && $stato_fe['codice_stato_fe'] == 'WAIT') {
flash()->warning(tr('La fattura numero _NUM_ è già stata inviata allo SDI, non è possibile effettuare modifiche!', [
'_NUM_' => $fattura->numero_esterno,
]));
} else {
if ($id_riga != null) {
$riga = Articolo::find($id_riga) ?: Riga::find($id_riga);
$riga = $riga ?: Descrizione::find($id_riga);
@ -468,6 +502,7 @@ switch (post('op')) {
flash()->info(tr('Dati FE aggiornati correttamente!'));
}
}
break;
@ -524,6 +559,14 @@ switch (post('op')) {
$articolo->id_dettaglio_fornitore = post('id_dettaglio_fornitore') ?: null;
}
// Controllo se la fattura è già stata inviata allo SDI
$stato_fe= $dbo->fetchOne('SELECT codice_stato_fe FROM co_documenti WHERE id = '.$fattura->id);
if ($dir == 'entrata' && $stato_fe['codice_stato_fe'] == 'WAIT') {
flash()->warning(tr('La fattura numero _NUM_ è già stata inviata allo SDI, non è possibile effettuare modifiche!', [
'_NUM_' => $fattura->numero_esterno,
]));
} else {
$qta = post('qta');
$articolo->descrizione = post('descrizione');
@ -561,6 +604,7 @@ switch (post('op')) {
// Ricalcolo inps, ritenuta e bollo
ricalcola_costiagg_fattura($id_record);
}
break;
@ -571,6 +615,14 @@ switch (post('op')) {
$sconto = Sconto::build($fattura);
}
// Controllo se la fattura è già stata inviata allo SDI
$stato_fe= $dbo->fetchOne('SELECT codice_stato_fe FROM co_documenti WHERE id = '.$fattura->id);
if ($dir == 'entrata' && $stato_fe['codice_stato_fe'] == 'WAIT') {
flash()->warning(tr('La fattura numero _NUM_ è già stata inviata allo SDI, non è possibile effettuare modifiche!', [
'_NUM_' => $fattura->numero_esterno,
]));
} else {
$sconto->idconto = post('idconto');
$sconto->calcolo_ritenuta_acconto = post('calcolo_ritenuta_acconto') ?: null;
@ -581,7 +633,6 @@ switch (post('op')) {
$sconto->descrizione = post('descrizione');
$sconto->note = post('note');
$sconto->setScontoUnitario(post('sconto_unitario'), post('idiva'));
$sconto->save();
if (post('idriga') != null) {
@ -592,6 +643,7 @@ switch (post('op')) {
// Ricalcolo inps, ritenuta e bollo
ricalcola_costiagg_fattura($id_record);
}
break;
@ -602,6 +654,14 @@ switch (post('op')) {
$riga = Riga::build($fattura);
}
// Controllo se la fattura è già stata inviata allo SDI
$stato_fe= $dbo->fetchOne('SELECT codice_stato_fe FROM co_documenti WHERE id = '.$fattura->id);
if ($dir == 'entrata' && $stato_fe['codice_stato_fe'] == 'WAIT') {
flash()->warning(tr('La fattura numero _NUM_ è già stata inviata allo SDI, non è possibile effettuare modifiche!', [
'_NUM_' => $fattura->numero_esterno,
]));
} else {
$qta = post('qta');
$riga->descrizione = post('descrizione');
@ -624,7 +684,6 @@ switch (post('op')) {
}
$riga->qta = $qta;
$riga->save();
if (post('idriga') != null) {
@ -635,6 +694,7 @@ switch (post('op')) {
// Ricalcolo inps, ritenuta e bollo
ricalcola_costiagg_fattura($id_record);
}
break;
@ -647,6 +707,15 @@ switch (post('op')) {
$riga->descrizione = post('descrizione');
$riga->note = post('note');
// Controllo se la fattura è già stata inviata allo SDI
$stato_fe= $dbo->fetchOne('SELECT codice_stato_fe FROM co_documenti WHERE id = '.$fattura->id);
if ($dir == 'entrata' && $stato_fe['codice_stato_fe'] == 'WAIT') {
flash()->warning(tr('La fattura numero _NUM_ è già stata inviata allo SDI, non è possibile effettuare modifiche!', [
'_NUM_' => $fattura->numero_esterno,
]));
} else {
$riga->save();
if (post('idriga') != null) {
@ -654,12 +723,21 @@ switch (post('op')) {
} else {
flash()->info(tr('Riga descrittiva aggiunta!'));
}
}
break;
// Scollegamento intervento da documento
case 'unlink_intervento':
if (!empty($id_record) && post('idriga') !== null) {
// Controllo se la fattura è già stata inviata allo SDI
$stato_fe= $dbo->fetchOne('SELECT codice_stato_fe FROM co_documenti WHERE id = '.$fattura->id);
if ($dir == 'entrata' && $stato_fe['codice_stato_fe'] == 'WAIT') {
flash()->warning(tr('La fattura numero _NUM_ è già stata inviata allo SDI, non è possibile effettuare modifiche!', [
'_NUM_' => $fattura->numero_esterno,
]));
} else {
$id_riga = post('idriga');
$type = post('type');
$riga = $fattura->getRiga($type, $id_riga);
@ -676,12 +754,21 @@ switch (post('op')) {
}
}
}
}
break;
// Scollegamento riga generica da documento
case 'delete_riga':
$id_righe = (array)post('righe');
// Controllo se la fattura è già stata inviata allo SDI
$stato_fe= $dbo->fetchOne('SELECT codice_stato_fe FROM co_documenti WHERE id = '.$fattura->id);
if ($dir == 'entrata' && $stato_fe['codice_stato_fe'] == 'WAIT') {
flash()->warning(tr('La fattura numero _NUM_ è già stata inviata allo SDI, non è possibile effettuare modifiche!', [
'_NUM_' => $fattura->numero_esterno,
]));
} else {
foreach ($id_righe as $id_riga) {
$riga = Articolo::find($id_riga) ?: Riga::find($id_riga);
$riga = $riga ?: Descrizione::find($id_riga);
@ -697,16 +784,23 @@ switch (post('op')) {
}
$riga = null;
}
flash()->info(tr('Righe eliminate!'));
}
}
break;
// Duplicazione riga
case 'copy_riga':
$id_righe = (array)post('righe');
// Controllo se la fattura è già stata inviata allo SDI
$stato_fe= $dbo->fetchOne('SELECT codice_stato_fe FROM co_documenti WHERE id = '.$fattura->id);
if ($dir == 'entrata' && $stato_fe['codice_stato_fe'] == 'WAIT') {
flash()->warning(tr('La fattura numero _NUM_ è già stata inviata allo SDI, non è possibile effettuare modifiche!', [
'_NUM_' => $fattura->numero_esterno,
]));
} else {
foreach ($id_righe as $id_riga) {
$riga = Articolo::find($id_riga) ?: Riga::find($id_riga);
$riga = $riga ?: Descrizione::find($id_riga);
@ -725,6 +819,7 @@ switch (post('op')) {
}
flash()->info(tr('Righe duplicate!'));
}
break;
@ -962,7 +1057,14 @@ switch (post('op')) {
case 'add_articolo':
$id_articolo = post('id_articolo');
$barcode = post('barcode');
// Controllo se la fattura è già stata inviata allo SDI
$stato_fe= $dbo->fetchOne('SELECT codice_stato_fe FROM co_documenti WHERE id = '.$fattura->id);
if ($dir == 'entrata' && $stato_fe['codice_stato_fe'] == 'WAIT') {
flash()->warning(tr('La fattura numero _NUM_ è già stata inviata allo SDI, non è possibile effettuare modifiche!', [
'_NUM_' => $fattura->numero_esterno,
]));
} else {
if (!empty($barcode)) {
$id_articolo = $dbo->selectOne('mg_articoli', 'id', ['deleted_at' => null, 'attivo' => 1, 'barcode' => $barcode])['id'];
}
@ -1058,7 +1160,7 @@ switch (post('op')) {
$response['error'] = tr('Nessun articolo corrispondente a magazzino');
echo json_encode($response);
}
}
break;
// Controllo se impostare anagrafica azienda in base a tipologia documento
@ -1092,6 +1194,14 @@ switch (post('op')) {
$righe = $post['righe'];
$numero_totale = 0;
// Controllo se la fattura è già stata inviata allo SDI
$stato_fe= $dbo->fetchOne('SELECT codice_stato_fe FROM co_documenti WHERE id = '.$fattura->id);
if ($dir == 'entrata' && $stato_fe['codice_stato_fe'] == 'WAIT') {
flash()->warning(tr('La fattura numero _NUM_ è già stata inviata allo SDI, non è possibile effettuare modifiche!', [
'_NUM_' => $fattura->numero_esterno,
]));
} else {
foreach ($righe as $riga) {
if (($riga['id']) != null) {
$articolo = Articolo::find($riga['id']);
@ -1119,6 +1229,7 @@ switch (post('op')) {
} else {
flash()->warning(tr('Nessun prezzo modificato!'));
}
}
break;
}