Generalizzazione dei form per le righe (DDT)

Generalizzazione della gestione dei form di righe, articoli e descrizioni come discusso in #156.
This commit is contained in:
Thomas Zilio 2018-02-19 17:48:04 +01:00
parent 4e2c7d0eaf
commit 8c3d4bbfd6
14 changed files with 135 additions and 371 deletions

View File

@ -166,9 +166,9 @@ switch (post('op')) {
if (!empty($idarticolo)) {
$_SESSION['infos'][] = tr('Articolo aggiunto!');
} elseif (!empty($qta)) {
$_SESSION['infos'][] = tr('Riga descrittiva aggiunta!');
} else {
$_SESSION['infos'][] = tr('Riga aggiunta!');
} else {
$_SESSION['infos'][] = tr('Riga descrittiva aggiunta!');
}
break;

View File

@ -186,29 +186,25 @@ switch (post('op')) {
$iva = ($subtot - $sconto) / 100 * $rs[0]['percentuale'];
$iva_indetraibile = $iva / 100 * $rs[0]['indetraibile'];
$query = 'INSERT INTO dt_righe_ddt(idddt, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, um, qta, `order`) VALUES('.prepare($id_record).', '.prepare($idiva).', '.prepare($rs[0]['descrizione']).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($subtot).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', '.prepare($um).', '.prepare($qta).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM dt_righe_ddt AS t WHERE idddt='.prepare($id_record).'))';
$query = 'INSERT INTO dt_righe_ddt(idddt, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, um, qta, is_descrizione, `order`) VALUES('.prepare($id_record).', '.prepare($idiva).', '.prepare($rs[0]['descrizione']).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($subtot).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', '.prepare($um).', '.prepare($qta).', '.prepare(empty($qta)).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM dt_righe_ddt AS t WHERE idddt='.prepare($id_record).'))';
$dbo->query($query);
if ($dbo->query($query)) {
// Messaggi informativi
if (!empty($idarticolo)) {
$_SESSION['infos'][] = tr('Articolo aggiunto!');
} elseif (!empty($qta)) {
$_SESSION['infos'][] = tr('Riga aggiunta!');
// Ricalcolo inps, ritenuta e bollo
if ($dir == 'entrata') {
ricalcola_costiagg_ddt($id_record);
} else {
ricalcola_costiagg_ddt($id_record);
}
} else {
$_SESSION['infos'][] = tr('Riga descrittiva aggiunta!');
}
break;
case 'adddescrizione':
if (!empty($id_record)) {
$descrizione = post('descrizione');
$query = 'INSERT INTO dt_righe_ddt(idddt, descrizione, is_descrizione) VALUES('.prepare($id_record).', '.prepare($descrizione).', 1)';
if ($dbo->query($query)) {
$_SESSION['infos'][] = tr('Riga descrittiva aggiunta!');
}
// Ricalcolo inps, ritenuta e bollo
if ($dir == 'entrata') {
ricalcola_costiagg_ddt($id_record);
} else {
ricalcola_costiagg_ddt($id_record);
}
break;
// Creazione ddt da ordine
@ -274,8 +270,8 @@ switch (post('op')) {
$dbo->query('UPDATE or_righe_ordini SET qta_evasa = qta_evasa+'.$qta.' WHERE id='.prepare($idriga));
// Movimento il magazzino
// vendita
if (!empty($idarticolo)) {
// vendita
if ($dir == 'entrata') {
add_movimento_magazzino($idarticolo, -$qta, ['idddt' => $id_record]);
}
@ -367,7 +363,6 @@ switch (post('op')) {
$idarticolo = $rs[0]['idarticolo'];
$idordine = $rs[0]['idordine'];
$old_qta = $rs[0]['qta'];
$idddt = $rs[0]['idddt'];
$is_descrizione = $rs[0]['is_descrizione'];
// Controllo per gestire i serial
@ -380,7 +375,7 @@ switch (post('op')) {
}
// Se c'è un collegamento ad un ordine, aggiorno la quantità evasa
if (!empty($idddt)) {
if (!empty($idordine)) {
$dbo->query('UPDATE or_righe_ordini SET qta_evasa=qta_evasa-'.$old_qta.' + '.$qta.' WHERE descrizione='.prepare($rs[0]['descrizione']).' AND idarticolo='.prepare($rs[0]['idarticolo']).' AND idordine='.prepare($idordine).' AND idiva='.prepare($rs[0]['idiva']));
}

View File

@ -1,163 +0,0 @@
<?php
include_once __DIR__.'/../../core.php';
$module = Modules::get($id_module);
if ($module['name'] == 'Ddt di vendita') {
$dir = 'entrata';
} else {
$dir = 'uscita';
}
$_SESSION['superselect']['dir'] = $dir;
// Info documento
$rs = $dbo->fetchArray('SELECT * FROM dt_ddt WHERE id='.prepare($id_record));
$numero = (!empty($rs[0]['numero_esterno'])) ? $rs[0]['numero_esterno'] : $rs[0]['numero'];
$idanagrafica = $rs[0]['idanagrafica'];
/*
Form di inserimento riga documento
*/
echo '
<p>'.tr('Ddt numero _NUM_', [
'_NUM_' => $numero,
]).'</p>
<form action="'.$rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'" method="post">
<input type="hidden" name="op" value="addarticolo">
<input type="hidden" name="backto" value="record-edit">
<input type="hidden" name="dir" value="'.$dir.'">';
// Articolo
echo '
<div class="row">
<div class="col-md-6">
{[ "type": "select", "label": "'.tr('Articolo').'", "name": "idarticolo", "required": 1, "value": "'.$idarticolo.'", "ajax-source": "articoli" ]}
</div>
</div>';
// Descrizione
echo '
<div class="row">
<div class="col-md-12">
{[ "type": "textarea", "label": "'.tr('Descrizione').'", "name": "descrizione", "required": 1 ]}
</div>
</div>';
// Leggo l'iva predefinita per l'anagrafica e se non c'è leggo quella predefinita generica
$iva = $dbo->fetchArray('SELECT idiva_'.($dir == 'uscita' ? 'acquisti' : 'vendite').' AS idiva FROM an_anagrafiche WHERE idanagrafica='.prepare($idanagrafica));
$idiva = $iva[0]['idiva'] ?: get_var('Iva predefinita');
// Iva
echo '
<div class="row">
<div class="col-md-3">
{[ "type": "select", "label": "'.tr('Iva').'", "name": "idiva", "required": 1, "value": "'.$idiva.'", "values": "query=SELECT * FROM co_iva ORDER BY descrizione ASC" ]}
</div>';
// Quantità
echo '
<div class="col-md-3">
{[ "type": "number", "label": "'.tr('Q.tà').'", "name": "qta", "required": 1, "value": "1", "decimals": "qta" ]}
</div>';
// Costo unitario
echo '
<div class="col-md-3">
{[ "type": "number", "label": "'.tr('Costo unitario').'", "name": "prezzo", "required": 1, "icon-after": "&euro;" ]}
</div>';
// Sconto unitario
$rss = $dbo->fetchArray('SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT idlistino_'.($dir == 'uscita' ? 'acquisti' : 'vendite').' FROM an_anagrafiche WHERE idanagrafica='.prepare($idanagrafica).')');
if (!empty($rss)) {
$sconto = $rss[0]['prc_guadagno'];
$tipo_sconto = 'PRC';
}
echo '
<div class="col-md-3">
{[ "type": "number", "label": "'.tr('Sconto unitario').'", "name": "sconto", "value": "'.$sconto.'", "icon-after": "choice|untprc|'.$tipo_sconto.'" ]}
</div>
</div>';
// Informazioni aggiuntive
echo '
<div class="row" id="prezzi_articolo">
<div class="col-md-4 text-center">
<button type="button" class="btn btn-sm btn-info btn-block disabled" onclick="$(\'#prezzi\').toggleClass(\'hide\'); $(\'#prezzi\').load(\''.$rootdir."/ajax_complete.php?module=Articoli&op=getprezzi&idarticolo=' + $('#idarticolo option:selected').val() + '&idanagrafica=".$idanagrafica.'\');" disabled>
<i class="fa fa-search"></i> '.tr('Visualizza ultimi prezzi (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" onclick="$(\'#prezziacquisto\').toggleClass(\'hide\'); $(\'#prezziacquisto\').load(\''.$rootdir."/ajax_complete.php?module=Articoli&op=getprezziacquisto&idarticolo=' + $('#idarticolo option:selected').val() + '&idanagrafica=".$idanagrafica.'\');" disabled>
<i class="fa fa-search"></i> '.tr('Visualizza ultimi prezzi (acquisto)').'
</button>
<div id="prezziacquisto" class="hide"></div>
</div>
<div class="col-md-4 text-center">
<button type="button" class="btn btn-sm btn-info btn-block disabled" onclick="$(\'#prezzivendita\').toggleClass(\'hide\'); $(\'#prezzivendita\').load(\''.$rootdir."/ajax_complete.php?module=Articoli&op=getprezzivendita&idarticolo=' + $('#idarticolo option:selected').val() + '&idanagrafica=".$idanagrafica.'\');" disabled>
<i class="fa fa-search"></i> '.tr('Visualizza ultimi prezzi (vendita)').'
</button>
<div id="prezzivendita" class="hide"></div>
</div>
</div>
<br>';
echo '
<script>
$(document).ready(function () {
$("#idarticolo").on("change", function(){
$("#prezzi_articolo button").attr("disabled", !$(this).val());
if($(this).val()){
$("#prezzi_articolo button").removeClass("disabled");
session_set("superselect,idarticolo", $(this).val(), 0);
$data = $(this).selectData();
$("#prezzo").val($data.prezzo_'.($dir == 'entrata' ? 'vendita' : 'acquisto').');
$("#descrizione").val($data.descrizione);
$("#idiva").selectSet($data.idiva_vendita, $data.iva_vendita);
$("#um").selectSetNew($data.um, $data.um);
}else{
$("#prezzi_articolo button").addClass("disabled");
}
$("#prezzi").html("");
$("#prezzivendita").html("");
$("#prezziacquisto").html("");
});
});
</script>';
echo '
<!-- PULSANTI -->
<div class="row">
<div class="col-md-12 text-right">
<button type="submit" class="btn btn-primary pull-right"><i class="fa fa-plus"></i> '.tr('Aggiungi').'</button>
</div>
</div>
</form>';
echo '
<script src="'.$rootdir.'/lib/init.js"></script>';
?>
<script type="text/javascript">
dir = '<?php echo $dir; ?>';
// Se sono stati selezionati un serial number e/o altro codice, la quantità deve rimanere 1 (solo per la vendita)
function check_qta(){
if( ($('select[name=serial] option:selected').val()!='' || $('select[name=altro] option:selected').val()!='') && $('#idarticolo option:selected').attr('qta_magazzino')!=undefined )
$('#qta').val('1');
}
$(document).ready( function(){
if( dir=='entrata' )
setInterval( "check_qta()", 1000 );
});
</script>

View File

@ -1,48 +0,0 @@
<?php
include_once __DIR__.'/../../core.php';
$module = Modules::get($id_module);
if ($module['name'] == 'Ddt di vendita') {
$dir = 'entrata';
} else {
$dir = 'uscita';
}
// Info documento
$rs = $dbo->fetchArray('SELECT * FROM dt_ddt WHERE id='.prepare($id_record));
$numero = (!empty($rs[0]['numero_esterno'])) ? $rs[0]['numero_esterno'] : $rs[0]['numero'];
$idanagrafica = $rs[0]['idanagrafica'];
/*
Form di inserimento riga ddt
*/
echo '
<p>'.tr('Ddt numero _NUM_', [
'_NUM_' => $numero,
]).'</p>
<form action="'.$rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'" method="post">
<input type="hidden" name="op" value="adddescrizione">
<input type="hidden" name="backto" value="record-edit">
<input type="hidden" name="dir" value="'.$dir.'">';
// Descrizione
echo '
<div class="row">
<div class="col-md-12">
{[ "type": "textarea", "label": "'.tr('Descrizione').'", "name": "descrizione", "required": 1 ]}
</div>
</div>';
echo '
<!-- PULSANTI -->
<div class="row">
<div class="col-md-12 text-right">
<button type="submit" class="btn btn-primary pull-right"><i class="fa fa-plus"></i> '.tr('Aggiungi').'</button>
</div>
</div>
</form>';

View File

@ -1,123 +0,0 @@
<?php
include_once __DIR__.'/../../core.php';
$module = Modules::get($id_module);
if ($module['name'] == 'Ddt di vendita') {
$dir = 'entrata';
} else {
$dir = 'uscita';
}
// Info documento
$rs = $dbo->fetchArray('SELECT * FROM dt_ddt WHERE id='.prepare($id_record));
$numero = (!empty($rs[0]['numero_esterno'])) ? $rs[0]['numero_esterno'] : $rs[0]['numero'];
$idanagrafica = $rs[0]['idanagrafica'];
if (!empty($get['idriga'])) {
$button = tr('Modifica');
$idriga = $get['idriga'];
// Info riga inserita
$rsr = $dbo->fetchArray('SELECT * FROM dt_righe_ddt WHERE idddt='.prepare($id_record).' AND id='.prepare($idriga));
$descrizione = $rsr[0]['descrizione'];
$qta = $rsr[0]['qta'];
$um = $rsr[0]['um'];
$idiva = $rsr[0]['idiva'];
$subtot = $rsr[0]['subtotale'] / $rsr[0]['qta'];
$sconto = $rsr[0]['sconto_unitario'];
$tipo_sconto = $rsr[0]['tipo_sconto'];
} else {
$button = tr('Aggiungi');
$descrizione = '';
$qta = 1;
$um = '';
$subtot = 0;
$sconto = 0;
// Leggo l'iva predefinita per l'anagrafica e se non c'è leggo quella predefinita generica
$iva = $dbo->fetchArray('SELECT idiva_'.($dir == 'uscita' ? 'acquisti' : 'vendite').' AS idiva FROM an_anagrafiche WHERE idanagrafica='.prepare($idanagrafica));
$idiva = $iva[0]['idiva'] ?: get_var('Iva predefinita');
// Sconto unitario
$rss = $dbo->fetchArray('SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT idlistino_'.($dir == 'uscita' ? 'acquisti' : 'vendite').' FROM an_anagrafiche WHERE idanagrafica='.prepare($idanagrafica).')');
if (!empty($rss)) {
$sconto = $rss[0]['prc_guadagno'];
$tipo_sconto = 'PRC';
}
}
echo '
<p>'.tr('Ddt numero _NUM_', [
'_NUM_' => $numero,
]).'</p>
<form action="'.$rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'" method="post">
<input type="hidden" name="op" value="'.(!empty($idriga) ? 'editriga' : 'addriga').'">
<input type="hidden" name="backto" value="record-edit">
<input type="hidden" name="dir" value="'.$dir.'">';
if (!empty($idriga)) {
echo '
<input type="hidden" name="idriga" value="'.$idriga.'">';
}
// Descrizione
echo '
<div class="row">
<div class="col-md-12">
{[ "type": "textarea", "label": "'.tr('Descrizione').'", "name": "descrizione", "required": 1, "value": '.json_encode($descrizione).' ]}
</div>
</div>';
if ($rsr[0]['is_descrizione'] == 0) {
// Quantità
echo '
<div class="row">
<div class="col-md-6">
{[ "type": "number", "label": "'.tr('Q.tà').'", "name": "qta", "required": 1, "value": "'.$qta.'", "decimals": "qta" ]}
</div>';
// Unità di misura
echo '
<div class="col-md-6">
{[ "type": "select", "label": "'.tr('Unità di misura').'", "icon-after": "add|'.Modules::get('Unità di misura')['id'].'", "name": "um", "value": "'.$um.'", "ajax-source": "misure" ]}
</div>
</div>';
// Iva
echo '
<div class="row">
<div class="col-md-4">
{[ "type": "select", "label": "'.tr('Iva').'", "name": "idiva", "values": "query=SELECT id, descrizione FROM co_iva ORDER BY descrizione ASC", "value": "'.$idiva.'" ]}
</div>';
// Costo unitario
echo '
<div class="col-md-4">
{[ "type": "number", "label": "'.tr('Costo unitario').'", "name": "prezzo", "required": 1, "value": "'.$subtot.'", "icon-after": "&euro;" ]}
</div>';
// Sconto unitario
echo '
<div class="col-md-4">
{[ "type": "number", "label": "'.tr('Sconto unitario').'", "name": "sconto", "value": "'.$sconto.'", "icon-after": "choice|untprc|'.$tipo_sconto.'" ]}
</div>
</div>';
}
echo '
<!-- PULSANTI -->
<div class="row">
<div class="col-md-12 text-right">
<button type="submit" class="btn btn-primary pull-right"><i class="fa fa-plus"></i> '.$button.'</button>
</div>
</div>
</form>';
echo '
<script src="'.$rootdir.'/lib/init.js"></script>';

View File

@ -137,15 +137,11 @@ if ($dir == 'uscita') {
if ($records[0]['stato'] != 'Evaso') {
?>
<a class="btn btn-sm btn-primary" data-href="<?php echo $rootdir; ?>/modules/ddt/add_articolo.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>&dir=<?php echo $dir; ?>" data-toggle="modal" data-title="Aggiungi articolo" data-target="#bs-popup">
<i class="fa fa-plus"></i> <?php echo tr('Articolo'); ?>
</a>
<a class="btn btn-sm btn-primary" data-href="<?php echo $rootdir; ?>/modules/ddt/add_riga.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>&dir=<?php echo $dir; ?>" data-toggle="modal" data-title="Aggiungi riga" data-target="#bs-popup">
<i class="fa fa-plus"></i> <?php echo tr('Riga generica'); ?>
</a>
<a class="btn btn-sm btn-primary" data-href="<?php echo $rootdir; ?>/modules/ddt/add_descrizione.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>&dir=<?php echo $dir; ?>" data-toggle="modal" data-title="Aggiungi descrizione" data-target="#bs-popup">
<i class="fa fa-plus"></i> <?php echo tr('Descrizione'); ?>
</a>
<a class="btn btn-primary" data-href="<?php echo $rootdir; ?>/modules/ddt/row-add.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>&is_articolo" data-toggle="modal" data-title="Aggiungi articolo" data-target="#bs-popup"><i class="fa fa-plus"></i> <?php echo tr('Articolo'); ?></a>
<a class="btn btn-primary" data-href="<?php echo $rootdir; ?>/modules/ddt/row-add.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>&is_riga" data-toggle="modal" data-title="Aggiungi riga" data-target="#bs-popup"><i class="fa fa-plus"></i> <?php echo tr('Riga'); ?></a>
<a class="btn btn-primary" data-href="<?php echo $rootdir; ?>/modules/ddt/row-add.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>&is_descrizione" data-toggle="modal" data-title="Aggiungi descrizione" data-target="#bs-popup"><i class="fa fa-plus"></i> <?php echo tr('Descrizione'); ?></a>
<?php
}
?>

57
modules/ddt/row-add.php Normal file
View File

@ -0,0 +1,57 @@
<?php
include_once __DIR__.'/../../core.php';
// Info contratto
$rs = $dbo->fetchArray('SELECT * FROM dt_ddt WHERE id='.prepare($id_record));
$idanagrafica = $rs[0]['idanagrafica'];
if ($module['name'] == 'Ddt di vendita') {
$dir = 'entrata';
} else {
$dir = 'uscita';
}
$_SESSION['superselect']['dir'] = $dir;
// Impostazioni per la gestione
$options = [
'op' => 'addriga',
'action' => 'add',
'dir' => $dir,
'idanagrafica' => $idanagrafica,
];
// Dati di default
$result = [
'descrizione' => '',
'qta' => 1,
'um' => '',
'prezzo' => 0,
'sconto_unitario' => 0,
'tipo_sconto' => '',
'idiva' => '',
];
// Leggo l'iva predefinita per l'anagrafica e se non c'è leggo quella predefinita generica
$iva = $dbo->fetchArray('SELECT idiva_'.($dir == 'uscita' ? 'acquisti' : 'vendite').' AS idiva FROM an_anagrafiche WHERE idanagrafica='.prepare($idanagrafica));
$result['idiva'] = $iva[0]['idiva'] ?: get_var('Iva predefinita');
// Sconto unitario
$rss = $dbo->fetchArray('SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT idlistino_'.($dir == 'uscita' ? 'acquisti' : 'vendite').' FROM an_anagrafiche WHERE idanagrafica='.prepare($idanagrafica).')');
if (!empty($rss)) {
$result['sconto_unitario'] = $rss[0]['prc_guadagno'];
$result['tipo_sconto'] = 'PRC';
}
// Importazione della gestione dedicata
$file = 'riga';
if (isset($get['is_descrizione'])) {
$file = 'descrizione';
} elseif (isset($get['is_articolo'])) {
$file = 'articolo';
$options['op'] = 'addarticolo';
}
echo App::load($file.'.php', $result, $options);

38
modules/ddt/row-edit.php Normal file
View File

@ -0,0 +1,38 @@
<?php
include_once __DIR__.'/../../core.php';
// Info contratto
$rs = $dbo->fetchArray('SELECT * FROM dt_ddt WHERE id='.prepare($id_record));
$idanagrafica = $rs[0]['idanagrafica'];
if ($module['name'] == 'Ddt di vendita') {
$dir = 'entrata';
} else {
$dir = 'uscita';
}
// Impostazioni per la gestione
$options = [
'op' => 'editriga',
'action' => 'edit',
'dir' => $dir,
'idanagrafica' => $idanagrafica,
'edit_articolo' => false,
];
// Dati della riga
$rsr = $dbo->fetchArray('SELECT * FROM dt_righe_ddt WHERE idddt='.prepare($id_record).' AND id='.prepare($get['idriga']));
$result = $rsr[0];
$result['prezzo'] = $rsr[0]['subtotale'] / $rsr[0]['qta'];
// Importazione della gestione dedicata
$file = 'riga';
if (!empty($result['is_descrizione'])) {
$file = 'descrizione';
} elseif (!empty($result['idarticolo'])) {
$file = 'articolo';
}
echo App::load($file.'.php', $result, $options);

View File

@ -24,6 +24,9 @@ $rs = $dbo->fetchArray($q_art);
if (!empty($rs)) {
foreach ($rs as $r) {
$extra = '';
$mancanti = 0;
// Individuazione dei seriali
if (!empty($r['idarticolo']) && !empty($r['abilita_serial'])) {
$serials = array_column($dbo->fetchArray('SELECT serial FROM mg_prodotti WHERE serial IS NOT NULL AND id_riga_ddt='.prepare($r['id'])), 'serial');
@ -177,7 +180,7 @@ if (!empty($rs)) {
}
echo "
<a class='btn btn-xs btn-warning' title='Modifica questa riga...' onclick=\"launch_modal( 'Modifica riga', '".$rootdir.'/modules/ddt/add_riga.php?id_module='.$id_module.'&id_record='.$id_record.'&idriga='.$r['id'].'&dir='.$dir."', 1 );\">
<a class='btn btn-xs btn-warning' title='Modifica questa riga...' onclick=\"launch_modal( 'Modifica riga', '".$rootdir.'/modules/ddt/row-edit.php?id_module='.$id_module.'&id_record='.$id_record.'&idriga='.$r['id']."', 1 );\">
<i class='fa fa-edit'></i>
</a>

View File

@ -38,6 +38,9 @@ if (!empty($rs)) {
$delete = 'unlink_articolo';
$extra = '';
$mancanti = 0;
// Individuazione dei seriali
if (!empty($r['abilita_serial'])) {
$serials = array_column($dbo->fetchArray('SELECT serial FROM mg_prodotti WHERE serial IS NOT NULL AND id_riga_documento='.prepare($r['id'])), 'serial');

View File

@ -33,6 +33,9 @@ if (!empty($rs)) {
</tr>';
foreach ($rs as $r) {
$extra = '';
$mancanti = 0;
// Individuazione dei seriali
if (!empty($r['idarticolo']) && !empty($r['abilita_serial'])) {
$serials = array_column($dbo->fetchArray('SELECT serial FROM mg_prodotti WHERE serial IS NOT NULL AND id_riga_intervento='.prepare($r['id'])), 'serial');

View File

@ -182,9 +182,9 @@ switch (post('op')) {
if (!empty($idarticolo)) {
$_SESSION['infos'][] = tr('Articolo aggiunto!');
} elseif (!empty($qta)) {
$_SESSION['infos'][] = tr('Riga descrittiva aggiunta!');
} else {
$_SESSION['infos'][] = tr('Riga aggiunta!');
} else {
$_SESSION['infos'][] = tr('Riga descrittiva aggiunta!');
}
// Ricalcolo inps, ritenuta e bollo

View File

@ -24,6 +24,9 @@ if (!empty($rs)) {
foreach ($rs as $r) {
$delete = !empty($r['idarticolo']) ? 'unlink_articolo' : 'unlink_riga';
$extra = '';
$mancanti = 0;
// Individuazione dei seriali
if (!empty($r['idarticolo']) && !empty($r['abilita_serial'])) {
$serials = array_column($dbo->fetchArray('SELECT serial FROM mg_prodotti WHERE serial IS NOT NULL AND id_riga_ordine='.prepare($r['id'])), 'serial');

View File

@ -234,9 +234,9 @@ switch (post('op')) {
if (!empty($idarticolo)) {
$_SESSION['infos'][] = tr('Articolo aggiunto!');
} elseif (!empty($qta)) {
$_SESSION['infos'][] = tr('Riga descrittiva aggiunta!');
} else {
$_SESSION['infos'][] = tr('Riga aggiunta!');
} else {
$_SESSION['infos'][] = tr('Riga descrittiva aggiunta!');
}
break;