Páginas filhas
  • ER_PCREQ-8286 - Ativa / Inativa Cliente

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

a/Inativa Cliente

 Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.                                                             

  

(Obrigatório)

Informações Gerais

 

Especificação

Produto

TSS

Módulo

TSS

Segmento Executor

SERVIÇOS

Projeto1

M_SER_TSS002

IRM1

PCREQ-8285

Requisito1

PCREQ-8286

Subtarefa1

 

Chamado2

12.1.13

País

( X ) Brasil  (  ) Argentina  (  ) Mexico  (  ) Chile  (  ) Paraguai  (  ) Equador

(  ) USA  (  ) Colombia   (  ) Outro _____________.

Outros

<Caso necessário informe outras referências que sejam pertinentes a esta especificação. Exemplo: links de outros documentos ou subtarefas relacionadas>.

   Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos). 

(Obrigatório)

Objetivo

 

Disponibilizar uma API que possa ativar ou inativar cliente no TSS quando utilizado o Cloud.

(Obrigatório)

Definição da Regra de Negócio

 

Através da API de ativa ou inativa cliente, as aplicações cliente do TSS poderão liberar ou bloquear o cliente de transmitir documentos eletrônicos ao cloud. A atualização será realizada com base nos dados: CNPJ, CPF, Inscrição Estadual, UF, ativar ou inativar. O critério para a atualização na base de dados será obtido através dos parâmetros recebidos pela API. A API terá como retorno um array contendo objetos, cada objeto representa uma entidade.

O consumo da API deverá ser realizado através de mensagens JSON codificada em base64 definidas no WebService RestAtBlqEnt().

O processo de Serialização e Deserialização de mensagens deverá ser realizado através das funções FwJsonSerialize() e FwJsonDeserialize() respectivamente.

Os códigos de status serão baseados no formato padrão de mensagens HTTP, conforme o link:

https://pt.wikipedia.org/wiki/Lista_de_c%C3%B3digos_de_status_HTTP

 

WebService: RestAtBlqEnt()

WebService responsável pela definição da Interface da API de ativa ou inativa cliente.

O WebService deverá receber mensagens na estrutura JSON codificado em base64, onde serão decodificadas e passadas como parâmetro para a função AtBlqEnt().

Pode ser enviado mais de um cliente por requisição.

A chave para ativar ou inativar o cliente é:

Onde "Parametro" é do tipo numérico.

1 significa que o cliente será inativado.

2 significa que o cliente será ativado.

Portanto na linha de requisição abaixo, todas as entidades que contenham a chave CNPJ + CPF + IE + UF serão inativadas.

{"tipopessoa":2,"cgc":"53113791000122","IE":"111010945111","UF":"SP","Parametro":1},

No momento do retorno, será apresentado todas as entidades pertencentes a chave CNPJ + CPF + IE + UF, exemplo:

            {"CNPJ": "53113791000122","CPF": "","IE": "111010945111","UF": "SP","IDEMPRESA": "00000000000000000001","Entidade": "000002","OK": true,"mensagem": "Cliente bloqueado","error": "null"},

            {"CNPJ": "53113791000122","CPF": "","IE": "111010945111","UF": "SP","IDEMPRESA": "00000000000000000002","Entidade": "000121","OK": true,"mensagem": "Cliente bloqueado","error": "null"},

            { "CNPJ": "53113791000122","CPF": "","IE": "111010945111","UF": "SP","IDEMPRESA": "00000000000000000003","Entidade": "000122","OK": true,"mensagem": "Cliente bloqueado","error": "null"},

Quando a solicitação for bem-sucedida, o atributo "OK" virá com o conteúdo lógico True, mas caso não seja possível ativar ou inativar, o atributo virá com o conteúdo False.

O retorno do WebService será uma mensagem JSON contendo um array com objetos, cada objeto representa uma entidade.

 

Parâmetros: 

Mensagem JSON codificado em base 64.

 

JSON =

 

ew0KCSJFbXByZXNhcyI6DQoJCVsNCgkJCXsidGlwb3Blc3NvYSI6MiwiY2djIjoiNTMxMTM3OTEwMDAxMjIiLCJJRSI6IjExMTAxMDk0NTExMSIsIlVGIjoiU

1AiLCJQYXJhbWV0cm8iOjF9LA0KCQkJeyJ0aXBvcGVzc29hIjoyLCJjZ2MiOiIwMTE1OTQzNTAwMDE0NiIsIklFIjoiSVNFTlRPIiwiVUYiOiJQRSIsIlBhcmFtZ

XRybyI6Mn0sDQoJCQl7InRpcG9wZXNzb2EiOjIsImNnYyI6IjUzMTEzNzkxMDAwMTg1IiwiSUUiOiIwMDE0OTUxNzgwMDU0IiwiVUYiOiJNRyIsIlBhcmFtZX

RybyI6MX0NCgkJXQ0KfQ==

 

Mensagem JSON decodificada:

 

{

            "Empresas":

                        [

                                    {"tipopessoa":2,"cgc":"53113791000122","IE":"111010945111","UF":"SP","Parametro":1},

                                   {"tipopessoa":2,"cgc":"01159435000146","IE":"ISENTO","UF":"PE","Parametro":2},

                                    {"tipopessoa":2,"cgc":"53113791000185","IE":"0014951780054","UF":"MG","Parametro":1}

                        ]

}

Retorno Negativo:

{

   "result": [],

   "error": " Dados de entrada não podem ser processados: 'Empresas[3]:cgc'. "

}

Retorno Positivo:

{

   "result":    [

            {

         "CNPJ": "53113791000122",

         "CPF": "",

         "IE": "111010945111",

         "UF": "SP",

         "IDEMPRESA": "00000000000000000001",

         "Entidade": "000002",

         "OK": true,

         "mensagem": "Cliente bloqueado",

         "error": "null"

      },

            {

         "CNPJ": "53113791000122",

         "CPF": "",

         "IE": "111010945111",

         "UF": "SP",

         "IDEMPRESA": "00000000000000000002",

         "Entidade": "000121",

         "OK": true,

         "mensagem": "Cliente bloqueado",

         "error": "null"

      },

            {

         "CNPJ": "53113791000122",

         "CPF": "",

         "IE": "111010945111",

         "UF": "SP",

         "IDEMPRESA": "00000000000000000003",

         "Entidade": "000122",

         "OK": true,

         "mensagem": "Cliente bloqueado",

         "error": "null"

      },

            {

         "CNPJ": "01159435000146",

         "CPF": "",

         "IE": "ISENTO",

         "UF": "PE",

         "IDEMPRESA": "",

         "Entidade": "000003",

         "OK": true,

         "mensagem": "Cliente liberado",

         "error": "null"

      },

            {

         "CNPJ": "53113790001285",

         "CPF": "",

         "IE": "0014951780054",

         "UF": "MG",

         "IDEMPRESA": "",

         "Entidade": "",

         "OK": false,

         "mensagem": null,

         "error": "Entidade nao encontrada."

      }

   ],

   "error": null

}

Função: AtBlqEnt()

A função deverá receber mensagens na estrutura JSON, onde serão convertidas em objeto pela função fwJsonDeserialize().

Caso não haja erro na deserialização de JSON para objeto, será chamada a rotina ValEntrada(), passando como parâmetro o objeto.

A função ValEntrada() retornará uma matriz , onde cada linha do array será uma entidade diferente. Essa matriz será passada como parâmetro na chamada da função getJSONResp() junto com a mensagem de erro (caso exista). O retorno da função getJSONResp() é a mensagem  já na estrutura JSON.

A rotina ArBlqEnt() será finalizada e como retorno será passado a mensagem na estrutura JSON.

Parâmetros:

cJsonRequest =

 

{

            "Empresas":

                        [

                                    {"tipopessoa":2,"cgc":"53113791000122","IE":"111010945111","UF":"SP","Parametro":1},

                                   {"tipopessoa":2,"cgc":"01159435000146","IE":"ISENTO","UF":"PE","Parametro":2},

                                    {"tipopessoa":2,"cgc":"53113791000185","IE":"0014951780054","UF":"MG","Parametro":1}

                        ]

}

Retorno Negativo:

{

   "result": [],

   "error": " Dados de entrada não podem ser processados: 'Empresas[3]:cgc'. "

}

Retorno Positivo:

{

   "result":    [

            {

         "CNPJ": "53113791000122",

         "CPF": "",

         "IE": "111010945111",

         "UF": "SP",

         "IDEMPRESA": "00000000000000000001",

         "Entidade": "000002",

         "OK": true,

         "mensagem": "Cliente bloqueado",

         "error": "null"

      },

            {

         "CNPJ": "53113791000122",

         "CPF": "",

         "IE": "111010945111",

         "UF": "SP",

         "IDEMPRESA": "00000000000000000002",

         "Entidade": "000121",

         "OK": true,

         "mensagem": "Cliente bloqueado",

         "error": "null"

      },

            {

         "CNPJ": "53113791000122",

         "CPF": "",

         "IE": "111010945111",

         "UF": "SP",

         "IDEMPRESA": "00000000000000000003",

         "Entidade": "000122",

         "OK": true,

         "mensagem": "Cliente bloqueado",

         "error": "null"

      },

            {

         "CNPJ": "01159435000146",

         "CPF": "",

         "IE": "ISENTO",

         "UF": "PE",

         "IDEMPRESA": "",

         "Entidade": "000003",

         "OK": true,

         "mensagem": "Cliente liberado",

         "error": "null"

      },

            {

         "CNPJ": "53113790001285",

         "CPF": "",

         "IE": "0014951780054",

         "UF": "MG",

         "IDEMPRESA": "",

         "Entidade": "",

         "OK": false,

         "mensagem": null,

         "error": "Entidade nao encontrada."

      }

   ],

   "error": null

}

Função:  ValEntrada()

A função receberá como parâmetro o objeto da requisição, validará todos os campos quanto a obrigatoriedade, tamanho e tipo de dados. Se algum dado estiver inconsistente, deverá retorna a mensagem de validação correspondente informando.

Os dados contidos no objeto recebido como parâmetro, serão validados afim de identificar quais foram preenchidos, os campos: TipoPessoa, CGC, IE, UF, Parametro são obrigatórios.

Com as informações validadas, será chamada a função AtBlq(), para essa função serão passados como parâmetros: o CNPJ,CPF, IE, Uf e Parametro para a consulta no banco e atualização. O retorno desta função será uma matriz.

Após obter o retorno da rotina AtBlq, a função ValEntrada() será encerrada, retornando a matriz.

Parâmetros: 

oObjeto – Mensagem JSon deserializada e transformada em Objeto.

@cError – Mensagem de erro.

 

Retorno:

 aMatriz – matriz contendo os dados das entidades encontradas.

 

Função: AtBlq()

A rotina deverá executar o filtro na tabela SPED001 e retornando todas as entidades encontradas.

A rotina tentara atualizar o campo BLQCLI, o retorno sendo positivo ou não, será gerado um array temporário onde serão armazenados os dados daquele CNPJ ou CPF e as informações de sucesso ou não na atualização do campo.   

Parâmetros: 

cCNPJ – CNPJ do cliente.

cCPF  - CPF do cliente.

cIE – Inscrição estadual do cliente .

cUF – Unidade da Federação do cliente.

cParametro – parâmetro de controle, se 1 bloqueia cliente se 2 desbloqueia cliente.

Retorno:

aMatriz  -  Matriz multidimensional contendo objetos.

 

 

Função: GetJSONResp()

A rotina consiste em obter os dados de entrada e gerar a mensagem em estrutura JSON.

A rotina retornará uma string na estrutura JSON

 

Parâmetros: 

aArray– Array multidimensional.

cError – Mensagem de erro.

Retorno:

cJSONResponse – String na estrutura JSON.