Guilhermehc Postado 31 de Maio de 2012 Tópicos Que Criei: 4 Tópicos/Dia: 0.00 Meu Conteúdo: 16 Conteúdo/Dia: 0.00 Reputação: 0 Pontos/Conquistas: 120 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 37 Denunciar Compartilhar Postado 31 de Maio de 2012 Salve galera, desenvolvi uma Function que é executada através de uma trigger da tabela TMOV para validação do DV da Chave de Acesso da Nota Fiscal Eletrônica de entrada. Funciona da seguinte forma: Usuário no movimento de entrada informa o tipo do documento como NF-e e então o sistema habilita o campo Chave de Acesso NF-e. Neste campo, por padrão, nenhuma validação é feita. Foi criada a trigger e function então para que seja validado o DV (dígito verificador) da nota, ou seja, o último número dos 44 caracteres. Caso o DV ou então algum número seja digitado de forma incorreta o sistema não permite a gravação. No mais era isso! Se alguém tiver interesse posso disponibilizar para todos! Valeu abraço! Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Nego Del Postado 31 de Maio de 2012 Tópicos Que Criei: 8 Tópicos/Dia: 0.00 Meu Conteúdo: 60 Conteúdo/Dia: 0.01 Reputação: 3 Pontos/Conquistas: 388 Conteúdo Resolvido: 0 Dias Ganho: 2 Status: Offline Idade: 50 Denunciar Compartilhar Postado 31 de Maio de 2012 Achei interessante sim , se puder disponibilizar eu agradeceria muito pois ainda sou novato com o SQL . Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Scandolara Postado 31 de Maio de 2012 Tópicos Que Criei: 17 Tópicos/Dia: 0.00 Meu Conteúdo: 51 Conteúdo/Dia: 0.01 Reputação: 0 Pontos/Conquistas: 425 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Denunciar Compartilhar Postado 31 de Maio de 2012 Ola, eu tbem acho interessante, visto q a versao que estou nao tem isso ... Obr Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Guilhermehc Postado 1 de Junho de 2012 Tópicos Que Criei: 4 Tópicos/Dia: 0.00 Meu Conteúdo: 16 Conteúdo/Dia: 0.00 Reputação: 0 Pontos/Conquistas: 120 Conteúdo Resolvido: 0 Dias Ganho: 0 Status: Offline Idade: 37 Autor Denunciar Compartilhar Postado 1 de Junho de 2012 USE [teste] GO /****** Object: UserDefinedFunction [dbo].[VALIDA_CHAVEACESSONFE] Script Date: 06/01/2012 14:15:44 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE FUNCTION [dbo].[VALIDA_CHAVEACESSONFE] (@IDMOV INT,@CODCOLIGADA INT) --CRIADO POR GUILHERME RETURNS INT AS BEGIN DECLARE @TOTAL int, @RESTO int, @RETORNO INT SELECT @TOTAL = (select SUM ( (substring(chaveacessonfe,43,1) * 2) + (substring(chaveacessonfe,42,1) * 3) + (substring(chaveacessonfe,41,1) * 4) + (substring(chaveacessonfe,40,1) * 5) + (substring(chaveacessonfe,39,1) * 6) + (substring(chaveacessonfe,38,1) * 7) + (substring(chaveacessonfe,37,1) * 8) + (substring(chaveacessonfe,36,1) * 9) + (substring(chaveacessonfe,35,1) * 2) + (substring(chaveacessonfe,34,1) * 3) + (substring(chaveacessonfe,33,1) * 4) + (substring(chaveacessonfe,32,1) * 5) + (substring(chaveacessonfe,31,1) * 6) + (substring(chaveacessonfe,30,1) * 7) + (substring(chaveacessonfe,29,1) * 8) + (substring(chaveacessonfe,28,1) * 9) + (substring(chaveacessonfe,27,1) * 2) + (substring(chaveacessonfe,26,1) * 3) + (substring(chaveacessonfe,25,1) * 4) + (substring(chaveacessonfe,24,1) * 5) + (substring(chaveacessonfe,23,1) * 6) + (substring(chaveacessonfe,22,1) * 7) + (substring(chaveacessonfe,21,1) * 8) + (substring(chaveacessonfe,20,1) * 9) + (substring(chaveacessonfe,19,1) * 2) + (substring(chaveacessonfe,18,1) * 3) + (substring(chaveacessonfe,17,1) * 4) + (substring(chaveacessonfe,16,1) * 5) + (substring(chaveacessonfe,15,1) * 6) + (substring(chaveacessonfe,14,1) * 7) + (substring(chaveacessonfe,13,1) * 8) + (substring(chaveacessonfe,12,1) * 9) + (substring(chaveacessonfe,11,1) * 2) + (substring(chaveacessonfe,10,1) * 3) + (substring(chaveacessonfe,9,1) * 4) + (substring(chaveacessonfe,8,1) * 5) + (substring(chaveacessonfe,7,1) * 6) + (substring(chaveacessonfe,6,1) * 7) + (substring(chaveacessonfe,5,1) * 8) + (substring(chaveacessonfe,4,1) * 9) + (substring(chaveacessonfe,3,1) * 2) + (substring(chaveacessonfe,2,1) * 3) + (substring(chaveacessonfe,1,1) * 4) ) from TMOV where CODCOLIGADA = @CODCOLIGADA and IDMOV = @IDMOV GROUP BY TMOV.CHAVEACESSONFE) --VALIDAÇÃO CÁCULO MÓDULO 11 SELECT @RESTO = @TOTAL%11 SELECT @RETORNO = 11 - @RESTO IF (@RESTO = 0 OR @RESTO = 1) SET @RETORNO = 0 ELSE SET @RETORNO = @RETORNO RETURN(@RETORNO) END Essa acima é a function.. e esta abaixo a trigger de insert da tabela TMOV que faz a validação no momento do lançamento das notas. Se quiserem a trigger de update é só mudar ali o tipo de insert pra update nesta trigger mesmo! Funciona 100%! USE [teste] GO /****** Object: Trigger [dbo].[Tabela_TMOV_Insert_Filial_CC] Script Date: 06/01/2012 14:17:27 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER TRIGGER [dbo].[Tabela_TMOV_Insert_Filial_CC] ON [dbo].[TMOV] FOR INSERT As DECLARE @CdColigada INT, @CdFilial INT, @CdCC VARCHAR(10), @chaveacesso varchar(44), @idmov INT, @CdTmv varchar(10) BEGIN --Buscando dados sendo inseridos SELECT @CdColigada = codcoligada, @CdFilial = codfilial, @CdCC = codccusto, @chaveacesso = CHAVEACESSONFE, @idmov = IDMOV, @CdTmv = CODTMV FROM inserted IF (@CdTmv like '1.2%') BEGIN IF DBO.VALIDA_CHAVEACESSONFE(@idmov,@CdColigada) <> substring(@chaveacesso,44,1) Raiserror('DV DA CHAVE DE ACESSO NF-e INVÁLIDO.',11,127,@CdCC,@CdFilial); END END Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Nego Del Postado 5 de Junho de 2012 Tópicos Que Criei: 8 Tópicos/Dia: 0.00 Meu Conteúdo: 60 Conteúdo/Dia: 0.01 Reputação: 3 Pontos/Conquistas: 388 Conteúdo Resolvido: 0 Dias Ganho: 2 Status: Offline Idade: 50 Denunciar Compartilhar Postado 5 de Junho de 2012 Valeu por compartilhar o conhecimento com todos , vou testar numa base pra ver como ficou . Obrigado . Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Antonio Lins Postado 17 de Outubro de 2013 Tópicos Que Criei: 25 Tópicos/Dia: 0.00 Meu Conteúdo: 310 Conteúdo/Dia: 0.05 Reputação: 1 Pontos/Conquistas: 1.796 Conteúdo Resolvido: 0 Dias Ganho: 1 Status: Offline Idade: 49 Denunciar Compartilhar Postado 17 de Outubro de 2013 Quem desejar segue abaixo formula de consistência para o movimento e checando seus campos se necessário. ===================valida chave============== +++++++++++++numero nota fiscal++++++++++++++ SE SUBSTR(TABMOV('CHAVEACESSONFE','S'),26,9)=TABMOV('NUMEROMOV','N') ENTAO 1 SENAO 0 FIMSE ++++++++++++++++++++++++++++++++++CNPJ+++++++++++++++++++++++++++++++++++++++++ SE EXECSQL('GEC44')=1 ENTAO SE RESULTSQL('GEC44','CGCCFO')=SUBSTR(TABMOV('CHAVEACESSONFE','S'),7,14) ENTAO 1 SENAO 0 FIMSE SENAO 0 FIMSE consulta relacionada SELECT REPLACE(REPLACE(REPLACE(CGCCFO,'.'),'/'),'-') AS CGCCFO FROM RM.FCFO WHERE CODCFO=:FRM_GEC04 +++++++++++++++++++++Data de Emissao da NOTA++++++++++++++++++++++++++++++++++++ DECL M,A; SETVAR(M,MESDT(TABMOV('DATAEMISSAO','D'))); SETVAR(A,SUBSTR(ANODT(TABMOV('DATAEMISSAO','D')),3,2)); SE VAL(SUBSTR(TABMOV('CHAVEACESSONFE','S'),3,2))=A E VAL(SUBSTR(TABMOV('CHAVEACESSONFE','S'),5,2))=M ENTAO 1 SENAO 0 FIMSE +++++++++++++++++++++++UF da Nota++++++++++++++++++++++++++++++++++++++++++++++++ /*Valida UF do Cliente*/ DECL ESTADORO,ESTADOAC,ESTADOAM,ESTADORR,ESTADOPA,ESTADOAP,ESTADOTO,ESTADOMA,ESTADOPI,ESTADOCE,ESTADORN,ESTADOPB,ESTADOPE,ESTADOAL,ESTADOSE, ESTADOBA,ESTADOMG,ESTADOES,ESTADORJ,ESTADOSP,ESTADOPR,ESTADOSC,ESTADORS,ESTADOMS,ESTADOMT,ESTADOGO,ESTADODF; SETVAR(ESTADORO,11);SETVAR(ESTADOAC,12);SETVAR(ESTADOAM,13);SETVAR(ESTADORR,14);SETVAR(ESTADOPA,15);SETVAR(ESTADOAP,16); SETVAR(ESTADOTO,17);SETVAR(ESTADOMA,21);SETVAR(ESTADOPI,22);SETVAR(ESTADOCE,23);SETVAR(ESTADORN,24);SETVAR(ESTADOPB,25); SETVAR(ESTADOPE,26);SETVAR(ESTADOAL,27);SETVAR(ESTADOSE,28);SETVAR(ESTADOBA,29);SETVAR(ESTADOMG,31);SETVAR(ESTADOES,32); SETVAR(ESTADORJ,33);SETVAR(ESTADOSP,35);SETVAR(ESTADOPR,41);SETVAR(ESTADOSC,42);SETVAR(ESTADORS,43);SETVAR(ESTADOMS,50); SETVAR(ESTADOMT,51);SETVAR(ESTADOGO,52);SETVAR(ESTADODF,53); SE TABCLIFOR('CODETD','S',TABMOV ('CODCOLCFO' , 'V'),TABMOV('CODCFO','S'))='RO' ENTAO SE ESTADORO=SUBSTR(TABMOV('CHAVEACESSONFE','S'),1,2) ENTAO 1 SENAO 0 FIMSE SENAO SE TABCLIFOR('CODETD','S',TABMOV ('CODCOLCFO' , 'V'),TABMOV('CODCFO','S'))='AC' ENTAO SE ESTADOAC=SUBSTR(TABMOV('CHAVEACESSONFE','S'),1,2) ENTAO 1 SENAO 0 FIMSE SENAO SE TABCLIFOR('CODETD','S',TABMOV ('CODCOLCFO' , 'V'),TABMOV('CODCFO','S'))='AM' ENTAO SE ESTADOAM=SUBSTR(TABMOV('CHAVEACESSONFE','S'),1,2) ENTAO 1 SENAO 0 FIMSE SENAO SE TABCLIFOR('CODETD','S',TABMOV ('CODCOLCFO' , 'V'),TABMOV('CODCFO','S'))='RR' ENTAO SE ESTADORR=SUBSTR(TABMOV('CHAVEACESSONFE','S'),1,2) ENTAO 1 SENAO 0 FIMSE SENAO SE TABCLIFOR('CODETD','S',TABMOV ('CODCOLCFO' , 'V'),TABMOV('CODCFO','S'))='PA' ENTAO SE ESTADOPA=SUBSTR(TABMOV('CHAVEACESSONFE','S'),1,2) ENTAO 1 SENAO 0 FIMSE SENAO SE TABCLIFOR('CODETD','S',TABMOV ('CODCOLCFO' , 'V'),TABMOV('CODCFO','S'))='AP' ENTAO SE ESTADOAP=SUBSTR(TABMOV('CHAVEACESSONFE','S'),1,2) ENTAO 1 SENAO 0 FIMSE SENAO SE TABCLIFOR('CODETD','S',TABMOV ('CODCOLCFO' , 'V'),TABMOV('CODCFO','S'))='TO' ENTAO SE ESTADOTO=SUBSTR(TABMOV('CHAVEACESSONFE','S'),1,2) ENTAO 1 SENAO 0 FIMSE SENAO SE TABCLIFOR('CODETD','S',TABMOV ('CODCOLCFO' , 'V'),TABMOV('CODCFO','S'))='MA' ENTAO SE ESTADOMA=SUBSTR(TABMOV('CHAVEACESSONFE','S'),1,2) ENTAO 1 SENAO 0 FIMSE SENAO SE TABCLIFOR('CODETD','S',TABMOV ('CODCOLCFO' , 'V'),TABMOV('CODCFO','S'))='PI' ENTAO SE ESTADOPI=SUBSTR(TABMOV('CHAVEACESSONFE','S'),1,2) ENTAO 1 SENAO 0 FIMSE SENAO SE TABCLIFOR('CODETD','S',TABMOV ('CODCOLCFO' , 'V'),TABMOV('CODCFO','S'))='CE' ENTAO SE ESTADOCE=SUBSTR(TABMOV('CHAVEACESSONFE','S'),1,2) ENTAO 1 SENAO 0 FIMSE SENAO SE TABCLIFOR('CODETD','S',TABMOV ('CODCOLCFO' , 'V'),TABMOV('CODCFO','S'))='RN' ENTAO SE ESTADORN=SUBSTR(TABMOV('CHAVEACESSONFE','S'),1,2) ENTAO 1 SENAO 0 FIMSE SENAO SE TABCLIFOR('CODETD','S',TABMOV ('CODCOLCFO' , 'V'),TABMOV('CODCFO','S'))='PB' ENTAO SE ESTADOPB=SUBSTR(TABMOV('CHAVEACESSONFE','S'),1,2) ENTAO 1 SENAO 0 FIMSE SENAO SE TABCLIFOR('CODETD','S',TABMOV ('CODCOLCFO' , 'V'),TABMOV('CODCFO','S'))='PE' ENTAO SE ESTADOPE=SUBSTR(TABMOV('CHAVEACESSONFE','S'),1,2) ENTAO 1 SENAO 0 FIMSE SENAO SE TABCLIFOR('CODETD','S',TABMOV ('CODCOLCFO' , 'V'),TABMOV('CODCFO','S'))='AL' ENTAO SE ESTADOAL=SUBSTR(TABMOV('CHAVEACESSONFE','S'),1,2) ENTAO 1 SENAO 0 FIMSE SENAO SE TABCLIFOR('CODETD','S',TABMOV ('CODCOLCFO' , 'V'),TABMOV('CODCFO','S'))='SE' ENTAO SE ESTADOSE=SUBSTR(TABMOV('CHAVEACESSONFE','S'),1,2) ENTAO 1 SENAO 0 FIMSE SENAO SE TABCLIFOR('CODETD','S',TABMOV ('CODCOLCFO' , 'V'),TABMOV('CODCFO','S'))='BA' ENTAO SE ESTADOBA=SUBSTR(TABMOV('CHAVEACESSONFE','S'),1,2) ENTAO 1 SENAO 0 FIMSE SENAO SE TABCLIFOR('CODETD','S',TABMOV ('CODCOLCFO' , 'V'),TABMOV('CODCFO','S'))='MG' ENTAO SE ESTADOMG=SUBSTR(TABMOV('CHAVEACESSONFE','S'),1,2) ENTAO 1 SENAO 0 FIMSE SENAO SE TABCLIFOR('CODETD','S',TABMOV ('CODCOLCFO' , 'V'),TABMOV('CODCFO','S'))='ES' ENTAO SE ESTADOES=SUBSTR(TABMOV('CHAVEACESSONFE','S'),1,2) ENTAO 1 SENAO 0 FIMSE SENAO SE TABCLIFOR('CODETD','S',TABMOV ('CODCOLCFO' , 'V'),TABMOV('CODCFO','S'))='RJ' ENTAO SE ESTADORJ=SUBSTR(TABMOV('CHAVEACESSONFE','S'),1,2) ENTAO 1 SENAO 0 FIMSE SENAO SE TABCLIFOR('CODETD','S',TABMOV ('CODCOLCFO' , 'V'),TABMOV('CODCFO','S'))='SP' ENTAO SE ESTADOSP=SUBSTR(TABMOV('CHAVEACESSONFE','S'),1,2) ENTAO 1 SENAO 0 FIMSE SENAO SE TABCLIFOR('CODETD','S',TABMOV ('CODCOLCFO' , 'V'),TABMOV('CODCFO','S'))='PR' ENTAO SE ESTADOPR=SUBSTR(TABMOV('CHAVEACESSONFE','S'),1,2) ENTAO 1 SENAO 0 FIMSE SENAO SE TABCLIFOR('CODETD','S',TABMOV ('CODCOLCFO' , 'V'),TABMOV('CODCFO','S'))='SC' ENTAO SE ESTADOSC=SUBSTR(TABMOV('CHAVEACESSONFE','S'),1,2) ENTAO 1 SENAO 0 FIMSE SENAO SE TABCLIFOR('CODETD','S',TABMOV ('CODCOLCFO' , 'V'),TABMOV('CODCFO','S'))='RS' ENTAO SE ESTADORS=SUBSTR(TABMOV('CHAVEACESSONFE','S'),1,2) ENTAO 1 SENAO 0 FIMSE SENAO SE TABCLIFOR('CODETD','S',TABMOV ('CODCOLCFO' , 'V'),TABMOV('CODCFO','S'))='MS' ENTAO SE ESTADOMS=SUBSTR(TABMOV('CHAVEACESSONFE','S'),1,2) ENTAO 1 SENAO 0 FIMSE SENAO SE TABCLIFOR('CODETD','S',TABMOV ('CODCOLCFO' , 'V'),TABMOV('CODCFO','S'))='GO' ENTAO SE ESTADOGO=SUBSTR(TABMOV('CHAVEACESSONFE','S'),1,2) ENTAO 1 SENAO 0 FIMSE SENAO SE TABCLIFOR('CODETD','S',TABMOV ('CODCOLCFO' , 'V'),TABMOV('CODCFO','S'))='DF' ENTAO SE ESTADODF=SUBSTR(TABMOV('CHAVEACESSONFE','S'),1,2) ENTAO 1 SENAO 0 FIMSE SENAO 0 FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE FIMSE +++++++++++++++++++++++++++ VALIDANDO O DV E OS CAMPOS DE COMPOSIÇÃO DA CHAVE+++++++++++++++++++++++++++++++++++++++++ /*DECLARANDO VARIAVEIS*/ DECL PS1,PS2,PS3,PS4,PS5,PS6,PS7,PS8,PS9,PS10,PS11,PS12,PS13,PS14,PS15,PS16,PS17,PS18,PS19,PS20,PS21,PS22, PS23,PS24,PS25,PS26,PS27,PS28,PS29,PS30,PS31,PS32,PS33,PS34,PS35,PS36,PS37,PS38,PS39,PS40,PS41,PS42,PS43,TT,TT1,TT2,TT3,TT4,DV; /*CASO O TIPO DE DOCUMENTO FOR 024 OU 026 E A CHAVE DE ACESSO NF-E FOR NULA SE CALCULA O DV(DIGITO VERIFICADOR) */ SE TABMOV('CODTDO','S')='024' OU TABMOV('CODTDO','S')='026' E TABMOV('CHAVEACESSONFE','S')<>"" ENTAO SE TABMOV('CHAVEACESSONFE','S')<>"" ENTAO SETVAR(PS1,SUBSTR(TABMOV('CHAVEACESSONFE','S'),1,1)*4); SETVAR(PS2,SUBSTR(TABMOV('CHAVEACESSONFE','S'),2,1)*3); SETVAR(PS3,SUBSTR(TABMOV('CHAVEACESSONFE','S'),3,1)*2); SETVAR(PS4,SUBSTR(TABMOV('CHAVEACESSONFE','S'),4,1)*9); SETVAR(PS5,SUBSTR(TABMOV('CHAVEACESSONFE','S'),5,1)*8); SETVAR(PS6,SUBSTR(TABMOV('CHAVEACESSONFE','S'),6,1)*7); SETVAR(PS7,SUBSTR(TABMOV('CHAVEACESSONFE','S'),7,1)*6); SETVAR(PS8,SUBSTR(TABMOV('CHAVEACESSONFE','S'),8,1)*5); SETVAR(PS9,SUBSTR(TABMOV('CHAVEACESSONFE','S'),9,1)*4); SETVAR(PS10,SUBSTR(TABMOV('CHAVEACESSONFE','S'),10,1)*3); SETVAR(PS11,SUBSTR(TABMOV('CHAVEACESSONFE','S'),11,1)*2); SETVAR(PS12,SUBSTR(TABMOV('CHAVEACESSONFE','S'),12,1)*9); SETVAR(PS13,SUBSTR(TABMOV('CHAVEACESSONFE','S'),13,1)*8); SETVAR(PS14,SUBSTR(TABMOV('CHAVEACESSONFE','S'),14,1)*7); SETVAR(PS15,SUBSTR(TABMOV('CHAVEACESSONFE','S'),15,1)*6); SETVAR(PS16,SUBSTR(TABMOV('CHAVEACESSONFE','S'),16,1)*5); SETVAR(PS17,SUBSTR(TABMOV('CHAVEACESSONFE','S'),17,1)*4); SETVAR(PS18,SUBSTR(TABMOV('CHAVEACESSONFE','S'),18,1)*3); SETVAR(PS19,SUBSTR(TABMOV('CHAVEACESSONFE','S'),19,1)*2); SETVAR(PS20,SUBSTR(TABMOV('CHAVEACESSONFE','S'),20,1)*9); SETVAR(PS21,SUBSTR(TABMOV('CHAVEACESSONFE','S'),21,1)*8); SETVAR(PS22,SUBSTR(TABMOV('CHAVEACESSONFE','S'),22,1)*7); SETVAR(PS23,SUBSTR(TABMOV('CHAVEACESSONFE','S'),23,1)*6); SETVAR(PS24,SUBSTR(TABMOV('CHAVEACESSONFE','S'),24,1)*5); SETVAR(PS25,SUBSTR(TABMOV('CHAVEACESSONFE','S'),25,1)*4); SETVAR(PS26,SUBSTR(TABMOV('CHAVEACESSONFE','S'),26,1)*3); SETVAR(PS27,SUBSTR(TABMOV('CHAVEACESSONFE','S'),27,1)*2); SETVAR(PS28,SUBSTR(TABMOV('CHAVEACESSONFE','S'),28,1)*9); SETVAR(PS29,SUBSTR(TABMOV('CHAVEACESSONFE','S'),29,1)*8); SETVAR(PS30,SUBSTR(TABMOV('CHAVEACESSONFE','S'),30,1)*7); SETVAR(PS31,SUBSTR(TABMOV('CHAVEACESSONFE','S'),31,1)*6); SETVAR(PS32,SUBSTR(TABMOV('CHAVEACESSONFE','S'),32,1)*5); SETVAR(PS33,SUBSTR(TABMOV('CHAVEACESSONFE','S'),33,1)*4); SETVAR(PS34,SUBSTR(TABMOV('CHAVEACESSONFE','S'),34,1)*3); SETVAR(PS35,SUBSTR(TABMOV('CHAVEACESSONFE','S'),35,1)*2); SETVAR(PS36,SUBSTR(TABMOV('CHAVEACESSONFE','S'),36,1)*9); SETVAR(PS37,SUBSTR(TABMOV('CHAVEACESSONFE','S'),37,1)*8); SETVAR(PS38,SUBSTR(TABMOV('CHAVEACESSONFE','S'),38,1)*7); SETVAR(PS39,SUBSTR(TABMOV('CHAVEACESSONFE','S'),39,1)*6); SETVAR(PS40,SUBSTR(TABMOV('CHAVEACESSONFE','S'),40,1)*5); SETVAR(PS41,SUBSTR(TABMOV('CHAVEACESSONFE','S'),41,1)*4); SETVAR(PS42,SUBSTR(TABMOV('CHAVEACESSONFE','S'),42,1)*3); SETVAR(PS43,SUBSTR(TABMOV('CHAVEACESSONFE','S'),43,1)*2); SETVAR (TT,PS1+PS2+PS3+PS4+PS5+PS6+PS7+PS8+PS9+PS10+PS11+PS12+PS13+PS14+PS15+PS16+PS17+PS18+PS19+PS20+PS21+PS22+PS23+PS24 +PS25+PS26+PS27+PS28+PS29+PS30+PS31+PS32+PS33+PS34+PS35+PS36+PS37+PS38+PS39+PS40+PS41+PS42+PS43); SETVAR(TT1,TT/11); SETVAR(TT2,TRUNCVALOR(TT1,0)); SETVAR(TT3,TT2*11); SETVAR(TT4,TT-TT3); SETVAR(DV,11-TT4); SENAO SETVAR(DV,0) FIMSE SENAO SETVAR(DV,0) FIMSE; SE FRAC(TT/11)=0 OU FRAC(TT/11)=1 ENTAO SETVAR(DV,0) SENAO SETVAR(TT1,TT/11); SETVAR(TT2,TRUNCVALOR(TT1,0)); SETVAR(TT3,TT2*11); SETVAR(TT4,TT-TT3); SETVAR(DV,11-TT4); FIMSE; /*CHECAGEM DA VALIDAÇÃO*/ SE TABMOV('CODTDO','S')='024' OU TABMOV('CODTDO','S')='026' ENTAO SE TABMOV('CHAVEACESSONFE','S')<>"" ENTAO SE SUBSTR(TABMOV('CHAVEACESSONFE','S'),44,1)=DV ENTAO SE FOR('GEC02')=1 E FOR('GEC03')=1 E FOR('GEC05')=1 E FOR('GEC06')=1 ENTAO 1 SENAO 0 FIMSE SENAO 0 FIMSE SENAO 0 FIMSE SENAO 1 FIMSE 1 Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Posts Recomendados
Participe da conversa
Você pode postar agora, e se registrar mais tarde. Se você tiver uma conta, faça o login agora para postar com sua conta.