Produto: | TOTVS CRM Automação da Força de Vendas |
---|---|
Linha de Produto: | Linha TOTVS CRM SFA |
Módulo: | Venda |
Função: | Impostos |
Ticket: | |
Requisito/Story/Issue: |
Ao invés de todos os plugins conterem campos para "Dados de acesso ao Pentaho Carte", na tela de Configuração > Integração > Plugins de Integração:
{ "idusuario": 1, //pedido.idusuarioprofissional "idparceiro": 1, //pedido.idparceiro "idlocal": 2, //pedido.idlocal "idlocalcobranca": 3, //pedido.idlocalcobranca "idfilialvenda": 3, //pedido.idlocalfilialvenda "idfilialretira": 4, //pedido.idlocalfilialretirada "idfilialfaturamento": 5, //pedido.idlocalfilialfaturamento "idtipopedido": 4, //pedido.idtipopedido "idtipocobranca": 5, //pedido.idtipocobranca "idtabelapreco": 6, //pedido.idtabelapreco "idcondicaopagamento": 5, //pedido.idcondicaopagamento "idsegmento": 8, //pedido.idsegmento "idtipologia": 8, //pedido.idtipologia "idoperacao": 8, //pedido.idoperacao "idmoeda": 8, //pedido.idindexador "idtipoestoque": 8, //pedido.idtipoestoque "valortotalbruto": 8.00, //Campo "Valor total bruto do resumo" "valortotalliquido": 9.00,//Campo "Valor total liquido do resumo" "descontopedido": [ { "codigo": "8", //pedidotipodesconto.idtipodesconto > tipodesconto.codigo "percentual": 9.00, //pedidotipodesconto.percentual "valor": 10.00 //pedidotipodesconto.valor }, { "codigo": "8", //pedidotipodesconto.idtipodesconto > tipodesconto.codigo "percentual": 9.00, //pedidotipodesconto.percentual "valor": 10.00 //pedidotipodesconto.valor } ], "pedidoproduto": [ { "ordem": 1, //pedidoproduto.ordem "idproduto": 8, //pedidoproduto.idproduto "quantidade": 9.00, //pedidoproduto.quantidade "precovenda": 10.00, //pedidoproduto.precovenda PS:Valor unitário "precotabela": 11.00, //pedidoproduto.precotabela PS:Valor unitário "precooriginal": 12.00, //pedidoproduto.precooriginal PS:Valor unitário "percentualdesconto": 13.00, //pedidoproduto.percentualdesconto "valordesconto": 13.00, //pedidoproduto.valordesconto PS:Valor unitário "percentualacrescimo": 13.00, //pedidoproduto.percentualacrescimo "valoracrescimo": 13.00, //pedidoproduto.valoracrescimo PS:Valor unitário "idtipopedido": 13.00, //pedidoproduto.idtipopedido "idtipoestoque": 14, //pedidoproduto.idtipoestoque "idtabelapreco": 15, //pedidoproduto.idtabelapreco }, { "ordem": 1, //pedidoproduto.ordem "idproduto": 8, //pedidoproduto.idproduto "quantidade": 9.00, //pedidoproduto.quantidade "precovenda": 10.00, //pedidoproduto.precovenda PS:Valor unitário "precotabela": 11.00, //pedidoproduto.precotabela PS:Valor unitário "precooriginal": 12.00, //pedidoproduto.precooriginal PS:Valor unitário "percentualdesconto": 13.00, //pedidoproduto.percentualdesconto "valordesconto": 13.00, //pedidoproduto.valordesconto PS:Valor unitário "percentualacrescimo": 13.00, //pedidoproduto.percentualacrescimo "valoracrescimo": 13.00, //pedidoproduto.valoracrescimo PS:Valor unitário "idtipopedido": 13.00, //pedidoproduto.idtipopedido "idtipoestoque": 14, //pedidoproduto.idtipoestoque "idtabelapreco": 15, //pedidoproduto.idtabelapreco } ], "pedidoentrega": [ { "idtipofrete": 4, //pedidoentrega.idtipofrete "idtransportadora": 7,//pedidoentrega.idparceirotransportador "valorfrete": 5.00, //pedidoentrega.valorfrete "valordespesa": 6.00, //pedidoentrega.valordespesa "valorseguro": 7.00 //pedidoentrega.valorseguro }, { "idtipofrete": 4, //pedidoentrega.idtipofrete "idtransportadora": 7,//pedidoentrega.idparceirotransportador "valorfrete": 5.00, //pedidoentrega.valorfrete "valordespesa": 6.00, //pedidoentrega.valordespesa "valorseguro": 7.00 //pedidoentrega.valorseguro } ] }
{ "valortotalcomimpostos": 15.00, "valortotalimpostos": 16.00, "valortotaldespesa": 6.00, //pedidoentrega.valordespesa "valortotalseguro": 7.00, //pedidoentrega.valorseguro "pedidoimposto": [ { "sglimposto": "ICMS", "aliquota": 11.00, "valortotalimposto": 0.5, }, { "sglimposto": "ST", "aliquota": 11.00, "valortotalimposto": 0.5 }, { "sglimposto": "IPI", "aliquota": 11.00, "valortotalimposto": 0.5 } ], "itemimposto": [ { "ordem": 1, //pedidoproduto.ordem "idproduto": 8, //pedidoproduto.idproduto // "valortotalcomimpostos": 12.00, //NÃO UNITÁRIO, precisa ser múltiplicado pela requisição.quantidade "valortotalfrete": 15.00, //NÃO UNITÁRIO, precisa ser múltiplicado pela requisição.quantidade "impostos": [ { "sglimposto": "ICMS", "valorbase": 10.00, "aliquota": 11.00, "valortotalimposto": 12.00 //NÃO UNITÁRIO, precisa ser múltiplicado pela requisição.quantidade }, { "sglimposto": "IPI", "valorbase": 10.00, "aliquota": 11.00, "valortotalimposto": 12.00 //NÃO UNITÁRIO, precisa ser múltiplicado pela requisição.quantidade }, { "sglimposto": "ST", "valorbase": 10.00, "aliquota": 11.00, "valortotalimposto": 12.00 //NÃO UNITÁRIO, precisa ser múltiplicado pela requisição.quantidade } ] }, { "ordem": 1, //pedidoproduto.ordem "idproduto": 8, //pedidoproduto.idproduto "valortotalcomimpostos": 12.00, //NÃO UNITÁRIO, precisa ser múltiplicado pela requisição.quantidade "valortotalfrete": 15.00, //NÃO UNITÁRIO, precisa ser múltiplicado pela requisição.quantidade "impostos": [ { "sglimposto": "ICMS", "valorbase": 10.00, "aliquota": 11.00, "valortotalimposto": 12.00 //NÃO UNITÁRIO, precisa ser múltiplicado pela requisição.quantidade }, { "sglimposto": "IPI", "valorbase": 10.00, "aliquota": 11.00, "valortotalimposto": 12.00 //NÃO UNITÁRIO, precisa ser múltiplicado pela requisição.quantidade }, { "sglimposto": "ST", "valorbase": 10.00, "aliquota": 11.00, "valortotalimposto": 12.00 //NÃO UNITÁRIO, precisa ser múltiplicado pela requisição.quantidade } ] }
Retorno da Simulação | Campo do SFA |
---|---|
itemimposto.impostos.sglimposto | pedidoimposto.idimposto |
itemimposto.impostos.valorbase | pedidoimposto.valorbasecalculoreducao |
itemimposto.impostos.aliquota | pedidoimposto.valorbasecalculo |
itemimposto.impostos.valortotalimposto | pedidoimposto.valorimposto |
itemimposto.ordem / itemimposto.idproduto | pedidoimposto.idpedidoproduto (procurar por pedidoproduto.ordem e pedidoproduto.idproduto respectivamente) |
itemimposto.ordem / itemimposto.idproduto | pedidoproduto.idpedidoproduto (procurar por pedidoproduto.ordem e pedidoproduto.idproduto respectivamente) |
itemimposto.valortotalfrete | pedidoproduto.valorfrete |
itemimposto.valortotalcomimpostos | pedidoproduto.valortotalcomimpostos |
PS: É importante que tanto a requisição, quanto o retorno sejam logadas no console (f12) e log (server.log) da Web/Wildfly, para facilitar triagem de chamados envolvendo simulação de impostos.
O Pentaho Carte, recebendo a requisição da aplicação na rota COMMONS_JOB_TAXSIMULATION, deverá tratar os dados recebidos segundo o modelo da entrada da API de simulação de impostos do Protheus, segundo documentação https://api.totvs.com.br/apidetails/SalesTaxes_v1_000.json
Com o retorno, o serviço de integração deverá ao menos implementar os campos definidos pela tabela de-para do ponto 3.
O Pentaho Carte, recebendo a requisição da aplicação na rota COMMONS_JOB_TAXSIMULATION, deverá tratar os dados recebidos segundo o modelo da entrada da API de simulação de impostos do Datasul, que segue o mesmo modelo de body da documentação https://api.totvs.com.br/apidetails/SalesTaxes_v1_000.json
A URL da rota é definida pelo padrão; ${base_url}/api/ftp/v2/ItemTaxSimulationPublic
Com o retorno, o serviço de integração deverá ao menos implementar os campos definidos pela tabela de-para do ponto 3.
Será implementado um modelo genérico padrão, onde o Pentaho deverá enviar requisição com autenticação básica definida segundo modelo padrão e esperando receber retorno segundo modelo padrão definido pela documentação Manual - Plugin de Integração "Simulação de Impostos".
Caso os sistemas terceiros se adaptem ao modelo padrão definido acima, o requisito de simulação de impostos poderá ser implementados sem necessidade de customização.
Entretanto, caso os sistemas não possam se adaptar para receber e retornar a requisição segundo o definido pela documentação acima, esse modelo de simulação de impostos será configurado na aplicação para que dispare serviço de integração customizado, que respeita apenas o contrato requisição/retorno definido entre aplicação/pentaho.