Versões comparadas

Chave

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

Objetivo

Este documento tem como objetivo explicar o funcionamento da integração do NCM entre o Winthor e PDVSYNC.

Pré-Requisitos e Restrições

  • Necessário a instalação dos  serviços:
    winthor-integracao-2650
    winthor-integracao-config
  • winthor-integracao-core
  • winthor-tributacao
  • Rotas de lotes de origem configuradas (PDVSYNC - LOTE DE ORIGEM)

Rotas de serviços

Para integração de NCM é necessário cadastrar as seguintes rotas e serviços na rotina 2650:

...

Totvs custom tabs box
tabsRota de busca do NCM, Rota de envio do NCM ao PDVSYNC
idsrota1,rota2
Totvs custom tabs box items
defaultyes
referenciarota1

Dados:

CAMPOVALORDESCRIÇÃO
ID Empresa
Código do Winthor cadastrado em empresa na rotina 2650
StatusATIVO
AutenticadorNÃO
ArquiteturaJSON

Ordem Execução

4

Tipo de Processo

1-BUSCAR
ID Rota Serviço 
Código da rota de envio dos NCM ao PDVSYNC
Bloco de código
languagejs
themeEclipse
firstline1
titleLayout de comunicação
{
	"name": "WTA -Buscar Imposto NCM",
	"request": {
		"method": "GET",
		"header": [
			{
				"key": "Authorization",
				"value": "Bearer {{TOKEN}}"
			},
			{
				"key": "Accept",
				"value": "*/*"
			}
		],
		"url": {
			"raw": "{{URL_BASE}}/winthor/tributacao/v0/saida/ncm/consultar",
			"query": [
				{
					"key": "pageSize",
					"value": "{{PAGE_SIZE}}"
				},
				{
					"key": "page",
					"value": "{{PAGE}}"
				} ,
        {
					"key": "dataUltimaALteracao",
					"value": "{{LAST_CHANGE}}"
				}
			]
		}
	},
	"response": []
}
Bloco de código
languagejs
themeEclipse
titleLayout de transformação
[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "items": {
        "*": {
          "codigoNcm_": "=split('\\.', @(1,codigoNcm))",
          "codigo_Ncm": "=join('', @(1,codigoNcm_))",
          "codigo_Ncm2": "=substring(@(1,codigo_Ncm),0,8)",
          "idExterno": "=concat('pdvsync-ncm-', @(1,id),'-', @(1,dataUltimaAtualizacao))",
          "chave": null,
          "fonte": null,
          "situacao": 1,
          /*Nacional*/
          "aliquotaNacional_str": "=toString(@(1,aliquotaNacional))",
          "aliquotaNacional_arr": "=split('\\.',@(1,aliquotaNacional_str))",
          "aliquotaNacional": "=join(',',@(1,aliquotaNacional_arr))",
          /*Estadual*/
          "aliquotaEstadual_str": "=toString(@(1,aliquotaEstadual))",
          "aliquotaEstadual_arr": "=split('\\.',@(1,aliquotaEstadual_str))",
          "aliquotaEstadual": "=join(',',@(1,aliquotaEstadual_arr))",
          /*Importada*/
          "aliquotaImportada_str": "=toString(@(1,aliquotaImportada))",
          "aliquotaMunicipalaliquotaImportada_arr": "=split('\\.',@(1,aliquotaImportada_str))",
          "aliquotaImportada": "=join(',',@(1,aliquotaImportada_arr))",
          "chave": null/*Municipal*/
          "aliquotaMunicipal_str": "=toString(@(1,aliquotaMunicipal))",
          "fontealiquotaMunicipal_arr": null"=split('\\.',@(1,aliquotaMunicipal_str))",
          "situacaoaliquotaMunicipal": "=join(',',@(1,aliquotaMunicipal_arr))"
        }
      }
    }
	   },
  {
    "operation": "shift",
    "spec": {
      "items": {
        "*": {
          "idExterno": "idExterno[&1]",
          "id": "items[&1].[0].idRetaguarda",
          "codigo_NcmNcm2": "items[&1].[0].codigoNcm",
          "codigoExcecao": "items[&1].[0].codigoExcecao",
          "aliquotaNacional": "items[&1].[0].aliquotaNacional",
          "aliquotaEstadual": "items[&1].[0].aliquotaEstadual",
          "codigoCest": "items[&1].[0].codigoCest",
          "aliquotaImportada": "items[&1].[0].aliquotaImportada",
          "aliquotaMunicipal": "items[&1].[0].aliquotaMunicipal",
          "chave": "items[&1].[0].chave",
          "fonte": "items[&1].[0].fonte",
          "situacao": "items[&1].[0].situacao"
        }
      }
    }
	      },
  {
    "operation": "default",
    "spec": {
      "_attr_access": "items",
      "items[]": {
        "*[]": {
          "*": {
            "idInquilino": "{{ID_INQUILINO}}",
            "idProprietario": "{{MASTER_ID_PROPRIETARIO}}",
            "loteOrigem": "{{LOTE_ORIGEM}}",
            "situacao": 1
          }
        }
    }
  }
  ]  }
}] 

Parametros: 

CHAVEVALORTIPO DE VALOR
{{LAST_CHANGE}}  SELECT 
    TO_CHAR(
        NVL((SELECT MAX(DATACRIACAO) FROM PCINTEGRACAOCORE WHERE IDROTASERVICO = :IDROTASERVICO AND STATUS = 2), TO_DATE('01/01/1900')) -1,
        'RRRR-MM-DD"T"HH24:MI:SS'
    ) DT 
FROM DUAL
SELECT
Totvs custom tabs box items
defaultno
referenciarota2


Dados: 

CAMPOVALORDESCRIÇÃO
ID Empresa
Código do Winthor cadastrado em empresa na rotina 2650
StatusATIVO
AutenticadorNÃO
ArquiteturaJSON

Ordem Execução

1

Tipo de Processo

3-PROCESSAR
Bloco de código
languagejs
themeEclipse
firstline1
titleLayout de comunicação
 {
	"name": "PDV-SYNC Salvar Imposto NCM",
	"request": {
		"method": "POST",
		"header": [
			{
				"key": "Accept",
				"value": "*/*"
			},
			{
				"key": "Content-Type",
				"value": "application/json"
			}
		],
		"url": {
			"raw": "{{URL_ENVIAR_NCM}}",
			"query": []
		},
		"bodyraw": {{CLIENT_JSON}}
	},
	"response": []
}
Bloco de código
languagejs
themeEclipse
titleLayout de transformação
[
	{
		"operation": "default",
		"spec": {
			"status": 2
		}
	}
]


Parâmetros: 

CHAVEVALORTIPO DE VALOR
{{MASTER_ID_PROPRIETARIO}}Informar IDSTRING
{{ID_INQUILINO}}Informar ID

STRING
{{CLIENT_JSON}}:PCINTEGRACAOCORE.DADOSTRANSFORMADOSSTRING
{{URL_ENVIAR_NCM}}https://pdvsync-core-imposto-dev-aadivv24nq-ue.a.run.app/api/retaguarda/ncmsSTRING



...