Mettiamo che hai recuperato i dati dal db e li hai salvati inizializzando delle proprietà di una classe, ad esempio
Considera due cose:codice:public class CalcoloProvvigini { private List<float> mScaglioni { get; set; } private List<float> mPercentuali { get; set; } private float mFatturato { get; set; } public CalcoloProvvigini(string Agente) { /* inizializzando la classe puoi passare come argomento l'agente di cui estrarre il fatturato mensile e, quindi, richiamare un metodo della classe che recupera tutti i dati dal db per i calcoli */ RecuperaDati(Agente); } private void RecuperaDati(string ag) { // qui recuperi i dati dal db e valorizzi le proprità scaglioni e fatturato } public Dictionary<string, float> Provvigioni(float fatturato = null) { // ho indicato un argomento facoltativo perchè in caso tu volessi // per qualsiasi motivo passare un valore diverso lo puoi fare fatturato = fatturato != null ? fatturato : mFatturato; // controllo che sia stao valorizzato il parametro degli scaglioni if (mScaglioni == null || mPercentuali == null) { return; } float a, b c; Dictionary<string, float> result = new Dictionary<string, float>(); if (fatturato <= mScaglioni[0]) { a = fatturato * (mPercentuali[0] / 100); result.Add("Scaglione1", a); } else if (fatturato > mScaglioni[0] && fatturato <= mScaglioni[1]) { a = mScaglioni[0] * (mPercentuali[0] / 100); b = (fatturato - mScaglioni[0]) * (mPercentuali[1] / 100); result.Add("Scaglione1", a); result.Add("Scaglione2", b); } else if (fatturato > mScaglioni[1]) { a = mScaglioni[0] * (mPercentuali[0] / 100); b = mScaglioni[1] * (mPercentuali[1] / 100); c = (fatturato - mscaglioni[1]) * (mPercentuali[2] / 100); result.Add("Scaglione1", a); result.Add("Scaglione2", b); result.Add("Scaglione3", c); } return result; } }
- ho scritto una cosa al volo e senza controllarla perchè l'ho scritta direttamente qui nel forum
- ho dato per scontato che gli scaglioni sono tre, se non sono sempre uguali per categoria il sistema deve essere rivisto
Chiaramente è un'idea, una traccia che ti potrebbe servire coma spunto, di certo non la soluzione definitiva....

Rispondi quotando
