ESCOPO TÉCNICO DA API NOTA FISCALPlugin- Pelo tools opção 5 é criado o seguinte registro:
| Bloco de código |
|---|
| title | Plugin |
|---|
| linenumbers | true |
|---|
| pluginintegracao {
codigo: DOWNNF,
descricao: API Para download Danfe (PDF),
idnAtivo: 0
} |
| Bloco de código |
|---|
| title | Campos de Condiguração |
|---|
| linenumbers | true |
|---|
| Campo "URL Nota Fiscal"
idpluginintegracao: select idpluginintegracao from pluginintegracao where codigo = 'DOWNNF',
codigoelemento: DOWNNF,
agrupador: 0,
sglcampo: DOWNNF_URL
valor: {valor inserido no campo URL}
Campo "Usuário"
idpluginintegracao: select idpluginintegracao from pluginintegracao where codigo = 'DOWNNF',
codigoelemento: DOWNNF,
agrupador: 0,
sglcampo: DOWNNF_USER
valor: {valor inserido no campo USUÁRIO}
Campo "Senha"
idpluginintegracao: select idpluginintegracao from pluginintegracao where codigo = 'DOWNNF',
codigoelemento: DOWNNF,
agrupador: 0,
sglcampo: DOWNNF_PASSWORD
valor: {valor inserido no campo Senha}
Campo "Timeout Consulta"
idpluginintegracao: select idpluginintegracao from pluginintegracao where codigo = 'DOWNNF',
codigoelemento: DOWNNF,
agrupador: 0,
sglcampo: DOWNNF_TIMEOUT
valor: {valor inserido no campo Timeout consulta}
Campo "Rep"
idpluginintegracao: select idpluginintegracao from pluginintegracao where codigo = 'DOWNNF',
codigoelemento: DOWNNF,
agrupador: 0,
sglcampo: DOWNNF_REP
valor: {COMMONS_SERVICES}
Campo "Job"
idpluginintegracao: select idpluginintegracao from pluginintegracao where codigo = 'DOWNNF',
codigoelemento: DOWNNF,
agrupador: 0,
sglcampo: DOWNNF_JOB
valor: {DOWNLOADNOTAFISCAL} |
Segue Dados de tela que serão preenchidos: Image Added
Implementação na listagem de nota fiscalNa tela, "Venda → Nota Fiscal → Listar", exibe o botão Image Addedpara download do PDF, ao lado do botão de visualização conforme protótipo, de acordo com as configurações do plugin: - idnAtivo = 1: select idnAtivo from pluginintegracao where codigo = 'DOWNNF'
Ao clicar no botão de download a aplicação deverá consultar o carte de acordo com a sql:
| Bloco de código |
|---|
| title | URL_PENTAHO |
|---|
| linenumbers | true |
|---|
| select valor from pluginintconfig where codigoelemento='CONF_GERAL' AND sglcampo='PENTAHO_URL' |
A url do download é montada da seguinte forma: URL=${Configurações do Pentaho.URL}/kettle/executeJob/?rep={}&job={}
No body da requisição, passar as seguintes informações:
| Bloco de código |
|---|
| title | Consulta de Nota Fiscal |
|---|
| linenumbers | true |
|---|
| {
idnotafiscal:
} |
O retorno desta url será o arquivo em base64 para download:
| Bloco de código |
|---|
| title | Código 200 - Ok |
|---|
| linenumbers | true |
|---|
| {
mensagem: {base64}
} |
Integração com API Download de Notas fiscaisLista de variáveis de integração abaixo:
ERP | TODOS |
|---|
CONTEXTO | API | DESCRIÇÃO | Se valor 1, a URL será no formato {URL_API_NOTA_FISCAL_CLIENTE}/{empresa}/{filial}/{documento}/{serie}; se a variável estiver inativa, então a URL montada será no formato {URL_API_NOTA_FISCAL_CLIENTE}/{filial}/{documento}/{serie}. | TABELA | WSCONFIGINTEGRACAO | CAMPO | VALOR | VALOR | 1 | IDNATIVO | 1 | CODIGOERP | API_DOWNNF |
Detalhes de Job DOWNLOADNOTAFISCALTambém é Criado para Pentaho-Carte o Job DOWNLOADNOTAFISCAL no repositório COMMONS_SERVICES;
A URL de consulta é montada no seguinte padrão: GET: {URL_API_NOTA_FISCAL_CLIENTE}/{empresa}/{filial}/{documento}/{serie} HEADERS: Authorization: Basic {TOKEN} Informações da request serão obtidas a partir das consultas abaixo; Se o campo EMPRESA estiver como NULL, então o parâmetro EMPRESA não é repassado na URL da request. Dessa forma {URL_API_NOTA_FISCAL_CLIENTE}/{filial}/{documento}/{serie}:
| Bloco de código |
|---|
| language | sql |
|---|
| title | Consulta de Dados de Notas Fiscais |
|---|
| linenumbers | true |
|---|
| SELECT n.numeronotafiscal AS DOCUMENTO,
n.serie AS SERIE,
l.numeromatricula AS FILIAL,
CASE
WHEN Cast(w.valor AS VARCHAR) = '1' THEN
Split_part(n.codigoerp, '#', 1)
ELSE NULL END AS EMPRESA
FROM notafiscal n
INNER JOIN local l
ON l.idlocal = n.idlocalfilialfaturamento
LEFT JOIN wsconfigintegracao w
ON w.codigoerp = 'API_DOWNNF'
AND w.idnativo = 1
WHERE n.idnotafiscal = :IDNOTAFISCAL;
SELECT ( CASE
WHEN sglcampo = 'DOWNNF_PASSWORD' THEN valor
END ) AS SENHA,
( CASE
WHEN sglcampo = 'DOWNNF_USER' THEN valor
END ) AS USUARIO,
( CASE
WHEN sglcampo = 'DOWNNF_URL' THEN valor
END ) AS URL
FROM pluginintconfig
WHERE codigoelemento = 'DOWNNF'
AND sglcampo IN ( 'DOWNNF_PASSWORD', 'DOWNNF_USER', 'DOWNNF_URL' ); |
O retorno recebido será no formato base64, e é retornado para aplicação sem transformações dentro do XML do RESPONSE:
| Bloco de código |
|---|
| title | Código 200 - Ok |
|---|
| linenumbers | true |
|---|
| {
mensagem: {base64}
} |
| Painel |
|---|
| | Bloco de código |
|---|
| title | Retorno 500 - Internal Server Error |
|---|
| linenumbers | true |
|---|
| {"code":500,"detailedMessage":"","message":"Internal Server Error"} |
| Bloco de código |
|---|
| title | Retorno 404 - Nota Fiscal não encontrada |
|---|
| linenumbers | true |
|---|
| {
"errorCode": 404,
"errorMessage": "Nao encontrou a NF 01_05_000001838_11 "
} |
| Bloco de código |
|---|
| title | Retorno 200 - Ok |
|---|
| linenumbers | true |
|---|
| {
mensagem: {base64}
} |
|
|