- unificación de función para generar QR SAT

This commit is contained in:
2024-03-16 06:57:23 -07:00
parent c01a85ef74
commit 83fb174168

View File

@@ -19,6 +19,8 @@ Imports Newtonsoft.Json.Linq
Public Class ClsPaginas Public Class ClsPaginas
Inherits System.Web.UI.Page Inherits System.Web.UI.Page
Public Const CveUsuarioAsistencia As Integer = 100 Public Const CveUsuarioAsistencia As Integer = 100
Public Const LigaVerificacionSAT As String = "https://verificacfdi.facturaelectronica.sat.gob.mx/default.aspx"
Public Const LigaVerificacionSATCCP As String = "https://verificacfdi.facturaelectronica.sat.gob.mx/verificaccp/default.aspx"
Public Const ContraseñaPredeterminada As String = "-acceso-" Public Const ContraseñaPredeterminada As String = "-acceso-"
Public Const ContraseñaPredeterminadaEncriptada As String = "aQDyjiv2NgoTct4c84VnLQ==" ' "-acceso-" Public Const ContraseñaPredeterminadaEncriptada As String = "aQDyjiv2NgoTct4c84VnLQ==" ' "-acceso-"
Private Shared EncryptKey() As Byte = {} Private Shared EncryptKey() As Byte = {}
@@ -111,6 +113,18 @@ Public Class ClsPaginas
Return If(tHora <> 0, Now.ToUniversalTime.AddMinutes(tHora), Now) Return If(tHora <> 0, Now.ToUniversalTime.AddMinutes(tHora), Now)
End Function End Function
Public Shared Function GeneraQRSAT(RFCEmisor As String, RFCReceptor As String, Total As Decimal, UUID As String, Optional Sellocfdi As String = "", Optional RutaGuardado As String = "") As Byte()
'Dim RutaCBB As String = $"{UsuarioActual.Empresa.Ruta}CBB\{ObjCFDITimbre.Comprobante.SerieFolio}.jpg"
Dim qrCode As New GoFac.QrCode()
Dim Cadena As String = $"{LigaVerificacionSAT}?re={RFCEmisor}&rr={RFCReceptor}&tt={String.Format("{0,12:F6}", Total).Trim()}&id={UUID}"
If Sellocfdi <> "" Then Cadena = Cadena & $"&fe={Sellocfdi.Substring(Sellocfdi.Length - 8, 8)}"
Dim bCBB As Byte() = qrCode.GenerarQrCode(Cadena)
If RutaGuardado <> "" Then File.WriteAllBytes(RutaGuardado, bCBB)
Return bCBB
End Function
#End Region #End Region
@@ -6300,31 +6314,15 @@ Public Class ClsPaginas
CadenaOriginal = "||1.0|" + FolioFiscal + "|" + FechaCertificacion.ToString("yyyy-MM-dd") + "T" + FechaCertificacion.ToString("HH:mm:ss") + "|" + SelloCFDi + "|" + NoSerieCertificado + "||" CadenaOriginal = "||1.0|" + FolioFiscal + "|" + FechaCertificacion.ToString("yyyy-MM-dd") + "T" + FechaCertificacion.ToString("HH:mm:ss") + "|" + SelloCFDi + "|" + NoSerieCertificado + "||"
End If End If
If Not ImagenCBB.Exists Then If Not ImagenCBB.Exists Then GeneraQRSAT(UsuarioActual.Empresa.RFC, ClienteRFC, Total, FolioFiscal, RutaGuardado:=RutaCBB)
Dim CBB As New ClbNegBICFDv3_2.ClsNegCBBGenerar()
CBB.GenerarCBB(UsuarioActual.Empresa.RFC, ClienteRFC, Total, FolioFiscal, RutaCBB)
End If
ImagenCBB = New System.IO.FileInfo(RutaCBB) ImagenCBB = New System.IO.FileInfo(RutaCBB)
If ImagenCBB.Exists Then If ImagenCBB.Exists Then
ImgCBB = String.Format("file://{0}", ImagenCBB.FullName) ImgCBB = String.Format("file://{0}", ImagenCBB.FullName)
Else Else
ImgCBB = "" ImgCBB = ""
End If End If
'FIXME OICCHECAR DESPUES DE SINCRONIZAR TIMBRADO
'If Not ImagenCCP.Exists Then
' Dim CBB As New ClbNegBICFDv3_2.ClsNegCBBGenerar()
' CBB.GenerarCBB(UsuarioActual.Empresa.RFC, ClienteRFC, Total, FolioFiscal, RutaCBB)
'End If
ImagenCCP = New System.IO.FileInfo(RutaCCP) ImagenCCP = New System.IO.FileInfo(RutaCCP)
If ImagenCCP.Exists Then If ImagenCCP.Exists Then
ImgCCP = String.Format("file://{0}", ImagenCCP.FullName) ImgCCP = String.Format("file://{0}", ImagenCCP.FullName)
Else Else
@@ -6751,9 +6749,6 @@ Public Class ClsPaginas
End If End If
'Si no tiene CBB, SE GENERA 'Si no tiene CBB, SE GENERA
If (Not ImagenCBB.Exists OrElse RegenerarQR) AndAlso Vta.FolioFiscal <> "" Then If (Not ImagenCBB.Exists OrElse RegenerarQR) AndAlso Vta.FolioFiscal <> "" Then
'Dim CBB As New ClbNegBICFDv3_2.ClsNegCBBGenerar()
'CBB.GenerarCBB(UsuarioActual.Empresa.RFC, RFCReceptor, Vta.Total, Vta.FolioFiscal, RutaCBB)
Dim LigaVerificacionSAT As String = "https://verificacfdi.facturaelectronica.sat.gob.mx/default.aspx"
Try Try
Dim qrCode As New GoFac.QrCode() Dim qrCode As New GoFac.QrCode()
Dim bCBB As Byte() = qrCode.GenerarQrCode($"{LigaVerificacionSAT}?re={UsuarioActual.Empresa.RFC}&rr={RFCReceptor}&tt={String.Format("{0,12:F6}", Vta.Total).Trim()}&id={Vta.FolioFiscal}&fe={Vta.SelloCFDi.Substring(Vta.SelloCFDi.Length - 8, 8)}") Dim bCBB As Byte() = qrCode.GenerarQrCode($"{LigaVerificacionSAT}?re={UsuarioActual.Empresa.RFC}&rr={RFCReceptor}&tt={String.Format("{0,12:F6}", Vta.Total).Trim()}&id={Vta.FolioFiscal}&fe={Vta.SelloCFDi.Substring(Vta.SelloCFDi.Length - 8, 8)}")
@@ -8245,9 +8240,8 @@ Public Class ClsPaginas
End If End If
'Si no tiene CBB, SE GENERA 'Si no tiene CBB, SE GENERA
If Not ImagenCBB.Exists Then If Not ImagenCBB.Exists Then
Dim CBB As New ClbNegBICFDv3_2.ClsNegCBBGenerar()
If ObjPersonal.GetPersonal(CvePersonal, CveEmpresa) Then If ObjPersonal.GetPersonal(CvePersonal, CveEmpresa) Then
CBB.GenerarCBB(UsuarioActual.Empresa.RFC, ObjPersonal.RFC, ObjNomina.Total.ToString.ToDecimal, FolioFiscal, RutaCBB) GeneraQRSAT(UsuarioActual.Empresa.RFC, ObjPersonal.RFC, ObjNomina.Total.ToString.ToDecimal, FolioFiscal, RutaGuardado:=RutaCBB)
End If End If
End If End If
ImgCBB = String.Format("{0}://{1}:{2}/Empresas/{3}/CBB/Nomina/{4}.jpg", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa, ObjNomina.SerieFolio) ImgCBB = String.Format("{0}://{1}:{2}/Empresas/{3}/CBB/Nomina/{4}.jpg", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa, ObjNomina.SerieFolio)
@@ -8329,10 +8323,9 @@ Public Class ClsPaginas
RptParametro.Add(New ReportParameter("Unidad", "ACT")) RptParametro.Add(New ReportParameter("Unidad", "ACT"))
RptParametro.Add(New ReportParameter("Descripcion", "PAGO DE NÓMINA")) RptParametro.Add(New ReportParameter("Descripcion", "PAGO DE NÓMINA"))
RptParametro.Add(New ReportParameter("Total", If(indemnizacion, ajusteindemnizacion, ObjNomina.Total - ajusteindemnizacion).ToString())) RptParametro.Add(New ReportParameter("Total", If(indemnizacion, ajusteindemnizacion, ObjNomina.Total - ajusteindemnizacion).ToString()))
Dim CBB As New ClbNegBICFDv3_2.ClsNegCBBGenerar()
cQr = CBB.GenerarCBBBytes(UsuarioActual.Empresa.RFC, ObjPersonal.RFC, ObjNomina.Total.ToString().ToDecimal(), FolioFiscal)
RptParametro.Add(New ReportParameter("ImporteLetra", ObjNomina.Total.ToString.ToDecimal.Texto2Letras)) RptParametro.Add(New ReportParameter("ImporteLetra", ObjNomina.Total.ToString.ToDecimal.Texto2Letras))
RptParametro.Add(New ReportParameter("Clave", "84111505")) RptParametro.Add(New ReportParameter("Clave", "84111505"))
cQr = GeneraQRSAT(UsuarioActual.Empresa.RFC, ObjPersonal.RFC, ObjNomina.Total.ToString().ToDecimal(), FolioFiscal)
Else Else
TieneError = True TieneError = True
End If End If
@@ -8739,8 +8732,7 @@ Public Class ClsPaginas
End If End If
Dim CadenaOriginal As String = $"||1.0| {FolioFiscal} | {FechaCertificacion.ToDate.ToShortDateString} T {FechaCertificacion.ToDateTime.ToShortTimeString} | {SelloCFDi} | {NoSerieCertificado} ||" Dim CadenaOriginal As String = $"||1.0| {FolioFiscal} | {FechaCertificacion.ToDate.ToShortDateString} T {FechaCertificacion.ToDateTime.ToShortTimeString} | {SelloCFDi} | {NoSerieCertificado} ||"
If Not File.Exists(ImagenCBB) AndAlso FolioFiscal <> "" Then If Not File.Exists(ImagenCBB) AndAlso FolioFiscal <> "" Then
Dim CBB As New ClbNegBICFDv3_2.ClsNegCBBGenerar() GeneraQRSAT(UsuarioActual.Empresa.RFC, RFCOrdenante, 1, FolioFiscal, RutaGuardado:=ImagenCBB)
CBB.GenerarCBB(UsuarioActual.Empresa.RFC, RFCOrdenante, 1, FolioFiscal, ImagenCBB)
End If End If
' PARAMETROS DEL REPORTE ' PARAMETROS DEL REPORTE