--Cambios para cancelacion
This commit is contained in:
@@ -5656,7 +5656,7 @@ Namespace Modelos
|
||||
''' <param name="FechaCancelacion"></param>
|
||||
''' <param name="AcuseCancelacion"></param>
|
||||
''' <returns></returns>
|
||||
Public Function EjecutarCancelacionPendiente(CveEstatus As Integer, FechaCancelacion As DateTime, AcuseCancelacion As String, Optional ValidarSAT As Boolean = True, Optional CancelacionPagos As OpcionesCancelacionPagos = OpcionesCancelacionPagos.SinPagos) As MCancelacionVentaMensaje
|
||||
Public Function EjecutarCancelacionPendiente(CveEstatus As Integer, FechaCancelacion As DateTime, AcuseCancelacion As String, Optional ValidarSAT As Boolean = True, Optional CancelacionPagos As OpcionesCancelacionPagos = OpcionesCancelacionPagos.SinPagos, Optional CvePACEspecifico As Integer = -1) As MCancelacionVentaMensaje
|
||||
Dim ListaRemisionesCancelar As New List(Of Integer)
|
||||
Dim ObjVentas As New ClsVentas()
|
||||
If ObjVentas.GetRemisionesXCancelar(Me.CveVenta) Then
|
||||
@@ -5666,7 +5666,7 @@ Namespace Modelos
|
||||
End If
|
||||
ObjVentas.Dispose()
|
||||
|
||||
Return CancelarVenta(Me, Me.UsuarioActual, RealizarDevolucionAlmacen:=Me.RealizarDevolucionAlmacen, ListaRemisionesCancelar:=ListaRemisionesCancelar, CveEstatusFacturaAsignado:=CveEstatus, FechaCancelacion:=FechaCancelacion.ToString("dd/MM/yyyy hh:mm:ss"), AcuseCancelacion:=AcuseCancelacion, CveMotivoCancelacion:=Me.CveMotivoCancelacion, MotivoCancelacion:=Me.MotivoCancelacion, ValidarSAT:=ValidarSAT, CancelacionPagos:=CancelacionPagos)
|
||||
Return CancelarVenta(Me, Me.UsuarioActual, RealizarDevolucionAlmacen:=Me.RealizarDevolucionAlmacen, ListaRemisionesCancelar:=ListaRemisionesCancelar, CveEstatusFacturaAsignado:=CveEstatus, FechaCancelacion:=FechaCancelacion.ToString("dd/MM/yyyy hh:mm:ss"), AcuseCancelacion:=AcuseCancelacion, CveMotivoCancelacion:=Me.CveMotivoCancelacion, MotivoCancelacion:=Me.MotivoCancelacion, ValidarSAT:=ValidarSAT, CancelacionPagos:=CancelacionPagos, CvePACEspecifico:=CvePACEspecifico)
|
||||
End Function
|
||||
''' <summary>
|
||||
''' Cancela la factura para poder realizar la refacturacion
|
||||
@@ -5681,16 +5681,18 @@ 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 ForzarDevolucion As Boolean = False, Optional CancelacionPagos As OpcionesCancelacionPagos = OpcionesCancelacionPagos.SinPagos, Optional CveEstatusFacturaAsignado As Integer = -1) 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 ForzarDevolucion As Boolean = False, Optional CancelacionPagos As OpcionesCancelacionPagos = OpcionesCancelacionPagos.SinPagos, Optional CveEstatusFacturaAsignado As Integer = -1, Optional CvePACEspecifico As Integer = -1) 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, ForzarDevolucion:=ForzarDevolucion, CancelacionPagos:=CancelacionPagos, CveEstatusFacturaAsignado:=CveEstatusFacturaAsignado, ValidarSAT:=ValidarSAT)
|
||||
Return CancelarVenta(Me, Me.UsuarioActual, RealizarDevolucionAlmacen:=RealizarDevolucionAlmacen, ListaRemisionesCancelar:=ListaRemisionesCancelar, CveMotivoCancelacion:=CveMotivoCancelacion, MotivoCancelacion:=Motivo, CveEstadoCancelacion:=CveEstadoCancelacion, CancelarBoletos:=CancelarBoletos, ForzarDevolucion:=ForzarDevolucion, CancelacionPagos:=CancelacionPagos, CveEstatusFacturaAsignado:=CveEstatusFacturaAsignado, ValidarSAT:=ValidarSAT, CvePACEspecifico:=CvePACEspecifico)
|
||||
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 ForzarDevolucion As Boolean = False, Optional CancelacionPagos As OpcionesCancelacionPagos = OpcionesCancelacionPagos.SinPagos) As MCancelacionVentaMensaje
|
||||
Optional CancelarBoletos As Boolean = False, Optional ForzarDevolucion As Boolean = False, Optional CancelacionPagos As OpcionesCancelacionPagos = OpcionesCancelacionPagos.SinPagos,
|
||||
Optional CvePACEspecifico As Integer = -1) As MCancelacionVentaMensaje
|
||||
|
||||
Dim Retorno As New MCancelacionVentaMensaje()
|
||||
Dim ErrorList As New List(Of String)
|
||||
|
||||
@@ -5887,6 +5889,10 @@ Namespace Modelos
|
||||
CvePACCancelacion = UsuarioActual.Empresa.CvePAC
|
||||
End If
|
||||
|
||||
If CvePACEspecifico > 0 Then
|
||||
CvePACCancelacion = CvePACEspecifico
|
||||
End If
|
||||
|
||||
Dim CveEstatus As Integer = 4
|
||||
Dim IDPoliza As Integer = -1
|
||||
Dim CvePrePoliza As Integer
|
||||
|
||||
@@ -220,9 +220,6 @@ Public Class Timbrado
|
||||
'dim Error
|
||||
If CvePACCancelacion = 3 Then ValidaFactura = False
|
||||
|
||||
'TEMPORAL. PARCHE PARA CANCELAR DOCUMENTOS EMITIDOS CON EL PAC 5
|
||||
If CvePACCancelacion = 5 Then CvePACCancelacion = 4
|
||||
|
||||
If Not (Empresa.Funcionalidad(529) = "1") Then
|
||||
If ValidaFactura Then
|
||||
Dim Vigencia As AcuseCancelacionSAT = VerificarVigenciaSAT(FolioFiscal, RFCEmisor, RFCReceptor, Total.ToString(), True)
|
||||
@@ -522,31 +519,33 @@ Public Class Timbrado
|
||||
End Select
|
||||
|
||||
'valida que si se halla cancelado
|
||||
|
||||
If Retorno.Verificado Then
|
||||
Dim VigenciaExtra As AcuseCancelacionSAT = VerificarVigenciaSAT(FolioFiscal, RFCEmisor, RFCReceptor, Total.ToString(), True)
|
||||
If VigenciaExtra IsNot Nothing Then
|
||||
If VigenciaExtra.Estado.ToUpper = "VIGENTE" AndAlso VigenciaExtra.EstatusCancelacion.ToUpper.Contiene("EN PROCESO") Then
|
||||
Retorno.Estado = "EN PROCESO"
|
||||
Retorno.CveEstatus = 20
|
||||
'CUANDO ESTA EN PROCESO EL ACUSE DEBE SER DE SOLICITUD DE CANCELACION
|
||||
Retorno.SolicitudCancelacionAcuse = Retorno.CancelacionAcuse
|
||||
Retorno.CancelacionAcuse = ""
|
||||
ElseIf VigenciaExtra.Estado.ToUpper = "CANCELADO" Then
|
||||
Retorno.Estado = "CANCELADO"
|
||||
Retorno.CveEstatus = 5
|
||||
Else
|
||||
Retorno.Estado = "VIGENTE"
|
||||
Retorno.CveEstatus = 23
|
||||
'SI HAY UN ACUSE, GUARDARLO COMO ACUSE DE SOLICITUD
|
||||
If Not String.IsNullOrEmpty(Retorno.CancelacionAcuse) Then
|
||||
If Not (Empresa.Funcionalidad(529) = "1") Then
|
||||
If Retorno.Verificado Then
|
||||
Dim VigenciaExtra As AcuseCancelacionSAT = VerificarVigenciaSAT(FolioFiscal, RFCEmisor, RFCReceptor, Total.ToString(), True)
|
||||
If VigenciaExtra IsNot Nothing Then
|
||||
If VigenciaExtra.Estado.ToUpper = "VIGENTE" AndAlso VigenciaExtra.EstatusCancelacion.ToUpper.Contiene("EN PROCESO") Then
|
||||
Retorno.Estado = "EN PROCESO"
|
||||
Retorno.CveEstatus = 20
|
||||
'CUANDO ESTA EN PROCESO EL ACUSE DEBE SER DE SOLICITUD DE CANCELACION
|
||||
Retorno.SolicitudCancelacionAcuse = Retorno.CancelacionAcuse
|
||||
Retorno.CancelacionAcuse = ""
|
||||
ElseIf VigenciaExtra.Estado.ToUpper = "CANCELADO" Then
|
||||
Retorno.Estado = "CANCELADO"
|
||||
Retorno.CveEstatus = 5
|
||||
Else
|
||||
Retorno.Estado = "VIGENTE"
|
||||
Retorno.CveEstatus = 23
|
||||
'SI HAY UN ACUSE, GUARDARLO COMO ACUSE DE SOLICITUD
|
||||
If Not String.IsNullOrEmpty(Retorno.CancelacionAcuse) Then
|
||||
Retorno.SolicitudCancelacionAcuse = Retorno.CancelacionAcuse
|
||||
Retorno.CancelacionAcuse = ""
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
If Not Retorno.Verificado Then
|
||||
GuardaLog($"****** Error al cancelar factura ****** Estatus: {CancelacionState} | Mensaje: {CancelacionMensaje} | Mensaje SAT: {MsgCancelacion.ToString} ")
|
||||
End If
|
||||
|
||||
@@ -39950,7 +39950,7 @@ Partial Class Ventas
|
||||
Dim Total As Decimal = RowVenta("Total").ToString().ToDecimal()
|
||||
Dim RFCReceptor As String = RowVenta("RFCReceptor").ToString()
|
||||
Dim ObjTimbrado As New Timbrado
|
||||
Dim resp = ObjTimbrado.CFDICancelar(UsuarioActual.Empresa, FolioFiscal, Total, RFCReceptor, UsuarioActual.Empresa.RFC, CvePACCancelacion:=4, ValidaFactura:=False, CveSATMotivoCancelacion:=2)
|
||||
Dim resp = ObjTimbrado.CFDICancelar(UsuarioActual.Empresa, FolioFiscal, Total, RFCReceptor, UsuarioActual.Empresa.RFC, CvePACCancelacion:=5, ValidaFactura:=False, CveSATMotivoCancelacion:=2)
|
||||
If resp IsNot Nothing Then
|
||||
Alert(resp.Estado)
|
||||
End If
|
||||
|
||||
Reference in New Issue
Block a user