Fix movimentazione articoli

This commit is contained in:
Pek5892 2023-12-04 17:40:24 +01:00
parent 8d7740b271
commit e752db93c0
5 changed files with 24 additions and 13 deletions

View File

@ -413,12 +413,13 @@ switch (filter('op')) {
$new_riga = $riga->replicate();
$new_riga->setDocument($ddt);
$new_riga->qta_evasa = 0;
$new_riga->save();
if ($new_riga->isArticolo()) {
$new_riga->movimenta($new_riga->qta);
}
$new_riga->save();
$riga = null;
}
@ -507,12 +508,12 @@ switch (filter('op')) {
$copia_riga->original_id = null;
$copia_riga->original_type = null;
$copia_riga->save();
// Movimentazione forzata in direzione del documento
if ($copia_riga->isArticolo()) {
$copia_riga->movimenta($copia_riga->qta);
}
$copia_riga->save();
}
// Salvataggio riferimento
@ -544,11 +545,12 @@ switch (filter('op')) {
$new_riga->qta_evasa = 0;
$new_riga->idordine = 0;
$new_riga->save();
if ($new_riga->isArticolo()) {
$new_riga->movimenta($new_riga->qta);
}
$new_riga->save();
}
flash()->info(tr('DDT duplicato correttamente!'));

View File

@ -160,10 +160,12 @@ foreach ($righe as $riga) {
$evasione_bar['or_righe_ordini'] = 'success';
foreach ($evasione_bar as $table => $color) {
$righe_ev = $dbo->table($table)->where('original_id', $riga->id)->where('original_type', get_class($riga))->get();
$perc_ev = $righe_ev->sum('qta') * 100 / $riga->qta;
if ($perc_ev > 0) {
echo '
<div class="progress-bar progress-bar-'.$color.'" style="width:'.$perc_ev.'%"></div>';
if ($righe_ev->count() > 0) {
$perc_ev = $righe_ev->sum('qta') * 100 / $riga->qta;
if ($perc_ev > 0) {
echo '
<div class="progress-bar progress-bar-'.$color.'" style="width:'.$perc_ev.'%"></div>';
}
}
}
echo '

View File

@ -389,11 +389,12 @@ switch ($op) {
$new_riga->idintervento = 0;
$new_riga->idddt = 0;
$new_riga->idordine = 0;
$new_riga->save();
if ($new_riga->isArticolo()) {
$new_riga->movimenta($new_riga->qta);
}
$new_riga->save();
}
flash()->info(tr('Fattura duplicata correttamente!'));
@ -694,12 +695,13 @@ switch ($op) {
$new_riga = $riga->replicate();
$new_riga->setDocument($fattura);
$new_riga->qta_evasa = 0;
$new_riga->save();
if ($new_riga->isArticolo()) {
$new_riga->movimenta($new_riga->qta);
}
$new_riga->save();
$riga = null;
}

View File

@ -459,12 +459,13 @@ switch (post('op')) {
$new_riga = $riga->replicate();
$new_riga->setDocument($intervento);
$new_riga->qta_evasa = 0;
$new_riga->save();
if ($new_riga->isArticolo()) {
$new_riga->movimenta($new_riga->qta);
}
$new_riga->save();
$riga = null;
}
@ -980,11 +981,12 @@ switch (post('op')) {
$new_riga->setDocument($new);
$new_riga->qta_evasa = 0;
$new_riga->save();
if ($new_riga->isArticolo()) {
$new_riga->movimenta($new_riga->qta);
}
$new_riga->save();
}
}

View File

@ -308,10 +308,12 @@ abstract class Article extends Accounting
->groupBy('idarticolo')
->sum('qta');
$qta_modifica = $this->attributes['qta']-$this->original['qta'];
//Se la quantità supera la giacenza in sede allora movimento solo quello che resta
if (($qta_sede + $qta_finale) < 0 && $qta_sede >= 0) {
$qta_finale = -$qta_sede;
$this->attributes['qta'] = $this->original['qta'] + abs($qta_finale);
$this->attributes['qta'] = $qta_sede + ($qta_modifica != 0 ? $this->original['qta'] : 0);
}
// Se la quantità sede per qualche motivo è negativa correggo la quantità della riga con la differenza
@ -332,6 +334,7 @@ abstract class Article extends Accounting
'reference_id' => $documento->id,
'idsede' => $id_sede,
]);
}
protected static function boot()