Árvore de páginas

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 2 Próxima »

01. DADOS GERAIS


Produto:

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

Linha de Produto:

Linha TOTVS CRM SFA

Módulo:PEDIDO
Função:Novo pedido
Ticket:15678661
Requisito/Story/Issue:

DTSFAPD-1569 - Obtendo detalhes do item... STATUS

02. ESCOPO FUNCIONAL

Este requisito trata da importação do ERP para o SFA, das ordens de produção existentes, e a exibição dessas ordens na tela de pedido do SFA para o usuário.

Na tela de pedido, serão exibidas as ordens vinculadas à filial selecionada e aos produtos listados para venda e/ou adicionados ao carrinho de compras.

Serão consideradas válidas apenas as ordens cuja data de entrega prevista (C2_DATPRF) seja igual ou superior à data atual no momento da importação.

Cada ordem possui a informação da filial à qual pertence, os produtos e suas respectivas quantidades previstas para reposição, bem como a data prevista para essa reposição.

Dessa forma, o usuário terá condições de saber quando determinado produto estará disponível para venda/entrega ao cliente, em que quantidade estará disponível, podendo assim negociar melhor os detalhes do pedido como a data da entrega, quantidades vendidas, etc.


No ambiente WEB, a visualização do usuário será nas telas de Consulta Produto e Carrinho de compras, ambas na coluna CATEGORIA. Ver imagens abaixo:

Ao clicar no ícone , será exibida uma pop-up listando as ordens de produção ativas.

No ambiente Mobile, a exibição aparecerá nas telas CARD, PRODUTO e NEGOCIACAO.


Opcionalmente, será possível também visualizar no carrinho de compras em ambos os ambientes a quantidade total prevista para entrega dos produtos inseridos, e se o parâmetro de validação de estoque estiver ativo, será possível configurar o SFA para não permitir vendas acima da quantidade prevista para entrega.

03. ESCOPO TÉCNICO

3.1     INTEGRAÇÃO

3.1.1    IMPORTAÇÃO ORDENS DE PRODUCAO

[Integração] Detalhamento técnico

Comportamento 

·     Importar para a tabela [ORDEMPRODUCAO] as ordens de produção existentes no ERP salvos na tabela [SC2];



TOTVS CRM SFA

PROTHEUS

Tipo TOTVS CRM SFA

Obrigatório

1

IDLOCALFILIAL

C2_FILIAL

INTEIRO

SIM

2

NUMEROPEDIDO

C2_NUM

VARCHAR

SIM

3

IDPRODUTO

C2_PRODUTO

INTEIRO

SIM

4

QUANTIDADE

C2_QUANT

NUMERIC

SIM

5

DATAINICIOORDEM

C2_EMISSAO

DATE

SIM

6

DATAFIMORDEM

C2_DATPRF

DATE

SIM

7

IDNATIVO

FIXO 1

INTEIRO

SIM

8

IDTIPOESTOQUE

C2_LOCAL

INTEIRO

SIM

.     Utilizar o filtro C2_DATPRF >= Data atual para importar apenas ordens de produção válidas;

·     Ordens antigas (datafimordem < data atual) salvas no banco podem ser excluídas ou atualizadas para IDNATIVO=0.


3.2     DESENVOLVIMENTO

3.2.1    BUSCA PRODUTO – PEDIDOENGINE

[Desenvolvimento] Detalhamento técnico

Comportamento 

·     Para listar na tela do pedido as ordens de compra vinculadas ao produto, é preciso antes criar no pedidoengine uma nova configuração de busca ORDEM_PRODUCAO para filtrar              corretamente o armazém vinculado às ordens de produção existentes;

·     Essa busca estará vinculada à exibição das ordens na tela do pedido, detalhada no tópico 3.2.2;

·     Essa nova configuração deve aparecer em CONFIGURAÇÃO > CONFIGURAÇÃO PEDIDO > BUSCA PRODUTO;

·     Deve estar vinculada às tabelas [ORDEMPRODUCAO] e [TIPOESTOQUE];

·     As opções de filtro direto e níveis devem ser:

ORDEMPRODUTO.IDPRODUTO

ORDEMPRODUCAO.IDTIPOESTOQUE

ORDEMPRODUCAO.IDLOCALFILIAL

TIPOESTOQUE.SGLTIPOESTOQUE

TIPOESTOQUE.IDNATIVO

TIPOESTOQUE.IDNDISPONIVELPARAPEDIDO

.     OBS: o filtro de busca (and o.datafimordem >= CURRENT_DATE and o.idnativo=1), será sempre fixo, independente da configuração do pedidoengine;

·     Não havendo configuração específica no pedidoengine, segue abaixo sugestão de busca padrão:

SELECT o.numeropedido as Pedido,
       l.descricao     AS Filial,
		tp.descricao	as "Tipo Estoque"
       p.codigo,       AS Codigo,
       quantidade      AS Quantidade,
       datainicioordem AS "Data emissao",
       datafimordem    AS "Data prevista entrega"
FROM   ordemproducao o
       INNER JOIN produto p
               ON p.idproduto = o.idproduto
       INNER JOIN local l
               ON l.idlocal = o.idlocalfilial
		INNER JOIN tipoestoque tp
				ON tp.idtipoestoque = o.idtipoestoque
WHERE  o.idproduto in (select idproduto from tabelapecoproduto where
       idtabelapreco=tabela_preco_do_cabecalho)
       and o.datafimordem >= CURRENT_DATE
       and o.idnativo=1; 


3.2.2    CRIAÇÃO DE NOVA CONFIGURAÇÃO DE ÍCONE FIXO

Comportamento 

. Adicionar via Tools pela opção 18, nova configuração de ícone na tabela [ICONE]:



MasterSALES


Obrigatório

1

DESCRICAO

Consulta Ordens de produção ativas no ERP

SIM

2

CODIGO

ORDEM_PRODUCAO

SIM

3

IMAGEM

SIM

4

SGLCONTEXTO

PRODUTO

SIM

5

IDNATIVO

0

SIM

6

IDNFIXO

1

SIM

.  Adicionar na tela de cadastro de ícones, a coluna Ícone Fixo? referente ao campo [ICONE.IDNFIXO];

.  Se [ICONE.IDNFIXO] = 1, permitir a edição em tela da coluna DESCRICAO apenas, demais campos não devem ser editáveis.


3.2.3    EXIBIÇÃO NA COLUNA CATEGORIA

[Desenvolvimento] Detalhamento técnico

Comportamento 

·     Ao iniciar um pedido validar se o ícone ORDEM_PRODUCAO está ativo na tabela ICONE;

·     Se ele estiver ATIVO, então, usando a configuração de busca detalhada no tópico 3.2.1, deve ser exibida na coluna CATEGORIA da tela de pesquisa de produtos, no grid de produtos da WEB e no mobile, um novo ícone para listar as ordens de compras ativas:


·     Quando o usuário clicar no ícone exibir uma pop-up listando as ordens de compra ativas:


3.2.4    EXIBIÇÃO NO GRID/CARRINHO

[Desenvolvimento] Detalhamento técnico

Comportamento 

·     Exibir no grid de produtos da WEB e nas telas do mobile (Card, Carrinho e Negociação), campo referente à quantidade prevista;

·     A quantidade prevista é a soma de todas as quantidades das ordens de compra vinculadas ao produto que está no carrinho;

·     Para obter a soma da quantidade prevista deve ser utilizada a mesma configuração de busca explicada no tópico 3.2.3;

.     O filtro de busca (datafimordem >= CURRENT_DATE AND idnativo=1) sempre será fixo, independente da configuração do pedidoengine;

·     Caso não haja configuração de busca, segue abaixo sugestão de consulta padrão para o campo ‘Quantidade Prevista’:

SELECT idproduto,
       Sum(quantidade) AS "quantidade prevista"
FROM   ordemproducao o
WHERE  idproduto=:produto_no_carrinho
       AND idlocalfilial = :filial_do_pedido  
       AND datafimordem >= CURRENT_DATE
       AND idnativo=1
GROUP  BY idproduto ;

·     Utilizar os campos:

WEB_GRID_QUANTIDADE_PREVISTA_ENTRADA

ANDROID_CARD_QUANTIDADE_PREVISTA_ENTRADA

ANDROID_CARRINHO_QUANTIDADE_PREVISTA_ENTRADA

ANDROID_NEGOCIACAO_QUANTIDADE_PREVISTA_ENTRADA


3.2.5    VALIDAÇÃO PARÂMETRO

[Desenvolvimento] Detalhamento técnico

Comportamento 

·  Se o parâmetro HABILITAR_VALIDACAO_ESTOQUE = ATIVO, então:

    Validar se o parâmetro ‘sim3g.pedido.qtde.prevista.idnValidaQtdePrevista’ = ATIVO;

       Se ambos os parâmetros HABILITAR_VALIDACAO_ESTOQUE e ‘sim3g.pedido.qtde.prevista.idnValidaQtdePrevista’ estiverem ATIVOS, então:

         Realizar um cálculo para obter a QUANTIDADE TOTAL DISPONÍVEL (ESTOQUE ATUAL + QUANTIDADE PREVISTA);

A QUANTIDADE PREVISTA é o somatório das ordens de produção consultados pela configuração de busca produto > ORDEM_PRODUCAO

·     Por exemplo, se configurados filtros na consulta de ORDEM_PRODUCAO com as seguintes colunas:

    • ORDEMPRODUTO.IDPRODUTO
    • ORDEMPRODUCAO.IDTIPOESTOQUE
    • ORDEMPRODUCAO.IDLOCALFILIAL
    • OBS: o filtro de busca (AND o.idnativo = 1 AND o.datafimordem >= CURRENT_DATE) sempre será fixo.

A consulta seria realizada segundo a sql a seguir:

SELECT e.idproduto,
       e.quantidade
       + (SELECT Sum(quantidade)
          FROM   ordemproducao o
          WHERE  o.idproduto = e.idproduto
                 AND o.idlocalfilial = e.idlocalfilial
                 AND o.idtipoestoque = e.idtipoestoque
                 AND o.idnativo = 1
				 AND o.datafimordem >= CURRENT_DATE) AS quantidade_disponível
       FROM   estoque e
       WHERE  e.idproduto = :produto_no_carrinho
              AND e.idlocalfilial = :filial_cabecalho
              AND e.idtipoestoque = :tipo_estoque_item_carrinho;

·     Uma vez realizada a validação dos parâmetros e obtida a quantidade total disponível, essa passa a ser o valor referência para a validação de estoque, isto é:

      Se QUANTIDADE VENDIDA > QUANTIDADE TOTAL DISPONÍVEL, bloqueia a venda para aquele produto;

·     Dadas as considerações acima, se o usuário digitar uma quantidade maior que a quantidade total disponível, exibir em tela um aviso com a mensagem:

     ‘Quantidade não permitida, pois é superior à quantidade total disponível. Quantidade total disponível (estoque + quantidade prevista = XXX)’

·     Segue abaixo, fluxograma da regra de validação de estoque:


3.2.6    CRIAÇÃO NOVO CAMPO NO BANCO

[Desenvolvimento] Detalhamento técnico

Comportamento 

ALTER TABLE ordemproducao
ADD COLUMN idtipoestoque INT8 REFERENCES tipoestoque (idtipoestoque);





  • Sem rótulos