diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb
index d1ecd1e37..a52934a4b 100644
--- a/App_Code/Modelos.vb
+++ b/App_Code/Modelos.vb
@@ -3823,13 +3823,6 @@ Namespace Modelos
Dim TieneAlmacen As Boolean = False
- 'If Not EsRefacturacion AndAlso ObjFactura.SaldoAlmacen <> 0 Then
- ' Retorno.Mensaje = "El pedido no se puede cancelar ya que tiene movimientos de almacén.
Nota: Primero hay que hacer la devolución al almacén."
- ' Retorno.TipoMensaje = TipoMensaje.MsgAdvertencia
-
- ' Return Retorno
- 'End If
-
'VALIDA QUE LA FACTURA NO TENGA PAGOS
If ObjFactura.TipoDocto.Contiene("Ing", "Rem") AndAlso ObjFactura.Pagado > 0 Then
Retorno.Mensaje = "La factura no se puede cancelar debido a que tiene pagos vinculados."
@@ -4286,13 +4279,6 @@ Namespace Modelos
End If
End If
- If Not ErrorCancelar Then
- If Not GeneraMovimientosApartados(ObjInventario) Then
- ErrorCancelar = True
- MensajeError = "Ocurrió un error al guardar los movimientos de control de apartados"
- End If
- End If
-
'DEVOLUCION REMISION - REGRESA LAS EXISTENCIAS A ENTREGA POR ADELANTADO SI LA FACTURA VIENE DE REMISION
If Not ErrorCancelar AndAlso RevivirRemisiones Then
If Not GeneraMovimientosEntregaPorAdelantadoRemision(CveMovimiento, ObjVentas, ObjInventario, DtDevRem, ListaRemisionesCancelar) Then
@@ -4302,22 +4288,25 @@ Namespace Modelos
End If
If Not ErrorCancelar Then
- 'QUEMA DEVOLUCION | QUEMA = LA QUITA DE PENDIENTE POR RECIBIR (DEVOLVER)
- If CveMovimiento > 0 AndAlso RealizarDevolucionAlmacen Then
- If Not ErrorCancelar Then
- If Not ObjVentas.UpdateVentasDevolucionAlmacen(2, CveVenta) Then
- MensajeError = "Ocurrió un error al hacer la devolucion. Por favor vuelva a intentar."
- ErrorCancelar = True
- End If
- End If
+ If Not GeneraMovimientosApartados(ObjInventario) Then
+ ErrorCancelar = True
+ MensajeError = "Ocurrió un error al guardar los movimientos de control de apartados"
+ End If
+ End If
- 'AGREGA BITACORA A VENTA
- If Not ErrorCancelar Then
- Dim MensajeBitacora = "Devuelta"
- If Not ObjEventos.AddEventoBitacora(String.Format("Venta {2} en Folio: {1}", CveMovimiento, Folio, MensajeBitacora), "-1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveVenta:=CveVenta) Then
- ErrorCancelar = True
- End If
- End If
+ 'QUEMA DEVOLUCION | QUEMA = LA QUITA DE PENDIENTE POR RECIBIR (DEVOLVER)
+ If Not ErrorCancelar Then
+ If Not ObjVentas.UpdateVentasDevolucionAlmacen(2, CveVenta) Then
+ MensajeError = "Ocurrió un error al hacer la devolucion. Por favor vuelva a intentar."
+ ErrorCancelar = True
+ End If
+ End If
+
+ 'AGREGA BITACORA A VENTA
+ If Not ErrorCancelar AndAlso RealizarDevolucionAlmacen AndAlso CveMovimiento > 0 Then
+ Dim MensajeBitacora = "Devuelta"
+ If Not ObjEventos.AddEventoBitacora(String.Format("Venta {2} en Folio: {1}", CveMovimiento, Folio, MensajeBitacora), "-1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveVenta:=CveVenta) Then
+ ErrorCancelar = True
End If
End If
@@ -4432,7 +4421,7 @@ Namespace Modelos
End If
Else
If Not ObjVentas.UpdateEstatusFactura(CveEstatus, FolioFiscal, CancelacionAcuse, CancelacionFecha, CveVenta, IDPoliza, CvePAC:=CvePACCancelacion, CveEstatusRefacturacion:=CveEstatusRefacturacion,
- CveUsuarioCambiaEstatus:=UsuarioActual.CveUsuario, FechaCambioEstatus:=Now.ToString("yyyy-MM-dd hh:mm:ss.mmm")) Then
+ CveUsuarioCambiaEstatus:=UsuarioActual.CveUsuario, FechaCambioEstatus:=Now.ToString("yyyy-MM-dd HH:mm:ss.mmm")) Then
ErrorCancelar = True
MensajeError = "Ocurrió un error al guardar el estatus de cancelación."
End If
@@ -4551,58 +4540,47 @@ Namespace Modelos
Dim SeCancela As Boolean = (ListaRemisionesCancelar IsNot Nothing) AndAlso (ListaRemisionesCancelar.Any(Function(CveRemisionCancelar) CveRemisionCancelar = DrMovtos("CveRem").ToString.ToEntero()))
If Not SeCancela Then
+ Dim ObjRem As New Modelos.Factura(UsuarioActual, DrMovtos("CveRem").ToString.ToEntero(), UsuarioActual.CveEmpresa)
- CveAlmacenTraspasoDestinoDevRem = DrMovtos("CveAlmacenTraspasoDestino").ToString.ToEntero
+ If True Then ' ObjRem.SaldoAlmacen = 0
+ CveAlmacenTraspasoDestinoDevRem = DrMovtos("CveAlmacenTraspasoDestino").ToString.ToEntero
- If Not CveAlmacenTraspasoDestinoDevRem > 0 Then
- ErrorCancelar = True
- Exit For
- End If
-
- 'SALIDA GENERAL
- CveMovimientoSalidaDevRem = ObjInventario.AddMovimiento(CveAlmacenDevolucion, 8, 1, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, DrMovtos("CveRem").ToString.ToEntero, -1, -1, Observaciones:="", Guia:="", CveContrato:=CveContrato, CveMovimientoRelacionado:=CveMovimiento, CveAlmacenDestino:=CveAlmacenTraspasoDestinoDevRem)
- FolioMovimientoSalidaDevRem = ObjInventario.Folio
-
- 'ENTRADA ADELANTADO
- CveMovimientoEntradaDevRem = ObjInventario.AddMovimiento(CveAlmacenTraspasoDestinoDevRem, 9, 1, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, DrMovtos("CveRem").ToString.ToEntero, -1, -1, Observaciones:="", Guia:="", CveContrato:=CveContrato, CveMovimientoRelacionado:=CveMovimientoSalidaDevRem, CveAlmacenDestino:=CveAlmacenDevolucion)
- FolioMovimientoEntradaDevRem = ObjInventario.Folio
-
- If Not (CveMovimientoSalidaDevRem > 0 And CveMovimientoEntradaDevRem > 0) Then
- ErrorCancelar = True
- Exit For
- End If
-
- 'SALIDA POR TRAPASO DE GENERAL
- For Each DrRem As DataRow In DtDevRem.FiltraParametros($"CveRem = {DrMovtos("CveRem")}").Rows
- CveVentaDetalleRem = DrRem("CveVentaDetalleRem").ToString.ToEntero
- CantidadRem = DrRem("CantidadFacturada").ToString.ToDecimal
-
- If Not CveVentaDetalleRem > 0 Then
+ If Not CveAlmacenTraspasoDestinoDevRem > 0 Then
ErrorCancelar = True
Exit For
End If
- For Each Dr As DataRow In DtMovtosDev.FiltraParametros($"CveVentaDetalle = {DrRem("CveVentaDetalle").ToString.ToEntero}").Rows
- If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalidaDevRem, Dr("Cantidad").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDouble, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, CveVentaDetalle:=CveVentaDetalleRem, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString) Then
+ 'SALIDA GENERAL
+ CveMovimientoSalidaDevRem = ObjInventario.AddMovimiento(CveAlmacenDevolucion, 8, 1, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, DrMovtos("CveRem").ToString.ToEntero, -1, -1, Observaciones:="", Guia:="", CveContrato:=CveContrato, CveMovimientoRelacionado:=CveMovimiento, CveAlmacenDestino:=CveAlmacenTraspasoDestinoDevRem)
+ FolioMovimientoSalidaDevRem = ObjInventario.Folio
+
+ 'ENTRADA ADELANTADO
+ CveMovimientoEntradaDevRem = ObjInventario.AddMovimiento(CveAlmacenTraspasoDestinoDevRem, 9, 1, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, DrMovtos("CveRem").ToString.ToEntero, -1, -1, Observaciones:="", Guia:="", CveContrato:=CveContrato, CveMovimientoRelacionado:=CveMovimientoSalidaDevRem, CveAlmacenDestino:=CveAlmacenDevolucion)
+ FolioMovimientoEntradaDevRem = ObjInventario.Folio
+
+ If Not (CveMovimientoSalidaDevRem > 0 And CveMovimientoEntradaDevRem > 0) Then
+ ErrorCancelar = True
+ Exit For
+ End If
+
+ 'SALIDA POR TRAPASO DE GENERAL
+ For Each DrRem As DataRow In DtDevRem.FiltraParametros($"CveRem = {DrMovtos("CveRem")}").Rows
+ CveVentaDetalleRem = DrRem("CveVentaDetalleRem").ToString.ToEntero
+ CantidadRem = DrRem("CantidadFacturada").ToString.ToDecimal
+
+ If Not CveVentaDetalleRem > 0 Then
ErrorCancelar = True
Exit For
End If
- Next
- If ErrorCancelar Then
- Exit For
- End If
- Next
+ For Each Dr As DataRow In DtMovtosDev.FiltraParametros($"CveVentaDetalle = {DrRem("CveVentaDetalle").ToString.ToEntero}").Rows
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalidaDevRem, Dr("Cantidad").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDouble, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, CveVentaDetalle:=CveVentaDetalleRem, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString) Then
+ ErrorCancelar = True
+ Exit For
+ End If
+ Next
- If ErrorCancelar Then
- Exit For
- End If
-
- 'ENTRADA POR TRAPASO A ENTREGA POR ADELANTADO
- If ObjInventario.GetMovimientosDetalle(CveMovimientoSalidaDevRem, UsuarioActual.CveEmpresa) Then
- For Each Dr As DataRow In ObjInventario.DtResultados.Rows
- If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntradaDevRem, Dr("Cantidad").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString) Then
- ErrorCancelar = True
+ If ErrorCancelar Then
Exit For
End If
Next
@@ -4611,15 +4589,29 @@ Namespace Modelos
Exit For
End If
- Else
- ErrorCancelar = True
- Exit For
- End If
+ 'ENTRADA POR TRAPASO A ENTREGA POR ADELANTADO
+ If ObjInventario.GetMovimientosDetalle(CveMovimientoSalidaDevRem, UsuarioActual.CveEmpresa) Then
+ For Each Dr As DataRow In ObjInventario.DtResultados.Rows
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntradaDevRem, Dr("Cantidad").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString) Then
+ ErrorCancelar = True
+ Exit For
+ End If
+ Next
+
+ If ErrorCancelar Then
+ Exit For
+ End If
+
+ Else
+ ErrorCancelar = True
+ Exit For
+ End If
- If Not ObjVentas.UpdateVentasDevolucionAlmacen(0, DrMovtos("CveRem").ToString.ToEntero) Then
- ErrorCancelar = True
- Exit For
+ If Not ObjVentas.UpdateVentasDevolucionAlmacen(0, DrMovtos("CveRem").ToString.ToEntero) Then
+ ErrorCancelar = True
+ Exit For
+ End If
End If
End If