Fix #592
This commit is contained in:
parent
5aa795553b
commit
4a6ac3c870
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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');
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -308,10 +308,8 @@ echo '<div class="panel panel-primary">
|
|||
|
||||
<div class="panel-body">';
|
||||
$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) {
|
|||
<th>'.tr('Andamento prezzo').'</th>
|
||||
</tr>';
|
||||
|
||||
echo '
|
||||
echo '
|
||||
<tr>
|
||||
<td>'.moneyFormat($rs_prezzo_min['prezzo']).'</td>
|
||||
<td>'.moneyFormat($rs_prezzo_medio['prezzo']).'</td>
|
||||
<td>'.moneyFormat($rs_prezzo_max['prezzo']).'</td>
|
||||
<td>'.moneyFormat($rs_prezzo_max['prezzo']-$rs_prezzo_min['prezzo']).'</td>
|
||||
<td>'.Translator::numberToLocale(((($rs_prezzo_max['prezzo']-$rs_prezzo_min['prezzo'])*100)/$rs_prezzo_medio['prezzo']), '2').' %</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>
|
||||
<td>'.moneyFormat($rs_prezzo_max['prezzo'] - $rs_prezzo_min['prezzo']).'</td>
|
||||
<td>'.Translator::numberToLocale(((($rs_prezzo_max['prezzo'] - $rs_prezzo_min['prezzo']) * 100) / $rs_prezzo_medio['prezzo']), '2').' %</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>';
|
||||
|
||||
|
||||
echo '
|
||||
echo '
|
||||
</table>
|
||||
</div>
|
||||
</div>';
|
||||
} else {
|
||||
echo '
|
||||
} else {
|
||||
echo '
|
||||
<div class="alert alert-info">
|
||||
'.tr('Questo articolo non è mai stato acquistato').'
|
||||
</div>';
|
||||
}
|
||||
}
|
||||
|
||||
echo '
|
||||
</div>
|
||||
|
@ -445,9 +442,8 @@ if (!empty($elementi)) {
|
|||
<div class="alert alert-error">
|
||||
'.tr('Eliminando questo documento si potrebbero verificare problemi nelle altre sezioni del gestionale').'.
|
||||
</div>';
|
||||
}else{
|
||||
|
||||
?>
|
||||
} else {
|
||||
?>
|
||||
|
||||
<a class="btn btn-danger ask" data-backto="record-list">
|
||||
<i class="fa fa-trash"></i> <?php echo tr('Elimina'); ?>
|
||||
|
|
|
@ -22,15 +22,15 @@ $sedi = $dbo->fetchArray('(SELECT "0" AS id, "Sede legale" AS nomesede) UNION (S
|
|||
<tbody>
|
||||
<?php
|
||||
foreach ($sedi as $sede) {
|
||||
// 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 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 '
|
||||
<tr>
|
||||
|
|
|
@ -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>' : '').'
|
||||
</div>';
|
||||
}
|
||||
}
|
||||
?>
|
||||
} ?>
|
||||
<script type="text/javascript">
|
||||
$(".request").shorten({
|
||||
moreText: '<?php echo tr('Mostra tutto'); ?>',
|
||||
|
|
|
@ -118,17 +118,17 @@ function aggiungi_scadenza($iddocumento, $pagamento = '', $pagato = false)
|
|||
* @param $totale_pagato float Totale importo pagato
|
||||
* @param $data_pagamento datetime Data in cui avviene il pagamento (yyyy-mm-dd)
|
||||
*/
|
||||
function aggiorna_scadenziario($iddocumento, $totale_pagato, $data_pagamento, $idscadenza='')
|
||||
function aggiorna_scadenziario($iddocumento, $totale_pagato, $data_pagamento, $idscadenza = '')
|
||||
{
|
||||
$dbo = database();
|
||||
|
||||
if ($totale_pagato > 0) {
|
||||
// Lettura righe scadenziario
|
||||
if($idscadenza!=''){
|
||||
if ($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);
|
||||
$rimanente_da_pagare = abs($rs[0]['pagato']) + $totale_pagato;
|
||||
|
||||
|
|
|
@ -3,8 +3,13 @@
|
|||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
use Plugins\ImportFE\Interaction;
|
||||
use Plugins\ImportFE\InvoiceHook;
|
||||
|
||||
$list = Interaction::listToImport();
|
||||
|
||||
// Aggiornamento cache hook
|
||||
InvoiceHook::update($list);
|
||||
|
||||
$directory = Plugins\ImportFE\FatturaElettronica::getImportDirectory();
|
||||
|
||||
if (!empty($list)) {
|
||||
|
|
|
@ -69,11 +69,14 @@ class FatturaElettronica
|
|||
if (!isset(self::$directory)) {
|
||||
$module = Modules::get('Fatture di acquisto');
|
||||
|
||||
$plugin = $module->plugins->first(function ($value, $key) {
|
||||
return $value->name == 'Fatturazione Elettronica';
|
||||
});
|
||||
$plugins = $module->plugins;
|
||||
if (!empty($plugins)) {
|
||||
$plugin = $plugins->first(function ($value, $key) {
|
||||
return $value->name == 'Fatturazione Elettronica';
|
||||
});
|
||||
|
||||
self::$directory = DOCROOT.'/'.$plugin->upload_directory;
|
||||
self::$directory = DOCROOT.'/'.$plugin->upload_directory;
|
||||
}
|
||||
}
|
||||
|
||||
return self::$directory;
|
||||
|
|
|
@ -3,12 +3,16 @@
|
|||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
use Plugins\ReceiptFE\Interaction;
|
||||
use Plugins\ReceiptFE\ReceiptHook;
|
||||
use Plugins\ReceiptFE\Ricevuta;
|
||||
|
||||
switch (filter('op')) {
|
||||
case 'import':
|
||||
$list = Interaction::getReceiptList();
|
||||
|
||||
// Aggiornamento cache hook
|
||||
ReceiptHook::update($list);
|
||||
|
||||
$results = [];
|
||||
foreach ($list as $name) {
|
||||
Interaction::getReceipt($name);
|
||||
|
|
|
@ -66,26 +66,31 @@ class Hook extends Model
|
|||
} else {
|
||||
$results = $hook->manage();
|
||||
|
||||
// Rimozione cache precedente
|
||||
$database = database();
|
||||
$database->delete('zz_hook_cache', [
|
||||
'hook_id' => $this->id,
|
||||
]);
|
||||
|
||||
// Aggiunta del risultato come cache
|
||||
$cache = json_encode($results);
|
||||
$database->insert('zz_hook_cache', [
|
||||
'hook_id' => $this->id,
|
||||
'results' => $cache,
|
||||
]);
|
||||
|
||||
$this->cached = null;
|
||||
$this->getCacheAttribute();
|
||||
$this->updateCache($results);
|
||||
}
|
||||
|
||||
return $hook->response($results);
|
||||
}
|
||||
|
||||
public function updateCache($results)
|
||||
{
|
||||
// Rimozione cache precedente
|
||||
$database = database();
|
||||
$database->delete('zz_hook_cache', [
|
||||
'hook_id' => $this->id,
|
||||
]);
|
||||
|
||||
// Aggiunta del risultato come cache
|
||||
$cache = json_encode($results);
|
||||
$database->insert('zz_hook_cache', [
|
||||
'hook_id' => $this->id,
|
||||
'results' => $cache,
|
||||
]);
|
||||
|
||||
$this->cached = null;
|
||||
$this->getCacheAttribute();
|
||||
}
|
||||
|
||||
public function getCacheAttribute()
|
||||
{
|
||||
if (!isset($this->cached)) {
|
||||
|
|
Loading…
Reference in New Issue