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 PRODUTO, Rota de envio do PRODUTO ao PDVSYNC
idsrota1,rota2

Dados:

Tipo de Processo
Totvs custom tabs box items
defaultyes
referenciarota1
CAMPOVALORDESCRIÇÃO
ID EmpresaCódigo do Winthor cadastrado em empresa na rotina 2650StatusATIVOAutenticadorNÃOArquiteturaJSON

Ordem Execução

4

1-BUSCARID Rota Serviço Código da rota de envio das ICMS e Substituição tributária  ao PDVSYNC
Bloco de código
firstline
languagejs
themeEclipse
1titleLayout de comunicaçãotransformação
[
  {
		"name": "WTA - Buscar Produto - PDV"operation": "modify-overwrite-beta",
		"request    "spec": {
			"method      "items": "GET",
			"header{
        "*": [
				{
					"key": "Authorization",
					"value": "Bearer {{TOKEN}}"
				},
				{
					"key": "Accept",
					"value": "*/*"
				}
			],
			"url": {
				"raw": "{{URL_BASE}}/winthor/tributacao/v0/saida/produtotributacao/consultar",
				"query": [
					{
						"key": "pageSize",
						"value": "{{PAGE_SIZE}}"
					},
					{
						"key": "page",
						"value": "{{PAGE}}"
					} ,
	   			{
						"key": "filial",
						"value": "{{FILIAL}}"
					} ,
	{
          "produto": {
            "idRetaguarda": "=toString(@(1,codigo))",
            "idExterno": "=concat('pdvsync-produto-', @(1,idRetaguarda),'-',@(1,codfilial),'-',@(1,dtultalter))",
            "codigoProduto": "@(1,idRetaguarda)",
            "codigoFilial": "{{FILIAL_ID_PROPRIETARIO}}",
            "embalagens": {
              "*": {
                "idRetaguarda": "=concat(@(1,codigoDeBarra),'-',@(1,produto))",
                {
						"key": "dataUltimaAlteracao",
						"value": "{{LAST_CHANGE}}"
					}
				]
			}
		},
		"response": []
	}
Bloco de código
languagejs
themeEclipse
titleLayout de transformação
[{
    "operation": "modify-overwrite-beta",
    "spec": {
      "items": {
       "IdProdutoRetaguarda":"=concat(@(3,codigoDeBarra),'-',@(1,produto))",
                "descricao": ["@(1,descricao)", "=concat(@(3,descricao),' - ',@(1,embalagem))"]
              }
            }
          },
          "ncm": {
            "*": {
            "produto": {
            "idRetaguardacodigoNcm_": "=concat(@(1,codigoDeBarra),'-split('\\.', @(1,codigocodigoNcm))",
            "idExterno              "codigo_Ncm": "=concatjoin('pdvsync-produto-', @(1,idRetaguarda),'-',@(1,codfilial),'-',@(1,dtultalter))",
            "codigoProduto": "@(1,idRetaguarda)",
            "codigoFilial": "{{FILIAL_ID_PROPRIETARIO}}"
          },
          "ncm": {
           codigoNcm_))"
            }
          },
          "icms": {
            "*": {
              "codigoNcm_              "idRetaguardaIcms": "=split('\\.', @(concat(@(1,codigoNcmid),'-ICMS')",
              "codigo_Ncm              "idRetaguardaSt": "=joinconcat('', @(1,codigoNcm_)id),'-ST')",
            }
          },
          "icmscodigoFilial": {
            "*"@(3,produto.codfilial)",
              "fcp": {
                "percentualFcp": {
              "idRetaguardaIcms                  "valor": "=concat(@(1,idvalor),'-ICMS')",
               "idRetaguardaSt": "=concat(          "percentualFcp_": "=split('\\.',@(1,idvalor),'-ST')",
              "codigoFilial                  "percentual_Fcp": "=join(',',@(3,produto.codfilial1,percentualFcp_))"
             }
          }
        },
      }
    }
    },
 //FILTRAR ICMS e PISCOFINS VALIDOS ID != 0
  {
    "operationvalorBaseFcp": "shift",
    "spec": {
      "items": {
        "*": {
          "produto": "items[&1].produto",
          "ncm": "items[&1].ncm",
          "piscofins": {
            "*": {
              "codTribPisCofins": {
                "0": { "@2": "piscofins_ignorado[]" },
                "*": { "@2": "items[&5].piscofins[]" }
              }
            }
          },
          "icms": {
            "*": {
              "id": {
                "0": { "@2": "icms_ignorado[]" },
                "*": { "@2": "items[&5].icms[]" }
              }
            }
          }
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "items": {
        "*": {
          //Produto
          "produto": {
            "idExterno": "idExterno",
            "idRetaguarda": "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].codigoAlternativo",
            "codfilial": "items.[&2].[0].idProprietario",
            //  "origemProd": "items.[&2].[0].origemProduto",
            "codigoDeBarra": "items.[&2].[0].codigoProduto",
            "origemProd": {
              "Nacional": {
                "#0": "items.[&4].[0].origemProduto"
              },
              "*": {
                "#1": "items.[&4].[0].origemProduto"
              }
            },
           //tipoMercadoria
            "tipoMercadoria": {
              "PRODUTO_ACABADO": {
                "#5": "items.[&4].[0].tipoProduto"
              },
              "KIT": {
                "#3": "items.[&4].[0].tipoProduto"
              },
              "MATERIAL_CONSUMO": {
                "#1": "items.[&4].[0].tipoProduto"
              },
              "SERVICOS": {
                "#6": "items.[&4].[0].tipoProduto"
              },
              "BOI_CASADO": {
                "#3{
                  "valor": "=concat(@(1,valor),'')",
                  "valorBaseFcp_": "=split('\\.',@(1,valor))",
                  "valorBase_Fcp": "=join(',',@(1,valorBaseFcp_))"
                }
              }
            }
          }
        }
      }
    }
  }
  ,
   //FILTRAR ICMS e PISCOFINS VALIDOS ID != 0
  {
    "operation": "shift",
    "spec": {
      "items": {
        "*": {
          "produto": "items[&1].produto",
          "ncm": "items[&1].ncm",
          "piscofins": {
            "*": {
              "codTribPisCofins": {
                "0": { "@2": "piscofins_ignorado[]" },
                "*": { "@2": "items[&5].piscofins[]" }
              }
            }
          },
          "icms": {
            "*": {
              "id": {
                "0": { "@2": "icms_ignorado[]" },
                "*": { "@2": "items[&5].icms[]" }
              }
            }
          }
        }
      }
    }
    },
  {
    "operation": "shift",
    "spec": {
      "items": {
        "*": {
          //Produto
          "produto": {
            "@(1,icms[0].cst)": "items.[&2].cstIcms",
            "codigoCest": "items.[&2].cest",
            "idExterno": "idExterno",
            "idRetaguarda": "items.[&2].idRetaguarda",
            "situacao": {
              "Inativo": { "#0": "items.[&4].[0].tipoProduto"
             situacao" }
            },
                   "CESTA_BASICAmultiplo": {
                "#3              "valor": "items.[&43].[0].tipoProdutoquantidadeMovimentacao"
                   },
                   "*descricao": {
                "#0"items.[&2].descricao",
            "@(1,produto.unidade.sigla)": "items.[&42].[0].tipoProdutounidadeMedida",
              }
            }"descontoMaximo": "items.[&2].descontoMaximo",
            //tipoFracaoProduto
            "tipoFracaoProdutocodigo": {
              "NAO_ACEITA_FRACIONAMENTO": {
                "#false": "items.[&4].[0].fracionado"
              },
              "*": {
                "#true"items.[&2].codigoProduto",
            "codfilial": "items.[&2].idProprietario",
            //  "origemProd": "items.[&2].origemProduto",
            "codigoDeBarra": "items.[&42].[0].fracionadocodigoAlternativo",
              }
            },
            "cnpjFornecedor      "origemProd": {
              "Nacional": {
                "#0": "items.[&24].[0].cnpjFornecedororigemProduto"
          },
          //NCM
          "ncm_old": {
            },
              "*": {
              "id                "#1": "items[&3][0].ncms[&14].idRetaguardaorigemProduto",
                   "@(2,produto.codfilial)": "items.[&3][0].ncms[&1].idProprietario"
            }
          },
          "ncm": {
            "*": {
              "id  }
            },
            //tipoMercadoria
            "tipoMercadoria": {
                "0": {
                  "@(2,id)": "ncm_ignorados"
                },
                "*      "PRODUTO_ACABADO": {
                "#5": "items.[&4].tipoProduto"
              },
              "KIT": {
                  "@(2,id)": "items[&5][0].ncms[&3].idRetaguarda",
                  "@(4,produto.codfilial)#3": "items.[&5][04].ncms[&3].idProprietariotipoProduto"
                }
              },
            }
          },
          //PISCOFINS
          "piscofinsMATERIAL_CONSUMO": {
              "*": {
              "codTribPisCofins#1": "items[&3][0].pisCofins[&14].idRetaguardatipoProduto",
              "@(2,produto.codfilial)": "items.[&3][0].pisCofins[&1].idProprietario"
            },
          },
          //ICMS/ST
          "icmsSERVICOS": {
             "*": {
              "substituicaoTributaria": {
                "icmsExterno": {
                  "valor": {
                    "0": {
                      "@(4,idRetaguardaIcms)": "items[&7][0].impostos[&5].idRetaguarda",
                      "@(4,codigoFilial)": "items[&7][0].impostos[&5].idProprietario"
                    },
                    "*": {
                      "@(4,idRetaguardaSt)": "items[&7][0].impostos[&5].idRetaguarda",
                      "@(4,codigoFilial)": "items[&7][0].impostos[&5].idProprietario"
                    }
                  }
                }
              },
              //FECP
              "fcp": {
                "id": "items[&4][0].fcps[&2].idRetaguarda",
                "@(3,produto.codfilial)": "items.[&4][0].fcps[&2].idProprietario",
                "@(1,fcp.percentualFcp.valor)         "#6": "items.[&4].tipoProduto"
              },
              "BOI_CASADO": {
                "#3": "items.[&4].tipoProduto"
              },
              "CESTA_BASICA": {
                "#3": "items.[&4].tipoProduto"
              },
              "*": {
                "#0": "items.[&4].tipoProduto"
              }
            },
            //tipoFracaoProduto
            "tipoFracaoProduto": {
              "NAO_ACEITA_FRACIONAMENTO": {
                "#false": "items.[&4][0].fcps[&2].percentualFcp",
                "@(1,fcp.codigoBeneficioFiscal.valor)": "items.[&4][0].fcps[&2].codigoBeneficioFiscal",
                "descontaDesoneracaoNf": "items.[&4][0].fcps[&2].descontaDesoneracaoNf",
                "@(1,fcp.valorBaseFcp.valor)fracionado"
              },
              "*": {
                "#true": "items.[&4][0].fcps[&2].valorBaseFcp.fracionado"
               }
            }
          }
        }
      },
    }
    },
  {
    "operation           "cnpjFornecedor": "defaultitems.[&2].cnpjFornecedor",
      "spec": {
      "_attr_access": "items",
      "items[]embalagens": {
            "*[]": {
          "*": {
               "idInquilino": "{{ID_INQUILINO}}",
            "idProprietarioIdProdutoRetaguarda": "{{FILIAL_ID_PROPRIETARIO}}"items.[&4].produtoEmbalagens[&1].IdProdutoRetaguarda",
            "loteOrigem": "{{LOTE_ORIGEM}}",
               "indiceTributoImpressoraidRetaguarda": "items.[&4].produtoEmbalagens[&1].idRetaguarda",
               "tipo": 0,
            "situacaodescricao": "items.[&4].produtoEmbalagens[&1].descricao",
               "escalaRelevante": true,
            "codigoAlternativocodigoDeBarra": "0items.[&4].produtoEmbalagens[&1].codigoBarras",
               "tipoArredondaTrunca": "0",
            "cstIcmsunidade": "CST",{
            "percentualReducaoIcms": 0,
            "aliquotaIcms": 0,
            "vlicmsretsigla": 0,
            "cest": "cest",
            "arredondaTrunca": "0",
            "descontoMaximo": 99,
            "impostos[]"items.[&5].produtoEmbalagens[&2].unidadeMedida"
                },
                "fatorConversao": {
              "*": {
                "idRetaguarda": "0",
                "idProprietario": "0"
              }
            },
            "pisCofins[]": {
              "*": {
                "idRetaguarda": "0",
                "idProprietario": "0"
              }
            }
          }
        }
      }
    }
   }
  ]

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

{{FILIAL}}1STRING
            "valor": "items.[&5].produtoEmbalagens[&2].quantidade"
                },
                "inativo": {
                  "false": { "#1": "items.[&6].produtoEmbalagens[&3].situacao" },
                  "*": { "#0": "items.[&6].produtoEmbalagens[&3].situacao" }
                }
              }
            },
            "produtoKits": {
              "*": {
                "idRetaguardaProduto":"items.[&4].produtoKits[&1].idRetaguardaProduto",
                "idRetaguardaProdutoKit": "items.[&4].produtoKits[&1].idRetaguardaProdutoKit",
                "descricao": "items.[&4].produtoKits[&1].descricao",
                "quantidadeVendaKit": "items.[&4].produtoKits[&1].quantidadeVendaKit",
				"tipoValorKit": "items.[&4].produtoKits[&1].tipoValorKit",
				"situacao": "items.[&4].produtoKits[&1].situacao",
				"valorDesconto": "items.[&4].produtoKits[&1].valorDesconto",
				"novoValorUnitario": "items.[&4].produtoKits[&1].novoValorUnitario"
              }
            }	
          },
          //NCM
          "ncm_old": {
            "*": {
              "id": "items[&3].ncms[&1].idRetaguarda",
              "@(2,produto.codfilial)": "items.[&3].ncms[&1].idProprietario"
            }
          },
          "ncm": {
            "*": {
              "id": {
                "0": {
                  "@(2,id)": "ncm_ignorados"
                },
                "*": {
                  "@(2,id)": "items[&5].ncms[&3].idRetaguarda",
                  "@(4,produto.codfilial)": "items.[&5].ncms[&3].idProprietario"
                }
              }
            }
          },
          //PISCOFINS
          "piscofins": {
            "*": {
              "codTribPisCofins": "items[&3].pisCofins[&1].idRetaguarda",
              "@(2,produto.codfilial)": "items.[&3].pisCofins[&1].idProprietario"
            }
          },
          //ICMS/ST
          "icms": {
            "*": {
              "substituicaoTributaria": {
                "icmsExterno": {
                  "valor": {
                    "0": {
                      "@(4,idRetaguardaIcms)": "items[&7].impostos[&5].idRetaguarda",
                      "@(4,codigoFilial)": "items[&7].impostos[&5].idProprietario"
                    },
                    "*": {
                      "@(4,idRetaguardaSt)": "items[&7].impostos[&5].idRetaguarda",
                      "@(4,codigoFilial)": "items[&7].impostos[&5].idProprietario"
                    }
                  }
                }
              },
              //FECP
              "fcp": {
                "id": "items[&4].fcps[&2].idRetaguarda",
                "@(3,produto.codfilial)": "items.[&4].fcps[&2].idProprietario",
                "@(1,fcp.percentualFcp.percentual_Fcp)": "items.[&4].fcps[&2].percentualFcp",
                "@(1,fcp.codigoBeneficioFiscal.valor)": "items.[&4].fcps[&2].codigoBeneficioFiscal",
                "descontaDesoneracaoNf": "items.[&4].fcps[&2].descontaDesoneracaoNf",
                "@(1,fcp.valorBaseFcp.valorBase_Fcp)": "items.[&4].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,
          "codigoAlternativo": "0",
          "tipoArredondaTrunca": "0",
          "cstIcms": "",
          "percentualReducaoIcms": 0,
          "aliquotaIcms": 0,
          "vlicmsret": 0,
          "cest": "",
          "arredondaTrunca": "0",
          "descontoMaximo": 99,
          "impostos[]": {
            "*": {
              "idRetaguarda": "0",
              "idProprietario": "0"
            }
          },
          "pisCofins[]": {
            "*": {
              "idRetaguarda": "0",
              "idProprietario": "0"
            }
          }
        }
      }
    }
       }
  ]



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

{{FILIAL}}2STRING
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

4-ENVIAR
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": "pageSize",
          "value": "{{PAGE_SIZE}}"
        },
        {
          "key": "page",
          "value": "{{PAGE}}"
        },
        {
          "key": "filial",
          "value": "{{FILIAL}}"
        },
        {
          "key": "dataUltimaAlteracao",
          "value": "{{LAST_CHANGE}}"
        },
        {
          "key": "dataExclusao",
          "value": "{{DATAMENOS60DIAS}}"
        },
        {
          "key": "revenda",
          "value": "{{REVENDA}}"
        },
        {
          "key": "tipoMercadoria",
          "value": "{{TIPOMERCADORIA}}"
        }
      ]
    },
    "bodyraw": ""
  },
  "response": []
}
Totvs custom tabs box items
defaultno
referenciarota2

Dados: 

CAMPOVALORDESCRIÇÃO
ID EmpresaCódigo do Winthor cadastrado em empresa na rotina 2650StatusATIVOAutenticadorNÃOArquiteturaJSON

Ordem Execução

1

Tipo de Processo

4-ENVIAR
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_PRODUTO}}",
				"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-qa-aadivv24nq-ue.a.run.app/api/retaguarda/produtosSTRING



...