Páginas filhas
  • APIs Integrações - Politica de desconto

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

  • 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 uma política de desconto/ acréscimo está apta para retornar nessa API deverá atender as condições abaixo:

  1. Aba Informações Comuns > Tipo de Desconto -  PCDESCONTO.TIPO deve ser igual a 'C' para ser considerada válida.
  2. Aba Informações Comuns > Origem do Pedido - PCDESCONTO.ORIGEMPED deve ser 'A' - Auto Serviço ou 'O'- Todas.
  3. Aba Informações Comuns > Aplica desconto Automaticamente - PCDESCONTO.APLICADESCONTO deve ser igual a 'S'.
  4. Aba Informações do Produto > PCDESCONTO.CODAUXILIAR não pode ser nulo ou PCDESCONTO.CODPROD não deve ser nulo.
  5. Aba Informações Comuns > Se PCDESCONTO.APENASPLPAGMAX for 'S', na  Aba Informações do Cliente > PCDESCONTO.CODPLPAG não deve ser nulo.
  6. Aba Informações do Cliente > Se PCDESCONTO.TIPOGRUPOREST in ('CL').
  7. Se a condição anterior for verdadeira, PCDESCONTO.CODGRUPOREST não pode ser nulo, na Rotina 3311 deve-se cadastrar o Grupo Cliente.

Integração


Totvs custom tabs box
tabsDados integrados com Winthor, Envio Parâmetros, Resposta da Requisição, Passo 04
idspasso1,passo2,passo3

A integração API consiste em enviar todas buscar as regras de politica de desconto cadastradas na 561 por filial.

Totvs custom tabs box items
defaultyes
referenciapasso1

Os dados integrados são: 

Tag

WinthorTipo/ TamTag JSONObscodigoCampanha
pcdesconto.coddescontonumber(8,0)campaignIdCódigo da campanha
codigoFilialpcdesconto.codfilialvarchar2(2)branchIdCódigo da filial 
numeroRegiaopcdesconto.numregiaonumber(4)regionIdCódigo da região
codigoProdutopcdesconto.codprodnumber(6,0)productIdCódigo do produtocodigoBarras
pcdesconto.codauxiliarnumber(20,0)barCodeCódigo auxiliar
codigoProdutoPrincipalpcdesconto.codprodprincnumber(6)mainProductIdCódigo do produto principalcodigoPlanoPagamento
pcdesconto.codplpagnumber(4)paymentTermIdCódigo do plano de pagamentocodigoGrupoRestricaoPlanoPagto
pcdesconto.codgruponumber(10)groupClientIdcodigoPracaCódigo do Grupo de Cliente cadastrado na Rotina 3311
pcdesconto.codpracanumber(4)squareIdCódigo da praçacodigoRamoAtividade
pcdesconto.codativnumber(6)branchActivityIdCódigo do ramo de atividadeusaClientePrincipal
pcdesconto.utilizadescredevarchar2(1)useFeeClientNet
aplicaDescontoAutomaticopcdesconto.aplicadescontovarchar2(1)taxApplied
origempcdesconto.origempedvarchar2(1)orderOriginO - Todos | A - Varejo
codigoFornecedorpcdesconto.codfornecnumber(6)supplierIdCódigo do fornecedor percentualTaxaFornecedor
pcdescontofornec.percdescnumber(10,4)supplierFeePercentageprioritariaPercentual de desconto aplicado ao fornecedor na Rotina 4161
pcdesconto.prioritariageralvarchar2(1)priorityusaProdutoPrincipalForçar Aplicação de Política Prioritária
pcdesconto.alteraptabelavarchar2(1) useMainProductIdAtiva a promoção para produtos principaiscodigoCliente
pcdesconto.codclinumber(9)clientIdcodigoGrupoClienteCódigo do Cliente
pcdesconto.codgruponumber(10)groupClientId
codigoRedeClientepcdesconto.codredenumber(4)clientNetIdqtdInicialCódigo da rede
pcdesconto.qtininumber(10,4)startQtdqtdFinalQuantidade inicial 
pcdesconto.qtfimnumber(10,4)endQtddataInicioQuantidade final
pcdesconto.dtiniciodatestartDateData de inicio da campanhadataFim
pcdesconto.dtfimdateendDateData de fim da campanha
percentualTaxapcdesconto.percdescnumber(10,4)feePercentageSe valor positivo é desconto, senão , acréscimopercentualValue
pcdesconto.percdescnumber(10,4)PercentageValueCampo sem o Sinal de - ou +tipo
CalculadoInteirotypeTipo de aplicação pcdesconto.percdesc sendo:   0 = desconto ,1 = acréscimo
Se valor positivo é desconto=0 , senão - é acréscimo

situacaoStringsituation

active

I = Cadastro inativo 

A = Cadastro ativo

dataCadastro
  • Para validar se uma política está válida, deverá verificar se a mesma não foi movida para o log (PCDESCONTOLOG).

pcdesconto.datalancdateregistrationDateData de cadastrodataUltimaAlteracao
pcdesconto.dataultalterdatelastChangeDateUltima alteração
codigoRestricaoPlanoPagtopcdesconto.codgruporestnumber(9)restrictionIdcodigoTipoRestricaoPlanoPagtoCódigo do Grupo de Cliente cadastrado na Rotina 3311
pcdesconto.tipogruporestvarchar2(2)restrictionTermTypeCode'CL' - ClientecodigoDepartamento
pcdesconto.codeptoInteirocodeDepartmentData de inicio da campanhacodigoSecao
pcdesconto.codsecInteirocodeSectionCódigo da seção
codigoCategoriapcdesconto.codcategoriaInteirocodeCategoryCódigo da categoria codigoSubCategoria
pcdesconto.subcategoriaInteirocodeSubCategoryCódigo da sub categoria
codigoMarcapcdesconto.codmarcaInteiro

brandcode

Código da marca


Sobre a Resposta da Requisição na apresentação dos seguintes campos listados: 

SkuId

  • Se o campo PCDESCONTO.CODAUXILIAR estiver preenchido, o retorno será formado por:
    PCPRODUT.CODAUXILIAR + "-" + PCEMBALAGEM.CODPROD,
    onde PCPRODUT é obtido pela busca: PCPRODUT.CODPROD = PCEMBALAGEM.CODPROD.
  • Se o campo PCDESCONTO.CODPROD estiver preenchido, o retorno será:
    PCPRODUT.CODAUXILIAR + "-" + PCDESCONTO.CODPROD,
    onde PCPRODUT é obtido pela busca: PCPRODUT.CODPROD = PCDESCONTO.CODPROD.

PackingId

  • Quando o campo PCDESCONTO.CODAUXILIAR estiver preenchido, o retorno será:
    PCDESCONTO.CODAUXILIAR + "-" + PCEMBALAGEM.CODPROD.

AllPackages

    • Se PCDESCONTO.CODAUXILIAR estiver preenchido, o retorno será false.
    • Se PCDESCONTO.CODAUXILIAR não estiver preenchido, o retorno será true.


Regras para entender os campos de desconto e acréscimo

  1. Campo percdesc (taxa de desconto ou acréscimo)

    • Valores positivos: Representam desconto.
      Exemplo: 10,0000 significa um desconto de 10%.
    • Valores negativos: Representam acréscimo.
      Exemplo: -10,0000 significa um acréscimo de 10%.
  2. Campo percentageValue (valor da porcentagem)

    • Mostra somente o número, sem sinal de positivo (+) ou negativo (-).
      Exemplo: Se o valor for 10,0000, ele pode ser um desconto ou acréscimo, dependendo de como o sistema interpretar.
  3. Campo type (tipo de aplicação)

    • Indica se o valor é desconto ou acréscimo:
      • 0: É um desconto.
      • 1: É um acréscimo.

Como tudo funciona junto:

    • Se o número no campo percdesc for positivo, ele será tratado como um desconto e o type será 0.
    • Se o número no campo percdesc for negativo, ele será tratado como um acréscimo e o type será 1.
Totvs custom tabs box items
defaultno
referenciapasso2

Exemplo do envio da requisição:

Bloco de código
languagejs
titleURI
method: 'GET',
url: '/winthor/precos/v1/politica-desconto'     -> Poderá informar todos os PARAMS abaixo.
Bloco de código
languagejs
titleParams
page			 : 1					   - número deda página (se não informar, assume o padrão)
pageSize		 : 10					   - quantidade de registros por página (se não informar, assume o padrão)
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. caso não informado trazer todos
branchId  		 : String				   - Código da Filial (lista separado por virgula). Não obrigatório. Se for nulo, tratar como 99
regionId         : 0					     - Código da região (lista separado por virgula), caso não informado trazer todos
productId        : 0					   - Código do produto (lista separado por virgula), caso não informado trazer todos
barCodeId        : 0					   - Código de barras, caso não informado trazer todos
suppierId        : 0					   - Código do fornecedor, caso não informado trazer todos 
active           : true/false			     - Somente cadastros ativos

, caso não informado trazer todos  
Totvs custom tabs box items
defaultno
referenciapasso3

Exemplo JSON da resposta:  

Bloco de código
languagejs
titleBody Response
{
    "first": false,
    "items": [
        {
            "situationactive": "Atrue",
            "campaignId": 4899,
            "branchId": "1",
            "regionId": 0,             
			"productId": 2996,
            "skuId": "7899917123826-2996",
            "productIdbarCode": 16587899917123826,
            "packingId": "7899917123826-2996",             
			"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-06T0006T23:0059:0059",
            "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
}

...