From ebd0cc9b8a815fcb0e8f808eddc051fef5f96d19 Mon Sep 17 00:00:00 2001 From: JORGE LUIS CAUDILLO ESPARZA Date: Tue, 23 Feb 2021 01:54:01 -0700 Subject: [PATCH] --- App_Code/CFDITimbre.vb | 2 +- App_Code/ClsNominas.vb | 30 ++ App_Code/ClsPaginas.vb | 44 +- App_Code/LogicNominas.vb | 26 +- App_Code/Timbrado.vb | 2 +- Contabilidad/RegPrePolizaS.aspx | 405 +++++++++------- Empresas/119/Formatos/Nomina.rdlc | 561 ++++++++++++++++++++-- GPS/WizardDispositivos.aspx.cs | 2 +- Nomina/Nomina2.aspx | 28 +- Nomina/Nomina2.aspx.cs | 105 ++++- Nomina/ReportedeAcumulados.aspx | 441 +++++++++++++++++ Nomina/ReportedeAcumulados.aspx.cs | 730 +++++++++++++++++++++++++++++ RH/Personal.aspx | 77 +-- RH/Personal.aspx.vb | 66 ++- vwd.webinfo | 4 + 15 files changed, 2202 insertions(+), 321 deletions(-) create mode 100644 Nomina/ReportedeAcumulados.aspx create mode 100644 Nomina/ReportedeAcumulados.aspx.cs diff --git a/App_Code/CFDITimbre.vb b/App_Code/CFDITimbre.vb index 4648e11e5..da170c392 100644 --- a/App_Code/CFDITimbre.vb +++ b/App_Code/CFDITimbre.vb @@ -367,7 +367,7 @@ Public Class CFDINominaOtrosPagos Public Property Subsidiocausado As Decimal Public Property RemanenteSalFav As Decimal Public Property ejercicio As Integer - Public Property SaldoAFavor As Integer + Public Property SaldoAFavor As Decimal End Class diff --git a/App_Code/ClsNominas.vb b/App_Code/ClsNominas.vb index 79507b7fc..75a06a6fe 100644 --- a/App_Code/ClsNominas.vb +++ b/App_Code/ClsNominas.vb @@ -2001,6 +2001,36 @@ Public Class ClsNominas End With + SqlAdapter.Fill(DTSet) + retorno = True + Catch sqEx As SqlException + retorno = False + OnError("Ocurrió un error al Realizar el calculo de nomina.", sqEx, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + Catch ex As Exception + retorno = False + OnError("Ocurrió un error al Realizar el calculo de nomina.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return retorno + End Function + Public Function GetNominaAcumulado(Ejercicio As Integer, CveProyecto As Integer, CveSubProyecto As Integer, CveTurno As Integer, CvePeriodoI As Integer, CvePeriodoF As Integer, CveEmpresa As Integer, Optional RegimenContratacion As Integer = 1, Optional CvePersonal As Integer = -1) As Boolean + Dim retorno As Boolean = False + + Try + DTSet = New DataSet() + DataAdapter("PA_Nom_ReporteAcumulado", CommandType.StoredProcedure) + With SqlAdapter.SelectCommand.Parameters + .Add("@Ejercicio", SqlDbType.Int).Value = Ejercicio + .Add("@CveProyecto", SqlDbType.Int).Value = CveProyecto + .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto + .Add("@CveTurno", SqlDbType.Int).Value = CveTurno + .Add("@CvePeriodoI", SqlDbType.Int).Value = CvePeriodoI + .Add("@CvePeriodoF", SqlDbType.Int).Value = CvePeriodoF + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@RegimenContratacion", SqlDbType.Int).Value = RegimenContratacion + .Add("@CvePersonal", SqlDbType.Decimal).Value = CvePersonal + End With + + SqlAdapter.Fill(DTSet) retorno = True Catch sqEx As SqlException diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index fa913b16f..85eb32967 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -4674,6 +4674,7 @@ Public Class ClsPaginas PaginaDict.Add("/Nomina/Nomina.aspx".ToUpper(), 75) PaginaDict.Add("/Nomina/NominaB.aspx".ToUpper(), 75) PaginaDict.Add("/Nomina/Nomina2.aspx".ToUpper(), 75) + PaginaDict.Add("/Nomina/ReportedeAcumulados.aspx".ToUpper(), 75) PaginaDict.Add("/Nomina/ListaAsistencias.aspx".ToUpper(), 91) PaginaDict.Add("/Nomina/ConceptosEspeciales.aspx".ToUpper(), 136) PaginaDict.Add("/Nomina/CatConceptos.aspx".ToUpper(), 172) @@ -7790,6 +7791,7 @@ Public Class ClsPaginas #End Region #Region "PDF NOMINA" + Public Function GeneraPDFNomina(CvePersonal As Integer, CvePeriodo As Integer, CveEmpresa As Integer, RutaEmpresa As String) As Byte() Dim ObjNomina As New ClsNominas @@ -7807,6 +7809,7 @@ Public Class ClsPaginas Dim CveNomina = ObjNomina.CveNomina Dim DTPercepciones As Data.DataTable Dim DTDeducciones As Data.DataTable + Dim DTDeducciones2 As New Data.DataTable Dim Ruta As String = $"{ModExtensiones.DirectorioBaseEmpresas}Empresas\{CveEmpresa}\" Dim PathXML As String = $"{Ruta}XML\Nomina\{ObjNomina.SerieFolio}.xml" @@ -7818,7 +7821,6 @@ Public Class ClsPaginas SelloSAT = "" NoSerieCertificadoContribuyente = "" - Dim RutaCBB As String = String.Format("{0}CBB\Nomina\{1}.jpg", RutaEmpresa, ObjNomina.SerieFolio) Dim ImagenCBB As New System.IO.FileInfo(RutaCBB) Dim ImgCBB As String @@ -7904,7 +7906,8 @@ Public Class ClsPaginas RptParametro.Add(New ReportParameter("NSS", ObjPersonal.NumeroSS)) RptParametro.Add(New ReportParameter("Departamento", ObjPersonal.Departamento)) - RptParametro.Add(New ReportParameter("Puesto", ObjPersonal.Puesto.ToString)) + RptParametro.Add(New ReportParameter("Puesto", ObjPersonal.Puesto.ToString())) + RptParametro.Add(New ReportParameter("FechaIngreso", ObjPersonal.FechaIngreso.ToString("dd/MM/yyyy"))) RptParametro.Add(New ReportParameter("Contrato", ObjPersonal.TipoContrato.ToString)) @@ -7925,7 +7928,7 @@ Public Class ClsPaginas RptParametro.Add(New ReportParameter("Periodo", ObjNomina.TipoPeriodo)) RptParametro.Add(New ReportParameter("DiasPagados", ObjNomina.DiasPagados.ToString)) - RptParametro.Add(New ReportParameter("MetodoPago", """PUE"" (Pago en una sola exhibición)")) + RptParametro.Add(New ReportParameter("MetodoPago", ObjNomina.MetodoPago)) '"""PUE"" (Pago en una sola exhibición)" RptParametro.Add(New ReportParameter("FormaPago", """99"" (Por definir)")) RptParametro.Add(New ReportParameter("Cantidad", "1")) @@ -7957,6 +7960,7 @@ Public Class ClsPaginas If ObjNomina.GetNom_NominasDetalles(CveNomina, CvePersonal, CvePeriodo, "-1") Then DTPercepciones = ObjNomina.DtResultados.FiltraParametros("(Tipo = 'P' OR (Tipo = 'D' AND Importe <0)) AND Importe <>0 AND EsPadre = 1 AND SoloVisible =0") DTDeducciones = ObjNomina.DtResultados.FiltraParametros("Tipo = 'D' AND Importe >0 AND EsPadre = 1 AND SoloVisible =0") + DTDeducciones2 = ObjNomina.DtResultados.FiltraParametros("(Tipo = 'D' AND Importe >0 AND EsPadre = 1 AND SoloVisible =0) OR CveConcepto IN (1471,1491)", "Orden") For Each row As DataRow In DTPercepciones.Rows If row("Tipo").ToString() = "D" Then row("Codigo") = row("Codigo").ToString().Replace("D", "OP") @@ -7971,6 +7975,7 @@ Public Class ClsPaginas RptParametro.Add(New ReportParameter("PU", DTPercepciones.SUM("Importe").ToString())) RptParametro.Add(New ReportParameter("Importe", DTPercepciones.SUM("Importe").ToString())) + RptParametro.Add(New ReportParameter("ImporteDeducciones", DTDeducciones.SUM("Importe").ToString())) RptParametro.Add(New ReportParameter("SubTotal", DTPercepciones.SUM("Importe").ToString())) RptParametro.Add(New ReportParameter("Descuentos", DTDeducciones.SUM("Importe", "SATCveConcepto <> '002'").ToString())) @@ -7989,10 +7994,20 @@ Public Class ClsPaginas Dim rds2 = New ReportDataSource() - Dim limagenes = New List(Of utilImage)() - limagenes.Add(New utilImage(cQr)) + + Dim dtqr As New DataTable + + Dim column As DataColumn = New DataColumn("ImagenByte") + column.DataType = System.Type.[GetType]("System.Byte[]") + column.AllowDBNull = True + column.Caption = "ImagenByte" + dtqr.Columns.Add(column) + Dim rowqr As DataRow = dtqr.NewRow() + rowqr("ImagenByte") = cQr + + dtqr.Rows.Add(rowqr) rds2.Name = "dsImagenes" - rds2.Value = limagenes + rds2.Value = dtqr LSRds.Add(rds2) @@ -8003,7 +8018,7 @@ Public Class ClsPaginas Dim RDS As New ReportDataSource RDS.Name = "DataSet1" - RDS.Value = DTDeducciones + RDS.Value = DTDeducciones2 LSRds.Add(RDS) Dim Archivo As New System.IO.FileInfo(RutaFormato) @@ -8018,6 +8033,7 @@ Public Class ClsPaginas File.WriteAllBytes(String.Format("{0}PDF\Nomina\{1}.pdf", RutaEmpresa, ObjNomina.SerieFolio), Retorno) Catch ex As Exception Alert("Ocurrió un error al generar el PDF", TipoMensaje.MsgAdvertencia) + GuardaLog(String.Format("Ocurrió un error al generar el PDF {0}", ex)) End Try End If Else @@ -8038,12 +8054,6 @@ Public Class ClsPaginas Return Retorno End Function - Public Class utilImage - Public Sub New(imagenByte As Byte()) - Me.ImagenByte = imagenByte - End Sub - Public Property ImagenByte As Byte() - End Class #End Region #Region "PDF PAGOS" @@ -8309,7 +8319,7 @@ Public Class ClsPaginas End Sub #End Region - Public Sub CargarCentrosDeCosto(DdlProyecto As DropDownList, DdlSubProyecto As DropDownList, LthProyectoP As Label, LblSubProyecto As Label, Optional AplicaTodos As String = "Todos") + Public Sub CargarCentrosDeCosto(DdlProyecto As DropDownList, DdlSubProyecto As DropDownList, LthProyectoP As Label, LblSubProyecto As Label, Optional AplicaTodos As String = "Todos", Optional DdlSubProyectoMultiple As ListBox = Nothing) Select Case UsuarioActual.Empresa.Tipo_CentroCosto Case 1 If DdlProyecto IsNot Nothing Then DdlProyecto.Visible = False @@ -8337,6 +8347,12 @@ Public Class ClsPaginas If AplicaTodos <> "" Then DdlProyecto.Items.Insert(0, New ListItem(AplicaTodos, "-1")) End If + If DdlSubProyectoMultiple IsNot Nothing Then + + DdlSubProyectoMultiple.DataSource = If(Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1), GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa, 1)) + DdlSubProyectoMultiple.DataBind() + If AplicaTodos <> "" Then DdlSubProyectoMultiple.Items.Insert(0, New ListItem(AplicaTodos, "-1")) + End If If DdlSubProyecto IsNot Nothing Then DdlSubProyecto.DataSource = If(Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1), GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa, 1)) DdlSubProyecto.DataBind() diff --git a/App_Code/LogicNominas.vb b/App_Code/LogicNominas.vb index c8fd108b0..e378f3aae 100644 --- a/App_Code/LogicNominas.vb +++ b/App_Code/LogicNominas.vb @@ -144,8 +144,10 @@ Public Class LogicNominas End If If continuar AndAlso objNomina.GetNom_NominasDetalles(CveNomina, CvePersonal, CvePeriodo, "-1") Then If objNomina.DtResultados.Rows.Count > 0 Then - DtPercepciones = objNomina.DtResultados.FiltraParametros("Tipo = 'P' AND EsPadre = 1 AND SoloVisible =0") - DtDeducciones = objNomina.DtResultados.FiltraParametros("Tipo = 'D' AND EsPadre = 1 AND SoloVisible =0 AND (TipoConceptoSAT<>'O' OR TipoConceptoSAT IS NULL)") + Dim filtropercepciones As String = "Tipo = 'P' AND EsPadre = 1 AND SoloVisible =0" + DtPercepciones = objNomina.DtResultados.FiltraParametros(filtropercepciones) + Dim filtrodeduc As String = "Tipo = 'D' AND EsPadre = 1 AND SoloVisible =0 AND (TipoConceptoSAT<>'O' OR TipoConceptoSAT IS NULL)" + DtDeducciones = objNomina.DtResultados.FiltraParametros(filtrodeduc) DtOtrosPagos = objNomina.DtResultados.FiltraParametros(" TipoConceptoSAT='O'") Dim disrcomp As DataRow = DtOtrosPagos.FiltroPrimero("Codigo ='D999'") For Each drow As DataRow In DtDeducciones.Rows @@ -183,6 +185,9 @@ Public Class LogicNominas If continuar AndAlso objPersonal.GetAsistencias(CvePersonal, -1, -1, -1, -1, -1, FechaInicio, FechaFin, UsuarioActual.CveEmpresa) Then Dim Asistencias As Integer = objPersonal.DtResultados.SUM("AplicaAsistencia").ToEntero() + 'If Asistencias > 15 Then + ' Asistencias = 15 + 'End If Dim Vacaciones As Integer = objPersonal.DtResultados.SUM("AplicaVacacion").ToEntero() DiasIncapacitados = objPersonal.DtResultados.SUM("AplicaIncapacidad").ToEntero() DiasPagados = Asistencias - Vacaciones @@ -279,18 +284,19 @@ Public Class LogicNominas End If 'subsidio al empleo - 'If Row("SATCveConcepto").ToString().ToEntero().ToEntero() = 17 AndAlso Row("Importe").ToString().ToDecimal > 0 Then 'Subsidio - ' ObjOtrosPagos.Add(New CFDINominaOtrosPagos With {.TipoOtroPago = "002", ' codigo fijo, por ser referente a subsidio al empleo - ' .Clave = Row("Codigo").ToString(), .Concepto = Row("Concepto").ToString(), .Importe = Row("Importe").ToString().ToDecimal}) - 'End If + If Row("SATCveConcepto").ToString().ToEntero().ToEntero() = 17 AndAlso Row("Importe").ToString().ToDecimal > 0 Then 'Subsidio + ObjOtrosPagos.Add(New CFDINominaOtrosPagos With {.TipoOtroPago = "002", ' codigo fijo, por ser referente a subsidio al empleo + .Clave = Row("Codigo").ToString(), .Concepto = Row("Concepto").ToString(), .Importe = Row("Importe").ToString().ToDecimal}) + End If Next End If If DtOtrosPagos IsNot Nothing AndAlso DtOtrosPagos.Rows.Count > 0 Then For Each Row As DataRow In DtOtrosPagos.Rows + If (Row("Importe").ToString().ToDecimal() > 0) OrElse - (Row("SATCveConcepto").ToString().ToEntero().ToEntero() = 2 AndAlso (CveRegimenContratacion.ToEntero() = 2 OrElse Row("Importe").ToString().ToDecimal() <> 0)) OrElse - (Row("SATCveConcepto").ToString().ToEntero().ToEntero().Contiene(2, 4) AndAlso Row("Importe").ToString().ToDecimal() < 0) Then + (Row("SATCveConcepto").ToString().ToEntero() = 2 AndAlso (CveRegimenContratacion.ToEntero() = 2 OrElse Row("Importe").ToString().ToDecimal() <> 0)) OrElse + (Row("SATCveConcepto").ToString().ToEntero().Contiene(2, 4) AndAlso Row("Importe").ToString().ToDecimal() < 0) Then If Row("CveSATConcepto").ToString() = "" Then cfdi.AddMsg(String.Format("Concepto No registrado ({0})", Row("Concepto").ToString())) : Exit For Dim otrp = New CFDINominaOtrosPagos With {.TipoOtroPago = Row("SATCveConcepto").ToString(), .Clave = Row("Codigo").ToString(), .Concepto = Row("Concepto").ToString(), @@ -298,11 +304,11 @@ Public Class LogicNominas ObjOtrosPagos.Add(otrp) - If Row("SATCveConcepto").ToString().ToEntero().ToEntero() = 7 AndAlso Row("Importe").ToString().ToDecimal > 0 Then 'Subsidio + If Row("SATCveConcepto").ToString().ToEntero() = 7 AndAlso Row("Importe").ToString().ToDecimal > 0 Then 'Subsidio ObjDeducciones.Add(New CFDINominaDeducciones With {.TipoDeduccion = "002", ' codigo fijo .Clave = Row("Codigo").ToString(), .Concepto = "ISR", .Importe = Row("Importe").ToString().ToDecimal}) End If - If Row("SATCveConcepto").ToString().ToEntero().ToEntero() = 8 AndAlso Row("Importe").ToString().ToDecimal > 0 Then 'Subsidio + If Row("SATCveConcepto").ToString().ToEntero() = 8 AndAlso Row("Importe").ToString().ToDecimal > 0 Then 'Subsidio ObjDeducciones.Add(New CFDINominaDeducciones With {.TipoDeduccion = "071", ' codigo fijo .Clave = Row("Codigo").ToString(), .Concepto = "(Ajuste en Subsidio para el empleo (efectivamente entregado al trabajador)", .Importe = Row("Importe").ToString().ToDecimal}) End If diff --git a/App_Code/Timbrado.vb b/App_Code/Timbrado.vb index 26418aaed..9a5f4a0c9 100644 --- a/App_Code/Timbrado.vb +++ b/App_Code/Timbrado.vb @@ -2061,7 +2061,7 @@ Public Class Timbrado If otpag.TipoOtroPago = "004" AndAlso otpag.Importe > 0 Then If otpag.ejercicio > 0 Then - cfdi.CompensacionSaldosAFavor(otpag.Importe, otpag.ejercicio, otpag.RemanenteSalFav) 'otpag.SaldoAFavor + cfdi.CompensacionSaldosAFavor(otpag.SaldoAFavor, otpag.ejercicio, otpag.RemanenteSalFav) 'otpag.SaldoAFavor End If End If diff --git a/Contabilidad/RegPrePolizaS.aspx b/Contabilidad/RegPrePolizaS.aspx index 5d6f271af..286ca172c 100644 --- a/Contabilidad/RegPrePolizaS.aspx +++ b/Contabilidad/RegPrePolizaS.aspx @@ -273,7 +273,7 @@
- +
@@ -309,86 +309,112 @@
- - - - Cuenta - -
- -
- -
- - Referencia - - - - - - - Concepto - - - - - - - SubProyecto - - - - - - - TipoGasto - - - - - - - Ref. Bancaria - - - - - - - Cargo - - - - - - - Abono - - - - - - - - - - - - - - - - - - - -
- - - -
+
+
+
+ + Movimientos +
+ +
+ + +
+
+
+
+
+
+ + +
+
+
+ + + + Cuenta + +
+ +
+ +
+ + Referencia + + + + + + + Concepto + + + + + + + SubProyecto + + + + + + + TipoGasto + + + + + + + Ref. Bancaria + + + + + + + Cargo + + + + + + + Abono + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
@@ -396,116 +422,141 @@
- - - - Movimiento - -
-<%-- +
+
+
+ + Movimientos +
+ +
+ + +
+
+
+
+
+
+ + +
+
+
+ + + + + Movimiento + +
+ <%-- --%> -
- -
+ + + - - Documento - - -
-
- -
+ + Documento + + +
+
+ +
- - Referencia - -
-
- -
+ + Referencia + +
+
+ +
- - Concepto - -
-
- -
- - - SubProyecto + + Concepto + +
+
+ +
+ + + SubProyecto <%-- --%> - - -
- <%----%> - <%--
--%> -
- -
- - TipoGasto - -
- <%----%> - <%----%> -
- -
- - Cuenta - -
- <%----%> - <%--
--%> -
- -
- - TC - -
-
- -
- - Cargo - -
-
-
- <%-- +
+ +
+ <%----%> + <%--
--%> +
+ +
+ + TipoGasto + +
+ <%----%> + <%----%> +
+ +
+ + Cuenta + +
+ <%----%> + <%--
--%> +
+ +
+ + TC + +
+
+ +
+ + Cargo + +
+
+
+ <%-- --%> -
-
- - Abono - -
-
-
- <%-- +
+
+ + Abono + +
+
+
+ <%-- --%> -
-
+ + - - - - - - + + + + + + -
- - - -
+ + + + + +
+
@@ -650,7 +701,7 @@ - +
diff --git a/Empresas/119/Formatos/Nomina.rdlc b/Empresas/119/Formatos/Nomina.rdlc index 939e14537..7692f9b8c 100644 --- a/Empresas/119/Formatos/Nomina.rdlc +++ b/Empresas/119/Formatos/Nomina.rdlc @@ -656,8 +656,8 @@ DsOC - 8.83958cm - 0.1598cm + 8.8134cm + 0.14687cm 2.05138cm 10.0953cm @@ -1085,7 +1084,7 @@ - Textbox230 + Textbox4 @@ -1097,7 +1096,6 @@ 2pt 2pt 2pt - es-MX @@ -1234,8 +1232,8 @@ DataSet1 - 8.84178cm - 10.25511cm + 8.8156cm + 10.24218cm 2.05606cm 9.79494cm 1 @@ -1266,10 +1264,10 @@ - 5.73971cm + 7.3669cm - 5.74636cm + 7.37355cm @@ -1517,7 +1515,7 @@ - 0.6cm + 0.57354cm @@ -1557,7 +1555,7 @@ - 0.6cm + 0.44125cm @@ -1689,10 +1687,10 @@ dsImagenes - 0.09122cm - 4.46868cm - 5.4cm - 11.48607cm + 0.11768cm + 5.05803cm + 5.21479cm + 14.74044cm 1 + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Parameters!FechaIngreso.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + 2 + + + + + + + true + true + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.44124cm @@ -3718,7 +3921,7 @@ Lugar de expedición: 83220 Hermosillo - 0.54708cm + 0.44125cm @@ -4152,7 +4355,7 @@ Lugar de expedición: 83220 Hermosillo - 0.46771cm + 0.44125cm @@ -4381,7 +4584,7 @@ Lugar de expedición: 83220 Hermosillo - 0.52062cm + 0.49416cm @@ -4646,13 +4849,14 @@ Lugar de expedición: 83220 Hermosillo + DsOC 2.45745cm - 0.29576cm - 6.22103cm - 19.75428cm + 0.14687cm + 6.13312cm + 19.90317cm 5 - Textbox216 @@ -4812,7 +5018,9 @@ Lugar de expedición: 83220 Hermosillo - Textbox221 @@ -4883,7 +5091,9 @@ Lugar de expedición: 83220 Hermosillo - Textbox224 @@ -4987,10 +5197,10 @@ Lugar de expedición: 83220 Hermosillo DsOC - 0.12976cm - 13.50372cm + 0.05745cm + 12.97684cm 2.4cm - 6.55925cm + 7.0732cm 7 + + + + + 11.53918cm + + + 2.5cm + + + 5.85106cm + + + + + 0.6cm + + + + + true + true + + + + + Recibí de la empresa arriba mencionada, la cantidad neta a que este documento, se refiere, estando conforme con las Percepciones y deducciones que en el aparecen especificados. + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + + Black + + 1pt + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.52062cm + + + + + true + true + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Parameters!NombreCompleto.Value + + + + + + + Textbox17 + + + + Black + + 1pt + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + + + + DsOC + 19.20744cm + 0.14687cm + 1.12062cm + 19.89024cm + 8 + + + + - 19.28653cm + 20.50445cm + + + + + + +
  • + Imprimir +
  • +
    + + + + + + +
    +
    +
    +
    + +
    + +
    + + +
    + + + +
    + + +
    + +
    + +
    + +
    +
    + +
    +
    +
    +
    + +
    +
    + +
    + +
    +
    + + + + + + + + +
    +
    +
    + + Acumulados nómina +
    + +
    + + +
    +
    +
    +
    +
    +
    + + +
    +
    +
    + + + + + + + + + + + Nombre + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    + + + +
    +
    +
    +
    +
    + +
    +
    + +
    +
    + + + diff --git a/Nomina/ReportedeAcumulados.aspx.cs b/Nomina/ReportedeAcumulados.aspx.cs new file mode 100644 index 000000000..e38e94e74 --- /dev/null +++ b/Nomina/ReportedeAcumulados.aspx.cs @@ -0,0 +1,730 @@ +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_ReportedeAcumulados : ClsPaginas +{ + #region Propiedades + private int FilaConceptos + { + get { return 5; } + } + + private DataTable dtConceptos + { + get + { + if (ViewState["dtConceptos"] == null) { return null; } + else { return (DataTable)ViewState["dtConceptos"]; } + } + + set { ViewState["dtConceptos"] = value; } + } + + private DataTable dtempleados + { + get + { + if (ViewState["dtempleados"] == null) { return null; } + else { return (DataTable)ViewState["dtempleados"]; } + } + + set { ViewState["dtempleados"] = value; } + } + + protected int FiltCveProyecto + { + get + { + if (ViewState["FiltCveProyecto"] == null) { return 0; } + else { return ViewState["FiltCveProyecto"].ToString().ToEntero(); } + } + + set { ViewState["FiltCveProyecto"] = value; } + } + protected int FiltCveSubProyecto + { + get + { + if (ViewState["FiltCveSubProyecto"] == null) { return 0; } + else { return ViewState["FiltCveSubProyecto"].ToString().ToEntero(); } + } + + set { ViewState["FiltCveSubProyecto"] = value; } + } + protected int FiltCveTurno + { + get + { + if (ViewState["FiltCveTurno"] == null) { return 0; } + else { return ViewState["FiltCveTurno"].ToString().ToEntero(); } + } + + set { ViewState["FiltCveTurno"] = value; } + } + protected int FiltCvePeriodoI + { + get + { + if (ViewState["FiltCvePeriodoI"] == null) { return 0; } + else { return ViewState["FiltCvePeriodoI"].ToString().ToEntero(); } + } + + set { ViewState["FiltCvePeriodoI"] = value; } + } + protected int FiltCvePeriodoF + { + get + { + if (ViewState["FiltCvePeriodoF"] == null) { return 0; } + else { return ViewState["FiltCvePeriodoF"].ToString().ToEntero(); } + } + + set { ViewState["FiltCvePeriodoF"] = value; } + } + #endregion + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + cargaEjercicios(); + CargaTiposPeriodo(); + CargarCentrosDeCosto(DdlProyecto,null,LblProyecto,LblSubProyeccto,"");//DdlSubProyecto + divddlproyeto.Visible = DdlProyecto.Visible; + //CargarCentrosDeCosto(DdlProyecto As DropDownList, DdlSubProyecto As DropDownList, LthProyectoP As Label, LblSubProyecto As Label, Optional AplicaTodos As String = "Todos", Optional DdlSubProyectoMultiple As ListBox = Nothing) + } + } + + protected void LnkConsultar_Click(object sender, EventArgs e) + { + FiltCveProyecto = DdlProyecto.SelectedValue.ToEntero(); + FiltCveSubProyecto = -1; + FiltCveTurno = DdlTurno.SelectedValue.ToEntero(); + FiltCvePeriodoI = TxtPeriodoInicio.Text.ToEntero(); + FiltCvePeriodoF = TxtPeriodoFin.Text.ToEntero(); + cargaDatos(); + } + + private void cargaEjercicios() + { + int EjercicioActual = UsuarioActual.Empresa.EjercicioActual; + if (EjercicioActual == 0) + { + EjercicioActual = DateTime.Now.Year; + } + DataTable dtejercicio = null; + using (ClsNominas objnom = new ClsNominas()) + { + if (objnom.GetEjercicios(UsuarioActual.CveEmpresa)) + { + dtejercicio = objnom.DtResultados; + } + } + DdlEjercicios.DataSource = dtejercicio; + DdlEjercicios.DataBind(); + ListItem litem = null; + if ((dtejercicio != null) && dtejercicio.Rows.Count > 0) + { + if (dtejercicio.COUNT("Ejercicio", string.Format("Ejercicio={0}", EjercicioActual)) == 0) + { + litem = new ListItem(EjercicioActual.ToString(), EjercicioActual.ToString()); + DdlEjercicios.Items.Insert(0, litem); + } + if (dtejercicio.COUNT("Ejercicio", string.Format("Ejercicio={0}", (EjercicioActual - 1))) == 0) + { + litem = new ListItem((EjercicioActual - 1).ToString(), (EjercicioActual - 1).ToString()); + DdlEjercicios.Items.Insert(1, litem); + } + } + else + { + litem = new ListItem(EjercicioActual.ToString(), EjercicioActual.ToString()); + DdlEjercicios.Items.Insert(0, litem); + litem = new ListItem((EjercicioActual - 1).ToString(), (EjercicioActual - 1).ToString()); + DdlEjercicios.Items.Insert(0, litem); + + } + if (DdlEjercicios.Items.Count > 0) + { + DdlEjercicios.SelectedIndex = 0; + } + DdlEjercicios.SelectedValueExist(DateTime.Now.Year.ToString()); + } + private void CargaTiposPeriodo() + { + DdlTipoPeriodo.DataSource = GlobalDTTipoPeriodo.FiltraParametros("Estatus = 'Activo'"); + DdlTipoPeriodo.DataBind(); + DdlTipoPeriodo.Items.Insert(0, new ListItem("Seleccione", "-1")); + if (DdlTipoPeriodo.Items.Count > 0) + { + DdlTipoPeriodo.SelectedIndex = 0; + } + } + + + + public void cargaDatos() + { + int CveEmpresa = UsuarioActual.CveEmpresa; + int Ejercicio = DdlEjercicios.SelectedValue.ToEntero(); + bool continuar = false; + dtempleados = null; + dtConceptos = null; + DataTable dtPeriodo = new DataTable(); + DataTable dtasistencia = new DataTable(); + + + using (ClsNominas objnom = new ClsNominas()) + { + if (objnom.GetNominaAcumulado(Ejercicio, FiltCveProyecto, FiltCveSubProyecto, FiltCveTurno, FiltCvePeriodoI, FiltCvePeriodoF, CveEmpresa, DdlRegimenContratacion.SelectedValue.ToEntero()) && objnom.DTSetResultados.Tables.Count > 1) + { + dtempleados = objnom.DTSetResultados.Tables[1]; + dtConceptos = objnom.DTSetResultados.Tables[0]; + continuar = true; + } + + } + + #region CargaGrid + if (continuar) + { + + string ctipo = "P"; + + int CurrentColumn = 2; + BoundField bf; + foreach (DataRow row in dtConceptos.FiltraParametros("Tipo IN ('P') 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) + { + + 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) + { + CurrentColumn++; + } + } + if (true) + { + BoundField field = (BoundField)GvNominas.Columns[CurrentColumn]; + + field.HeaderText = "Percepciones"; + field.DataField = "SumaPercepciones"; + field.ItemStyle.BackColor = System.Drawing.Color.LightGray; + GvNominas.Columns[CurrentColumn].Visible = true; + CurrentColumn++; + } + + foreach (DataRow row in dtConceptos.FiltraParametros("Tipo IN ('D') 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) + { + 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) + { + CurrentColumn++; + } + } + + if (true) + { + BoundField field = (BoundField)GvNominas.Columns[CurrentColumn]; + field.HeaderText = "Deducciones"; + field.DataField = "SumaDeducciones"; + field.ItemStyle.BackColor = System.Drawing.Color.LightGray; + GvNominas.Columns[CurrentColumn].ItemStyle.CssClass = " "; + GvNominas.Columns[CurrentColumn].HeaderStyle.CssClass = " "; + GvNominas.Columns[CurrentColumn].Visible = true; + CurrentColumn++; + + field = (BoundField)GvNominas.Columns[CurrentColumn]; + field.HeaderText = "Total"; + field.DataField = "Total"; + field.ItemStyle.BackColor = System.Drawing.Color.DarkGray; + field.ItemStyle.CssClass = "TotalWhite"; + field.HeaderStyle.CssClass = "TotalWhite"; + + GvNominas.Columns[CurrentColumn].Visible = true; + CurrentColumn++; + } + + 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) + { + 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) + { + 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++; + } + for (int i = CurrentColumn; i < 102; i++) + { + bf = (BoundField)GvNominas.Columns[i]; + bf.DataField = ""; + bf.HeaderText = ""; + GvNominas.Columns[i].ItemStyle.BackColor = System.Drawing.Color.Transparent; + GvNominas.Columns[CurrentColumn].ItemStyle.CssClass = " "; + GvNominas.Columns[CurrentColumn].HeaderStyle.CssClass = " "; + GvNominas.Columns[i].Visible = false; + + } + bool tr = false; + setGVNominas(); + } + else + { + + GvNominas.DataSource = null; + GvNominas.DataBind(); + } + #endregion + UpDatos.Update(); + } + + private void setGVNominas() + { + string filtrogrupo = ""; + DataTable dt = dtempleados.Copy(); + if (DdlAgrupadorB.SelectedValue == "1") + { + foreach (DataRow drow in dtempleados.FiltraParametros("CvePersonal > 0", "", new string[] { "CveSubProyecto", "SubProyecto" }).Rows) + { + DataRow dr = dt.NewRow(); + filtrogrupo = (drow["CveSubProyecto"] == DBNull.Value ? "CveSubProyecto IS NULL AND CvePersonal>0 " : string.Format("CveSubProyecto = {0} AND CvePersonal>0", drow["CveSubProyecto"])); + foreach (DataRow row in dtConceptos.FiltraParametros("EsPadre = 1 ").Rows) + { + int CveConcepto = row["CveConcepto"].ToString().ToEntero(); + dr[string.Format("V_{0}", CveConcepto)] = dtempleados.SUM(string.Format("[V_{0}]", CveConcepto), filtrogrupo); + } + dr["CveSubProyecto"] = drow["CveSubProyecto"]; + dr["SubProyecto"] = drow["SubProyecto"]; + dr["SumaPercepciones"] = dtempleados.SUM("SumaPercepciones", filtrogrupo); + dr["SumaDeducciones"] = dtempleados.SUM("SumaDeducciones", filtrogrupo); + dr["Total"] = dtempleados.SUM("Total", filtrogrupo); + dr["SumaObligaciones"] = dtempleados.SUM("SumaObligaciones", filtrogrupo); + + dt.Rows.Add(dr); + } + dt.AcceptChanges(); + dt = dt.FiltraParametros("", "CveSubProyecto,SubProyecto,Codigo,Nombre"); + } + if (DdlAgrupadorB.SelectedValue == "2") + { + + foreach (DataRow drow in dtempleados.FiltraParametros("CvePersonal > 0", "", new string[] { "CveDepartamento", "Departamento" }).Rows) + { + DataRow dr = dt.NewRow(); + filtrogrupo = (drow["CveDepartamento"] == DBNull.Value ? "CveDepartamento IS NULL AND CvePersonal>0 " : string.Format("CveDepartamento = {0} AND CvePersonal>0", drow["CveDepartamento"])); + foreach (DataRow row in dtConceptos.FiltraParametros("EsPadre = 1 ").Rows) + { + int CveConcepto = row["CveConcepto"].ToString().ToEntero(); + dr[string.Format("V_{0}", CveConcepto)] = dtempleados.SUM(string.Format("[V_{0}]", CveConcepto), filtrogrupo); + } + dr["CveDepartamento"] = drow["CveDepartamento"]; + dr["Departamento"] = drow["Departamento"]; + dr["SumaPercepciones"] = dtempleados.SUM("SumaPercepciones", filtrogrupo); + dr["SumaDeducciones"] = dtempleados.SUM("SumaDeducciones", filtrogrupo); + dr["Total"] = dtempleados.SUM("Total", filtrogrupo); + dr["SumaObligaciones"] = dtempleados.SUM("SumaObligaciones", filtrogrupo); + + dt.Rows.Add(dr); + } + dt.AcceptChanges(); + dt = dt.FiltraParametros("", "CveDepartamento,Departamento,Codigo,Nombre"); + } + GvNominas.DataSource = dt; + GvNominas.DataBind(); + } + + + protected void LnkFormatoTabular_Click(object sender, EventArgs e) + { + FiltCveProyecto = DdlProyecto.SelectedValue.ToEntero(); + FiltCveSubProyecto = -1; + FiltCveTurno = DdlTurno.SelectedValue.ToEntero(); + FiltCvePeriodoI = TxtPeriodoInicio.Text.ToEntero(); + FiltCvePeriodoF = TxtPeriodoFin.Text.ToEntero(); + cargaDatos(); + if (dtempleados.Rows.Count > 0) + { + + try + { + ClosedXML.Excel.XLWorkbook wb = new ClosedXML.Excel.XLWorkbook(); + var libro = wb.AddWorksheet("Nomina"); + int column = 1; + libro.Cell(1, column).Value = " "; + libro.Cell(2, column).Value = "Codigo"; + libro.Cell(3, column).Value = " "; + column++; + libro.Cell(1, column).Value = " "; + libro.Cell(2, column).Value = "Empleado"; + libro.Cell(3, column).Value = " "; + libro.Column(column).Width = 35; + + int iniciotipe = column; + foreach (DataRow row in dtConceptos.FiltraParametros("Tipo ='P' AND EsPadre = 1 ").Rows) + { + + column++; + libro.Cell(2, column).Value = row["Concepto"].ToString(); + libro.Cell(3, column).Value = row["Codigo"].ToString(); + libro.Column(column).Width = 15; + if ((dtempleados.SUM(string.Format("[V_{0}]", row["CveConcepto"].ToString())) == 0)) + { + libro.Column(column).Hide(); + } + + } + column++; + libro.Range(2, column, 3, column).Merge().Value = "Percepciones"; + libro.Column(column).Width = 15; + if (iniciotipe < column) + { + libro.Range(1, iniciotipe + 1, 1, column).Style.Alignment.Horizontal = ClosedXML.Excel.XLAlignmentHorizontalValues.Center; + libro.Range(1, iniciotipe + 1, 1, column).Merge().Value = "Percepciones"; + } + iniciotipe = column; + + + foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'D' AND EsPadre = 1 ").Rows) + { + column++; + libro.Cell(2, column).Value = row["Concepto"].ToString(); + libro.Cell(3, column).Value = row["Codigo"].ToString(); + libro.Column(column).Width = 15; + if ((dtempleados.SUM(string.Format("[V_{0}]", row["CveConcepto"].ToString())) == 0)) + { + libro.Column(column).Hide(); + } + + } + + column++; + libro.Range(2, column, 3, column).Merge().Value = "Deducciones"; + libro.Column(column).Width = 15; + + if (iniciotipe < column) + { + libro.Range(1, iniciotipe + 1, 1, column).Style.Alignment.Horizontal = ClosedXML.Excel.XLAlignmentHorizontalValues.Center; + libro.Range(1, iniciotipe + 1, 1, column).Merge().Value = "Deducciones"; + } + + column++; + libro.Cell(1, column).Value = " "; + libro.Range(2, column, 3, column).Merge().Value = "Total"; + libro.Column(column).Width = 15; + iniciotipe = column; + + foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'O' AND EsPadre = 1 ").Rows) + { + column++; + libro.Cell(2, column).Value = row["Concepto"].ToString(); + libro.Cell(3, column).Value = row["Codigo"].ToString(); + libro.Column(column).Width = 15; + if ((dtempleados.SUM(string.Format("[V_{0}]", row["CveConcepto"].ToString())) == 0)) + { + libro.Column(column).Hide(); + } + + } + column++; + libro.Range(2, column, 3, column).Merge().Value = "Obligaciones"; + libro.Column(column).Width = 15; + + + if (iniciotipe < column) + { + libro.Range(1, iniciotipe + 1, 1, column).Style.Alignment.Horizontal = ClosedXML.Excel.XLAlignmentHorizontalValues.Center; + libro.Range(1, iniciotipe + 1, 1, column).Merge().Value = "Obligaciones"; + } + + libro.Row(1).CellsUsed().Style.Font.FontColor = ClosedXML.Excel.XLColor.White; + libro.Row(2).CellsUsed().Style.Font.FontColor = ClosedXML.Excel.XLColor.White; + libro.Row(3).CellsUsed().Style.Font.FontColor = ClosedXML.Excel.XLColor.White; + libro.Row(1).CellsUsed().Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(177, 160, 199)); + libro.Row(2).CellsUsed().Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189)); + libro.Row(3).Cell(1).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189)); + libro.Row(3).CellsUsed().Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189)); + + int Fila = 3; + int cveSupProyecto = -5; + string subproyecto = ""; + string subproyectoold = ""; + int oldcveSupProyecto = -5; + bool newsubproyecto = false; + bool newsubproyectoTitulo = false; + foreach (DataRow erow in dtempleados.FiltraParametros("", "CveSubProyecto").Rows) + { + Fila++; + newsubproyecto = false; newsubproyectoTitulo = false; + if (cveSupProyecto != erow["CveSubProyecto"].ToString().ToEntero()) + { + + if (oldcveSupProyecto != -5) { Fila += 2; newsubproyecto = true; } + oldcveSupProyecto = cveSupProyecto; + cveSupProyecto = erow["CveSubProyecto"].ToString().ToEntero(); + subproyecto = erow["SubProyecto"].ToString(); + if (cveSupProyecto != -5 && oldcveSupProyecto != -5) { Fila++; newsubproyectoTitulo = true; } + } + column = 1; + libro.Cell(Fila, column).Value = string.Format("'{0}",erow["Codigo"]); + column++; + if (newsubproyecto) { libro.Cell(Fila - 3, column).Value = string.Format("Total {0}", subproyectoold); } + if (newsubproyectoTitulo) { libro.Cell(Fila - 1, column).Value = subproyecto; subproyectoold = subproyecto; } + libro.Cell(Fila, column).Value = erow["Nombre"]; + foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'P' AND EsPadre = 1 ").Rows) + { + column++; + string Concepto = string.Format("V_{0}", row["CveConcepto"]); + libro.Cell(Fila, column).Value = erow[Concepto]; + + + if (newsubproyecto) + { + libro.Cell(Fila - 3, column).Value = dtempleados.SUM(Concepto, string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto)); + } + + } + + column++; + libro.Cell(Fila, column).Value = erow["SumaPercepciones"]; + if (newsubproyecto) + { + libro.Cell(Fila - 3, column).Value = dtempleados.SUM("SumaPercepciones", string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto)); + } + + + foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'D' AND EsPadre = 1 ").Rows) + { + column++; + string Concepto = string.Format("V_{0}", row["CveConcepto"]); + libro.Cell(Fila, column).Value = erow[Concepto]; + + if (newsubproyecto) + { + libro.Cell(Fila - 3, column).Value = dtempleados.SUM(Concepto, string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto)); + } + } + + column++; + libro.Cell(Fila, column).Value = erow["SumaDeducciones"]; + if (newsubproyecto) + { + libro.Cell(Fila - 3, column).Value = dtempleados.SUM("SumaDeducciones", string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto)); + } + + column++; + libro.Cell(Fila, column).Value = erow["Total"]; + if (newsubproyecto) + { + libro.Cell(Fila - 3, column).Value = dtempleados.SUM("Total", string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto)); + } + + foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'O' AND EsPadre = 1 ").Rows) + { + column++; + string Concepto = string.Format("V_{0}", row["CveConcepto"]); + libro.Cell(Fila, column).Value = erow[Concepto]; + + if (newsubproyecto) + { + libro.Cell(Fila - 3, column).Value = dtempleados.SUM(Concepto, string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto)); + } + } + + column++; + libro.Cell(Fila, column).Value = erow["SumaObligaciones"]; + if (newsubproyecto) + { + libro.Cell(Fila - 3, column).Value = dtempleados.SUM("SumaObligaciones", string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto)); + } + if (newsubproyectoTitulo) { libro.Range(Fila - 1, 1, Fila - 1, column).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(184, 204, 228)); } + if (newsubproyecto) + { + libro.Range(Fila - 3, 1, Fila - 3, column).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(184, 204, 228)); + libro.Range(Fila - 3, 3, Fila - 3, column).Style.NumberFormat.Format = "$###,###,##0.00"; + libro.Range(Fila - 3, 3, Fila - 3, column).DataType = ClosedXML.Excel.XLDataType.Number; + } + libro.Range(Fila , 3, Fila , column).Style.NumberFormat.Format = "$###,###,##0.00"; + libro.Range(Fila, 3, Fila, column).DataType = ClosedXML.Excel.XLDataType.Number; + + } + + if (true) + { + + Fila++; + oldcveSupProyecto = cveSupProyecto; newsubproyecto = true; + column = 1; + column++; + libro.Cell(Fila - 3, column).Value = string.Format("Total {0}", subproyectoold); + foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'P' AND EsPadre = 1 ").Rows) + { + string Concepto = string.Format("V_{0}", row["CveConcepto"]); + column++; + libro.Cell(Fila - 3, column).Value = dtempleados.SUM(Concepto, string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto)); + + } + + column++; + libro.Cell(Fila - 3, column).Value = dtempleados.SUM("SumaPercepciones", string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto)); + + + foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'D' AND EsPadre = 1 ").Rows) + { + string Concepto = string.Format("V_{0}", row["CveConcepto"]); + column++; + libro.Cell(Fila - 3, column).Value = dtempleados.SUM(Concepto, string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto)); + } + + column++; + libro.Cell(Fila - 3, column).Value = dtempleados.SUM("SumaDeducciones", string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto)); + + column++; + libro.Cell(Fila - 3, column).Value = dtempleados.SUM("Total", string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto)); + + foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'O' AND EsPadre = 1 ").Rows) + { + string Concepto = string.Format("V_{0}", row["CveConcepto"]); + column++; + libro.Cell(Fila - 3, column).Value = dtempleados.SUM(Concepto, string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto)); + } + + column++; + libro.Cell(Fila - 3, column).Value = dtempleados.SUM("SumaObligaciones", string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto)); + + libro.Range(Fila - 3, 1, Fila - 3, column).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(184, 204, 228)); + libro.Range(Fila - 3, 3, Fila - 3, column).Style.NumberFormat.Format = "$###,###,##0.00"; + libro.Range(Fila - 3, 3, Fila - 3, column).DataType = ClosedXML.Excel.XLDataType.Number; + + libro.Range(Fila, 3, Fila, column).Style.NumberFormat.Format = "$###,###,##0.00"; + libro.Range(Fila, 3, Fila, column).DataType = ClosedXML.Excel.XLDataType.Number; + } + libro.Range(4, 1, 4, column).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189)); + + + System.IO.Stream fs = new System.IO.MemoryStream(); + wb.SaveAs(fs); + fs.Position = 0; + System.IO.MemoryStream memoryStream = new System.IO.MemoryStream(); + using (System.IO.Stream input = fs) + + { + input.CopyTo(memoryStream); + } + memoryStream.Position = 0; + + Response.Clear(); + Response.Buffer = true; + + Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; + Response.AddHeader("content-disposition", string.Format("attachment;filename={0}.xlsx", "Acumulados nomina")); + Response.BinaryWrite(memoryStream.ToArray()); + Response.End(); + } + catch (Exception ex) + { + Alert("Ocurrio un error al generar el Formato de nominas" + ex.ToString()); + } + } + else + { + Alert("No se encontraron resultados con los filtros seleccionaddos"); + } + } + + protected void GvNominas_RowDataBound(object sender, GridViewRowEventArgs e) + { + if (e.Row.RowType == DataControlRowType.DataRow) + { + Literal LtlNombre = e.Row.FCLiteral("LtlNombre"); + int cvePersonal = e.Row.DataKey("CvePersonal").ToEntero(); + string Nombre = e.Row.DataKey("Nombre").ToString(); + string Codigo = e.Row.DataKey("Codigo").ToString(); + string Turno = e.Row.DataKey("Turno").ToString(); + string Departamento = e.Row.DataKey("Departamento").ToString(); + string SubProyecto = e.Row.DataKey("SubProyecto").ToString(); + if (cvePersonal > 0) + { + LtlNombre.Text = String.Format("{2} {1}", cvePersonal, Nombre, Codigo); + + } + else + { + LtlNombre.Text = "Total General"; + if (Turno.Length == 0 && SubProyecto.Length > 0) + { + LtlNombre.Text = String.Format("Centro de costos: {0}", SubProyecto); + } + else if (Turno.Length > 0) + { + LtlNombre.Text = String.Format("Turno: {0}", SubProyecto); + } + else if (Departamento.Length > 0) + { + LtlNombre.Text = String.Format("Departamento: {0}", Departamento); + } + else + { + + e.Row.CssClass = "SubTotales"; + } + + } + + } + + } +} \ No newline at end of file diff --git a/RH/Personal.aspx b/RH/Personal.aspx index f98389e8e..b8f307b6b 100644 --- a/RH/Personal.aspx +++ b/RH/Personal.aspx @@ -35,7 +35,7 @@ Expediente de personal
  • - +
  • @@ -147,7 +147,7 @@
    - + @@ -155,7 +155,7 @@
    - + @@ -163,7 +163,7 @@
    - + @@ -279,7 +279,7 @@
    - +
    @@ -478,7 +478,7 @@
    - + @@ -494,7 +494,7 @@
    - + @@ -504,7 +504,7 @@
    - + @@ -513,7 +513,7 @@
    - + @@ -522,7 +522,7 @@
    - + @@ -531,7 +531,7 @@
    - + @@ -539,7 +539,7 @@
    - + @@ -565,16 +565,18 @@
    - + + + <%-- - + --%>
    Proyecto: - + <%-- --%> @@ -582,7 +584,7 @@
    SubProyecto: - + @@ -596,7 +598,7 @@
    --%>
    - + @@ -616,7 +618,7 @@
    - + @@ -624,7 +626,7 @@
    - + @@ -716,14 +718,14 @@
    - +
    - + @@ -751,14 +753,14 @@
    - +
    - +
    @@ -1000,7 +1002,7 @@ - + @@ -1117,7 +1119,7 @@   - + @@ -1380,7 +1382,7 @@
    - + @@ -1388,7 +1390,7 @@
    - + @@ -1729,9 +1731,10 @@
    - + + <%-- - + --%>
    @@ -1844,9 +1847,11 @@ - + + + <%-- - + --%> @@ -3224,8 +3229,7 @@ Gafete - - + @@ -3718,7 +3722,7 @@

    - +
    @@ -4237,9 +4241,10 @@
    - + + <%-- - + --%> <%-- --%> diff --git a/RH/Personal.aspx.vb b/RH/Personal.aspx.vb index 0224875e2..a63497034 100644 --- a/RH/Personal.aspx.vb +++ b/RH/Personal.aspx.vb @@ -939,9 +939,9 @@ Partial Class RH_Personal End Sub Private Sub SetValues() ViewState("Orden") = String.Empty - DdlClienteAsignado.Attributes.Add("onclick", "CargaClientes();") - DdlClienteAsistenciaC.Attributes.Add("onclick", "CargaClientes();") - DdlClienteAsistenciaA.Attributes.Add("onclick", "CargaClientes();") + 'DdlClienteAsignado.Attributes.Add("onclick", "CargaClientes();") + 'DdlClienteAsistenciaC.Attributes.Add("onclick", "CargaClientes();") + 'DdlClienteAsistenciaA.Attributes.Add("onclick", "CargaClientes();") CargaClientes() Dim fechainicioasistencia As String Dim fechaFinasistencia As String @@ -1064,20 +1064,24 @@ Partial Class RH_Personal End Sub Private Sub CargaClientes() - Dim ObjClientes As New ClsClientes - If ObjClientes.GetClientes(-1, "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa) Then - DdlClienteAsignado.DataSource = ObjClientes.DtResultados - DdlClienteAsistenciaC.DataSource = ObjClientes.DtResultados - DdlClienteAsistenciaA.DataSource = ObjClientes.DtResultados - Else - DdlClienteAsignado.DataSource = Nothing - DdlClienteAsistenciaC.DataSource = Nothing - DdlClienteAsistenciaA.DataSource = Nothing - End If - ObjClientes.Dispose() - DdlClienteAsignado.DataBind() - DdlClienteAsistenciaC.DataBind() - DdlClienteAsistenciaA.DataBind() + 'Dim ObjClientes As New ClsClientes + 'If ObjClientes.GetClientes(-1, "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa) Then + ' DdlClienteAsignado.DataSource = ObjClientes.DtResultados + ' DdlClienteAsistenciaC.DataSource = ObjClientes.DtResultados + ' DdlClienteAsistenciaA.DataSource = ObjClientes.DtResultados + 'Else + ' DdlClienteAsignado.DataSource = Nothing + ' DdlClienteAsistenciaC.DataSource = Nothing + ' DdlClienteAsistenciaA.DataSource = Nothing + 'End If + 'ObjClientes.Dispose() + 'DdlClienteAsignado.DataBind() + 'DdlClienteAsistenciaC.DataBind() + 'DdlClienteAsistenciaA.DataBind() + DdlClienteAsignado.setEsWebService(True) + DdlClienteAsistenciaC.setEsWebService(True) + DdlClienteAsistenciaA.setEsWebService(True) + DdlClienteBuzon.setEsWebService(True) End Sub Private Sub CargaProyecto() @@ -1173,7 +1177,13 @@ Partial Class RH_Personal End Sub Private Sub CargaTipoRegimen() - DdlRegimenContratacion.DataSource = GlobalDTNomSatRegimenContratacion + Dim dt As DataTable = GlobalDTNomSatRegimenContratacion.Copy() + For Each item As DataRow In dt.Rows + item("RegimenContratacion") = String.Format("{1}{0} {2}", item("CveSATRegimenContratacion"), If(item("CveSATRegimenContratacion").ToString().Length > 1, "", "0"), item("RegimenContratacion")) + Next + dt.AcceptChanges() + + DdlRegimenContratacion.DataSource = dt.FiltraParametros("", "RegimenContratacion") DdlRegimenContratacion.DataBind() End Sub @@ -1477,7 +1487,7 @@ Partial Class RH_Personal ViewState("CveEstatusOriginal") = ObjPersonal.CveEstatusPersonal.ToString() 'Asignación If ObjPersonal.CveCliente <> -1 Then - DdlClienteAsignado.Items.Insert(1, New ListItem(ObjPersonal.Cliente, ObjPersonal.CveCliente.ToString())) + 'DdlClienteAsignado.Items.Insert(1, New ListItem(ObjPersonal.Cliente, ObjPersonal.CveCliente.ToString())) DdlClienteAsignado.SelectedValue = ObjPersonal.CveCliente.ToString() Else DdlClienteAsignado.SelectedValue = ObjPersonal.CveCliente.ToString() @@ -2004,7 +2014,7 @@ Partial Class RH_Personal Private Sub BuzonCalidadLimpiaModal(ControlesActivos As Boolean) - DdlClienteBuzon.SelectedIndex = 0 + DdlClienteBuzon.SelectedValue = "0" DdlClienteBuzon.Enabled = ControlesActivos DdlSucursalClienteBuzon.SelectedIndex = 0 @@ -2050,7 +2060,7 @@ Partial Class RH_Personal CvePersonalBuzon = GvRow.DataKey("CvePersonalBuzon").ToEntero CargaBuzonCalidadSeguimiento() - DdlClienteBuzon.SelectedValueExist(GvRow.DataKey("CveCliente")) + DdlClienteBuzon.SelectedValue = GvRow.DataKey("CveCliente") ' DdlClienteBuzon.Enabled = False If GvRow.DataKey("CveClienteSucursal").ToEntero > 0 Then @@ -2223,7 +2233,7 @@ Partial Class RH_Personal End Sub - Private Sub DdlClienteBuzon_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlClienteBuzon.SelectedIndexChanged + Private Sub DdlClienteBuzon_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlClienteBuzon.selectedindexchange CargaClienteSucursal() End Sub @@ -3188,6 +3198,14 @@ Partial Class RH_Personal #Region "I M P R I M I R N O M I N A" + Private Function ValorNodoXML(n As System.Xml.XmlNode, Campo As String, Optional Retorno As String = "") As String + Dim o As System.Xml.XmlNode = n.Attributes.Cast(Of System.Xml.XmlAttribute)().SingleOrDefault(Function(a) String.Compare(a.Name, Campo, True) = 0) + If o Is Nothing Then + Return Retorno + Else + Return o.Value + End If + End Function Protected Sub LbPDF_Click(sender As Object, e As EventArgs) Dim LB = CType(sender, LinkButton) @@ -3266,7 +3284,7 @@ Partial Class RH_Personal params.Add(New ReportParameter("Puesto", If(DdlPuesto.SelectedValue = "-1", "", DdlPuesto.SelectedItem.Text))) params.Add(New ReportParameter("SupervisorRH", If(DdlSupervisor.SelectedValue = "-1", "", DdlSupervisor.SelectedItem.Text))) params.Add(New ReportParameter("SupervisorInmediato", If(DdlSupervisorOrganigrama.SelectedValue = "-1", "", DdlSupervisorOrganigrama.SelectedItem.Text))) - params.Add(New ReportParameter("Cliente", DdlClienteAsignado.SelectedItem.Text)) + params.Add(New ReportParameter("Cliente", DdlClienteAsignado.SelectedText)) params.Add(New ReportParameter("Proyecto", DdlProyectoAsignado.SelectedItem.Text)) params.Add(New ReportParameter("SubProyecto", DdlSubProyectoAsignado.SelectedItem.Text)) params.Add(New ReportParameter("Estatus", If(DdlEstatusPersonal.SelectedValue = "-1", "", DdlEstatusPersonal.SelectedItem.Text))) @@ -3360,7 +3378,7 @@ Partial Class RH_Personal params.Add(New ReportParameter("Puesto", If(DdlPuesto.SelectedValue = "-1", "", DdlPuesto.SelectedItem.Text))) params.Add(New ReportParameter("SupervisorRH", If(DdlSupervisor.SelectedValue = "-1", "", DdlSupervisor.SelectedItem.Text))) params.Add(New ReportParameter("SupervisorInmediato", If(DdlSupervisorOrganigrama.SelectedValue = "-1", "", DdlSupervisorOrganigrama.SelectedItem.Text))) - params.Add(New ReportParameter("Cliente", DdlClienteAsignado.SelectedItem.Text)) + params.Add(New ReportParameter("Cliente", DdlClienteAsignado.SelectedText)) params.Add(New ReportParameter("Proyecto", DdlProyectoAsignado.SelectedItem.Text)) params.Add(New ReportParameter("SubProyecto", DdlSubProyectoAsignado.SelectedItem.Text)) params.Add(New ReportParameter("Estatus", If(DdlEstatusPersonal.SelectedValue = "-1", "", DdlEstatusPersonal.SelectedItem.Text))) diff --git a/vwd.webinfo b/vwd.webinfo index d553518ff..c30f6b970 100644 --- a/vwd.webinfo +++ b/vwd.webinfo @@ -174,6 +174,10 @@ + + + +