Funcion para obtener el acuse de cancelacion
This commit is contained in:
@@ -51,6 +51,83 @@ Public Class Timbrado
|
||||
|
||||
#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
|
||||
Dim Retorno As AcuseCancelacionSAT = Nothing
|
||||
Dim resp As Cancelacion2022.AcuseSat = New Cancelacion2022.AcuseSat()
|
||||
|
||||
Reference in New Issue
Block a user