From 30441d28808b6855c2fd14b79a9eda62d5f78294 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 19 Feb 2024 10:31:41 -0700 Subject: [PATCH 1/5] --Correcion de carga de proveedores --- CGame/CatHuerta.aspx | 4 ++-- CGame/CatHuerta.aspx.cs | 24 +++++++++++++++++++++++- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/CGame/CatHuerta.aspx b/CGame/CatHuerta.aspx index 94527050c..a539317dd 100644 --- a/CGame/CatHuerta.aspx +++ b/CGame/CatHuerta.aspx @@ -163,8 +163,8 @@
- - + +
diff --git a/CGame/CatHuerta.aspx.cs b/CGame/CatHuerta.aspx.cs index b5fc61ddb..aa7452887 100644 --- a/CGame/CatHuerta.aspx.cs +++ b/CGame/CatHuerta.aspx.cs @@ -1,4 +1,4 @@ - using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI.WebControls; using Extensiones; public partial class CATHuerta :ClsPaginas { #region Propiedades private int CveHuerta { get{return (ViewState["CveHuerta"] == null) ? 0 : Convert.ToInt32(ViewState["CveHuerta"]);} set{ViewState["CveHuerta"] =value;} } #endregion protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack){ CargaProveedor(); CargaHuerta(); } } protected void CargaHuerta() { ClsCGame ObjHuer =new ClsCGame(); if (ObjHuer.GetHuerta(UsuarioActual.CveEmpresa)) + using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI.WebControls; using Extensiones; public partial class CATHuerta :ClsPaginas { #region Propiedades private int CveHuerta { get{return (ViewState["CveHuerta"] == null) ? 0 : Convert.ToInt32(ViewState["CveHuerta"]);} set{ViewState["CveHuerta"] =value;} } #endregion protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack){ CargaProveedor(); CargaProveedores(); CargaHuerta(); } } protected void CargaHuerta() { ClsCGame ObjHuer =new ClsCGame(); if (ObjHuer.GetHuerta(UsuarioActual.CveEmpresa)) { GVHuerta.DataSource = ObjHuer.DtResultados; GVHuerta.DataBind(); @@ -78,4 +78,26 @@ } } } + + private void CargaProveedores() + { + if (UsuarioActual.Empresa.Funcionalidad(105) == "1") + { + DdlProveedor.setEsWebService(true); + DdlProveedor.Attributes.Add("data-metodo", "getproveedores"); + DdlProveedor.SelectedText = "Seleccione"; + DdlProveedor.SelectedValue = "-1"; + DdlProveedor.ddl.AutoPostBack = true; + } + else + { + DdlProveedor.DataSource = ClsPaginas.get_GlobalDTCompProveedores(UsuarioActual.CveEmpresa); + DdlProveedor.DataBind(); + DdlProveedor.ddl.Items.Insert(0, new ListItem("Seleccione", "-1")); + DdlProveedor.ddl.AutoPostBack = true; + } + + UPModalHuer.Update(); + } + } \ No newline at end of file From 412493fee0301a9e9bb56a24e792826d9f932f0e Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 19 Feb 2024 14:59:52 -0700 Subject: [PATCH 2/5] --cancelacion de remision con boleto. --solo si es una partida --- App_Code/ClsTransportes.vb | 23 ++++++++- App_Code/ClsVentas.vb | 22 ++++++++- App_Code/Modelos.vb | 44 +++++++++++++---- Transportes/Boletos.aspx.vb | 87 +++++++++++++++++++++------------- Transportes/RepBoletos.aspx.vb | 69 +++++++++++++++++++-------- 5 files changed, 183 insertions(+), 62 deletions(-) diff --git a/App_Code/ClsTransportes.vb b/App_Code/ClsTransportes.vb index a5e09b0c2..f286123d7 100644 --- a/App_Code/ClsTransportes.vb +++ b/App_Code/ClsTransportes.vb @@ -204,9 +204,28 @@ Public Class ClsTransportes Return Retorno - End Function -#End Region + End Function + Public Function GetRemisionBoleto(CveViajePasajero As Integer, CveEmpresa As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_Trans_ViajesPasajerosVentaGet") + With SqlAdapter.SelectCommand.Parameters + .Add("@CveViajePasajero", SqlDbType.Int).Value = CveViajePasajero + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener la remisión del boleto.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + + End Function + +#End Region + #Region "Destinos" Public Function GetDestinos(Optional CveRuta As Integer = 0) As Boolean Dim Retorno As Boolean = False diff --git a/App_Code/ClsVentas.vb b/App_Code/ClsVentas.vb index dec991bdb..8234a17ad 100644 --- a/App_Code/ClsVentas.vb +++ b/App_Code/ClsVentas.vb @@ -880,6 +880,25 @@ Public Class ClsVentas Return Retorno End Function + + Public Function UpdateBoletosVenta(CveVenta As Integer, CveEmpresa As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_Vta_VentasBoletosUpdate") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveVenta", SqlDbType.Int).Value = CveVenta + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al cancelar los boletos de la venta.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function Public Function UpdateEstatusFactura(Estatus As Integer, FolioFiscal As String, SelloSAT As String, FechaCancelacion As DateTime, CveVenta As Integer, Optional IdPolizaCancelacion As Integer = -1, Optional CvePAC As Integer = -1, Optional CveEstatusRefacturacion As Integer = 0, Optional CveUsuarioCambiaEstatus As Integer = -1, Optional FechaCambioEstatus As String = "-1", Optional RFCReceptor As String = "-1", @@ -1428,7 +1447,7 @@ Public Class ClsVentas Optional CveContratoDetalle As Integer = -1, Optional PorcentajeIVA As Decimal = 0, Optional IEPS As Decimal = -1, Optional PorcentajeIEPS As Double = 0, Optional CvePromocionDetalle As Integer = -1, Optional CveMovimientoDetallePedido As Integer = -1, Optional ImporteRetIVA As Decimal = 0, Optional PorcentajeRetIVA As Double = 0, Optional ImporteRetISR As Decimal = 0, Optional PorcentajeRetISR As Decimal = 0, Optional CuentaPredial As String = "", Optional CvePrecioLista As Integer = -1, Optional CveActivoFijo As Integer = -1, - Optional NumTurnos As Decimal = 0D, Optional EstatusAlmacen As Integer = 0, Optional CantidadConversion As Decimal = 0) As Boolean + Optional NumTurnos As Decimal = 0D, Optional EstatusAlmacen As Integer = 0, Optional CantidadConversion As Decimal = 0, Optional CveViajePasajero As Integer = -1) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_VentasDetalleAdd") @@ -1463,6 +1482,7 @@ Public Class ClsVentas .Add("@NumTurnos", SqlDbType.Decimal).Value = NumTurnos .Add("@EstatusAlmacen", SqlDbType.Int).Value = EstatusAlmacen .Add("@CantidadConversion", SqlDbType.Decimal).Value = CantidadConversion + .Add("@CveViajePasajero", SqlDbType.Int).Value = CveViajePasajero End With Try diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb index d87eb3840..6c308b52f 100644 --- a/App_Code/Modelos.vb +++ b/App_Code/Modelos.vb @@ -1445,6 +1445,9 @@ Namespace Modelos TmpDT.Columns.Add("NumTurnos", GetType(Decimal)) TmpDT.Columns("NumTurnos").DefaultValue = 0 + TmpDT.Columns.Add("CveViajePasajero", GetType(Integer)) + TmpDT.Columns("CveViajePasajero").DefaultValue = -1 + Return TmpDT End Function @@ -1452,7 +1455,8 @@ Namespace Modelos Optional CveUM As Integer = -1, Optional CveProyecto As Integer = -1, Optional Proyecto As String = "", Optional CveSubProyecto As Integer = -1, Optional SubProyecto As String = "", Optional PorcentajeIVA As Decimal = -1, - Optional CuentaPredial As String = "", Optional CveVentaDetallePadre As Integer = -1, Optional CveVentaDetalleRemision As Integer = -1) As Boolean + Optional CuentaPredial As String = "", Optional CveVentaDetallePadre As Integer = -1, + Optional CveVentaDetalleRemision As Integer = -1, Optional CveViajePasajero As Integer = -1) As Boolean If Not CvePS > 0 Then Alert("Ocurrió un error al cargar la información del producto a agregar. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgError) @@ -1649,6 +1653,7 @@ Namespace Modelos Row("AFValorInicial") = 0 Row("NumTurnos") = 0 + Row("CveViajePasajero") = CveViajePasajero Me.DtDetalle.Rows.Add(Row) @@ -2202,6 +2207,14 @@ Namespace Modelos 'Se agregan los PS For Each Row As DataRow In TmpDTDetalle.Rows + + Dim CveViajePasajero As Integer = -1 + + 'VERIFICA QUE EXISTA LA COLUMNA + If TmpDTDetalle.Columns("CveViajePasajero") IsNot Nothing Then + CveViajePasajero = Row("CveViajePasajero").ToString().ToEntero() + End If + If Not ObjVentas.AddVentaDetalle(ObjVentas.CveVenta, Row("CvePS").ToString.ToEntero, Row("Cantidad").ToString.ToDecimal, Row("CveUM").ToString.ToEntero, Row("PU").ToString.ToDecimal(If(factura.ConvertirPesos, factura.TipoCambio, 1)), Row("ImporteIVA").ToString.ToDecimal(If(factura.ConvertirPesos, factura.TipoCambio, 1)), Math.Round((Row("Total").ToString.ToDecimal(If(factura.ConvertirPesos, factura.TipoCambio, 1)) * (1 + Row("PorcentajeIVA").ToString.ToDecimal(If(factura.ConvertirPesos, factura.TipoCambio, 1)))), 6), Row("Obs").ToString, Row("Descuento").ToString.ToDecimal(If(factura.ConvertirPesos, factura.TipoCambio, 1)), Row("TipoDescuento").ToString.ToEntero, Row("CveSubProyecto").ToString.ToEntero, Row("CvePresupuestoIngreso").ToString.ToEntero, @@ -2210,7 +2223,7 @@ Namespace Modelos IEPS:=Row("ImporteIEPS").ToString.ToDecimal, CveMovimientoDetallePedido:=Row("CveMovimientoDetallePedido").ToString.ToEntero, ImporteRetIVA:=Row("ImporteRetIVA").ToString.ToDecimal, ImporteRetISR:=Row("ImporteRetISR").ToString.ToDecimal, PorcentajeIEPS:=Row("PorcentajeIEPS").ToString.ToDecimal, PorcentajeRetIVA:=Row("PorcentajeRetIVA").ToString.ToDouble, PorcentajeRetISR:=Row("PorcentajeRetISR").ToString.ToDecimal, CuentaPredial:=Row("CuentaPredial").ToString, - PorcentajeIVA:=Row("PorcentajeIVA").ToString.ToDecimal) Then + PorcentajeIVA:=Row("PorcentajeIVA").ToString.ToDecimal, CveViajePasajero:=CveViajePasajero) Then ErrorList.Add("Ocurrió un error al agregar un Producto o Servicio a la factura.
Revise su factura y cualquier detalle comuníquese a Soporte Técnico") Exit For Else @@ -5209,6 +5222,14 @@ Namespace Modelos End If End Function + + Public Function CancelarBoleto(CveViajePasajero As Integer) As Boolean + Dim TieneError As Boolean = False + + Return Not TieneError + End Function + + Private Shared Function DecodeBase64(ByVal strXMLCodificado As String) As String Try Dim decbuff As Byte() = Convert.FromBase64String(strXMLCodificado) @@ -5246,8 +5267,8 @@ Namespace Modelos ''' Cancela la factura para poder realizar la refacturacion ''' ''' - Public Function CancelarPorRefacturacion(CveMotivoCancelacion As Integer, Motivo As String, Optional FolioSustitucion As String = "", Optional ValidarSAT As Boolean = False, Optional CveEstadoCancelacion As Integer = 0, Optional CveEstatusFacturaAsignado As Integer = -1) As MCancelacionVentaMensaje - Return CancelarVenta(Me, Me.UsuarioActual, EsRefacturacion:=True, CveMotivoCancelacion:=CveMotivoCancelacion, MotivoCancelacion:=Motivo, FolioSustitucion:=FolioSustitucion, ValidarSAT:=ValidarSAT, CveEstadoCancelacion:=CveEstadoCancelacion, CveEstatusFacturaAsignado:=CveEstatusFacturaAsignado) + Public Function CancelarPorRefacturacion(CveMotivoCancelacion As Integer, Motivo As String, Optional FolioSustitucion As String = "", Optional ValidarSAT As Boolean = False, Optional CveEstadoCancelacion As Integer = 0) As MCancelacionVentaMensaje + Return CancelarVenta(Me, Me.UsuarioActual, EsRefacturacion:=True, CveMotivoCancelacion:=CveMotivoCancelacion, MotivoCancelacion:=Motivo, FolioSustitucion:=FolioSustitucion, ValidarSAT:=ValidarSAT, CveEstadoCancelacion:=CveEstadoCancelacion) End Function ''' ''' Cancela la factura y realiza las operaciones correspondientes @@ -5255,15 +5276,15 @@ Namespace Modelos ''' ''' ''' - Public Function CancelarFactura(RealizarDevolucionAlmacen As Boolean, Optional ListaRemisionesCancelar As List(Of Integer) = Nothing, Optional CveMotivoCancelacion As Integer = -1, Optional Motivo As String = "", Optional ValidarSAT As Boolean = True, Optional CveEstadoCancelacion As Integer = 0) As MCancelacionVentaMensaje + Public Function CancelarFactura(RealizarDevolucionAlmacen As Boolean, Optional ListaRemisionesCancelar As List(Of Integer) = Nothing, Optional CveMotivoCancelacion As Integer = -1, Optional Motivo As String = "", Optional ValidarSAT As Boolean = True, Optional CveEstadoCancelacion As Integer = 0, Optional CancelarBoletos As Boolean = False) As MCancelacionVentaMensaje 'Comprobante emitido con errores sin relación - Return CancelarVenta(Me, Me.UsuarioActual, RealizarDevolucionAlmacen:=RealizarDevolucionAlmacen, ListaRemisionesCancelar:=ListaRemisionesCancelar, CveMotivoCancelacion:=CveMotivoCancelacion, MotivoCancelacion:=Motivo, CveEstadoCancelacion:=CveEstadoCancelacion) + Return CancelarVenta(Me, Me.UsuarioActual, RealizarDevolucionAlmacen:=RealizarDevolucionAlmacen, ListaRemisionesCancelar:=ListaRemisionesCancelar, CveMotivoCancelacion:=CveMotivoCancelacion, MotivoCancelacion:=Motivo, CveEstadoCancelacion:=CveEstadoCancelacion, CancelarBoletos:=CancelarBoletos) End Function Private Function CancelarVenta(ObjFactura As Modelos.Factura, UsuarioActual As Usuario, Optional EsRefacturacion As Boolean = False, Optional RealizarDevolucionAlmacen As Boolean = False, Optional ListaRemisionesCancelar As List(Of Integer) = Nothing, Optional CveEstatusFacturaAsignado As Integer = -1, Optional FechaCancelacion As String = "-1", Optional AcuseCancelacion As String = "", Optional CveMotivoCancelacion As Integer = -1, Optional MotivoCancelacion As String = "", - Optional FolioSustitucion As String = "", Optional ValidarSAT As Boolean = True, Optional CveEstadoCancelacion As Integer = 0) As MCancelacionVentaMensaje + Optional FolioSustitucion As String = "", Optional ValidarSAT As Boolean = True, Optional CveEstadoCancelacion As Integer = 0, Optional CancelarBoletos As Boolean = False) As MCancelacionVentaMensaje Dim Retorno As New MCancelacionVentaMensaje() Dim ErrorList As New List(Of String) @@ -6434,6 +6455,13 @@ Namespace Modelos End If End If + If CancelarBoletos Then + If Not ObjVentas.UpdateBoletosVenta(CveVenta, UsuarioActual.CveEmpresa) Then + ErrorCancelar = True + MensajeError = "Ocurrió un error al cancelar los boletos." + End If + End If + If CancelarRemisiones Then If SeCancelaRemisionProceso Then @@ -8055,7 +8083,7 @@ Namespace Modelos Public Property Giro As String Public Property CvePrecioLista As Integer Public Property EnviarFactura As String - Public Property CveSucursal As Integer + Public Property CveSubProyecto As Integer Public Property RetIVA As Decimal Public Property RetISR As Decimal Public Property IEPS As Decimal diff --git a/Transportes/Boletos.aspx.vb b/Transportes/Boletos.aspx.vb index 74451e011..24d302887 100644 --- a/Transportes/Boletos.aspx.vb +++ b/Transportes/Boletos.aspx.vb @@ -67,6 +67,20 @@ Partial Class Boletos End If End Sub + Private Sub CreaDTPasajeros() + DtPasajeros = New DataTable + DtPasajeros.Columns.Add("CveViajePasajero", GetType(Integer)) + DtPasajeros.Columns.Add("Numero", GetType(Integer)) + DtPasajeros.Columns.Add("Nombre", GetType(String)) + DtPasajeros.Columns.Add("Visa", GetType(String)) + DtPasajeros.Columns.Add("Asiento", GetType(String)) + DtPasajeros.Columns.Add("Celular", GetType(String)) + DtPasajeros.Columns.Add("Importe", GetType(Decimal)) + DtPasajeros.Columns.Add("Observaciones", GetType(String)) + + End Sub + + Private Sub CargaDatos() Dim ObjContratos As New ClsContratos Dim ObjViaje As New ClsTransportes @@ -76,15 +90,8 @@ Partial Class Boletos If ObjContratos.DtResultados IsNot Nothing AndAlso ObjContratos.DtResultados.Rows.Count > 0 Then TxtRuta.Text = Contrato.Rows(0)("Ruta").ToString TxtFecha.Text = Contrato.Rows(0)("FechaInicial").ToString.ToDate.ToShortDateString - DtPasajeros = New DataTable - DtPasajeros.Columns.Add("Numero", GetType(Integer)) - DtPasajeros.Columns.Add("Nombre", GetType(String)) - DtPasajeros.Columns.Add("Visa", GetType(String)) - DtPasajeros.Columns.Add("Asiento", GetType(String)) - DtPasajeros.Columns.Add("Celular", GetType(String)) - DtPasajeros.Columns.Add("Importe", GetType(Decimal)) - DtPasajeros.Columns.Add("Observaciones", GetType(String)) + CreaDTPasajeros() InicializaCombos() 'Boletos Vendidos @@ -199,10 +206,14 @@ Partial Class Boletos Importe = dr("Importe").ToString.ToDecimal '.Text, TxtVisa.Text, TxtCelular.Text, CBool(RblSexo.SelectedValue), TxtObservaciones.Text - If Not ObjTransporte.AddViajesPasajeros(CveViaje, DdlPartida.SelectedValue.ToEntero, DdlDestino.SelectedValue.ToEntero, Importe, Asiento.ToEntero, Nombre, Visa, Celular, Sexo, Obs, UsuarioActual.CveUsuario, UsuarioActual.CveVendedor) > 1 Then + Dim CveViajePasajero = ObjTransporte.AddViajesPasajeros(CveViaje, DdlPartida.SelectedValue.ToEntero, DdlDestino.SelectedValue.ToEntero, Importe, Asiento.ToEntero, Nombre, Visa, Celular, Sexo, Obs, UsuarioActual.CveUsuario, UsuarioActual.CveVendedor) + If CveViajePasajero < 1 Then TieneError = True SbAlert.Append("Ocurrió un error al generar el viaje") + Exit For End If + + dr("CveViajePasajero") = CveViajePasajero Next If Not TieneError Then @@ -329,11 +340,11 @@ Partial Class Boletos End Sub Private Function CrearRemision(ByRef objTrans As ClsTransportes) As Modelos.Factura.MMensajeFactura - Dim Retorno As Modelos.Factura.MMensajeFactura = Nothing + Dim Retorno As New Modelos.Factura.MMensajeFactura Dim CveCliente As Integer = 1154164 Dim CveMoneda As Integer = 2 - Dim CveSubProyecto As Integer = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto").ToEntero() + Dim CveSubProyecto As Integer = -1 If CveCliente <= 0 Then Retorno.Mensajes.Add("No se pudo cargar el cliente") @@ -345,34 +356,46 @@ Partial Class Boletos Return Retorno End If - Dim ObjFactura = Modelos.Factura.CrearVentaNueva(UsuarioActual, CveSubProyecto, CveCliente, CveMoneda, "Rem") - Dim CvePSBoleto As Integer = 912720 - For Each Dr As DataRow In DtPasajeros.Rows - Dim Obs = Dr("Nombre").ToString - Dim Importe = Dr("Importe").ToString.ToDecimal() - If Importe <= 0 Then - Retorno.Mensajes.Add("El importe debe ser mayor a 0") - Return Retorno - End If + If EsProduccion Then + CvePSBoleto = 986337 + CveCliente = 1172306 + End If - ObjFactura.AgregarPS(CvePSBoleto, 1, Importe, 0, Obs, CveSubProyecto:=CveSubProyecto, PorcentajeIVA:=0) - Next - - ObjFactura.CalculaTotales() - - Try - Retorno = ObjFactura.EmitirFactura(False, Transac:=objTrans.IniciaTransacSQL()) - Catch ex As Exception - Retorno = Nothing - GuardaLog(ex.ToString()) - End Try + Dim ObjFactura = Modelos.Factura.CrearVentaNueva(UsuarioActual, CveSubProyecto, CveCliente, CveMoneda, "Rem") If ObjFactura IsNot Nothing Then - ObjFactura.Dispose() + CveSubProyecto = ObjFactura.Cliente.CveSubProyecto + + For Each Dr As DataRow In DtPasajeros.Rows + Dim Obs = Dr("Nombre").ToString + Dim Importe = Dr("Importe").ToString.ToDecimal() + If Importe <= 0 Then + Retorno.Mensajes.Add("El importe debe ser mayor a 0") + Return Retorno + End If + + ObjFactura.AgregarPS(CvePSBoleto, 1, Importe, 0, Obs, CveSubProyecto:=CveSubProyecto, PorcentajeIVA:=0, CveViajePasajero:=Dr("CveViajePasajero").ToString().ToEntero()) + Next + + ObjFactura.CalculaTotales() + + Try + Retorno = ObjFactura.EmitirFactura(False, Transac:=objTrans.IniciaTransacSQL()) + Catch ex As Exception + Retorno = Nothing + GuardaLog(ex.ToString()) + End Try + + If ObjFactura IsNot Nothing Then + ObjFactura.Dispose() + End If + Else + Retorno.Mensajes.Add("No se pudo generar la factura") End If + Return Retorno End Function End Class diff --git a/Transportes/RepBoletos.aspx.vb b/Transportes/RepBoletos.aspx.vb index 8ade27feb..1baf1c79d 100644 --- a/Transportes/RepBoletos.aspx.vb +++ b/Transportes/RepBoletos.aspx.vb @@ -1,5 +1,6 @@ Option Explicit On Option Strict On + Imports System.Data Imports ADSNetLibrary.Helpers Imports ADSNetLibrary.SIGAPI.Helpers @@ -32,16 +33,10 @@ Partial Class ListadoBoletos CveViaje = Request.QueryString("CveViaje").ToEntero Ruta = IfNull(Request("Ruta"), "").ToString LblViaje.Text = Ruta - - InicializaCombos() CargaDatos() End If End Sub - Private Sub InicializaCombos() - - End Sub - Private Sub CargaDatos() Dim ObjTransportes As New ClsTransportes If ObjTransportes.GetViajesPasajeros(CveViaje) Then @@ -86,22 +81,58 @@ Partial Class ListadoBoletos Dim Estatus As String = GvRow.DataKey("Estatus") Dim cambiarEstatus As Boolean = Not Estatus.ToBool Dim ObjTransportes As New ClsTransportes - ObjTransportes.IniciaTransacSQL() - Try - If ObjTransportes.UpdateViajesPasajeros(CveViajePasajero.ToEntero, Activar:=cambiarEstatus, Estatus:=cambiarEstatus) Then - If Not cambiarEstatus Then - Alert($"El boleto ha sido cancelado correctamente.") - Else - Alert($"El boleto ha sido reactivado correctamente.") - End If - End If - ObjTransportes.Commit() - Catch ex As Exception - ObjTransportes.RollBack() - Alert($"No se pudo cambiar el estatus del boleto {ex}", TipoMensaje.MsgError) + + Dim TieneError As Boolean = False + Try + Dim DtRem As DataTable = Nothing + If ObjTransportes.GetRemisionBoleto(CveViajePasajero.ToEntero, UsuarioActual.CveEmpresa) Then + DtRem = ObjTransportes.DtResultados.Copy() + End If + + If DtRem IsNot Nothing Then + If DtRem.Rows.Count > 0 Then + Dim CveVenta As Integer = DtRem.Rows(0)("CveVenta").ToString().ToEntero() + If CveVenta > 0 Then + Dim ObjRem As New Modelos.Factura(UsuarioActual, CveVenta, UsuarioActual.CveEmpresa, VerificaAlmacen:=False) + + If ObjRem.DtDetalle.Rows.Count > 0 Then + 'SI SOLO TIENE UNA PARTIDA CANCELAR LA REMISION + If ObjRem.DtDetalle.Rows.Count = 1 Then + Dim RespCancelacion = ObjRem.CancelarFactura(False, ValidarSAT:=False, CancelarBoletos:=True) + If RespCancelacion IsNot Nothing Then + TieneError = RespCancelacion.HuboError + Else + TieneError = True + End If + Else + TieneError = Not ObjRem.CancelarBoleto(CveViajePasajero.ToEntero) + End If + Else + TieneError = True + End If + + End If + Else + 'SI NO TIENE VENTA, SOLO CANCELAR EL BOLETO + If Not ObjTransportes.UpdateViajesPasajeros(CveViajePasajero.ToEntero, Activar:=cambiarEstatus, Estatus:=cambiarEstatus) Then + TieneError = True + End If + End If + + End If + + Catch ex As Exception + TieneError = True + GuardaLog(ex.ToString()) Finally + If TieneError Then + Alert($"El boleto ha sido cancelado correctamente.") + Else + Alert($"Ocurrió un error al cancelar el boleto.") + End If ObjTransportes.Dispose() CargaDatos() End Try End Sub + End Class \ No newline at end of file From 84f691f2c8d912ff1962f30474cdf0ce95dd733b Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 19 Feb 2024 16:27:17 -0700 Subject: [PATCH 3/5] --Correciones de generacion de remision --- App_Code/Modelos.vb | 2 +- Transportes/Boletos.aspx.vb | 145 ++++++++++++++++++++++++------------ 2 files changed, 97 insertions(+), 50 deletions(-) diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb index 6c308b52f..f1c956678 100644 --- a/App_Code/Modelos.vb +++ b/App_Code/Modelos.vb @@ -1274,7 +1274,7 @@ Namespace Modelos ObjFactura.FechaEjecucion = DateTime.Today ObjFactura.UsuarioCreo = UsuarioActual.Usuario ObjFactura.CondicionesPago = 0 - ObjFactura.TipoDocumento = "Factura" + ObjFactura.TipoDocumento = ObjFactura.TipodeComprobante 'Totales, Y se llena TmpDTImpuestos 'CLIENTE diff --git a/Transportes/Boletos.aspx.vb b/Transportes/Boletos.aspx.vb index 585cea58b..cdc02e64b 100644 --- a/Transportes/Boletos.aspx.vb +++ b/Transportes/Boletos.aspx.vb @@ -79,11 +79,13 @@ Partial Class Boletos Dim ObjViaje As New ClsTransportes If ObjContratos.GetContratos(CveViaje, UsuarioActual.CveEmpresa) Then - Contrato = ObjContratos.DtResultados + Contrato = ObjContratos.DtResultados.Copy() + If ObjContratos.DtResultados IsNot Nothing AndAlso ObjContratos.DtResultados.Rows.Count > 0 Then TxtRuta.Text = Contrato.Rows(0)("SubProyecto").ToString TxtFecha.Text = Contrato.Rows(0)("FechaInicial").ToString.ToDate.ToShortDateString DtPasajeros = New DataTable + DtPasajeros.Columns.Add("CveViajePasajero", GetType(Integer)) DtPasajeros.Columns.Add("Numero", GetType(Integer)) DtPasajeros.Columns.Add("Nombre", GetType(String)) DtPasajeros.Columns.Add("Visa", GetType(String)) @@ -115,6 +117,9 @@ Partial Class Boletos End If End If + ObjContratos.Dispose() + ObjViaje.Dispose() + Else ObjContratos.Dispose() ObjViaje.Dispose() @@ -122,8 +127,6 @@ Partial Class Boletos Response.Redirect($"~/Transportes/RepContratos.aspx") End If - ObjContratos.Dispose() - ObjViaje.Dispose() 'Boletos Vendidos @@ -172,16 +175,16 @@ Partial Class Boletos ImporteR = ObjDestinos.DtResultados.FiltroPrimeroValor("Importe").ToDecimal.RoundSQL End If If ImporteR > 0 Then - ViewState("Importe") = ImporteR - LbCostos.Text = $"El precio de su boleto es ${ImporteR.FormatoNumero}" - LbCostos.Visible = True - BtnAgregarPasajero.Visible = True - Else - ViewState("Importe") = 0 - BtnAgregarPasajero.Visible = False - LbCostos.Visible = False - Alert("No se encontro una tarifa para estos destinos", TipoMensaje.MsgAdvertencia) - End If + ViewState("Importe") = ImporteR + LbCostos.Text = $"El precio de su boleto es ${ImporteR.FormatoNumero}" + LbCostos.Visible = True + BtnAgregarPasajero.Visible = True + Else + ViewState("Importe") = 0 + BtnAgregarPasajero.Visible = False + LbCostos.Visible = False + Alert("No se encontro una tarifa para estos destinos", TipoMensaje.MsgAdvertencia) + End If ObjDestinos.Dispose() @@ -231,9 +234,18 @@ Partial Class Boletos Sexo = dr("CveSexo").ToString.ToBool Obs = dr("Observaciones").ToString - If ObjTransporte.AddViajesPasajeros(CveViaje, CveDestinoOrigen, CveDestinoFinal, Importe, Asiento.ToEntero, Nombre, Visa, Celular, Sexo, Obs, UsuarioActual.CveUsuario, UsuarioActual.CveVendedor) > 1 Then - ObjTransporte.Commit() + Dim CveViajePasajero = ObjTransporte.AddViajesPasajeros(CveViaje, CveDestinoOrigen, CveDestinoFinal, Importe, Asiento.ToEntero, Nombre, Visa, Celular, Sexo, Obs, UsuarioActual.CveUsuario, UsuarioActual.CveVendedor) + If Not CveViajePasajero > 1 Then + TieneError = True End If + + If CveViajePasajero < 1 Then + TieneError = True + SbAlert.Append("Ocurrió un error al generar el viaje") + Exit For + End If + + dr("CveViajePasajero") = CveViajePasajero Next @@ -245,8 +257,11 @@ Partial Class Boletos TieneError = Retorno.TieneError If Not TieneError Then - If Retorno.CveVenta > 0 AndAlso Not Retorno.TieneError Then - SbAlert.AppendFormat("{0}", Retorno.Mensajes(Retorno.Mensajes.Count - 1)) + + If Not Retorno.TieneError Then + If Retorno.CveVenta <= 0 Then + Retorno.TieneError = True + End If Else TieneError = True SbAlert.Append("Ocurrió un error al generar la factura") @@ -259,6 +274,12 @@ Partial Class Boletos Else TieneError = True End If + Else + If Retorno.Mensajes IsNot Nothing AndAlso Retorno.Mensajes.Count > 0 Then + For Each Mensaje As String In Retorno.Mensajes + SbAlert.AppendFormat("{0}
", Mensaje) + Next + End If End If Else TieneError = True @@ -278,19 +299,26 @@ Partial Class Boletos ObjTransporte.RollBack() ObjTransporte.Dispose() Else - SbAlert.Append("El boleto se genero correctamente.") - DtPasajeros.Clear() - + ObjTransporte.Commit() ObjTransporte.Dispose() - DdlPartida.SelectedValueExist("-1") - DdlDestino.SelectedValueExist("-1") + SbAlert.Append("El boleto se genero correctamente.") + + DtPasajeros.Clear() + GvB.DataSource = DtPasajeros + GvB.DataBind() + + DdlPartida.SelectedIndex = -1 + 'DdlPartida.SelectedValueExist("-1") + + DdlDestino.SelectedIndex = -1 + 'DdlDestino.SelectedValueExist("-1") + AsientoSeleccionado = "" CargaDatos() End If + Alert(SbAlert.ToString(), If(TieneError, TipoMensaje.MsgError, TipoMensaje.MsgInformacion), ShowCloseButton:=False) - - End Try UpPanel.Update() @@ -369,50 +397,69 @@ Partial Class Boletos End Sub Private Function CrearRemision(ByRef objTrans As ClsTransportes) As Modelos.Factura.MMensajeFactura - Dim Retorno As Modelos.Factura.MMensajeFactura = Nothing + Dim Retorno As New Modelos.Factura.MMensajeFactura Dim CveCliente As Integer = 1154164 Dim CveMoneda As Integer = 2 - Dim CveSubProyecto As Integer = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto").ToEntero() + Dim CveSubProyecto As Integer = -1 + + Dim CvePSBoleto As Integer = 912720 + + If EsProduccion Then + CvePSBoleto = 986337 + CveCliente = 1172306 + End If If CveCliente <= 0 Then Retorno.Mensajes.Add("No se pudo cargar el cliente") Return Retorno End If - If CveSubProyecto <= 0 Then - Retorno.Mensajes.Add("No se pudo cargar el subproyecto") - Return Retorno - End If + Dim ObjFactura = Modelos.Factura.CrearVentaNueva(UsuarioActual, -1, CveCliente, CveMoneda, "Rem") - Dim ObjFactura = Modelos.Factura.CrearVentaNueva(UsuarioActual, CveSubProyecto, CveCliente, CveMoneda, "Rem") + If ObjFactura IsNot Nothing Then + 'TOMA EL SUBPROYECTO DEL CLIENTE + CveSubProyecto = ObjFactura.Cliente.CveSubProyecto - Dim CvePSBoleto As Integer = 912720 - - For Each Dr As DataRow In DtPasajeros.Rows - Dim Obs = Dr("Nombre").ToString - Dim Importe = Dr("Importe").ToString.ToDecimal() - If Importe <= 0 Then - Retorno.Mensajes.Add("El importe debe ser mayor a 0") + If CveSubProyecto <= 0 Then + Retorno.Mensajes.Add("No se pudo cargar el subproyecto") Return Retorno End If - ObjFactura.AgregarPS(CvePSBoleto, 1, Importe, 0, Obs, CveSubProyecto:=CveSubProyecto, PorcentajeIVA:=0) - Next + ObjFactura.CveSubProyecto = CveSubProyecto + ObjFactura.CveSubProyectoCobranza = CveSubProyecto + ObjFactura.CveSubProyectoEjecucion = CveSubProyecto + ObjFactura.SetSubProyecto() + ObjFactura.SetSubProyectoMatriz() - ObjFactura.CalculaTotales() + For Each Dr As DataRow In DtPasajeros.Rows + Dim Obs = Dr("Nombre").ToString + Dim Importe = Dr("Importe").ToString.ToDecimal() + If Importe <= 0 Then + Retorno.Mensajes.Add("El importe debe ser mayor a 0") + Return Retorno + End If - Try - Retorno = ObjFactura.EmitirFactura(False, Transac:=objTrans.IniciaTransacSQL()) - Catch ex As Exception - Retorno = Nothing - GuardaLog(ex.ToString()) - End Try + ObjFactura.AgregarPS(CvePSBoleto, 1, Importe, 0, Obs, CveSubProyecto:=CveSubProyecto, PorcentajeIVA:=0, CveViajePasajero:=Dr("CveViajePasajero").ToString().ToEntero()) + Next - If ObjFactura IsNot Nothing Then - ObjFactura.Dispose() + ObjFactura.CalculaTotales() + + Try + Retorno = ObjFactura.EmitirFactura(False, Transac:=objTrans.IniciaTransacSQL()) + Catch ex As Exception + Retorno = Nothing + GuardaLog(ex.ToString()) + End Try + + If ObjFactura IsNot Nothing Then + ObjFactura.Dispose() + End If + Else + Retorno.Mensajes.Add("No se pudo generar la factura") End If + Return Retorno End Function From ea7df27b86a1efc52ee7cc6c6a9606c72f7d0e12 Mon Sep 17 00:00:00 2001 From: rakcsle Date: Mon, 19 Feb 2024 16:27:07 -0700 Subject: [PATCH 4/5] =?UTF-8?q?Compras=20Correcci=C3=B3n=20global=20DT=20T?= =?UTF-8?q?ipos=20Activos=20Fijos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Compras/Compras.aspx.vb | 2 +- General/SaldosIniciales.aspx | 2 + General/SaldosIniciales.aspx.vb | 74 ++++++++++++++++++++++++++++++--- OS/Asignaciones.aspx.vb | 6 +-- 4 files changed, 75 insertions(+), 9 deletions(-) diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index e92869286..19d886019 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -3398,7 +3398,7 @@ Partial Class Compras_Compras End Sub Private Sub CargaTiposAF() - ViewState("TmpDTTiposAF") = GlobalDTTipoActivoFijo(UsuarioActual.CveEmpresa) + ViewState("TmpDTTiposAF") = GlobalDTTipoActivoFijo(UsuarioActual.CveEmpresa).Copy() Dim Row As DataRow = DirectCast(ViewState("TmpDTTiposAF"), DataTable).NewRow() Row("CveTipoActivoFijo") = -1 : Row("TipoActivoFijo") = "Seleccione" DirectCast(ViewState("TmpDTTiposAF"), DataTable).Rows.InsertAt(Row, 0) diff --git a/General/SaldosIniciales.aspx b/General/SaldosIniciales.aspx index 55ac5080c..abcd818cb 100644 --- a/General/SaldosIniciales.aspx +++ b/General/SaldosIniciales.aspx @@ -42,6 +42,8 @@ + + diff --git a/General/SaldosIniciales.aspx.vb b/General/SaldosIniciales.aspx.vb index 25aa7506c..2b9d23ec8 100644 --- a/General/SaldosIniciales.aspx.vb +++ b/General/SaldosIniciales.aspx.vb @@ -225,7 +225,7 @@ Partial Class General_SaldosIniciales - ElseIf RblFormato.SelectedValue = "3" Or RblFormato.SelectedValue = "4" Then + ElseIf RblFormato.SelectedValue = "3" Or RblFormato.SelectedValue = "4" Or RblFormato.SelectedValue = "17" Then If Not dt.Columns(0).ColumnName = "Sucursal" Then Alert("El nombre de la primera columna debe ser 'Sucursal'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub @@ -293,6 +293,16 @@ Partial Class General_SaldosIniciales Exit Sub End If + If Not dt.Columns(15).ColumnName = "Folio Fiscal" Then + Alert("El nombre de la decimosexta columna debe ser 'Folio Fiscalo'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + + If Not dt.Columns(16).ColumnName = "PorcentajeIVA" Then + Alert("El nombre de la decimoséptima columna debe ser 'PorcentajeIVA'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + 'If RblFormato.SelectedValue = "4" Then ' If Not dt.Columns(15).ColumnName = "ImpuestoLocal" Then ' Alert("El nombre de la diesciseisava columna debe ser 'ImpuestoLocal'. Favor de corregirlo", TipoMensaje.MsgError) @@ -305,6 +315,31 @@ Partial Class General_SaldosIniciales ' End If 'End If + If RblFormato.SelectedValue = "17" Then + + + If Not dt.Columns(17).ColumnName = "Cantidad" Then + Alert("El nombre de la Decimoctava columna debe ser 'Cantidad'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + + If Not dt.Columns(18).ColumnName = "PU" Then + Alert("El nombre de la Decimonovena columna debe ser 'PU'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + + If Not dt.Columns(19).ColumnName = "IVA" Then + Alert("El nombre de la Vigésima columna debe ser 'IVA'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + + + If Not dt.Columns(20).ColumnName = "IEPS" Then + Alert("El nombre de la Vigésimo primera columna debe ser 'IEPS'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + + End If ElseIf RblFormato.SelectedValue = "5" Then @@ -1571,7 +1606,7 @@ Partial Class General_SaldosIniciales #End Region 'C L I E N T E S - F A C T U R A S - ElseIf RblFormato.SelectedValue = "4" Then + ElseIf RblFormato.SelectedValue = "4" Or RblFormato.SelectedValue = "17" Then #Region "C L I E N T E S - F A C T U R A S" @@ -1626,7 +1661,9 @@ Partial Class General_SaldosIniciales Dim CveMoneda As Integer = 1 Dim Vendedor As String = If(dt.Columns.Contains("Vendedor"), Row("Vendedor").ToString(), "") Dim CveVendedor As Integer = 0 + Dim IEPS As Decimal = 0 'Row("IEPS").ToString().ToDecimal + Dim CveClienteSucursal As Integer = 0 'Row("CveClienteSucursal").ToString().ToEntero() Dim FolioFiscal As String = If(dt.Columns.Contains("Folio Fiscal"), Row("Folio Fiscal").ToString(), "") Dim PorcentajeIVA As Decimal = If(dt.Columns.Contains("PorcentajeIVA"), Round(Row("PorcentajeIVA").ToString().ToDecimal, 4), 0) @@ -1640,6 +1677,16 @@ Partial Class General_SaldosIniciales Dim Folio2 As String = "" ' Row("Folio2").ToString() Dim CodCliente As String = "" 'Row("CodCliente2").ToString() + + Dim IEPSDetalle As Decimal = 0 + Dim CantidadDetalle As Decimal = 0 + Dim PUDetalle As Decimal = 0 + Dim IVADetalle As Decimal = 0 + + If RblFormato.SelectedValue = "17" Then + IEPSDetalle = Row("IEPS").ToString.ToDecimal + End If + If dt.Columns.Contains("Cliente Sucursal") AndAlso Row("Cliente Sucursal").ToString() <> "" Then Dim ObjCliente As New ClsClientes @@ -1710,10 +1757,25 @@ Partial Class General_SaldosIniciales End If CveVenta = ObjVentas.CveVenta - If Not ObjVentas.AddVentaDetalle(CveVenta, CvePS, 1, CveUnidadMedida, SubTotal, IVA, SubTotal * PorcentajeIVA, "Saldo Inicial", 0, 0, Sucursal.ToEntero(), 0, PorcentajeIVA:=PorcentajeIVA, PorcentajeRetIVA:=PorcentajeRetIVA, ImporteRetIVA:=RetIVA, IEPS:=0) Then - ErrorVentas = True - Exit For + + If RblFormato.SelectedValue = "17" Then + If Not ObjVentas.AddVentaDetalle(CveVenta, CvePS, CantidadDetalle, CveUnidadMedida, PUDetalle * CantidadDetalle, IVADetalle, (PUDetalle * CantidadDetalle) + IVADetalle - IEPSDetalle, "Saldo Inicial", 0, 0, Sucursal.ToEntero(), 0, + PorcentajeIVA:=PorcentajeIVA, PorcentajeRetIVA:=PorcentajeRetIVA, ImporteRetIVA:=RetIVA, IEPS:=IEPSDetalle) Then + ErrorVentas = True + Exit For + End If + Else + If Not ObjVentas.AddVentaDetalle(CveVenta, CvePS, 1, CveUnidadMedida, SubTotal, IVA, SubTotal * PorcentajeIVA, "Saldo Inicial", 0, 0, Sucursal.ToEntero(), 0, PorcentajeIVA:=PorcentajeIVA, PorcentajeRetIVA:=PorcentajeRetIVA, ImporteRetIVA:=RetIVA, IEPS:=0) Then + ErrorVentas = True + Exit For + End If End If + + + + + + Dim ConceptoContable As Integer = 1 Dim ConceptoContablePago As Integer = 2 If TipoDocto = "Egs" Then @@ -2980,6 +3042,8 @@ Partial Class General_SaldosIniciales Directorio = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\SaldosIniciales\FormatoBancos.xlsx" ElseIf RblFormato.SelectedValue = "16" Then Directorio = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\SaldosIniciales\FormatoClasificaciones.xlsx" + ElseIf RblFormato.SelectedValue = "17" Then + Directorio = ModExtensiones.DirectorioBaseEmpresas & "Empresas\Grales\SaldosIniciales\FormatoClientes-Facturas-Detalles.xlsx" End If If Not (Directorio = "") Then diff --git a/OS/Asignaciones.aspx.vb b/OS/Asignaciones.aspx.vb index 19d9044ad..606b38ad7 100644 --- a/OS/Asignaciones.aspx.vb +++ b/OS/Asignaciones.aspx.vb @@ -79,7 +79,7 @@ Partial Class OS_Asignaciones RegistraScript(" $('#GvNA tr').each(function() { - $(this).find('td:eq(8) input').each(function() { + $(this).find('td:eq(6) input').each(function() { if($(this).val()!=':'){ $(this).attr('style', 'width: 20px;'); }else{ @@ -518,8 +518,8 @@ Partial Class OS_Asignaciones Dim TMSelector = DirectCast(e.Row.FindControl("TimeSelector"), TimeSelector) TMSelector.Date = FechaCita - e.Row.Cells(7).Attributes.Add("data-order", e.Row.DBCampo("FechaCitaOS").ToDate.Ticks.ToString) - e.Row.Cells(8).Attributes.Add("data-order", e.Row.DBCampo("FechaCitaOS").ToDate.ToString("HHmm")) + e.Row.Cells(9).Attributes.Add("data-order", e.Row.DBCampo("FechaCitaOS").ToDate.Ticks.ToString) + e.Row.Cells(10).Attributes.Add("data-order", e.Row.DBCampo("FechaCitaOS").ToDate.ToString("HHmm")) End If From 636e336b7cea38441a3e080d4c0deb99da16ad4c Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 19 Feb 2024 19:10:52 -0700 Subject: [PATCH 5/5] --Cancelacion parcial de remison cuando se tiene varios boletos --- App_Code/Modelos.vb | 64 ++++++++++++++++++++++++++++++++++ Transportes/Boletos.aspx.vb | 12 +++---- Transportes/RepBoletos.aspx.vb | 36 +++++++++++-------- 3 files changed, 91 insertions(+), 21 deletions(-) diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb index f1c956678..a389e480f 100644 --- a/App_Code/Modelos.vb +++ b/App_Code/Modelos.vb @@ -1666,6 +1666,7 @@ Namespace Modelos Me.RetIVA = Me.DtDetalle.SUMD("ImporteRetIVA") Me.RetISR = Me.DtDetalle.SUMD("ImporteRetISR") Me.IEPS = Me.DtDetalle.SUMD("ImporteIEPS") + Me.Descuento = Me.DtDetalle.SUMD("Descuento") Me.Total = Me.SubTotal + Me.IVA + Me.IEPS - (Me.RetIVA + Me.RetISR) End Sub @@ -5226,6 +5227,69 @@ Namespace Modelos Public Function CancelarBoleto(CveViajePasajero As Integer) As Boolean Dim TieneError As Boolean = False + If Me.CveVenta > 0 Then + Dim ObjVentas As New ClsVentas() + Dim ObjTransportes As New ClsTransportes(ObjVentas.IniciaTransacSQL()) + Dim ObjConta As New ClsContabilidad(ObjVentas.IniciaTransacSQL()) + + Try + Dim Row As DataRow = Me.DtDetalle.Select($"CveViajePasajero={CveViajePasajero}").FirstOrDefault() + If Row IsNot Nothing Then + Row("Descuento") = Row("Total") + Row("Obs") = "CANCELADO" + + If Not ObjVentas.UpdateVentaDetalleRemision(Row("CveVentaDetalle").ToString().ToEntero(), Row("CvePS").ToString().ToEntero(), Row("Cantidad").ToString().ToDecimal, Row("PU").ToString().ToDecimal(), Row("ImporteIEPS").ToString().ToDecimal(), Row("PorcentajeIEPS").ToString().ToDecimal(), Row("ImporteIVA").ToString().ToDecimal(), Row("PorcentajeIVA").ToString().ToDecimal(), Row("Descuento").ToString().ToDecimal(), Row("Obs").ToString(), UsuarioActual.CveUsuario) Then + TieneError = True + End If + + If Not TieneError Then + If Not ObjTransportes.UpdateViajesPasajeros(CveViajePasajero, Activar:=False, Estatus:=False) Then + TieneError = True + End If + End If + + Me.CalculaTotales() + + If Not TieneError Then + If Not ObjVentas.UpdateVentas(Me.SubTotal, Me.Descuento, Me.IVA, Me.IEPS, Me.Total, Me.CveMoneda, Me.TipoCambio, Me.Fecha, Me.Observaciones, + UsuarioActual.CveEmpresa, Me.CveVenta, TipoDocto:=Me.TipoDocto) Then + TieneError = True + End If + End If + + If Not TieneError Then + TieneError = Not RegenerarPrePolizas(ObjVentas.IniciaTransacSQL()) + End If + + If Not TieneError Then + If ObjConta.ValidacionesPrePoliza(-1, UsuarioActual, Opcion:=2, CveVenta:=CveVenta) Then + If ObjConta.ValorPolizaDescuadre > 0 Then + If ObjConta.ValorPolizaDescuadre = 2 Then + TieneError = True + Alert(ObjConta.MensajePolizaDescuadre, TipoMensaje.MsgError) + End If + End If + End If + End If + + End If + Catch ex As Exception + TieneError = True + GuardaLog(ex.ToString()) + End Try + + If TieneError Then + ObjVentas.RollBack() + Else + ObjVentas.Commit() + End If + + ObjVentas.Dispose() + ObjTransportes.Dispose() + ObjConta.Dispose() + + End If + Return Not TieneError End Function diff --git a/Transportes/Boletos.aspx.vb b/Transportes/Boletos.aspx.vb index cdc02e64b..eb913f8b8 100644 --- a/Transportes/Boletos.aspx.vb +++ b/Transportes/Boletos.aspx.vb @@ -235,9 +235,6 @@ Partial Class Boletos Obs = dr("Observaciones").ToString Dim CveViajePasajero = ObjTransporte.AddViajesPasajeros(CveViaje, CveDestinoOrigen, CveDestinoFinal, Importe, Asiento.ToEntero, Nombre, Visa, Celular, Sexo, Obs, UsuarioActual.CveUsuario, UsuarioActual.CveVendedor) - If Not CveViajePasajero > 1 Then - TieneError = True - End If If CveViajePasajero < 1 Then TieneError = True @@ -433,14 +430,18 @@ Partial Class Boletos ObjFactura.SetSubProyectoMatriz() For Each Dr As DataRow In DtPasajeros.Rows - Dim Obs = Dr("Nombre").ToString + Dim Obs = Dr("Observaciones").ToString Dim Importe = Dr("Importe").ToString.ToDecimal() + If Importe <= 0 Then Retorno.Mensajes.Add("El importe debe ser mayor a 0") Return Retorno End If - ObjFactura.AgregarPS(CvePSBoleto, 1, Importe, 0, Obs, CveSubProyecto:=CveSubProyecto, PorcentajeIVA:=0, CveViajePasajero:=Dr("CveViajePasajero").ToString().ToEntero()) + If Not ObjFactura.AgregarPS(CvePSBoleto, 1, Importe, 0, Obs, CveSubProyecto:=CveSubProyecto, PorcentajeIVA:=0, CveViajePasajero:=Dr("CveViajePasajero").ToString().ToEntero()) Then + Retorno.Mensajes.Add("No se pudo agregar el producto") + Return Retorno + End If Next ObjFactura.CalculaTotales() @@ -459,7 +460,6 @@ Partial Class Boletos Retorno.Mensajes.Add("No se pudo generar la factura") End If - Return Retorno End Function diff --git a/Transportes/RepBoletos.aspx.vb b/Transportes/RepBoletos.aspx.vb index 1baf1c79d..45e636fa7 100644 --- a/Transportes/RepBoletos.aspx.vb +++ b/Transportes/RepBoletos.aspx.vb @@ -77,35 +77,40 @@ Partial Class ListadoBoletos Protected Sub BtnCancelar_Click(sender As Object, e As EventArgs) Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) - Dim CveViajePasajero As String = GvRow.DataKey("CveViajePasajero") + Dim CveViajePasajero As Integer = GvRow.DataKey("CveViajePasajero").ToEntero() Dim Estatus As String = GvRow.DataKey("Estatus") - Dim cambiarEstatus As Boolean = Not Estatus.ToBool - Dim ObjTransportes As New ClsTransportes - + Dim cambiarEstatus As Boolean = Not Estatus.ToBool + + Dim TieneError As Boolean = False Try Dim DtRem As DataTable = Nothing - If ObjTransportes.GetRemisionBoleto(CveViajePasajero.ToEntero, UsuarioActual.CveEmpresa) Then - DtRem = ObjTransportes.DtResultados.Copy() + + Dim ObjTran As New ClsTransportes + If ObjTran.GetRemisionBoleto(CveViajePasajero.ToEntero, UsuarioActual.CveEmpresa) Then + DtRem = ObjTran.DtResultados.Copy() End If + ObjTran.Dispose() If DtRem IsNot Nothing Then If DtRem.Rows.Count > 0 Then Dim CveVenta As Integer = DtRem.Rows(0)("CveVenta").ToString().ToEntero() + Dim BoletosVigentes As Integer = DtRem.Rows(0)("BoletosVigentes").ToString().ToEntero() + If CveVenta > 0 Then Dim ObjRem As New Modelos.Factura(UsuarioActual, CveVenta, UsuarioActual.CveEmpresa, VerificaAlmacen:=False) If ObjRem.DtDetalle.Rows.Count > 0 Then 'SI SOLO TIENE UNA PARTIDA CANCELAR LA REMISION - If ObjRem.DtDetalle.Rows.Count = 1 Then - Dim RespCancelacion = ObjRem.CancelarFactura(False, ValidarSAT:=False, CancelarBoletos:=True) + If ObjRem.DtDetalle.Rows.Count = 1 OrElse BoletosVigentes <= 1 Then + Dim RespCancelacion = ObjRem.CancelarFactura(False, ValidarSAT:=False, CancelarBoletos:=True, ListaRemisionesCancelar:=New List(Of Integer)) If RespCancelacion IsNot Nothing Then TieneError = RespCancelacion.HuboError Else TieneError = True End If Else - TieneError = Not ObjRem.CancelarBoleto(CveViajePasajero.ToEntero) + TieneError = Not ObjRem.CancelarBoleto(CveViajePasajero) End If Else TieneError = True @@ -114,23 +119,24 @@ Partial Class ListadoBoletos End If Else 'SI NO TIENE VENTA, SOLO CANCELAR EL BOLETO - If Not ObjTransportes.UpdateViajesPasajeros(CveViajePasajero.ToEntero, Activar:=cambiarEstatus, Estatus:=cambiarEstatus) Then + Dim ObjTran2 As New ClsTransportes + If Not ObjTran2.UpdateViajesPasajeros(CveViajePasajero, Activar:=cambiarEstatus, Estatus:=cambiarEstatus) Then TieneError = True End If + ObjTran2.Dispose() End If End If - Catch ex As Exception TieneError = True GuardaLog(ex.ToString()) Finally If TieneError Then - Alert($"El boleto ha sido cancelado correctamente.") + Alert($"Ocurrió un error al cancelar el boleto.", TipoMensaje.MsgError) Else - Alert($"Ocurrió un error al cancelar el boleto.") - End If - ObjTransportes.Dispose() + Alert($"El boleto ha sido cancelado correctamente.") + End If + CargaDatos() End Try End Sub