diff --git a/modules/interventi/actions.php b/modules/interventi/actions.php index 7f0528004..811b3ac95 100644 --- a/modules/interventi/actions.php +++ b/modules/interventi/actions.php @@ -32,6 +32,7 @@ use Modules\Interventi\Intervento; use Modules\Interventi\Stato; use Modules\TipiIntervento\Tipo as TipoSessione; use Plugins\ComponentiImpianti\Componente; +use Plugins\ListinoClienti\DettaglioPrezzo; use Plugins\PianificazioneInterventi\Promemoria; switch (post('op')) { @@ -629,18 +630,39 @@ switch (post('op')) { $id_record = $intervento->id; } + // Evado le righe solo se il documento originale non è un Ordine fornitore + $evadi_qta_parent = true; + if (post('op') == 'add_intervento') { + $evadi_qta_parent = false; + } + $righe = $documento->getRighe(); foreach ($righe as $riga) { if (post('evadere')[$riga->id] == 'on' and !empty(post('qta_da_evadere')[$riga->id])) { $qta = post('qta_da_evadere')[$riga->id]; - $copia = $riga->copiaIn($intervento, $qta); + $copia = $riga->copiaIn($intervento, $qta, $evadi_qta_parent); - // Aggiornamento seriali if ($copia->isArticolo()) { + // Aggiornamento seriali $serials = is_array(post('serial')[$riga->id]) ? post('serial')[$riga->id] : []; - $copia->serials = $serials; + + // Aggiornamento prezzi se il documento originale è un Ordine fornitore + if (post('op') == 'add_intervento') { + $articolo = $copia->articolo; + + $cliente = DettaglioPrezzo::dettagli($riga->idarticolo, $anagrafica->id, 'entrata', $qta)->first(); + if (empty($cliente)) { + $cliente = DettaglioPrezzo::dettaglioPredefinito($riga->idarticolo, $anagrafica->id, 'entrata')->first(); + } + + $prezzo_unitario = $cliente->prezzo_unitario - ($cliente->prezzo_unitario * $cliente->percentuale / 100); + + $copia->setPrezzoUnitario($cliente ? $prezzo_unitario : $cliente->prezzo_vendita, $copia->aliquota->id); + $copia->setSconto($cliente->sconto_percentuale ?: 0, 'PRC'); + $copia->costo_unitario = $riga->prezzo_unitario ?: 0; + } } $copia->save();