This commit is contained in:
JORGE LUIS CAUDILLO ESPARZA
2021-09-09 07:49:11 -07:00
parent 2ec1e51529
commit ea0fe043a5
12 changed files with 660 additions and 93 deletions

View File

@@ -2251,7 +2251,30 @@ Public Class ClsNominas
End Try
Return retorno
End Function
Public Function GetchecadorAdistencia(FechaInicio As DateTime, FechaFin As DateTime, CveEmpresa As Integer) As Boolean
Public Function AsistenciaDetallePorTurnoGet(FechaInicio As DateTime, FechaFin As DateTime, CveEmpresa As Integer, Optional CvePersonal As Integer = -1) As Boolean
Dim retorno As Boolean = False
Try
DTSet = New DataSet()
DataAdapter("PA_RH_AsistenciaDetallePorTurnoGet", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters
.Add("@FechaInicio", SqlDbType.DateTime).Value = FechaInicio
.Add("@FechaFin", SqlDbType.DateTime).Value = FechaFin
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
.Add("@CvePersonal", SqlDbType.Int).Value = CvePersonal
End With
SqlAdapter.Fill(DTSet)
retorno = True
Catch sqEx As SqlException
retorno = False
OnError("Ocurrió un error al obtener la asistenciadetalle.", sqEx, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
Catch ex As Exception
retorno = False
OnError("Ocurrió un error al obtener la asistenciadetalle.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return retorno
End Function
Public Function GetchecadorAsistencia(FechaInicio As DateTime, FechaFin As DateTime, CveEmpresa As Integer) As Boolean
Dim retorno As Boolean = False
Try
@@ -2266,10 +2289,10 @@ Public Class ClsNominas
retorno = True
Catch sqEx As SqlException
retorno = False
OnError("Ocurrió un error al Realizar el calculo de asistencia.", sqEx, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
OnError("Ocurrió un error al realizar el calculo de asistencia.", sqEx, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
Catch ex As Exception
retorno = False
OnError("Ocurrió un error al Realizar el calculo de asistencia.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
OnError("Ocurrió un error al realizar el calculo de asistencia.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return retorno
End Function

View File

@@ -3896,7 +3896,7 @@ Public Class ClsPaginas
If Application("GlobalSIGAppPaginas") Is Nothing Then
PaginaDict = New System.Collections.Hashtable
PaginaDict.Add("/Nomina/ChecadorAsistencia.aspx".ToUpper(), -1)
PaginaDict.Add("/Nomina/ChecadorAsistencia.aspx".ToUpper(), 921)
PaginaDict.Add("/Nomina/ISRCalculoAnual.aspx".ToUpper(), 918)
PaginaDict.Add("/Nomina/MovimientosSUA.aspx".ToUpper(), 919)
'PaginaDict.Add("/Nomina/Acumulados.aspx".ToUpper(), 916)

View File

@@ -2438,8 +2438,53 @@ chkAplicaVacacion As Boolean, chkAplicaIncapacidad As Boolean, chkAplicaRetardo
End Try
Return Retorno
End Function
Public Function UpAsistenciaDetalle(CveEmpresa As Integer, registros As List(Of RequestUpAsistenciaDetalle)) As Boolean
Dim Retorno As Boolean = False
Dim xmlProductos As System.Xml.Linq.XDocument = Nothing
If registros IsNot Nothing AndAlso registros.Count > 0 Then
xmlProductos = New System.Xml.Linq.XDocument(New System.Xml.Linq.XElement("registros", From x In registros Select New System.Xml.Linq.XElement("registro", New System.Xml.Linq.XElement("CveAsistenciaDetalle", x.CveAsistenciaDetalle), New System.Xml.Linq.XElement("CvePersonal", x.CvePersonal), New System.Xml.Linq.XElement("CveAsistenciasInasistencias", x.CveAsistenciasInasistencias), New System.Xml.Linq.XElement("CveSubProyecto", x.CveSubProyecto), New System.Xml.Linq.XElement("Fecha", x.Fecha))))
End If
Data = New DataTable
SqlDataAdapter("PA_RH_AsistenciaDetalleUP")
With SqlAdapter.SelectCommand.Parameters
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
.Add("@xmlRegistros", SqlDbType.Xml).Value = xmlProductos.ToString()
End With
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch Ex1 As SqlException
Me.OnError("Ocurrió un error al guardar la Asistencia.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
Catch ex As Exception
OnError("Ocurrió un error al guardar la Asistencia.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
End Try
Return Retorno
End Function
Public Function AddChecadorRegistro(CveEmpresa As Integer, registros As List(Of RequestAddChecadorRegistro)) As Boolean
Dim Retorno As Boolean = False
Dim xmlProductos As System.Xml.Linq.XDocument = Nothing
If registros IsNot Nothing AndAlso registros.Count > 0 Then
xmlProductos = New System.Xml.Linq.XDocument(New System.Xml.Linq.XElement("registros", From x In registros Select New System.Xml.Linq.XElement("registro", New System.Xml.Linq.XElement("CveChecador", x.CveChecador), New System.Xml.Linq.XElement("CvePersonal", x.CvePersonal), New System.Xml.Linq.XElement("ChecadorID", x.ChecadorID), New System.Xml.Linq.XElement("Fecha", x.Fecha))))
End If
Data = New DataTable
SqlDataAdapter("PA_RH_ChecadorAsistenciaAdd")
With SqlAdapter.SelectCommand.Parameters
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
.Add("@xmlRegistros", SqlDbType.Xml).Value = xmlProductos.ToString()
End With
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch Ex1 As SqlException
Me.OnError("Ocurrió un error al guardar la Asistencia.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
Catch ex As Exception
OnError("Ocurrió un error al guardar la Asistencia.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
End Try
Return Retorno
End Function
Public Function AddAsistenciaMasiva(CvePeriodo As Integer, CveUsuario As Integer, CveEmpresa As Integer) As Boolean
Dim Retorno As Boolean = False
@@ -7088,3 +7133,16 @@ chkAplicaVacacion As Boolean, chkAplicaIncapacidad As Boolean, chkAplicaRetardo
End Sub
#End Region
End Class
Public Class RequestAddChecadorRegistro
Public Property CveChecador As Integer
Public Property CvePersonal As Integer
Public Property ChecadorID As Integer
Public Property Fecha As DateTime
End Class
Public Class RequestUpAsistenciaDetalle
Public Property CveAsistenciaDetalle As Integer
Public Property Fecha As DateTime
Public Property CvePersonal As Integer
Public Property CveAsistenciasInasistencias As Integer
Public Property CveSubProyecto As Integer
End Class

102
General/ExcelToBD.aspx Normal file
View File

@@ -0,0 +1,102 @@
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="ExcelToBD.aspx.cs" Inherits="General_ExcelToBD" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
</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 runat="server" ID="UpDetallesDia" UpdateMode="Conditional">
<ContentTemplate>
<div class="row">
<div class="col-md-6">
<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">Paso 1: cargar plantilla </span>
</div>
<div class="tools">
<a href="javascript:;" class="collapse" data-original-title="" title=""></a>
</div>
</div>
<div class="portlet-body rowpadding ">
<asp:Label runat="server" Text="Label">ingrese el archivo a cargar</asp:Label>
<asp:TextBox ID="TxtArchivoXls" CssClass="ADSdropzone hidden" data-maxFilesize="100" runat="server"></asp:TextBox>
<div class="text-right">
<asp:LinkButton ID="LnkCargarArchivo" CssClass="btn btn-success" OnClick="LnkCargarArchivo_Click" runat="server">Cargar excel</asp:LinkButton>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<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">Paso 2: Configuración </span>
</div>
<div class="tools">
<asp:LinkButton ID="Lnkdoit" CssClass="btn btn-success" OnClick="Lnkdoit_Click" runat="server">Mostrar</asp:LinkButton>
<a href="javascript:;" class="collapse" data-original-title="" title=""></a>
</div>
</div>
<div class="portlet-body rowpadding ">
<div class="row">
<div class="col-md-6">
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlWorkBooks" runat="server" CssClass="select2me form-control" DataTextField="Name" DataValueField="position" OnSelectedIndexChanged="DdlWorkBooks_SelectedIndexChanged" AutoPostBack="true"></asp:DropDownList>
<asp:Label runat="server" AssociatedControlID="DdlWorkBooks" Text="Hoja Excel"></asp:Label>
</div>
</div>
<div class="col-md-6">
</div>
</div>
<div class="row">
<div class="col-md-3">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox CssClass="form-control" ID="TxtFilas" runat="server" Text="1" Enabled="false"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtFilas" type="number" Text="Filas"></asp:Label>
</div>
</div>
<div class="col-md-3">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox CssClass="form-control" ID="TxtInicia" runat="server" Text="1" Enabled="false"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtInicia" type="number" Text="Fila inicial"></asp:Label>
</div>
</div>
<div class="col-md-3">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox CssClass="form-control" ID="TxtColumnas" runat="server" Text="1" Enabled="false"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtColumnas" type="number" Text="Columnas"></asp:Label>
</div>
</div>
<div class="col-md-3">
<asp:CheckBox ID="chkcontieneTitulos" Checked="true" TextAlign="Left" Text="Contiene titulos:" runat="server" />
</div>
</div>
<div class="text-right">
<asp:LinkButton ID="LnkContinuar" OnClick="LnkContinuar_Click" runat="server">Continuar</asp:LinkButton>
</div>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

116
General/ExcelToBD.aspx.cs Normal file
View File

@@ -0,0 +1,116 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ClosedXML.Excel;
using Extensiones;
public partial class General_ExcelToBD : System.Web.UI.Page
{
#region propiedades
private string URLFile
{
get
{
if (ViewState["URLFile"] == null) { return ""; }
else { return ViewState["URLFile"].ToString(); }
}
set { ViewState["URLFile"] = value; }
}
private string extension
{
get
{
if (ViewState["extension"] == null) { return ""; }
else { return ViewState["extension"].ToString(); }
}
set { ViewState["extension"] = value; }
}
private List<ADSWorksBooks> workBooks
{
get
{
if (ViewState["workBooks"] == null) { return null; }
else { return (List<ADSWorksBooks>)ViewState["workBooks"]; }
}
set { ViewState["workBooks"] = value; }
}
#endregion
protected void Page_Load(object sender, EventArgs e)
{
}
protected void LnkCargarArchivo_Click(object sender, EventArgs e)
{
List<Archivo> filesgral = TxtArchivoXls.getfiles().Archivos;
workBooks = new List<ADSWorksBooks>();
foreach (Archivo fileItem in filesgral)
{
extension = System.IO.Path.GetExtension(string.Format(@"{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "");
URLFile = fileItem.FileUrl;
}
using (var workbook = new XLWorkbook(URLFile))
{
int position = 1;
foreach (IXLWorksheet wokitem in workbook.Worksheets)
{
workBooks.Add(new ADSWorksBooks() { Name = wokitem.Name, position = position++ });
}
}
DdlWorkBooks.DataSource = workBooks;
DdlWorkBooks.DataBind();
if (workBooks.Count > 0)
{
DdlWorkBooks.SelectedIndex = 0;
DdlWorkBooks_SelectedIndexChanged(null,null);
}
}
protected void DdlWorkBooks_SelectedIndexChanged(object sender, EventArgs e)
{
using (var workbook = new XLWorkbook(URLFile))
{
int Filas = 0;
int columnas = 0;
IXLWorksheet workSheet = workbook.Worksheet(DdlWorkBooks.SelectedValue.ToEntero());
Filas = workSheet.LastColumnUsed().CellCount();
columnas = workSheet.LastRowUsed().CellCount();
TxtFilas.Text = Filas.ToString();
TxtInicia.Text = "1";
TxtColumnas.Text = Filas.ToString();
}
}
protected void Lnkdoit_Click(object sender, EventArgs e)
{
}
protected void LnkContinuar_Click(object sender, EventArgs e)
{
int Filas = 0;
int columnas = 0;
using (var workbook = new XLWorkbook(URLFile))
{
IXLWorksheet workSheet = workbook.Worksheet(DdlWorkBooks.SelectedValue.ToEntero());
}
}
}
[Serializable]
public class ADSWorksBooks
{
public int position { get; set; }
public string Name { get; set; }
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -38,6 +38,9 @@
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
<li>
<asp:HyperLink ID="HypAgregarRegistro" data-toggle="modal" data-target="#DivAgregarRegistro" runat="server"><i class="fa fa-check"></i> Agregar registro</asp:HyperLink>
</li>
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server">
</asp:Content>
@@ -122,12 +125,15 @@
<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>
<h4 class="modal-title">Asistencia detalle</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-8">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox CssClass="form-control" ID="TxtEmpleadolabel" runat="server" Text="" Enabled="false"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="TxtEmpleadolabel" Text="Empleado"></asp:Label>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group form-md-line-input input-iconright">
@@ -142,74 +148,109 @@
</div>
</div>
</div>
<asp:GridView ID="GvAsistenciaUp" runat="server" DataKeyNames="CveAsistenciaDetalle,CveAsistenciasInasistencias,CvePersonal,CveSubProyecto,CveProyecto,CveTurno,Fecha" AutoGenerateColumns="false" ShowHeaderWhenEmpty="false" OnRowDataBound="GvAsistenciaUp_RowDataBound"
CssClass=" table table-striped table-advance table-hover Widthall" Style="text-align: center;" GridLines="None">
<Columns>
<asp:TemplateField HeaderText="Turno" ItemStyle-HorizontalAlign="Left" Visible="true">
<ItemTemplate>
<asp:Label runat="server" Width="150" Text='<%# Eval("Turno") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Asistencia" Visible="true">
<ItemTemplate>
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlTipoAsistencias" runat="server" CssClass="select2me form-control" DataTextField="Tipo" DataValueField="CveAsistenciasInasistencias"></asp:DropDownList>
</div>
</ItemTemplate>
</asp:TemplateField>
<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>
<asp:TemplateField HeaderText="Centro de costos" Visible="true">
<ItemTemplate>
<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 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 Text="Todos" Value="-1"></asp:ListItem>
</asp:DropDownList>
<asp:Label ID="LblAsisSubProyecto" Visible="false" AssociatedControlID="DdlAsisSubProyecto" runat="server" Text="SubProyecto:"></asp:Label>
</div>
</asp:Panel>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Panel ID="Panel1" Visible="false" runat="server">
<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 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="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 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="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 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="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>
</asp:Panel>
</div>
<div class="col-md-4">
<asp:GridView ID="GvDetalleDias" runat="server" AutoGenerateColumns="false" EmptyDataText="No se encontraron registros" with="150"
<asp:GridView ID="GvDetalleDias" runat="server" AutoGenerateColumns="false" EmptyDataText="No se encontraron registros"
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">
@@ -266,6 +307,51 @@
</asp:UpdatePanel>
</div>
</div>
<div id="DivAgregarRegistro" class="modal ADS fade" role="dialog">
<div class="modal-dialog " style="width: 600px;">
<asp:UpdatePanel runat="server" class="modal-content" ID="UpdatePanel1" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-header ">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Agregar registro</h4>
</div>
<div class="modal-body">
<div runat="server" id="PnlConceptoPersonal" class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlmcPersonal" DataTextField="CodigoNombreCompleto" DataValueField="CvePersonal" runat="server" Width="100%" AppendDataBoundItems="true" CssClass="form-control select2me">
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList>
<asp:Label runat="server" AssociatedControlID="DdlmcPersonal" Enabled="false" Text="Empleado"></asp:Label>
</div>
<div class="row">
<div class="col-md-6">
<label style="top: 0; margin-bottom: 0; font-size: 13px; color: #888888; display: block;">Fecha</label>
<div class="input-group input-sm date date-picker " data-date-format="dd/mm/yyyy hh:mm" style="display: inline-block; padding-left: 0px;">
<asp:TextBox ID="TxtFechaIngreso" runat="server" CssClass="form-control input-sm ADDateTimePicker" CausesValidation="true" MaxLength="18" Width="132px "></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVFechaIngreso" runat="server" ControlToValidate="txtFechaIngreso" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha Inicio''</b> es necesario, por favor seleccione uno." ValidationGroup="GrpFechas"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VcoFechaIngreso" runat="server" HighlightCssClass="vco" TargetControlID="RFVFechaIngreso" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
<div class="col-md-6">
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlChecador" runat="server" CssClass="select2me form-control" Width="100%" DataTextField="Checador" DataValueField="CveChecador"></asp:DropDownList>
<asp:Label runat="server" AssociatedControlID="DdlTipoAsistencias" Text="Asistencia"></asp:Label>
</div>
</div>
</div>
<div class="text-right">
<asp:CheckBox ID="chkcontinuarAgregando" Checked="true" TextAlign="Left" Text="Continuar agregando:" runat="server" />
</div>
</div>
<div class="modal-footer">
<asp:LinkButton ID="LnkAgregarRegistro" OnClick="LnkAgregarRegistro_Click" CssClass="btn btn-primary" runat="server">Agregar</asp:LinkButton>
<button id="Button3" runat="server" type="button" class="btn default" data-dismiss="modal">Cerrar</button>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
<script>
@@ -274,6 +360,53 @@
$('.TxtCvePersonal').val(CvePersonal);
$('.BtnOpenModal').click();
}
function CargaPickers() {
$.datetimepicker.setLocale('es');
$('input.ADDateTimePicker').each(function () {
var TThis = $(this);
TThis.datetimepicker({
dayOfWeekStart: 1,
lang: 'es',
format: 'd/m/Y H:i',
formatDate: 'd/m/Y H:i',
step: 30
});
var Div = TThis.parent()
var boton = document.createElement('span');
boton.className = "input-group-btn"
var subboton = document.createElement('a')
subboton.className = "btn default"
subboton.innerHTML = "<i class='fa fa-calendar'></i>"
subboton.addEventListener('click', function () {
TThis.datetimepicker('show')
});
boton.appendChild(subboton)
var agregar = true;
for (var i = 0; i < Div[0].children.length; i++) {
if (Div[0].children[i].isEqualNode(boton)) {
agregar = false;
}
}
if (agregar) {
Div[0].appendChild(boton);
}
//Div[0].appendChild(boton)
});
}
Sys.Application.add_load(function (s, e) {
CargaPickers();
});
$(document).ready(function () {
CargaPickers();
});
</script>
</asp:Content>

View File

@@ -29,9 +29,17 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas
DdlTipoAsistencias.DataBind();
using (ClsRH ObjPersonal = new ClsRH())
{
if (ObjPersonal.GetPersonal(-1, UsuarioActual.CveEmpresa))
{
DdlmcPersonal.DataSource = ObjPersonal.DtResultados;
DdlmcPersonal.DataBind();
}
}
DdlMotivoHoraExtra.DataSource = GlobalDTMotivosHorasExtras.FiltraParametros(string.Format("CveEmpresa = {0}", UsuarioActual.CveEmpresa));
DdlMotivoHoraExtra.DataBind();
cargaChecadores();
CargarCentrosDeCosto(DdlAsisProyecto, DdlAsisSubProyecto, LblAsisProyecto, LblAsisSubProyecto);
PnlProyecto.Visible = DdlAsisProyecto.Visible;
if (PnlProyecto.Visible)
@@ -67,7 +75,7 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas
}
using (ClsNominas objnom = new ClsNominas())
{
if (objnom.GetchecadorAdistencia(FechaI, FechaF, UsuarioActual.CveEmpresa))
if (objnom.GetchecadorAsistencia(FechaI, FechaF, UsuarioActual.CveEmpresa))
{
DataTable dtASis = objnom.DTSetResultados.Tables[0];
dtper = objnom.DTSetResultados.Tables[1];
@@ -92,11 +100,11 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas
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())
Horas2 = drf["Horas"].ToString();
switch (drf["Tipo"].ToString().ToEntero())
{
case 1:
asistencia2 = "<i class='fa fa-check-square' style=\"color:green;\"></i>";
@@ -113,6 +121,9 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas
case 5:
asistencia2 = "<i class='fa fa-clock-o' style=\"color:red;\" aria-hidden='true'></i>";
break;
case 6:
asistencia2 = "<div style=\"color:red;\">❌</div>";
break;
default:
break;
@@ -137,6 +148,9 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas
case 5:
asistencia = "<i class='fa fa-clock-o' style=\"color:red;\" aria-hidden='true'></i>";
break;
case 6:
asistencia = "<div style=\"color:red;\">❌</div>";
break;
default:
break;
@@ -190,13 +204,38 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas
}
}
private void cargaChecadores()
{
ClsRH ObjRH = new ClsRH();
if (ObjRH.GetChecadores(-1, UsuarioActual.CveEmpresa))
{
DdlChecador.DataSource = ObjRH.DtResultados;
}
ObjRH.Dispose();
DdlChecador.DataBind();
}
protected void BtnOpenModal_Click(object sender, EventArgs e)
{
DateTime fechai = TxtFecha.Text.ToDateTime();
DateTime fechaf = fechai.AddDays(1);
int CvePersonal = TxtCvePersonal.Text.ToEntero();
DataRow drow = dtper.FiltroPrimero(string.Format("CvePersonal = {0}", CvePersonal));
if (drow != null)
{
TxtCodigolabel.Text = drow["Codigo"].ToString();
TxtEmpleadolabel.Text = drow["NombreCompleto"].ToString();
}
TxtFechalabel.Text = string.Format("{0:dd/MM/yyyy}", fechai);
DataTable dtTurno = GlobalDTTurno.FiltraParametros(string.Format("CveEmpresa = {0}", UsuarioActual.CveEmpresa));
using (ClsNominas objnom = new ClsNominas())
{
if (objnom.AsistenciaDetallePorTurnoGet(fechai, fechai, UsuarioActual.CveEmpresa, CvePersonal))
{
GvAsistenciaUp.DataSource = objnom.DTSetResultados.Tables[0];
GvAsistenciaUp.DataBind();
}
}
using (ClsRH objRH = new ClsRH())
{
if (objRH.PreAsistenciaRegistrosGet(fechai, fechaf, -1, UsuarioActual.Empresa.CveEmpresa))
@@ -217,39 +256,131 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas
TxtHorasTriples.Text = dr["HorasTriples"].ToString();
DdlMotivoHoraExtra.SelectedValueExist(dr["CveMotivoHoraExtra"].ToString());
TxtObservaciones.Text = dr["Observacion"].ToString();
LnkAgregarRegistro.Visible = true;
}
else
{
LnkAgregarRegistro.Visible = false;
}
}
}
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)
protected void LnkAgregarRegistro_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())
bool continuar = false;
List<RequestAddChecadorRegistro> items = new List<RequestAddChecadorRegistro>();
items.Add(new RequestAddChecadorRegistro() { CveChecador = DdlChecador.SelectedValue.ToEntero(), CvePersonal = DdlmcPersonal.SelectedValue.ToEntero(), ChecadorID = -1, Fecha = TxtFechaIngreso.Text.ToDateTimeExcat() });
using (ClsRH objrh = 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))
objrh.IniciaTransacSQL();
if (objrh.AddChecadorRegistro(UsuarioActual.CveEmpresa, items))
{
//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');");
continuar = true;
}
if (continuar)
{
objrh.Commit();
}
else
{
objrh.RollBack();
}
}
if (continuar)
{
Alert(string.Format("La asistencia se a agregado ({0:dd-MM-yyyy HH:mm}).", TxtFechaIngreso.Text.ToDateTimeExcat()), ModExtensiones.TipoMensaje.ToastInformacion);
}
if (!chkcontinuarAgregando.Checked)
{
LnkConsultar_Click(null, null);
RegistraScript("$('#DivAgregarRegistro').modal('hide');");
}
}
protected void GvAsistenciaUp_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//CveAsistenciaDetalle,CvePersonal,CveSubProyecto,CveProyecto,CveTurno,Fecha
int CveAsistenciasInasistencias = e.Row.DataKey("CveAsistenciasInasistencias").ToEntero();
int CveProyecto = e.Row.DataKey("CveProyecto").ToEntero();
int CveSubProyecto = e.Row.DataKey("CveSubProyecto").ToEntero();
DropDownList DdlTipoAsistenciasB = (DropDownList)e.Row.FindControl("DdlTipoAsistencias");
DropDownList DdlAsisProyectoB = (DropDownList)e.Row.FindControl("DdlAsisProyecto");
DropDownList DdlAsisSubProyectoB = (DropDownList)e.Row.FindControl("DdlAsisSubProyecto");
Label LblAsisProyectoB = (Label)e.Row.FindControl("LblAsisProyecto");
Label LblAsisSubProyectoB = (Label)e.Row.FindControl("LblAsisSubProyecto");
Panel PnlProyectoB = (Panel)e.Row.FindControl("PnlProyecto");
Panel PnlSubProyectoB = (Panel)e.Row.FindControl("PnlSubProyecto");
DdlTipoAsistenciasB.DataSource = GlobalDTAsistenciasInasistencias.FiltraParametros(string.Format("CveEmpresa = {0}", UsuarioActual.CveEmpresa));
DdlTipoAsistenciasB.DataBind();
/*
DdlAsisProyectoB.DataSource = DdlAsisProyecto.DataSource;
DdlAsisProyectoB.DataBind();
DdlAsisSubProyectoB.DataSource = DdlAsisSubProyecto.DataSource;
DdlAsisSubProyectoB.DataBind();
LblAsisProyectoB.Text = LblAsisProyecto.Text;
LblAsisSubProyectoB.Text = LblAsisSubProyecto.Text;
*/
CargarCentrosDeCosto(DdlAsisProyectoB, DdlAsisSubProyectoB, LblAsisProyectoB, LblAsisSubProyectoB);
PnlProyectoB.Visible = PnlProyecto.Visible;
PnlSubProyectoB.Visible = PnlSubProyectoB.Visible;
DdlTipoAsistenciasB.SelectedValueExist(CveAsistenciasInasistencias);
DdlAsisProyectoB.SelectedValueExist(CveProyecto);
DdlAsisSubProyectoB.SelectedValueExist(CveSubProyecto);
}
}
protected void BtnEstusAsistenciaModal_Click(object sender, EventArgs e)
{
DateTime fecha = TxtFecha.Text.ToDateTime();
int CvePersonal = TxtCvePersonal.Text.ToEntero();
List<RequestUpAsistenciaDetalle> registros = new List<RequestUpAsistenciaDetalle>();
foreach (GridViewRow row in GvAsistenciaUp.Rows)
{
int CveAsistenciaDetalle = row.DataKey("CveAsistenciaDetalle").ToEntero();
int CveAsistenciasInasistencias = row.DataKey("CveAsistenciasInasistencias").ToEntero();
int CveProyecto = row.DataKey("CveProyecto").ToEntero();
int CveSubProyecto = row.DataKey("CveSubProyecto").ToEntero();
DropDownList DdlTipoAsistenciasB = (DropDownList)row.FindControl("DdlTipoAsistencias");
DropDownList DdlAsisProyectoB = (DropDownList)row.FindControl("DdlAsisProyecto");
DropDownList DdlAsisSubProyectoB = (DropDownList)row.FindControl("DdlAsisSubProyecto");
RequestUpAsistenciaDetalle obj = new RequestUpAsistenciaDetalle();
obj.CveAsistenciaDetalle = CveAsistenciaDetalle;
obj.CveAsistenciasInasistencias = DdlTipoAsistenciasB.SelectedValue.ToEntero();
obj.CveSubProyecto = DdlAsisSubProyectoB.SelectedValue.ToEntero();
obj.CvePersonal = CvePersonal;
obj.Fecha = fecha;
registros.Add(obj);
}
using (ClsRH objRH = new ClsRH())
{
objRH.UpAsistenciaDetalle(UsuarioActual.CveEmpresa, registros);
}
//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

@@ -830,7 +830,7 @@
<div class="btn-group">
<a onclick="$('#C_BtnImprimirsobrerecibo').click()" class="btn yellow-gold">Imprimir</a>
</div>
<div class="btn-group hidden">
<div class="btn-group ">
<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>

View File

@@ -1028,7 +1028,7 @@ function ADDropzone(txtid) {
var urldown = txt.data('urldown'); if ((urldown) && (urldown != "")) { } else { urldown = domain + "/Ashx/SIGWeb.ashx"; }
var urlget = txt.data('urlget'); if ((urlget) && (urlget != "")) { } else { urlget = domain + "/temp/"; }
var maxFilesize = txt.data('maxFilesize'); if (maxFilesize) { } else { maxFilesize = 10; }
var maxFilesize = txt.data('maxfilesize'); if (maxFilesize) { } else { maxFilesize = 10; }
var maxFile = txt.attr('data-maxFile'); if (maxFile) { } else { maxFile = null; }
var mydiv = $("<div id='" + txtid + "-drop' class='addropzone'></div>");
var mypaste = $("<div id='" + txtid + "-paste' contenteditable='true' class='mypaste'></div>")

View File

@@ -312,6 +312,10 @@