Aggiunta una limitazione sulle quantità scaricabili nei documenti di vendita

This commit is contained in:
Beppe 2023-11-30 11:59:08 +01:00
parent e4ace9b192
commit dcfa03b2b9
2 changed files with 16 additions and 1 deletions

View File

@ -67,6 +67,8 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k
## 2.4.52 ## 2.4.52
### Aggiunto (Added) ### Aggiunto (Added)
### Modificato (Changed) ### Modificato (Changed)
- Aggiunta una limitazione sulle quantità scaricabili nei documenti di vendita in modo da non poter vendere più articoli di quelli presenti fisicamente nel magazzino selezionato. Questa limitazione è legata all'impostazione **Permetti selezione articoli con quantità minore o uguale a zero in Documenti di Vendita**
### Fixed ### Fixed
- Risolto il problema di visualizzazione dei PDF negli allegati - Risolto il problema di visualizzazione dei PDF negli allegati
- Risolto un problema di movimentazione magazzino: gli articoli nelle attività venivano sempre movimentati da sede legale anche se specificata diversa sede di partenza nel documento (solo da popup di modifica articolo) - Risolto un problema di movimentazione magazzino: gli articoli nelle attività venivano sempre movimentati da sede legale anche se specificata diversa sede di partenza nel documento (solo da popup di modifica articolo)

View File

@ -300,8 +300,21 @@ abstract class Article extends Accounting
// Fix per valori di sede a NULL // Fix per valori di sede a NULL
$id_sede = $id_sede ?: 0; $id_sede = $id_sede ?: 0;
$qta_finale = $qta_movimento;
$this->articolo->movimenta($qta_movimento, $movimento, $data, false, [ if( !setting('Permetti selezione articoli con quantità minore o uguale a zero in Documenti di Vendita') && $documento->direzione == 'entrata' ){
$qta_sede = Movimento::where('idarticolo', $this->articolo->id)
->where('idsede',$id_sede)
->groupBy('idarticolo')
->sum('qta');
if( ($qta_sede + $qta_finale) < 0 ){
$qta_finale = -$qta_sede;
$this->attributes['qta'] = $this->original['qta'] + abs($qta_finale);
}
}
$this->articolo->movimenta($qta_finale, $movimento, $data, false, [
'reference_type' => get_class($documento), 'reference_type' => get_class($documento),
'reference_id' => $documento->id, 'reference_id' => $documento->id,
'idsede' => $id_sede, 'idsede' => $id_sede,