...
Através da API de consultas de documentos, as aplicações cliente do TSS poderão obter informações sobre os documentos contidos na base de dados do TSS. A consulta poderá ser realizada para um ou mais documentos. O critério para consulta na base de dados será obtido através dos parâmetros recebidos pela API. A API terá como retorno uma lista de documentos, estruturados com suas respectivas informações de registro na base do TSS e dados sobre o seu atual status de processamento.
A API funciona com paginação de dados, ou seja, possui um limite de dados no retorno. O limite do retorno pode ser especificado na entrada ou pode-se utilizar o limite máximo que está especificado na função.
O consumo da API deverá ser realizado através de mensagem mensagens JSON definidas codificado em base64 definidas na função GetListDoc()RestListDoc.
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:
Função: APILISTDOC()
Função WebService: RestListDoc
WebService responsável pela definição da Interface da API de lista documento enviados por filial.
O WebService deverá receber mensagens na estrutura JSON codificado em base64, onde serão decodificadas e passadas como parâmetro para a função ApiListDoc().
O retorno do WebService será uma mensagem JSON.
A situação do documento está codificada em base 64.
Os parâmetros CGC, Inscrição Estadual e UF são obrigatórios, os demais não são e, portanto, podem ou não vir preenchidos.
Função: APILISTDOC()
Função responsável pela definição da Interface da API de consulta de documentos.
A função GetDocList definirá a estrutura da API. A função deverá ser definida em um fonte. consulta de documentos.
A função GetDocList definirá a estrutura da API. A função deverá ser definida em um fonte.prw definido com o mesmo nome da função.
A função GetDocList deverá ser implementada apenas como função de interface para a API. Deverá ser totalmente desacoplada de qualquer definição de instrução de processamento, devendo apenas realizar as devidas validações das mensagens. Todo o processamento deverá estar definido em funções auxiliares.
A estrutura dos documentos será definida de acordo com as tabelas de negócio: Sendo:
SPED050 – NF-e/NFC-e/CT-e/MDF-e SPED051 – NFS-eSPED201 – GNRESPED202 – DMST-eSPED400 – e-Social
A função APILISTDOC() deverá receber mensagens na estrutura JSON, onde serão convertidas em objeto pela função fwJsonDeserialize().
A função APILISTDOC() funciona com paginação de dados, sendo que existe um limite máximo de dados no retorno, esse limite está especificado no código fonte da função.
Para a paginação, pode ser enviado a quantidade de registros que deseja obter no retorno, porém, deve ser menor que o limite máximo.
Caso não seja possível enviar todos os dados na solicitação em uma página, a rotina retornará o número RECNO do próximo registro, e para a próxima solicitação, deve-se informar este mesmo número RECNO. Assim a função APILISTDOC() iniciará a busca a partir do RECNO informado na entrada dos dados.
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 com objetos, onde cada objeto será um documento diferente. Essa matriz será passada como parâmetro na chamada da função getJSONResp() junto com o código de status e a mensagem de erro (caso exista). O retorno da função getJSONResp() é a mensagem já na estrutura JSON.
A situação do documento está codificada em base 64estrutura JSON.
A rotina APILISTDOC() será finalizada e como retorno será passado a mensagem na estrutura JSON.
Os dados contidos no objeto recebido como parâmetro, serão validados afim de identificar quais foram preenchidos, os campos CNPJ, Inscrição Estadual e UF são obrigatórios, os demais não são e, portanto, podem ou não vir preenchidos.
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Função: VALENTRADA ()
A função ValEntrada() 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.
...
Após obter o retorno da rotina ListDocTab(), a função ValEntrada() será encerrada, retornando a matriz com objetos.
oObjeto – Mensagem JSon deserializada e transformada em Objeto.
...
aMatriz – Matriz de retorno no formato:
aMatriz
Função: ListDocTab()
A rotina ListDocTab() deverá executar filtros nas tabelas do TSS de acordo os dados de entrada, deverá ter como retorno, uma matriz contendo as informações dos documentos.
Antes de executar o filtro, a rotina identificará qual o modelo de documento, pois, para cada modelo será usado uma query diferente, como exemplo: Modelo 55 – tabela SPED050; Modelo 56 –tabela SPED051.
Para modelo '56', após obter os registros, será chamada a rotina NFSERecomen() que tem como retorno uma string com situação do documento.
Para os modelos: 55,57,58 e 65 após obter os registros, será chamada a rotina NfeRec () que tem como retorno uma string com situação do documento.
Após executar a query, a rotina gravará todos os dados encontrados em uma matriz. Essa matriz será o retorno da função.
cEnt – Código da Entidade
...
aMatriz - Matriz multidimensional contendo objetos, na seguinte estrutura:
aMatriz
Função: NFSERECOMEN()
A rotina NFSERecomen() deverá obter a situação do documento com base nos parâmetros de entrada.
A rotina receberá um Alias com dados das tabelas: SPED051/SPED053/SPED055. Com esses dados validados, a rotina retornará a mensagem correspondente à situação do documento.
...
cMensagem – String contendo a situação do documento.
Função: NFERec()
A rotina NFERec() deverá obter a situação do documento com base nos parâmetros de entrada.
A rotina receberá um Alias com dados das tabelas: SPED050/SPED052/SPED054, deve também estar posicionado no registro na tabela SPED054. Com esses dados validados, a rotina retornará a mensagem correspondente à situação do documento.
...
...