diff --git a/modules/articoli/ajax/select.php b/modules/articoli/ajax/select.php index 80d62f3ec..8c7fd0d8a 100755 --- a/modules/articoli/ajax/select.php +++ b/modules/articoli/ajax/select.php @@ -256,4 +256,21 @@ switch ($resource) { } break; + + case 'fornitori-articolo': + $query = 'SELECT an_anagrafiche.idanagrafica AS id, an_anagrafiche.ragione_sociale AS descrizione, (mg_prezzi_articoli.prezzo_unitario-(mg_prezzi_articoli.prezzo_unitario*mg_prezzi_articoli.sconto_percentuale)/100) AS prezzo_unitario FROM mg_prezzi_articoli LEFT JOIN an_anagrafiche ON mg_prezzi_articoli.id_anagrafica=an_anagrafiche.idanagrafica |where| ORDER BY an_anagrafiche.ragione_sociale'; + + foreach ($elements as $element) { + $filter[] = 'an_anagrafiche.idanagrafica='.prepare($element); + } + + $where[] = 'dir="uscita"'; + $where[] = 'minimo IS NULL'; + $where[] = 'massimo IS NULL'; + $where[] = 'id_articolo='.prepare($superselect['id_articolo']); + + if (!empty($search)) { + $search_fields[] = 'an_anagrafiche.ragione_sociale LIKE '.prepare('%'.$search.'%'); + } + break; } diff --git a/modules/articoli/edit.php b/modules/articoli/edit.php index 9c96e74c4..b4cbfdf31 100755 --- a/modules/articoli/edit.php +++ b/modules/articoli/edit.php @@ -175,7 +175,7 @@ include_once __DIR__.'/../../core.php';
- {[ "type": "select", "label": "", "name": "id_fornitore", "value": "$id_fornitore$", "ajax-source": "fornitori", "icon-after": "add||tipoanagrafica=Fornitore&readonly_tipo=1", "help": "." ]} + {[ "type": "select", "label": "", "name": "id_fornitore", "ajax-source": "fornitori-articolo", "select-options": $id_record]); ?>, "value":"$id_fornitore$", "help": "." ]}
@@ -457,3 +457,21 @@ if (!empty($elementi)) { + + \ No newline at end of file diff --git a/plugins/dettagli_articolo/actions.php b/plugins/dettagli_articolo/actions.php index c701a4228..55a997820 100755 --- a/plugins/dettagli_articolo/actions.php +++ b/plugins/dettagli_articolo/actions.php @@ -64,26 +64,30 @@ switch (filter('op')) { $modifica_prezzi = filter('modifica_prezzi'); if (empty($modifica_prezzi)) { - $dbo->query('DELETE FROM mg_prezzi_articoli WHERE id_articolo='.$id_articolo.' AND id_anagrafica='.$id_anagrafica); - return; + $dbo->query('DELETE FROM mg_prezzi_articoli WHERE id_articolo='.prepare($id_articolo).' AND id_anagrafica='.prepare($id_anagrafica).' AND minimo IS NULL AND massimo IS NULL'); + } else { + // Salvataggio del prezzo predefinito + $prezzo_unitario = filter('prezzo_unitario_fisso'); + $sconto = filter('sconto_fisso'); + $dettaglio_predefinito = DettaglioPrezzo::dettaglioPredefinito($id_articolo, $id_anagrafica, $direzione) + ->first(); + if (empty($dettaglio_predefinito)) { + $dettaglio_predefinito = DettaglioPrezzo::build($articolo, $anagrafica, $direzione); + } + $dettaglio_predefinito->sconto_percentuale = $sconto; + $dettaglio_predefinito->setPrezzoUnitario($prezzo_unitario); + $dettaglio_predefinito->save(); + if($articolo->id_fornitore==$anagrafica->idanagrafica && $direzione=='uscita'){ + $prezzo_unitario = $prezzo_unitario-($prezzo_unitario*$sconto/100); + $articolo->prezzo_acquisto=$prezzo_unitario; + $articolo->save(); + } } - // Salvataggio del prezzo predefinito - $prezzo_unitario = filter('prezzo_unitario_fisso'); - $sconto = filter('sconto_fisso'); - $dettaglio_predefinito = DettaglioPrezzo::dettaglioPredefinito($id_articolo, $id_anagrafica, $direzione) - ->first(); - if (empty($dettaglio_predefinito)) { - $dettaglio_predefinito = DettaglioPrezzo::build($articolo, $anagrafica, $direzione); - } - $dettaglio_predefinito->sconto_percentuale = $sconto; - $dettaglio_predefinito->setPrezzoUnitario($prezzo_unitario); - $dettaglio_predefinito->save(); - // Salvataggio dei prezzi variabili - $prezzo_fisso = filter('prezzo_fisso'); + $prezzo_qta = filter('prezzo_qta'); $dettagli = DettaglioPrezzo::dettagli($id_articolo, $id_anagrafica, $direzione); - if (!empty($prezzo_fisso)) { + if (!empty($prezzo_qta)) { $prezzi_unitari = (array) filter('prezzo_unitario'); $minimi = filter('minimo'); $massimi = filter('massimo'); diff --git a/plugins/dettagli_articolo/dettaglio_prezzi.php b/plugins/dettagli_articolo/dettaglio_prezzi.php index 634e557c0..1c1aff5f7 100644 --- a/plugins/dettagli_articolo/dettaglio_prezzi.php +++ b/plugins/dettagli_articolo/dettaglio_prezzi.php @@ -34,24 +34,49 @@ $direzione = get('direzione') == 'uscita' ? 'uscita' : 'entrata'; $articolo = Articolo::find($id_articolo); $anagrafica = Anagrafica::find($id_anagrafica); -$prezzo_predefinito = $prezzi_ivati ? $articolo->prezzo_vendita_ivato : $articolo->prezzo_vendita; - +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(); -$prezzo_dettaglio_predefinito = $prezzo_predefinito; -if (!empty($dettaglio_predefinito)) { - $prezzo_dettaglio_predefinito = $prezzi_ivati ? $dettaglio_predefinito->prezzo_unitario_ivato : $dettaglio_predefinito->prezzo_unitario; +if($articolo->id_fornitore==$anagrafica->idanagrafica){ + $color='success'; + $icon='check'; + $text= tr('Sì'); +} else { + $color='danger'; + $icon='times'; + $text= tr('No'); } - echo ' -

'.tr('Informazioni relative al _TIPO_', [ - '_TIPO_' => $direzione=='entrata' ? 'cliente:' : 'fornitore:' , - ]).' -
'.$anagrafica->ragione_sociale.'

+ + + + '; + if($direzione=='uscita'){ + echo ''; + } else{ + echo ''; + } + echo ' + + + + '; + if($direzione=='uscita'){ + echo ''; + } else{ + echo ''; + } + echo ' + +
'.($direzione=='entrata' ? tr('Cliente') : tr('Fornitore')).''.tr('Prezzo predefinito').''.tr('Fornitore predefinito').'
'.$anagrafica->ragione_sociale.''.moneyFormat($prezzo_predefinito).' '.$text.'
@@ -64,23 +89,25 @@ echo '
- {[ "type": "checkbox", "label": "'.tr("Imposta prezzo per questa anagrafica").'", "name": "modifica_prezzi", "value": "'.intval(!$dettagli->isEmpty() || !empty($dettaglio_predefinito)).'" ]} -
-
- {[ "type": "checkbox", "label": "'.tr('Imposta un prezzo in base alla quantità').'", "name": "prezzo_fisso", "value": "'.intval($dettagli->count() != 0).'" ]} + {[ "type": "checkbox", "label": "'.tr("Imposta prezzo per questa anagrafica").'", "name": "modifica_prezzi", "value": "'.intval(!empty($dettaglio_predefinito)).'" ]}
-
-
- {[ "type": "number", "label": "'.tr('Prezzo predefinito').'", "name": "prezzo_predefinito", "value": "'.$prezzo_predefinito.'", "disabled":"1"]} -
-
- {[ "type": "number", "label": "'.tr('Prezzo specifico').'", "name": "prezzo_unitario_fisso", "value": "'.($prezzi_ivati ? $dettaglio_predefinito->prezzo_unitario_ivato : $dettaglio_predefinito->prezzo_unitario).'", "icon-after": "'.currency().'", "help": "'.($prezzi_ivati ? tr('Importo IVA inclusa') : '').'" ]} -
+
+
+
+ {[ "type": "number", "label": "'.tr('Prezzo specifico').'", "name": "prezzo_unitario_fisso", "value": "'.($prezzi_ivati ? $dettaglio_predefinito->prezzo_unitario_ivato : $dettaglio_predefinito->prezzo_unitario).'", "icon-after": "'.currency().'", "help": "'.($prezzi_ivati ? tr('Importo IVA inclusa') : '').'" ]} +
-
- {[ "type": "number", "label": "'.tr('Sconto specifico').'", "name": "sconto_fisso", "value": "'.$dettaglio_predefinito->sconto_percentuale.'", "icon-after": "%"]} +
+ {[ "type": "number", "label": "'.tr('Sconto specifico').'", "name": "sconto_fisso", "value": "'.$dettaglio_predefinito->sconto_percentuale.'", "icon-after": "%"]} +
+
+
+ +
+
+ {[ "type": "checkbox", "label": "'.tr('Imposta un prezzo in base alla quantità').'", "name": "prezzo_qta", "value": "'.intval($dettagli->count() != 0).'" ]}
@@ -211,21 +238,19 @@ function rimuoviPrezzo(button) { function cambioImpostazioni() { let modifica_prezzi = input("modifica_prezzi"); - let prezzo_fisso = input("prezzo_fisso"); + let prezzo_qta = input("prezzo_qta"); let prezzo_unitario_fisso = input("prezzo_unitario_fisso"); let sconto_fisso = input("sconto_fisso"); let prezzi_variabili = $("#prezzi"); - if (!modifica_prezzi.get()){ - $("#imposta_prezzo_qta").hide(); - $("#info_prezzi").hide(); + if (!modifica_prezzi.get()){ + $(".info_prezzi").hide(); } else { - $("#imposta_prezzo_qta").show(); - $("#info_prezzi").show(); + $(".info_prezzi").show(); } - if (prezzo_fisso.get() && modifica_prezzi.get()) { + if (prezzo_qta.get()) { prezzi_variabili.removeClass("hidden"); } else { prezzi_variabili.addClass("hidden"); @@ -236,7 +261,7 @@ input("modifica_prezzi").change(function () { cambioImpostazioni(); }) -input("prezzo_fisso").change(function () { +input("prezzo_qta").change(function () { cambioImpostazioni(); }) diff --git a/plugins/dettagli_articolo/edit.php b/plugins/dettagli_articolo/edit.php index 5f9948079..abf0393a5 100755 --- a/plugins/dettagli_articolo/edit.php +++ b/plugins/dettagli_articolo/edit.php @@ -23,12 +23,7 @@ use Plugins\DettagliArticolo\DettaglioPrezzo; include_once __DIR__.'/../../core.php'; $id_articolo = $id_record; - echo ' -

'.tr("In questa sezione è possibile definire dei dettagli aggiuntivi per l'articolo in relazione ad una specifica anagrafica del gestionale").'.

-

'.tr("Per i Clienti è possibile definire un prezzo personalizzato per la vendita dell'articolo, fisso oppure in relazione a una specifica quantità").'. '.tr("Per i Fornitori sono disponibili maggiori informazioni relative a codice, descrizione e quantità minime richieste per l'acquisto").'.

-

'.tr("Queste informazioni sono integrate con il resto del gestionale per garantire una maggiore flessibilità all'utente finale").'.

-
-

'.tr("In questa sezione è possibile definire le caratteristiche di base dell'articolo in relazione fornitore di origine, come codice e prezzo di acquisto predefinito").'. '.tr("Queste informazioni saranno utilizzate in automatico per la compilazione dell'articolo al momento dell'inserimento in un documento di acquisto relativo al fornitore indicato, sovrascrivendo le impostazioni predefinite della sezione Acquisto per l'articolo").'.

-

'.tr('Informazioni specifiche per fornitore').'