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

View File

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

View File

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

View File

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

View File

@ -308,10 +308,12 @@ abstract class Article extends Accounting
->groupBy('idarticolo') ->groupBy('idarticolo')
->sum('qta'); ->sum('qta');
$qta_modifica = $this->attributes['qta']-$this->original['qta'];
//Se la quantità supera la giacenza in sede allora movimento solo quello che resta //Se la quantità supera la giacenza in sede allora movimento solo quello che resta
if (($qta_sede + $qta_finale) < 0 && $qta_sede >= 0) { if (($qta_sede + $qta_finale) < 0 && $qta_sede >= 0) {
$qta_finale = -$qta_sede; $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 // 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, 'reference_id' => $documento->id,
'idsede' => $id_sede, 'idsede' => $id_sede,
]); ]);
} }
protected static function boot() protected static function boot()