domenica 22 luglio 2007

Appunti e analisi - creazione di una libreria per la generazione di uno scadenzario parte 1

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.

1 commento:

Anonimo ha detto...

Bastianello ciao.
vorrei sapere se tu hai l'algoritmo di controllo dei bollettini freccia relativi ai cin importo intermedioe complessivo
grazie

nino