Árvore de páginas

01. DADOS GERAIS


Produto:

TOTVS CRM Automação da Força de Vendas

Linha de Produto:

Linha TOTVS CRM SFA

ERPs impactados:

Winthor

Módulo:Venda
Função:Pedido
Ticket:
Requisito/Story/Issue:


02. ESCOPO FUNCIONAL

Anteriormente, para integrações com ERP Winthor,

O SFA somente faz o consumo da precificação por região, com origem pela tabela PCTABPR. Entretanto, ao ativar o parâmetro do Winthor "1065/2257- Trabalha com preço por embalagem", o preço do SFA ainda continua se originando da tabela PCTABPR, quando deveria consumir originado da tabela PCEMBALAGEM.

Agora,

O SFA deverá adaptar a integração para receber os preços da tabela PCEMBALAGEM, para filiais que contém o parâmetro "1065/2257- Trabalha com preço por embalagem" como preço de tabela do produto.

A aplicação do SFA deverá fazer a leitura desse parâmetro integrado. Quando marcado, o SFA deverá preferir a precificação do produto por sua embalagem para a filial selecionada no cabeçalho. Quando desmarcado, o sistema continuará fazendo a utilização da precificação por região.

03. ESCOPO TÉCNICO

03.01 Integração

03.01.01 Criação de tabelas de preço para filiais que precificam por embalagem

Contexto / Gatilho:

  • Integração, na importação de tabelapreco

Lógica:

  • Criação de novos registros de tabelas de preço originados a partir da tabela pcparamfilial (UNION adicional)

    /* 
    UNION 
    SELECT
    	CAST('Filial ' || ppf.CODFILIAL || ' - Precificação embalagem' AS VARCHAR2(80))AS DESCRICAO,
    	CAST('EMBALAGEM' AS VARCHAR2(10))AS SGLTIPOTABELA,
    	CAST('EMBALAGEM#' || PPF.CODFILIAL AS VARCHAR2(20))AS CODIGO,
    	CAST(NULL AS DATE)AS DATAINICIOVIGENCIA,
    	CAST(NULL AS DATE) AS DATAFIMVIGENCIA,
    	CAST(CASE WHEN PPF.VALOR = 'S' THEN 1 ELSE 0 END AS INT) AS IDNATIVO,
    	CAST(1 AS INT) AS IDNLISTAPEDIDO,
    	CAST(1 AS INT) AS IDNDISPPRIMEIROPEDIDO,
    	CAST(0 AS INT) AS IDNCALCULOANTECIPACAO,
    	CAST(NULL AS NUMERIC(18,6)) AS VALORMINIMO,
    	CAST('EMBALAGEM#' || PPF.CODFILIAL  AS VARCHAR2(80)) AS CODIGOERP,
    	CAST(PPF.CODFILIAL AS VARCHAR2(80)) AS CODFILIAL
    FROM PCPARAMFILIAL PPF
    WHERE PPF.NOME = 'FIL_PRECOPOREMBALAGEM'
    AND PPF.CODFILIAL <> '99'
    AND PPF.VALOR = 'S'
    */

03.01.02 Criação de vínculo entre as filiais e tabelas de preço

Contexto / Gatilho:

  • Integração, na importação de localtabelapreco

Lógica:

  • Criação de registros de vínculos entre tabelas de preço e as filiais referentes aos registros da seção 03.01.01

03.01.01 Importação de preços

Contexto / Gatilho:

  • Integração, na importação de tabelaprecoproduto

Lógica:

  • Criação de nova union, trazendo os preços específicos das filiais, quando existe precificação por embalagem, dessa forma:



SELECT * FROM pctabpr ptp
CROSS JOIN pcparamfilial pcf
LEFT JOIN pcembalagem pe ON pcf.CODFILIAL = pe.CODFILIAL AND pe.codprod = ptp.CODPROD 
WHERE pcf.NOME = 'FIL_PRECOPOREMBALAGEM'
AND pcf.VALOR = 'S'
AND pcf.CODFILIAL <> 99
  • As colunas deverão ser as mesmas origens da union que busca da pctabpr, com exceção das colunas a seguir:
WinthorSFA (TABELAPRECOPRODUTO)
PCEMBALAGEM.PVENDA

PRECO

PRECO2

PRECO3

PRECO4

PRECO5

PRECO6

PRECO7

PCEMBALAGEM.PTABELA

PRECOREFERENCIA

PRECOREFERENCIA2

PRECOREFERENCIA3

PRECOREFERENCIA4

PRECOREFERENCIA5

PRECOREFERENCIA6

PRECOREFERENCIA7

PCEMBALAGEM.CODFILIAL

IDLOCALFILIAL

03.02 Aplicação

03.02.01 Implementação de preços por filial

Contexto / Gatilho:

  • Ambiente Web/Android, na busca de preços do produto

Lógica:

  • Para preços não fixos (tabelaprecoproduto.idnprecofixo = 0) o sistema deverá verificar se existem preços para a filial selecionada no cabeçalho.

    • select preco from tabelaprecoproduto where idlocalfilial = :filial_cabecalho and idproduto = :produto_grid and idnprecofixo = 0
    • Caso existirem, o sistema deve utilizar esse preço
  • Caso não existam, continuar busca por idlocalfilial = null, como anteriormente.

04. PREMISSAS


  • Sem rótulos