This commit is contained in:
JORGE LUIS CAUDILLO ESPARZA
2021-09-06 03:43:00 -07:00
parent d1b8c91d69
commit 55cc085363
15 changed files with 1822 additions and 203 deletions

View File

@@ -0,0 +1,279 @@
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="ChecadorAsistencia.aspx.cs" Inherits="Nomina_ChecadorAsistencia" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
<style>
.AdsCHeader .GvNominas th:nth-child(1),
.AdsCHeader .GvNominas td:nth-child(1) {
text-align: left;
width: 50px;
}
.AdsCHeader .GvNominas th:nth-child(2),
.AdsCHeader .GvNominas td:nth-child(2) {
text-align: left;
width: 200px;
}
.GvNominas td:nth-child(n+3) {
text-align: center;
}
.GvNominas td:nth-child(n+3) div {
text-align: center;
}
.AdsBody .GvNominas td:nth-child(n) {
text-align: center;
}
.AdsBody .GvNominas td:nth-child(n) div {
text-align: center;
}
</style>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
</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">Tipo Período:</label>
<div class="col-md-2">
<asp:DropDownList ID="DdlTipoPeriodo" runat="server" CssClass="select2me" DataTextField="TipoPeriodo" DataValueField="CveTipoPeriodo" Style="width: 100% !important;">
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>
<label class="col-md-1 mediocol">del:</label>
<div class="col-md-1">
<%--<asp:TextBox ID="TxtPeriodoInicio" Text="0" CssClass="form-control" runat="server"></asp:TextBox>--%>
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 138px !important; padding: 0px; margin-bottom: -10px;">
<asp:TextBox ID="TxtRpdFechaInicio" CssClass="form-control input-sm ADSMaskDate" Style="width: 80px" runat="server"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="LnkRpdFechaInicio" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MaskedEditExtender3" runat="server" TargetControlID="TxtRpdFechaInicio" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CalendarExtender3" TargetControlID="TxtRpdFechaInicio" PopupButtonID="LnkRpdFechaInicio" PopupPosition="BottomRight" Enabled="True" Format="dd/MM/yyyy"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="rfvRpdFechaInicio" runat="server" ControlToValidate="TxtRpdFechaInicio" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha Inicio''</b> es necesario, por favor ingréselo." ValidationGroup="VGReporterepperde"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender1" runat="server" HighlightCssClass="vco" TargetControlID="rfvRpdFechaInicio"></ajax:ValidatorCalloutExtender>
</div>
</div>
<label class="col-md-1 mediocol">al:</label>
<div class="col-md-1">
<%--<asp:TextBox ID="TxtPeriodoFin" Text="99" CssClass="form-control" runat="server"></asp:TextBox>--%>
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 138px !important; padding: 0px; margin-bottom: -10px;">
<asp:TextBox ID="TxtRpdFechaFin" CssClass="form-control input-sm ADSMaskDate" Style="width: 80px" runat="server"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="LnkFechaFin" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MaskedEditExtender5" runat="server" TargetControlID="TxtRpdFechaFin" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CalendarExtender4" TargetControlID="TxtRpdFechaFin" PopupButtonID="LnkFechaFin" PopupPosition="BottomRight" Enabled="True" Format="dd/MM/yyyy"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="rfvRpdFechaFin" runat="server" ControlToValidate="TxtRpdFechaFin" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha Fin''</b> es necesario, por favor ingréselo." ValidationGroup="VGReporterepperde"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender2" runat="server" HighlightCssClass="vco" TargetControlID="rfvRpdFechaFin"></ajax:ValidatorCalloutExtender>
</div>
</div>
<div class="col-md-3">
<asp:LinkButton ID="LnkConsultar" OnClick="LnkConsultar_Click" runat="server" Text="Consultar" Visible="true" 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="GvNominas" runat="server" OnRowDataBound="GvNominas_RowDataBound" CssClass="table table-striped table-advance table-hover mysmallbtn ScrollAD Widthall GvNominas"
Style="text-align: center;" GridLines="None" data-cols="2" data-rows="1" data-heighterror="360" ShowHeaderWhenEmpty="true" ShowHeader="true">
<Columns></Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
<div id="divDetallesDia" class="modal ADS fade" role="dialog">
<div id="Div1" runat="server" class="modal-dialog " style="width: 600px;">
<asp:UpdatePanel runat="server" class="modal-content" ID="UpDetallesDia" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-header ">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">
<asp:Literal ID="LtlAsistenciaHorariosModal" runat="server">Detalles</asp:Literal></h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-8">
<div class="row">
<div class="col-md-6">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox CssClass="form-control" ID="TxtCodigolabel" runat="server" Text="" Enabled="false"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtCodigolabel" Text="Código"></asp:Label>
</div>
</div>
<div class="col-md-6">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox CssClass="form-control" ID="TxtFechalabel" runat="server" Text="" Enabled="false"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtFechalabel" Text="Fecha"></asp:Label>
</div>
</div>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox CssClass="form-control" ID="TxtEmpleadolabel" runat="server" Text="" Enabled="false" Style="font-size: 11px;"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtEmpleadolabel" Text="Empleado"></asp:Label>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox CssClass="form-control" ID="TxtPorPago" runat="server" Text="" type="number" min="0" max="100" step="0.01"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtPorPago" Text="Porcentaje Pago"></asp:Label>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlTipoAsistencias" Enabled="false" Width="150" runat="server" CssClass="select2me form-control" DataTextField="Tipo" DataValueField="CveAsistenciasInasistencias"></asp:DropDownList>
<asp:Label runat="server" AssociatedControlID="DdlTipoAsistencias" Text="Asistencia"></asp:Label>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox CssClass="form-control " ID="TxtHorasDobles" runat="server" MaxLength="3" Text="0"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtHorasDobles" Text="Horas Dobles"></asp:Label>
</div>
</div>
<div class="col-md-4">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox CssClass="form-control " ID="TxtHorasTriples" runat="server" MaxLength="3" Text="0"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtHorasTriples" Text="Horas Triples"></asp:Label>
</div>
</div>
<div class="col-md-4">
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlMotivoHoraExtra" runat="server" AppendDataBoundItems="true" DataTextField="MotivoHoraExtra" DataValueField="CveMotivoHoraExtra"
CssClass="form-control select2me" Width="100%">
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList>
<asp:Label runat="server" AssociatedControlID="DdlMotivoHoraExtra" Text="Motivo"></asp:Label><%-- Hora Extra--%>
</div>
</div>
</div>
<div class="row">
<asp:Panel ID="PnlProyecto" CssClass="col-md-6" runat="server">
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlAsisProyecto" runat="server" AppendDataBoundItems="true" CssClass="form-control select2me" AutoPostBack="true" DataTextField="Proyecto" DataValueField="CveProyecto" Style="width: 100% !important;" ValidationGroup="GrpGuardar">
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList>
<asp:Label ID="LblAsisProyecto" AssociatedControlID="DdlAsisProyecto" runat="server" Text="Proyecto:"></asp:Label>
</div>
</asp:Panel>
<asp:Panel ID="PnlSubProyecto" CssClass="col-md-12" runat="server">
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlAsisSubProyecto" runat="server" AppendDataBoundItems="true" CssClass="form-control select2me" DataTextField="SubProyecto" DataValueField="CveSubProyecto" Style="width: 100% !important;" ValidationGroup="GrpGuardar">
<asp:ListItem Selected="True" Text="Todos" Value="-1"></asp:ListItem>
</asp:DropDownList>
<asp:Label ID="LblAsisSubProyecto" AssociatedControlID="DdlAsisSubProyecto" runat="server" Text="SubProyecto:"></asp:Label>
</div>
</asp:Panel>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox CssClass="form-control" ID="TxtObservaciones" runat="server" MaxLength="150"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtObservaciones" Text="Observaciones"></asp:Label>
</div>
</div>
<div class="col-md-4">
<asp:GridView ID="GvDetalleDias" runat="server" AutoGenerateColumns="false" EmptyDataText="No se encontraron registros" with="150"
CssClass=" table table-striped table-advance table-hover Widthall" Style="text-align: center;" GridLines="None">
<Columns>
<asp:TemplateField HeaderText="Registros Checador" ItemStyle-HorizontalAlign="Left" Visible="true">
<ItemTemplate>
<asp:Label ID="lblFechaHora" runat="server" Width="150" Text='<%# Eval("FechaRegistro") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
<%-- <table style="width: 100%">
<tr>
<td style="width: 50%; vertical-align: top!important">
<table style="width: 100%">
<tr>
<td style="width: 20%; text-align: right!important; vertical-align: top!important">
<asp:LinkButton ID="lnkModalImg" runat="server" Text="" OnClientClick="return false;"></asp:LinkButton></td>
<td style="font-weight: bold; font-size: 13px!important">
<asp:Label ID="lblModalFecha" runat="server"></asp:Label>
<br />
<asp:Label ID="lblModalMensaje" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</table>
<div class="col-md-10">
</div>
<div class="col-md-10">
</div>
</td>
<td style="width: 50%"></td>
</tr>
</table>--%>
</div>
<div class="modal-footer">
<div class="row">
<asp:Button ID="BtnOpenModal" UseSubmitBehavior="false" OnClick="BtnOpenModal_Click" CssClass="BtnOpenModal hidden" runat="server" Text="Button" />
<asp:TextBox ID="TxtFecha" CssClass="TxtFecha hidden" runat="server"></asp:TextBox>
<asp:TextBox ID="TxtCvePersonal" CssClass="TxtCvePersonal hidden" runat="server"></asp:TextBox>
<asp:Button ID="BtnEstusAsistenciaModal" OnClick="BtnEstusAsistenciaModal_Click" UseSubmitBehavior="false" runat="server" class="btn btn-success" Text="Aceptar" ValidationGroup="GrpAsistencia" />
<button id="Button4" runat="server" type="button" class="btn default" data-dismiss="modal">Cerrar</button>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
<script>
function OpenModal(Fecha, CvePersonal) {
$('.TxtFecha').val(Fecha);
$('.TxtCvePersonal').val(CvePersonal);
$('.BtnOpenModal').click();
}
</script>
</asp:Content>

View File

@@ -0,0 +1,255 @@
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 Extensiones;
public partial class Nomina_ChecadorAsistencia : ClsPaginas
{
private DataTable dtper
{
get
{
if (ViewState["dtper"] == null) { return null; }
else { return (DataTable)ViewState["dtper"]; }
}
set { ViewState["dtper"] = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
CargaTiposPeriodo();
TxtRpdFechaInicio.Text = "01/09/2021";
TxtRpdFechaFin.Text = "15/09/2021";
DdlTipoAsistencias.DataSource = GlobalDTAsistenciasInasistencias.FiltraParametros(string.Format("CveEmpresa = {0}", UsuarioActual.CveEmpresa));
DdlTipoAsistencias.DataBind();
DdlMotivoHoraExtra.DataSource = GlobalDTMotivosHorasExtras.FiltraParametros(string.Format("CveEmpresa = {0}", UsuarioActual.CveEmpresa));
DdlMotivoHoraExtra.DataBind();
CargarCentrosDeCosto(DdlAsisProyecto, DdlAsisSubProyecto, LblAsisProyecto, LblAsisSubProyecto);
PnlProyecto.Visible = DdlAsisProyecto.Visible;
if (PnlProyecto.Visible)
{
PnlSubProyecto.CssClass = "col-md-6";
}
}
}
private void CargaTiposPeriodo()
{
DdlTipoPeriodo.DataSource = GlobalDTTipoPeriodo.FiltraParametros("Estatus = 'Activo'");
DdlTipoPeriodo.DataBind();
DdlTipoPeriodo.Items.Insert(0, new ListItem("Todos", "-1"));
if (DdlTipoPeriodo.Items.Count > 0)
{
DdlTipoPeriodo.SelectedIndex = 0;
}
}
private DataTable generateTable()
{
DateTime FechaI = TxtRpdFechaInicio.Text.ToDateTime();
DateTime FechaF = TxtRpdFechaFin.Text.ToDateTime();
DataTable dtCon = new DataTable();
dtCon.Columns.Add(new DataColumn("Codigo", typeof(string)));
dtCon.Columns.Add(new DataColumn("Empleado", typeof(string)));
DateTime CFecha = FechaI;
while (FechaF > CFecha)
{
string Fecha = string.Format("{0:yyyyMMdd}", CFecha);
string FechaCol = string.Format("{0:dd-MM-yyyy}", CFecha);
dtCon.Columns.Add(new DataColumn(FechaCol, typeof(string)) { });
CFecha = CFecha.AddDays(1);
}
using (ClsNominas objnom = new ClsNominas())
{
if (objnom.GetchecadorAdistencia(FechaI, FechaF, UsuarioActual.CveEmpresa))
{
DataTable dtASis = objnom.DTSetResultados.Tables[0];
dtper = objnom.DTSetResultados.Tables[1];
foreach (DataRow item in dtper.Rows)
{
DataRow drow = dtCon.NewRow();
drow["Codigo"] = item["Codigo"];
drow["Empleado"] = item["NombreCompleto"];
CFecha = FechaI;
while (FechaF > CFecha)
{
int Fecha = string.Format("{0:yyyyMMdd}", CFecha).ToEntero();
string FechaCol = string.Format("{0:dd-MM-yyyy}", CFecha);
string TipoAsis = "(Faltó)";
DataRow drfec = dtASis.FiltroPrimero(string.Format("CvePersonal={0} AND Agrupador ={1}", item["CvePersonal"], Fecha), "Salida");
if (drfec != null)
{
DataTable dtx = dtASis.FiltraParametros(string.Format("CvePersonal={0} AND Agrupador ={1}", item["CvePersonal"], Fecha), "Salida");
string asistencia2 = "";
string Horas2 = "";
if (dtx.Rows.Count > 1)
{
Horas2 = drfec["Horas"].ToString();
DataRow drf = dtx.Rows[1];
asistencia2 = "<i class='fa fa-check-square' style=\"color:green;\"></i>";
TipoAsis = drf["TipoAsistencia"].ToString();
switch (drfec["Tipo"].ToString().ToEntero())
{
case 1:
asistencia2 = "<i class='fa fa-check-square' style=\"color:green;\"></i>";
break;
case 2:
asistencia2 = "<i class='fa fa-clock-o' style=\"color:orange;\" aria-hidden='true'></i>";
break;
case 3:
asistencia2 = "<i class='fa fa-clock-o' style=\"color:orange;\" aria-hidden='true'></i>";
break;
case 4:
asistencia2 = "<i class='fa fa-clock-o' style=\"color:red;\" aria-hidden='true'></i>";
break;
case 5:
asistencia2 = "<i class='fa fa-clock-o' style=\"color:red;\" aria-hidden='true'></i>";
break;
default:
break;
}
}
string asistencia = "<i class='fa fa-check-square' style=\"color:green;\"></i>";
TipoAsis = drfec["TipoAsistencia"].ToString();
switch (drfec["Tipo"].ToString().ToEntero())
{
case 1:
asistencia = "<i class='fa fa-check-square' style=\"color:green;\"></i>";
break;
case 2:
asistencia = "<i class='fa fa-clock-o' style=\"color:orange;\" aria-hidden='true'></i>";
break;
case 3:
asistencia = "<i class='fa fa-clock-o' style=\"color:orange;\" aria-hidden='true'></i>";
break;
case 4:
asistencia = "<i class='fa fa-clock-o' style=\"color:red;\" aria-hidden='true'></i>";
break;
case 5:
asistencia = "<i class='fa fa-clock-o' style=\"color:red;\" aria-hidden='true'></i>";
break;
default:
break;
}
drow[FechaCol] = string.Format("<div style='display:inline-block'>{0}<br>{1}</div><div style='display:inline-block'>{2}<br>{3}</div>", asistencia, drfec["Horas"], asistencia2, Horas2);
//drow[FechaCol] = string.Format("{0}<br>{1:HH}:{1:mm} - {2:HH}:{2:mm}", asistencia, drfec["Entrada"], drfec["Salida"]);
}
else
{
if (CFecha.DayOfWeek == DayOfWeek.Sunday)
{
drow[FechaCol] = "<i class='fa fa-sun-o' style=\"color:green;\"></i>";
TipoAsis = "(Descanso)";
}
else
{
drow[FechaCol] = "<div style=\"color:red;\">❌</div>";
}
}
drow[FechaCol] = string.Format("<div class\" Widthall \" onclick=\"OpenModal('{2}',{3}) \">{0}<br>{1}</div>", drow[FechaCol], TipoAsis, FechaCol, item["CvePersonal"]);
//dtCon.Columns.Add(new DataColumn(FechaCol, typeof(string)));Widthall
CFecha = CFecha.AddDays(1);
}
dtCon.Rows.Add(drow);
}
}
}
//dtCon.Columns.Add(new DataColumn("LabelValorP", typeof(string)));
//dtCon.Columns.Add(new DataColumn("CveConceptoP", typeof(int)));
//dtCon.Columns.Add(new DataColumn("ImporteP", typeof(double)));
return dtCon;
}
protected void LnkConsultar_Click(object sender, EventArgs e)
{
DataTable dtCon = generateTable();
GvNominas.DataSource = dtCon;
GvNominas.DataBind();
UpDatos.Update();
}
protected void GvNominas_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
for (int j = 0; j < e.Row.Cells.Count; j++)
{
string encoded = e.Row.Cells[j].Text;
e.Row.Cells[j].Text = Context.Server.HtmlDecode(encoded);
}
}
}
protected void BtnOpenModal_Click(object sender, EventArgs e)
{
DateTime fechai = TxtFecha.Text.ToDateTime();
DateTime fechaf = fechai.AddDays(1);
int CvePersonal = TxtCvePersonal.Text.ToEntero();
TxtFechalabel.Text = string.Format("{0:dd/MM/yyyy}", fechai);
using (ClsRH objRH = new ClsRH())
{
if (objRH.PreAsistenciaRegistrosGet(fechai, fechaf, -1, UsuarioActual.Empresa.CveEmpresa))
{
GvDetalleDias.DataSource = objRH.DtResultados.FiltraParametros(string.Format("FechaRegistro >='{0:yyyy/MM/dd HH:mm}' AND FechaRegistro <='{1:yyyy/MM/dd HH:mm}' AND CvePersonal = {2}", fechai.AddHours(6), fechaf.AddHours(6), CvePersonal), "FechaRegistro");
GvDetalleDias.DataBind();
}
DdlTipoAsistencias.Enabled = GvDetalleDias.Rows.Count > 0;
if (objRH.GetAsistencias(CvePersonal, -1, -1, -1, -1, -1, fechai, fechai, UsuarioActual.CveEmpresa))
{
if (objRH.DtResultados.Rows.Count > 0)
{
DataRow dr = objRH.DtResultados.Rows[0];
DdlTipoAsistencias.SelectedValueExist(dr["CveAsistenciasInasistencias"].ToString());
DdlAsisSubProyecto.SelectedValueExist(dr["CveSubProyecto"].ToString());
TxtPorPago.Text = dr["PorcentajePago"].ToString();
TxtHorasDobles.Text = dr["HorasDobles"].ToString();
TxtHorasTriples.Text = dr["HorasTriples"].ToString();
DdlMotivoHoraExtra.SelectedValueExist(dr["CveMotivoHoraExtra"].ToString());
TxtObservaciones.Text = dr["Observacion"].ToString();
}
}
}
DataRow drow = dtper.FiltroPrimero(string.Format("CvePersonal = {0}", CvePersonal));
if(drow != null)
{
TxtCodigolabel.Text = drow["Codigo"].ToString();
TxtEmpleadolabel.Text = drow["NombreCompleto"].ToString();
}
UpDetallesDia.Update();
RegistraScript("$('#divDetallesDia').modal();");
}
protected void BtnEstusAsistenciaModal_Click(object sender, EventArgs e)
{
DateTime fecha = TxtFecha.Text.ToDateTime();
int CvePersonal = TxtCvePersonal.Text.ToEntero();
//int CvePersonal = TxtasiscvePersonal.Text.ToEntero();
//DateTime fecha = TxtasisFecha.Text.ToDate();
using (ClsRH objpersonal = new ClsRH())
{
if (objpersonal.AddAsistencia(CvePersonal, -1, DdlAsisSubProyecto.SelectedValue.ToEntero(), fecha, DdlTipoAsistencias.SelectedValue.ToEntero(), TxtPorPago.Text.Trim().ToDouble(), TxtHorasDobles.Text.Trim().ToDouble(),
TxtHorasTriples.Text.Trim().ToDouble(), DdlMotivoHoraExtra.SelectedValue.ToEntero(), TxtObservaciones.Text.Trim(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa))
{
//Alert(string.Format("se ha guardado la asistencia satisfactoriamente <br/>{0}<br/>{1:dd/MM/yyyy}", TxtPersonal.Text, TxtasisFecha.Text.ToDate()), TipoMensaje.ToastInformacion);
Alert("Se ha guardado la asistencia satisfactoriamente");
RegistraScript("$('#DModalModAsistencia').modal('hide');");
}
}
}
}

View File

@@ -9,6 +9,11 @@
content: "\f1c1";
}
pre {
font-size: 11px;
padding: 3px;
}
table.gvasistencia tr:hover {
background-color: #dddddd;
}
@@ -354,7 +359,7 @@
</asp:DropDownList>
</div>
<div class="col-md-2" style="max-width: 160px !important; white-space: nowrap;">
<label class="compoonenlabel">ver Obligaciones:</label>
<label class="compoonenlabel">Ver obligaciones:</label>
<asp:CheckBox ID="Chkobligaciones" Text=" " CssClass="chksino" runat="server" />
</div>
@@ -399,7 +404,7 @@
<asp:TemplateField>
<HeaderTemplate></HeaderTemplate>
<ItemTemplate>
<asp:LinkButton ID="LnkSobreRecibo" OnClick="LnkSobreRecibo_Click" runat="server"><i class='fa fa-list-alt'></i></asp:LinkButton>
<asp:HyperLink ID="LnkSobreRecibo" runat="server"><i class='fa fa-list-alt'></i></asp:HyperLink>
</ItemTemplate>
<ItemStyle Width="20px" HorizontalAlign="Left" />
</asp:TemplateField>
@@ -825,6 +830,25 @@
<div class="btn-group">
<a onclick="$('#C_BtnImprimirsobrerecibo').click()" class="btn yellow-gold">Imprimir</a>
</div>
<div class="btn-group hidden">
<a class="btn yellow-gold btn-sm" href="javascript:;" data-toggle="dropdown" data-hover="dropdown" data-close-others="true" aria-expanded="true"><i class="fa fa-calculator"></i>Calculos
<i class="fa fa-angle-down"></i>
</a>
<ul class="dropdown-menu pull-right">
<li>
<asp:LinkButton ID="LnkCalculoIMSS" OnClick="LnkCalculoIMSS_Click" Text="<i class='icon-bulb'></i> Calculo IMSS" runat="server"></asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkCalculoHorasExtras" OnClick="LnkCalculoHorasExtras_Click" Text="<i class='icon-bulb'></i> Calculo horas extras" runat="server"></asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkCalculoSubsidio" OnClick="LnkCalculoSubsidio_Click" Text="<i class='icon-bulb'></i> Calculo Subsidio" runat="server"></asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkCalculoISR" OnClick="LnkCalculoISR_Click" Text="<i class='icon-bulb'></i> Calculo ISR" runat="server"></asp:LinkButton>
</li>
</ul>
</div>
</div>
</div>
<div class="portlet-body " style="padding: 0px;">
@@ -884,6 +908,36 @@
</asp:GridView>
</div>
</div>
<div class="portlet light xspadding bordered " id="pnlBitacora">
<div class="portlet-title">
<div class="caption ">
<i class="icon-pin font-yellow-gold"></i>
<span class="caption-subject font-yellow-gold bold uppercase">Bitacora</span>
</div>
<div class="tools">
<a href="javascript:;" class="collapse" data-original-title="" title=""></a>
<a href="javascript:;" class="fullscreen" data-original-title="" title=""></a>
</div>
</div>
<div class="portlet-body " style="padding: 0px;">
<asp:GridView ID="GvBitacora" OnRowDataBound="GvBitacora_RowDataBound" runat="server" GridLines="None" Width="100%" CssClass="table table-striped table-advance table-hover Widthall ScrollAD mysmallbtn" data-sort="true" CellSpacing="0" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField HeaderText="Fecha" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Literal ID="LtlFecha" runat="server" Text='<%# Eval("FechaIng") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Descripcion" HeaderText="Descripción" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField DataField="Anterior" HeaderText="Anterior" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField DataField="Actual" HeaderText="Actual" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField DataField="Usuario" HeaderText="Usuario" ItemStyle-HorizontalAlign="Left" />
</Columns>
</asp:GridView>
</div>
</div>
</ContentTemplate>
</ajax:TabPanel>
<ajax:TabPanel ID="TabInfonavit" runat="server" HeaderText="Infonavit">
@@ -1409,16 +1463,13 @@
</asp:Panel>
</asp:Panel>
<asp:Panel runat="server" ID="PnlVacChecks" CssClass="row">
<div class="col-md-6" >
<div class="col-md-6">
<div style="padding-top: 0px; padding-bottom: 0px; font-size: 12px; color: #888; font-weight: 400; white-space: nowrap;">
¿Prima Vacacional?
</div>
<asp:CheckBox ID="ChkVacPrimaVacacional" CssClass="chksino " Text=" " runat="server" />
</div>
<div class="col-md-6" >
<div class="col-md-6">
<div style="padding-top: 0px; padding-bottom: 0px; font-size: 12px; color: #888; font-weight: 400; white-space: nowrap;">
¿Cobrar IMSS?
</div>
@@ -1758,6 +1809,371 @@
</ContentTemplate>
</asp:UpdatePanel>
</div>
<div id="ModalRegistraProvision" class="modal ADS fade" role="dialog">
<asp:UpdatePanel class="modal-dialog modal-lg" runat="server" ID="UpRegistroProvision" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-content">
<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">
<asp:Label ID="Label2" runat="server" Text="">no se pudo registrar la provisión, existen cuentas sin vincular.</asp:Label></h4>
</div>
<div class="modal-body">
<asp:GridView ID="GVProvision" runat="server" DataKeyNames="CveConcepto,CvePersonal" OnRowDataBound="GVProvision_RowDataBound" CssClass="table table-striped table-advance table-hover mysmallbtn ScrollAD Widthall GvNominas"
Style="text-align: center;" GridLines="None" data-rows="2" data-heighterror="360" ShowHeaderWhenEmpty="true" ShowHeader="true" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField HeaderText="Concepto Contable">
<ItemTemplate>
<asp:Label runat="server" Text='<%# Eval("ConceptoContable")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Concepto Nomina">
<ItemTemplate>
<asp:Label runat="server" Text='<%# Eval("ConceptoNomina")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Personal">
<ItemTemplate>
<asp:Label runat="server" Text='<%# Eval("CodigoNombreCompleto")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Asignar a Concepto :" Visible="false">
<ItemTemplate>
<asp:DropDownList ID="DdlCconceptosContables" CssClass="form-control input-sm select2me select2me" runat="server" AppendDataBoundItems="true" DataTextField="ConceptoContable" DataValueField="CveConceptoContable"></asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Asignar a cuenta :">
<ItemTemplate>
<asp:DropDownList ID="Ddlcuentassd" runat="server" AppendDataBoundItems="True" DataTextField="CtaCodigo" DataValueField="CveCuenta" Class="form-control hidden input-sm select2me" Width="100%"></asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
<div class="modal-footer">
<asp:LinkButton ID="LnkGuardarConceptosProvision" OnClick="LnkGuardarConceptosProvision_Click" CssClass="btn btn-primary" runat="server">Guardar</asp:LinkButton>
<button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<div id="ModalCalculosSys" class="modal ADS fade" role="dialog">
<asp:UpdatePanel class="modal-dialog modal-lg" runat="server" ID="UpModalCalculos" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-content">
<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">
<asp:Label ID="LblcalculoTitulos" runat="server" Text=""></asp:Label></h4>
</div>
<div class="modal-body">
<div class="portlet light xspadding bordered " id="Pnlcalculosdata">
<div class="portlet-title">
<div class="caption ">
<i class="icon-pin font-yellow-gold"></i>
<span class="caption-subject font-yellow-gold bold uppercase">Datos</span>
</div>
<div class="tools">
<a href="javascript:;" class="collapse" data-original-title="" title=""></a>
<a href="javascript:;" class="fullscreen" data-original-title="" title=""></a>
</div>
</div>
<div class="portlet-body " style="padding: 0px;">
<div class="row">
<div class="col-md-6">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox Enabled="false" CssClass="form-control" ID="TxtCCSysUMA" runat="server"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtCCSysUMA" Enabled="false" Text="UMA"></asp:Label>
</div>
</div>
<div class="col-md-6">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox Enabled="false" CssClass="form-control" ID="TxtCCSysSalarioMinimo" runat="server"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtCCSysSalarioMinimo" Enabled="false" Text="Salario mínimo"></asp:Label>
</div>
</div>
</div>
<asp:Panel ID="PnlIMSSV" runat="server">
<div class="row">
<div class="col-md-6">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox Enabled="false" CssClass="form-control" ID="TxtCCSysSalarioBC" runat="server"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtCCSysSalarioBC" Enabled="false" Text="Salario base cotización"></asp:Label>
</div>
</div>
<div class="col-md-6">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox Enabled="false" CssClass="form-control" ID="TxtCCSysDiasIMSS" runat="server"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtCCSysDiasIMSS" Enabled="false" Text="Días IMSS"></asp:Label>
</div>
</div>
</div>
</asp:Panel>
<!-- TxtCCSys -->
<asp:Panel ID="PnlHorasExtras" runat="server">
<div class="row">
<div class="col-md-6">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox Enabled="false" CssClass="form-control" ID="TxtCCSysHorasDobles" runat="server"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtCCSysHorasDobles" Enabled="false" Text="Horas dobles"></asp:Label>
</div>
</div>
<div class="col-md-6">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox Enabled="false" CssClass="form-control" ID="TxtCCSysHorasTriples" runat="server"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtCCSysHorasTriples" Enabled="false" Text="Horas triples"></asp:Label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox Enabled="false" CssClass="form-control" ID="TxtCCSysSalarioDiario" runat="server"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtCCSysSalarioDiario" Enabled="false" Text="Salario diario"></asp:Label>
</div>
</div>
<div class="col-md-6">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox Enabled="false" CssClass="form-control" ID="TxtCCSysImporteHora" runat="server"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtCCSysImporteHora" Enabled="false" Text="Importe hora"></asp:Label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox Enabled="false" CssClass="form-control" ID="TxtCCSysDiasLaborados" runat="server"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtCCSysDiasLaborados" Enabled="false" Text="Días laborados"></asp:Label>
</div>
</div>
</div>
</asp:Panel>
</div>
</div>
<div class="portlet light xspadding bordered " id="Pnlcalculosformulas">
<div class="portlet-title">
<div class="caption ">
<i class="icon-pin font-yellow-gold"></i>
<span class="caption-subject font-yellow-gold bold uppercase">Formulas</span>
</div>
<div class="tools">
<a href="javascript:;" class="collapse" data-original-title="" title=""></a>
<a href="javascript:;" class="fullscreen" data-original-title="" title=""></a>
</div>
</div>
<div class="portlet-body " style="padding: 0px;">
<asp:Panel ID="PnlIMSSF" runat="server">
<div class="row">
<div class="col-md-4">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox Enabled="false" CssClass="form-control" ID="TxtCCSysImporteCuotaExcedente" runat="server"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtCCSysImporteCuotaExcedente" Text="Importe cuota excedente"></asp:Label>
</div>
</div>
<div class="col-md-8">
<asp:Label ID="LblCCSysImporteCuotaExcedente" runat="server" Text=""></asp:Label>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox Enabled="false" CssClass="form-control" ID="TxtCCSysCuotaExcedente" runat="server"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtCCSysCuotaExcedente" Text="Cuota excedente"></asp:Label>
</div>
</div>
<div class="col-md-8">
<asp:Label ID="LblCCSysCuotaExcedente" runat="server" Text=""></asp:Label>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox Enabled="false" CssClass="form-control" ID="TxtCCSysPrestacionesenDinero" runat="server"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtCCSysPrestacionesenDinero" Text="Prestaciones en dinero"></asp:Label>
</div>
</div>
<div class="col-md-8">
<asp:Label ID="LblCCSysPrestacionesenDinero" runat="server" Text=""></asp:Label>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox Enabled="false" CssClass="form-control" ID="TxtCCSysGastosMedicos" runat="server"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtCCSysGastosMedicos" Text="Gastos médicos pensionados"></asp:Label>
</div>
</div>
<div class="col-md-8">
<asp:Label ID="LblCCSysGastosMedicos" runat="server" Text=""></asp:Label>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox Enabled="false" CssClass="form-control" ID="TxtCCSysRetEnfYMatOb" runat="server"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtCCSysRetEnfYMatOb" Text="Ret. Enf. y Mat. obrero"></asp:Label>
</div>
</div>
<div class="col-md-8">
<asp:Label ID="LblCCSysRetEnfYMatOb" runat="server" Text=""></asp:Label>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox Enabled="false" CssClass="form-control" ID="TxtCCSysRetInvYVida" runat="server"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtCCSysRetInvYVida" Text="Ret. Inv. y vida"></asp:Label>
</div>
</div>
<div class="col-md-8">
<asp:Label ID="LblCCSysRetInvYVida" runat="server" Text=""></asp:Label>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox Enabled="false" CssClass="form-control" ID="TxtCCSysRetCesentia" runat="server"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtCCSysRetCesentia" Text="Ret. Cesantia"></asp:Label>
</div>
</div>
<div class="col-md-8">
<asp:Label ID="LblCCSysRetCesentia" runat="server" Text=""></asp:Label>
</div>
</div>
<div class="row">
<div class="col-md-4"></div>
<div class="col-md-4 text-center">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox Enabled="false" CssClass="form-control text-center" ID="TxtCCSysImporteIMSS" runat="server"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtCCSysImporteIMSS" Text="IMSS"></asp:Label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-2 "></div>
<div class="col-md-8 text-center">
<asp:Label ID="LblCCSysImporteIMSS" runat="server" Text=""></asp:Label>
</div>
</div>
</asp:Panel>
<asp:Panel ID="PnlHorasExtrasF" runat="server">
<div class="row">
<div class="col-md-4 text-center">Valor</div>
<div class="col-md-8 text-center">Formula</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox Enabled="false" CssClass="form-control" ID="TxtCCSysSeExcentanDobles" runat="server"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtCCSysSeExcentanDobles" Enabled="false" Text="¿las horas extras se exentan dobles?"></asp:Label>
</div>
</div>
<div class="col-md-8">
<asp:Label ID="LblCCSysSeExcentanDobles" runat="server" Text=""></asp:Label>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox Enabled="false" CssClass="form-control" ID="TxtCCSysTopeHorasDobles" runat="server"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtCCSysTopeHorasDobles" Enabled="false" Text="Tope horas exentas"></asp:Label>
</div>
</div>
<div class="col-md-8">
<asp:Label ID="LblCCSysTopeHorasDobles" runat="server" Text=""></asp:Label>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox Enabled="false" CssClass="form-control" ID="TxtCCSysHorasExcentas" runat="server"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtCCSysHorasExcentas" Enabled="false" Text="Horas exentas"></asp:Label>
</div>
</div>
<div class="col-md-8">
<asp:Label ID="LblCCSysHorasExcentas" runat="server" Text=""></asp:Label>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox Enabled="false" CssClass="form-control" ID="TxtCCSysImporteExentoAntesTope" runat="server"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtCCSysImporteExentoAntesTope" Enabled="false" Text="Importe exento(antes del tope)"></asp:Label>
</div>
</div>
<div class="col-md-8">
<asp:Label ID="LblCCSysImporteExentoAntesTope" runat="server" Text=""></asp:Label>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox Enabled="false" CssClass="form-control" ID="TxtCCSysTopeImporte" runat="server"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtCCSysTopeImporte" Enabled="false" Text="Tope importe"></asp:Label>
</div>
</div>
<div class="col-md-8">
<asp:Label ID="LblCCSysTopeImporte" runat="server" Text=""></asp:Label>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox Enabled="false" CssClass="form-control" ID="TxtCCSysImporteExento" runat="server"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtCCSysImporteExento" Enabled="false" Text="Importe exento"></asp:Label>
</div>
</div>
<div class="col-md-8">
<asp:Label ID="LblCCSysImporteExento" runat="server" Text=""></asp:Label>
</div>
</div>
<div class="row">
<div class="col-md-4"></div>
<div class="col-md-4 text-center">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox Enabled="false" CssClass="form-control text-center" ID="TxtCCSysImporteGravado" runat="server"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtCCSysImporteGravado" Enabled="false" Text="Importe gravado"></asp:Label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-1"></div>
<div class="col-md-10 text-center">
<asp:Label ID="LblCCSysImporteGravado" runat="server" Text=""></asp:Label>
</div>
</div>
</asp:Panel>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<div id="ModalTablas" class="modal ADS fade" role="dialog">
<asp:UpdatePanel class="modal-dialog modal-lg" runat="server" ID="UpModalTablas" UpdateMode="Conditional">
@@ -3021,6 +3437,7 @@
<asp:UpdatePanel runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Button ID="BtnSobreRecibo" CssClass="BtnSobreRecibo hidden" OnClick="LnkSobreRecibo_Click" UseSubmitBehavior="false" runat="server" Text="Button" />
<asp:Button ID="BtnGenerateXml" CssClass="BtnGenerateXml hidden" OnClick="BtnGenerateXml_Click" UseSubmitBehavior="false" runat="server" Text="Button" />
<span class="ltlxml">
<asp:Literal ID="LtlXml" runat="server"></asp:Literal></span>
@@ -3135,6 +3552,12 @@
$('.TxtCvePeriodo').val(CvePeriodo);
$('.BtnGeneratepdf').click();
}
function GETSobreRecibo(CvePersonal, CvePeriodo) {
//alert("CvePeriodo:" + CvePersonal + " ,CvePeriodo:" + CvePeriodo)
$('.TxtCvePersonal').val(CvePersonal);
$('.TxtCvePeriodo').val(CvePeriodo);
$('.BtnSobreRecibo').click();
}
function GETXML(CvePersonal, CvePeriodo) {
//alert("CvePeriodo:" + CvePersonal + " ,CvePeriodo:" + CvePeriodo)
$('.TxtCvePersonal').val(CvePersonal);

View File

@@ -378,7 +378,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
{
int CvePeriodo = DdlPeriodo.SelectedValue.ToEntero();
LnkConsultar.Visible = (CvePeriodo > 0);
UPFiltros.Update();
UPFiltros.Update();
}
#endregion
#region Datos
@@ -452,8 +452,8 @@ public partial class Nomina_Nomina2 : ClsPaginas
if (dtempleados != null)
{
LnkTimbrarTodos.Visible = (dtempleados.Rows.Count > 0 &&
dtempleados.COUNT("CvePersonal", "SeTimbro=0 AND CvePersonal >0 AND NomAutorizado =1") > 0);
LnkTimbrarTodos.Visible = (dtempleados.Rows.Count > 0 &&
dtempleados.COUNT("CvePersonal", "SeTimbro=0 AND CvePersonal >0 AND NomAutorizado =1") > 0);
}
}
@@ -551,39 +551,39 @@ public partial class Nomina_Nomina2 : ClsPaginas
}
if (Chkobligaciones.Checked)
{
foreach (DataRow row in dtConceptos.FiltraParametros("Tipo IN ('O') AND EsPadre = 1 ").Rows)
{
int CveConcepto = row["CveConcepto"].ToString().ToEntero();
int SoloVisible = row["SoloVisible"].ToString().ToEntero();
string Concepto = row["Concepto"].ToString();
GvNominas.Columns[CurrentColumn].ItemStyle.BackColor = System.Drawing.Color.Transparent;
GvNominas.Columns[CurrentColumn].ItemStyle.CssClass = " ";
GvNominas.Columns[CurrentColumn].HeaderStyle.CssClass = " ";
if (SoloVisible == 1)
foreach (DataRow row in dtConceptos.FiltraParametros("Tipo IN ('O') AND EsPadre = 1 ").Rows)
{
GvNominas.Columns[CurrentColumn].HeaderStyle.CssClass = "isOnlyVisible ";
}
GvNominas.Columns[CurrentColumn].Visible = (dtempleados.SUM(string.Format("[V_{0}]", CveConcepto)) != 0);
bf = (BoundField)GvNominas.Columns[CurrentColumn];
bf.DataField = string.Format("V_{0}", CveConcepto);
bf.HeaderText = Concepto;
int CveConcepto = row["CveConcepto"].ToString().ToEntero();
int SoloVisible = row["SoloVisible"].ToString().ToEntero();
string Concepto = row["Concepto"].ToString();
GvNominas.Columns[CurrentColumn].ItemStyle.BackColor = System.Drawing.Color.Transparent;
GvNominas.Columns[CurrentColumn].ItemStyle.CssClass = " ";
GvNominas.Columns[CurrentColumn].HeaderStyle.CssClass = " ";
if (SoloVisible == 1)
{
GvNominas.Columns[CurrentColumn].HeaderStyle.CssClass = "isOnlyVisible ";
}
GvNominas.Columns[CurrentColumn].Visible = (dtempleados.SUM(string.Format("[V_{0}]", CveConcepto)) != 0);
bf = (BoundField)GvNominas.Columns[CurrentColumn];
bf.DataField = string.Format("V_{0}", CveConcepto);
bf.HeaderText = Concepto;
if (GvNominas.Columns[CurrentColumn].Visible)
if (GvNominas.Columns[CurrentColumn].Visible)
{
CurrentColumn++;
}
}
if (true)
{
BoundField field = (BoundField)GvNominas.Columns[CurrentColumn];
field.HeaderText = "Obligaciones";
field.DataField = "SumaObligaciones";
field.ItemStyle.BackColor = System.Drawing.Color.LightGray;
GvNominas.Columns[CurrentColumn].ItemStyle.CssClass = " ";
GvNominas.Columns[CurrentColumn].HeaderStyle.CssClass = " ";
GvNominas.Columns[CurrentColumn].Visible = true;
CurrentColumn++;
}
}
if (true)
{
BoundField field = (BoundField)GvNominas.Columns[CurrentColumn];
field.HeaderText = "Obligaciones";
field.DataField = "SumaObligaciones";
field.ItemStyle.BackColor = System.Drawing.Color.LightGray;
GvNominas.Columns[CurrentColumn].ItemStyle.CssClass = " ";
GvNominas.Columns[CurrentColumn].HeaderStyle.CssClass = " ";
GvNominas.Columns[CurrentColumn].Visible = true;
CurrentColumn++;
}
}
@@ -969,6 +969,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
string Turno = e.Row.DataKey("Turno").ToString();
string Departamento = e.Row.DataKey("Departamento").ToString();
string SubProyecto = e.Row.DataKey("SubProyecto").ToString();
e.Row.FCHyperLink("LnkSobreRecibo").Attributes.Add("onclick", string.Format("GETSobreRecibo({0},{1})", cvePersonal, CvePeriodo));
LnkTimbrar.Visible = false;
if (cvePersonal > 0)
{
@@ -1126,13 +1127,23 @@ public partial class Nomina_Nomina2 : ClsPaginas
int CvePersonal = gvRow.DataKey("CvePersonal").ToEntero();
int CveNomina = gvRow.DataKey("CveNomina").ToEntero();
LogicNominas lognom = new LogicNominas();
//Usuario UsuarioActual = null;
//using(ClsSisUsuarios ObjUsuario= new ClsSisUsuarios())
//{
// UsuarioActual =ObjUsuario.ValidaUsuario("jcaudillo", Encripta("45makako45"), "-1", 1);
//}
//CreaObjetoEmpresa(ref UsuarioActual);
//UsuarioActual.CveEmpresa = this.UsuarioActual.CveEmpresa;
Usuario UsuarioActual = null;
if (EsProduccion ==false)
{
//Usuario UsuarioActual = null;
using (ClsSisUsuarios ObjUsuario = new ClsSisUsuarios())
{
UsuarioActual = ObjUsuario.ValidaUsuario("jcaudillo", Encripta("45makako45"), "-1", 1);
}
CreaObjetoEmpresa(ref UsuarioActual);
UsuarioActual.CveEmpresa = this.UsuarioActual.CveEmpresa;
}
else
{
UsuarioActual = this.UsuarioActual;
}
string Msg = lognom.TimbrarNomina(CveNomina, CvePersonal, CvePeriodo, UsuarioActual);
if (Msg != null && Msg.Length > 0)
{ Alert(string.Format("El empleado no se pudo timbrar, el sat nos devolvio el siguiente mensaje:<br/>{0}", Msg), TipoMensaje.MsgAdvertencia); }
@@ -1619,7 +1630,8 @@ public partial class Nomina_Nomina2 : ClsPaginas
#endregion
protected void LnkSobreRecibo_Click(object sender, EventArgs e)
{
GridViewRow gvrow = (GridViewRow)(((LinkButton)sender).NamingContainer);
//GridViewRow gvrow = (GridViewRow)(((LinkButton)sender).NamingContainer);
TxtVacDiasPago.Text = "0";
LnkSRVacacionesADD.Visible = false;
if (DdlCtaContable.Items.Count == 0)
{
@@ -1630,7 +1642,6 @@ public partial class Nomina_Nomina2 : ClsPaginas
{
if (ObjConta.GetCuentas(-1, "-1", -1, UsuarioActual.CveEmpresa))
{
DdlCtaContable.DataSource = ObjConta.DtResultados;
DdlCtaContable.DataBind();
}
@@ -1653,21 +1664,39 @@ public partial class Nomina_Nomina2 : ClsPaginas
DdlCtaContable.Items.Insert(0, new ListItem("Seleccione", "-1"));
DdlCtaContable.SelectedValueExist("-1");
}
string Nombre = gvrow.DataKey("Nombre").ToString();
SRCvePersonal = gvrow.DataKey("CvePersonal").ToEntero();
SRCvePeriodo = gvrow.DataKey("CvePeriodo").ToEntero();
int CveNomina = gvrow.DataKey("CveNomina").ToEntero();
NomAutorizado = gvrow.DataKey("NomAutorizado").ToUpper().Contiene(new string[] { "1", "TRUE" });
//SRCvePersonal = gvrow.DataKey("CvePersonal").ToEntero();
//string Nombre = gvrow.DataKey("Nombre").ToString();
//SRCvePeriodo = gvrow.DataKey("CvePeriodo").ToEntero();
//int CveNomina = gvrow.DataKey("CveNomina").ToEntero();
//NomAutorizado = gvrow.DataKey("NomAutorizado").ToUpper().Contiene(new string[] { "1", "TRUE" });
SRCvePersonal = TxtCvePersonal.Text.ToEntero();
DataRow drow = dtempleados.FiltroPrimero(string.Format("CvePersonal = {0}", SRCvePersonal));
string Nombre = "";
SRCvePeriodo = 0;
int CveNomina = 0;
NomAutorizado = false;
if (drow != null)
{
Nombre = drow["Nombre"].ToString();
SRCvePeriodo = drow["CvePeriodo"].ToString().ToEntero();
CveNomina = drow["CveNomina"].ToString().ToEntero();
NomAutorizado = drow["NomAutorizado"].ToString().ToUpper().Contiene(new string[] { "1", "TRUE" });
}
cargaBitacora();
using (ClsNominas nom = new ClsNominas())
{
if (nom.GetNom_Nominas(CveNomina, SRCvePersonal, SRCvePeriodo, -1, UsuarioActual.CveEmpresa) && nom.DtResultados.Rows.Count > 0)
{
DataRow drow = nom.DtResultados.Rows[0];
ChkMetodoPago.Checked = drow["MetodoPagoFijo"].ToString().ToUpper().Contiene(new string[] { "1", "TRUE" });
DdlMetodoPago.SelectedValueExist(drow["CveMetodoPago"].ToString());
DdlBanco.SelectedValueExist(drow["CveSATBanco"].ToString());
TxtBancoNumCuenta.Text = drow["BancoNumCuenta"].ToString();
TxtCLABE.Text = drow["CLABE"].ToString();
DataRow drownom = nom.DtResultados.Rows[0];
ChkMetodoPago.Checked = drownom["MetodoPagoFijo"].ToString().ToUpper().Contiene(new string[] { "1", "TRUE" });
DdlMetodoPago.SelectedValueExist(drownom["CveMetodoPago"].ToString());
DdlBanco.SelectedValueExist(drownom["CveSATBanco"].ToString());
TxtBancoNumCuenta.Text = drownom["BancoNumCuenta"].ToString();
TxtCLABE.Text = drownom["CLABE"].ToString();
}
}
LblEmpleado.Text = Nombre;
@@ -1680,7 +1709,166 @@ public partial class Nomina_Nomina2 : ClsPaginas
CargaPersonalIncapacidad();
RegistraScript("$('#ModalConceptos').modal();");
}
#region "CalculosSistema"
private void showModalCalculo()
{
DataRow drow = dtempleados.FiltroPrimero(string.Format("CvePersonal = {0}", SRCvePersonal));
TxtCCSysSalarioMinimo.Text = "";
TxtCCSysUMA.Text = "$89.62";
if (drow != null)
{
TxtCCSysSalarioMinimo.Text = string.Format("${0:N2}", drow["SalarioMinimo"]);
}
UpModalCalculos.Update();
RegistraScript("$('#ModalCalculosSys').modal();");
}
public void showhidepnlscalculo(int concepto)
{
PnlIMSSV.Visible = false;
PnlIMSSF.Visible = false;
PnlHorasExtras.Visible = false;
PnlHorasExtrasF.Visible = false;
LblcalculoTitulos.Text = "";
switch (concepto)
{
case 1:
LblcalculoTitulos.Text = "<i class='icon-bulb'></i> Calculo conceptos IMSS";
PnlIMSSV.Visible = true;
PnlIMSSF.Visible = true;
break;
case 2:
LblcalculoTitulos.Text = "<i class='icon-bulb'></i> Calculo de importe gravado(horas extras)";
PnlHorasExtras.Visible = true;
PnlHorasExtrasF.Visible = true;
break;
default:
break;
}
}
protected void LnkCalculoIMSS_Click(object sender, EventArgs e)
{
TxtCCSysDiasIMSS.Text = "";
TxtCCSysSalarioBC.Text = "";
DataRow drow = dtempleados.FiltroPrimero(string.Format("CvePersonal = {0}", SRCvePersonal));
if (drow != null)
{
int Fechafin = string.Format("{0:yyyyMMdd}", drow["FechaFin"]).ToEntero();
decimal UMA = 89.62M;
decimal SalarioDiarioIMSS = drow["SalarioDiarioIMSS"].ToString().ToDecimal();
decimal DiasIMSS = drow["DiasIMSS"].ToString().ToDecimal();
decimal importeparacuota = SalarioDiarioIMSS > (3 * UMA) ? SalarioDiarioIMSS - (3 * UMA) : 0M;
decimal CuotaExcedente = (DiasIMSS * 0.004M) * (importeparacuota > (25M * UMA) ? (25M * UMA) : importeparacuota);
decimal PrestacionesDinero = (DiasIMSS * 0.0025M) * SalarioDiarioIMSS;
decimal GastosMedicos = (DiasIMSS * (Fechafin > 20210831 ? 0.00375M : 0.0038M)) * SalarioDiarioIMSS;
decimal retenfermadMaterObrero = CuotaExcedente + PrestacionesDinero + GastosMedicos;
decimal RetInvYVida = (DiasIMSS * 0.00625M) * SalarioDiarioIMSS;
decimal RetCesentia = (DiasIMSS * 0.01125M) * SalarioDiarioIMSS;
decimal IMSS = retenfermadMaterObrero + RetInvYVida + RetCesentia;
TxtCCSysDiasIMSS.Text = string.Format("{0:N0}", DiasIMSS);
TxtCCSysSalarioBC.Text = string.Format("${0:N4}", drow["SalarioDiarioIMSS"]);
LblCCSysImporteCuotaExcedente.Text = string.Format("<pre class='text-center'> SI( [Salario base cotización] > (3 *[UMA]), [Salario base cotización] - (3 *[UMA]) , 0)\n SI({0}>(3*{1}), {0}-(3*{1}), 0 ) </pre>", SalarioDiarioIMSS, UMA);
TxtCCSysImporteCuotaExcedente.Text = string.Format("{0:N4}", importeparacuota);
LblCCSysCuotaExcedente.Text = string.Format("<pre class='text-center'>(0.004 * [Días IMSS]) * SI( [Importe cuota e.] > (25 *[UMA]), (25 *[UMA]) , [Importe cuota e.] )\n SI( {0} > (25*{1}), (25*{1}), {0}) </pre>", importeparacuota, UMA);
TxtCCSysCuotaExcedente.Text = string.Format("{0:N2}", CuotaExcedente);
LblCCSysPrestacionesenDinero.Text = string.Format("<pre class='text-center'> 0.0025 * [Días IMSS] * [Salario base cotización] \n 0.0025 * {1:#} * {0:#.0000}", SalarioDiarioIMSS, DiasIMSS);
TxtCCSysPrestacionesenDinero.Text = string.Format("{0:N2}", PrestacionesDinero);
LblCCSysGastosMedicos.Text = string.Format("<pre class='text-center'> 0.00375 * [Días IMSS] * [Salario base cotización] \n 0.00375 * {1:#} * {0:#.0000}", SalarioDiarioIMSS, DiasIMSS);
TxtCCSysGastosMedicos.Text = string.Format("{0:N2}", GastosMedicos);
LblCCSysRetEnfYMatOb.Text = string.Format("<pre class='text-center'> [Cuota excedente] + [Prestaciones en dinero] + [Gastos médicos pensionados] \n {0:#.00} + {1:#.00} + {2}:#.00", CuotaExcedente, PrestacionesDinero, GastosMedicos);
TxtCCSysRetEnfYMatOb.Text = string.Format("{0:N2}", retenfermadMaterObrero);
LblCCSysRetInvYVida.Text = string.Format("<pre class='text-center'> 0.00625 * [Días IMSS] * [Salario base cotización] \n 0.00625 * {1:#} * {0:#.0000}", SalarioDiarioIMSS, DiasIMSS);
TxtCCSysRetInvYVida.Text = string.Format("{0:N2}", RetInvYVida);
LblCCSysRetCesentia.Text = string.Format("<pre class='text-center'> 0.01125 * [Días IMSS] * [Salario base cotización] \n 0.01125 * {1:#} * {0:#.0000}", SalarioDiarioIMSS, DiasIMSS);
TxtCCSysRetCesentia.Text = string.Format("{0:N2}", RetCesentia);
LblCCSysImporteIMSS.Text = string.Format("<pre> [Ret. Enf. y Mat. obrero] + [Ret. Inv. y vida] + [Ret. Cesantia] \n {0:#.00} + {1:#.00} + {2:#.00}", retenfermadMaterObrero, RetInvYVida, RetCesentia);
TxtCCSysImporteIMSS.Text = string.Format("{0:N2}", IMSS);
}
showhidepnlscalculo(1);
showModalCalculo();
}
protected void LnkCalculoHorasExtras_Click(object sender, EventArgs e)
{
showhidepnlscalculo(2);
//AreaGeografica HorasDobles HorasTriples
TxtCCSysHorasDobles.Text = "";
TxtCCSysHorasTriples.Text = "";
TxtCCSysDiasLaborados.Text = "";
DataRow drow = dtempleados.FiltroPrimero(string.Format("CvePersonal = {0}", SRCvePersonal));
if (drow != null)
{
decimal UMA = 89.62M;
decimal HorasDobles = drow["HorasDobles"].ToString().ToDecimal();
decimal HorasTriples = drow["HorasTriples"].ToString().ToDecimal();
decimal ImporteHora = drow["SalarioDiario"].ToString().ToDecimal() / 8;
decimal Semanaslaboradas = Decimal.Truncate((drow["DiasLaborados"].ToString().ToDecimal() / 7));
bool seExentandobles = !(drow["SalarioDiario"].ToString().ToDecimal() > drow["SalarioMinimo"].ToString().ToDecimal());
decimal TopeHorasDobles = Semanaslaboradas * 9;
decimal HorasExcentas = HorasDobles > TopeHorasDobles ? TopeHorasDobles : HorasDobles;
decimal ImporteHorasExtrasAntes = HorasExcentas * ImporteHora * (seExentandobles ? 2 : 1);
decimal TopeImporte = Semanaslaboradas * 5 * UMA;
decimal ImporteHorasExtras = ImporteHorasExtrasAntes > TopeImporte ? TopeImporte : ImporteHorasExtrasAntes;
decimal TotalHorasextras = ImporteHora * ((HorasDobles * 2) + (HorasTriples * 3));
TxtCCSysHorasDobles.Text = string.Format("{0:N2}", HorasDobles);
TxtCCSysHorasTriples.Text = string.Format("{0:N2}", HorasTriples);
TxtCCSysSalarioDiario.Text = string.Format("${0:N2}", drow["SalarioDiario"]);
TxtCCSysDiasLaborados.Text = string.Format("{0:N0}", drow["DiasLaborados"]);
TxtCCSysImporteHora.Text = string.Format("${0:N2}", ImporteHora);
LblCCSysSeExcentanDobles.Text = string.Format("<pre> SI( [Salario diario({0:N2})] > [Salario mínimo({1:N2})], \"No\", \"Sí\" ) </pre>", drow["SalarioDiario"], drow["SalarioMinimo"]);
TxtCCSysSeExcentanDobles.Text = seExentandobles ? "Sí" : "No";
LblCCSysTopeHorasDobles.Text = string.Format("<pre> [Semanas laboradas({0:N0})] * 9 </pre>", Semanaslaboradas);
TxtCCSysTopeHorasDobles.Text = string.Format("{0:N0}", Semanaslaboradas * 9);
LblCCSysHorasExcentas.Text = string.Format("<pre> SI( [Horas dobles({0:N0})] > [Tope horas({1:N0})], [Tope horas({1:N0})] , [Horas dobles({0:N0})]) </pre>", HorasDobles, TopeHorasDobles);
TxtCCSysHorasExcentas.Text = string.Format("{0:N0}", HorasExcentas);
LblCCSysImporteExentoAntesTope.Text = string.Format("<pre> [Horas exentas] * [Importe hora] * Si([se exentan dobles] , 2, 1) </pre>", Semanaslaboradas, UMA);
TxtCCSysImporteExentoAntesTope.Text = string.Format("{0:N2}", ImporteHorasExtrasAntes);
LblCCSysTopeImporte.Text = string.Format("<pre> [Semanas laboradas({0:N0})] * 5 * [UMA({1:N2})] </pre>", Semanaslaboradas, UMA);
TxtCCSysTopeImporte.Text = string.Format("{0:N2}", TopeImporte);
LblCCSysImporteExento.Text = string.Format("<pre>SI( [Importe exento(antes del tope)({0:N2})] > [Tope importe({1:N2})],\n[Tope importe({1:N2})] ,\n [Importe exento(antes del tope)({0:N2})]) </pre>", ImporteHorasExtrasAntes, TopeImporte);
TxtCCSysImporteExento.Text = string.Format("{0:N2}", ImporteHorasExtras);
LblCCSysImporteGravado.Text = string.Format("<pre> [Total horas extras({0:N2})] - [Importe exento({1:N2})] </pre>", TotalHorasextras, ImporteHorasExtras);
TxtCCSysImporteGravado.Text = string.Format("{0:N2}", TotalHorasextras - ImporteHorasExtras);
}
showModalCalculo();
}
protected void LnkCalculoSubsidio_Click(object sender, EventArgs e)
{
showhidepnlscalculo(3);
showModalCalculo();
}
protected void LnkCalculoISR_Click(object sender, EventArgs e)
{
showhidepnlscalculo(4);
showModalCalculo();
}
#endregion
#region Vacaciones
protected int CvePersonalVacaciones
{
@@ -1726,6 +1914,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
PnlVacFechapago.Visible = false;
PnlVacDiasPago.Visible = false;
PnlVacChecks.Visible = false;
TxtVacDiasPago.Text = "0";
switch (DdlFormapagovacaciones.SelectedValue.ToEntero())
{
case 1://Pagar en fecha
@@ -1753,8 +1942,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
PnlVacChecks.Visible = true;
break;
case 5://Solo disfrutar
PnlVacFechapago.Visible = true;
PnlVacDiasPago.Visible = true;
PnlVacfechas.Visible = true;
break;
case 6://Solo prima
PnlVacFechapago.Visible = true;
@@ -1808,7 +1996,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
// Dim continuar As Boolean = objRH.SolicitudVacacionesAdd(CvePersonal, fInicio, fFin, 0, UsuarioActual.CveUsuario, VacCveSupervisor, VacFolioActual, motivoVacaciones)
bool continuar = objRH.SolicitudVacacionesAdd(SRCvePersonal, fInicio, fFin, 0, UsuarioActual.CveUsuario, VacCveSupervisor, VacFolioActual, FechaPago: fechapago,
diasinabiles: diasinhabil, CveTipoPago: DdlFormapagovacaciones.SelectedValue.ToEntero(), diasExtras: TxtVacDiasExtra.Text.ToEntero(),
Ejercicio: TxtVacEjercicio.Text.ToEntero(), PrimaVacacional:(ChkVacPrimaVacacional.Checked?1:0),CobrarImss: (ChkVacCobrarIMSS.Checked ? 1 : 0), diasPago: TxtVacDiasPago.Text.ToEntero()
Ejercicio: TxtVacEjercicio.Text.ToEntero(), PrimaVacacional: (ChkVacPrimaVacacional.Checked ? 1 : 0), CobrarImss: (ChkVacCobrarIMSS.Checked ? 1 : 0), diasPago: TxtVacDiasPago.Text.ToEntero()
);
if (objRH.DtResultados.Rows.Count > 0)
{
@@ -2019,7 +2207,19 @@ public partial class Nomina_Nomina2 : ClsPaginas
Alert("No se encontro el Formato, favor de revisarlo con soporte tecnico.", TipoMensaje.MsgAdvertencia);*/
}
#endregion
public void cargaBitacora()
{
using (ClsGenerales ObjGral = new ClsGenerales())
{
if (ObjGral.GetHistorialBitacora(-1, -1, -1, -1, -1, -1, -1, UsuarioActual.CveEmpresa, CvePersonal: SRCvePersonal, CvePeriodo: SRCvePeriodo))
{
GvBitacora.DataSource = ObjGral.DtResultados;
GvBitacora.DataBind();
}
}
}
protected void LnkImportexCalculo_Click(object sender, EventArgs e)
{
@@ -2147,7 +2347,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
TxtmcImporte.Text = "";
TxtmcImporteGrabado.Text = "";
Txtmcvalor.Text = "";
ChkCalAutomaticoG.Checked = false;
ChkCalAutomaticoG.Checked = false;
ChkCalAutomatico.Checked = false;
ChkCalAutomaticoV.Checked = false;
if (CveConcepto > 0)
@@ -2208,7 +2408,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
}
protected void BtnAceptarMC_Click(object sender, EventArgs e)
{
int chkImporte = ChkCalAutomatico.Checked? 0:1;
int chkImporte = ChkCalAutomatico.Checked ? 0 : 1;
int chkImporteGravado = ChkCalAutomaticoG.Checked ? 0 : 1;
int chkImporteValor = ChkCalAutomaticoV.Checked ? 0 : 1;
bool continuar = true;
@@ -2222,91 +2422,91 @@ public partial class Nomina_Nomina2 : ClsPaginas
CvePersonal = DdlmcPersonal.SelectedValue.ToEntero();
}
int CveConcepto = DdlmcConceptos.SelectedValue.ToEntero();
decimal ImporteConcepto = TxtmcImporte.Text.Replace("$", "").Replace(",", "").ToDecimal();
decimal ImporteGravadoConcepto = ChkCalAutomaticoG.Checked ? 0.0m : TxtmcImporteGrabado.Text.Replace("$", "").Replace(",", "").ToDecimal();
decimal ImporteExentoConcepto = ImporteConcepto - ImporteGravadoConcepto;
decimal ImporteValor = Txtmcvalor.Text.Replace("$", "").Replace(",", "").ToDecimal();
if ((ImporteConcepto>= 0 && ImporteGravadoConcepto<= ImporteConcepto)|| (ImporteConcepto < 0 && ImporteGravadoConcepto >= ImporteConcepto))
decimal ImporteConcepto = TxtmcImporte.Text.Replace("$", "").Replace(",", "").ToDecimal();
decimal ImporteGravadoConcepto = ChkCalAutomaticoG.Checked ? 0.0m : TxtmcImporteGrabado.Text.Replace("$", "").Replace(",", "").ToDecimal();
decimal ImporteExentoConcepto = ImporteConcepto - ImporteGravadoConcepto;
decimal ImporteValor = Txtmcvalor.Text.Replace("$", "").Replace(",", "").ToDecimal();
if ((ImporteConcepto >= 0 && ImporteGravadoConcepto <= ImporteConcepto) || (ImporteConcepto < 0 && ImporteGravadoConcepto >= ImporteConcepto))
{
if (CveConcepto > 0 && CvePersonal > 0)
{
using (ClsNominas objNomina = new ClsNominas())
if (CveConcepto > 0 && CvePersonal > 0)
{
if (continuar)
using (ClsNominas objNomina = new ClsNominas())
{
if (objNomina.GetNom_Nominas(-1, CvePersonal, CvePeriodoSeleccionado, -1, UsuarioActual.CveEmpresa))
if (continuar)
{
if (objNomina.DtResultados.Rows.Count > 0)
if (objNomina.GetNom_Nominas(-1, CvePersonal, CvePeriodoSeleccionado, -1, UsuarioActual.CveEmpresa))
{
CveNomina = objNomina.CveNomina;
}
else
{
if (objNomina.AddNom_Nominas(-1, 1, CvePersonal, CvePeriodoSeleccionado, Total, 0, 0, Total, CveMoneda, 1, CveMetodoPago, DateTime.Now, "Deducciones nómina",
"", "", "", "", 0, 0, 0, new DateTime(), new DateTime(), new DateTime(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, false))
if (objNomina.DtResultados.Rows.Count > 0)
{
CveNomina = objNomina.CveNomina;
}
else
{
if (objNomina.AddNom_Nominas(-1, 1, CvePersonal, CvePeriodoSeleccionado, Total, 0, 0, Total, CveMoneda, 1, CveMetodoPago, DateTime.Now, "Deducciones nómina",
"", "", "", "", 0, 0, 0, new DateTime(), new DateTime(), new DateTime(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, false))
{
CveNomina = objNomina.CveNomina;
}
else
{
continuar = false;
}
}
}
}
if (CveNomina == 0)
{
continuar = false;
}
if (continuar)
{
if (continuar)
{
if (!objNomina.AddUPNom_NominasDetalles(CveNomina, CvePeriodoSeleccionado, CvePersonal, CveConcepto, ImporteConcepto, ImporteGravadoConcepto, ImporteExentoConcepto, ImporteValor, UsuarioActual.CveUsuario, true, chkImporte, chkImporteGravado, chkImporteValor))
{
continuar = false;
}
}
}
}
if (CveNomina == 0)
{
continuar = false;
}
if (continuar)
{
cargaDatos();
cargaBitacora();
if (continuar)
{
cargasobrericiboconceptos();
UpModalConceptos.Update();
RegistraScript("$('#ModalUpConcepto').modal('hide');");
Alert("El cambio se ha guardado correctamente.");
if (!objNomina.AddUPNom_NominasDetalles(CveNomina, CvePeriodoSeleccionado, CvePersonal, CveConcepto, ImporteConcepto, ImporteGravadoConcepto, ImporteExentoConcepto, ImporteValor, UsuarioActual.CveUsuario, true, chkImporte, chkImporteGravado, chkImporteValor))
{
continuar = false;
}
}
}
}
if (continuar)
{
cargaDatos();
cargasobrericiboconceptos();
UpModalConceptos.Update();
RegistraScript("$('#ModalUpConcepto').modal('hide');");
Alert("El cambio se ha guardado correctamente.");
}
}
else
{
if (CveConcepto > 0)
{
Alert("Debe seleccionar un empleado.", TipoMensaje.MsgAdvertencia);
}
else
{
Alert("Debe seleccionar un concepto.", TipoMensaje.MsgAdvertencia);
}
if (CveConcepto > 0)
{
Alert("Debe seleccionar un empleado.", TipoMensaje.MsgAdvertencia);
}
else
{
Alert("Debe seleccionar un concepto.", TipoMensaje.MsgAdvertencia);
}
}
}
else
{
Alert("el importe gravado no puede ser mayor al importe total, en caso de que el importe total sea negativo no puede ser menor.",TipoMensaje.MsgAdvertencia );
Alert("el importe gravado no puede ser mayor al importe total, en caso de que el importe total sea negativo no puede ser menor.", TipoMensaje.MsgAdvertencia);
}
}
private void mostrarConceptos()
{
@@ -2378,7 +2578,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
LblSRSbc.Text = SalarioDiarioIMSS;
#endregion
cargasobrericiboconceptos();
cargasobrericiboconceptos();
#region "Infonavit"
{
using (ClsRH objper = new ClsRH())
@@ -2461,7 +2661,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
&& (dtempleadosConceptos.COUNT("CveConcepto", string.Format("CveConcepto={0} AND CvePersonal ={1} AND Estatus =2", CveConcepto, SRCvePersonal)) == 0)
)
{
if(!row["CveSistema"].ToString().ToEntero().Contiene(new int[] { 20,21,112,202, 203,204,205,206,207,50,51 }))
if (!row["CveSistema"].ToString().ToEntero().Contiene(new int[] { 20, 21, 112, 202, 203, 204, 205, 206, 207, 50, 51 }))
{
BorradoLogico = 1;
}
@@ -4913,7 +5113,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
DataRow drow = dt.NewRow();
drow["CveConcepto"] = "-1";
drow["Concepto"] = "Seleccione";
dt.Rows.InsertAt(drow,0);
dt.Rows.InsertAt(drow, 0);
DdlConcepto.DataSource = dt;
DdlConcepto.SelectedValueExist("-1");
DdlConcepto.DataBind();
@@ -5103,7 +5303,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
using (ClsNominas objNomina = new ClsNominas())
{
if (objNomina.GetPeriodos(-1, UsuarioActual.CveEmpresa, -1, -1, CvePeriodoSeleccionado) && objNomina.DtResultados.Rows.Count >0)
if (objNomina.GetPeriodos(-1, UsuarioActual.CveEmpresa, -1, -1, CvePeriodoSeleccionado) && objNomina.DtResultados.Rows.Count > 0)
{
DataRow drow = objNomina.DtResultados.Rows[0];
int Estatus = drow["Estatus"].ToString().ToEntero();
@@ -5193,12 +5393,12 @@ public partial class Nomina_Nomina2 : ClsPaginas
CveConcepto = rcon["CveConcepto"].ToString().ToEntero();
ImporteConcepto = rcon["Importe"].ToString().ToDecimal();
ImporteGravadoConcepto = rcon["ImporteGravado"].ToString().ToDecimal();
ImporteExentoConcepto = ImporteConcepto - ImporteGravadoConcepto;
ImporteExentoConcepto = ImporteConcepto - ImporteGravadoConcepto;
ImporteValor = rcon["Valor"].ToString().ToDecimal();
if (continuar)
{
if (!objNomina.AddUPNom_NominasDetalles(CveNomina, CvePeriodoSeleccionado, CvePersonal, CveConcepto, ImporteConcepto, ImporteGravadoConcepto, ImporteExentoConcepto, ImporteValor, UsuarioActual.CveUsuario,false, chkImporte, chkImporteGravado, chkImporteValor))
if (!objNomina.AddUPNom_NominasDetalles(CveNomina, CvePeriodoSeleccionado, CvePersonal, CveConcepto, ImporteConcepto, ImporteGravadoConcepto, ImporteExentoConcepto, ImporteValor, UsuarioActual.CveUsuario, false, chkImporte, chkImporteGravado, chkImporteValor))
{
continuar = false;
}
@@ -5327,8 +5527,8 @@ public partial class Nomina_Nomina2 : ClsPaginas
if (objpersonal.AddAsistencia(CvePersonal, -1, DdlAsisSubProyecto.SelectedValue.ToEntero(), fecha, DdlTipoAsistencias.SelectedValue.ToEntero(), TxtPorPago.Text.Trim().ToDouble(), TxtHorasDobles.Text.Trim().ToDouble(),
TxtHorasTriples.Text.Trim().ToDouble(), DdlMotivoHoraExtra.SelectedValue.ToEntero(), TxtObservaciones.Text.Trim(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa))
{
Alert(string.Format("se ha guardado la asistencia satisfactoriamente <br/>{0}<br/>{1:dd/MM/yyyy}", TxtPersonal.Text, TxtasisFecha.Text.ToDate()),TipoMensaje.ToastInformacion);
RegistraScript("$('#DModalModAsistencia').modal('hide');");
Alert(string.Format("se ha guardado la asistencia satisfactoriamente <br/>{0}<br/>{1:dd/MM/yyyy}", TxtPersonal.Text, TxtasisFecha.Text.ToDate()), TipoMensaje.ToastInformacion);
RegistraScript("$('#DModalModAsistencia').modal('hide');");
}
}
@@ -6413,7 +6613,8 @@ public partial class Nomina_Nomina2 : ClsPaginas
}
}
DataTable Contasource;
DataTable ContaConceptossource;
protected void LnkRegistrarProvision_Click(object sender, EventArgs e)
{
using (ClsNominas objnom = new ClsNominas())
@@ -6441,6 +6642,50 @@ public partial class Nomina_Nomina2 : ClsPaginas
{
if (objnom.DTSetResultados.Tables.Count > 1)
{
using (ClsContabilidad ObjContaz = new ClsContabilidad())
{
if (ObjContaz.GetConta_ConceptosContables())
{
ContaConceptossource = ObjContaz.DtResultados;
}
}
if (UsuarioActual.Empresa.TipoContabilidad == 1)
{
using (ClsContabilidad ObjConta = new ClsContabilidad())
{
if (ObjConta.GetCuentas(-1, "-1", -1, UsuarioActual.CveEmpresa))
{
DdlCtaContable.DataSource = ObjConta.DtResultados;
DdlCtaContable.DataBind();
Contasource = ObjConta.DtResultados;
}
}
}
else
{
using (ClsContPAQi ObjConta = new ClsContPAQi(UsuarioActual.Empresa))
{
if (ObjConta.Conectado && ObjConta.GetCuentas(-1, "-1", 1))
{
Contasource = ObjConta.DtResultados;
DdlCtaContable.DataValueField = "Id";
DdlCtaContable.DataSource = ObjConta.DtResultados;
DdlCtaContable.DataBind();
}
}
}
DdlCtaContable.Items.Insert(0, new ListItem("Seleccione", "-1"));
DdlCtaContable.SelectedValueExist("-1");
GVProvision.DataSource = objnom.DTSetResultados.Tables[1];
GVProvision.DataBind();
RegistraScript("$('#ModalRegistraProvision').modal();");
UpRegistroProvision.Update();
/*
StringBuilder str = new StringBuilder();
str.Append("<table>");
str.Append("<tbody>");
@@ -6475,12 +6720,104 @@ public partial class Nomina_Nomina2 : ClsPaginas
str.Append("</tbody>");
str.Append("</table>");
Alert(string.Format("<div>no se pudo registrar la provisión, existen cuentas sin vincular.</div> {0}", str));
*/
}
}
}
}
}
protected void LnkGuardarConceptosProvision_Click(object sender, EventArgs e)
{
bool continuar = true;
DataTable dtconta = null;
using (ClsContabilidad ObjConta = new ClsContabilidad())
{
int CveProveedor = -1;
int CveClientes = -1;
int CveClasificacion = -1;
int CveAlmacen = -1;
if (ObjConta.GetCuentas(-1, "-1", -1, UsuarioActual.CveEmpresa))
{
dtconta = ObjConta.DtResultados;
}
ObjConta.IniciaTransacSQL();
foreach (GridViewRow gvrow in GVProvision.Rows)
{
int CveConceptoNomina = gvrow.DataKey("CveConcepto").ToEntero();
if (continuar && CveConceptoNomina > 0)
{
int CvePersonal = gvrow.DataKey("CvePersonal").ToEntero();
int CveconceptosContables = ((DropDownList)gvrow.FindControl("DdlCconceptosContables")).SelectedValue.ToEntero();
int Cve = ((DropDownList)gvrow.FindControl("Ddlcuentassd")).SelectedValue.ToEntero();
int CveCuenta = -1;
int IdCuentaContable = -1;
if (UsuarioActual.Empresa.TipoContabilidad == 1)
{
DataRow drcuenta = dtconta.FiltroPrimero(string.Format(" CveCuenta ={0}", Cve));
if (drcuenta != null)
{
IdCuentaContable = drcuenta["IdCompaq"].ToString().ToEntero();
}
CveCuenta = Cve;
}
else
{
DataRow drcuenta = dtconta.FiltroPrimero(string.Format("IdCompaq ={0}", Cve));
if (drcuenta != null)
{
CveCuenta = drcuenta["CveCuenta"].ToString().ToEntero();
}
IdCuentaContable = Cve;
}
if (CveconceptosContables > 0 && CveCuenta > 0)
{
if (!ObjConta.AddCuentasAsignaciones(CveconceptosContables, UsuarioActual.CveEmpresa, CveCuenta, IdCuentaContable, CveProveedor, CveClientes,
CvePersonal, CveClasificacion, CveAlmacen, -1, CveBancoCuenta: -1, CveConceptoNomina: CveConceptoNomina))
{ continuar = false; }
}
else { continuar = false; }
}
}
if (continuar)
{
ObjConta.Commit();
}
else
{
ObjConta.RollBack();
}
}
if (continuar)
{
Alert("las cuentas hán sido asignadas.");
RegistraScript("$('#ModalRegistraProvision').modal('hide');");
}
}
protected void GVProvision_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DropDownList ddllist = (DropDownList)e.Row.FindControl("Ddlcuentassd");
DropDownList DdlCconceptosContables = (DropDownList)e.Row.FindControl("DdlCconceptosContables");
DdlCconceptosContables.DataSource = ContaConceptossource;
DdlCconceptosContables.DataBind();
DdlCconceptosContables.SelectedValueExist("174");
ddllist.DataValueField = DdlCtaContable.DataValueField;
ddllist.DataSource = Contasource;
ddllist.DataBind();
ddllist.Items.Insert(0, new ListItem("Seleccione", "-1"));
ddllist.SelectedValueExist("-1");
}
}
protected void LnkupPrimaRiesgo_Click(object sender, EventArgs e)
{
@@ -6846,4 +7183,21 @@ public partial class Nomina_Nomina2 : ClsPaginas
Response.End();
}
protected void GvBitacora_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
for (int j = 0; j < e.Row.Cells.Count; j++)
{
string encoded = e.Row.Cells[j].Text;
e.Row.Cells[j].Text = Context.Server.HtmlDecode(encoded);
}
}
}
}

View File

@@ -655,7 +655,17 @@ public partial class Nomina_ReportedeAcumulados : ClsPaginas
libro.Range(4, 1, 4, column).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189));
System.IO.Stream fs = new System.IO.MemoryStream();
libro.Row(1).InsertRowsAbove(4);
libro.Range(1, 2, 1, 6).Merge().Value = UsuarioActual.Empresa.Empresa;
libro.Range(2, 2, 2, 6).Merge().Value = "Reporte de acumulados nómina";
libro.Range(1, 2, 2, 6).Style.Font.Bold = true; libro.Range(1, 2, 2, 6).Style.Font.FontSize = 16;
libro.Range(3, 2, 3, 6).Merge().Value = $"del {TxtRpdFechaInicio.Text.ToDateTime():dd/MM/yyyy} al {TxtRpdFechaFin.Text.ToDateTime():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}";
System.IO.Stream fs = new System.IO.MemoryStream();
wb.SaveAs(fs);
fs.Position = 0;
System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();