diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb index 6b853e4f4..bb508bd69 100644 --- a/App_Code/Modelos.vb +++ b/App_Code/Modelos.vb @@ -3186,8 +3186,9 @@ Namespace Modelos Next End If - 'Si es Facturacion de una remision cancelamos, traspasamos saldos y agregamos evento a la bitacora - If (DtRemisionesRelacionadas IsNot Nothing AndAlso DtRemisionesRelacionadas.Rows.Count > 0) OrElse ObjFactura.RemisionesLista.Count > 0 Then + 'SI ES FACTURACION DE UNA REMISION CANCELAMOS, TRASPASAMOS SALDOS Y AGREGAMOS EVENTO A LA BITACORA + 'NO DEBE ENTRAR SI SE ESTA CANCELANDO UNA FACTURA + If ValorMultiplicador <> -1 AndAlso (DtRemisionesRelacionadas IsNot Nothing AndAlso DtRemisionesRelacionadas.Rows.Count > 0) OrElse ObjFactura.RemisionesLista.Count > 0 Then If Not ObjFactura.TipoDocto.Contiene("Ing", "Ant") Then ErrorPrepoliza = True diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index 420ebafa3..00cb28ace 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -19197,49 +19197,56 @@ Partial Class Ventas CancelarRefacturada() End If - CreaObjetosVenta(EsCancelacion:=True) + Dim ObjFacturaCancelacion As New Modelos.Factura(UsuarioActual, CveVenta, UsuarioActual.CveEmpresa, EsCancelacion:=True) + Try + Dim resp As Modelos.Factura.MCancelacionVentaMensaje = Nothing - Dim resp As Modelos.Factura.MCancelacionVentaMensaje = Nothing + If ObjFacturaCancelacion IsNot Nothing AndAlso ObjFacturaCancelacion.CveVenta > 0 Then - If ObjFactura IsNot Nothing AndAlso ObjFactura.CveVenta > 0 Then + If EsRefacturacion Then + resp = ObjFacturaCancelacion.CancelarPorRefacturacion() + Else + Dim ListaRemisionesCancelar As New List(Of Integer) + If ChkCanRem.Checked Then + For Each Gvr As GridViewRow In GvCancelarRemisiones.Rows + If Gvr.FCCheckBox("ChkCancelarRemision").Checked Then + ListaRemisionesCancelar.Add(Gvr.DataKey("CveVenta").ToEntero) + End If + Next + End If - If EsRefacturacion Then - resp = ObjFactura.CancelarPorRefacturacion() - Else - Dim ListaRemisionesCancelar As New List(Of Integer) - If ChkCanRem.Checked Then - For Each Gvr As GridViewRow In GvCancelarRemisiones.Rows - If Gvr.FCCheckBox("ChkCancelarRemision").Checked Then - ListaRemisionesCancelar.Add(Gvr.DataKey("CveVenta").ToEntero) - End If - Next + ObjFacturaCancelacion.CveAlmacenDevolucion = CveAlmacenDevolucion + + resp = ObjFacturaCancelacion.CancelarFactura(ChkDevAlm.Checked, ListaRemisionesCancelar) End If - ObjFactura.CveAlmacenDevolucion = CveAlmacenDevolucion - - resp = ObjFactura.CancelarFactura(ChkDevAlm.Checked, ListaRemisionesCancelar) - End If - - If resp.CveEstatus = 5 AndAlso Not EsRefacturacion Then - Alert(resp.Mensaje, resp.TipoMensaje, JSBtnAceptar:="BtnEnviarMailCancelacion();", TextoConfirmacion:="    Si    ", TextoCancelacion:="    No    ") - Else - If EsRefacturacion Then - If resp.CveEstatus = 20 Then - Response.Redirect($"/Ventas/RepCancelacionesPorRespuesta.aspx?CveVenta={CveVenta}") - ElseIf resp.CveEstatus.Contiene(4, 5) Then - Response.Redirect($"Ventas.aspx?CveDevolucion={CveVenta}&NuevaFactura=1") + If resp.CveEstatus = 5 AndAlso Not EsRefacturacion Then + Alert(resp.Mensaje, resp.TipoMensaje, JSBtnAceptar:="BtnEnviarMailCancelacion();", TextoConfirmacion:="    Si    ", TextoCancelacion:="    No    ") + Else + If EsRefacturacion Then + If resp.CveEstatus = 20 Then + ObjFacturaCancelacion.Dispose() + Response.Redirect($"/Ventas/RepCancelacionesPorRespuesta.aspx?CveVenta={CveVenta}") + ElseIf resp.CveEstatus.Contiene(4, 5) Then + ObjFacturaCancelacion.Dispose() + Response.Redirect($"Ventas.aspx?CveDevolucion={CveVenta}&NuevaFactura=1") + Else + Alert(resp.Mensaje, resp.TipoMensaje, JSBtnAceptar:="BtnRefrescarPagina();") + End If Else Alert(resp.Mensaje, resp.TipoMensaje, JSBtnAceptar:="BtnRefrescarPagina();") End If - Else - Alert(resp.Mensaje, resp.TipoMensaje, JSBtnAceptar:="BtnRefrescarPagina();") End If - End If - ObjFactura.CveAlmacen = -1 - Else - Alert("Ocurrió un error al generar la cancelación", TipoMensaje.MsgError) - End If + ObjFacturaCancelacion.CveAlmacen = -1 + Else + Alert("Ocurrió un error al generar la cancelación", TipoMensaje.MsgError) + End If + Catch ex As Exception + OnError("Ocurrío un error al cancelar", ex) + End Try + ObjFacturaCancelacion.Dispose() + UpEstatus.Update()