973 lines
61 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Linq;
using Consulenza.ExternalServices;
using Consulenza.ReportWriter.Business.Headers;
using Consulenza.ReportWriter.Business;
using Consulenza.ReportWriter.Business.OBJ_PDF;
using System.Data;
using Consulenza.ReportWriter.Business.CHART_PDF;
using Consulenza.ReportCommon;
using Consulenza.ReportWriter.Business.Entity;
using System.Text;
namespace Consulenza.ReportWriter.Manager.Section.Immobiliare.MonitoraggioNucleo
{
/// <summary>
/// Scheda 18
/// </summary>
public class S18 : Entity.Section
{
public int nValue = 0;
public string sType = "F";
public bool bPrintAltri = false;
public S18(EnvironmentFacade environmentFacade, int idSection)
: base(environmentFacade, idSection)
{
try
{
Draw();
}
catch (Exception ex)
{
SectionLogger.Write("S18", ex.Message, SectionLoggerMessageLevel.E, EnvironmentFacade.ReportEnvironment);
}
}
/// <summary>
/// Scheda2. Patrimonio immobiliare Sintesi (distribuzione del patrimonio complessivo del cliente diviso per tipologia e cointestatari)
/// </summary>
protected override sealed void Draw()
{
FormattedTextAreaPDF testoPagina = null;
FormattedTextAreaPDF notaTabella = null;
bool bPass = false;
for (int iVal = 1; nValue < 2; iVal++)
{
nValue = iVal;
var dataset = GetDataSet();
DataTable clientiTable = dataset.Tables["clienti"];
foreach (DataTable table in dataset.Tables)
{
if (table.TableName != "clienti" && table != null && table.Rows.Count > 0)
{
if (nValue == 1)
{
testoPagina = new FormattedTextAreaPDF("Di seguito si rappresenta l'elenco degli immobili con finalità ad uso abitativo e strumentali.", 35) { FontSize = 10, FontColor = ColorPDF.Immobiliare_Grigio_TitoloPiccolo, AutoIncrementYWritable = true, Width = 740, FixedHeight = 20 };
notaTabella = new FormattedTextAreaPDF("Nota(*): Il \"Reddito dominicale\" dei terreni è esposto nella colonna \"Rendita catastale\"<BR>", 60, 680) { AutoIncrementYWritable = false, Y = EnvironmentFacade.RendererFacade.YLowerLimit - 23, FontSize = 6, FontColor = ColorPDF.Nero, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify, DeltaX = 5, DeltaY = 5 };
var listaOggettiDaRipetere = new List<ObjectPDF> { new SpacePDF(30), testoPagina, new SpacePDF(10), notaTabella };
AddElement(listaOggettiDaRipetere);
AddElement(new RepeaterPDF(listaOggettiDaRipetere));
bPass = true;
}
if (bPass == false)
{
testoPagina = new FormattedTextAreaPDF("Di seguito si rappresenta l'elenco degli immobili con finalità ad uso abitativo e strumentali.", 35) { FontSize = 10, FontColor = ColorPDF.Immobiliare_Grigio_TitoloPiccolo, AutoIncrementYWritable = true, Width = 740, FixedHeight = 20 };
notaTabella = new FormattedTextAreaPDF("Nota(*): Il \"Reddito dominicale\" dei terreni è esposto nella colonna \"Rendita catastale\"<BR>", 60, 680) { AutoIncrementYWritable = false, Y = EnvironmentFacade.RendererFacade.YLowerLimit - 23, FontSize = 6, FontColor = ColorPDF.Nero, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify, DeltaX = 5, DeltaY = 5 };
var listaOggettiDaRipetere = new List<ObjectPDF> { new SpacePDF(30), testoPagina, new SpacePDF(10), notaTabella };
AddElement(listaOggettiDaRipetere);
AddElement(new RepeaterPDF(listaOggettiDaRipetere));
}
const int larghezzaTabella = 730; // massima larghezza tabella
const int larghezzaSingoloCliente = 70;
const int larghezzaCategoriaCatastale = 40;
const int larghezzaSuperficieStimata = 50;
const int larghezzaRenditaCatastale = 55;
const int larghezzaParziale = 70;
const int larghezzaTotale = 70;
const int tabellaFissa = larghezzaTotale + larghezzaParziale + larghezzaRenditaCatastale + larghezzaSuperficieStimata + larghezzaCategoriaCatastale;
//La colonna descrizione è l'unica variabile.
var larghezzaDescrizione = larghezzaTabella - 10 - tabellaFissa - (larghezzaSingoloCliente * System.Math.Min(clientiTable.Rows.Count, 5));
TablePDF tablePDF = new TablePDF(35, table)
{
Style = Style.Immobiliare,
RowsPadding = 3,
Footer = false,
HeaderHeight = 120,
RowHeight = 15,
//MinimumRowHeight = 12,
PageBreak = true,
ShowBorderLastLine = true
};
tablePDF.Columns.Add(new ColumnPDF("AnomaliaCatastale", 10, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Immagine, "codAnomalia", "") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, ScaleColumnTypeImage = 0.1F, DeltaYContent = 2, PaddingLeft = -10 });
tablePDF.Columns.Add(new ColumnPDF("descrizione", larghezzaDescrizione, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "descrizione", "Immobili " + (nValue == 2 ? "strumentali" : "d'uso abitativo")) { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderVerticalAlignment = VerticalAlignmentType.Basso });
tablePDF.Columns.Add(new ColumnPDF("codTipologiaCatasto", larghezzaCategoriaCatastale, HorizontalAlignmentType.Centrato, false, false, 7, ColumnType.Testo, "CategoriaCatastale", "Categoria catastale") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderTextVerticalDirection = true, HeaderVerticalAlignment = VerticalAlignmentType.Centrato });
tablePDF.Columns.Add(new ColumnPDF("superficie", larghezzaSuperficieStimata, HorizontalAlignmentType.Centrato, false, false, 7, ColumnType.Testo, "SuperficieStimata", "Superficie Stimata") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderTextVerticalDirection = true, HeaderVerticalAlignment = VerticalAlignmentType.Centrato });
tablePDF.Columns.Add(new ColumnPDF("codTipologiaCatasto", larghezzaRenditaCatastale, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Testo, "renditaCatastale", "Rendita catastale*") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderTextVerticalDirection = true, HeaderVerticalAlignment = VerticalAlignmentType.Centrato });
for (int i = 1; i <= (System.Math.Min(clientiTable.Rows.Count, 5)); i++)
tablePDF.Columns.Add(new ColumnPDF("cliente" + i, larghezzaSingoloCliente, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Testo, "cliente" + i, clientiTable.Rows[i - 1]["cliente"].ToString()) { HeaderTextVerticalDirection = true, HeaderVerticalAlignment = VerticalAlignmentType.Centrato });
if (bPrintAltri == true)
tablePDF.Columns.Add(new ColumnPDF("Parziale", larghezzaParziale, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Testo, "Parziale", "Altri") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderTextVerticalDirection = true, HeaderVerticalAlignment = VerticalAlignmentType.Centrato });
tablePDF.Columns.Add(new ColumnPDF("valoreImmobileTotale", larghezzaTotale, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Testo, "Totale", "Valore stimato<br>totale (€)") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderTextVerticalDirection = true, HeaderVerticalAlignment = VerticalAlignmentType.Centrato });
for (int k = 0; k < table.Rows.Count; k++)
{
//if (table.Rows[k].Field<string>("AnomaliaCatastale") == "true")
// tablePDF.Cells[2, k].Value = "Warning.png";
//else
// tablePDF.Cells[2, k].Value = "";
// Old Version 20170919
//if (table.Rows[k].Field<string>("CategoriaCatastale").All(Char.IsDigit))
//{
// int column = table.Rows[k].Table.Columns["CategoriaCatastale"].Ordinal;
// tablePDF.Cells[column, k].Value = "-";
//}
//else if (table.Rows[k].Field<string>("CategoriaCatastale").Equals("F/5"))
//{
// tablePDF.Cells[3, k].Value = "n.d.";
// tablePDF.Cells[4, k].Value = "n.d.";
//}
//if (table.Rows[k].Field<string>("CategoriaCatastale").Substring(0, 1) == "M")
// tablePDF.Cells[2, k].Value = "-";
//else
// tablePDF.Cells[2, k].Value = table.Rows[k].Field<string>("CategoriaCatastale");
if (table.Rows[k].Field<string>("CategoriaCatastale").All(Char.IsDigit))
{
int column = table.Rows[k].Table.Columns["CategoriaCatastale"].Ordinal;
tablePDF.Cells[column, k].Value = "-";
}
else
{
if (table.Rows[k].Field<string>("CategoriaCatastale").Equals("F/5"))
{
tablePDF.Cells[3, k].Value = "n.d.";
tablePDF.Cells[4, k].Value = "n.d.";
}
else
{
if (table.Rows[k].Field<string>("CategoriaCatastale").Substring(0, 1) == "M")
tablePDF.Cells[2, k].Value = "-";
else
tablePDF.Cells[2, k].Value = table.Rows[k].Field<string>("CategoriaCatastale");
}
}
if (table.Rows[k].Field<string>("renditaCatastale").Equals("") || Convert.ToDecimal(table.Rows[k].Field<string>("renditaCatastale")) == 0)
if (table.Rows[k].Field<string>("CategoriaCatastale").Equals("F/5"))
tablePDF.Cells[4, k].Value = "n.d.";
else
tablePDF.Cells[4, k].Value = "-";
else
tablePDF.Cells[4, k].Value = Helper.FormatCurrency(Convert.ToDecimal(table.Rows[k].Field<string>("renditaCatastale")).ToString());
for (int i = 1; i <= (System.Math.Min(clientiTable.Rows.Count, 5)); i++)
{
if (Convert.ToDecimal(table.Rows[k].Field<string>("cliente" + i)) <= 0)
tablePDF.Cells[4 + i, k].Value = "-";
else
tablePDF.Cells[4 + i, k].Value = Helper.FormatCurrency(Convert.ToDecimal(table.Rows[k].Field<string>("cliente" + i)).ToString());
}
if (bPrintAltri != true)
{
if (Convert.ToDecimal(table.Rows[k].Field<string>("Totale")) <= 0)
tablePDF.Cells[System.Math.Min(clientiTable.Rows.Count, 5) + 5, k].Value = "-";
else
tablePDF.Cells[System.Math.Min(clientiTable.Rows.Count, 5) + 5, k].Value = Helper.FormatCurrency(Convert.ToDecimal(table.Rows[k].Field<string>("Totale")).ToString());
}
else
{
if (Convert.ToDecimal(table.Rows[k].Field<string>("Parziale")) <= 0)
tablePDF.Cells[System.Math.Min(clientiTable.Rows.Count, 5) + 5, k].Value = "-";
else
tablePDF.Cells[System.Math.Min(clientiTable.Rows.Count, 5) + 5, k].Value = Helper.FormatCurrency(Convert.ToDecimal(table.Rows[k].Field<string>("Parziale")).ToString());
if (Convert.ToDecimal(table.Rows[k].Field<string>("Totale")) <= 0)
tablePDF.Cells[System.Math.Min(clientiTable.Rows.Count, 5) + 6, k].Value = "-";
else
tablePDF.Cells[System.Math.Min(clientiTable.Rows.Count, 5) + 6, k].Value = Helper.FormatCurrency(Convert.ToDecimal(table.Rows[k].Field<string>("Totale")).ToString());
}
// Modificato il 22/09/2017 in attesa di sapere cosa vuole Carnevali Paolo
if (table.Rows[k].Field<string>("AnomaliaCatastale") != "")
tablePDF.Cells[System.Math.Min(clientiTable.Rows.Count, 5) + 5, k].Value = "n.d.";
// Fabbricati e Terreni
if (table.Rows[k].Field<string>("SuperficieStimata") == null || table.Rows[k].Field<string>("SuperficieStimata") == "0,0000000")
tablePDF.Cells[3, k].Value = "-";
else
{
if (table.Rows[k].Field<string>("SuperficieStimata").Equals(""))
tablePDF.Cells[3, k].Value = "n.d.";
else
{
if (table.Rows[k].Field<string>("tipoImmobile").Equals("F"))
tablePDF.Cells[3, k].Value = Helper.FormatInteger(Helper.FormatDecimal(table.Rows[k].Field<string>("SuperficieStimata"), 0)) + " mq";
else
tablePDF.Cells[3, k].Value = Helper.FormatDecimal(table.Rows[k].Field<string>("SuperficieStimata"), 3) + " ha";
}
}
//if (table.Rows[k].Field<string>("tipoImmobile").Equals("T"))
//{
// if (table.Rows[k].Field<string>("SuperficieStimata").Equals(""))
// tablePDF.Cells[3, k].Value = "n.d.";
// else
// tablePDF.Cells[3, k].Value = Helper.FormatDecimal(table.Rows[k].Field<string>("SuperficieStimata"), 3) + " ha";
//}
//else
// tablePDF.Cells[3, k].Value = Helper.FormatDecimal(table.Rows[k].Field<string>("SuperficieStimata"), 0) + " mq";
}
AddElement(tablePDF);
}
if (table.TableName != "clienti" && table != null && table.Rows.Count > 0)
{
//List<string> legenda = table.AsEnumerable().Select(z => z.Field<string>("codAnomalia")).Distinct() != null ?
// table.AsEnumerable().Select(z => z.Field<string>("codAnomalia")).Distinct().ToList() : null;
List<string> legenda = table.AsEnumerable().Select(z => z.Field<string>("AnomaliaCatastale")).Distinct() != null ?
table.AsEnumerable().Select(z => z.Field<string>("AnomaliaCatastale")).Distinct().ToList() : null;
if (legenda != null && legenda.Count > 0)
AddLegend(legenda);
}
}
if (iVal ==1)
AddElement(new SpacePDF(10));
}
}
/// <summary>
/// Recupera i dati necessari alla Section restituendo un DataSet.
/// </summary>
/// <returns></returns>
protected override DataSet GetDataSet()
{
DataSet data = new DataSet();
data.Tables.Add(new DataTable("clienti")); // U
data.Tables["clienti"].Columns.Add(new DataColumn("cliente", typeof(string)));
data.Tables.Add(new DataTable("1")); // U
data.Tables.Add(new DataTable("2")); // S
data.Tables.Add(new DataTable("3")); // I
data.Tables.Add(new DataTable("4")); // NS
#region Definizione dei parametri
var parametri = new List<Parametro>
{
new Parametro
{
Direction = ParameterDirection.Input,
DbType = DbType.Int64,
ParameterName = "ChiaveNucleo",
Value = EnvironmentFacade.ReportEnvironment.NucleoImmobiliare.ChiaveNucleo
}
};
#endregion
var dsOriginal = DataAccess.ExecuteDataSetStoredProcedure(DBProvider.SqlServerConsulenzaUnica, "REP_ImmobiliareMonitoraggio_S_DettaglioFabbricatiNucleo", parametri);
if (dsOriginal.Tables[0].Rows.Count == 0)
return null;
decimal nTotaleAltri = 0;
for (int k = 0; k < dsOriginal.Tables[0].Rows.Count; k++)
nTotaleAltri = nTotaleAltri + Convert.ToDecimal(dsOriginal.Tables[0].Rows[k]["parziale"]);
if (nTotaleAltri > 0)
bPrintAltri = true;
List<string> clientiList = dsOriginal.Tables[1].AsEnumerable()
.Select(z => z.Field<string>("Cliente")).Distinct().ToList();
foreach (var cliente in clientiList)
{
data.Tables["clienti"].Rows.Add(cliente);
}
// Fabbricati
if (dsOriginal.Tables[0].AsEnumerable().Where(x => x.Field<int>("ordinamento") == nValue).Count() > 0)
{
DataTable copyDataTable = dsOriginal.Tables[0].AsEnumerable().GroupBy(x => x.Field<string>("idImmobileCatasto")).Select(x => x.First()).Where(x => x.Field<int>("ordinamento") == nValue).OrderBy(x => x.Field<string>("tipoimmobile")).ThenBy(x => x.Field<int>("ordfabbricati")).CopyToDataTable();
for (int i = 0; i < copyDataTable.Rows.Count; i++)
{
if (copyDataTable.Rows[i]["AnomaliaCatastale"].ToString() == "1")
copyDataTable.Rows[i]["AnomaliaCatastale"] = "Warning.png";
else
copyDataTable.Rows[i]["AnomaliaCatastale"] = "";
//copyDataTable.Rows[i]["codAnomalia"] = copyDataTable.Rows[i]["codAnomalia"] != DBNull.Value &&
// copyDataTable.Rows[i]["codAnomalia"] != null ?
// "Warning.png" : "";
//copyDataTable.Rows[i]["codAnomalia"] = copyDataTable.Rows[i]["quotaDiritto"] != DBNull.Value &&
// copyDataTable.Rows[i]["quotaDiritto"] != null ?
// "detagglio2.png" : copyDataTable.Rows[i]["codAnomalia"];
if (copyDataTable.Rows[i]["cliente1"] != DBNull.Value)
copyDataTable.Rows[i]["cliente1"] = Helper.FormatCurrency(copyDataTable.Rows[i]["cliente1"].ToString());
else
copyDataTable.Rows[i]["cliente1"] = "0";
if (copyDataTable.Rows[i]["cliente2"] != DBNull.Value)
copyDataTable.Rows[i]["cliente2"] = Helper.FormatCurrency(copyDataTable.Rows[i]["cliente2"].ToString());
else
copyDataTable.Rows[i]["cliente2"] = "0";
if (copyDataTable.Rows[i]["cliente3"] != DBNull.Value)
copyDataTable.Rows[i]["cliente3"] = Helper.FormatCurrency(copyDataTable.Rows[i]["cliente3"].ToString());
else
copyDataTable.Rows[i]["cliente3"] = "0";
if (copyDataTable.Rows[i]["cliente4"] != DBNull.Value)
copyDataTable.Rows[i]["cliente4"] = Helper.FormatCurrency(copyDataTable.Rows[i]["cliente4"].ToString());
else
copyDataTable.Rows[i]["cliente4"] = "0";
if (copyDataTable.Rows[i]["cliente5"] != DBNull.Value)
copyDataTable.Rows[i]["cliente5"] = Helper.FormatCurrency(copyDataTable.Rows[i]["cliente5"].ToString());
else
copyDataTable.Rows[i]["cliente5"] = "0";
if (copyDataTable.Rows[i]["Totale"] != DBNull.Value)
copyDataTable.Rows[i]["Totale"] = Helper.FormatCurrency(copyDataTable.Rows[i]["Totale"].ToString());
else
copyDataTable.Rows[i]["Totale"] = "0";
if (copyDataTable.Rows[i]["Parziale"] != DBNull.Value && copyDataTable.Rows[i]["Parziale"].ToString() != "0,01" && copyDataTable.Rows[i]["Parziale"].ToString() != "-0,01")
copyDataTable.Rows[i]["Parziale"] = Helper.FormatCurrency(copyDataTable.Rows[i]["Parziale"].ToString());
else
copyDataTable.Rows[i]["Parziale"] = "0";
//copyDataTable.Rows[i]["ProQuota"] = Helper.FormatCurrency(copyDataTable.Rows[i]["ProQuota"].ToString());
//copyDataTable.Rows[i]["valoreImmobileTotale"] = Helper.FormatCurrency(copyDataTable.Rows[i]["valoreImmobileTotale"].ToString());
}
//copyDataTable.Rows[0]["codAnomalia"] = "Warning.png";
var name = copyDataTable.Rows[0]["ordinamento"];
DataTable dtCloned = copyDataTable.Clone();
dtCloned.Columns[0].DataType = typeof(Int32);
for (int i = 0; i < copyDataTable.Columns.Count; i++)
dtCloned.Columns[i].DataType = typeof(string);
for (int row = 0; row < copyDataTable.Rows.Count; row++)
{
object[] array = new object[copyDataTable.Columns.Count];
for (int column = 0; column < copyDataTable.Columns.Count; column++)
array[column] = copyDataTable.Rows[row][column].ToString();
dtCloned.Rows.Add(array);
}
//for (int i = 1; i <= (System.Math.Min(data.Tables["clienti"].Rows.Count, 5)); i++)
//{
// int indexrow = 0;
// if (i < 5)
// {
// dtCloned.Columns.Add(new DataColumn("cliente" + i, typeof(string)));
// foreach (var row in dtCloned.AsEnumerable())
// {
// dtCloned.Rows[indexrow]["cliente" + i] = dtCloned.Rows[indexrow]["ProQuota"];
// indexrow++;
// }
// }
// else
// {
// dtCloned.Columns.Add(new DataColumn("cliente5", typeof(string)));
// foreach (var row in dtCloned.AsEnumerable())
// {
// dtCloned.Rows[indexrow]["cliente5"] = dtCloned.Rows[indexrow]["ProQuota"];
// indexrow++;
// }
// }
//}
//for (int index_row = 0; index_row < dtCloned.Rows.Count; index_row++)
//{
// // cerco index in tabella cliente
// DataRow anotherRow = data.Tables["clienti"].AsEnumerable().FirstOrDefault(row1 => row1["nome"].Equals(dtCloned.Rows[index_row]["NomeCliente"])
// && row1["cognome"].Equals(dtCloned.Rows[index_row]["CognomeCliente"]));
// int indiceCliente = data.Tables["clienti"].Rows.IndexOf(anotherRow);
// for (int i = 1; i <= (System.Math.Min(data.Tables["clienti"].Rows.Count, 5)); i++)
// {
// if (i - 1 == indiceCliente)
// dtCloned.Rows[index_row]["cliente" + i] = dtCloned.Rows[index_row]["ProQuota"];
// else
// dtCloned.Rows[index_row]["cliente" + i] = "0";
// dtCloned.Rows[index_row]["valoreImmobileTotale"] = dtCloned.Rows[index_row]["valoreImmobileTotale"];
// }
//}
data.Tables[name.ToString()].Merge(dtCloned);
}
return data;
}
public void AddLegend(List<string> legenda)
{
AddElement(new SpacePDF(2));
var xSx = 35;
foreach (string valore in legenda)
{
var listaLegend = new List<ObjectPDF>();
ImagePDF image = null;
FormattedTextAreaPDF testo = null;
switch (valore)
{
case "Warning.png":
image = new ImagePDF(xSx, 0.1F, valore) { AutoIncrementYWritable = false };
testo = new FormattedTextAreaPDF("Immobile con anomalie catastali. Vedi Dettaglio immobili - Anomalie catastali.", xSx + 15) { DeltaY = 1, AutoIncrementYWritable = true };
listaLegend.Add(image);
listaLegend.Add(testo);
break;
case "detagglio2.png":
image = new ImagePDF(xSx, 0.15F, valore) { AutoIncrementYWritable = false };
testo = new FormattedTextAreaPDF("Immobile con diritti e/o quote variate. Vedi Dettaglio immobili Immobili con diritti e/o quote di diritto variate.", xSx + 15) { DeltaY = 3, AutoIncrementYWritable = true };
listaLegend.Add(image);
listaLegend.Add(testo);
break;
case "New.png":
image = new ImagePDF(xSx, 0.1F, valore) { AutoIncrementYWritable = false };
testo = new FormattedTextAreaPDF("Immobile di nuova acquisizione.", xSx + 15) { DeltaY = 1, AutoIncrementYWritable = true };
listaLegend.Add(image);
listaLegend.Add(testo);
break;
}
AddElement(listaLegend);
AddElement(new SpacePDF(5));
}
}
// Draw e GetDataSet del 14.09.2017
//protected override DataSet GetDataSet()
//{
// DataSet data = new DataSet();
// data.Tables.Add(new DataTable("clienti")); // U
// data.Tables["clienti"].Columns.Add(new DataColumn("nome", typeof(string)));
// data.Tables["clienti"].Columns.Add(new DataColumn("cognome", typeof(string)));
// data.Tables.Add(new DataTable("1")); // U
// data.Tables.Add(new DataTable("2")); // S
// data.Tables.Add(new DataTable("3")); // I
// data.Tables.Add(new DataTable("4")); // NS
// #region Definizione dei parametri
// var parametri = new List<Parametro>
// {
// new Parametro
// {
// Direction = ParameterDirection.Input,
// DbType = DbType.Int64,
// ParameterName = "ChiaveNucleo",
// Value = EnvironmentFacade.ReportEnvironment.NucleoImmobiliare.ChiaveNucleo
// }
// };
// #endregion
// var dsOriginal = DataAccess.ExecuteDataSetStoredProcedure(DBProvider.SqlServerConsulenzaUnica, "REP_ImmobiliareMonitoraggio_S_DettaglioFabbricatiNucleo", parametri);
// if (dsOriginal.Tables[0].Rows.Count == 0)
// return null;
// List<string> clientiList = dsOriginal.Tables[0].AsEnumerable()
// .Select(z => z.Field<string>("NomeCliente") + "$" + z.Field<string>("CognomeCliente")).Distinct().ToList();
// foreach (var cliente in clientiList)
// {
// var nomeCognome = cliente.Split('$');
// data.Tables["clienti"].Rows.Add(nomeCognome[0], nomeCognome[1]);
// }
// if (dsOriginal.Tables[0].AsEnumerable().Where(x => x.Field<int>("ordinamento") == nValue).Count() > 0)
// {
// DataTable copyDataTable = dsOriginal.Tables[0].AsEnumerable().GroupBy(x => x.Field<string>("idImmobileCatasto")).Select(x => x.First()).Where(x => x.Field<int>("ordinamento") == nValue).OrderBy(x => x.Field<int>("Tipo")).CopyToDataTable();
// for (int i = 0; i < copyDataTable.Rows.Count; i++)
// {
// copyDataTable.Rows[i]["codAnomalia"] = copyDataTable.Rows[i]["codAnomalia"] != DBNull.Value &&
// copyDataTable.Rows[i]["codAnomalia"] != null ?
// "Warning.png" : "";
// if (copyDataTable.Rows[i]["ProQuota"] != DBNull.Value)
// copyDataTable.Rows[i]["ProQuota"] = Helper.FormatCurrency(copyDataTable.Rows[i]["ProQuota"].ToString());
// else
// copyDataTable.Rows[i]["ProQuota"] = "0";
// if (copyDataTable.Rows[i]["valoreImmobileTotale"] != DBNull.Value)
// copyDataTable.Rows[i]["valoreImmobileTotale"] = Helper.FormatCurrency(copyDataTable.Rows[i]["valoreImmobileTotale"].ToString());
// else
// copyDataTable.Rows[i]["valoreImmobileTotale"] = "0";
// //copyDataTable.Rows[i]["ProQuota"] = Helper.FormatCurrency(copyDataTable.Rows[i]["ProQuota"].ToString());
// //copyDataTable.Rows[i]["valoreImmobileTotale"] = Helper.FormatCurrency(copyDataTable.Rows[i]["valoreImmobileTotale"].ToString());
// }
// //copyDataTable.Rows[0]["codAnomalia"] = "Warning.png";
// var name = copyDataTable.Rows[0]["ordinamento"];
// DataTable dtCloned = copyDataTable.Clone();
// dtCloned.Columns[0].DataType = typeof(Int32);
// for (int i = 0; i < copyDataTable.Columns.Count; i++)
// dtCloned.Columns[i].DataType = typeof(string);
// for (int row = 0; row < copyDataTable.Rows.Count; row++)
// {
// object[] array = new object[copyDataTable.Columns.Count];
// for (int column = 0; column < copyDataTable.Columns.Count; column++)
// array[column] = copyDataTable.Rows[row][column].ToString();
// dtCloned.Rows.Add(array);
// }
// for (int i = 1; i <= (System.Math.Min(data.Tables["clienti"].Rows.Count, 5)); i++)
// {
// dtCloned.Columns.Add(new DataColumn("cliente" + i, typeof(string)));
// int indexrow = 0;
// foreach (var row in dtCloned.AsEnumerable())
// {
// dtCloned.Rows[indexrow]["cliente" + i] = dtCloned.Rows[indexrow]["ProQuota"];
// indexrow++;
// }
// }
// for (int index_row = 0; index_row < dtCloned.Rows.Count; index_row++)
// {
// // cerco index in tabella cliente
// DataRow anotherRow = data.Tables["clienti"].AsEnumerable().FirstOrDefault(row1 => row1["nome"].Equals(dtCloned.Rows[index_row]["NomeCliente"])
// && row1["cognome"].Equals(dtCloned.Rows[index_row]["CognomeCliente"]));
// int indiceCliente = data.Tables["clienti"].Rows.IndexOf(anotherRow);
// for (int i = 1; i <= (System.Math.Min(data.Tables["clienti"].Rows.Count, 5)); i++)
// {
// if (i - 1 == indiceCliente)
// dtCloned.Rows[index_row]["cliente" + i] = dtCloned.Rows[index_row]["ProQuota"];
// else
// dtCloned.Rows[index_row]["cliente" + i] = "0";
// dtCloned.Rows[index_row]["valoreImmobileTotale"] = dtCloned.Rows[index_row]["valoreImmobileTotale"];
// }
// }
// data.Tables[name.ToString()].Merge(dtCloned);
// }
// return data;
//}
///// <summary>
///// Scheda2. Patrimonio immobiliare Sintesi (distribuzione del patrimonio complessivo del cliente diviso per tipologia e cointestatari)
///// </summary>
//protected override sealed void Draw()
//{
// FormattedTextAreaPDF testoPagina = null;
// FormattedTextAreaPDF notaTabella = null;
// for (int iVal = 1; nValue < 2; iVal++)
// {
// nValue = iVal;
// var dataset = GetDataSet();
// DataTable clientiTable = dataset.Tables["clienti"];
// foreach (DataTable table in dataset.Tables)
// {
// if (table.TableName != "clienti" && table != null && table.Rows.Count > 0)
// {
// if (nValue == 1)
// {
// testoPagina = new FormattedTextAreaPDF("Di seguito si rappresenta l'elenco degli immobili con finalità ad uso abitativo e strumentali.", 35) { FontSize = 10, FontColor = ColorPDF.Immobiliare_Grigio_TitoloPiccolo, AutoIncrementYWritable = true, Width = 740, FixedHeight = 20 };
// notaTabella = new FormattedTextAreaPDF("Nota(*): Il \"Reddito dominicale\" dei terreni è esposto nella colonna \"Rendita catastale\"<BR>", 60, 680) { AutoIncrementYWritable = false, Y = EnvironmentFacade.RendererFacade.YLowerLimit - 25, FontSize = 6, FontColor = ColorPDF.Nero, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify, DeltaX = 5, DeltaY = 5 };
// var listaOggettiDaRipetere = new List<ObjectPDF> { new SpacePDF(30), testoPagina, new SpacePDF(10), notaTabella };
// AddElement(listaOggettiDaRipetere);
// AddElement(new RepeaterPDF(listaOggettiDaRipetere));
// }
// const int larghezzaTabella = 730; // massima larghezza tabella
// const int larghezzaSingoloCliente = 70;
// const int larghezzaCategoriaCatastale = 40;
// const int larghezzaSuperficieStimata = 50;
// const int larghezzaRenditaCatastale = 55;
// const int larghezzaTotale = 80;
// const int tabellaFissa = larghezzaTotale + larghezzaRenditaCatastale + larghezzaSuperficieStimata + larghezzaCategoriaCatastale;
// //La colonna descrizione è l'unica variabile.
// var larghezzaDescrizione = larghezzaTabella - 10 - tabellaFissa - (larghezzaSingoloCliente * System.Math.Min(clientiTable.Rows.Count, 5));
// TablePDF tablePDF = new TablePDF(35, table)
// {
// Style = Style.Immobiliare,
// RowsPadding = 3,
// Footer = false,
// HeaderHeight = 120,
// MinimumRowHeight = 12,
// PageBreak = true,
// ShowBorderLastLine = true
// };
// tablePDF.Columns.Add(new ColumnPDF("codAnomalia", 10, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Immagine, "codAnomalia", "") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, ScaleColumnTypeImage = 0.1F, DeltaYContent = 2, PaddingLeft = -10 });
// tablePDF.Columns.Add(new ColumnPDF("descrizione", larghezzaDescrizione, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "descrizione", "Immobili " + (nValue == 2 ? "strumentali" : "d'uso abitativo")) { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderVerticalAlignment = VerticalAlignmentType.Basso });
// tablePDF.Columns.Add(new ColumnPDF("codTipologiaCatasto", larghezzaCategoriaCatastale, HorizontalAlignmentType.Centrato, false, false, 7, ColumnType.Testo, "codTipologiaCatasto", "Categoria catastale") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderTextVerticalDirection = true, HeaderVerticalAlignment = VerticalAlignmentType.Centrato });
// tablePDF.Columns.Add(new ColumnPDF("superficie", larghezzaSuperficieStimata, HorizontalAlignmentType.Centrato, false, false, 7, ColumnType.Testo, "superficie", "Superficie Stimata") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderTextVerticalDirection = true, HeaderVerticalAlignment = VerticalAlignmentType.Centrato });
// tablePDF.Columns.Add(new ColumnPDF("codTipologiaCatasto", larghezzaRenditaCatastale, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Testo, "renditaCatastale", "Rendita catastale*") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderTextVerticalDirection = true, HeaderVerticalAlignment = VerticalAlignmentType.Centrato });
// for (int i = 1; i <= (System.Math.Min(clientiTable.Rows.Count, 5)); i++)
// tablePDF.Columns.Add(new ColumnPDF("cliente" + i, larghezzaSingoloCliente, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Testo, "cliente" + i, clientiTable.Rows[i - 1]["cognome"].ToString() + " " + clientiTable.Rows[i - 1]["nome"].ToString()) { HeaderTextVerticalDirection = true, HeaderVerticalAlignment = VerticalAlignmentType.Centrato });
// tablePDF.Columns.Add(new ColumnPDF("valoreImmobileTotale", larghezzaTotale, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Testo, "valoreImmobileTotale", "Valore stimato<br>totale (€)") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderTextVerticalDirection = true, HeaderVerticalAlignment = VerticalAlignmentType.Centrato });
// for (int k = 0; k < table.Rows.Count; k++)
// {
// if (table.Rows[k].Field<string>("codTipologiaCatasto").All(Char.IsDigit))
// {
// int column = table.Rows[k].Table.Columns["codTipologiaCatasto"].Ordinal;
// tablePDF.Cells[column, k].Value = "-";
// }
// else if (table.Rows[k].Field<string>("codTipologiaCatasto").Equals("F/5"))
// {
// tablePDF.Cells[3, k].Value = "n.d.";
// tablePDF.Cells[4, k].Value = "n.d.";
// }
// if (table.Rows[k].Field<string>("codTipologiaCatasto").Substring(0, 1) == "M")
// tablePDF.Cells[2, k].Value = "-";
// else
// tablePDF.Cells[2, k].Value = table.Rows[k].Field<string>("codTipologiaCatasto");
// if (table.Rows[k].Field<string>("renditaCatastale").Equals("") || Convert.ToDecimal(table.Rows[k].Field<string>("renditaCatastale")) == 0)
// tablePDF.Cells[4, k].Value = "-";
// else
// tablePDF.Cells[4, k].Value = Helper.FormatCurrency(Convert.ToDecimal(table.Rows[k].Field<string>("renditaCatastale")).ToString());
// for (int i = 1; i <= (System.Math.Min(clientiTable.Rows.Count, 5)); i++)
// {
// if (Convert.ToDecimal(table.Rows[k].Field<string>("cliente" + i)) == 0)
// tablePDF.Cells[4 + i, k].Value = "-";
// else
// tablePDF.Cells[4 + i, k].Value = Helper.FormatCurrency(Convert.ToDecimal(table.Rows[k].Field<string>("ProQuota")).ToString());
// }
// if (Convert.ToDecimal(table.Rows[k].Field<string>("valoreImmobileTotale")) == 0)
// tablePDF.Cells[System.Math.Min(clientiTable.Rows.Count, 5) + 5, k].Value = "-";
// else
// tablePDF.Cells[System.Math.Min(clientiTable.Rows.Count, 5) + 5, k].Value = Helper.FormatCurrency(Convert.ToDecimal(table.Rows[k].Field<string>("valoreImmobileTotale")).ToString());
// if (table.Rows[k].Field<string>("tipoImmobile").Equals("F"))
// tablePDF.Cells[3, k].Value = Helper.FormatDecimal(table.Rows[k].Field<string>("superficie"), 0) + " mq";
// if (table.Rows[k].Field<string>("tipoImmobile").Equals("T"))
// {
// if (table.Rows[k].Field<string>("superficie").Equals(""))
// tablePDF.Cells[3, k].Value = "n.d.";
// else
// tablePDF.Cells[3, k].Value = Helper.FormatDecimal(table.Rows[k].Field<string>("superficie"), 3) + " ha";
// }
// if (!table.Rows[k].Field<string>("redditoDominicale").Equals(""))
// tablePDF.Cells[4, k].Value = Helper.FormatCurrency(Convert.ToDecimal(table.Rows[k].Field<string>("redditoDominicale")).ToString());
// }
// AddElement(tablePDF);
// }
// if (table.TableName != "clienti" && table != null && table.Rows.Count > 0)
// {
// List<string> legenda = table.AsEnumerable().Select(z => z.Field<string>("codAnomalia")).Distinct() != null ?
// table.AsEnumerable().Select(z => z.Field<string>("codAnomalia")).Distinct().ToList() : null;
// if (legenda != null && legenda.Count > 0)
// AddLegend(legenda);
// }
// }
// if (iVal == 1)
// AddElement(new SpacePDF(10));
// }
//}
// Originale di Alessio
///// <summary>
///// Scheda2. Patrimonio immobiliare Sintesi (distribuzione del patrimonio complessivo del cliente diviso per tipologia e cointestatari)
///// </summary>
//protected override sealed void Draw()
//{
// var dataset = GetDataSet();
// FormattedTextAreaPDF testoPagina = null;
// FormattedTextAreaPDF notaTabella = null;
// List<int> ordinamento = new List<int>();
// ordinamento.Add(1);
// ordinamento.Add(2);
// bool alreadyPrinted = false;
// bool newPage = true;
// foreach (int value in ordinamento)
// {
// alreadyPrinted = false;
// foreach (DataTable table in dataset.Tables)
// {
// if(!alreadyPrinted)
// if (!table.TableName.Contains("clienti") && table != null && table.Rows.Count > 0)
// {
// alreadyPrinted = true;
// if (newPage)
// {
// testoPagina = new FormattedTextAreaPDF("Di seguito si rappresenta l'elenco degli immobili con finalità ad uso abitativo e strumentali.", 35) { FontSize = 10, FontColor = ColorPDF.Immobiliare_Grigio_TitoloPiccolo, AutoIncrementYWritable = true, Width = 740, FixedHeight = 20 };
// notaTabella = new FormattedTextAreaPDF("Nota(*): Il \"Reddito dominicale\" dei terreni è esposto nella colonna \"Rendita catastale\"<BR>", 60, 680) { AutoIncrementYWritable = false, Y = EnvironmentFacade.RendererFacade.YLowerLimit - 25, FontSize = 6, FontColor = ColorPDF.Nero, TextHorizontalAlign = ceTe.DynamicPDF.TextAlign.Justify, DeltaX = 5, DeltaY = 5 };
// var listaOggettiDaRipetere = new List<ObjectPDF> { new SpacePDF(30), testoPagina, new SpacePDF(10), notaTabella };
// AddElement(listaOggettiDaRipetere);
// AddElement(new RepeaterPDF(listaOggettiDaRipetere));
// }
// const int larghezzaTabella = 730; // massima larghezza tabella
// const int larghezzaSingoloCliente = 65;
// const int larghezzaCategoriaCatastale = 40;
// const int larghezzaSuperficieStimata = 50;
// const int larghezzaRenditaCatastale = 55;
// const int larghezzaTotale = 80;
// const int tabellaFissa = larghezzaTotale + larghezzaRenditaCatastale + larghezzaSuperficieStimata + larghezzaCategoriaCatastale;
// //La colonna descrizione è l'unica variabile.
// var larghezzaDescrizione = larghezzaTabella - 10 - tabellaFissa - (larghezzaSingoloCliente * System.Math.Min(dataset.Tables["clienti" + value].Rows.Count, 5));
// TablePDF tablePDF = new TablePDF(35, table)
// {
// Style = Style.Immobiliare,
// RowsPadding = 3,
// Footer = false,
// HeaderHeight = 130,
// MinimumRowHeight = 12,
// };
// tablePDF.Columns.Add(new ColumnPDF("codAnomalia", 10, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Immagine, "codAnomalia", "") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, ScaleColumnTypeImage = 0.1F, DeltaYContent = 2, PaddingLeft = -10 });
// tablePDF.Columns.Add(new ColumnPDF("descrizione", larghezzaDescrizione, HorizontalAlignmentType.Sinistra, false, false, 7, ColumnType.Testo, "descrizione", "Immobili " + (value == 2 ? "strumentali" : "d'uso abitativo")) { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderVerticalAlignment = VerticalAlignmentType.Basso });
// tablePDF.Columns.Add(new ColumnPDF("codTipologiaCatasto", larghezzaCategoriaCatastale, HorizontalAlignmentType.Centrato, false, false, 7, ColumnType.Testo, "codTipologiaCatasto", "Categoria catastale") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderTextVerticalDirection = true, HeaderVerticalAlignment = VerticalAlignmentType.Centrato });
// tablePDF.Columns.Add(new ColumnPDF("superficie", larghezzaSuperficieStimata, HorizontalAlignmentType.Centrato, false, false, 7, ColumnType.Testo, "superficie", "Superficie Stimata") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderTextVerticalDirection = true, HeaderVerticalAlignment = VerticalAlignmentType.Centrato });
// tablePDF.Columns.Add(new ColumnPDF("codTipologiaCatasto", larghezzaRenditaCatastale, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Testo, "renditaCatastale", "Rendita catastale*") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderTextVerticalDirection = true, HeaderVerticalAlignment = VerticalAlignmentType.Centrato });
// for (int i = 1; i <= (System.Math.Min(dataset.Tables["clienti" + value].Rows.Count, 5)); i++)
// tablePDF.Columns.Add(new ColumnPDF("cliente" + i, larghezzaSingoloCliente, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Testo, "cliente" + i, dataset.Tables["clienti" + value].Rows[i - 1]["cognome"].ToString() + " " +dataset.Tables["clienti" + value].Rows[i - 1]["nome"].ToString()) { HeaderTextVerticalDirection = true, HeaderVerticalAlignment = VerticalAlignmentType.Centrato });
// tablePDF.Columns.Add(new ColumnPDF("valoreImmobileTotale", larghezzaTotale, HorizontalAlignmentType.Destra, false, false, 7, ColumnType.Testo, "valoreImmobileTotale", "Valore stimato<br>totale (€)") { FontBold = false, HeaderFontBold = true, HeaderFontSize = 7, DeltaYContent = 1, HeaderTextVerticalDirection = true, HeaderVerticalAlignment = VerticalAlignmentType.Centrato });
// for (int k = 0; k < table.Rows.Count; k++)
// {
// if (table.Rows[k].Field<string>("codTipologiaCatasto").All(Char.IsDigit))
// {
// int column = table.Rows[k].Table.Columns["codTipologiaCatasto"].Ordinal;
// tablePDF.Cells[column, k].Value = "-";
// }
// else if (table.Rows[k].Field<string>("codTipologiaCatasto").Equals("F/5"))
// {
// tablePDF.Cells[3, k].Value = "n.d.";
// tablePDF.Cells[4, k].Value = "n.d.";
// }
// if (table.Rows[k].Field<string>("codTipologiaCatasto").Substring(0, 1) == "M")
// tablePDF.Cells[2, k].Value = "-";
// else
// tablePDF.Cells[2, k].Value = table.Rows[k].Field<string>("codTipologiaCatasto");
// if (table.Rows[k].Field<string>("renditaCatastale").Equals("") || Convert.ToDecimal(table.Rows[k].Field<string>("renditaCatastale")) == 0)
// tablePDF.Cells[4, k].Value = "-";
// else
// tablePDF.Cells[4, k].Value = Helper.FormatCurrency(Convert.ToDecimal(table.Rows[k].Field<string>("renditaCatastale")).ToString());
// for (int i = 1; i <= (System.Math.Min(dataset.Tables["clienti" + value].Rows.Count, 5)); i++)
// {
// if (Convert.ToDecimal(table.Rows[k].Field<string>("cliente" + i)) == 0)
// tablePDF.Cells[4 + i, k].Value = "-";
// else
// tablePDF.Cells[4 + i, k].Value = Helper.FormatCurrency(Convert.ToDecimal(table.Rows[k].Field<string>("ProQuota")).ToString());
// }
// if (Convert.ToDecimal(table.Rows[k].Field<string>("valoreImmobileTotale")) == 0)
// tablePDF.Cells[System.Math.Min(dataset.Tables["clienti" + value].Rows.Count, 5) + 5, k].Value = "-";
// else
// tablePDF.Cells[System.Math.Min(dataset.Tables["clienti" + value].Rows.Count, 5) + 5, k].Value = Helper.FormatCurrency(Convert.ToDecimal(table.Rows[k].Field<string>("valoreImmobileTotale")).ToString());
// if (table.Rows[k].Field<string>("tipoImmobile").Equals("F"))
// //tablePDF.Cells[3, k].Value = Helper.FormatDecimal(table.Rows[k].Field<string>("superficie"), 0) + " mq";
// tablePDF.Cells[4, k].Value = Helper.FormatInteger(Helper.FormatDecimal(table.Rows[k].Field<string>("superficie"), 0)) + " mq";
// if (table.Rows[k].Field<string>("tipoImmobile").Equals("T") && !table.Rows[k].Field<string>("redditoDominicale").Equals(""))
// {
// tablePDF.Cells[3, k].Value = Helper.FormatDecimal(table.Rows[k].Field<string>("superficie"), 3) + " ha";
// tablePDF.Cells[4, k].Value = Helper.FormatCurrency(Convert.ToDecimal(table.Rows[k].Field<string>("redditoDominicale")).ToString());
// }
// }
// AddElement(tablePDF);
// if (dataset.Tables["clienti1"].Rows.Count > 0 && dataset.Tables["clienti2"].Rows.Count > 0 && newPage)
// {
// AddElement(new PagePDF(PagePDF.PagePDFType.Generic));
// newPage = false;
// }
// }
// }
// }
//}
///// <summary>
///// Recupera i dati necessari alla Section restituendo un DataSet.
///// </summary>
///// <returns></returns>
//protected override DataSet GetDataSet()
//{
// DataSet data = new DataSet();
// data.Tables.Add(new DataTable("clienti1")); // U
// data.Tables["clienti1"].Columns.Add(new DataColumn("nome", typeof(string)));
// data.Tables["clienti1"].Columns.Add(new DataColumn("cognome", typeof(string)));
// data.Tables.Add(new DataTable("1"));
// data.Tables.Add(new DataTable("clienti2")); // S
// data.Tables["clienti2"].Columns.Add(new DataColumn("nome", typeof(string)));
// data.Tables["clienti2"].Columns.Add(new DataColumn("cognome", typeof(string)));
// data.Tables.Add(new DataTable("2"));
// data.Tables.Add(new DataTable("3")); // I
// data.Tables.Add(new DataTable("4")); // NS
// #region Definizione dei parametri
// var parametri = new List<Parametro>
// {
// new Parametro
// {
// Direction = ParameterDirection.Input,
// DbType = DbType.Int64,
// ParameterName = "ChiaveNucleo",
// Value = EnvironmentFacade.ReportEnvironment.NucleoImmobiliare.ChiaveNucleo
// }
// };
// #endregion
// var dsOriginal = DataAccess.ExecuteDataSetStoredProcedure(DBProvider.SqlServerConsulenzaUnica, "REP_ImmobiliareMonitoraggio_S_DettaglioFabbricatiNucleo", parametri);
// if (dsOriginal.Tables[0].Rows.Count == 0)
// return null;
// List<int> ordinamento = new List<int>();
// ordinamento.Add(1);
// ordinamento.Add(2);
// foreach (int value in ordinamento)
// {
// // Extracting customers if that type of Immobili is present
// if (dsOriginal.Tables[0].AsEnumerable().Where(x => x.Field<int>("ordinamento") == value).Count() > 0)
// {
// List<string> clientiList = dsOriginal.Tables[0].AsEnumerable().Where(x => x.Field<int>("ordinamento") == value)
// .Select(z => z.Field<string>("NomeCliente") + "$" + z.Field<string>("CognomeCliente")).Distinct().ToList();
// foreach (var cliente in clientiList)
// {
// var nomeCognome = cliente.Split('$');
// data.Tables["clienti" + value].Rows.Add(nomeCognome[0], nomeCognome[1]);
// }
// if (dsOriginal.Tables[0].AsEnumerable().Where(x => x.Field<int>("ordinamento") == value).Count() > 0)
// {
// DataTable copyDataTable = dsOriginal.Tables[0].AsEnumerable().GroupBy(x => x.Field<string>("idImmobileCatasto")).Select(x => x.First()).Where(x => x.Field<int>("ordinamento") == value).CopyToDataTable();
// for (int i = 0; i < copyDataTable.Rows.Count; i++)
// {
// copyDataTable.Rows[i]["codAnomalia"] = copyDataTable.Rows[i]["codAnomalia"] != DBNull.Value &&
// copyDataTable.Rows[i]["codAnomalia"] != null ?
// "Warning.png" : "";
// if (copyDataTable.Rows[i]["ProQuota"] != DBNull.Value)
// copyDataTable.Rows[i]["ProQuota"] = Helper.FormatCurrency(copyDataTable.Rows[i]["ProQuota"].ToString());
// else
// copyDataTable.Rows[i]["ProQuota"] = "0";
// if (copyDataTable.Rows[i]["valoreImmobileTotale"] != DBNull.Value)
// copyDataTable.Rows[i]["valoreImmobileTotale"] = Helper.FormatCurrency(copyDataTable.Rows[i]["valoreImmobileTotale"].ToString());
// else
// copyDataTable.Rows[i]["valoreImmobileTotale"] = "0";
// //copyDataTable.Rows[i]["ProQuota"] = Helper.FormatCurrency(copyDataTable.Rows[i]["ProQuota"].ToString());
// //copyDataTable.Rows[i]["valoreImmobileTotale"] = Helper.FormatCurrency(copyDataTable.Rows[i]["valoreImmobileTotale"].ToString());
// }
// var name = copyDataTable.Rows[0]["ordinamento"];
// DataTable dtCloned = copyDataTable.Clone();
// dtCloned.Columns[0].DataType = typeof(Int32);
// for (int i = 0; i < copyDataTable.Columns.Count; i++)
// dtCloned.Columns[i].DataType = typeof(string);
// for (int row = 0; row < copyDataTable.Rows.Count; row++)
// {
// object[] array = new object[copyDataTable.Columns.Count];
// for (int column = 0; column < copyDataTable.Columns.Count; column++)
// array[column] = copyDataTable.Rows[row][column].ToString();
// dtCloned.Rows.Add(array);
// }
// for (int i = 1; i <= (System.Math.Min(data.Tables["clienti" + value].Rows.Count, 5)); i++)
// {
// dtCloned.Columns.Add(new DataColumn("cliente" + i, typeof(string)));
// int indexrow = 0;
// foreach (var row in dtCloned.AsEnumerable())
// {
// dtCloned.Rows[indexrow]["cliente" + i] = dtCloned.Rows[indexrow]["ProQuota"];
// indexrow++;
// }
// }
// for (int index_row = 0; index_row < dtCloned.Rows.Count; index_row++)
// {
// // cerco index in tabella cliente
// DataRow anotherRow = data.Tables["clienti" + value].AsEnumerable().FirstOrDefault(row1 => row1["nome"].Equals(dtCloned.Rows[index_row]["NomeCliente"])
// && row1["cognome"].Equals(dtCloned.Rows[index_row]["CognomeCliente"]));
// int indiceCliente = data.Tables["clienti" + value].Rows.IndexOf(anotherRow);
// for (int i = 1; i <= (System.Math.Min(data.Tables["clienti"+value].Rows.Count, 5)); i++)
// {
// if (i - 1 == indiceCliente)
// dtCloned.Rows[index_row]["cliente" + i] = dtCloned.Rows[index_row]["ProQuota"];
// else
// dtCloned.Rows[index_row]["cliente" + i] = "0";
// dtCloned.Rows[index_row]["valoreImmobileTotale"] = dtCloned.Rows[index_row]["ProQuota"];
// }
// }
// data.Tables[name.ToString()].Merge(dtCloned);
// }
// }
// }
// return data;
//}
/// <summary>
/// Recupera i dati necessari alla Section restituendo un DataTable.
/// </summary>
/// <returns></returns>
protected override DataTable GetDataTable()
{
return null;
}
}
}