2025-04-15 12:10:19 +02:00

124 lines
4.8 KiB
C#

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections;
using PDFGenerator.BusinessLayer.DataSection;
using PDFGenerator.BusinessLayer;
using System.Collections.Generic;
namespace PDFGenerator.BusinessLayer.DataSection
{
class DSS143DistibuzionePerEmittente: IDataSection
{
public DSS143DistibuzionePerEmittente()
{
}
#region IDataSection Members
public DataSectionResult getDataSection(List<SessionStruct> tabelleSessione, string querySql, DataThread dataThread)
{
try
{
FormatNum num = new FormatNum();
DataSectionResult dsr = new DataSectionResult();
DataTable dt = SectionManager.GetDataSection(tabelleSessione, querySql, dataThread);
DataSetS143 ds143 = new DataSetS143();
decimal Totale = 0;
decimal TotPerc = 100;
decimal TotaleRap = 0;
decimal TotPercRap = 0;
for (int r = 0; r < dt.Rows.Count; r++) {
DataRow drEmit = ds143.Emittente.NewRow();
drEmit["TipoEmittente"] = dt.Rows[r]["TipoEmittente"].ToString();
drEmit["Red"] = dt.Rows[r]["Red"];
drEmit["Green"] = dt.Rows[r]["Green"];
drEmit["Blue"] = dt.Rows[r]["Blue"];
drEmit["Controvalore"] = num.ConvertNum(dt.Rows[r]["Controvalore"]);
Totale += decimal.Parse(drEmit["Controvalore"].ToString());
drEmit["Percentage"] = Decimal.Round(Convert.ToDecimal(dt.Rows[r]["Percentage"]), 2, MidpointRounding.AwayFromZero);
TotPerc -= decimal.Parse(drEmit["Percentage"].ToString());
ds143.Emittente.Rows.Add(drEmit);
}
if (ds143.Emittente.Rows.Count > 0)
ds143.Emittente.Rows[0]["Percentage"] = decimal.Parse(ds143.Emittente.Rows[0]["Percentage"].ToString()) + TotPerc;
foreach (DataSetS143.EmittenteRow Emit in ds143.Emittente.Rows)
{
if (Emit["TipoEmittente"].Equals(""))
{
DataRow drNoRap = ds143.EmittenteNoRap.NewRow();
drNoRap["TipoEmittente"] = "Patrimonio non rappresentabile";
drNoRap["Controvalore"] = Emit["Controvalore"];
// drNoRap["Percentage"] = Emit["Percentage"];
drNoRap["Red"] = Emit["Red"];
drNoRap["Green"] = Emit["Green"];
drNoRap["Blue"] = Emit["Blue"];
ds143.EmittenteNoRap.Rows.Add(drNoRap);
}
else
{
DataRow drRap = ds143.EmittenteRap.NewRow();
drRap["TipoEmittente"] = Emit["TipoEmittente"];
drRap["Controvalore"] = Emit["Controvalore"];
drRap["Percentage"] = Emit["Percentage"];
drRap["Red"] = Emit["Red"];
drRap["Green"] = Emit["Green"];
drRap["Blue"] = Emit["Blue"];
TotaleRap += decimal.Parse(Emit["Controvalore"].ToString());
TotPercRap += decimal.Parse(Emit["Percentage"].ToString());
ds143.EmittenteRap.Rows.Add(drRap);
}
}
// toDo FC 17/12/2013 Modifica Descrizione secondo richiesta di Scirocco Flavia
//drtotRap["Descrizione"] = "Patrimonio rappresentato";
DataRow drtotRap = ds143.TotaleRap.NewRow();
drtotRap["Descrizione"] = "Totale rappresentato";
drtotRap["Controvalore"] = num.ConvertNum(TotaleRap);
drtotRap["Percentage"] = num.ConvertNum(TotPercRap);
ds143.TotaleRap.Rows.Add(drtotRap);
//drtot["Descrizione"] = "Patrimonio Amministrato";
DataRow drtot = ds143.Totale.NewRow();
drtot["Descrizione"] = "Totale";
drtot["Controvalore"] = num.ConvertNum(Totale);
drtot["Percentage"] = num.ConvertNum(100);
ds143.Totale.Rows.Add(drtot);
dsr.DatiSezione = ds143;
dsr.Esito = ds143.Emittente.Rows.Count;
return dsr;
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
}
}