Skip to content

Instantly share code, notes, and snippets.

@dafma
Last active April 2, 2018 19:57
Show Gist options
  • Save dafma/aa6f63715d22c59fcf37ef90eac13624 to your computer and use it in GitHub Desktop.
Save dafma/aa6f63715d22c59fcf37ef90eac13624 to your computer and use it in GitHub Desktop.
ALTER PROCEDURE [dbo].[spCFDFlexTextoQRCode]
(
@Modulo varchar(5),
@ModuloID int
)
--exec spCFDFlexTExtoQRCode 'VTAS', 891160
AS BEGIN
DECLARE
@Resultado varchar(255),
@EmisorRFC char(13),
@ReceptorRFC char(13),
@Importe varchar(25), -- SE CAMBIO A VARCHAR, TENIA FLOAT 26 DE ENERO 2018
@UUID varchar(50),
@XML varchar(max),
@DocumentoXML xml,
@PrefijoCFDI varchar(255),
@RutaCFDI varchar(255),
@iDatos int,
@URLAccesoCFDI varchar(100),
@URLAccesoRET varchar(100),
@URLAcceso varchar(100),
@Sello CHAR(8)
SELECT @URLAccesoCFDI= 'https'+CHAR(58)+'//verificacfdi.facturaelectronica.sat.gob.mx/default.aspx' -- CFDI
SELECT @URLAccesoRET = 'https'+CHAR(58)+'//prodretencionverificacion.clouda.sat.gob.mx/' -- RETENCIONES
SELECT
@XML=t1.XML1, @Sello=substring(T1.XML1,(CHARINDEX('==',XML1)-6),8) , @URLAcceso=URLAcceso
FROM (SELECT c.Modulo, c.ModuloID as 'ModuloID', Documento as 'XML1', Sello, @URLAccesoCFDI as 'URLAcceso'
FROM CFD c
WHERE c.Modulo in( 'vtas', 'cxc')
UNION ALL
SELECT c.Modulo,c.IDModulo as 'ModuloID', Documento as 'XML1', Sello, @URLAccesoRET as 'URLAcceso'
FROM CFDICobroParcialTimbrado c
JOIN MOVTIPO mt ON c.Modulo= mt.Modulo AND c.Movimiento = mt.Mov AND c.Modulo IN ('CXC','DIN') AND mt.Clave IN ('CXC.C','DIN.D','DIN.DE','DIN.I') AND mt.Orden IN (120,10,20,210)
) t1
WHERE t1.Modulo = @Modulo
AND t1.ModuloID = @ModuloID
SET @DocumentoXML = CONVERT(XML,@XML)
SET @PrefijoCFDI = '<ns xmlns' + CHAR(58) + 'cfdi="http' + CHAR(58) + '//www.sat.gob.mx/cfd/3" xmlns' + CHAR(58) + 'tfd="http' + CHAR(58) + '//www.sat.gob.mx/TimbreFiscalDigital"/>'
EXEC sp_xml_preparedocument @iDatos OUTPUT, @DocumentoXML, @PrefijoCFDI
SET @RutaCFDI = '/cfdi' + CHAR(58) + 'Comprobante'
SELECT
@Importe = Total
FROM OPENXML (@iDatos, @RutaCFDI, 1) WITH (Total Varchar(25)) -- SE QUITO EL FLOAT Y SE COLOCO A VARCHAR 26 ENE 2018
SET @RutaCFDI = '/cfdi' + CHAR(58) + 'Comprobante/cfdi' + CHAR(58) + 'Receptor'
SELECT
@ReceptorRFC = LTRIM(Rfc)
FROM OPENXML (@iDatos, @RutaCFDI, 1) WITH (Rfc varchar(15))
SET @RutaCFDI = '/cfdi' + CHAR(58) + 'Comprobante/cfdi' + CHAR(58) + 'Emisor'
SELECT
@EmisorRFC = LTRIM(Rfc)
FROM OPENXML (@iDatos, @RutaCFDI, 1) WITH (Rfc varchar(15))
SET @RutaCFDI = '/cfdi' + CHAR(58) + 'Comprobante/cfdi' + CHAR(58) + 'Complemento/tfd' + CHAR(58) + 'TimbreFiscalDigital'
SELECT
@UUID = UUID
FROM OPENXML (@iDatos, @RutaCFDI, 1) WITH (UUID uniqueidentifier)
EXEC sp_xml_removedocument @iDatos
--SET @Resultado = ISNULL(@URLAcceso,'')+'?id='+ISNULL(@UUID,'')+'&re='+ISNULL(RTRIM(@EmisorRFC),'')+'&rr='+ISNULL(RTRIM(@ReceptorRFC),'')+'&tt='+ISNULL(CONVERT(VARCHAR(25),@Importe),'0')+'&fe='+ISNULL(@Sello,'') // SE COMENTO PARA MODIFICAR EL @IMPORTE. ESTA LINEA ES LA ORIGINAL Y ESTABA MAL. 26 ENE 2018
SET @Resultado = ISNULL(@URLAcceso,'')+'?id='+ISNULL(@UUID,'')+'&re='+ISNULL(RTRIM(@EmisorRFC),'')+'&rr='+ISNULL(RTRIM(@ReceptorRFC),'')+'&tt='+@Importe+'&fe='+ISNULL(@Sello,'')
SELECT @Resultado
END
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment