1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-02-17 03:51:06 +01:00
This commit is contained in:
Marco Antonio Mauro 2020-04-19 16:30:00 +02:00
commit 801d5a09e5
7 changed files with 65 additions and 51 deletions

View File

@ -90,6 +90,14 @@ function start_datatables() {
exportOptions: { exportOptions: {
modifier: { modifier: {
selected: true selected: true
},
format: {
body: function (data, row, column, node) {
data = $('<p>' + data + '</p>').text();
data_edit = data.replace('.', ''); // Rimozione punto delle migliaia
return data_edit.match(/^[0-9,]+$/) ? data_edit : data;
}
} }
} }
}, },

View File

@ -16,10 +16,11 @@ if (empty($result['idarticolo'])) {
</div>'; </div>';
} else { } else {
$database = database(); $database = database();
$articolo = $database->fetchArray('SELECT codice, descrizione FROM mg_articoli WHERE id = '.prepare($result['idarticolo']))[0]; $articolo = $database->fetchArray('SELECT id, codice, descrizione FROM mg_articoli WHERE id = '.prepare($result['idarticolo']))[0];
echo ' echo '
<p><strong>'.tr('Articolo').':</strong> '.$articolo['codice'].' - '.$articolo['descrizione'].'.</p>'; <p><strong>'.tr('Articolo').':</strong> '.$articolo['codice'].' - '.$articolo['descrizione'].'.</p>
<input type="hidden" name="idarticolo" id="idarticolo" value="'.$articolo['id'].'">';
} }
// Selezione impianto per gli Interventi // Selezione impianto per gli Interventi
@ -41,22 +42,22 @@ if ($module['name'] != 'Contratti' && $module['name'] != 'Preventivi') {
echo ' echo '
<div class="row" id="prezzi_articolo"> <div class="row" id="prezzi_articolo">
<div class="col-md-4 text-center"> <div class="col-md-4 text-center">
<button type="button" class="btn btn-sm btn-info btn-block '.($disabled ? 'disabled' : '').'" '.($disabled ? 'disabled' : '').' onclick="$(\'#prezzi\').toggleClass(\'hide\'); $(\'#prezzi\').load(\''.ROOTDIR."/ajax_complete.php?module=Articoli&op=getprezzi&idarticolo=' + $('#idarticolo option:selected').val() + '&idanagrafica=".$options['idanagrafica'].'\');"> <button type="button" class="btn btn-sm btn-info btn-block '.($disabled ? 'disabled' : '').'" '.($disabled ? 'disabled' : '').' onclick="$(\'#prezziacquisto\').toggleClass(\'hide\'); $(\'#prezziacquisto\').load(\''.ROOTDIR."/ajax_complete.php?module=Articoli&op=getprezziacquisto&idarticolo=' + ( $('#idarticolo option:selected').val() || $('#idarticolo').val()) + '&idanagrafica=".$options['idanagrafica'].'\');">
<i class="fa fa-search"></i> '.tr('Visualizza ultimi prezzi (cliente)').' <i class="fa fa-search"></i> '.tr('Ultimi prezzi di acquisto').'
</button>
<div id="prezzi" class="hide"></div>
</div>
<div class="col-md-4 text-center">
<button type="button" class="btn btn-sm btn-info btn-block '.($disabled ? 'disabled' : '').'" '.($disabled ? 'disabled' : '').' onclick="$(\'#prezziacquisto\').toggleClass(\'hide\'); $(\'#prezziacquisto\').load(\''.ROOTDIR."/ajax_complete.php?module=Articoli&op=getprezziacquisto&idarticolo=' + $('#idarticolo option:selected').val() + '&idanagrafica=".$options['idanagrafica'].'\');">
<i class="fa fa-search"></i> '.tr('Visualizza ultimi prezzi (acquisto)').'
</button> </button>
<div id="prezziacquisto" class="hide"></div> <div id="prezziacquisto" class="hide"></div>
</div> </div>
<div class="col-md-4 text-center"> <div class="col-md-4 text-center">
<button type="button" class="btn btn-sm btn-info btn-block '.($disabled ? 'disabled' : '').'" '.($disabled ? 'disabled' : '').' onclick="$(\'#prezzivendita\').toggleClass(\'hide\'); $(\'#prezzivendita\').load(\''.ROOTDIR."/ajax_complete.php?module=Articoli&op=getprezzivendita&idarticolo=' + $('#idarticolo option:selected').val() + '&idanagrafica=".$options['idanagrafica'].'\');"> <button type="button" class="btn btn-sm btn-info btn-block '.($disabled ? 'disabled' : '').'" '.($disabled ? 'disabled' : '').' onclick="$(\'#prezzi\').toggleClass(\'hide\'); $(\'#prezzi\').load(\''.ROOTDIR."/ajax_complete.php?module=Articoli&op=getprezzi&idarticolo=' + ( $('#idarticolo option:selected').val() || $('#idarticolo').val()) + '&idanagrafica=".$options['idanagrafica'].'\');">
<i class="fa fa-search"></i> '.tr('Visualizza ultimi prezzi (vendita)').' <i class="fa fa-search"></i> '.tr('Ultimi prezzi al cliente').'
</button>
<div id="prezzi" class="hide"></div>
</div>
<div class="col-md-4 text-center">
<button type="button" class="btn btn-sm btn-info btn-block '.($disabled ? 'disabled' : '').'" '.($disabled ? 'disabled' : '').' onclick="$(\'#prezzivendita\').toggleClass(\'hide\'); $(\'#prezzivendita\').load(\''.ROOTDIR."/ajax_complete.php?module=Articoli&op=getprezzivendita&idarticolo=' + ( $('#idarticolo option:selected').val() || $('#idarticolo').val()) + '&idanagrafica=".$options['idanagrafica'].'\');">
<i class="fa fa-search"></i> '.tr('Ultimi prezzi di vendita').'
</button> </button>
<div id="prezzivendita" class="hide"></div> <div id="prezzivendita" class="hide"></div>
</div> </div>

View File

@ -13,24 +13,26 @@ switch ($resource) {
echo '<small>'; echo '<small>';
if (!empty($idarticolo)) { if (!empty($idarticolo)) {
// Ultime 5 vendite al cliente // Ultime 5 vendite al cliente
$fatture = $dbo->fetchArray('SELECT iddocumento, (subtotale-sconto)/qta AS costo_unitario, (SELECT numero FROM co_documenti WHERE id=iddocumento) AS n_fattura, (SELECT numero_esterno FROM co_documenti WHERE id=iddocumento) AS n2_fattura, (SELECT data FROM co_documenti WHERE id=iddocumento) AS data_fattura FROM co_righe_documenti WHERE idarticolo="'.$idarticolo."\" AND iddocumento IN(SELECT id FROM co_documenti WHERE idtipodocumento IN(SELECT id FROM co_tipidocumento WHERE dir='entrata') AND idanagrafica=\"".$idanagrafica.'") LIMIT 0,5'); $documenti = $dbo->fetchArray('SELECT iddocumento AS id, "Fattura" AS tipo, "Fatture di vendita" AS modulo, (subtotale-sconto)/qta AS costo_unitario, (SELECT numero FROM co_documenti WHERE id=iddocumento) AS n_documento, (SELECT numero_esterno FROM co_documenti WHERE id=iddocumento) AS n2_documento, (SELECT data FROM co_documenti WHERE id=iddocumento) AS data_documento FROM co_righe_documenti WHERE idarticolo='.prepare($idarticolo).' AND iddocumento IN(SELECT id FROM co_documenti WHERE idtipodocumento IN(SELECT id FROM co_tipidocumento WHERE dir="entrata") AND idanagrafica='.prepare($idanagrafica).')
UNION
SELECT idddt AS id, "Ddt" AS tipo, "Ddt di vendita" AS modulo, (subtotale-sconto)/qta AS costo_unitario, (SELECT numero FROM dt_ddt WHERE id=idddt) AS n_documento, (SELECT numero_esterno FROM dt_ddt WHERE id=idddt) AS n2_documento, (SELECT data FROM dt_ddt WHERE id=idddt) AS data_documento FROM dt_righe_ddt WHERE idarticolo='.$idarticolo.' AND idddt IN(SELECT id FROM dt_ddt WHERE idtipoddt IN(SELECT id FROM dt_tipiddt WHERE dir="entrata") AND idanagrafica='.prepare($idanagrafica).') LIMIT 0,5');
if (sizeof($fatture) > 0) { if (sizeof($documenti) > 0) {
echo "<br/><table cellspacing='0' class='table-striped table-bordered' >\n"; echo "<br/><table cellspacing='0' class='table-striped table-bordered' >\n";
echo "<tr><th width='180'>Documento</th>\n"; echo "<tr><th width='180'>Documento</th>\n";
echo "<th width='100' class='text-right' >Totale</th></tr>\n"; echo "<th width='100' class='text-right' >Totale</th></tr>\n";
for ($i = 0; $i < sizeof($fatture); ++$i) { for ($i = 0; $i < sizeof($documenti); ++$i) {
($fatture[$i]['n2_fattura'] != '') ? $n_fattura = $fatture[$i]['n2_fattura'] : $n_fattura = $fatture[$i]['n_fattura']; ($documenti[$i]['n2_documento'] != '') ? $n_documento = $documenti[$i]['n2_documento'] : $n_documento = $documenti[$i]['n_documento'];
$link_id = Modules::get('Fatture di vendita')['id']; $link_id = Modules::get($documenti[$i]['modulo'])['id'];
echo "<tr><td class='first_cell text-left'><a href='".ROOTDIR.'/editor.php?id_module='.$link_id.'&id_record='.$fatture[$i]['iddocumento']."' target=\"_blank\" title=\"Apri il documento su una nuova finestra\">Fatt. n. ".$n_fattura.' del '.Translator::dateToLocale($fatture[$i]['data_fattura'])." </a></td>\n"; echo "<tr><td class='first_cell text-left'><a href='".ROOTDIR.'/editor.php?id_module='.$link_id.'&id_record='.$documenti[$i]['id']."' target=\"_blank\" title=\"Apri il documento su una nuova finestra\">".$documenti[$i]['tipo'].". n. ".$n_documento.' del '.Translator::dateToLocale($documenti[$i]['data_documento'])." </a></td>\n";
echo "<td class='table_cell text-right'>".moneyFormat($fatture[$i]['costo_unitario'])."</td></tr>\n"; echo "<td class='table_cell text-right'>".moneyFormat($documenti[$i]['costo_unitario'])."</td></tr>\n";
array_push($ids, '"'.$fatture[$i]['iddocumento'].'"'); array_push($ids, '"'.$documenti[$i]['id'].'"');
} }
echo "</table>\n"; echo "</table>\n";
} else { } else {
echo '<br/>'.tr('Nessuna vendita di questo articolo al cliente selezionato')."...<br/>\n"; echo '<br/>'.tr('Nessuna vendita trovata di questo articolo al cliente')."...<br/>\n";
} }
} }
echo '</small>'; echo '</small>';
@ -40,53 +42,55 @@ switch ($resource) {
case 'getprezzivendita': case 'getprezzivendita':
echo '<small>'; echo '<small>';
// Ultime 5 vendite totali // Ultime 5 vendite totali
$fatture = $dbo->fetchArray("SELECT DISTINCT iddocumento, (subtotale-sconto)/qta AS costo_unitario, (SELECT numero FROM co_documenti WHERE id=iddocumento) AS n_fattura, (SELECT numero_esterno FROM co_documenti WHERE id=iddocumento) AS n2_fattura, (SELECT data FROM co_documenti WHERE id=iddocumento) AS data_fattura FROM co_righe_documenti WHERE idarticolo='".$idarticolo."' AND iddocumento IN(SELECT id FROM co_documenti WHERE idtipodocumento IN(SELECT id FROM co_tipidocumento WHERE dir='entrata') ) ORDER BY data_fattura DESC, n_fattura DESC LIMIT 0,5"); $documenti = $dbo->fetchArray('SELECT iddocumento AS id, "Fattura" AS tipo, "Fatture di vendita" AS modulo, (subtotale-sconto)/qta AS costo_unitario, (SELECT numero FROM co_documenti WHERE id=iddocumento) AS n_documento, (SELECT numero_esterno FROM co_documenti WHERE id=iddocumento) AS n2_documento, (SELECT data FROM co_documenti WHERE id=iddocumento) AS data_documento FROM co_righe_documenti WHERE idarticolo='.prepare($idarticolo).' AND iddocumento IN(SELECT id FROM co_documenti WHERE idtipodocumento IN(SELECT id FROM co_tipidocumento WHERE dir="entrata"))
UNION
SELECT idddt AS id, "Ddt" AS tipo, "Ddt di vendita" AS modulo, (subtotale-sconto)/qta AS costo_unitario, (SELECT numero FROM dt_ddt WHERE id=idddt) AS n_documento, (SELECT numero_esterno FROM dt_ddt WHERE id=idddt) AS n2_documento, (SELECT data FROM dt_ddt WHERE id=idddt) AS data_documento FROM dt_righe_ddt WHERE idarticolo='.prepare($idarticolo).' AND idddt IN(SELECT id FROM dt_ddt WHERE idtipoddt IN(SELECT id FROM dt_tipiddt WHERE dir="entrata")) LIMIT 0,5');
if (sizeof($fatture) > 0) { if (sizeof($documenti) > 0) {
echo "<br/><table cellspacing='0' class='table-striped table-bordered' >\n"; echo "<br/><table cellspacing='0' class='table-striped table-bordered' >\n";
echo "<tr><th width='180'>Documento</th>\n"; echo "<tr><th width='180'>Documento</th>\n";
echo "<th width='100' class='text-right' >Totale</th></tr>\n"; echo "<th width='100' class='text-right' >Totale</th></tr>\n";
for ($i = 0; $i < sizeof($fatture); ++$i) { for ($i = 0; $i < sizeof($documenti); ++$i) {
($fatture[$i]['n2_fattura'] != '') ? $n_fattura = $fatture[$i]['n2_fattura'] : $n_fattura = $fatture[$i]['n_fattura']; ($documenti[$i]['n2_documento'] != '') ? $n_documento = $documenti[$i]['n2_documento'] : $n_documento = $documenti[$i]['n_documento'];
$link_id = Modules::get('Fatture di vendita')['id']; $link_id = Modules::get($documenti[$i]['modulo'])['id'];
echo "<tr><td class='first_cell text-left'><a href='".ROOTDIR.'/editor.php?id_module='.$link_id.'&id_record='.$fatture[$i]['iddocumento']."' target=\"_blank\" title=\"Apri il documento su una nuova finestra\">Fatt. n. ".$n_fattura.' del '.Translator::dateToLocale($fatture[$i]['data_fattura'])."</a></td>\n"; echo "<tr><td class='first_cell text-left'><a href='".ROOTDIR.'/editor.php?id_module='.$link_id.'&id_record='.$documenti[$i]['id']."' target=\"_blank\" title=\"Apri il documento su una nuova finestra\">".$documenti[$i]['tipo'].". n. ".$n_documento.' del '.Translator::dateToLocale($documenti[$i]['data_documento'])." </a></td>\n";
echo "<td class='table_cell text-right'>".moneyFormat($fatture[$i]['costo_unitario'])."</td></tr>\n"; echo "<td class='table_cell text-right'>".moneyFormat($documenti[$i]['costo_unitario'])."</td></tr>\n";
array_push($ids, '"'.$documenti[$i]['id'].'"');
} }
echo "</table>\n"; echo "</table>\n";
} else { } else {
echo '<br/>'.tr('Questo articolo non è mai stato venduto')."...<br/>\n"; echo '<br/>'.tr('Nessuna vendita trovata di questo articolo')."...<br/>\n";
} }
echo '</small>';
echo '<br/>';
break; break;
// Legge gli ultimi prezzi di vendita di un determinato articolo e li visualizza per suggerire il prezzo di vendita // Legge gli ultimi prezzi di acquisto di un determinato articolo e li visualizza per suggerire il prezzo di acquisto
case 'getprezziacquisto': case 'getprezziacquisto':
echo '<small>'; echo '<small>';
// Ultime 5 vendite totali // Ultimi 5 acquisti totali
$fatture = $dbo->fetchArray("SELECT DISTINCT iddocumento, (subtotale-sconto)/qta AS costo_unitario, (SELECT numero FROM co_documenti WHERE id=iddocumento) AS n_fattura, (SELECT numero_esterno FROM co_documenti WHERE id=iddocumento) AS n2_fattura, (SELECT data FROM co_documenti WHERE id=iddocumento) AS data_fattura FROM co_righe_documenti WHERE idarticolo='".$idarticolo."' AND iddocumento IN(SELECT id FROM co_documenti WHERE idtipodocumento IN(SELECT id FROM co_tipidocumento WHERE dir='uscita') ) ORDER BY data_fattura DESC, n_fattura DESC LIMIT 0,5"); $documenti = $dbo->fetchArray('SELECT iddocumento AS id, "Fattura" AS tipo, "Fatture di vendita" AS modulo, (subtotale-sconto)/qta AS costo_unitario, (SELECT numero FROM co_documenti WHERE id=iddocumento) AS n_documento, (SELECT numero_esterno FROM co_documenti WHERE id=iddocumento) AS n2_documento, (SELECT data FROM co_documenti WHERE id=iddocumento) AS data_documento FROM co_righe_documenti WHERE idarticolo='.prepare($idarticolo).' AND iddocumento IN(SELECT id FROM co_documenti WHERE idtipodocumento IN(SELECT id FROM co_tipidocumento WHERE dir="uscita"))
UNION
SELECT idddt AS id, "Ddt" AS tipo, "Ddt di vendita" AS modulo, (subtotale-sconto)/qta AS costo_unitario, (SELECT numero FROM dt_ddt WHERE id=idddt) AS n_documento, (SELECT numero_esterno FROM dt_ddt WHERE id=idddt) AS n2_documento, (SELECT data FROM dt_ddt WHERE id=idddt) AS data_documento FROM dt_righe_ddt WHERE idarticolo='.prepare($idarticolo).' AND idddt IN(SELECT id FROM dt_ddt WHERE idtipoddt IN(SELECT id FROM dt_tipiddt WHERE dir="uscita")) LIMIT 0,5');
if (sizeof($fatture) > 0) { if (sizeof($documenti) > 0) {
echo "<br/><table cellspacing='0' class='table-striped table-bordered' >\n"; echo "<br/><table cellspacing='0' class='table-striped table-bordered' >\n";
echo "<tr><th width='180'>Documento</th>\n"; echo "<tr><th width='180'>Documento</th>\n";
echo "<th width='100' class='text-right'>Totale</th></tr>\n"; echo "<th width='100' class='text-right' >Totale</th></tr>\n";
for ($i = 0; $i < sizeof($fatture); ++$i) { for ($i = 0; $i < sizeof($documenti); ++$i) {
($fatture[$i]['n2_fattura'] != '') ? $n_fattura = $fatture[$i]['n2_fattura'] : $n_fattura = $fatture[$i]['n_fattura']; ($documenti[$i]['n2_documento'] != '') ? $n_documento = $documenti[$i]['n2_documento'] : $n_documento = $documenti[$i]['n_documento'];
$link_id = Modules::get('Fatture di acquisto')['id']; $link_id = Modules::get($documenti[$i]['modulo'])['id'];
echo "<tr><td class='first_cell text-left'><a href='".ROOTDIR.'/editor.php?id_module='.$link_id.'&id_record='.$fatture[$i]['iddocumento']."' target=\"_blank\" title=\"Apri il documento su una nuova finestra\">Fatt. n. ".$n_fattura.' del '.Translator::dateToLocale($fatture[$i]['data_fattura'])."</a></td>\n"; echo "<tr><td class='first_cell text-left'><a href='".ROOTDIR.'/editor.php?id_module='.$link_id.'&id_record='.$documenti[$i]['id']."' target=\"_blank\" title=\"Apri il documento su una nuova finestra\">".$documenti[$i]['tipo'].". n. ".$n_documento.' del '.Translator::dateToLocale($documenti[$i]['data_documento'])." </a></td>\n";
echo "<td class='table_cell text-right'>".moneyFormat($fatture[$i]['costo_unitario'])."</td></tr>\n"; echo "<td class='table_cell text-right'>".moneyFormat($documenti[$i]['costo_unitario'])."</td></tr>\n";
array_push($ids, '"'.$documenti[$i]['id'].'"');
} }
echo "</table>\n"; echo "</table>\n";
} else { } else {
echo '<br/>'.tr('Questo articolo non è mai stato acquistato')."...<br/>\n"; echo '<br/>'.tr('Nessun acquisto trovato di questo articolo')."...<br/>\n";
} }
echo '</small>';
echo '<br/>';
break; break;
} }

View File

@ -94,7 +94,7 @@ $query = 'SELECT id, serial, created_at FROM mg_prodotti WHERE serial IS NOT NUL
$rs2 = $dbo->fetchArray($query); $rs2 = $dbo->fetchArray($query);
echo ' echo '
<table class="table table-striped table-hover table-condensed table-bordered text-center datatables"> <table id="table-serials" class="table table-striped table-hover table-condensed table-bordered text-center datatables">
<thead> <thead>
<tr> <tr>
<th id="th_Serial">'.tr('Serial').'</th> <th id="th_Serial">'.tr('Serial').'</th>
@ -244,6 +244,7 @@ echo '
echo ' echo '
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function() { $(document).ready(function() {
$("#table-serials").DataTable().draw();
$("#serials").removeClass("superselect"); $("#serials").removeClass("superselect");
$("#serials").select2().select2("destroy"); $("#serials").select2().select2("destroy");

View File

@ -41,7 +41,7 @@ switch (post('op')) {
flash()->info(tr("Se le informazioni inserite corrispondono ai dati di un utente, riceverai a breve un'email all'indirizzo collegato").'.'); flash()->info(tr("Se le informazioni inserite corrispondono ai dati di un utente, riceverai a breve un'email all'indirizzo collegato").'.');
redirect(ROOTDIR.'/index.php'); redirect(ROOTDIR.'/index.php');
exit() exit();
break; break;
case 'update': case 'update':

View File

@ -12,10 +12,10 @@ $totale_iva = $documento->iva;
$totale = $documento->totale; $totale = $documento->totale;
$volume = $righe->sum(function ($item) { $volume = $righe->sum(function ($item) {
return $item->isArticolo() ? $item->articolo->volume : 0; return $item->isArticolo() ? $item->articolo->volume*$item->qta : 0;
}); });
$peso_lordo = $righe->sum(function ($item) { $peso_lordo = $righe->sum(function ($item) {
return $item->isArticolo() ? $item->articolo->peso_lordo : 0; return $item->isArticolo() ? $item->articolo->peso_lordo*$item->qta : 0;
}); });
// TABELLA PRINCIPALE // TABELLA PRINCIPALE

View File

@ -15,10 +15,10 @@ $netto_a_pagare = abs($documento->netto);
$show_sconto = $sconto > 0; $show_sconto = $sconto > 0;
$volume = $righe->sum(function ($item) { $volume = $righe->sum(function ($item) {
return $item->isArticolo() ? $item->articolo->volume : 0; return $item->isArticolo() ? $item->articolo->volume*$item->qta : 0;
}); });
$peso_lordo = $righe->sum(function ($item) { $peso_lordo = $righe->sum(function ($item) {
return $item->isArticolo() ? $item->articolo->peso_lordo : 0; return $item->isArticolo() ? $item->articolo->peso_lordo*$item->qta : 0;
}); });
$width = round(100 / ($show_sconto ? 5 : 3), 2); $width = round(100 / ($show_sconto ? 5 : 3), 2);