Objetivo

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

Pré-Requisitos e Restrições

Rotas de serviços

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


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 das lojas ao PDVSYNC
{
	"name": "WTA -Buscar Pis/Cofins",
	"request": {
		"method": "GET",
		"header": [
			{
				"key": "Authorization",
				"value": "Bearer {{TOKEN}}"
			},
			{
				"key": "Accept",
				"value": "*/*"
			}
		],
		"url": {
			"raw": "{{URL_BASE}}/winthor/tributacao/v0/saida/piscofins/consultar",
			"query": [
				{
					"key": "tamanho",
					"value": "{{PAGE_SIZE}}"
				},
				{
					"key": "pagina",
					"value": "{{PAGE}}"
				},
				
				{
					"key": "ultAlter",
					"value": "{{LAST_CHANGE}}"
				}
			]
		}
	},
	"response": []
}
[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "items": {
        "*": {
          "CEM": 100,
          "idExterno": "=concat('pdvsync-piscofins-', @(1,codTribPisCofins),'-', @(1,dtUltAlt))",
          /* JOLT não possui uma função nativa para multiplicar valores. */
          /* mas tem como multiplicar usando dessa forma: */
          /* https://intercom.help/godigibee/en/articles/4239806-transformations-with-jolt */
          "valorInverso": "=divide(1, @(1,CEM))",
          "aliquotaPisPercentual": "=divideAndRound(4, @(1,aliquotaPis), @(1,valorInverso))",
          "aliquotaCofinsPercentual": "=divideAndRound(4, @(1,aliquotaCofins), @(1,valorInverso))",
          /* Percentuais para string */
          "aliquotaPisPercentualStr": "=toString(@(1,aliquotaPisPercentual))",
          "aliquotaCofinsPercentualStr": "=toString(@(1,aliquotaCofinsPercentual))",
          /* Separar as casas decimais pelo o '.' para remover o ponto*/
          "aliquotaPisPercentualArr": "=split('\\.',@(1,aliquotaPisPercentualStr))",
          "aliquotaCofinsPercentualArr": "=split('\\.',@(1,aliquotaCofinsPercentualStr))",
          /*Juntar as casas decimais usando virgula*/
          "aliquotaPis": "=join(',', @(1,aliquotaPisPercentualArr))",
          "aliquotaCofins": "=join(',', @(1,aliquotaCofinsPercentualArr))"
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "items": {
        "*": {
          "idExterno": "idExterno",
          "cst": ["items[&1].cstPis", "items[&1].cstCofins"],
          "aliquotaPis": "items[&1].aliquotaPis",
          "aliquotaCofins": "items[&1].aliquotaCofins",
          "codTribPisCofins": "items[&1].idRetaguarda"
        }
      }
    }
	},
  {
    "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


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
{
	"name": "Enviar Pis/Cofins",
	"request": {
		"method": "POST",
		"header": [
			{
				"key": "Accept",
				"value": "*/*"
			},
			{
				"key": "Content-Type",
				"value": "application/json"
			}
		],
		"url": {
			"raw": "{{URL_ENVIAR_PIS_COFINS}}",
			"query": []
		},
		"bodyraw": {{CLIENT_JSON}}
	}
}
[
	{
		"operation": "default",
		"spec": {
			"status": 2
		}
	}
]


Parâmetros: 

CHAVEVALORTIPO DE VALOR
{{MASTER_ID_PROPRIETARIO}}
STRING
{{ID_INQUILINO}}
STRING
{{CLIENT_JSON}}:PCINTEGRACAOCORE.DADOSTRANSFORMADOSSTRING
{{URL_ENVIAR_PIS_COFINS}}https://pdvsync-core-imposto-dev-aadivv24nq-ue.a.run.app/api/retaguarda/piscofinsSTRING