Compare commits
13 Commits
db79299a07
...
eb9e0d9c19
Author | SHA1 | Date |
---|---|---|
MatteoPistorello | eb9e0d9c19 | |
valentina | b2a591bc30 | |
valentina | 4637a45982 | |
valentina | 948e268b5c | |
valentina | 5147403c3c | |
Beppe | ecef112a7f | |
valentina | 6c2184395b | |
FabioL | 472b6d4b96 | |
MatteoPistorello | 091d1c2b59 | |
Matteo | 69de15c397 | |
Luca | 6d9a06e450 | |
Luca | e2819ea138 | |
Luca | 62b2894463 |
|
@ -114,7 +114,10 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k
|
|||
- Corretta l'indicazione della scadenza da pagare in Fatture
|
||||
- Corretta la creazione di una nota di debito
|
||||
- Corretto il controllo su stati contratti omonimi al salvataggio
|
||||
|
||||
- Corrette le api dell'applicazione
|
||||
- Corretta la generazione di righe vuote nelle stampe delle fatture
|
||||
- Corretta la cartella di riferimento in fase di importazione delle fatture di acquisto
|
||||
- Corretti gli arrotondamenti automatici in fase di importazione fatture di acquisto
|
||||
|
||||
## 2.5.5 (2024-09-27)
|
||||
### Aggiunto (Added)
|
||||
|
|
|
@ -76,4 +76,4 @@ $assets = [
|
|||
];
|
||||
|
||||
// Configura il limite di tempo di esecuzione del file cron.php
|
||||
$php_time_limit = '';
|
||||
$php_time_limit = '';
|
||||
|
|
|
@ -254,11 +254,11 @@ if (in_array($module->getTranslation('title'), ['Ordini cliente', 'Ordini fornit
|
|||
$confermato = $result['confermato'];
|
||||
}
|
||||
echo '
|
||||
<div class="card card-info collapsable collapsed-card">
|
||||
<div class="card card-info collapsed-card">
|
||||
<div class="card-header with-border">
|
||||
<h3 class="card-title">'.tr('Informazioni aggiuntive').'</h3>
|
||||
<div class="card-tools pull-right">
|
||||
<button type="button" class="btn btn-tool" data-widget="collapse"><i class="fa fa-plus"></i></button>
|
||||
<button type="button" class="btn btn-tool" data-card-widget="collapse"><i class="fa fa-plus"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -303,7 +303,7 @@ if (in_array($module->getTranslation('title'), ['Ordini cliente', 'Ordini fornit
|
|||
input("ora_evasione").set();
|
||||
}
|
||||
});
|
||||
</script>';
|
||||
</script>';
|
||||
}
|
||||
|
||||
if (in_array($module->getTranslation('title'), ['Fatture di vendita', 'Fatture di acquisto'])) {
|
||||
|
|
|
@ -37,7 +37,6 @@ echo '
|
|||
|
||||
<div class="col-md-9">';
|
||||
|
||||
|
||||
// Articolo
|
||||
echo '
|
||||
'.($articolo->id_categoria ? '<p class="text-muted"> '.$articolo->categoria->getTranslation('title') : '').($articolo->id_sottocategoria ? ' <small><i class="fa fa-chevron-right"></i></small> '.$articolo->sottocategoria->getTranslation('title') : '').'</p>
|
||||
|
@ -67,11 +66,11 @@ echo '
|
|||
<h3 class="card-title"><i class="fa fa-archive"></i> '.tr('Giacenze').'</h3>
|
||||
</div>
|
||||
<div class="card-body">';
|
||||
if ($articolo->servizio) {
|
||||
echo'
|
||||
if ($articolo->servizio) {
|
||||
echo '
|
||||
<tr><td><p class="text-center"><i class="fa fa-info"></i> '.tr('Questo articolo è un servizio').'</td></tr>';
|
||||
} else {
|
||||
echo '
|
||||
} else {
|
||||
echo '
|
||||
<table class="table table-sm">
|
||||
<thead>
|
||||
<tr>
|
||||
|
@ -81,22 +80,22 @@ echo '
|
|||
</tr>
|
||||
</thead>
|
||||
<tbody>';
|
||||
foreach ($sedi as $sede) {
|
||||
echo '
|
||||
<tr class="'.($giacenze[$sede['id']][0]<$articolo->threshold_qta ? 'text-danger' : '').'">
|
||||
foreach ($sedi as $sede) {
|
||||
echo '
|
||||
<tr class="'.($giacenze[$sede['id']][0] < $articolo->threshold_qta ? 'text-danger' : '').'">
|
||||
<td>'.$sede['nomesede'].'</td>
|
||||
<td class="text-right">'.numberFormat($giacenze[$sede['id']][0], 'qta').' '.$articolo->um.'</td>
|
||||
'.($articolo->fattore_um_secondaria != 0 ? '<td class="text-right"><i class="fa fa-chevron-right pull-left"></i> '.$giacenze[$sede['id']][0] * $articolo->fattore_um_secondaria.' '.$articolo->um_secondaria.'</td>' : '').'
|
||||
</tr>';
|
||||
}
|
||||
echo '
|
||||
}
|
||||
echo '
|
||||
</tbody>
|
||||
</table>';
|
||||
}
|
||||
echo'
|
||||
}
|
||||
echo '
|
||||
</div>
|
||||
</div>
|
||||
</div>';
|
||||
</div>';
|
||||
// Panoramica
|
||||
echo '
|
||||
<div class="col-md-2">
|
||||
|
@ -108,24 +107,24 @@ echo '
|
|||
<table class="table table-sm">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>'. tr('Garanzia') .'</td>
|
||||
<td class="text-right">'. ($articolo->gg_garanzia ? $articolo->gg_garanzia.' giorni' : '') .'</td>
|
||||
<td>'.tr('Garanzia').'</td>
|
||||
<td class="text-right">'.($articolo->gg_garanzia ? $articolo->gg_garanzia.' giorni' : '').'</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>'. tr('Serial number') .'</td>
|
||||
<td class="text-right">'. ($articolo->abilita_serial ? '<i class="fa fa-check text-success"></i>' : '<i class="fa fa-times text-danger"></i>') .'</td>
|
||||
<td>'.tr('Serial number').'</td>
|
||||
<td class="text-right">'.($articolo->abilita_serial ? '<i class="fa fa-check text-success"></i>' : '<i class="fa fa-times text-danger"></i>').'</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>'. tr('Ubicazione') .'</td>
|
||||
<td class="text-right">'. ($articolo->ubicazione ? $articolo->ubicazione : '') .'</td>
|
||||
<td>'.tr('Ubicazione').'</td>
|
||||
<td class="text-right">'.($articolo->ubicazione ?: '').'</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>'. tr('Peso lordo') .'</td>
|
||||
<td class="text-right">'. ($articolo->peso_lordo ? numberFormat($articolo->peso_lordo, $decimals).' '.tr('kg') : '') .'</td>
|
||||
<td>'.tr('Peso lordo').'</td>
|
||||
<td class="text-right">'.($articolo->peso_lordo ? numberFormat($articolo->peso_lordo, $decimals).' '.tr('kg') : '').'</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>'. tr('Volume') .'</td>
|
||||
<td class="text-right">'. ($articolo->volume ? numberFormat($articolo->volume, $decimals).' '.tr('m³') : '') .'</td>
|
||||
<td>'.tr('Volume').'</td>
|
||||
<td class="text-right">'.($articolo->volume ? numberFormat($articolo->volume, $decimals).' '.tr('m³') : '').'</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -52,36 +52,34 @@ echo '
|
|||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="card-body">
|
||||
<div class="card-body">
|
||||
<!-- RIGA 1 -->
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
'.Modules::link('Anagrafiche', $record['idanagrafica'], null, null, 'class="pull-right"').'
|
||||
{[ "type": "select", "label": "'.tr('Cliente').'", "name": "idanagrafica", "id": "idanagrafica_c", "required": 1, "value": "$idanagrafica$", "ajax-source": "clienti" ]}
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
{[ "type": "select", "label": "'.tr('Sede').'", "name": "idsede", "value": "$idsede$", "ajax-source": "sedi", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "placeholder": "Sede legale" ]}
|
||||
</div>
|
||||
<!-- RIGA 1 -->
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
'.Modules::link('Anagrafiche', $record['idanagrafica'], null, null, 'class="pull-right"').'
|
||||
{[ "type": "select", "label": "'.tr('Cliente').'", "name": "idanagrafica", "id": "idanagrafica_c", "required": 1, "value": "$idanagrafica$", "ajax-source": "clienti" ]}
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
{[ "type": "select", "label": "'.tr('Sede').'", "name": "idsede", "value": "$idsede$", "ajax-source": "sedi", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "placeholder": "Sede legale" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
'.Plugins::link('Referenti', $record['idanagrafica'], null, null, 'class="pull-right"').'
|
||||
{[ "type": "select", "label": "'.tr('Referente').'", "name": "idreferente", "value": "$idreferente$", "ajax-source": "referenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].',"idsede_destinazione": '.$record['idsede'].'} ]}
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
'.Plugins::link('Referenti', $record['idanagrafica'], null, null, 'class="pull-right"').'
|
||||
{[ "type": "select", "label": "'.tr('Referente').'", "name": "idreferente", "value": "$idreferente$", "ajax-source": "referenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].',"idsede_destinazione": '.$record['idsede'].'} ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">';
|
||||
<div class="col-md-3">';
|
||||
if ($record['idagente'] != 0) {
|
||||
echo Modules::link('Anagrafiche', $record['idagente'], null, null, 'class="pull-right"');
|
||||
}
|
||||
?>
|
||||
{[ "type": "select", "label": "<?php echo tr('Agente'); ?>", "name": "idagente", "ajax-source": "agenti", "select-options": {"idanagrafica": <?php echo $record['idanagrafica']; ?>}, "value": "$idagente$" ]}
|
||||
</div>
|
||||
|
||||
echo '
|
||||
{[ "type": "select", "label": "'.tr('Agente').'", "name": "idagente", "ajax-source": "agenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "value": "$idagente$" ]}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>';
|
||||
?>
|
||||
<div class="card card-primary">
|
||||
<div class="card-header">
|
||||
<h3 class="card-title"><?php echo tr('Intestazione'); ?></h3>
|
||||
|
|
|
@ -126,7 +126,7 @@ echo '
|
|||
<!-- DATI INTESTAZIONE -->
|
||||
<div class="card card-primary collapsable">
|
||||
<div class="card-header with-border">
|
||||
<h3 class="card-title">'.($dir == 'entrata' ? tr('Dati cliente') : tr('Dati fornitore')).'</h3>
|
||||
<h3 class="card-title">'.($dir == 'entrata' ? tr('Dati destinatario') : tr('Dati mittente')).'</h3>
|
||||
<div class="card-tools pull-right">
|
||||
<button type="button" class="btn btn-tool" data-card-widget="collapse">
|
||||
<i class="fa fa-minus"></i>
|
||||
|
@ -134,32 +134,31 @@ echo '
|
|||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="card-body">
|
||||
<div class="card-body">
|
||||
<!-- RIGA 1 -->
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
'.Modules::link('Anagrafiche', $record['idanagrafica'], null, null, 'class="pull-right"').'
|
||||
{[ "type": "select", "label": "'.($dir == 'uscita' ? tr('Mittente') : tr('Destinatario')).'", "name": "idanagrafica", "required": 1, "value": "$idanagrafica$", "ajax-source": "clienti_fornitori" ]}
|
||||
</div>';
|
||||
<!-- RIGA 1 -->
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
'.Modules::link('Anagrafiche', $record['idanagrafica'], null, null, 'class="pull-right"').'
|
||||
{[ "type": "select", "label": "'.($dir == 'uscita' ? tr('Mittente') : tr('Destinatario')).'", "name": "idanagrafica", "required": 1, "value": "$idanagrafica$", "ajax-source": "clienti_fornitori" ]}
|
||||
</div>';
|
||||
if ($dir == 'entrata') {
|
||||
echo '
|
||||
<div class="col-md-3">';
|
||||
<div class="col-md-3">';
|
||||
if ($record['idagente'] != 0) {
|
||||
echo Modules::link('Anagrafiche', $record['idagente'], null, null, 'class="pull-right"');
|
||||
}
|
||||
echo '
|
||||
{[ "type": "select", "label": "'.tr('Agente').'", "name": "idagente", "ajax-source": "agenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "value": "$idagente$" ]}
|
||||
</div>';
|
||||
{[ "type": "select", "label": "'.tr('Agente').'", "name": "idagente", "ajax-source": "agenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "value": "$idagente$" ]}
|
||||
</div>';
|
||||
}
|
||||
echo '
|
||||
<div class="col-md-3">';
|
||||
<div class="col-md-3">';
|
||||
if (!empty($record['idreferente'])) {
|
||||
echo Plugins::link('Referenti', $record['idanagrafica'], null, null, 'class="pull-right"');
|
||||
}
|
||||
echo '
|
||||
{[ "type": "select", "label": "'.tr('Referente').'", "name": "idreferente", "value": "$idreferente$", "ajax-source": "referenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].', "idsede_destinazione": '.$record['idsede_destinazione'].'} ]}
|
||||
</div>
|
||||
{[ "type": "select", "label": "'.tr('Referente').'", "name": "idreferente", "value": "$idreferente$", "ajax-source": "referenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].', "idsede_destinazione": '.$record['idsede_destinazione'].'} ]}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -882,7 +882,6 @@ switch ($op) {
|
|||
$imponibile = 0;
|
||||
$sconto = 0;
|
||||
|
||||
|
||||
$data = date('Y-m-d');
|
||||
$anagrafica = $fattura->anagrafica;
|
||||
|
||||
|
|
|
@ -19,8 +19,8 @@
|
|||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
use Models\Module;
|
||||
use Modules\Fatture\Tipo;
|
||||
use Modules\Fatture\Fattura;
|
||||
use Modules\Fatture\Tipo;
|
||||
|
||||
$fattura = Fattura::find($id_record);
|
||||
|
||||
|
|
|
@ -90,48 +90,46 @@ echo '
|
|||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
<div class="card-body">
|
||||
<!-- RIGA 1 -->
|
||||
<div class="row">
|
||||
<div class="col-md-3">';
|
||||
<!-- RIGA 1 -->
|
||||
<div class="row">
|
||||
<div class="col-md-3">';
|
||||
echo Modules::link('Anagrafiche', $record['idanagrafica'], null, null, 'class="pull-right"');
|
||||
|
||||
if ($dir == 'entrata') {
|
||||
?>
|
||||
{[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "name": "idanagrafica", "required": 1, "value": "$idanagrafica$", "ajax-source": "clienti" ]}
|
||||
{[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "name": "idanagrafica", "required": 1, "value": "$idanagrafica$", "ajax-source": "clienti" ]}
|
||||
<?php
|
||||
} else {
|
||||
?>
|
||||
{[ "type": "select", "label": "<?php echo tr('Fornitore'); ?>", "name": "idanagrafica", "required": 1, "ajax-source": "fornitori", "value": "$idanagrafica$" ]}
|
||||
{[ "type": "select", "label": "<?php echo tr('Fornitore'); ?>", "name": "idanagrafica", "required": 1, "ajax-source": "fornitori", "value": "$idanagrafica$" ]}
|
||||
<?php
|
||||
}
|
||||
echo '
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">';
|
||||
<div class="col-md-3">';
|
||||
if (!empty($record['idreferente'])) {
|
||||
echo Plugins::link('Referenti', $record['idanagrafica'], null, null, 'class="pull-right"');
|
||||
}
|
||||
echo '
|
||||
{[ "type": "select", "label": "'.tr('Referente').'", "name": "idreferente", "value": "$idreferente$", "ajax-source": "referenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].', "idsede_destinazione": '.$record['idsede'].'} ]}
|
||||
</div>
|
||||
{[ "type": "select", "label": "'.tr('Referente').'", "name": "idreferente", "value": "$idreferente$", "ajax-source": "referenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].', "idsede_destinazione": '.$record['idsede'].'} ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "select", "label": "'.tr('Sede').'", "name": "idsede", "required": 1, "ajax-source": "sedi", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "value": "'.$record['idsede'].'" ]}
|
||||
</div>';
|
||||
<div class="col-md-3">
|
||||
{[ "type": "select", "label": "'.tr('Sede').'", "name": "idsede", "required": 1, "ajax-source": "sedi", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "value": "'.$record['idsede'].'" ]}
|
||||
</div>';
|
||||
|
||||
if ($dir == 'entrata') {
|
||||
echo '
|
||||
<div class="col-md-3">';
|
||||
<div class="col-md-3">';
|
||||
if ($record['idagente'] != 0) {
|
||||
echo Modules::link('Anagrafiche', $record['idagente'], null, null, 'class="pull-right"');
|
||||
}
|
||||
echo '
|
||||
{[ "type": "select", "label": "'.tr('Agente').'", "name": "idagente", "ajax-source": "agenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "value": "$idagente$" ]}
|
||||
</div>';
|
||||
{[ "type": "select", "label": "'.tr('Agente').'", "name": "idagente", "ajax-source": "agenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "value": "$idagente$" ]}
|
||||
</div>';
|
||||
}
|
||||
echo '
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>';
|
||||
|
|
|
@ -57,34 +57,33 @@ if (count($preventivo->revisioni) > 1) {
|
|||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="card-body">
|
||||
<div class="card-body">
|
||||
<!-- RIGA 1 -->
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
'.Modules::link('Anagrafiche', $record['idanagrafica'], null, null, 'class="pull-right"').'
|
||||
{[ "type": "select", "label": "'.tr('Cliente').'", "name": "idanagrafica", "required": 1, "value": "$idanagrafica$", "ajax-source": "clienti" ]}
|
||||
</div>
|
||||
<!-- RIGA 1 -->
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
'.Modules::link('Anagrafiche', $record['idanagrafica'], null, null, 'class="pull-right"').'
|
||||
{[ "type": "select", "label": "'.tr('Cliente').'", "name": "idanagrafica", "required": 1, "value": "$idanagrafica$", "ajax-source": "clienti" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "select", "label": "'.tr('Sede').'", "name": "idsede", "value": "$idsede$", "ajax-source": "sedi", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "placeholder": "Sede legale" ]}
|
||||
</div>';
|
||||
<div class="col-md-3">
|
||||
{[ "type": "select", "label": "'.tr('Sede').'", "name": "idsede", "value": "$idsede$", "ajax-source": "sedi", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "placeholder": "Sede legale" ]}
|
||||
</div>';
|
||||
|
||||
if (!empty($record['idreferente'])) {
|
||||
echo Plugins::link('Referenti', $record['idanagrafica'], null, null, 'class="pull-right"');
|
||||
}
|
||||
echo '
|
||||
<div class="col-md-3">
|
||||
{[ "type": "select", "label": "'.tr('Referente').'", "name": "idreferente", "value": "$idreferente$", "ajax-source": "referenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].',"idsede_destinazione": '.$record['idsede'].'} ]}
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
{[ "type": "select", "label": "'.tr('Referente').'", "name": "idreferente", "value": "$idreferente$", "ajax-source": "referenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].',"idsede_destinazione": '.$record['idsede'].'} ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">';
|
||||
<div class="col-md-3">';
|
||||
if ($record['idagente'] != 0) {
|
||||
echo Modules::link('Anagrafiche', $record['idagente'], null, null, 'class="pull-right"');
|
||||
}
|
||||
echo '
|
||||
{[ "type": "select", "label": "'.tr('Agente').'", "name": "idagente", "ajax-source": "agenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "value": "$idagente$" ]}
|
||||
</div>
|
||||
{[ "type": "select", "label": "'.tr('Agente').'", "name": "idagente", "ajax-source": "agenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "value": "$idagente$" ]}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -73,7 +73,6 @@ switch ($resource) {
|
|||
if (!empty($search)) {
|
||||
$search_fields[] = '`zz_segments_lang`.`title` LIKE '.prepare('%'.$search.'%');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
break;
|
||||
|
|
|
@ -24,7 +24,7 @@ use Modules\Contratti\Stato;
|
|||
switch (post('op')) {
|
||||
case 'update':
|
||||
$descrizione = post('descrizione');
|
||||
$stato_new = Stato::where('name', $descrizione)->where('id','!=', $id_record)->first();
|
||||
$stato_new = Stato::where('name', $descrizione)->where('id', '!=', $id_record)->first();
|
||||
|
||||
if ($stato_new) {
|
||||
flash()->error(tr('Questo nome è già stato utilizzato per un altro stato dei contratti.'));
|
||||
|
|
|
@ -82,15 +82,13 @@ class FatturaElettronica
|
|||
|
||||
public static function getImportDirectory()
|
||||
{
|
||||
if (!isset(self::$directory)) {
|
||||
$module = Module::where('name', 'Fatture di vendita')->first();
|
||||
$module = Module::where('name', 'Fatture di acquisto')->first();
|
||||
|
||||
$plugins = $module->plugins;
|
||||
if (!empty($plugins)) {
|
||||
$plugin = $plugins->first(fn ($value, $key) => $value->getTranslation('title') == 'Fatturazione Elettronica');
|
||||
$plugins = $module->plugins;
|
||||
if (!empty($plugins)) {
|
||||
$plugin = $plugins->first(fn ($value, $key) => $value->getTranslation('title') == 'Fatturazione Elettronica');
|
||||
|
||||
self::$directory = base_dir().'/'.$plugin->upload_directory;
|
||||
}
|
||||
self::$directory = base_dir().'/'.$plugin->upload_directory;
|
||||
}
|
||||
|
||||
return self::$directory;
|
||||
|
|
|
@ -152,7 +152,7 @@ class FatturaOrdinaria extends FatturaElettronica
|
|||
// Calcolo la differenza IVA per aliquota, per creare una riga relativa all'arrotondamento IVA
|
||||
foreach ($riepiloghi_raggruppati as $riepilogo) {
|
||||
$valore = 0;
|
||||
$differenza_iva = round((float) $riepilogo['Imposta'] - $totale_imposta[$riepilogo['AliquotaIVA']], 2);
|
||||
$differenza_iva = round((float) $riepilogo['Imposta'] - round($totale_imposta[$riepilogo['AliquotaIVA']], 2), 2);
|
||||
|
||||
if ($differenza_iva) {
|
||||
$valore = $differenza_iva * 100 / ($riepilogo['AliquotaIVA'] ?: 1);
|
||||
|
@ -491,9 +491,9 @@ class FatturaOrdinaria extends FatturaElettronica
|
|||
$iva_arrotondamento = database()->fetchOne('SELECT * FROM `co_iva` WHERE `percentuale`= 0 AND `deleted_at` IS NULL LIMIT 1');
|
||||
if ($diff || $differenza_iva) {
|
||||
if ($diff && $differenza_iva) {
|
||||
$diff = abs($diff + $differenza_iva);
|
||||
$diff = ($diff + $differenza_iva) * '-1';
|
||||
} elseif ($diff == 0 && $differenza_iva) {
|
||||
$diff = $differenza_iva;
|
||||
$diff = $differenza_iva * '-1';
|
||||
} else {
|
||||
$diff = -$diff;
|
||||
}
|
||||
|
|
|
@ -188,7 +188,7 @@ abstract class AppResource extends Resource implements RetrieveInterface, Create
|
|||
protected function mapModifiedRecords($records)
|
||||
{
|
||||
if ($records instanceof Collection) {
|
||||
return $records->mapToGroups(fn ($item, $key) => [$item['id'] => $item])->toArray();
|
||||
return $records->mapWithKeys(fn ($item) => [$item['id'] => $item])->toArray();
|
||||
}
|
||||
|
||||
return array_reduce($records, function ($accumulator, $item) {
|
||||
|
|
|
@ -58,12 +58,12 @@ class Articoli extends AppResource
|
|||
`categoria_lang`.`title` AS categoria,
|
||||
`sottocategoria_lang`.`title` AS sottocategoria
|
||||
FROM
|
||||
`mg_articoli`
|
||||
LEFT JOIN `mg_articoli_lang` ON (`mg_articoli`.`id` = `mg_articoli_lang`.`id_record` AND `mg_articoli_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).')
|
||||
LEFT JOIN `mg_categorie` as categoria ON (`mg_articoli`.`id_categoria` = `mg_categorie`.`id`)
|
||||
LEFT JOIN `mg_categorie_lang` as categoria_lang ON (`mg_categorie`.`id` = `mg_categorie_lang`.`id_record` AND `mg_categorie_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).')
|
||||
LEFT JOIN `mg_categorie` as sottocategoria ON (`mg_articoli`.`id_sottocategoria` = `mg_categorie`.`id`)
|
||||
LEFT JOIN `mg_categorie_lang` as sottocategoria_lang ON (`mg_categorie`.`id` = `mg_categorie_lang`.`id_record` AND `mg_categorie_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).')
|
||||
`mg_articoli`
|
||||
LEFT JOIN `mg_articoli_lang` ON (`mg_articoli`.`id` = `mg_articoli_lang`.`id_record` AND `mg_articoli_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).')
|
||||
LEFT JOIN `mg_categorie` as categoria ON (`mg_articoli`.`id_categoria` = `categoria`.`id`)
|
||||
LEFT JOIN `mg_categorie_lang` as categoria_lang ON (`categoria`.`id` = `categoria_lang`.`id_record` AND `categoria_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).')
|
||||
LEFT JOIN `mg_categorie` as sottocategoria ON (`mg_articoli`.`id_sottocategoria` = `sottocategoria`.`id`)
|
||||
LEFT JOIN `mg_categorie_lang` as sottocategoria_lang ON (`sottocategoria`.`id` = `sottocategoria_lang`.`id_record` AND `sottocategoria_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).')
|
||||
WHERE
|
||||
`mg_articoli`.`id` = '.prepare($id);
|
||||
|
||||
|
|
|
@ -95,11 +95,7 @@ class Checklists extends AppResource
|
|||
->select('zz_operations.id_record')
|
||||
->distinct()
|
||||
->join('zz_modules', 'zz_modules.id', '=', 'zz_operations.id_module')
|
||||
->leftJoin('zz_modules_lang', function ($join) {
|
||||
$join->on('zz_modules.id', '=', 'zz_modules_lang.id_record')
|
||||
->where('zz_modules_lang.id_lang', '=', \Models\Locale::getDefault()->id);
|
||||
})
|
||||
->where('zz_modules_lang.name', '=', 'Interventi')
|
||||
->where('zz_modules.name', '=', 'Interventi')
|
||||
->where('zz_operations.op', '=', 'delete_check')
|
||||
->where('zz_operations.created_at', '>', $last_sync_at)
|
||||
->pluck('id_record')
|
||||
|
|
|
@ -34,11 +34,7 @@ class Impianti extends AppResource
|
|||
->select('zz_operations.id_record')
|
||||
->distinct()
|
||||
->join('zz_modules', 'zz_modules.id', '=', 'zz_operations.id_module')
|
||||
->leftJoin('zz_modules_lang', function ($join) {
|
||||
$join->on('zz_modules.id', '=', 'zz_modules_lang.id_record')
|
||||
->where('zz_modules_lang.id_lang', '=', \Models\Locale::getDefault()->id);
|
||||
})
|
||||
->where('zz_modules_lang.name', '=', 'Impianti')
|
||||
->where('zz_modules.name', '=', 'Impianti')
|
||||
->where('zz_operations.op', '=', 'delete')
|
||||
->whereNotNull('zz_operations.options')
|
||||
->where('zz_operations.created_at', '>', $last_sync_at)
|
||||
|
@ -77,28 +73,39 @@ class Impianti extends AppResource
|
|||
{
|
||||
// Gestione della visualizzazione dei dettagli del record
|
||||
$query = 'SELECT
|
||||
`my_impianti`.`id`,
|
||||
`my_impianti`.`idanagrafica` AS id_cliente,
|
||||
`my_impianti`.`idsede` AS id_sede,
|
||||
`my_impianti`.`matricola`,
|
||||
`my_impianti`.`nome`,
|
||||
`my_impianti`.`descrizione`,
|
||||
`my_impianti`.`data` AS data_installazione,
|
||||
`my_impianti`.`proprietario`,
|
||||
`my_impianti`.`ubicazione`,
|
||||
`my_impianti`.`palazzo`,
|
||||
`my_impianti`.`scala`,
|
||||
`my_impianti`.`piano`,
|
||||
`my_impianti`.`interno`,
|
||||
`my_impianti`.`occupante`,
|
||||
`categorie_lang`.`title` AS categoria
|
||||
`impianti`.`id`,
|
||||
`impianti`.`idanagrafica` AS id_cliente,
|
||||
`impianti`.`idsede` AS id_sede,
|
||||
`impianti`.`matricola`,
|
||||
`impianti`.`nome`,
|
||||
`impianti`.`descrizione`,
|
||||
`impianti`.`data` AS data_installazione,
|
||||
`impianti`.`proprietario`,
|
||||
`impianti`.`ubicazione`,
|
||||
`impianti`.`palazzo`,
|
||||
`impianti`.`scala`,
|
||||
`impianti`.`piano`,
|
||||
`impianti`.`interno`,
|
||||
`impianti`.`occupante`,
|
||||
`categorie_lang`.`title` AS categoria,
|
||||
`sottocategorie_lang`.`title` AS sottocategoria
|
||||
FROM `my_impianti`
|
||||
LEFT JOIN `my_impianti_categorie` ON `my_impianti_categorie`.`id` = `my_impianti`.`id_categoria`
|
||||
LEFT JOIN `my_impianti_categorie_lang` as categorie_lang ON (`categorie_lang`.`id_record` = `my_impianti_categorie`.`id` AND `categorie_lang`.|lang|)
|
||||
LEFT JOIN `my_impianti_categorie` as sottocategorie ON (`sottocategorie`.`id` = `my_impianti_categorie`.`id_sottocategoria`)
|
||||
LEFT JOIN `my_impianti_categorie_lang` as sottocategorie_lang ON (`sottocategorie_lang`.`id_record` = `sottocategorie`.`id` AND `sottocategorie_lang`.|lang|)
|
||||
WHERE `my_impianti`.`id` = '.prepare($id);
|
||||
FROM
|
||||
my_impianti AS impianti
|
||||
LEFT JOIN
|
||||
my_impianti_categorie AS categorie
|
||||
ON categorie.id = impianti.id_categoria
|
||||
LEFT JOIN
|
||||
my_impianti_categorie_lang AS categorie_lang
|
||||
ON categorie_lang.id_record = categorie.id
|
||||
AND categorie_lang.id_lang = '.prepare(\Models\Locale::getDefault()->id).'
|
||||
LEFT JOIN
|
||||
my_impianti_categorie AS sottocategorie
|
||||
ON sottocategorie.id = impianti.id_sottocategoria
|
||||
LEFT JOIN
|
||||
my_impianti_categorie_lang AS sottocategorie_lang
|
||||
ON sottocategorie_lang.id_record = sottocategorie.id
|
||||
AND sottocategorie_lang.id_lang = '.prepare(\Models\Locale::getDefault()->id).'
|
||||
WHERE `impianti`.`id` = '.prepare($id);
|
||||
|
||||
$record = database()->fetchOne($query);
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ class Impostazioni extends AppResource
|
|||
|
||||
public function getModifiedRecords($last_sync_at)
|
||||
{
|
||||
$query = 'SELECT `zz_settings`.`id`, `zz_settings`.`updated_at` FROM `zz_settings` LEFT JOIN `zz_settings_lang` ON (`zz_settings`.`id` = `zz_settings_lang`.`id_record` AND `zz_settings_lang`.`id_lang` = '.prepare(\App::getLang()).") WHERE `sezione` = 'Applicazione'";
|
||||
$query = 'SELECT `zz_settings`.`id`, `zz_settings`.`updated_at` FROM `zz_settings` LEFT JOIN `zz_settings_lang` ON (`zz_settings`.`id` = `zz_settings_lang`.`id_record` AND `zz_settings_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).") WHERE `sezione` = 'Applicazione'";
|
||||
|
||||
// Aggiunta delle impostazioni esterne alla sezione Applicazione
|
||||
$impostazioni_esterne = $this->getImpostazioniEsterne();
|
||||
|
|
|
@ -57,7 +57,7 @@ class Preventivi extends AppResource implements RetrieveInterface
|
|||
INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `co_preventivi`.`idanagrafica`
|
||||
INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
|
||||
INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` = `an_tipianagrafiche`.`id`
|
||||
INNER JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.\App::getLang().")
|
||||
INNER JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = '.\Models\Locale::getDefault()->id.")
|
||||
WHERE
|
||||
`an_tipianagrafiche_lang`.`title` = 'Cliente' AND `co_statipreventivi`.`is_pianificabile` = 1 AND `an_anagrafiche`.`deleted_at` IS NULL";
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ class Referenti extends AppResource implements RetrieveInterface
|
|||
INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `an_referenti`.`idanagrafica`
|
||||
INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
|
||||
INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` = `an_tipianagrafiche`.`id`
|
||||
LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche_lang`.`id_record` = `an_tipianagrafiche`.`id` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id)."
|
||||
LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche_lang`.`id_record` = `an_tipianagrafiche`.`id` AND `an_tipianagrafiche_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).")
|
||||
WHERE
|
||||
`an_tipianagrafiche_lang`.`title` = 'Cliente' AND (an_anagrafiche.deleted_at IS NULL OR an_anagrafiche.idanagrafica IN(SELECT in_interventi.idanagrafica FROM in_interventi))";
|
||||
|
||||
|
|
|
@ -35,11 +35,7 @@ class SessioniInterventi extends AppResource
|
|||
->select('zz_operations.id_record')
|
||||
->distinct()
|
||||
->join('zz_modules', 'zz_modules.id', '=', 'zz_operations.id_module')
|
||||
->leftJoin('zz_modules_lang', function ($join) {
|
||||
$join->on('zz_modules.id', '=', 'zz_modules_lang.id_record')
|
||||
->where('zz_modules_lang.id_lang', '=', \Models\Locale::getDefault()->id);
|
||||
})
|
||||
->where('zz_modules_lang.name', '=', 'Interventi')
|
||||
->where('zz_modules.name', '=', 'Interventi')
|
||||
->where('zz_operations.op', '=', 'delete_sessione')
|
||||
->whereNotNull('zz_operations.options')
|
||||
->where('zz_operations.created_at', '>', $last_sync_at)
|
||||
|
|
|
@ -45,7 +45,7 @@ class WidgetManager implements ManagerInterface
|
|||
$database = database();
|
||||
|
||||
// Widget richiesto
|
||||
$widget = $database->fetchArray('SELECT * FROM `zz_widgets` LEFT JOIN `zz_widgets_lang` ON (`zz_widgets`.`id` = `zz_widgets_lang`.`id_record` AND `zz_widgets_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') WHERE `zz_widgets`.`id` = '.prepare($options['id']))[0];
|
||||
$widget = $database->fetchArray('SELECT `zz_widgets`.*, `zz_widgets_lang`.`text` FROM `zz_widgets` LEFT JOIN `zz_widgets_lang` ON (`zz_widgets`.`id` = `zz_widgets_lang`.`id_record` AND `zz_widgets_lang`.`id_lang` = '.prepare(\Models\Locale::getDefault()->id).') WHERE `zz_widgets`.`id` = '.prepare($options['id']))[0];
|
||||
|
||||
$result = ' ';
|
||||
|
||||
|
|
|
@ -54,7 +54,7 @@ class HTMLWrapper implements WrapperInterface
|
|||
}
|
||||
|
||||
$result .= '
|
||||
<div class="input-group">';
|
||||
<div class="'.($values['type'] == 'ckeditor' ? '' : 'input-group').'">';
|
||||
|
||||
if (!empty($values['icon-before']) || !empty($values['icon-after']) || !empty($values['validation'])) {
|
||||
$result .= '
|
||||
|
|
|
@ -29,9 +29,9 @@ class Autofill
|
|||
protected $space = 0;
|
||||
protected $current = 0;
|
||||
|
||||
protected $max_rows = 20;
|
||||
protected $max_rows_first_page = 20;
|
||||
protected $max_additional = 15;
|
||||
protected $max_rows = 26;
|
||||
protected $max_rows_first_page = 38;
|
||||
protected $max_additional = 0;
|
||||
|
||||
public function __construct(protected $column_number, protected $char_number = 70)
|
||||
{
|
||||
|
@ -41,32 +41,25 @@ class Autofill
|
|||
{
|
||||
$this->max_rows = $rows;
|
||||
|
||||
$this->max_additional = $additional ?? floor($this->max_rows - $this->max_rows / 4);
|
||||
$this->max_rows_first_page = $first_page ?? $rows;
|
||||
$this->max_additional = $additional ?: $this->max_rows;
|
||||
$this->max_rows_first_page = $first_page ?? $this->max_rows_first_page;
|
||||
}
|
||||
|
||||
public function count($text, $small = false)
|
||||
{
|
||||
$count = ceil(strlen((string) $text) / $this->char_number);
|
||||
$count += substr_count((string) $text, PHP_EOL);
|
||||
$count += substr_count((string) $text, '<br>');
|
||||
|
||||
// Ricerca dei caratteri a capo
|
||||
preg_match_all("/(\r\n|\r|\n)/", (string) $text, $matches);
|
||||
$count += count($matches[0]);
|
||||
|
||||
if ($small) {
|
||||
$count = $count / 3;
|
||||
}
|
||||
$count = ($count == 1 ? $count : $count / 1.538461538);
|
||||
|
||||
$this->set($count);
|
||||
}
|
||||
|
||||
public function set($count)
|
||||
{
|
||||
if ($count > $this->current) {
|
||||
$this->current = $count;
|
||||
}
|
||||
$this->current += $count;
|
||||
}
|
||||
|
||||
public function next()
|
||||
|
@ -77,11 +70,20 @@ class Autofill
|
|||
|
||||
public function getAdditionalNumber()
|
||||
{
|
||||
$page = ceil($this->space / $this->max_rows_first_page);
|
||||
if ($page > 1) {
|
||||
$rows = floor($this->space) % $this->max_rows;
|
||||
if ($this->space <= $this->max_rows) {
|
||||
$page = 1;
|
||||
} else {
|
||||
$rows = floor($this->space) % $this->max_rows_first_page;
|
||||
if ($this->space <= $this->max_rows_first_page) {
|
||||
$page = 2;
|
||||
} else {
|
||||
$page = ceil(1 + (($this->space - $this->max_rows_first_page) / $this->max_rows));
|
||||
}
|
||||
}
|
||||
|
||||
if ($page > 1) {
|
||||
$rows = $this->space - $this->max_rows_first_page * ($page - 1);
|
||||
} else {
|
||||
$rows = floor($this->space);
|
||||
}
|
||||
|
||||
$number = $this->max_additional - $rows;
|
||||
|
|
|
@ -121,7 +121,7 @@ class Generator
|
|||
$values = array_column($replaces, 'regex');
|
||||
|
||||
$pattern = preg_replace('/#{1,}/', '#', (string) $pattern);
|
||||
$pattern = str_replace('\\#', '#', preg_quote($pattern, '/'));
|
||||
$pattern = str_replace('\\#', '#', preg_quote((string) $pattern, '/'));
|
||||
$pattern = str_replace(array_keys($replaces), array_values($values), $pattern);
|
||||
|
||||
// Individuazione dei valori
|
||||
|
|
|
@ -25,9 +25,9 @@ $v_totale = [];
|
|||
$prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA');
|
||||
|
||||
// Creazione righe fantasma
|
||||
$autofill = new Util\Autofill(6, 40);
|
||||
$rows_per_page = $rows_per_page ?: ($fattura_accompagnatoria ? 13 : 25);
|
||||
$autofill->setRows($rows_per_page);
|
||||
$autofill = new Util\Autofill(6, 70);
|
||||
$rows_per_page = $rows_per_page ?: ($fattura_accompagnatoria ? 13 : 26);
|
||||
$autofill->setRows($rows_per_page, 0);
|
||||
|
||||
// Intestazione tabella per righe
|
||||
echo "
|
||||
|
@ -52,13 +52,6 @@ if (setting('Raggruppa attività per tipologia in fattura')) {
|
|||
$righe = $documento->getRighe();
|
||||
}
|
||||
|
||||
if (count($righe) > 25) {
|
||||
if (!empty($options['last-page-footer'])) {
|
||||
$rows_per_page += 5;
|
||||
$autofill->setRows($rows_per_page);
|
||||
}
|
||||
}
|
||||
|
||||
$num = 0;
|
||||
|
||||
if (!setting('Visualizza riferimento su ogni riga in stampa')) {
|
||||
|
|
|
@ -41,19 +41,19 @@ $query = Modules::replaceAdditionals($structure->id, $query);
|
|||
|
||||
// Modifiche alla query principale
|
||||
$query = preg_replace('/FROM[\s\t\n]+`mg_articoli`/s', 'FROM `mg_articoli` LEFT JOIN (SELECT `idarticolo`, SUM(`qta`) AS qta_totale FROM `mg_movimenti` WHERE `data` <='.prepare($period_end).' GROUP BY `idarticolo`) movimenti ON `movimenti`.`idarticolo`=`mg_articoli`.`id` ', (string) $query);
|
||||
$query = preg_replace('/^SELECT/', 'SELECT `movimenti`.`qta_totale`, ', $query);
|
||||
$query = preg_replace('/^SELECT/', 'SELECT `movimenti`.`qta_totale`, ', (string) $query);
|
||||
|
||||
if (post('acquisto') == 'standard') {
|
||||
$query = preg_replace('/^SELECT/', 'SELECT `mg_articoli`.`prezzo_acquisto` AS acquisto, ', $query);
|
||||
$query = preg_replace('/^SELECT/', 'SELECT `mg_articoli`.`prezzo_acquisto` AS acquisto, ', (string) $query);
|
||||
$text = 'al prezzo presente nella scheda articolo';
|
||||
} elseif (post('acquisto') == 'first') {
|
||||
$query = preg_replace('/^SELECT/', 'SELECT (SELECT (`prezzo_unitario`-`sconto_unitario`) AS acquisto FROM `co_righe_documenti` INNER JOIN `co_documenti` ON `co_righe_documenti`.`iddocumento`=`co_documenti`.`id` INNER JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento`=`co_tipidocumento`.`id` WHERE `dir`="uscita" AND `idarticolo`=`mg_articoli`.`id` ORDER BY `co_righe_documenti`.`id` ASC LIMIT 0,1) AS acquisto, ', $query);
|
||||
$query = preg_replace('/^SELECT/', 'SELECT (SELECT (`prezzo_unitario`-`sconto_unitario`) AS acquisto FROM `co_righe_documenti` INNER JOIN `co_documenti` ON `co_righe_documenti`.`iddocumento`=`co_documenti`.`id` INNER JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento`=`co_tipidocumento`.`id` WHERE `dir`="uscita" AND `idarticolo`=`mg_articoli`.`id` ORDER BY `co_righe_documenti`.`id` ASC LIMIT 0,1) AS acquisto, ', (string) $query);
|
||||
$text = 'al primo articolo acquistato';
|
||||
} elseif (post('acquisto') == 'last') {
|
||||
$query = preg_replace('/^SELECT/', 'SELECT (SELECT (`prezzo_unitario`-`sconto_unitario`) AS acquisto FROM `co_righe_documenti` INNER JOIN `co_documenti` ON `co_righe_documenti`.`iddocumento`=`co_documenti`.`id` INNER JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento`=`co_tipidocumento`.`id` WHERE `dir`="uscita") AND `idarticolo`=`mg_articoli`.`id` ORDER BY `co_righe_documenti`.`id` DESC LIMIT 0,1) AS acquisto, ', $query);
|
||||
$query = preg_replace('/^SELECT/', 'SELECT (SELECT (`prezzo_unitario`-`sconto_unitario`) AS acquisto FROM `co_righe_documenti` INNER JOIN `co_documenti` ON `co_righe_documenti`.`iddocumento`=`co_documenti`.`id` INNER JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento`=`co_tipidocumento`.`id` WHERE `dir`="uscita") AND `idarticolo`=`mg_articoli`.`id` ORDER BY `co_righe_documenti`.`id` DESC LIMIT 0,1) AS acquisto, ', (string) $query);
|
||||
$text = "all'ultimo articolo acquistato";
|
||||
} else {
|
||||
$query = preg_replace('/^SELECT/', 'SELECT (SELECT (SUM((`prezzo_unitario`-`sconto_unitario`)*`qta`)/SUM(`qta`)) AS acquisto FROM `co_righe_documenti` INNER JOIN `co_documenti` ON `co_righe_documenti`.`iddocumento`=`co_documenti`.`id` INNER JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento`=`co_tipidocumento`.`id` WHERE dir="uscita" AND `idarticolo`=`mg_articoli`.`id`) AS acquisto, ', $query);
|
||||
$query = preg_replace('/^SELECT/', 'SELECT (SELECT (SUM((`prezzo_unitario`-`sconto_unitario`)*`qta`)/SUM(`qta`)) AS acquisto FROM `co_righe_documenti` INNER JOIN `co_documenti` ON `co_righe_documenti`.`iddocumento`=`co_documenti`.`id` INNER JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento`=`co_tipidocumento`.`id` WHERE dir="uscita" AND `idarticolo`=`mg_articoli`.`id`) AS acquisto, ', (string) $query);
|
||||
$text = "alla media ponderata dell'articolo";
|
||||
}
|
||||
|
||||
|
|
|
@ -385,7 +385,7 @@ if (($options['pricing'] && !isset($options['hide-total'])) || $options['show-on
|
|||
if ($show_sconto) {
|
||||
echo '
|
||||
<tr>
|
||||
<td colspan="'.($options['show-only-total'] ? (($has_image) ? 3 : 2) :((($has_image) ? 6 : 5))).'" class="text-right text-muted">
|
||||
<td colspan="'.($options['show-only-total'] ? (($has_image) ? 3 : 2) : (($has_image) ? 6 : 5)).'" class="text-right text-muted">
|
||||
<b>'.tr('Sconto', [], ['upper' => true]).':</b>
|
||||
</td>
|
||||
|
||||
|
@ -397,7 +397,7 @@ if (($options['pricing'] && !isset($options['hide-total'])) || $options['show-on
|
|||
// Totale imponibile
|
||||
echo '
|
||||
<tr>
|
||||
<td colspan="'.($options['show-only-total'] ? (($has_image) ? 3 : 2) : ((($has_image) ? 6 : 5))).'" class="text-right text-muted">
|
||||
<td colspan="'.($options['show-only-total'] ? (($has_image) ? 3 : 2) : (($has_image) ? 6 : 5)).'" class="text-right text-muted">
|
||||
<b>'.tr('Totale imponibile', [], ['upper' => true]).':</b>
|
||||
</td>
|
||||
|
||||
|
@ -435,7 +435,7 @@ if (($options['pricing'] && !isset($options['hide-total'])) || $options['show-on
|
|||
// SCONTO IN FATTURA
|
||||
echo '
|
||||
<tr>
|
||||
<td colspan="'.($options['show-only-total'] ? (($has_image) ? 3 : 2) : ((($has_image) ? 6 : 5))).'" class="text-right border-top">
|
||||
<td colspan="'.($options['show-only-total'] ? (($has_image) ? 3 : 2) : (($has_image) ? 6 : 5)).'" class="text-right border-top">
|
||||
<b>'.tr('Sconto in fattura', [], ['upper' => true]).':</b>
|
||||
</td>
|
||||
<th colspan="1" class="text-right">
|
||||
|
@ -446,7 +446,7 @@ if (($options['pricing'] && !isset($options['hide-total'])) || $options['show-on
|
|||
// NETTO A PAGARE
|
||||
echo '
|
||||
<tr>
|
||||
<td colspan="'.($options['show-only-total'] ? (($has_image) ? 3 : 2) : ((($has_image) ? 6 : 5))).'" class="text-right border-top">
|
||||
<td colspan="'.($options['show-only-total'] ? (($has_image) ? 3 : 2) : (($has_image) ? 6 : 5)).'" class="text-right border-top">
|
||||
<b>'.tr('Netto a pagare', [], ['upper' => true]).':</b>
|
||||
</td>
|
||||
<th colspan="1" class="text-right">
|
||||
|
|
Loading…
Reference in New Issue