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 (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
Totvs custom tabs box items
defaultyes
referenciarota1
Bloco de código
languagejs
themeEclipse
titleLayout de transformação
[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "items": {
        "*": {
          "produto": {
            "idRetaguarda": "=concattoString(@(1,codigoDeBarra),'-',@(1,codigo))",
            "idExterno": "=concat('pdvsync-produto-', @(1,idRetaguarda),'-',@(1,codfilial),'-',@(1,dtultalter))",
            "codigoProduto": "@(1,idRetaguarda)",
            "codigoFilial": "{{FILIAL_ID_PROPRIETARIO}}",
          },
          "ncm"embalagens": {
              "*": {
                "codigoNcm_idRetaguarda": "=split('\\.concat(@(1,codigoDeBarra),'-', @(1,codigoNcmproduto))",
                "codigo_NcmIdProdutoRetaguarda": "=join('concat(@(3,codigoDeBarra),'-', @(1,codigoNcm_produto))",
            }
          "descricao": ["@(1,descricao)", "=concat(@(3,descricao),' - ',@(1,embalagem))"]
              }
            }
          },
          "icmsncm": {
            "*": {
              "idRetaguardaIcmscodigoNcm_": "=concat(@split('\\.', @(1,idcodigoNcm),'-ICMS')",
              "idRetaguardaStcodigo_Ncm": "=concatjoin('', @(1,id),'-ST'codigoNcm_))",
            }
     "codigoFilial": "@(3,produto.codfilial)",
    },
          "fcpicms": {
                "percentualFcp*": {
                  "valoridRetaguardaIcms": "=concat(@(1,valorid),'-ICMS')",
                  "percentualFcp_": "=split('\\.',"idRetaguardaSt": "=concat(@(1,valorid),'-ST')",
                  "percentual_FcpcodigoFilial": "=join(',',@(1,percentualFcp_))"3,produto.codfilial)",
                },"fcp": {
                "valorBaseFcppercentualFcp": {
                  "valor": "=concat(@(1,valor),'')",
                  "valorBaseFcppercentualFcp_": "=split('\\.',@(1,valor))",
                  "valorBasepercentual_Fcp": "=join(',',@(1,valorBaseFcppercentualFcp_))"
                },
              }
  "valorBaseFcp": {
         }
          }
"valor": "=concat(@(1,valor),'')",
        }
      }
    }
  }"valorBaseFcp_": "=split('\\.',@(1,valor))",
 //FILTRAR ICMS e PISCOFINS VALIDOS ID != 0
  {
    "operation": "shift",
    "specvalorBase_Fcp": {
 "=join(',',@(1,valorBaseFcp_))"
     "items": {
          "*": {}
          "produto": "items[&1].produto",
    }
           "ncm": "items[&1].ncm", }
          "piscofins": {
}
        }
     "*": {}
    }
  }
  ,
   //FILTRAR ICMS e "codTribPisCofins": {
     PISCOFINS VALIDOS ID != 0
  {
      "operation": "shift",
     "0spec": {
      "@2items": "piscofins_ignorado[]" },
{
        "*": {
        "*": { "@2produto": "items[&51].piscofins[]" }produto",
              }
            }
          }"ncm": "items[&1].ncm",
          "icmspiscofins": {
            "*": {
              "idcodTribPisCofins": {
                "0": { "@2": "icmspiscofins_ignorado[]" },
                "*": { "@2": "items[&5].icmspiscofins[]" }
              }
            }
          },
        }
      }"icms": {
    }
  },
  {
    "operation*": "shift",{
    "spec": {
        "items": {
        "*"id": {
          //Produto
          "produto0": {
 "@2": "icms_ignorado[]" },
         "idExterno": "idExterno",
           "*": { "idRetaguarda@2": "items.[&25].icms[0].idRetaguarda",
			"situacao": {}
              "Inativo": { "#0": "items.[&4].[0].situacao" }
}
            }
          }
        },
             "descricao": "items.[&2].[0].descricao",
  }
    }
    },
  {
    "@(1,produto.unidade.sigla)""operation": "items.[&2].[0].unidadeMedidashift",
      "spec": {
      "descontoMaximoitems": "items.[&2].[0].descontoMaximo",
{
        "*": {
       "codigo": "items.[&2].[0].codigoAlternativo",
  //Produto
          "codfilialproduto": {
            "@(1,icms[0].cst)": "items.[&2].[0].idProprietariocstIcms",
            //  "origemProdcodigoCest": "items.[&2].[0].origemProdutocest",
            "codigoDeBarraidExterno": "items.[&2].[0].codigoProdutoidExterno",
            "origemProdidRetaguarda": {
  "items.[&2].idRetaguarda",
            "Nacionalsituacao": {
                ""Inativo": { "#0": "items.[&4].[0].origemProduto"
  situacao" }
            },
              "*multiplo": {
                "#1valor": "items.[&43].[0].origemProdutoquantidadeMovimentacao"
              },
            }"descricao": "items.[&2].descricao",
            //tipoMercadoria "@(1,produto.unidade.sigla)": "items.[&2].unidadeMedida",
            "tipoMercadoriadescontoMaximo": {"items.[&2].descontoMaximo",
              "PRODUTO_ACABADOcodigo": {
 "items.[&2].codigoProduto",
               "#5codfilial": "items.[&42].[0].tipoProdutoidProprietario",
            //  } "origemProd": "items.[&2].origemProduto",
              "KITcodigoDeBarra": {"items.[&2].codigoAlternativo",
                "#3": "items.[&4].[0].tipoProduto"
              },"origemProd": {
              "MATERIAL_CONSUMONacional": {
                "#1#0": "items.[&4].[0].tipoProdutoorigemProduto"
              },
              "SERVICOS*": {
                "#6#1": "items.[&4].[0].tipoProdutoorigemProduto"
              },
            },
  "BOI_CASADO": {
         //tipoMercadoria
       "#3": "items.[&4].[0].tipoProduto"
              },"tipoMercadoria": {
              "CESTAPRODUTO_BASICAACABADO": {
                "#3#5": "items.[&4].[0].tipoProduto"
              },
              "*KIT": {
                "#0#3": "items.[&4].[0].tipoProduto"
              },
              }, "MATERIAL_CONSUMO": {
            //tipoFracaoProduto
    "#1": "items.[&4].tipoProduto"
       "tipoFracaoProduto": {       },
              "NAO_ACEITA_FRACIONAMENTOSERVICOS": {
                "#false#6": "items.[&4].[0].fracionadotipoProduto"
              },
              "*BOI_CASADO": {
                "#true#3": "items.[&4].[0].fracionadotipoProduto"
              },
            },
  "CESTA_BASICA": {
                "cnpjFornecedor#3": "items.[&24].[0].cnpjFornecedortipoProduto"
              },
           //NCM
   "*": {
      "ncm_old": {
            "*#0": {
              "id": "items[&3][0].ncms[&14].idRetaguardatipoProduto",
              "@(2,produto.codfilial)": "items.[&3][0].ncms[&1].idProprietario"}
            },
          },  //tipoFracaoProduto
            "ncmtipoFracaoProduto": {
            "*  "NAO_ACEITA_FRACIONAMENTO": {
                "id#false": {
"items.[&4].fracionado"
              },
     "0         "*": {
                  "@(2,id)#true": "ncm_ignoradositems.[&4].fracionado"
                },
            },
     "*": {
                  "@(2,id)"cnpjFornecedor": "items[&5][0].ncms[&32].idRetaguardacnpjFornecedor",
                  "@(4,produto.codfilial)"embalagens": "items.[&5][0].ncms[&3].idProprietario"{
                }
 "*": {
             }
    "IdProdutoRetaguarda":"items.[&4].produtoEmbalagens[&1].IdProdutoRetaguarda",
        }
          }"idRetaguarda": "items.[&4].produtoEmbalagens[&1].idRetaguarda",
          //PISCOFINS
      "descricao": "items.[&4].produtoEmbalagens[&1].descricao",
   "piscofins": {
            "*codigoDeBarra": {
 "items.[&4].produtoEmbalagens[&1].codigoBarras",
                "codTribPisCofinsunidade": "items[&3][0].pisCofins[&1].idRetaguarda",
{
                  "@(2,produto.codfilial)sigla": "items.[&3][05].pisCofinsprodutoEmbalagens[&12].idProprietariounidadeMedida"
            }
          },
          //ICMS/ST
          "icmsfatorConversao": {
            "*": {
              "substituicaoTributariavalor": {"items.[&5].produtoEmbalagens[&2].quantidade"
                "icmsExterno": {},
                  "valorinativo": {
                    "0false": {
 "#1": "items.[&6].produtoEmbalagens[&3].situacao" },
                   "@(4,idRetaguardaIcms)"*": { "#0": "items.[&76][0].impostosprodutoEmbalagens[&53].idRetaguardasituacao", }
                }
      "@(4,codigoFilial)": "items[&7][0].impostos[&5].idProprietario"
        }
            },
            "produtoKits": {
              "*": {
                      "@(4,idRetaguardaSt)"idRetaguardaProduto": "items.[&74][0].impostosprodutoKits[&51].idRetaguardaidRetaguardaProduto",
                      "@(4,codigoFilial)"idRetaguardaProdutoKit": "items.[&74][0].impostosprodutoKits[&51].idProprietarioidRetaguardaProdutoKit",
                    }"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"
         //FECP
      }
        "fcp": {
   }	
          },
          //NCM
          "ncm_old": {
            "*": {
              "id": "items[&4][03].fcpsncms[&21].idRetaguarda",
                "@(32,produto.codfilial)": "items.[&4][03].fcpsncms[&21].idProprietario",
            }
         "@(1,fcp.percentualFcp.percentual_Fcp)": "items.[&4][0].fcps[&2].percentualFcp",
     },
          "ncm": {
            "@(1,fcp.codigoBeneficioFiscal.valor)": "items.[&4][0].fcps[&2].codigoBeneficioFiscal",
*": {
                 "descontaDesoneracaoNfid": "items.[&4][0].fcps[&2].descontaDesoneracaoNf",{
                "@(1,fcp.valorBaseFcp.valorBase_Fcp)0": "items.[&4][0].fcps[&2].valorBaseFcp"{
              }
    "@(2,id)": "ncm_ignorados"
       }
          },
        }
        "*": }{
       }
     },
  {
    "operation@(2,id)": "defaultitems[&5].ncms[&3].idRetaguarda",
    "spec": {
      "_attr_access": "items",
      "items[]": {
@(4,produto.codfilial)": "items.[&5].ncms[&3].idProprietario"
               "*[]": { }
          "*": {
     }
           "idInquilino": "{{ID_INQUILINO}}",
            "idProprietario": "{{FILIAL_ID_PROPRIETARIO}}",
            "loteOrigem": "{{LOTE_ORIGEM}}",//PISCOFINS
            "indiceTributoImpressorapiscofins": "",{
            "tipo*": 0,{
              "situacaocodTribPisCofins": "items[&3].pisCofins[&1].idRetaguarda",
             "escalaRelevante "@(2,produto.codfilial)": true,"items.[&3].pisCofins[&1].idProprietario"
            "codigoAlternativo": "0",}
            "tipoArredondaTrunca": "0"},
            "cstIcms": "CST",
 //ICMS/ST
           "percentualReducaoIcmsicms": 0,{
            "aliquotaIcms*": 0,{
              "vlicmsretsubstituicaoTributaria": 0,{
                "cesticmsExterno": "cest",
{
                  "arredondaTruncavalor": "0",{
            "descontoMaximo": 99,
              "impostos[]"0": {
              "*": {
                "idRetaguarda@(4,idRetaguardaIcms)": "0items[&7].impostos[&5].idRetaguarda",
                     "idProprietario "@(4,codigoFilial)": "0items[&7].impostos[&5].idProprietario"
              }
      },
       },
             "pisCofins[]*": {
              "*": {
                "idRetaguarda"@(4,idRetaguardaSt)": "0items[&7].impostos[&5].idRetaguarda",
                    "idProprietario  "@(4,codigoFilial)": "0items[&7].impostos[&5].idProprietario"
              }
      }
      }
            }
                }
              },
    }
          //FECP
       }
  ]

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
       "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



...