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: |
A experiência da tela de cadastro refatorada pode ser acessada através do link: https://www.figma.com/proto/sZOz8QUKfhSVacld8u9aLc/Refatora%C3%A7%C3%A3o-de-tela-de-cadastro-de-desconto?node-id=0-1&t=v6s6gBBJWZ2ce1YI-1
Contexto / Gatilho:
Lógica:
O sistema deve adicionar as seguintes colunas na tabela desconto:
sglmodeloaplicacao: varchar(10), nullable, default "PERC"
update desconto set sglmodeloaplicacao = case when valor > 0 then 'VAL' else 'PERC' end
Contexto / Gatilho:
Lógica:
O sistema deverá carregar tela com duas abas:
Contexto / Gatilho:
Lógica:
O sistema deverá exibir conteúdo referenciado conforme o protótipo a seguir:
- Cabeçalho de pesquisa:
- "Pesquisa rápida": Campo de entrada textual
- Quando pesquisado, a informação do campo é utilizada para comparar com:
- desconto.descricao
- desconto.sigla
- "Vigência de": Campo de entrada, data
- "Até": Campo de entrada, data
- "Pesquisa avançada": Texto clicável, para exibir/ocultar os campos de filtros avançados
- /* Visto que não terá alteração nos filtros avançados, essa documentação não teve como objetivo detalhar todos os campos */
- Botões de ação:
- Pesquisar: Quando clicado, dispara a requisição de pesquisa de registros da entidade
- Limpar: Limpa os valores dos campos de pesquisa
- Grid de informações de controle de cota, contendo
- Botões de ação
- Adicionar: Botão que, quando clicado, adiciona nova linha na grid de desconto.
- Cancelar alteração: cancela alterações da grid ainda não commitadas em banco
- Gravar: commita as alterações da grid nos respectivos campos
Quando gravado, o registro deverá ser persistido na tabela desconto, sendo o detalhe do objeto a seguir:
{ descricao: Valor do campo "Descrição" sgltipodesconto: Valor do campo "Sigla" idclassedesconto: identificador da entidade selecionada no campo "Classe desconto" datainiciovigecia: Valor do campo "Data início vigência" datafimvigencia: Valor do campo "Data fim vigência" faixaquantidademinima: Valor do campo "Faixa quantidade mínima" faixaquantidademaxima: Valor do campo "Faixa quantidade máxima" sglmodeloaplicacao: Valor do campo "Modelo aplicação" (Se "Percentual" = "PERC", se "Valor"= "VAL") sglaplicacao: "PRCTAB" percentual: Se sglmodeloaplicacao = PERC, Valor do campo "Percentual/Valor" valor: Se sglmodeloaplicacao = VAL, Valor do campo "Percentual/Valor" }- Lista de colunas da grid:
- "Descrição": campo texto, editável, obrigatório
- O valor da coluna é buscado / persistido com base no campo desconto.descricao
- "Sigla": campo texto, editável, obrigatório, aceitando até 20 caracteres
- O valor da coluna é buscado / persistido com base no campo desconto.sgltipodesconto
- "Classe desconto": campo do tipo pesquisa seleção simples, editável, obrigatório
- As opções do campo deverão seguir conforme implementação atual, definido nesta documentação
- O valor da coluna é buscado / persistido com base no campo desconto.idclassedesconto
- "Data início vigência": Campo tipo data, não obrigatório, editável
- O valor da coluna é buscado / persistido com base no campo desconto.datainiciovigencia
- O campo não pode ter valor maior que o campo "Data fim vigência", se informado
- "Data fim vigência": Campo tipo data, não obrigatório, editável
- O valor da coluna é buscado / persistido com base no campo desconto.datafimvigencia
- O campo não pode ter valor maior que o campo "Data inicio vigência", se informado
- "Faixa quantidade mínima": campo numérico, não obrigatório, editável
- O campo deve aceitar apenas valores positivos
- O campo deve aceitar valores fracionados, com precisão de até 6 casas decimais
- O valor da coluna é buscado / persistido com base no campo desconto.faixaquantidademinina
- O campo, quando não informado, deve persistir valor nulo
- "Faixa quantidade máxima": campo numérico, não obrigatório, editável
- O campo deve aceitar apenas valores positivos
- O campo deve aceitar valores fracionados, com precisão de até 6 casas decimais
- O valor da coluna é buscado / persistido com base no campo desconto.faixaquantidademaxima
- O campo, quando não informado, deve persistir valor nulo
- "Modelo aplicação": campo de opções selecionáveis, obrigatório, editável, seleção única, com as seguintes opções selecionáveis:
- "Percentual", valor padrão
- Visto que há possibilidade de o campo estar null no banco, se estiver, considerar 'perc'
- "Valor"
- "Percentual / Valor": campo numérico, editável, obrigatório
- O campo deve aceitar valores positivos e negativos (ainda que o campo esteja preenchido)
- O valor da coluna é buscado / persistido com base na lógica a seguir:
- Se sglmodeloaplicacao = PERC,
- persistir/consultar do campo desconto.percentual
- Se sglmodeloaplicacao = VAL
- persistir/consultar do campo desconto.valor
- "Editar": ícone clicável.
- Quanto clicado, abre modal de vínculos de desconto com outras entidades
- /* A modal já existe e não terá sua lógica alterada, portanto, não será detalhada na presente documentação */
- "Remover": ícone clicável
- Quando clicado, marca o registro da grid para deleção. A deleção efetiva ocorre após o acionamento do botão de ação "Gravar"
Contexto / Gatilho:
Lógica:
O sistema deverá exibir conteúdo referenciado conforme o protótipo a seguir:
- Cabeçalho de pesquisa:
- "Pesquisa rápida": Campo de entrada textual
- Quando pesquisado, a informação do campo é utilizada para comparar com:
- desconto.descricao
- desconto.sigla
- "Vigência de": Campo de entrada, data
- "Até": Campo de entrada, data
- "Pesquisa avançada": Texto clicável, para exibir/ocultar os campos de filtros avançados
- /* Visto que não terá alteração nos filtros avançados, essa documentação não teve como objetivo detalhar todos os campos */
- Botões de ação:
- Pesquisar: Quando clicado, dispara a requisição de pesquisa de registros da entidade
- Limpar: Limpa os valores dos campos de pesquisa
- Grid de informações de controle de cota, contendo
- Botões de ação
- Adicionar: Botão que, quando clicado, adiciona nova linha na grid de desconto.
- Cancelar alteração: cancela alterações da grid ainda não commitadas em banco
- Gravar: commita as alterações da grid nos respectivos campos
Quando gravado, o registro deverá ser persistido na tabela desconto, sendo o detalhe do objeto a seguir:
{ descricao: Valor do campo "Descrição" sgltipodesconto: Valor do campo "Sigla" idclassedesconto: identificador da entidade selecionada no campo "Classe desconto" datainiciovigecia: Valor do campo "Data início vigência" datafimvigencia: Valor do campo "Data fim vigência" faixaquantidademinima: Valor do campo "Faixa quantidade mínima" faixaquantidademaxima: Valor do campo "Faixa quantidade máxima" sgllogicaexceder: Valor do campo "Lógica aplicação" (Se "Permitir" = null, "Gerar aprovação" = 'APR', "Gerar aprovação com itens" = "APR_ITENS") idtipoaprovacao: Identificador da entidade selecionada no campo "Tipo aprovação" sglmodeloaplicacao: Valor do campo "Modelo aplicação" (Se "Percentual" = "PERC", se "Valor"= "VAL") faixapercentualinicial: Se sglmodeloaplicacao = PERC, Valor do campo "Faixa aplicação inicial" faixapercentualfinal: Se sglmodeloaplicacao = PERC, Valor do campo "Faixa aplicação final" faixavalorminimo: Se sglmodeloaplicacao = VAL, Valor do campo "Faixa aplicação inicial" faixavalormaximo: Se sglmodeloaplicacao = VAL, Valor do campo "Faixa aplicação final" idnaplicaautomatico: Valor do campo "Aplica automático?" (1 se marcado, 0 se desmarcado) percentual: Se sglmodeloaplicacao = PERC, Valor do campo "Percentual/Valor" valor: Se sglmodeloaplicacao = VAL, Valor do campo "Percentual/Valor" sglaplicacao: "PRCVEN" }- Lista de colunas da grid:
- "Descrição": campo texto, editável, obrigatório
- O valor da coluna é buscado / persistido com base no campo desconto.descricao
- "Sigla": campo texto, editável, obrigatório, aceitando até 20 caracteres
- O valor da coluna é buscado / persistido com base no campo desconto.sgltipodesconto
- "Classe desconto": campo do tipo pesquisa seleção simples, editável, obrigatório
- As opções do campo deverão seguir conforme implementação atual, definido nesta documentação
- O valor da coluna é buscado / persistido com base no campo desconto.idclassedesconto
- "Data início vigência": Campo tipo data, não obrigatório, editável
- O valor da coluna é buscado / persistido com base no campo desconto.datainiciovigencia
- O campo não pode ter valor maior que o campo "Data fim vigência", se informado
- "Data fim vigência": Campo tipo data, não obrigatório, editável
- O valor da coluna é buscado / persistido com base no campo desconto.datafimvigencia
- O campo não pode ter valor maior que o campo "Data inicio vigência", se informado
- "Faixa quantidade mínima": campo numérico, não obrigatório, editável
- O campo deve aceitar apenas valores positivos
- O campo deve aceitar valores fracionados, com precisão de até 6 casas decimais
- O valor da coluna é buscado / persistido com base no campo desconto.faixaquantidademinina
- O campo, quando não informado, deve persistir valor nulo
- "Faixa quantidade máxima": campo numérico, não obrigatório, editável
- O campo deve aceitar apenas valores positivos
- O campo deve aceitar valores fracionados, com precisão de até 6 casas decimais
- O valor da coluna é buscado / persistido com base no campo desconto.faixaquantidademaxima
- O campo, quando não informado, deve persistir valor nulo
- "Lógica aplicação": campo de opções selecionáveis, obrigatório, editável, seleção única, com as seguintes opções:
- "Permitir": valor nulo
- "Bloquear": valor "BLQ"
- "Gerar aprovação": valor "APR"
- "Gerar aprovação por itens": valor "APR_ITENS"
- "Tipo aprovação": campo do tipo pesquisa seleção simples, editável
- O campo deverá ser obrigatório quando a opção selecionada do campo "Lógica aplicação" for "Gerar aprovação" ou "Gerar aprovação por itens"
- As opções do campo deverão seguir conforme implementação atual
- O valor da coluna é buscado / persistido com base no campo desconto.idtipoaprovacao
- "Modelo aplicação": campo de opções selecionáveis, obrigatório, editável, seleção única, com as seguintes opções:
- "Percentual", valor padrão
- Visto que há possibilidade de o campo estar null no banco, se estiver, considerar 'perc'
- "Valor"
- "Faixa aplicação inicial": campo numérico, obrigatório, editável
- O campo deve aceitar valores positivos e negativos
- O campo deve aceitar valores fracionados, com precisão de até 6 casas decimais
- O valor da coluna é buscado / persistido com base na lógica a seguir:
- Se sglmodeloaplicacao = PERC,
- persistir/consultar do campo desconto.faixapercentualinicial
- Se sglmodeloaplicacao = VAL
- persistir/consultar do campo desconto.faixavalorminimo
- "Faixa aplicação final": campo numérico, obrigatório, editável
- O campo deve aceitar valores positivos e negativos
- O campo deve aceitar valores fracionados, com precisão de até 6 casas decimais
- O valor da coluna é buscado / persistido com base na lógica a seguir:
- Se sglmodeloaplicacao = PERC,
- persistir/consultar do campo desconto.faixapercentualfinal
- Se sglmodeloaplicacao = VAL
- persistir/consultar do campo desconto.faixavalormaximo
- "Aplica automático?": campo texto, editável exibindo Ativo/Inativo quando o campo desconto.idnaplicaautomatico estiver com respectivos valores 1/0. Ao editar o campo, o tipo do campo vira check-box marcada/desmarcada quando o campo desconto.idnaplicaautomatico estiver com respectivos valores 1/0
- O valor da coluna é buscado / persistido com base no campo desconto.idnaplicaautomatico
- "Percentual / Valor": campo numérico
- O campo deve ser editável e obrigatório somente quando o campo "Aplica automático?" estiver marcado
- O campo deve aceitar valores positivos e negativos (ainda que o campo esteja preenchido)
- O valor da coluna é buscado / persistido com base na lógica a seguir:
- Se sglmodeloaplicacao = PERC,
- persistir/consultar do campo desconto.percentual
- Se sglmodeloaplicacao = VAL
- persistir/consultar do campo desconto.valor
- "Oferta / Vitrine": Ícone clicável, que será implementado por esta documentação
- "Editar": ícone clicável.
- Quanto clicado, abre modal de vínculos de desconto com outras entidades
- /* A modal já existe e não terá sua lógica alterada, portanto, não será detalhada na presente documentação */
- "Remover": ícone clicável
- Quando clicado, marca o registro da grid para deleção. A deleção efetiva ocorre após o acionamento do botão de ação "Gravar"
Contexto / Gatilho:
Lógica:
Contexto / Gatilho:
Lógica:
Contexto / Gatilho:
Lógica: