Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 4 Próxima »

DSYS0041 – Lojas atendidas pelos Contratos SISDIA
Este programa tem como objetivo gerenciar as Lojas atendidas pelos Contratos SISDIA, que ficam armazenadas na tabela "dscontrlj", bem como gerar os arquivos "4gl_dia2.cripto" e "gnx_dia2.cripto", com informações sobre as licenças criptografadas.


A licença criptografada é gerada para todas as lojas que usam "SISDIA" (atributo usasisdia = "S") e que não estão bloqueadas (atributo bloqueado = "N"), ordenadas por número de contrato e número de loja, usando o seguinte algoritmo:

  1. Encontrar a quantidade de usuários do contrato, somando-se a quantidade de usuários de todas as lojas do contrato:

Qtde Usuários Contrato = ∑ (Qtde Usuários Lojas do Contrato)

  1. Utilizando o número do CNPJ da Loja com 14 dígitos (zeros à esquerda), encontrar: Cs = HEXA(∑(cada um dos 14 dígitos do CNPJ * posição que ocupa))


  1. Encontrar:

Ls = HEXA(Qtde Usuários Contrato)

  1. Montar a Licença da Loja na seguinte ordem:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    Cs1

    Ls2

    Ls4

    Cs3

    Ls1

    Cs1

    Ls5

    Ls3

    Pa

  2. Encontrar a paridade (verificar quantos dígitos da Licença são iguais a 0,2,4,6,8,A,C,E), que será o último caracter da Licença.

Pa = Qtde de dígitos pares nos 8 primeiros dígitos da Licença

  1. Passar tudo para minúsculo.


Exemplo:
CNPJ: 01029570000177
QTDE USUÁRIOS: 01049
LICENÇA: 401f01944
Para encontrar a chave criptografada, o seguinte esquema é utilizado:
Byte 1

Posição

7

6

5

4

3

2

1

0

Produto

8

7

6

5

4

3

2

1


Byte 2

Posição

7

6

5

4

3

2

1

0

Produto

16

15

14

13

12

11

10

9



Byte 3

Posição

7

6

5

4

3

2

1

0

Produto

24

23

22

21

20

19

18

17


Byte 4

Posição

7

6

5

4

3

2

1

0

Produto

32

31

30

29

28

27

26

25


Byte 5

Posição

7

6

5

4

3

2

1

0

Produto

40

39

38

37

36

35

34

33


  1. Verificar na tabela "dscontpr" quais são os produtos licenciados para a loja e montar 5 bytes no esquema acima, deixando cada bit com "1" se o produto estiver licenciado, ou "0" se o produto não estiver licenciado.


  1. Pegar o número Hexadecimal correspondente a cada um dos 5 bytes, onde:

Pib = HEXA(byte 1)
Pia = HEXA(byte 2)
Pic = HEXA(byte 3)
Pid = HEXA(byte 4)
Pie = HEXA(byte 5)

  1. Utilizando a data do contrato da Loja, encontrar Ano, Mes e Dia.


  1. Utilizando o número do CNPJ da Loja com 14 dígitos (zeros à esquerda), encontrar:

Cs = HEXA(∑(cada um dos 14 dígitos do CNPJ * posição que ocupa) + Dia - Mes)

  1. Utilizando a data do contrato da Loja e a data padrão (01/01/2000), encontrar:

Ds = HEXA(Data Contrato – Data Padrão + Pib)

  1. Utilizando o número da Loja, encontrar:

Fs = HEXA(Número Loja + Dia + Mes)

  1. Utilizando Pib, Pia, Pic, Pid e Pie, montar:


Ps = Pia[1,2]+Pib[1,2]+Pic[1,2]+Pid[1,2]+Pie[1,2]+Pif[1,2]
(concatenar 2 caracteres de cada)


  1. Usando Ps, Ds, Cs e Fs, montar a Chave da Loja na seguinte ordem:

    01

    02

    03

    04

    05

    06

    07

    08

    09

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    Ps1

    Ds4

    Ps7

    0

    Ps2

    Cs3

    Ps8

    Fs2

    Ds2

    Ps3

    Ps9

    Cs1

    Ps4

    Ds3

    Ps10

    0

    Ps5

    Fs1

    Ps11

    Ds1

    Ps6

    Cs2

    Ps12

  2. Encontrar a paridade (verificar quantos dígitos da Chave são iguais a 0,2,4,6,8,A,C,E), que irá compor o 24ª caracter da Chave.

Pa = Qtde de dígitos pares nos 15 primeiros dígitos da Chave

  1. Passar tudo para minúsculo.



Exemplo:
CNPJ: 01029570000177
CHAVE: 0a000f03d40121000000040a

  • Sem rótulos