From bb3893c3c6955d0d6ccfb3c1d83c51faaecb1cfb Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Thu, 9 Mar 2023 15:21:20 +0100 Subject: [PATCH 01/18] Fix riferimento fattura in query vista ordine fornitore --- update/2_4_42.sql | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/update/2_4_42.sql b/update/2_4_42.sql index 90357ec6c..13fb8260e 100644 --- a/update/2_4_42.sql +++ b/update/2_4_42.sql @@ -1,2 +1,22 @@ -- Ampliamento decimali fattore moltiplicativo per unità di misura secondaria -ALTER TABLE `mg_articoli` CHANGE `fattore_um_secondaria` `fattore_um_secondaria` DECIMAL(19,10) NULL DEFAULT NULL; \ No newline at end of file +ALTER TABLE `mg_articoli` CHANGE `fattore_um_secondaria` `fattore_um_secondaria` DECIMAL(19,10) NULL DEFAULT NULL; + +-- Fix query vista ordini fornitore +UPDATE `zz_modules` SET `options` = "SELECT + |select| +FROM + `or_ordini` + LEFT JOIN `or_tipiordine` ON `or_ordini`.`idtipoordine` = `or_tipiordine`.`id` + LEFT JOIN `an_anagrafiche` ON `or_ordini`.`idanagrafica` = `an_anagrafiche`.`idanagrafica` + LEFT JOIN (SELECT `idordine`, SUM(`qta` - `qta_evasa`) AS `qta_da_evadere`, SUM(`subtotale` - `sconto`) AS `totale_imponibile`, SUM(`subtotale` - `sconto` + `iva`) AS `totale` FROM `or_righe_ordini` GROUP BY `idordine`) AS righe ON `or_ordini`.`id` = `righe`.`idordine` + 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`) 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 + 2=2 +ORDER BY + `data` DESC, + CAST(`numero_esterno` AS UNSIGNED) DESC" WHERE `name` = 'Ordini fornitore'; \ No newline at end of file From 86fd08124f2196ce8c7a2c9ddc91912acda2d9f9 Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Thu, 9 Mar 2023 17:45:09 +0100 Subject: [PATCH 02/18] Fix #1231 --- modules/ddt/actions.php | 7 ++++++- modules/fatture/actions.php | 8 +++++++- modules/ordini/actions.php | 7 ++++++- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/modules/ddt/actions.php b/modules/ddt/actions.php index c013cdb96..d4de54213 100755 --- a/modules/ddt/actions.php +++ b/modules/ddt/actions.php @@ -642,7 +642,12 @@ $sconto = $listino['sconto_percentuale_listino']; } } - $prezzo_unitario = $prezzo_unitario ?: ($prezzi_ivati ? $originale->prezzo_vendita_ivato : $originale->prezzo_vendita); + if ($dir == 'entrata') { + $prezzo_unitario = $prezzo_unitario ?: ($prezzi_ivati ? $originale->prezzo_vendita_ivato : $originale->prezzo_vendita); + } else { + $prezzo_unitario = $originale->prezzo_acquisto; + } + $articolo->setPrezzoUnitario($prezzo_unitario, $id_iva); $articolo->setSconto($sconto, 'PRC'); diff --git a/modules/fatture/actions.php b/modules/fatture/actions.php index af67c7d3c..4343fac0f 100755 --- a/modules/fatture/actions.php +++ b/modules/fatture/actions.php @@ -1009,7 +1009,13 @@ $sconto = $listino['sconto_percentuale_listino']; } } - $prezzo_unitario = $prezzo_unitario ?: ($prezzi_ivati ? $originale->prezzo_vendita_ivato : $originale->prezzo_vendita); + + if ($dir == 'entrata') { + $prezzo_unitario = $prezzo_unitario ?: ($prezzi_ivati ? $originale->prezzo_vendita_ivato : $originale->prezzo_vendita); + } else { + $prezzo_unitario = $originale->prezzo_acquisto; + } + $provvigione = $dbo->selectOne('an_anagrafiche', 'provvigione_default', ['idanagrafica' => $fattura->idagente])['provvigione_default']; $articolo->setPrezzoUnitario($prezzo_unitario, $id_iva); diff --git a/modules/ordini/actions.php b/modules/ordini/actions.php index 3508cf5ef..e5fc7aa47 100755 --- a/modules/ordini/actions.php +++ b/modules/ordini/actions.php @@ -674,7 +674,12 @@ $sconto = $listino['sconto_percentuale_listino']; } } - $prezzo_unitario = $prezzo_unitario ?: ($prezzi_ivati ? $originale->prezzo_vendita_ivato : $originale->prezzo_vendita); + if ($dir == 'entrata') { + $prezzo_unitario = $prezzo_unitario ?: ($prezzi_ivati ? $originale->prezzo_vendita_ivato : $originale->prezzo_vendita); + } else { + $prezzo_unitario = $originale->prezzo_acquisto; + } + $provvigione = $dbo->selectOne('an_anagrafiche', 'provvigione_default', ['idanagrafica' => $ordine->idagente])['provvigione_default']; $articolo->setPrezzoUnitario($prezzo_unitario, $id_iva); From ecd2c1fc0838c9765e648203260fdc590a8d2830 Mon Sep 17 00:00:00 2001 From: loviuz Date: Thu, 9 Mar 2023 18:12:38 +0100 Subject: [PATCH 03/18] Aggiunta modifica dimensione widget --- modules/stato_servizi/actions.php | 20 +++++++++++++++++ modules/stato_servizi/elenco-widget.php | 26 +++++++++++++++++++++++ src/HTMLBuilder/Manager/WidgetManager.php | 21 +++++++++--------- 3 files changed, 57 insertions(+), 10 deletions(-) diff --git a/modules/stato_servizi/actions.php b/modules/stato_servizi/actions.php index c5f233652..286085006 100755 --- a/modules/stato_servizi/actions.php +++ b/modules/stato_servizi/actions.php @@ -29,6 +29,26 @@ $id = post('id'); switch (filter('op')) { + + case 'cambia-dimensione': + $result = $dbo->update('zz_widgets', [ + 'class' => post('valore') + ], [ + 'id' => post('id') + ]); + + echo json_encode([ + 'result' => $result, + ]); + + if ($result) { + flash()->info('Impostazione modificata con successo!'); + } else { + flash()->error('Errore durante il salvataggio!'); + } + + break; + case 'rimuovi-modulo': $id = filter('id'); $is_plugin = filter('tipo') == 'plugin'; diff --git a/modules/stato_servizi/elenco-widget.php b/modules/stato_servizi/elenco-widget.php index 8a4b499e3..68aa7b1c3 100644 --- a/modules/stato_servizi/elenco-widget.php +++ b/modules/stato_servizi/elenco-widget.php @@ -24,6 +24,7 @@ '.tr('Nome').' + '.tr('Dimensione').' '.tr('Ubicazione').' '.tr('Stato').' '.tr('Posizione').' @@ -56,6 +57,9 @@ '.$widget['name'].(!empty($widget['help']) ? ' ' : '').' + + {[ "type": "select", "name": "dimensione[]", "class": "widgets", "value": "'.$widget['class'].'", "values": "list=\"0\": \"'.tr('Da impostazioni').'\", \"3\": \"'.tr('Piccolo').'\", \"4\": \"'.tr('Medio').'\", \"6\": \"'.tr('Grande').'\", \"12\": \"'.tr('Molto grande').'\"", "extra": "data-id=\"'.$widget['id'].'\"" ]} + '.( string_starts_with($widget['location'], 'controller') ? tr('Schermata modulo') : @@ -250,4 +254,26 @@ function spostaWidget(button) { } }); } + +$(".widgets").on("change", function() { + $.ajax({ + url: globals.rootdir + "/actions.php", + cache: false, + type: "POST", + dataType: "JSON", + data: { + op: "cambia-dimensione", + id_module: globals.id_module, + id: $(this).data("id"), + valore: $(this).val() + }, + success: function(data) { + renderMessages(); + }, + error: function(data) { + swal("'.tr('Errore').'", "'.tr('Errore durante il salvataggio dei dati').'", "error"); + } + }); +}); + '; diff --git a/src/HTMLBuilder/Manager/WidgetManager.php b/src/HTMLBuilder/Manager/WidgetManager.php index 3b6a4534c..643d3ce01 100755 --- a/src/HTMLBuilder/Manager/WidgetManager.php +++ b/src/HTMLBuilder/Manager/WidgetManager.php @@ -214,7 +214,7 @@ protected function render($widget, $title, $number = null) protected function group($options) { - $query = 'SELECT id, id_module FROM zz_widgets WHERE id_module = '.prepare($options['id_module']).' AND (|position|) AND enabled = 1 ORDER BY `order` ASC'; + $query = 'SELECT id, id_module, class FROM zz_widgets WHERE id_module = '.prepare($options['id_module']).' AND (|position|) AND enabled = 1 ORDER BY `order` ASC'; // Mobile (tutti i widget a destra) if (isMobile()) { @@ -245,12 +245,10 @@ protected function group($options) // Generazione del codice HTML if (!empty($widgets)) { - $row_max = setting('Numero massimo Widget per riga'); - if ($row_max > 6) { - $row_max = 6; - } elseif ($row_max < 1) { - $row_max = 1; + foreach ($widgets as $widget) { + $row_max = empty($widget['class'])? setting('Numero massimo Widget per riga') : $widget['class']; } + $result = '
    '; @@ -258,11 +256,14 @@ protected function group($options) // Aggiungo ad uno ad uno tutti i widget foreach ($widgets as $widget) { if ($widgets[0]['id_module'] == $database->fetchOne('SELECT id FROM zz_modules WHERE title = "Stato dei servizi"')['id']) { - $result .= ' -
  • '; + $result .= ' +
  • '; + } else if (empty($widget['class'])) { + $result .= ' +
  • '; } else { - $result .= ' -
  • '; + $result .= ' +
  • '; } $info = array_merge($options, [ 'id' => $widget['id'], From d8372ede61133c9b8f363592c86cde5c67dcfc4c Mon Sep 17 00:00:00 2001 From: Luca Date: Thu, 9 Mar 2023 18:38:11 +0100 Subject: [PATCH 04/18] Rimosso pulsante generazione password in fase di login --- index.php | 2 +- src/HTMLBuilder/Handler/DefaultHandler.php | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/index.php b/index.php index aff8b1979..e0bc8310d 100755 --- a/index.php +++ b/index.php @@ -158,7 +158,7 @@ function brute() { echo ' required> - {[ "type": "password", "name": "password", "autocomplete": "current-password", "placeholder": "'.tr('Password').'", "icon-before": "" ]} + {[ "type": "password", "name": "password", "autocomplete": "current-password", "placeholder": "'.tr('Password').'", "icon-before": "", "extra": "no-generate-pwd" ]}
    '.tr('Password dimenticata?').' diff --git a/src/HTMLBuilder/Handler/DefaultHandler.php b/src/HTMLBuilder/Handler/DefaultHandler.php index 5e1f26e71..af4c2e155 100755 --- a/src/HTMLBuilder/Handler/DefaultHandler.php +++ b/src/HTMLBuilder/Handler/DefaultHandler.php @@ -101,7 +101,10 @@ protected function file(&$values, &$extras) */ protected function password(&$values, &$extras) { - $values['icon-after'] = ' | '; + if (empty(intval($extras))){ + $values['icon-after'] = ' | '; + } + $values['icon-after'] .= ''; $result = ' '; if (!empty($values['strength'])) { + + + $values['icon-after'] .= ' | '; + + $result .= '
    diff --git a/update/2_4_42.sql b/update/2_4_42.sql index b78db7feb..9c4eb93e5 100644 --- a/update/2_4_42.sql +++ b/update/2_4_42.sql @@ -22,7 +22,7 @@ ORDER BY CAST(`numero_esterno` AS UNSIGNED) DESC" WHERE `name` = 'Ordini fornitore'; -- Correzione dimensione widget -UPDATE `zz_settings` SET `valore` = 'col-md-6', `tipo` = 'list[col-md-1,col-md-2,col-md-3,col-md-4,col-md-6]', `nome` = 'Dimensione widget predefinita' WHERE `nome` = 'Numero massimo Widget per riga'; +UPDATE `zz_settings` SET `valore` = 'col-md-3', `tipo` = 'list[col-md-1,col-md-2,col-md-3,col-md-4,col-md-6]', `nome` = 'Dimensione widget predefinita' WHERE `nome` = 'Numero massimo Widget per riga'; -- Reset class widget UPDATE `zz_widgets` SET `class` = NULL; \ No newline at end of file From 8bacd51c381c074867e8996a8473c50370cf79d4 Mon Sep 17 00:00:00 2001 From: Luca Date: Fri, 10 Mar 2023 10:31:55 +0100 Subject: [PATCH 10/18] Migliorie grafiche minori --- assets/src/css/style.css | 7 +++++++ src/HTMLBuilder/HTMLBuilder.php | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/assets/src/css/style.css b/assets/src/css/style.css index d1c970f0e..08610ef3b 100755 --- a/assets/src/css/style.css +++ b/assets/src/css/style.css @@ -1159,4 +1159,11 @@ div.tip { html body.sidebar-mini.sidebar-mini.sidebar-collapse i.fa.fa-user-circle-o.fa-3x.pull-left { font-size: 2.4em; } +} + +/* +* Colore help icon +*/ +.tip.tooltipstered>.fa-question-circle-o { + color: dodgerblue; } \ No newline at end of file diff --git a/src/HTMLBuilder/HTMLBuilder.php b/src/HTMLBuilder/HTMLBuilder.php index b21566e01..0e399c309 100755 --- a/src/HTMLBuilder/HTMLBuilder.php +++ b/src/HTMLBuilder/HTMLBuilder.php @@ -457,7 +457,7 @@ protected static function elaborate($json) // Gestione grafica dell'attributo required if (in_array('required', $extras)) { if (!empty($values['label'])) { - $values['label'] .= '*'; + $values['label'] .= '*'; } elseif (!empty($values['placeholder'])) { $values['placeholder'] .= '*'; } From 78db635ea9ce5d7d10c78bb70f97b171c9f2798c Mon Sep 17 00:00:00 2001 From: Luca Date: Fri, 10 Mar 2023 11:07:55 +0100 Subject: [PATCH 11/18] Ripristino controllo contenuto modificato in caso di uscite accidentali dalla schermata di modifica Migliorie minori --- assets/src/css/style.css | 15 +++++++++++++++ editor.php | 4 ++-- plugins/importFE/generate.php | 4 ++-- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/assets/src/css/style.css b/assets/src/css/style.css index 08610ef3b..0a8a0062f 100755 --- a/assets/src/css/style.css +++ b/assets/src/css/style.css @@ -299,6 +299,10 @@ span.form-control { padding: 5px; } +.input-group .input-group-addon { + background-color: transparent; +} + .input-group-addon { padding: 0px 12px; } @@ -1166,4 +1170,15 @@ div.tip { */ .tip.tooltipstered>.fa-question-circle-o { color: dodgerblue; +} + +/* +* Colore testo btn-box-tool +*/ +.btn-box-tool { + color: #2e2e2e; +} + +.btn-box-tool:hover { + color: #000000; } \ No newline at end of file diff --git a/editor.php b/editor.php index 1cf2daadc..ced6d2c67 100755 --- a/editor.php +++ b/editor.php @@ -502,14 +502,14 @@ }); // questo controllo blocca il modulo vendita al banco, dopo la lettura con barcode, appare il messaggio di conferma - window.onbeforeunload = function(e) { + window.addEventListener("beforeunload", function(e) { if(content_was_modified) { var dialogText = "Uscire senza salvare?"; e.returnValue = dialogText; $("#main_loading").fadeOut(); return dialogText; } - }; + }); window.addEventListener("unload", function(e) { $("#main_loading").show(); diff --git a/plugins/importFE/generate.php b/plugins/importFE/generate.php index 2cdadc708..4999e3197 100755 --- a/plugins/importFE/generate.php +++ b/plugins/importFE/generate.php @@ -575,11 +575,11 @@ function cleanup(){
    - {[ "type": "select", "name": "selezione_riferimento['.$key.']", "ajax-source": "riferimenti-fe", "select-options": '.json_encode(['id_anagrafica' => $anagrafica ? $anagrafica->id : '']).', "label": "'.tr('Riferimento acquisto').'", "icon-after": '.json_encode('').', "help": "'.tr('Articoli contenuti in Ordini o DDT del Fornitore').'" ]} + {[ "type": "select", "name": "selezione_riferimento['.$key.']", "ajax-source": "riferimenti-fe", "select-options": '.json_encode(['id_anagrafica' => $anagrafica ? $anagrafica->id : '']).', "label": "'.tr('Riferimento acquisto').'", "icon-after": '.json_encode('').', "help": "'.tr('Articoli contenuti in Ordini o DDT del Fornitore').'" ]}
    - {[ "type": "select", "name": "selezione_riferimento_vendita['.$key.']", "ajax-source": "riferimenti-vendita-fe", "select-options": '.json_encode(['id_articolo' => $id_articolo]).', "label": "'.tr('Riferimento vendita').'", "icon-after": '.json_encode('').', "help": "'.tr('Articoli contenuti in Ordini Cliente').'" ]} + {[ "type": "select", "name": "selezione_riferimento_vendita['.$key.']", "ajax-source": "riferimenti-vendita-fe", "select-options": '.json_encode(['id_articolo' => $id_articolo]).', "label": "'.tr('Riferimento vendita').'", "icon-after": '.json_encode('').', "help": "'.tr('Articoli contenuti in Ordini Cliente').'" ]}
    From 7c0a8ecbf7cfaef33050958c86f40109aa2f2887 Mon Sep 17 00:00:00 2001 From: loviuz Date: Fri, 10 Mar 2023 11:33:19 +0100 Subject: [PATCH 12/18] Rallentamento esecuzione hooks --- assets/src/js/functions/hooks.js | 60 ++++++++++++++++++-------------- 1 file changed, 34 insertions(+), 26 deletions(-) diff --git a/assets/src/js/functions/hooks.js b/assets/src/js/functions/hooks.js index df3fa0902..4930ee2d6 100755 --- a/assets/src/js/functions/hooks.js +++ b/assets/src/js/functions/hooks.js @@ -56,33 +56,41 @@ function startHooks() { * @param hook */ function startHook(hook, init) { - $.ajax({ - url: globals.rootdir + "/ajax.php", - type: "get", - data: { - op: "hook-lock", - id: hook.id, - }, - success: function (data) { - var token = JSON.parse(data); - - if (init) { - hookCount("#hooks-counter"); - - updateHook(hook); - } + if (document.hasFocus()) { + $.ajax({ + url: globals.rootdir + "/ajax.php", + type: "get", + data: { + op: "hook-lock", + id: hook.id, + }, + success: function (data) { + var token = JSON.parse(data); + + if (init) { + hookCount("#hooks-counter"); + + updateHook(hook); + } - if (token) { - executeHook(hook, token); - } else { - var timeout = 10; + if (token) { + executeHook(hook, token); + } else { + var timeout = 30; - setTimeout(function () { - startHook(hook); - }, timeout * 1000); - } - }, - }); + setTimeout(function () { + startHook(hook); + }, timeout * 1000); + } + }, + }); + } else { + var timeout = 30; + + setTimeout(function () { + startHook(hook); + }, timeout * 1000); + } } /** @@ -108,7 +116,7 @@ function executeHook(hook, token) { if (result.execute) { startHook(hook); } else { - timeout = 30; + timeout = 60; setTimeout(function () { startHook(hook); From c1e16fba7a8ea824673b08753f0ed5b0f834b3ac Mon Sep 17 00:00:00 2001 From: Luca Date: Fri, 10 Mar 2023 13:00:39 +0100 Subject: [PATCH 13/18] Introduzione opzione "hide-item-number" per decidere se visualizzare o meno il codice articolo sulle stampe preventivo Altre fix minori --- assets/src/css/style.css | 11 +++++++++++ include/init/requirements.php | 2 +- plugins/importFE/generate.php | 2 +- src/HTMLBuilder/HTMLBuilder.php | 8 ++++---- templates/preventivi/body.php | 14 ++++++++++---- 5 files changed, 27 insertions(+), 10 deletions(-) diff --git a/assets/src/css/style.css b/assets/src/css/style.css index 0a8a0062f..893435549 100755 --- a/assets/src/css/style.css +++ b/assets/src/css/style.css @@ -157,6 +157,10 @@ a:focus { padding: 0 0px; } +.no-padding-left { + padding-left: 0px !important; +} + .box-center { width: 600px; margin: 7% auto @@ -1177,8 +1181,15 @@ div.tip { */ .btn-box-tool { color: #2e2e2e; + padding-left: 100px; } .btn-box-tool:hover { color: #000000; +} + +.select2-container--bootstrap .select2-selection--multiple .select2-search--inline .select2-search__field { + height: 23px; + padding: 3px 12px; + margin-top: 4px; } \ No newline at end of file diff --git a/include/init/requirements.php b/include/init/requirements.php index 091b09450..11298f9bb 100755 --- a/include/init/requirements.php +++ b/include/init/requirements.php @@ -296,7 +296,7 @@ // File di servizio $files_to_check = [ - 'manifest.json' => tr('Necessario per l\'aggiunta a schermata home da terminale'), + 'manifest.json' => tr('Necessario per l\'aggiunta a schermata home da terminale (creato al termine della configurazione)'), 'database_5_7.json' => tr('Necessario per il controllo integrità con database MySQL 5.7.x'), 'database.json' => tr('Necessario per il controllo integrità con database MySQL 8.0.x'), 'checksum.json' => tr('Necessario per il controllo integrità dei files del gestionale'), diff --git a/plugins/importFE/generate.php b/plugins/importFE/generate.php index 4999e3197..f97824647 100755 --- a/plugins/importFE/generate.php +++ b/plugins/importFE/generate.php @@ -566,7 +566,7 @@ function cleanup(){

    -
    diff --git a/src/HTMLBuilder/HTMLBuilder.php b/src/HTMLBuilder/HTMLBuilder.php index 0e399c309..47fa3fa79 100755 --- a/src/HTMLBuilder/HTMLBuilder.php +++ b/src/HTMLBuilder/HTMLBuilder.php @@ -85,7 +85,7 @@ class HTMLBuilder /** @var array Generatore del contenitore per i campi HTML */ protected static $wrapper = [ 'class' => Wrapper\HTMLWrapper::class, - 'istance' => null, + 'instance' => null, ]; /** @var array Elenco dei gestori delle strutture HTML */ @@ -201,7 +201,7 @@ public static function parse(array $json) } /** - * Restituisce il nome della classe resposabile per la gestione di una determinata tipologia di tag di input. + * Restituisce il nome della classe responsabile per la gestione di una determinata tipologia di tag di input. * * @param string $input * @@ -215,7 +215,7 @@ public static function getHandlerName($input) } /** - * Restituisce l'istanza della classe resposabile per la gestione di una determinata tipologia di tag di input. + * Restituisce l'istanza della classe responsabile per la gestione di una determinata tipologia di tag di input. * * @param string $input * @@ -232,7 +232,7 @@ public static function getHandler($input) } /** - * Imposta una determinata classe come resposabile per la gestione di una determinata tipologia di tag di input. + * Imposta una determinata classe come responsabile per la gestione di una determinata tipologia di tag di input. * * @param string $input * @param string|mixed $class diff --git a/templates/preventivi/body.php b/templates/preventivi/body.php index 2ad6bf6de..1d245ece5 100755 --- a/templates/preventivi/body.php +++ b/templates/preventivi/body.php @@ -213,10 +213,16 @@ '.nl2br($r['descrizione']); if ($riga->isArticolo()) { - // Codice articolo - $text = tr('COD. _COD_', [ - '_COD_' => $riga->codice, - ]); + + if($options['hide-item-number']){ + $text = ''; + }else{ + // Codice articolo + $text = tr('COD. _COD_', [ + '_COD_' => $riga->codice, + ]); + } + echo '
    '.$text.''; From 3ed6ed63697a9386552e244b86c985dfe7631ec2 Mon Sep 17 00:00:00 2001 From: Matteo Date: Fri, 10 Mar 2023 15:09:24 +0100 Subject: [PATCH 14/18] Aggiornamento numero revisione api --- src/API/App/v1/Revisione.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/API/App/v1/Revisione.php b/src/API/App/v1/Revisione.php index 170103bd4..4bb8cfe09 100644 --- a/src/API/App/v1/Revisione.php +++ b/src/API/App/v1/Revisione.php @@ -24,7 +24,7 @@ class Revisione extends Resource implements RetrieveInterface { - const REVISION = '5'; + const REVISION = '6'; public function retrieve($request) { From 42d9ec4d72d01fe1c1a4f9bb5a307b1adfdc80b0 Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Fri, 10 Mar 2023 15:29:12 +0100 Subject: [PATCH 15/18] Aggiornamento CHANGELOG --- CHANGELOG.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 419585211..0c23e9a91 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.42 (2023-03-10)](#2442-2023-03-10) - [2.4.41 (2023-02-27)](#2441-2023-02-27) - [2.4.40 (2023-02-17)](#2440-2023-02-17) - [2.4.39 (2023-01-13)](#2439-2023-01-13) @@ -52,6 +53,31 @@ 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.41 (2023-02-27) +### Aggiunto (Added) +- Aggiunta la gestione della provvigione in fase di aggiunta riga +- Aggiunta la selezione del sezionale in ddt trasferimento fra sedi +- Aggiunta impostazione di articolo e conto in fase di import FE +- Aggiunta possibilità di cambiare gruppo agli utenti +- Aggiunto messaggio aggiornamento utente +- Aggiunta possibilità di generare password casuali +- Aggiunta inserimento seriale in fatture di acquisto emesse +- Aggiunta impostazione per forzare la dimensione dei widget in Dashboard +### Modificato (Changed) +- Migliorata la visualizzazione delle attività in Dashboard +- Migliorata la gestione del fattore moltiplicativo +- Migliorati i riferimenti in fase di importazione fatture elettroniche +### Fixed +- Corretto il suggerimento dello sconto articolo +- Corretta la visualizzazione dello sconto per range nei listini +- Corretta l'impostazione della zona in fase di aggiunta sede +- Corretta la duplicazione di un template email +- Corretto l'inserimento di articoli con quantità negativa in ordini clienti e preventivi +- Corretto l'inserimento di apici in select-options +- Corretto l'ordinamento delle checklist +- Corretta la visualizzazione tooltip eventi AllDay +- Corretti i prezzi nei documenti di acquisto ## 2.4.41 (2023-02-27) ### Aggiunto (Added) - Aggiunta la modifica automatica del piano dei conti per clienti e fornitori From 2e0d7fefb7c1c6a8299726fe4b5c5f8276c10c6c Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Fri, 10 Mar 2023 15:49:38 +0100 Subject: [PATCH 16/18] fix minore --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c23e9a91..272d56d9e 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -54,7 +54,7 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k - [2.1 (2015-04-02)](#21-2015-04-02) -## 2.4.41 (2023-02-27) +## 2.4.42 (2023-03-10) ### Aggiunto (Added) - Aggiunta la gestione della provvigione in fase di aggiunta riga - Aggiunta la selezione del sezionale in ddt trasferimento fra sedi From 9510df3facb1dbad6af89fa39c1507d5345abb8d Mon Sep 17 00:00:00 2001 From: Luca Date: Fri, 10 Mar 2023 16:10:36 +0100 Subject: [PATCH 17/18] Introduzione available_options per zz_prints --- modules/stampe/edit.php | 36 ++++++++++++++++++++++++++++++++++++ update/2_4_42.sql | 6 +++++- 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/modules/stampe/edit.php b/modules/stampe/edit.php index 99c3462d3..dd235e0ae 100755 --- a/modules/stampe/edit.php +++ b/modules/stampe/edit.php @@ -98,6 +98,42 @@ +
    +
    +

    '.tr('Opzioni').'

    +
    + +
    '; + +if (!empty($record['available_options'])) { + $available_options = json_decode($record['available_options']); + echo ' +

    '.tr('Puoi utilizzare le seguenti opzioni per generare la stampa').':

    +
      '; + + foreach ($available_options as $option => $value) { + echo ' +
    • '.$option.''.((!empty($value)) ? ' '.$value.'' : '').'
    • '; + } + + echo ' +
    '; +} else { + echo ' +

    '.tr('Non sono state definite opzioni da utilizzare per la stampa').'.

    '; +} + +echo ' +
    +
    '; + + // Variabili utilizzabili $module = Modules::get($record['id_module']); $variables = $module->getPlaceholders($id_record); diff --git a/update/2_4_42.sql b/update/2_4_42.sql index 9c4eb93e5..385525528 100644 --- a/update/2_4_42.sql +++ b/update/2_4_42.sql @@ -25,4 +25,8 @@ ORDER BY UPDATE `zz_settings` SET `valore` = 'col-md-3', `tipo` = 'list[col-md-1,col-md-2,col-md-3,col-md-4,col-md-6]', `nome` = 'Dimensione widget predefinita' WHERE `nome` = 'Numero massimo Widget per riga'; -- Reset class widget -UPDATE `zz_widgets` SET `class` = NULL; \ No newline at end of file +UPDATE `zz_widgets` SET `class` = NULL; + +-- Aggiunto available_options per zz_prints +ALTER TABLE `zz_prints` ADD `available_options` VARCHAR(255) NULL AFTER `enabled`; +UPDATE `zz_prints` SET `available_options` = '{"pricing":"Visualizza prezzi sulla stampa", "last-page-footer": "Visualizza footer ultima pagina", "hide-item-number": "Nasconde codici degli articoli"}' WHERE `zz_prints`.`name` = 'Preventivo'; \ No newline at end of file From 1423f98e40303d081657fc0024f4fc2ef42ded43 Mon Sep 17 00:00:00 2001 From: Luca Date: Fri, 10 Mar 2023 16:38:53 +0100 Subject: [PATCH 18/18] Migliorate logiche options per stampe --- templates/ordini/body.php | 2 +- templates/preventivi/body.php | 34 +++++++++++++++++----------------- update/2_4_42.sql | 10 ++++++++-- 3 files changed, 26 insertions(+), 20 deletions(-) diff --git a/templates/ordini/body.php b/templates/ordini/body.php index 701f726e3..0aacf9fc4 100755 --- a/templates/ordini/body.php +++ b/templates/ordini/body.php @@ -128,7 +128,7 @@ '.nl2br($r['descrizione']); if ($riga->isArticolo()) { - if ($documento->direzione == 'entrata' && !$options['hide_codice']) { + if ($documento->direzione == 'entrata' && !$options['hide-item-number']) { // Codice articolo $text = tr('COD. _COD_', [ '_COD_' => $riga->codice, diff --git a/templates/preventivi/body.php b/templates/preventivi/body.php index 1d245ece5..66214fee9 100755 --- a/templates/preventivi/body.php +++ b/templates/preventivi/body.php @@ -171,7 +171,7 @@ if ($options['pricing']) { echo " ".tr('Prezzo unitario', [], ['upper' => true])." - ".( $options['hide_total'] ? tr('Importo ivato', [], ['upper' => true ]) : tr( 'Importo', [], ['upper' => true]) )." + ".( $options['hide-total'] ? tr('Importo ivato', [], ['upper' => true ]) : tr( 'Importo', [], ['upper' => true]) )." ".tr('IVA', [], ['upper' => true]).' (%)'; } @@ -259,7 +259,7 @@ // Imponibile echo ' - '.( ($options['hide_total'] || $prezzi_ivati) ? moneyFormat($riga->totale) : moneyFormat($riga->totale_imponibile) ).' + '.( ($options['hide-total'] || $prezzi_ivati) ? moneyFormat($riga->totale) : moneyFormat($riga->totale_imponibile) ).' '; // Iva @@ -302,15 +302,15 @@ $show_sconto = $sconto > 0; // TOTALE COSTI FINALI -if (($options['pricing'] && !isset($options['hide_total'])) || $options['show_only_total']) { +if (($options['pricing'] && !isset($options['hide-total'])) || $options['show-only-total']) { // Totale imponibile echo ' - + '.tr('Imponibile', [], ['upper' => true]).': - + '.moneyFormat($show_sconto ? $imponibile : $totale_imponibile, 2).' '; @@ -319,11 +319,11 @@ if ($show_sconto) { echo ' - + '.tr('Sconto', [], ['upper' => true]).': - + '.moneyFormat($sconto, 2).' '; @@ -331,11 +331,11 @@ // Totale imponibile echo ' - + '.tr('Totale imponibile', [], ['upper' => true]).': - + '.moneyFormat($totale_imponibile, 2).' '; @@ -344,11 +344,11 @@ // IVA echo ' - + '.tr('Totale IVA', [], ['upper' => true]).': - + '.moneyFormat($totale_iva, 2).' '; @@ -356,10 +356,10 @@ // TOTALE echo ' - + '.tr('Totale documento', [], ['upper' => true]).': - + '.moneyFormat($totale, 2).' '; @@ -368,10 +368,10 @@ // SCONTO IN FATTURA echo ' - + '.tr('Sconto in fattura', [], ['upper' => true]).': - + '.moneyFormat($sconto_finale, 2).' '; @@ -379,10 +379,10 @@ // NETTO A PAGARE echo ' - + '.tr('Netto a pagare', [], ['upper' => true]).': - + '.moneyFormat($netto_a_pagare, 2).' '; diff --git a/update/2_4_42.sql b/update/2_4_42.sql index 385525528..fab02e6ac 100644 --- a/update/2_4_42.sql +++ b/update/2_4_42.sql @@ -28,5 +28,11 @@ UPDATE `zz_settings` SET `valore` = 'col-md-3', `tipo` = 'list[col-md-1,col-md-2 UPDATE `zz_widgets` SET `class` = NULL; -- Aggiunto available_options per zz_prints -ALTER TABLE `zz_prints` ADD `available_options` VARCHAR(255) NULL AFTER `enabled`; -UPDATE `zz_prints` SET `available_options` = '{"pricing":"Visualizza prezzi sulla stampa", "last-page-footer": "Visualizza footer ultima pagina", "hide-item-number": "Nasconde codici degli articoli"}' WHERE `zz_prints`.`name` = 'Preventivo'; \ No newline at end of file +ALTER TABLE `zz_prints` ADD `available_options` TEXT NULL AFTER `enabled`; + +UPDATE `zz_prints` SET `available_options` = '{\"pricing\":\"Visualizzare i prezzi\", \"hide-total\": \"Nascondere i totali delle righe\", \"show-only-total\": \"Visualizzare solo i totali del documento\", \"hide-header\": \"Nascondere intestazione\", \"hide-footer\": \"Nascondere footer\", \"last-page-footer\": \"Visualizzare footer solo su ultima pagina\", \"hide-item-number\": \"Nascondere i codici degli articoli\"}' WHERE `zz_prints`.`name` = 'Preventivo'; + +UPDATE `zz_prints` SET `options` = '{\"pricing\": true, \"last-page-footer\": true, \"hide-item-number\": true}' WHERE `zz_prints`.`name` = 'Ordine cliente (senza codici)'; + +UPDATE `zz_prints` SET `options` = '{\"pricing\":true, \"hide-total\":true}' WHERE `zz_prints`.`name` = 'Preventivo (senza totali)'; +UPDATE `zz_prints` SET `options` = '{\"pricing\":false, \"show-only-total\":true}' WHERE `zz_prints`.`name` = 'Preventivo (solo totale)'; \ No newline at end of file