Skip to content

Instantly share code, notes, and snippets.

@dafma
Last active April 2, 2018 19:59
Show Gist options
  • Save dafma/7c8cf035fbaabeb8fdb6489501ee4143 to your computer and use it in GitHub Desktop.
Save dafma/7c8cf035fbaabeb8fdb6489501ee4143 to your computer and use it in GitHub Desktop.
Cadena Original
ALTER FUNCTION [dbo].[fnCFDFlexCadenaOriginalTFDI]
(
@Modulo varchar(5),
@ModuloID int
)
/*
declare @valor varchar(1000)
exec @valor=fnCFDFlexCadenaOriginalTFDI 'VTAS',884727
select @valor
*/
RETURNS varchar(max)
--//WITH ENCRYPTION
AS BEGIN
DECLARE
@Resultado varchar(1500),
@Version varchar(10),
@UUID varchar(50),
@FechaTimbrado datetime,
@SelloCFD varchar(1000),
@NoCertificadoSAT varchar(50),
@Contador Int,
@Inicio Int,
@Contador2 Int,
@Fin Int,
@LongitudDocto Int, ---- Se anexo el 26 Een 2018 falta incluirlo en la cadena para version 1.1
@RfcProvCertif varchar(12) ---- Se anexo el 26 Een 2018 falta incluirlo en la cadena para version 1.1
---extrae sello
Select @Contador=1
While @Contador<8000
Begin
IF (Select Substring(Documento,@Contador,6) From CFD Where Modulo=@Modulo AND ModuloId=@ModuloID)='Sello='
Begin
Select @Inicio=@Contador+7
Select @Contador2=@Inicio
While @Contador2<8000
Begin
IF (Select Substring(Documento,@Contador2,2) From CFD Where Modulo=@Modulo AND ModuloId=@Moduloid)='=='
Begin
Select @Fin=@Contador2+2
Select @Contador2=9000
Select @contador=9000
End
Select @Contador2=@Contador2+1
End
End
Select @Contador=@Contador+1
End
Select @SelloCFD=Substring(Documento,@Inicio,@Fin-@Inicio) From CFD Where Modulo=@Modulo AND ModuloId=@ModuloID
/*
Se anexo el 26 Een 2018 para obtener el RFC del cproveedor de certificacion Timbre Fiscal Digital ver 1.1
*/
Select @Contador=1
select @LongitudDocto = datalength(Documento)From CFD Where Modulo=@Modulo AND ModuloId=@ModuloID
While @Contador<@LongitudDocto
Begin
IF (Select Substring(Documento,@Contador,14) From CFD Where Modulo=@Modulo AND ModuloId=@ModuloID)='RfcProvCertif='
Begin
Select @Inicio=@Contador+16
Select @RfcProvCertif=substring(Documento,@Inicio,11) From CFD Where Modulo=@Modulo AND ModuloId=@ModuloID
End
Select @Contador=@Contador+1
End
---- Termina Cambio RFC Proveedor Certificacion 26 Ene 2018
---
SELECT
@Version = TFDVersion,
@UUID = CONVERT(varchar(100),UUID),
@FechaTimbrado = FechaTimbrado,
-- @SelloCFD = Sello,
-- @Resultado = TFDCadenaOriginal,
@NoCertificadoSAT = noCertificadoSAT
FROM CFD
WHERE Modulo = @Modulo
AND ModuloID = @ModuloID
SET @Resultado = '||' + RTRIM(LTRIM(@Version)) + '|' + RTRIM(LTRIM(@UUID)) + '|' + RTRIM(LTRIM(dbo.fneDocFormatoFecha(@FechaTimbrado,'AAAA-MM-DDTHH:NN:SSZ'))) + '|' + @RfcProvCertif + '|' + RTRIM(LTRIM(@SelloCFD)) + '|' + RTRIM(LTRIM(@NoCertificadoSAT)) + '||'
RETURN (@Resultado)
END
GO
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment