|
508 | 508 | $copia->qta_evasa = 0; |
509 | 509 | $copia->costo_unitario = 0; |
510 | 510 |
|
511 | | - // Impostazione al prezzo di acquisto per Articoli |
| 511 | + // Impostazione al prezzo di acquisto per tutte le righe |
512 | 512 | if ($copia->isArticolo()) { |
513 | 513 | $copia->setSconto(0, 'PRC'); |
514 | 514 |
|
|
519 | 519 | $fornitore = DettaglioPrezzo::dettaglioPredefinito($riga->idarticolo, $anagrafica->id, $dir)->first(); |
520 | 520 | } |
521 | 521 |
|
522 | | - $prezzo_unitario = $fornitore->prezzo_unitario - ($fornitore->prezzo_unitario * $fornitore->percentuale / 100); |
| 522 | + // Calcolo del prezzo di acquisto per articoli |
| 523 | + if (!empty($fornitore)) { |
| 524 | + $prezzo_unitario = $fornitore->prezzo_unitario - ($fornitore->prezzo_unitario * $fornitore->percentuale / 100); |
| 525 | + $sconto_percentuale = $fornitore->sconto_percentuale ?: 0; |
| 526 | + } else { |
| 527 | + // Se non c'è un listino specifico per il fornitore, usa il prezzo di acquisto dell'articolo |
| 528 | + $prezzo_unitario = $articolo->prezzo_acquisto; |
| 529 | + $sconto_percentuale = 0; |
| 530 | + } |
523 | 531 |
|
524 | | - $copia->setPrezzoUnitario($fornitore ? $prezzo_unitario : $articolo->prezzo_acquisto, $copia->aliquota->id); |
525 | | - $copia->setSconto($fornitore->sconto_percentuale ?: 0, 'PRC'); |
| 532 | + $copia->setPrezzoUnitario($prezzo_unitario, $copia->aliquota->id); |
| 533 | + $copia->setSconto($sconto_percentuale, 'PRC'); |
| 534 | + } else { |
| 535 | + // Per righe non-articolo, usa il costo unitario se presente, altrimenti mantieni il prezzo di vendita come costo |
| 536 | + $costo_unitario = $riga->costo_unitario ?: $riga->prezzo_unitario; |
| 537 | + $copia->setPrezzoUnitario($costo_unitario, $copia->aliquota->id); |
| 538 | + $copia->setSconto(0, 'PRC'); |
526 | 539 | } |
527 | 540 |
|
528 | 541 | $copia->save(); |
|
583 | 596 | $copia->ora_evasione = null; |
584 | 597 | $copia->confermato = setting('Conferma automaticamente le quantità negli ordini fornitore'); |
585 | 598 |
|
586 | | - // Impostazione al prezzo di acquisto per Articoli |
| 599 | + // Impostazione al prezzo di acquisto per tutte le righe |
587 | 600 | if ($copia->isArticolo()) { |
588 | 601 | $copia->setSconto(0, 'PRC'); |
589 | 602 |
|
|
594 | 607 | $fornitore = DettaglioPrezzo::dettaglioPredefinito($riga->idarticolo, $anagrafica->id, $dir)->first(); |
595 | 608 | } |
596 | 609 |
|
597 | | - $prezzo_unitario = $fornitore->prezzo_unitario - ($fornitore->prezzo_unitario * $fornitore->percentuale / 100); |
| 610 | + // Calcolo del prezzo di acquisto per articoli |
| 611 | + if (!empty($fornitore)) { |
| 612 | + $prezzo_unitario = $fornitore->prezzo_unitario - ($fornitore->prezzo_unitario * $fornitore->percentuale / 100); |
| 613 | + $sconto_percentuale = $fornitore->sconto_percentuale ?: 0; |
| 614 | + } else { |
| 615 | + // Se non c'è un listino specifico per il fornitore, usa il prezzo di acquisto dell'articolo |
| 616 | + $prezzo_unitario = $articolo->prezzo_acquisto; |
| 617 | + $sconto_percentuale = 0; |
| 618 | + } |
598 | 619 |
|
599 | | - $copia->setPrezzoUnitario($fornitore ? $prezzo_unitario : $articolo->prezzo_acquisto, $copia->aliquota->id); |
600 | | - $copia->setSconto($fornitore->sconto_percentuale ?: 0, 'PRC'); |
| 620 | + // Forza l'impostazione dei prezzi di acquisto sovrascrivendo quelli di vendita |
| 621 | + $copia->setPrezzoUnitario($prezzo_unitario, $copia->aliquota->id); |
| 622 | + $copia->setSconto($sconto_percentuale, 'PRC'); |
| 623 | + } else { |
| 624 | + // Per righe non-articolo, usa il costo unitario se presente, altrimenti mantieni il prezzo di vendita come costo |
| 625 | + $costo_unitario = $riga->costo_unitario ?: $riga->prezzo_unitario; |
| 626 | + $copia->setPrezzoUnitario($costo_unitario, $copia->aliquota->id); |
| 627 | + $copia->setSconto(0, 'PRC'); |
601 | 628 | } |
602 | 629 |
|
603 | 630 | $copia->save(); |
|
0 commit comments