Merge branch 'master' of https://github.com/devcode-it/openstamanager
This commit is contained in:
commit
9f003043b4
|
@ -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/**',
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
$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 = 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');
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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',
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|
|
@ -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");
|
Loading…
Reference in New Issue