--Sincronizar cambios con productivo 11/02/2025
This commit is contained in:
@@ -775,7 +775,7 @@ public partial class Nomina_Aguinaldo : ClsPaginas
|
||||
string xml = xmlregistros.ToString();
|
||||
using (ClsNominas objnom = new ClsNominas())
|
||||
{
|
||||
objnom.GuardarAguinaldo(UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario, xml, ejercicioActual);
|
||||
objnom.GuardarAguinaldo(UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario, xml);
|
||||
}
|
||||
BtnCalcular_Click(null, null);
|
||||
|
||||
@@ -787,7 +787,7 @@ public partial class Nomina_Aguinaldo : ClsPaginas
|
||||
string xml = "<registros></registros>";
|
||||
using (ClsNominas objnom = new ClsNominas())
|
||||
{
|
||||
objnom.GuardarAguinaldo(UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario, xml, ejercicioActual);
|
||||
objnom.GuardarAguinaldo(UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario, xml);
|
||||
}
|
||||
BtnCalcular_Click(null, null);
|
||||
}
|
||||
|
||||
@@ -186,7 +186,7 @@ public partial class Nomina_CalculoISRAnual : ClsPaginas
|
||||
CvePersonal = gvrow.DataKey("CvePersonal").ToString().ToEntero();
|
||||
using (ClsNominas onom = new ClsNominas())
|
||||
{
|
||||
if (onom.PersonalAplicaCalculoAnual(UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario, Ejercicio, CvePersonal, 1, ""))
|
||||
if (onom.PersonalAplicaCalculoAnual(UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario, CvePersonal, 1, ""))
|
||||
{
|
||||
Alert("El empleado sera incluido al calculo anual");
|
||||
CargaCalculoISRAnual();
|
||||
@@ -205,7 +205,7 @@ public partial class Nomina_CalculoISRAnual : ClsPaginas
|
||||
{
|
||||
using (ClsNominas onom = new ClsNominas())
|
||||
{
|
||||
if (onom.PersonalAplicaCalculoAnual(UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario, Ejercicio, CvePersonal, 0, TxtMotivo.Text))
|
||||
if (onom.PersonalAplicaCalculoAnual(UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario, CvePersonal, 0, TxtMotivo.Text))
|
||||
{
|
||||
Alert("El empleado sera omitido del calculo anual");
|
||||
RegistraScript("$('#DModalcancelarEmpleado').modal('hide');");
|
||||
@@ -313,8 +313,6 @@ public partial class Nomina_CalculoISRAnual : ClsPaginas
|
||||
Choja.Cell(248, 9).Value = string.Format("'{0}",UsuarioActual.Empresa.RFC);
|
||||
Choja.Cell(250, 9).Value = string.Format("'{0}", UsuarioActual.Empresa.Empresa);
|
||||
|
||||
|
||||
|
||||
Choja.Cell(37, 15).Value = droi["IngresosTotales"];
|
||||
Choja.Cell(48, 15).Value = droi["BaseExcenta"];
|
||||
Choja.Cell(60, 15).Value = droi["BaseGravada"];
|
||||
|
||||
@@ -1700,7 +1700,7 @@ public partial class Nomina_Finiquito : ClsPaginas
|
||||
string urlfile = System.IO.Path.Combine(string.Format("{0}Formatos/SobreReciboFiniquito.rdlc", UsuarioActual.Empresa.Ruta));
|
||||
if (!System.IO.File.Exists(urlfile))
|
||||
{
|
||||
parametros.Add(new Microsoft.Reporting.WebForms.ReportParameter("EmpresaDireccion", string.Format("{0} No. {1},Colonia {2} ", UsuarioActual.Empresa.Direccion, UsuarioActual.Empresa.NoExt , UsuarioActual.Empresa.Colonia).ToLower()));
|
||||
parametros.Add(new Microsoft.Reporting.WebForms.ReportParameter("EmpresaDireccion", string.Format("{0} No. {1},Colonia {2} ", UsuarioActual.Empresa.Direccion, UsuarioActual.Empresa.NoExt , UsuarioActual.Empresa.Colonia).ToLower() ));
|
||||
urlfile = System.IO.Path.Combine(ModExtensiones.DirectorioBaseEmpresas, "Empresas/Grales/Formatos/SobreReciboFiniquito.rdlc");
|
||||
}
|
||||
|
||||
|
||||
@@ -415,7 +415,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
|
||||
}
|
||||
DmodalCancelartimbre.Visible = (UsuarioActual.CveUsuario == 100);
|
||||
//LnkOpenCancelarTimbre.Visible = (UsuarioActual.CveUsuario == 100);
|
||||
LnkVerCalculoISR.Visible = (UsuarioActual.CveUsuario == 100 || UsuarioActual.CveEmpresa == 119);
|
||||
LnkVerCalculoISR.Visible = true;//(UsuarioActual.CveUsuario == 100 || UsuarioActual.CveEmpresa == 119);
|
||||
TxtPeriodo.Text = $"{NowADS():yyyyMM}";
|
||||
CargarCentrosDeCosto(DdlProyecto, DdlSubProyecto, LblProyecto, LblSubProyeccto);
|
||||
CargarCentrosDeCosto(DdlPRProyecto, DdlPRSubProyecto, LblPRProyecto, LblPRSubProyeccto);
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="ReporteVacaciones.aspx.cs" Inherits="Nomina_ReporteVacaciones" %>
|
||||
|
||||
<%@ Import Namespace="Extensiones" %>
|
||||
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
|
||||
</asp:Content>
|
||||
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
|
||||
@@ -7,9 +8,161 @@
|
||||
/*.text-right {
|
||||
text-align:right
|
||||
}*/
|
||||
td.borderleft,th.borderleft{
|
||||
border-left:1px solid black !important;
|
||||
td.borderleft, th.borderleft {
|
||||
border-left: 1px solid black !important;
|
||||
}
|
||||
|
||||
.hiddentth, .hiddentth th {
|
||||
background-color: #fff !important;
|
||||
}
|
||||
|
||||
.showMesDia {
|
||||
display: none;
|
||||
}
|
||||
|
||||
table tr th.diac {
|
||||
font-size: 4px;
|
||||
padding-left: 1px !important;
|
||||
padding-right: 1px !important;
|
||||
}
|
||||
|
||||
table tr th.mesc {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.mes1 {
|
||||
background-color: #ffcccc;
|
||||
border-color: #ffcccc;
|
||||
}
|
||||
/* Enero - Rojo claro */
|
||||
.mes2 {
|
||||
background-color: #ffebcc;
|
||||
border-color: #ffcccc;
|
||||
}
|
||||
/* Febrero - Naranja claro */
|
||||
.mes3 {
|
||||
background-color: #ffffcc;
|
||||
border-color: #ffcccc;
|
||||
}
|
||||
/* Marzo - Amarillo claro */
|
||||
.mes4 {
|
||||
background-color: #ccffcc;
|
||||
border-color: #ffcccc;
|
||||
}
|
||||
/* Abril - Verde claro */
|
||||
.mes5 {
|
||||
background-color: #ccffff;
|
||||
border-color: #ffcccc;
|
||||
}
|
||||
/* Mayo - Azul cielo */
|
||||
.mes6 {
|
||||
background-color: #ccccff;
|
||||
border-color: #ffcccc;
|
||||
}
|
||||
/* Junio - Azul suave */
|
||||
.mes7 {
|
||||
background-color: #e6ccff;
|
||||
border-color: #ffcccc;
|
||||
}
|
||||
/* Julio - Morado claro */
|
||||
.mes8 {
|
||||
background-color: #ffccff;
|
||||
border-color: #ffcccc;
|
||||
}
|
||||
/* Agosto - Rosa claro */
|
||||
.mes9 {
|
||||
background-color: #ffb3b3;
|
||||
border-color: #ffcccc;
|
||||
}
|
||||
/* Septiembre - Rojo pastel */
|
||||
.mes10 {
|
||||
background-color: #ff9966;
|
||||
border-color: #ffcccc;
|
||||
}
|
||||
/* Octubre - Naranja pastel */
|
||||
.mes11 {
|
||||
background-color: #cccc99;
|
||||
border-color: #ffcccc;
|
||||
}
|
||||
/* Noviembre - Verde oliva */
|
||||
.mes12 {
|
||||
background-color: #e6e6e6;
|
||||
border-color: #ffcccc;
|
||||
}
|
||||
/* Diciembre - Gris claro */
|
||||
|
||||
.TContainer {
|
||||
width: 100%;
|
||||
height: calc(100vh - 200px);
|
||||
overflow: scroll;
|
||||
}
|
||||
|
||||
.VacClass {
|
||||
background-color: darkslateblue;
|
||||
}
|
||||
|
||||
.borderyear {
|
||||
border-left: 1px solid #FFF !important;
|
||||
}
|
||||
|
||||
.yearclass {
|
||||
background-color: #444;
|
||||
color: #FFF;
|
||||
text-align: center;
|
||||
font-size: 6px;
|
||||
}
|
||||
|
||||
.yearclassB {
|
||||
background-color: #999;
|
||||
color: #FFF;
|
||||
text-align: center;
|
||||
font-size: 6px;
|
||||
}
|
||||
|
||||
tr.aniorow td {
|
||||
height: 8px;
|
||||
}
|
||||
|
||||
tr.rowsticky {
|
||||
position: sticky;
|
||||
top: 0; /* Se mantiene pegado en la parte superior */
|
||||
background-color: white; /* Para que no se superponga con otros elementos */
|
||||
z-index: 1000; /* Asegura que esté sobre otros elementos */
|
||||
}
|
||||
tr.rowsticky:nth-child(2) {
|
||||
top: 26.14px;
|
||||
}
|
||||
tr.rowsticky:nth-child(3) {
|
||||
top: 52.14px;
|
||||
}
|
||||
.table-sticky tr td:nth-child(1),.table-sticky tr th:nth-child(1),
|
||||
.table-sticky tr td:nth-child(2),.table-sticky tr th:nth-child(2),
|
||||
.table-sticky tr td:nth-child(3),.table-sticky tr th:nth-child(3) {
|
||||
position: sticky;
|
||||
left: 0;
|
||||
z-index: 3;
|
||||
}
|
||||
.table-sticky tr td:nth-child(1),.table-sticky tr td:nth-child(2),.table-sticky tr td:nth-child(3) {
|
||||
background-color: #fff;
|
||||
}
|
||||
.table-sticky tr td:nth-child(1) div, .table-sticky tr th:nth-child(1) div{
|
||||
width:72px;
|
||||
}
|
||||
.table-sticky tr td:nth-child(1),.table-sticky tr th:nth-child(1){
|
||||
width:80px;
|
||||
}
|
||||
.table-sticky tr td:nth-child(2),.table-sticky tr th:nth-child(2){
|
||||
width:250px;
|
||||
left: 80px;
|
||||
|
||||
}
|
||||
.table-sticky tr td:nth-child(2) div, .table-sticky tr th:nth-child(2) div{
|
||||
width:242px;
|
||||
}
|
||||
.table-sticky tr td:nth-child(3),.table-sticky tr th:nth-child(3){
|
||||
left: 330px;
|
||||
|
||||
}
|
||||
</style>
|
||||
</asp:Content>
|
||||
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
|
||||
@@ -29,7 +182,7 @@
|
||||
<div class="portlet-title portlet-filterT smalltitle">
|
||||
<div class="titlefiltros caption">
|
||||
<div class="row">
|
||||
|
||||
|
||||
<label class="col-md-1 mediocol">Inicio:</label>
|
||||
<div class="col-md-1">
|
||||
<%--<asp:TextBox ID="TxtPeriodoInicio" Text="0" CssClass="form-control" runat="server"></asp:TextBox>--%>
|
||||
@@ -85,9 +238,97 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="TContainer">
|
||||
<table id="gvReporteVacacionesCalendar" class="table table-hover table-sticky ScrollADig Widthall gvReporteVacacionesCalendar" data-rows="4" data-cols="3" data-heighterror="360">
|
||||
<tbody>
|
||||
|
||||
<div>
|
||||
<table id="gvReporteVacaciones" class="table table-striped table-advance table-hover ScrollAD Widthall gvReporteVacaciones" data-rows="2" data-heighterror="360">
|
||||
<%-- <tr class="hiddentth">
|
||||
<th class="showMesDia"></th>
|
||||
<th class="showMesDia"></th>
|
||||
<th class="showMesDia"></th>
|
||||
|
||||
<asp:Repeater ID="rptx" runat="server">
|
||||
<ItemTemplate>
|
||||
<th class="showMesDia"></th>
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
</tr>--%>
|
||||
|
||||
<tr class="rowsticky">
|
||||
<th></th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
<%-- Encabezados dinámicos para los ejercicios --%>
|
||||
|
||||
<asp:Repeater ID="rptanio" runat="server">
|
||||
<ItemTemplate>
|
||||
<th class="borderleft" colspan='<%# Eval("DiasEjercicioA") %>'><%# Eval("Anio") %></th>
|
||||
<th colspan='<%# Eval("DiasEjercicioA") %>'><%# Eval("Anio") %></th>
|
||||
<th colspan='<%# Eval("DiasEjercicioA") %>'><%# Eval("Anio") %></th>
|
||||
<th colspan='<%# Eval("DiasEjercicioB") %>'><%# Eval("Anio") %></th>
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
</tr>
|
||||
<tr class="rowsticky">
|
||||
<th></th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
<%-- Encabezados dinámicos para los ejercicios --%>
|
||||
<%-- data-toggle="tooltip"
|
||||
title='<%# new System.Globalization.CultureInfo("es-ES").DateTimeFormat.GetMonthName(Eval("Mes").ToString().ToEntero()).ToUpper() %>'--%>
|
||||
<asp:Repeater ID="rptMeses" runat="server">
|
||||
<ItemTemplate>
|
||||
<th class='<%# string.Format("{0} diac mes{1} mesc","borderleft",Eval("Mes")) %>' colspan='<%# Eval("DiasMes") %>'>
|
||||
<%# new System.Globalization.CultureInfo("es-ES").DateTimeFormat.GetMonthName(Eval("Mes").ToString().ToEntero()).ToUpper() %></th>
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
</tr>
|
||||
|
||||
<tr class="rowsticky">
|
||||
<th>Código</th>
|
||||
<th>Nombre Completo</th>
|
||||
<th>Fecha Inicio</th>
|
||||
<%-- Encabezados dinámicos para los ejercicios --%>
|
||||
|
||||
<asp:Repeater ID="RepetDias" runat="server">
|
||||
<ItemTemplate>
|
||||
<th class='<%# string.Format("{0} diac mes{1}",(Eval("MinMes").ToString().ToUpper()=="1"?"borderleft":""),Eval("Mes")) %>'><%# Eval("Dia") %></th>
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
</tr>
|
||||
|
||||
<asp:Repeater ID="RepeaterPrincipalCalendar" runat="server">
|
||||
<HeaderTemplate>
|
||||
</HeaderTemplate>
|
||||
<ItemTemplate>
|
||||
<tr class="aniorow">
|
||||
<%--<td><%# Eval("CvePersonal") %></td>--%>
|
||||
<td rowspan="1"><div>
|
||||
<div><asp:HyperLink runat="server" Text='<%# Eval("Codigo") %>' NavigateUrl='<%# Eval("CvePersonal", "~/RH/Personal.aspx?CvePersonal={0}") %>'></asp:HyperLink></div></td>
|
||||
<td rowspan="1"><div>
|
||||
<asp:HyperLink runat="server" Text='<%# Eval("NombreCompleto") %>' NavigateUrl='<%# Eval("CvePersonal", "~/RH/Personal.aspx?CvePersonal={0}") %>'></asp:HyperLink></div></td>
|
||||
<td rowspan="1"><div><%# Eval("FechaInicio", "{0:yyyy-MM-dd}") %></div></td>
|
||||
<%-- Subrepeater para los ejercicios --%>
|
||||
<asp:Literal Text='<%# Eval("ColumnasinicioFin" ) %>' runat="server"></asp:Literal>
|
||||
<%--</tr>
|
||||
<tr>--%>
|
||||
<asp:Literal Text='<%# Eval("ColumnasVacaciones" ) %>' runat="server"></asp:Literal>
|
||||
<%-- <asp:Repeater ID="RepeaterEjercicios" runat="server" DataSource='<%# tabladias %>'>
|
||||
<ItemTemplate>
|
||||
<asp:Literal Text='<%# columnapersonal((int)Eval("FechaNum" ),(System.Data.DataTable )Eval("TDiaspersonal")) %>' runat="server"></asp:Literal>
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>--%>
|
||||
</tr>
|
||||
</ItemTemplate>
|
||||
<FooterTemplate>
|
||||
</FooterTemplate>
|
||||
</asp:Repeater>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="hidden">
|
||||
<table id="gvReporteVacaciones" class="table table-striped table-advance table-hover ScrollAD Widthall gvReporteVacaciones" data-rows="2" data-heighterror="360">
|
||||
<%-- <thead>
|
||||
</thead>--%>
|
||||
<tbody>
|
||||
@@ -112,7 +353,7 @@
|
||||
<%-- Encabezados dinámicos para los ejercicios --%>
|
||||
|
||||
<asp:Repeater ID="RepeaterEjerciciosH2" runat="server">
|
||||
<ItemTemplate>
|
||||
<ItemTemplate>
|
||||
<th class="borderleft">Antigüedad</th>
|
||||
<th>Días Vacaciones</th>
|
||||
<th>Días Pagados</th>
|
||||
@@ -125,17 +366,17 @@
|
||||
<ItemTemplate>
|
||||
<tr>
|
||||
<%--<td><%# Eval("CvePersonal") %></td>--%>
|
||||
<td>
|
||||
<asp:HyperLink runat="server" Text='<%# Eval("Codigo") %>' NavigateUrl='<%# Eval("CvePersonal", "~/RH/Personal.aspx?CvePersonal={0}") %>'></asp:HyperLink></td>
|
||||
<td>
|
||||
<asp:HyperLink runat="server" Text='<%# Eval("NombreCompleto") %>' NavigateUrl='<%# Eval("CvePersonal", "~/RH/Personal.aspx?CvePersonal={0}") %>'></asp:HyperLink></td>
|
||||
<td>
|
||||
<asp:HyperLink runat="server" Text='<%# Eval("Codigo") %>' NavigateUrl='<%# Eval("CvePersonal", "~/RH/Personal.aspx?CvePersonal={0}") %>'></asp:HyperLink></td>
|
||||
<td>
|
||||
<asp:HyperLink runat="server" Text='<%# Eval("NombreCompleto") %>' NavigateUrl='<%# Eval("CvePersonal", "~/RH/Personal.aspx?CvePersonal={0}") %>'></asp:HyperLink></td>
|
||||
<td><%# Eval("FechaInicio", "{0:yyyy-MM-dd}") %></td>
|
||||
<%-- Subrepeater para los ejercicios --%>
|
||||
<asp:Repeater ID="RepeaterEjercicios" runat="server" DataSource='<%# Eval("Ejercicios") %>'>
|
||||
<ItemTemplate>
|
||||
<ItemTemplate>
|
||||
<td class="text-right borderleft"><%# Convert.ToInt32(Eval("Antiguedad")) > 0 ? Eval("Antiguedad") : "" %></td>
|
||||
<td class="text-right "><%# Convert.ToInt32(Eval("Antiguedad")) > 0 ? Eval("DiasVacaciones") : "" %></td>
|
||||
<td class="text-right "><%# Convert.ToInt32(Eval("Antiguedad")) > 0 ? Eval("DiasPagados") : "" %></td>
|
||||
<td class="text-right "><%# Convert.ToInt32(Eval("Antiguedad")) > 0 ? Eval("DiasVacaciones") : "" %></td>
|
||||
<td class="text-right "><%# Convert.ToInt32(Eval("Antiguedad")) > 0 ? Eval("DiasPagados") : "" %></td>
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
</tr>
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
using ADSNetLibrary.Helpers;
|
||||
using Extensiones;
|
||||
using iText.Html2pdf.Attach.Impl.Layout.Form.Element;
|
||||
using Microsoft.Extensions.Primitives;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
@@ -34,8 +37,8 @@ public partial class Nomina_ReporteVacaciones : ClsPaginas
|
||||
{
|
||||
get
|
||||
{
|
||||
string fecha = $"{DateTime.Now.Year - 3}-01-01";
|
||||
if (ViewState["FiltFechaInicio"] == null) { return fecha ; }
|
||||
string fecha = $"{DateTime.Now.Year - 1}-01-01";
|
||||
if (ViewState["FiltFechaInicio"] == null) { return fecha; }
|
||||
else { return ViewState["FiltFechaInicio"].ToString(); }
|
||||
}
|
||||
|
||||
@@ -52,6 +55,18 @@ public partial class Nomina_ReporteVacaciones : ClsPaginas
|
||||
|
||||
set { ViewState["FiltFechaFin"] = value; }
|
||||
}
|
||||
|
||||
|
||||
protected DataTable tabladias
|
||||
{
|
||||
get
|
||||
{
|
||||
if (ViewState["tabladias"] == null) { return new DataTable(); }
|
||||
else { return (DataTable)ViewState["tabladias"]; }
|
||||
}
|
||||
|
||||
set { ViewState["tabladias"] = value; }
|
||||
}
|
||||
#endregion
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
@@ -68,75 +83,214 @@ public partial class Nomina_ReporteVacaciones : ClsPaginas
|
||||
{
|
||||
using (ClsNominas objnom = new ClsNominas())
|
||||
{
|
||||
if (objnom.ReporteVacaciones(FiltCveProyecto, FiltCveSubProyecto, UsuarioActual.CveEmpresa, FiltFechaInicio, FiltFechaFin))
|
||||
if (objnom.ReporteVacacionesCalendario(FiltCveProyecto, FiltCveSubProyecto, UsuarioActual.CveEmpresa, FiltFechaInicio, FiltFechaFin))
|
||||
{
|
||||
DataTable tabla1 = objnom.DTSetResultados.Tables[0]; // Simula tu tabla 1
|
||||
DataTable tabla2 = objnom.DTSetResultados.Tables[1]; // Simula tu tabla 2
|
||||
DataTable tabla3 = objnom.DTSetResultados.Tables[2]; // Simula tu tabla 3
|
||||
RepeaterEjerciciosH1.DataSource= tabla3;
|
||||
RepeaterEjerciciosH2.DataSource= tabla3;
|
||||
DataTable tabla1 = objnom.DTSetResultados.Tables[0]; //
|
||||
DataTable tabla2 = objnom.DTSetResultados.Tables[1]; //
|
||||
DataTable tabla3 = objnom.DTSetResultados.Tables[2]; //
|
||||
tabladias = objnom.DTSetResultados.Tables[3];
|
||||
DataTable tabladiasPersonal = objnom.DTSetResultados.Tables[4];
|
||||
RepeaterEjerciciosH1.DataSource = tabla3;
|
||||
RepeaterEjerciciosH2.DataSource = tabla3;
|
||||
RepeaterEjerciciosH1.DataBind();
|
||||
RepeaterEjerciciosH2.DataBind();
|
||||
// Convertir Tabla 1 a Enumerable con un campo extra
|
||||
List<Registro> resultado = tabla1.AsEnumerable().Select(row1 => new Registro()
|
||||
List<Registro> resultado = tabla1.AsEnumerable().Select(row1 =>
|
||||
{
|
||||
CvePersonal = row1.Field<int>("CvePersonal"),
|
||||
Codigo = row1.Field<string>("Codigo"),
|
||||
NombreCompleto = row1.Field<string>("NombreCompleto"),
|
||||
//FechaFin = (row1("FechaFin")).ToString().,
|
||||
FechaInicio = row1.Field<DateTime>("FechaInicio"),
|
||||
FechaAntiguedad = row1.Field<DateTime>("FechaAntiguedad"),
|
||||
Antiguedad = row1.Field<int>("Antiguedad"),
|
||||
int cvePersonal = Convert.ToInt32(row1["CvePersonal"]);
|
||||
DataRow[] filasFiltradas = tabladiasPersonal.Select($"CvePersonal = {cvePersonal}");
|
||||
|
||||
// Campo extra: Enumerable para cada Ejercicio de Tabla 3
|
||||
Ejercicios = tabla3.AsEnumerable().Select(row3 =>
|
||||
// Crear un nuevo DataTable con la misma estructura
|
||||
DataTable TDiaspersonal = tabladiasPersonal.Clone();
|
||||
|
||||
// Importar las filas filtradas
|
||||
foreach (DataRow fila in filasFiltradas)
|
||||
{
|
||||
var ejercicio = row3.Field<int>("Ejercicio");
|
||||
TDiaspersonal.ImportRow(fila);
|
||||
//DataRow nuevaFila = TDiaspersonal.NewRow();
|
||||
|
||||
// Buscar en Tabla 2 si existe el registro para CvePersonal y Ejercicio
|
||||
var registro = tabla2.AsEnumerable().FirstOrDefault(row2 =>
|
||||
row2.Field<int>("CvePersonal") == row1.Field<int>("CvePersonal") &&
|
||||
row2.Field<int>("EJercicio") == ejercicio);
|
||||
//// Copiar manualmente cada columna
|
||||
//foreach (DataColumn columna in tabladiasPersonal.Columns)
|
||||
//{
|
||||
// nuevaFila[columna.ColumnName] = fila[columna.ColumnName];
|
||||
//}
|
||||
|
||||
// Si no existe, crear un nuevo registro
|
||||
if (registro == null)
|
||||
//TDiaspersonal.Rows.Add(nuevaFila);
|
||||
}
|
||||
TDiaspersonal.AcceptChanges();
|
||||
//DataTable TDiaspersonal = tabladiasPersonal.FiltraParametros(string.Format("CvePersonal = '{0}'", row1["CvePersonal"]));
|
||||
int contador = tabladiasPersonal.Rows.Count;
|
||||
return new Registro()
|
||||
{
|
||||
CvePersonal = row1.Field<int>("CvePersonal"),
|
||||
Codigo = row1.Field<string>("Codigo"),
|
||||
NombreCompleto = row1.Field<string>("NombreCompleto"),
|
||||
//FechaFin = (row1("FechaFin")).ToString().,
|
||||
FechaInicio = row1.Field<DateTime>("FechaInicio"),
|
||||
FechaAntiguedad = row1.Field<DateTime>("FechaAntiguedad"),
|
||||
Antiguedad = row1.Field<int>("Antiguedad"),
|
||||
|
||||
//ColumnasinicioFin = strColumnasinicioFin(tabladias, tabla2.FiltraParametros(string.Format("CvePersonal = {0}", row1["CvePersonal"])), row1["anio"].ToString().ToEntero(), row1["Mes"].ToString(), row1["Dia"].ToString()),
|
||||
ColumnasVacaciones = strColumnasVacaciones(tabladias, TDiaspersonal),
|
||||
// Campo extra: Enumerable para cada Ejercicio de Tabla 3
|
||||
Ejercicios = tabla3.AsEnumerable().Select(row3 =>
|
||||
{
|
||||
return new EjercicioInfo()
|
||||
var ejercicio = row3.Field<int>("Ejercicio");
|
||||
|
||||
// Buscar en Tabla 2 si existe el registro para CvePersonal y Ejercicio
|
||||
var registro = tabla2.AsEnumerable().FirstOrDefault(row2 =>
|
||||
row2.Field<int>("CvePersonal") == row1.Field<int>("CvePersonal") &&
|
||||
row2.Field<int>("EJercicio") == ejercicio);
|
||||
|
||||
// Si no existe, crear un nuevo registro
|
||||
if (registro == null)
|
||||
{
|
||||
Ejercicio = ejercicio,
|
||||
FechaAntiguedad = row1.Field<DateTime>("FechaAntiguedad"),
|
||||
Antiguedad = 0,
|
||||
DiasVacaciones = 0, // Valor predeterminado
|
||||
DiasPagados = 0, // Valor predeterminado
|
||||
DiasDisfrutados = 0 // Valor predeterminado
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
// Si existe, devolver los datos de la Tabla 2
|
||||
return new EjercicioInfo()
|
||||
return new EjercicioInfo()
|
||||
{
|
||||
Ejercicio = ejercicio,
|
||||
FechaAntiguedad = row1.Field<DateTime>("FechaAntiguedad"),
|
||||
Antiguedad = 0,
|
||||
DiasVacaciones = 0, // Valor predeterminado
|
||||
DiasPagados = 0, // Valor predeterminado
|
||||
DiasDisfrutados = 0 // Valor predeterminado
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
Ejercicio = registro.Field<int>("EJercicio"),
|
||||
FechaAntiguedad = registro.Field<DateTime>("FechaAntiguedad"),
|
||||
Antiguedad = registro.Field<int>("Antiguedad"),
|
||||
DiasVacaciones = registro.Field<int>("DiasVacaciones"),
|
||||
DiasPagados = registro.Field<int>("DiasPagados"),
|
||||
DiasDisfrutados = registro.Field<int>("DiasDisfrutados")
|
||||
};
|
||||
}
|
||||
}).ToList()
|
||||
}).ToList();
|
||||
// Si existe, devolver los datos de la Tabla 2
|
||||
return new EjercicioInfo()
|
||||
{
|
||||
Ejercicio = registro.Field<int>("EJercicio"),
|
||||
FechaAntiguedad = registro.Field<DateTime>("FechaAntiguedad"),
|
||||
Antiguedad = registro.Field<int>("Antiguedad"),
|
||||
DiasVacaciones = registro.Field<int>("DiasVacaciones"),
|
||||
DiasPagados = registro.Field<int>("DiasPagados"),
|
||||
DiasDisfrutados = registro.Field<int>("DiasDisfrutados")
|
||||
};
|
||||
}
|
||||
}).ToList()
|
||||
};
|
||||
}
|
||||
).ToList();
|
||||
|
||||
|
||||
|
||||
RepeaterPrincipal.DataSource = resultado;
|
||||
RepeaterPrincipal.DataBind();
|
||||
|
||||
RepeaterPrincipalCalendar.DataSource = resultado;
|
||||
RepeaterPrincipalCalendar.DataBind();
|
||||
|
||||
|
||||
rptanio.DataSource = tabladias.FiltraParametros("MinEjercicio = 1");
|
||||
rptanio.DataBind();
|
||||
rptMeses.DataSource = tabladias.FiltraParametros("MinMes = 1");
|
||||
rptMeses.DataBind();
|
||||
RepetDias.DataSource = tabladias;
|
||||
RepetDias.DataBind();
|
||||
//rptx.DataSource = tabladias;
|
||||
//rptx.DataBind();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
public string rightstr(string str,int cantidad)
|
||||
{
|
||||
return str.Length >= cantidad ? str.Substring(str.Length - cantidad) : str;
|
||||
}
|
||||
public string strColumnasinicioFin(DataTable tabladias, DataTable TEjercicio, int anio, string Mes, string Dia)
|
||||
{
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
StringBuilder strbuilderB = new StringBuilder();
|
||||
strbuilderB.AppendFormat(" </tr><tr>");
|
||||
int FechaNum =string.Format("{0}{1}{2}", anio, Mes, Dia).ToEntero();
|
||||
int Mesdia =string.Format("{0}{1}", Mes, Dia).ToEntero();
|
||||
foreach (DataRow dr in tabladias.Rows)
|
||||
{
|
||||
int colspan = dr["DiasMes"].ToString().ToEntero();
|
||||
int mesidias = rightstr(dr["FechaNum"].ToString(),4).ToEntero();
|
||||
int mesa = dr["Mes"].ToString().ToEntero();
|
||||
int ania = dr["Anio"].ToString().ToEntero()-(mesidias >= Mesdia?0:1);
|
||||
DataRow hdrow = TEjercicio.FiltroPrimero(string.Format("Ejercicio = {0}", ania));
|
||||
int drFechaNum = dr["FechaNum"].ToString().ToEntero();
|
||||
string classtd = drFechaNum < FechaNum ? "": ((ania % 2) > 0 ? "yearclass" : "yearclassB");
|
||||
string antiguedad = "";
|
||||
string classvac = "borderleft";
|
||||
string vacacionestomadas = "";
|
||||
if(hdrow != null)
|
||||
{
|
||||
antiguedad = string.Format("({0})", hdrow["Antiguedad"]);
|
||||
//DiasVacaciones EJercicio EJercicioVac DiasPagados DiasDisfrutados
|
||||
int DiasVacaciones = hdrow["DiasVacaciones"].ToString().ToEntero();
|
||||
int DiasPagados = hdrow["DiasPagados"].ToString().ToEntero();
|
||||
int DiasDisfrutados = hdrow["DiasDisfrutados"].ToString().ToEntero();
|
||||
int mitadDiasVacaciones = DiasVacaciones / 2;
|
||||
classvac = DiasDisfrutados > 0 ? (DiasDisfrutados > mitadDiasVacaciones ? (DiasDisfrutados >= DiasVacaciones ? "success" : "info") : "warning") : "danger";
|
||||
vacacionestomadas = string.Format("{0}/{1}",DiasDisfrutados, DiasVacaciones);
|
||||
}
|
||||
if (dr["MinMes"].ToString() == "1" && Mesdia != mesidias)
|
||||
{
|
||||
if(mesa == Mes.ToEntero())
|
||||
{
|
||||
colspan = Dia.ToEntero() - 1;
|
||||
}
|
||||
string canio = drFechaNum >= FechaNum && colspan>5 ? (ania.ToString()) :"";
|
||||
stringBuilder.AppendFormat("<td class='{2}' colspan='{0}'>{1} {3}</td>", colspan, canio, classtd, antiguedad);
|
||||
strbuilderB.AppendFormat("<td class='{1}' colspan='{0}'>{2}</td>", colspan, classvac, vacacionestomadas);
|
||||
}
|
||||
if (mesidias == Mesdia)
|
||||
{
|
||||
string canio = drFechaNum >= FechaNum && colspan > 5 ? (ania.ToString()) : "";
|
||||
if (mesa == Mes.ToEntero())
|
||||
{
|
||||
colspan = colspan-(Dia.ToEntero() - 1);
|
||||
}
|
||||
stringBuilder.AppendFormat("<td class='{2} borderyear' colspan='{0}'>{1} {3}</td>", colspan, canio, classtd, antiguedad);
|
||||
strbuilderB.AppendFormat("<td class='{1}' colspan='{0}'>{2}</td>", colspan, classvac, vacacionestomadas);
|
||||
}
|
||||
}
|
||||
stringBuilder.AppendFormat("{0}", strbuilderB.ToString());
|
||||
return stringBuilder.ToString();
|
||||
}
|
||||
public string strColumnasVacaciones(DataTable tabladias, DataTable TDiaspersonal)
|
||||
{
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
foreach (DataRow dr in tabladias.Rows)
|
||||
{
|
||||
|
||||
DataRow hdr = TDiaspersonal.FiltroPrimero(string.Format("FechaNum={0}", dr["FechaNum"]));
|
||||
if (hdr != null)
|
||||
{
|
||||
if (hdr["InicioVac"].ToString() == "1")
|
||||
{
|
||||
stringBuilder.AppendFormat("<td class='info{1} text-center' colspan='{0}'>{0}</td>", hdr["diasvac"], (dr["MinMes"].ToString() == "1" ? " borderleft " : ""));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (TDiaspersonal.FiltroPrimero(string.Format("Anio={0} AND Mes ={1}", dr["Anio"], dr["Mes"])) != null)
|
||||
{
|
||||
stringBuilder.AppendFormat("<td class='{0}'></td>", (dr["MinMes"].ToString() == "1" ? " borderleft " : ""));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (dr["MinMes"].ToString() == "1")
|
||||
{
|
||||
|
||||
stringBuilder.AppendFormat("<td class='borderleft' colspan='{0}'></td>", dr["DiasMes"]);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
return stringBuilder.ToString();
|
||||
}
|
||||
public string columnapersonal(int dia, DataTable TDiaspersonal)
|
||||
{
|
||||
return string.Format("<td></td>");
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -158,6 +312,9 @@ public class Registro
|
||||
public DateTime FechaAntiguedad { get; set; }
|
||||
public int Antiguedad { get; set; }
|
||||
public List<EjercicioInfo> Ejercicios { get; set; }
|
||||
//public DataTable TDiaspersonal { get; set; }
|
||||
public string ColumnasinicioFin { get; set; }
|
||||
public string ColumnasVacaciones { get; set; }
|
||||
}
|
||||
|
||||
public class EjercicioInfo
|
||||
|
||||
BIN
Nomina/RobloxPlayerInstaller.exe
Normal file
BIN
Nomina/RobloxPlayerInstaller.exe
Normal file
Binary file not shown.
Reference in New Issue
Block a user