|
92 | 92 | break; |
93 | 93 |
|
94 | 94 | case 'change_prezzo': |
95 | | - foreach ($id_records as $id) { |
96 | | - $listino = DettaglioPrezzo::find($id); |
97 | | - |
98 | | - $prezzo_unitario_new = $listino->prezzo_unitario + ($listino->prezzo_unitario * post('percentuale') / 100); |
| 95 | + $applica_sconto_prezzo = post('applica_sconto_prezzo', false); |
| 96 | + $percentuale = post('percentuale'); |
99 | 97 |
|
100 | | - $listino->setPrezzoUnitario($prezzo_unitario_new); |
101 | | - $listino->save(); |
| 98 | + foreach ($id_records as $id) { |
| 99 | + $dettaglio = DettaglioPrezzo::find($id); |
| 100 | + |
| 101 | + if ($applica_sconto_prezzo) { |
| 102 | + // Applica lo sconto direttamente al prezzo e azzera lo sconto percentuale |
| 103 | + $prezzo_unitario_new = $dettaglio->prezzo_unitario - ($dettaglio->prezzo_unitario * $percentuale / 100); |
| 104 | + $dettaglio->setPrezzoUnitario($prezzo_unitario_new); |
| 105 | + $dettaglio->sconto_percentuale = 0; |
| 106 | + } else { |
| 107 | + // Imposta lo sconto percentuale |
| 108 | + $dettaglio->sconto_percentuale = $percentuale; |
| 109 | + } |
| 110 | + |
| 111 | + $dettaglio->save(); |
| 112 | + |
| 113 | + // Se il listino è il fornitore predefinito dell'articolo, aggiorna il prezzo di acquisto |
| 114 | + $articolo = Articolo::find($dettaglio->id_articolo); |
| 115 | + if ($articolo->id_fornitore == $dettaglio->id_anagrafica && $dettaglio->dir == 'uscita') { |
| 116 | + if ($applica_sconto_prezzo) { |
| 117 | + $prezzo_acquisto_calcolato = $prezzo_unitario_new; |
| 118 | + } else { |
| 119 | + $prezzo_acquisto_calcolato = $dettaglio->prezzo_unitario - ($dettaglio->prezzo_unitario * $percentuale / 100); |
| 120 | + } |
| 121 | + $articolo->prezzo_acquisto = $prezzo_acquisto_calcolato; |
| 122 | + $articolo->save(); |
| 123 | + } |
102 | 124 | } |
103 | 125 |
|
104 | 126 | flash()->info(tr('Listini aggiornati!')); |
|
134 | 156 | $operations['change_prezzo'] = [ |
135 | 157 | 'text' => '<span><i class="fa fa-refresh"></i> '.tr('Aggiorna prezzo unitario').'</span>', |
136 | 158 | 'data' => [ |
137 | | - 'title' => tr('Aggiornare il prezzo unitario per i listini selezionati?'), |
138 | | - 'msg' => tr('Per indicare uno sconto inserire la percentuale con il segno meno, al contrario per un rincaro inserire la percentuale senza segno.').'<br><br>{[ "type": "number", "label": "'.tr('Percentuale sconto/magg.').'", "name": "percentuale", "required": 1, "icon-after": "%" ]}', |
| 159 | + 'title' => tr('Aggiornare lo sconto percentuale per i listini selezionati?'), |
| 160 | + 'msg' => tr('Per indicare un rincaro inserire la percentuale con il segno meno, al contrario per uno sconto inserire la percentuale senza segno.').'<br><br>{[ "type": "number", "label": "'.tr('Percentuale sconto/magg.').'", "name": "percentuale", "required": 1, "icon-after": "%" ]} |
| 161 | + {[ "type": "checkbox", "label": "'.tr('Applica sconto direttamente al prezzo').'", "name": "applica_sconto_prezzo", "help": "'.tr('Se selezionato, lo sconto viene applicato direttamente al prezzo e lo sconto percentuale viene azzerato.').'" ]}', |
139 | 162 | 'button' => tr('Procedi'), |
140 | 163 | 'class' => 'btn btn-lg btn-warning', |
141 | 164 | 'blank' => false, |
|
0 commit comments