From 8952ad0c0a6e307375ae1b96c3fb90b00522082a Mon Sep 17 00:00:00 2001 From: Dasc3er Date: Thu, 3 Sep 2020 11:55:15 +0200 Subject: [PATCH 1/5] Miglioramento grafica importazione FE --- assets/src/js/functions/select.js | 26 ++++- modules/contratti/row-list.php | 12 +- modules/ddt/row-list.php | 24 ++-- modules/fatture/ajax/select.php | 50 ++++++++ modules/fatture/row-list.php | 24 ++-- modules/interventi/row-list.php | 18 +-- modules/ordini/row-list.php | 18 +-- modules/preventivi/row-list.php | 12 +- plugins/importFE/generate.php | 179 +++++++++++++++++++++-------- plugins/importFE/riferimento.php | 161 ++++++-------------------- plugins/receiptFE/src/Ricevuta.php | 1 - src/API/App/v1/Interventi.php | 1 - templates/ordini/body.php | 2 +- 13 files changed, 290 insertions(+), 238 deletions(-) create mode 100644 modules/fatture/ajax/select.php diff --git a/assets/src/js/functions/select.js b/assets/src/js/functions/select.js index 20b7ab480..0abb7aa94 100755 --- a/assets/src/js/functions/select.js +++ b/assets/src/js/functions/select.js @@ -81,8 +81,28 @@ function start_superselect() { params.page = params.page || 0; params.length = params.length || 100; + let results = data.results; + + // Interpretazione forzata per campi optgroup + if (results[0]['optgroup']) { + let groups = results.reduce(function (r, a) { + r[a.optgroup] = r[a.optgroup] || []; + r[a.optgroup].push(a); + return r; + }, {}); + + let results_groups = []; + for (const key in groups) { + results_groups.push({ + text: key, + children: groups[key], + }); + } + results = results_groups; + } + return { - results: data.results, + results: results, pagination: { more: (params.page + 1) * params.length < data.recordsFiltered, } @@ -218,8 +238,8 @@ jQuery.fn.getSelectOption = function (name) { * @param name * @param value */ -function updateSelectOption(name, value){ - $(".superselectajax").each(function (){ +function updateSelectOption(name, value) { + $(".superselectajax").each(function () { $(this).setSelectOption(name, value); }) } diff --git a/modules/contratti/row-list.php b/modules/contratti/row-list.php index 559d5a186..fd2123e3c 100755 --- a/modules/contratti/row-list.php +++ b/modules/contratti/row-list.php @@ -193,9 +193,9 @@ echo ' echo ' '; diff --git a/plugins/importFE/riferimento.php b/plugins/importFE/riferimento.php index 1cc522424..e82a7df8a 100755 --- a/plugins/importFE/riferimento.php +++ b/plugins/importFE/riferimento.php @@ -7,22 +7,20 @@ include_once __DIR__.'/../../core.php'; include_once __DIR__.'/init.php'; $direzione = 'uscita'; -$id_anagrafica = $anagrafica->id; $id_riga = get('id_riga'); $qta = get('qta'); $id_documento = get('id_documento'); $tipo_documento = get('tipo_documento'); -if (!empty($tipo_documento)) { - if ($tipo_documento == 'ordine') { - $documento = Ordine::find($id_documento); - $righe_utilizzate = get('righe_ordini'); - } else { - $documento = DDT::find($id_documento); - $righe_utilizzate = get('righe_ddt'); - } +if ($tipo_documento == 'ordine') { + $documento = Ordine::find($id_documento); + $righe_utilizzate = get('righe_ordini'); +} else { + $documento = DDT::find($id_documento); + $righe_utilizzate = get('righe_ddt'); +} - echo ' +echo ' @@ -32,140 +30,49 @@ if (!empty($tipo_documento)) { '; - $id_riferimento = get('id_riferimento'); - $righe = $documento->getRighe(); - foreach ($righe as $riga) { - $qta_rimanente = $riga->qta_rimanente - $righe_utilizzate[$riga->id]; +$id_riferimento = get('id_riferimento'); +$righe = $documento->getRighe(); +foreach ($righe as $riga) { + $qta_rimanente = $riga->qta_rimanente - $righe_utilizzate[$riga->id]; - echo ' - id ? 'class="success"' : '').'> + echo ' + id ? 'class="success"' : '').' data-type="'.get_class($riga).'" data-id="'.$riga->id.'" data-qta="'.$riga->qta.'" data-prezzo_unitario="'.$riga->prezzo_unitario.'"> '; - } - - echo ' - -
'.tr('Descrizione').'
'.$riga->descrizione.' '.numberFormat($qta_rimanente, 'qta').' / '.numberFormat($riga->qta, 'qta').' '; - if ($qta_rimanente >= $qta) { - echo ' - '; - } + } - echo ' + echo '
'; - - return; } echo ' -
-
- {[ "type": "select", "label": "'.tr('Ordine').'", "name": "id_ordine", "values": "query=SELECT or_ordini.id, CONCAT(\'Ordine num. \', IF(numero_esterno != \'\', numero_esterno, numero), \' del \', DATE_FORMAT(data, \'%d-%m-%Y\'), \' [\', (SELECT descrizione FROM or_statiordine WHERE id = idstatoordine) , \']\') AS descrizione FROM or_ordini WHERE idanagrafica = '.prepare($id_anagrafica).' AND idstatoordine IN (SELECT id FROM or_statiordine WHERE descrizione IN(\'Bozza\', \'Accettato\', \'Parzialmente evaso\')) AND idtipoordine IN (SELECT id FROM or_tipiordine WHERE dir='.prepare($direzione).') ORDER BY data DESC, numero DESC", "value": "" ]} -
- -
- {[ "type": "select", "label": "'.tr('Ddt').'", "name": "id_ddt", "values": "query=SELECT dt_ddt.id, CONCAT(\'DDT num. \', IF(numero_esterno != \'\', numero_esterno, numero), \' del \', DATE_FORMAT(data, \'%d-%m-%Y\'), \' [\', (SELECT descrizione FROM dt_statiddt WHERE id = idstatoddt) , \']\') AS descrizione FROM dt_ddt WHERE idanagrafica = '.prepare($id_anagrafica).' AND idstatoddt IN (SELECT id FROM dt_statiddt WHERE descrizione IN(\'Bozza\', \'Parzialmente evaso\')) AND idtipoddt IN (SELECT id FROM dt_tipiddt WHERE dir='.prepare($direzione).') ORDER BY data DESC, numero DESC" ]} -
-
- -
- -
- -
- '.tr('Caricamento in corso').'... -
'; - -$file = basename(__FILE__); -echo ' - + + '; diff --git a/plugins/receiptFE/src/Ricevuta.php b/plugins/receiptFE/src/Ricevuta.php index d6d79c3ac..5fe7a0357 100755 --- a/plugins/receiptFE/src/Ricevuta.php +++ b/plugins/receiptFE/src/Ricevuta.php @@ -2,7 +2,6 @@ namespace Plugins\ReceiptFE; -use Carbon\Carbon; use Modules; use Modules\Fatture\Fattura; use Plugins; diff --git a/src/API/App/v1/Interventi.php b/src/API/App/v1/Interventi.php index 868b70483..6fafbeec3 100644 --- a/src/API/App/v1/Interventi.php +++ b/src/API/App/v1/Interventi.php @@ -121,7 +121,6 @@ class Interventi extends AppResource codice, richiesta, data_richiesta, - (SELECT MIN(`orario_inizio`) FROM `in_interventi_tecnici` WHERE `in_interventi_tecnici`.`idintervento` = `in_interventi`.`id`) AS `data`, descrizione, idanagrafica AS id_cliente, id_contratto, diff --git a/templates/ordini/body.php b/templates/ordini/body.php index 407d5b110..7f8c40212 100755 --- a/templates/ordini/body.php +++ b/templates/ordini/body.php @@ -27,7 +27,7 @@ echo " - "; + '; if ($has_image) { echo " '; From d07adca48f3f516fb4a9791b8a466f51834bfe82 Mon Sep 17 00:00:00 2001 From: Dasc3er Date: Thu, 3 Sep 2020 13:54:43 +0200 Subject: [PATCH 2/5] Miglioramento selezione riferimento --- assets/src/js/functions/input.js | 2 +- plugins/importFE/generate.php | 19 ++++++++++++++++--- src/HTMLBuilder/Wrapper/HTMLWrapper.php | 4 ++++ 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/assets/src/js/functions/input.js b/assets/src/js/functions/input.js index 1f5ef5d9e..00ed93172 100644 --- a/assets/src/js/functions/input.js +++ b/assets/src/js/functions/input.js @@ -3,7 +3,7 @@ function input(name) { } function Input(name) { - this.element = $("[name=" + name + "]").last(); + this.element = $("[name='" + name + "']").last(); // Fix per select multipli if (this.element.length === 0) { diff --git a/plugins/importFE/generate.php b/plugins/importFE/generate.php index 653fad2cb..7409d7996 100755 --- a/plugins/importFE/generate.php +++ b/plugins/importFE/generate.php @@ -353,7 +353,7 @@ if (!empty($righe)) {
- {[ "type": "select", "name": "selezione_riferimento['.$key.']", "ajax-source": "riferimenti-fe", "select-options": '.json_encode(['id_anagrafica' => $anagrafica ? $anagrafica->id : '']).', "required": 1, "label": "'.tr('Riferimento').'" ]} + {[ "type": "select", "name": "selezione_riferimento['.$key.']", "ajax-source": "riferimenti-fe", "select-options": '.json_encode(['id_anagrafica' => $anagrafica ? $anagrafica->id : '']).', "required": 1, "label": "'.tr('Riferimento').'", "icon-after": '.json_encode('').' ]}
'; @@ -429,6 +429,17 @@ echo ' } }); +function rimuoviRiferimento(button) { + let riga = $(button).closest("tr").prev(); + let id_riga = riga.data("id"); + + impostaRiferimento(id_riga, {}, {}); + + input("selezione_riferimento[" + id_riga + "]").enable() + .getElement().selectReset(); + $(button).addClass("disabled"); +} + function selezionaRiferimento(riga, tipo_documento, id_documento) { let id_riga = riga.data("id"); let qta = riga.data("qta"); @@ -484,13 +495,15 @@ function getRiferimenti() { * @param riga = {tipo, id, descrizione, qta, prezzo_unitario} */ function impostaRiferimento(id_riga, documento, riga) { - console.log(id_riga); $("#tipo_riferimento_" + id_riga).val(documento.tipo); $("#id_riferimento_" + id_riga).val(documento.id); $("#tipo_riga_riferimento_" + id_riga).val(riga.tipo); $("#id_riga_riferimento_" + id_riga).val(riga.id); - $("#riferimento_" + id_riga).html(documento.descrizione); + $("#riferimento_" + id_riga).html(documento.descrizione ? documento.descrizione : ""); + + input("selezione_riferimento[" + id_riga + "]").disable(); + $("#rimuovi_riferimento_" + id_riga).removeClass("disabled"); } '; diff --git a/src/HTMLBuilder/Wrapper/HTMLWrapper.php b/src/HTMLBuilder/Wrapper/HTMLWrapper.php index 8ff492399..cb03777b9 100755 --- a/src/HTMLBuilder/Wrapper/HTMLWrapper.php +++ b/src/HTMLBuilder/Wrapper/HTMLWrapper.php @@ -168,6 +168,10 @@ class HTMLWrapper implements WrapperInterface $values['icon-custom'] = 'no-padding'; } + if (str_contains($string, ' Date: Thu, 3 Sep 2020 14:29:17 +0200 Subject: [PATCH 3/5] Visualizzazione informazioni riferimento --- plugins/importFE/generate.php | 93 ++++++++++++++++++++++---------- plugins/importFE/riferimento.php | 18 ++++--- 2 files changed, 77 insertions(+), 34 deletions(-) diff --git a/plugins/importFE/generate.php b/plugins/importFE/generate.php index 7409d7996..147b5e2fd 100755 --- a/plugins/importFE/generate.php +++ b/plugins/importFE/generate.php @@ -303,13 +303,13 @@ if (!empty($righe)) { $prezzo_unitario = $riga['PrezzoUnitario']; echo ' - + @@ -367,34 +368,41 @@ if (!empty($righe)) { echo ' '; diff --git a/plugins/importFE/riferimento.php b/plugins/importFE/riferimento.php index e82a7df8a..6d800e3ef 100755 --- a/plugins/importFE/riferimento.php +++ b/plugins/importFE/riferimento.php @@ -35,8 +35,17 @@ $righe = $documento->getRighe(); foreach ($righe as $riga) { $qta_rimanente = $riga->qta_rimanente - $righe_utilizzate[$riga->id]; + $dettagli = [ + 'tipo' => get_class($riga), + 'id' => $riga->id, + 'qta' => $riga->qta, + 'prezzo_unitario' => $riga->prezzo_unitario, + 'id_iva' => $riga->id_iva, + 'iva_percentuale' => $riga->aliquota->percentuale, + ]; + echo ' - id ? 'class="success"' : '').' data-type="'.get_class($riga).'" data-id="'.$riga->id.'" data-qta="'.$riga->qta.'" data-prezzo_unitario="'.$riga->prezzo_unitario.'"> + id ? 'class="success"' : '').' data-dettagli='.json_encode($dettagli).'>
".tr('#', [], ['upper' => true])."".tr('#', [], ['upper' => true]).'".tr('Immagine', [], ['upper' => true]).'
'.$riga['Descrizione'].'
'.(!empty($codici_articoli) ? ''.implode(', ', $codici_articoli).'
' : '').' - +
@@ -327,6 +327,7 @@ if (!empty($righe)) { '_VALUE_' => empty($riga['Natura']) ? numberFormat($riga['AliquotaIVA']).'%' : $riga['Natura'], '_DESC_' => $riga['RiferimentoNormativo'] ? ' - '.$riga['RiferimentoNormativo'] : '', ]).' +
'.$riga->descrizione.' '.numberFormat($qta_rimanente, 'qta').' / '.numberFormat($riga->qta, 'qta').' '; @@ -67,11 +76,8 @@ var documento_importazione = { function selezionaRiga(button) { let riga = $(button).closest("tr"); - let dati_riga = { - tipo: riga.data("type"), - id: riga.data("id"), - }; - impostaRiferimento("'.$id_riga.'", documento_importazione, dati_riga); + let dettagli_riga = riga.data("dettagli"); + impostaRiferimento("'.$id_riga.'", documento_importazione, dettagli_riga); $(button).closest(".modal").modal("hide"); } From 2e38e26c7d1a1fc06af281bbe487a40debaa3e84 Mon Sep 17 00:00:00 2001 From: Dasc3er Date: Mon, 7 Sep 2020 11:35:00 +0200 Subject: [PATCH 4/5] Miglioramenti minori --- modules/fatture/ajax/select.php | 4 ++-- plugins/importFE/generate.php | 27 +++++++++++++++------------ 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/modules/fatture/ajax/select.php b/modules/fatture/ajax/select.php index a3cb6411c..4ce19b343 100644 --- a/modules/fatture/ajax/select.php +++ b/modules/fatture/ajax/select.php @@ -21,7 +21,7 @@ switch ($resource) { FROM or_ordini WHERE idanagrafica = ".prepare($id_anagrafica)." AND idstatoordine IN ( - SELECT id FROM or_statiordine WHERE descrizione IN('Bozza', 'Accettato', 'Parzialmente evaso') + SELECT id FROM or_statiordine WHERE descrizione IN ('Bozza', 'Accettato', 'Parzialmente evaso', 'Parzialmente fatturato') ) AND idtipoordine IN ( SELECT id FROM or_tipiordine WHERE dir = ".prepare($direzione).' @@ -35,7 +35,7 @@ switch ($resource) { FROM dt_ddt WHERE idanagrafica = ".prepare($id_anagrafica)." AND idstatoddt IN ( - SELECT id FROM dt_statiddt WHERE descrizione IN('Bozza', 'Parzialmente evaso') + SELECT id FROM dt_statiddt WHERE descrizione IN ('Bozza', 'Parzialmente evaso', 'Parzialmente fatturato') ) AND idtipoddt IN ( SELECT id FROM dt_tipiddt WHERE dir=".prepare($direzione).' diff --git a/plugins/importFE/generate.php b/plugins/importFE/generate.php index 147b5e2fd..41938476f 100755 --- a/plugins/importFE/generate.php +++ b/plugins/importFE/generate.php @@ -516,30 +516,33 @@ function impostaRiferimento(id_riga, documento, riga) { // Informazioni visibili let qta = parseFloat(riga.qta); let riferimento_qta = $("#riferimento_" + id_riga + "_qta"); - riferimento_qta.html("
" + qta.toLocale()); - if (qta === riga_fe.data("qta")){ - riferimento_qta.addClass("text-success").removeClass("text-danger"); + let contenuto_qta = qta.toLocale(); + if (qta === riga_fe.data("qta")) { + riferimento_qta.addClass("text-success").removeClass("text-warning"); } else { - riferimento_qta.removeClass("text-success").addClass("text-danger"); + riferimento_qta.removeClass("text-success").addClass("text-warning"); } + riferimento_qta.html("
" + contenuto_qta); let prezzo_unitario = parseFloat(riga.prezzo_unitario); let riferimento_prezzo = $("#riferimento_" + id_riga + "_prezzo"); - riferimento_prezzo.html("
" + prezzo_unitario.toLocale() + " " + globals.currency) - if (prezzo_unitario === riga_fe.data("prezzo_unitario")){ - riferimento_prezzo.addClass("text-success").removeClass("text-danger"); + let contenuto_prezzo = prezzo_unitario.toLocale() + " " + globals.currency; + if (prezzo_unitario === riga_fe.data("prezzo_unitario")) { + riferimento_prezzo.addClass("text-success").removeClass("text-warning"); } else { - riferimento_prezzo.removeClass("text-success").addClass("text-danger"); + riferimento_prezzo.removeClass("text-success").addClass("text-warning"); } + riferimento_prezzo.html("
" + contenuto_prezzo) let iva_percentuale = parseFloat(riga.iva_percentuale); let riferimento_iva = $("#riferimento_" + id_riga + "_iva"); - riferimento_iva.html("
" + iva_percentuale.toLocale() + "%"); - if (prezzo_unitario === riga_fe.data("iva_percentuale")){ - riferimento_iva.addClass("text-success").removeClass("text-danger"); + let contenuto_iva = iva_percentuale.toLocale() + "%"; + if (iva_percentuale === riga_fe.data("iva_percentuale")) { + riferimento_iva.addClass("text-success").removeClass("text-warning"); } else { - riferimento_iva.removeClass("text-success").addClass("text-danger"); + riferimento_iva.removeClass("text-success").addClass("text-warning"); } + riferimento_iva.html("
" + contenuto_iva) $("#riferimento_" + id_riga).html(documento.descrizione ? documento.descrizione : ""); } From 532d2e889ef757b416991b91848ed19648008d7d Mon Sep 17 00:00:00 2001 From: Dasc3er Date: Mon, 7 Sep 2020 15:17:58 +0200 Subject: [PATCH 5/5] Miglioramento grafico informazioni FE --- plugins/importFE/generate.php | 57 ++++++++++++++++---------------- plugins/importFE/riferimento.php | 2 +- 2 files changed, 30 insertions(+), 29 deletions(-) diff --git a/plugins/importFE/generate.php b/plugins/importFE/generate.php index 41938476f..ae15c772c 100755 --- a/plugins/importFE/generate.php +++ b/plugins/importFE/generate.php @@ -513,37 +513,38 @@ function impostaRiferimento(id_riga, documento, riga) { let riga_fe = $("#id_riga_riferimento_" + id_riga).closest("tr").prev(); - // Informazioni visibili - let qta = parseFloat(riga.qta); - let riferimento_qta = $("#riferimento_" + id_riga + "_qta"); - let contenuto_qta = qta.toLocale(); - if (qta === riga_fe.data("qta")) { - riferimento_qta.addClass("text-success").removeClass("text-warning"); - } else { - riferimento_qta.removeClass("text-success").addClass("text-warning"); - } - riferimento_qta.html("
" + contenuto_qta); + // Informazioni visibili sulla quantità + impostaContenuto(riga_fe.data("qta"), riga.qta, "#riferimento_" + id_riga + "_qta"); - let prezzo_unitario = parseFloat(riga.prezzo_unitario); - let riferimento_prezzo = $("#riferimento_" + id_riga + "_prezzo"); - let contenuto_prezzo = prezzo_unitario.toLocale() + " " + globals.currency; - if (prezzo_unitario === riga_fe.data("prezzo_unitario")) { - riferimento_prezzo.addClass("text-success").removeClass("text-warning"); - } else { - riferimento_prezzo.removeClass("text-success").addClass("text-warning"); - } - riferimento_prezzo.html("
" + contenuto_prezzo) + // Informazioni visibili sul prezzo unitario + impostaContenuto(riga_fe.data("prezzo_unitario"), riga.prezzo_unitario, "#riferimento_" + id_riga + "_prezzo"); - let iva_percentuale = parseFloat(riga.iva_percentuale); - let riferimento_iva = $("#riferimento_" + id_riga + "_iva"); - let contenuto_iva = iva_percentuale.toLocale() + "%"; - if (iva_percentuale === riga_fe.data("iva_percentuale")) { - riferimento_iva.addClass("text-success").removeClass("text-warning"); - } else { - riferimento_iva.removeClass("text-success").addClass("text-warning"); - } - riferimento_iva.html("
" + contenuto_iva) + // Informazioni visibili sull\'aliquota IVA + impostaContenuto(riga_fe.data("iva_percentuale"), riga.iva_percentuale, "#riferimento_" + id_riga + "_iva"); $("#riferimento_" + id_riga).html(documento.descrizione ? documento.descrizione : ""); } + +// Informazioni visibili sull\'aliquota IVA +function impostaContenuto(valore_riga, valore_riferimento, id_elemento) { + let elemento = $(id_elemento); + if (valore_riferimento === undefined){ + elemento.html(""); + return; + } + + valore_riga = parseFloat(valore_riga); + valore_riferimento = parseFloat(valore_riferimento); + + let contenuto = valore_riferimento.toLocale() + "%"; + if (valore_riferimento === valore_riga) { + contenuto = ` ` + contenuto; + elemento.addClass("text-success").removeClass("text-warning"); + } else { + contenuto = ` ` + contenuto; + elemento.removeClass("text-success").addClass("text-warning"); + } + + elemento.html("
" + contenuto); +} '; diff --git a/plugins/importFE/riferimento.php b/plugins/importFE/riferimento.php index 6d800e3ef..9cfc28ebe 100755 --- a/plugins/importFE/riferimento.php +++ b/plugins/importFE/riferimento.php @@ -70,7 +70,7 @@ echo ' var documento_importazione = { tipo: "'.$tipo_documento.'", id: "'.$id_documento.'", - descrizione: "Rif. '.$tipo_documento.' num. '.$documento->numero.'", + descrizione: "'.$documento->getReference().'", }; function selezionaRiga(button) {