From 0c0ff74a95375e531f57bfa7bfae751edae925b1 Mon Sep 17 00:00:00 2001 From: Thomas Zilio Date: Fri, 23 Nov 2018 16:08:23 +0100 Subject: [PATCH] Fix rincaro articoli --- include/common/articolo.php | 10 +++--- modules/articoli/ajax/select.php | 43 ++++++++++++++++--------- modules/contratti/row-add.php | 7 ---- modules/ddt/row-add.php | 9 ------ modules/fatture/row-add.php | 9 ------ modules/interventi/actions.php | 18 +++++++++-- modules/interventi/add_articolo.php | 14 +++----- modules/interventi/add_righe.php | 8 +---- modules/interventi/modutil.php | 6 ++-- modules/ordini/row-add.php | 9 ------ modules/preventivi/row-add.php | 7 ---- select2('#idpagamento' | 0 src/Notifications/EmailNotification.php | 3 +- 13 files changed, 59 insertions(+), 84 deletions(-) delete mode 100644 select2('#idpagamento' diff --git a/include/common/articolo.php b/include/common/articolo.php index e6e77f4ce..b8a07b31f 100644 --- a/include/common/articolo.php +++ b/include/common/articolo.php @@ -2,9 +2,9 @@ $result['idarticolo'] = isset($result['idarticolo']) ? $result['idarticolo'] : null; -unset($_SESSION['superselect']['dir']); -unset($_SESSION['superselect']['idanagrafica']); -unset($_SESSION['superselect']['idarticolo']); +$_SESSION['superselect']['dir'] = $options['dir']; +$_SESSION['superselect']['idanagrafica'] = $options['idanagrafica']; +$_SESSION['superselect']['idarticolo'] = $options['idarticolo']; // Articolo if (!isset($options['edit_articolo']) || !empty($options['edit_articolo'])) { @@ -61,11 +61,11 @@ if (!isset($options['edit_articolo']) || !empty($options['edit_articolo'])) { $("#idarticolo").on("change", function(){ // Autoimpostazione dei valori relativi if ($(this).val()) { - + session_set("superselect,idarticolo", $(this).val(), 0); session_set("superselect,idanagrafica", "'.$options['idanagrafica'].'", 0); session_set("superselect,dir", "'.$options['dir'].'", 0); - + $data = $(this).selectData(); var id_conto = $data.idconto_'.($options['dir'] == 'entrata' ? 'vendita' : 'acquisto').'; diff --git a/modules/articoli/ajax/select.php b/modules/articoli/ajax/select.php index c3ce12c09..e0362a589 100644 --- a/modules/articoli/ajax/select.php +++ b/modules/articoli/ajax/select.php @@ -6,20 +6,23 @@ switch ($resource) { case 'articoli': $query = 'SELECT mg_articoli.*, (SELECT CONCAT(co_pianodeiconti2.numero, ".", co_pianodeiconti3.numero, " ", co_pianodeiconti3.descrizione) FROM co_pianodeiconti3 INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id WHERE co_pianodeiconti3.id = idconto_vendita) AS idconto_vendita_title, (SELECT CONCAT(co_pianodeiconti2.numero, ".", co_pianodeiconti3.numero, " ", co_pianodeiconti3.descrizione) FROM co_pianodeiconti3 INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id WHERE co_pianodeiconti3.id = idconto_acquisto) AS idconto_acquisto_title, co_iva.descrizione AS iva_vendita FROM mg_articoli LEFT OUTER JOIN co_iva ON mg_articoli.idiva_vendita=co_iva.id |where| ORDER BY mg_articoli.id_categoria ASC, mg_articoli.id_sottocategoria ASC'; - //per le vendite leggo iva predefinita da anagrafica, se settata - if (!empty($superselect['dir']) && $superselect['dir'] == 'entrata') { - if (!empty($superselect['idanagrafica'])) { - $idiva_predefinita = $dbo->fetchArray("SELECT idiva_vendite FROM an_anagrafiche WHERE idanagrafica = '".$superselect['idanagrafica']."' ")[0]['idiva_vendite']; - $iva_predefinita = $dbo->fetchArray("SELECT descrizione FROM co_iva WHERE id = '".$superselect['idiva_vendita']."' ")[0]['descrizione']; - } - } + // Individuazione di eventuali listini + if (!empty($superselect['dir']) && !empty($superselect['idanagrafica'])) { + $listino = $dbo->fetchOne('SELECT prc_guadagno as percentuale FROM mg_listini WHERE id=(SELECT idlistino_'.($superselect['dir'] == 'uscita' ? 'acquisti' : 'vendite').' FROM an_anagrafiche WHERE idanagrafica='.prepare($superselect['idanagrafica']).')'); + } - //in alternativa, per tutti gli altri casi, prendo quella da impostazioni - if (empty($idiva_predefinita)) { - $idiva_predefinita = get_var('Iva predefinita'); - $rs = $dbo->fetchArray("SELECT descrizione FROM co_iva WHERE id='".$idiva_predefinita."'"); - $iva_predefinita = $rs[0]['descrizione']; - } + //per le vendite leggo iva predefinita da anagrafica, se settata + if (!empty($superselect['dir']) && $superselect['dir'] == 'entrata' && !empty($superselect['idanagrafica'])) { + $idiva_predefinita = $dbo->fetchArray("SELECT idiva_vendite FROM an_anagrafiche WHERE idanagrafica = '".$superselect['idanagrafica']."' ")[0]['idiva_vendite']; + $iva_predefinita = $dbo->fetchArray("SELECT descrizione FROM co_iva WHERE id = '".$superselect['idiva_vendita']."' ")[0]['descrizione']; + } + + //in alternativa, per tutti gli altri casi, prendo quella da impostazioni + if (empty($idiva_predefinita)) { + $idiva_predefinita = get_var('Iva predefinita'); + $rs = $dbo->fetchArray("SELECT descrizione FROM co_iva WHERE id='".$idiva_predefinita."'"); + $iva_predefinita = $rs[0]['descrizione']; + } foreach ($elements as $element) { $filter[] = 'mg_articoli.id='.prepare($element); @@ -70,6 +73,16 @@ switch ($resource) { $iva = $r['iva_vendita']; } + $prezzo_vendita = $r['prezzo_vendita']; + if (!empty($listino)) { + $prezzo_vendita = sum($prezzo_vendita, -calcola_sconto([ + 'sconto' => $listino['percentuale'], + 'prezzo' => $prezzo_vendita, + 'tipo' => 'PRC', + 'qta' => 1, + ])); + } + $results[count($results) - 1]['children'][] = [ 'id' => $r['id'], 'text' => $r['codice'].' - '.$r['descrizione'], @@ -82,8 +95,8 @@ switch ($resource) { 'idconto_vendita_title' => $r['idconto_vendita_title'], 'idconto_acquisto' => $r['idconto_acquisto'], 'idconto_acquisto_title' => $r['idconto_acquisto_title'], - 'prezzo_acquisto' => Translator::numberToLocale($r['prezzo_acquisto']), - 'prezzo_vendita' => Translator::numberToLocale($r['prezzo_vendita']), + 'prezzo_acquisto' => $r['prezzo_acquisto'], + 'prezzo_vendita' => $prezzo_vendita, ]; } diff --git a/modules/contratti/row-add.php b/modules/contratti/row-add.php index 4250f8bc5..871ef09d6 100644 --- a/modules/contratti/row-add.php +++ b/modules/contratti/row-add.php @@ -29,13 +29,6 @@ $result = [ $iva = $dbo->fetchArray('SELECT idiva_vendite AS idiva FROM an_anagrafiche WHERE idanagrafica='.prepare($idanagrafica)); $result['idiva'] = $iva[0]['idiva'] ?: setting('Iva predefinita'); -// Sconto unitario -$rss = $dbo->fetchArray('SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT idlistino_vendite FROM an_anagrafiche WHERE idanagrafica='.prepare($idanagrafica).')'); -if (!empty($rss)) { - $result['sconto_unitario'] = $rss[0]['prc_guadagno']; - $result['tipo_sconto'] = 'PRC'; -} - // Importazione della gestione dedicata $file = 'riga'; if (get('is_descrizione') !== null) { diff --git a/modules/ddt/row-add.php b/modules/ddt/row-add.php index fe4affd93..2fdea6e6b 100644 --- a/modules/ddt/row-add.php +++ b/modules/ddt/row-add.php @@ -12,8 +12,6 @@ if ($module['name'] == 'Ddt di vendita') { $dir = 'uscita'; } -$_SESSION['superselect']['dir'] = $dir; - // Impostazioni per la gestione $options = [ 'op' => 'addriga', @@ -37,13 +35,6 @@ $result = [ $iva = $dbo->fetchArray('SELECT idiva_'.($dir == 'uscita' ? 'acquisti' : 'vendite').' AS idiva FROM an_anagrafiche WHERE idanagrafica='.prepare($idanagrafica)); $result['idiva'] = $iva[0]['idiva'] ?: setting('Iva predefinita'); -// Sconto unitario -$rss = $dbo->fetchArray('SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT idlistino_'.($dir == 'uscita' ? 'acquisti' : 'vendite').' FROM an_anagrafiche WHERE idanagrafica='.prepare($idanagrafica).')'); -if (!empty($rss)) { - $result['sconto_unitario'] = $rss[0]['prc_guadagno']; - $result['tipo_sconto'] = 'PRC'; -} - // Importazione della gestione dedicata $file = 'riga'; if (get('is_descrizione') !== null) { diff --git a/modules/fatture/row-add.php b/modules/fatture/row-add.php index fa0b1d158..b6b71721d 100644 --- a/modules/fatture/row-add.php +++ b/modules/fatture/row-add.php @@ -28,8 +28,6 @@ $options = [ 'idanagrafica' => $idanagrafica, ]; -$_SESSION['superselect']['dir'] = $dir; - // Dati di default $result = [ 'descrizione' => '', @@ -50,13 +48,6 @@ $result['idiva'] = $iva[0]['idiva'] ?: setting('Iva predefinita'); $ritenuta_acconto = $dbo->fetchOne('SELECT id_ritenuta_acconto_'.($dir == 'uscita' ? 'acquisti' : 'vendite').' AS id_ritenuta_acconto FROM an_anagrafiche WHERE idanagrafica='.prepare($idanagrafica)); $options['id_ritenuta_acconto_predefined'] = $ritenuta_acconto['id_ritenuta_acconto']; -// Sconto unitario -$rss = $dbo->fetchArray('SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT idlistino_'.($dir == 'uscita' ? 'acquisti' : 'vendite').' FROM an_anagrafiche WHERE idanagrafica='.prepare($idanagrafica).')'); -if (!empty($rss)) { - $result['sconto_unitario'] = $rss[0]['prc_guadagno']; - $result['tipo_sconto'] = 'PRC'; -} - // Importazione della gestione dedicata $file = 'riga'; if (get('is_descrizione') !== null) { diff --git a/modules/interventi/actions.php b/modules/interventi/actions.php index 3f92acc64..5985a456a 100644 --- a/modules/interventi/actions.php +++ b/modules/interventi/actions.php @@ -91,7 +91,11 @@ switch (post('op')) { $n->setTemplate($stato['id_email'], $id_record); $n->setReceivers($stato['destinatari']); - $n->send(); + if ($n->send()) { + flash()->info(tr('Notifica inviata')); + } else { + flash()->warning(tr("Errore nell'invio della notifica")); + } } flash()->info(tr('Informazioni salvate correttamente!')); @@ -515,7 +519,11 @@ switch (post('op')) { $n->setTemplate($stato['id_email'], $id_record); $n->setReceivers($stato['destinatari']); - $n->send(); + if ($n->send()) { + flash()->info(tr('Notifica inviata')); + } else { + flash()->warning(tr("Errore nell'invio della notifica")); + } } } else { flash()->error(tr('Errore durante il salvataggio della firma nel database!')); @@ -562,7 +570,11 @@ switch (post('op')) { $n->setTemplate('Notifica rimozione intervento', $id_record); $n->setReceivers($tecnico['email']); - $n->send(); + if ($n->send()) { + flash()->info(tr('Notifica inviata')); + } else { + flash()->warning(tr("Errore nell'invio della notifica")); + } } break; diff --git a/modules/interventi/add_articolo.php b/modules/interventi/add_articolo.php index 93969feaa..2bb90cbce 100644 --- a/modules/interventi/add_articolo.php +++ b/modules/interventi/add_articolo.php @@ -13,12 +13,14 @@ $can_edit_prezzi = (in_array('Amministratori', $gruppi)) || (setting('Mostra i p $idriga = get('idriga'); $idautomezzo = (get('idautomezzo') == 'undefined') ? '' : get('idautomezzo'); -$_SESSION['superselect']['idintervento'] = get('id_record'); - // Lettura idanagrafica cliente e percentuale di sconto/rincaro in base al listino $rs = $dbo->fetchArray('SELECT idanagrafica FROM in_interventi WHERE id='.prepare($id_record)); - $idanagrafica = $rs[0]['idanagrafica']; + +$_SESSION['superselect']['idintervento'] = get('id_record'); +$_SESSION['superselect']['dir'] = 'entrata'; +$_SESSION['superselect']['idanagrafica'] = $idanagrafica; + if (empty($idriga)) { $op = 'addarticolo'; $button = ' '.tr('Aggiungi'); @@ -34,12 +36,6 @@ if (empty($idriga)) { $sconto_unitario = 0; $idimpianto = 0; - - $listino = $dbo->fetchArray('SELECT prc_guadagno FROM mg_listini WHERE id = (SELECT idlistino_vendite FROM an_anagrafiche WHERE idanagrafica = '.prepare($idanagrafica).')'); - if (!empty($listino[0]['prc_guadagno'])) { - $sconto_unitario = $listino[0]['prc_guadagno']; - $tipo_sconto = 'PRC'; - } } else { $op = 'editarticolo'; $button = ' '.tr('Modifica'); diff --git a/modules/interventi/add_righe.php b/modules/interventi/add_righe.php index 7735d1aaa..32f3e0c8d 100644 --- a/modules/interventi/add_righe.php +++ b/modules/interventi/add_righe.php @@ -9,9 +9,8 @@ if (file_exists(__DIR__.'/../../../core.php')) { $idriga = filter('idriga'); //Lettura idanagrafica cliente e percentuale di sconto/rincaro in base al listino -$rs = $dbo->fetchArray('SELECT idanagrafica, (SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT idlistino_vendite FROM an_anagrafiche WHERE idanagrafica=.in_interventi.idanagrafica)) AS prc_sconto FROM in_interventi WHERE id='.prepare($id_record)); +$rs = $dbo->fetchArray('SELECT idanagrafica FROM in_interventi WHERE id='.prepare($id_record)); $idanagrafica = $rs[0]['idanagrafica']; -$prc_sconto = $rs[0]['prc_sconto']; if (empty($idriga)) { $op = 'addriga'; @@ -23,11 +22,6 @@ if (empty($idriga)) { $um = ''; $prezzo_vendita = '0'; $prezzo_acquisto = '0'; - - if (!empty($rs[0]['prc_guadagno'])) { - $sconto_unitario = $rs[0]['prc_guadagno']; - $tipo_sconto = 'PRC'; - } } else { $op = 'editriga'; $button = ' '.tr('Modifica'); diff --git a/modules/interventi/modutil.php b/modules/interventi/modutil.php index 3a2d0d8bb..26b11eb42 100644 --- a/modules/interventi/modutil.php +++ b/modules/interventi/modutil.php @@ -184,7 +184,7 @@ function get_costi_intervento($id_intervento) $rs_iva = $dbo->fetchArray('SELECT descrizione, percentuale, indetraibile FROM co_iva WHERE id='.prepare($idiva)); $tecnici = $dbo->fetchArray('SELECT - + COALESCE(SUM( ROUND(prezzo_ore_unitario_tecnico*ore, '.$decimals.') ), 0) AS manodopera_costo, @@ -194,8 +194,8 @@ function get_costi_intervento($id_intervento) COALESCE(SUM( ROUND(prezzo_ore_unitario*ore, '.$decimals.') - ROUND(sconto_unitario*ore, '.$decimals.') ), 0) AS manodopera_scontato, - - + + COALESCE(SUM( ROUND(prezzo_dirittochiamata_tecnico, '.$decimals.') ), 0) AS dirittochiamata_costo, diff --git a/modules/ordini/row-add.php b/modules/ordini/row-add.php index c677a59fb..73921c8fb 100644 --- a/modules/ordini/row-add.php +++ b/modules/ordini/row-add.php @@ -12,8 +12,6 @@ if ($module['name'] == 'Ordini cliente') { $dir = 'uscita'; } -$_SESSION['superselect']['dir'] = $dir; - // Impostazioni per la gestione $options = [ 'op' => 'addriga', @@ -37,13 +35,6 @@ $result = [ $iva = $dbo->fetchArray('SELECT idiva_'.($dir == 'uscita' ? 'acquisti' : 'vendite').' AS idiva FROM an_anagrafiche WHERE idanagrafica='.prepare($idanagrafica)); $result['idiva'] = $iva[0]['idiva'] ?: setting('Iva predefinita'); -// Sconto unitario -$rss = $dbo->fetchArray('SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT idlistino_'.($dir == 'uscita' ? 'acquisti' : 'vendite').' FROM an_anagrafiche WHERE idanagrafica='.prepare($idanagrafica).')'); -if (!empty($rss)) { - $result['sconto_unitario'] = $rss[0]['prc_guadagno']; - $result['tipo_sconto'] = 'PRC'; -} - // Importazione della gestione dedicata $file = 'riga'; if (get('is_descrizione') !== null) { diff --git a/modules/preventivi/row-add.php b/modules/preventivi/row-add.php index 79e3f30f6..e1ef2afe8 100644 --- a/modules/preventivi/row-add.php +++ b/modules/preventivi/row-add.php @@ -29,13 +29,6 @@ $result = [ $iva = $dbo->fetchArray('SELECT idiva_vendite AS idiva FROM an_anagrafiche WHERE idanagrafica='.prepare($idanagrafica)); $result['idiva'] = $iva[0]['idiva'] ?: setting('Iva predefinita'); -// Sconto unitario -$rss = $dbo->fetchArray('SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT idlistino_vendite FROM an_anagrafiche WHERE idanagrafica='.prepare($idanagrafica).')'); -if (!empty($rss)) { - $result['sconto_unitario'] = $rss[0]['prc_guadagno']; - $result['tipo_sconto'] = 'PRC'; -} - // Importazione della gestione dedicata $file = 'riga'; if (get('is_descrizione') !== null) { diff --git a/select2('#idpagamento' b/select2('#idpagamento' deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/Notifications/EmailNotification.php b/src/Notifications/EmailNotification.php index 9083559ed..3c6fdc3cf 100644 --- a/src/Notifications/EmailNotification.php +++ b/src/Notifications/EmailNotification.php @@ -5,6 +5,7 @@ namespace Notifications; use Mail; use Prints; use Uploads; +use PHPMailer\PHPMailer\Exception as PHPMailerException; class EmailNotification extends Notification { @@ -274,7 +275,7 @@ class EmailNotification extends Notification ], $this->logs); return true; - } catch (PHPMailer\PHPMailer\Exception $e) { + } catch (PHPMailerException $e) { if ($exceptions) { throw $e; }