From a4703f126676375163323b2f5c8d52b651181bfb Mon Sep 17 00:00:00 2001 From: MatteoPistorello Date: Mon, 25 Oct 2021 14:26:35 +0200 Subject: [PATCH 01/20] Aggiunto costo medio in fase di aggiunta riga articolo --- include/common/riga.php | 39 +++++++++++++++++++++++++++++++- modules/articoli/ajax/select.php | 5 ++++ 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/include/common/riga.php b/include/common/riga.php index b9d3fc6ac..5e2306661 100755 --- a/include/common/riga.php +++ b/include/common/riga.php @@ -74,7 +74,44 @@ if ($options['dir'] == 'entrata') { margine = isNaN(margine) || !isFinite(margine) ? 0: margine; // Fix per magine NaN - div.html(" '.tr('Guadagno').': " + guadagno.toLocale() + " " + globals.currency + "   '.tr('Margine').': " + margine.toLocale() + " %"); + var mediaponderata = parseFloat($("#idarticolo").selectData().media_ponderata); + + div.html("\ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ +
\ +  '.tr('Guadagno').':\ + \ + " + guadagno.toLocale() + "\ + \ + " + globals.currency + "\ +
\ +  '.tr('Margine').':\ + \ + " + margine.toLocale() + "\ + \ +  %\ +
\ +  '.tr('Costo medio').':\ + \ + " + mediaponderata.toLocale() + "\ + \ + " + globals.currency + "\ +
"); + if (guadagno < 0) { parent.addClass("has-error"); div.addClass("label-danger").removeClass("label-success"); diff --git a/modules/articoli/ajax/select.php b/modules/articoli/ajax/select.php index e81c436e6..e50c66558 100755 --- a/modules/articoli/ajax/select.php +++ b/modules/articoli/ajax/select.php @@ -79,6 +79,7 @@ switch ($resource) { mg_articoli.idconto_acquisto, categoria.`nome` AS categoria, sottocategoria.`nome` AS sottocategoria, + (SUM((co_righe_documenti.prezzo_unitario-co_righe_documenti.sconto_unitario)*co_righe_documenti.qta)/SUM(co_righe_documenti.qta)) AS media_ponderata, CONCAT(conto_vendita_categoria .numero, '.', conto_vendita_sottocategoria.numero, ' ', conto_vendita_sottocategoria.descrizione) AS idconto_vendita_title, CONCAT(conto_acquisto_categoria .numero, '.', conto_acquisto_sottocategoria.numero, ' ', conto_acquisto_sottocategoria.descrizione) AS idconto_acquisto_title @@ -91,6 +92,9 @@ switch ($resource) { LEFT JOIN co_pianodeiconti3 AS conto_acquisto_sottocategoria ON conto_acquisto_sottocategoria.id=mg_articoli.idconto_acquisto LEFT JOIN co_pianodeiconti2 AS conto_acquisto_categoria ON conto_acquisto_sottocategoria.idpianodeiconti2=conto_acquisto_categoria.id + LEFT JOIN co_righe_documenti ON co_righe_documenti.idarticolo=mg_articoli.id + LEFT JOIN co_documenti ON co_documenti.id=co_righe_documenti.iddocumento + LEFT JOIN co_tipidocumento ON co_tipidocumento.id=co_documenti.idtipodocumento LEFT JOIN co_iva AS iva_articolo ON iva_articolo.id = mg_articoli.idiva_vendita LEFT JOIN co_iva AS iva_predefinita ON iva_predefinita.id = (SELECT valore FROM zz_settings WHERE nome = 'Iva predefinita')"; @@ -133,6 +137,7 @@ switch ($resource) { $where[] = 'mg_articoli.attivo = 1'; $where[] = 'mg_articoli.deleted_at IS NULL'; + $where[] = '(co_tipidocumento.dir="uscita" OR co_tipidocumento.dir IS NULL)'; if (!empty($search)) { $search_fields[] = 'mg_articoli.descrizione LIKE '.prepare('%'.$search.'%'); From 19af6e8a725298e56974c75a27655f639f4ae543 Mon Sep 17 00:00:00 2001 From: MatteoPistorello Date: Mon, 25 Oct 2021 14:30:31 +0200 Subject: [PATCH 02/20] Spostamento stampe situazioni e bilancio in Stampe contabili --- modules/partitario/edit.php | 4 ---- modules/stampe_contabili/edit.php | 18 ++++++++++++++++++ .../stampa_bilancio.php | 0 templates/partitario_mastrino/piece.php | 2 +- 4 files changed, 19 insertions(+), 5 deletions(-) rename modules/{partitario => stampe_contabili}/stampa_bilancio.php (100%) diff --git a/modules/partitario/edit.php b/modules/partitario/edit.php index 11ef1b5e2..6b33a0b4a 100755 --- a/modules/partitario/edit.php +++ b/modules/partitario/edit.php @@ -32,7 +32,6 @@ if ($bilancio_gia_aperto) { echo '
- @@ -60,9 +59,6 @@ foreach ($primo_livello as $conto_primo) { -
- '.Prints::getLink('Mastrino', $conto_primo['id'], null, tr('Stampa'), null, 'lev=1').' -
'; diff --git a/modules/stampe_contabili/edit.php b/modules/stampe_contabili/edit.php index 7e7f15b90..6d51ed7c1 100755 --- a/modules/stampe_contabili/edit.php +++ b/modules/stampe_contabili/edit.php @@ -74,4 +74,22 @@ echo '
+ + +
+
+
+
+

'.tr('Piano dei conti').'

+
+ +
+ + + '.Prints::getLink('Mastrino', 1, 'btn-primary col-md-4 col-md-push-1', '
'.tr('Stampa situazione').'
'.tr('patrimoniale'), '|default| fa-2x', 'lev=1').' + + '.Prints::getLink('Mastrino', 2, 'btn-primary col-md-4 col-md-push-2', '
'.tr('Stampa situazione').'
'.tr('economica'), '|default| fa-2x', 'lev=1').' +
+
+
'; diff --git a/modules/partitario/stampa_bilancio.php b/modules/stampe_contabili/stampa_bilancio.php similarity index 100% rename from modules/partitario/stampa_bilancio.php rename to modules/stampe_contabili/stampa_bilancio.php diff --git a/templates/partitario_mastrino/piece.php b/templates/partitario_mastrino/piece.php index fc030ea03..6138a0c71 100644 --- a/templates/partitario_mastrino/piece.php +++ b/templates/partitario_mastrino/piece.php @@ -22,7 +22,7 @@ include_once __DIR__.'/../../core.php'; if ($record['titolo'] != $prev_titolo && get('lev') == 1) { echo ' - '.$record['titolo'].' + '.$record['titolo'].' '; } From 17b49ae359eb1f86d0ebe50a7b9c15eebd2b6235 Mon Sep 17 00:00:00 2001 From: Luca Date: Mon, 25 Oct 2021 14:49:37 +0200 Subject: [PATCH 03/20] Fix stampa dettaglio anagrafica --- templates/anagrafiche/body.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/anagrafiche/body.php b/templates/anagrafiche/body.php index 4ce1241ac..6c7d30a45 100755 --- a/templates/anagrafiche/body.php +++ b/templates/anagrafiche/body.php @@ -115,7 +115,7 @@ if (!empty($impianti)) { echo ' '.tr('Matricola').': '.$impianti[$i]['matricola'].' - '.tr('Data').': '.Translator::dataToLocale($impianti[$i]['data']).' + '.tr('Data').': '.Translator::dateToLocale($impianti[$i]['data']).' '.tr('Nome').': '.$impianti[$i]['nome'].' From 48fefa2b07cca9b99b7d69e15056fe9201575266 Mon Sep 17 00:00:00 2001 From: MatteoPistorello Date: Mon, 25 Oct 2021 15:28:10 +0200 Subject: [PATCH 04/20] - Aggiunto bulk per aggiornare il prezzo di acquisto in base all'ultima fattura --- modules/articoli/bulk.php | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/modules/articoli/bulk.php b/modules/articoli/bulk.php index 903d6767e..5d643ed2a 100644 --- a/modules/articoli/bulk.php +++ b/modules/articoli/bulk.php @@ -214,6 +214,29 @@ switch (post('op')) { flash()->warning(tr('Nessun articolo modificato!')); } + break; + + case 'set-acquisto-ifzero': + $n_art = 0; + foreach ($id_records as $id) { + $articolo = Articolo::find($id); + + if ($articolo->prezzo_acquisto==0 && empty($articolo->idfornitore)) { + $new_prezzo_acquisto = $dbo->fetchOne('SELECT (prezzo_unitario-sconto_unitario) AS prezzo_acquisto FROM co_righe_documenti LEFT JOIN co_documenti ON co_righe_documenti.iddocumento=co_documenti.id LEFT JOIN co_tipidocumento ON co_tipidocumento.id=co_documenti.idtipodocumento WHERE idarticolo='.prepare($id).' AND dir="uscita" ORDER BY co_documenti.data DESC, co_righe_documenti.id DESC LIMIT 0,1')['prezzo_acquisto']; + + $articolo->prezzo_acquisto = $new_prezzo_acquisto; + $articolo->save(); + + if ($new_prezzo_acquisto!=0) { + $n_art++; + } + } + } + + flash()->info(tr('Prezzi di acquisto aggiornati per _NUM_ articoli!', [ + '_NUM_' => $n_art, + ])); + break; } @@ -322,4 +345,15 @@ $operations['change-iva'] = [ ], ]; +$operations['set-acquisto-ifzero'] = [ + 'text' => ' '.tr('Imposta prezzo di acquisto da fattura ').'', + 'data' => [ + 'title' => tr('Impostare il prezzo di acquisto per gli articoli selezionati?'), + 'msg' => 'Il prezzo di acquisto verrà impostato sugli articoli che non hanno nessun prezzo di acquisto inserito e verrà aggiornato in base alla fattura di acquisto più recente', + 'button' => tr('Procedi'), + 'class' => 'btn btn-lg btn-warning', + 'blank' => false, + ], +]; + return $operations; From c384ddf243242100301e1904c1ebe17ae4765718 Mon Sep 17 00:00:00 2001 From: MatteoPistorello Date: Mon, 25 Oct 2021 15:59:00 +0200 Subject: [PATCH 05/20] Aggiornato CHANGELOG --- CHANGELOG.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d9dd3a5af..0d0493d8c 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.27 (2021-10-25)](#2427-2021-10-25) - [2.4.26 (2021-09-24)](#2426-2021-09-24) - [2.4.25 (2021-08-25)](#2425-2021-08-25) - [2.4.24 (2021-07-28)](#2424-2021-07-28) @@ -37,6 +38,40 @@ 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.27 (2021-10-25) + +### Aggiunto (Added) + - Aggiunta selezione automatica **banca** in fase di importazione fattura elettronica + - Aggiunta selezione automatica del **conto di acquisto** articolo in fase di importazione fattura elettronica + - Aggiunto select **conto acquisto/vendita** in fase di creazione articolo + - Aggiunto select per aggiornare i prezzi di acquisto dell'articolo in fase di importazione fattura elettronica + - Aggiunto filtro per mostrare gli impianti ai tecnici assegnati + - Aggiunto ordinamento righe in interventi + - Aggiunta azione di gruppo per **rincaro prezzi di vendita** articoli con possibilità di scelta del prezzo di partenza + - Aggiunta azione di gruppo per cambiare la **categoria** degli articoli + - Aggiunta azione di gruppo per aggiornare l'aliquota iva degli articoli + - Aggiunto **Mese prossimo** nel calendario + - Aggiunta variabile ragione sociale per l'invio mail da ddt + - Aggiunta immagine in import CSV articoli + - Aggiunta selezione prezzo di acquisto per stampa inventario + - Aggiunto costo medio in fase di aggiunta riga articolo + - Aggiunta azione di gruppo per aggiornare il prezzo di acquisto per gli articoli a cui non è impostato, in base all'ultima fattura di acquisto +### Modificato (Changed) + - Ampliata **ricerca articoli** in importazione fatturazione elettronica per collegamento automatico + - Ridotto il valid time per la cache + - Ordinamento **gestione documentale** per data decrescente + - Spostamento stampe situazione contabile e bilancio in **Stampe contabili** +### Fixed + - Fix sconti in **fatturazione interventi** + - Fix statistiche **fatture** + - Fix aggiunta intervento da dashboard vista mese + - Fix selezione iva in aggiunta riga articolo + - Fix cambio stato intervento in fase di eliminazione riga da fattura + - Fix selezione iva in **crea fattura** da contratto + - Fix filigrana stampe + - Fix arrotondamento automatico + - Fix azzeramento revisione in duplicazione **preventivo** + ## 2.4.26 (2021-09-24) ### Aggiunto (Added) From 38c649f2dc07f6c34db25316a0ad4411a24c6c25 Mon Sep 17 00:00:00 2001 From: Luca Date: Mon, 25 Oct 2021 16:21:19 +0200 Subject: [PATCH 06/20] Aggiunta descrizione in gestione documentale --- gulpfile.js | 2 +- include/top.php | 2 +- modules/gestione_documentale/actions.php | 1 + modules/gestione_documentale/edit.php | 8 ++++++-- update/2_4_27.sql | 7 +++++-- 5 files changed, 14 insertions(+), 6 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 57ea3f20c..4716fd428 100755 --- a/gulpfile.js +++ b/gulpfile.js @@ -277,7 +277,7 @@ function srcFonts() { function ckeditor() { return gulp.src([ - config.nodeDirectory + '/ckeditor4/{adapters,lang,skins,plugins,core}/**/*.{js,json,css,png}', + config.nodeDirectory + '/ckeditor4/{adapters,lang,skins,plugins,core}/**/*.{js,json,css,png,gif,html}', config.nodeDirectory + '/ckeditor4/*.{js,css}', ]) .pipe(gulp.dest(config.production + '/' + config.paths.js + '/ckeditor')); diff --git a/include/top.php b/include/top.php index 9d7835e1c..c6e3843fa 100755 --- a/include/top.php +++ b/include/top.php @@ -213,7 +213,7 @@ if (Auth::check()) { ["Undo","Redo","-","Cut","Copy","Paste","PasteText","PasteFromWord","-","SpellChecker", "Scayt", "-","Link","Unlink","-","Bold","Italic","Underline","Superscript","SpecialChar","HorizontalRule","-","JustifyLeft","JustifyCenter","JustifyRight","JustifyBlock","-","NumberedList","BulletedList","Outdent","Indent","Blockquote","-","Styles","Format","Image","Table", "TextColor", "BGColor" ], ], ckeditorToolbar_Full: [ - { name: "document", items : [ "Source" ] }, + { name: "document", items : [ "Source", "ExportPdf", "Preview", "Print" ] }, { name: "clipboard", items : [ "Cut","Copy","Paste","PasteText","PasteFromWord","-","Undo","Redo" ] }, { name: "editing", items : [ "Find","Replace","-","SelectAll","-","SpellChecker", "Scayt" ] }, { name: "forms", items : [ "Form", "Checkbox", "Radio", "TextField", "Textarea", "Select", "Button", "ImageButton", diff --git a/modules/gestione_documentale/actions.php b/modules/gestione_documentale/actions.php index 77979cfca..dce348512 100755 --- a/modules/gestione_documentale/actions.php +++ b/modules/gestione_documentale/actions.php @@ -36,6 +36,7 @@ switch (post('op')) { $dbo->update('do_documenti', [ 'idcategoria' => post('idcategoria'), 'nome' => post('nome'), + 'descrizione' => post('descrizione') ?: null, 'data' => post('data') ?: null, ], ['id' => $id_record]); diff --git a/modules/gestione_documentale/edit.php b/modules/gestione_documentale/edit.php index dc6162850..b98efd5bf 100755 --- a/modules/gestione_documentale/edit.php +++ b/modules/gestione_documentale/edit.php @@ -37,8 +37,6 @@ include_once __DIR__.'/../../core.php'; {[ "type": "text", "label": "Nome", "name": "nome", "required": 1, "value": "$nome$", "extra": "" ]} - -
{[ "type": "select", "label": "Categoria", "name": "idcategoria", "required": 1, "ajax-source": "categorie_documenti", "value": "$idcategoria$", "extra": "" ]}
@@ -49,6 +47,12 @@ include_once __DIR__.'/../../core.php'; + +
+
+ {[ "type": "ckeditor", "use_full_ckeditor": 1, "label": "", "name": "descrizione", "value": "$descrizione$" ]} +
+
diff --git a/update/2_4_27.sql b/update/2_4_27.sql index ccecabc94..080702587 100644 --- a/update/2_4_27.sql +++ b/update/2_4_27.sql @@ -22,10 +22,13 @@ UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM `do_documenti`\nINNER -- Task per l'eliminazione automatica della coda d'invio INSERT INTO `zz_tasks` (`id`, `name`, `class`, `expression`, `next_execution_at`, `last_executed_at`) VALUES -(NULL, 'Eliminazione automatica coda d\'invio', 'Modules\\StatoEmail\\EliminaMailTask', '0 */4 * * *', NULL, NULL); +(NULL, "Eliminazione automatica coda d'invio", 'Modules\\StatoEmail\\EliminaMailTask', '0 */4 * * *', NULL, NULL); INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES (NULL, 'Numero di giorni mantenimento coda di invio', '0', 'integer', 1, 'Mail', 1, NULL); -- Plugin contratti del cliente -INSERT INTO `zz_plugins` (`id`, `name`, `title`, `idmodule_from`, `idmodule_to`, `position`, `script`, `enabled`, `default`, `order`, `compatibility`, `version`, `options2`, `options`, `directory`, `help`) VALUES (NULL, 'Contratti del cliente', 'Contratti del cliente', '2', '2', 'tab', 'contratti_cliente.php', '1', '0', '0', '', '', NULL, NULL, '', ''); \ No newline at end of file +INSERT INTO `zz_plugins` (`id`, `name`, `title`, `idmodule_from`, `idmodule_to`, `position`, `script`, `enabled`, `default`, `order`, `compatibility`, `version`, `options2`, `options`, `directory`, `help`) VALUES (NULL, 'Contratti del cliente', 'Contratti del cliente', '2', '2', 'tab', 'contratti_cliente.php', '1', '0', '0', '', '', NULL, NULL, '', ''); + +-- Aggiunto campo descrizione (facoltativo) in gestione documentale +ALTER TABLE `do_documenti` ADD `descrizione` TEXT NULL AFTER `nome`; \ No newline at end of file From 4b649cd02019414888b2f8b720298757ae8420c7 Mon Sep 17 00:00:00 2001 From: Luca Date: Mon, 25 Oct 2021 16:39:37 +0200 Subject: [PATCH 07/20] Fix minori --- include/top.php | 9 +++++---- modules/gestione_documentale/actions.php | 2 +- modules/newsletter/actions.php | 2 +- modules/stato_servizi/edit.php | 4 ++-- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/include/top.php b/include/top.php index c6e3843fa..bbaf487f8 100755 --- a/include/top.php +++ b/include/top.php @@ -213,21 +213,22 @@ if (Auth::check()) { ["Undo","Redo","-","Cut","Copy","Paste","PasteText","PasteFromWord","-","SpellChecker", "Scayt", "-","Link","Unlink","-","Bold","Italic","Underline","Superscript","SpecialChar","HorizontalRule","-","JustifyLeft","JustifyCenter","JustifyRight","JustifyBlock","-","NumberedList","BulletedList","Outdent","Indent","Blockquote","-","Styles","Format","Image","Table", "TextColor", "BGColor" ], ], ckeditorToolbar_Full: [ - { name: "document", items : [ "Source", "ExportPdf", "Preview", "Print" ] }, + { name: "document", items : [ "Source", "ExportPdf", "Preview", "Print", "-", "Templates" ] }, { name: "clipboard", items : [ "Cut","Copy","Paste","PasteText","PasteFromWord","-","Undo","Redo" ] }, { name: "editing", items : [ "Find","Replace","-","SelectAll","-","SpellChecker", "Scayt" ] }, { name: "forms", items : [ "Form", "Checkbox", "Radio", "TextField", "Textarea", "Select", "Button", "ImageButton", "HiddenField" ] }, "/", - { name: "basicstyles", items : [ "Bold","Italic","Underline","Strike","Subscript","Superscript","-","RemoveFormat" ] }, + { name: "basicstyles", items : [ "Bold","Italic","Underline","Strike","Subscript","Superscript","-","CopyFormatting","RemoveFormat" ] }, { name: "paragraph", items : [ "NumberedList","BulletedList","-","Outdent","Indent","-","Blockquote","CreateDiv", - "-","JustifyLeft","JustifyCenter","JustifyRight","JustifyBlock","-","BidiLtr","BidiRtl" ] }, + "-","JustifyLeft","JustifyCenter","JustifyRight","JustifyBlock","-","BidiLtr","BidiRtl","Language" ] }, { name: "links", items : [ "Link","Unlink","Anchor" ] }, { name: "insert", items : [ "Image","Flash","Table","HorizontalRule","Smiley","SpecialChar","PageBreak","Iframe" ] }, "/", { name: "styles", items : [ "Styles","Format","Font","FontSize" ] }, { name: "colors", items : [ "TextColor","BGColor" ] }, - { name: "tools", items : [ "Maximize", "ShowBlocks","-","About" ] } + { name: "tools", items : [ "Maximize", "ShowBlocks" ] }, + { name: "about", items: [ "About" ] } ], order_manager_id: "'.($dbo->isInstalled() ? Modules::get('Stato dei servizi')['id'] : '').'", dataload_page_buffer: '.setting('Lunghezza in pagine del buffer Datatables').', diff --git a/modules/gestione_documentale/actions.php b/modules/gestione_documentale/actions.php index dce348512..4640a0d5a 100755 --- a/modules/gestione_documentale/actions.php +++ b/modules/gestione_documentale/actions.php @@ -36,7 +36,7 @@ switch (post('op')) { $dbo->update('do_documenti', [ 'idcategoria' => post('idcategoria'), 'nome' => post('nome'), - 'descrizione' => post('descrizione') ?: null, + 'descrizione' => post('descrizione', true) ?: null, 'data' => post('data') ?: null, ], ['id' => $id_record]); diff --git a/modules/newsletter/actions.php b/modules/newsletter/actions.php index f0d4ba719..983723f97 100755 --- a/modules/newsletter/actions.php +++ b/modules/newsletter/actions.php @@ -46,7 +46,7 @@ switch (filter('op')) { $newsletter->completed_at = filter('completed_at'); $newsletter->subject = filter('subject'); - $newsletter->content = $_POST['content']; //filter('content'); + $newsletter->content = post('content', true); //filter('content'); $newsletter->save(); diff --git a/modules/stato_servizi/edit.php b/modules/stato_servizi/edit.php index efe6c1a7e..d7bb5e494 100755 --- a/modules/stato_servizi/edit.php +++ b/modules/stato_servizi/edit.php @@ -100,7 +100,7 @@ if (Services::isEnabled()) { if (!$risorse_in_scadenza->isEmpty()){ echo ' -