Objetivo
Este documento tem como objetivo explicar o funcionamento da integração de politica de desconto da rotina 561.
Pré-Requisitos e Restrições
- Necessário a instalação do serviço winthor-integracao-preco. Para realizar a instalação desse serviço, segue link com as devidas explicações:
Comece por aqui -> Parametrizações WTA
- A rotina 561 - Cadastrar Política de Desconto tem como objetivo possibilitar o cadastro de políticas de desconto. É utilizada quando a empresa tem interesse em conceder descontos em determinadas situações nos quais poderão ser delimitados por período de vigência, podendo ocorrer também por regiões, clientes, RCA's, supervisores, departamentos, seções ou produtos. Para mais informações 561 - Cadastrar Política de Desconto - DR
Para validar se uma política está válida, deverá verificar se a mesma não foi movida para o log (PCDESCONTOLOG).
Para uma política de desconto/ acréscimo está apta para envio, deverá atender as condições abaixo:
1 - PCDESCONTO.TIPO = 'C' (DESCONTO COMERCIAL)
2 - NVL(PCDESCONTO.ORIGEMPED,'O') IN ('A','O')
3 - PCDESCONTO.APLICADESCONTO = 'S' (APLICA DESCONTO AUTOMATICAMENTE)
4 - PCDESCONTO.CODAUXILIAR IS NOT NULL OR PCDESCONTO.CODPROD NÃO DEVE SER NULO
5 - SE, NVL(PCDESCONTO.APENASPLPAGMAX,'N') = 'S', E, PCDESCONTO.CODPLPAG NÃO DEVE SER NULO
6 - PCDESCONTO.TIPOGRUPOREST IN ('CL') ENTAO PCDESCONTO.CODGRUPOREST NÃO PODE SER NULO
Integração
Totvs custom tabs box |
---|
tabs | Dados integrados com Winthor, Envio Parâmetros, Resposta da Requisição, Passo 04 |
---|
ids | passo1,passo2,passo3 |
---|
|
A integração consiste em enviar todas as regras de politica de desconto cadastradas na 561 por filial. Totvs custom tabs box items |
---|
default | yes |
---|
referencia | passo1 |
---|
| Os dados integrados são: Tag | Winthor | Tipo/ Tam | JSON | Obs | codigoCampanha | pcdesconto.coddesconto | number(8,0) | campaignId | Código da campanha | codigoFilial | pcdesconto.codfilial | varchar2(2) | branchId | Código da filial | numeroRegiao | pcdesconto.numregiao | number(4) | regionId | Código da região | codigoProduto | pcdesconto.codprod | number(6,0) | productId | Código do produto | codigoBarras | pcdesconto.codauxiliar | number(20,0) | barCode | Código auxiliar | codigoProdutoPrincipal | pcdesconto.codprodprinc | number(6) | mainProductId | Código do produto principal | codigoPlanoPagamento | pcdesconto.codplpag | number(4) | paymentTermId | Código do plano de pagamento | codigoGrupoRestricaoPlanoPagto | pcdesconto.codgrupo | number(10) | groupClientId |
| codigoPraca | pcdesconto.codpraca | number(4) | squareId | Código da praça | codigoRamoAtividade | pcdesconto.codativ | number(6) | branchActivityId | Código do ramo de atividade | usaClientePrincipal | pcdesconto.utilizadescrede | varchar2(1) | useFeeClientNet |
| aplicaDescontoAutomatico | pcdesconto.aplicadesconto | varchar2(1) | taxApplied |
| origem | pcdesconto.origemped | varchar2(1) | orderOrigin | O - Todos | A - Varejo | codigoFornecedor | pcdesconto.codfornec | number(6) | supplierId | Código do fornecedor | percentualTaxaFornecedor | pcdescontofornec.percdesc | number(10,4) | supplierFeePercentage |
| prioritaria | pcdesconto.prioritariageral | varchar2(1) | priority |
| usaProdutoPrincipal | pcdesconto.alteraptabela | varchar2(1) | useMainProductId | Ativa a promoção para produtos principais | codigoCliente | pcdesconto.codcli | number(9) | clientId |
| codigoGrupoCliente | pcdesconto.codgrupo | number(10) | groupClientId |
| codigoRedeCliente | pcdesconto.codrede | number(4) | clientNetId |
| qtdInicial | pcdesconto.qtini | number(10,4) | startQtd |
| qtdFinal | pcdesconto.qtfim | number(10,4) | endQtd |
| dataInicio | pcdesconto.dtinicio | date | startDate | Data de inicio da campanha | dataFim | pcdesconto.dtfim | date | endDate | Data de fim da campanha | percentualTaxa | pcdesconto.percdesc | number(10,4) | feePercentage | Se valor positivo é desconto, senão , acréscimo | percentualValue | pcdesconto.percdesc | number(10,4) | PercentageValue | Campo sem o Sinal de - ou + | tipo | Calculado | Inteiro | type | Tipo de aplicação pcdesconto.percdesc sendo: 0 = desconto ,1 = acréscimo Se valor positivo é desconto=0 , senão - é acréscimo | situacao |
| String | situation | I = Cadastro inativo A = Cadastro ativo | dataCadastro | pcdesconto.datalanc | date | registrationDate | Data de cadastro | dataUltimaAlteracao | pcdesconto.dataultalter | date | lastChangeDate | Ultima alteração | codigoRestricaoPlanoPagto | pcdesconto.codgruporest | number(9) | restrictionId |
| codigoTipoRestricaoPlanoPagto | pcdesconto.tipogruporest | varchar2(2) | restrictionTermTypeCode | 'CL' - Cliente | codigoDepartamento | pcdesconto.codepto | Inteiro |
| Data de inicio da campanha | codigoSecao | pcdesconto.codsec | Inteiro |
| Código da seção | codigoCategoria | pcdesconto.codcategoria | Inteiro |
| Código da categoria | codigoSubCategoria | pcdesconto.subcategoria | Inteiro |
| Código da sub categoria | codigoMarca | pcdesconto.codmarca | Inteiro |
| Código da marca |
|
Totvs custom tabs box items |
---|
default | no |
---|
referencia | passo2 |
---|
| Exemplo do envio da requisição: Bloco de código |
---|
| method: 'GET',
url: '/winthor/precos/v1/politica-desconto' -> Poderá informar todos os PARAMS abaixo.
|
Bloco de código |
---|
| page : 1 - número de página
pageSize : 10 - quantidade por página
lastChange : 1900-01-01T00:00:00 - data da última alteração
startDate : 1900-01-01T00:00:00 - data de inicio do pedido
endDate : 1900-01-01T00:00:00 - data de fim do pedido
id : 0 - Código da campanha
branchId : String - Código da Filial (lista separado por virgula)
regionId : 0 - Código da região (lista separado por virgula)
productId : 0 - Código do produto (lista separado por virgula)
barCodeId : 0 - Código de barras
suppierId : 0 - Código do fornecedor
active : true/false - Somente cadastros ativos
|
|
Totvs custom tabs box items |
---|
default | no |
---|
referencia | passo3 |
---|
| Exemplo JSON da resposta: Bloco de código |
---|
language | js |
---|
title | Body Response |
---|
| {
"first": false,
"items": [
{
"situation": "A",
"campaignId": 4899,
"branchId": "1",
"regionId": 0,
"productId": 1658,
"mainProductId": 0,
"paymentTermId": 1,
"groupClientId": 0,
"squareId": 0,
"branchActivityId": 0,
"useFeeClientNet": "N",
"taxApplied": "S",
"orderOrigin": "O",
"supplierId": 0,
"supplierFeePercentage": 0,
"priority": "N",
"useMainProductId": "N",
"clientId": 0,
"clientNetId": 0,
"startDate": "0024-11-06T00:00:00",
"endDate": "0025-11-06T00:00:00",
"feePercentage": -10,
"percentageValue": 10,
"type": 1,
"registrationDate": "2024-11-06T17:10:19",
"lastChangeDate": "0024-11-06T00:00:00",
"restrictionId": 1,
"restrictionTermTypeCode": "CL",
"codeDepartment": 0,
"codeSection": 0,
"codeCategory": 0,
"codeSubCategory": 0,
"brandcode": 0
}
],
"hasNext": false
} |
|
|
Para que seja realizada uma nova integração atualizando um registro já integrado, o sistema verifica a data de última atualização do registro. Portanto, ao realizar alguma alteração no registro, ele será encaminhado novamente para manter a integridade dos dados.