...
Produto: | TOTVS CRM Automação da Força de Vendas |
---|
Linha de Produto: | |
---|
ERPs impactados: | Protheus, Datasul e ERPs terceiros |
---|
Módulo: | Vendas |
---|
Função: | Itens de pedidoCabeçalho |
---|
Ticket: |
|
---|
Requisito/Story/Issue: |
---|
...
02. ESCOPO
...
FUNCIONAL
1. Criação de campos em banco de dados
O sistema deverá, via opção 3 do tools, criar a tabela wsconfigpedcampovinculo, com os seguintes campos:
- idwsconfigpedidocampo: fk para wsconfigpedidocampo, nullable
- contexto: varchar(20), not-null
- idndiferente: byte, default 0, nullable
- idusuario: fk para tabela usuario, nullable
- idparceiro: fk para tabela parceiro, nullable
- idlocal: fk para tabela local, nullable
- idlocalcobranca: fk para tabela local, nullable
- idregiao: fk para tabela regiao, nullable
- idcidade: fk para tabela cidade, nullable
- idunidadefederativa: fk para tabela unidadefederativa, nullable
- idfilial: fk para tabela local, nullable
- idcondicaopagamento: fk para tabela condicaopagamento, nullable
- idgrupoparceiro: fk para tabela grupoparceiro, nullable
- idsegmento: fk para tabela segmento, nullable
- idtipologia: fk para tabela tipologia, nullable
- idtipopedido_cab: fk para tabela tipopedido, nullable
- idtipopedido_item: fk para tabela tipopedido, nullable
- idtipocobranca: fk para tabela tipocobranca, nullable
- idtabelapreco_cab: fk para tabela tabelapreco, nullable
- idtabelapreco_item: fk para tabela tabelapreco, nullable
- idindexador: fk para tabela indexador, nullable
idwsconfigpedidoagrupador: fk para tabela wsconfigpedidoagrupador, nullable
- idoperacao: fk para tabela operacao, nullable
- idtipoestoque_cab: fk para tabela tipoestoque, nullable
- idtipoestoque_item: fk para tabela tipoestoque, nullable
- idsafra_cab: fk para tabela safra, nullable
- idsafra_item: fk para tabela safra, nullable
- idcultura_cab: fk para tabela cultura, nullable
- idcultura_item: fk para tabela cultura, nullable
- idtipodesconto: fk para tabela tipodesconto, nullable
- idcontroleflex: fk para tabela controleflex, nullable
2. Tela de configuração de "Operações condicionais"
- Na tela de Configuração > Configuração Pedido > Produto, deverá existir um botão com label "Operações condicionais", com ícone definido pelo link: https://www.flaticon.com/free-icon/rules_9798461?term=rules&page=1&position=14&origin=search&related_id=9798461
- Quando clicado, o sistema abrirá uma nova tela, com título "Operações condicionais - ${Código do campo selecionado na tela anterior}"
- Essa tela conterá 3 abas:
- Visualização
- A tela de visualização será implementada no futuro. Por hora, o sistema pode exibir mensagem: "A visualização condicional de campos ainda não está implementada"
- Edição
- A aba deverá exibir elemento de pesquisa rápida.
- A aba deverá exibir grid, com os seguintes campos:
- Profissional
- Trazer todos os ativos
- Persistir em wsconfigpedcampovinculo.idusuario
- Cliente
- Trazer todos os ativos
- Persistir em wsconfigpedcampovinculo.idparceiro
- Local
- Trazer todos os ativos vinculados ao parceiro selecionado.
- Se não houver parceiro selecionado, trazer todos os ativos
- Persistir em wsconfigpedcampovinculo.idlocal
- Local cobrança
- Trazer todos os ativos vinculados ao parceiro selecionado.
- Se não houver parceiro selecionado, trazer todos os ativos
- Persistir em wsconfigpedcampovinculo.idlocalcobranca
- Região
- Trazer todos os ativos
- Persistir em wsconfigpedcampovinculo.idregiao
- Cidade
- Trazer todos os ativos
- Persistir em wsconfigpedcampovinculo.idcidade
- Unidade federativa
- Trazer todos os ativos
- Persistir em wsconfigpedcampovinculo.idunidadefederativa
- Filial
- Trazer todos os ativos
- Trazer todos os locais do tipo UEM
- Persistir em wsconfigpedcampovinculo.idfilial
- Condição de pagamento
- Trazer todos os ativos
- Persistir em wsconfigpedcampovinculo.idcondicaopagamento
- Grupo de parceiro
- Trazer todos os ativos
- Persistir em wsconfigpedcampovinculo.idgrupoparceiro
- Segmento
- Trazer todos os ativos
- Persistir em wsconfigpedcampovinculo.idsegmento
- Tipologia
- Trazer todos os ativos
- Persistir em wsconfigpedcampovinculo.idtipologia
- Tipo de pedido - Cabeçalho
- Trazer todos os ativos
- Persistir em wsconfigpedcampovinculo.idtipopedido_cab
- Tipo de pedido - Item
- Trazer todos os ativos
- Persistir em wsconfigpedcampovinculo.idtipopedido_item
- Tipo de cobrança
- Trazer todos os ativos
- Persistir em wsconfigpedcampovinculo.idtipocobranca
- Tabela de preço - Cabeçalho
- Trazer todos os ativos
- Persistir em wsconfigpedcampovinculo.idtabelapreco_cab
- Tabela de preço - Item
- Trazer todos os ativos
- Persistir em wsconfigpedcampovinculo.idtabelapreco_item
- Moeda
- Trazer todos os ativos
- Persistir em wsconfigpedcampovinculo.idindexador
- Agrupador
- Trazer todos os ativos
- Persistir em wsconfigpedcampovinculo.idwsconfigpedidoagrupador
- Operação
- Trazer todos os ativos
- Persistir em wsconfigpedcampovinculo.idoperacao
- Tipo estoque - Cabeçalho
- Trazer todos os ativos
- Persistir em wsconfigpedcampovinculo.idtipoestoque_cab
- Tipo estoque - Item
- Trazer todos os ativos
- Persistir em wsconfigpedcampovinculo.idtipoestoque_item
- Safra - Cabeçalho
- Trazer todos os ativos
- Persistir em wsconfigpedcampovinculo.idsafra_cab
- Safra - Item
- Trazer todos os ativos
- Persistir em wsconfigpedcampovinculo.idsafra_item
- Cultura - Cabeçalho
- Trazer todos os ativos
- Persistir em wsconfigpedcampovinculo.idcultura_cab
- Cultura - Item
- Trazer todos os ativos
- Persistir em wsconfigpedcampovinculo.idcultura_item
- Tipo desconto
- Trazer todos os ativos
- Persistir em wsconfigpedcampovinculo.idtipodesconto
- Controle Flex
- Trazer todos os ativos
- Persistir em wsconfigpedcampovinculo.idcontroleflex
- A aba deverá possuir coluna de label "Diferente de": check-box com valores de tela Sim/Não
- Persistir em wsconfigpedcampovinculo.idndiferente
- Ao gravar um registro nessa grid, o sistema deverá persistir o campo wsconfigpedcampovinculo.contexto como 'EDI'
3. Edição condicional de campos no pedido
...
- Para cada item do carrinho, o sistema deverá consultar na tabela wsconfigpedcampovinculo, passando os campos selecionados no pedido como critérios de filtro, para verificar a existência de regras condicionais de obrigatoriedade.
Bloco de código |
---|
language | sql |
---|
title | 1: Consulta de campos obrigatórios |
---|
collapse | true |
---|
|
// Conjunto de registros com regra de igualdade
select idwsconfigpedidocampo from wsconfigpedcampovinculo where
contexto='EDI'
AND idndiferente = 0
AND (idusuario = ? or idusuario is null)
AND (idparceiro = ? or idparceiro is null)
AND (idlocal = ? or idlocal is null)
AND (idlocalcobranca = ? or idlocalcobranca is null)
AND (idregiao = ? or idregiao is null) // select idregiao from localregiao where idlocal = ?
AND (idcidade = ? or idcidade is null) // select idcidade from local where idlocal = ?
AND (idunidadefederativa = ? or idunidadefederativa is null) // select idunidadefederativa from cidade where idcidade = (select idcidad select e from local where idlocal = ?)
AND (idfilial = ? or idfilial is null)
AND (idcondicaopagamento = ? or idcondicaopagamento is null)
AND (idgrupoparceiro = ? or idgrupoparceiro is null)
AND (idsegmento = ? or idsegmento is null)
AND (idtipologia = ? or idtipologia is null)
AND (idtipopedido_cab = ? or idtipopedido_cab is null) // tipopedido selecionado no cabeçalho
AND (idtipopedido_item = ? or idtipopedido_item is null) // tipopedido selecionado no item
AND (idtipocobranca = ? or idtipocobranca is null)
AND (idtabelapreco_cab = ? or idtabelapreco_cab is null) // tabelapreco selecionado no cabeçalho
AND (idtabelapreco_item = ? or idtabelapreco_item is null) // tabelapreco selecionado no cabeçalho
AND (idindexador = ? or idindexador is null)
AND (idwsconfigpedidoagrupador = ? or idwsconfigpedidoagrupador is null)
AND (idoperacao = ? or idoperacao is null)
AND (idtipoestoque_cab = ? or idtipoestoque_cab is null) // tipoestoque selecionado no cabeçalho
AND (idtipoestoque_item = ? or idtipoestoque_item is null) // tipoestoque selecionado no cabeçalho
AND (idsafra_cab = ? or idsafra_cab is null) // safra selecionado no cabeçalho
AND (idsafra_item = ? or idsafra_item is null) // safra selecionado no cabeçalho
AND (idcultura_cab = ? or idcultura_cab is null) // cultura selecionado no cabeçalho
AND (idcultura_item = ? or idcultura_item is null) // cultura selecionado no cabeçalho
AND (idtipodesconto = ? or idtipodesconto is null)
AND (idcontroleflex = ? or idcontroleflex is null)
// Conjunto de registros com regra de DIFERENÇA
UNION
select idwsconfigpedidocampo from wsconfigpedcampovinculo where
contexto='EDI'
AND idndiferente = 1
AND (idusuario <> ? or idusuario is null)
AND (idparceiro <> ? or idparceiro is null)
AND (idlocal <> ? or idlocal is null)
AND (idlocalcobranca <> ? or idlocalcobranca is null)
AND (idregiao <> ? or idregiao is null) // select idregiao from localregiao where idlocal <> ?
AND (idcidade <> ? or idcidade is null) // select idcidade from local where idlocal <> ?
AND (idunidadefederativa <> ? or idunidadefederativa is null) // select idunidadefederativa from cidade where idcidade <> (select idcidad select e from local where idlocal <> ?)
AND (idfilial <> ? or idfilial is null)
AND (idcondicaopagamento <> ? or idcondicaopagamento is null)
AND (idgrupoparceiro <> ? or idgrupoparceiro is null)
AND (idsegmento <> ? or idsegmento is null)
AND (idtipologia <> ? or idtipologia is null)
AND (idtipopedido_cab <> ? or idtipopedido_cab is null) // tipopedido selecionado no cabeçalho
AND (idtipopedido_item <> ? or idtipopedido_item is null) // tipopedido selecionado no item
AND (idtipocobranca <> ? or idtipocobranca is null)
AND (idtabelapreco_cab <> ? or idtabelapreco_cab is null) // tabelapreco selecionado no cabeçalho
AND (idtabelapreco_item <> ? or idtabelapreco_item is null) // tabelapreco selecionado no cabeçalho
AND (idindexador <> ? or idindexador is null)
AND (idwsconfigpedidoagrupador <> ? or idwsconfigpedidoagrupador is null)
AND (idoperacao <> ? or idoperacao is null)
AND (idtipoestoque_cab <> ? or idtipoestoque_cab is null) // tipoestoque selecionado no cabeçalho
AND (idtipoestoque_item <> ? or idtipoestoque_item is null) // tipoestoque selecionado no cabeçalho
AND (idsafra_cab <> ? or idsafra_cab is null) // safra selecionado no cabeçalho
AND (idsafra_item <> ? or idsafra_item is null) // safra selecionado no cabeçalho
AND (idcultura_cab <> ? or idcultura_cab is null) // cultura selecionado no cabeçalho
AND (idcultura_item <> ? or idcultura_item is null) // cultura selecionado no cabeçalho
AND (idtipodesconto <> ? or idtipodesconto is null)
AND (idcontroleflex <> ? or idcontroleflex is null) |
- Se houverem registros retornados, o sistema deverá permitir a edição do campo clicado (idwsconfigpedidocampo) do item em questão.
...
- O sistema deverá retornar os valores dos campos que não são mais editáveis para o valor do cache.
...
03. ESCOPO TÉCNICO