Árvore de páginas

01. DADOS GERAIS


Produto:

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

Linha de Produto:

Linha TOTVS CRM SFA

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


02. ESCOPO FUNCIONAL

Na tela de cadastros de desconto e na tela de vínculos de classes de desconto, o sistema deverá disponibilizar três novos campo para vinculação de controle de cota:

  • Controle cota: campo de pesquisa onde será possível selecionar um controle de cota específico, desde que esteja ativo e vigente.
  • UF Origem: campo de pesquisa onde será possível selecionar uma unidade federativa que representará de qual estado o pedido está saindo
  • UF Destino: campo de pesquisa onde será possível selecionar uma unidade federativa que representará para qual estado o pedido está sendo emitido

A modal de seleção do controle de cota deverá mostrar os campos:

  • Cota: contendo a descrição da cota vinculada (cota.descricao)
  • Controle: concatenação dos campos de modelo da cota, por exemplo, se profissional / produto, então: ${nome do profissional} / ${Descrição do produto}

A modal de seleção das unidades federativas deverá exibir a descrição das unidades federativas (unidadefederativa.descricao)

Na tela de configuração de níveis de desconto, o sistema deve disponibilizar novas opção de filtro para que se possa indicar para o sistema considerar a coluna de cota, sendo elas:

  • Controles de cota vinculados à classe de desconto
  • Controle de cota vinculados ao desconto.
  • Unidade federativa de origem, vinculados à classe de desconto
  • Unidade federativa de origem, vinculados ao desconto
  • Unidade federativa de destino, vinculados à classe de desconto
  • Unidade federativa de destino, vinculados ao desconto

03. ESCOPO TÉCNICO

03.01.01 Criação de coluna em banco de dados

Contexto / Gatilho:

  • Pelo tools, opção 3.

Lógica:

  • O sistema deverá adicionar as seguintes colunas à tabela desconto, sendo:
    • iduforigem: nullable, FK para tabela unidadefederativa
    • idcontrolecota: nullable, FK para tabela controlecota
  • O sistema deverá adicionar as seguintes colunas à tabela classedescontovinculo, sendo:
    • iduforigem: nullable, FK para tabela unidadefederativa
    • idcontrolecota: nullable, FK para tabela controlecota

03.02.01 Criação de campos de busca na tela de vínculos de desconto

Contexto / Gatilho:

  • No ambiente Web, na tela de Cadastro → Venda → Descontos, clicando sobre o botão "Editar", na modal aberta,

Lógica:

  • O sistema deverá adicionar os seguintes elementos visuais:
    • "UF Origem": Campo pesquisa, editável, seleção única, não obrigatório.
      • Os registros exibidos na modal de pesquisa deverão ser listados a partir da tabela unidadefederativa, onde o campo idnativo = 1
        • Valor exibido em tela: unidadefederativa.descricao
        • Valor utilizado em lógica: unidadefederativa.idunidadefederativa
      • A persistência do valor lógico deve ser realizado no campo desconto.iduforigem
    • "UF destino": Atual campo "Unidade federativa"
      • Deve ter sua label alterada para "UF destino", somente. O restante da lógica permanece inalterado
    • "Controle cota": Campo pesquisa, editável, seleção única, não obrigatório.
      • A modal aberta de seleção de controlecota deverá possuir filtro obrigatório de "Cota", em que se não for preenchido, não traz registros.
        • O filtro de "Cota" será campo pesquisa, editável, obrigatório para pesquisa
          • Os registros exibidos na modal de seleção de cota deverão ser listados a partir da tabela cota, onde:
              • idnativo = 1 e current_date between cota.datainiciovigencia and cota.datafimvigencia
            • Valor exibido em tela: cota.descricao
            • Valor utilizado em lógica: cota.sgltipocota
      • Os registros exibidos na modal de pesquisa deverão ser listados a partir da tabela controlecota, onde:
          • idnativo = 1 AND idcota = ${Filtro de cota selecionado}
        • Valor exibido em tela: Usuário: ${controlecota.idusuario → usuario.login} || ' ' || Produto: ${controlecota.idproduto → produto.codigo}  || ' ' || Filial: ${controlecota.idlocalfilial → local.numeromatricula}
        • Valor utilizado em lógica: controlecota.idcontrolecota

03.02.02 Criação de campos de busca na tela de vínculos de classes de desconto

Contexto / Gatilho:

  • No ambiente Web, na tela de Cadastro → Venda → Classes de desconto, na página aberta a partir do clique sobre o botão "Vínculos", 

Lógica:

  • O sistema deverá adicionar os seguintes elementos visuais:
    • "UF Origem": Campo pesquisa, editável, seleção única, não obrigatório.
      • Os registros exibidos na modal de pesquisa deverão ser listados a partir da tabela unidadefederativa, onde o campo idnativo = 1
        • Valor exibido em tela: unidadefederativa.descricao
        • Valor utilizado em lógica: unidadefederativa.idunidadefederativa
      • A persistência do valor lógico deve ser realizado no campo desconto.iduforigem
    • "UF destino": Atual campo "Unidade federativa"
      • Deve ter sua label alterada para "UF destino", somente. O restante da lógica permanece inalterado
    • "Controle cota": Campo pesquisa, editável, seleção única, não obrigatório.
      • A modal aberta de seleção de controlecota deverá possuir filtro obrigatório de "Cota", em que se não for preenchido, não traz registros.
        • O filtro de "Cota" será campo pesquisa, editável, obrigatório para pesquisa
          • Os registros exibidos na modal de seleção de cota deverão ser listados a partir da tabela cota, onde:
              • idnativo = 1 e current_date between cota.datainiciovigencia and cota.datafimvigencia
            • Valor exibido em tela: cota.descricao
            • Valor utilizado em lógica: cota.sgltipocota
      • Os registros exibidos na modal de pesquisa deverão ser listados a partir da tabela controlecota, onde:
          • idnativo = 1 AND idcota = ${Filtro de cota selecionado}
        • Valor exibido em tela: Usuário: ${controlecota.idusuario → usuario.login} || ' ' || Produto: ${controlecota.idproduto → produto.codigo}  || ' ' || Filial: ${controlecota.idlocalfilial → local.numeromatricula}
        • Valor utilizado em lógica: controlecota.idcontrolecota


  • Os novos campos também necessitam ser implementados na tela de adição múltipla, acessível pela seleção de registros, seguido do clique do botão "Adicionar múltiplos"

03.03.01 Alteração de opções selecionáveis na busca de desconto

Contexto / Gatilho:

  • No ambiente Web, na tela de Configuração → Configuração pedido → Busca produto → DESCONTO, na tela de "Cadastro de filtros" (Nível e filtro global),

Lógica:

  • O sistema deverá adicionar as seguintes tooltips para as opções selecionáveis já existentes a seguir:

    • Filtro por níveis

      TabelaEnumTooltip ao passar o mouse
      descontoLOCALFILIAL_IDUNIDADEFEDERATIVA

      Unidade federativa da filial selecionada no cabeçalho do pedido

      /* where desconto.iduforigem = (select uf.idunidadefederativa from unidadefederativa uf where uf.idunidadefederativa = (select c.idunidadefederativa from cidade c where c.idcidade = (select l.idcidade from local l where l.idlocal = ${Filial selecionada no cabeçalho [pedido.idlocalfilialvenda] }))) */

      descontoLOCAL_IDUNIDADEFEDERATIVA

      Unidade federativa do local do cliente selecionado no cabeçalho do pedido

      /* where coalesce(desconto.iduforigem,desconto.idunidadefederativa) = (select uf.idunidadefederativa from unidadefederativa uf where uf.idunidadefederativa = (select c.idunidadefederativa from cidade c where c.idcidade = (select l.idcidade from local l where l.idlocal = ${Local do cliente selecionado no cabeçalho [pedido.idlocal]}))) */

      classedescontovinculoLOCALFILIAL_IDUNIDADEFEDERATIVA

      Unidade federativa da filial selecionada no cabeçalho do pedido

      /* where desconto.iduforigem = (select uf.idunidadefederativa from unidadefederativa uf where uf.idunidadefederativa = (select c.idunidadefederativa from cidade c where c.idcidade = (select l.idcidade from local l where l.idlocal = ${Filial selecionada no cabeçalho [pedido.idlocalfilialvenda] }))) */

      classedescontovinculoLOCAL_IDUNIDADEFEDERATIVA

      Unidade federativa do local do cliente selecionado no cabeçalho do pedido

      /* where coalesce(desconto.iduforigem,desconto.idunidadefederativa) = (select uf.idunidadefederativa from unidadefederativa uf where uf.idunidadefederativa = (select c.idunidadefederativa from cidade c where c.idcidade = (select l.idcidade from local l where l.idlocal = ${Local do cliente selecionado no cabeçalho [pedido.idlocal]}))) */

      * Atenção para o coalesce na segunda consulta, pois é necessário permanecer com o comportamento atual, caso o campo iduforigem não seja preenchido.

03.03.02 Adição de opções selecionáveis na busca de desconto

Contexto / Gatilho:

  • No ambiente Web, na tela de Configuração → Configuração pedido → Busca produto → DESCONTO, na tela de "Cadastro de filtros" (Nível e filtro global),

Lógica:

  • O sistema deverá adicionar as opções selecionáveis a seguir:

    • Filtro por níveis

      TabelaEnumTooltip ao passar o mouse
      classedescontovinculoCONTROLECOTA_IDCONTROLECOTA

      Controle de cota selecionado no contexto de item do pedido

      /* where desconto.idcontrolecota = ${Controle de cota selecionado no contexto de item de pedido [pedidoproduto.idcontrolecota]} */

03.04.01 Implementação da busca no pedido

Contexto / Gatilho:

  • No ambientes Web/Mobile, no pedido de venda, ao consultar o cache de descontos,

Lógica:

  • O sistema deverá passar a as condições das consultas selecionadas na busca de descontos referentes ao ponto 03.03, sendo elas:

    • Busca de descontos por unidade federativa de origem a partir da tabela desconto
    • Busca de descontos por unidade federativa de origem a partir da tabela classedescontovinculo
    • Busca de descontos por controlecota a partir da tabela desconto
    • Busca de descontos por controlecota a partir da tabela classedescontovinculo
  • Sem rótulos