Ottimizzazione codice

This commit is contained in:
Pek5892 2023-02-14 16:13:11 +01:00
parent 1bb891f3b6
commit cabd93cc82
3 changed files with 40 additions and 20 deletions

View File

@ -71,25 +71,20 @@ switch (post('op')) {
$tipo = Tipo::find(post('idtipodocumento'));
$fattura->tipo()->associate($tipo);
if (setting('Imposta data emissione in base alla prima data disponibile') == 1) {
if ($dir == 'entrata') {
if ($stato->descrizione == 'Emessa'){
$data_fattura_precedente = $dbo->fetchOne('
SELECT
MAX(DATA) AS datamax
FROM
co_documenti
INNER JOIN co_statidocumento ON co_statidocumento.id = co_documenti.idstatodocumento
INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento = co_tipidocumento.id
WHERE
co_statidocumento.descrizione = "Emessa" AND co_tipidocumento.dir="entrata"');
if (Carbon::parse($data)->lessThan(Carbon::parse($data_fattura_precedente['datamax']))) {
$fattura->data = $data_fattura_precedente['datamax'];
$fattura->data_competenza = $data_fattura_precedente['datamax'];
}
}
}
$data_fattura_precedente = $dbo->fetchOne('
SELECT
MAX(DATA) AS datamax
FROM
co_documenti
INNER JOIN co_statidocumento ON co_statidocumento.id = co_documenti.idstatodocumento
INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento = co_tipidocumento.id
INNER JOIN zz_segments ON zz_segments.id = co_documenti.id_segment
WHERE
co_statidocumento.descrizione = "Emessa" AND co_tipidocumento.dir="entrata" AND co_documenti.id_segment='.$fattura->id_segment);
if ((setting('Data emissione fattura automatica') == 1) && ($dir == 'entrata') && ($stato->descrizione == 'Emessa') && (Carbon::parse($data)->lessThan(Carbon::parse($data_fattura_precedente['datamax']))) && (!empty($data_fattura_precedente['datamax']))){
$fattura->data = $data_fattura_precedente['datamax'];
$fattura->data_competenza = $data_fattura_precedente['datamax'];
} else {
$fattura->data = post('data');
$fattura->data_competenza = post('data_competenza');

View File

@ -29,6 +29,7 @@ use Util\XML;
use Util\Zip;
use Modules\Fatture\Stato;
use Plugins\ReceiptFE\Ricevuta;
use Carbon\Carbon;
$anagrafica_azienda = Anagrafica::find(setting('Azienda predefinita'));
$stato_emessa = $dbo->selectOne('co_statidocumento', 'id', ['descrizione' => 'Emessa'])['id'];
@ -469,9 +470,33 @@ switch (post('op')) {
->get();
foreach ($fatture as $fattura) {
$data = $fattura->data;
$fattura = Fattura::find($fattura['id']);
$stato_precedente = Stato::find($fattura->idstatodocumento);
$data_fattura_precedente = $dbo->fetchOne('
SELECT
MAX(DATA) AS datamax
FROM
co_documenti
INNER JOIN co_statidocumento ON co_statidocumento.id = co_documenti.idstatodocumento
INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento = co_tipidocumento.id
INNER JOIN zz_segments ON zz_segments.id = co_documenti.id_segment
WHERE
co_statidocumento.descrizione = "Emessa" AND co_tipidocumento.dir="entrata" AND co_documenti.id_segment='.$fattura->id_segment);
if ((setting('Data emissione fattura automatica') == 1) && ($dir == 'entrata') && (Carbon::parse($data)->lessThan(Carbon::parse($data_fattura_precedente['datamax']))) && (!empty($data_fattura_precedente['datamax']))){
$fattura->data = $data_fattura_precedente['datamax'];
$fattura->data_competenza = $data_fattura_precedente['datamax'];
}
if ($dir == 'entrata') {
$fattura->data_registrazione = post('data');
} else {
$fattura->data_registrazione = post('data_registrazione');
}
if ($stato_precedente->descrizione == 'Bozza' && $fattura->isFiscale()) {
$fattura->stato()->associate($new_stato);
$results = $fattura->save();

View File

@ -179,4 +179,4 @@ INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`
INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `html_format`, `search_inside`, `order_by`, `visible`, `summable`, `default`) VALUES ((SELECT id from zz_modules WHERE title = "Attività"), 'KM', 'sum(in_interventi_tecnici.km)', '29', '1', '0', '1', '0', NULL, NULL, '0', '1', '0');
-- Aggiunta impostazione data emissione automatica
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES (NULL, "Imposta data emissione in base alla prima data disponibile", '0', 'boolean', '1', 'Fatturazione', NULL, 'Imposta data emissione del documento in ciclo attivo, in base alla prima data disponibile in relazione ai documenti già emessi');
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES (NULL, "Data emissione fattura automatica", '0', 'boolean', '1', 'Fatturazione', NULL, "Impedisce l'emissione di fatture di vendita con data precedente alla data dell'ultima fattura emessa");