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 1/4] --- 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 2/4] 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() From ef0f27ac391ec82617c29a3174d398617a6128c5 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Thu, 1 Jun 2023 17:49:51 -0700 Subject: [PATCH 3/4] --Correciones de TC de fluctuacion --- App_Code/Modelos.vb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb index 83f46e6bd..df54b086e 100644 --- a/App_Code/Modelos.vb +++ b/App_Code/Modelos.vb @@ -2404,7 +2404,7 @@ Namespace Modelos ' Verificar si la fecha es del mes anterior a la fecha actual Dim esMesAnterior As Boolean = False - If ObjFactura.TipoDocto = "Egs" AndAlso ValorMultiplicador = -1 AndAlso FechaCancelacion > MinFecha AndAlso tipoCambio > 1 AndAlso UsuarioActual.Empresa.Funcionalidad(703) = "1" Then + If ValorMultiplicador = -1 AndAlso FechaCancelacion > MinFecha AndAlso tipoCambio > 1 AndAlso UsuarioActual.Empresa.Funcionalidad(703) = "1" Then ' Obtener el mes y año de la fecha actual Dim mesActual As Integer = FechaCancelacion.Month Dim añoActual As Integer = FechaCancelacion.Year @@ -2480,11 +2480,11 @@ Namespace Modelos Dim TCCliente As Decimal = tipoCambio Dim TCFluctuacion As Decimal = tipoCambio 'TOMA EL TC DE LA ULTIMA FLUCTUACION - If ValorMultiplicador = -1 AndAlso UsuarioActual.Empresa.Funcionalidad(703) = "1" AndAlso ObjFactura.CveMoneda = 2 Then + If ValorMultiplicador = -1 AndAlso esMesAnterior AndAlso UsuarioActual.Empresa.Funcionalidad(703) = "1" AndAlso ObjFactura.CveMoneda = 2 Then Dim UltimaFluctuacion As ClsPaginas.MTipoCambioFluctuacion = ClsPaginas.GlobalTipoCambioUltimaFluctuacion(Now) If UsuarioActual.Empresa.Funcionalidad(703) = "1" AndAlso UltimaFluctuacion IsNot Nothing Then - If UltimaFluctuacion.FechaFluctuacion <= Now Then + If UltimaFluctuacion.FechaFluctuacion <= FechaCancelacion Then TCCliente = UltimaFluctuacion.TCFluctuacion TCFluctuacion = UltimaFluctuacion.TCFluctuacion End If From bf35af6218ca5c432e5ba50304768954921cd8e9 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Thu, 1 Jun 2023 17:50:25 -0700 Subject: [PATCH 4/4] --Subproyecto en facturacion de remisiones --- Ventas/Ventas.aspx.vb | 65 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 62 insertions(+), 3 deletions(-) diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index beed05ef0..7ea26166e 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -20940,6 +20940,13 @@ Partial Class Ventas If Not OcurrioError Then If MovimientoPrePoliza AndAlso CveMovimientoInventario > 0 Then 'OcurrioError = Not GeneraPrePolizaMovimientoAlmacen(ObjInventario, ObjConta, ObjContPaq, ObjFactura, ObjFactura.CvePrePoliza, CveMovimientoInventario, CveAlmacen) + Dim CveSubProyectoPrePoliza As Integer = ObjFactura.CveSubProyecto + If CveAlmacen > 0 Then + Dim CveSubProyectoAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveAlmacen:=CveAlmacen).FiltroPrimeroValor("CveSubProyecto").ToString().ToEntero() + If CveSubProyectoAlmacen > 0 Then + CveSubProyectoPrePoliza = CveSubProyectoAlmacen + End If + End If If ObjInventario.GetMovimientosDetalle(CveMovimientoInventario, UsuarioActual.CveEmpresa) AndAlso ObjInventario.DtResultados.Rows.Count > 0 Then Dim DtCostos = ObjInventario.DtResultados.Copy @@ -20968,8 +20975,13 @@ Partial Class Ventas End If Try + Dim CveSubProyecto69 As Integer = CveSubProyectoPrePoliza + If UsuarioActual.CveEmpresa = 119 Then + CveSubProyecto69 = ObjFactura.CveSubProyecto + End If + 'If ValorInventario <> 0 Then - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovto69, ValorInventario, ValorInventario, 69, ObjFactura.SerieFolio, ObjFactura.SerieFolio, IdCtaContable, CveVenta:=CveVenta, CveCliente:=ObjFactura.CveCliente, CveClasificacion:=RowInv("CveClasificacion").ToString().ToEntero(), CveMovimientoAlmacen:=CveMovimientoInventario, CveSubProyecto:=ObjFactura.CveSubProyecto) Then + If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovto69, ValorInventario, ValorInventario, 69, ObjFactura.SerieFolio, ObjFactura.SerieFolio, IdCtaContable, CveVenta:=CveVenta, CveCliente:=ObjFactura.CveCliente, CveClasificacion:=RowInv("CveClasificacion").ToString().ToEntero(), CveMovimientoAlmacen:=CveMovimientoInventario, CveSubProyecto:=CveSubProyecto69) Then OcurrioError = True Exit For End If @@ -20984,7 +20996,7 @@ Partial Class Ventas If Not OcurrioError Then IdCtaContable = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", String.Format("CveAlmacen = {0}", CveAlmacen)).ToEntero() - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, Not TipoMovto69, TotalCosto, TotalCosto, 68, ObjFactura.SerieFolio, ObjFactura.SerieFolio, IdCtaContable, CveVenta:=CveVenta, CveCliente:=ObjFactura.CveCliente, CveMovimientoAlmacen:=CveMovimientoInventario, CveSubProyecto:=ObjFactura.CveSubProyecto) Then + If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, Not TipoMovto69, TotalCosto, TotalCosto, 68, ObjFactura.SerieFolio, ObjFactura.SerieFolio, IdCtaContable, CveVenta:=CveVenta, CveCliente:=ObjFactura.CveCliente, CveMovimientoAlmacen:=CveMovimientoInventario, CveSubProyecto:=CveSubProyectoPrePoliza) Then OcurrioError = True End If End If @@ -22723,6 +22735,13 @@ Partial Class Ventas End If End If + + If NuevaFactura = 1 Then + 'SI ES REFACTURACION CON PAGOS NO PERMITIR AGREGAR PAGO + If ObjFacturaNC.Pagado > 0 AndAlso UsuarioActual.Empresa.Funcionalidad(586).ToEntero() = 2 Then + BtnAgregarPago.Visible = False + End If + End If Case 3 ' TERMINAL DivTerminal.Visible = True TxtFechaPago.Text = If(DdlTipoComprobante.SelectedValue = "Rem", Now.AddDays(PlazoCobranzaRemision), Now.AddDays(PlazoCobranza)).ToShortDateString @@ -22871,6 +22890,14 @@ Partial Class Ventas UpContado.Update() End Sub Private Sub BtnAgregarPago_Click(sender As Object, e As EventArgs) Handles BtnAgregarPago.Click + If NuevaFactura = 1 Then + 'SI ES REFACTURACION CON PAGOS NO PERMITIR AGREGAR PAGO + If ObjFacturaNC.Pagado > 0 AndAlso UsuarioActual.Empresa.Funcionalidad(586).ToEntero() = 2 Then + Alert("No se puede agregar un pago a una refacturación con pagos", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + End If + Dim abonado, saldo As Double Dim total As Decimal = TxtImporteEfectivo.Text.ToDecimal + TxtImporteCredito.Text.ToDecimal + TxtImporteDebito.Text.ToDecimal + TxtImporteCheque.Text.ToDecimal + TxtImporteTransferencia.Text.ToDecimal @@ -32327,13 +32354,45 @@ Partial Class Ventas End If ObjClientes.Dispose() + Dim CveSubProyectoVenta As Integer = DdlSubProyectoDatos.SelectedValue.ToEntero() + Dim SubProyectoVenta As String = DdlSubProyectoDatos.SelectedItem.Text + + Dim CveProyectoVenta As Integer = -1 + Dim ProyectoVenta As String = "" + + If UsuarioActual.CveEmpresa = 119 AndAlso CveSubProyectoVenta > 0 Then + Dim RowSP = GlobalDTSubProyectos(-1, CveSubProyecto:=CveSubProyectoVenta, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero("") + If RowSP IsNot Nothing Then + CveProyectoVenta = RowSP("CveProyecto").ToString().ToEntero() + ProyectoVenta = RowSP("Proyecto").ToString() + End If + End If + If DtRemisionesPS IsNot Nothing Then Dim tCantidad As Decimal = 0 For Each Dr As DataRow In DtRemisionesPS.Select() + Dim CveProyecto As Integer = -1 + Dim Proyecto As String = "" + + Dim CveSubProyecto As Integer = -1 + Dim SubProyecto As String = "" + + If UsuarioActual.CveEmpresa = 119 Then + CveProyecto = CveProyectoVenta + Proyecto = ProyectoVenta + CveSubProyecto = CveSubProyectoVenta + SubProyecto = SubProyectoVenta + Else + CveProyecto = Dr("CveProyecto").ToString().ToEntero() + Proyecto = Dr("Proyecto").ToString() + CveSubProyecto = Dr("CveSubProyecto").ToString().ToEntero() + SubProyecto = Dr("SubProyecto").ToString() + End If + tCantidad = If(ChkRemProductos.Checked, GvRemPS.Rows(IndiceGVDataKey(GvRemPS, "CveVentaDetalle", $"{Dr("CveVentaDetalle")}")).FCTextBox("TxtCantidadRem").Text, Dr("Cantidad")).ToString().ToDecimal AgregarProductoServicio(tCantidad, Dr("CveUM").ToString().ToEntero(), Dr("UM").ToString(), Dr("CveClasificacion").ToString().ToEntero(), Dr("Clasificacion").ToString(), Dr("CvePS").ToString().ToEntero(), Dr("PS").ToString(), Dr("Obs").ToString(), Dr("PU").ToString().ToDecimal, Dr("Descuento").ToString().ToDecimal, - Dr("CveProyecto").ToString().ToEntero(), Dr("Proyecto").ToString(), Dr("CveSubProyecto").ToString().ToEntero(), Dr("SubProyecto").ToString(), + CveProyecto, Proyecto, CveSubProyecto, SubProyecto, CveVentaDetalle:=Dr("CveVentaDetalle").ToString().ToEntero(), CveContratoDetalle:=Dr("CveContratoDetalle").ToString().ToEntero(), CveVentaDetalleRemision:=Dr("CveVentaDetalle").ToString().ToEntero(), RegeneraIEPS:=True) Next