This commit is contained in:
Oscar Irigoyen
2023-02-02 14:27:04 -07:00
9 changed files with 540 additions and 98 deletions

View File

@@ -471,7 +471,7 @@ Public Class LogicNominas
cfdi.Nomina.Receptor.NumeroCuenta = BancoNumCuenta
cfdi.Nomina.Receptor.SDI = SDI
cfdi.Nomina.Receptor.SBC = SalarioDiarioSS
cfdi.Nomina.Receptor.Sindicalizado = If(Sindicalizado, "Si", "No")
cfdi.Nomina.Receptor.Sindicalizado = If(Sindicalizado, "Sí", "No")
cfdi.Nomina.Receptor.CodigoEntidadFederativa = ClaveEstado
cfdi.Conceptos.Add(New CFDIConceptos With {.Cantidad = 1, .ClaveUnidad = "ACT", .ClaveProdServ = "84111505", .Descripcion = "Pago de nómina", .ValorUnitario = cfdi.Comprobante.SubTotal, .Importe = cfdi.Comprobante.SubTotal, .Descuento = cfdi.Nomina.TotalDeducciones.ToString().ToDecimal(), .ObjetoImpuesto = "01"})

View File

@@ -84,14 +84,15 @@ public partial class Nomina_CatConcepto : ClsPaginas
StringBuilder strKeys3;
public void tree_Tables()
{
ClsNominas objnom = new ClsNominas();
strKeys = new StringBuilder();
strKeys2 = new StringBuilder();
strKeys3 = new StringBuilder();
StringBuilder tablaarbol = new StringBuilder();
objnom.GetNom_Refencias(UsuarioActual.CveEmpresa);
dtrefrencias = objnom.DtResultados;
objnom.Dispose();
using (ClsNominas objnom = new ClsNominas())
{
objnom.GetNom_Refencias(UsuarioActual.CveEmpresa);
dtrefrencias = objnom.DtResultados;
}
strKeys.Append("{");
int tipo = 1;
#region tablas
@@ -472,7 +473,7 @@ public partial class Nomina_CatConcepto : ClsPaginas
//DdlCtaContable.SelectedValueExist(drow["CveCuenta"]);
if (DdlCtaContable.DataValueField == "Id")
{
DdlCtaContable.SelectedValueExist( drow["IdCtaContable"]);
DdlCtaContable.SelectedValueExist(drow["IdCtaContable"]);
}
else
{
@@ -486,7 +487,8 @@ public partial class Nomina_CatConcepto : ClsPaginas
// DdlCtaContable.SelectedValueExist(drow["IdCtaContable"]);
//}
DdlConceptoSAT.SelectedValueExist(drow["CveSATConcepto"]);
}else
}
else
{
CveConcepto = 0;

View File

@@ -262,6 +262,9 @@
<li>
<asp:LinkButton ID="LnkModalPlantillaNomina" OnClick="LnkModalPlantillaNomina_Click" runat="server"><i class="fa fa-upload"></i>Cargar masiva de conceptos</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkModalPlantillaNominaUnConc" OnClick="LnkModalPlantillaNominaUnConc_Click" runat="server"><i class="fa fa-upload"></i>Cargar masiva un concepto</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkCargaNetos" OnClick="LnkCargaNetos_Click" runat="server"><i class="fa fa-upload"></i>Cargar netos</asp:LinkButton>
</li>
@@ -3367,29 +3370,83 @@
</div>
<div class="portlet-body rowpadding ">
<asp:TextBox ID="TxtArchivoNomina" CssClass="ADSdropzone hidden" runat="server"></asp:TextBox>
<div class=" text-right">
<asp:CheckBox ID="ChkRecalcularNomina" Text="¿Volver a calcular la nómina?" runat="server" />
</div>
</div>
</div>
<div class=" text-right">
<asp:CheckBox ID="ChkRecalcularNomina" Text="¿Volver a calcular la nómina?" runat="server" />
</div>
</div>
<div class="modal-footer">
<asp:UpdatePanel runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:LinkButton ID="LnkCargarNomina" OnClick="LnkCargarNomina_Click" CssClass="btn btn-primary" runat="server">Procesar</asp:LinkButton>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<div class="modal-footer">
<asp:UpdatePanel runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:LinkButton ID="LnkCargarNomina" OnClick="LnkCargarNomina_Click" CssClass="btn btn-primary" runat="server">Procesar</asp:LinkButton>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="LnkFormato" />
<asp:PostBackTrigger ControlID="LnkFormato" />
</Triggers>
</asp:UpdatePanel>
</div>
<div id="DModalNominasUnConcepto" class="modal ADS fade" role="dialog">
<asp:UpdatePanel ID="UpCargarNominaUnConcepto" 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">Cargar Nómina de excel</h4>
</div>
<div class="modal-body">
<div class="portlet light smmallpadding bordered">
<div class="portlet-title">
<div class="caption font-green">
<i class="fa fa-upload font-green"></i>
<span class="caption-subject bold uppercase">Carga Concepto </span>
<!-- Caudillo-->
</div>
<div class="tools">
<a href="javascript:;" class="collapse" data-original-title="" title=""></a>
</div>
</div>
<div class="portlet-body rowpadding ">
<div class="form-group form-md-line-input input-iconright">
<asp:Label runat="server" Text="Concepto:" AssociatedControlID=""></asp:Label>
<asp:DropDownList ID="DdlUnConcepto" runat="server" DataTextField="CodigoConcepto" DataValueField="CveConcepto" Class="form-control input-sm select2me" Width="100%" ValidationGroup="GrpGuardar"></asp:DropDownList>
</div>
<asp:TextBox ID="TxtArchivoNominaConcepto" CssClass="ADSdropzone hidden" runat="server"></asp:TextBox>
<asp:LinkButton ID="LnkFormatoUnConcepto" OnClick="LnkFormatoUnConcepto_Click" CssClass="btn btn-success" runat="server"><i class="fa fa-download"></i> Descargar Plantilla</asp:LinkButton>
</div>
</div>
<div class=" text-right">
<asp:CheckBox ID="ChkRecalcularNominaUnc" Text="¿Volver a calcular la nómina?" runat="server" />
</div>
</div>
<div class="modal-footer">
<asp:UpdatePanel runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:LinkButton ID="LinkButton4" OnClick="LnkCargarNomina_Click" CssClass="btn btn-primary" runat="server">Procesar</asp:LinkButton>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="LnkFormatoUnConcepto" />
</Triggers>
</asp:UpdatePanel>
</div>
<div id="DmodalNetos" class="modal ADS fade" role="dialog">
<asp:UpdatePanel ID="uppanelnetos" class="modal-dialog" tabindex="-1" runat="server" UpdateMode="Conditional">
@@ -3402,7 +3459,7 @@
<h4 class="modal-title" runat="server" style="text-align: left">Cargar Netos </h4>
</div>
<div class="modal-body">
<div class="portlet light smmallpadding bordered">
<div class="portlet-title">
@@ -3415,17 +3472,17 @@
</div>
<div class="actions">
<div class="btn-group">
<asp:LinkButton ID="LnkFormatoNetos" OnClick="LnkFormatoNetos_Click" CssClass="btn yellow-gold" runat="server"><i class="fa fa-download"></i> Descargar Plantilla</asp:LinkButton>
<asp:LinkButton ID="LnkFormatoNetos" OnClick="LnkFormatoNetos_Click" CssClass="btn yellow-gold" runat="server"><i class="fa fa-download"></i> Descargar Plantilla</asp:LinkButton>
</div>
<div class="btn-group">
</div>
</div>
</div>
</div>
<div class="portlet-body rowpadding ">
<div class=" row">
<div class="col-md-3">Concepto</div>
<div class="col-md-6">
<asp:DropDownList ID="ddlConceptocomisionNeto" runat="server" DataTextField="CodigoConcepto" DataValueField="CveConcepto" Class="form-control input-sm select2me" Width="100%" ValidationGroup="GrpGuardar"></asp:DropDownList>
<asp:DropDownList ID="ddlConceptocomisionNeto" runat="server" DataTextField="CodigoConcepto" DataValueField="CveConcepto" Class="form-control input-sm select2me" Width="100%" ValidationGroup="GrpGuardar"></asp:DropDownList>
</div>
</div>

View File

@@ -249,7 +249,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
if (!IsPostBack)
{
LnkCargaNetos.Visible = (UsuarioActual.CveRol == 1);
LnkCargaNetos.Visible = (UsuarioActual.Empresa.Funcionalidad(267) == "1") ||(UsuarioActual.CveRol == 1);
using (ClsRH objrh = new ClsRH())
{
if (objrh.TiposTrabajadorGet(-1, UsuarioActual.CveEmpresa))
@@ -2097,6 +2097,111 @@ public partial class Nomina_Nomina2 : ClsPaginas
}
}
protected void LnkModalPlantillaNominaUnConc_Click(object sender, EventArgs e)
{
RegistraScript("$('#DModalNominasUnConcepto').modal();");
using (ClsNominas ObjNomina = new ClsNominas())
{
if (ObjNomina.GetConceptos(UsuarioActual.CveEmpresa))
{
DdlUnConcepto.DataSource = ObjNomina.DtResultados.FiltraParametros($"CveEmpresa = {UsuarioActual.CveEmpresa}");
DdlUnConcepto.DataBind();
}
}
UpCargarNominaUnConcepto.Update();
}
protected void LnkFormatoUnConcepto_Click(object sender, EventArgs e)
{
try
{
StringBuilder str = new StringBuilder("0");
bool continuar = true;
str.AppendFormat(",{0}", DdlUnConcepto.SelectedValue.ToEntero());
string msgerror = "";
if (dtConceptos == null || dtConceptos.Columns.Count <= 2)
{
msgerror = "Debe cargar el periodo antes de descargar la plantilla";
continuar = false;
}
if (continuar)
{
ClosedXML.Excel.XLWorkbook wb = new ClosedXML.Excel.XLWorkbook();
var libro = wb.AddWorksheet("Nomina");
int column = 1;
libro.Cell(1, column).Value = "Codigo";
column++;
libro.Cell(1, column).Value = "Empleado";
libro.Column(column).Width = 35;
DataTable dtcP = dtConceptos.FiltraParametros(string.Format(" CveConcepto in({0})", str));
foreach (DataRow row in dtcP.Rows)
{
column++;
libro.Cell(1, column).Value = string.Format("{0} - {1} - Valor", row["Codigo"], row["Concepto"]);
column++;
libro.Cell(1, column).Value = string.Format("{0} - {1} - Importe", row["Codigo"], row["Concepto"]);
column++;
libro.Cell(1, column).Value = string.Format("{0} - {1} - ImporteGravado", row["Codigo"], row["Concepto"]);
}
libro.Row(1).CellsUsed().Style.Font.FontColor = ClosedXML.Excel.XLColor.White;
libro.Row(1).CellsUsed().Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189));
int Fila = 1;
foreach (DataRow erow in dtempleados.FiltraParametros("CvePersonal>0 AND NomAutorizado=0").Rows)
{
Fila++;
column = 1;
libro.Cell(Fila, column).Value = string.Format("'{0}", erow["Codigo"]);
column++;
libro.Cell(Fila, column).Value = erow["Nombre"];
foreach (DataRow row in dtcP.Rows)
{
column++;
string Concepto = string.Format("VAL_{0}", row["CveConcepto"]);
libro.Cell(Fila, column).Value = erow[Concepto];
column++;
Concepto = string.Format("V_{0}", row["CveConcepto"]);
libro.Cell(Fila, column).Value = erow[Concepto];
column++;
Concepto = string.Format("VG_{0}", row["CveConcepto"]);
libro.Cell(Fila, column).Value = erow[Concepto];
}
}
libro.Columns().AdjustToContents();
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", "Plantilla conceptos nómina "));
Response.BinaryWrite(memoryStream.ToArray());
Response.End();
}
else
{
Alert(msgerror, TipoMensaje.MsgAdvertencia);
}
}
catch (Exception ex)
{
Alert("Ocurrio un error al generar el Formato de nominas" + ex.ToString(), TipoMensaje.MsgAdvertencia);
}
}
protected void LnkCargarNomina_Click(object sender, EventArgs e)
{

View File

@@ -28,6 +28,12 @@
<li>
<asp:LinkButton ID="LnkDescargar" OnClick="LnkDescargar_Click" runat="server"><i class="fa fa-ad-excel"></i> Descargar</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkFormatocMasiva" OnClick="LnkFormatocMasiva_Click" runat="server"><i class="fa fa-ad-excel"></i> Formato carga masiva</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkModalCargaMasiva" OnClick="LnkModalCargaMasiva_Click" runat="server"><i class="fa fa-save"></i> Carga masiva</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkGuardarCambios" OnClick="LnkGuardarCambios_Click" runat="server"><i class="fa fa-save"></i> Guardar</asp:LinkButton>
</li>
@@ -40,6 +46,7 @@
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="LnkDescargar" />
<asp:PostBackTrigger ControlID="LnkFormatocMasiva" />
<%-- <asp:PostBackTrigger ControlID="LnkListaRaya" /> --%>
</Triggers>
</asp:UpdatePanel>
@@ -832,6 +839,72 @@
</asp:UpdatePanel>
</div>
<div id="DmodalCargaMasiva" class="modal ADS fade" role="dialog">
<asp:UpdatePanel ID="UpCargarm" 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">Carga masiva salario</h4>
</div>
<div class="modal-body">
<div class="portlet light smmallpadding bordered">
<div class="portlet-title">
<div class="caption font-green">
<i class="fa fa-upload font-green"></i>
<span class="caption-subject bold uppercase">Carga archivo </span>
<!-- Caudillo-->
</div>
<div class="tools">
<a href="javascript:;" class="collapse" data-original-title="" title=""></a>
</div>
</div>
<div class="portlet-body rowpadding ">
<div class="row">
<asp:Label ID="Label2" runat="server" CssClass="col-md-1 ">Fecha :</asp:Label>
<div class="col-md-2" id="Div2" runat="server">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 110px !important; padding: 0px; margin-bottom: -10px;">
<asp:TextBox ID="txtfechacargamasiva" runat="server" Text="01/03/2021" CssClass="form-control" CausesValidation="true" Width="90%" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="lnkcargamasiva" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MaskedEditExtender1" runat="server" TargetControlID="txtfechacargamasiva" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CalendarExtender1" TargetControlID="txtfechacargamasiva" PopupButtonID="lnkcargamasiva" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<%--<asp:CompareValidator ID="CompareValidator1" runat="server" ControlToValidate="txtfechacargamasiva" Display="None" ErrorMessage="El campo <b>''Fecha Pago''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpGuardar"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender1" runat="server" HighlightCssClass="vco" TargetControlID="CompareValidator1" Width="350px"></ajax:ValidatorCalloutExtender>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtfechacargamasiva" Display="None" ErrorMessage="El campo <b>''Fecha Pago''</b> es requerido por la aplicación, por favor ingrese una fecha." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender2" runat="server" HighlightCssClass="vco" TargetControlID="RequiredFieldValidator1" Width="350px"></ajax:ValidatorCalloutExtender>--%>
</div>
</div>
<asp:TextBox ID="TxtArchivoNomina" CssClass="ADSdropzone hidden" runat="server"></asp:TextBox>
</div>
</div>
</div>
<div class="modal-footer">
<asp:UpdatePanel runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:LinkButton ID="LnkProcesarArchvo" OnClick="LnkProcesarArchvo_Click" CssClass="btn btn-primary" runat="server">Procesar</asp:LinkButton>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</ContentTemplate>
<Triggers>
</Triggers>
</asp:UpdatePanel>
</div>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
<script>

View File

@@ -6,10 +6,26 @@ using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using AjaxControlToolkit.HtmlEditor.ToolbarButtons;
using Extensiones;
using StackExchange.Redis;
using Telerik.Web.UI.Widgets;
using static Extensiones.ModExtensiones;
using static Stimulsoft.Report.StiOptions.Export;
public partial class RH_CalculoSBC : ClsPaginas
{
private DataTable dtsalario
{
get
{
if (ViewState["dtsalario"] == null) { return null; }
else { return (DataTable)ViewState["dtsalario"]; }
}
set { ViewState["dtsalario"] = value; }
}
private DataTable dtDetalleParteVariable
{
get
@@ -33,7 +49,7 @@ public partial class RH_CalculoSBC : ClsPaginas
else
DdlRegistroPatronal.DataSource = null;
DdlRegistroPatronal.DataBind();
DdlRegistroPatronal.DataBind();
ObjRH.Dispose();
//string rutarchivos = string.Format("{0}modificacionsalarios\\", UsuarioActual.Empresa.RutaArchivos);
//Alert(rutarchivos);
@@ -49,7 +65,7 @@ public partial class RH_CalculoSBC : ClsPaginas
protected void LnkDownExcelSua_Click(object sender, EventArgs e)
{
}
protected void LnkUpSuamodal_Click(object sender, EventArgs e)
protected void LnkUpSuamodal_Click(object sender, EventArgs e)
{
TxtArchivoSua.Text = "";
GVProcesarSUA.DataSource = null;
@@ -87,7 +103,7 @@ public partial class RH_CalculoSBC : ClsPaginas
//RegistraScript("showResult();");
RegistraScript("$('#DmodalCompareSua').modal('hide');shownew();");
Alert("El archivo se a procesado Correctamente");
LnkCalcular_Click(null,null);
LnkCalcular_Click(null, null);
UpArchivoSua.Update();
}
@@ -196,9 +212,10 @@ public partial class RH_CalculoSBC : ClsPaginas
{
using (ClsNominas objnom = new ClsNominas())
{
if (objnom.GetCalculoSBC(UsuarioActual.CveEmpresa, DdlTipo.SelectedValue.ToEntero(), TxtFechaPago.Text,DdlRegistroPatronal.SelectedValue.ToEntero()))
if (objnom.GetCalculoSBC(UsuarioActual.CveEmpresa, DdlTipo.SelectedValue.ToEntero(), TxtFechaPago.Text, DdlRegistroPatronal.SelectedValue.ToEntero()))
{
GVCalculosSBC.DataSource = objnom.DTSetResultados.Tables[0];
dtsalario = objnom.DTSetResultados.Tables[0];
GVCFija.DataSource = objnom.DTSetResultados.Tables[0];
GVPV.DataSource = objnom.DTSetResultados.Tables[0];
if (objnom.DTSetResultados.Tables.Count > 1)
@@ -214,6 +231,160 @@ public partial class RH_CalculoSBC : ClsPaginas
GVPV.DataBind();
}
protected void LnkModalCargaMasiva_Click(object sender, EventArgs e)
{
txtfechacargamasiva.Text = TxtFechaPago.Text;
UpCargarm.Update();
RegistraScript("$('#DmodalCargaMasiva').modal();");
}
protected void LnkFormatocMasiva_Click(object sender, EventArgs e)
{
try
{
bool continuar = true;
string msgerror = "";
if (continuar)
{
ClosedXML.Excel.XLWorkbook wb = new ClosedXML.Excel.XLWorkbook();
var libro = wb.AddWorksheet("Salario");
int column = 1;
libro.Cell(1, column).Value = "Codigo";
column++;
libro.Cell(1, column).Value = "Empleado";
column++;
libro.Cell(1, column).Value = "Salariodiario";
//column++;
//libro.Cell(1, column).Value = "SDI";
column++;
libro.Cell(1, column).Value = "Salariovariable";
libro.Column(column).Width = 35;
libro.Row(1).CellsUsed().Style.Font.FontColor = ClosedXML.Excel.XLColor.White;
libro.Row(1).CellsUsed().Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189));
int Fila = 1;
foreach (DataRow erow in dtsalario.Rows)
{
Fila++;
column = 1;
libro.Cell(Fila, column).Value = string.Format("'{0}", erow["Codigo"]);
column++;
libro.Cell(Fila, column).Value = erow["Nombre"];
column++;
libro.Cell(Fila, column).Value = erow["SalarioDiario"];
column++;
libro.Cell(Fila, column).Value = erow["SDI"];
column++;
libro.Cell(Fila, column).Value = erow["SalarioVariable"];
}
libro.Columns().AdjustToContents();
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", "Plantilla Salario "));
Response.BinaryWrite(memoryStream.ToArray());
Response.End();
}
else
{
Alert(msgerror, TipoMensaje.MsgAdvertencia);
}
}
catch (Exception ex)
{
Alert("Ocurrio un error al generar el Formato de nominas" + ex.ToString(), TipoMensaje.MsgAdvertencia);
}
}
protected void LnkProcesarArchvo_Click(object sender, EventArgs e)
{
DataTable dttempsalario = null;
using (ClsNominas objnom = new ClsNominas())
{
if (objnom.GetCalculoSBC(UsuarioActual.CveEmpresa, DdlTipo.SelectedValue.ToEntero(), txtfechacargamasiva.Text, DdlRegistroPatronal.SelectedValue.ToEntero()))
{
dttempsalario = objnom.DTSetResultados.Tables[0];
}
}
try
{
List<Archivo> Filesgral = TxtArchivoNomina.getfiles().Archivos;
Archivo fileItem = Filesgral.Count > 0 ? Filesgral[0] : null;
DataTable DTEXcel = Extensiones.ModExtensiones.ReadExcelFile(fileItem.FileUrl, true);
StringBuilder str = new StringBuilder();
bool rollback = false;
using (ClsRH objpersonal = new ClsRH())
{
using (ClsNominas objNomina = new ClsNominas(objpersonal.IniciaTransacSQL()))
{
foreach (DataRow row in DTEXcel.FiltraParametros("LEN(Codigo)>0 ").Rows)
{
string Codigo = row["Codigo"].ToString();
int CvePersonal = -1; // row["CvePersonal"].ToString().ToEntero();
decimal Salariodiario = row["Salariodiario"].ToString().ToDecimal();
decimal SDI = 0;
decimal Salariovariable = row["Salariovariable"].ToString().ToDecimal();
decimal SalarioCotizacion = 0;
int CveMetodoPago = 0;
if (Codigo != "-1" && objpersonal.GetPersonal(CvePersonal, Codigo, "-1", "-1", "-1", -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "-1", -1, -1, -1, -1, -1, -1, "-1", "-1", "-1", "-1", UsuarioActual.CveEmpresa) &&
objpersonal.DtResultados.Rows.Count == 1)
{
CvePersonal = objpersonal.CvePersonal;
CveMetodoPago = objpersonal.CveMetodoPago;
}
else
{
CvePersonal = 0;
str.AppendLine(string.Format("No se encontro el codigo {0}<br>", Codigo));
}
if (CvePersonal > 0)
{
DataRow drw = dttempsalario.FiltroPrimero(string.Format("CvePersonal={0}", CvePersonal));
decimal factordeintegracion = drw["Factordeintegracion"].ToString().ToDecimal();
SDI = Salariodiario * factordeintegracion;
SalarioCotizacion = Salariovariable + SDI;
if (objpersonal.UpdateSalarios(CvePersonal, txtfechacargamasiva.Text.ToDate().ToString("yyyy/MM/dd"), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa,
Salariodiario.ToString().ToDouble(), SDI.ToString().ToDouble(), SalarioCotizacion.ToString().ToDouble(), Salariodiario.ToString().ToDouble()))
{
{
}
}
}
}
if (rollback)
{
objpersonal.RollBack();
}
else
{
objpersonal.Commit();
}
}
}
}
catch (Exception) { }
RegistraScript("$('#ModalDoctos').modal('hide');");
}
protected void LnkDownArchivosSua_Click(object sender, EventArgs e)
{
@@ -250,12 +421,12 @@ public partial class RH_CalculoSBC : ClsPaginas
double SalarioDiarioSSNuevo = Math.Round(item.DataKey("SalarioDiarioSSNuevo").ToDouble(), 2);
double SalarioDiarioSS = Math.Round(item.DataKey("SalarioDiarioSS").ToDouble(), 2);
string RegistroPatronal = item.DataKey("RegistroPatronal");
if(oldRegistroPatronal != "-1" && oldRegistroPatronal != RegistroPatronal )
if (oldRegistroPatronal != "-1" && oldRegistroPatronal != RegistroPatronal)
{
MovtosmodSalario = string.Format("{0}{1}{2}", MovtosmodSalario, concater,
$"************* 00{(contador < 1000 ? "0" : "")}{(contador < 100 ? "0" : "")}{(contador < 10 ? "0" : "")}{contador} 00001 9");
Script =string.Format("{0}SaveCsv(\"Movtos{3}_{2:ddMMMyyyy}.txt\", '{1}');", Script, MovtosmodSalario, TxtFechaPago.Text.ToDateTimeExcat("dd/MM/yyyy"), oldRegistroPatronal);
Script = string.Format("{0}SaveCsv(\"Movtos{3}_{2:ddMMMyyyy}.txt\", '{1}');", Script, MovtosmodSalario, TxtFechaPago.Text.ToDateTimeExcat("dd/MM/yyyy"), oldRegistroPatronal);
MovtosmodSalario = "";
concater = "";
@@ -323,7 +494,7 @@ public partial class RH_CalculoSBC : ClsPaginas
}
RegistraScript(Script);
// RegistraScript(string.Format("SaveCsv(\"MovtosmodSalario{1:ddMMMyyyy}.txt\", '{0}');", MovtosmodSalario, TxtFechaPago.Text.ToDateTimeExcat("dd/MM/yyyy")));
// RegistraScript(string.Format("SaveCsv(\"MovtosmodSalario{1:ddMMMyyyy}.txt\", '{0}');", MovtosmodSalario, TxtFechaPago.Text.ToDateTimeExcat("dd/MM/yyyy")));
//RegistraScript(string.Format("SaveCsv(\"MovtosAfil.txt\", '{0}');SaveCsv(\"MovtosmodSalario.txt\", '{1}');SaveCsv(\"movtosBajas.txt\", '{2}');", MovtosAfil.Replace("'", "\\'"), MovtosmodSalario.Replace("'", "\\'"), movtosBajas.Replace("'", "\\'")));
//RegistraScript("$('#DmodalGetSua').modal('hide');");
}
@@ -344,7 +515,7 @@ public partial class RH_CalculoSBC : ClsPaginas
double SalarioDiarioSSNuevo = Math.Round(item.DataKey("SalarioDiarioSSNuevo").ToDouble(), 2);
double SalarioVariableNuevo = item.DataKey("SalarioVariableNuevo").ToDouble();
double SalarioDiarioSS = Math.Round(item.DataKey("SalarioDiarioSS").ToDouble(), 2);
if (continuar && SalarioDiarioSSNuevo != SalarioDiarioSS &&
if (continuar && SalarioDiarioSSNuevo != SalarioDiarioSS &&
(continuar = objrh.UpdateSalarios(CvePersonal, fecha, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, SalarioDiario, SDINuevo, SalarioDiarioSSNuevo, SalarioDiario)))
{
@@ -508,8 +679,8 @@ public partial class RH_CalculoSBC : ClsPaginas
string cfecha = urfile.Replace(rutarchivos, "").Substring(0, 10).ToDateTime().ToString("dd/MM/yyyy");
archivosD arch = new archivosD() { nombrearchivo = cfecha, ruta = urfile, fecha= System.IO.File.GetCreationTime(urfile) };
lisaarchivos.Add(arch);
archivosD arch = new archivosD() { nombrearchivo = cfecha, ruta = urfile, fecha = System.IO.File.GetCreationTime(urfile) };
lisaarchivos.Add(arch);
}
}
@@ -518,6 +689,7 @@ public partial class RH_CalculoSBC : ClsPaginas
UpModalDoctos.Update();
RegistraScript("$('#ModalDoctos').modal();");
}
}
public class archivosD
{

View File

@@ -109,7 +109,7 @@
<li>
<asp:LinkButton ID="LnkModsalario" OnClick="LnkModsalario_Click" runat="server"><i class="fa fa-pencil"></i> Modificar salario </asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkContratoAgropecuaria" OnClick="LnkContratoAgropecuaria_Click" runat="server"><i class="fa fa-list-alt"></i> Contrato </asp:LinkButton>
</li>
@@ -276,7 +276,7 @@
<label for="<%= TxtCalle.ClientID.ToString()%>">Calle: </label>
<i></i>
</div>
<div class="row" style="margin-bottom:5px">
<div class="row" style="margin-bottom: 5px">
<div class="col-md-6">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox CssClass="form-control" ID="TxtNumExt" runat="server" MaxLength="70"></asp:TextBox>
@@ -307,7 +307,7 @@
<label for="<%= TxtCiudad.ClientID.ToString()%>">Ciudad: </label>
<i></i>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlEstadosDomicilio" runat="server" DataTextField="NombreEstado" DataValueField="CveEstado" Width="100%" Class="form-control input-sm select2me"></asp:DropDownList>
<label for="<%= DdlEstadosDomicilio.ClientID.ToString()%>">Estado: </label>
@@ -319,14 +319,14 @@
<i></i>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox CssClass="form-control" ID="TxtTelefono" runat="server" MaxLength="10"></asp:TextBox>
<label for="<%= TxtTelefono.ClientID.ToString()%>">Teléfono:</label>
<i></i>
<asp:TextBox CssClass="form-control" ID="TxtTelefono" runat="server" MaxLength="10"></asp:TextBox>
<label for="<%= TxtTelefono.ClientID.ToString()%>">Teléfono:</label>
<i></i>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox CssClass="form-control" ID="TxtTelefonoEmergencia" runat="server" MaxLength="70"></asp:TextBox>
<label for="<%= TxtTelefonoEmergencia.ClientID.ToString()%>">Contacto en caso de emergencia (nombre y teléfono):</label>
<i></i>
<asp:TextBox CssClass="form-control" ID="TxtTelefonoEmergencia" runat="server" MaxLength="70"></asp:TextBox>
<label for="<%= TxtTelefonoEmergencia.ClientID.ToString()%>">Contacto en caso de emergencia (nombre y teléfono):</label>
<i></i>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox CssClass="form-control" ID="TxtCelular" runat="server" MaxLength="10"></asp:TextBox>
@@ -349,9 +349,9 @@
<i></i>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox CssClass="form-control" ID="TxtCredencialElector" runat="server" MaxLength="50"></asp:TextBox>
<label for="<%= TxtCredencialElector.ClientID.ToString()%>">Credencial Elector: </label>
<i></i>
<asp:TextBox CssClass="form-control" ID="TxtCredencialElector" runat="server" MaxLength="50"></asp:TextBox>
<label for="<%= TxtCredencialElector.ClientID.ToString()%>">Credencial Elector: </label>
<i></i>
</div>
<div runat="server" id="DivPadres" visible="true">
@@ -362,7 +362,7 @@
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox CssClass="form-control" ID="TxtNombreMadre" runat="server" MaxLength="50"></asp:TextBox>
<label for="<%= TxtNombreMadre.ClientID.ToString()%>">Nombre de la Madre: </label>
<label for="<%= TxtNombreMadre.ClientID.ToString()%>">Nombre de la Madre: </label>
<i></i>
</div>
</div>
@@ -738,13 +738,6 @@
<asp:RequiredFieldValidator ID="RFVEstatusPersonal" runat="server" ControlToValidate="DdlEstatusPersonal" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''EstatusPersonal''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<i></i>
</div>
<div class="form-group form-md-line-input input-iconright" runat="server" id="DivMotivoBaja">
<asp:DropDownList Width="100%" ID="DdlMotivoBaja" runat="server" AppendDataBoundItems="True" DataTextField="MotivoBaja" DataValueField="CveMotivoBaja" CssClass="form-control input-sm select2me" ValidationGroup="GrpGuardar">
<asp:ListItem Selected="True" Text="Sin asignar Motivo de Baja" Value="-1"></asp:ListItem>
</asp:DropDownList>
<label for="<%= DdlMotivoBaja.ClientID.ToString()%>">Motivo de Baja: </label>
<i></i>
</div>
<div runat="server" id="DivFechaBaja" visible="true" class="form-group form-md-line-input input-iconright">
@@ -3051,7 +3044,7 @@
<div class="">
<asp:Label runat="server" AssociatedControlID="DdlVacPeriodo" Style="padding-bottom: 0px; margin-bottom: 0px; font-size: 12px; color: #888; font-weight: 400;">Periodo</asp:Label><br />
<asp:DropDownList ID="DdlVacPeriodo" DataValueField="Ejercicio" DataTextField="PeriodoText" Width="100%" CssClass="form-control select2me " runat="server"></asp:DropDownList>
<%-- <asp:TextBox ID="TxtVacEjercicio" CssClass="form-control input-sm form-small" Text="2021" runat="server"></asp:TextBox>
<%-- <asp:TextBox ID="TxtVacEjercicio" CssClass="form-control input-sm form-small" Text="2021" runat="server"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtVacEjercicio">Ejercicio</asp:Label>--%>
</div>
</div>
@@ -5669,50 +5662,74 @@
</div>
<div id="ModalUpEstatus" class="modal ADS fade" role="dialog">
<asp:UpdatePanel runat="server" ID="upPersonEstatus" class="modal-dialog" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-content">
<div class="modal-header ">
<button type="button" class="close" data-dismiss="modal">&times;</button><h4 class="modal-title">
<asp:Label ID="LblEstatus" runat="server" Text="Label"></asp:Label>
</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-4">
<label><asp:Literal ID="LblFechaEstatus" runat="server"></asp:Literal></label>
</div>
<div class="col-md-6">
<div class=" " style="width: 100px !important">
<div class="input-group input-sm date date-picker" data-date-format="dd/mm/yyyy" style="width: 160px;">
<asp:TextBox ID="TxtFechaEstatus" runat="server" CausesValidation="true" CssClass="form-control input-sm"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="LnkFechaEstatus" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MaskedEditExtender6" runat="server" TargetControlID="TxtFechaEstatus" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CalendarExtender6" TargetControlID="TxtFechaEstatus" PopupButtonID="LnkFechaEstatus" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
<br />
<asp:UpdatePanel runat="server" ID="upPersonEstatus" class="modal-dialog" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-content">
<div class="modal-header ">
<button type="button" class="close" data-dismiss="modal">&times;</button><h4 class="modal-title">
<asp:Label ID="LblEstatus" runat="server" Text="Label"></asp:Label>
</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-4">
<label>
<asp:Literal ID="LblFechaEstatus" runat="server"></asp:Literal></label>
</div>
<div class="col-md-6">
<div class=" " style="width: 100px !important">
<div class="input-group input-sm date date-picker" data-date-format="dd/mm/yyyy" style="width: 160px;">
<asp:TextBox ID="TxtFechaEstatus" runat="server" CausesValidation="true" CssClass="form-control input-sm"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="LnkFechaEstatus" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MaskedEditExtender6" runat="server" TargetControlID="TxtFechaEstatus" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CalendarExtender6" TargetControlID="TxtFechaEstatus" PopupButtonID="LnkFechaEstatus" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
<br />
</div>
</div>
</div>
<div class="modal-footer">
<asp:UpdatePanel runat="server">
<ContentTemplate>
</div>
<asp:Button ID="LnkUpEstatus" runat="server" Text="Actualizar" OnClick="LnkUpEstatus_Click" class="btn btn-primary" />
<button type="button" class="btn btn-danger" data-dismiss="modal">Cancelar</button>
<div class="form-group form-md-line-input input-iconright" runat="server" id="DivMotivoBaja">
<div class="row">
<div class="col-md-4">
<asp:Label runat="server" AssociatedControlID="DdlMotivoBaja">Motivo de Baja: </asp:Label>
</div>
<div class="col-md-6">
<asp:DropDownList Width="100%" ID="DdlMotivoBaja" runat="server" AppendDataBoundItems="True" DataTextField="MotivoBaja" DataValueField="CveMotivoBaja" CssClass="form-control input-sm select2me" ValidationGroup="GrpGuardar">
<asp:ListItem Selected="True" Text="Sin asignar Motivo de Baja" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>
</div>
<div class="row">
<div class="col-md-4">
<asp:Label runat="server" Text="Observaciones " AssociatedControlID="Txobservacionesbaja"></asp:Label>
</div>
<div class="col-md-6">
<asp:TextBox ID="Txobservacionesbaja" runat="server" Text="" TextMode="MultiLine" Rows="3" CausesValidation="True" CssClass="form-control"></asp:TextBox>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<asp:UpdatePanel runat="server">
<ContentTemplate>
</ContentTemplate>
</asp:UpdatePanel>
<asp:Button ID="LnkUpEstatus" runat="server" Text="Actualizar" OnClick="LnkUpEstatus_Click" class="btn btn-primary" />
<button type="button" class="btn btn-danger" data-dismiss="modal">Cancelar</button>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<iframe id="my_iframe" style="display: none;"></iframe>

View File

@@ -16,6 +16,18 @@ Partial Class RH_Personal
#Region "P R O P I E D A D E S"
Property salarioVariable As Decimal
Get
If ViewState("salarioVariable") Is Nothing Then
Return 0
Else
Return DirectCast(ViewState("salarioVariable"), Decimal)
End If
End Get
Set(value As Decimal)
ViewState("salarioVariable") = value
End Set
End Property
Property CcveMovtoPermanente As Integer
Get
If ViewState("CcveMovtoPermanente") Is Nothing Then
@@ -1754,6 +1766,8 @@ Partial Class RH_Personal
TxtSalarioDiarioPago.Text = ObjPersonal.SalarioDiarioPago.ToString()
TxtSalarioDiario.Text = ObjPersonal.SalarioDiario.ToString()
TxtSDI.Text = ObjPersonal.SDI.ToString()
salarioVariable = drow("SalarioVariable").ToString().ToDecimal() 'ObjPersonal.SalarioDiarioSS.ToString().ToDecimal() - ObjPersonal.SDI.ToString().ToDecimal()
salarioVariable = If(salarioVariable > 0, salarioVariable, 0)
TxtSalarioCotizado.Text = ObjPersonal.SalarioDiarioSS.ToString()
TxtFISalariodiario.Text = ObjPersonal.SalarioDiario.ToString()
TxtBono.Text = ObjPersonal.Bono.ToString()
@@ -6900,10 +6914,10 @@ Partial Class RH_Personal
TxtFISalariodiario.Text = TxtSalarioDiarioM.Text
calcularSDI()
TxtSalarioDiarioImSS.Text = TxtFISalarioDiarioIntegrado.Text
TxtSalarioDiarioImSS.Text = (TxtFISalarioDiarioIntegrado.Text.ToDecimal() + salarioVariable).ToString()
TxtSalarioDiarioIntegrado.Text = TxtFISalarioDiarioIntegrado.Text
Using ObjPersonal As ClsRH = New ClsRH()
If ObjPersonal.UpdateSalarios(CvePersonal, TxtFechamodSalario.Text.ToDate().ToString("yyyy/MM/dd"), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, TxtSalarioDiarioM.Text.ToDecimal(), TxtFISalarioDiarioIntegrado.Text.ToDecimal(), TxtFISalarioDiarioIntegrado.Text.ToDecimal(), TxtSalarioDiarioM.Text.ToDecimal()) Then
If ObjPersonal.UpdateSalarios(CvePersonal, TxtFechamodSalario.Text.ToDate().ToString("yyyy/MM/dd"), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, TxtSalarioDiarioM.Text.ToDecimal(), TxtFISalarioDiarioIntegrado.Text.ToDecimal(), TxtSalarioDiarioImSS.Text.ToDecimal(), TxtSalarioDiarioM.Text.ToDecimal()) Then
TxtSalarioDiario.Text = TxtSalarioDiarioM.Text
@@ -7423,6 +7437,7 @@ Partial Class RH_Personal
LblEstatus.Text = "Activar personal"
LblFechaEstatus.Text = "Fecha ingreso ó reingreso"
TxtFechaEstatus.Text = ""
DivMotivoBaja.Visible = False
RegistraScript("$('#ModalUpEstatus').modal();")
upPersonEstatus.Update()
End Sub
@@ -7431,6 +7446,7 @@ Partial Class RH_Personal
LblEstatus.Text = "Desactivar personal"
LblFechaEstatus.Text = "Fecha baja"
TxtFechaEstatus.Text = ""
DivMotivoBaja.Visible = True
RegistraScript("$('#ModalUpEstatus').modal();")
upPersonEstatus.Update()
End Sub
@@ -7472,7 +7488,7 @@ Partial Class RH_Personal
End If
If continuar Then
Using objrh As New ClsRH
continuar = objrh.estatusPersonalUp(fecha, CvePersonal, estatus, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario)
continuar = objrh.estatusPersonalUp(fecha, CvePersonal, estatus, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario, DdlMotivoBaja.SelectedValue.ToEntero(),)
End Using
End If

View File

@@ -48,9 +48,6 @@ Partial Class Sistemas_PopUpCambiaUsuario
Dim CveEmpresa As String = UsuarioActual.CveEmpresa.ToString()
Dim splitedtext As String() = Request.Url.AbsoluteUri.Replace("http://", "").Replace("https://", "").Split("."c)
If Request.Url.AbsoluteUri.Contains("sig.agrojam.com.mx") Then
CveEmpresa = 119
End If
If splitedtext.Length > 0 Then
Select Case splitedtext(0).ToUpper()
@@ -66,6 +63,9 @@ Partial Class Sistemas_PopUpCambiaUsuario
Case "KINO" : CveEmpresa = "173"
End Select
End If
If Request.Url.AbsoluteUri.Contains("sig.agrojam.com.mx") Then
CveEmpresa = 158
End If
DdlEmpresa.DataBind()
DdlEmpresa.SelectedValue = CveEmpresa