--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="RealizarDevolucionAlmacen"></param>
''' <param name="ListaRemisionesCancelar"></param> ''' <param name="ListaRemisionesCancelar"></param>
''' <returns></returns> ''' <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 '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 End Function
Private Function CancelarVenta(ObjFactura As Modelos.Factura, UsuarioActual As Usuario, Optional EsRefacturacion As Boolean = False, Optional RealizarDevolucionAlmacen As Integer = 0, 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 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 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 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 Retorno As New MCancelacionVentaMensaje()
Dim ErrorList As New List(Of String) Dim ErrorList As New List(Of String)
@@ -6185,11 +6185,16 @@ Namespace Modelos
End If 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 '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 'DEVOLUCION DE ALMACEN
If Not ErrorCancelar AndAlso TieneAlmacen Then
Dim TieneSalida As Boolean = False Dim TieneSalida As Boolean = False
Dim DtInventario As DataTable = Nothing Dim DtInventario As DataTable = Nothing
Dim DtSalidas As DataTable = Nothing Dim DtSalidas As DataTable = Nothing
@@ -6269,7 +6274,6 @@ Namespace Modelos
End If End If
If Not ErrorCancelar AndAlso TieneSalida Then If Not ErrorCancelar AndAlso TieneSalida Then
If Not ErrorCancelar AndAlso RealizarDevolucionAlmacen = 1 Then If Not ErrorCancelar AndAlso RealizarDevolucionAlmacen = 1 Then
'REALIZA DEVOLUCION A LAS SALIDAS PENDIENTES 'REALIZA DEVOLUCION A LAS SALIDAS PENDIENTES
If Not ObjFactura.TipoDocto.Contiene("Rem", "Ped") Then If Not ObjFactura.TipoDocto.Contiene("Rem", "Ped") Then
@@ -6696,10 +6700,12 @@ Namespace Modelos
End If End If
End If End If
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 'CANCELA CONTRATOS
If Not ErrorCancelar Then If Not ErrorCancelar Then
If ObjFactura.CveContrato > 0 AndAlso ObjFactura.TipoDocto.Contiene("Ing", "Ant") 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
End If End If
End If End If
'MARCA LA VENTA PARA REALIZAR LA DEVOLUCION POSTERIORMENTE 'MARCA LA VENTA PARA REALIZAR LA DEVOLUCION POSTERIORMENTE

View File

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

View File

@@ -26667,7 +26667,13 @@ Partial Class Ventas
GenerarIxC = ChkGeneraIxC.Checked GenerarIxC = ChkGeneraIxC.Checked
End If 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) strMensaje.Append(resp.Mensaje)
Dim DtBonificaciones As DataTable = Nothing Dim DtBonificaciones As DataTable = Nothing