Beleza wagner , O que ocorreu foi que essa rotina
eu traduzi do Delphi para o Centura e não testei a mesma em centura. Como vocês
sabem , existem diferenças no manuseio de strings entre as duas linguagens ( o
delphi conta strings a partir do índice 01 e o centura apartir do zero
).
Assim , muito obrigado pela correção.
Um forte abraço
Manoel
Valença
Analista de Sistemas
DETRAN-PE
----- Original Message -----
Sent: Tuesday, January 28, 2003 12:25
PM
Subject: [sqlwin]
Re:_[sqlwin]_VALIDAÇÃO_PIS/PASE_E_NIT
Manoel , Estive fazendo testes com a sua função e
descobri que na linha:
Set nSoma = nSoma + ( nm11 *
SalStrToNumber(SalStrMidX(sDado,10-i,1) ) )
em vez de usar "10-i" deve-se usar "9-i"
pois o digito não é utilizado na soma.
fiz esta alteração e a função funcionou
.
Wagner
Miu Assessoria de projetos.
----- Original Message -----
Sent: Tuesday, January 28, 2003 11:53
AM
Subject: Re: [sqlwin]
Re:_[sqlwin]_Re:_[sqlwin]_VALIDAÇÃO_PIS/PASE_E_NIT
Manoel, desculpe mais continua me retonando FALSE.
voce poderia dar mais uma conferida e se possivel me passar um numero de
PIS para checar se o numero que estou usando esta correto
OBS.; PIS 10826631077
Grato
Ricardo
Manoel_Valença <[EMAIL PROTECTED]> wrote:
Ricardo, faça a seguinte correção :
If nM11 < 8 Troque por If nM11
< 9.
Me desculpe, foi um erro de digitação na
primeira que te mandei.
Um abraço e espero que dê certo.
Qualquer coisa , Me contate ela
lista
Manoel
Valença
Analista de Sistemas
DETRAN-PE
----- Original Message -----
Sent: Tuesday, January 28, 2003
8:45 AM
Subject: Re: [sqlwin]
Re:_[sqlwin]_VALIDAÇÃO_PIS/PASE_E_NIT
Manoel, bom dia
Estou testando a rotina de validar o pis que voce mandou para o
Alexandre só que o que eu fiz só esta me retornando false
Estou colando a minha rotina será que voce poderia dar uma olhada o
que estou fazendo de errado?
Grato pela atenção
Ricardo G. Reis
Function: fPisPase
Description:
Returns
Boolean:
Parameters
String: psDados
Static Variables
Local variables
Number: i
Number: nSoma
Number: nM11
Number: nDv
Number: nDigito
Boolean: bRetorno
Actions
If SalStrTrimX( psDados ) != ''
Set nDv = SalStrToNumber( SalStrMidX( psDados, 10, 1 ) )
Set nSoma = 0
Set nM11 = 2
Set i = 0
While i <= 9
Set nSoma = nSoma + (nM11 * SalStrToNumber( SalStrMidX( psDados,
10-i, 1 ) ) )
If nM11 < 8
Set nM11 = nM11 + 1
Else
Set nM11 = 2
Set i = i + 1
Set nDigito = 11 - (SalNumberMod( nSoma, 11 ) )
If nDigito > 9
Set nDigito = 0
If nDv = nDigito
Set bRetorno = TRUE
Else
Set bRetorno = FALSE
Else
Set bRetorno = FALSE
Return bRetorno
Manoel_Valença <[EMAIL PROTECTED]> wrote:
Caro
Alexandre , aí vai a rotina para cálculo Validação do PIS. Caso
tenha alguma dúvida, me contate pela lista.
Um
abraço
Manoel
Valença
Analista de Sistemas
DETRAN-PE
Function : vpis
Description
Returns
Boolean:
Parameters:
String: sDado
Static
Variables
Local
Variables
Number:
i
Number: nSoma
Number: nm11
Number:ndv
Number: nDigito
Boolean: bRetorno
Actions
If
SalStrTrimX( sDado ) != ''
Set ndv = SalStrToNumber( SalStrMidX( sDado,10,1)
)
Set nSoma = 0
Set nm11 = 2
Set i = 0
While i <= 9
Set nSoma = nSoma + ( nm11 *
SalStrToNumber(SalStrMidX(sDado,10-i,1) ) )
If nm11 < 8
Set nm11 =
nm11 + 1
Else
Set nm11 =
2
Set i = i + 1
Set nDigito = 11 - ( SalNumberMod( nSoma , 11 )
)
If nDigito > 9
Set nDigito = 0
If ndv = nDigito
Set bReturno = TRUE
Else
Set bReturno =
FALSE
Else
bReturn
= FALSE
Return bReturno
----- Original Message -----
Sent: Monday, January 27, 2003
3:08 PM
Subject: [sqlwin] VALIDAÇÃO
PIS/PASE E NIT
E-mail Premium BOL Antivírus, anti-spam e até 100 MB de espaço.
Assine já! http://email.bol.com.br
Amigos,
Gostaria de saber se alguém sabe a
fórmula para validar os números de PIS/PASEP e NIT.
Agradeço desde já a
colaboração.
Obrigado,
Alexandre Augusto Teixeira Miu
Assessoria de Projetos Tel.: (11)
3284-1472
Busca Yahoo! O
serviço de busca mais completo da Internet. O que você pensar o Yahoo!
encontra.
Busca Yahoo! O serviço
de busca mais completo da Internet. O que você pensar o Yahoo!
encontra.
|