Funcion para obtener el acuse de cancelacion
This commit is contained in:
@@ -51,6 +51,83 @@ Public Class Timbrado
|
|||||||
|
|
||||||
#End Region
|
#End Region
|
||||||
|
|
||||||
|
Public Function ObtenerAcuse(CveVenta As Integer, UsuarioActual As Usuario) As Boolean
|
||||||
|
Dim Retorno As Boolean = False
|
||||||
|
Try
|
||||||
|
Dim RowVentas As DataRow = Nothing
|
||||||
|
Dim RFCEmisor = UsuarioActual.Empresa.RFC
|
||||||
|
Dim RFCReceptor As String = ""
|
||||||
|
Dim FolioFiscal As String = ""
|
||||||
|
Dim FolioSustitucion As String = ""
|
||||||
|
Dim CvePACCancelacion As Integer = -1
|
||||||
|
Dim CveSATMotivoCancelacion As Integer = -1
|
||||||
|
Dim CveMotivoCancelacion As Integer = -1
|
||||||
|
Dim TotalT As Decimal = 0
|
||||||
|
|
||||||
|
Using ObjVentas As New ClsVentas
|
||||||
|
If ObjVentas.GetVentasPendientesCancelacion(UsuarioActual.CveEmpresa, 100, CveVenta) AndAlso ObjVentas.DtResultados.Rows.Count > 0 Then
|
||||||
|
RowVentas = ObjVentas.DtResultados.Rows(0)
|
||||||
|
End If
|
||||||
|
End Using
|
||||||
|
|
||||||
|
If RowVentas IsNot Nothing Then
|
||||||
|
FolioFiscal = RowVentas("FolioFiscal").ToString()
|
||||||
|
RFCReceptor = RowVentas("RFCReceptor").ToString()
|
||||||
|
CvePACCancelacion = RowVentas("CvePAC").ToString().ToEntero()
|
||||||
|
CveMotivoCancelacion = RowVentas("CveMotivoCancelacion").ToString().ToEntero()
|
||||||
|
TotalT = RowVentas("Total").ToString().ToDecimal()
|
||||||
|
FolioSustitucion = RowVentas("FolioFiscalSustitucion").ToString()
|
||||||
|
End If
|
||||||
|
|
||||||
|
If CveMotivoCancelacion > 0 Then
|
||||||
|
Dim Row As DataRow = ClsPaginas.GlobalDTMotivosCancelacionEmpresa(UsuarioActual.CveEmpresa, CveMotivoCancelacion:=CveMotivoCancelacion).FiltroPrimero("")
|
||||||
|
If Row IsNot Nothing Then
|
||||||
|
CveSATMotivoCancelacion = Row("CveSATMotivoCancelacion").ToString().ToEntero()
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
|
||||||
|
If CvePACCancelacion = 4 Then
|
||||||
|
Dim solicitud As New WSGF.Service1SoapClient
|
||||||
|
Dim resp As New WSGF.StructXml()
|
||||||
|
resp = solicitud.GetAcuse(RFCEmisor, "rene.molina@adsistemas.mx", "rene2018", FolioFiscal)
|
||||||
|
If (resp.Estado = 0) Then
|
||||||
|
|
||||||
|
Dim xmlDoc As New System.Xml.XmlDocument()
|
||||||
|
xmlDoc.LoadXml(Encoding.UTF8.GetString(Convert.FromBase64String(resp.CfdiB64)))
|
||||||
|
Dim xpath As String = "Acuse/Folios"
|
||||||
|
Dim nodes = xmlDoc.SelectNodes(xpath)
|
||||||
|
CancelacionState = xmlDoc.GetElementsByTagName("EstatusUUID")(0).InnerText.ToEntero
|
||||||
|
|
||||||
|
xpath = "Acuse/Signature"
|
||||||
|
nodes = xmlDoc.SelectNodes(xpath)
|
||||||
|
|
||||||
|
Me.CancelacionAcuse = xmlDoc.GetElementsByTagName("SignatureValue")(0).InnerText
|
||||||
|
Me.CancelacionFecha = xmlDoc.SelectSingleNode("Acuse").Attributes("Fecha").Value.ToDate
|
||||||
|
Retorno = True
|
||||||
|
Else
|
||||||
|
CancelacionAcuse = resp.Descripcion
|
||||||
|
Retorno = False
|
||||||
|
End If
|
||||||
|
solicitud = Nothing
|
||||||
|
Else
|
||||||
|
If CFDICancelar(UsuarioActual.Empresa, FolioFiscal, TotalT, RFCReceptor, UsuarioActual.Empresa.RFC, CvePACCancelacion, CveSATMotivoCancelacion:=CveSATMotivoCancelacion, FolioSustitucion:=FolioSustitucion) Then
|
||||||
|
'GENERAMOS EL ACUSE Y MANDAMOS MAIL DE CON EL ACUSE DE CANCELACIÓN
|
||||||
|
CancelacionFecha = Me.CancelacionFecha
|
||||||
|
CancelacionAcuse = Me.CancelacionAcuse
|
||||||
|
Retorno = True
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
Catch ex As Exception
|
||||||
|
OnError("Ocurrió un error al intentar obtener el acuse", ex)
|
||||||
|
Retorno = False
|
||||||
|
End Try
|
||||||
|
|
||||||
|
Return Retorno
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
Public Shared Function VerificarVigenciaSAT(uuid As String, emisor As String, receptor As String, total As String, produccion As Boolean) As AcuseCancelacionSAT
|
Public Shared Function VerificarVigenciaSAT(uuid As String, emisor As String, receptor As String, total As String, produccion As Boolean) As AcuseCancelacionSAT
|
||||||
Dim Retorno As AcuseCancelacionSAT = Nothing
|
Dim Retorno As AcuseCancelacionSAT = Nothing
|
||||||
Dim resp As Cancelacion2022.AcuseSat = New Cancelacion2022.AcuseSat()
|
Dim resp As Cancelacion2022.AcuseSat = New Cancelacion2022.AcuseSat()
|
||||||
|
|||||||
Reference in New Issue
Block a user