336 lines
13 KiB
C#
336 lines
13 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using System.Web;
|
|
using System.Web.UI;
|
|
using System.Web.UI.WebControls;
|
|
using System.Xml.Linq;
|
|
using Extensiones;
|
|
|
|
public partial class Nomina_CalculoISRAnual : ClsPaginas
|
|
{
|
|
|
|
protected int CvePersonal
|
|
{
|
|
get
|
|
{
|
|
if (ViewState["CvePersonal"] == null) { return 0; }
|
|
else { return ViewState["CvePersonal"].ToString().ToEntero(); }
|
|
}
|
|
|
|
set { ViewState["CvePersonal"] = value; }
|
|
}
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
if (!IsPostBack)
|
|
{
|
|
cargaddls();
|
|
CargaCalculoISRAnual();
|
|
}
|
|
}
|
|
public void cargaddls()
|
|
{
|
|
|
|
DataTable dtejercicio = new DataTable();
|
|
using (ClsNominas objnom = new ClsNominas())
|
|
{
|
|
if (objnom.GetEjercicios(UsuarioActual.CveEmpresa))
|
|
{
|
|
dtejercicio = objnom.DtResultados;
|
|
}
|
|
}
|
|
DdlEjercicios.DataSource = dtejercicio;
|
|
DdlEjercicios.DataBind();
|
|
string anio = DateTime.Now.Year.ToString();
|
|
DdlEjercicios.SelectedValueExistInsert(anio, anio);
|
|
}
|
|
|
|
protected void CargaCalculoISRAnual()
|
|
{
|
|
using (ClsNominas onom = new ClsNominas())
|
|
{
|
|
onom.CalculoISRAnual(DdlEjercicios.SelectedValue.ToEntero(), UsuarioActual.Empresa.CveEmpresa);
|
|
GVCalculoISRAnual.DataSource = onom.DtResultados;
|
|
|
|
}
|
|
GVCalculoISRAnual.DataBind();
|
|
upDatos.Update();
|
|
}
|
|
|
|
protected void LnkConsultar_Click(object sender, EventArgs e)
|
|
{
|
|
CargaCalculoISRAnual();
|
|
}
|
|
protected void LnkdownExcel_Click(object sender, EventArgs e)
|
|
{
|
|
|
|
|
|
//DataTable dtCon = generateTable("\r\n");
|
|
|
|
|
|
ClosedXML.Excel.XLWorkbook wb = new ClosedXML.Excel.XLWorkbook();
|
|
var libro = wb.AddWorksheet("Asistencia");
|
|
|
|
int row = 1;
|
|
string imagePath = string.Format("{0}{1}\\Logo.png", ModExtensiones.DirectorioEmpresas, UsuarioActual.CveEmpresa);
|
|
if (System.IO.File.Exists(imagePath))
|
|
{
|
|
var image = libro.AddPicture(imagePath)
|
|
.MoveTo(libro.Cell(row, 2))//, libro.Cell(row, 5));
|
|
.Scale(.8);
|
|
}
|
|
row++;
|
|
libro.Range(row, 3, row, 5).Merge().Value = UsuarioActual.Empresa.Empresa;
|
|
row++;
|
|
libro.Range(row, 3, row, 5).Merge().Value = string.Format("Calculo I.S.R anual del ejercicio {0}", DdlEjercicios.SelectedValue);
|
|
|
|
row++;
|
|
row++;
|
|
int column = 1;
|
|
libro.Cell(row, column++).Value = "Aplica";
|
|
libro.Cell(row, column++).Value = "Causa";
|
|
libro.Cell(row, column++).Value = "Código";
|
|
libro.Cell(row, column++).Value = "Nombre";
|
|
libro.Cell(row, column++).Value = "Tipo ingreso";
|
|
libro.Cell(row, column++).Value = "Fecha ingreso";
|
|
libro.Cell(row, column++).Value = "Fecha baja";
|
|
libro.Cell(row, column++).Value = "Ingresos totales";
|
|
libro.Cell(row, column++).Value = "Base gravada";
|
|
libro.Cell(row, column++).Value = "Base exenta";
|
|
libro.Cell(row, column++).Value = "ISR retenido";
|
|
libro.Cell(row, column++).Value = "Art 152";
|
|
libro.Cell(row, column++).Value = "Subs. Correspondiente";
|
|
libro.Cell(row, column++).Value = "Impuesto anual";
|
|
libro.Cell(row, column++).Value = "A cargo";
|
|
libro.Cell(row, column++).Value = "A compensar";
|
|
libro.Range(row, 1, row, column - 1).CellsUsed().Style.Font.FontColor = ClosedXML.Excel.XLColor.White;
|
|
libro.Range(row, 1, row, column - 1).CellsUsed().Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189));
|
|
row++;
|
|
int initrowdata = row;
|
|
using (ClsNominas onom = new ClsNominas())
|
|
{
|
|
if (onom.CalculoISRAnual(DdlEjercicios.SelectedValue.ToEntero(), UsuarioActual.Empresa.CveEmpresa) && onom.DtResultados.Rows.Count > 0)
|
|
{
|
|
foreach (DataRow drow in onom.DtResultados.Rows)
|
|
{
|
|
|
|
column = 1;
|
|
libro.Cell(row, column++).Value = drow["Aplica"].ToString() == "1" ? "Si" : "No";
|
|
libro.Cell(row, column++).Value = drow["causa"];
|
|
libro.Cell(row, column++).Value = drow["Codigo"];
|
|
libro.Cell(row, column++).Value = drow["NombreCompleto"];
|
|
libro.Cell(row, column++).Value = string.Format("{0}", drow["TipoIngreso"], drow["FechaInicio"]);
|
|
libro.Cell(row, column++).Value = string.Format("{0:dd/MM/yyyy}", drow["FechaInicio"]);
|
|
libro.Cell(row, column++).Value = string.Format("{0:dd/MM/yyyy}", drow["FechaFin"]);
|
|
libro.Cell(row, column++).Value = drow["IngresosTotales"];
|
|
libro.Cell(row, column++).Value = drow["BaseGravada"];
|
|
libro.Cell(row, column++).Value = drow["BaseExcenta"];
|
|
libro.Cell(row, column++).Value = drow["ISRRetenido"];
|
|
libro.Cell(row, column++).Value = drow["Art152"];
|
|
libro.Cell(row, column++).Value = drow["SubsCorrespondiente"];
|
|
libro.Cell(row, column++).Value = drow["ImpuestoAnual"];
|
|
libro.Cell(row, column++).Value = drow["Acargo"];
|
|
libro.Cell(row, column++).Value = drow["Acompensar"];
|
|
row++;
|
|
}
|
|
}
|
|
}
|
|
|
|
libro.SheetView.Freeze(initrowdata - 1, 5);
|
|
libro.ColumnsUsed().AdjustToContents();
|
|
libro.Range(initrowdata - 1, 6, initrowdata - 1, column).Style.Alignment.Horizontal = ClosedXML.Excel.XLAlignmentHorizontalValues.Center;
|
|
libro.Range(initrowdata, 8, row, column).Style.Alignment.Horizontal = ClosedXML.Excel.XLAlignmentHorizontalValues.Right;
|
|
libro.Range(initrowdata, 8, row, column).SetDataType(ClosedXML.Excel.XLDataType.Number);
|
|
libro.Range(initrowdata, 8, row, column).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)
|
|
|
|
{
|
|
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", "Calculo Anual"));
|
|
Response.BinaryWrite(memoryStream.ToArray());
|
|
Response.End();
|
|
//Alert(string.Format("<pre> {0} {1}</pre>",imagePath, System.IO.File.Exists(imagePath)));
|
|
}
|
|
|
|
|
|
protected void LnkAplicar_Click(object sender, EventArgs e)
|
|
{
|
|
GridViewRow gvrow = (GridViewRow)(((LinkButton)sender).NamingContainer);
|
|
CvePersonal = gvrow.DataKey("CvePersonal").ToString().ToEntero();
|
|
using (ClsNominas onom = new ClsNominas())
|
|
{
|
|
if (onom.PersonalAplicaCalculoAnual(UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario, CvePersonal, 1, ""))
|
|
{
|
|
Alert("El empleado sera incluido al calculo anual");
|
|
CargaCalculoISRAnual();
|
|
}
|
|
}
|
|
}
|
|
|
|
protected void LnkCancelar_Click(object sender, EventArgs e)
|
|
{
|
|
GridViewRow gvrow = (GridViewRow)(((LinkButton)sender).NamingContainer);
|
|
CvePersonal = gvrow.DataKey("CvePersonal").ToString().ToEntero();
|
|
RegistraScript("$('#DModalcancelarEmpleado').modal();");
|
|
}
|
|
|
|
protected void LnkGuardarCancelarAplica_Click(object sender, EventArgs e)
|
|
{
|
|
using (ClsNominas onom = new ClsNominas())
|
|
{
|
|
if (onom.PersonalAplicaCalculoAnual(UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario, CvePersonal, 0, TxtMotivo.Text))
|
|
{
|
|
Alert("El empleado sera omitido del calculo anual");
|
|
RegistraScript("$('#DModalcancelarEmpleado').modal('hide');");
|
|
CargaCalculoISRAnual();
|
|
}
|
|
}
|
|
}
|
|
|
|
protected void LnkOpenModalAutoriza_Click(object sender, EventArgs e)
|
|
{
|
|
using (ClsNominas onom = new ClsNominas())
|
|
{
|
|
if (onom.GetConceptos(UsuarioActual.CveEmpresa, "-1", -1, -1, -1))
|
|
{
|
|
DdlConceptoCargo.DataSource = onom.DtResultados;
|
|
DdlConceptoCompensar.DataSource = onom.DtResultados;
|
|
DdlConceptoCargo.DataBind();
|
|
DdlConceptoCompensar.DataBind();
|
|
DataRow drow = onom.DtResultados.FiltroPrimero(string.Format("CveSistema ={0}", 46));
|
|
if (drow != null)
|
|
{
|
|
DdlConceptoCargo.SelectedValueExist(drow["CveConcepto"]);
|
|
}
|
|
drow = null; drow = onom.DtResultados.FiltroPrimero(string.Format("CveSistema ={0}", 49));
|
|
if (drow != null)
|
|
{
|
|
DdlConceptoCompensar.SelectedValueExist(drow["CveConcepto"]);
|
|
}
|
|
}
|
|
}
|
|
RegistraScript("$('#DModalAutoriza').modal();");
|
|
UpAutorizaCalculo.Update();
|
|
}
|
|
|
|
protected void LnkAutoriza_Click(object sender, EventArgs e)
|
|
{
|
|
bool continuar = true;
|
|
int numpagos = TxtNumerodePagos.Text.ToEntero();
|
|
|
|
|
|
System.Xml.Linq.XDocument xmlarchivos = new System.Xml.Linq.XDocument();
|
|
XElement xfolder = new XElement("personal");
|
|
foreach (GridViewRow item in GVCalculoISRAnual.Rows)
|
|
{
|
|
XElement xempleado = new XElement("empleado");
|
|
xempleado.SetAttributeValue("CvePersonal", item.DataKey("CvePersonal"));
|
|
xempleado.SetAttributeValue("ACarago", item.DataKey("Acargo"));
|
|
xempleado.SetAttributeValue("ACompensar", item.DataKey("Acompensar"));
|
|
|
|
xfolder.Add(xempleado);
|
|
}
|
|
xmlarchivos.Add(xfolder);
|
|
string xmlpeople = xmlarchivos.ToString();
|
|
|
|
using (ClsNominas onom = new ClsNominas())
|
|
{
|
|
continuar = onom.AutorizaCalculoAnual(UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario, xmlpeople, numpagos);
|
|
}
|
|
if (continuar)
|
|
{
|
|
Alert("El calculo a sido autorizado");
|
|
RegistraScript("$('#DModalAutoriza').modal('hide');");
|
|
}
|
|
|
|
RegistraScript(string.Format("console.log('{0}');debugger", xmlpeople));
|
|
}
|
|
|
|
protected void LnkFormatoCargaAnual_Click(object sender, EventArgs e)
|
|
{
|
|
int Ejercicio = DdlEjercicios.SelectedValue.ToEntero();
|
|
string rutaformato = string.Format("{0}\\Grales\\{1}", Extensiones.ModExtensiones.DirectorioEmpresas, "FormatoCalculoAnual.xlsx").Replace("/", "\\").Replace("\\\\", "\\");
|
|
ClosedXML.Excel.XLWorkbook wb = new ClosedXML.Excel.XLWorkbook(rutaformato);
|
|
var hojaBase = wb.Worksheet(1);
|
|
var hojaEmpleados = wb.Worksheet(2);
|
|
hojaEmpleados.Name = "Empleados";
|
|
// Copy the worksheet to a new sheet in this workbook
|
|
//hojaBase.CopyTo("E1");
|
|
hojaBase.Cell(6, 21).Value = Ejercicio;
|
|
int index = 1;
|
|
using (ClsNominas onom = new ClsNominas())
|
|
{
|
|
onom.CalculoISRAnual(Ejercicio, UsuarioActual.Empresa.CveEmpresa);
|
|
foreach (DataRow droi in onom.DtResultados.Rows)
|
|
{
|
|
|
|
//o15
|
|
//as45
|
|
if (droi["Aplica"].ToString() == "1")
|
|
{
|
|
var Choja = hojaBase.CopyTo(String.Format("E_{0:000}", index++));
|
|
hojaEmpleados.Cell(index, 1).Value = droi["NombreCompleto"];
|
|
hojaEmpleados.Cell(index, 1).Hyperlink = new ClosedXML.Excel.XLHyperlink(Choja.Cell(10, 9));
|
|
|
|
Choja.Cell(256, 9).Value = droi["NombreCompleto"];
|
|
Choja.Cell(10, 37).Value = droi["CURP"];
|
|
Choja.Cell(10, 6).Value = droi["RFC"];
|
|
Choja.Cell(13, 2).Value = droi["APaterno"];
|
|
Choja.Cell(13, 19).Value = droi["AMaterno"];
|
|
Choja.Cell(13, 36).Value = droi["Nombres"];
|
|
Choja.Cell(216, 15).Value = droi["BaseGravada"];
|
|
Choja.Cell(220, 15).Value = droi["BaseExcenta"];
|
|
Choja.Cell(224, 15).Value = droi["IngresosTotales"];
|
|
Choja.Cell(233, 15).Value = droi["ISRRetenido"];
|
|
|
|
|
|
Choja.Cell(37, 15).Value = droi["IngresosTotales"];
|
|
Choja.Cell(48, 15).Value = droi["BaseExcenta"];
|
|
Choja.Cell(60, 15).Value = droi["BaseGravada"];
|
|
Choja.Cell(66, 45).Value = droi["ISRRetenido"];
|
|
|
|
|
|
}
|
|
}
|
|
|
|
}
|
|
hojaBase.Delete();
|
|
|
|
|
|
|
|
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)
|
|
|
|
{
|
|
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", "Calculo Anual"));
|
|
Response.BinaryWrite(memoryStream.ToArray());
|
|
Response.End();
|
|
|
|
}
|
|
} |