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 Preço 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-pedido-venda
  • Rotas de lotes de origem configuradas (PDVSYNC - LOTE DE ORIGEM)

Rotas de serviços

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

...

Totvs custom tabs box
tabsRota de busca do Preço , Rota de envio do Preço 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 Preços ao PDVSYNC
Bloco de código
languagejs
themeEclipse
firstline1
titleLayout de comunicação
{
	    "name": "WTA - Buscar ICMSPreco - Ecommerce",
	    "request": {
		        "method": "GET",
		        "header": [
			{
				            {
                "key": "Authorization",
				                "value": "Bearer {{TOKEN}}"
			},
			{
				            },
            {
                "key": "Accept",
				                "value": "*/*"
			}
		],
		            }
        ],
        "url": {
			            "raw": "{{URL_BASE}}/winthorapi/tributacaowholesale/v0v1/saida/icms/consultarprice/list?",
			            "query": [
				{
					"key": "tamanho",
					"value": "{{PAGE_SIZE}}"
				},
				{
					"                {
                    "key": "paginabranchId",
					"value":                     "value": "{{PAGEFILIAL}}"
				},
				
				{
					                } ,
                {
                    "key": "dataUltimaAlteracaolastChange",
					"value": "{{                    "value": "{{LAST_CHANGE}}"
				}
			]
		}
	},
	"response": []
}                }
            ]
        }
    },
    "response": []
}
Bloco de código
languagejs
themeEclipse
titleLayout de transformação
[
    {
        "operation": "modify-overwrite-beta",
        "spec": {
            "items": {
                "*": {
                    "idExternoPreco": "=concat('pdvsync-preco-', @(1,skuId),'-',@(1,branchId),'-', @(1,lastChange))",
                    "idExternoDesconto": "=concat('pdvsync-preco-desconto-', @(1,skuId),'-',@(1,branchId),'-', @(1,lastChange))",
                    "situacao": 0,
                    "skuId__": "=split('-', @(1,productId))",
                    "skuID_": "=lastElement(@(1,skuId__))",
                    "price": "=toString",
                    "priceConverter_": "=split('\\.', @(1,price))",
                    "priceConverter": "=join(',', @(1,priceConverter_))",
                    "erpReferenceKey": "=toString",
                    "idRetaguardaDesconto": "=concat(@(1,skuId),'-desconto')",
                    "discount": "=toString(@(1,discountPolicy.discount))",
                    "discountConverter_": "=split('\\.', @(1,discount))",
                    "discountConverter": "=join(',', @(1,discountConverter_))"
                }
            }
        }
    },
    {
        "operation": "shift",
        "spec": {
            "items": {
                "*": {
                    "idExternoPreco": "items[&1].[0].idExterno",
                    "skuId": [
                        "items[&1].[0].idRetaguardaProduto",
                        "items[&1].[0].idRetaguarda"
                    ],
                    "erpReferenceKey": "items[&1].[0].codigoProduto",
                    "priceConverter": "items[&1].[0].valor",
                    "quantity": "items[&1].[0].saldo",
                    "skuID_": "items[&1].[0].codigoProduto",
                    "productId": "items[&1].[0].idRetaguardaProduto",
                    "discountPolicy": {
                        "@(1,idExternoDesconto)": [
                            "items[&2].[1].idExterno"
                        ],
                        "@(1,skuId)": [
                            "items[&2].[1].idRetaguardaProduto"
                        ],
                        "@(1,idRetaguardaDesconto)": [
                            "items[&2].[1].idRetaguarda"
                        ],
                        "@(1,erpReferenceKey)": "items[&2].[1].codigoProduto",
                        "@(1,quantity)": "items[&2].[1].saldo",
Bloco de código
languagejs
themeEclipse
titleLayout de transformação
[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "items": {
        "*": {
          "idExterno": "=concat('pdvsync-icms-st-',      "@(1,id),'-', @(1,dataUltimaAlteracao))skuID_)": "items[&2].[1].codigoProduto",
           "idRetaguardaIcms": "=concat(@(1,id),'-ICMS')",
            "idRetaguardaSt": "=concat(@(1,id),'-ST')productId)": "items[&2].[1].idRetaguardaProduto",
          "aliquota_check_modalidate": "=concat(@(1,aliquota),'')",
             "aliquota_str": "=concat(@(1,aliquotapriceConverter), '')": "items[&2].[1].valor",
          "aliquota_arr": "=split('\\.',@(1,aliquota_str))",
             "aliquota": "=join(',', @(1,aliquota_arr))discountConverter)": "items[&2].[1].precoPromocional",
          "reducaoBaseCalculo_str": "=concat(@(1,reducaoBaseCalculo), '')",
             "reducaoBaseCalculo_arrstartDate": "=split('\\.',@(1,reducaoBaseCalculo_str))items[&2].[1].dataHoraVigenciaInicial",
          "reducaoBaseCalculo": "=join(',', @(1,reducaoBaseCalculo_arr))",
              "substituicaoTributariaendDate": {[
            "icmsInterno_str": "=concat(@(1,icmsInterno), '')",
               "icmsInterno_arr": "=split('\\.',@(1,icmsInterno_str)) "items[&2].[1].dataHoraVigenciaFinal",
             "icmsInterno": "=join(',', @(1,icmsInterno_arr))",
            "ireducaoBaseCalculo_str": "=concat(@(1,reducaoBaseCalculo), '')",
 "items[&2].[0].dataHoraVigenciaInicial"
              "reducaoBaseCalculo_arr": "=split('\\.',@(1,ireducaoBaseCalculo_str))",
          ]
    "reducaoBaseCalculo": "=join(',', @(1,reducaoBaseCalculo_arr))"
               }
                }
            }
        }
    },
    {
        "operation": "shift",

        "spec": {
            "specitems": {
       "items": {
        "*": {
          //ICMS
          "idExterno*": "idExterno",
{
             "idRetaguardaIcms": "items.[&1].[0].idRetaguarda",
          "aliquota@": "items.[&1].[0].aliquotaTributoitems",
              "reducaoBaseCalculo          "idExterno": "items.idExterno[&1].[0].reducaoBaseCalculo",
           //COMPARTILHADO   COM ICMS E ST
   }
       "modalidadeVarejo": ["items.[&1].[0].modalidade", "items.[&1].[1].modalidade"],         }
          "simboloVarejo": ["items.[&1].[0].simbolo", "items.[&1].[1].simbolo"], }
        }
  /*ST*/
  },
    {
        "idRetaguardaStoperation": "items.[&1].[1].idRetaguarda",
default",
        "spec": {
            "substituicaoTributaria_attr_access": {"items",
            "icmsInterno": "items.[&2].[1].aliquotaTributo",
: {
                "reducaoBaseCalculo*": "items.[&2].[1].reducaoBaseCalculo"
{
             }
       "idInquilino": "{{ID_INQUILINO}}",
      }
      }
  },
  {
    "operationidProprietario": "default{{FILIAL_ID_PROPRIETARIO}}",
     "spec": {
        "_attr_access": "items",
      "items[]loteOrigem": "{{LOTE_ORIGEM}}",
        "*[]": {
            "*situacao": {1,
            "idInquilino        "sequencial": "{{ID_INQUILINO}}",
0,
                    "idProprietariosincronizadoEtiquetaEletronica": "{{MASTER_ID_PROPRIETARIO}}"0,
            "loteOrigem        "dataHoraVigenciaInicial": "{{LOTEDATA_HORA_ORIGEMAGORA}}",
            "indiceTributoImpressora": "",
            "tipodataHoraVigenciaFinal": 0,"{{D_MAIS_365}}"
            "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

{{FILIAL}}1STRING
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 Enviar Preco ICMSProdutos",
	"request": {
		"method": "POST",
		"header": [
			{
				"key": "Accept",
				"value": "*/*"
			},
			{
				"key": "Content-Type",
				"value": "application/json"
			}
		],
		"url": {
			"raw": "{{URL_ENVIAR_ICMSPRECO_PRODUTOS}}",
			"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}}
STRING
{{ID_INQUILINO}}
STRING
{{CLIENT_JSON}}:PCINTEGRACAOCORE.DADOSTRANSFORMADOSSTRING
{{URL_ENVIAR_ICMSPRECO_PRODUTOS}}https://pdvsync-core-preco-qa-aadivv24nq-ue.a.run.app/api/retaguarda/precosSTRING



...