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 @@ "-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------------------ @@ -5462,10 +5458,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 @@ -5478,7 +5476,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 @@ -13500,18 +13498,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) @@ -17232,6 +17218,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 @@ -17278,8 +17267,6 @@ Partial Class Compras_Compras End Try - - Dim DecimalesPermitidos = 6 Row("CveConcepto") = TmpDT.Rows.Count + 1 @@ -17323,8 +17310,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) @@ -19517,6 +19502,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 @@ -19547,6 +19543,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() @@ -19564,7 +19562,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 @@ -19587,13 +19585,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 @@ -20251,10 +20270,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 @@ -20339,8 +20356,6 @@ Partial Class Compras_Compras ErrorCompra = True Exit For End If - - Next End If @@ -20351,36 +20366,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}, ") @@ -20394,7 +20393,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 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 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 cea28cd5f..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) { @@ -6843,7 +7112,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" }; @@ -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 41c1920f5..80fe73ddb 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 @@ -71,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()