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

189 lines
8.1 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 DSS147SintesiValute: IDataSection
{
private const int NUM_VALUTE = 6;
public DSS147SintesiValute()
{
}
//public DataSectionResult getDataSection(IDataSectionParameter dsp)
//{
#region IDataSection Members
public DataSectionResult getDataSection(List<SessionStruct> tabelleSessione, string querySql, DataThread dataThread)
{
DataSectionResult dsr = new DataSectionResult();
//DataSectionParameter dataSectionParameter = (DataSectionParameter)dsp;
//DSS118RappresentazionePerValuta dss118 = new DSS118RappresentazionePerValuta();
//DataSectionResult output118 = dss118.getDataSection(dsp);
//DataTable totalePatrimoni = output118.DatiSezione.Tables["Patrimoni"];
//if (totalePatrimoni == null)
// return dsr;
//DataView dw = new DataView(totalePatrimoni);
//dw.RowFilter = "CodicePatrimonio='BF'";
//totalePatrimoni = dw.ToTable();
FormatNum conv = new FormatNum();
DataSetS147 ds147 = new DataSetS147();
DataSetS147.PesiValutePositiveRow rowGraficoPositiva = ds147.PesiValutePositive.NewPesiValutePositiveRow();
DataSetS147.PesiValuteNegativeRow rowGraficoNegativa = ds147.PesiValuteNegative.NewPesiValuteNegativeRow();
DataSetS147.PesiValuteTotaliRow rowTotali = ds147.PesiValuteTotali.NewPesiValuteTotaliRow();
//V Se il cliente ha solo cc negativo la sezione non deve uscire
if (dataThread.PatrimonioBancaFideuramCtvAlNettoContoCorrente == 0)
return dsr;
DataTable datiValute = SectionManager.GetDataSection(tabelleSessione, querySql, dataThread);
if (datiValute.Rows.Count == 0)
return dsr;
int k = 0;
decimal pesoAltreValute100 = 100;
decimal pesoAltreValute0 = 0;
double copertura = 1.00;
foreach (DataRow dr in datiValute.Rows)
{
decimal peso = Decimal.Round(Convert.ToDecimal(dr["percentuale"].ToString()), 2, MidpointRounding.AwayFromZero);
pesoAltreValute100 -= peso;
if (k < NUM_VALUTE)
{
string codiceValuta = "PesoPercentualeValuta" + (k + 1).ToString();
//double peso = Convert.ToDouble(dr["percentuale"].ToString());// Convert.ToDouble(totalePatrimoni.Rows[0][codiceValuta]); // Il peso lo prendo dalla dss118 Math.Round(Convert.ToDouble(dr["PESO"]),2);
rowTotali.Peso = (double)peso;
rowTotali.Valuta = dr["DIVISA"].ToString();
rowTotali.Bandiera = "";
rowTotali.Pallino = "";
//pesoAltreValute -= rowGrafico.Peso;
rowTotali.Copertura = Convert.ToDouble(dr["COPERTURA"]);
copertura = rowTotali.Copertura;
ds147.PesiValuteTotali.Rows.Add(rowTotali);
rowTotali = ds147.PesiValuteTotali.NewPesiValuteTotaliRow();
if (peso >= 0)
{
rowGraficoPositiva.Peso = (double)peso;
rowGraficoNegativa.Peso = 0;
}
else
{
rowGraficoPositiva.Peso = 0;
rowGraficoNegativa.Peso = (double)-peso;
}
//Parte positiva
rowGraficoPositiva.Valuta = dr["DIVISA"].ToString();
rowGraficoPositiva.Bandiera = "";
rowGraficoPositiva.Pallino = "";
//pesoAltreValute -= rowGrafico.Peso;
rowGraficoPositiva.Copertura = Convert.ToDouble(dr["COPERTURA"]);
copertura = rowGraficoPositiva.Copertura;
ds147.PesiValutePositive.Rows.Add(rowGraficoPositiva);
rowGraficoPositiva = ds147.PesiValutePositive.NewPesiValutePositiveRow();
rowGraficoNegativa.Valuta = dr["DIVISA"].ToString();
rowGraficoNegativa.Bandiera = "";
rowGraficoNegativa.Pallino = "";
//pesoAltreValute -= rowGrafico.Peso;
rowGraficoNegativa.Copertura = Convert.ToDouble(dr["COPERTURA"]);
copertura = rowGraficoNegativa.Copertura;
ds147.PesiValuteNegative.Rows.Add(rowGraficoNegativa);
rowGraficoNegativa = ds147.PesiValuteNegative.NewPesiValuteNegativeRow();
++k;
}
else
{
pesoAltreValute0 += peso;
}
}
pesoAltreValute0 += pesoAltreValute100;
if (pesoAltreValute0 != 0)
{
//pesoAltreValute = 0.0;// Convert.ToDouble(totalePatrimoni.Rows[0]["PesoPercentualeAltre"]); // Se ho peso altre valute lo prendo corretto dalla s118 Math.Round(pesoAltreValute, 2);
if (pesoAltreValute0 > 0)
{
rowGraficoPositiva.Peso = (double)pesoAltreValute0;
rowGraficoNegativa.Peso = 0;
}
else
{
rowGraficoPositiva.Peso = 0;
rowGraficoNegativa.Peso = (double)-pesoAltreValute0;
}
rowTotali.Peso = (double)pesoAltreValute0;
rowTotali.Valuta = "ALTRE";
rowTotali.Bandiera = "";
rowTotali.Pallino = "";
//pesoAltreValute -= rowGrafico.Peso;
rowTotali.Copertura = copertura;
copertura = rowTotali.Copertura;
ds147.PesiValuteTotali.Rows.Add(rowTotali);
rowTotali = ds147.PesiValuteTotali.NewPesiValuteTotaliRow();
rowGraficoPositiva.Valuta = "ALTRE";
rowGraficoPositiva.Bandiera = "";
rowGraficoPositiva.Pallino = "";
//pesoAltreValute -= rowGrafico.Peso;
rowGraficoPositiva.Copertura = copertura;
copertura = rowGraficoPositiva.Copertura;
ds147.PesiValutePositive.Rows.Add(rowGraficoPositiva);
rowGraficoPositiva = ds147.PesiValutePositive.NewPesiValutePositiveRow();
rowGraficoNegativa.Valuta = "ALTRE";
rowGraficoNegativa.Bandiera = "";
rowGraficoNegativa.Pallino = "";
//pesoAltreValute -= rowGrafico.Peso;
rowGraficoNegativa.Copertura = copertura;
copertura = rowGraficoNegativa.Copertura;
ds147.PesiValuteNegative.Rows.Add(rowGraficoNegativa);
rowGraficoNegativa = ds147.PesiValuteNegative.NewPesiValuteNegativeRow();
}
dsr.DatiSezione = ds147;
dsr.Esito = ds147.PesiValutePositive.Rows.Count;
try{if ((Convert.ToDouble(ds147.PesiValuteTotali.Rows[0]["Copertura"]) * 100) < 50) dsr.Esito = 0;} catch {}
return dsr;
}
#endregion
}
}