diff --git a/modules/contratti/bulk.php b/modules/contratti/bulk.php index d39b8eddf..9f7a9a603 100755 --- a/modules/contratti/bulk.php +++ b/modules/contratti/bulk.php @@ -38,7 +38,7 @@ switch (post('op')) { $anagrafica = $documento_import->anagrafica; $id_anagrafica = $anagrafica->id; - if(!$documento_import->stato->is_pianificabile){ + if (!$documento_import->stato->is_pianificabile) { break; } diff --git a/modules/ddt/actions.php b/modules/ddt/actions.php index 204332bb6..2fb41506d 100755 --- a/modules/ddt/actions.php +++ b/modules/ddt/actions.php @@ -115,14 +115,17 @@ switch (post('op')) { aggiorna_sedi_movimenti('ddt', $id_record); // Controllo sulla presenza di DDT con lo stesso numero secondario - $count = DDT::where('numero_esterno', $numero_esterno) - ->where('id', '!=', $id_record) - ->where('idanagrafica', '=', $id_anagrafica) - ->whereHas('tipo', function ($query) use ($dir) { - $query->where('dt_tipiddt.dir', '=', $dir); - })->count(); - if (!empty($count)) { - flash()->warning(tr('Esiste già un DDT con lo stesso numero secondario e la stessa anagrafica collegata!')); + $direzione = $ddt->direzione; + if ($direzione == 'uscita') { + $count = DDT::where('numero_esterno', $numero_esterno) + ->where('id', '!=', $id_record) + ->where('idanagrafica', '=', $id_anagrafica) + ->whereHas('tipo', function ($query) use ($direzione) { + $query->where('dir', '=', $direzione); + })->count(); + if (!empty($count)) { + flash()->warning(tr('Esiste già un DDT con lo stesso numero secondario e la stessa anagrafica collegata!')); + } } flash()->info(tr('Ddt modificato correttamente!')); diff --git a/modules/fatture/actions.php b/modules/fatture/actions.php index 40a98968f..e1129cf97 100755 --- a/modules/fatture/actions.php +++ b/modules/fatture/actions.php @@ -41,124 +41,138 @@ switch (post('op')) { break; case 'update': - if (post('id_record') !== null) { - $stato_precedente = $fattura->stato; + $stato_precedente = $fattura->stato; - $stato = Stato::find(post('idstatodocumento')); - $fattura->stato()->associate($stato); + $stato = Stato::find(post('idstatodocumento')); + $fattura->stato()->associate($stato); - $tipo = Tipo::find(post('idtipodocumento')); - $fattura->tipo()->associate($tipo); + $tipo = Tipo::find(post('idtipodocumento')); + $fattura->tipo()->associate($tipo); - $fattura->data = post('data'); + $fattura->data = post('data'); - if ($dir == 'entrata') { - $fattura->data_registrazione = post('data'); - } else { - $fattura->data_registrazione = post('data_registrazione'); - } + if ($dir == 'entrata') { + $fattura->data_registrazione = post('data'); + } else { + $fattura->data_registrazione = post('data_registrazione'); + } - $fattura->data_competenza = post('data_competenza'); + $fattura->data_competenza = post('data_competenza'); + $fattura->numero_esterno = post('numero_esterno'); + $fattura->note = post('note'); + $fattura->note_aggiuntive = post('note_aggiuntive'); + + $fattura->idanagrafica = post('idanagrafica'); + $fattura->idagente = post('idagente'); + $fattura->idpagamento = post('idpagamento'); + $fattura->idbanca = post('idbanca'); + $fattura->idcausalet = post('idcausalet'); + $fattura->idspedizione = post('idspedizione'); + $fattura->idporto = post('idporto'); + $fattura->idaspettobeni = post('idaspettobeni'); + $fattura->idvettore = post('idvettore'); + $fattura->idsede_partenza = post('idsede_partenza'); + $fattura->idsede_destinazione = post('idsede_destinazione'); + $fattura->idconto = post('idconto'); + $fattura->split_payment = post('split_payment') ?: 0; + $fattura->is_fattura_conto_terzi = post('is_fattura_conto_terzi') ?: 0; + $fattura->n_colli = post('n_colli'); + $fattura->tipo_resa = post('tipo_resa'); + + $fattura->rivalsainps = 0; + $fattura->ritenutaacconto = 0; + $fattura->iva_rivalsainps = 0; + $fattura->id_ritenuta_contributi = post('id_ritenuta_contributi') ?: null; + + $fattura->codice_stato_fe = post('codice_stato_fe') ?: null; + + // Informazioni per le fatture di acquisto + if ($dir == 'uscita') { + $fattura->numero = post('numero'); $fattura->numero_esterno = post('numero_esterno'); - $fattura->note = post('note'); - $fattura->note_aggiuntive = post('note_aggiuntive'); + $fattura->idrivalsainps = post('id_rivalsa_inps'); + $fattura->idritenutaacconto = post('id_ritenuta_acconto'); + } - $fattura->idanagrafica = post('idanagrafica'); - $fattura->idagente = post('idagente'); - $fattura->idpagamento = post('idpagamento'); - $fattura->idbanca = post('idbanca'); - $fattura->idcausalet = post('idcausalet'); - $fattura->idspedizione = post('idspedizione'); - $fattura->idporto = post('idporto'); - $fattura->idaspettobeni = post('idaspettobeni'); - $fattura->idvettore = post('idvettore'); - $fattura->idsede_partenza = post('idsede_partenza'); - $fattura->idsede_destinazione = post('idsede_destinazione'); - $fattura->idconto = post('idconto'); - $fattura->split_payment = post('split_payment') ?: 0; - $fattura->is_fattura_conto_terzi = post('is_fattura_conto_terzi') ?: 0; - $fattura->n_colli = post('n_colli'); - $fattura->tipo_resa = post('tipo_resa'); + // Operazioni sul bollo + $fattura->addebita_bollo = post('addebita_bollo'); + $bollo_automatico = post('bollo_automatico'); + if (empty($bollo_automatico)) { + $fattura->bollo = post('bollo'); + } else { + $fattura->bollo = null; + } - $fattura->rivalsainps = 0; - $fattura->ritenutaacconto = 0; - $fattura->iva_rivalsainps = 0; - $fattura->id_ritenuta_contributi = post('id_ritenuta_contributi') ?: null; + // Operazioni sulla dichiarazione d'intento + $dichiarazione_precedente = $fattura->dichiarazione; + $fattura->id_dichiarazione_intento = post('id_dichiarazione_intento') ?: null; - $fattura->codice_stato_fe = post('codice_stato_fe') ?: null; + $fattura->save(); - // Informazioni per le fatture di acquisto - if ($dir == 'uscita') { - $fattura->numero = post('numero'); - $fattura->numero_esterno = post('numero_esterno'); - $fattura->idrivalsainps = post('id_rivalsa_inps'); - $fattura->idritenutaacconto = post('id_ritenuta_acconto'); - } + if ($fattura->direzione == 'entrata' && $stato_precedente->descrizione == 'Bozza' && $stato['descrizione'] == 'Emessa') { + // Generazione automatica della Fattura Elettronica + $stato_fe = empty($fattura->codice_stato_fe) || in_array($fattura->codice_stato_fe, ['GEN', 'NS', 'EC02']); + $checks = FatturaElettronica::controllaFattura($fattura); + if ($stato_fe && empty($checks)) { + try { + $fattura_pa = new FatturaElettronica($id_record); + $file = $fattura_pa->save(DOCROOT.'/'.FatturaElettronica::getDirectory()); - // Operazioni sul bollo - $fattura->addebita_bollo = post('addebita_bollo'); - $bollo_automatico = post('bollo_automatico'); - if (empty($bollo_automatico)) { - $fattura->bollo = post('bollo'); - } else { - $fattura->bollo = null; - } + flash()->info(tr('Fattura elettronica generata correttamente!')); - // Operazioni sulla dichiarazione d'intento - $dichiarazione_precedente = $fattura->dichiarazione; - $fattura->id_dichiarazione_intento = post('id_dichiarazione_intento') ?: null; + if (!$fattura_pa->isValid()) { + $errors = $fattura_pa->getErrors(); - $fattura->save(); - - if ($fattura->direzione == 'entrata' && $stato_precedente->descrizione == 'Bozza' && $stato['descrizione'] == 'Emessa') { - // Generazione automatica della Fattura Elettronica - $stato_fe = empty($fattura->codice_stato_fe) || in_array($fattura->codice_stato_fe, ['GEN', 'NS', 'EC02']); - $checks = FatturaElettronica::controllaFattura($fattura); - if ($stato_fe && empty($checks)) { - try { - $fattura_pa = new FatturaElettronica($id_record); - $file = $fattura_pa->save(DOCROOT.'/'.FatturaElettronica::getDirectory()); - - flash()->info(tr('Fattura elettronica generata correttamente!')); - - if (!$fattura_pa->isValid()) { - $errors = $fattura_pa->getErrors(); - - flash()->warning(tr('La fattura elettronica potrebbe avere delle irregolarità!').' '.tr('Controllare i seguenti campi: _LIST_', [ - '_LIST_' => implode(', ', $errors), - ]).'.'); - } - } catch (UnexpectedValueException $e) { + flash()->warning(tr('La fattura elettronica potrebbe avere delle irregolarità!').' '.tr('Controllare i seguenti campi: _LIST_', [ + '_LIST_' => implode(', ', $errors), + ]).'.'); } - } elseif (!empty($checks)) { - $message = tr('La fattura elettronica non è stata generata a causa di alcune informazioni mancanti').':'; + } catch (UnexpectedValueException $e) { + } + } elseif (!empty($checks)) { + $message = tr('La fattura elettronica non è stata generata a causa di alcune informazioni mancanti').':'; - foreach ($checks as $check) { - $message .= ' + foreach ($checks as $check) { + $message .= '
'.$check['name'].' '.$check['link'].'