From 8996dadc2479392ea801f07618b0e0b5262e4f58 Mon Sep 17 00:00:00 2001 From: Fabio Lovato Date: Fri, 20 Jul 2018 13:08:41 +0200 Subject: [PATCH 01/22] Correzione js popup aggiunta intervento --- modules/interventi/add.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/interventi/add.php b/modules/interventi/add.php index 0ac2e23de..10c0d297b 100644 --- a/modules/interventi/add.php +++ b/modules/interventi/add.php @@ -406,9 +406,9 @@ if (empty($new_codice)) { // Se l'aggiunta intervento proviene dai contratti, faccio il submit via ajax e ricarico la tabella dei contratti else if(ref == "interventi_contratti"){ - //$('#elenco_interventi > tbody').load(globals.rootdir + '/modules/contratti/plugins/contratti.pianificazioneinterventi.php?op=get_interventi_pianificati&idcontratto='); - //$("#bs-popup").modal('hide'); - redirect(.'/editor.php?id_module=''&id_record=''#tab_'.); + //$('#elenco_interventi > tbody').load(globals.rootdir + '/modules/contratti/plugins/contratti.pianificazioneinterventi.php?op=get_interventi_pianificati&idcontratto='); + //$("#bs-popup").modal('hide'); + location.href = '/editor.php?id_module=&id_record=#tab_'; } } }); From cb13d07c1c4693f1a619ba0408257f4a9a2658d4 Mon Sep 17 00:00:00 2001 From: Luca Date: Fri, 20 Jul 2018 15:45:53 +0200 Subject: [PATCH 02/22] Fix minori --- modules/interventi/add.php | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/modules/interventi/add.php b/modules/interventi/add.php index 10c0d297b..6101557d5 100644 --- a/modules/interventi/add.php +++ b/modules/interventi/add.php @@ -275,9 +275,9 @@ if (empty($new_codice)) { } ?> } - + //Quando modifico orario inizio, allineo anche l'orario fine $("#orario_inizio").on("dp.change", function (e) { - $("#orario_fine").data("DateTimePicker").minDate(e.date); + $("#orario_fine").data("DateTimePicker").minDate(e.date).format('HH:mm'); }); // Refresh modulo dopo la chiusura di una pianificazione attività derivante dalle attività @@ -360,18 +360,15 @@ if (empty($new_codice)) { $("#componenti").prop("disabled", !$(this).val() ? true : false); $("#componenti").selectReset(); }); - - + + // tempo standard $('#idtipointervento').change( function(){ - if ( (($(this).selectData().tempo_standard)>0) && ('' == '')){ - // data = moment('').format('YYYY-MM-DD HH:mm - data = moment( moment().format('YYYY-MM-DD') + '').format('YYYY-MM-DD HH:mm'); + data = '' + moment().format('YYYY-MM-DD') +' '+ $('#orario_inizio').val(); tempo_standard = $(this).selectData().tempo_standard; orario_fine = moment(data).add(tempo_standard, 'hours').format("HH:mm"); - $('input[name=orario_fine]').val(orario_fine); + $('#orario_fine').val(orario_fine); } - }); $('#idtecnico').change( function(){ @@ -407,8 +404,9 @@ if (empty($new_codice)) { // Se l'aggiunta intervento proviene dai contratti, faccio il submit via ajax e ricarico la tabella dei contratti else if(ref == "interventi_contratti"){ //$('#elenco_interventi > tbody').load(globals.rootdir + '/modules/contratti/plugins/contratti.pianificazioneinterventi.php?op=get_interventi_pianificati&idcontratto='); - //$("#bs-popup").modal('hide'); - location.href = '/editor.php?id_module=&id_record=#tab_'; + $("#bs-popup").modal('hide'); + parent.window.location.reload(); + //location.href = '/editor.php?id_module=&id_record=#tab_'; } } }); From c0ff76032e472f1c25e2789fb2a50da84c6f3528 Mon Sep 17 00:00:00 2001 From: Bacca97 Date: Fri, 20 Jul 2018 16:17:03 +0200 Subject: [PATCH 03/22] Bugfix: numero fatture nelle statistiche clienti filtrato per periodo --- modules/statistiche/edit.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/statistiche/edit.php b/modules/statistiche/edit.php index a7d459229..84f5c809c 100644 --- a/modules/statistiche/edit.php +++ b/modules/statistiche/edit.php @@ -111,7 +111,7 @@ $(document).ready(function() { '; // Clienti top -$clienti = $dbo->fetchArray("SELECT SUM(co_righe_documenti.subtotale - co_righe_documenti.sconto) AS totale, (SELECT COUNT(*) FROM co_documenti WHERE co_documenti.idanagrafica =an_anagrafiche.idanagrafica) AS qta, an_anagrafiche.idanagrafica, an_anagrafiche.ragione_sociale 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 an_anagrafiche ON an_anagrafiche.idanagrafica=co_documenti.idanagrafica WHERE co_tipidocumento.dir='entrata' AND co_documenti.data BETWEEN ".prepare($start).' AND '.prepare($end).' GROUP BY an_anagrafiche.idanagrafica ORDER BY SUM(subtotale - sconto) DESC LIMIT 15'); +$clienti = $dbo->fetchArray("SELECT SUM(co_righe_documenti.subtotale - co_righe_documenti.sconto) AS totale, (SELECT COUNT(*) FROM co_documenti WHERE co_documenti.idanagrafica =an_anagrafiche.idanagrafica AND co_documenti.data BETWEEN ".prepare($start)." AND ".prepare($end).") AS qta, an_anagrafiche.idanagrafica, an_anagrafiche.ragione_sociale 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 an_anagrafiche ON an_anagrafiche.idanagrafica=co_documenti.idanagrafica WHERE co_tipidocumento.dir='entrata' AND co_documenti.data BETWEEN ".prepare($start).' AND '.prepare($end).' GROUP BY an_anagrafiche.idanagrafica ORDER BY SUM(subtotale - sconto) DESC LIMIT 15'); $totale = $dbo->fetchArray("SELECT SUM(co_righe_documenti.subtotale - co_righe_documenti.sconto) 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 WHERE co_tipidocumento.dir='entrata' AND co_documenti.data BETWEEN ".prepare($start).' AND '.prepare($end)); From 81b736481e805324457afa6a8e45a0599f6c5c07 Mon Sep 17 00:00:00 2001 From: Thomas Zilio Date: Fri, 20 Jul 2018 16:20:16 +0200 Subject: [PATCH 04/22] Fix 8996dadc2479392ea801f07618b0e0b5262e4f58 --- modules/interventi/add.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/interventi/add.php b/modules/interventi/add.php index 6101557d5..4eb387753 100644 --- a/modules/interventi/add.php +++ b/modules/interventi/add.php @@ -360,7 +360,7 @@ if (empty($new_codice)) { $("#componenti").prop("disabled", !$(this).val() ? true : false); $("#componenti").selectReset(); }); - + // tempo standard $('#idtipointervento').change( function(){ if ( (($(this).selectData().tempo_standard)>0) && ('' == '')){ @@ -406,7 +406,7 @@ if (empty($new_codice)) { //$('#elenco_interventi > tbody').load(globals.rootdir + '/modules/contratti/plugins/contratti.pianificazioneinterventi.php?op=get_interventi_pianificati&idcontratto='); $("#bs-popup").modal('hide'); parent.window.location.reload(); - //location.href = '/editor.php?id_module=&id_record=#tab_'; + //location.href = '/editor.php?id_module=&id_record=#tab_'; } } }); From ee199fa378e973fd687258557a5ac77de55c8a34 Mon Sep 17 00:00:00 2001 From: Luca Date: Fri, 20 Jul 2018 16:26:18 +0200 Subject: [PATCH 05/22] Fix minori --- assets/src/css/style.css | 5 +++++ modules/contratti/add.php | 2 +- modules/preventivi/add.php | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/assets/src/css/style.css b/assets/src/css/style.css index 53d156e38..7c0e56e83 100644 --- a/assets/src/css/style.css +++ b/assets/src/css/style.css @@ -621,3 +621,8 @@ input.small-width { .parsley-errors-list{ color: red; } + +.img-circle{ + box-shadow: 0px 0px 1px 1px lightgray; + opacity:0.3; +} diff --git a/modules/contratti/add.php b/modules/contratti/add.php index e92cae2d8..90053b7a6 100644 --- a/modules/contratti/add.php +++ b/modules/contratti/add.php @@ -14,7 +14,7 @@ $id_anagrafica = !empty(get('idanagrafica')) ? get('idanagrafica') : $user['idan
- {[ "type": "select", "label": "", "name": "idanagrafica", "required": 1, "value": "", "ajax-source": "clienti" ]} + {[ "type": "select", "label": "", "name": "idanagrafica", "required": 1, "value": "", "ajax-source": "clienti", "icon-after": "add||tipoanagrafica=Cliente" ]}
diff --git a/modules/preventivi/add.php b/modules/preventivi/add.php index 5510fe9bb..6da33a147 100644 --- a/modules/preventivi/add.php +++ b/modules/preventivi/add.php @@ -13,7 +13,7 @@ $id_anagrafica = !empty(get('idanagrafica')) ? get('idanagrafica') : $user['idan {[ "type": "text", "label": "", "name": "nome", "required": 1 ]}
- {[ "type": "select", "label": "", "name": "idanagrafica", "required": 1, "ajax-source": "clienti", "icon-after": "add||tipoanagrafica=Cliente" ]} + {[ "type": "select", "label": "", "name": "idanagrafica", "required": 1, "value": "", "ajax-source": "clienti", "icon-after": "add||tipoanagrafica=Cliente" ]}
From 9f390c3702d41e9fec7365c15b03564256eccf57 Mon Sep 17 00:00:00 2001 From: Luca Date: Fri, 20 Jul 2018 17:37:30 +0200 Subject: [PATCH 06/22] Fix csv import --- assets/src/css/style.css | 3 +-- modules/anagrafiche/import.php | 3 ++- templates/interventi/body.php | 13 +++++++------ 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/assets/src/css/style.css b/assets/src/css/style.css index 7c0e56e83..5334e84cc 100644 --- a/assets/src/css/style.css +++ b/assets/src/css/style.css @@ -622,7 +622,6 @@ input.small-width { color: red; } -.img-circle{ +.img-circle.square{ box-shadow: 0px 0px 1px 1px lightgray; - opacity:0.3; } diff --git a/modules/anagrafiche/import.php b/modules/anagrafiche/import.php index ac7cc0de0..2e2775cad 100644 --- a/modules/anagrafiche/import.php +++ b/modules/anagrafiche/import.php @@ -15,7 +15,8 @@ switch (post('op')) { directory('../../files/'.$module); $fp = fopen('../../files/'.$module.'/'.$module.'.csv', 'w'); - + fprintf($fp, chr(0xEF).chr(0xBB).chr(0xBF)); + foreach ($list as $fields) { fputcsv($fp, $fields, ';'); } diff --git a/templates/interventi/body.php b/templates/interventi/body.php index 865e23455..7351a449e 100644 --- a/templates/interventi/body.php +++ b/templates/interventi/body.php @@ -16,10 +16,10 @@ echo ' - '.tr('Intervento numero').': '.$records[0]['codice'].' + '.tr('Intervento num.').': '.$records[0]['codice'].' '.tr('Data').': '.Translator::dateToLocale($records[0]['data_richiesta']).' - '.tr('Preventivo num.').': '.$records[0]['numero_preventivo'].' - '.tr('Contratto num.').': '.$records[0]['numero_contratto'].' + '.tr('Preventivo num.').': '.$records[0]['numero_preventivo'].' + '.tr('Contratto num.').': '.$records[0]['numero_contratto'].' '; // Dati cliente @@ -49,9 +49,10 @@ echo ' echo ' - '.tr('Via').': '.$c_indirizzo.' - - '.tr('CAP').': '.$c_cap.' - - '.tr('Comune').': '.$c_citta.' ('.strtoupper($c_provincia).') + '.((!empty($c_indirizzo)) ? tr('Via').': '.$c_indirizzo.'' : '').' + '.((!empty($c_cap)) ? tr('CAP').': '.$c_cap.'' : '').' + '.((!empty($c_citta)) ? tr('Città').': '.$c_citta.'' : '').' + '.((!empty($c_provincia)) ? tr('Provincia').': '.strtoupper($c_provincia).'' : '').' '; From 433c80dedccba5eed8f9d8229774b040d830f855 Mon Sep 17 00:00:00 2001 From: Thomas Zilio Date: Mon, 23 Jul 2018 11:09:50 +0200 Subject: [PATCH 07/22] Aggiunto supporto agli input in Swal @lucasalva87 Gli input per le azioni bulk devono essere definiti nel campo "msg". --- include/manager.php | 4 +- lib/functions.js | 100 ++++++++++++++++++++++++-------------------- 2 files changed, 56 insertions(+), 48 deletions(-) diff --git a/include/manager.php b/include/manager.php index d908578c8..e027b9195 100644 --- a/include/manager.php +++ b/include/manager.php @@ -155,11 +155,11 @@ if (!empty($module_options) && $module_options != 'menu' && $module_options != ' $data = is_array($value) ? $value['data'] : []; $extra = []; foreach ($data as $k => $v) { - $extra[] = 'data-'.$k.'="'.$v.'"'; + $extra[] = 'data-'.$k.'="'.prepareToField($v).'"'; } echo ' -
  • '.$text.'
  • '; +
  • '.$text.'
  • '; } echo ' diff --git a/lib/functions.js b/lib/functions.js index 4568fd259..132787a30 100644 --- a/lib/functions.js +++ b/lib/functions.js @@ -429,8 +429,8 @@ function start_widgets($widgets) { // Modal function launch_modal(title, href, init_modal, id) { - //Fix - Select2 does not function properly when I use it inside a Bootstrap modal. - $.fn.modal.Constructor.prototype.enforceFocus = function() {}; + //Fix - Select2 does not function properly when I use it inside a Bootstrap modal. + $.fn.modal.Constructor.prototype.enforceFocus = function () {}; if (id == null) { id = '#bs-popup'; @@ -445,7 +445,7 @@ function launch_modal(title, href, init_modal, id) { $(id).on('hidden.bs.modal', function () { - if ($('.modal-backdrop').length < 1 ) { + if ($('.modal-backdrop').length < 1) { $('html').removeClass('modal-open'); $(this).html(''); $(this).data('modal', null); @@ -547,7 +547,7 @@ function start_datatables() { var sum; var tempo; - var tempo_attesa_ricerche = (globals.tempo_attesa_ricerche*1000); + var tempo_attesa_ricerche = (globals.tempo_attesa_ricerche * 1000); var table = $this.DataTable({ language: { @@ -582,8 +582,7 @@ function start_datatables() { style: 'multi', selector: 'td:first-child' }, - buttons: [ - { + buttons: [{ extend: 'csv', fieldSeparator: ";", exportOptions: { @@ -602,21 +601,21 @@ function start_datatables() { }, { extend: 'print', - autoPrint: true, - customize: function ( win ) { - $(win.document.body) - .css( 'font-size', '10pt' ) - .append( - '
    '+$('#summable').text()+'
    ', - ); - $(win.document.body).find( 'table' ) - .addClass( 'compact' ) - .css( 'font-size', 'inherit' ); - $(win.document.body).find( 'td:first-child' ) - .addClass( 'hide' ); - $(win.document.body).find( 'th:first-child' ) - .addClass( 'hide' ); - }, + autoPrint: true, + customize: function (win) { + $(win.document.body) + .css('font-size', '10pt') + .append( + '
    ' + $('#summable').text() + '
    ', + ); + $(win.document.body).find('table') + .addClass('compact') + .css('font-size', 'inherit'); + $(win.document.body).find('td:first-child') + .addClass('hide'); + $(win.document.body).find('th:first-child') + .addClass('hide'); + }, exportOptions: { modifier: { selected: true @@ -678,15 +677,15 @@ function start_datatables() { idx1 = 'module_' + $this.data('idmodule'); //+ "-" + $this.data('idplugin'); idx2 = 'search_' + $(this).parent().attr('id').replace('th_', ''); - function start_search(search_value){ + function start_search(search_value) { session_set(idx1 + ',' + idx2, search_value, 0); column.search(search_value).draw(); } // Imposto delle sessioni per le ricerche del modulo e del campo specificatsi - if(e.keyCode == 13 || $(this).val()==''){ + if (e.keyCode == 13 || $(this).val() == '') { start_search($(this).val()); - }else{ + } else { tempo = window.setTimeout(start_search, tempo_attesa_ricerche, $(this).val()); } }); @@ -776,7 +775,7 @@ function start_datatables() { this.api().columns().every(function () { if (sum.summable[i] != undefined) { $(this.footer()).addClass("text-right"); - $(this.footer()).attr("id", "summable"); + $(this.footer()).attr("id", "summable"); $(this.footer()).html(sum.summable[i]); } else $(this.footer()).html(" "); i++; @@ -1035,7 +1034,7 @@ jQuery.fn.selectData = function () { // Inputmask function start_inputmask(element) { - if( element == undefined ){ + if (element == undefined) { element = ''; } else { element = element + ' '; @@ -1043,24 +1042,24 @@ function start_inputmask(element) { var date = moment.localeData().longDateFormat('L').toLowerCase(); - $(element+".date-mask").inputmask(date, { + $(element + ".date-mask").inputmask(date, { "placeholder": date }); - $(element+'.email-mask').inputmask('Regex', { + $(element + '.email-mask').inputmask('Regex', { regex: "^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^-]+(?:\\.[a-zA-Z0-9_!#$%&'*+/=?`{|}~^-]+)*@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$", }); - $(element+'.alphanumeric-mask').inputmask('Regex', { + $(element + '.alphanumeric-mask').inputmask('Regex', { regex: "[A-Za-z0-9#_|\/\\-.]*", }); if (isMobile.any()) { - $(element+'.inputmask-decimal, '+element+'.date-mask, '+element+'.timestamp-mask').each(function () { + $(element + '.inputmask-decimal, ' + element + '.date-mask, ' + element + '.timestamp-mask').each(function () { $(this).attr('type', 'tel'); }); } else { - $(element+'.inputmask-decimal').each(function () { + $(element + '.inputmask-decimal').each(function () { var $this = $(this); var min = $this.attr('min-value'); @@ -1068,7 +1067,7 @@ function start_inputmask(element) { min = false; } - var max = $this.attr('max-value'); + var max = $this.attr('max-value'); if (max == 'undefined') { max = false; } @@ -1076,8 +1075,8 @@ function start_inputmask(element) { $this.inputmask("decimal", { min: min ? min : undefined, allowMinus: !min || min < 0 ? true : false, - max: max ? max : undefined, - allowPlus: !max || max < 0 ? true : false, + max: max ? max : undefined, + allowPlus: !max || max < 0 ? true : false, digits: $this.attr('decimals') ? $this.attr('decimals') : globals.cifre_decimali, digitsOptional: true, // Necessario per un problema di inputmask con i numeri negativi durante l'init enforceDigitsOnBlur: true, @@ -1162,9 +1161,9 @@ function session_set(session_array, value, clear, reload) { reload = 0; } - return $.get(globals.rootdir + "/ajax.php?op=session_set&session=" + session_array + "&value=" + value + "&clear=" + clear, function(data, status){ + return $.get(globals.rootdir + "/ajax.php?op=session_set&session=" + session_array + "&value=" + value + "&clear=" + clear, function (data, status) { - if (reload==1) + if (reload == 1) location.reload(); }); @@ -1261,7 +1260,7 @@ function message(element) { if (data["title"] != undefined) title = data["title"]; var msg = globals.translations.deleteMessage; - if (data["msg"] != undefined) msg = data["msg"]; + if (data["msg"] != undefined) msg = '
    ' + data["msg"] + '
    '; var button = globals.translations.delete; if (data["button"] != undefined) button = data["button"]; @@ -1271,11 +1270,21 @@ function message(element) { swal({ title: title, - text: msg, + html: msg, type: "warning", showCancelButton: true, confirmButtonText: button, confirmButtonClass: btn_class, + preConfirm: function () { + $('#swal-form').find(':input').each(function () { + data[$(this).attr('name')] = $(this).val(); + console.log($(this).attr('name')); + }); + + return new Promise(function (resolve) { + resolve([]); + }); + } }).then( function (result) { if (data["op"] == undefined) data["op"] = "delete"; @@ -1344,8 +1353,8 @@ function redirect(href, data, method, blank) { function setCookie(cname, cvalue, exdays) { var d = new Date(); - d.setTime(d.getTime() + (exdays*24*60*60*1000)); - var expires = "expires="+ d.toUTCString(); + d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); + var expires = "expires=" + d.toUTCString(); document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; } @@ -1353,7 +1362,7 @@ function getCookie(cname) { var name = cname + "="; var decodedCookie = decodeURIComponent(document.cookie); var ca = decodedCookie.split(';'); - for(var i = 0; i Date: Mon, 23 Jul 2018 11:15:38 +0200 Subject: [PATCH 08/22] =?UTF-8?q?Bugfix:=20dopo=20un=20primo=20errore,=20i?= =?UTF-8?q?l=20form=20delle=20rate=20non=20si=20salvava=20pi=C3=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/pagamenti/edit.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/modules/pagamenti/edit.php b/modules/pagamenti/edit.php index 102e55f72..28615d208 100644 --- a/modules/pagamenti/edit.php +++ b/modules/pagamenti/edit.php @@ -179,8 +179,12 @@ $(document).ready(function(){ $(this).parentsUntil('.box').find('[id*=giorno]').prop('disabled', false); } }); + + $(document).on('change', '[id*=percentuale]', function(){ + $('button[type=submit]').prop( 'disabled', false ).removeClass('disabled'); + }); - $('#edit-form').submit(function(event) { + $('#edit-form').submit( function(event) { var tot = 0; $(this).find('[id*=percentuale]').each(function(){ @@ -190,9 +194,12 @@ $(document).ready(function(){ tot += prc; }); - if(tot != 100) { + if( tot != 100) { $('#wait').removeClass("hide"); event.preventDefault(); + } else { + $('#wait').addClass("hide"); + $(this).unbind('submit').submit(); } }); }); From 10ba6960df5e95a44432664e80b0fa2754c7bf53 Mon Sep 17 00:00:00 2001 From: Luca Date: Mon, 23 Jul 2018 12:57:46 +0200 Subject: [PATCH 09/22] =?UTF-8?q?Fatturazione=20in=20bulk=20degli=20interv?= =?UTF-8?q?enti,=20aggiunta=20possibilit=C3=A0=20di=20specificare=20se=20a?= =?UTF-8?q?ggiungere=20l'intervento=20alle=20fatture=20in=20stato=20bozza?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/interventi/bulk.php | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/modules/interventi/bulk.php b/modules/interventi/bulk.php index 2b3727ee8..4fb161aad 100644 --- a/modules/interventi/bulk.php +++ b/modules/interventi/bulk.php @@ -62,7 +62,8 @@ switch (post('op')) { $data = date('Y-m-d'); $dir = 'entrata'; $idtipodocumento = '2'; - + $accodare = post('accodare'); + if (empty($_SESSION['m'.Modules::get('Fatture di vendita')['id']]['id_segment'])) { $rs = $dbo->fetchArray('SELECT id FROM zz_segments WHERE predefined = 1 AND id_module = '.prepare(Modules::get('Fatture di vendita')['id']).'LIMIT 0,1'); $_SESSION['m'.Modules::get('Fatture di vendita')['id']]['id_segment'] = $rs[0]['id']; @@ -73,6 +74,7 @@ switch (post('op')) { $numero = get_new_numerofattura($data); $numero_esterno = get_new_numerosecondariofattura($data); + $idconto = get_var('Conto predefinito fatture di vendita'); $campo = ($dir == 'entrata') ? 'idpagamento_vendite' : 'idpagamento_acquisti'; @@ -107,11 +109,21 @@ switch (post('op')) { $rs = $dbo->fetchArray($q); if (count($rs) > 0) { + //al primo ciclo preparo la fattura if ($n_interventi == 0) { + + //verifico se ho già fatture nello stato bozza per questo cliente + $iddocumento = $dbo->fetchArray('SELECT co_documenti.id AS iddocumento FROM co_documenti INNER JOIN co_statidocumento ON co_documenti.idstatodocumento = co_statidocumento.id WHERE co_statidocumento.descrizione = \'Bozza\' AND idanagrafica = '.prepare($idanagrafica))[0]['iddocumento']; + //preparo fattura - $dbo->query('INSERT INTO co_documenti (numero, numero_esterno, idanagrafica, idconto, idtipodocumento, idpagamento, data, idstatodocumento, idsede, id_segment) VALUES ('.prepare($numero).', '.prepare($numero_esterno).', '.prepare($idanagrafica).', '.prepare($idconto).', '.prepare($idtipodocumento).', '.prepare($idpagamento).', '.prepare($data).", (SELECT `id` FROM `co_statidocumento` WHERE `descrizione`='Bozza'), (SELECT idsede_fatturazione FROM an_anagrafiche WHERE idanagrafica=".prepare($idanagrafica).'), '.prepare($id_segment).')'); - $iddocumento = $dbo->lastInsertedID(); + if (empty($iddocumento) OR empty($accodare)){ + $dbo->query('INSERT INTO co_documenti (numero, numero_esterno, idanagrafica, idconto, idtipodocumento, idpagamento, data, idstatodocumento, idsede, id_segment) VALUES ('.prepare($numero).', '.prepare($numero_esterno).', '.prepare($idanagrafica).', '.prepare($idconto).', '.prepare($idtipodocumento).', '.prepare($idpagamento).', '.prepare($data).", (SELECT `id` FROM `co_statidocumento` WHERE `descrizione`='Bozza'), (SELECT idsede_fatturazione FROM an_anagrafiche WHERE idanagrafica=".prepare($idanagrafica).'), '.prepare($id_segment).')'); + $iddocumento = $dbo->lastInsertedID(); + }else{ + $numero_esterno = $dbo->fetchArray('SELECT numero_esterno FROM co_documenti WHERE id = '.prepare($iddocumento))[0]['numero_esterno']; + } + } ++$n_interventi; @@ -205,17 +217,17 @@ switch (post('op')) { } if ($n_interventi > 0) { - $_SESSION['infos'][] = tr('Fattura _NUM_ creata!', [ + $_SESSION['infos'][] = tr('Fattura _NUM_.', [ '_NUM_' => $numero_esterno, ]); - $_SESSION['infos'][] = tr('_NUM_ interventi fatturati!', [ + $_SESSION['infos'][] = tr('_NUM_ interventi fatturati.', [ '_NUM_' => $n_interventi, ]); } else { - $_SESSION['warnings'][] = tr('Nessuna attività fatturata!'); + $_SESSION['warnings'][] = tr('Nessuna attività fatturata.'); } - + break; } @@ -223,8 +235,9 @@ return [ 'export-bulk' => [ 'text' => tr('Esporta stampe'), 'data' => [ - 'msg' => tr('Vuoi davvero esportare queste stampe in un archivio?'), - 'button' => tr('Procedi'), + 'title' => tr('Vuoi davvero esportare queste stampe in un archivio?'), + 'msg' => '', + 'button' => tr('Crea archivio'), 'class' => 'btn btn-lg btn-warning', 'blank' => true, ], @@ -233,8 +246,9 @@ return [ 'creafatturavendita' => [ 'text' => tr('Crea fattura'), 'data' => [ - 'msg' => tr('Vuoi davvero generare le fatture per questi interventi?'), - 'button' => tr('Procedi'), + 'title' => tr("Vuoi davvero generare le fatture per questi interventi?"), + 'msg' => '
    '.tr("Aggiungere alle fatture esistenti non ancora emesse?").' ', + 'button' => tr('Crea fatture'), 'class' => 'btn btn-lg btn-warning', 'blank' => false, ], From 79c84f085793c39888f7f924ce7f0297f682bf58 Mon Sep 17 00:00:00 2001 From: Thomas Zilio Date: Mon, 23 Jul 2018 13:47:09 +0200 Subject: [PATCH 10/22] Aggiunto supporto HTMLBuilder in Swal --- include/manager.php | 2 +- modules/interventi/bulk.php | 35 ++++++++++++++++------------------- 2 files changed, 17 insertions(+), 20 deletions(-) diff --git a/include/manager.php b/include/manager.php index e027b9195..6ab5543f5 100644 --- a/include/manager.php +++ b/include/manager.php @@ -155,7 +155,7 @@ if (!empty($module_options) && $module_options != 'menu' && $module_options != ' $data = is_array($value) ? $value['data'] : []; $extra = []; foreach ($data as $k => $v) { - $extra[] = 'data-'.$k.'="'.prepareToField($v).'"'; + $extra[] = 'data-'.$k.'="'.prepareToField(\HTMLBuilder\HTMLBuilder::replace($v)).'"'; } echo ' diff --git a/modules/interventi/bulk.php b/modules/interventi/bulk.php index 4fb161aad..96212a1e6 100644 --- a/modules/interventi/bulk.php +++ b/modules/interventi/bulk.php @@ -62,8 +62,8 @@ switch (post('op')) { $data = date('Y-m-d'); $dir = 'entrata'; $idtipodocumento = '2'; - $accodare = post('accodare'); - + $accodare = post('accodare'); + if (empty($_SESSION['m'.Modules::get('Fatture di vendita')['id']]['id_segment'])) { $rs = $dbo->fetchArray('SELECT id FROM zz_segments WHERE predefined = 1 AND id_module = '.prepare(Modules::get('Fatture di vendita')['id']).'LIMIT 0,1'); $_SESSION['m'.Modules::get('Fatture di vendita')['id']]['id_segment'] = $rs[0]['id']; @@ -74,7 +74,7 @@ switch (post('op')) { $numero = get_new_numerofattura($data); $numero_esterno = get_new_numerosecondariofattura($data); - + $idconto = get_var('Conto predefinito fatture di vendita'); $campo = ($dir == 'entrata') ? 'idpagamento_vendite' : 'idpagamento_acquisti'; @@ -109,21 +109,18 @@ switch (post('op')) { $rs = $dbo->fetchArray($q); if (count($rs) > 0) { - //al primo ciclo preparo la fattura if ($n_interventi == 0) { - - //verifico se ho già fatture nello stato bozza per questo cliente - $iddocumento = $dbo->fetchArray('SELECT co_documenti.id AS iddocumento FROM co_documenti INNER JOIN co_statidocumento ON co_documenti.idstatodocumento = co_statidocumento.id WHERE co_statidocumento.descrizione = \'Bozza\' AND idanagrafica = '.prepare($idanagrafica))[0]['iddocumento']; - + //verifico se ho già fatture nello stato bozza per questo cliente + $iddocumento = $dbo->fetchArray('SELECT co_documenti.id AS iddocumento FROM co_documenti INNER JOIN co_statidocumento ON co_documenti.idstatodocumento = co_statidocumento.id WHERE co_statidocumento.descrizione = \'Bozza\' AND idanagrafica = '.prepare($idanagrafica))[0]['iddocumento']; + //preparo fattura - if (empty($iddocumento) OR empty($accodare)){ - $dbo->query('INSERT INTO co_documenti (numero, numero_esterno, idanagrafica, idconto, idtipodocumento, idpagamento, data, idstatodocumento, idsede, id_segment) VALUES ('.prepare($numero).', '.prepare($numero_esterno).', '.prepare($idanagrafica).', '.prepare($idconto).', '.prepare($idtipodocumento).', '.prepare($idpagamento).', '.prepare($data).", (SELECT `id` FROM `co_statidocumento` WHERE `descrizione`='Bozza'), (SELECT idsede_fatturazione FROM an_anagrafiche WHERE idanagrafica=".prepare($idanagrafica).'), '.prepare($id_segment).')'); - $iddocumento = $dbo->lastInsertedID(); - }else{ - $numero_esterno = $dbo->fetchArray('SELECT numero_esterno FROM co_documenti WHERE id = '.prepare($iddocumento))[0]['numero_esterno']; - } - + if (empty($iddocumento) or empty($accodare)) { + $dbo->query('INSERT INTO co_documenti (numero, numero_esterno, idanagrafica, idconto, idtipodocumento, idpagamento, data, idstatodocumento, idsede, id_segment) VALUES ('.prepare($numero).', '.prepare($numero_esterno).', '.prepare($idanagrafica).', '.prepare($idconto).', '.prepare($idtipodocumento).', '.prepare($idpagamento).', '.prepare($data).", (SELECT `id` FROM `co_statidocumento` WHERE `descrizione`='Bozza'), (SELECT idsede_fatturazione FROM an_anagrafiche WHERE idanagrafica=".prepare($idanagrafica).'), '.prepare($id_segment).')'); + $iddocumento = $dbo->lastInsertedID(); + } else { + $numero_esterno = $dbo->fetchArray('SELECT numero_esterno FROM co_documenti WHERE id = '.prepare($iddocumento))[0]['numero_esterno']; + } } ++$n_interventi; @@ -227,7 +224,7 @@ switch (post('op')) { } else { $_SESSION['warnings'][] = tr('Nessuna attività fatturata.'); } - + break; } @@ -236,7 +233,7 @@ return [ 'text' => tr('Esporta stampe'), 'data' => [ 'title' => tr('Vuoi davvero esportare queste stampe in un archivio?'), - 'msg' => '', + 'msg' => '', 'button' => tr('Crea archivio'), 'class' => 'btn btn-lg btn-warning', 'blank' => true, @@ -246,8 +243,8 @@ return [ 'creafatturavendita' => [ 'text' => tr('Crea fattura'), 'data' => [ - 'title' => tr("Vuoi davvero generare le fatture per questi interventi?"), - 'msg' => '
    '.tr("Aggiungere alle fatture esistenti non ancora emesse?").' ', + 'title' => tr('Vuoi davvero generare le fatture per questi interventi?'), + 'msg' => '
    {[ "type": "checkbox", "placeholder": "'.tr('Aggiungere alle fatture esistenti non ancora emesse?').'", "name": "accodare" ]}', 'button' => tr('Crea fatture'), 'class' => 'btn btn-lg btn-warning', 'blank' => false, From 5d124c73e479b7da091f34d7c6e1f91dc960c23b Mon Sep 17 00:00:00 2001 From: Luca Date: Mon, 23 Jul 2018 14:35:59 +0200 Subject: [PATCH 11/22] =?UTF-8?q?Bugfix:=20possibilit=C3=A0=20di=20fattura?= =?UTF-8?q?re=20il=20rimanente=20degli=20ordini=20parzialmente=20fatturati?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/ordini/buttons.php | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/modules/ordini/buttons.php b/modules/ordini/buttons.php index f7e40df7e..416c8d8d9 100644 --- a/modules/ordini/buttons.php +++ b/modules/ordini/buttons.php @@ -2,25 +2,32 @@ include_once __DIR__.'/../../core.php'; -if (!in_array($records[0]['stato'], ['Evaso', 'Fatturato', 'Parzialmente fatturato'])) { +if (!in_array($records[0]['stato'], ['Evaso', 'Fatturato'])) { echo ' '; } From 6d41fd5c82f79c068b9b8bdea43a785893babcd1 Mon Sep 17 00:00:00 2001 From: Luca Date: Mon, 23 Jul 2018 15:55:19 +0200 Subject: [PATCH 12/22] Fix ordine date promemoria contratti da pianificare e interventi da pianificare --- .../contratti.pianificazionedashboard.interventi.php | 6 ++++-- .../interventi.pianificazionedashboard.interventi.php | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/modules/contratti/widgets/contratti.pianificazionedashboard.interventi.php b/modules/contratti/widgets/contratti.pianificazionedashboard.interventi.php index 75cbb19e8..e2de465e4 100644 --- a/modules/contratti/widgets/contratti.pianificazionedashboard.interventi.php +++ b/modules/contratti/widgets/contratti.pianificazionedashboard.interventi.php @@ -18,13 +18,15 @@ $mesi = [ ]; // Righe inserite -$qp = "SELECT *, DATE_FORMAT( data_richiesta, '%m-%Y') AS mese, (SELECT descrizione FROM in_tipiintervento WHERE idtipointervento=co_contratti_promemoria.idtipointervento) AS tipointervento, (SELECT idanagrafica FROM co_contratti WHERE id=idcontratto) AS idcliente, (SELECT ragione_sociale FROM co_contratti INNER JOIN an_anagrafiche ON co_contratti.idanagrafica=an_anagrafiche.idanagrafica WHERE co_contratti.id=idcontratto) AS ragione_sociale FROM co_contratti_promemoria WHERE idcontratto IN( SELECT id FROM co_contratti WHERE idstato IN(SELECT id FROM co_staticontratti WHERE pianificabile = 1) ) AND idintervento IS NULL ORDER BY DATE_FORMAT( data_richiesta, '%m-%Y') ASC, ragione_sociale ASC"; +$qp = "SELECT *, DATE_FORMAT( data_richiesta, '%m-%Y') AS mese, (SELECT descrizione FROM in_tipiintervento WHERE idtipointervento=co_contratti_promemoria.idtipointervento) AS tipointervento, (SELECT idanagrafica FROM co_contratti WHERE id=idcontratto) AS idcliente, (SELECT ragione_sociale FROM co_contratti INNER JOIN an_anagrafiche ON co_contratti.idanagrafica=an_anagrafiche.idanagrafica WHERE co_contratti.id=idcontratto) AS ragione_sociale FROM co_contratti_promemoria WHERE idcontratto IN( SELECT id FROM co_contratti WHERE idstato IN(SELECT id FROM co_staticontratti WHERE pianificabile = 1) ) AND idintervento IS NULL ORDER BY DATE_FORMAT( data_richiesta, '%Y-%m') ASC, ragione_sociale ASC"; $rsp = $dbo->fetchArray($qp); if (!empty($rsp)) { + // Elenco interventi da pianificare foreach ($rsp as $i => $r) { - // Se cambia il mese ricreo l'intestazione della tabella + + // Se cambia il mese ricreo l'intestazione della tabella if (!isset($rsp[$i - 1]) || $r['mese'] != $rsp[$i - 1]['mese']) { if ($i == 0) { $attr = ''; diff --git a/modules/interventi/widgets/interventi.pianificazionedashboard.interventi.php b/modules/interventi/widgets/interventi.pianificazionedashboard.interventi.php index 9355a9d6d..c13483a89 100644 --- a/modules/interventi/widgets/interventi.pianificazionedashboard.interventi.php +++ b/modules/interventi/widgets/interventi.pianificazionedashboard.interventi.php @@ -18,7 +18,7 @@ $mesi = [ ]; // Righe inserite -$qp = "SELECT *, DATE_FORMAT( data_richiesta, '%m-%Y') AS mese, (SELECT descrizione FROM in_tipiintervento WHERE idtipointervento = in_interventi.idtipointervento ) AS tipointervento, idanagrafica AS idcliente, (SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica = in_interventi.idanagrafica) AS ragione_sociale FROM in_interventi WHERE id NOT IN (SELECT idintervento FROM in_interventi_tecnici) AND idstatointervento IN (SELECT idstatointervento FROM in_statiintervento WHERE completato = 0) ORDER BY DATE_FORMAT( data_richiesta, '%m-%Y') ASC, ragione_sociale ASC"; +$qp = "SELECT *, DATE_FORMAT( data_richiesta, '%m-%Y') AS mese, (SELECT descrizione FROM in_tipiintervento WHERE idtipointervento = in_interventi.idtipointervento ) AS tipointervento, idanagrafica AS idcliente, (SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica = in_interventi.idanagrafica) AS ragione_sociale FROM in_interventi WHERE id NOT IN (SELECT idintervento FROM in_interventi_tecnici) AND idstatointervento IN (SELECT idstatointervento FROM in_statiintervento WHERE completato = 0) ORDER BY DATE_FORMAT( data_richiesta, '%Y-%m') ASC, ragione_sociale ASC"; $rsp = $dbo->fetchArray($qp); $n = $dbo->fetchNum($qp); From 5f718dfaa2d44db37814c96339aaf345a2d95477 Mon Sep 17 00:00:00 2001 From: Luca Date: Mon, 23 Jul 2018 16:50:07 +0200 Subject: [PATCH 13/22] Fix minori --- modules/articoli/edit.php | 2 +- ...tti.pianificazionedashboard.interventi.php | 39 +++++++++---------- 2 files changed, 20 insertions(+), 21 deletions(-) diff --git a/modules/articoli/edit.php b/modules/articoli/edit.php index 6fe8196f2..9a03feed1 100644 --- a/modules/articoli/edit.php +++ b/modules/articoli/edit.php @@ -201,7 +201,7 @@ if (!empty($records[0]['immagine'])) {
    '; echo " - \n"; echo ' '; diff --git a/modules/contratti/widgets/contratti.pianificazionedashboard.interventi.php b/modules/contratti/widgets/contratti.pianificazionedashboard.interventi.php index e2de465e4..76849d461 100644 --- a/modules/contratti/widgets/contratti.pianificazionedashboard.interventi.php +++ b/modules/contratti/widgets/contratti.pianificazionedashboard.interventi.php @@ -18,7 +18,7 @@ $mesi = [ ]; // Righe inserite -$qp = "SELECT *, DATE_FORMAT( data_richiesta, '%m-%Y') AS mese, (SELECT descrizione FROM in_tipiintervento WHERE idtipointervento=co_contratti_promemoria.idtipointervento) AS tipointervento, (SELECT idanagrafica FROM co_contratti WHERE id=idcontratto) AS idcliente, (SELECT ragione_sociale FROM co_contratti INNER JOIN an_anagrafiche ON co_contratti.idanagrafica=an_anagrafiche.idanagrafica WHERE co_contratti.id=idcontratto) AS ragione_sociale FROM co_contratti_promemoria WHERE idcontratto IN( SELECT id FROM co_contratti WHERE idstato IN(SELECT id FROM co_staticontratti WHERE pianificabile = 1) ) AND idintervento IS NULL ORDER BY DATE_FORMAT( data_richiesta, '%Y-%m') ASC, ragione_sociale ASC"; +$qp = "SELECT *, DATE_FORMAT( data_richiesta, '%m-%Y') AS mese, (SELECT descrizione FROM in_tipiintervento WHERE idtipointervento=co_contratti_promemoria.idtipointervento) AS tipointervento, (SELECT idanagrafica FROM co_contratti WHERE id=idcontratto) AS idcliente, (SELECT ragione_sociale FROM co_contratti INNER JOIN an_anagrafiche ON co_contratti.idanagrafica=an_anagrafiche.idanagrafica WHERE co_contratti.id=idcontratto) AS ragione_sociale, (SELECT CONCAT('Contratto ', numero, ' del ', DATE_FORMAT(data_bozza, '%d/%m/%Y'), ' - ', nome, ' [', (SELECT `descrizione` FROM `co_staticontratti` WHERE `co_staticontratti`.`id` = `idstato`) , ']') FROM co_contratti WHERE id = co_contratti_promemoria.idcontratto) contratto, (SELECT id FROM co_contratti WHERE id = co_contratti_promemoria.idcontratto) idcontratto FROM co_contratti_promemoria WHERE idcontratto IN ( SELECT id FROM co_contratti WHERE idstato IN(SELECT id FROM co_staticontratti WHERE pianificabile = 1) ) AND idintervento IS NULL ORDER BY DATE_FORMAT( data_richiesta, '%Y-%m') ASC, ragione_sociale ASC"; $rsp = $dbo->fetchArray($qp); if (!empty($rsp)) { @@ -45,14 +45,14 @@ if (!empty($rsp)) { echo '
    - +
    + - @@ -63,25 +63,12 @@ if (!empty($rsp)) { echo ' - + + - - '; - + '; + echo '
    '.tr('Cliente').''.tr('Contratto').' '.tr('Entro il').' '.tr('Tipo intervento').' '.tr('Descrizione').''.tr('Intervento collegato').' '.tr('Sede').'
    '.$r['ragione_sociale'].''.Modules::link(Modules::get('Anagrafiche')['id'], $r['idcliente'], $r['ragione_sociale']).''.Modules::link(Modules::get('Contratti')['id'], $r['idcontratto'], $r['contratto']).' '.Translator::dateToLocale($r['data_richiesta']).' '.$r['tipointervento'].''.nl2br($r['richiesta']).''; - - // Intervento svolto - if (!empty($r['idintervento'])) { - $rsp2 = $dbo->fetchArray('SELECT id, codice, data FROM in_interventi WHERE id='.prepare($r['idintervento'])); - - echo Modules::link('Interventi', $rsp2[0]['id'], tr('Intervento num. _NUM_ del _DATE_', [ - '_NUM_' => $rsp2[0]['codice'], - '_DATE_' => Translator::dateToLocale($rsp2[0]['data']), - ])); - } else { - echo '- '.('Nessuno').' -'; - } - echo ''.nl2br($r['richiesta']).''; // Sede @@ -121,3 +108,15 @@ if (!empty($rsp)) { echo '

    '.tr('Non ci sono interventi da pianificare').'.

    '; } + +?> + + From 1f80c0d9caa93c3f6d914a84e8960ab6bce25735 Mon Sep 17 00:00:00 2001 From: Luca Date: Mon, 23 Jul 2018 17:10:30 +0200 Subject: [PATCH 14/22] Bugfix: costo contratto non veniva riportato in fattura --- modules/fatture/add_contratto.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/fatture/add_contratto.php b/modules/fatture/add_contratto.php index 7980e183d..3c1e28ca5 100644 --- a/modules/fatture/add_contratto.php +++ b/modules/fatture/add_contratto.php @@ -36,7 +36,7 @@ $_SESSION['superselect']['non_fatturato'] = 1; echo '
    - {[ "type": "select", "label": "'.tr('Contratto').'", "name": "idcontratto", "required": 1, "ajax-source": "contratti", "extra": "onchange=\"$data = $(this).selectData(); $(\'#descrizione\').val($data.text); $(\'#prezzo\').val($data.subtot); $(\'#sconto\').val($data.sconto);\"" ]} + {[ "type": "select", "label": "'.tr('Contratto').'", "name": "idcontratto", "required": 1, "ajax-source": "contratti", "extra": "onchange=\"$data = $(this).selectData(); $(\'#descrizione\').val($data.text); $(\'#prezzo\').val($data.totale); $(\'#sconto\').val($data.sconto);\"" ]}
    '; From a2523275c1ad2a3383a63d1df3a759bd2abc0e3d Mon Sep 17 00:00:00 2001 From: Luca Date: Mon, 23 Jul 2018 17:39:13 +0200 Subject: [PATCH 15/22] Bugfix: non veniva riportato lo sconto in fase di importazione contratto in fattura. Se un preventivo contenente un articolo veniva rimosso dalla fattura, il preventivo non tornava "in lavorazione" --- modules/fatture/actions.php | 4 ++-- modules/fatture/row-list.php | 32 ++++++++++++++++---------------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/modules/fatture/actions.php b/modules/fatture/actions.php index 165864af7..523e9380b 100644 --- a/modules/fatture/actions.php +++ b/modules/fatture/actions.php @@ -525,7 +525,7 @@ switch (post('op')) { // Calcolo iva $query = 'SELECT * FROM co_iva WHERE id='.prepare($idiva); $rs = $dbo->fetchArray($query); - $iva = $prezzo / 100 * $rs[0]['percentuale']; + $iva = ($prezzo-$sconto) / 100 * $rs[0]['percentuale']; $iva_indetraibile = $iva / 100 * $rs[0]['indetraibile']; $desc_iva = $rs[0]['descrizione']; @@ -649,7 +649,7 @@ switch (post('op')) { // Calcolo iva $query = 'SELECT * FROM co_iva WHERE id='.prepare($idiva); $rs = $dbo->fetchArray($query); - $iva = $prezzo / 100 * $rs[0]['percentuale']; + $iva = ($prezzo-$sconto) / 100 * $rs[0]['percentuale']; $iva_indetraibile = $iva / 100 * $rs[0]['indetraibile']; $desc_iva = $rs[0]['descrizione']; diff --git a/modules/fatture/row-list.php b/modules/fatture/row-list.php index af8048b63..2f251eff5 100644 --- a/modules/fatture/row-list.php +++ b/modules/fatture/row-list.php @@ -38,9 +38,22 @@ if (!empty($rs)) { $ref_modulo = null; $ref_id = null; + // Preventivi + if (!empty($r['idpreventivo'])) { + $delete = 'unlink_preventivo'; + } + // Contratti + elseif (!empty($r['idcontratto'])) { + $delete = 'unlink_contratto'; + } + // Intervento + elseif (!empty($r['idintervento'])) { + $delete = 'unlink_intervento'; + } // Articoli - if (!empty($r['idarticolo'])) { - $ref_modulo = Modules::get('Articoli')['id']; + elseif (!empty($r['idarticolo'])) { + + $ref_modulo = Modules::get('Articoli')['id']; $ref_id = $r['idarticolo']; $r['descrizione'] = (!empty($r['codice']) ? $r['codice'].' - ' : '').$r['descrizione']; @@ -62,18 +75,6 @@ if (!empty($rs)) { } } } - // Preventivi - elseif (!empty($r['idpreventivo'])) { - $delete = 'unlink_preventivo'; - } - // Contratti - elseif (!empty($r['idcontratto'])) { - $delete = 'unlink_contratto'; - } - // Intervento - elseif (!empty($r['idintervento'])) { - $delete = 'unlink_intervento'; - } // Righe generiche else { $delete = 'unlink_riga'; @@ -170,8 +171,7 @@ if (!empty($rs)) { if (empty($r['is_descrizione'])) { echo ' '.Translator::numberToLocale($r['iva']).' € -
    '.$r['desc_iva'].' - '.$r['iva'].''; +
    '.$r['desc_iva'].''; } echo ' From e1e819e40479de13b9d73312c58d4009b67211be Mon Sep 17 00:00:00 2001 From: Luca Date: Mon, 23 Jul 2018 18:02:07 +0200 Subject: [PATCH 16/22] Bugfix: gli articoli collegati al preventivo non venivano rimessi a magazzino --- modules/fatture/actions.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/modules/fatture/actions.php b/modules/fatture/actions.php index 523e9380b..9625e968b 100644 --- a/modules/fatture/actions.php +++ b/modules/fatture/actions.php @@ -1236,7 +1236,14 @@ switch (post('op')) { $rsp = $dbo->fetchArray($query); $id_record = $rsp[0]['iddocumento']; $idpreventivo = $rsp[0]['idpreventivo']; - + + + //rimetto a magazzino gli articoli collegati al preventivo, ma che non sono collegati ad un intervento + $rs5 = $dbo->fetchArray('SELECT idarticolo, id FROM co_righe_documenti WHERE iddocumento = '.prepare($id_record).' AND idarticolo != 0 AND idintervento IS NULL AND idpreventivo='.prepare($idpreventivo)); + for ($x = 0; $x < sizeof($rs5); ++$x) { + rimuovi_articolo_dafattura($rs5[$x]['idarticolo'], $id_record, $rs5[$x]['id']); + } + $query = 'DELETE FROM co_righe_documenti WHERE iddocumento='.prepare($id_record).' AND id='.prepare($idriga); if ($dbo->query($query)) { @@ -1251,7 +1258,7 @@ switch (post('op')) { /* Rimuovo tutti gli articoli dalla fattura collegati agli interventi che sono collegati a questo preventivo */ - $rs2 = $dbo->fetchArray('SELECT idintervento FROM co_preventivi_interventi WHERE idpreventivo='.prepare($idpreventivo)." AND NOT idpreventivo=''"); + $rs2 = $dbo->fetchArray('SELECT idintervento FROM co_preventivi_interventi WHERE idpreventivo != 0 AND idpreventivo='.prepare($idpreventivo)); for ($i = 0; $i < sizeof($rs2); ++$i) { // Leggo gli articoli usati in questo intervento $rs3 = $dbo->fetchArray('SELECT idarticolo FROM mg_articoli_interventi WHERE idintervento='.prepare($rs2[$i]['idintervento'])); From 3decbffe460594a3bc5e7848f61f29af600ef101 Mon Sep 17 00:00:00 2001 From: Luca Date: Mon, 23 Jul 2018 18:59:27 +0200 Subject: [PATCH 17/22] =?UTF-8?q?In=20caso=20di=20eliminazione=20articoli?= =?UTF-8?q?=20di=20un=20preventivo=20importato=20in=20fattura=20ripristino?= =?UTF-8?q?=20anche=20le=20quantit=C3=A0=20a=20magazzino?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/fatture/actions.php | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/modules/fatture/actions.php b/modules/fatture/actions.php index 9625e968b..d019f7a7d 100644 --- a/modules/fatture/actions.php +++ b/modules/fatture/actions.php @@ -1232,17 +1232,26 @@ switch (post('op')) { $idriga = post('idriga'); // Lettura preventivi collegati - $query = 'SELECT iddocumento, idpreventivo FROM co_righe_documenti WHERE id='.prepare($idriga); + $query = 'SELECT iddocumento, idpreventivo, idarticolo FROM co_righe_documenti WHERE id='.prepare($idriga); $rsp = $dbo->fetchArray($query); $id_record = $rsp[0]['iddocumento']; $idpreventivo = $rsp[0]['idpreventivo']; + $idarticolo = $rsp[0]['idarticolo']; - - //rimetto a magazzino gli articoli collegati al preventivo, ma che non sono collegati ad un intervento - $rs5 = $dbo->fetchArray('SELECT idarticolo, id FROM co_righe_documenti WHERE iddocumento = '.prepare($id_record).' AND idarticolo != 0 AND idintervento IS NULL AND idpreventivo='.prepare($idpreventivo)); - for ($x = 0; $x < sizeof($rs5); ++$x) { - rimuovi_articolo_dafattura($rs5[$x]['idarticolo'], $id_record, $rs5[$x]['id']); + //preventivo su unica riga, perdo il riferimento dell'articolo quindi lo vado a leggere da co_righe_preventivi + if (empty($idarticolo)){ + //rimetto a magazzino gli articoli collegati al preventivo + $rsa = $dbo->fetchArray('SELECT idarticolo, qta FROM co_righe_preventivi WHERE idpreventivo = '.prepare($idpreventivo)); + for ($i = 0; $i < sizeof($rsa); ++$i) { + if (!empty($rsa[$i]['idarticolo'])) + add_movimento_magazzino($rsa[$i]['idarticolo'], $rsa[$i]['qta'], ['iddocumento' => $id_record]); + //rimuovi_articolo_dafattura($rsa[$i]['idarticolo'], $id_record, $idriga); + } + }else{ + $rs5 = $dbo->fetchArray('SELECT idarticolo, id, qta FROM co_righe_documenti WHERE id = '.prepare($idriga).' AND idintervento IS NULL'); + rimuovi_articolo_dafattura($rs5[0]['idarticolo'], $id_record, $idriga); } + $query = 'DELETE FROM co_righe_documenti WHERE iddocumento='.prepare($id_record).' AND id='.prepare($idriga); @@ -1256,7 +1265,7 @@ switch (post('op')) { } /* - Rimuovo tutti gli articoli dalla fattura collegati agli interventi che sono collegati a questo preventivo + Rimuovo tutti gli articoli dalla fattura collegati agli interventi di questo preventivo */ $rs2 = $dbo->fetchArray('SELECT idintervento FROM co_preventivi_interventi WHERE idpreventivo != 0 AND idpreventivo='.prepare($idpreventivo)); for ($i = 0; $i < sizeof($rs2); ++$i) { From 9617f52becc429affe44435d2a01ef3edeb9ed8a Mon Sep 17 00:00:00 2001 From: Luca Date: Tue, 24 Jul 2018 10:28:04 +0200 Subject: [PATCH 18/22] Fix default value per campo format --- update/2_3.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/update/2_3.sql b/update/2_3.sql index 9558657d5..a497040a9 100644 --- a/update/2_3.sql +++ b/update/2_3.sql @@ -851,7 +851,7 @@ UPDATE `zz_widgets` SET `query` = 'SELECT COUNT(id) AS dato FROM co_righe_contra UPDATE `zz_widgets` SET `query` = 'SELECT COUNT(id) AS dato FROM co_ordiniservizio WHERE idcontratto IN( SELECT id FROM co_contratti WHERE idstato IN(SELECT id FROM co_staticontratti WHERE pianificabile = 1)) AND idintervento IS NULL' WHERE `zz_widgets`.`name` = 'Ordini di servizio da impostare'; -- Creazione del campo format per la tabella zz_views -ALTER TABLE `zz_views` ADD `format` boolean NOT NULL AFTER `slow`; +ALTER TABLE `zz_views` ADD `format` boolean NOT NULL DEFAULT 0 AFTER `slow`; UPDATE `zz_views` SET `format` = 1 WHERE (`id_module` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Scadenzario') AND `name` = 'Importo') OR (`id_module` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Scadenzario') AND `name` = 'Pagato') From 2ee8fad6bce1056f8cc0b2ee71e75196eb81972e Mon Sep 17 00:00:00 2001 From: Luca Date: Tue, 24 Jul 2018 17:24:33 +0200 Subject: [PATCH 19/22] Bugfix: cliente + referenti come destinatari per invio email --- modules/contratti/variables.php | 1 + modules/ddt/variables.php | 1 + modules/fatture/variables.php | 1 + modules/interventi/variables.php | 1 + modules/preventivi/variables.php | 1 + 5 files changed, 5 insertions(+) diff --git a/modules/contratti/variables.php b/modules/contratti/variables.php index 4b0c1a8c9..bf6511f05 100644 --- a/modules/contratti/variables.php +++ b/modules/contratti/variables.php @@ -10,4 +10,5 @@ return [ 'numero' => $r['numero'], 'descrizione' => $r['descrizione'], 'data' => Translator::dateToLocale($r['data_bozza']), + 'id_anagrafica' => $r['idanagrafica'], ]; diff --git a/modules/ddt/variables.php b/modules/ddt/variables.php index af05fc0af..e83d41923 100644 --- a/modules/ddt/variables.php +++ b/modules/ddt/variables.php @@ -10,4 +10,5 @@ return [ 'numero' => empty($r['numero_esterno']) ? $r['numero'] : $r['numero_esterno'], 'note' => $r['note'], 'data' => Translator::dateToLocale($r['data']), + 'id_anagrafica' => $r['idanagrafica'], ]; diff --git a/modules/fatture/variables.php b/modules/fatture/variables.php index 2dbd1645d..b85380b2c 100644 --- a/modules/fatture/variables.php +++ b/modules/fatture/variables.php @@ -10,4 +10,5 @@ return [ 'numero' => empty($r['numero_esterno']) ? $r['numero'] : $r['numero_esterno'], 'note' => $r['note'], 'data' => Translator::dateToLocale($r['data']), + 'id_anagrafica' => $r['idanagrafica'], ]; diff --git a/modules/interventi/variables.php b/modules/interventi/variables.php index d0b2d4f2d..ae94a4a2e 100644 --- a/modules/interventi/variables.php +++ b/modules/interventi/variables.php @@ -14,4 +14,5 @@ return [ 'data' => Translator::dateToLocale($r['data_richiesta']), 'data richiesta' => Translator::dateToLocale($r['data_richiesta']), 'data fine intervento' => empty($r['data_fine']) ? Translator::dateToLocale($r['data_richiesta']) : Translator::dateToLocale($r['data_fine']), + 'id_anagrafica' => $r['idanagrafica'], ]; diff --git a/modules/preventivi/variables.php b/modules/preventivi/variables.php index 9121eaf66..bb1fa8ee5 100644 --- a/modules/preventivi/variables.php +++ b/modules/preventivi/variables.php @@ -10,4 +10,5 @@ return [ 'numero' => $r['numero'], 'descrizione' => $r['descrizione'], 'data' => Translator::dateToLocale($r['data_bozza']), + 'id_anagrafica' => $r['idanagrafica'], ]; From c11c5f0fa5b0730dc4043bb62b65faabb3c9a6e2 Mon Sep 17 00:00:00 2001 From: Luca Date: Tue, 24 Jul 2018 18:36:29 +0200 Subject: [PATCH 20/22] Bugfix #284 --- modules/fatture/actions.php | 9 +++++++-- modules/fatture/modutil.php | 21 +++++++++++++++++++-- templates/fatture/footer.php | 2 +- 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/modules/fatture/actions.php b/modules/fatture/actions.php index d019f7a7d..b60750503 100644 --- a/modules/fatture/actions.php +++ b/modules/fatture/actions.php @@ -699,6 +699,9 @@ switch (post('op')) { $idiva = post('idiva'); $idconto = post('idconto'); $idum = post('um'); + $idrivalsainps = post('idrivalsainps'); + $idritenutaacconto = post('idritenutaacconto'); + $calcolo_ritenutaacconto = post('calcolo_ritenutaacconto'); $qta = $post['qta']; if (!empty($records[0]['is_reversed'])) { @@ -712,8 +715,10 @@ switch (post('op')) { $tipo_sconto = $post['tipo_sconto']; $sconto = ($tipo_sconto == 'PRC') ? ($prezzo * $sconto_unitario) / 100 : $sconto_unitario; $sconto = $sconto * $qta; - - add_articolo_infattura($id_record, $idarticolo, $descrizione, $idiva, $qta, $prezzo * $qta, $sconto, $sconto_unitario, $tipo_sconto, '0', $idconto, $idum); + + add_articolo_infattura($id_record, $idarticolo, $descrizione, $idiva, $qta, $prezzo * $qta, $sconto, $sconto_unitario, $tipo_sconto, '0', $idconto, $idum, $idrivalsainps, $idritenutaacconto, $calcolo_ritenutaacconto); + + ricalcola_costiagg_fattura($id_record); $_SESSION['infos'][] = tr('Articolo aggiunto!'); } diff --git a/modules/fatture/modutil.php b/modules/fatture/modutil.php index 8ebaa2c5a..3c5632a8f 100644 --- a/modules/fatture/modutil.php +++ b/modules/fatture/modutil.php @@ -644,7 +644,7 @@ function ricalcola_costiagg_fattura($iddocumento, $idrivalsainps = '', $idritenu * $prezzo float prezzo totale dell'articolo (prezzounitario*qtà) * $idintervento integer id dell'intervento da cui arriva l'articolo (per non creare casini quando si rimuoverà un articolo dalla fattura). */ -function add_articolo_infattura($iddocumento, $idarticolo, $descrizione, $idiva, $qta, $prezzo, $sconto = 0, $sconto_unitario = 0, $tipo_sconto = 'UNT', $idintervento = 0, $idconto = 0, $idum = 0) +function add_articolo_infattura($iddocumento, $idarticolo, $descrizione, $idiva, $qta, $prezzo, $sconto = 0, $sconto_unitario = 0, $tipo_sconto = 'UNT', $idintervento = 0, $idconto = 0, $idum = 0, $idrivalsainps = '', $idritenutaacconto = '', $calcolo_ritenutaacconto = '') { global $dir; global $idddt; @@ -673,11 +673,28 @@ function add_articolo_infattura($iddocumento, $idarticolo, $descrizione, $idiva, $rs2 = $dbo->fetchArray('SELECT * FROM co_iva WHERE id='.prepare($idiva)); $iva = ($prezzo - $sconto) / 100 * $rs2[0]['percentuale']; $desc_iva = $rs2[0]['descrizione']; + + if (!empty($idrivalsainps)){ + // Calcolo rivalsa inps + $rs = $dbo->fetchArray('SELECT * FROM co_rivalsainps WHERE id='.prepare($idrivalsainps)); + $rivalsainps = ($prezzo - $sconto) / 100 * $rs[0]['percentuale']; + } + + if (!empty($idritenutaacconto)){ + // Calcolo ritenuta d'acconto + $query = 'SELECT * FROM co_ritenutaacconto WHERE id='.prepare($idritenutaacconto); + $rs = $dbo->fetchArray($query); + if ($calcolo_ritenutaacconto == 'Imponibile') { + $ritenutaacconto = ($prezzo - $sconto) / 100 * $rs[0]['percentuale']; + } else if ( $calcolo_ritenutaacconto == 'Imponibile + rivalsa inps') { + $ritenutaacconto = ($prezzo - $sconto + $rivalsainps) / 100 * $rs[0]['percentuale']; + } + } if ($qta != 0) { $rsart = $dbo->fetchArray('SELECT abilita_serial FROM mg_articoli WHERE id='.prepare($idarticolo)); - $dbo->query('INSERT INTO co_righe_documenti(iddocumento, idarticolo, idintervento, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, qta, abilita_serial, idconto, um, `order`) VALUES ('.prepare($iddocumento).', '.prepare($idarticolo).', '.(!empty($idintervento) ? prepare($idintervento) : 'NULL').', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($prezzo).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', '.prepare($qta).', '.prepare($rsart[0]['abilita_serial']).', '.prepare($idconto).', '.prepare($um).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($iddocumento).'))'); + $dbo->query('INSERT INTO co_righe_documenti(iddocumento, idarticolo, idintervento, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, qta, abilita_serial, idconto, um, `order`, idritenutaacconto, ritenutaacconto, idrivalsainps, rivalsainps, calcolo_ritenutaacconto) VALUES ('.prepare($iddocumento).', '.prepare($idarticolo).', '.(!empty($idintervento) ? prepare($idintervento) : 'NULL').', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($prezzo).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', '.prepare($qta).', '.prepare($rsart[0]['abilita_serial']).', '.prepare($idconto).', '.prepare($um).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($iddocumento).'), '.prepare($idritenutaacconto).', '.prepare($ritenutaacconto).', '.prepare($idrivalsainps).', '.prepare($rivalsainps).', '.prepare($calcolo_ritenutaacconto).')'); $idriga = $dbo->lastInsertedID(); /* diff --git a/templates/fatture/footer.php b/templates/fatture/footer.php index 172d963ab..793a423a2 100644 --- a/templates/fatture/footer.php +++ b/templates/fatture/footer.php @@ -162,7 +162,7 @@ $totale = sum($totale, $records[0]['bollo']); // Rivalsa INPS if (!empty($records[0]['rivalsainps'])) { - $rs2 = $dbo->fetchArray('SELECT percentuale FROM co_rivalsainps WHERE id=(SELECT idrivalsainps FROM co_righe_documenti WHERE iddocumento='.prepare($iddocumento).' AND idrivalsainps!=0 LIMIT 0,1)'); + $rs2 = $dbo->fetchArray('SELECT percentuale FROM co_rivalsainps WHERE id=(SELECT idrivalsainps FROM co_righe_documenti WHERE iddocumento='.prepare($id_record).' AND idrivalsainps!=0 LIMIT 0,1)'); $first_colspan = 3; $second_colspan = 2; From 6315861a07e174984e5b81e07d3232505128b5c7 Mon Sep 17 00:00:00 2001 From: Luca Date: Wed, 25 Jul 2018 12:00:49 +0200 Subject: [PATCH 21/22] Fix per test connessione al server SMTP --- modules/smtp/actions.php | 14 +++++++++----- src/Mail.php | 12 ++++++++---- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/modules/smtp/actions.php b/modules/smtp/actions.php index 31bd23f9b..78fcb580e 100644 --- a/modules/smtp/actions.php +++ b/modules/smtp/actions.php @@ -66,11 +66,15 @@ switch (post('op')) { } $mail = new Mail($id_record); - if ($mail->testSMTP()) { - $_SESSION['infos'][] = tr('Connessione SMTP riuscita'); - } else { - $_SESSION['errors'][] = tr('Connessione SMTP non riuscita'); - } + if (!empty((array)$mail)){ + if ($mail->testSMTP()) { + $_SESSION['infos'][] = tr('Connessione SMTP riuscita'); + } else { + $_SESSION['errors'][] = tr('Connessione SMTP non riuscita'); + } + }else{ + $_SESSION['errors'][] = tr('Errore.'); + } break; diff --git a/src/Mail.php b/src/Mail.php index 22e493dcd..bbe7b44fd 100644 --- a/src/Mail.php +++ b/src/Mail.php @@ -224,15 +224,19 @@ class Mail extends PHPMailer\PHPMailer\PHPMailer return $result; } - + + /** + * Testa la connessione al server SMTP + * + * @return boolean + */ public function testSMTP() { - if ($this->IsSMTP() && $this->smtpConnect()) { + if ($this->smtpConnect()) { $this->smtpClose(); - return true; } - + return false; } } From e06e74c60bdf8d29c839b397a87a3084cb5f144b Mon Sep 17 00:00:00 2001 From: Thomas Zilio Date: Wed, 25 Jul 2018 12:27:15 +0200 Subject: [PATCH 22/22] Bugfix #272 --- include/bottom.php | 13 ++++++------- modules/anagrafiche/actions.php | 2 +- modules/causali/actions.php | 4 ++-- modules/smtp/actions.php | 18 +++++++++--------- 4 files changed, 18 insertions(+), 19 deletions(-) diff --git a/include/bottom.php b/include/bottom.php index 31ef3dd56..d040d7f7b 100644 --- a/include/bottom.php +++ b/include/bottom.php @@ -33,7 +33,12 @@ if (Auth::check()) { '; + } + + + '; echo $debugbarRenderer->render(); } @@ -43,12 +48,6 @@ if (Auth::check()) { echo ' '; } - - // Rimozione del messaggio automatico riguardante la modifica di valori nella pagina - echo ' - '; } echo ' diff --git a/modules/anagrafiche/actions.php b/modules/anagrafiche/actions.php index c542210c1..c20615d2b 100644 --- a/modules/anagrafiche/actions.php +++ b/modules/anagrafiche/actions.php @@ -191,7 +191,7 @@ switch (post('op')) { if (in_array($id_azienda, $idtipoanagrafica)) { Settings::set('Azienda predefinita', $new_id); - $_SESSION['infos'][] = tr('Anagrafica Azienda impostata come predefinita. Per ulteriori informazionioni, visitare "Strumenti -> Impostazioni -> Generali".'); + $_SESSION['infos'][] = tr('Anagrafica Azienda impostata come predefinita. Per ulteriori informazionioni, visitare "Strumenti -> Impostazioni -> Generali"'); } //se sto inserendo un tecnico, mi copio già le tariffe per le varie attività diff --git a/modules/causali/actions.php b/modules/causali/actions.php index ea1783871..e60bd7825 100644 --- a/modules/causali/actions.php +++ b/modules/causali/actions.php @@ -39,7 +39,7 @@ switch (filter('op')) { ]); } } else { - $_SESSION['errors'][] = tr('Ci sono stati alcuni errori durante il salvataggio.'); + $_SESSION['errors'][] = tr('Ci sono stati alcuni errori durante il salvataggio'); } break; @@ -55,7 +55,7 @@ switch (filter('op')) { '_TYPE_' => 'causale', ]); } else { - $_SESSION['errors'][] = tr('Sono presenti dei documenti collegati a questa causale.'); + $_SESSION['errors'][] = tr('Sono presenti dei documenti collegati a questa causale'); } break; diff --git a/modules/smtp/actions.php b/modules/smtp/actions.php index 78fcb580e..fdc2ead75 100644 --- a/modules/smtp/actions.php +++ b/modules/smtp/actions.php @@ -66,15 +66,15 @@ switch (post('op')) { } $mail = new Mail($id_record); - if (!empty((array)$mail)){ - if ($mail->testSMTP()) { - $_SESSION['infos'][] = tr('Connessione SMTP riuscita'); - } else { - $_SESSION['errors'][] = tr('Connessione SMTP non riuscita'); - } - }else{ - $_SESSION['errors'][] = tr('Errore.'); - } + if (!empty($mail)) { + if ($mail->testSMTP()) { + $_SESSION['infos'][] = tr('Connessione SMTP riuscita'); + } else { + $_SESSION['errors'][] = tr('Connessione SMTP non riuscita'); + } + } else { + $_SESSION['errors'][] = tr('Errore'); + } break;