protected void Page_Load(object sender, EventArgs e) { int objetivoId = Convert.ToInt32(Request.QueryString["id"]); int companyId = Convert.ToInt32(Request.QueryString["companyId"]); var company = new Company(companyId); var res = ActionResult.NoAction; var user = HttpContext.Current.Session["User"] as ApplicationUser; var dictionary = HttpContext.Current.Session["Dictionary"] as Dictionary <string, string>; var objetivo = Objetivo.ById(objetivoId, user.CompanyId); string path = HttpContext.Current.Request.PhysicalApplicationPath; if (!path.EndsWith(@"\", StringComparison.OrdinalIgnoreCase)) { path = string.Format(CultureInfo.InvariantCulture, @"{0}\", path); } var formatedDescription = ToolsPdf.NormalizeFileName(objetivo.Name); string fileName = string.Format( CultureInfo.InvariantCulture, @"{0}_{1}_Data_{2:yyyyMMddhhmmss}.pdf", dictionary["Item_Objetivo"], formatedDescription, DateTime.Now); string type = string.Empty; string origin = string.Empty; string originSufix = string.Empty; string reporterType = string.Empty; string reporter = string.Empty; string status = string.Empty; var document = new iTextSharp.text.Document(PageSize.A4, 30, 30, 65, 55); var writer = PdfWriter.GetInstance(document, new FileStream(Request.PhysicalApplicationPath + "\\Temp\\" + fileName, FileMode.Create)); writer.PageEvent = new TwoColumnHeaderFooter { CompanyLogo = string.Format(CultureInfo.InvariantCulture, @"{0}\images\logos\{1}.jpg", path, companyId), IssusLogo = string.Format(CultureInfo.InvariantCulture, "{0}issus.png", path), Date = string.Format(CultureInfo.InvariantCulture, "{0:dd/MM/yyyy}", DateTime.Now), CreatedBy = user.UserName, CompanyId = objetivo.CompanyId, CompanyName = company.Name, Title = dictionary["Item_Objetivo"].ToUpperInvariant() }; document.Open(); var table = new PdfPTable(4) { WidthPercentage = 100, HorizontalAlignment = 0 }; table.SetWidths(new float[] { 15f, 30f, 15f, 30f }); ToolsPdf.AddDataLabel(table, dictionary["Item_Objetivo_FieldLabel_Name"], objetivo.Name, 3); ToolsPdf.AddDataLabel(table, dictionary["Item_Objetivo_FieldLabel_Responsible"], objetivo.Responsible.FullName, 3); ToolsPdf.AddDataLabel(table, dictionary["Item_Objetivo_FieldLabel_DateStart"], objetivo.StartDate); ToolsPdf.AddDataLabel(table, dictionary["Item_Objetivo_FieldLabel_ClosePreviewDate"], objetivo.PreviewEndDate); if (objetivo.VinculatedToIndicator) { var indicador = Indicador.ById(objetivo.IndicatorId.Value, companyId); ToolsPdf.AddDataLabel(table, dictionary["Item_Objetivo_FieldLabel_Indicator"], indicador.Description); ToolsPdf.AddDataLabel(table, dictionary["Item_Objetivo_FieldLabel_Periodicity"], indicador.Periodicity); } AddTextArea(table, dictionary["Item_Objetivo_FieldLabel_Description"], objetivo.Description, 4); AddTextArea(table, dictionary["Item_Objetivo_FieldLabel_Methodology"], objetivo.Methodology, 4); AddTextArea(table, dictionary["Item_Objetivo_FieldLabel_Resources"], objetivo.Resources, 4); AddTextArea(table, dictionary["Item_Objetivo_FieldLabel_Notes"], objetivo.Notes, 4); document.Add(table); if (user.HasGrantToRead(ApplicationGrant.IncidentActions)) { #region Acciones if (user.HasGrantToRead(ApplicationGrant.IncidentActions)) { var acciones = IncidentAction.ByObjetivoId(objetivoId, companyId); if (acciones.Count > 0) { document.SetPageSize(PageSize.A4.Rotate()); document.NewPage(); var tableAcciones = new PdfPTable(5) { WidthPercentage = 100, HorizontalAlignment = 1, SpacingBefore = 20f }; tableAcciones.SetWidths(new float[] { 20f, 120f, 20f, 20f, 20f }); ToolsPdf.AddTableTitle(tableAcciones, dictionary["Item_Objetivo_ActionsReportTitle"]); tableAcciones.AddCell(ToolsPdf.HeaderCell(dictionary["Item_IncidentAction_Header_Status"])); tableAcciones.AddCell(ToolsPdf.HeaderCell(dictionary["Item_IncidentAction_Header_Open"])); tableAcciones.AddCell(ToolsPdf.HeaderCell(dictionary["Item_IncidentAction_Header_Description"])); tableAcciones.AddCell(ToolsPdf.HeaderCell(dictionary["Item_IncidentAction_Header_ImplementDate"])); tableAcciones.AddCell(ToolsPdf.HeaderCell(dictionary["Item_IncidentAction_Header_Cost"])); int cont = 0; decimal totalAcciones = 0; foreach (var accion in acciones) { tableAcciones.AddCell(ToolsPdf.DataCell(accion.Status)); tableAcciones.AddCell(ToolsPdf.DataCell(accion.Description)); tableAcciones.AddCell(ToolsPdf.DataCell(accion.WhatHappenedOn)); tableAcciones.AddCell(ToolsPdf.DataCell(accion.ActionsOn)); tableAcciones.AddCell(ToolsPdf.DataCell(0)); cont++; var costs = IncidentActionCost.GetByIncidentActionId(accion.Id, company.Id); foreach (var cost in costs) { totalAcciones = cost.Amount; } } // TotalRow tableAcciones.AddCell(new iTSpdf.PdfPCell(new iTS.Phrase(dictionary["Common_RegisterCount"].ToUpperInvariant() + ":", ToolsPdf.LayoutFonts.TimesBold)) { Border = Rectangle.TOP_BORDER, HorizontalAlignment = Element.ALIGN_LEFT, Padding = 8f }); tableAcciones.AddCell(new iTSpdf.PdfPCell(new iTS.Phrase(string.Format(CultureInfo.InvariantCulture, "{0:#0.00}", cont), ToolsPdf.LayoutFonts.TimesBold)) { Border = Rectangle.TOP_BORDER, HorizontalAlignment = Element.ALIGN_RIGHT, Padding = 8f }); tableAcciones.AddCell(new iTSpdf.PdfPCell(new iTS.Phrase(dictionary["Common_Total"].ToUpperInvariant() + ":", ToolsPdf.LayoutFonts.TimesBold)) { Border = Rectangle.TOP_BORDER, HorizontalAlignment = Element.ALIGN_LEFT, Padding = 8f, Colspan = 2 }); tableAcciones.AddCell(new iTSpdf.PdfPCell(new iTS.Phrase(string.Format(CultureInfo.InvariantCulture, "{0:#0.00}", totalAcciones), ToolsPdf.LayoutFonts.TimesBold)) { Border = Rectangle.TOP_BORDER, HorizontalAlignment = Element.ALIGN_RIGHT, Padding = 8f }); tableAcciones.AddCell(new PdfPCell(new Phrase(string.Empty)) { Colspan = 3, Border = Rectangle.TOP_BORDER }); document.Add(tableAcciones); } } #endregion } #region Registros if (objetivo.VinculatedToIndicator) { var registros = IndicadorRegistro.ByIndicadorId(objetivo.IndicatorId.Value, companyId).ToList(); if (registros.Count > 0) { document.SetPageSize(PageSize.A4.Rotate()); document.NewPage(); var tableRegistros = new PdfPTable(5) { WidthPercentage = 100, HorizontalAlignment = 1, SpacingBefore = 20f }; tableRegistros.SetWidths(new float[] { 20f, 20f, 120f, 40f, 50f }); ToolsPdf.AddTableTitle(tableRegistros, dictionary["Item_Objetivo_RecordsReportTitle"]); tableRegistros.AddCell(ToolsPdf.HeaderCell("*" + dictionary["Item_Indicador_TableRecords_Header_Value"])); tableRegistros.AddCell(ToolsPdf.HeaderCell(dictionary["Item_Indicador_TableRecords_Header_Date"])); tableRegistros.AddCell(ToolsPdf.HeaderCell(dictionary["Item_Indicador_TableRecords_Header_Comments"])); tableRegistros.AddCell(ToolsPdf.HeaderCell(dictionary["Item_Indicador_TableRecords_Header_Meta"])); tableRegistros.AddCell(ToolsPdf.HeaderCell(dictionary["Item_Indicador_TableRecords_Header_Responsible"])); int cont = 0; foreach (var registro in registros) { string meta = dictionary["Common_Comparer_" + registro.MetaComparer] + " " + registro.Meta.ToString(); // WEKE ALEX: con datacellmoney el dato debe ser decimal y lo poen con dos decimales tableRegistros.AddCell(ToolsPdf.DataCellMoney(registro.Value)); tableRegistros.AddCell(ToolsPdf.DataCell(registro.Date)); tableRegistros.AddCell(ToolsPdf.DataCell(registro.Comments)); tableRegistros.AddCell(ToolsPdf.DataCell(meta)); tableRegistros.AddCell(ToolsPdf.DataCell(registro.Responsible.FullName)); cont++; } // TotalRow tableRegistros.AddCell(new iTSpdf.PdfPCell(new iTS.Phrase(dictionary["Common_RegisterCount"].ToUpperInvariant() + ":", ToolsPdf.LayoutFonts.TimesBold)) { Border = Rectangle.TOP_BORDER, HorizontalAlignment = Element.ALIGN_LEFT, Padding = 8f }); tableRegistros.AddCell(new iTSpdf.PdfPCell(new iTS.Phrase(string.Format(CultureInfo.InvariantCulture, "{0:#0.00}", cont), ToolsPdf.LayoutFonts.TimesBold)) { Border = Rectangle.TOP_BORDER, HorizontalAlignment = Element.ALIGN_RIGHT, Padding = 8f }); tableRegistros.AddCell(new PdfPCell(new Phrase(string.Empty)) { Colspan = 3, Border = Rectangle.TOP_BORDER }); document.Add(tableRegistros); } } else { var registros = ObjetivoRegistro.GetByObjetivo(objetivoId, companyId).ToList(); if (registros.Count > 0) { document.SetPageSize(PageSize.A4.Rotate()); document.NewPage(); var tableRegistros = new PdfPTable(5) { WidthPercentage = 100, HorizontalAlignment = 1, SpacingBefore = 20f }; tableRegistros.SetWidths(new float[] { 20f, 120f, 20f, 40f, 50f }); tableRegistros.AddCell(new PdfPCell(new Phrase(dictionary["Item_Objetivo_RecordsReportTitle"])) { Colspan = 5, Border = Rectangle.NO_BORDER, PaddingTop = 20f, PaddingBottom = 20f, HorizontalAlignment = Element.ALIGN_CENTER }); tableRegistros.AddCell(ToolsPdf.HeaderCell(dictionary["Item_Indicador_TableRecords_Header_Value"])); tableRegistros.AddCell(ToolsPdf.HeaderCell(dictionary["Item_Indicador_TableRecords_Header_Date"])); tableRegistros.AddCell(ToolsPdf.HeaderCell(dictionary["Item_Indicador_TableRecords_Header_Comments"])); tableRegistros.AddCell(ToolsPdf.HeaderCell(dictionary["Item_Indicador_TableRecords_Header_Meta"])); tableRegistros.AddCell(ToolsPdf.HeaderCell(dictionary["Item_Indicador_TableRecords_Header_Responsible"])); int cont = 0; foreach (var registro in registros) { string meta = dictionary["Common_Comparer_" + registro.MetaComparer] + " " + registro.Meta.ToString(); tableRegistros.AddCell(ToolsPdf.DataCell(registro.Value)); tableRegistros.AddCell(ToolsPdf.DataCellCenter(registro.Date)); tableRegistros.AddCell(ToolsPdf.DataCell(registro.Comments)); tableRegistros.AddCell(ToolsPdf.DataCell(meta)); tableRegistros.AddCell(ToolsPdf.DataCell(registro.Responsible.FullName)); cont++; } // TotalRow tableRegistros.AddCell(new iTSpdf.PdfPCell(new iTS.Phrase(dictionary["Common_Total"].ToUpperInvariant() + ":", ToolsPdf.LayoutFonts.TimesBold)) { Border = Rectangle.TOP_BORDER, HorizontalAlignment = Element.ALIGN_LEFT, Padding = 8f }); tableRegistros.AddCell(new iTSpdf.PdfPCell(new iTS.Phrase(string.Format(CultureInfo.InvariantCulture, "{0:#0.00}", cont), ToolsPdf.LayoutFonts.TimesBold)) { Border = Rectangle.TOP_BORDER, HorizontalAlignment = Element.ALIGN_RIGHT, Padding = 8f }); tableRegistros.AddCell(new PdfPCell(new Phrase(string.Empty)) { Colspan = 3, Border = Rectangle.TOP_BORDER }); document.Add(tableRegistros); } } #endregion if (user.HasGrantToRead(ApplicationGrant.IncidentActions)) { #region Historico var historico = ObjetivoHistorico.ByObjetivoId(objetivoId); if (historico.Count > 0) { document.SetPageSize(PageSize.A4.Rotate()); document.NewPage(); var tableHistorico = new PdfPTable(4) { WidthPercentage = 100, HorizontalAlignment = 1, SpacingBefore = 20f }; tableHistorico.SetWidths(new float[] { 20f, 20f, 120f, 50f }); ToolsPdf.AddTableTitle(tableHistorico, dictionary["Item_Objetivo_TabHistoric"]); tableHistorico.AddCell(ToolsPdf.HeaderCell(dictionary["Item_Objetivo_FieldLabel_Action"])); tableHistorico.AddCell(ToolsPdf.HeaderCell(dictionary["Item_IndicatorRecord_FieldLabel_Date"])); tableHistorico.AddCell(ToolsPdf.HeaderCell(dictionary["Item_ObjetivoRecord_FieldLabel_Reason"])); tableHistorico.AddCell(ToolsPdf.HeaderCell(dictionary["Item_Objetivo_FieldLabel_CloseResponsible"])); int cont = 0; foreach (var objetivoHistorico in historico) { var actionText = string.Empty; var description = string.Empty; if (objetivoHistorico.Reason == "Restore") { actionText = dictionary["Item_ObjetivoHistorico_StatusRestore"]; } else { actionText = dictionary["Item_ObjetivoHistorico_StatusAnulate"]; description = objetivoHistorico.Reason; } tableHistorico.AddCell(ToolsPdf.DataCell(actionText)); tableHistorico.AddCell(ToolsPdf.DataCell(objetivoHistorico.Date)); tableHistorico.AddCell(ToolsPdf.DataCell(description)); tableHistorico.AddCell(ToolsPdf.DataCell(objetivoHistorico.Employee.FullName)); cont++; } // TotalRow tableHistorico.AddCell(new iTSpdf.PdfPCell(new iTS.Phrase(dictionary["Common_Total"].ToUpperInvariant() + ":", ToolsPdf.LayoutFonts.TimesBold)) { Border = Rectangle.TOP_BORDER, HorizontalAlignment = Element.ALIGN_LEFT, Padding = 8f }); tableHistorico.AddCell(new iTSpdf.PdfPCell(new iTS.Phrase(string.Format(CultureInfo.InvariantCulture, "{0:#0.00}", cont), ToolsPdf.LayoutFonts.TimesBold)) { Border = Rectangle.TOP_BORDER, HorizontalAlignment = Element.ALIGN_RIGHT, Padding = 8f }); tableHistorico.AddCell(new PdfPCell(new Phrase(string.Empty)) { Colspan = 2, Border = Rectangle.TOP_BORDER }); document.Add(tableHistorico); } #endregion } document.Close(); Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("Content-Disposition", "inline;filename=Accion.pdf"); Response.ContentType = "application/pdf"; Response.WriteFile(Request.PhysicalApplicationPath + "\\Temp\\" + fileName); Response.Flush(); Response.Clear(); }
private void Go() { if (this.Request.QueryString["id"] != null) { this.objetivoId = Convert.ToInt32(this.Request.QueryString["id"]); } if (this.Request.QueryString["New"] != null) { this.ReturnScript = "document.location = 'ObjetivoList.aspx';"; } else { this.ReturnScript = "document.location = referrer;"; } this.ApplicationUser = (ApplicationUser)Session["User"]; this.Company = (Company)Session["company"]; this.Dictionary = Session["Dictionary"] as Dictionary <string, string>; this.master = this.Master as Giso; this.master.AdminPage = true; string serverPath = this.Request.Url.AbsoluteUri.Replace(this.Request.RawUrl.Substring(1), string.Empty); this.master.AddBreadCrumb("Item_Objetivos", "ObjetivoList.aspx", Constant.NotLeaft); this.master.AddBreadCrumb("Item_Objetivo_Detail"); this.master.Titulo = "Item_Objetivo_Detail"; this.formFooter = new FormFooter(); this.ActionsOpen = 0; if (this.objetivoId > 0) { this.Session["EquipmentId"] = this.objetivoId; this.Objetivo = Objetivo.ById(this.objetivoId, this.Company.Id); if (this.Objetivo.CompanyId != this.Company.Id) { this.Response.Redirect("NoAccesible.aspx", Constant.NotLeaft); Context.ApplicationInstance.CompleteRequest(); this.Objetivo = Objetivo.Empty; } this.master.TitleInvariant = true; this.master.Titulo = string.Format(CultureInfo.InvariantCulture, "{0}: <strong>{1}</strong>", this.Dictionary["Item_Objetivo_Header_Name"], this.Objetivo.Name); this.formFooter.ModifiedBy = this.Objetivo.ModifiedBy.Description; this.formFooter.ModifiedOn = this.Objetivo.ModifiedOn; this.formFooter.AddButton(new UIButton { Id = "BtnPrint", Icon = "icon-file-pdf", Text = this.Dictionary["Common_PrintPdf"], Action = "success" }); this.formFooter.AddButton(new UIButton { Id = "BtnRestaurar", Icon = "icon-undo", Text = this.Dictionary["Item_Objetivo_Btn_Restaurar"], Action = "primary" }); this.formFooter.AddButton(new UIButton { Id = "BtnAnular", Icon = "icon-ban-circle", Text = this.Dictionary["Item_Objetivo_Btn_Anular"], Action = "danger" }); this.formFooter.AddButton(new UIButton { Id = "BtnSave", Icon = "icon-ok", Text = this.Dictionary["Common_Save"], Action = "success" }); } else { //this.master.AddBreadCrumb("Item_Objetivo"); this.master.Titulo = "Item_Objetivo_Detail"; this.Objetivo = Objetivo.Empty; this.formFooter.ModifiedBy = this.Dictionary["Common_New"]; this.formFooter.ModifiedOn = DateTime.Now; this.formFooter.AddButton(new UIButton { Id = "BtnSave", Icon = "icon-ok", Text = this.Dictionary["Common_Accept"], Action = "success" }); } this.formFooter.AddButton(new UIButton { Id = "BtnCancel", Icon = "icon-undo", Text = this.Dictionary["Common_Cancel"] }); this.tabBar.AddTab(new Tab { Id = "home", Selected = true, Active = true, Label = this.Dictionary["Item_Objetivo_TabBasic"], Available = true }); this.tabBar.AddTab(new Tab { Id = "actions", Available = this.objetivoId > 0 && this.ApplicationUser.HasGrantToRead(ApplicationGrant.IncidentActions), Active = this.objetivoId > 0, Hidden = this.objetivoId < 1, Label = this.Dictionary["Item_Objetivo_TabActions"] }); this.tabBar.AddTab(new Tab { Id = "records", Available = this.objetivoId > 0, Active = this.objetivoId > 0, Hidden = this.objetivoId < 1, Label = this.Dictionary["Item_Objetivo_Tab_Records"] }); this.tabBar.AddTab(new Tab { Id = "graphics", Available = this.objetivoId > 0, Active = this.objetivoId > 0, Hidden = this.objetivoId < 1, Label = this.Dictionary["Item_Objetivo_TabGraphics"] }); this.tabBar.AddTab(new Tab { Id = "historic", Available = this.objetivoId > 0 && this.ApplicationUser.HasGrantToRead(ApplicationGrant.IncidentActions), Active = this.objetivoId > 0, Hidden = this.objetivoId < 1, Label = this.Dictionary["Item_Objetivo_TabHistoric"] }); this.RenderForm(); }
public static ActionResult PDF( int companyId, int indicatorType, DateTime?from, DateTime?to, int?processId, int?processTypeId, int?targetId, int status, string listOrder) { var res = ActionResult.NoAction; var user = HttpContext.Current.Session["User"] as ApplicationUser; dictionary = HttpContext.Current.Session["Dictionary"] as Dictionary <string, string>; var company = new Company(companyId); string path = HttpContext.Current.Request.PhysicalApplicationPath; if (!path.EndsWith(@"\", StringComparison.OrdinalIgnoreCase)) { path = string.Format(CultureInfo.InvariantCulture, @"{0}\", path); } var formatedDescription = ToolsPdf.NormalizeFileName(company.Name); string fileName = string.Format( CultureInfo.InvariantCulture, @"{0}_{1}_{2:yyyyMMddhhmmss}.pdf", dictionary["Item_Indicador_List"], formatedDescription, DateTime.Now); var pdfDoc = new iTS.Document(iTS.PageSize.A4.Rotate(), 40, 40, 80, 50); var writer = iTextSharp.text.pdf.PdfWriter.GetInstance(pdfDoc, new FileStream( string.Format(CultureInfo.InvariantCulture, @"{0}Temp\{1}", path, fileName), FileMode.Create)); writer.PageEvent = new TwoColumnHeaderFooter { CompanyLogo = string.Format(CultureInfo.InvariantCulture, @"{0}\images\logos\{1}.jpg", path, company.Id), IssusLogo = string.Format(CultureInfo.InvariantCulture, "{0}issus.png", path), Date = string.Format(CultureInfo.InvariantCulture, "{0:dd/MM/yyyy}", DateTime.Now), CreatedBy = user.UserName, CompanyId = company.Id, CompanyName = company.Name, Title = dictionary["Item_Indicador_List"].ToUpperInvariant() }; pdfDoc.Open(); var backgroundColor = new iTS.BaseColor(225, 225, 225); var titleTable = new iTSpdf.PdfPTable(1); titleTable.SetWidths(new float[] { 50f }); titleTable.AddCell(new iTSpdf.PdfPCell(new iTS.Phrase(string.Format(CultureInfo.InvariantCulture, "{0} - {1}", dictionary["Item_EquipmentList"], company.Name), ToolsPdf.LayoutFonts.TitleFont)) { HorizontalAlignment = iTS.Element.ALIGN_CENTER, Border = iTS.Rectangle.NO_BORDER }); var table = new iTSpdf.PdfPTable(6) { WidthPercentage = 100, HorizontalAlignment = 1, SpacingBefore = 20f, SpacingAfter = 30f }; //------ CRITERIA var criteriatable = new iTSpdf.PdfPTable(6) { WidthPercentage = 100 }; criteriatable.SetWidths(new float[] { 20f, 50f, 25f, 50f, 20f, 150f }); var criteriaBlank = new iTSpdf.PdfPCell(new iTS.Phrase(".", ToolsPdf.LayoutFonts.Times)) { Border = ToolsPdf.BorderNone, HorizontalAlignment = iTS.Element.ALIGN_LEFT, Padding = ToolsPdf.PaddingTopTableCell, PaddingTop = ToolsPdf.PaddingTopCriteriaCell }; string periode = string.Empty; if (from.HasValue && to == null) { periode = string.Format(CultureInfo.InvariantCulture, @"{0} {1:dd/MM/yyyy}", dictionary["Item_IncidentAction_List_Filter_From"], from); } else if (from == null && to.HasValue) { periode = string.Format(CultureInfo.InvariantCulture, @"{0} {1:dd/MM/yyyy}", dictionary["Item_IncidentAction_List_Filter_To"], to); } else if (from.HasValue && to.HasValue) { periode = string.Format(CultureInfo.InvariantCulture, @"{0:dd/MM/yyyy} {1:dd/MM/yyyy}", from, to); } else { periode = dictionary["Common_All_Male"]; } criteriatable.AddCell(ToolsPdf.CriteriaCellLabel(dictionary["Common_Period"])); criteriatable.AddCell(new iTSpdf.PdfPCell(new iTS.Phrase(periode, ToolsPdf.LayoutFonts.Times)) { Border = ToolsPdf.BorderNone, HorizontalAlignment = iTS.Element.ALIGN_LEFT, Padding = ToolsPdf.PaddingTopTableCell, PaddingTop = ToolsPdf.PaddingTopCriteriaCell }); criteriatable.AddCell(ToolsPdf.CriteriaCellLabel(dictionary["Item_IncidentAction_Header_Status"])); string statusText = dictionary["Common_All"]; if (status == 1) { statusText = dictionary["Item_ObjetivoAction_List_Filter_ShowActive"]; } if (status == 2) { statusText = dictionary["Item_ObjetivoAction_List_Filter_ShowClosed"]; } criteriatable.AddCell(ToolsPdf.CriteriaCellData(statusText)); criteriatable.AddCell(criteriaBlank); criteriatable.AddCell(criteriaBlank); criteriatable.AddCell(ToolsPdf.CriteriaCellLabel(dictionary["Item_Indicaddor_Filter_TypeLabel"])); string indicadorTypeText = string.Empty; switch (indicatorType) { case 0: indicadorTypeText = dictionary["Common_All_Male_Plural"]; break; case 1: indicadorTypeText = dictionary["Item_Indicaddor_Filter_TypeProcess"]; break; case 2: indicadorTypeText = dictionary["Item_Indicaddor_Filter_TypeObjetivo"]; break; default: indicadorTypeText = dictionary["Common_All_Male_Plural"]; break; } criteriatable.AddCell(ToolsPdf.CriteriaCellData(indicadorTypeText)); switch (indicatorType) { case 1: string processText = dictionary["Common_All_Male_Plural"]; if (processId.HasValue) { processText = new Process(processId.Value, companyId).Description; } string processTypeCriteriaText = dictionary["Common_All_Male_Plural"]; if (processTypeId.HasValue) { switch (processTypeId.Value) { case 1: processTypeCriteriaText = dictionary["Item_ProcessType_Name_Principal"]; break; case 2: processTypeCriteriaText = dictionary["Item_ProcessType_Name_Support"]; break; case 3: processTypeCriteriaText = dictionary["Item_ProcessType_Name_Estrategic"]; break; default: processTypeCriteriaText = string.Empty; foreach (var t in ProcessType.ObtainByCompany(companyId, dictionary)) { if (t.Id == processTypeId) { processTypeCriteriaText = t.Description; } } break; } } criteriatable.AddCell(ToolsPdf.CriteriaCellLabel(dictionary["Item_Process"])); criteriatable.AddCell(new iTSpdf.PdfPCell(new iTS.Phrase(processText, ToolsPdf.LayoutFonts.Times)) { Border = ToolsPdf.BorderNone, HorizontalAlignment = iTS.Element.ALIGN_LEFT, Padding = ToolsPdf.PaddingTopTableCell, PaddingTop = ToolsPdf.PaddingTopCriteriaCell }); criteriatable.AddCell(ToolsPdf.CriteriaCellLabel(dictionary["Item_ProcessType"])); criteriatable.AddCell(new iTSpdf.PdfPCell(new iTS.Phrase(processTypeCriteriaText, ToolsPdf.LayoutFonts.Times)) { Border = ToolsPdf.BorderNone, HorizontalAlignment = iTS.Element.ALIGN_LEFT, Padding = ToolsPdf.PaddingTopTableCell, PaddingTop = ToolsPdf.PaddingTopCriteriaCell }); break; case 2: string objetivoText = dictionary["Common_All_Male_Plural"]; if (targetId.HasValue) { objetivoText = Objetivo.ById(targetId.Value, companyId).Name; } criteriatable.AddCell(ToolsPdf.CriteriaCellLabel(dictionary["Item_Objetivo"])); criteriatable.AddCell(new iTSpdf.PdfPCell(new iTS.Phrase(objetivoText, ToolsPdf.LayoutFonts.Times)) { Border = ToolsPdf.BorderNone, HorizontalAlignment = iTS.Element.ALIGN_LEFT, Padding = ToolsPdf.PaddingTopTableCell, PaddingTop = ToolsPdf.PaddingTopCriteriaCell, Colspan = 3 }); break; default: criteriatable.AddCell(criteriaBlank); criteriatable.AddCell(criteriaBlank); criteriatable.AddCell(criteriaBlank); criteriatable.AddCell(criteriaBlank); break; } pdfDoc.Add(criteriatable); //--------------------------- table.SetWidths(new float[] { 7f, 30f, 10f, 30f, 10f, 10f });; table.AddCell(ToolsPdf.HeaderCell(dictionary["Common_Status"])); table.AddCell(ToolsPdf.HeaderCell(dictionary["Item_Indicador_Header_Description"])); table.AddCell(ToolsPdf.HeaderCell(dictionary["Item_Indicador_Header_StartDate"])); table.AddCell(ToolsPdf.HeaderCell(dictionary["Item_Indicador_Header_Process"])); table.AddCell(ToolsPdf.HeaderCell(dictionary["Item_Indicador_Header_ProcessType"])); table.AddCell(ToolsPdf.HeaderCell(dictionary["Item_Indicador_Header_ObjetivoResponsible"])); var tipoProcesos = ProcessType.ObtainByCompany(company.Id, dictionary); int cont = 0; var data = Indicador.Filter(companyId, indicatorType, from, to, processId, processTypeId, targetId, status).ToList(); foreach (var item in data) { string processTypeText = string.Empty; switch (item.Proceso.ProcessType) { case 1: item.Proceso.Work = dictionary["Item_ProcessType_Name_Principal"]; break; case 2: item.Proceso.Work = dictionary["Item_ProcessType_Name_Support"]; break; case 3: item.Proceso.Work = dictionary["Item_ProcessType_Name_Estrategic"]; break; default: item.Proceso.Work = tipoProcesos.First(tp => tp.Id == item.Proceso.ProcessType).Description; break; } } switch (listOrder.ToUpperInvariant()) { default: case "TH0|ASC": data = data.OrderBy(d => d.Indicador.Description).ToList(); break; case "TH0|DESC": data = data.OrderByDescending(d => d.Indicador.Description).ToList(); break; case "TH1|ASC": data = data.OrderBy(d => d.StartDate).ToList(); break; case "TH1|DESC": data = data.OrderByDescending(d => d.StartDate).ToList(); break; case "TH2|ASC": data = data.OrderBy(d => d.Proceso.Description).ToList(); break; case "TH2|DESC": data = data.OrderByDescending(d => d.Proceso.Description).ToList(); break; case "TH3|ASC": data = data.OrderBy(d => d.Proceso.Work).ToList(); break; case "TH3|DESC": data = data.OrderByDescending(d => d.Proceso.Work).ToList(); break; case "TH4|ASC": data = data.OrderBy(d => d.ObjetivoResponsible).ToList(); break; case "TH4|DESC": data = data.OrderByDescending(d => d.ObjetivoResponsible).ToList(); break; } foreach (var item in data) { table.AddCell(ToolsPdf.DataCell(item.Status == 0 ? dictionary["Common_Active"] : dictionary["Common_Inactive"], ToolsPdf.LayoutFonts.Times)); table.AddCell(ToolsPdf.DataCell(item.Indicador.Description, ToolsPdf.LayoutFonts.Times)); table.AddCell(ToolsPdf.DataCell(item.StartDate, ToolsPdf.LayoutFonts.Times, Rectangle.ALIGN_CENTER)); table.AddCell(ToolsPdf.DataCell(item.Proceso.Description, ToolsPdf.LayoutFonts.Times)); table.AddCell(ToolsPdf.DataCell(item.Proceso.Work, ToolsPdf.LayoutFonts.Times)); table.AddCell(ToolsPdf.DataCell(item.ObjetivoResponsible, ToolsPdf.LayoutFonts.Times)); cont++; } table.AddCell(new iTSpdf.PdfPCell(new iTS.Phrase(string.Format( CultureInfo.InvariantCulture, @"{0}: {1}", dictionary["Common_RegisterCount"], cont), ToolsPdf.LayoutFonts.Times)) { Border = iTS.Rectangle.TOP_BORDER, BackgroundColor = backgroundColor, Padding = ToolsPdf.PaddingTopTableCell, PaddingTop = ToolsPdf.PaddingTopCriteriaCell, Colspan = 2 }); table.AddCell(new iTSpdf.PdfPCell(new iTS.Phrase(string.Empty, ToolsPdf.LayoutFonts.Times)) { Border = iTS.Rectangle.TOP_BORDER, BackgroundColor = backgroundColor, Colspan = 4 }); pdfDoc.Add(table); pdfDoc.CloseDocument(); res.SetSuccess(string.Format(CultureInfo.InvariantCulture, @"{0}Temp/{1}", ConfigurationManager.AppSettings["siteUrl"], fileName)); return(res); }
/// <summary>Begin page running after session validations</summary> private void Go() { if (this.Request.QueryString["id"] != null) { this.IncidentActionId = Convert.ToInt64(this.Request.QueryString["id"]); } if (this.Request.QueryString["New"] != null) { this.returnScript = "document.location = 'ActionsList.aspx';"; } else { this.returnScript = "document.location = referrer;"; } this.ApplicationUser = Session["User"] as ApplicationUser; this.Company = Session["company"] as Company; this.Dictionary = Session["Dictionary"] as Dictionary <string, string>; this.master = this.Master as Giso; this.master.AdminPage = true; string serverPath = this.Request.Url.AbsoluteUri.Replace(this.Request.RawUrl.Substring(1), string.Empty); if (this.ApplicationUser.HasGrantToRead(ApplicationGrant.IncidentActions)) { this.master.AddBreadCrumb("Item_IncidentActions", "ActionList.aspx", Constant.NotLeaft); } else { this.master.AddBreadCrumb("Item_IncidentActions"); } this.master.AddBreadCrumb("Item_IncidentActions_Detail"); this.grantToWrite = this.ApplicationUser.HasGrantToWrite(ApplicationGrant.IncidentActions); this.Incident = Incident.Empty; if (this.IncidentActionId > 0) { this.IncidentAction = IncidentAction.ById(this.IncidentActionId, this.Company.Id); if (this.IncidentAction.CompanyId != this.Company.Id) { this.Response.Redirect("NoAccesible.aspx", Constant.EndResponse); Context.ApplicationInstance.CompleteRequest(); this.IncidentAction = IncidentAction.Empty; } this.master.TitleInvariant = true; this.master.Titulo = string.Format(CultureInfo.InvariantCulture, "{0}: <strong>{2} - {1}</strong>", this.Dictionary["Item_IncidentAction"], this.IncidentAction.Description, this.IncidentAction.Number.ToString()); this.formFooter = new FormFooter { ModifiedBy = this.IncidentAction.ModifiedBy.Description, ModifiedOn = this.IncidentAction.ModifiedOn }; this.formFooter.AddButton(new UIButton { Id = "BtnRestaurar", Icon = "icon-undo", Text = this.Dictionary["Item_IncidentAction_Btn_Restaurar"], Action = "primary" }); this.formFooter.AddButton(new UIButton { Id = "BtnAnular", Icon = "icon-ban-circle", Text = this.Dictionary["Item_IncidentAction_Btn_Anular"], Action = "danger" }); this.formFooter.AddButton(new UIButton { Id = "BtnPrint", Icon = "icon-file-pdf", Text = this.Dictionary["Common_PrintPdf"], Action = "success", ColumnsSpan = 12 }); this.formFooter.AddButton(new UIButton { Id = "BtnSave", Icon = "icon-ok", Text = this.Dictionary["Common_Accept"], Action = "success", ColumnsSpan = 12 }); this.formFooter.AddButton(new UIButton { Id = "BtnCancel", Icon = "icon-undo", Text = this.Dictionary["Common_Cancel"], ColumnsSpan = 12 }); this.master.ItemCode = this.IncidentAction.Description; this.OriginItemLink = this.Dictionary["Item_IncidentAction_Origin2"]; if (this.IncidentAction.IncidentId.HasValue && this.IncidentAction.IncidentId > 0) { this.Incident = Incident.GetById(this.IncidentAction.IncidentId.Value, this.Company.Id); this.OriginItemLink = this.Dictionary["Item_IncidentAction_Origin3"] + " " + this.Incident.Link; } if (this.IncidentAction.BusinessRiskId.HasValue && this.IncidentAction.BusinessRiskId > 0) { this.BusinessRisk = BusinessRisk.ById(this.Company.Id, this.IncidentAction.BusinessRiskId.Value); this.OriginItemLink = this.Dictionary["Item_IncidentAction_Origin4"] + " " + this.BusinessRisk.Link; } if (this.IncidentAction.Objetivo.Id > 0) { this.Objetivo = this.IncidentAction.Objetivo; this.OriginItemLink = this.Dictionary["Item_IncidentAction_Origin5"] + " " + this.Objetivo.Link; } if (this.IncidentAction.Oportunity.Id > 0) { this.Oportunity = this.IncidentAction.Oportunity; this.OriginItemLink = this.Dictionary["Item_IncidentAction_Origin6"] + " " + this.Oportunity.Link; } if (this.IncidentAction.Origin == 1) { if (this.IncidentAction.AuditoryId != null && this.IncidentAction.AuditoryId > 0) { var auditory = Auditory.ById(this.IncidentAction.AuditoryId.Value, this.Company.Id); this.OriginItemLink = string.Format( CultureInfo.InvariantCulture, @"{0} - {1}", this.Dictionary["Item_IncidentAction_Origin1"], auditory.Link); } else { this.OriginItemLink = this.Dictionary["Item_IncidentAction_Origin1"]; } } this.RenderDocuments(); } else { this.master.Titulo = "Item_IncidentActions_Detail"; this.IncidentAction = IncidentAction.Empty; this.formFooter = new FormFooter(this.Dictionary, this.grantToWrite); if (this.Request.QueryString["o"] != null) { var objetivoId = Convert.ToInt32(this.Request.QueryString["o"]); this.Objetivo = Objetivo.ById(objetivoId, this.Company.Id); this.IncidentAction.Description = this.Objetivo.Name; this.IncidentAction.Origin = 5; this.IncidentAction.Objetivo = this.Objetivo; this.IncidentAction.WhatHappened = this.Objetivo.Description; this.IncidentAction.WhatHappenedOn = DateTime.Now; } this.OriginItemLink = this.Dictionary["Item_IncidentAction_Origin2"]; if (this.IncidentAction.Origin == 1) { this.OriginItemLink = this.Dictionary["Item_IncidentAction_Origin1"]; } else if (this.IncidentAction.Origin == 5) { this.OriginItemLink = string.Format( CultureInfo.InvariantCulture, "{0}: {1}", this.Dictionary["Item_IncidentAction_Origin5"], this.Objetivo.Link); } } this.tabBar.AddTab(new Tab { Id = "home", Selected = true, Active = true, Label = this.Dictionary["Item_IncidentAction_Tab_Basic"], Available = true }); this.tabBar.AddTab(new Tab { Id = "costes", Available = this.ApplicationUser.HasGrantToRead(ApplicationGrant.Cost) && this.IncidentActionId > 0, Active = this.IncidentActionId > 0, Label = this.Dictionary["Item_IncidentAction_Tab_Costs"] }); this.tabBar.AddTab(new Tab { Id = "uploadFiles", Available = true, Active = this.IncidentActionId > 0, Hidden = this.IncidentActionId < 1, Label = this.Dictionary["Item_IncidentAction_Tab_UploadFiles"] }); // this.tabBar.AddTab(new Tab { Id = "trazas", Available = this.user.HasTraceGrant() && this.IncidentActionId > 0, Active = this.IncidentActionId > 0, Label = this.dictionary["Item_IncidentAction_Tab_Traces"] }); this.RenderForm(); this.ProviderBarPopups = new BarPopup { Id = "Provider", DeleteMessage = this.Dictionary["Common_DeleteMessage"], BarWidth = 600, UpdateWidth = 600, DeleteWidth = 600, Required = true, RequiredMessage = this.Dictionary["Common_Required"], Duplicated = true, DuplicatedMessage = this.Dictionary["Common_Error_NameAlreadyExists"], Description = "Proveedor", FieldName = this.Dictionary["Item_Provider"], BarTitle = this.Dictionary["Item_Providers"] }; this.CustomerBarPopups = new BarPopup { Id = "Customer", DeleteMessage = this.Dictionary["Common_DeleteMessage"], BarWidth = 600, UpdateWidth = 600, DeleteWidth = 600, Required = true, RequiredMessage = this.Dictionary["Common_Required"], Duplicated = true, DuplicatedMessage = this.Dictionary["Common_Error_NameAlreadyExists"], Description = "Cliente", FieldName = this.Dictionary["Item_Customer"], BarTitle = this.Dictionary["Item_Customers"] }; }
protected void Page_Load(object sender, EventArgs e) { long actionId = Convert.ToInt64(Request.QueryString["id"]); int companyId = Convert.ToInt32(Request.QueryString["companyId"]); var company = new Company(companyId); var res = ActionResult.NoAction; var user = HttpContext.Current.Session["User"] as ApplicationUser; var dictionary = HttpContext.Current.Session["Dictionary"] as Dictionary <string, string>; var action = IncidentAction.ById(actionId, user.CompanyId); string path = HttpContext.Current.Request.PhysicalApplicationPath; if (!path.EndsWith(@"\", StringComparison.OrdinalIgnoreCase)) { path = string.Format(CultureInfo.InvariantCulture, @"{0}\", path); } var formatedDescription = ToolsPdf.NormalizeFileName(action.Description); formatedDescription = formatedDescription.Replace(@"\", "/"); string fileName = string.Format( CultureInfo.InvariantCulture, @"{0}_{1}_Data_{2:yyyyMMddhhmmss}.pdf", dictionary["Item_IncidentAction"], formatedDescription, DateTime.Now); string type = string.Empty; string origin = string.Empty; string originSufix = string.Empty; string reporterType = string.Empty; string reporter = string.Empty; if (action.ActionType == 1) { type = dictionary["Item_IncidentAction_Type1"]; } if (action.ActionType == 2) { type = dictionary["Item_IncidentAction_Type2"]; } if (action.ActionType == 3) { type = dictionary["Item_IncidentAction_Type3"]; } if (action.Origin == 1) { origin = dictionary["Item_IncidentAction_Origin1"]; } if (action.Origin == 2) { origin = dictionary["Item_IncidentAction_Origin2"]; } if (action.Origin == 3) { if (action.IncidentId.HasValue) { var incident = Incident.GetById(action.IncidentId.Value, action.CompanyId); origin = string.Format( CultureInfo.InvariantCulture, @"{0}: {1}", dictionary["Item_Incident"], incident.Description); } } if (action.Origin == 4) { if (action.BusinessRiskId.HasValue) { if (action.BusinessRiskId > Constant.DefaultId) { var businessRisk = BusinessRisk.ById(action.CompanyId, action.BusinessRiskId.Value); origin = businessRisk.Description; originSufix = " (" + dictionary["Item_BusinessRisk"] + ")"; } } } if (action.Origin == 5) { if (action.ObjetivoId.HasValue) { if (action.ObjetivoId > Constant.DefaultId) { var objetivo = Objetivo.ById(Convert.ToInt32(action.ObjetivoId.Value), action.CompanyId); origin = objetivo.Name; originSufix = " (" + dictionary["Item_Objetivo"] + ")"; } } } if (action.Origin == 6) { if (action.Oportunity.Id > Constant.DefaultId) { var oportunidad = Oportunity.ById(Convert.ToInt32(action.Oportunity.Id), action.CompanyId); origin = oportunidad.Description; originSufix = " (" + dictionary["Item_Oportunity"] + ")"; } } else { switch (action.ReporterType) { case 1: reporterType = dictionary["Item_IncidentAction_ReporterType1"]; if (action.Department != null && action.Department.Id > 0) { var department = Department.ById(action.Department.Id, action.CompanyId); reporter = department.Description; } break; case 2: reporterType = dictionary["Item_IncidentAction_ReporterType2"]; if (action.Provider != null && action.Provider.Id > 0) { var provider = Provider.ById(action.Provider.Id, action.CompanyId); reporter = provider.Description; } break; case 3: reporterType = dictionary["Item_IncidentAction_ReporterType3"]; if (action.Customer != null && action.Customer.Id > 0) { var customer = Customer.ById(action.Customer.Id, action.CompanyId); reporter = customer.Description; } break; default: break; } } string status = string.Empty; var document = new iTextSharp.text.Document(PageSize.A4, 30, 30, 65, 55); var writer = PdfWriter.GetInstance(document, new FileStream(Request.PhysicalApplicationPath + "\\Temp\\" + fileName, FileMode.Create)); writer.PageEvent = new TwoColumnHeaderFooter { CompanyLogo = string.Format(CultureInfo.InvariantCulture, @"{0}\images\logos\{1}.jpg", path, companyId), IssusLogo = string.Format(CultureInfo.InvariantCulture, "{0}issus.png", path), Date = string.Format(CultureInfo.InvariantCulture, "{0:dd/MM/yyyy}", DateTime.Now), CreatedBy = user.UserName, CompanyId = action.CompanyId, CompanyName = company.Name, Title = dictionary["Item_IncidentAction"].ToUpperInvariant() }; document.Open(); var styles = new iTextSharp.text.html.simpleparser.StyleSheet(); var hw = new iTextSharp.text.html.simpleparser.HTMLWorker(document); var widths = new float[] { 15f, 30f, 15f, 30f }; var table = new PdfPTable(4) { WidthPercentage = 100, HorizontalAlignment = 0 }; table.SetWidths(widths); var borderSides = Rectangle.RIGHT_BORDER + Rectangle.LEFT_BORDER; var borderTBL = Rectangle.TOP_BORDER + Rectangle.BOTTOM_BORDER + Rectangle.LEFT_BORDER; var borderTBR = Rectangle.TOP_BORDER + Rectangle.BOTTOM_BORDER + Rectangle.RIGHT_BORDER; var borderBL = Rectangle.BOTTOM_BORDER + Rectangle.LEFT_BORDER; var borderBR = Rectangle.BOTTOM_BORDER + Rectangle.RIGHT_BORDER; var alignLeft = Element.ALIGN_LEFT; var alignRight = Element.ALIGN_RIGHT; var labelFont = new Font(this.arial, 10, Font.NORMAL, BaseColor.DARK_GRAY); var valueFont = new Font(this.arial, 10, Font.NORMAL, BaseColor.BLACK); // Descripción table.AddCell(LabelCell(dictionary["Item_IncidentAction"], Rectangle.NO_BORDER)); table.AddCell(ValueCell(action.Number.ToString() + " - " + action.Description, ToolsPdf.BorderNone, alignLeft, 3)); // Tipo table.AddCell(LabelCell(dictionary["Item_IncidentAction_Label_Type"], Rectangle.NO_BORDER)); table.AddCell(ValueCell(type, ToolsPdf.BorderNone, alignLeft, 1)); // Origen table.AddCell(LabelCell(dictionary["Item_IncidentAction_Label_Origin"], Rectangle.NO_BORDER)); table.AddCell(ValueCell(origin + originSufix, ToolsPdf.BorderNone, alignLeft, 3)); // Reportador if (action.Origin != 4 && action.Origin != 5 && !string.IsNullOrEmpty(reporter)) { table.AddCell(LabelCell(dictionary["Item_IncidentAction_Label_Reporter"], Rectangle.NO_BORDER)); table.AddCell(ValueCell(reporterType + " (" + reporter + ")", ToolsPdf.BorderNone, alignLeft, 3)); } // WhatHappend table.AddCell(SeparationRow()); table.AddCell(TitleCell(dictionary["Item_IncidentAction_Field_WhatHappened"])); table.AddCell(TextAreaCell(Environment.NewLine + action.WhatHappened, borderSides, alignLeft, 4)); table.AddCell(BlankRow()); table.AddCell(TextAreaCell(dictionary["Item_IncidentAction_Field_Responsible"] + ": " + action.WhatHappenedBy.FullName, borderBL, alignLeft, 2)); table.AddCell(TextAreaCell(string.Format(CultureInfo.InvariantCulture, "{0}: {1:dd/MM/yyyy}", dictionary["Common_Date"], action.WhatHappenedOn), borderBR, alignRight, 2)); // Causes table.AddCell(SeparationRow()); table.AddCell(TitleCell(dictionary["Item_IncidentAction_Field_Causes"])); table.AddCell(TextAreaCell(Environment.NewLine + action.Causes, borderSides, alignLeft, 4)); table.AddCell(BlankRow()); table.AddCell(TextAreaCell(dictionary["Item_IncidentAction_Field_Responsible"] + ": " + action.CausesBy.FullName, borderBL, alignLeft, 2)); table.AddCell(TextAreaCell(string.Format(CultureInfo.InvariantCulture, "{0}: {1:dd/MM/yyyy}", dictionary["Common_Date"], action.CausesOn), borderBR, alignRight, 2)); // Actions table.AddCell(SeparationRow()); table.AddCell(TitleCell(dictionary["Item_IncidentAction_Field_Actions"])); table.AddCell(TextAreaCell(Environment.NewLine + action.Actions, borderSides, alignLeft, 4)); table.AddCell(BlankRow()); table.AddCell(TextAreaCell(dictionary["Item_IncidentAction_Field_Responsible"] + ": " + action.ActionsBy.FullName, borderBL, alignLeft, 2)); table.AddCell(TextAreaCell(string.Format(CultureInfo.InvariantCulture, "{0}: {1:dd/MM/yyyy}", dictionary["Common_DateExecution"], action.ActionsOn), borderBR, alignRight, 2)); // Monitoring table.AddCell(SeparationRow()); table.AddCell(TitleCell(dictionary["Item_IncidentAction_Field_Monitoring"])); table.AddCell(TextAreaCell(Environment.NewLine + action.Monitoring, ToolsPdf.BorderAll, alignLeft, 4)); // Close table.AddCell(SeparationRow()); table.AddCell(TitleCell(dictionary["Item_IncidentAction_Field_Close"])); table.AddCell(TextAreaCell(string.Format(CultureInfo.InvariantCulture, "\n{0}: {1}", dictionary["Item_IncidentAction_Field_Responsible"], action.ClosedBy.FullName), borderTBL, alignLeft, 2)); table.AddCell(TextAreaCell(string.Format(CultureInfo.InvariantCulture, "\n{0}: {1:dd/MM/yyyy}", dictionary["Common_DateClose"], action.ClosedOn), borderTBR, alignRight, 2)); // Notes table.AddCell(SeparationRow()); table.AddCell(TitleCell(dictionary["Item_IncidentAction_Field_Notes"])); table.AddCell(TextAreaCell(Environment.NewLine + action.Notes, ToolsPdf.BorderAll, alignLeft, 4)); document.Add(table); // Costes var costs = IncidentActionCost.GetByIncidentActionId(actionId, companyId); if (costs.Count > 0) { var times = new Font(arial, 8, Font.NORMAL, BaseColor.BLACK); var fontSummary = new Font(arial, 9, Font.BOLD, BaseColor.BLACK); var headerFontFinal = new Font(headerFont, 9, Font.NORMAL, BaseColor.BLACK); // @alex: hay que crear la tabla con 6 columnas en lugar de 5 //var tableCosts = new PdfPTable(5) var tableCosts = new PdfPTable(6) { WidthPercentage = 100, HorizontalAlignment = 1, SpacingBefore = 20f, SpacingAfter = 30f }; // @alex: se añade una nueva columna de 10f para la fecha //tableCosts.SetWidths(new float[] { 35f, 10f, 10f, 10f, 20f }); tableCosts.SetWidths(new float[] { 35f, 10f, 10f, 10f, 10f, 20f }); tableCosts.AddCell(ToolsPdf.HeaderCell(dictionary["Item_IncidentCost_Header_Description"])); // @alex: se añade una nueva cabecera tableCosts.AddCell(ToolsPdf.HeaderCell(dictionary["Common_Date"])); tableCosts.AddCell(ToolsPdf.HeaderCell(dictionary["Item_IncidentCost_Header_Amount"])); tableCosts.AddCell(ToolsPdf.HeaderCell(dictionary["Item_IncidentCost_Header_Quantity"])); tableCosts.AddCell(ToolsPdf.HeaderCell(dictionary["Item_IncidentCost_Header_Total"])); tableCosts.AddCell(ToolsPdf.HeaderCell(dictionary["Item_IncidentCost_Header_ReportedBy"])); decimal total = 0; decimal totalAccion = 0; int cont = 0; int contAccion = 0; // Acciones foreach (var cost in costs.Where(c => c.Active == true)) { tableCosts.AddCell(ToolsPdf.DataCell(cost.Description, times)); // @alex: se añade la columna en la misma posición que en el listado de la ficha tableCosts.AddCell(ToolsPdf.DataCellCenter(cost.Date, times)); tableCosts.AddCell(ToolsPdf.DataCellMoney(cost.Amount, times)); tableCosts.AddCell(ToolsPdf.DataCellMoney(cost.Quantity, times)); tableCosts.AddCell(ToolsPdf.DataCellMoney(cost.Quantity * cost.Amount, times)); tableCosts.AddCell(ToolsPdf.DataCellCenter(cost.Responsible.FullName, times)); total += cost.Amount * cost.Quantity; totalAccion = cost.Amount * cost.Quantity; cont++; contAccion++; } tableCosts.AddCell(new PdfPCell(new Phrase(string.Format( CultureInfo.InvariantCulture, @"{0} {2}: {1}", dictionary["Common_RegisterCount"], contAccion, dictionary["Item_IncidentAction"]), times)) { Border = Rectangle.TOP_BORDER, BackgroundColor = ToolsPdf.SummaryBackgroundColor, Padding = 6f, PaddingTop = 4f, Colspan = 3//@ alex: al haber una columna más el colspan crece de 2 a 3 }); tableCosts.AddCell(new PdfPCell(new Phrase(dictionary["Common_Total"], times)) { Border = Rectangle.TOP_BORDER, BackgroundColor = ToolsPdf.SummaryBackgroundColor, Padding = 6f, PaddingTop = 4f, Colspan = 1, HorizontalAlignment = Rectangle.ALIGN_RIGHT }); tableCosts.AddCell(new PdfPCell(new Phrase(Tools.PdfMoneyFormat(total), times)) { Border = Rectangle.TOP_BORDER, BackgroundColor = ToolsPdf.SummaryBackgroundColor, Padding = 6f, PaddingTop = 4f, Colspan = 1, HorizontalAlignment = Rectangle.ALIGN_RIGHT, }); tableCosts.AddCell(new PdfPCell(new Phrase(string.Format(string.Empty, times))) { Border = Rectangle.TOP_BORDER, BackgroundColor = ToolsPdf.SummaryBackgroundColor, Padding = 6f, PaddingTop = 4f, Colspan = 1 }); document.SetPageSize(PageSize.A4.Rotate()); document.NewPage(); document.Add(tableCosts); } document.Close(); Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("Content-Disposition", "inline;filename=Accion.pdf"); Response.ContentType = "application/pdf"; Response.WriteFile(Request.PhysicalApplicationPath + "\\Temp\\" + fileName); Response.Flush(); Response.Clear(); }