This commit is contained in:
Thomas Zilio 2019-07-05 09:53:53 +02:00
parent 5aa795553b
commit 4a6ac3c870
11 changed files with 86 additions and 61 deletions

View File

@ -2,9 +2,27 @@
namespace Common; namespace Common;
use Models\Hook;
abstract class HookManager abstract class HookManager
{ {
abstract public function manage(); abstract public function manage();
abstract public function response($results); 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;
}
} }

View File

@ -81,7 +81,6 @@ 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']; $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)) { if (!empty($idanagrafica)) {
$array = explode(',', $idanagrafica); $array = explode(',', $idanagrafica);
foreach ($array as $value) { foreach ($array as $value) {
flash()->warning(tr('Attenzione: il codice fiscale _COD_ è già stato censito _LINK_', [ flash()->warning(tr('Attenzione: il codice fiscale _COD_ è già stato censito _LINK_', [
@ -89,7 +88,6 @@ switch (post('op')) {
'_LINK_' => Modules::link('Anagrafiche', $value, null, null, ''), '_LINK_' => Modules::link('Anagrafiche', $value, null, null, ''),
])); ]));
} }
} else { } else {
$anagrafica->codice_fiscale = strtoupper(post('codice_fiscale')); $anagrafica->codice_fiscale = strtoupper(post('codice_fiscale'));
} }
@ -109,7 +107,6 @@ switch (post('op')) {
'_LINK_' => Modules::link('Anagrafiche', $value, null, null, ''), '_LINK_' => Modules::link('Anagrafiche', $value, null, null, ''),
])); ]));
} }
} else { } else {
$anagrafica->partita_iva = post('piva'); $anagrafica->partita_iva = post('piva');
} }

View File

@ -234,13 +234,6 @@ class Anagrafica extends Model
return $this; return $this;
} }
protected function fixRagioneSociale()
{
if (!empty($this->cognome) || !empty($this->nome)) {
$this->ragione_sociale = $this->cognome.' '.$this->nome;
}
}
// Metodi statici // Metodi statici
/** /**
@ -262,5 +255,10 @@ class Anagrafica extends Model
return $codice; return $codice;
} }
protected function fixRagioneSociale()
{
if (!empty($this->cognome) || !empty($this->nome)) {
$this->ragione_sociale = $this->cognome.' '.$this->nome;
}
}
} }

View File

@ -311,8 +311,6 @@ $rs_prezzo_medio = $dbo->fetchOne('SELECT ((SUM(subtotale)-SUM(sconto))/SUM(qta)
$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_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_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) { if (count($rs_prezzo_min) > 0) {
echo ' echo '
<div class="row"> <div class="row">
@ -337,7 +335,6 @@ if (count($rs_prezzo_min) > 0) {
<td>'.((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')).'</td> <td>'.((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')).'</td>
</tr>'; </tr>';
echo ' echo '
</table> </table>
</div> </div>
@ -446,7 +443,6 @@ if (!empty($elementi)) {
'.tr('Eliminando questo documento si potrebbero verificare problemi nelle altre sezioni del gestionale').'. '.tr('Eliminando questo documento si potrebbero verificare problemi nelle altre sezioni del gestionale').'.
</div>'; </div>';
} else { } else {
?> ?>
<a class="btn btn-danger ask" data-backto="record-list"> <a class="btn btn-danger ask" data-backto="record-list">

View File

@ -27,9 +27,9 @@ $sedi = $dbo->fetchArray('(SELECT "0" AS id, "Sede legale" AS nomesede) UNION (S
// Lettura eventuali movimenti ad una propria sede (nel caso di movimenti fra sedi della mia azienda) // Lettura eventuali movimenti ad una propria sede (nel caso di movimenti fra sedi della mia azienda)
if ($sede['id'] != 0) { 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"); $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 { } 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"); $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 ' echo '

View File

@ -167,8 +167,7 @@ switch (get('op')) {
(!empty($r['data_scadenza'] and $r['data_scadenza'] != '0000-00-00 00:00:00') ? '<br><small>'.tr('entro il: ').''.Translator::dateToLocale($r['data_scadenza']).'</small>' : '').' (!empty($r['data_scadenza'] and $r['data_scadenza'] != '0000-00-00 00:00:00') ? '<br><small>'.tr('entro il: ').''.Translator::dateToLocale($r['data_scadenza']).'</small>' : '').'
</div>'; </div>';
} }
} } ?>
?>
<script type="text/javascript"> <script type="text/javascript">
$(".request").shorten({ $(".request").shorten({
moreText: '<?php echo tr('Mostra tutto'); ?>', moreText: '<?php echo tr('Mostra tutto'); ?>',

View File

@ -128,7 +128,7 @@ function aggiorna_scadenziario($iddocumento, $totale_pagato, $data_pagamento, $i
$add_query = 'AND id='.prepare($idscadenza); $add_query = 'AND id='.prepare($idscadenza);
} }
$query = "SELECT * FROM co_scadenziario WHERE iddocumento='$iddocumento' AND ABS(pagato) < ABS(da_pagare) ".$add_query." ORDER BY scadenza ASC"; $query = "SELECT * FROM co_scadenziario WHERE iddocumento='$iddocumento' AND ABS(pagato) < ABS(da_pagare) ".$add_query.' ORDER BY scadenza ASC';
$rs = $dbo->fetchArray($query); $rs = $dbo->fetchArray($query);
$rimanente_da_pagare = abs($rs[0]['pagato']) + $totale_pagato; $rimanente_da_pagare = abs($rs[0]['pagato']) + $totale_pagato;

View File

@ -3,8 +3,13 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
use Plugins\ImportFE\Interaction; use Plugins\ImportFE\Interaction;
use Plugins\ImportFE\InvoiceHook;
$list = Interaction::listToImport(); $list = Interaction::listToImport();
// Aggiornamento cache hook
InvoiceHook::update($list);
$directory = Plugins\ImportFE\FatturaElettronica::getImportDirectory(); $directory = Plugins\ImportFE\FatturaElettronica::getImportDirectory();
if (!empty($list)) { if (!empty($list)) {

View File

@ -69,12 +69,15 @@ class FatturaElettronica
if (!isset(self::$directory)) { if (!isset(self::$directory)) {
$module = Modules::get('Fatture di acquisto'); $module = Modules::get('Fatture di acquisto');
$plugin = $module->plugins->first(function ($value, $key) { $plugins = $module->plugins;
if (!empty($plugins)) {
$plugin = $plugins->first(function ($value, $key) {
return $value->name == 'Fatturazione Elettronica'; return $value->name == 'Fatturazione Elettronica';
}); });
self::$directory = DOCROOT.'/'.$plugin->upload_directory; self::$directory = DOCROOT.'/'.$plugin->upload_directory;
} }
}
return self::$directory; return self::$directory;
} }

View File

@ -3,12 +3,16 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
use Plugins\ReceiptFE\Interaction; use Plugins\ReceiptFE\Interaction;
use Plugins\ReceiptFE\ReceiptHook;
use Plugins\ReceiptFE\Ricevuta; use Plugins\ReceiptFE\Ricevuta;
switch (filter('op')) { switch (filter('op')) {
case 'import': case 'import':
$list = Interaction::getReceiptList(); $list = Interaction::getReceiptList();
// Aggiornamento cache hook
ReceiptHook::update($list);
$results = []; $results = [];
foreach ($list as $name) { foreach ($list as $name) {
Interaction::getReceipt($name); Interaction::getReceipt($name);

View File

@ -66,6 +66,14 @@ class Hook extends Model
} else { } else {
$results = $hook->manage(); $results = $hook->manage();
$this->updateCache($results);
}
return $hook->response($results);
}
public function updateCache($results)
{
// Rimozione cache precedente // Rimozione cache precedente
$database = database(); $database = database();
$database->delete('zz_hook_cache', [ $database->delete('zz_hook_cache', [
@ -83,9 +91,6 @@ class Hook extends Model
$this->getCacheAttribute(); $this->getCacheAttribute();
} }
return $hook->response($results);
}
public function getCacheAttribute() public function getCacheAttribute()
{ {
if (!isset($this->cached)) { if (!isset($this->cached)) {