This commit is contained in:
JORGE LUIS CAUDILLO ESPARZA
2021-12-29 14:42:13 -07:00
parent 00b4e9f602
commit 54981499ae
8 changed files with 603 additions and 128 deletions

View File

@@ -1,33 +1,87 @@
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="CalculoISRAnual.aspx.cs" Inherits="Nomina_CalculoISRAnual" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" Runat="Server">
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" Runat="Server">
<style >
.GVCalculoISRAnual tr td:nth-child(n+4){
text-align :right;
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
<style>
.GVCalculoISRAnual tr td:nth-child(n+6) {
text-align: right;
}
.btn.btn-circle.btn-sm {
font-size: 9px;
}
</style>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" Runat="Server">
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
Calculo ISR anual
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" Runat="Server">
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" Runat="Server">
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
<li>
<asp:LinkButton ID="LnkdownExcel" OnClick="LnkdownExcel_Click" runat="server"><i class="fa fa-download" aria-hidden="true"></i>Excel</asp:LinkButton>
<asp:LinkButton ID="LnkdownExcel" OnClick="LnkdownExcel_Click" runat="server"><i class="fa fa-download" aria-hidden="true"></i>Excel</asp:LinkButton>
</li>
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HA" Runat="Server">
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="C" Runat="Server">
<asp:UpdatePanel ID="upDatos" runat ="server" UpdateMode="Conditional" >
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GVCalculoISRAnual" runat="server" GridLines="None" CssClass ="table table-hover table-striped ScrollAD GVCalculoISRAnual Widthall" AutoGenerateColumns="False"
datakeynames="CvePersonal,Codigo,NombreCompleto,TipoIngreso,FechaInicio,IngresosTotales,BaseGravada,Deducciones,ISRRetenido,Art152,SubsCorrespondiente,LimiteInferior,LimiteSuperior,CuotaFija,Porcentaje,ImpuestoAnual,Acargo,Acompensar">
<li>
<asp:LinkButton ID="LnkOpenModalAutoriza" OnClick="LnkOpenModalAutoriza_Click" runat="server"><i class="fa fa-check" aria-hidden="true"></i> Autoriza</asp:LinkButton>
</li>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server">
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UPFiltros" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter">
<div class="portlet-title portlet-filterT smalltitle">
<div class="titlefiltros caption">
<div class="row">
<label class="col-md-1">Ejercicio: </label>
<div class="col-md-1">
<asp:DropDownList ID="DdlEjercicios" runat="server" Style="width: 100% !important;" CssClass="select2me" DataValueField="Ejercicio" DataTextField="Ejercicio"></asp:DropDownList>
</div>
<div class="col-md-1">
<asp:LinkButton ID="LnkConsultar" OnClick="LnkConsultar_Click" runat="server" Text="Calcular" class="btn btn-primary" />
</div>
</div>
</div>
<div class="tools">
<%--<a href="javascript:;" class="expand" data-original-title="" title=""></a>--%>
</div>
</div>
<div class="portlet-body" style="display: none">
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="upDatos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GVCalculoISRAnual" runat="server" GridLines="None" CssClass="table table-hover table-striped ScrollAD GVCalculoISRAnual Widthall" AutoGenerateColumns="False"
DataKeyNames="CvePersonal,Codigo,NombreCompleto,TipoIngreso,FechaInicio,IngresosTotales,BaseGravada,Deducciones,ISRRetenido,Art152,SubsCorrespondiente,LimiteInferior,LimiteSuperior,CuotaFija,Porcentaje,ImpuestoAnual,Acargo,Acompensar">
<Columns>
<asp:TemplateField HeaderText="Aplica">
<ItemTemplate>
<%# Eval("Aplica").ToString() =="1" ?"✓" :"✘" %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="">
<ItemTemplate>
<asp:LinkButton ID="LnkAplicar" Visible='<%# Eval("Aplica").ToString() =="0"%>' OnClick="LnkAplicar_Click" CssClass="btn btn-circle btn-sm green " runat="server" data-toggle="confirmation" data-popout="true" data-original-title="AgregarEmpleado al calculo anual" data-btn-ok-label="si"> +</asp:LinkButton>
<asp:LinkButton ID="LnkCancelar" Visible='<%# Eval("Aplica").ToString() =="1"%>' OnClick="LnkCancelar_Click" CssClass="btn btn-circle btn-sm red " runat="server"> -</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Causa">
<ItemTemplate>
<asp:Label runat="server" Text='<%# Eval("Causa")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Código">
<ItemTemplate>
<asp:Label ID="lblcodigo" runat="server" Text='<%# Eval("Codigo")%>'> </asp:Label>
@@ -38,47 +92,52 @@
<asp:Label ID="lblnombreCompleto" runat="server" Text='<%# Eval("NombreCompleto")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Tipo Ingreso">
<asp:TemplateField HeaderText="Tipo ingreso">
<ItemTemplate>
<asp:Label ID="lblfechaInicio" runat="server" Text='<%# string.Format("{0} - {1:dd/MM/yyyy}",Eval("TipoIngreso"), Eval("FechaInicio"))%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Ingresos Totales">
<asp:TemplateField HeaderText="Ingresos totales">
<ItemTemplate>
<asp:Label ID="lblingresosTotales" runat="server" Text='<%# Eval("IngresosTotales","{0:N2}")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Base Gravada">
<asp:TemplateField HeaderText="Base gravada">
<ItemTemplate>
<asp:Label ID="lblbaseGravada" runat="server" Text='<%# Eval("BaseGravada","{0:N2}")%>'> </asp:Label>
<asp:Label runat="server" Text='<%# Eval("BaseGravada","{0:N2}")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ISRRetenido">
<asp:TemplateField HeaderText="Base exenta">
<ItemTemplate>
<asp:Label runat="server" Text='<%# Eval("BaseExcenta","{0:N2}")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ISR retenido">
<ItemTemplate>
<asp:Label ID="lbliSRRetenido" runat="server" Text='<%# Eval("ISRRetenido","{0:N2}")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Art152">
<asp:TemplateField HeaderText="Art 152">
<ItemTemplate>
<asp:Label ID="lblart152" runat="server" Text='<%# Eval("Art152","{0:N2}")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Subs Correspondiente">
<asp:TemplateField HeaderText="Subs. correspondiente">
<ItemTemplate>
<asp:Label ID="lblsubsCorrespondiente" runat="server" Text='<%# Eval("SubsCorrespondiente","{0:N2}")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Impuesto Anual">
<asp:TemplateField HeaderText="Impuesto anual">
<ItemTemplate>
<asp:Label ID="lblimpuestoAnual" runat="server" Text='<%# Eval("ImpuestoAnual","{0:N2}")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Acargo">
<asp:TemplateField HeaderText="A cargo">
<ItemTemplate>
<asp:Label ID="lblacargo" runat="server" Text='<%# Eval("Acargo","{0:N2}")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Acompensar">
<asp:TemplateField HeaderText="A compensar">
<ItemTemplate>
<asp:Label ID="lblacompensar" runat="server" Text='<%# Eval("Acompensar","{0:N2}")%>'> </asp:Label>
</ItemTemplate>
@@ -89,7 +148,72 @@
</asp:UpdatePanel>
<div id="DModalcancelarEmpleado" class="modal ADS fade" role="dialog">
<asp:UpdatePanel ID="UpModalPersonalAplica" class="modal-dialog" tabindex="-1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-content rowpadding">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
<h4 class="modal-title" runat="server" style="text-align: left">Omitir empleado</h4>
</div>
<div class="modal-body">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox CssClass="form-control" ID="TxtMotivo" runat="server" Text=""></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtMotivo" Text="Motivo"></asp:Label>
</div>
</div>
<div class="modal-footer">
<asp:UpdatePanel runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:LinkButton ID="LnkGuardarCancelarAplica" OnClick="LnkGuardarCancelarAplica_Click" CssClass="btn btn-primary" runat="server">Guardar</asp:LinkButton>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<div id="DModalAutoriza" class="modal ADS fade" role="dialog">
<asp:UpdatePanel ID="UpAutorizaCalculo" class="modal-dialog" tabindex="-1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-content rowpadding">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
<h4 class="modal-title" runat="server" style="text-align: left">Autoriza calculo anual</h4>
</div>
<div class="modal-body">
<div class="form-group form-md-line-input input-iconright">
<asp:Label runat="server" Text="Concepto a cargo:" AssociatedControlID=""></asp:Label>
<asp:DropDownList ID="DdlConceptoCargo" runat="server" DataTextField="CodigoConcepto" DataValueField="CveConcepto" Class="form-control input-sm select2me" Width="100%" ValidationGroup="GrpGuardar"></asp:DropDownList>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:Label runat="server" Text="Concepto a compensar:" AssociatedControlID=""></asp:Label>
<asp:DropDownList ID="DdlConceptoCompensar" runat="server" DataTextField="CodigoConcepto" DataValueField="CveConcepto" Class="form-control input-sm select2me" Width="100%" ValidationGroup="GrpGuardar"></asp:DropDownList>
</div>
</div>
<div class="modal-footer">
<asp:UpdatePanel runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:LinkButton ID="LnkAutoriza" OnClick="LnkAutoriza_Click" CssClass="btn btn-primary" runat="server">Autorizar</asp:LinkButton>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" Runat="Server">
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

View File

@@ -1,25 +1,57 @@
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(2021, UsuarioActual.Empresa.CveEmpresa);
onom.CalculoISRAnual(DdlEjercicios.SelectedValue.ToEntero(), UsuarioActual.Empresa.CveEmpresa);
GVCalculoISRAnual.DataSource = onom.DtResultados;
}
@@ -27,8 +59,185 @@ public partial class Nomina_CalculoISRAnual : ClsPaginas
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 column = 1;
int row = 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 = "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++;
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} - {1:dd/MM/yyyy}", drow["TipoIngreso"], drow["FechaInicio"]);
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(1, 4);
libro.ColumnsUsed().AdjustToContents();
libro.Range(1, 6, 1, column).Style.Alignment.Horizontal = ClosedXML.Excel.XLAlignmentHorizontalValues.Center;
libro.Range(2, 6, row, column).Style.Alignment.Horizontal = ClosedXML.Excel.XLAlignmentHorizontalValues.Right;
libro.Range(2, 6, row, column).SetDataType(ClosedXML.Excel.XLDataType.Number);
libro.Range(2, 6, 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();
}
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;
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);
}
if (continuar)
{
Alert("El calculo a sido autorizado");
RegistraScript("$('#DModalAutoriza').modal('hide');");
}
RegistraScript(string.Format("console.log('{0}');debugger", xmlpeople));
}
}