Miglioria controllo stato fattura elettronica
This commit is contained in:
parent
eb932e8c0a
commit
99d0b4faaa
|
@ -34,14 +34,26 @@ use Modules\Iva\Aliquota;
|
|||
use Util\XML;
|
||||
|
||||
$module = Modules::get($id_module);
|
||||
|
||||
$op = post('op');
|
||||
if ($module['name'] == 'Fatture di vendita') {
|
||||
$dir = 'entrata';
|
||||
} else {
|
||||
$dir = 'uscita';
|
||||
}
|
||||
|
||||
switch (post('op')) {
|
||||
// Controllo se la fattura è già stata inviata allo SDI
|
||||
$stato_fe= $dbo->fetchOne('SELECT codice_stato_fe FROM co_documenti WHERE id = '.$fattura->id);
|
||||
|
||||
$ops = ['update', 'add_intervento', 'manage_documento_fe', 'manage_riga_fe', 'manage_articolo', 'manage_sconto', 'manage_riga', 'manage_descrizione', 'unlink_intervento', 'delete_riga', 'copy_riga', 'add_serial', 'add_articolo', 'edit-price'];
|
||||
|
||||
if ($dir == 'entrata' && $stato_fe['codice_stato_fe'] == 'WAIT' && in_array($op, $ops)) {
|
||||
flash()->warning(tr('La fattura numero _NUM_ è già stata inviata allo SDI, non è possibile effettuare modifiche!', [
|
||||
'_NUM_' => $fattura->numero_esterno,
|
||||
]));
|
||||
$op = null;
|
||||
}
|
||||
|
||||
switch ($op) {
|
||||
case 'add':
|
||||
$idanagrafica = post('idanagrafica');
|
||||
$data = post('data');
|
||||
|
@ -71,14 +83,6 @@ 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
|
||||
|
@ -240,7 +244,6 @@ switch (post('op')) {
|
|||
}
|
||||
}
|
||||
flash()->info(tr('Fattura modificata correttamente!'));
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
|
@ -405,14 +408,6 @@ 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));
|
||||
|
@ -429,20 +424,11 @@ 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',
|
||||
|
@ -461,21 +447,12 @@ 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);
|
||||
|
@ -502,51 +479,6 @@ switch (post('op')) {
|
|||
|
||||
flash()->info(tr('Dati FE aggiornati correttamente!'));
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 'manage_barcode':
|
||||
foreach (post('qta') as $id_articolo => $qta) {
|
||||
if ($id_articolo == '-id-') {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Dati di input
|
||||
$sconto = post('sconto')[$id_articolo];
|
||||
$tipo_sconto = post('tipo_sconto')[$id_articolo];
|
||||
$prezzo_unitario = post('prezzo_unitario')[$id_articolo];
|
||||
$id_dettaglio_fornitore = post('id_dettaglio_fornitore')[$id_articolo];
|
||||
if ($dir == 'entrata') {
|
||||
$id_iva = ($fattura->anagrafica->idiva_vendite ?: $originale->idiva_vendita) ?: setting('Iva predefinita');
|
||||
} else {
|
||||
$id_iva = ($fattura->anagrafica->idiva_acquisti ?: setting('Iva predefinita'));
|
||||
}
|
||||
|
||||
$id_conto = ($fattura->direzione == 'entrata') ? setting('Conto predefinito fatture di vendita') : setting('Conto predefinito fatture di acquisto');
|
||||
if ($fattura->direzione == 'entrata' && !empty($originale->idconto_vendita)) {
|
||||
$id_conto = $originale->idconto_vendita;
|
||||
} elseif ($fattura->direzione == 'uscita' && !empty($originale->idconto_acquisto)) {
|
||||
$id_conto = $originale->idconto_acquisto;
|
||||
}
|
||||
|
||||
// Creazione articolo
|
||||
$originale = ArticoloOriginale::find($id_articolo);
|
||||
$articolo = Articolo::build($fattura, $originale);
|
||||
$articolo->id_dettaglio_fornitore = $id_dettaglio_fornitore ?: null;
|
||||
|
||||
$articolo->setPrezzoUnitario($prezzo_unitario, $id_iva);
|
||||
if ($dir == 'entrata') {
|
||||
$articolo->costo_unitario = $originale->prezzo_acquisto;
|
||||
}
|
||||
$articolo->setSconto($sconto, $tipo_sconto);
|
||||
$articolo->qta = $qta;
|
||||
$articolo->idconto = $id_conto;
|
||||
|
||||
$articolo->save();
|
||||
}
|
||||
|
||||
flash()->info(tr('Articoli aggiunti!'));
|
||||
|
||||
break;
|
||||
|
||||
|
@ -559,14 +491,6 @@ 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');
|
||||
|
@ -604,7 +528,6 @@ switch (post('op')) {
|
|||
|
||||
// Ricalcolo inps, ritenuta e bollo
|
||||
ricalcola_costiagg_fattura($id_record);
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
|
@ -615,14 +538,6 @@ 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;
|
||||
|
@ -643,7 +558,7 @@ switch (post('op')) {
|
|||
|
||||
// Ricalcolo inps, ritenuta e bollo
|
||||
ricalcola_costiagg_fattura($id_record);
|
||||
}
|
||||
|
||||
|
||||
break;
|
||||
|
||||
|
@ -654,14 +569,7 @@ 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');
|
||||
|
@ -694,7 +602,6 @@ switch (post('op')) {
|
|||
|
||||
// Ricalcolo inps, ritenuta e bollo
|
||||
ricalcola_costiagg_fattura($id_record);
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
|
@ -708,14 +615,7 @@ 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) {
|
||||
|
@ -723,21 +623,12 @@ 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);
|
||||
|
@ -754,21 +645,13 @@ 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);
|
||||
|
@ -786,21 +669,13 @@ 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);
|
||||
|
@ -819,25 +694,15 @@ switch (post('op')) {
|
|||
}
|
||||
|
||||
flash()->info(tr('Righe duplicate!'));
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 'add_serial':
|
||||
$articolo = Articolo::find(post('idriga'));
|
||||
|
||||
// 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 {
|
||||
$serials = (array) post('serial');
|
||||
$articolo->serials = $serials;
|
||||
|
||||
}
|
||||
break;
|
||||
|
||||
case 'update_position':
|
||||
|
@ -953,14 +818,6 @@ switch (post('op')) {
|
|||
$id_segment = post('id_segment');
|
||||
$data = post('data');
|
||||
|
||||
// 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 {
|
||||
$anagrafica = $fattura->anagrafica;
|
||||
$tipo = Tipo::where('descrizione', 'Nota di credito')->where('dir', 'entrata')->first();
|
||||
|
||||
|
@ -999,7 +856,7 @@ switch (post('op')) {
|
|||
|
||||
$id_record = $nota->id;
|
||||
aggiorna_sedi_movimenti('documenti', $id_record);
|
||||
}
|
||||
|
||||
|
||||
break;
|
||||
|
||||
|
@ -1075,14 +932,7 @@ 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'];
|
||||
}
|
||||
|
@ -1178,7 +1028,6 @@ 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
|
||||
|
@ -1212,14 +1061,6 @@ 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']);
|
||||
|
@ -1247,7 +1088,7 @@ switch (post('op')) {
|
|||
} else {
|
||||
flash()->warning(tr('Nessun prezzo modificato!'));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue