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 PRODUTO 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 PRODUTO é 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 PRODUTO ao PDVSYNC
Bloco de código
languagejs
themeEclipse
firstline1
titleLayout de comunicação
 {
	"name": "WTA - Buscar Produto - PDV",
	"request": {
		"method": "GET",
		"header": [
			{
				"key": "Authorization",
				"value": "Bearer {{TOKEN}}"
			},
			{
				"key": "Accept",
				"value": "*/*"
			}
		],
		"url": {
			"raw": "{{URL_BASE}}/winthor/tributacao/v0/saida/produtotributacao/consultar",
			"query": [
				{
					"key": "tamanho",
					"value": "{{PAGE_SIZE}}"
				},
				{
					"key": "pagina",
					"value": "{{PAGE}}"
				} ,
   			    {
					"key": "filial",
					"value": "{{FILIAL}}"
				} ,
                {
					"key": "ultAlter",
					"value": "{{LAST_CHANGE}}"
				}
			]
		}
	},
	"response": []
}
Bloco de código
languagejs
themeEclipse
titleLayout de transformação
 [{
    "operation": "modify-overwrite-beta",
    "spec": {
      "items": {
        "*": {
          "produto": {
            "idExterno": "=concat('pdvsync-produto-', @(1,codigo),'-',@(1,codfilial),'-',@(1,dtultalter))",
            "codigoProduto": "@(1,codigo)",
            "codigoFilial": "{{FILIAL_ID_PROPRIETARIO}}"
          },
          "ncm": {
            "*": {
              "codigoNcm_": "=split('\\.', @(1,codigoNcm))",
              "codigo_Ncm": "=join('', @(1,codigoNcm_))"
            }
          },
          "icms": {
            "*": {
              "idRetaguardaIcms": "=concat(@(1,id),'-ICMS')",
              "idRetaguardaSt": "=concat(@(1,id),'-ST')",
              "codigoFilial": "{{FILIAL_ID_PROPRIETARIO}}" //"@(3,produto.codfilial)"
            }
          }
        }
      }
    }
  },

  {
    "operation": "shift",
    "spec": {
      "items": {
        "*": {
          //Produto
          "produto": {
            "idExterno": "idExterno",
            "codigoProduto": "items.[&2].[0].idRetaguarda",
            "descricao": "items.[&2].[0].descricao",
            "@(1,produto.unidade.sigla)": "items.[&2].[0].unidadeMedida",
            "descontoMaximo": "items.[&2].[0].descontoMaximo",
            "codigo": "items.[&2].[0].codigoProduto",
            "origemProd": "items.[&2].[0].origemProduto",
            //tipoMercadoria
            "tipoMercadoria": {
              "PRODUTO_ACABADO": {
                "#ProdutoAcabado": "items.[&4].[0].tipoProduto"
              },
              "MATERIA_PRIMA": {
                "#MateriaPrima": "items.[&4].[0].tipoProduto"
              },
              "KIT": {
                "#Kit": "items.[&4].[0].tipoProduto"
              },
              "MATERIAL_CONSUMO": {
                "#Consumo": "items.[&4].[0].tipoProduto"
              },
              "SERVICOS": {
                "#Servico": "items.[&4].[0].tipoProduto"
              },
              "BOI_CASADO": {
                "#Kit": "items.[&4].[0].tipoProduto"
              },
              "CESTA_BASICA": {
                "#Kit": "items.[&4].[0].tipoProduto"
              },
              "*": {
                "#NãoInformado": "items.[&4].[0].tipoProduto"
              }
            },
            //tipoFracaoProduto
            "tipoFracaoProduto": {
              "NAO_ACEITA_FRACIONAMENTO": {
                "#false": "items.[&4].[0].fracionado"
              },
              "*": {
                "#true": "items.[&4].[0].fracionado"
              }
            },
            "cnpjFornecedor": "items.[&2].[0].cnpjFornecedor"
          },
          //NCM
          "ncm": {
            "*": {
              "codigoNcm": "items[&3][0].ncms[&1].idRetaguarda",
              "@(2,produto.codigoFilial)": "items.[&3][0].ncms[&1].idProprietario"
            }
          },
          //PISCOFINS
          "piscofins": {
            "*": {
              "codTribPisCofins": "items[&3][0].pisCofins[&1].idRetaguarda",
              "@(2,produto.codigoFilial)": "items.[&3][0].pisCofins[&1].idProprietario"
            }
          },
          //ICMS/ST
          "icms": {
            "*": {
              "substituicaoTributaria": {
                "icmsExterno": {
                  "valor": {
                    "0": {
                      "@(4,idRetaguardaIcms)": "items[&5][0].impostos[&1].idRetaguarda",
                      "@(4,codigoFilial)": "items[&5][0].impostos[&1].idProprietario"
                    },
                    "*": {
                      "@(4,idRetaguardaSt)": "items[&5][0].impostos[&1].idRetaguarda",
                      "@(4,codigoFilial)": "items[&5][0].impostos[&1].idProprietario"
                    }
                  }
                }
              },
              //FECP
              "fcp": {
                "id": "items[&4][0].fcps[&2].idRetaguarda",
                "@(3,produto.codigoFilial)": "items.[&4][0].fcps[&2].idProprietario",
                "percentualFcp": "items.[&4][0].fcps[&2].percentualFcp",
                "codigoBeneficioFiscal": "items.[&4][0].fcps[&2].codigoBeneficioFiscal",
                "descontaDesoneracaoNf": "items.[&4][0].fcps[&2].descontaDesoneracaoNf",
                "valorBaseFcp": "items.[&4][0].fcps[&2].valorBaseFcp"
              }
            }
          }
        }
      }
    }
  },
  {
    "operation": "default",
    "spec": {
      "_attr_access": "items",
      "items[]": {
        "*[]": {
          "*": {
            "idInquilino": "{{ID_INQUILINO}}",
            "idProprietario": "{{FILIAL_ID_PROPRIETARIO}}",
            "loteOrigem": "{{LOTE_ORIGEM}}",
            "indiceTributoImpressora": "",
            "tipo": 0,
            "situacao": 1,
            "escalaRelevante": true,
            "valorBaseFcp": 0,
            "codigoBeneficioFiscal": "AB",
            "percentualFcp": 1,
            "codigoAlternativo": "654321",
            "tipoArredondaTrunca": "01",
            "cstIcms": "CST",
            "percentualReducaoIcms": 1,
            "aliquotaIcms": 1,
            "vlicmsret": 1,
            "motivoDesoneracaoIcms": 1,
            "descontaDesoneracaoNf": false,
            "cest": "cest",
            "arredondaTrunca": "Arredonda",
            "impostos[]": {
              "*[]": " "
            }
          }
        }
      }
    }
  }
]

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 Produto",
	"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
{{FILIAL_ID_PROPRIETARIO}}Informar IDSTRING
{{ID_INQUILINO}}Informar ID

STRING
{{CLIENT_JSON}}:PCINTEGRACAOCORE.DADOSTRANSFORMADOSSTRING
{{URL_ENVIAR_PRODUTO}}https://pdvsync-core-produto-dev-aadivv24nq-ue.a.run.app/api/retaguarda/produtosSTRING