This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
@@ -27,12 +28,12 @@ public partial class RH_CalculoSBC : ClsPaginas
|
||||
{
|
||||
using (ClsNominas objnom = new ClsNominas())
|
||||
{
|
||||
if (objnom.GetCalculoSBC(UsuarioActual.CveEmpresa,DdlTipo.SelectedValue.ToEntero(), TxtFechaPago.Text))
|
||||
if (objnom.GetCalculoSBC(UsuarioActual.CveEmpresa, DdlTipo.SelectedValue.ToEntero(), TxtFechaPago.Text))
|
||||
{
|
||||
GVCalculosSBC.DataSource = objnom.DTSetResultados.Tables[0];
|
||||
GVCFija.DataSource = objnom.DTSetResultados.Tables[0];
|
||||
GVPV.DataSource = objnom.DTSetResultados.Tables[0];
|
||||
if(objnom.DTSetResultados.Tables.Count > 0)
|
||||
if (objnom.DTSetResultados.Tables.Count >1)
|
||||
{
|
||||
GVDetalleParteVariable.DataSource = objnom.DTSetResultados.Tables[1];
|
||||
GVDetalleParteVariable.DataBind();
|
||||
@@ -75,8 +76,8 @@ public partial class RH_CalculoSBC : ClsPaginas
|
||||
//}
|
||||
foreach (GridViewRow item in GVCalculosSBC.Rows)
|
||||
{
|
||||
double SalarioDiarioSSNuevo =Math.Round( item.DataKey("SalarioDiarioSSNuevo").ToDouble(),2);
|
||||
double SalarioDiarioSS = Math.Round(item.DataKey("SalarioDiarioSS").ToDouble(),2);
|
||||
double SalarioDiarioSSNuevo = Math.Round(item.DataKey("SalarioDiarioSSNuevo").ToDouble(), 2);
|
||||
double SalarioDiarioSS = Math.Round(item.DataKey("SalarioDiarioSS").ToDouble(), 2);
|
||||
if (SalarioDiarioSSNuevo != SalarioDiarioSS)
|
||||
{
|
||||
MovtosmodSalario = string.Format("{0}{1}{2}", MovtosmodSalario, concater, item.DataKey("Movtotxt"));
|
||||
@@ -113,9 +114,9 @@ public partial class RH_CalculoSBC : ClsPaginas
|
||||
int CvePersonal = item.DataKey("CvePersonal").ToEntero();//,,,
|
||||
double SalarioDiario = item.DataKey("SalarioDiario").ToDouble();
|
||||
double SDINuevo = item.DataKey("SDINuevo").ToDouble();
|
||||
double SalarioDiarioSSNuevo = Math.Round(item.DataKey("SalarioDiarioSSNuevo").ToDouble(),2);
|
||||
double SalarioDiarioSSNuevo = Math.Round(item.DataKey("SalarioDiarioSSNuevo").ToDouble(), 2);
|
||||
double SalarioVariableNuevo = item.DataKey("SalarioVariableNuevo").ToDouble();
|
||||
double SalarioDiarioSS = Math.Round(item.DataKey("SalarioDiarioSS").ToDouble(),2);
|
||||
double SalarioDiarioSS = Math.Round(item.DataKey("SalarioDiarioSS").ToDouble(), 2);
|
||||
if (continuar && SalarioDiarioSSNuevo != SalarioDiarioSS && (continuar = objrh.UpdateSalarios(CvePersonal, fecha, UsuarioActual.CveEmpresa, SalarioDiario, SDINuevo, SalarioDiarioSSNuevo, SalarioDiario)))
|
||||
{
|
||||
|
||||
@@ -141,22 +142,118 @@ public partial class RH_CalculoSBC : ClsPaginas
|
||||
|
||||
protected void LnkDescargar_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (Tab.ActiveTab == TabSBC)
|
||||
DataTable dt = GVToDT(GVCalculosSBC,"Salario");
|
||||
DataTable dtPF = GVToDT(GVCFija, "Parte fija");
|
||||
DataTable dtPV = GVToDT(GVPV, "Parte variable");
|
||||
DataTable dtPVD = GVToDT(GVDetalleParteVariable, "Detalle parte variable");
|
||||
|
||||
ClosedXML.Excel.XLWorkbook wb = new ClosedXML.Excel.XLWorkbook();
|
||||
var libro = wb.AddWorksheet(dt);
|
||||
var libroPF = wb.AddWorksheet(dtPF);
|
||||
var libroPV = wb.AddWorksheet(dtPV);
|
||||
var libroPVD = wb.AddWorksheet(dtPVD);
|
||||
libro.ColumnsUsed().AdjustToContents();
|
||||
libroPF.ColumnsUsed().AdjustToContents();
|
||||
libroPV.ColumnsUsed().AdjustToContents();
|
||||
libroPVD.ColumnsUsed().AdjustToContents();
|
||||
|
||||
|
||||
libro.ColumnsUsed().AdjustToContents();
|
||||
libro.Row(1).InsertRowsAbove(5);
|
||||
libro.Range(1, 2, 1, 6).Merge().Value = UsuarioActual.Empresa.Empresa;
|
||||
libro.Range(2, 2, 2, 6).Merge().Value = $"Reporte de calculo de sbc {TxtFechaPago.Text}.";
|
||||
libro.Range(1, 2, 2, 6).Style.Font.SetBold(true);
|
||||
libro.Range(1, 2, 2, 6).Style.Font.SetFontSize(16);
|
||||
libro.Range(2, 2, 2, 6).Style.Font.SetFontSize(14);
|
||||
libro.Range(1, 2, 2, 6).Style.Alignment.Horizontal = ClosedXML.Excel.XLAlignmentHorizontalValues.Center;
|
||||
//libro.Range(3, 2, 3, 6).Merge().Value = $"del {fechai:dd/MM/yyyy} al {fechaf:dd/MM/yyyy}";
|
||||
libro.Range(2, 7, 2, 9).Merge().Value = $"Fecha:{DateTime.Now:dd/MM/yyyy}";
|
||||
libro.Range(3, 7, 3, 9).Merge().Value = $"Hora:{DateTime.Now:HH:mm}";
|
||||
libro.Range(5, 6, 5, 9).Merge().Value = "Actual";
|
||||
libro.Range(5, 10, 5, 12).Merge().Value = "Nuevo";
|
||||
|
||||
libro.Range(5, 1, 6, 14).Style.Alignment.Horizontal = ClosedXML.Excel.XLAlignmentHorizontalValues.Center;
|
||||
|
||||
libro.Range(5, 1, 6, 13).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189));
|
||||
libro.Range(5, 1, 5, 13).Style.Border.BottomBorder = ClosedXML.Excel.XLBorderStyleValues.None;
|
||||
|
||||
libro.Range(5, 6, 6, 9).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(128, 100, 162));
|
||||
libro.Range(5, 6, 6, 9).Style.Font.FontColor = ClosedXML.Excel.XLColor.White;
|
||||
libro.Range(5, 10, 6, 12).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(136, 214, 205));
|
||||
libro.Range(5, 10, 6, 12).Style.Font.FontColor = ClosedXML.Excel.XLColor.White;
|
||||
|
||||
|
||||
libro.Range(7, 6, 7 + dt.Rows.Count, 12).Style.Alignment.Horizontal = ClosedXML.Excel.XLAlignmentHorizontalValues.Right;
|
||||
libro.Range(7, 6, 7+ dt.Rows.Count, 12).Style.NumberFormat.Format = "$##,###,###,0.00";
|
||||
|
||||
|
||||
|
||||
System.IO.Stream fs = new System.IO.MemoryStream();
|
||||
wb.SaveAs(fs);
|
||||
fs.Position = 0;
|
||||
System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();
|
||||
using (System.IO.Stream input = fs)
|
||||
|
||||
{
|
||||
GVCalculosSBC.ExportToExcel("Salario");
|
||||
}
|
||||
if (Tab.ActiveTab == TabParteFija)
|
||||
{
|
||||
GVCFija.ExportToExcel("Salario");
|
||||
}
|
||||
if (Tab.ActiveTab == TabParteVariable)
|
||||
{
|
||||
GVPV.ExportToExcel("Salario");
|
||||
}
|
||||
if (Tab.ActiveTab == TabDetalleParteVariable)
|
||||
{
|
||||
GVDetalleParteVariable.ExportToExcel("Salario");
|
||||
input.CopyTo(memoryStream);
|
||||
}
|
||||
memoryStream.Position = 0;
|
||||
|
||||
Response.Clear();
|
||||
Response.Buffer = true;
|
||||
|
||||
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
|
||||
Response.AddHeader("content-disposition", string.Format("attachment;filename={0}.xlsx", "Salario"));
|
||||
Response.BinaryWrite(memoryStream.ToArray());
|
||||
Response.End();
|
||||
|
||||
|
||||
}
|
||||
public string limpiarcelda( string celdatext)
|
||||
{
|
||||
celdatext = celdatext.Replace("<br />", "\r\n").Replace(" ", " ");
|
||||
while (celdatext.Contains(" ")){
|
||||
celdatext = celdatext.Replace(" ", " ");
|
||||
}
|
||||
celdatext = celdatext.Replace("\n ", " ");
|
||||
celdatext = celdatext.Replace("\r ", " ");
|
||||
|
||||
return celdatext;
|
||||
}
|
||||
public DataTable GVToDT(GridView GridView, string NombreArchivoXLSX)
|
||||
{
|
||||
DataTable dt = new DataTable(NombreArchivoXLSX);
|
||||
if (GridView != null && GridView.Rows.Count > 0)
|
||||
{
|
||||
int i = 0;
|
||||
List<int> ArrColumnasVisibles = new List<int>(); // solo recorro las columnas visibles
|
||||
|
||||
foreach (TableCell cell in GridView.HeaderRow.Cells)
|
||||
{
|
||||
string titulo = HttpUtility.HtmlDecode(Extensiones.ModExtensiones.TextoCelda(cell)).Trim();
|
||||
titulo = limpiarcelda( titulo);
|
||||
if (GridView.Columns[i].Visible && titulo.Length > 0)
|
||||
{
|
||||
if (dt.Columns.Contains(titulo))
|
||||
titulo = titulo + i;
|
||||
dt.Columns.Add(titulo);
|
||||
ArrColumnasVisibles.Add(i);
|
||||
}
|
||||
i += 1;
|
||||
}
|
||||
i = 0;
|
||||
|
||||
foreach (GridViewRow row in GridView.Rows)
|
||||
{
|
||||
dt.Rows.Add();
|
||||
i = 0;
|
||||
foreach (int j in ArrColumnasVisibles)
|
||||
{
|
||||
dt.Rows[dt.Rows.Count - 1][i] = limpiarcelda(Extensiones.ModExtensiones.TextoCelda(row.Cells[j]).Replace("<br />", "\r\n"));
|
||||
i = i + 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return dt;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user