using DataAccessLayer; using PDFGenerator.BusinessLayer.DataSection; using System; using System.Collections.Generic; using System.Data; using System.Globalization; using System.Linq; using System.Text; namespace PDFGenerator.BusinessLayer { public class DataThreadModel : ICloneable { #region private members private string _rete; private string _nomeRete; private string _agente; private string _cognomeAgente; private string _nomeAgente; private string _indirizzoAgente; private string _capAgente; private string _cittaAgente; private string _telefonoAgente; private string _codiceFiscale; private string _cognomeCliente; private string _nomeCliente; private string _tipoReport; private string _dataLotto; private bool _profiloIsAct; private List _reportsType; private String _intermediario; private String _area; private String _areaestesa; private String _progetto; private int _idReportPDFDiagnosi; private int _idReportPDFMonitoraggio; private decimal _patrimoniocomplessivototalectv; private decimal _patrimoniofinanziarioctv; private decimal _patrimoniobancafideuramctv; private decimal _patrimoniobancafideuramctvalnettocontocorrente; private decimal _patrimonioterzictv; private decimal _patrimonioterzicontocorrente; private decimal _patrimonioterzictvalnettocontocorrente; private decimal _patrimonioimmobiliarectv; private decimal _patrimonioaltroctv; private decimal _contoCorrente; private decimal _partiteviaggiantiinvestimento; private decimal _partiteviaggiantidisinvestimento; private decimal _patrimonioNonRappresentabileAI; private decimal _patrimonioNonRappresentabileCompl; private decimal _patrimonioNonRappresentabileFI; private decimal _patrimonioNonRappresentabile; private decimal _risorseNonAssociate; private int _numeroIntermediari; private bool adesioneSuccessivaAvanzato; private bool generaDiagnosi; private decimal _totaleS6; private decimal _totaleS57; private DataTable _pesopercentuale; private DataTable _rischiorelativo; private DataTable _controvaloritotali; private DateTime _datafinetrimestrecorrente; private bool periodico; private DocumentPDF _documentPDF; private string _CodiceContratto; //private string _NomeFileReport; private DataSectionResult _data; private SezioneReport _sezioneReport; private decimal _varrisorsenonassociate; private decimal _coperturarisorsenonassociate; private decimal _vartotalerisorsefinanziarie; private decimal _coperturatotalerisorsefinanziarie; private string _flgprof; private DataTable _schema; private decimal _totalNegativeCurrentAccountValue; private decimal _totalSelfNegCurrentAccountValue; private decimal _GPEligoFondi; private decimal _GPEligoTitoli; private decimal _GradoCoperturaMacroAssetInterno; private decimal _GradoCoperturaMacroAssetTotale; private decimal _GradoCoperturaMacroAssetAltri; private string _codice; // MIOFOGLIO 20181130 private List> _selfNegativeValue; //--MIOFOGLIO 20181130 private string _ultimaSezioneStampata; private DataAccessDE dataAccess; #endregion #region public members public int NumeroIntermediari { get { return _numeroIntermediari; } set { _numeroIntermediari = value; } } /// /// Imposta o recupera il controvalore totale delle risorse non associate. /// public decimal RisorseNonAssociate { get { return _risorseNonAssociate; } set { _risorseNonAssociate = value; } } public decimal TotaleS57 { get { return _totaleS57; } set { _totaleS57 = value; } } public decimal TotaleS6 { get { return _totaleS6; } set { _totaleS6 = value; } } /// /// Imposta o recupera un indicatore booleano che indica se va generato anche il report di DIAGNOSI per la fase2. /// public bool GeneraDiagnosi { get { return generaDiagnosi; } set { generaDiagnosi = value; } } public string Flgprof { get { return _flgprof; } set { _flgprof = value; } } /// /// Imposta o recupera il nome del progetto d'investimento. /// public String Progetto { get { return _progetto; } set { _progetto = value; } } public bool profiloIsAct { get { return _profiloIsAct; } set { _profiloIsAct = value; } } /// /// Imposta o recupera il controvalore del PatrimonioNonRappresentabile /// public decimal PatrimonioNonRappresentabileAI { get { return _patrimonioNonRappresentabileAI; } set { _patrimonioNonRappresentabileAI = value; } } public decimal PatrimonioNonRappresentabileCompl { get { return _patrimonioNonRappresentabileCompl; } set { _patrimonioNonRappresentabileCompl = value; } } public decimal PatrimonioNonRappresentabileFI { get { return _patrimonioNonRappresentabileFI; } set { _patrimonioNonRappresentabileFI = value; } } /// /// Imposta o recupera la somma delle Partite Viaggianti in investimento. /// public decimal PartiteViaggiantiInvestimento { get { return _partiteviaggiantiinvestimento; } set { _partiteviaggiantiinvestimento = value; } } /// /// Imposta o recupera la somma delle Partite Viaggianti in disinvestimento. /// public decimal PartiteViaggiantiDisinvestimento { get { return _partiteviaggiantidisinvestimento; } set { _partiteviaggiantidisinvestimento = value; } } /// /// Imposta o recupera il controvalore del Conto corrente. /// public decimal ContoCorrente { get { return _contoCorrente; } set { _contoCorrente = value; } } public decimal Patrimonioaltroctv { get { return _patrimonioaltroctv; } set { _patrimonioaltroctv = value; } } /// /// Imposta o recupera il controvalore immobiliare totale. /// public decimal Patrimonioimmobiliarectv { get { return _patrimonioimmobiliarectv; } set { _patrimonioimmobiliarectv = value; } } /// /// Patrimonio terzi al netto del CC /// public decimal PatrimonioterzictvAlNettoContoCorrente { get { return _patrimonioterzictvalnettocontocorrente; } set { _patrimonioterzictvalnettocontocorrente = value; } } /// /// Imposta o recupera il controvalore totale detenuto presso istituti terzi. /// public decimal Patrimonioterzictv { get { return _patrimonioterzictv; } set { _patrimonioterzictv = value; } } /// /// Contocorrente altri istituti. /// public decimal PatrimonioTerziContoCorrente { get { return _patrimonioterzicontocorrente; } set { _patrimonioterzicontocorrente = value; } } public bool AdesioneSuccessivaAvanzato { get { return adesioneSuccessivaAvanzato; } set { adesioneSuccessivaAvanzato = value; } } /// /// Imposta o recupera il controvalore totale del patrimonio detenuto presso BF o SPI /// public decimal Patrimoniobancafideuramctv { get { return _patrimoniobancafideuramctv; } set { _patrimoniobancafideuramctv = value; } } /// /// Patrimonio BF al netto del CC /// public decimal PatrimonioBancaFideuramCtvAlNettoContoCorrente { get { return _patrimoniobancafideuramctvalnettocontocorrente; } set { _patrimoniobancafideuramctvalnettocontocorrente = value; } } /// /// Imposta o recupera il controvalore del patrimonio finanziario /// public decimal Patrimoniofinanziarioctv { get { return _patrimoniofinanziarioctv; } set { _patrimoniofinanziarioctv = value; } } /// /// Imposta o recupera il controvalore del patrimonio complessivo /// public decimal Patrimoniocomplessivototalectv { get { return _patrimoniocomplessivototalectv; } set { _patrimoniocomplessivototalectv = value; } } /// /// Imposta o recupera la descrizione estesa dell'area di bisogno /// public String AreaEstesa { get { return _areaestesa; } set { _areaestesa = value; } } /// /// Imposta o recupera il codice di area di bisogno /// public String Area { get { return _area; } set { _area = value; } } /// /// Imposta o recupera il codice della rete /// public string Rete { get { return _rete; } set { _rete = value; } } /// /// Imposta o recupera la descrizione estesa della rete /// public string NomeRete { get { return _nomeRete; } set { _nomeRete = value; } } /// /// Imposta o recupera l'agente /// public string Agente { get { return _agente; } set { _agente = value; } } public string Flagnqp { get; set; } public string Flagprlrde { get; set; } public int Flagpg { get; set; } public int RiskArea { get; set; } /// /// Imposta o recupera il cognome dell'agente /// public string CognomeAgente { get { return _cognomeAgente; } set { _cognomeAgente = value; } } /// /// Imposta o recupera il nome dell'agente /// public string NomeAgente { get { return _nomeAgente; } set { _nomeAgente = value; } } /// /// Imposta o recupera l'indirizzo dell'agente /// public string IndirizzoAgente { get { return _indirizzoAgente; } set { _indirizzoAgente = value; } } /// /// Imposta o recupera il cap dell'agente /// public string CapAgente { get { return _capAgente; } set { _capAgente = value; } } /// /// Imposta o recupera la città dell'agente /// public string CittaAgente { get { return _cittaAgente; } set { _cittaAgente = value; } } /// /// Imposta o recupera la il telefono dell'agente /// public string TelefonoAgente { get { return _telefonoAgente; } set { _telefonoAgente = value; } } public string CodiceFiscale { get { return _codiceFiscale; } set { _codiceFiscale = value; } } /// /// IdReport di Diagnosi del PdF generato su ReportManager /// public int IdReportPDFDiagnosi { get { return _idReportPDFDiagnosi; } set { _idReportPDFDiagnosi = value; } } /// /// IdReport di Monitoraggio del PdF generato su ReportManager /// public int IdReportPDFMonitoraggio { get { return _idReportPDFMonitoraggio; } set { _idReportPDFMonitoraggio = value; } } /// /// Imposta o recupera il cognome del cliente /// public string CognomeCliente { get { return _cognomeCliente; } set { _cognomeCliente = value; } } /// /// Imposta o recupera il nome del cliente /// public string NomeCliente { get { return _nomeCliente; } set { _nomeCliente = value; } } /// /// Imposta o recupera il tipo di report. /// Attualemente si produzcono solo report per DIAGNOSI e MONITORAGGIO /// public string TipoReport { get { return _tipoReport; } set { _tipoReport = value; } } public TipoContratto _tipoContratto; public TipoContratto TipoContratto { get { return _tipoContratto; } set { _tipoContratto = value; } } private bool _contrattoOld; public bool ContrattoOld { get { return _contrattoOld; } set { _contrattoOld = value; } } private bool _noMonitoraggio; public bool NoMonitoraggio { get { return _noMonitoraggio; } set { _noMonitoraggio = value; } } public List ReportsType { get { return _reportsType; } set { _reportsType = value; } } public string Intermediario { get { return _intermediario; } set { _intermediario = value; } } /// /// Imposta o recupera il codice contratto /// public string CodiceContratto { get { return _CodiceContratto; } set { _CodiceContratto = value; } } /// /// Imposta o recupera un booleano che indica se si sta stampando un report Periodico(o Trimestrale). /// Se true è un report Periodico(o Trimestrale), se false è un Giornaliero. /// Il valore è settato sul file di configurazione app.config. /// public bool Periodico { get { return periodico; } set { periodico = value; } } public string NomeFileReport { get { //if(_dataLotto == string.Empty) // _dataLotto = DateTime.Now.ToString("yyyyMMdd", CultureInfo.InvariantCulture); // if(_dataLotto) DateTime data = DateTime.Now; return String.Concat(CodiceContratto, "_", data.ToString("yyyyMMdd", CultureInfo.InvariantCulture)); //return String.Concat(CodiceContratto, "_", DataLotto); } } public string DataLotto { set { _dataLotto = value; } get { if (_dataLotto == string.Empty) _dataLotto = DateTime.Now.ToString("yyyyMMdd", CultureInfo.InvariantCulture); return _dataLotto; } } /// /// Imposta o recupera il riferimento a DocumentPDF /// public DocumentPDF DocumentPDF { get { return _documentPDF; } set { _documentPDF = value; } } public DataSectionResult Data { get { return _data; } set { _data = value; } } /// /// Imposta o recupera il riferimento a SezioneReport /// public SezioneReport SezioneReport { get { return _sezioneReport; } set { _sezioneReport = value; } } public decimal VaRRisorseNonAssociate { get { return _varrisorsenonassociate; } set { _varrisorsenonassociate = value; } } public decimal CoperturaRisorseNonAssociate { get { return _coperturarisorsenonassociate; } set { _coperturarisorsenonassociate = value; } } public decimal VaRTotaleRisorseFinanziarie { get { return _vartotalerisorsefinanziarie; } set { _vartotalerisorsefinanziarie = value; } } public decimal CoperturaTotaleRisorseFinanziarie { get { return _coperturatotalerisorsefinanziarie; } set { _coperturatotalerisorsefinanziarie = value; } } /// /// Ottiene o imposta il datatable del peso percentuale. /// Contiene i dati del Peso Percentuale per ciascuna areabisogno/progetto. /// public DataTable PesoPercentuale { get { return _pesopercentuale; } set { _pesopercentuale = value; } } /// /// Ottiene o imposta il datatable del rischio relativo. /// Contiene i dati del Rischio Relativo per ciascuna areabisogno/progetto. /// public DataTable RischioRelativo { get { return _rischiorelativo; } set { _rischiorelativo = value; } } /// /// Imposta o recupera i controvalori totali di ciascuna area/progetto. /// Utilizzata per l'allineamento dei controvalori totali tra la S82/S82BIS e la S86. /// Gli stessi controvalori totali che scriviamo nelle sezioni S82 e S8BIS devono essere riportate nella S86. /// public DataTable ControvaloriTotali { get { return _controvaloritotali; } set { _controvaloritotali = value; } } /// /// Indica la data, utilizzata nel report trimestrale, di fine del trimestre corrente. /// Il valore è impostato nel file di configurazione app.config /// public DateTime DataFineTrimestreCorrente { get { return _datafinetrimestrecorrente; } set { _datafinetrimestrecorrente = value; } } /// /// Ottiene o imposta lo schema della struttura del report da stampare. /// public DataTable Schema { get { return _schema; } set { _schema = value; } } public decimal TotalNegativeCurrentAccountValue { get { return _totalNegativeCurrentAccountValue; } set { _totalNegativeCurrentAccountValue = value; } } public decimal TotalSelfNegCurrentAccountValue { get { return _totalSelfNegCurrentAccountValue; } set { _totalSelfNegCurrentAccountValue = value; } } public string UltimaSezioneStampata { get { return _ultimaSezioneStampata; } set { _ultimaSezioneStampata = value; } } //********************************************************** Aggiunta Andrea Data Thread ********************************************// public decimal GPEligoFondi { get { return _GPEligoFondi; } set { _GPEligoFondi = value; } } public decimal GPEligoTitoli { get { return _GPEligoTitoli; } set { _GPEligoTitoli = value; } } public decimal GradoCoperturaMacroAssetTotale { get { return _GradoCoperturaMacroAssetTotale; } set { _GradoCoperturaMacroAssetTotale = value; } } public decimal GradoCoperturaMacroAssetAltri { get { return _GradoCoperturaMacroAssetAltri; } set { _GradoCoperturaMacroAssetAltri = value; } } public decimal GradoCoperturaMacroAssetInterno { get { return _GradoCoperturaMacroAssetInterno; } set { _GradoCoperturaMacroAssetInterno = value; } } public string codice { get { return _codice; } set {_codice = value; } } // *******************************************************************************************************************************// /// /// Persiste il controvalore e la percentuale relativa degli intermediari. /// Campo valorizzato nella DSS6 ed utilizzato nella DSS96 per il bilanciamento della percentuale maggiore: /// public DataTable DtDSS6Intermediari { get; set; } public DataAccessDE DataAccess { get { return dataAccess; } set { dataAccess = value; } } public bool? IsAdequatezza { get; set; } public bool IsSavingMap { get; set; } public bool IsAPC103 { get; set; } #endregion #region ICloneable Members public object Clone() { return this.MemberwiseClone(); } // MIOFOGLIO 20181130 public List> SelfNegativeValue { get; set; } public decimal PatrimonioNonRappresentabile { get => _patrimonioNonRappresentabile; set => _patrimonioNonRappresentabile = value; } public void SetSelfNegativeValue(List> t) { _selfNegativeValue = new List>(t); } public decimal GetSelfNegativeValue(string key) { decimal ret; if (SelfNegativeValue == null) { SelfNegativeValue = new List>(); } var retList = SelfNegativeValue.Where>(x => x.Item1.Equals(key)).ToList(); if (retList.Count > 0) ret = retList.FirstOrDefault().Item3; else ret = 0; return ret; } //--MIOFOGLIO 20181130 #endregion } }