Applicazione prezzo da listino con selezione

di il
10 risposte

Applicazione prezzo da listino con selezione

Buongiorno a tutti,

trovo sempre il forum un ottimo strumento per imparare e per trovare soluzioni a quello che cerco, ma stavolta non l'ho trovata quindi chiedo aiuto :D

Vi spiego il problema, in un db ho la maschera dove inserisco i carichi dai fornitori, con diverse funzioni inserisco tutti i prezzi relativi al trasporto, eventuale rappresentante, merce, etc… il problema che mi sorge è sulla merce in quanto con gli stessi parametri potrebbero esistere 2 prezzi diversi.

Esempio di listino:

Data inizio validità ---------------Data fine validità --------------- Merce --------------- Qualità ------- Prezzo ---- Note

01/09/2023 ---------------------------- 31/12/9999 ---------- Tronchi di pioppo ------- Robusta ------- 150 ------- F.co arrivo

01/09/2023 ---------------------------- 31/12/9999 ---------- Tronchi di pioppo ------- Robusta -------- 90 --------  

01/09/2023 ---------------------------- 31/12/9999 ---------- Tronchi di pioppo ------- I214 ------------ 100 --------  

Ora la funzione mi cerca nella query se è presente un listino alla data di carico compreso nelle date, se esiste per merce con o senza qualità. Come si vede dall'esempio esistono 2 record che corrispondono alla ricerca, su uno ci sono delle note e sull'altro no, nell'inserire il prezzo in automatico nel campo prezzo inserisce, come normale, il primo che trova con l'id più basso. Io vorrei che si aprisse un popup che sia popolato da tutti gli eventuali risultati trovato che corrispondano ai criteri di ricerca e selezionandolo inserisca il prezzo nella sottomaschera del carico.

Ho pensato a far aprire una maschera in modalità popup, basata sulla query, in formato tabella dove filtro i risultati in base ai parametri del carico, solo che poi “mi perdo” sul come selezionarlo inserendo il prezzo e chiudendo la maschera per ritornare alla schermata precedente.

Avete suggerimenti da proporre? magari anche una soluzione più snella, sono un pò a corto di idee visto che una cosa “simile” non l'ho mai fatta…

Grazie a tutti in anticipo

10 Risposte

  • Re: Applicazione prezzo da listino con selezione

    In una form in cui inserisco le righe d'ordine ed i relativi prezzi, ho risolto con una combobox nel controllo prezzo. Dopo aver inserito il codice da ordinare, la combo mi mostra gli eventuali prezzi precedenti (se ce ne sono) e quando sono stati acquistati.

  • Re: Applicazione prezzo da listino con selezione

    Il mio problema, fondamentalmente è “l'utenza” le poche persone che devono utilizzarlo hanno bisogno che le cose gli si dicano col cucchiaino per così dire, quindi devo proprio sparargli un messaggio in faccia che li metta alla scelta e compili automaticamente il campo, per questo motivo ho scartato la possibilità a monte.

  • Re: Applicazione prezzo da listino con selezione

    Scusa ma allora non ho capito: 

    05/10/2023 - Nemesi ha scritto:


    Ho pensato a far aprire una maschera in modalità popup, basata sulla query, in formato tabella dove filtro i risultati in base ai parametri del carico, solo che poi “mi perdo” sul come selezionarlo inserendo il prezzo e chiudendo la maschera per ritornare alla schermata precedente.

    Qui parli di fare una selezione del prezzo in base a determinati parametri (quindi io ho capito che la scelta e' demandata all'operatore).

    Poi pero' parli di “utenza” a cui fornire di fatto “la pappa pronta”, anche se non so cosa intendi con:

    05/10/2023 - Nemesi ha scritto:


    devo proprio sparargli un messaggio in faccia che li metta alla scelta e compili automaticamente il campo

    Chi deve decidere quale prezzo inserire a parita' di parametri?

  • Re: Applicazione prezzo da listino con selezione

    05/10/2023 - Mailman ha scritto:


    Qui parli di fare una selezione del prezzo in base a determinati parametri (quindi io ho capito che la scelta e' demandata all'operatore).

    Mi spiego meglio, la prima selezione, avendo compilato i listini, immette automaticamente tutti i prezzi nei loro rispettivi campi senza interazione da parte dell'utente. Il mio problema, come indicato all'inizio, è che potrebbero esistere 2 o più prezzi rispondenti agli stessi parametri. In quel caso sarà l'utente avendo a video le varie possibilità, a scegliere quale prezzo sarà inserito.

    05/10/2023 - Mailman ha scritto:


    Poi pero' parli di “utenza” a cui fornire di fatto “la pappa pronta”, anche se non so cosa intendi con:

    05/10/2023 - Nemesi ha scritto:


    devo proprio sparargli un messaggio in faccia che li metta alla scelta e compili automaticamente il campo

    Intendo proprio una msgbox o un popup di scelta “obbligata” che esponga chiaramente i risultati.

  • Re: Applicazione prezzo da listino con selezione

    Tutto messo in termini troppo generali. Temo personalmente che senza fare un esempio pratico nessuno ti possa aiutate.

  • Re: Applicazione prezzo da listino con selezione

    Scusa se mi intrometto al tuo modo di pensare….

    Vai dal meccanico, ti fa un preventivo. Quel preventivo è il listino a te dedicato. Che prezzo deve fare l'addetto alla fatturazione? Penso quello del pezzo di carta che ti hanno lasciato con su scritto “preventivo”.

    Come fai ad avere due listini? Il nuovo annulla il vecchio preventivo.

    Come ci rimarresti se il negoziante ti dicesse che lo stesso prodotto puoi comprarlo 10 euro o 15 euro e sta cercando di capire quale listino usare?

    Non è chiaro il concetto che stai usando per automatizzare l'inserimento dei prezzi.

    Devi avere una tabella listini con, al più, una data di inizio validità da filtrare per data più recente. Metti un campo ultima modifica come data o quello che vuoi ma alla fine devi avere solo un prezzo di listino, anzi, nessuno deve poterlo modificare. Se fai acquisti on line, dall'altra parte non c'è l'omino che ti digita il prezzo nell'istante che aggiungi qualcosa al carrello.

    Rivedi il concetto di listino.

  • Re: Applicazione prezzo da listino con selezione

    Mi vengono in mente solo due casistiche per un esigenza del genere.

    Listini dello stesso prodotto personalizzati per cliente o zone, oppure listini di approvvigionamento e vendita di materie prime che variano di prezzo in base alla qualità del prodotto. Quindi suddivisibili in prima scelta, seconda scelta e così via.

    Indipendentemente dalla tipologia di listino, trovo però curioso il fatto di dover avere una lista di prezzi, visto che se poi l'utente che deve scegliere, se non sa cosa scegliere sei punto a capo.

    Quindi, o crei dei listini separati dal quale, oltre gli altri dati, ricavi in automatico anche il prezzo corrispondente, quindi la query verrà filtrata in base al cliente o alla zona o alla qualità del prodotto, oppure cambi operatori…..

    A parte la battuta finale.
    Ti vorrei proporre una alternativa più semplice da realizzare e forse un pochino più intuitiva e che generebbe a mio avviso meno incertezze.

    Invece di aprire un'altra finestra, ti consiglio di aggiungere alla form rincipale, una list box a fianco ai dati da immettere.

    Quando si effettua la ricerca dei vari prezzi, l'operatore si vedrà popolare la list box con i vari prezzi e potrà tranquillamente selezionare quello giusto ed in caso di ripensamenti avrà sempre sott'occhio i dati che gli interessano.

    Ti consiglio una list box, perchè tutto si risolverebbe con due comandi, perchè tutti i controlli interessati sono già aperti nella stessa form, senza dover fare nessun passaggio di dati tra finestre diverse, che implica un lavoro un pochino più di fino.

    Infatti con la list box, suddivisa in più colonne, ti basterà selezionare il prezzo desiderato e nell'evento click della list box, inserire un semplicissimo codice tipo CasellaPrezzo=( Me.CasellaCombinata) e se hai più colonne nella list box, passare il valore della colonna desiderata in questa maniera CasellaPrezzo=(me.CasellaCombinata.Column(numero colonna e riga).

  • Re: Applicazione prezzo da listino con selezione

    06/10/2023 - fratac ha scritto:


    Indipendentemente dalla tipologia di listino, trovo però curioso il fatto di dover avere una lista di prezzi, visto che se poi l'utente che deve scegliere, se non sa cosa scegliere sei punto a capo.

    Infatti non ha senso.

    Il listino è sempre uno, che sia fisso, per quantità o per zone avrà sempre un solo prezzo.

    Alla quantità si avrà una select in base alla quantità.

    Da 1 a 3 pz 5 euro

    Da 4 a 10 pz 4,80 euro

    Ecc…

    Alla zona il prezzo lo dovrebbe determinare il trasporto.

    La penna costa sempre 1 euro, il trasporto dipende dalla zona dai colli e se in contrassegno, ecc.. ma la penna sarà sempre 1 euro anche se ritira chi compra.

    Quindi una voce a parte per zone, colli o pedane e pedane epal o industriali, trasporti particolari. O ingombranti.

    Ma alla fine, in automatico, ci sarà solo un prezzo.

  • Re: Applicazione prezzo da listino con selezione

    06/10/2023 - fratac ha scritto:


    oppure cambi operatori…..

    in realtà lo farei, ma l'operatore in questione è “il capo” che sta ad un pc come una tartaruga ai 100 metri olimpionici…

    battute a parte, cerco di rispondere il più chiaramente possibile per spiegarmi, perchè mi capita su più fronti lo stesso problema…

    Parto dal trasporto, il vettore ci ha dato dei prezzi con partenza da una provincia (Napoli) con consegna in un altra provincia (Catania) € 1.500,00, poi però per un unico cliente in provincia di catania, che è più lontano ma sempre in provincia di Catania, chiede € 1.550,00, quindi nella stessa provincia ci sono 2 tariffe, una “per tutti” ed una “per un singolo cliente” ora, io metterei il filtro anche in base al cliente, ma al momento dell'inserimento dell'acquisto il cliente non è presente.

    Esempio sulla merce, il fornitore ci dice che il prezzo per i tronchi di pioppo con um a Tn e qualità robusta il prezzo f.co partenza è di € 100,00 mentre invece stessa merce, con stessa um, e stessa qualità ma con differenza che è f.co arrivo da uno specifico cliente è di € 130,00, così si verifica il caso che cercavo di spiegare.

    L'operatore, al caricamento dell'acquisto sà già la merce dove và perchè il carico parte direttamente per quel cliente, ma come per il trasporto mentre si carica l'acquisto nella sottomascher degli acquisti, non è ancora inserito il cliente nella sottomaschera delle vendite.

    La scelta volevo metterla proprio per fare in modo che il programma avvisasse l'operatore che esistono X prezzi per le scelte già effettuate presentandole a video e lasciando scegliere all'operatore quali tra quelle selezionare leggendo le eventuali note indicate al momento dell'inserimento del listino.

    Questa è la tabella sulla quale è basata la query

    questa invece la function che inserisce il prezzo

    Public Function PrezzoFornitori()
    On Error GoTo ErrorHandler
        Dim Risp_List
            With CodeContextObject
                If .NewRecord = False Then
                    If IsNull(.CA_ID_Prodotto) Then
                        .CA_Prezzo = 0
                    Else
                        'verifica il prezzo da listino, verificando se esiste un listino alla data della ricerca per fornitore/prodotto/qualità
                        If IsNull(DLookup("Prezzo", "Q_ListF", "ID_ListinoF=" & .CA_ID_CliFor & "And ID_Prodotti=" & .CA_ID_Prodotto & "And ID_ProdQual=" & Nz(.CA_Prodotto_DAgg, 0) & "And #" & .Parent!C_Data & "# Between[DataInizio] And [DataFine]")) Then
                            'avvisa che non esiste un listino alla data per il fornitore/prodotto/qualità inserito e chiede se vuole inserire il listino
                            Risp_List = MsgBox("Non è presente nessun Listino per il Fornitore/Prodotto/Qualità." & vbNewLine & vbNewLine & "Si vuole inserire ora?", vbYesNo, "Avviso")
                                Select Case Risp_List
                                    Case vbYes
                                        DoCmd.OpenForm "ListF", acNormal, "", "id_CliFor =" & .CA_ID_CliFor, acEdit, acDialog
                                        .Requery
                                    Case vbNo
                                        .CA_Prezzo = 0
                                            If DLookup("Qualita", "ordProd_Prodotti", "ID_Prodotti=" & .CA_ID_Prodotto) = False Then
                                                .CA_Prodotto_DAgg.Enabled = False
                                                .CA_Prodotto_DAgg = ""
                                            Else
                                                .CA_Prodotto_DAgg.Enabled = True
                                            End If
    
                                        If IsNull(DLookup("Prezzo", "Q_ListF", "ID_ListinoF=" & .CA_ID_CliFor & "And ID_Prodotti=" & .CA_ID_Prodotto & "And #" & .Parent!C_Data & "# Between[DataInizio] And [DataFine]")) Then
                                            Else
                                            Risp_List = MsgBox("E' presente un Listino per il Fornitore/Prodotto." & vbNewLine & vbNewLine & "Si vuole inserire quello?", vbYesNo, "Avviso")
                                                Select Case Risp_List
                                                    Case vbYes
                                                        .CA_Prezzo = DLookup("Prezzo", "Q_ListF", "ID_ListinoF=" & .CA_ID_CliFor & "And ID_Prodotti=" & .CA_ID_Prodotto & "And IsNull(ID_ProdQual)" & "And #" & .Parent!C_Data & "# Between[DataInizio] And [DataFine]")
                                                    Case vbNo
                                                        .CA_Prezzo = 0
                                                End Select
                                        End If
                                End Select
                        Else
                            'inserisce il prezzo da listino nel campo prezzo
                            .CA_Prezzo = DLookup("Prezzo", "Q_ListF", "ID_ListinoF=" & .CA_ID_CliFor & "And ID_ProdottI=" & .CA_ID_Prodotto & "And ID_ProdQual=" & Nz(.CA_Prodotto_DAgg, 0) & "And #" & .Parent!C_Data & "# Between[DataInizio] And [DataFine]")
                        End If
                    End If
                End If
            End With
    
    ErrorHandler:
        Call ErrHandler(Err.Number)
    End Function

    Ringrazio tutti sperando di essere riuscito a spiegarmi meglio

  • Re: Applicazione prezzo da listino con selezione

    06/10/2023 - Nemesi ha scritto:


    Parto dal trasporto, il vettore ci ha dato dei prezzi con partenza da una provincia (Napoli) con consegna in un altra provincia (Catania) € 1.500,00, poi però per un unico cliente in provincia di catania, che è più lontano ma sempre in provincia di Catania, chiede € 1.550,00, quindi nella stessa provincia ci sono 2 tariffe, una “per tutti” ed una “per un singolo cliente” ora, io metterei il filtro anche in base al cliente, ma al momento dell'inserimento dell'acquisto il cliente non è presente.

    Come fai a creare un listino per clienti finali e per grossisti? fai lo stesso per il trasporto! crea il listino trasporti personalizzato per cliente magari gli metti nrlistinotrasporti=codicecliente=nrlistinoprodotti=modalitadipagamento (anche quello puo' essere personalizzato) ecc…

    06/10/2023 - Nemesi ha scritto:


    Esempio sulla merce, il fornitore ci dice che il prezzo per i tronchi di pioppo con um a Tn e qualità robusta il prezzo f.co partenza è di € 100,00 mentre invece stessa merce, con stessa um, e stessa qualità ma con differenza che è f.co arrivo da uno specifico cliente è di € 130,00, così si verifica il caso che cercavo di spiegare.

    esempio: 5 euro a collo + 1 euro a kg fino a 30 colli e 1 euro al metro cubo…. fai tanti record quante sono le opzioni. quando emetterai il documento avrai:

    penne pz. 100 a € (prezzo preso dal listino per quantità fra 50 e 500 unità)

    confezioni: 10    colli 1 peso 0.3 kg    volume 0.2m3 ecc…

    in fondo al ddt avrai totale colli totale peso totale volume ecc… poi selezioni se colli sfusi o pedane area geografica ecc..  in sede di spese trasporo che vai a prelevare dal listino trasporti (ovvio che se non esiste ti carichi la nuova condizione trasporto dal pulsantino “nuovo” o “inserisci”)

    il trasporto deve interagire con l'operatore. supponi che il vetore xy non puo' fare la spedizione perche' ha i mezzi guasti, devi utilizzare il vettore nm. ma il costo lo prendi da un insieme di record proposti presi dal listino personalizzato.

    per lavoro ho vettori a temperatura frigo, -20 e ambiente. in base ai prodotti seleziono il corriere in cima alla lista piu' economico.

    06/10/2023 - Nemesi ha scritto:


    Questa è la tabella sulla quale è basata la query

    non serve data fine ma data inizio (è buona norma avvisare il cliente che dal giorno x aumentano o diminuiscono i prezzi) quando esegui la query filtri per data piu' recente.

    prima che me lo chiedi: i prezzi diminuiscono se per esempio il supermercato fa offerte dal al a basso costo.

    idlistino    data     iniziovalidità     zona   (questa fa riferimento al luogo di destinazione merce non alla sede del cliente e presa da una tabella che per corriere accorpa una o piu' zone)  prezzozona     peso     prezzopeso      volume    prezzovolume     corriere      ecc…

    in altre parole, prendi il preventivo del corriere e da li vedi i dati che ti servono (le condizioni che ti fanno).

    poi una tabella cliente listinotrasporti per la relazione m-m

    la stessa struttura va per clienti articoli.

Devi accedere o registrarti per scrivere nel forum
10 risposte