Obiettivi da raggiungere
Il principale obiettivo da raggiungere è la produzione di una libreria che dovrà gestire e coordinare la generazione delle righe di scadenza da proporre all’applicazione interfacciata.
Iniziamo con l’analisi dei giocatori:
Metodo di pagamento
Il metodo di pagamento è, lo dice la parola stessa, la modalità concordata per regolare il pagamento, in altre parole il “modo” in cui dovrà essere fatto il pagamento
A titolo esemplificativo enumero, probabilmente in modo non esaustivo, alcuni metodi di pagamento.
- Rimessa Diretta - il cliente paga direttamete
- Bonifico bancario
- Rid (addebito diretto in conto dell'improto fatturato)
- Mav (la banca emette un avviso che il cliente paga presso una qualsiasi banca)
- RIBA (Ricevute bancarie alla scadenza viene addebitato il conto)
- Bollettino Postale o Freccia (si tratta di due metodi similari, l’uno valido per la posta, l’altro per tutte le altre banche, i due circuiti sono alternativi )
Il metodo di pagamento in conclusione descrive il “come” deve avvenire il pagamento.
E’ del tutto ovvio che la tabella che dovrà gestire una simile struttura di dati è semplicissima
Metodi di pagamento
Campo | Descrizione |
CodiceMetodo | PK, Codice univoco |
Descrizione | Testo relativo alla descrizione interna |
TipoMetodo | Indicatore numerico intero, riferimento al valore dell’ enumerazione dei tipi metodo |
Descrizioni in lingua metodi di pagamento
Campo | Descrizione |
CodiceMetodo | PK, Riferimento al metodo |
CodiceLingua | PK, Codice Iso dello stato della lingua, il codice iso della lingua è un attributo dell’anagrafica clienti, il valore blank su questo campo indica le descrizioni in lingua italiana |
Descrizione | Descrizione metodo di pagamento alternativa per ciascuna lingua |
Enumerazione TipiMetodo
Si può scegliere la via “software” con la creazione all’interno del proprio progetto di un oggetto di tipo Enum,
Esempio VB.NET
Public Enum TipiMetodo
Indefinito = 0
Rimessa
RiBa
Mav
Posta
Freccia
Rid
Bonifico
End Enum
Esempio C#
public enum TipiMetodo
{
Indefinito = 0,
Rimessa,
RiBa,
Mav,
Posta,
Freccia,
Rid,
Bonifico
}
E’ possibile inoltre scegliere di gestire la stessa struttura tramite una normale tabella di descrizioni tipi metodo referenziata dalla tabella Metodi di pagamento
Campo | Descrizione |
TipoMetodo | Pk |
Descrizione | Descrizione metodo |
Termine di pagamento
Se il metodo di pagamento indica il “come” deve avvenire il pagamento , il termine di pagamento rappresenta invece il “quando” e cioè regola tutti gli aspetti relativi alla scadenza del pagamento.
Tabella Termini di pagamento
Campo | Descrizione |
CodiceTermini | Pk |
Descrizione | Descrizione termini di pagamento |
NumeroRate | Indica il numero di rate, default 1 |
InizioCalcolo | Valore che parametrizza la data inizio del calcolo, valori ammessi: 0 data riferimento - 1 – fine mese |
Ciascun termine di pagamento descrive il calcolo che porterà alla determinazione della scadenza; la sua struttura cioè deve riuscire a stabilire con esattezza la data in cui si prevede debba avvenire il pagamento.
Tabella Rate Termini Pagamento
Campo | Descrizione |
Codice | PK1 |
Rata | PK2 |
CodiceFormula | Riferimento alla formula ogni riga di formula descrive una singola applicazione |
Tabella formula calcolo rate
Campo | Descrizione |
CodiceFormula | PK |
Formula | Stringa con codificata una formula che associata ad un parser determina il calcolo Ad esempio sono possibili: +1M (un mese in più) FM (fine mese ) +1MFM (+ 1 mese, poi fine mese) +20G (+ 20 giorni) I mesi sono considerati come “numero mese” e non mesi di 30 giorni 28 febbraio diventa 31 marzo (fine mese) e poi 30 aprile |
E’ ovvio che una simile situazione comporta lo stabilire delle formule e delle regole da applicarsi.
Abitualmente e convenzionalmente per i termini di pagamento sono valutati gli elementi
Campo | Descrizione |
Data riferimento | È la data di riferimento per il calcolo delle rate / scadenze, di solito è basata sulla data della fattura ma … visto che siamo in Italia la variabilità è ovviamente massima, la data di riferimento può essere: - La data della fattura - La data di consegna - La data dell’ordine |
Anticipato | Il pagamento anticipato interrompe qualsiasi calcolo |
|
|
Ovviamente questa struttura prevede una gestione tabellare che andremo a realizzare nel prossimo articolo.
In attesa delle parti successive, mi piacerebbe avere il parere di chi, interessato, è arrivato fino a questo punto. Valuteremo eventuali proposte di implementazioni o strutture di dati alternative.