Aggiunta la gestione della data inventario
This commit is contained in:
parent
94b5e76929
commit
db5e8f7dda
|
@ -162,8 +162,10 @@ switch (post('op')) {
|
|||
Combinazione::sincronizzaVarianti($articolo);
|
||||
|
||||
// Leggo la quantità attuale per capire se l'ho modificata
|
||||
$old_qta = $record['qta'];
|
||||
$movimento = $qta - $old_qta;
|
||||
// TODO: gestire la movimentazione manuale per sede
|
||||
$id_sede = 0;
|
||||
$old_qta = $articolo->getGiacenze(post('data_movimento'));
|
||||
$movimento = $qta - $old_qta[$id_sede][0];
|
||||
|
||||
$qta_manuale = post('qta_manuale');
|
||||
if (!empty($qta_manuale)) {
|
||||
|
|
|
@ -285,20 +285,29 @@ class Articolo extends Model
|
|||
/**
|
||||
* Restituisce le giacenze per sede dell'articolo.
|
||||
*
|
||||
* @param $data Indica la data fino alla quale calcolare le giacenze totali. Di default tutte
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getGiacenze()
|
||||
public function getGiacenze($data = null)
|
||||
{
|
||||
return $this->movimenti()
|
||||
$movimenti = $this->movimenti()
|
||||
->select(
|
||||
'idsede',
|
||||
database()->raw('SUM(qta) AS qta')
|
||||
)->groupBy(['idsede'])
|
||||
->get()
|
||||
)->groupBy(['idsede']);
|
||||
|
||||
if (!empty($data)) {
|
||||
$movimenti = $movimenti->where('data', '<=', \Carbon\Carbon::parse($data)->format('Y-m-d'));
|
||||
}
|
||||
|
||||
$movimenti = $movimenti->get()
|
||||
->mapToGroups(function ($item, $key) {
|
||||
return [$item->idsede => (float) $item->attributes['qta']];
|
||||
})
|
||||
->toArray();
|
||||
|
||||
return $movimenti;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -67,6 +67,10 @@ class CSV extends CSVImporter
|
|||
'field' => 'qta',
|
||||
'label' => 'Quantità',
|
||||
],
|
||||
[
|
||||
'field' => 'data_qta',
|
||||
'label' => 'Data inventario',
|
||||
],
|
||||
[
|
||||
'field' => 'um',
|
||||
'label' => 'Unità di misura',
|
||||
|
@ -309,7 +313,7 @@ class CSV extends CSVImporter
|
|||
$articolo->attivo = 1;
|
||||
|
||||
// Esportazione della quantità indicata
|
||||
$qta_registrata = (float) ($record['qta']);
|
||||
$nuova_qta = (float) ($record['qta']);
|
||||
$nome_sede = $record['nome_sede'];
|
||||
|
||||
// Aggiornamento dettaglio prezzi
|
||||
|
@ -406,10 +410,10 @@ class CSV extends CSVImporter
|
|||
}
|
||||
|
||||
if( isset($record['qta']) ) {
|
||||
$giacenze = $articolo->getGiacenze();
|
||||
$qta_movimento = $qta_registrata - $giacenze[$id_sede][0];
|
||||
$giacenze = $articolo->getGiacenze($record['data_qta']);
|
||||
$qta_movimento = $nuova_qta - $giacenze[$id_sede][0];
|
||||
|
||||
$articolo->movimenta($qta_movimento, tr('Movimento da importazione'), new Carbon(), false, [
|
||||
$articolo->movimenta($qta_movimento, tr('Movimento da importazione'), new Carbon($record['data_qta']), true, [
|
||||
'idsede' => $id_sede,
|
||||
]);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue