diff --git a/CHANGELOG.md b/CHANGELOG.md index b48e4dcde..bd70d7dd5 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.16 (2020-07-28)](#2416-2020-07-28) - [2.4.15 (2020-05-01)](#2415-2020-05-01) - [2.4.14 (2020-04-23)](#2414-2020-04-23) - [2.4.13 (2020-02-05)](#2413-2020-02-05) @@ -25,7 +26,63 @@ 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.15 (2020-05-01) +## 2.4.16 (2020-07-28) + +### Aggiunto (Added) + - Aggiunta possibilità di creare un contratto dalla scheda del preventivo + - Aggiunta in supersearch la ricerca articoli per barcode + - Aggiunta rivalsa INPS e relativa IVA per il calcolo del totale ivato del documento + - Aggiunta colonna immagine per stampa preventivi + - Aggiunto pulsante visualizza la scheda del promemoria + - Aggiunta gestione allegati nello scadenzario + - Aggiunto ID per righe documenti + - Aggiunto avviso se ci sono fatture in elaborazione da più di 7 giorni per le quali non ho ancora ricevuto in feedback + - Aggiunta possibilità di duplicare l'attività (anche in bulk) + - Aggiunte operazioni di verifica notifica FE + - Aggiunta scelta del sezionale prima della stampa del registro IVA + - Aggiunta visualizzazione quantità disponibile in ordine + - Agginata possibilità di specificare riferimenti tra i documenti (#822) + - Aggiunti dettagli Fornitori per gli Articoli (#810) + - Aggiunto prezzo vendita ivato per gli Articoli + - Aggiunti periodi temporali per campo “Validità” (#806) + - Aggiunto supporto alle Causali DDT non fatturabili + - Aggiunti totali delle tabelle ristretti alla selezione + - Aggiunta articoli in sequenza tramite barcode + + +### Modificato (Changed) + - Allineamento Fattura Elettronica a versione schema XML 1.2.1 + - Aggiornamento foglio di stile FE Asso Invoice + - Migliorato caricamento files con Dropzone + - Aggiornamento a Gulp4 + - Migliorata stampa registro IVA + - Compattazione grafica righe documenti + - Ottimizzazione caricamento lista fatture + + +### Fixed + - Fix pulsante compilazione automatica campi in fase di import Fattura Elettronica passiva + - Fix statistiche per anagrafiche eliminate + - Fix creazione sottocategoria articoli + - Fix riporto sconti da attività a fattura (#817) + - Fix calcolo numero progressivo in fase di duplicazione dei preventivi (#825) + - Fix stampa preventivo per descrizioni lunghe con testo troppo piccolo (#759) + - Ripristino TD01 per fatture differite + - Fix widget "Contratti in scadenza" + - Fix IVA con prezzi fino a 6 decimali + - Fix valorizzazione campi anagrafica fornitore creata in fase di import Fattura Elettronica passiva (#840) + - Fix sconto attività (#841) + - Fix filtro articoli con caratteri speciali (#838) + - Fix lunghezza campo PrezzoUnitario per problemi di arrotondamento e calcolo FE + - Fix calcolo sconto su riga per prezzi ivati + - Fix calcolo ore Consuntivo Contratti + - Fix movimentazioni per Note di credito/debito + - Fix Validazione codice articolo (#854) + - Fix dicitura footer stampa fattura + - Fix calcolo quantità per inventario + - Fix stato dei Preventivi selezionabili + + ## 2.4.15 (2020-05-01) ### Aggiunto (Added) - Aggiunta impostazione per abilitare la notifica di nuove pre-release oltre a release stabili diff --git a/ajax_select.php b/ajax_select.php index 473f522a4..ec73fca60 100755 --- a/ajax_select.php +++ b/ajax_select.php @@ -8,12 +8,18 @@ if (!isset($resource)) { $page = filter('page') ?: 0; $length = filter('length') ?: 100; + // Opzioni di selezione sugli elementi + $options = filter('options') ?: []; + $options_compatibility = $_SESSION['superselect'] ?: []; + $options = array_merge($options_compatibility, $options); + + // Preselezione su $elements dichiarato da file precedente if (!isset($elements)) { $elements = []; } $elements = (!is_array($elements)) ? explode(',', $elements) : $elements; - $results = AJAX::select($op, $elements, $search, $page, $length); + $results = AJAX::select($op, $elements, $search, $page, $length, $options); echo json_encode($results); } diff --git a/assets/src/css/style.css b/assets/src/css/style.css index 7ded2de4d..fc93e48b8 100755 --- a/assets/src/css/style.css +++ b/assets/src/css/style.css @@ -898,7 +898,7 @@ input.small-width { border: 2px dashed #337ab7; border-radius: 5px; background: white; - margin-top:10px; + margin-top: 10px; } .dropzone .dz-message { @@ -912,6 +912,40 @@ input.small-width { margin-top: 1.4rem; } +/* Fancy checkbox: https://bootsnipp.com/snippets/M2bda */ +.form-group input[type="checkbox"] { + display: none; +} + +.form-group input[type="checkbox"] + .btn-group > label span { + width: 20px; +} + +.form-group input[type="checkbox"] + .btn-group { + width: 100%; + display: flex; +} + +.form-group input[type="checkbox"] + .btn-group label:last-child { + flex-grow: 100; +} + +.form-group input[type="checkbox"] + .btn-group > label span:first-child { + display: none; +} + +.form-group input[type="checkbox"] + .btn-group > label span:last-child { + display: inline-block; +} + +.form-group input[type="checkbox"]:checked + .btn-group > label span:first-child { + display: inline-block; +} + +.form-group input[type="checkbox"]:checked + .btn-group > label span:last-child { + display: none; +} + .control-sidebar-bg { top: 50px; } diff --git a/assets/src/js/functions/select.js b/assets/src/js/functions/select.js index 1bee786af..c8e28c53e 100755 --- a/assets/src/js/functions/select.js +++ b/assets/src/js/functions/select.js @@ -70,11 +70,24 @@ function start_superselect() { dataType: 'json', delay: 250, data: function (params) { - return { + const data = { search: params.term, page: params.page || 0, length: params.length || 100, - } + options: {}, // Dati aggiuntivi + }; + + // Lettura dei dati aggiuntivi + $(this).each(function () { + $.each(this.attributes, function () { + if (this.specified && this.name.startsWith('data-select-')) { + const name = this.name.replace('data-select-', ''); + data.options[name] = this.value; + } + }); + }); + + return data; }, processResults: function (data, params) { params.page = params.page || 0; @@ -163,7 +176,7 @@ jQuery.fn.selectAdd = function (values) { values.forEach(function (item) { if (item.data) { - Object.keys(item.data).forEach(function(element) { + Object.keys(item.data).forEach(function (element) { item['data-' + element] = item.data[element]; }); } @@ -196,3 +209,12 @@ jQuery.fn.selectData = function () { } } }; + +/** + * Imposta le informazioni aggiuntive di un - - - -'; + + +'; diff --git a/modules/articoli/modals/duplicazione.php b/modules/articoli/modals/duplicazione.php new file mode 100644 index 000000000..a61d030c9 --- /dev/null +++ b/modules/articoli/modals/duplicazione.php @@ -0,0 +1,31 @@ + + + + +
+
+ {[ "type": "text", "label": "'.tr('Codice').'", "name": "codice", "required": 1, "value": "", "validation": "codice" ]} +
+ +
+ {[ "type": "checkbox", "label": "'.tr('Copia allegati').'", "name": "copia_allegati", "value": 1 ]} +
+
+ + +
+
+ +
+
+'; + +echo ' +'; diff --git a/modules/contratti/actions.php b/modules/contratti/actions.php index 8bb70fa93..303fa8663 100644 --- a/modules/contratti/actions.php +++ b/modules/contratti/actions.php @@ -436,12 +436,17 @@ $riga = $contratto->getRiga($type, $id_riga); } $documento = $class::find($id_documento); + // Individuazione sede + $id_sede = ($documento->direzione == 'entrata') ? $documento->idsede_destinazione : $documento->idsede_partenza; + $id_sede = $id_sede ?: $documento->idsede; + $id_sede = $id_sede ?: 0; + // Creazione del contratto al volo if (post('create_document') == 'on') { $contratto = Contratto::build($documento->anagrafica, $documento->nome); $contratto->idpagamento = $documento->idpagamento; - $contratto->idsede = $documento->idsede; + $contratto->idsede = $id_sede; $contratto->id_documento_fe = $documento->id_documento_fe; $contratto->codice_cup = $documento->codice_cup; diff --git a/modules/contratti/add_preventivo.php b/modules/contratti/add_preventivo.php index 78e71f893..23fe574bd 100644 --- a/modules/contratti/add_preventivo.php +++ b/modules/contratti/add_preventivo.php @@ -27,6 +27,7 @@ if (!empty($id_documento)) { $id_anagrafica = $documento_finale->idanagrafica; $_SESSION['superselect']['idanagrafica'] = $id_anagrafica; +$_SESSION['superselect']['stato'] = 'is_fatturabile'; echo '
@@ -36,7 +37,7 @@ echo '
- +
@@ -46,20 +47,20 @@ echo ' $file = basename(__FILE__); echo ' - + - + '; diff --git a/modules/interventi/edit.php b/modules/interventi/edit.php index bd03c2146..dcb17f4ed 100755 --- a/modules/interventi/edit.php +++ b/modules/interventi/edit.php @@ -7,9 +7,11 @@ $block_edit = $record['flag_completato']; unset($_SESSION['superselect']['idanagrafica']); unset($_SESSION['superselect']['idsede_partenza']); unset($_SESSION['superselect']['idsede_destinazione']); +unset($_SESSION['superselect']['idintervento']); $_SESSION['superselect']['idanagrafica'] = $record['idanagrafica']; $_SESSION['superselect']['idsede_partenza'] = $record['idsede_partenza']; $_SESSION['superselect']['idsede_partenza']; +$_SESSION['superselect']['idintervento'] = $id_record; $_SESSION['superselect']['idsede_destinazione'] = $record['idsede_destinazione']; $_SESSION['superselect']['permetti_movimento_a_zero'] = false; @@ -119,7 +121,6 @@ $_SESSION['superselect']['permetti_movimento_a_zero'] = false;
-
@@ -262,7 +263,7 @@ $articoli = $intervento->articoli;
- {[ "type": "select", "label": "", "name": "idsede_partenza", "ajax-source": "sedi_azienda", "value": "$idsede_partenza$", "readonly": "" ]} + {[ "type": "select", "label": "", "name": "idsede_partenza", "ajax-source": "sedi_azienda", "value": "$idsede_partenza$", "readonly": "isEmpty()) ? 1 : 0; ?>" ]}
diff --git a/modules/interventi/copia_attivita.php b/modules/interventi/modals/duplicazione.php similarity index 75% rename from modules/interventi/copia_attivita.php rename to modules/interventi/modals/duplicazione.php index 1915635df..ff7d42729 100644 --- a/modules/interventi/copia_attivita.php +++ b/modules/interventi/modals/duplicazione.php @@ -1,9 +1,9 @@ +
@@ -11,27 +11,31 @@ echo '
{[ "type": "timestamp", "label": "'.tr('Data/ora richiesta').'", "name": "data_richiesta", "required": 0, "value": "-now-", "required":1 ]}
+
{[ "type": "select", "label": "'.tr('Stato').'", "name": "idstatointervento", "required": 1, "values": "query=SELECT idstatointervento AS id, descrizione, colore AS _bgcolor_ FROM in_statiintervento WHERE deleted_at IS NULL", "value": "" ]}
+
{["type":"checkbox", "label":"'.tr('Duplica righe').'", "name":"righe", "value":"", "help":"'.tr('Selezione per riportare anche le righe nella nuova attività').'" ]}
+
{["type":"checkbox", "label":"'.tr('Duplica sessioni').'", "name":"sessioni", "value":"", "help":"'.tr('Selezione per riportare anche le sessioni di lavoro nella nuova attività').'" ]}
-
-
- -
-
+ +
+
+ +
+
+
'; - - -'; +echo ' +'; diff --git a/modules/ordini/actions.php b/modules/ordini/actions.php index 397285c2d..81b96dae8 100755 --- a/modules/ordini/actions.php +++ b/modules/ordini/actions.php @@ -323,13 +323,18 @@ switch (post('op')) { } $documento = $class::find($id_documento); + // Individuazione sede + $id_sede = ($documento->direzione == 'entrata') ? $documento->idsede_destinazione : $documento->idsede_partenza; + $id_sede = $id_sede ?: $documento->idsede; + $id_sede = $id_sede ?: 0; + // Creazione dell' ordine al volo if (post('create_document') == 'on') { $tipo = Tipo::where('dir', $documento->direzione)->first(); $ordine = Ordine::build($documento->anagrafica, $tipo, post('data')); $ordine->idpagamento = $documento->idpagamento; - $ordine->idsede = $documento->idsede; + $ordine->idsede = $id_sede; $ordine->id_documento_fe = $documento->id_documento_fe; $ordine->codice_cup = $documento->codice_cup; diff --git a/modules/ordini/buttons.php b/modules/ordini/buttons.php index 51b0c4eb2..535b85aad 100755 --- a/modules/ordini/buttons.php +++ b/modules/ordini/buttons.php @@ -8,26 +8,29 @@ echo '  '.tr('Crea').'... -