using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
namespace PDFGenerator.BusinessLayer.DataSection
{
///
/// Summary description for DSS80Alternativa
///
public class DSS80Alternativa : IDataSection
{
private string obtainAsteriscs(int number)
{
string sequence = string.Empty;
for (int i = 0; i < number; i++) sequence = string.Format("{0}{1}", sequence, "*");
return sequence;
}
public DSS80Alternativa()
{
//
// TODO: Add constructor logic here
//
}
///
/// Recupera i dati per la stampa della S80ALT.
///
///
///
///
///
public DataSectionResult getDataSection(List tabelleSessione, string querySql, DataThread dataThread)
{
DataSetS80ALT dsS80ALT = new DataSetS80ALT();
FormatNum conv = new FormatNum();
DataSectionResult dsr = new DataSectionResult();
DataTable dt = SectionManager.GetDataSection(tabelleSessione, querySql, dataThread);
if (dataThread.Patrimoniobancafideuramctv != 0 && dt.Rows.Count > 0)
{
// Set Phase 1 date
#region Data Avvio Monitoraggio
DateTime? dataAvvioMonitoraggio = null;
DateTime dataPrecedenteInvioReport = new DateTime();
//DateTime dataSituazioneCorrenteReport = new DateTime();
FormatNum formatNum = new FormatNum();
DataView dvAvvioMonitoraggio = new DataView(dt);
dvAvvioMonitoraggio.RowFilter = ("Fase = 1");
if (dvAvvioMonitoraggio.Count > 0)
{
DataRow row = dvAvvioMonitoraggio[0].Row;
dataAvvioMonitoraggio = Convert.ToDateTime(row["DataFase"].ToString());
}
#endregion
// Set Phase 2 date
#region Data Precedente Invio Report
DataView dwPrecedenteInvioReport = new DataView(dt);
dwPrecedenteInvioReport.RowFilter = ("Fase = 2");
if (dwPrecedenteInvioReport.Count > 0)
{
DataRow rowPrecedenteInvioReport = dwPrecedenteInvioReport[0].Row;
dataPrecedenteInvioReport = Convert.ToDateTime(rowPrecedenteInvioReport["DataFase"].ToString());
}
#endregion
#region Piramide dati per fasi
// The data rows of each phase.
DataRow[] drFase1 = dt.Select(" fase = 1");
DataRow[] drFase2 = dt.Select(" fase = 2");
DataRow[] drFase3 = dt.Select(" fase = 3");
// caption dell' header della Tabella
if (dataAvvioMonitoraggio.HasValue)
{
dsS80ALT.GraficoPiramide.Fase1Column.Caption = "Avvio Monitoraggio
(" + dataAvvioMonitoraggio.Value.ToShortDateString() + ")";
}
if (dwPrecedenteInvioReport.Count > 0)
dsS80ALT.GraficoPiramide.Fase2Column.Caption = "Precedente invio report
(" + dataPrecedenteInvioReport.ToShortDateString() + ")";
else
dsS80ALT.GraficoPiramide.Fase2Column.Caption = string.Empty;
dsS80ALT.GraficoPiramide.Fase3Column.Caption = "Situazione Corrente
(" + dataThread.DataFineTrimestreCorrente.ToShortDateString() + ")";
DataSetS80ALT.GraficoPiramideRow rowGraficoPiramide0 = dsS80ALT.GraficoPiramide.NewGraficoPiramideRow();
DataSetS80ALT.GraficoPiramideRow rowGraficoPiramide1 = dsS80ALT.GraficoPiramide.NewGraficoPiramideRow();
DataSetS80ALT.GraficoPiramideRow rowGraficoPiramide2 = dsS80ALT.GraficoPiramide.NewGraficoPiramideRow();
DataSetS80ALT.GraficoPiramideRow rowGraficoPiramide3 = dsS80ALT.GraficoPiramide.NewGraficoPiramideRow();
DataSetS80ALT.GraficoPiramideRow rowGraficoPiramide4 = dsS80ALT.GraficoPiramide.NewGraficoPiramideRow();
if (drFase1.Length > 0)
{
rowGraficoPiramide0.Fase1 = formatNum.ConvertNum(drFase1[0]["CTV_EXT"].ToString());
rowGraficoPiramide1.Fase1 = formatNum.ConvertNum(drFase1[0]["CTV_INV"].ToString());
rowGraficoPiramide2.Fase1 = formatNum.ConvertNum(drFase1[0]["CTV_PRE"].ToString());
rowGraficoPiramide3.Fase1 = formatNum.ConvertNum(drFase1[0]["CTV_RIS"].ToString());
rowGraficoPiramide4.Fase1 = formatNum.ConvertNum(drFase1[0]["CTV_LIQ"].ToString());
}
if (drFase2.Length > 0)
{
rowGraficoPiramide0.Fase2 = formatNum.ConvertNum(drFase2[0]["CTV_EXT"].ToString());
rowGraficoPiramide1.Fase2 = formatNum.ConvertNum(drFase2[0]["CTV_INV"].ToString());
rowGraficoPiramide2.Fase2 = formatNum.ConvertNum(drFase2[0]["CTV_PRE"].ToString());
rowGraficoPiramide3.Fase2 = formatNum.ConvertNum(drFase2[0]["CTV_RIS"].ToString());
rowGraficoPiramide4.Fase2 = formatNum.ConvertNum(drFase2[0]["CTV_LIQ"].ToString());
}
if (drFase3.Length > 0)
{
rowGraficoPiramide0.Fase3 = formatNum.ConvertNum(drFase3[0]["CTV_EXT"].ToString());
rowGraficoPiramide1.Fase3 = formatNum.ConvertNum(drFase3[0]["CTV_INV"].ToString());
rowGraficoPiramide2.Fase3 = formatNum.ConvertNum(drFase3[0]["CTV_PRE"].ToString());
rowGraficoPiramide3.Fase3 = formatNum.ConvertNum(drFase3[0]["CTV_RIS"].ToString());
rowGraficoPiramide4.Fase3 = formatNum.ConvertNum(drFase3[0]["CTV_LIQ"].ToString());
}
dsS80ALT.GraficoPiramide.AddGraficoPiramideRow(rowGraficoPiramide0);
dsS80ALT.GraficoPiramide.AddGraficoPiramideRow(rowGraficoPiramide1);
dsS80ALT.GraficoPiramide.AddGraficoPiramideRow(rowGraficoPiramide2);
dsS80ALT.GraficoPiramide.AddGraficoPiramideRow(rowGraficoPiramide3);
dsS80ALT.GraficoPiramide.AddGraficoPiramideRow(rowGraficoPiramide4);
#endregion
#region Totale Risorse Allocate
DataSetS80ALT.RisorseAllocateRow drDatiTotaleRisorseAllocate;
drDatiTotaleRisorseAllocate = dsS80ALT.RisorseAllocate.NewRisorseAllocateRow();
drDatiTotaleRisorseAllocate.Descrizione = "TOTALE RISORSE ALLOCATE";
if (drFase1.Length > 0)
{
drDatiTotaleRisorseAllocate.Fase1 = formatNum.ConvertNum(drFase1[0]["RisorseAllocate"].ToString());
}
if (drFase2.Length > 0)
{
drDatiTotaleRisorseAllocate.Fase2 = formatNum.ConvertNum(drFase2[0]["RisorseAllocate"].ToString());
}
if (drFase3.Length > 0)
{
drDatiTotaleRisorseAllocate.Fase3 = formatNum.ConvertNum(drFase3[0]["RisorseAllocate"].ToString());
}
dsS80ALT.RisorseAllocate.AddRisorseAllocateRow(drDatiTotaleRisorseAllocate);
#endregion
#region Risorse non allocate
DataSetS80ALT.RisorseNonAllocateRow drRisorseNonAllocate;
drRisorseNonAllocate = dsS80ALT.RisorseNonAllocate.NewRisorseNonAllocateRow();
drRisorseNonAllocate.Descrizione = "Risorse non allocate";
if (drFase1.Length > 0)
{
drRisorseNonAllocate.Fase1 = formatNum.ConvertNum(drFase1[0]["RisorseNonAllocate"].ToString());
}
if (drFase2.Length > 0)
{
drRisorseNonAllocate.Fase2 = formatNum.ConvertNum(drFase2[0]["RisorseNonAllocate"].ToString());
}
if (drFase3.Length > 0)
{
drRisorseNonAllocate.Fase3 = formatNum.ConvertNum(drFase3[0]["RisorseNonAllocate"].ToString());
}
dsS80ALT.RisorseNonAllocate.AddRisorseNonAllocateRow(drRisorseNonAllocate);
#endregion
#region TOTALE RISORSE FINANZIARIE
DataSetS80ALT.RisorseFinanziarieRow drDatiTotaleRisorseFinanziarie;
drDatiTotaleRisorseFinanziarie = dsS80ALT.RisorseFinanziarie.NewRisorseFinanziarieRow();
drDatiTotaleRisorseFinanziarie.Descrizione = "TOTALE RISORSE FINANZIARIE";
if (drFase1.Length > 0)
{
drDatiTotaleRisorseFinanziarie.Fase1 = formatNum.ConvertNum(drFase1[0]["RisorseFinanziarie"].ToString());
}
if (drFase2.Length > 0)
{
drDatiTotaleRisorseFinanziarie.Fase2 = formatNum.ConvertNum(drFase2[0]["RisorseFinanziarie"].ToString());
}
if (drFase3.Length > 0)
{
drDatiTotaleRisorseFinanziarie.Fase3 = formatNum.ConvertNum(drFase3[0]["RisorseFinanziarie"].ToString());
}
dsS80ALT.RisorseFinanziarie.AddRisorseFinanziarieRow(drDatiTotaleRisorseFinanziarie);
#endregion
#region Scoperto di conto corrente
DataSetS80ALT.ContoCorrenteRow drDatiContoCorrenteNegativo;
drDatiContoCorrenteNegativo = dsS80ALT.ContoCorrente.NewContoCorrenteRow();
drDatiContoCorrenteNegativo.Descrizione = "Scoperto di conto corrente";
if (drFase1.Length > 0)
{
if (drFase1[0]["ContoCorrente"].ToString() != "0,000")
drDatiContoCorrenteNegativo.Fase1 = formatNum.ConvertNum(drFase1[0]["ContoCorrente"].ToString());
else
drDatiContoCorrenteNegativo.Fase1 = "-";
//drDatiContoCorrenteNegativo.Fase1 = drFase1[0]["ContoCorrente"].ToString();
}
if (drFase2.Length > 0)
{
if (drFase2[0]["ContoCorrente"].ToString() != "0,000")
drDatiContoCorrenteNegativo.Fase2 = formatNum.ConvertNum(drFase2[0]["ContoCorrente"].ToString());
else
drDatiContoCorrenteNegativo.Fase2 = "-";
//drDatiContoCorrenteNegativo.Fase2 = drFase2[0]["ContoCorrente"].ToString();
}
if (drFase3.Length > 0)
{
if (drFase3[0]["ContoCorrente"].ToString() != "0,000")
drDatiContoCorrenteNegativo.Fase3 = formatNum.ConvertNum(drFase3[0]["ContoCorrente"].ToString());
else
drDatiContoCorrenteNegativo.Fase3 = "-";
//drDatiContoCorrenteNegativo.Fase3 = drFase3[0]["ContoCorrente"].ToString();
}
dsS80ALT.ContoCorrente.AddContoCorrenteRow(drDatiContoCorrenteNegativo);
#endregion
#region Linea Self Negativa
DataSetS80ALT.LineaSelfNegRow drDatiLineaSelfNeg;
drDatiLineaSelfNeg = dsS80ALT.LineaSelfNeg.NewLineaSelfNegRow();
drDatiLineaSelfNeg.Descrizione = "Liquidità negativa \"Linee GP Eligo\"";
if (drFase1.Length > 0)
{
if (drFase1[0]["CTVSELF"].ToString() != "0,000")
drDatiLineaSelfNeg.Fase1 = formatNum.ConvertNum(drFase1[0]["CTVSELF"].ToString());
else
drDatiLineaSelfNeg.Fase1 = "-";
}
if (drFase2.Length > 0)
{
if (drFase2[0]["CTVSELF"].ToString() != "0,000")
drDatiLineaSelfNeg.Fase2 = formatNum.ConvertNum(drFase2[0]["CTVSELF"].ToString());
else
drDatiLineaSelfNeg.Fase2 = "-";
}
if (drFase3.Length > 0)
{
if (drFase3[0]["CTVSELF"].ToString() != "0,000")
drDatiLineaSelfNeg.Fase3 = formatNum.ConvertNum(dataThread.TotalSelfNegCurrentAccountValue).ToString();
else
drDatiLineaSelfNeg.Fase3 = "-";
}
dsS80ALT.LineaSelfNeg.AddLineaSelfNegRow(drDatiLineaSelfNeg);
#endregion
#region Operazioni in corso
DataSetS80ALT.OperazioniInCorsoRow drDatiOperazioniInCorso;
drDatiOperazioniInCorso = dsS80ALT.OperazioniInCorso.NewOperazioniInCorsoRow();
drDatiOperazioniInCorso.Descrizione = "Operazioni in corso";
if (drFase1.Length > 0)
{
drDatiOperazioniInCorso.Fase1 = formatNum.ConvertNum(drFase1[0]["Partita_viaggiante"].ToString());
}
if (drFase2.Length > 0)
{
drDatiOperazioniInCorso.Fase2 = formatNum.ConvertNum(drFase2[0]["Partita_viaggiante"].ToString());
}
if (drFase3.Length > 0)
{
//Will calculated from dataThread instead of SP
//drDatiOperazioniInCorso.Fase3 = formatNum.ConvertNum(drFase3[0]["Partita_viaggiante"].ToString());
drDatiOperazioniInCorso.Fase3 = formatNum.ConvertNum(dataThread.PartiteViaggiantiInvestimento + dataThread.PartiteViaggiantiDisinvestimento).ToString();
}
dsS80ALT.OperazioniInCorso.AddOperazioniInCorsoRow(drDatiOperazioniInCorso);
#endregion
#region Totale Patrimonto
DataSetS80ALT.DatiTotaleRow drDatiTotale;
drDatiTotale = dsS80ALT.DatiTotale.NewDatiTotaleRow();
drDatiTotale.Descrizione = "TOTALE PATRIMONIO";
if (drFase1.Length > 0)
{
drDatiTotale.Fase1 = formatNum.ConvertNum(drFase1[0]["TotalePatrimonio"].ToString());
}
if (drFase2.Length > 0)
{
drDatiTotale.Fase2 = formatNum.ConvertNum(drFase2[0]["TotalePatrimonio"].ToString());
}
if (drFase3.Length > 0)
{
//drDatiTotale.Fase3 = formatNum.ConvertNum(drFase3[0]["TotalePatrimonio"].ToString());
//Will calculated from dataThread instead of SP
decimal totale;
totale = decimal.Parse(drFase3[0]["TotalePatrimonio"].ToString()) + dataThread.PartiteViaggiantiInvestimento + dataThread.PartiteViaggiantiDisinvestimento;
drDatiTotale.Fase3 = formatNum.ConvertNum(totale.ToString());
}
dsS80ALT.DatiTotale.AddDatiTotaleRow(drDatiTotale);
#endregion
#region Dettaglio Movimenti Dopo Dati Totale
DataSetS80ALT.RigheDopoDatiTotaleRow drDettMovDopoDatiTotale;
drDettMovDopoDatiTotale = dsS80ALT.RigheDopoDatiTotale.NewRigheDopoDatiTotaleRow();
drDettMovDopoDatiTotale.Descrizione = "Movimenti da osservazione precedente";
drDettMovDopoDatiTotale.Fase1BlankValue = string.Empty;
drDettMovDopoDatiTotale.Fase2BlankValue = string.Empty;
drDettMovDopoDatiTotale.Fase3BlankValue = string.Empty;
if (drFase1.Length > 0)
{
if (!drFase1[0]["DettMov"].Equals(System.DBNull.Value))
{
drDettMovDopoDatiTotale.Fase1 = formatNum.ConvertNum(drFase1[0]["DettMov"].ToString());
if (!drFase1[0]["NumeroAsterischiNota"].Equals(System.DBNull.Value))
{
drDettMovDopoDatiTotale.Fase1NumeroAsterischiNota = drFase1[0]["NumeroAsterischiNota"].ToString();
drDettMovDopoDatiTotale.Fase1 = string.Format("{0}{1}", drDettMovDopoDatiTotale.Fase1,
obtainAsteriscs(Convert.ToInt16(drDettMovDopoDatiTotale.Fase1NumeroAsterischiNota)));
}
}
else
{
drDettMovDopoDatiTotale.Fase1 = "notvisible";
}
}
if (drFase2.Length > 0)
{
if (!drFase2[0]["DettMov"].Equals(System.DBNull.Value))
{
drDettMovDopoDatiTotale.Fase2 = formatNum.ConvertNum(drFase2[0]["DettMov"].ToString());
if (!drFase2[0]["NumeroAsterischiNota"].Equals(System.DBNull.Value))
{
drDettMovDopoDatiTotale.Fase2NumeroAsterischiNota = drFase2[0]["NumeroAsterischiNota"].ToString();
drDettMovDopoDatiTotale.Fase2 = string.Format("{0}{1}", drDettMovDopoDatiTotale.Fase2,
obtainAsteriscs(Convert.ToInt16(drDettMovDopoDatiTotale.Fase2NumeroAsterischiNota)));
}
}
else
{
drDettMovDopoDatiTotale.Fase2 = "notvisible";
}
}
if (drFase3.Length > 0)
{
if (!drFase3[0]["DettMov"].Equals(System.DBNull.Value))
{
drDettMovDopoDatiTotale.Fase3 = formatNum.ConvertNum(drFase3[0]["DettMov"].ToString());
if (!drFase3[0]["NumeroAsterischiNota"].Equals(System.DBNull.Value))
{
drDettMovDopoDatiTotale.Fase3NumeroAsterischiNota = drFase3[0]["NumeroAsterischiNota"].ToString();
drDettMovDopoDatiTotale.Fase3 = string.Format("{0}{1}", drDettMovDopoDatiTotale.Fase3,
obtainAsteriscs(Convert.ToInt16(drDettMovDopoDatiTotale.Fase3NumeroAsterischiNota)));
}
}
else
{
drDettMovDopoDatiTotale.Fase3 = "notvisible";
}
}
dsS80ALT.RigheDopoDatiTotale.AddRigheDopoDatiTotaleRow(drDettMovDopoDatiTotale);
DataTable dtDidascalieNote = SectionManager.GetDataSection(tabelleSessione, "[C6MartPeriodico].[PL_S80Alternativa_DidascalieNote]", dataThread);
DataSetS80ALT.DettaglioMovimentiDidascalieNoteRow drDettaglioMovimentiDidascalieNoteRow;
foreach (DataRow dr in dtDidascalieNote.Rows)
{
drDettaglioMovimentiDidascalieNoteRow = dsS80ALT.DettaglioMovimentiDidascalieNote.NewDettaglioMovimentiDidascalieNoteRow();
drDettaglioMovimentiDidascalieNoteRow.NumeroAsterischi = Convert.ToInt16(dr["NumeroAsterischi"]);
drDettaglioMovimentiDidascalieNoteRow.Descrizione = dr["Descrizione"].ToString();
dsS80ALT.DettaglioMovimentiDidascalieNote.AddDettaglioMovimentiDidascalieNoteRow(drDettaglioMovimentiDidascalieNoteRow);
}
#endregion
}
dsr.DatiSezione = dsS80ALT;
dsr.Esito = dsS80ALT.GraficoPiramide.Rows.Count;
return dsr;
}
}
}