This commit is contained in:
MatteoPistorello 2023-02-15 16:48:15 +01:00
commit 9f003043b4
6 changed files with 51 additions and 4 deletions

View File

@ -365,6 +365,7 @@ function i18n() {
return gulp.src([ return gulp.src([
config.nodeDirectory + '/**/{i18n,lang,locale,locales}/*.{js,json}', config.nodeDirectory + '/**/{i18n,lang,locale,locales}/*.{js,json}',
config.development + '/' + config.paths.js + '/i18n/**/*.{js,json}', config.development + '/' + config.paths.js + '/i18n/**/*.{js,json}',
config.nodeDirectory + '/moment/min/locales.js',
'!' + config.nodeDirectory + '/**/{src,plugins}/**', '!' + config.nodeDirectory + '/**/{src,plugins}/**',
'!' + config.nodeDirectory + '/ckeditor4/**', '!' + config.nodeDirectory + '/ckeditor4/**',
'!' + config.nodeDirectory + '/summernote/**', '!' + config.nodeDirectory + '/summernote/**',

View File

@ -19,6 +19,7 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
use Carbon\Carbon;
use Modules\Anagrafiche\Anagrafica; use Modules\Anagrafiche\Anagrafica;
use Modules\Anagrafiche\Tipo as TipoAnagrafica; use Modules\Anagrafiche\Tipo as TipoAnagrafica;
use Modules\Articoli\Articolo as ArticoloOriginale; use Modules\Articoli\Articolo as ArticoloOriginale;
@ -65,11 +66,29 @@ switch (post('op')) {
case 'update': case 'update':
$stato = Stato::find(post('idstatodocumento')); $stato = Stato::find(post('idstatodocumento'));
$fattura->stato()->associate($stato); $fattura->stato()->associate($stato);
$data = post('data');
$tipo = Tipo::find(post('idtipodocumento')); $tipo = Tipo::find(post('idtipodocumento'));
$fattura->tipo()->associate($tipo); $fattura->tipo()->associate($tipo);
$fattura->data = post('data'); $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');
}
if ($dir == 'entrata') { if ($dir == 'entrata') {
$fattura->data_registrazione = post('data'); $fattura->data_registrazione = post('data');
@ -77,8 +96,6 @@ switch (post('op')) {
$fattura->data_registrazione = post('data_registrazione'); $fattura->data_registrazione = post('data_registrazione');
} }
$fattura->data_competenza = post('data_competenza');
$fattura->numero_esterno = post('numero_esterno'); $fattura->numero_esterno = post('numero_esterno');
$fattura->note = post('note'); $fattura->note = post('note');
$fattura->note_aggiuntive = post('note_aggiuntive'); $fattura->note_aggiuntive = post('note_aggiuntive');

View File

@ -29,6 +29,7 @@ use Util\XML;
use Util\Zip; use Util\Zip;
use Modules\Fatture\Stato; use Modules\Fatture\Stato;
use Plugins\ReceiptFE\Ricevuta; use Plugins\ReceiptFE\Ricevuta;
use Carbon\Carbon;
$anagrafica_azienda = Anagrafica::find(setting('Azienda predefinita')); $anagrafica_azienda = Anagrafica::find(setting('Azienda predefinita'));
$stato_emessa = $dbo->selectOne('co_statidocumento', 'id', ['descrizione' => 'Emessa'])['id']; $stato_emessa = $dbo->selectOne('co_statidocumento', 'id', ['descrizione' => 'Emessa'])['id'];
@ -469,9 +470,33 @@ switch (post('op')) {
->get(); ->get();
foreach ($fatture as $fattura) { foreach ($fatture as $fattura) {
$data = $fattura->data;
$fattura = Fattura::find($fattura['id']); $fattura = Fattura::find($fattura['id']);
$stato_precedente = Stato::find($fattura->idstatodocumento); $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()) { if ($stato_precedente->descrizione == 'Bozza' && $fattura->isFiscale()) {
$fattura->stato()->associate($new_stato); $fattura->stato()->associate($new_stato);
$results = $fattura->save(); $results = $fattura->save();

View File

@ -119,7 +119,7 @@ switch (post('op')) {
// Se non c'è già una fattura appena creata per questo cliente, creo una fattura nuova // Se non c'è già una fattura appena creata per questo cliente, creo una fattura nuova
if (empty($id_documento)) { if (empty($id_documento)) {
if (!empty($accodare)) { if (!empty($accodare)) {
$documento = $dbo->fetchOne('SELECT co_documenti.id FROM co_documenti INNER JOIN co_statidocumento ON co_documenti.idstatodocumento = co_statidocumento.id WHERE co_statidocumento.descrizione = \'Bozza\' AND idanagrafica = '.prepare($id_anagrafica)); $documento = $dbo->fetchOne('SELECT co_documenti.id FROM co_documenti INNER JOIN co_statidocumento ON co_documenti.idstatodocumento = co_statidocumento.id INNER JOIN co_tipidocumento ON co_tipidocumento.id = co_documenti.idtipodocumento INNER JOIN zz_segments ON zz_segments.id = co_documenti.id_segment WHERE co_statidocumento.descrizione = "Bozza" AND co_documenti.idanagrafica = '.$id_anagrafica.' AND co_tipidocumento.id='.$tipo_documento['id'].' AND co_documenti.id_segment = '.$id_segment);
$id_documento = $documento['id']; $id_documento = $documento['id'];
$id_documento_cliente[$id_anagrafica] = $id_documento; $id_documento_cliente[$id_anagrafica] = $id_documento;

View File

@ -63,6 +63,7 @@ class App
'i18n/parsleyjs/|lang|.min.js', 'i18n/parsleyjs/|lang|.min.js',
'i18n/select2/|lang|.min.js', 'i18n/select2/|lang|.min.js',
'i18n/moment/|lang|.min.js', 'i18n/moment/|lang|.min.js',
'i18n/locales.min.js',
'i18n/@fullcalendar/|lang|.min.js', 'i18n/@fullcalendar/|lang|.min.js',
], ],
]; ];

View File

@ -177,3 +177,6 @@ INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`
-- Aggiunta colonna KM in vista Attività -- Aggiunta colonna KM in vista Attività
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'); 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, "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");