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 PIS/COFINSNCM, Rota de envio do PIS/COFINS 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

14

Tipo de Processo

1-BUSCAR
ID Rota Serviço 
Código da rota de envio das lojas dos NCM ao PDVSYNC
Bloco de código
languagejs
themeEclipse
firstline1
titleLayout de comunicação
{
	"name": "WTA -Buscar Pis/CofinsImposto NCM",
	"request": {
		"method": "GET",
		"header": [
			{
				"key": "Authorization",
				"value": "Bearer {{TOKEN}}"
			},
			{
				"key": "Accept",
				"value": "*/*"
			}
		],
		"url": {
			"raw": "{{URL_BASE}}/winthor/tributacao/v0/saida/piscofinsncm/consultar",
			"query": [
				{
					"key": "tamanhopageSize",
					"value": "{{PAGE_SIZE}}"
				},
				{
					"key": "paginapage",
					"value": "{{PAGE}}"
				},
				
				 ,
        {
					"key": "ultAlterdataUltimaALteracao",
					"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_))",
          "CEMcodigo_Ncm2": 100"=substring(@(1,codigo_Ncm),0,8)",
          "idExterno": "=concat('pdvsync-piscofinsncm-', @(1,codTribPisCofinsid),'-', @(1,dtUltAltdataUltimaAtualizacao))",
          /* JOLT não possui uma função nativa para multiplicar valores. */
  "chave": null,
          "fonte": null,
        /* mas tem como multiplicar usando dessa forma: */ "situacao": 1,
          /* https://intercom.help/godigibee/en/articles/4239806-transformations-with-jolt Nacional*/
          "valorInversoaliquotaNacional_str": "=dividetoString(1, @(1,CEMaliquotaNacional))",
          "aliquotaPisPercentualaliquotaNacional_arr": "=divideAndRound(4, split('\\.',@(1,aliquotaPis), @(1,valorInversoaliquotaNacional_str))",
          "aliquotaCofinsPercentualaliquotaNacional": "=divideAndRoundjoin(4, @(1,aliquotaCofins), ',',@(1,valorInversoaliquotaNacional_arr))",
          /*Estadual* Percentuais para string *//
          "aliquotaEstadual_str": "=toString(@(1,aliquotaEstadual))",
          "aliquotaPisPercentualStraliquotaEstadual_arr": "=toString(split('\\.',@(1,aliquotaPisPercentualaliquotaEstadual_str))",
          "aliquotaCofinsPercentualStraliquotaEstadual": "=toStringjoin(',',@(1,aliquotaCofinsPercentualaliquotaEstadual_arr))",
          /*Importada*/
 Separar as casas decimais pelo o '.' para remover o ponto*/ "aliquotaImportada_str": "=toString(@(1,aliquotaImportada))",
          "aliquotaPisPercentualArraliquotaImportada_arr": "=split('\\.',@(1,aliquotaPisPercentualStraliquotaImportada_str))",
          "aliquotaCofinsPercentualArraliquotaImportada": "=splitjoin('\\.,',@(1,aliquotaCofinsPercentualStraliquotaImportada_arr))",
          /*Juntar as casas decimais usando virgula*/Municipal*/
          "aliquotaMunicipal_str": "=toString(@(1,aliquotaMunicipal))",
          "aliquotaPisaliquotaMunicipal_arr": "=joinsplit(',\\.', @(1,aliquotaPisPercentualArraliquotaMunicipal_str))",
          "aliquotaCofinsaliquotaMunicipal": "=join(',', @(1,aliquotaCofinsPercentualArraliquotaMunicipal_arr))"
        }
      }
    }
   },
  {
    "operation": "shift",
    "spec": {
      "items": {
        "*": {
          "idExterno": "idExterno[&1]",
          "cstid": "items[&1].idRetaguarda",
          "codigo_Ncm2": "items[&1].[0].cstPis",codigoNcm",
          "codigoExcecao": "items[&1].codigoExcecao",
          "aliquotaNacional": "items[&1].[0].cstCofins"]aliquotaNacional",
          "aliquotaEstadual": "items[&1].aliquotaEstadual",
          "aliquotaPiscodigoCest": "items[&1].[0].aliquotaPiscodigoCest",
          "aliquotaImportada": "items[&1].aliquotaImportada",
          "aliquotaCofinsaliquotaMunicipal": "items[&1].[0].aliquotaCofinsaliquotaMunicipal",
          "chave": "items[&1].chave",
          "codTribPisCofinsfonte": "items[&1].[0].idRetaguardafonte",
          "situacao": "items[&1].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}}    SELECTSELECT 
    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'
    ) DTDT 
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": "Enviar Pis/CofinsPDV-SYNC Salvar Imposto NCM",
	"request": {
		"method": "POST",
		"header": [
			{
				"key": "Accept",
				"value": "*/*"
			},
			{
				"key": "Content-Type",
				"value": "application/json"
			}
		],
		"url": {
			"raw": "{{URL_ENVIAR_PIS_COFINSNCM}}",
			"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_PIS_COFINSNCM}}https://pdvsync-core-imposto-dev-aadivv24nq-ue.a.run.app/api/retaguarda/piscofinsncmsSTRING