From d03b3c70e7e2fdd7ea77f3166e3d05f7977c9968 Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 30 May 2023 15:18:21 -0700 Subject: [PATCH 1/5] - --- Acumuladores/CatFoliosGarantia.aspx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Acumuladores/CatFoliosGarantia.aspx b/Acumuladores/CatFoliosGarantia.aspx index 150702154..81b12f3db 100644 --- a/Acumuladores/CatFoliosGarantia.aspx +++ b/Acumuladores/CatFoliosGarantia.aspx @@ -122,7 +122,7 @@ Date: Tue, 30 May 2023 15:18:29 -0700 Subject: [PATCH 2/5] - --- General/SaldosIniciales.aspx.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/General/SaldosIniciales.aspx.vb b/General/SaldosIniciales.aspx.vb index f21129c19..90bf0620b 100644 --- a/General/SaldosIniciales.aspx.vb +++ b/General/SaldosIniciales.aspx.vb @@ -1542,7 +1542,7 @@ Partial Class General_SaldosIniciales End If 'Compra - If Not ObjCompras.AddCompra(TipoDocto, "", Serie, Folio, Folio2, CveProveedor.ToEntero(), SubTotal, 0, 0, IVA, RetIVA, RetISR, IEPS, 0, 0, Total, Fecha, CveMoneda, TipoCambio.ToDouble, FechaVencimiento, + If Not ObjCompras.AddCompra(TipoDocto, "", Serie, Folio, Folio2, CveProveedor.ToEntero(), SubTotal, 0, 0, IVA, RetIVA, RetISR, IEPS, 0, 0, Total, Fecha, CveMoneda, TipoCambio.ToDecimal, FechaVencimiento, False, CodProvee, 1, CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveProveedorSucursal:=CveProveedorSucursal, NumeroReembolso:=Transaccion, PorcentajeIVA:=PorcentajeIVA.ToDecimal, TotalOriginal:=Total) Then ErrorCompras = True From f391b18dae49f962613baeca897501fd5b1436c8 Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 30 May 2023 15:18:47 -0700 Subject: [PATCH 3/5] =?UTF-8?q?--=20mejoras=20en=20manejo=20de=20folios=20?= =?UTF-8?q?de=20garant=C3=ADa?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Compras/Compras.aspx.vb | 120 ++++++++++++++++++++-------------------- 1 file changed, 59 insertions(+), 61 deletions(-) diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 85035a236..0d04c4e8f 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -1902,16 +1902,6 @@ Partial Class Compras_Compras TxtSerie.Enabled = False End If - If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") Then 'cuando es emp acumuladora - divFolioGarantia.Visible = True - Using objAcum As New ClsAcumuladores - If objAcum.FoliosGarantiaGet(-1, UsuarioActual.Empresa.CveEmpresa, Estatus:=2, TipoFolio:="-1", Area:=-1, CveSubProyecto:=-1) Then - DdlFolioGarantia.DataSource = objAcum.DtResultados.FiltraParametros("", "FechaIng DESC") - DdlFolioGarantia.DataBind() - End If - End Using - End If - 'PERMISO PARA MODIFICACIÓN DE FECHA AUN CON FACTURA TxtFecha.Enabled = UsuarioActual.TienePermisoProceso(216) ImgFecha.Enabled = UsuarioActual.TienePermisoProceso(216) @@ -4102,7 +4092,6 @@ Partial Class Compras_Compras Alert("Falta asignar Proyecto a la compra", TipoMensaje.MsgAdvertencia) End If - If Not ValidaVinculacionNotaFactura() Then Alert("Se requiere que la nota este aplciada a las facturas", TipoMensaje.MsgAdvertencia) Exit Sub @@ -4521,6 +4510,13 @@ Partial Class Compras_Compras UM.Dispose() PSS.Dispose() + If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso DdlTipoCompra.SelectedValue = "12" Then 'cuando es garantía, debe de especificar la salida de almacen + If Not GvInv.HeaderRow.FCCheckBox("cbAll").Checked OrElse GvInv.HeaderRow.FCDropDownList("ddlAlmacen").SelectedValue.ToEntero <= 0 Then + Alert("No ha especificado la salida de almacen en la garantía.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + End If + 'VALIDA IMPORTES If Not ValidaTotalesGuardar() Then Exit Sub @@ -4542,9 +4538,9 @@ Partial Class Compras_Compras Exit Sub End If - If DdlFolioGarantia.Visible AndAlso DdlFolioGarantia.SelectedValue <> "-1" Then - If Not ValidaFolioGarantia() Then Exit Sub - End If + 'If DdlFolioGarantia.Visible AndAlso DdlFolioGarantia.SelectedValue <> "-1" Then + ' If Not ValidaFolioGarantia() Then Exit Sub + 'End If '------------------TERMINA VALIDACIONES------------------ @@ -5453,10 +5449,12 @@ Partial Class Compras_Compras Dim ListAlmacenes = (From CveAlmacen In DtInv.AsEnumerable() Where CveAlmacen.Field(Of Integer)("CveAlmacen") > 0 Select CveAlmacen.Field(Of Integer)("CveAlmacen")).Distinct().ToList Dim indice = 0 Dim ImporteConcepto As Decimal = 0 + Dim tCveFolioGarantia As Integer = -1 Dim CveConceptoMovimiento As Integer = 2 'apoyo logistico/garantia - If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") AndAlso DdlTipoCompra.SelectedValue = "12" Then + If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") AndAlso DdlTipoCompra.SelectedValue = "12" Then 'garantía CveConceptoMovimiento = 13 + tCveFolioGarantia = DdlFolioGarantia.SelectedValue.ToEntero End If If (DdlTipoComprobante.SelectedValue = "Fac" AndAlso CveCompraRefacturacion <= 0) OrElse CveConceptoMovimiento = 13 Then @@ -5469,7 +5467,7 @@ Partial Class Compras_Compras Dim fecha As Date = TxtFecha.Text.ToDate If Not UsuarioActual.Empresa.UsaAC Then fecha = Now - CveMovimientoInventario = ObjInventario.AddMovimiento(tCveAlmacen, CveConceptoMovimiento, 1, fecha, 0, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompra, -1, -1, -1, TipoCambio:=If(DdlMoneda.SelectedValue.ToEntero = 1, -1, TipoCambioGuardar), Modulo:="Comp/G2") + CveMovimientoInventario = ObjInventario.AddMovimiento(tCveAlmacen, CveConceptoMovimiento, 1, fecha, 0, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompra, -1, -1, -1, TipoCambio:=If(DdlMoneda.SelectedValue.ToEntero = 1, -1, TipoCambioGuardar), CveFolioGarantia:=tCveFolioGarantia, Modulo:="Comp/G2") If CveMovimientoInventario <= 0 Then ErrorMovInv = True @@ -13491,18 +13489,6 @@ Partial Class Compras_Compras Dim IdPolizaAnterior = -1 Dim TotalRefact As Decimal = 0 - 'SI NO TIENE POLIZA NI PAGOS NO HACE NADA - 'If ObjCompra.GetCompras(CveCompraRefacturacion, "-1", "-1", -1, -1, UsuarioActual.CveEmpresa) Then - ' If ObjCompra.DtResultados IsNot Nothing AndAlso ObjCompra.DtResultados.Rows.Count = 1 Then - ' Dim drc As DataRow = ObjCompra.DtResultados.Rows(0) - ' TotalRefact = drc("Total").ToString.ToDecimal - ' If drc("IdPoliza").ToString.ToEntero <= 0 AndAlso drc("Saldo").ToString.ToDecimal = drc("Total").ToString.ToDecimal AndAlso drc("CveMovimiento").ToString.ToEntero <= 0 Then - ' Alert("La factura a refacturar no esta contabilizada ni tiene pagos ni movimientos de almacen. No se puede refacturar, debera eliminar la factura anterior y agregar esta factura de forma normal.", TipoMensaje.MsgAdvertencia) - ' Return True - ' End If - ' End If - 'End If - 'GUARDA ADJUNTOS Y LIGA EN BITACORA (RELACION DE FACTURA NUEVA Y VIEJA) ErrorBitacora = GuardaRefacturacionBitacora(ObjCompra, ObjEventos) @@ -17223,6 +17209,9 @@ Partial Class Compras_Compras If DrPS IsNot Nothing Then Row("PSCodigo") = If(PSCodigo = "", DrPS("PSCodigo").ToString, PSCodigo) Row("CveMetodoInventario") = DrPS("Inv_CveMetodoInventario").ToString.ToEntero + If DdlTipoCompra.SelectedValue = "12" AndAlso DrPS("AplicaSerie").ToString = "True" Then + Row("CveMetodoInventario") = "1" + End If Else Row("PSCodigo") = PSCodigo Row("CveMetodoInventario") = 0 @@ -17269,8 +17258,6 @@ Partial Class Compras_Compras End Try - - Dim DecimalesPermitidos = 6 Row("CveConcepto") = TmpDT.Rows.Count + 1 @@ -17314,8 +17301,6 @@ Partial Class Compras_Compras Row("IVAPorcentaje") = PorcentajeIVA End If - - Row("RetIVA") = Math.Round(RetIVA, DecimalesPermitidos) Row("RetIVAPorcentaje") = PorcentajeRetIVA Row("RetISR") = Math.Round(RetISR, DecimalesPermitidos) @@ -19508,6 +19493,17 @@ Partial Class Compras_Compras Protected Sub DdlTipoCompra_SelectedIndexChanged(sender As Object, e As EventArgs) If DdlTipoCompra.SelectedValue.ToEntero.Contiene(9, 10, 12) Then 'Al seleccionar apoyo logístico se cargan los amancenes de devoculcion proveedor para dar entrada + + If DdlTipoCompra.SelectedValue = "12" AndAlso UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") Then 'cuando es emp acumuladora + divFolioGarantia.Visible = True + Using objAcum As New ClsAcumuladores + If objAcum.FoliosGarantiaGet(-1, UsuarioActual.Empresa.CveEmpresa, Estatus:=2, TipoFolio:="-1", Area:=-1, CveSubProyecto:=-1) Then + DdlFolioGarantia.DataSource = objAcum.DtResultados.FiltraParametros("", "FechaIng DESC") + DdlFolioGarantia.DataBind() + End If + End Using + End If + 'cambia si hay ps con uso de serie For Each dr As DataRow In TmpDT.Rows dr("CveMetodoInventario") = 1 @@ -19538,6 +19534,8 @@ Partial Class Compras_Compras Dim ExistenciasPSGarantia As New Dictionary(Of Integer, Decimal) Dim PSFaltantes As New Dictionary(Of Integer, Decimal) Dim DtGarantia As New DataTable + TxtDescripcion.Text = DdlFolioGarantia.SelectedItem.Text + UpParametros.Update() 'Agrupa los CvePS iguales y suma sus cantidades For Each row In TmpDT.AsEnumerable() @@ -19555,7 +19553,7 @@ Partial Class Compras_Compras DtGarantia = ObjAcum.DtResultados ExistenciasPSGarantia = DtGarantia.AsEnumerable().ToDictionary(Function(row) row.Field(Of Integer)("CvePS"), Function(row) row.Field(Of Decimal)("CantidadDisponible")) Else - Alert($"Ocurrió un error al obtener la información de la garantía.
CveUsuario={UsuarioActual.CveUsuario}
CveFolioGarantia={DdlFolioGarantia.SelectedValue}", TipoMensaje.MsgError) + Alert($"Ocurrió un error al obtener la información de la garantía.
CveU={UsuarioActual.CveUsuario}
CveFG={DdlFolioGarantia.SelectedValue}", TipoMensaje.MsgError) Return False End If End Using @@ -19578,13 +19576,34 @@ Partial Class Compras_Compras Select New With {.CvePS = Producto.Key, .NombrePS = row.Field(Of String)("PS"), .CantidadFaltante = Producto.Value} If PSFaltantes.Count > 0 Then - Dim mensaje As String = "Los siguientes productos no tienen suficientes existencias en la garantía seleccionada:

" + Dim mensaje As String = "Los siguientes productos no fueron registrados en la garantía seleccionada:

" + For Each Producto In IEnumPSFaltantes mensaje += $"Falta: × {Producto.CantidadFaltante:0.##} {Producto.NombrePS}
" Next + 'eliminar los registros + Dim tImporteAjuste As Decimal = 0 + Dim PSS = (From c In IEnumPSFaltantes Select c.CvePS).Distinct.ToList + For Each Producto In PSS + Dim drr As DataRow() = TmpDT.Select($"CvePS = {Producto}") + For Each drt As DataRow In drr + If TmpDT.Rows.Count > 1 Then 'valida que exista cuando menos un registro + tImporteAjuste += drt("Total").ToString.ToDecimal + TmpDT.Rows.Remove(drt) + End If + Next + TmpDT.AcceptChanges() + Next + If tImporteAjuste > 0 Then AjustaImporteUltimoConcepto(tImporteAjuste) + GvPS.DataSource = TmpDT + GvPS.DataBind() + + CalculaTotales(True) + CargaGvInv() + If MsgExito Then Alert(mensaje, TipoMensaje.MsgAdvertencia) Else Alert(mensaje, TipoMensaje.MsgError) Else - If MsgExito Then Alert("Todos los productos seleccionados están disponibles en el Folio de Garantía.") + If MsgExito Then Alert("Todos los productos seleccionados están registrados en el Folio de Garantía.") Return True End If Else @@ -20242,10 +20261,8 @@ Partial Class Compras_Compras End If End If - End Sub - Protected Sub BtnFolioGarantiaRestantes_Click(sender As Object, e As EventArgs) Using ObjAcum As New ClsAcumuladores @@ -20330,8 +20347,6 @@ Partial Class Compras_Compras ErrorCompra = True Exit For End If - - Next End If @@ -20342,36 +20357,20 @@ Partial Class Compras_Compras Dim SBEliminacionCompra As New StringBuilder - SBEliminacionCompra.Append($"Serie-Folio: {TxtSerie.Text}-{TxtFolio.Text}, Proveedor: {HplProveedor.Text}, Descripción: {TxtDescripcion.Text}, SubTotal: {TxtSubTotal2.Text}, ") - If TxtIVA.Text.Trim.ToDecimal > 0 Then - SBEliminacionCompra.Append($"IVA: { TxtIVA.Text},") - End If + If TxtIVA.Text.Trim.ToDecimal > 0 Then SBEliminacionCompra.Append($"IVA: { TxtIVA.Text},") + If TxtRetISR.Text.Trim.ToDecimal > 0 Then SBEliminacionCompra.Append($"Ret. ISR: { TxtRetISR.Text}, ") - If TxtRetISR.Text.Trim.ToDecimal > 0 Then - SBEliminacionCompra.Append($"Ret. ISR: { TxtRetISR.Text}, ") - End If - - If TxtRetIVA.Text.Trim.ToDecimal > 0 Then - SBEliminacionCompra.Append($"Ret. IVA: { TxtRetIVA.Text}, ") - End If - - If TxtIEPS.Text.Trim.ToDecimal > 0 Then - SBEliminacionCompra.Append($"IEPS: { TxtIEPS.Text}, ") - End If + If TxtRetIVA.Text.Trim.ToDecimal > 0 Then SBEliminacionCompra.Append($"Ret. IVA: { TxtRetIVA.Text}, ") + If TxtIEPS.Text.Trim.ToDecimal > 0 Then SBEliminacionCompra.Append($"IEPS: { TxtIEPS.Text}, ") SBEliminacionCompra.Append($"Total: {TxtTotal.Text}, ") - - SBEliminacionCompra.Append($"Moneda: {DdlMoneda.SelectedItem.Text}, ") - If TxtOC.Text.Trim.Length > 0 Then - SBEliminacionCompra.Append($"OC: {TxtOC.Text }, ") - End If - + If TxtOC.Text.Trim.Length > 0 Then SBEliminacionCompra.Append($"OC: {TxtOC.Text }, ") SBEliminacionCompra.Append($"Fecha {TxtFecha.Text}, ") SBEliminacionCompra.Append($"Capturó: {LblUsuarioCaptura.Text}, ") @@ -20385,7 +20384,6 @@ Partial Class Compras_Compras If Not ObjGral.AddHistorialBitacora(Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, CveCompra, Nothing, "", "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, TxtModalEliminarCompraDescripcion.Text, "Compras", SBEliminacionCompra.ToString) Then ErrorCompra = True - End If If Not ErrorCompra Then From c955f1a223794fecded8457e7913481081b3f144 Mon Sep 17 00:00:00 2001 From: JORGE LUIS CAUDILLO ESPARZA Date: Wed, 31 May 2023 12:53:01 -0700 Subject: [PATCH 4/5] --- Nomina/Nomina.aspx.cs | 2 +- Nomina/ReportePTU.aspx.vb | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Nomina/Nomina.aspx.cs b/Nomina/Nomina.aspx.cs index cea28cd5f..2261ffae8 100644 --- a/Nomina/Nomina.aspx.cs +++ b/Nomina/Nomina.aspx.cs @@ -6843,7 +6843,7 @@ public partial class Nomina_Nomina2 : ClsPaginas bool continuar = true; int chkImporte = 1; - int chkImporteGravado = 1; + int chkImporteGravado = 0; int chkImporteValor = 1; string[] getcolumnas = new string[] { "CvePersonal", "Nombre", "CveMetodoPago", "SumaPercepciones", "Total", "SalarioDiario", "SalarioDiarioIMSS", "SalarioDiarioIntegrado", "DiasLaborados", "DiasFaltados", "DiasVacaciones", "DiasIncapacidad" }; diff --git a/Nomina/ReportePTU.aspx.vb b/Nomina/ReportePTU.aspx.vb index 41c1920f5..024a2bbd0 100644 --- a/Nomina/ReportePTU.aspx.vb +++ b/Nomina/ReportePTU.aspx.vb @@ -49,6 +49,7 @@ Partial Class Nomina_ReportePTU DdlEjercicios.DataBind() If (DdlEjercicios.Items.Count > 0) Then DdlEjercicios.SelectedIndex = 0 + DdlEjercicios.SelectedValueExist(DateTime.Now.Year.ToString()) DdlEjercicios_SelectedIndexChanged(Nothing, Nothing) End If End If From 7f0e7337541d152434c13a21bf003773a0ef6b3c Mon Sep 17 00:00:00 2001 From: JORGE LUIS CAUDILLO ESPARZA Date: Thu, 1 Jun 2023 15:52:45 -0700 Subject: [PATCH 5/5] foliofiscal on nominas --- Nomina/Nomina.aspx | 6 +- Nomina/Nomina.aspx.cs | 277 +++++++++++++++++++++++++++++++++++++- Nomina/ReportePTU.aspx.vb | 2 +- 3 files changed, 279 insertions(+), 6 deletions(-) diff --git a/Nomina/Nomina.aspx b/Nomina/Nomina.aspx index 2fb2225db..c6f01e8bc 100644 --- a/Nomina/Nomina.aspx +++ b/Nomina/Nomina.aspx @@ -278,7 +278,10 @@ Ir a asistencia
  • - Nómina tabular + Nómina tabular +
  • +
  • + Nómina Fiscal
  • Simulador @@ -300,6 +303,7 @@ + diff --git a/Nomina/Nomina.aspx.cs b/Nomina/Nomina.aspx.cs index 2261ffae8..ed0531880 100644 --- a/Nomina/Nomina.aspx.cs +++ b/Nomina/Nomina.aspx.cs @@ -259,7 +259,7 @@ public partial class Nomina_Nomina2 : ClsPaginas { if (!IsPostBack) - { + { enviarCorreoEnTimbrado = (UsuarioActual.CveEmpresa == 141 ? true : true); LnkCargaNetos.Visible = (UsuarioActual.Empresa.Funcionalidad(267) == "1") || (UsuarioActual.CveRol == 1); if (UsuarioActual.CveEmpresa == 141) { ddlfiniquito.SelectedValueExist("2"); } @@ -567,6 +567,7 @@ public partial class Nomina_Nomina2 : ClsPaginas LnkAsistenciaIncidencias.Visible = true; LnkFormatoTabular.Visible = true; + LnkFormatoFiscal.Visible = (UsuarioActual.CveEmpresa == 141 || UsuarioActual.CveRol == 1); HypPDFSTimbrados.Visible = true; if (objnom.GetNominaEmpleado(FiltCveProyecto, FiltCveSubProyecto, FiltCveTurno, FiltCvePeriodo, CveEmpresa, FiltAgrupador, DdlRegimenContratacion.SelectedValue.ToEntero(), CveTipoTrabajador: CveTipoTrabajador, Neto: ddlfiniquito.SelectedValue.ToEntero()) && objnom.DTSetResultados.Tables.Count > 4) { @@ -2837,7 +2838,7 @@ public partial class Nomina_Nomina2 : ClsPaginas using (ClsRH objpersonal = new ClsRH()) { - if (objpersonal.GetAsistencias(SRCvePersonal, -1, -1, -1, -1, -1,-1, FechaInicioPeriodo, FechaFinPeriodo, UsuarioActual.CveEmpresa)) + if (objpersonal.GetAsistencias(SRCvePersonal, -1, -1, -1, -1, -1, -1, FechaInicioPeriodo, FechaFinPeriodo, UsuarioActual.CveEmpresa)) { GVAsistencia.DataSource = objpersonal.DtResultados.FiltraParametros("Fecha IS NOT NULL"); } else { @@ -5040,6 +5041,274 @@ public partial class Nomina_Nomina2 : ClsPaginas } } + protected void LnkFormatoFiscal_Click(object sender, EventArgs e) + { + DataTable dtnominas = null; + using (ClsNominas onom = new ClsNominas()) + { + if (onom.GetNom_Nominas(-1, -1, CvePeriodoSeleccionado, -1, UsuarioActual.CveEmpresa)) + { + dtnominas = onom.DtResultados; + } + } + + try + { + ClosedXML.Excel.XLWorkbook wb = new ClosedXML.Excel.XLWorkbook(); + var libro = wb.AddWorksheet("Nomina"); + int column = 1; + int filainicio = 3; + libro.Cell(filainicio + 1, column).Value = " "; + libro.Cell(filainicio + 2, column).Value = "Codigo"; + libro.Cell(filainicio + 3, column).Value = " "; + column++; + libro.Cell(filainicio + 1, column).Value = " "; + libro.Cell(filainicio + 2, column).Value = "Empleado"; + libro.Cell(filainicio + 3, column).Value = " "; + column++; + libro.Cell(filainicio + 1, column).Value = " "; + libro.Cell(filainicio + 2, column).Value = "Folio Fiscal"; + libro.Cell(filainicio + 3, column).Value = " "; + libro.Column(column).Width = 35; + libro.Cell(1, 1).Value = "Empresa"; + libro.Range(1, 2, 1, 4).Merge().Value = UsuarioActual.Empresa.Empresa; + libro.Cell(2, 1).Value = "período"; + string periodo = DdlPeriodo.SelectedItem.Text; + periodo = periodo.Substring(0, (periodo.Length > 27 ? 27 : periodo.Length)); + libro.Range(2, 2, 2, 4).Merge().Value = periodo; + + int iniciotipe = column; + foreach (DataRow row in dtConceptos.FiltraParametros("Tipo ='P' AND EsPadre = 1 ").Rows) + { + + column++; + libro.Cell(filainicio + 2, column).Value = row["Concepto"].ToString(); + libro.Cell(filainicio + 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(filainicio + 2, column, filainicio + 3, column).Merge().Value = "Percepciones"; + libro.Column(column).Width = 15; + if (iniciotipe < column) + { + libro.Range(filainicio + 1, iniciotipe + 1, filainicio + 1, column).Style.Alignment.Horizontal = ClosedXML.Excel.XLAlignmentHorizontalValues.Center; + libro.Range(filainicio + 1, iniciotipe + 1, filainicio + 1, column).Merge().Value = "Percepciones"; + } + iniciotipe = column; + + + foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'D' AND EsPadre = 1 ").Rows) + { + column++; + libro.Cell(filainicio + 2, column).Value = row["Concepto"].ToString(); + libro.Cell(filainicio + 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(filainicio + 2, column, filainicio + 3, column).Merge().Value = "Deducciones"; + libro.Column(column).Width = 15; + + if (iniciotipe < column) + { + libro.Range(filainicio + 1, iniciotipe + 1, filainicio + 1, column).Style.Alignment.Horizontal = ClosedXML.Excel.XLAlignmentHorizontalValues.Center; + libro.Range(filainicio + 1, iniciotipe + 1, filainicio + 1, column).Merge().Value = "Deducciones"; + } + + column++; + libro.Cell(filainicio + 1, column).Value = " "; + libro.Range(filainicio + 2, column, filainicio + 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(filainicio + 2, column).Value = row["Concepto"].ToString(); + libro.Cell(filainicio + 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(filainicio + 2, column, filainicio + 3, column).Merge().Value = "Obligaciones"; + libro.Column(column).Width = 15; + + + if (iniciotipe < column) + { + libro.Range(filainicio + 1, iniciotipe + 1, filainicio + 1, column).Style.Alignment.Horizontal = ClosedXML.Excel.XLAlignmentHorizontalValues.Center; + libro.Range(filainicio + 1, iniciotipe + 1, filainicio + 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 maxnocolumn = column; + + int Fila = filainicio + 3; + int cveSupProyecto = -5; + string subproyecto = ""; + int oldcveSupProyecto = -5; + bool newsubproyecto = false; + bool newsubproyectoTitulo = false; + DataTable dtsr = dtempleados.FiltraParametros("", "CveSubProyecto"); + dtsr.Rows.Add(dtsr.NewRow()); + foreach (DataRow erow in dtsr.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 (newsubproyectoTitulo) + { + libro.Cell(Fila - 1, column).Value = subproyecto; + libro.Range(Fila - 1, 1, Fila - 1, maxnocolumn).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(155, 194, 230)); + } + if (newsubproyecto) + { + libro.Cell(Fila - 3, column).Value = "Total"; + libro.Range(Fila - 3, 1, Fila - 3, maxnocolumn).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(155, 194, 230)); + } + libro.Cell(Fila, column).Value = erow["Nombre"]; + column++; + if (dtnominas != null) + { + DataRow drw = dtnominas.FiltroPrimero(string.Format("CvePersonal = {0}", erow["CvePersonal"].ToString().ToEntero())); + if (drw != null) + { + libro.Cell(Fila, column).Value = drw["FolioFiscal"]; + } + + } + 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).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(166, 166, 166)); + 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).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(166, 166, 166)); + 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).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(166, 166, 166)); + 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).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(166, 166, 166)); + 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)); + } + } + + + libro.Range(filainicio + 1, 1, filainicio + 4, maxnocolumn).Style.Font.FontColor = ClosedXML.Excel.XLColor.White; + libro.Range(filainicio + 1, 1, filainicio + 4, maxnocolumn).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} {1}.xlsx", "Nomina Fiscal", periodo)); + Response.BinaryWrite(memoryStream.ToArray()); + Response.End(); + } + catch (Exception ex) + { + Alert("Ocurrio un error al generar el Formato de nominas" + ex.ToString()); + } + } + protected void LnkConceptoD_Click(object sender, EventArgs e) { @@ -7006,7 +7275,7 @@ public partial class Nomina_Nomina2 : ClsPaginas } - + RegistraScript("$('#DModalCargaASistenciaMasiva').modal();"); } @@ -7111,7 +7380,7 @@ public partial class Nomina_Nomina2 : ClsPaginas } using (ClsRH objpersonal = new ClsRH()) { - if (objpersonal.GetAsistencias(CvePersonal, -1, -1, -1, -1, -1,-1, fecha, fecha, UsuarioActual.CveEmpresa)) + if (objpersonal.GetAsistencias(CvePersonal, -1, -1, -1, -1, -1, -1, fecha, fecha, UsuarioActual.CveEmpresa)) { if (objpersonal.DtResultados.Rows.Count > 0) { diff --git a/Nomina/ReportePTU.aspx.vb b/Nomina/ReportePTU.aspx.vb index 024a2bbd0..80fe73ddb 100644 --- a/Nomina/ReportePTU.aspx.vb +++ b/Nomina/ReportePTU.aspx.vb @@ -72,7 +72,7 @@ Partial Class Nomina_ReportePTU Private Sub CargaPeriodos() Dim ObjPeriodos As New ClsNominas() - If ObjPeriodos.GetPeriodos(-1, UsuarioActual.CveEmpresa, DdlEjercicios.SelectedValue.ToEntero(), -1, -1) Then + If ObjPeriodos.GetPeriodos(-1, UsuarioActual.CveEmpresa, -1, -1, -1) Then dtPeriodos = ObjPeriodos.DtResultados.FiltraParametros("Estatus IN (0,1)") End If ObjPeriodos.Dispose()