Skip to content

Commit 91edf6f

Browse files
committed
fix: visualizzazione quantità disponibile per sede in select articoli nei documenti
1 parent 3a0b2cc commit 91edf6f

5 files changed

Lines changed: 17 additions & 8 deletions

File tree

modules/articoli/ajax/select.php

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -208,12 +208,21 @@
208208
// Eventuali articoli disabilitati
209209
foreach ($rs as $k => $r) {
210210
// Lettura movimenti delle mie sedi
211-
$qta_sede = $dbo->fetchOne('SELECT IFNULL(SUM(`mg_movimenti`.`qta`), 0) AS qta FROM `mg_movimenti` LEFT JOIN `an_sedi` ON `an_sedi`.`id` = `mg_movimenti`.`idsede` WHERE `mg_movimenti`.`idarticolo` = '.prepare($r['id']).' AND `idsede` = '.prepare($superselect['idsede_partenza']))['qta'];
211+
// Per documenti di acquisto (dir=uscita): usa idsede_destinazione
212+
// Per documenti di vendita (dir=entrata): usa idsede_partenza
213+
if ($superselect['dir'] == 'uscita') {
214+
$qta_sede = $dbo->fetchOne('SELECT IFNULL(SUM(`mg_movimenti`.`qta`), 0) AS qta FROM `mg_movimenti` WHERE `mg_movimenti`.`idarticolo` = '.prepare($r['id']).' AND `mg_movimenti`.`idsede` = '.prepare($superselect['idsede_destinazione']))['qta'];
215+
$qta_da_usare = $qta_sede;
216+
} else {
217+
$qta_sede = $dbo->fetchOne('SELECT IFNULL(SUM(`mg_movimenti`.`qta`), 0) AS qta FROM `mg_movimenti` WHERE `mg_movimenti`.`idarticolo` = '.prepare($r['id']).' AND `mg_movimenti`.`idsede` = '.prepare($superselect['idsede_partenza']))['qta'];
218+
$qta_da_usare = $qta_sede;
219+
}
212220

213221
$rs[$k] = array_merge($r, [
214-
'text' => $r['codice'].' - '.$r['descrizione'].' '.(!$r['servizio'] ? '('.Translator::numberToLocale($qta_sede).(!empty($r['um']) ? ' '.$r['um'] : '').')' : '').($r['codice_fornitore'] ? ' ('.$r['codice_fornitore'].')' : ''),
215-
'qta_sede' => $qta_sede,
216-
'disabled' => $qta_sede <= 0 && !$permetti_movimenti_sotto_zero && !$r['servizio'],
222+
'text' => $r['codice'].' - '.$r['descrizione'].' '.(!$r['servizio'] ? '('.Translator::numberToLocale($qta_da_usare).(!empty($r['um']) ? ' '.$r['um'] : '').')' : '').($r['codice_fornitore'] ? ' ('.$r['codice_fornitore'].')' : ''),
223+
'qta' => $qta_da_usare, // Usa la quantità della sede specificata in base alla direzione del documento
224+
'qta_sede' => isset($superselect['idsede_partenza']) || isset($superselect['idsede_destinazione']) ? $qta_sede : null,
225+
'disabled' => $qta_da_usare <= 0 && !$permetti_movimenti_sotto_zero && !$r['servizio'],
217226
]);
218227
}
219228

modules/contratti/edit.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -403,7 +403,7 @@
403403
</div>
404404
405405
<div class="col-md-4">
406-
{[ "type": "select", "label": "'.tr('Articolo').'", "name": "id_articolo", "value": "", "ajax-source": "articoli", "select-options": {"permetti_movimento_a_zero": 1}, "icon-after": "add|'.Module::where('name', 'Articoli')->first()->id.'" ]}
406+
{[ "type": "select", "label": "'.tr('Articolo').'", "name": "id_articolo", "value": "", "ajax-source": "articoli", "select-options": {"permetti_movimento_a_zero": 1, "idsede_partenza": '.intval($record['idsede_partenza']).', "idsede_destinazione": '.intval($record['idsede_destinazione']).', "dir": "entrata", "idanagrafica": '.$record['idanagrafica'].', "idagente": '.$record['idagente'].'}, "icon-after": "add|'.Module::where('name', 'Articoli')->first()->id.'" ]}
407407
</div>
408408
409409
<div class="col-md-3" style="margin-top: 25px">

modules/interventi/edit.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -385,7 +385,7 @@
385385
</div>
386386
387387
<div class="col-md-4">
388-
{[ "type": "select", "label": "'.tr('Articolo').'", "name": "id_articolo", "value": "", "ajax-source": "articoli", "select-options": '.json_encode(['idsede_partenza' => $record['idsede_partenza']]).', "icon-after": "add|'.Module::where('name', 'Articoli')->first()->id.'" ]}
388+
{[ "type": "select", "label": "'.tr('Articolo').'", "name": "id_articolo", "value": "", "ajax-source": "articoli", "select-options": {"permetti_movimento_a_zero": 0, "idsede_partenza": '.intval($record['idsede_partenza']).', "idsede_destinazione": '.intval($record['idsede_destinazione']).', "dir": "entrata", "idanagrafica": '.$record['idanagrafica'].', "idagente": '.$record['idagente'].'}, "icon-after": "add|'.Module::where('name', 'Articoli')->first()->id.'" ]}
389389
</div>
390390
391391
<div class="col-md-4" style="margin-top: 25px">

modules/ordini/edit.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,7 @@
356356
</div>
357357
358358
<div class="col-md-3">
359-
{[ "type": "select", "label": "'.tr('Articolo').'", "name": "id_articolo", "value": "", "ajax-source": "articoli", "select-options": {"permetti_movimento_a_zero": 1}, "icon-after": "add|'.Module::where('name', 'Articoli')->first()->id.'" ]}
359+
{[ "type": "select", "label": "'.tr('Articolo').'", "name": "id_articolo", "value": "", "ajax-source": "articoli", "select-options": {"permetti_movimento_a_zero": 1, "idsede_partenza": '.intval($record['idsede_partenza']).', "idsede_destinazione": '.intval($record['idsede_destinazione']).', "dir": "'.$dir.'", "idanagrafica": '.$record['idanagrafica'].', "idagente": '.$record['idagente'].'}, "icon-after": "add|'.Module::where('name', 'Articoli')->first()->id.'" ]}
360360
</div>
361361
362362
<div class="col-md-4" style="margin-top: 25px">

modules/preventivi/edit.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@
272272
</div>
273273
274274
<div class="col-md-4">
275-
{[ "type": "select", "label": "'.tr('Articolo').'", "name": "id_articolo", "value": "", "ajax-source": "articoli", "select-options": {"permetti_movimento_a_zero": 1}, "icon-after": "add|'.Module::where('name', 'Articoli')->first()->id.'" ]}
275+
{[ "type": "select", "label": "'.tr('Articolo').'", "name": "id_articolo", "value": "", "ajax-source": "articoli", "select-options": {"permetti_movimento_a_zero": 1, "idsede_partenza": '.intval($record['idsede_partenza']).', "idsede_destinazione": '.intval($record['idsede_destinazione']).', "dir": "entrata", "idanagrafica": '.$record['idanagrafica'].', "idagente": '.$record['idagente'].'}, "icon-after": "add|'.Module::where('name', 'Articoli')->first()->id.'" ]}
276276
</div>
277277
278278
<div class="col-md-3" style="margin-top: 25px">

0 commit comments

Comments
 (0)