diff --git a/plugins/listino_fornitori/actions.php b/plugins/listino_fornitori/actions.php index 94d828668..5782f9b1f 100644 --- a/plugins/listino_fornitori/actions.php +++ b/plugins/listino_fornitori/actions.php @@ -64,4 +64,34 @@ switch (filter('op')) { case 'update_prezzi': require base_dir().'/plugins/listino_clienti/actions.php'; break; + + case 'update_prezzi': + require base_dir().'/plugins/listino_clienti/actions.php'; + + $id_articolo = filter('id_articolo'); + $articolo = Articolo::find($id_articolo); + + $id_anagrafica = filter('id_anagrafica'); + $precedente = DettaglioFornitore::where('id_articolo', $id_record) + ->where('id_fornitore', $id_anagrafica) + ->first(); + + if (empty($precedente)) { + $anagrafica = Anagrafica::find($id_anagrafica); + + $fornitore = DettaglioFornitore::build($anagrafica, $articolo); + } else { + $fornitore = $precedente; + } + + $fornitore->codice_fornitore = post('codice_fornitore'); + $fornitore->barcode_fornitore = post('barcode_fornitore'); + $fornitore->descrizione = post('descrizione'); + $fornitore->qta_minima = post('qta_minima'); + $fornitore->giorni_consegna = post('giorni_consegna'); + + $fornitore->save(); + + flash()->info(tr('Informazioni salvate correttamente!')); + break; } diff --git a/plugins/listino_fornitori/dettaglio_prezzi_fornitore.php b/plugins/listino_fornitori/dettaglio_prezzi_fornitore.php new file mode 100644 index 000000000..d1f10ce60 --- /dev/null +++ b/plugins/listino_fornitori/dettaglio_prezzi_fornitore.php @@ -0,0 +1,333 @@ +. + */ + +use Modules\Anagrafiche\Anagrafica; +use Modules\Articoli\Articolo; +use Plugins\ListinoClienti\DettaglioPrezzo; + +include_once __DIR__.'/../../core.php'; + +// Informazioni di base +$id_articolo = get('id_articolo'); +$id_anagrafica = get('id_anagrafica'); +$direzione = get('direzione') == 'uscita' ? 'uscita' : 'entrata'; +$prezzi_ivati = ($direzione == 'entrata' ? setting('Utilizza prezzi di vendita comprensivi di IVA') : 0); + +// Modelli di interesse +$articolo = Articolo::find($id_articolo); +$anagrafica = Anagrafica::find($id_anagrafica); + +if ($direzione == 'entrata') { + $prezzo_predefinito = $prezzi_ivati ? $articolo->prezzo_vendita_ivato : $articolo->prezzo_vendita; +} else { + $prezzo_predefinito = $articolo->prezzo_acquisto; +} +// Individuazione dei prezzi registrati +$dettagli = DettaglioPrezzo::dettagli($id_articolo, $id_anagrafica, $direzione) + ->get(); + +$dettaglio_predefinito = DettaglioPrezzo::dettaglioPredefinito($id_articolo, $id_anagrafica, $direzione) + ->first(); +if ($articolo->id_fornitore == $anagrafica->idanagrafica) { + $color = 'success'; + $icon = 'check'; + $text = tr('Sì'); +} else { + $color = 'danger'; + $icon = 'times'; + $text = tr('No'); +} + +$id_riga = $dbo->fetchOne( + 'SELECT id + FROM mg_fornitore_articolo + WHERE id_articolo = '.prepare($id_articolo).' + AND id_anagrafica = '.prepare($id_anagrafica) +)['id']; + +$fornitore = []; +if (!empty($id_riga)) { + $fornitore = DettaglioFornitore::find($id_riga); +} else { + $fornitore = $articolo->dettaglioFornitore($id_anagrafica); +} + +if ($fornitore['descrizione'] == '') { + $descrizione = json_encode($articolo->descrizione); +} else { + $descrizione = json_encode($fornitore['descrizione']); +} + +if ($fornitore['codice_fornitore'] == '') { + $codice = $articolo['codice']; +} else { + $codice = $fornitore['codice_fornitore']; +} + +echo ' +
'.($direzione == 'entrata' ? tr('Cliente') : tr('Fornitore')).' | +'.tr('Prezzo predefinito').' | '; + if ($direzione == 'uscita') { + echo ''.tr('E\' il fornitore predefinito?').' | '; + } else { + echo ''.tr('Fornitore predefinito').' | '; + } + echo ' +
---|---|---|---|
'.$anagrafica->ragione_sociale.' | +'.moneyFormat($prezzo_predefinito).' | '; + if ($direzione == 'uscita') { + echo ''.$text.' | '; + } else { + echo ''.(!empty($articolo->id_fornitore) ? Anagrafica::find($articolo->id_fornitore)->ragione_sociale : tr('Nessuno')).' | '; + } + echo ' +
+ {[ "type": "number", "name": "minimo[-id-]", "min-value": 0 ]} + | + ++ {[ "type": "number", "name": "massimo[-id-]", "min-value": 0 ]} + | + ++ {[ "type": "number", "name": "prezzo_unitario[-id-]", "icon-after": "'.currency().'" ]} + | + ++ {[ "type": "number", "name": "sconto[-id-]", "min-value": 0, "icon-after": "%" ]} + | + ++ + | +