Páginas filhas
  • ER_PCREQ-8286 Lista_Documentos_Enviados_por_Filial

Versões comparadas

Chave

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

ER_PCREQ-8288 Lista documentos enviados por filial

 

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-82878285

Requisito1

PCREQ-82888286

Subtarefa1

 

Release de Entrega planejada

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 para realização de consultas dos documentos na base de dados do TSS.

(Obrigatório)

 

Definição da Regra de Negócio

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 JSON definidas na função GetListDoc().
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


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.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 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 64.
A rotina APILISTDOC() será finalizada e como retorno será passado a mensagem na estrutura JSON.
Parâmetros:
cJsonRequest =
{
"empresa":
{"cnpj": "99999999999999","ie": "99999999","uf": "AA"},
"tipdoc":"nfe",
"parametros":{"dtini": "19900101","dtfim":"20150826"," status":"2","doc":"000001","serie":"111"},
"Quebra":100,
"RECNO":0

}


Retorno Negativo:

{

"status": 400,

"result":

{

"documento":[],

"Paginacao":{"Recno":0}

} ,

"error": " Estrutura do objeto inválida "

}

Retorno Positivo:

{
"status": 200,
"result":
{
"documento":
[
{"DOCID":"753000187","DOCUMENTO":"187","DTENVIO":"20150813","DTPROC":"","HRENVIO":"16:13:30","HRPROC":"","LOGID":"","SERIE":"753","SITUACAO":"MDAyIC0gTuNvIGZvaSBwb3Nz7XZlbCBhc3NpbmFyIGEgTmZlICAtIGVudHJlIGVtIGNvbnRhdG8gY29tIG8gcmVzcG9uc+F2ZWwuIDAyOSAtIEZhbGhhIG5vIFNjaGVtYSBkbyBYTUwu","STATUS","STATUS":"Não
],
"Paginacao":{"Recno":0}
} ,
"error": null
}
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.

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.

Para obter o ID_ENT do CNPJ informado, será chamada a função GetEntTSS(), será passado como parâmetro o CNPJ, Inscrição Estadual e UF do cliente, informações que estão dentro do objeto recebido como parâmetro, assim a função GetEntTSS() terá como retorno o número da entidade do cliente (ID_ENT).

A função validará o tipo de documento, afim de identificar se é válida, esta informação estará contida dentro do objeto recebido como parâmetro.

Com as informações obtidas como, tipo de documento e número da entidade, será chamada a função ListDocTab(), para essa função serão passados como parâmetros: o número da entidade do cliente, o tipo de documento, número do documento, série do documento, data inicial (DATE_NFE), data final (DATE_NFE) e situação do documento. O retorno desta função será uma matriz com objetos.

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

 

Parâmetros: 

oObjeto – Mensagem JSon deserializada e transformada em Objeto.

@cError – Mensagem de erro.

@cHttpStatus – Código de status, baseados no formato padrão de mensagens HTTP, conforme o link: https://pt.wikipedia.org/wiki/Lista_de_c%C3%B3digos_de_status_HTTP.

 

Retorno:

aMatriz – Matriz de retorno no formato:

aMatriz

{

{"DOC":"754000595","DTFIM":"","DTINI":"20150805","HFIM":"","HINI":"17:05:28","SERIE":"754","SITUA":"002 - Não foi possível assinar a Nfe - entre em contato com o responsável. 028 - Certificado digital Ausente.","STATUS":"Não Transmitido","TIPO":"NFE"},
{"DOC":"754000596","DTFIM":"2015-08-05","DTINI":"2015-08-05","HFIM":"17:12:55","HINI":"17:11:54","SERIE":"754","SITUA":"014 - NFe não autorizada - Corrija o problema e retransmita as notas fiscais eletrônicas. 525\/Rejeição: CFOP de Importação e não informado dados da DI","STATUS":"OK","TIPO":"NFE"},
{"DOC":"754000597","DTFIM":"2015-08-05","DTINI":"2015-08-05","HFIM":"18:03:32","HINI":"18:02:32","SERIE":"754","SITUA":"014 - NFe não autorizada - Corrija o problema e retransmita as notas fiscais eletrônicas. 525\/Rejeição: CFOP de Importação e não informado dados da DI","STATUS":"OK","TIPO":"NFE"},
{"DOC":"AAA123","DTFIM":" - - ","DTINI":"2015-06-19","HFIM":"","HINI":"13:29:44","SERIE":"AAA","SITUA":"002 - Não foi possível assinar a Nfe - entre em contato com o responsável. 028 - Certificado digital Ausente.","STATUS":"Não Transmitido","TIPO":"NFE"}
}
 
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

Âncora
_GoBack
_GoBack
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.

Parâmetros: 

cEnt – Código da Entidade

cTipo – Tipo de documento

cDoc – Número do documento

cSerie – Série do Documento

cStatus – Status do Documento

dDtini – Data inicial de inclusão do documento do TSS

dDtfim – Data final de inclusão do documento no TSS

cError – Mensagem de erro

cHttpStatus – Status HTTP, https://pt.wikipedia.org/wiki/Lista_de_c%C3%B3digos_de_status_HTTP

Retorno:

aMatriz - Matriz multidimensional contendo objetos, na seguinte estrutura:

aMatriz

{

{"DOC":"754000595","DTFIM":"","DTINI":"20150805","HFIM":"","HINI":"17:05:28","SERIE":"754","SITUA":"002 - Não foi possível assinar a Nfe - entre em contato com o responsável. 028 - Certificado digital Ausente.","STATUS":"Não Transmitido","TIPO":"NFE"},
{"DOC":"754000596","DTFIM":"2015-08-05","DTINI":"2015-08-05","HFIM":"17:12:55","HINI":"17:11:54","SERIE":"754","SITUA":"014 - NFe não autorizada - Corrija o problema e retransmita as notas fiscais eletrônicas. 525\/Rejeição: CFOP de Importação e não informado dados da DI","STATUS":"OK","TIPO":"NFE"},
{"DOC":"754000597","DTFIM":"2015-08-05","DTINI":"2015-08-05","HFIM":"18:03:32","HINI":"18:02:32","SERIE":"754","SITUA":"014 - NFe não autorizada - Corrija o problema e retransmita as notas fiscais eletrônicas. 525\/Rejeição: CFOP de Importação e não informado dados da DI","STATUS":"OK","TIPO":"NFE"},
{"DOC":"AAA123","DTFIM":" - - ","DTINI":"2015-06-19","HFIM":"","HINI":"13:29:44","SERIE":"AAA","SITUA":"002 - Não foi possível assinar a Nfe - entre em contato com o responsável. 028 - Certificado digital Ausente.","STATUS":"Não Transmitido","TIPO":"NFE"}

}

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.

Parâmetros: 

aAlias – Deverá conter os campos das tabelas SPED051,SPED053 e SPED055

Retorno:

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.

Parâmetros: 

aAlias – Deverá conter os campos das tabelas SPED050,SPED052 e SPED054

Retorno:

cMensagem – String contendo a situação do documento.


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: 

cHttpStatus – Código do Status.

aArray– Array multidimensional.

cError – Mensagem de erro.

Retorno:

cJSONResponse – String na estrutura JSON.

Opcional

Protótipo de Tela

 
<Caso necessário inclua protótipos de telas com o objetivo de facilitar o entendimento do requisito, apresentar conceitos e funcionalidades do software>.
 
Protótipo 01
 
 

Opcional

Fluxo do Processo

 
<Nesta etapa incluir representações gráficas que descrevam o problema a ser resolvido e o sistema a ser desenvolvido. Exemplo: Diagrama - Caso de Uso, Diagrama de Atividades, Diagrama de Classes, Diagrama de Entidade e Relacionamento e Diagrama de Sequência>. 

Opcional

 

Dicionário de Dados

 
Arquivo ou Código do Script: AAA – Negociação Financeira / Versao=CP.2014.12_03/
  

Índice

Chave

01

<FI9_FILIAL+FI9_IDDARF+FI9_STATUS>

02

<FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_EMISS+FI9_IDDARF>

03

<FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_PREFIX+FI9_NUM+FI9_PARCEL+FI9_TIPO>

Campo

<AAA_PERESP>

Tipo

<N>

Tamanho

<6>

Valor Inicial

<Varia de acordo com o tipo informado. Por exemplo, quando o campo "tipo" for date, neste campo pode ser informado uma data>. 

Mandatório

Sim (  ) Não (  )

Descrição

<Referência Mínima para Cálculo>

Título

<Ref.Calc.>

Picture

<@E999.99>

Help de Campo

<Informar o % que o aluno pagará em dinheiro. Esse % poderá ser alterado durante a negociação>
 

(Opcional)

Grupo de Perguntas

 
<Informações utilizadas na linha Protheus>.
 
Nome: FINSRF2

X1_ORDEM

01

X1_PERGUNT

Emissão De

X1_TIPO

D

X1_TAMANHO

8

X1_GSC

G

X1_VAR01

MV_PAR01

X1_DEF01

Comum

X1_CNT01

'01/01/08'

X1_HELP

Data inicial do intervalo de emissões das guias de DARF a serem consideradas na seleção dos dados para o relatório 
 

(Opcional)

Consulta Padrão

<Informações utilizadas na linha Protheus>
 
Consulta: AMB

Descrição

Configurações de Planejamento

Tipo

Consulta Padrão

Tabela

"AMB"

Índice

"Código"

Campo

"Código"; "Descrição"

Retorno

AMB->AMB_CODIGO
 

(Opcional)

Estrutura de Menu

 
<Informações utilizadas na linha Datasul>.
 
Procedimentos
 

...

Código Papel

(máx 3 posições)

Descrição em Português*

 

Descrição em Inglês*

 

 

[1] Nome Verbalizado é obrigatório para desenvolvimentos no Datasul 10 em diante.
[2] Tipo é obrigatório para desenvolvimento no Datasul 10 em diante
[3] Categorias são obrigatórias para os programas FLEX.
[4] Obrigatório quando o projeto for FLEX
[5] Obrigatório quando o projeto for FLEX
[6] Obrigatório quando o projeto for FLEX

...