--GDiaz: forzar dev almacen al cancelar

This commit is contained in:
2024-12-05 18:38:47 -07:00
parent 95a7933124
commit 7ef68c6d3e
3 changed files with 459 additions and 446 deletions

View File

@@ -5664,16 +5664,16 @@ Namespace Modelos
''' <param name="RealizarDevolucionAlmacen"></param>
''' <param name="ListaRemisionesCancelar"></param>
''' <returns></returns>
Public Function CancelarFactura(RealizarDevolucionAlmacen As Integer, 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, Optional AplicaCancelacionConPagos As Boolean = False, Optional GeneraIxCconPago As Boolean = False) As MCancelacionVentaMensaje
Public Function CancelarFactura(RealizarDevolucionAlmacen As Integer, 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, Optional AplicaCancelacionConPagos As Boolean = False, Optional GeneraIxCconPago As Boolean = False, Optional ForzarDevolucion 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, CancelarBoletos:=CancelarBoletos, AplicaCancelacionConPagos:=AplicaCancelacionConPagos, GeneraIxCconPago:=GeneraIxCconPago)
Return CancelarVenta(Me, Me.UsuarioActual, RealizarDevolucionAlmacen:=RealizarDevolucionAlmacen, ListaRemisionesCancelar:=ListaRemisionesCancelar, CveMotivoCancelacion:=CveMotivoCancelacion, MotivoCancelacion:=Motivo, CveEstadoCancelacion:=CveEstadoCancelacion, CancelarBoletos:=CancelarBoletos, AplicaCancelacionConPagos:=AplicaCancelacionConPagos, GeneraIxCconPago:=GeneraIxCconPago, ForzarDevolucion:=ForzarDevolucion)
End Function
Private Function CancelarVenta(ObjFactura As Modelos.Factura, UsuarioActual As Usuario, Optional EsRefacturacion As Boolean = False, Optional RealizarDevolucionAlmacen As Integer = 0,
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,
Optional CancelarBoletos As Boolean = False, Optional AplicaCancelacionConPagos As Boolean = False, Optional GeneraIxCconPago As Boolean = False) As MCancelacionVentaMensaje
Optional CancelarBoletos As Boolean = False, Optional AplicaCancelacionConPagos As Boolean = False, Optional GeneraIxCconPago As Boolean = False, Optional ForzarDevolucion As Boolean = False) As MCancelacionVentaMensaje
Dim Retorno As New MCancelacionVentaMensaje()
Dim ErrorList As New List(Of String)
@@ -6185,11 +6185,16 @@ Namespace Modelos
End If
Dim MoverInventario As Boolean = False
If TieneAlmacen Then
MoverInventario = (Not EsRefacturacion AndAlso (CveEstatus > 0 AndAlso Not CveEstatus.Contiene(20, 23)) AndAlso CveEstatusRefacturacion = 0) OrElse ForzarDevolucion
End If
'CUANDO LA CANCELACION ESTA EN PROCESO NO DEBE REALIZAR NADA DE ESTE PROCESO
If Not ErrorCancelar AndAlso Not EsRefacturacion AndAlso (CveEstatus > 0 AndAlso Not CveEstatus.Contiene(20, 23)) AndAlso CveEstatusRefacturacion = 0 Then
If Not ErrorCancelar AndAlso MoverInventario Then
'DEVOLUCION DE ALMACEN
If Not ErrorCancelar AndAlso TieneAlmacen Then
Dim TieneSalida As Boolean = False
Dim DtInventario As DataTable = Nothing
Dim DtSalidas As DataTable = Nothing
@@ -6269,7 +6274,6 @@ Namespace Modelos
End If
If Not ErrorCancelar AndAlso TieneSalida Then
If Not ErrorCancelar AndAlso RealizarDevolucionAlmacen = 1 Then
'REALIZA DEVOLUCION A LAS SALIDAS PENDIENTES
If Not ObjFactura.TipoDocto.Contiene("Rem", "Ped") Then
@@ -6696,10 +6700,12 @@ Namespace Modelos
End If
End If
End If
End If
'CUANDO LA CANCELACION ESTA EN PROCESO NO DEBE REALIZAR NADA DE ESTE PROCESO
If Not ErrorCancelar AndAlso (Not EsRefacturacion AndAlso (CveEstatus > 0 AndAlso Not CveEstatus.Contiene(20, 23)) AndAlso CveEstatusRefacturacion = 0) Then
'CANCELA CONTRATOS
If Not ErrorCancelar Then
If ObjFactura.CveContrato > 0 AndAlso ObjFactura.TipoDocto.Contiene("Ing", "Ant") Then
@@ -6822,7 +6828,6 @@ Namespace Modelos
End If
End If
End If
End If
'MARCA LA VENTA PARA REALIZAR LA DEVOLUCION POSTERIORMENTE

View File

@@ -659,8 +659,10 @@ Partial Class Ventas_PVCobranza
Dim msBuild As New StringBuilder()
Dim MsgTimbrado As String = ""
Dim DebeTimbrar As Boolean = False
'SI SE GENERO FACTURA DE INGRESO, TIMBRARLA DESPUES DE REALIZAR EL PAGO
If respFactura IsNot Nothing Then
If DebeTimbrar AndAlso respFactura IsNot Nothing Then
'VERIFICA SI SE GENERO NC
If respNC IsNot Nothing Then
AjustarTimbre(respFactura.Factura, respNC.Factura)

View File

@@ -26667,7 +26667,13 @@ Partial Class Ventas
GenerarIxC = ChkGeneraIxC.Checked
End If
resp = ObjFacturaCancelacion.CancelarFactura(If(ChkDevAlm.Checked, 1, 0), ListaRemisionesCancelar, CveMotivoCancelacion:=DdlMotivoCancelacion.SelectedValue.ToEntero(), Motivo:=TxtMotivoCancelacion.Text.Trim(), CveEstadoCancelacion:=Me.CveEstadoCancelacion, AplicaCancelacionConPagos:=AplicaCancelacionConPagos, GeneraIxCconPago:=GenerarIxC)
Dim ForzarDevolucion As Boolean = False
If ChkDevAlm.Checked AndAlso UsuarioActual.CveEmpresa = 189 Then
ForzarDevolucion = True
End If
resp = ObjFacturaCancelacion.CancelarFactura(If(ChkDevAlm.Checked, 1, 0), ListaRemisionesCancelar, CveMotivoCancelacion:=DdlMotivoCancelacion.SelectedValue.ToEntero(), Motivo:=TxtMotivoCancelacion.Text.Trim(), CveEstadoCancelacion:=Me.CveEstadoCancelacion, AplicaCancelacionConPagos:=AplicaCancelacionConPagos, GeneraIxCconPago:=GenerarIxC, ForzarDevolucion:=ForzarDevolucion)
strMensaje.Append(resp.Mensaje)
Dim DtBonificaciones As DataTable = Nothing