From 4a6ac3c870c9098dbdcc56776f5aca1c8a932a40 Mon Sep 17 00:00:00 2001 From: Thomas Zilio Date: Fri, 5 Jul 2019 09:53:53 +0200 Subject: [PATCH] Fix #592 --- include/src/HookManager.php | 18 ++++++++++ modules/anagrafiche/actions.php | 7 ++-- modules/anagrafiche/src/Anagrafica.php | 14 ++++---- modules/articoli/edit.php | 28 +++++++-------- .../articoli/plugins/articoli.giacenze.php | 16 ++++----- modules/dashboard/actions.php | 3 +- modules/fatture/modutil.php | 6 ++-- plugins/importFE/list.php | 5 +++ plugins/importFE/src/FatturaElettronica.php | 11 +++--- plugins/receiptFE/actions.php | 4 +++ src/Models/Hook.php | 35 +++++++++++-------- 11 files changed, 86 insertions(+), 61 deletions(-) diff --git a/include/src/HookManager.php b/include/src/HookManager.php index 9a8631370..c00aefd88 100644 --- a/include/src/HookManager.php +++ b/include/src/HookManager.php @@ -2,9 +2,27 @@ namespace Common; +use Models\Hook; + abstract class HookManager { abstract public function manage(); abstract public function response($results); + + public static function update($results) + { + $hook = self::getHook(); + + $hook->updateCache($results); + } + + protected static function getHook() + { + $class = get_called_class(); + + $hook = Hook::where('class', $class)->first(); + + return $hook; + } } diff --git a/modules/anagrafiche/actions.php b/modules/anagrafiche/actions.php index ea18af4b2..9602258de 100644 --- a/modules/anagrafiche/actions.php +++ b/modules/anagrafiche/actions.php @@ -81,15 +81,13 @@ switch (post('op')) { $idanagrafica = $dbo->fetchOne('SELECT GROUP_CONCAT(idanagrafica) AS idanagrafica FROM an_anagrafiche WHERE codice_fiscale = '.prepare(post('codice_fiscale')).' AND idanagrafica != '.prepare($id_record))['idanagrafica']; if (!empty($idanagrafica)) { - $array = explode(',', $idanagrafica); foreach ($array as $value) { flash()->warning(tr('Attenzione: il codice fiscale _COD_ è già stato censito _LINK_', [ '_COD_' => post('codice_fiscale'), - '_LINK_' => Modules::link('Anagrafiche', $value, null, null, ''), + '_LINK_' => Modules::link('Anagrafiche', $value, null, null, ''), ])); } - } else { $anagrafica->codice_fiscale = strtoupper(post('codice_fiscale')); } @@ -106,10 +104,9 @@ switch (post('op')) { foreach ($array as $value) { flash()->warning(tr('Attenzione: la partita IVA _IVA_ è già stata censita _LINK_', [ '_IVA_' => post('piva'), - '_LINK_' => Modules::link('Anagrafiche', $value, null, null, ''), + '_LINK_' => Modules::link('Anagrafiche', $value, null, null, ''), ])); } - } else { $anagrafica->partita_iva = post('piva'); } diff --git a/modules/anagrafiche/src/Anagrafica.php b/modules/anagrafiche/src/Anagrafica.php index 19c1c12ee..038ac3af2 100644 --- a/modules/anagrafiche/src/Anagrafica.php +++ b/modules/anagrafiche/src/Anagrafica.php @@ -234,13 +234,6 @@ class Anagrafica extends Model return $this; } - protected function fixRagioneSociale() - { - if (!empty($this->cognome) || !empty($this->nome)) { - $this->ragione_sociale = $this->cognome.' '.$this->nome; - } - } - // Metodi statici /** @@ -262,5 +255,10 @@ class Anagrafica extends Model return $codice; } - + protected function fixRagioneSociale() + { + if (!empty($this->cognome) || !empty($this->nome)) { + $this->ragione_sociale = $this->cognome.' '.$this->nome; + } + } } diff --git a/modules/articoli/edit.php b/modules/articoli/edit.php index 2380de462..701009b8e 100644 --- a/modules/articoli/edit.php +++ b/modules/articoli/edit.php @@ -308,10 +308,8 @@ echo '
'; $rs_prezzo_medio = $dbo->fetchOne('SELECT ((SUM(subtotale)-SUM(sconto))/SUM(qta)) AS prezzo FROM co_righe_documenti INNER JOIN co_documenti ON co_righe_documenti.iddocumento = co_documenti.id WHERE co_documenti.idtipodocumento IN (SELECT id FROM co_tipidocumento WHERE dir = \'uscita\') AND idarticolo='.prepare($id_record)); -$rs_prezzo_min = $dbo->fetchOne('SELECT ((subtotale-sconto)/qta) AS prezzo, co_documenti.data FROM co_righe_documenti INNER JOIN co_documenti ON co_righe_documenti.iddocumento = co_documenti.id WHERE co_documenti.idtipodocumento IN (SELECT id FROM co_tipidocumento WHERE dir = \'uscita\') AND idarticolo='.prepare($id_record).' ORDER BY ((subtotale-sconto)/qta) ASC' ); -$rs_prezzo_max = $dbo->fetchOne('SELECT ((subtotale-sconto)/qta) AS prezzo, co_documenti.data FROM co_righe_documenti INNER JOIN co_documenti ON co_righe_documenti.iddocumento = co_documenti.id WHERE co_documenti.idtipodocumento IN (SELECT id FROM co_tipidocumento WHERE dir = \'uscita\') AND idarticolo='.prepare($id_record).' ORDER BY ((subtotale-sconto)/qta) DESC' ); - - +$rs_prezzo_min = $dbo->fetchOne('SELECT ((subtotale-sconto)/qta) AS prezzo, co_documenti.data FROM co_righe_documenti INNER JOIN co_documenti ON co_righe_documenti.iddocumento = co_documenti.id WHERE co_documenti.idtipodocumento IN (SELECT id FROM co_tipidocumento WHERE dir = \'uscita\') AND idarticolo='.prepare($id_record).' ORDER BY ((subtotale-sconto)/qta) ASC'); +$rs_prezzo_max = $dbo->fetchOne('SELECT ((subtotale-sconto)/qta) AS prezzo, co_documenti.data FROM co_righe_documenti INNER JOIN co_documenti ON co_righe_documenti.iddocumento = co_documenti.id WHERE co_documenti.idtipodocumento IN (SELECT id FROM co_tipidocumento WHERE dir = \'uscita\') AND idarticolo='.prepare($id_record).' ORDER BY ((subtotale-sconto)/qta) DESC'); if (count($rs_prezzo_min) > 0) { echo ' @@ -327,27 +325,26 @@ if (count($rs_prezzo_min) > 0) { '.tr('Andamento prezzo').' '; - echo ' + echo ' '.moneyFormat($rs_prezzo_min['prezzo']).' '.moneyFormat($rs_prezzo_medio['prezzo']).' '.moneyFormat($rs_prezzo_max['prezzo']).' - '.moneyFormat($rs_prezzo_max['prezzo']-$rs_prezzo_min['prezzo']).' - '.Translator::numberToLocale(((($rs_prezzo_max['prezzo']-$rs_prezzo_min['prezzo'])*100)/$rs_prezzo_medio['prezzo']), '2').' % - '.((strtotime($rs_prezzo_min['data'])==strtotime($rs_prezzo_max['data'])) ? 'N.D.' : ((strtotime($rs_prezzo_min['data']) + '.moneyFormat($rs_prezzo_max['prezzo'] - $rs_prezzo_min['prezzo']).' + '.Translator::numberToLocale(((($rs_prezzo_max['prezzo'] - $rs_prezzo_min['prezzo']) * 100) / $rs_prezzo_medio['prezzo']), '2').' % + '.((strtotime($rs_prezzo_min['data']) == strtotime($rs_prezzo_max['data'])) ? 'N.D.' : ((strtotime($rs_prezzo_min['data']) < strtotime($rs_prezzo_max['data'])) ? 'in aumento' : 'in diminuzione')).' '; - - echo ' + echo '
'; - } else { - echo ' +} else { + echo '
'.tr('Questo articolo non è mai stato acquistato').'
'; - } +} echo ' @@ -445,9 +442,8 @@ if (!empty($elementi)) {
'.tr('Eliminando questo documento si potrebbero verificare problemi nelle altre sezioni del gestionale').'.
'; -}else{ - -?> +} else { + ?> diff --git a/modules/articoli/plugins/articoli.giacenze.php b/modules/articoli/plugins/articoli.giacenze.php index ec88b4244..3cffffd41 100644 --- a/modules/articoli/plugins/articoli.giacenze.php +++ b/modules/articoli/plugins/articoli.giacenze.php @@ -22,15 +22,15 @@ $sedi = $dbo->fetchArray('(SELECT "0" AS id, "Sede legale" AS nomesede) UNION (S fetchOne("SELECT SUM(mg_movimenti.qta) AS qta, IF(mg_movimenti.idsede_azienda= 0,'Sede legale',(CONCAT_WS(' - ',an_sedi.nomesede,an_sedi.citta))) as sede FROM mg_movimenti LEFT JOIN an_sedi ON an_sedi.id = mg_movimenti.idsede_azienda WHERE mg_movimenti.idarticolo=".prepare($id_record).' AND idsede_azienda='.prepare($sede['id']).' GROUP BY idsede_azienda'); + // Lettura movimenti delle mie sedi + $qta_azienda = $dbo->fetchOne("SELECT SUM(mg_movimenti.qta) AS qta, IF(mg_movimenti.idsede_azienda= 0,'Sede legale',(CONCAT_WS(' - ',an_sedi.nomesede,an_sedi.citta))) as sede FROM mg_movimenti LEFT JOIN an_sedi ON an_sedi.id = mg_movimenti.idsede_azienda WHERE mg_movimenti.idarticolo=".prepare($id_record).' AND idsede_azienda='.prepare($sede['id']).' GROUP BY idsede_azienda'); - // Lettura eventuali movimenti ad una propria sede (nel caso di movimenti fra sedi della mia azienda) - if($sede['id'] != 0){ - $qta_controparte = $dbo->fetchOne("SELECT SUM(mg_movimenti.qta) AS qta, IF(mg_movimenti.idsede_controparte= 0,'Sede legale',(CONCAT_WS(' - ',an_sedi.nomesede,an_sedi.citta))) as sede FROM mg_movimenti LEFT JOIN an_sedi ON an_sedi.id = mg_movimenti.idsede_controparte WHERE mg_movimenti.idarticolo=".prepare($id_record)." AND idsede_controparte=".prepare($sede['id'])." GROUP BY idsede_controparte"); - }else{ - $qta_controparte = $dbo->fetchOne("SELECT SUM(mg_movimenti.qta) AS qta, IF(mg_movimenti.idsede_controparte= 0,'Sede legale',(CONCAT_WS(' - ',an_sedi.nomesede,an_sedi.citta))) as sede FROM ((( mg_movimenti LEFT JOIN an_sedi ON an_sedi.id = mg_movimenti.idsede_controparte ) LEFT JOIN dt_ddt ON mg_movimenti.idddt = dt_ddt.id ) LEFT JOIN co_documenti ON mg_movimenti.iddocumento = co_documenti.id ) WHERE mg_movimenti.idarticolo=".prepare($id_record)." AND idsede_controparte=".prepare($sede['id'])." AND IFNULL( dt_ddt.idanagrafica, co_documenti.idanagrafica ) = ".prepare(setting('Azienda predefinita'))." GROUP BY idsede_controparte"); - } + // Lettura eventuali movimenti ad una propria sede (nel caso di movimenti fra sedi della mia azienda) + if ($sede['id'] != 0) { + $qta_controparte = $dbo->fetchOne("SELECT SUM(mg_movimenti.qta) AS qta, IF(mg_movimenti.idsede_controparte= 0,'Sede legale',(CONCAT_WS(' - ',an_sedi.nomesede,an_sedi.citta))) as sede FROM mg_movimenti LEFT JOIN an_sedi ON an_sedi.id = mg_movimenti.idsede_controparte WHERE mg_movimenti.idarticolo=".prepare($id_record).' AND idsede_controparte='.prepare($sede['id']).' GROUP BY idsede_controparte'); + } else { + $qta_controparte = $dbo->fetchOne("SELECT SUM(mg_movimenti.qta) AS qta, IF(mg_movimenti.idsede_controparte= 0,'Sede legale',(CONCAT_WS(' - ',an_sedi.nomesede,an_sedi.citta))) as sede FROM ((( mg_movimenti LEFT JOIN an_sedi ON an_sedi.id = mg_movimenti.idsede_controparte ) LEFT JOIN dt_ddt ON mg_movimenti.idddt = dt_ddt.id ) LEFT JOIN co_documenti ON mg_movimenti.iddocumento = co_documenti.id ) WHERE mg_movimenti.idarticolo=".prepare($id_record).' AND idsede_controparte='.prepare($sede['id']).' AND IFNULL( dt_ddt.idanagrafica, co_documenti.idanagrafica ) = '.prepare(setting('Azienda predefinita')).' GROUP BY idsede_controparte'); + } echo ' diff --git a/modules/dashboard/actions.php b/modules/dashboard/actions.php index 855ab3c13..c596eba65 100644 --- a/modules/dashboard/actions.php +++ b/modules/dashboard/actions.php @@ -167,8 +167,7 @@ switch (get('op')) { (!empty($r['data_scadenza'] and $r['data_scadenza'] != '0000-00-00 00:00:00') ? '
'.tr('entro il: ').''.Translator::dateToLocale($r['data_scadenza']).'' : '').' '; } - } - ?> + } ?>