...
Produto: | TOTVS CRM Automação da Força de Vendas |
---|
Linha de Produto: | |
---|
Módulo: | Venda |
---|
Função: | Pedido |
---|
Ticket: |
|
---|
Requisito/Story/Issue: | Jira |
---|
server | JIRA |
---|
serverId | 0c783de1-186e-383b-975c-a1acd7d76cb5 |
---|
key | TSFAFSWE-4000 |
---|
|
|
---|
02. ESCOPO FUNCIONAL
02.01 Configuração de cota poder receber solicitações de cota passando por aprovação
...
Se houver registro de aprovação de pedido vinculada com registro de aprovação de cota, o sistema deverá replicar os status da aprovação e observações entre uma entidade e outra.
Caso a cota esteja com a flag "Solicitação exige aprovação?" desmarcada,
Um registro de movimento processado será criado para o controle de cota de destino, somando no saldo disponível da conta.
02.05 Solicitação de adição de saldo de cota por dentro do pedido
...
Ao abrir o pedido, caso não exista mais cota disponível para o item, visto que o movimento pode ter sido inativado, o sistema deverá exibir ícone de inconformidade com a validação: "Não há cota disponível para a quantidade solicitada"
03. ESCOPO TÉCNICO
Painel |
---|
|
03.01.01.01 Migration estrutural referente à solicitação de cotasContexto / Gatilho: Lógica: - O sistema deverá criar índices, se não existem, na tabela controlecotamovaprov sobre os campos:
- idpedido
- idpedido e idtiposituacaoaprovacao
- idpedido, quantidade e idtiposituacaoaprovacao
- O sistema deverá criar índices, se não existem, na tabela obscontrolecotamovaprov sobre os campos:
|
Painel |
---|
|
03.01.01.02 Migration de registros referente à solicitação de cotasContexto / Gatilho: Lógica: |
Painel |
---|
|
03.01.01.02 Criar registros de configuração da modal de solicitação de descontos nas tabelas wsconfigentidade e wsconfigentidadecampoContexto / Gatilho: Lógica: O sistema deverá inserir os seguintes registros na tabela wsconfigentidade: Sem Formato |
---|
entidade: solicitacaocota |
O sistema deverá inserir os seguintes registros na tabela wsconfigentidadecampo, relacionados à tabela wsconfigentidade através do registro de chave solicitacaocota recém adicionado: Sem Formato |
---|
campos:
- cota: visível por padrão, editável por padrão, obrigatório por padrão
- controlecota: visível por padrão, não editável por padrão, obrigatório por padrão
- quantidade: visível por padrão, editável por padrão, obrigatório por padrão
- observacao: visível por padrão, obrigatório por padrão, editável por padrão
- datafimvigencia: visível por padrão, obrigatório por padrão, editável por padrão |
|
Painel |
---|
|
03.01.02 Criação de regras de perfil de acesso para solicitação de cotasContexto / Gatilho: Lógica: |
Painel |
---|
|
03.01.03 Adição de campos na tela de configuração de cotaContexto / Gatilho: - Na aplicação Web, na tela de configuração de cota (Cadastro → Venda → Cota → Coluna "Configuração de cota")
Lógica: - "Solicitação de saldo de cota": Título do grupo de elementos
- "Defina o comportamento do sistema para que profissionais de operação possam solicitar adição de saldo de cota": subtítulo do grupo de elementos.
- "Permitir solicitações de adição de saldo": Campo checkbox, desmarcado por padrão, editável
- "Solicitação exige aprovação": Campo chechbox, marcado por padrão
- O campo é editável somente se o campo "Permitir solicitações de adição de saldo" estiver marcado. Caso contrário, o campo não é editável.
- "Horário limite para data entrega no mesmo dia da solicitação": Campo de input com máscara HH:mm, semelhante à tela de edição de atendimento Web.
- O campo é editável somente se o campo "Permitir solicitações de adição de saldo" estiver marcado. Caso contrário, o campo não é editável.
|
Painel |
---|
|
03.01.04 Modal de solicitação de cota no pedidoContexto / Gatilho: - Na aplicação Web/Android, no pedido de venda, ao adicionar/atualizar um item de pedido de venda, refazendo a busca do cache de controles de cota.
Lógica: - Grupo de elementos do formulário, sendo:
- Botões de ação, sendo:
- "Cancelar": fecha a modal, rollback na aplicação da alteração de quantidade pela alteração/adição do produto ao carrinho.
- "Confirmar": Quando clicado, dispara a seguinte lógica:
Persiste em memória um novo registro de controlecotamovimento (A persistência em banco de dados será feita juntamente com a gravação / finalização do pedido), com os campos: Sem Formato |
---|
idnprocessado: 0
idnativo: 1
quantidade: Campo "Quantidade solicitada"
datamovimento: current_date
observacao: "Pedido ${pedido.numeropedido}: Saldo de cota adicional de ${controlecotamovimento.quantidade} solicitado de no produto ${pedidoproduto.idproduto → produto.codigo || produto.descricao}. \n\n ${"Campo "Observacao"}"
sglorigem: MSWEB se web / MSAND se android
idpedido: null
idpedidoproduto: null
idcontrolecota: campo "Controle de cota"
datainiciovigencia: current_date
datafimvigencia: Campo "Vencimento da solicitação" |
Âncora |
---|
| controlecotamovaprov |
---|
| controlecotamovaprov |
---|
| Persiste em memória um novo registro de controlecotamovaprov(A persistência em banco de dados será feita juntamente com a gravação / finalização do pedido), com os campos: Sem Formato |
---|
idpedido: referencia do identificador do pedido em questão
idpedidoproduto: referencia do identificador do item do pedido em questão
dataaprovacao: null
horaaprovacao: null
idtipoaprovacao: /* select idtipoaprovacao where sgltipoaprovacao = 'SOLICITACAOSALDOCOTA' */
idtiposituacaoaprovacao: /* select idtiposituacaoaprovacao from tiposituacaoaprovacao where sgltiposituacaoaprovacao = 'PD' */
idusuarioaprovador: null |
Persiste em memória um novo registro de obscontrolecotamovaprov, com os campos: Sem Formato |
---|
idcontrolecotamovaprov: identificador de aprovação de movimento recém criada
observacao: "Pedido ${pedido.numeropedido}: Saldo de cota adicional de ${controlecotamovimento.quantidade} solicitado para produto ${pedidoproduto.idproduto → produto.codigo || produto.descricao}. Quantidade: ${pedidoproduto.quantidade}. Preço original: ${pedidoproduto.precooriginal}. Preço venda: ${pedidoproduto.precovenda} \n\n ${Campo "Observacao"}"
datacadastro: date, not null
horacadastro: varchar(8), not null
idusuario: FK para tabela usuario, not null
idtiposituacaoaprovacao: FK para tabela tiposituacaoaprovacao, not null |
|
Painel |
---|
|
03.01.05 Lógicas de pedido relacionadas à solicitação de cotaContexto / Gatilho: - Nos ambientes Web/Mobile, no pedido de venda
Lógica: |
Painel |
---|
|
03.01.06 Lógicas de aprovação relacionadas à solicitação de cotaContexto / Gatilho: - Nos ambientes Web/Mobile, no contexto de aprovações de pedido de venda
Lógica: - Na modal de listagem de aprovações de pedido (pedidoaprovacao), na tela de observações de aprovação do tipoaprovacao SOLICITACAOSALDOCOTA
- Deve constar botão "Visualizar movimentos"
- Ao aprovar o pedidoaprovacao vinculado ao tipoaprovacao SOLICITACAOSALDOCOTA,
- O sistema deverá também realizar a atualização dos status de todos os controlecotamovaprov vinculados aos idcontrolecotamovimento vinculados ao idpedido do pedido em questão, adicionando uma observação: "Aprovado automaticamente pela aprovação do pedido ${Número do pedido}"
- Ao reprovar o pedidoaprovacao vinculado ao tipoaprovacao SOLICITACAOSALDOCOTA,
- O sistema deverá também realizar a atualização dos status de todos os controlecotamovaprov vinculados aos idcontrolecotamovimento vinculados ao idpedido em questão, adicionando uma observação: "Reprovado automaticamente pela reprovação do pedido ${Número do pedido}"
|
Painel |
---|
|
03.01.07 Aprovação de movimento de cotaContexto / Gatilho: - Na aplicação Web, nas telas de listagem de movimentos de cota (Cadastro → Venda → Cota → Botão editar → Botão Visualizar controles → Botão Visualizar movimentos)
Lógica: - Baseando-se de maneira semelhante ao fluxo de aprovação de pedidos,
- O sistema deve exibir coluna "Aprovações" exibindo os status de aprovações de descontos (controlecotamovaprov.idtiposituacaoaprovacao)
- Ao clicar sobre o ícone, o sistema deve disponibilizar modal com a listagem de controlecotamovaprov vinculados àquele movimento, com botões para aprovar todos e reprovar todos, caso existam aprovações com status pendentes, como também ícone de visualizar observações
- Na listagem de aprovações,
- Deverão constar as colunas "Status" controlecotamovaprov.idtiposituacaoaprovacao → tiposituacaoaprovacao.descricao", "Pedido" ${controlecotamovaprov.idpedido → pedido.numeropedido} e "Produto" ${controlecotamovaprov.idpedidoproduto → produto.codigo || produto.descricao}
- No caso da aprovação / reprovação de movimentos, somente será possível fazer a aprovação / reprovação geral de todas as controlecotamovaprov, e não individualmente, como é o pedidoaprovacao.
- Ao clicar sobre os botões aprovar ou reprovar, o sistema deverá fazer a alteração dos status do campo controlecotamovaprov.idtiposituacaoaprovacao para AP ou RP respectivamente.
- Adicionar observação ao registro de observacaoaprovacao do pedidoaprovacao vinculado ao pedido do controlecotamovaprov, com a mensagem: "Solicitação de saldo de cota adicional de ${controlecotamovimento.quantidade} para o produto ${pedidoproduto.idproduto → produto.codigo || produto.descricao} aprovada / reprovada"
- Ao aprovar todos,
- O sistema deverá realizar o processamento do controlecotamovimento (atualizar o idnprocessado = 1) e somar o saldo processado no controlecota.saldodisponivel, como acontece quando existe um processamento manual pela aplicação, na tela de movimentos de cota.
- O sistema deve verificar se todas as solicitações de movimentações de cota (controlecotamovaprov) relacionadas aos pedidos dos registros atualizados estão aprovadas. Caso estejam,
- O sistema deve atualizar os registros de pedidoaprovacao vinculados aos pedidos dos registros atualizados, vinculado ao tipoaprovacao SOLICITACAOSALDOCOTA para aprovado AP.
- Nesse caso, adicionar observação "Aprovado automaticamente devido à todas as solicitações de saldo de cota terem sido aprovadas"
- Ao reprovar todos,
- O sistema deve atualizar o registro de pedidoaprovacao vinculados aos pedidos dos registros atualizados, vinculado ao tipoaprovacao SOLICITACAOSALDOCOTA para reprovado RP.
- Nesse caso, adicionar observação "Reprovado automaticamente devido às reprovação de solicitações de saldo de cota"
- Ao clicar sobre o botão de observações, o sistema deve exibir modal com os registros da tabela obscontrolecotamovaprov
- Os registros criados diretamente pela tela cadastral de movimentos devem continuar sendo criados sem a necessidade de passar por aprovação.
|
Painel |
---|
|
03.01.08 Filtragem de movimentos pendentes de aprovaçãoContexto / Gatilho: - Na aplicação Web, nas telas de listagem de movimentos de cota (Cadastro → Venda → Cota → Botão editar → Botão Visualizar controles → Botão Visualizar movimentos)
Lógica: - Deve haver filtros novos na pesquisa avançada de descontos, sendo eles:
- "Status aprovação": campo pesquisa, múltipla seleção
- "Pedido": campo pesquisa, múltipla seleção,
- listando pedidos, podendo ser pesquisados por numeropedido
- Filtrando por movimentos cuja aprovação está vinculada aos pedidos filtrados ou movimentos relacionados aos pedidos filtrados (controlecotamovaprov.idpedido in (?) OR controlecotamovimento.idpedido in (?))
|