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