diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb
index f91f6b6b1..b49be482e 100644
--- a/App_Code/Modelos.vb
+++ b/App_Code/Modelos.vb
@@ -4816,7 +4816,7 @@ Namespace Modelos
Dim MensajeError As String = ""
Dim ObjCancelacion As New Timbrado
Dim TotalT As Decimal = ObjFactura.Total
- Dim RFCReceptor As String = ObjFactura.Cliente.RFC
+ Dim RFCReceptor As String = If(String.IsNullOrEmpty(ObjFactura.RFCReceptor), ObjFactura.Cliente.RFC, ObjFactura.RFCReceptor)
Dim CvePACCancelacion As Integer = ObjFactura.CvePAC
If CvePACCancelacion <= 0 Then
@@ -4917,7 +4917,7 @@ Namespace Modelos
CancelacionFecha = ObjCancelacion.CancelacionFecha
CveEstatus = 5
End If
- CancelacionAcuse = ObjCancelacion.CancelacionAcuse
+ CancelacionAcuse = Resp.CancelacionAcuse
SolicitudCancelacionAcuse = Resp.SolicitudCancelacionAcuse
Else
Retorno.Mensaje = "Los servicios de cancelación del SAT no se encuentran disponibles o presentan time out. Intente de nuevo en unos minutos.
Origen del error: WebService www.sat.gob.mx"
@@ -5000,7 +5000,7 @@ Namespace Modelos
'End If
CveEstatus = Resp.CveEstatus
CancelacionFecha = Resp.CancelacionFecha
- CancelacionAcuse = ObjCancelacion.CancelacionAcuse
+ CancelacionAcuse = Resp.CancelacionAcuse
SolicitudCancelacionAcuse = Resp.SolicitudCancelacionAcuse
Else
Retorno.Mensaje = "Los servicios de cancelación del SAT no se encuentran disponibles o presentan time out. Intente de nuevo en unos minutos.
Origen del error: WebService www.sat.gob.mx"
@@ -5042,7 +5042,13 @@ Namespace Modelos
Dim msgBitacora As String = "Solicitud de cancelación de factura"
If EsRefacturacion Then
- msgBitacora = "Solicitud de cancelación por refacturación"
+ If Not String.IsNullOrEmpty(CancelacionAcuse) Then
+ msgBitacora = $"Solicitud de cancelación por refacturación. SelloSAT: {CancelacionAcuse}"
+ ElseIf Not String.IsNullOrEmpty(SolicitudCancelacionAcuse) Then
+ msgBitacora = $"Solicitud de cancelación por refacturación. SelloSAT: {SolicitudCancelacionAcuse}"
+ Else
+ msgBitacora = "Solicitud de cancelación por refacturación."
+ End If
End If
Dim ObjE As New ClsOIEventos()
@@ -5154,7 +5160,7 @@ Namespace Modelos
Dim EstatusDevolucion = 1
If Not ObjVentas.UpdateVentasDevolucionAlmacen(EstatusDevolucion, CveVenta) Then
ErrorCancelar = True
- MensajeError = "Ocurrió un error al solicitar la devolucion de almacen."
+ MensajeError = "Ocurrió un error al solicitar la devolución de almacen."
End If
End If
diff --git a/App_Code/Timbrado.vb b/App_Code/Timbrado.vb
index 466e394c5..7fc90d47b 100644
--- a/App_Code/Timbrado.vb
+++ b/App_Code/Timbrado.vb
@@ -775,22 +775,29 @@ Public Class Timbrado
End Select
'valida que si se halla cancelado
- Dim VigenciaExtra = VerificarVigenciaSAT(FolioFiscal, RFCEmisor, RFCReceptor, Total.ToString(), True)
- If Retorno.Verificado AndAlso VigenciaExtra IsNot Nothing Then
- If VigenciaExtra.Estado.ToUpper = "VIGENTE" AndAlso Not VigenciaExtra.EstatusCancelacion.ToUpper.Contiene("EN PROCESO") Then
- Retorno.Estado = "VIGENTE"
- Retorno.CveEstatus = 23
- End If
- If VigenciaExtra.Estado.ToUpper = "VIGENTE" AndAlso VigenciaExtra.EstatusCancelacion.ToUpper.Contiene("EN PROCESO") Then
- Retorno.Estado = "EN PROCESO"
- Retorno.CveEstatus = 20
- Retorno.SolicitudCancelacionAcuse = Retorno.CancelacionAcuse
- End If
- If VigenciaExtra.Estado.ToUpper = "CANCELADO" Then
- Retorno.Estado = "CANCELADO"
- Retorno.CveEstatus = 5
- End If
+ If Retorno.Verificado Then
+ Dim VigenciaExtra = 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
If Not Retorno.Verificado Then
diff --git a/Ventas/RepCancelacionesPorRespuesta.aspx b/Ventas/RepCancelacionesPorRespuesta.aspx
index a71609e98..3c079264a 100644
--- a/Ventas/RepCancelacionesPorRespuesta.aspx
+++ b/Ventas/RepCancelacionesPorRespuesta.aspx
@@ -56,7 +56,7 @@