328 lines
12 KiB
C#

namespace Consulenza.ReportCommon
{
public class Opzione
{
public string param { get; set; }
}
/// <summary>
/// Opzione che indica se il report deve essere stampato in forma anonima o nominativa.
/// </summary>
public class Opzione1 : Opzione {
public bool ReportAnonimo { get { return (param=="N"); } }//s nominativo, n anonimo
}
// <summary>
/// Opzione che indica se il report deve essere stampato in forma anonima o nominativa.
/// </summary>
public class Opzione10 : Opzione
{
public int[] idSchede { get { return (param == "N" ? new int[] { 118 } : new int[] { 117, 118 }); } }
}
/// <summary>
/// Opzione che restituisce la ChiaveProposta quando il tipo di report richiesto è Proposta.
/// </summary>
public class Opzione2 : Opzione {
public long ChiaveProposta { get { return long.Parse(param); } }
}
public class Opzione3 : Opzione {
public bool Valore { get { return !(param == "N"); } }
}
public class Opzione3_1 : Opzione3 {}
public class Opzione3_2 : Opzione3 {}
public class Opzione3_3 : Opzione3 {}
public class Opzione3_4 : Opzione3 {}
public class Opzione3_5 : Opzione3 {}
public class Opzione4 : Opzione {
public bool Valore { get { return !(param == "N"); } }
}
public class Opzione4_1 : Opzione4 { }
public class Opzione4_2 : Opzione { public bool Valore { get { return (param == "S"); } } }
public class Opzione4_3 : Opzione { public bool Valore { get { return (param == "S"); } } }
public class Opzione4_4 : Opzione4 { }
public class Opzione4_5 : Opzione4 { }
public class Opzione4_6 : Opzione4 { }
public class Opzione4_7 : Opzione4 { }
public class Opzione4_8 : Opzione { public bool Valore { get { return (param == "S"); } } }
public class Opzione4_9 : Opzione4 { }
public class Opzione5 : Opzione {
public string Valore { get { return param; } }
}
public class Opzione5_1 : Opzione5 {
public OrizzonteTemporale OrizzonteTemporale
{
get
{
switch (param)
{
case "6":
return new OrizzonteTemporale
{
mesi = 6,
anni = 0,
desc = "sei mesi"
};
case "12":
return new OrizzonteTemporale();
case "36":
return new OrizzonteTemporale
{
mesi = 36,
anni = 3,
desc = "tre anni"
};
case "60":
return new OrizzonteTemporale {
mesi = 60,
anni = 5,
desc = "cinque anni"
};
case "84":
return new OrizzonteTemporale {
mesi = 84,
anni = 7,
desc = "sette anni"
};
case "108":
return new OrizzonteTemporale {
mesi = 108,
anni = 9,
desc = "nove anni"
};
case "120":
return new OrizzonteTemporale {
mesi = 120,
anni = 10,
desc = "dieci anni"
};
default:
return new OrizzonteTemporale();
}
}
}
}
public class Opzione5_2 : Opzione5_1 { }
public class Opzione5_3 : Opzione5 { }
public class Opzione6 : Opzione {
public string Valore { get { return param; } }
}
public class Opzione6_1 : Opzione6 {
public DettaglioValute DettaglioValute{
get
{
switch (param)
{
case "6":
return DettaglioValute.PrimeSei;
case "T":
return DettaglioValute.Tutte;
default:
return DettaglioValute.PrimeSei;
}
}
}
}
public class Opzione6_2 : Opzione6 {
public RaggruppaProdotti RaggruppaProdotti{
get
{
switch (param)
{
case "I":
return RaggruppaProdotti.AreaBisogno;
case "A":
return RaggruppaProdotti.Categoria;
case "O":
return RaggruppaProdotti.Contratto;
default:
return RaggruppaProdotti.AreaBisogno;
}
}
}
}
public class Opzione6_3 : Opzione6 {
public ProdottiPatrimonio ProdottiPatrimonio{
get
{
switch (param)
{
case "10":
return ProdottiPatrimonio.PrimiDieci;
case "T":
return ProdottiPatrimonio.Tutti;
default:
return ProdottiPatrimonio.PrimiDieci;
}
}
}
}
public class Opzione6_4 : Opzione6 {
public MonitoraggiInterrotti MonitoraggiInterrotti
{
get
{
switch (param)
{
case "3":
return MonitoraggiInterrotti.UltimiTre;
case "T":
return MonitoraggiInterrotti.Tutti;
default:
return MonitoraggiInterrotti.UltimiTre;
}
}
}
}
public class Opzione6_5 : Opzione6
{
public Raggruppamento raggruppamento
{
get
{
switch (param)
{
case "B":
return Raggruppamento.AreaBisogno;
case "C":
return Raggruppamento.Contratto;
case "P":
return Raggruppamento.TipologiaProdotto;
default:
return Raggruppamento.AreaBisogno;
}
}
}
}
public class Opzione12 : Opzione {
public string Valore { get { return param; } }
public bool Area { get { return param.IndexOf("01")>=0; } }
public bool ContrattoDossier { get { return param.IndexOf("02")>=0; } }
public bool NomeProdotto { get { return true; } }//DEFAULT OBBLI
public bool CodIsin { get { return param.IndexOf("03")>=0; } }
public bool DistrCedoleDividendi { get { return param.IndexOf("04")>=0; } }
public bool RatingMorningstar { get { return param.IndexOf("05")>=0; } }
public bool NumqQuantValnom { get { return param.IndexOf("06")>=0; } }
public bool QuotaPrezzoEuro { get { return param.IndexOf("07")>=0; } }
public bool ControvaloreAttuale { get { return true; } }//DEFAULT OBBLI
public bool DataAgg { get { return param.IndexOf("08")>=0; } }
public bool VersatoNettoSott { get { return param.IndexOf("09")>=0; } } //DEFAULT
public bool UtilePerditaSott { get { return param.IndexOf("10")>=0; } } //DEFAULT
public bool RendAnnualSott { get { return param.IndexOf("11")>=0; } } //DEFAULT
public bool DataSott { get { return param.IndexOf("12")>=0; } } //DEFAULT
public bool VersatoNettoAssoc { get { return param.IndexOf("13")>=0; } }
public bool UtilPerditaAssoc { get { return param.IndexOf("14")>=0; } }
public bool RendCumAssoc { get { return param.IndexOf("15")>=0; } }
public bool DataAssoc { get { return param.IndexOf("16")>=0; } }
public bool RendInizioTrimestre { get { return param.IndexOf("17")>=0; } }
public bool RendInizioAnno { get { return param.IndexOf("18")>=0; } }
public bool VaR { get { return param.IndexOf("19")>=0; } }//DEFAULT
public bool RischioCredito { get { return param.IndexOf("20")>=0; } }
public bool Complessità { get { return param.IndexOf("21")>=0; } }
public bool ValoriDiCarico { get { return param.IndexOf("22") >= 0; } }
public bool UtilePerditaCaricoEuro { get { return param.IndexOf("23") >= 0; } }
public bool UtilePerditaCaricoPerc { get { return param.IndexOf("24") >= 0; } }
public RaggruppaProdotti RaggruppaProdotti
{
get
{
var paramList = param.Split(',');
switch (paramList[paramList.Length-2])
{
case "A":
return RaggruppaProdotti.Categoria;
case "O":
return RaggruppaProdotti.Contratto;
default:
return RaggruppaProdotti.AreaBisogno;
}
// if (param.IndexOf("A") >= 0) return RaggruppaProdotti.Categoria;
// else if (param.IndexOf("O") >= 0) return RaggruppaProdotti.Contratto;
// return RaggruppaProdotti.AreaBisogno;
}
}
public VisualizzazioneProdotti VisualizzioneProdotti
{
get
{
var paramList = param.Split(',');
switch (paramList[paramList.Length-1])
{
case "A":
return VisualizzazioneProdotti.PosizioniAttive;
case "SL":
return VisualizzazioneProdotti.PosizioniLiquidate;
case "CL":
return VisualizzazioneProdotti.ContrattiLiquidati;
default:
return VisualizzazioneProdotti.All;
}
}
}
}
#region Enumeratori
public class OrizzonteTemporale
{
public int mesi = 12;
public int anni = 1;
public string desc = "un anno";
}
public enum DettaglioValute {
PrimeSei,
Tutte
}
public enum RaggruppaProdotti {
AreaBisogno,
Categoria,
Contratto
}
public enum VisualizzazioneProdotti
{
All,
PosizioniLiquidate,
ContrattiLiquidati,
PosizioniAttive
}
public enum ProdottiPatrimonio {
PrimiDieci,
Tutti
}
public enum MonitoraggiInterrotti {
UltimiTre,
Tutti
}
public enum Raggruppamento
{
AreaBisogno,
Contratto,
TipologiaProdotto
}
#endregion
}