Árvore de páginas

 PRAZO DE ENTREGA (LEAD TIME)

Produto: Automação da Força de Vendas
Linha de Produto: TOTVS CRM
Segmento: Cross Segmentos
Módulo: Vendas - Entrega
Aplicação: App móvel
Identificador: DTSFAPD-2519

    VISÃO GERAL

A melhoria "Prazo de Entrega (Lead Time)" permite aos usuários definir um prazo de entrega padrão para os pedidos, automatizando a sugestão da Data de Entrega. Esta atualização visa melhorar a precisão no planejamento e na comunicação com os clientes, assegurando que as expectativas de entrega sejam realistas e bem gerenciadas.


    OBJETIVO

Com essa implementação, ao criar um pedido, a Data de Entrega é preenchida automaticamente com base no prazo padrão definido, mas com a flexibilidade de ajuste manual pelo usuário. Isso otimiza o processo de vendas, proporcionando uma visão clara do tempo necessário para a entrega dos produtos ou serviços.


  DETALHES FUNCIONAIS

Funções

  1. Cadastro de Prazos de Entrega: Configuração de prazos com base em critérios como cliente, cidades, UF, filiais e segmentos.

  2. Data de Entrega Automática: Em novos pedidos, a data de entrega é sugerida automaticamente conforme os prazos cadastrados.

  3. Edição Flexível da Data: Usuários podem ajustar manualmente a data de entrega, respeitando o prazo mínimo.

  4. Validação de Prazos: Restrições para garantir que a data de entrega não seja inferior ao prazo mínimo estabelecido.

  COMO USAR?

Passo a Passo

  1. Defina o prazo padrão de entrega nas configurações do TOTVS CRM.
  2. Ao criar um pedido, a Data de Entrega será calculada automaticamente.
  3. Se desejar, ajuste manualmente a Data de Entrega no pedido.


 EXEMPLO PRÁTICO

Desafio Antigo:

Antes da atualização, no processo de realização de pedidos, a definição da data de entrega dependia exclusivamente do preenchimento manual do usuário, que apenas estabelecia a data mínima e máxima.


Solução Atualizada:

o sistema agora calcula automaticamente a data de entrega do pedido, baseando-se em um prazo padrão predefinido e outros critérios específicos como cliente, cidades e UF de origem e destino. Essa mudança assegura uma estimativa mais precisa e realista para as datas de entrega, otimizando a logística e melhorando o planejamento e a satisfação do cliente.


  DETALHES TÉCNICOS

  1. Banco de dados
    • Pelo tools, opção 3, o sistema deve adicionar as seguintes colunas na tabela prazoentrega:
      • idparceiro: FK (Foreign Key) para tabela parceiro, nullable.
    • Pelo tools, opção 3, na tabela prazoentrega, o sistema deve tornar a coluna idlocalfilial nullable.
  2. Telas de cadastro
    • Abaixo do menu Configuração > Configuração Pedido, o sistema deverá receber nova tela de cadastro, de nome "Prazo Entrega".
    • A nova tela conterá grid contendo as seguintes colunas:
      • "Cliente": campo seleção, cujas opções selecionáveis são os parceiros ativos do sistema. Persistência no campo prazoentrega.idparceiro.
      • "Cidade Origem": campo seleção, cujas opções selecionáveis são as cidades ativas do sistema. Caso selecionada alguma opção no campo "UF Origem", o sistema deverá filtrar as seleções do presente campo segundo a consulta:
           /* select idcidade, descricao from cidade where idunidadefederativa = "ID da UF Origem selecionada" and idnativo = 1 */
      • Persistência no campo prazoentrega.idcidadeorigem.
      • "Cidade Destino": campo seleção. Caso selecionada alguma opção no campo "UF Destino", o sistema deverá filtrar as seleções do presente campo segundo a consulta:
        /* select idcidade, descricao from cidade where idunidadefederativa = "ID da UF Destino selecionada" and idnativo = 1 */
      • Persistência no campo prazoentrega.idcidadedestino.
      • "UF Origem": campo seleção, cujas opções selecionáveis são as unidades federativas ativas do sistema. Caso selecionada alguma opção no campo "Cidade Origem", o sistema deverá filtrar as seleções do presente campo segundo a consulta: div style="background-color: #2d2d2d; padding: 10px; border-radius: 5px;">
         /* select uf.idunidadefederativa, uf.descricao from cidade c inner join unidadefederativa uf on uf.idunidadefederativa = c.idunidadefederativa where c.idcidade = "ID da Cidade Origem selecionada" and uf.idnativo = 1 */
      • Persistência no campo prazoentrega.idunidadefedorigem.
      • "UF Destino": campo seleção. Caso selecionada alguma opção no campo "Cidade Destino", o sistema deverá filtrar as seleções do presente campo segundo a consulta:
        /* select uf.idunidadefederativa, uf.descricao from cidade c inner join unidadefederativa uf on uf.idunidadefederativa = c.idunidadefederativa where c.idcidade = "ID da Cidade Destino selecionada" and uf.idnativo = 1 */
        Persistência no campo prazoentrega.idunidadefeddestino.
      • "Filial": campo seleção, cujas opções selecionáveis são as filiais ativas do sistema, segundo a consulta:
        /* select l.idlocal from local l inner join localtipolocal ltl on ltl.idlocal = l.idlocal inner join tipolocal tl on tl.idtipolocal = ltl.idtipolocal where tl.sgltipolocal = "UEM" */
        Persistência no campo prazoentrega.idlocalfilial.
      • "Segmento": campo seleção, cujas opções selecionáveis são os segmentos ativos do sistema. Persistência no campo prazoentrega.idsegmento.
      • "Dias para entrega": Campo numérico editável, aceitando valores inteiros positivos. Persistência no campo prazoentrega.prazo.
      • "Tipo Prazo": campo drop-down, com as seguintes opções fixas: "Dias corridos" (valor "DIASCORR") e "Dias úteis" (valor "DIASUTEIS"). Persistência no campo prazoentrega.sgltipoprazo.
      • Persistir o campo prazoentrega.sgltipoentrega como "ENT" de maneira fixa.
  3. Configuração de busca
    • Na tela Configuração > Configuração Pedido > Busca entrega, o sistema abrirá para configuração os ícones de níveis e filtros gerais.
    • A tabela de origem da busca será a tabela prazoentrega, focando nos registros marcados como "ENT" no campo prazoentrega.sgltipoentrega.
    • Na última tela (Filtros), as opções no campo "Nome" incluem:
      • PARCEIRO_IDPARCEIRO: Parceiro selecionado no pedido. Texto de ajuda:
        -- Parceiro selecionado no pedido where prazoentrega.idparceiro = ${Identificador do parceiro selecionado no pedido}
      • CIDADEORIGEM_IDCIDADE: Cidade da filial de venda selecionada no pedido. Texto de ajuda:
        -- Cidade da filial de venda selecionada no pedido where prazoentrega.idcidadeorigem = (select idcidade from local where idlocal = ${Identificador da filial selecionada no pedido})
      • CIDADEDESTINO_IDCIDADE: Cidade do local do cliente selecionado no pedido. Texto de ajuda:
        -- Cidade do local do cliente selecionado no pedido where prazoentrega.idcidadedestino = (select idcidade from local where idlocal = ${Identificador do local selecionado no pedido})
      • UFORIGEM_IDUNIDADEFEDERATIVA: Unidade federativa da cidade da filial de venda selecionada no pedido. Texto de ajuda:
        -- Unidade federativa da cidade da filial de venda selecionada no pedido where prazoentrega.idunidadefedorigem = (select idunidadefederativa from cidade where idcidade = (select idcidade from local where idlocal = ${Identificador da filial selecionada no pedido}))
      • UFDESTINO_IDUNIDADEFEDERATIVA: Unidade federativa da cidade do local selecionado no pedido. Texto de ajuda:
        -- Unidade federativa da cidade do local selecionado no pedido where prazoentrega.idunidadefeddestino = (select idunidadefederativa from cidade where idcidade = (select idcidade from local where idlocal = ${Identificador do local selecionado no pedido}))
      • FILIAL_IDLOCAL: Filial de venda selecionada no pedido. Texto de ajuda:
        -- Filial de venda selecionada no pedido where prazoentrega.idlocalfilial = ${Identificador da filial selecionada no pedido}
      • SEGMENTO_IDSEGMENTO: Segmento selecionado no pedido. Texto de ajuda:
        -- Segmento selecionado no pedido where prazoentrega.idsegmento = ${Identificador do segmento selecionado no pedido}
    • Os textos de ajuda (Tooltip) serão mostrados ao passar o mouse sobre os registros, e o sistema deve colorir a linha com a cor #ffe096 ao exibir o tooltip.
  4. Implementação no pedido
    • No pedido de venda, no campo "Data entrega", o sistema deverá preencher automaticamente o campo com base na busca definida pela configuração do ponto 3, adicionando o prazo de entrega resultante da consulta à data atual (current_date + prazoentrega.prazo).
    • Se sgltipoprazo = 'DIASCORR', adicionar o prazo do campo prazoentrega.prazo à data corrente, sem desconsiderar finais de semanas e feriados. div style="background-color: #2d2d2d; padding: 10px; border-radius: 5px;">
      (CURRENT_DATE + {prazoentrega.prazo})
    • Se sgltipoprazo = 'DIASUTEIS', adicionar o prazo do campo prazoentrega.prazo à data corrente, desconsiderando finais de semanas e feriados. div style="background-color: #2d2d2d; padding: 10px; border-radius: 5px;">
      (CURRENT_DATE + {prazoentrega.prazo} + contagem de feriados e finais de semana entre current_date e data final)
    • Consideração dos feriados do sistema a partir da consulta: div style="background-color: #2d2d2d; padding: 10px; border-radius: 5px;">
      /* select * from datacomemorativa where idnferiado = 1 */
    • A entidade feriado pode ser depreciada em código-fonte.
    • Caso o usuário edite o campo manualmente, validar que a data seja maior ou igual à data definida pela consulta acima.
    • Se a data for maior ou igual, permitir a finalização do pedido. Se for menor, realizar Rollback com a mensagem: "A data de entrega mínima deve ser ${Data retornada pelo cálculo current_date + prazoentrega.prazo retornado pela consulta}".

PERGUNTAS FREQUENTES

  • question_answerÉ possível ajustar manualmente a data de entrega?
    Sim. Apesar do cálculo automático, o sistema permite que o usuário ajuste a data de entrega manualmente, mantendo a flexibilidade no processo.