Gestione listini multipli

di il
2 risposte

Gestione listini multipli

Un saluto a tutti

riferendomi a questo 3D (ForumDatabase & Office AutomationMicrosoft Access https://www.iprogrammatori.it/forum-programmazione/access/gestione-piu-listini-t21511.html)[/color] ho ben chiaro la necessità di aggiungere la data di validità del prezzo perché mi è successo proprio l'inconveniente descritto da 'gibra' : avendo aggiornato il listino, il mio paziente ha ricevuto una fattura d'importo maggiore di quello concordato e la contestazione non si è fatta attendere. Quindi ho fatto mie le indicazioni suggerite. La mia necessità, però, è leggermente diversa: avendo delle convenzioni con enti e assicurazioni, è l'intero listino che cambia, anche se di poco, e non solo alcune voci come mi pare di aver capito e dedotto dalla presenza del codice cliente in tabella. Come gestire n listini ? Lo schema riportato da 'opera prima' mi sembra logicamente appropriato, ma come tradurlo in tabelle. In tal caso, come modificare il singolo prezzo di quel determinato listino: bisogna crearne uno nuovo con quella singola modifica ?
Spero di essere stato sufficientemente chiaro.

2 Risposte

  • Re: Gestione listini multipli

    Nella tabella dei prezzi è indispensabile avere le due date di Inizio e Fine validità, poi dovrà esserci il campo IDListino.
    Quest'ultimo farà riferimento alla tabella Listini (IDListino e Descrizione) in cui il primo listino (IDListino=0) si riferisce al listino di costo (o acquisto) , mentre tutti gli altri listini (dal 1 in avanti) sono quelli che utilizzerai per i clienti (privati, aziene, ecc.).
    Questo ti assicura una gestione dinamica di creazione listini e prezzi.

    Ovviamente, se vuoi gestire i listini personalizzati per cliente, allora dovrai includere anche il campo IDCliente (FK).
    Per il listino 'standard', l'IDCliente deve essere 0.

    La riga del singolo prezzo va sempre inserita (mai modificata) ex-novo con la data corrente (oggi) come inizio validità e 31/12/9999 come data di fine validità.
    Allo stesso tempo, nel prezzo precedente devi modificare la data di fine validità sostituendola con quella precedente (oggi -1) .
    Esempio, prendiamo questo articolo:
    
    IDPrezzo IDArticolo IDListino IDCliente DataIniz   DataFine  Prezzo
    1        1          1         0         01/01/2017 31/12/9999 50.00
    
    Quando inserirai il nuovo prezzo (IDPrezzo 2) deve accadere questo:
    
    IDPrezzo IDArticolo IDListino IDCliente DataIniz   DataFine  Prezzo
    1        1          1         0         01/01/2017 31/12/2017 50.00
    2        1          1         0         01/01/2018 31/12/9999 55.00
    
    Quindi i record da modificare sono 2.

    A questo punto, durante la compilazione sarà semplice caricare il prezzo corretto in base alla data del documento, applicando la condizione:
    WHERE DataDocumento BETWEEN DataIniz AND DataFine.
    Ciò ti eviterà di sbagliare prezzo anche se stai modificando un vecchio documento (purché tu abbia registrato correttamente le variazioni di prezzo con le date di validità, ovviamente).

    Tutto ciò solo per la determinazione del prezzo da listino, quindi senza considerare la questione Ultimo Prezzo e relativo Sconto...
  • Re: Gestione listini multipli

    Ho adattato tutto un po' alle mie esigenze e sono venute fuori tre tabelle:

    1) LISTINO - nome(PK), data, note
    2) PRESTAZIONE - ID, CodAlfa/PK), Descrizione, GruppoLavoro, TempoLavoro
    3) PREZZO - ID(PK), Prestazione_id, Listino_id, Prezzo, DataIns, DataExp

    In sostanza il mio archivio dovrebbe funzionare così:
    in altra tabella è previsto un campo che raccoglie l'insieme delle prestazioni sotto forma di sigle (tipo AB, RE, CHX, etc) che viene analizzato all'OK
    Identificata la prestazione nel suddetto campo (poniamo CHX) si ricava l'indice dalla relativa tabella che, unitamente a quello del tipo di listino già ricavato da una ulteriore tabella, si ottiene il prezzo corrente della prestazione. Ovviamente questo dato va ulteriormente trattato per gli scopi.

    Ti ringrazio per i preziosi consigli e spero così di di aver progettato qualcosa di buono.
Devi accedere o registrarti per scrivere nel forum
2 risposte