Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|
Especificação | |||
Produto | TSS | Módulo | TSS |
Segmento Executor | SERVIÇOS | ||
Projeto1 | M_SER_TSS002 | IRM1 | PCREQ-8285 |
Requisito1 | PCREQ-8286 | Subtarefa1 | PDR_SER_TSS002-336 |
Chamado2 |
| ||
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).
Disponibilizar uma API para Bilhetagem do TSS.
Através da API de bilhetagem do TSS, as aplicações cliente do TSS poderão obter informações sobre a quantidade de documentos que foram para a fila do TSS online. A consulta será realizada por CNPJ ou CPF, inscrição estadual, estado e tipo de pessoa, como os parâmetros mês e ano. O critério para consulta na base de dados será obtido através dos parâmetros recebidos pela API. A API terá como retorno duas listas, uma informando as quantidades do ambiente de produção e outra das quantidades do ambiente de homologação, as quantidades são separadas por tipo de documento e estarão estruturados em um objeto. os somatórios das quantidades dos documentos encontrados de todos os CNPJs passado na requisição, separado por ambiente de produção e homologação SEFAZ.
O consumo da API deverá ser realizado através de mensagens JSON em base 64 definidas no WebService RestBillingserviço REST TSSRESTBILLING().
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
Caso existe paginação após a primeira requisição, a API retornará no atributo “PAG” com um conteúdo diferente de “” (branco ou vazio, porém nunca nulo), o conteúdo deste atributo deverá ser retornado no próximo consumo da API, para assim dar continuidade no retorno dos dados.
As informações obrigatórias para o consumo da API são
mês e ano, as demais são opcionais.
CNPJ ou CPF, inscrição estadual, estado e tipo de pessoa, como os parâmetros mês e ano
WebService: RestBilling TSSRESTBILLING()
WebService Serviço REST responsável pela definição da Interface da API de Bilhetagem TSS.
O WebService serviço deverá receber mensagens na estrutura JSON codificado em base64, onde serão decodificadas e passadas como parâmetro para a função GetBillingTSSBilling().
O retorno do WebService será uma mensagem JSON contendo duas listas estruturadas em um Objeto.
Parâmetros:
JSON =
ew0KCSJFTVBSRVNBIjogew0KCQkiQ0dDIjogIjEyMzQ1Njc4OSIsDQoJCSJ0aXBvcGVzc29hIjogMg0KCX0sDQoJIlBhcmFtZXRyb3MiOiB7DQoJCSJhbm8iOiAiMjAxNiIsDQoJCSJtZXMiOiAiMDkiDQ
oJfSwNCgkiUkVDTk8iOiAwDQp9
ew0KICAgICAgICAgICAgIkVNUFJFU0EiOiBbew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ0dDIjogIjA3NTQ5NzA3MDAwMTA5IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIklOU0MiOiAiMTIxIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVGIjogIlNQIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRJUE9QRVNTT0EiOiAiMiINCiAgICAgICAgICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDR0MiOiAiMDc1NDk3MDcwMDAxMDkiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSU5TQyI6ICIxMjEiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVUYiOiAiU1AiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVElQT1BFU1NPQSI6ICIyIg0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgXSwNCiAgICAgICAgICAgICJQQVJBTUVUUk9TIjogew0KICAgICAgICAgICAgICAgICAgICAgICAgIkFOTyI6ICIyMDE3IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICJNRVMiOiAiMDUiDQogICAgICAgICAgICB9DQp9DQogDQo=
Mensagem JSON sem codificação 64:
{
"EMPRESA": {
"CGC": "123456789",
"tipopessoa": 2
},
"Parametros": {
"ano": "2016",
"mes": "09"
},
"PAG": ""
}
Retorno Negativo:
{
"RESULT": {
"PAG": "04022046000162",
"BILHETAGEM" "EMPRESA": [{
"CGC": "0035873000016907549707000109",
"PRODUCAOINSC": {
"DADOSBILHETAGEM": [{
"TIPODOC": "NFE",
"DOCUMENTOS": 46,
"TENTATIVAS": 133
}, {
"TIPODOC": "CTE",
"DOCUMENTOS": 9,
"TENTATIVAS": 15
}, {
"TIPODOC": "MDFE",
"DOCUMENTOS": 4,
"TENTATIVAS": 10
}, {
"TIPODOC": "NFSE",
"DOCUMENTOS": 15,
"TENTATIVAS": 51
}, {
"TIPODOC": "GNRE",
"DOCUMENTOS": 10,
"TENTATIVAS": 25
}, {
"TIPODOC": "ESOCIAL",
"DOCUMENTOS": 6,
"TENTATIVAS": 21
}, {
"TIPODOC": "MDE",
"DOCUMENTOS": 3,
"TENTATIVAS": 6
}, {
"TIPODOC": "NFCE",
"DOCUMENTOS": 5,
"TENTATIVAS": 11
}],
"TOTALDOCUMENTOS": 98,
"TOTALTENTATIVAS": 272
},
"HOMOLOGACAO": {
"DADOSBILHETAGEM": [{
"TIPODOC": "NFE",
"DOCUMENTOS": 68,
"TENTATIVAS": 173
}, {
"TIPODOC": "CTE",
"DOCUMENTOS": 26,
"TENTATIVAS": 59
}, {
"TIPODOC": "MDFE",
"DOCUMENTOS": 22,
"TENTATIVAS": 58
}, {
"TIPODOC": "NFSE",
"DOCUMENTOS": 36,
"TENTATIVAS": 90
}, {
"TIPODOC": "GNRE",
"DOCUMENTOS": 8,
"TENTATIVAS": 23
}, {
"TIPODOC": "ESOCIAL",
"DOCUMENTOS": 7,
"TENTATIVAS": 19
}, {
"TIPODOC": "MDE",
"DOCUMENTOS": 8,
"TENTATIVAS": 23
}, {
"TIPODOC": "NFCE",
"DOCUMENTOS": 8,
"TENTATIVAS": 17
}],
"TOTALDOCUMENTOS": 183,
"TOTALTENTATIVAS": 462
}
}, {
"121",
"UF": "SP",
"TIPOPESSOA": "2"
},
{
"CGC": "0389044500018207549707000109",
"PRODUCAOINSC": {
"DADOSBILHETAGEM": [{
"TIPODOC": "NFE",
"DOCUMENTOS": 32,
"TENTATIVAS": 95
}, {
"TIPODOC": "CTE",
"DOCUMENTOS": 3,
"TENTATIVAS": 3
}, {
"TIPODOC": "MDFE",
"DOCUMENTOS": 9,
"TENTATIVAS": 21
}, {
"TIPODOC": "NFSE",
"DOCUMENTOS": 13,
"TENTATIVAS": 43
}, {
"TIPODOC": "GNRE",
"DOCUMENTOS": 2,
"TENTATIVAS": 2
}, {
"TIPODOC": "ESOCIAL",
"DOCUMENTOS": 7,
"TENTATIVAS": 19
}, {
"TIPODOC": "MDE",
"DOCUMENTOS": 7,
"TENTATIVAS": 25
}, {
"TIPODOC": "NFCE",
"DOCUMENTOS": 3,
"TENTATIVAS": 6
}],
"TOTALDOCUMENTOS": 76,
"TOTALTENTATIVAS": 214
},
"HOMOLOGACAO": {
"DADOSBILHETAGEM": [{
"TIPODOC": "NFE",
"DOCUMENTOS": 50,
"TENTATIVAS": 149
}, {
"TIPODOC": "CTE",
"DOCUMENTOS": 19,
"TENTATIVAS": 58
}, {
"TIPODOC": "MDFE",
"DOCUMENTOS": 23,
"TENTATIVAS": 59
}, {
"TIPODOC": "NFSE",
"DOCUMENTOS": 46,
"TENTATIVAS": 118
}, {
"TIPODOC": "GNRE",
"DOCUMENTOS": 5,
"TENTATIVAS": 14
}, {
"TIPODOC": "ESOCIAL",
"DOCUMENTOS": 7,
"TENTATIVAS": 19
}, {
"TIPODOC": "MDE",
"DOCUMENTOS": 5,
"TENTATIVAS": 11
}, {
"TIPODOC": "NFCE",
"DOCUMENTOS": 3,
"TENTATIVAS": 9
}],
"TOTALDOCUMENTOS": 158,
"TOTALTENTATIVAS": 437
}
}]
},
"error": null
}
Função: GetBilling()
A função GETLISTDOC() 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 com objetos, onde cada objeto será um tipo de documento 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 GetBilling() será finalizada e como retorno será passado a mensagem na estrutura JSON.
Parâmetros:
cJsonRequest =
{
"empresa": {
"CGC": "53113791000122",
"tipopessoa": 2
},
"parametros": {
"dtini": "19900101",
"dtfim": "20150826"
},
"PAG":"" ,
121",
"UF": "SP",
"TIPOPESSOA": "2"
}
],
"PARAMETROS": {
"ANO": "2017",
"MES": "05"
}
}
Retorno Negativo:
{
{
"RESULT": [ {
"CGC": "00860905000484",
"PRODUCAO": {
"NFETOTALDOCUMENTOS": {
"DOCUMENTOS": 430,
"TENTATIVASTOTALTENTATIVAS": 1090
},
"CTE": {
"DOCUMENTOSHOMOLOGACAO": 8,
"TENTATIVAS": 26
},
"MDFE": {
"DOCUMENTOS": 10,
"TENTATIVAS": 28
},
"NFSE": {
"DOCUMENTOS": 15,
"TENTATIVAS": 30
},
"GNRE": {
"DOCUMENTOS": 7,
"TENTATIVAS": 13
},
"ESOCIAL": {
"DOCUMENTOS": 4,
"TENTATIVAS": 10
},
"MDE": {
"DOCUMENTOS": 6,
"TENTATIVAS": 9
},
"NFCE": {
"DOCUMENTOS": 6,
"TENTATIVAS": 18
}
},
"HOMOLOGACAO": {
"NFE": {
"DOCUMENTOS": 37,
"TENTATIVAS": 91
},
"CTE": {
"DOCUMENTOS": 5,
"TENTATIVAS": 17
},
"MDFE": {
"DOCUMENTOS": 11,
"TENTATIVAS": 32
},
"NFSE": {
"DOCUMENTOS": 10,
"TENTATIVAS": 22
},
"GNRE": {
"DOCUMENTOS": 8,
"TENTATIVAS": 20
},
"ESOCIAL": {
"DOCUMENTOS": 3,
"TENTATIVAS": 9
},
"MDE": {
"DOCUMENTOS": 13,
"TENTATIVAS": 34
},
"NFCE": {
"DOCUMENTOS": 4,
"TENTATIVAS": 13
}
}
}],
"PAG": "",
"error": null
}
Função: ValEntrada()
aMatriz – matriz contendo os dados da bilhetagem.
Função: Billing()
A rotina deverá executar o filtro na tabela do TSS , e deverá ter como retorno, uma matriz contendo as informações da bilhetagem dividido por: CNPJ/CPF - produção/homologação – Tipo de Documento – Total de tentativas/Total de documentos.
Após executar a query, a rotina gravará todos os dados encontrados em uma matriz. Essa matriz será o retorno da função.
Função: GetJSONResp()
cJSONResponse – String na estrutura JSON.
{
"TOTALDOCUMENTOS": 0,
"TOTALTENTATIVAS": 0
}
},
"error":" Informe os dados da empresa corretamente. "
}
Retorno Positivo:
{
"RESULT": {
"PRODUCAO": {
"TOTALDOCUMENTOS": 100,
"TOTALTENTATIVAS": 360
},
"HOMOLOGACAO": {
"TOTALDOCUMENTOS": 250,
"TOTALTENTATIVAS": 1000
}
},
"error":""
}
Função: TSSBilling()
A função deverá receber a mensagem JSON já convertida pela função FwJsonDeserialize(). Será realizado a validação das informações da requisição, assim será realizado a busca dos documentos das entidades envolvidas.
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|