Bugfix sui seriali

Risoluzione di alcuni problemi nella gestione dei seriali nel passaggio tra documenti.
This commit is contained in:
Thomas Zilio 2017-09-13 09:33:45 +02:00
parent d24ed3cea0
commit 5818082c08
4 changed files with 17 additions and 4 deletions

View File

@ -248,7 +248,10 @@ switch (post('op')) {
$riga = $dbo->lastInsertedID();
// Aggiornamento seriali dalla riga dell'ordine
$dbo->sync('mg_prodotti', ['id_riga_ddt' => $riga, 'dir' => $dir, 'id_articolo' => $idarticolo], ['serial' => (array) $post['serial'][$i]]);
$serials = is_array($post['serial'][$i]) ? $post['serial'][$i] : [];
$serials = array_filter($serials, function ($value) { return !empty($value); });
$dbo->sync('mg_prodotti', ['id_riga_ddt' => $riga, 'dir' => $dir, 'id_articolo' => $idarticolo], ['serial' => $serials]);
// Scalo la quantità dall'ordine
$dbo->query('UPDATE or_righe_ordini SET qta_evasa = qta_evasa+'.$qta.' WHERE id='.prepare($idrigaordine));

View File

@ -828,7 +828,10 @@ switch (post('op')) {
$idriga = add_articolo_infattura($id_record, $idarticolo, $descrizione, $idiva_acquisto, $qta, $prezzo_acquisto, $sconto, $sconto_unitario, $tipo_sconto);
// Aggiornamento seriali dalla riga dell'ordine
$dbo->sync('mg_prodotti', ['id_riga_documento' => $idriga, 'dir' => $dir, 'id_articolo' => $idarticolo], ['serial' => (array) $post['serial'][$i]]);
$serials = is_array($post['serial'][$i]) ? $post['serial'][$i] : [];
$serials = array_filter($serials, function ($value) { return !empty($value); });
$dbo->sync('mg_prodotti', ['id_riga_documento' => $idriga, 'dir' => $dir, 'id_articolo' => $idarticolo], ['serial' => $serials]);
}
// Inserimento riga normale
@ -905,7 +908,10 @@ switch (post('op')) {
$idriga = add_articolo_infattura($id_record, $idarticolo, $descrizione, $idiva_acquisto, $qta, $prezzo_acquisto, $sconto, $sconto_unitario, $tipo_sconto);
// Aggiornamento seriali dalla riga dell'ordine
$dbo->sync('mg_prodotti', ['id_riga_documento' => $idriga, 'dir' => $dir, 'id_articolo' => $idarticolo], ['serial' => (array) $post['serial'][$i]]);
$serials = is_array($post['serial'][$i]) ? $post['serial'][$i] : [];
$serials = array_filter($serials, function ($value) { return !empty($value); });
$dbo->sync('mg_prodotti', ['id_riga_documento' => $idriga, 'dir' => $dir, 'id_articolo' => $idarticolo], ['serial' => $serials]);
// Imposto la provenienza dell'ordine
$dbo->query('UPDATE co_righe_documenti SET idordine='.prepare($idordine).' WHERE id='.prepare($idriga));

View File

@ -168,8 +168,10 @@ if (!empty($rs)) {
echo '
<td>';
if (!empty($r['abilita_serial'])) {
$values = $dbo->fetchArray('SELECT DISTINCT serial FROM mg_prodotti WHERE dir=\''.$dir.'\' AND '.$row.' = \''.$r['id'].'\' AND serial IS NOT NULL AND serial NOT IN (SELECT serial FROM mg_prodotti WHERE serial IS NOT NULL AND dir=\''.$dir.'\' AND '.$data[$pos]['condition'].')');
echo '
{[ "type": "select", "name": "serial['.$i.'][]", "id": "serial_'.$i.'", "multiple": 1, "values": "query=SELECT DISTINCT serial AS id, serial AS descrizione FROM mg_prodotti WHERE dir=\''.$dir.'\' AND '.$row.' = \''.$r['id'].'\' AND serial NOT IN (SELECT serial FROM mg_prodotti WHERE dir=\''.$dir.'\' AND '.$data[$pos]['condition'].' AND dir=\''.$dir.'\')", "extra": "data-maximum=\"'.intval($r['qta_rimanente']).'\"" ]}
{[ "type": "select", "name": "serial['.$i.'][]", "id": "serial_'.$i.'", "multiple": 1, "values": "query=SELECT DISTINCT serial AS id, serial AS descrizione FROM mg_prodotti WHERE dir=\''.$dir.'\' AND '.$row.' = \''.$r['id'].'\' AND serial IS NOT NULL AND serial NOT IN (SELECT serial FROM mg_prodotti WHERE serial IS NOT NULL AND dir=\''.$dir.'\' AND '.$data[$pos]['condition'].')", "value": "'.implode(',', array_column($values, 'serial')).'", "extra": "data-maximum=\"'.intval($r['qta_rimanente']).'\"" ]}
';
} else {
echo '-';

View File

@ -905,6 +905,8 @@ UPDATE `mg_prodotti` SET `serial` = NULL WHERE `serial` = '';
UPDATE `mg_prodotti` SET `lotto` = NULL WHERE `lotto` = '';
UPDATE `mg_prodotti` SET `altro` = NULL WHERE `altro` = '';
DELETE FROM `mg_prodotti` WHERE `serial` IS NULL AND `lotto` IS NULL AND `altro` IS NULL;
ALTER TABLE `co_righe_documenti` DROP `serial`, DROP `altro`, DROP `lotto`;
ALTER TABLE `mg_articoli_interventi` DROP `serial`, DROP `altro`, DROP `lotto`;
ALTER TABLE `dt_righe_ddt` DROP `serial`, DROP `altro`, DROP `lotto`;