188 lines
7.5 KiB
C#
188 lines
7.5 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
|
|
{
|
|
public class DSFD147SintesiValute : IDataSection
|
|
{
|
|
private const int NUM_VALUTE = 6;
|
|
|
|
public DSFD147SintesiValute()
|
|
{
|
|
}
|
|
//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
|
|
}
|
|
}
|