From fb53079aea2b4ae5d6d0b67b772d679626313ffc Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Tue, 9 May 2023 14:11:54 +0200 Subject: [PATCH 01/23] Fix query vista fatture di acquisto --- update/2_4_45.sql | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/update/2_4_45.sql b/update/2_4_45.sql index 649032ad2..e55ed2105 100644 --- a/update/2_4_45.sql +++ b/update/2_4_45.sql @@ -105,4 +105,32 @@ UPDATE `em_templates` SET `body` = '

Gentile Cliente,

\n

inviamo in alleg INSERT INTO `zz_prints` (`id_module`, `is_record`, `name`, `title`, `filename`, `directory`, `previous`, `options`, `icon`, `version`, `compatibility`, `order`, `predefined`, `default`, `enabled`, `available_options`) VALUES ((SELECT id FROM zz_modules WHERE `name` = 'Anagrafiche'), 1, 'Provvigioni', 'Provvigioni', 'Provvigioni {ragione_sociale}', 'provvigione', 'idanagrafica', '', 'fa fa-print', '', '', 0, 0, 0, 1, NULL); -INSERT INTO `zz_settings` (`nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES ( "Visualizza solo promemoria assegnati", '0', 'boolean', '1', 'Applicazione', '7', 'Se abilitata permetti ai tecnici la visualizzazione dei soli promemoria in cui risultano come assegnati'); \ No newline at end of file +INSERT INTO `zz_settings` (`nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES ( "Visualizza solo promemoria assegnati", '0', 'boolean', '1', 'Applicazione', '7', 'Se abilitata permetti ai tecnici la visualizzazione dei soli promemoria in cui risultano come assegnati'); + +-- Fix query Fatture di acquisto +UPDATE `zz_modules` SET `options` = " +SELECT + |select| +FROM + `co_documenti` + LEFT JOIN `an_anagrafiche` ON `co_documenti`.`idanagrafica` = `an_anagrafiche`.`idanagrafica` + LEFT JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento` = `co_tipidocumento`.`id` + LEFT JOIN `co_statidocumento` ON `co_documenti`.`idstatodocumento` = `co_statidocumento`.`id` + LEFT JOIN `co_ritenuta_contributi` ON `co_documenti`.`id_ritenuta_contributi` = `co_ritenuta_contributi`.`id` + LEFT JOIN `co_pagamenti` ON `co_documenti`.`idpagamento` = `co_pagamenti`.`id` + LEFT JOIN (SELECT `co_banche`.`id`, CONCAT(`nome`, ' - ', `iban`) AS `descrizione` FROM `co_banche`) AS `banche` ON `banche`.`id` = `co_documenti`.`id_banca_azienda` + LEFT JOIN (SELECT `iddocumento`, GROUP_CONCAT(`co_pianodeiconti3`.`descrizione`) AS `descrizione` FROM `co_righe_documenti` INNER JOIN `co_pianodeiconti3` ON `co_pianodeiconti3`.`id` = `co_righe_documenti`.`idconto` GROUP BY iddocumento) AS `conti` ON `conti`.`iddocumento` = `co_documenti`.`id` + LEFT JOIN (SELECT `iddocumento`, SUM(`subtotale` - `sconto`) AS `totale_imponibile`, SUM(`iva`) AS `iva` FROM `co_righe_documenti` GROUP BY `iddocumento`) AS `righe` ON `co_documenti`.`id` = `righe`.`iddocumento` + LEFT JOIN (SELECT COUNT(`d`.`id`) AS `conteggio`, IF(`d`.`numero_esterno` = '', `d`.`numero`, `d`.`numero_esterno`) AS `numero_documento`, `d`.`idanagrafica` AS `anagrafica`, `id_segment` FROM `co_documenti` AS `d` + LEFT JOIN `co_tipidocumento` AS `d_tipo` ON `d`.`idtipodocumento` = `d_tipo`.`id` WHERE 1=1 AND `d_tipo`.`dir` = 'uscita' AND('|period_start|' <= `d`.`data` AND '|period_end|' >= `d`.`data` OR '|period_start|' <= `d`.`data_competenza` AND '|period_end|' >= `d`.`data_competenza`) GROUP BY `id_segment`, `numero_documento`, `d`.`idanagrafica`) AS `d` ON (`d`.`numero_documento` = IF(`co_documenti`.`numero_esterno` = '',`co_documenti`.`numero`,`co_documenti`.`numero_esterno`) AND `d`.`anagrafica` = `co_documenti`.`idanagrafica` AND `d`.`id_segment` = `co_documenti`.`id_segment`) +WHERE + 1=1 +AND + `dir` = 'uscita' |segment(`co_documenti`.`id_segment`)| |date_period(custom, '|period_start|' <= `co_documenti`.`data` AND '|period_end|' >= `co_documenti`.`data`, '|period_start|' <= `co_documenti`.`data_competenza` AND '|period_end|' >= `co_documenti`.`data_competenza` )| +GROUP BY + `co_documenti`.`id`, `d`.`conteggio` +HAVING + 2=2 +ORDER BY + `co_documenti`.`data` DESC, + CAST(IF(`co_documenti`.`numero` = '', `co_documenti`.`numero_esterno`, `co_documenti`.`numero`) AS UNSIGNED) DESC" WHERE `name` = 'Fatture di acquisto'; From 29f7a4298edc29672cb91d0b5e73ff3a1d2804b1 Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Thu, 11 May 2023 13:07:57 +0200 Subject: [PATCH 02/23] Fix #1301 --- modules/ordini/actions.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/ordini/actions.php b/modules/ordini/actions.php index 8fef72862..738e7a3c6 100755 --- a/modules/ordini/actions.php +++ b/modules/ordini/actions.php @@ -651,6 +651,12 @@ switch (post('op')) { FROM mg_prezzi_articoli WHERE id_articolo = '.prepare($id_articolo).' AND dir = '.prepare($dir).' AND id_anagrafica = '.prepare($id_anagrafica)); + // Per gli ordini fornitore imposta la quantità minima richiesta dal fornitore invece di 1 + if ($dir == 'uscita') { + $qta_minima_fornitore = $dbo->fetchOne('SELECT qta_minima FROM mg_fornitore_articolo WHERE id_articolo = '.prepare($id_articolo).' AND id_fornitore = '.prepare($id_anagrafica))['qta_minima']; + $articolo->qta = ($qta_minima_fornitore ?: 1); + } + if ($prezzi) { foreach ($prezzi as $prezzo) { if ($qta >= $prezzo['minimo'] && $qta <= $prezzo['massimo']) { From ef151a829bd35890e17477ba5f9ee119306200f7 Mon Sep 17 00:00:00 2001 From: Luca Date: Thu, 11 May 2023 14:13:37 +0200 Subject: [PATCH 03/23] Migliorie minori --- include/top.php | 4 ++-- package.json | 2 +- plugins/presentazioni_bancarie/edit.php | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/include/top.php b/include/top.php index 552011fcb..71d764d0a 100755 --- a/include/top.php +++ b/include/top.php @@ -666,7 +666,7 @@ if ($free_space < ($space_limit * (1024 ** 3))) {

'.tr('Lo spazio a disposizione del gestionale è in esaurimento: sono al momento disponibili _TOT_', [ '_TOT_' => FileSystem::formatBytes($free_space), ]).'.

-

'.tr('Questo può risultare un serio problema per la continuità di funzionamento del software, poichè le operazioni più espansive riguardanti lo spazio di archiviazione possono provocare malfunzionamento imprevedibili').'. '.tr('Operazioni di backup, caricamento di allegati o anche il semplice utilizzo del gestionale possono rendere i dati inaffidabili, provocando pertanto una perdita irreversibile delle informazioni salvate').'.

-

'.tr("Contatta gli amministratori di sistema oppure l'assistenza tecnica per risolvere al più presto il problema").'.

+

'.tr('Questo può risultare un serio problema per la continuità di funzionamento del software, poiché le operazioni più espansive che richiedono spazio di archiviazione possono causare malfunzionamenti imprevisti').'. '.tr('Ad esempio, le attività di backup, caricamento di allegati o anche l\'utilizzo normale del gestionale potrebbero rendere i dati inaffidabili, provocando pertanto una perdita delle informazioni salvate').'.

+

'.tr("Contatta gli amministratori di sistema per risolvere al più presto il problema").'.

'; } diff --git a/package.json b/package.json index 19898840f..9c87d1e32 100755 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "moment": "^2.18.1", "numeral": "^2.0.6", "parsleyjs": "^2.7.2", - "pdf.js": "intbot/ng2-pdfjs-viewer", + "pdf.js": "alekswebnet/pdfjs-viewer-element", "pwstrength-bootstrap": "^3.0.4", "select2": "^4.0.3", "select2-bootstrap-theme": "^0.1.0-beta.10", diff --git a/plugins/presentazioni_bancarie/edit.php b/plugins/presentazioni_bancarie/edit.php index de22c7b5d..eb77910ae 100644 --- a/plugins/presentazioni_bancarie/edit.php +++ b/plugins/presentazioni_bancarie/edit.php @@ -49,8 +49,8 @@ echo '
-
From 8d212f43104db42347d694fc423d95b1716149e7 Mon Sep 17 00:00:00 2001 From: Luca Date: Thu, 11 May 2023 14:14:28 +0200 Subject: [PATCH 04/23] Aggiornamento pdfjs-viewer --- gulpfile.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 64bd8956f..22b53336b 100755 --- a/gulpfile.js +++ b/gulpfile.js @@ -344,16 +344,16 @@ function csrf() { function pdfjs() { const web = gulp.src([ - config.nodeDirectory + '/pdf.js/lib/dist/pdfjs/web/**/*', - '!' + config.nodeDirectory + '/pdf.js/lib/dist/pdfjs/web/cmaps/*', - '!' + config.nodeDirectory + '/pdf.js/lib/dist/pdfjs/web/*.map', - '!' + config.nodeDirectory + '/pdf.js/lib/dist/pdfjs/web/*.pdf', + config.nodeDirectory + '/pdf.js/demo/vue/public/pdfjs-prebuilt/web/**/*', + '!' + config.nodeDirectory + '/pdf.js/demo/vue/public/pdfjs-prebuilt/web/cmaps/*', + '!' + config.nodeDirectory + '/pdf.js/demo/vue/public/pdfjs-prebuilt/web/*.map', + '!' + config.nodeDirectory + '/pdf.js/demo/vue/public/pdfjs-prebuilt/web/*.pdf', ]) .pipe(gulp.dest(config.production + '/pdfjs/web')); const build = gulp.src([ - config.nodeDirectory + '/pdf.js/lib/dist/pdfjs/build/*', - '!' + config.nodeDirectory + '/pdf.js/lib/dist/pdfjs/build/*.map', + config.nodeDirectory + '/pdf.js/demo/vue/public/pdfjs-prebuilt/build/*', + '!' + config.nodeDirectory + '/pdf.js/demo/vue/public/pdfjs-prebuilt/build/*.map', ]) .pipe(gulp.dest(config.production + '/pdfjs/build')); From 22285f9abadfb0f896d6690473c43fa98323e630 Mon Sep 17 00:00:00 2001 From: Beppe Date: Thu, 11 May 2023 14:25:43 +0200 Subject: [PATCH 05/23] Fix sconti in pianificazione fatturazione contratti --- plugins/pianificazione_fatturazione/actions.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/pianificazione_fatturazione/actions.php b/plugins/pianificazione_fatturazione/actions.php index ed3a9aed4..e8378589c 100755 --- a/plugins/pianificazione_fatturazione/actions.php +++ b/plugins/pianificazione_fatturazione/actions.php @@ -118,7 +118,7 @@ switch ($operazione) { if( $cadenza_fatturazione=='Fine' ){ $fine = Carbon\Carbon::parse($fine)->endOfMonth()->format("Y-m-d"); } - $prezzo_unitario = setting('Utilizza prezzi di vendita comprensivi di IVA') ? (($r->subtotale + $r->iva) / $r->qta) : ($r->subtotale / $r->qta); + $prezzo_unitario = setting('Utilizza prezzi di vendita comprensivi di IVA') ? (( ($r->subtotale-$r->sconto) + $r->iva) / $r->qta) : ( ($r->subtotale-$r->sconto) / $r->qta); if (!empty($r->idarticolo)) { $articolo = ArticoloOriginale::find($r->idarticolo); From f4ed9940a02b4b65e4d2e5463f06283912354145 Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Thu, 11 May 2023 14:27:56 +0200 Subject: [PATCH 06/23] aggiornamento CHANGELOG --- CHANGELOG.md | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f5fc29d09..cbed23188 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ Tutti i maggiori cambiamenti di questo progetto saranno documentati in questo fi Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://keepachangelog.com/), e il progetto segue il [Semantic Versioning](http://semver.org/) per definire le versioni delle release. +- [2.4.45 (2023-05-12)](#2445-2023-05-12) - [2.4.44 (2023-04-21)](#2444-2023-04-21) - [2.4.43 (2023-03-31)](#2443-2023-03-31) - [2.4.42 (2023-03-10)](#2442-2023-03-10) @@ -55,7 +56,29 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k - [2.2 (2016-11-10)](#22-2016-11-10) - [2.1 (2015-04-02)](#21-2015-04-02) - +## 2.4.45 (2023-05-12) +### Aggiunto (Added) +- Aggiunta l'importazione dei preventivi da CSV +- Aggiunta Confronta prezzo da azioni di gruppo sulle righe dei documenti +- Aggiunta stampa liquidazione provvigioni +- Aggiunta impostazione Visualizza solo promemoria assegnati +### Modificato (Changed) +- Allineati i nomi delle colonne dei totali nei documenti +- Migliorata la gestione dell'unità di misura secondaria degli articoli +- Migliorati i filtri = e != nelle tabelle +- Ripristinato l'aggiornamento ajax delle checklist dopo la spunta +- Corretta l'impostazione della partita IVA nella generazione degli XML +- Corretta la gestione delle quantità nelle righe degli ordini fornitori in base alla quantità minima da listino +### Fixed +- Corretta l'impostazione del prezzo articolo da listino in Contratti e Preventivi +- Corretta l'eliminazione dei range nei listini +- Corretta la conferma delle righe dei documenti +- Corretta l'impostazione dell'agente nella creazione di documenti +- Corretto il riferimento fattura nei Preventivi e Ordini +- Corrette le viste Attività e Fatture d'acquisto +- Corretta la visualizzazione della data registrazione nella lista di importazione fatture elettroniche +- Corretta l'esportazione delle scadenze dei bonifici +- Corretta l'impostazione degli sconti in pianificazione fatturazione da contratti ## 2.4.44 (2023-04-21) ### Aggiunto (Added) - Aggiunto il cambio di stato dei preventivi da azioni di gruppo From 30cd0d275a0a3af147d166583213aea7564b176c Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Thu, 11 May 2023 16:06:25 +0200 Subject: [PATCH 07/23] Fix gulp-sass --- gulpfile.js | 2 +- package.json | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 22b53336b..27d9ff388 100755 --- a/gulpfile.js +++ b/gulpfile.js @@ -29,7 +29,7 @@ const minifyCSS = require('gulp-clean-css'); const minifyJSON = require('gulp-json-minify'); // Interpretatori CSS -const sass = require('gulp-sass'); +const sass = require('gulp-sass')(require('sass')); const less = require('gulp-less'); const stylus = require('gulp-stylus'); const autoprefixer = require('gulp-autoprefixer'); diff --git a/package.json b/package.json index 9c87d1e32..bff3794c2 100755 --- a/package.json +++ b/package.json @@ -61,12 +61,13 @@ "gulp-json-minify": "^1.0.5", "gulp-less": "^4.0.1", "gulp-rename": "^1.4.0", - "gulp-sass": "^4.1.1", + "gulp-sass": "^5.1.0", "gulp-stylus": "^2.6.0", "gulp-uglify": "^3.0.2", "inquirer": "^4.0.1", "main-bower-files": "^2.13.1", "md5-file": "^5.0.0", + "sass": "^1.62.1", "shelljs": ">=0.8.5" }, "scripts": { From a45237a0f98a5f83a854484149ba9aed67f6272c Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Thu, 11 May 2023 16:38:19 +0200 Subject: [PATCH 08/23] Fix minore --- modules/anagrafiche/buttons.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/anagrafiche/buttons.php b/modules/anagrafiche/buttons.php index 92dbcac26..aa56e5587 100755 --- a/modules/anagrafiche/buttons.php +++ b/modules/anagrafiche/buttons.php @@ -74,10 +74,10 @@ if (in_array($id_cliente, $tipi_anagrafica) or in_array($id_fornitore, $tipi_ana echo ' '; -} else if (in_array($id_agente, $tipi_anagrafica)) { +} + +if (in_array($id_agente, $tipi_anagrafica)) { //Aggiunta liquidazione provvigioni per agente echo' - - -'; + '; } From 68b4e68275f04d416b1b5d563f1e7cf33938c410 Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Fri, 12 May 2023 09:53:26 +0200 Subject: [PATCH 09/23] Fix minore pianificazione interventi --- .../pianificazione_interventi/pianificazione.php | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/plugins/pianificazione_interventi/pianificazione.php b/plugins/pianificazione_interventi/pianificazione.php index 6f4401cd0..f7f41025a 100755 --- a/plugins/pianificazione_interventi/pianificazione.php +++ b/plugins/pianificazione_interventi/pianificazione.php @@ -120,9 +120,18 @@ echo '
-
- {[ "type": "textarea", "label": "'.tr('Descrizione').'", "name": "richiesta", "id": "richiesta_", "readonly": '.intval($block_edit).', "value": "'.$record['richiesta'].'" ]} -
+
'; + echo input([ + 'type' => 'ckeditor', + 'label' => tr('Richiesta'), + 'name' => 'richiesta', + 'required' => 1, + 'readonly' => $record['flag_completato'], + 'extra' => 'rows="5"', + 'value' => $record['richiesta'], + ]); + echo ' +
'; From 979d603396655d0e18c4bc96d735b9856fcf1e36 Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Fri, 12 May 2023 11:09:54 +0200 Subject: [PATCH 10/23] Fix query viste con email multiple --- update/2_4_45.sql | 42 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/update/2_4_45.sql b/update/2_4_45.sql index e55ed2105..403136624 100644 --- a/update/2_4_45.sql +++ b/update/2_4_45.sql @@ -6,6 +6,8 @@ UPDATE `zz_views` SET `name` = 'Totale documento' WHERE `name` = 'Totale ivato'; UPDATE `zz_views` SET `name` = 'Imponibile' WHERE `name` = 'Totale'; -- Fix query Preventivi +INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `visible`, `default`) VALUES((SELECT `id` FROM `zz_modules` WHERE `name` = 'Preventivi'), 'icon_Inviata', 'IF(emails IS NOT NULL, \'fa fa-envelope text-success\', \'\')', 16, 1, 0, 0, 1, 0); +INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `visible`, `default`) VALUES((SELECT `id` FROM `zz_modules` WHERE `name` = 'Preventivi'), 'icon_title_Inviata', 'IF(emails IS NOT NULL, \'Inviato via email\', \'\')', 17, 1, 0, 0, 0, 0); UPDATE `zz_modules` SET `options` = " SELECT |select| @@ -16,6 +18,7 @@ FROM LEFT JOIN (SELECT `idpreventivo`, SUM(`subtotale` - `sconto`) AS `totale_imponibile`, SUM(`subtotale` - `sconto` + `iva`) AS `totale` FROM `co_righe_preventivi` GROUP BY `idpreventivo`) AS righe ON `co_preventivi`.`id` = `righe`.`idpreventivo` LEFT JOIN (SELECT `an_anagrafiche`.`idanagrafica`, `an_anagrafiche`.`ragione_sociale` AS nome FROM `an_anagrafiche`)AS agente ON `agente`.`idanagrafica`=`co_preventivi`.`idagente` LEFT JOIN (SELECT GROUP_CONCAT(DISTINCT `co_documenti`.`numero_esterno` SEPARATOR ', ') AS `info`, `co_righe_documenti`.`original_document_id` AS `idpreventivo` FROM `co_documenti` INNER JOIN `co_righe_documenti` ON `co_documenti`.`id` = `co_righe_documenti`.`iddocumento` WHERE `original_document_type`='Modules\\\\Preventivi\\\\Preventivo' GROUP BY `idpreventivo`, `original_document_id`) AS `fattura` ON `fattura`.`idpreventivo` = `co_preventivi`.`id` + LEFT JOIN (SELECT COUNT(id) as emails, em_emails.id_record FROM em_emails INNER JOIN zz_operations ON zz_operations.id_email = em_emails.id WHERE id_module IN(SELECT id FROM zz_modules WHERE name = 'Preventivi') AND `zz_operations`.`op` = 'send-email' GROUP BY em_emails.id_record) AS `email` ON `email`.`id_record` = `co_preventivi`.`id` WHERE 1=1 |segment(`co_preventivi`.`id_segment`)| |date_period(custom,'|period_start|' >= `data_bozza` AND '|period_start|' <= `data_conclusione`,'|period_end|' >= `data_bozza` AND '|period_end|' <= `data_conclusione`,`data_bozza` >= '|period_start|' AND `data_bozza` <= '|period_end|',`data_conclusione` >= '|period_start|' AND `data_conclusione` <= '|period_end|',`data_bozza` >= '|period_start|' AND `data_conclusione` = NULL)| AND `default_revision` = 1 GROUP BY @@ -26,6 +29,8 @@ ORDER BY `co_preventivi`.`id` DESC" WHERE `name` = 'Preventivi'; -- Fix query vista Attività +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'IF(emails IS NOT NULL, \'fa fa-envelope text-success\', \'\')' WHERE `zz_modules`.`name` = 'Interventi' AND `zz_views`.`name` = 'icon_Inviata'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'IF(emails IS NOT NULL, \'Inviata via email\', \'\')' WHERE `zz_modules`.`name` = 'Interventi' AND `zz_views`.`name` = 'icon_title_Inviata'; UPDATE `zz_modules` SET `options` = " SELECT |select| @@ -41,7 +46,7 @@ FROM LEFT JOIN (SELECT GROUP_CONCAT(DISTINCT `co_documenti`.`numero_esterno` SEPARATOR ', ') AS `info`, `co_righe_documenti`.`original_document_id` AS `idintervento` FROM `co_documenti` INNER JOIN `co_righe_documenti` ON `co_documenti`.`id` = `co_righe_documenti`.`iddocumento` WHERE `original_document_type` = 'Modules\\\\Interventi\\\\Intervento' GROUP BY `idintervento`, `original_document_id`) AS `fattura` ON `fattura`.`idintervento` = `in_interventi`.`id` LEFT JOIN (SELECT `in_interventi_tecnici_assegnati`.`id_intervento`, GROUP_CONCAT( DISTINCT `ragione_sociale` SEPARATOR ', ') AS `nomi` FROM `an_anagrafiche` INNER JOIN `in_interventi_tecnici_assegnati` ON `in_interventi_tecnici_assegnati`.`id_tecnico` = `an_anagrafiche`.`idanagrafica` GROUP BY `id_intervento`) AS `tecnici_assegnati` ON `in_interventi`.`id` = `tecnici_assegnati`.`id_intervento` LEFT JOIN (SELECT `in_interventi_tecnici`.`idintervento`, GROUP_CONCAT( DISTINCT `ragione_sociale` SEPARATOR ', ') AS `nomi` FROM `an_anagrafiche` INNER JOIN `in_interventi_tecnici` ON `in_interventi_tecnici`.`idtecnico` = `an_anagrafiche`.`idanagrafica` GROUP BY `idintervento`) AS `tecnici` ON `in_interventi`.`id` = `tecnici`.`idintervento` - LEFT JOIN (SELECT `zz_operations`.`id_email`, `zz_operations`.`id_record` FROM `zz_operations` INNER JOIN `em_emails` ON `zz_operations`.`id_email` = `em_emails`.`id` INNER JOIN `em_templates` ON `em_emails`.`id_template` = `em_templates`.`id` INNER JOIN `zz_modules` ON `zz_operations`.`id_module` = `zz_modules`.`id` WHERE `zz_modules`.`name` = 'Interventi' AND `zz_operations`.`op` = 'send-email' GROUP BY `zz_operations`.`id_record`, `id_email`) AS `email` ON `email`.`id_record`=`in_interventi`.`id` + LEFT JOIN (SELECT COUNT(id) as emails, em_emails.id_record FROM em_emails INNER JOIN zz_operations ON zz_operations.id_email = em_emails.id WHERE id_module IN(SELECT id FROM zz_modules WHERE name = 'Interventi') AND `zz_operations`.`op` = 'send-email' GROUP BY em_emails.id_record) AS `email` ON `email`.`id_record` = `in_interventi`.`id` LEFT JOIN (SELECT GROUP_CONCAT(CONCAT(`matricola`, IF(`nome` != '', CONCAT(' - ', `nome`), '')) SEPARATOR '
') AS `descrizione`, `my_impianti_interventi`.`idintervento` FROM `my_impianti` INNER JOIN `my_impianti_interventi` ON `my_impianti`.`id` = `my_impianti_interventi`.`idimpianto` GROUP BY `my_impianti_interventi`.`idintervento`) AS `impianti` ON `impianti`.`idintervento` = `in_interventi`.`id` LEFT JOIN (SELECT `co_contratti`.`id`, CONCAT(`co_contratti`.`numero`, ' del ', DATE_FORMAT(`data_bozza`, '%d/%m/%Y')) AS `info` FROM `co_contratti`) AS `contratto` ON `contratto`.`id` = `in_interventi`.`id_contratto` LEFT JOIN (SELECT `co_preventivi`.`id`, CONCAT(`co_preventivi`.`numero`, ' del ', DATE_FORMAT(`data_bozza`, '%d/%m/%Y')) AS `info` FROM `co_preventivi`) AS `preventivo` ON `preventivo`.`id` = `in_interventi`.`id_preventivo` @@ -57,6 +62,8 @@ ORDER BY IFNULL(`orario_fine`, `data_richiesta`) DESC" WHERE `name` = 'Interventi'; -- Fix query Ordini cliente +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'IF(emails IS NOT NULL, \'fa fa-envelope text-success\', \'\')' WHERE `zz_modules`.`name` = 'Ordini cliente' AND `zz_views`.`name` = 'icon_Inviata'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`name` = 'icon_Inviato' WHERE `zz_modules`.`name` = 'Ordini cliente' AND `zz_views`.`name` = 'icon_Inviata'; UPDATE `zz_modules` SET `options` = " SELECT |select| @@ -68,7 +75,7 @@ FROM LEFT JOIN (SELECT `idordine`, MIN(`data_evasione`) AS `data_evasione` FROM `or_righe_ordini` WHERE (`qta` - `qta_evasa`)>0 GROUP BY `idordine`) AS `righe_da_evadere` ON `righe`.`idordine`=`righe_da_evadere`.`idordine` LEFT JOIN `or_statiordine` ON `or_statiordine`.`id` = `or_ordini`.`idstatoordine` LEFT JOIN (SELECT GROUP_CONCAT(DISTINCT `co_documenti`.`numero_esterno` SEPARATOR ', ') AS `info`, `co_righe_documenti`.`original_document_id` AS `idordine` FROM `co_documenti` INNER JOIN `co_righe_documenti` ON `co_documenti`.`id` = `co_righe_documenti`.`iddocumento` WHERE `original_document_type`='Modules\\\\Ordini\\\\Ordine' GROUP BY `idordine`, `original_document_id`) AS `fattura` ON `fattura`.`idordine` = `or_ordini`.`id` - LEFT JOIN (SELECT `zz_operations`.`id_email`, `zz_operations`.`id_record` FROM `zz_operations` INNER JOIN `em_emails` ON `zz_operations`.`id_email` = `em_emails`.`id` INNER JOIN `em_templates` ON `em_emails`.`id_template` = `em_templates`.`id` INNER JOIN `zz_modules` ON `zz_operations`.`id_module` = `zz_modules`.`id` WHERE `zz_modules`.`name` = 'Ordini cliente' AND `zz_operations`.`op` = 'send-email' GROUP BY `zz_operations`.`id_record`, `id_email`) AS `email` ON `email`.`id_record` = `or_ordini`.`id` + LEFT JOIN (SELECT COUNT(id) as emails, em_emails.id_record FROM em_emails INNER JOIN zz_operations ON zz_operations.id_email = em_emails.id WHERE id_module IN(SELECT id FROM zz_modules WHERE name = 'Ordini cliente') AND `zz_operations`.`op` = 'send-email' GROUP BY em_emails.id_record) AS `email` ON `email`.`id_record` = `or_ordini`.`id` WHERE 1=1 |segment(`or_ordini`.`id_segment`)| AND `dir` = 'entrata' |date_period(`or_ordini`.`data`)| HAVING @@ -78,6 +85,8 @@ ORDER BY CAST(`numero_esterno` AS UNSIGNED) DESC" WHERE `name` = 'Ordini cliente'; -- Fix query Ordini fornitore +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'IF(emails IS NOT NULL, \'fa fa-envelope text-success\', \'\')' WHERE `zz_modules`.`name` = 'Ordini fornitore' AND `zz_views`.`name` = 'icon_Inviata'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`name` = 'icon_Inviato' WHERE `zz_modules`.`name` = 'Ordini fornitore' AND `zz_views`.`name` = 'icon_Inviata'; UPDATE `zz_modules` SET `options` = " SELECT |select| @@ -89,7 +98,7 @@ FROM LEFT JOIN (SELECT `idordine`, MIN(`data_evasione`) AS `data_evasione` FROM `or_righe_ordini` WHERE (`qta` - `qta_evasa`)>0 GROUP BY `idordine`) AS `righe_da_evadere` ON `righe`.`idordine`=`righe_da_evadere`.`idordine` LEFT JOIN `or_statiordine` ON `or_statiordine`.`id` = `or_ordini`.`idstatoordine` LEFT JOIN (SELECT GROUP_CONCAT(DISTINCT co_documenti.numero_esterno SEPARATOR ', ') AS info, co_righe_documenti.original_document_id AS idordine FROM co_documenti INNER JOIN co_righe_documenti ON co_documenti.id = co_righe_documenti.iddocumento WHERE original_document_type='Modules\\\\Ordini\\\\Ordine' GROUP BY idordine, original_document_id) AS fattura ON fattura.idordine = or_ordini.id - LEFT JOIN (SELECT `zz_operations`.`id_email`, `zz_operations`.`id_record` FROM `zz_operations` INNER JOIN `em_emails` ON `zz_operations`.`id_email` = `em_emails`.`id` INNER JOIN `em_templates` ON `em_emails`.`id_template` = `em_templates`.`id` INNER JOIN `zz_modules` ON `zz_operations`.`id_module` = `zz_modules`.`id` WHERE `zz_modules`.`name` = 'Ordini fornitore' AND `zz_operations`.`op` = 'send-email' GROUP BY `zz_operations`.`id_record`, `id_email`) AS `email` ON `email`.`id_record` = `or_ordini`.`id` + LEFT JOIN (SELECT COUNT(id) as emails, em_emails.id_record FROM em_emails INNER JOIN zz_operations ON zz_operations.id_email = em_emails.id WHERE id_module IN(SELECT id FROM zz_modules WHERE name = 'Ordini fornitore') AND `zz_operations`.`op` = 'send-email' GROUP BY em_emails.id_record) AS `email` ON `email`.`id_record` = `or_ordini`.`id` WHERE 1=1 |segment(`or_ordini`.`id_segment`)| AND `dir` = 'uscita' |date_period(`or_ordini`.`data`)| HAVING @@ -134,3 +143,30 @@ HAVING ORDER BY `co_documenti`.`data` DESC, CAST(IF(`co_documenti`.`numero` = '', `co_documenti`.`numero_esterno`, `co_documenti`.`numero`) AS UNSIGNED) DESC" WHERE `name` = 'Fatture di acquisto'; + +-- Fix query vista Fatture di vendita +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'IF(emails IS NOT NULL, \'fa fa-envelope text-success\', \'\')' WHERE `zz_modules`.`name` = 'Fatture di vendita' AND `zz_views`.`name` = 'icon_Inviata'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'IF(emails IS NOT NULL, \'Inviata via email\', \'\')' WHERE `zz_modules`.`name` = 'Fatture di vendita' AND `zz_views`.`name` = 'icon_title_Inviata'; +UPDATE `zz_modules` SET `options` = " +SELECT + |select| +FROM + `co_documenti` + LEFT JOIN (SELECT SUM(`totale`) AS `totale`, `iddocumento` FROM `co_movimenti` WHERE `totale` > 0 AND `primanota` = 1 GROUP BY `iddocumento`) AS `primanota` ON `primanota`.`iddocumento` = `co_documenti`.`id` + LEFT JOIN `an_anagrafiche` ON `co_documenti`.`idanagrafica` = `an_anagrafiche`.`idanagrafica` + LEFT JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento` = `co_tipidocumento`.`id` + LEFT JOIN (SELECT `iddocumento`, SUM(`subtotale` - `sconto`) AS `totale_imponibile`, SUM(`iva`) AS `iva` FROM `co_righe_documenti` GROUP BY `iddocumento`) AS righe ON `co_documenti`.`id` = `righe`.`iddocumento` + LEFT JOIN (SELECT `co_banche`.`id`, CONCAT(`co_banche`.`nome`, ' - ', `co_banche`.`iban`) AS descrizione FROM `co_banche` GROUP BY `co_banche`.`id`) AS banche ON `banche`.`id` =`co_documenti`.`id_banca_azienda` + LEFT JOIN `co_statidocumento` ON `co_documenti`.`idstatodocumento` = `co_statidocumento`.`id` + LEFT JOIN `fe_stati_documento` ON `co_documenti`.`codice_stato_fe` = `fe_stati_documento`.`codice` + LEFT JOIN `co_ritenuta_contributi` ON `co_documenti`.`id_ritenuta_contributi` = `co_ritenuta_contributi`.`id` + LEFT JOIN (SELECT COUNT(id) as emails, em_emails.id_record FROM em_emails INNER JOIN zz_operations ON zz_operations.id_email = em_emails.id WHERE id_module IN(SELECT id FROM zz_modules WHERE name = 'Fatture di vendita') AND `zz_operations`.`op` = 'send-email' GROUP BY em_emails.id_record) AS `email` ON `email`.`id_record` = `co_documenti`.`id` + LEFT JOIN `co_pagamenti` ON `co_documenti`.`idpagamento` = `co_pagamenti`.`id` + LEFT JOIN (SELECT `numero_esterno`, `id_segment`, `idtipodocumento`, `data` FROM `co_documenti` WHERE `co_documenti`.`idtipodocumento` IN( SELECT `id` FROM `co_tipidocumento` WHERE `dir` = 'entrata' |date_period(`co_documenti`.`data`)| ) AND `numero_esterno` != '' GROUP BY `id_segment`, `numero_esterno`, `idtipodocumento`, `data` HAVING COUNT(`numero_esterno`) > 1) dup ON `co_documenti`.`numero_esterno` = `dup`.`numero_esterno` AND `dup`.`id_segment` = `co_documenti`.`id_segment` AND `dup`.`idtipodocumento` = `co_documenti`.`idtipodocumento` AND `dup`.`data` = `co_documenti`.`data` +WHERE + 1=1 AND `dir` = 'entrata' |segment(`co_documenti`.`id_segment`)| |date_period(`co_documenti`.`data`)| +HAVING + 2=2 +ORDER BY + `co_documenti`.`data` DESC, + CAST(`co_documenti`.`numero_esterno` AS UNSIGNED) DESC" WHERE `name` = 'Fatture di vendita'; \ No newline at end of file From 22fa25dd364ae4b2cd95bd6f2e78082302df14c1 Mon Sep 17 00:00:00 2001 From: loviuz Date: Fri, 12 May 2023 11:46:01 +0200 Subject: [PATCH 11/23] =?UTF-8?q?Rimozione=20obbligatoriet=C3=A0=20descriz?= =?UTF-8?q?ione?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/interventi/add.php | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/interventi/add.php b/modules/interventi/add.php index 798b2e2aa..949f36ae9 100755 --- a/modules/interventi/add.php +++ b/modules/interventi/add.php @@ -238,7 +238,6 @@ echo ' 'label' => tr('Descrizione'), 'name' => 'descrizione', 'id' => 'descrizione_add', - 'required' => '1', 'value' => htmlentities($descrizione), 'extra' => 'style=\'max-height:80px;\'', ]); From 0af69cb1840b8366da43618bd7d3ea608626095f Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Fri, 12 May 2023 16:12:43 +0200 Subject: [PATCH 12/23] Fix #1302 --- templates/registro_iva/bottom.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/templates/registro_iva/bottom.php b/templates/registro_iva/bottom.php index a53851d0c..de9f050c1 100755 --- a/templates/registro_iva/bottom.php +++ b/templates/registro_iva/bottom.php @@ -19,8 +19,8 @@ include_once __DIR__.'/../../core.php'; -$totale_iva = sum(array_column($records, 'iva')); -$totale_subtotale = sum(array_column($records, 'subtotale')); +$totale_iva = sum(array_column($records, 'iva'), null, 2); +$totale_subtotale = sum(array_column($records, 'subtotale'), null, 2); echo ' @@ -42,8 +42,8 @@ echo ' foreach ($iva as $descrizione => $tot_iva) { if (!empty($descrizione)) { - $somma_iva = sum($iva[$descrizione]); - $somma_totale = sum($totale[$descrizione]); + $somma_iva = sum($iva[$descrizione], null, 2); + $somma_totale = sum($totale[$descrizione], null, 2); echo ' From 67a2c5c83eb3c2ef1611a0a39b74f1f188d23cb6 Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Mon, 15 May 2023 09:41:11 +0200 Subject: [PATCH 13/23] Fix visualizzazione scadenze doppie --- update/2_4_46.sql | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 update/2_4_46.sql diff --git a/update/2_4_46.sql b/update/2_4_46.sql new file mode 100644 index 000000000..2efe1a273 --- /dev/null +++ b/update/2_4_46.sql @@ -0,0 +1,22 @@ + +-- Fix query Scadenzario +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'IF(emails IS NOT NULL, \'fa fa-envelope text-success\', \'\')' WHERE `zz_modules`.`name` = 'Scadenzario' AND `zz_views`.`name` = 'icon_Inviato'; +UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'IF(emails IS NOT NULL, \'Inviata via email\', \'\')' WHERE `zz_modules`.`name` = 'Scadenzario' AND `zz_views`.`name` = 'icon_title_Inviato'; +UPDATE `zz_modules` SET `options` = " +SELECT + |select| +FROM + `co_scadenziario` + LEFT JOIN `co_documenti` ON `co_scadenziario`.`iddocumento` = `co_documenti`.`id` + LEFT JOIN `co_banche` ON `co_banche`.`id` = `co_documenti`.`id_banca_azienda` + LEFT JOIN `an_anagrafiche` ON `co_scadenziario`.`idanagrafica` = `an_anagrafiche`.`idanagrafica` + LEFT JOIN `co_pagamenti` ON `co_documenti`.`idpagamento` = `co_pagamenti`.`id` + LEFT JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento` = `co_tipidocumento`.`id` + LEFT JOIN `co_statidocumento` ON `co_documenti`.`idstatodocumento` = `co_statidocumento`.`id` + LEFT JOIN (SELECT COUNT(id) as emails, em_emails.id_record FROM em_emails INNER JOIN zz_operations ON zz_operations.id_email = em_emails.id WHERE id_module IN(SELECT id FROM zz_modules WHERE name = 'Scadenzario') AND `zz_operations`.`op` = 'send-email' GROUP BY em_emails.id_record) AS `email` ON `email`.`id_record` = `co_scadenziario`.`id` +WHERE + 1=1 AND (`co_statidocumento`.`descrizione` IS NULL OR `co_statidocumento`.`descrizione` IN('Emessa','Parzialmente pagato','Pagato')) +HAVING + 2=2 +ORDER BY + `scadenza` ASC" WHERE `name` = 'Scadenzario'; \ No newline at end of file From abe6120845218a5569012d5a0fe5afd9bac8ab5e Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Mon, 15 May 2023 10:18:56 +0200 Subject: [PATCH 14/23] Fix arrotondamento stampa liquidazione iva --- templates/liquidazione_iva/init.php | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/templates/liquidazione_iva/init.php b/templates/liquidazione_iva/init.php index 425d4b4c1..95c5d9e7a 100644 --- a/templates/liquidazione_iva/init.php +++ b/templates/liquidazione_iva/init.php @@ -46,7 +46,7 @@ $iva_vendite_esigibile = $dbo->fetchArray(' cod_iva, aliquota, descrizione, - SUM(iva) AS iva, + SUM(round(iva, 2)) AS iva, SUM(subtotale) AS subtotale FROM ( @@ -95,7 +95,7 @@ $iva_vendite = $dbo->fetchArray(' cod_iva, aliquota, descrizione, - SUM(iva) AS iva, + SUM(round(iva, 2)) AS iva, SUM(subtotale) AS subtotale FROM ( @@ -143,7 +143,7 @@ $iva_vendite_anno_precedente = $dbo->fetchArray(' cod_iva, aliquota, descrizione, - SUM(iva) AS iva, + SUM(round(iva, 2)) AS iva, SUM(subtotale) AS subtotale FROM ( @@ -191,7 +191,7 @@ $iva_vendite_periodo_precedente = $dbo->fetchArray(' cod_iva, aliquota, descrizione, - SUM(iva) AS iva, + SUM(round(iva, 2)) AS iva, SUM(subtotale) AS subtotale FROM ( @@ -243,7 +243,7 @@ $iva_vendite_esigibile = $dbo->fetchArray(' co_iva.codice_natura_fe AS cod_iva, co_iva.percentuale AS aliquota, co_iva.descrizione AS descrizione, - SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva, + SUM(round((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 )), 2)) AS iva, SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS subtotale FROM co_iva @@ -260,7 +260,7 @@ $iva_vendite = $dbo->fetchArray(' co_iva.codice_natura_fe AS cod_iva, co_iva.percentuale AS aliquota, co_iva.descrizione AS descrizione, - SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva, + SUM(round((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 )), 2)) AS iva, SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS subtotale FROM co_iva @@ -277,7 +277,7 @@ $iva_vendite_anno_precedente = $dbo->fetchArray(' co_iva.codice_natura_fe AS cod_iva, co_iva.percentuale AS aliquota, co_iva.descrizione AS descrizione, - SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva, + SUM(round((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 )), 2)) AS iva, SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS subtotale FROM co_iva @@ -294,7 +294,7 @@ $iva_vendite_periodo_precedente = $dbo->fetchArray(' co_iva.codice_natura_fe AS cod_iva, co_iva.percentuale AS aliquota, co_iva.descrizione AS descrizione, - SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva, + SUM(round((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 )), 2)) AS iva, SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS subtotale FROM co_iva @@ -312,7 +312,7 @@ $iva_vendite_nonesigibile = $dbo->fetchArray(' co_iva.codice_natura_fe AS cod_iva, co_iva.percentuale AS aliquota, co_iva.descrizione AS descrizione, - SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva, + SUM(round((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 )), 2)) AS iva, SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS subtotale FROM co_iva @@ -329,7 +329,7 @@ $iva_acquisti_detraibile = $dbo->fetchArray(' co_iva.codice_natura_fe AS cod_iva, co_iva.percentuale AS aliquota, co_iva.descrizione AS descrizione, - SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva, + SUM(round((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 )), 2)) AS iva, SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS subtotale FROM co_iva @@ -346,7 +346,7 @@ $iva_acquisti_nondetraibile = $dbo->fetchArray(' co_iva.codice_natura_fe AS cod_iva, co_iva.percentuale AS aliquota, co_iva.descrizione AS descrizione, - SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *indetraibile/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva, + SUM(round((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *indetraibile/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 )), 2)) AS iva, SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS subtotale FROM co_iva @@ -363,7 +363,7 @@ $iva_acquisti = $dbo->fetchArray(' co_iva.codice_natura_fe AS cod_iva, co_iva.percentuale AS aliquota, co_iva.descrizione AS descrizione, - SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva, + SUM(round((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 )), 2)) AS iva, SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS subtotale FROM co_iva @@ -380,7 +380,7 @@ $iva_acquisti_anno_precedente = $dbo->fetchArray(' co_iva.codice_natura_fe AS cod_iva, co_iva.percentuale AS aliquota, co_iva.descrizione AS descrizione, - SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva, + SUM(round((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 )), 2)) AS iva, SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS subtotale FROM co_iva @@ -397,7 +397,7 @@ $iva_acquisti_periodo_precedente = $dbo->fetchArray(' co_iva.codice_natura_fe AS cod_iva, co_iva.percentuale AS aliquota, co_iva.descrizione AS descrizione, - SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva, + SUM(round((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 )), 2)) AS iva, SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS subtotale FROM co_iva From 73e3408af762ce233804c6e8dc7bc37bfbef6bba Mon Sep 17 00:00:00 2001 From: loviuz Date: Mon, 15 May 2023 10:40:01 +0200 Subject: [PATCH 15/23] Modifica metodo di aggiornamento ore lavoro --- modules/interventi/src/Components/Sessione.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/interventi/src/Components/Sessione.php b/modules/interventi/src/Components/Sessione.php index 9dbf95eb8..13e89a762 100755 --- a/modules/interventi/src/Components/Sessione.php +++ b/modules/interventi/src/Components/Sessione.php @@ -129,7 +129,7 @@ class Sessione extends Model } } - public function getOreAttribute() + public function getOreCalcolateAttribute() { $inizio = new DateTime($this->orario_inizio); $diff = $inizio->diff(new DateTime($this->orario_fine)); @@ -146,7 +146,7 @@ class Sessione extends Model */ public function save(array $options = []) { - $this->attributes['ore'] = $this->ore; + $this->attributes['ore'] = $this->ore_calcolate; $this->attributes['prezzo_ore_consuntivo'] = $this->prezzo_manodopera + $this->prezzo_diritto_chiamata; $this->attributes['prezzo_km_consuntivo'] = $this->prezzo_viaggio; From fe8157196bea786edecca18bb9cc0738c08d0865 Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Mon, 15 May 2023 10:52:54 +0200 Subject: [PATCH 16/23] Correzione stampa fatturato --- templates/fatturato/body.php | 2 +- templates/fatturato/init.php | 35 ++++++++++++++++++----------------- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/templates/fatturato/body.php b/templates/fatturato/body.php index d51510a54..626353d08 100755 --- a/templates/fatturato/body.php +++ b/templates/fatturato/body.php @@ -62,7 +62,7 @@ foreach ($raggruppamenti as $raggruppamento) { $imponibile = $raggruppamento['imponibile']; $iva = $raggruppamento['iva']; - $totale = $raggruppamento['totale']; + $totale = $imponibile + $iva; echo ' diff --git a/templates/fatturato/init.php b/templates/fatturato/init.php index c559e819b..e4fe7b86c 100755 --- a/templates/fatturato/init.php +++ b/templates/fatturato/init.php @@ -24,20 +24,21 @@ $date_start = $_SESSION['period_start']; $date_end = $_SESSION['period_end']; // Raggruppamento -$query = "SELECT data, - DATE_FORMAT(data, '%m-%Y') AS periodo, - SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto)* IF(co_tipidocumento.reversed, -1, 1)) as imponibile, - SUM((iva)* IF(co_tipidocumento.reversed, -1, 1)) as iva, - SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + iva)* IF(co_tipidocumento.reversed, -1, 1)) as totale -FROM co_documenti - INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento = co_tipidocumento.id - INNER JOIN co_righe_documenti ON co_righe_documenti.iddocumento = co_documenti.id - INNER JOIN co_statidocumento ON co_documenti.idstatodocumento = co_statidocumento.id -WHERE - (data >= ".prepare($date_start).' AND data <= '.prepare($date_end).') - AND dir = '.prepare($dir).' - AND co_statidocumento.descrizione!="Bozza" - '.$add_where.' -GROUP BY periodo -ORDER BY data ASC'; -$raggruppamenti = $dbo->fetchArray($query); + +$raggruppamenti = $dbo->fetchArray(' + SELECT + data, + DATE_FORMAT(data_competenza, \'%m-%Y\') AS periodo, + SUM(round((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 )), 2)) AS iva, + SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS imponibile + FROM + co_iva + INNER JOIN co_righe_documenti ON co_righe_documenti.idiva = co_iva.id + INNER JOIN co_documenti ON co_documenti.id = co_righe_documenti.iddocumento + INNER JOIN co_tipidocumento ON co_tipidocumento.id = co_documenti.idtipodocumento + WHERE + co_tipidocumento.dir = '.prepare($dir).' AND co_righe_documenti.is_descrizione = 0 AND idstatodocumento NOT IN(SELECT id FROM co_statidocumento WHERE descrizione = "Bozza" OR descrizione = "Annullata") AND co_documenti.data_competenza >= '.prepare($date_start).' AND co_documenti.data_competenza <= '.prepare($date_end).' + GROUP BY + data, periodo + ORDER BY + data ASC'); From 4a43fe68caf9a80599eb02992f3f5639176a0b95 Mon Sep 17 00:00:00 2001 From: Beppe Date: Mon, 15 May 2023 11:03:52 +0200 Subject: [PATCH 17/23] Fix controllo numerazione secondaria --- modules/ddt/actions.php | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/ddt/actions.php b/modules/ddt/actions.php index 3b85580eb..ea7aa829b 100755 --- a/modules/ddt/actions.php +++ b/modules/ddt/actions.php @@ -145,6 +145,7 @@ switch (filter('op')) { $count = DDT::where('numero_esterno', $numero_esterno) ->where('id', '!=', $id_record) ->where('idanagrafica', '=', $id_anagrafica) + ->whereRaw('DATE_FORMAT(data, "%Y")='.date('Y')) ->whereHas('tipo', function ($query) use ($direzione) { $query->where('dir', '=', $direzione); })->count(); From dd12c9003d843356a9d323dc589435021e1a971b Mon Sep 17 00:00:00 2001 From: loviuz Date: Mon, 15 May 2023 13:03:26 +0200 Subject: [PATCH 18/23] Fix problemi di raggruppamento anagrafiche in bonifici SEPA --- plugins/presentazioni_bancarie/src/Gestore.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/presentazioni_bancarie/src/Gestore.php b/plugins/presentazioni_bancarie/src/Gestore.php index f054d5c91..4c2431cea 100644 --- a/plugins/presentazioni_bancarie/src/Gestore.php +++ b/plugins/presentazioni_bancarie/src/Gestore.php @@ -276,7 +276,7 @@ class Gestore } // Unifico ricevute per anagrafica - $identificativo_debitore = !empty($controparte->partita_iva) ? $controparte->partita_iva : $controparte->codice_fiscale; + $identificativo_debitore = !empty($controparte->partita_iva) ? $controparte->partita_iva : !empty($controparte->codice_fiscale) ? $controparte->codice_fiscale : $controparte->codice; $ricevute = $this->bonifico->getRicevute(); foreach ($ricevute as $ric) { if ($ric->identificativo_debitore == $identificativo_debitore) { From 10346c92c4cfd5cabb1882992200fc1592587330 Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Mon, 15 May 2023 15:52:44 +0200 Subject: [PATCH 19/23] Aggiunta codice destinatario per nazione San Marino --- modules/anagrafiche/add.php | 2 +- modules/anagrafiche/edit.php | 2 +- modules/anagrafiche/src/Anagrafica.php | 2 +- plugins/exportFE/src/FatturaElettronica.php | 2 +- plugins/xml/asso-invoice.xsl | 3 --- 5 files changed, 4 insertions(+), 7 deletions(-) diff --git a/modules/anagrafiche/add.php b/modules/anagrafiche/add.php index 5a50a7658..ecda9fa50 100755 --- a/modules/anagrafiche/add.php +++ b/modules/anagrafiche/add.php @@ -167,7 +167,7 @@ echo ' }); id_nazione.change(function() { - if (id_nazione.getData().descrizione === 'IT - Italia'){ + if ((id_nazione.getData().descrizione === 'IT - Italia') || (id_nazione.getData().descrizione === 'SM - San Marino')) { input("codice_destinatario").enable(); }else{ input("codice_destinatario").disable(); diff --git a/modules/anagrafiche/edit.php b/modules/anagrafiche/edit.php index f0499f781..42e62ef8c 100755 --- a/modules/anagrafiche/edit.php +++ b/modules/anagrafiche/edit.php @@ -150,7 +150,7 @@ if (sizeof($problemi_anagrafica) > 0) { $help_codice_destinatario .= ' '.tr("Non è necessario comunicare il proprio codice destinatario ai fornitori in quanto è sufficiente che questo sia registrato nel portale del Sistema Di Interscambio dell'Agenzia Entrate (SDI)").'.'; } ?> - {[ "type": "text", "label": "", "name": "codice_destinatario", "required": 0, "class": "text-center text-uppercase alphanumeric-mask", "value": "$codice_destinatario$", "maxlength": , "help": "", "readonly": "iso2 != 'IT' : 0); ?>" ]} + {[ "type": "text", "label": "", "name": "codice_destinatario", "required": 0, "class": "text-center text-uppercase alphanumeric-mask", "value": "$codice_destinatario$", "maxlength": , "help": "", "readonly": "iso2 === 'IT') || ($nazione_anagrafica->iso2 === 'SM')) : 0); ?>" ]}
diff --git a/modules/anagrafiche/src/Anagrafica.php b/modules/anagrafiche/src/Anagrafica.php index 253deef3d..00cc6d4cb 100755 --- a/modules/anagrafiche/src/Anagrafica.php +++ b/modules/anagrafiche/src/Anagrafica.php @@ -254,7 +254,7 @@ class Anagrafica extends Model public function setCodiceDestinatarioAttribute($value) { - if (!empty($this->sedeLegale->nazione) && $this->sedeLegale->nazione->iso2 != 'IT') { + if (!empty($this->sedeLegale->nazione) && !(($this->sedeLegale->nazione->iso2 === 'IT') || ($this->sedeLegale->nazione->iso2 === 'SM'))) { $value = ''; } diff --git a/plugins/exportFE/src/FatturaElettronica.php b/plugins/exportFE/src/FatturaElettronica.php index 922c09322..e8a3bc0ea 100755 --- a/plugins/exportFE/src/FatturaElettronica.php +++ b/plugins/exportFE/src/FatturaElettronica.php @@ -626,7 +626,7 @@ class FatturaElettronica // Se sto fatturando ad un ente pubblico il codice destinatario di default è 99999 (sei nove), in alternativa uso 0000000 (sette zeri) $default_code = ($cliente['tipo'] == 'Ente pubblico') ? '999999' : '0000000'; // Se il mio cliente non ha sede in Italia il codice destinatario di default diventa (XXXXXXX) (sette X) - $default_code = ($cliente->nazione->iso2 != 'IT') ? 'XXXXXXX' : $default_code; + $default_code = !(($cliente->nazione->iso2 === 'IT') || ($cliente->nazione->iso2 === 'SM')) ? 'XXXXXXX' : $default_code; // Generazione dell'header // Se all'Anagrafe Tributaria il trasmittente è censito con il codice fiscale, es. ditte individuali diff --git a/plugins/xml/asso-invoice.xsl b/plugins/xml/asso-invoice.xsl index 05adcd019..960e5b65f 100755 --- a/plugins/xml/asso-invoice.xsl +++ b/plugins/xml/asso-invoice.xsl @@ -1944,9 +1944,6 @@ - - (!!! codice non previsto !!!) - From be1e934804d800437ccc2717caf623edaf87e0f2 Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Mon, 15 May 2023 16:17:45 +0200 Subject: [PATCH 20/23] Aggiunta valore di default codice destinatario di San Marino --- plugins/exportFE/src/FatturaElettronica.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/plugins/exportFE/src/FatturaElettronica.php b/plugins/exportFE/src/FatturaElettronica.php index e8a3bc0ea..457a2f452 100755 --- a/plugins/exportFE/src/FatturaElettronica.php +++ b/plugins/exportFE/src/FatturaElettronica.php @@ -625,8 +625,11 @@ class FatturaElettronica // Se sto fatturando ad un ente pubblico il codice destinatario di default è 99999 (sei nove), in alternativa uso 0000000 (sette zeri) $default_code = ($cliente['tipo'] == 'Ente pubblico') ? '999999' : '0000000'; - // Se il mio cliente non ha sede in Italia il codice destinatario di default diventa (XXXXXXX) (sette X) - $default_code = !(($cliente->nazione->iso2 === 'IT') || ($cliente->nazione->iso2 === 'SM')) ? 'XXXXXXX' : $default_code; + // Se il mio cliente non ha sede in Italia, il codice destinatario di default diventa (XXXXXXX) (sette X) + $default_code = ($cliente->nazione->iso2 != 'IT') ? 'XXXXXXX' : $default_code; + // Se il cliente ha sede a San Marino non ha nessun codice destinatario imposto quello dell'Ufficio tributario di San Marino + $default_code = (($cliente->nazione->iso2 == 'SM') && ($default_code == 'XXXXXXX')) ? '2R4GT08' : $default_code; + // Generazione dell'header // Se all'Anagrafe Tributaria il trasmittente è censito con il codice fiscale, es. ditte individuali From 01f1e20ac85d295051a138a9cc8cd0ad66ead640 Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Wed, 17 May 2023 10:50:50 +0200 Subject: [PATCH 21/23] Rimossa stampa ex spesometro --- modules/stampe_contabili/edit.php | 102 ++++++++-------- templates/spesometro/body.php | 196 ------------------------------ templates/spesometro/header.php | 31 ----- templates/spesometro/settings.php | 22 ---- update/2_4_46.php | 14 +++ update/2_4_46.sql | 5 +- 6 files changed, 70 insertions(+), 300 deletions(-) delete mode 100755 templates/spesometro/body.php delete mode 100755 templates/spesometro/header.php delete mode 100755 templates/spesometro/settings.php create mode 100644 update/2_4_46.php diff --git a/modules/stampe_contabili/edit.php b/modules/stampe_contabili/edit.php index 53b3193fb..23daf409d 100755 --- a/modules/stampe_contabili/edit.php +++ b/modules/stampe_contabili/edit.php @@ -26,86 +26,85 @@ echo '
-
+

'.tr('Registri IVA').'

-
- - - - - +
+ +
+
+ +
+
+ +
-
-
-
-

'.tr('Comunicazione dati fatture (ex-spesometro)
dal _START_ al _END_', [ - '_START_' => Translator::dateToLocale($_SESSION['period_start']), - '_END_' => Translator::dateToLocale($_SESSION['period_end']), - ]).'

-
-
- '.Prints::getLink('Spesometro', $id_record, 'btn-primary col-md-5', '
'.tr('Dati fatture').'
'.tr(' vendite e acquisti'), '|default| fa-2x', 'dir=uscita').' -
-
-
-
-
-
-

'.tr('Dati economici
dal _START_ al _END_', [ - '_START_' => Translator::dateToLocale($_SESSION['period_start']), - '_END_' => Translator::dateToLocale($_SESSION['period_end']), - ]).'

-
- -
- '.Prints::getLink('Fatturato', $id_record, 'btn-primary col-md-5', '
'.tr('Stampa').'
'.tr('Fatturato'), '|default| fa-2x', 'dir=entrata').' - - '.Prints::getLink('Fatturato', $id_record, 'btn-primary col-md-5 col-md-push-2', '
'.tr('Stampa').'
'.tr('Acquisti').'
', '|default| fa-2x', 'dir=uscita').' -
-
-
-
- -
-
+

'.tr('Contabilità').'

- - - '.Prints::getLink('Mastrino', 1, 'btn-primary col-md-3 col-md-push-1', '
'.tr('Situazione').'
'.tr('patrimoniale'), '|default| fa-2x', 'lev=1').' +
+ +
+
+ '.Prints::getLink('Mastrino', 1, 'btn-primary col-md-12', '
'.tr('Situazione').'
'.tr('patrimoniale'), '|default| fa-2x', 'lev=1').' +
+
+ '.Prints::getLink('Mastrino', 2, 'btn-primary col-md-12', '
'.tr('Situazione').'
'.tr('economica'), '|default| fa-2x', 'lev=1').' +
+
+
+
+
- '.Prints::getLink('Mastrino', 2, 'btn-primary col-md-3 col-md-push-2', '
'.tr('Situazione').'
'.tr('economica'), '|default| fa-2x', 'lev=1').' +
+
+
+
+

'.tr('Dati economici dal _START_ al _END_', [ + '_START_' => Translator::dateToLocale($_SESSION['period_start']), + '_END_' => Translator::dateToLocale($_SESSION['period_end']), + ]).'

+
+ +
+
+ '.Prints::getLink('Fatturato', $id_record, 'btn-primary col-md-12', '
'.tr('Stampa').'
'.tr('Fatturato'), '|default| fa-2x', 'dir=entrata').' +
+
+ '.Prints::getLink('Fatturato', $id_record, 'btn-primary col-md-12', '
'.tr('Stampa').'
'.tr('Acquisti').'
', '|default| fa-2x', 'dir=uscita').' +
-
+

'.tr('Libro giornale').'

- '.Prints::getLink('Libro giornale', 2, 'btn-primary col-md-4', '
'.tr('Libro').'
'.tr('giornale'), '|default| fa-2x').' +
+ '.Prints::getLink('Libro giornale', 2, 'btn-primary col-md-12', '
'.tr('Libro').'
'.tr('giornale'), '|default| fa-2x').' +
-
+

'.tr('Scadenzario').'

@@ -121,9 +120,12 @@ if (empty($dbo->fetchArray('SELECT * FROM co_scadenziario'))) { $disabled = ''; } - echo ' '; + echo ' +
+ +
'; echo '
diff --git a/templates/spesometro/body.php b/templates/spesometro/body.php deleted file mode 100755 index 685a26035..000000000 --- a/templates/spesometro/body.php +++ /dev/null @@ -1,196 +0,0 @@ -. - */ - -include_once __DIR__.'/../../core.php'; - -$date_start = $_SESSION['period_start']; -$date_end = $_SESSION['period_end']; - -// Intestazione tabella per righe -echo " -

".tr('Spesometro dal _START_ al _END_', [ - '_START_' => Translator::dateToLocale($date_start), - '_END_' => Translator::dateToLocale($date_end), -], ['upper' => true])."

- - - - - - - - - - - - - - - '; - -$imponibile = []; -$iva = []; -$totale = []; - -$anagrafiche = $dbo->fetchArray('SELECT idanagrafica, piva, ragione_sociale FROM `an_anagrafiche` WHERE `idanagrafica` IN (SELECT DISTINCT `idanagrafica` FROM `co_documenti` WHERE co_documenti.data>='.prepare($date_start).' AND co_documenti.data<='.prepare($date_end).' AND `co_documenti`.`id` IN (SELECT `iddocumento` FROM co_movimenti WHERE primanota = 1)) ORDER BY `ragione_sociale`'); - -foreach ($anagrafiche as $i => $anagrafica) { - $fatture = $dbo->fetchArray('SELECT `co_documenti`.*, `co_tipidocumento`.`descrizione` AS tipo_documento, `co_tipidocumento`.`dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`idanagrafica` = '.prepare($anagrafica['idanagrafica']).' AND `co_documenti`.`id` IN (SELECT `iddocumento` FROM co_movimenti WHERE primanota = 1) AND co_documenti.data>='.prepare($date_start).' AND co_documenti.data<='.prepare($date_end).' ORDER BY `data`'); - - $num = 0; - foreach ($fatture as $key => $fattura) { - $righe = $dbo->fetchArray('SELECT `idiva`, `desc_iva`, SUM(subtotale) - SUM(sconto) AS imponibile, SUM(iva) AS iva, SUM(subtotale) - SUM(sconto) + SUM(iva) AS totale FROM `co_righe_documenti` WHERE iddocumento='.prepare($fattura['id']).' GROUP BY `idiva`, `desc_iva` ORDER BY `idiva`'); - - $fatture[$key]['righe'] = $righe; - $num += count($righe); - } - - $extra = ($i % 2) != 0 ? ' class="row-bg"' : ''; - - if ($num > 0) { - echo ' - - '; - - // Partita IVA - echo ' - '; - - $count = 0; - foreach ($fatture as $fattura) { - $descrizione = tr('_DOC_ num. _NUM_ del _DATE_', [ - '_DOC_' => $fattura['tipo_documento'], - '_NUM_' => !empty($fattura['numero_esterno']) ? $fattura['numero_esterno'] : $fattura['numero'], - '_DATE_' => Translator::dateToLocale($fattura['data']), - ]); - - // Documenti replicati per IVA - foreach ($fattura['righe'] as $riga) { - if ($count != 0) { - echo ' - '; - } - ++$count; - - // Documento - echo ' - '; - - // Descrizione IVA - echo ' - '; - - // Imponible - echo ' - '; - - // IVA - echo ' - '; - - // Totale - echo ' - - '; - - if (empty($iva[$riga['desc_iva']])) { - $iva[$riga['desc_iva']] = []; - } - - $imponibile[] = $riga['imponibile']; - $iva[$riga['desc_iva']][] = $riga['iva']; - $totale[] = $riga['totale']; - } - } - } -} - -echo ' - '; - -// Totale imponibile -echo ' - - - - - '; - -foreach ($iva as $desc => $values) { - $sum = sum($values); - // Totale IVA - echo ' - - - - -'; - - $totale_iva += $sum; -} - -// Totale IVA -echo ' - - - - - '; - -// TOTALE -echo ' - - - - '; - -echo ' -
".tr('Ragione sociale', [], ['upper' => true])."".tr('P.Iva', [], ['upper' => true])."".tr('Documento', [], ['upper' => true])."".tr('Aliquota', [], ['upper' => true])."".tr('Imponibile', [], ['upper' => true])."".tr('IVA', [], ['upper' => true])."".tr('Totale', [], ['upper' => true]).'
- '.$anagrafica['ragione_sociale'].' - - '.$anagrafica['piva'].' - - '.$descrizione.' - - '.$riga['desc_iva'].' - - '.moneyFormat($riga['imponibile'], 2).' - - '.moneyFormat($riga['iva'], 2).' - - '.moneyFormat($riga['totale'], 2).' -
- '.tr('Imponibile', [], ['upper' => true]).': - - '.moneyFormat(sum($imponibile), 2).' -
- '.tr('IVA "_TYPE_"', [ - '_TYPE_' => $desc, - ], ['upper' => true]).': - - '.moneyFormat($sum, 2).' -
- '.tr('Totale IVA', [], ['upper' => true]).': - - '.moneyFormat($totale_iva, 2).' -
- '.tr('Totale', [], ['upper' => true]).': - - '.moneyFormat(sum($totale), 2).' -
'; diff --git a/templates/spesometro/header.php b/templates/spesometro/header.php deleted file mode 100755 index 1b03ccad4..000000000 --- a/templates/spesometro/header.php +++ /dev/null @@ -1,31 +0,0 @@ -. - */ - -echo ' - -
-
-

$f_ragionesociale$

-

$f_indirizzo$ $f_citta_full$

-

'.(!empty($f_piva) ? tr('P.Iva').': ' : '').'$f_piva$

-

'.(!empty($f_codicefiscale) ? tr('C.F.').': ' : '').'$f_codicefiscale$

-

'.(!empty($f_capsoc) ? tr('Cap.Soc.').': ' : '').'$f_capsoc$

-

'.(!empty($f_telefono) ? tr('Tel').': ' : '').'$f_telefono$

-
-
'; diff --git a/templates/spesometro/settings.php b/templates/spesometro/settings.php deleted file mode 100755 index 207c06fc8..000000000 --- a/templates/spesometro/settings.php +++ /dev/null @@ -1,22 +0,0 @@ -. - */ - -return [ - 'orientation' => 'L', -]; diff --git a/update/2_4_46.php b/update/2_4_46.php new file mode 100644 index 000000000..f2c3cdab8 --- /dev/null +++ b/update/2_4_46.php @@ -0,0 +1,14 @@ + $value) { + $files[$key] = realpath(base_dir().'/'.$value); + +} + +delete($files); +?> \ No newline at end of file diff --git a/update/2_4_46.sql b/update/2_4_46.sql index 2efe1a273..7cc01737c 100644 --- a/update/2_4_46.sql +++ b/update/2_4_46.sql @@ -19,4 +19,7 @@ WHERE HAVING 2=2 ORDER BY - `scadenza` ASC" WHERE `name` = 'Scadenzario'; \ No newline at end of file + `scadenza` ASC" WHERE `name` = 'Scadenzario'; + +-- Rimozione stampa spesometro +DELETE FROM `zz_prints` WHERE `name` = 'Spesometro'; \ No newline at end of file From c58096db41bac4fc1de13ab3bf7f675232ab29c2 Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Wed, 17 May 2023 10:51:03 +0200 Subject: [PATCH 22/23] Corrette stampe contabili iva --- templates/liquidazione_iva/init.php | 28 ++++++++++++++-------------- templates/registro_iva/bottom.php | 8 ++++---- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/templates/liquidazione_iva/init.php b/templates/liquidazione_iva/init.php index 95c5d9e7a..425d4b4c1 100644 --- a/templates/liquidazione_iva/init.php +++ b/templates/liquidazione_iva/init.php @@ -46,7 +46,7 @@ $iva_vendite_esigibile = $dbo->fetchArray(' cod_iva, aliquota, descrizione, - SUM(round(iva, 2)) AS iva, + SUM(iva) AS iva, SUM(subtotale) AS subtotale FROM ( @@ -95,7 +95,7 @@ $iva_vendite = $dbo->fetchArray(' cod_iva, aliquota, descrizione, - SUM(round(iva, 2)) AS iva, + SUM(iva) AS iva, SUM(subtotale) AS subtotale FROM ( @@ -143,7 +143,7 @@ $iva_vendite_anno_precedente = $dbo->fetchArray(' cod_iva, aliquota, descrizione, - SUM(round(iva, 2)) AS iva, + SUM(iva) AS iva, SUM(subtotale) AS subtotale FROM ( @@ -191,7 +191,7 @@ $iva_vendite_periodo_precedente = $dbo->fetchArray(' cod_iva, aliquota, descrizione, - SUM(round(iva, 2)) AS iva, + SUM(iva) AS iva, SUM(subtotale) AS subtotale FROM ( @@ -243,7 +243,7 @@ $iva_vendite_esigibile = $dbo->fetchArray(' co_iva.codice_natura_fe AS cod_iva, co_iva.percentuale AS aliquota, co_iva.descrizione AS descrizione, - SUM(round((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 )), 2)) AS iva, + SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva, SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS subtotale FROM co_iva @@ -260,7 +260,7 @@ $iva_vendite = $dbo->fetchArray(' co_iva.codice_natura_fe AS cod_iva, co_iva.percentuale AS aliquota, co_iva.descrizione AS descrizione, - SUM(round((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 )), 2)) AS iva, + SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva, SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS subtotale FROM co_iva @@ -277,7 +277,7 @@ $iva_vendite_anno_precedente = $dbo->fetchArray(' co_iva.codice_natura_fe AS cod_iva, co_iva.percentuale AS aliquota, co_iva.descrizione AS descrizione, - SUM(round((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 )), 2)) AS iva, + SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva, SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS subtotale FROM co_iva @@ -294,7 +294,7 @@ $iva_vendite_periodo_precedente = $dbo->fetchArray(' co_iva.codice_natura_fe AS cod_iva, co_iva.percentuale AS aliquota, co_iva.descrizione AS descrizione, - SUM(round((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 )), 2)) AS iva, + SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva, SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS subtotale FROM co_iva @@ -312,7 +312,7 @@ $iva_vendite_nonesigibile = $dbo->fetchArray(' co_iva.codice_natura_fe AS cod_iva, co_iva.percentuale AS aliquota, co_iva.descrizione AS descrizione, - SUM(round((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 )), 2)) AS iva, + SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva, SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS subtotale FROM co_iva @@ -329,7 +329,7 @@ $iva_acquisti_detraibile = $dbo->fetchArray(' co_iva.codice_natura_fe AS cod_iva, co_iva.percentuale AS aliquota, co_iva.descrizione AS descrizione, - SUM(round((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 )), 2)) AS iva, + SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva, SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS subtotale FROM co_iva @@ -346,7 +346,7 @@ $iva_acquisti_nondetraibile = $dbo->fetchArray(' co_iva.codice_natura_fe AS cod_iva, co_iva.percentuale AS aliquota, co_iva.descrizione AS descrizione, - SUM(round((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *indetraibile/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 )), 2)) AS iva, + SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *indetraibile/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva, SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS subtotale FROM co_iva @@ -363,7 +363,7 @@ $iva_acquisti = $dbo->fetchArray(' co_iva.codice_natura_fe AS cod_iva, co_iva.percentuale AS aliquota, co_iva.descrizione AS descrizione, - SUM(round((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 )), 2)) AS iva, + SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva, SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS subtotale FROM co_iva @@ -380,7 +380,7 @@ $iva_acquisti_anno_precedente = $dbo->fetchArray(' co_iva.codice_natura_fe AS cod_iva, co_iva.percentuale AS aliquota, co_iva.descrizione AS descrizione, - SUM(round((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 )), 2)) AS iva, + SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva, SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS subtotale FROM co_iva @@ -397,7 +397,7 @@ $iva_acquisti_periodo_precedente = $dbo->fetchArray(' co_iva.codice_natura_fe AS cod_iva, co_iva.percentuale AS aliquota, co_iva.descrizione AS descrizione, - SUM(round((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 )), 2)) AS iva, + SUM((subtotale-sconto+co_righe_documenti.rivalsainps) *percentuale/100 *(100-indetraibile)/100 *(IF(co_tipidocumento.reversed = 0, 1,-1 ))) AS iva, SUM((co_righe_documenti.subtotale - co_righe_documenti.sconto + co_righe_documenti.rivalsainps) *(IF(co_tipidocumento.reversed = 0,1,-1))) AS subtotale FROM co_iva diff --git a/templates/registro_iva/bottom.php b/templates/registro_iva/bottom.php index de9f050c1..a53851d0c 100755 --- a/templates/registro_iva/bottom.php +++ b/templates/registro_iva/bottom.php @@ -19,8 +19,8 @@ include_once __DIR__.'/../../core.php'; -$totale_iva = sum(array_column($records, 'iva'), null, 2); -$totale_subtotale = sum(array_column($records, 'subtotale'), null, 2); +$totale_iva = sum(array_column($records, 'iva')); +$totale_subtotale = sum(array_column($records, 'subtotale')); echo ' @@ -42,8 +42,8 @@ echo ' foreach ($iva as $descrizione => $tot_iva) { if (!empty($descrizione)) { - $somma_iva = sum($iva[$descrizione], null, 2); - $somma_totale = sum($totale[$descrizione], null, 2); + $somma_iva = sum($iva[$descrizione]); + $somma_totale = sum($totale[$descrizione]); echo ' From ba4b016a6001ff1d441c18d79a548a93b7d2e8a1 Mon Sep 17 00:00:00 2001 From: Beppe Date: Thu, 18 May 2023 10:47:57 +0200 Subject: [PATCH 23/23] Fix query --- modules/impianti/ajax/select.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/impianti/ajax/select.php b/modules/impianti/ajax/select.php index 72e74682d..733fd15ce 100755 --- a/modules/impianti/ajax/select.php +++ b/modules/impianti/ajax/select.php @@ -41,7 +41,7 @@ switch ($resource) { $query = 'SELECT my_impianti.id, CONCAT(my_impianti.matricola, " - ", my_impianti.nome) AS descrizione, my_impianti.idanagrafica, an_anagrafiche.ragione_sociale, my_impianti.idsede, IFNULL(an_sedi.nomesede, "Sede legale") AS nomesede FROM my_impianti LEFT JOIN an_anagrafiche ON my_impianti.idanagrafica=an_anagrafiche.idanagrafica LEFT JOIN an_sedi ON my_impianti.idsede=an_sedi.id |where| ORDER BY idsede'; foreach ($elements as $element) { - $filter[] = 'id='.prepare($element); + $filter[] = 'my_impianti.id='.prepare($element); } if (!empty($superselect['idanagrafica'])) {