--Cambios para cancelacion
This commit is contained in:
@@ -5656,7 +5656,7 @@ Namespace Modelos
|
|||||||
''' <param name="FechaCancelacion"></param>
|
''' <param name="FechaCancelacion"></param>
|
||||||
''' <param name="AcuseCancelacion"></param>
|
''' <param name="AcuseCancelacion"></param>
|
||||||
''' <returns></returns>
|
''' <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 ListaRemisionesCancelar As New List(Of Integer)
|
||||||
Dim ObjVentas As New ClsVentas()
|
Dim ObjVentas As New ClsVentas()
|
||||||
If ObjVentas.GetRemisionesXCancelar(Me.CveVenta) Then
|
If ObjVentas.GetRemisionesXCancelar(Me.CveVenta) Then
|
||||||
@@ -5666,7 +5666,7 @@ Namespace Modelos
|
|||||||
End If
|
End If
|
||||||
ObjVentas.Dispose()
|
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
|
End Function
|
||||||
''' <summary>
|
''' <summary>
|
||||||
''' Cancela la factura para poder realizar la refacturacion
|
''' Cancela la factura para poder realizar la refacturacion
|
||||||
@@ -5681,16 +5681,18 @@ 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 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
|
'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
|
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 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 Retorno As New MCancelacionVentaMensaje()
|
||||||
Dim ErrorList As New List(Of String)
|
Dim ErrorList As New List(Of String)
|
||||||
|
|
||||||
@@ -5887,6 +5889,10 @@ Namespace Modelos
|
|||||||
CvePACCancelacion = UsuarioActual.Empresa.CvePAC
|
CvePACCancelacion = UsuarioActual.Empresa.CvePAC
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
If CvePACEspecifico > 0 Then
|
||||||
|
CvePACCancelacion = CvePACEspecifico
|
||||||
|
End If
|
||||||
|
|
||||||
Dim CveEstatus As Integer = 4
|
Dim CveEstatus As Integer = 4
|
||||||
Dim IDPoliza As Integer = -1
|
Dim IDPoliza As Integer = -1
|
||||||
Dim CvePrePoliza As Integer
|
Dim CvePrePoliza As Integer
|
||||||
|
|||||||
@@ -220,9 +220,6 @@ Public Class Timbrado
|
|||||||
'dim Error
|
'dim Error
|
||||||
If CvePACCancelacion = 3 Then ValidaFactura = False
|
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 Not (Empresa.Funcionalidad(529) = "1") Then
|
||||||
If ValidaFactura Then
|
If ValidaFactura Then
|
||||||
Dim Vigencia As AcuseCancelacionSAT = VerificarVigenciaSAT(FolioFiscal, RFCEmisor, RFCReceptor, Total.ToString(), True)
|
Dim Vigencia As AcuseCancelacionSAT = VerificarVigenciaSAT(FolioFiscal, RFCEmisor, RFCReceptor, Total.ToString(), True)
|
||||||
@@ -522,31 +519,33 @@ Public Class Timbrado
|
|||||||
End Select
|
End Select
|
||||||
|
|
||||||
'valida que si se halla cancelado
|
'valida que si se halla cancelado
|
||||||
|
If Not (Empresa.Funcionalidad(529) = "1") Then
|
||||||
If Retorno.Verificado Then
|
If Retorno.Verificado Then
|
||||||
Dim VigenciaExtra As AcuseCancelacionSAT = VerificarVigenciaSAT(FolioFiscal, RFCEmisor, RFCReceptor, Total.ToString(), True)
|
Dim VigenciaExtra As AcuseCancelacionSAT = VerificarVigenciaSAT(FolioFiscal, RFCEmisor, RFCReceptor, Total.ToString(), True)
|
||||||
If VigenciaExtra IsNot Nothing Then
|
If VigenciaExtra IsNot Nothing Then
|
||||||
If VigenciaExtra.Estado.ToUpper = "VIGENTE" AndAlso VigenciaExtra.EstatusCancelacion.ToUpper.Contiene("EN PROCESO") Then
|
If VigenciaExtra.Estado.ToUpper = "VIGENTE" AndAlso VigenciaExtra.EstatusCancelacion.ToUpper.Contiene("EN PROCESO") Then
|
||||||
Retorno.Estado = "EN PROCESO"
|
Retorno.Estado = "EN PROCESO"
|
||||||
Retorno.CveEstatus = 20
|
Retorno.CveEstatus = 20
|
||||||
'CUANDO ESTA EN PROCESO EL ACUSE DEBE SER DE SOLICITUD DE CANCELACION
|
'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.SolicitudCancelacionAcuse = Retorno.CancelacionAcuse
|
||||||
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
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
|
||||||
If Not Retorno.Verificado Then
|
If Not Retorno.Verificado Then
|
||||||
GuardaLog($"****** Error al cancelar factura ****** Estatus: {CancelacionState} | Mensaje: {CancelacionMensaje} | Mensaje SAT: {MsgCancelacion.ToString} ")
|
GuardaLog($"****** Error al cancelar factura ****** Estatus: {CancelacionState} | Mensaje: {CancelacionMensaje} | Mensaje SAT: {MsgCancelacion.ToString} ")
|
||||||
End If
|
End If
|
||||||
|
|||||||
@@ -39950,7 +39950,7 @@ Partial Class Ventas
|
|||||||
Dim Total As Decimal = RowVenta("Total").ToString().ToDecimal()
|
Dim Total As Decimal = RowVenta("Total").ToString().ToDecimal()
|
||||||
Dim RFCReceptor As String = RowVenta("RFCReceptor").ToString()
|
Dim RFCReceptor As String = RowVenta("RFCReceptor").ToString()
|
||||||
Dim ObjTimbrado As New Timbrado
|
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
|
If resp IsNot Nothing Then
|
||||||
Alert(resp.Estado)
|
Alert(resp.Estado)
|
||||||
End If
|
End If
|
||||||
|
|||||||
Reference in New Issue
Block a user