mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-02-16 19:40:44 +01:00
Aggiunta possibilità di generazione massiva fatture elettroniche
This commit is contained in:
parent
058069915b
commit
a0f1594e5e
@ -4,6 +4,7 @@ include_once __DIR__.'/../../core.php';
|
||||
|
||||
use Modules\Fatture\Fattura;
|
||||
use Util\Zip;
|
||||
use Plugins\ExportFE\FatturaElettronica;
|
||||
|
||||
switch (post('op')) {
|
||||
case 'export-bulk':
|
||||
@ -62,7 +63,44 @@ switch (post('op')) {
|
||||
flash()->info(tr('Fatture eliminate!'));
|
||||
|
||||
break;
|
||||
|
||||
|
||||
case 'genera-xml':
|
||||
|
||||
$failed = [];
|
||||
$added = [];
|
||||
|
||||
foreach ($id_records as $id) {
|
||||
|
||||
$fattura = Fattura::find($id);
|
||||
$fe = new \Plugins\ExportFE\FatturaElettronica($fattura->id);
|
||||
|
||||
//se la fattura è emessa e non è stata generata la fattura elettronica
|
||||
if ($fattura->idstatodocumento==3 and !($fe->isGenerated())){
|
||||
$fattura_pa = new FatturaElettronica($id);
|
||||
if (!empty($fattura_pa)) {
|
||||
$file = $fattura_pa->save($upload_dir);
|
||||
$added[] = $fattura->numero_esterno;
|
||||
}
|
||||
}else{
|
||||
$failed[] = $fattura->numero_esterno;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (!empty($failed)) {
|
||||
flash()->warning(tr('Le fatture elettroniche _LIST_ non sono state generate.', [
|
||||
'_LIST_' => implode(', ', $failed),
|
||||
]));
|
||||
}
|
||||
|
||||
if (!empty($added)) {
|
||||
flash()->info(tr('Le fatture elettroniche _LIST_ sono state generate.', [
|
||||
'_LIST_' => implode(', ', $added),
|
||||
]));
|
||||
}
|
||||
|
||||
break;
|
||||
case 'export-xml-bulk':
|
||||
$dir = DOCROOT.'/files/export_fatture/';
|
||||
directory($dir.'tmp/');
|
||||
@ -301,9 +339,20 @@ $operations['registra-contabile'] = [
|
||||
],
|
||||
];
|
||||
|
||||
|
||||
|
||||
if ($module->name == 'Fatture di vendita') {
|
||||
|
||||
$operations['genera-xml'] = [
|
||||
'text' => '<span><i class="fa fa-file-code-o" ></i> '.tr('Genera fatture elettroniche').'</span>',
|
||||
'data' => [
|
||||
'title' => '',
|
||||
'msg' => tr('Generare le fatture elettroniche per i documenti selezionati?<br><small>(le fatture dovranno essere nello stato <i class="fa fa-clock-o text-info" title="Emessa"></i> <small>Emessa</small> e non essere mai state generate)</small>'),
|
||||
'button' => tr('Procedi'),
|
||||
'class' => 'btn btn-lg btn-warning',
|
||||
'blank' => true,
|
||||
],
|
||||
];
|
||||
|
||||
|
||||
$operations['export-bulk'] = [
|
||||
'text' => '<span class="'.((!extension_loaded('zip')) ? 'text-muted disabled' :'').'"><i class="fa fa-file-archive-o" ></i> '.tr('Esporta stampe').'</span>',
|
||||
'data' => [
|
||||
|
@ -130,7 +130,7 @@ echo '
|
||||
<div class="col-md-6">
|
||||
<div class="box box-warning">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">'.tr('Clienti TOP').'</h3>
|
||||
<h3 class="box-title">'.tr('Clienti TOP').'</h3><span class="tip" title="'.tr('Valori iva esclusa').'"> <i class="fa fa-question-circle-o" aria-hidden="true"></i></span>
|
||||
|
||||
<div class="box-tools pull-right">
|
||||
<button type="button" class="btn btn-box-tool" data-widget="collapse">
|
||||
@ -170,13 +170,15 @@ echo '
|
||||
</div>';
|
||||
|
||||
// Articoli più venduti
|
||||
$articoli = $dbo->fetchArray("SELECT SUM(co_righe_documenti.qta) AS qta, SUM(subtotale) as subtotale ,SUM(sconto) AS sconto, mg_articoli.id, mg_articoli.codice, mg_articoli.descrizione, mg_articoli.um FROM co_documenti INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id INNER JOIN co_righe_documenti ON co_righe_documenti.iddocumento=co_documenti.id INNER JOIN mg_articoli ON mg_articoli.id=co_righe_documenti.idarticolo WHERE co_tipidocumento.dir='entrata' AND co_documenti.data BETWEEN ".prepare($start).' AND '.prepare($end).' GROUP BY co_righe_documenti.idarticolo ORDER BY SUM(co_righe_documenti.qta) DESC LIMIT 15');
|
||||
$articoli = $dbo->fetchArray("SELECT SUM(co_righe_documenti.qta) AS qta, SUM(co_righe_documenti.subtotale - co_righe_documenti.sconto) AS totale, mg_articoli.id, mg_articoli.codice, mg_articoli.descrizione, mg_articoli.um FROM co_documenti INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id INNER JOIN co_righe_documenti ON co_righe_documenti.iddocumento=co_documenti.id INNER JOIN mg_articoli ON mg_articoli.id=co_righe_documenti.idarticolo WHERE co_tipidocumento.dir='entrata' AND co_documenti.data BETWEEN ".prepare($start).' AND '.prepare($end).' GROUP BY co_righe_documenti.idarticolo ORDER BY SUM(co_righe_documenti.qta) DESC LIMIT 15');
|
||||
|
||||
$totale = $dbo->fetchArray("SELECT SUM(co_righe_documenti.subtotale - co_righe_documenti.sconto) AS totale FROM co_documenti INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id INNER JOIN co_righe_documenti ON co_righe_documenti.iddocumento=co_documenti.id INNER JOIN mg_articoli ON mg_articoli.id=co_righe_documenti.idarticolo WHERE co_tipidocumento.dir='entrata' AND co_documenti.data BETWEEN ".prepare($start).' AND '.prepare($end));
|
||||
|
||||
echo '
|
||||
<div class="col-md-6">
|
||||
<div class="box box-danger">
|
||||
<div class="box-header with-border">
|
||||
<h3 class="box-title">'.tr('Articoli più venduti').'</h3>
|
||||
<h3 class="box-title">'.tr('Articoli più venduti').'</h3><span class="tip" title="'.tr('Valori iva esclusa').'"> <i class="fa fa-question-circle-o" aria-hidden="true"></i></span>
|
||||
|
||||
<div class="box-tools pull-right">
|
||||
<button type="button" class="btn btn-box-tool" data-widget="collapse">
|
||||
@ -192,7 +194,8 @@ if (!empty($articoli)) {
|
||||
<th>'.tr('Codice').'</th>
|
||||
<th>'.tr('Descrizione').'</th>
|
||||
<th class="text-right">'.tr('Q.tà').'</th>
|
||||
<th class="text-right">'.tr('Valore').'<small><br>(iva escl.)</small></th>
|
||||
<th class="text-right">'.tr('Totale').'</th>
|
||||
<th class="text-right">'.tr('Percentuale').'</th>
|
||||
</tr>';
|
||||
foreach ($articoli as $articolo) {
|
||||
echo '
|
||||
@ -200,7 +203,8 @@ if (!empty($articoli)) {
|
||||
<td>'.Modules::link('Articoli', $articolo['id'], $articolo['codice']).'</td>
|
||||
<td>'.$articolo['descrizione'].'</td>
|
||||
<td class="text-right">'.Translator::numberToLocale($articolo['qta']).' '.$articolo['um'].'</td>
|
||||
<td class="text-right">'.Translator::moneyFormat( $articolo['subtotale']-$articolo['sconto']).' '.currency().'</td>
|
||||
<td class="text-right">'.moneyFormat($articolo['totale']).' '.currency().'</td>
|
||||
<td class="text-right">'.Translator::numberToLocale($articolo['totale'] * 100 / $totale[0]['totale']).' %</td>
|
||||
</tr>';
|
||||
}
|
||||
echo '
|
||||
|
Loading…
x
Reference in New Issue
Block a user