Árvore de páginas

VALIDAÇÃO DE ESTOQUE PARA AJUSTES DE PEDIDOS

   
Produto: Automação da Força de Vendas
Linha de Produto: TOTVS CRM
Segmento: Cross Segmentos
Módulo: Venda
Aplicação: Web/app móvel
Identificador: 16246624 16271428

    VISÃO GERAL

     

Este recurso introduz o modo "Orçamento" para pedidos, permitindo adicionar produtos sem verificação imediata de estoque. Ao concluir o pedido, o TOTVS CRM - SFA confirma o saldo disponível, assegurando uma gestão acurada do inventário. Além disso, permite vendas quando a quantidade supera o estoque, conforme configurações específicas, enriquecendo a experiência do usuário e otimizando o processo de vendas.


    OBJETIVO

Maximizar a eficiência na elaboração de pedidos, assegurar a precisão de estoque, viabilizar vendas com estoque limitado.


  ANTES DE COMEÇAR

Requisitos

Para utilizar o recurso, certifique-se de estar usando a versão padrão da solução.

  DETALHES FUNCIONAIS

Funções

  • Permite criar pedidos sem verificar o estoque imediatamente.
  • Confere o estoque ao finalizar um pedido, evitando erros.
  • Processa vendas mesmo com estoque insuficiente.
  • Adapta regras de gestão de estoque conforme necessidade.

  COMO USAR?

Passo a Passo

  1. Criação de um Novo Pedido:
    • No painel principal, opte por "Novo Pedido".
    • A validação da quantidade de estoque é determinada pelas configurações previamente estabelecidas.
  2. Seleção e Quantificação do Produto:
    • Escolha o produto desejado e determine a quantidade.
  3. Configuração de Validação de Estoque:
    • Com o recurso de ajuste ativado, você pode configurar para que a validação de um estoque negativo seja realizada apenas ao gravar ou finalizar o pedido. Isso proporciona maior flexibilidade ao usuário ao adicionar quantidades, otimizando a experiência.
    • A validação de estoque positivo pode ser ajustada para distinguir pedidos com produtos disponíveis em estoque daqueles que não estão. Isso facilita o planejamento e a gestão de entregas, permitindo separar pedidos com produtos em estoque daqueles sem estoque.


 EXEMPLO PRÁTICO

Caso de uso

Cenário:
Rafael é um gestor de vendas em uma industria têxtil. A demanda por novos lançamentos é alta e o estoque varia rapidamente.



Desafio Antigo:
O processo anterior de verificação de estoque em tempo real causava pedidos interrompidos devido à falta de produtos.



Solução Atualizada:
A nova funcionalidade permite a Rafael criar pedidos no modo "Orçamento", adicionando produtos sem verificar o estoque. Apenas ao finalizar, o sistema checa a disponibilidade, otimizando a experiência e tornando a gestão de pedidos mais eficaz.


  DETALHES TÉCNICOS


Modificação na Base de Dados:

  • Através da opção 5 da ferramenta "tools", é necessário criar o registro:
  • VALEST_GATILHO_ALTERACAO_CARRINHO
  • Descrição: Este registro ativa a lógica associada aos parâmetros VALEST_LOGICA_BLOQUEIA_SALDO_NEGATIVO e VALEST_LOGICA_BLOQUEIA_SALDO_POSITIVO quando há uma modificação de produtos no carrinho.

 

<changeSet author="systemScript" failOnError="false" id="" runOnChange="true">
<preConditions onError="HALT" onFail="MARK_RAN" onSqlOutput="IGNORE">
    <customPrecondition className="com.wealthsystems.sim3g.dao.hibernate.api.liquibase.custom.precondition.RegisterExistsPrecondition">
        <param name="table" value="WsConfigPedidoGeral"/>
        <param name="column" value="chave"/>
        <param name="value" value="'VALEST_GATILHO_ALTERACAO_CARRINHO'"/>
    </customPrecondition>
</preConditions>
<insert tableName="WsConfigPedidoGeral">
    <column name="idWsConfigPedidoGeral" valueSequenceNext="SEQPKWSCONFIGPEDIDOGERAL"/>
    <column name="chave" valueComputed="'VALEST_GATILHO_ALTERACAO_CARRINHO'"/>
    <column name="idnAtivo" valueComputed="(select idnAtivo from WsConfigPedidoGeral where chave = 'HABILITAR_VALIDACAO_ESTOQUE')"/>
    <column name="label" valueComputed=""/>
    <column name="idParametroSuperior" valueComputed="(select idWsConfigPedidoGeral from WsConfigPedidoGeral where chave = 'HABILITAR_VALIDACAO_ESTOQUE')"/>
</insert>
</changeSet>
 

VALEST_GATILHO_GRAVAR

Descrição: Ativa a lógica definida pelos parâmetros VALEST_LOGICA_BLOQUEIA_SALDO_NEGATIVO e VALEST_LOGICA_BLOQUEIA_SALDO_POSITIVO ao salvar o pedido.


 

<changeSet author="systemScript" failOnError="false" id="" runOnChange="true">
    <preConditions onError="HALT" onFail="MARK_RAN" onSqlOutput="IGNORE">
        <customPrecondition className="com.wealthsystems.sim3g.dao.hibernate.api.liquibase.custom.precondition.RegisterExistsPrecondition">
            <param name="table" value="WsConfigPedidoGeral"/>
            <param name="column" value="chave"/>
            <param name="value" value="'VALEST_GATILHO_GRAVAR'"/>
        </customPrecondition>
    </preConditions>
    <insert tableName="WsConfigPedidoGeral">
        <column name="idWsConfigPedidoGeral" valueSequenceNext="SEQPKWSCONFIGPEDIDOGERAL"/>
        <column name="chave" valueComputed="'VALEST_GATILHO_GRAVAR'"/>
        <column name="idnAtivo" valueComputed="0"/>
        <column name="label" valueComputed=""/>
        <column name="idParametroSuperior" valueComputed="(select idWsConfigPedidoGeral from WsConfigPedidoGeral where chave = 'HABILITAR_VALIDACAO_ESTOQUE')"/>
    </insert>
</changeSet>
         

VALEST_GATILHO_FINALIZAR

Descrição: Ativa as lógicas definidas pelos parâmetros VALEST_LOGICA_BLOQUEIA_SALDO_NEGATIVO e VALEST_LOGICA_BLOQUEIA_SALDO_POSITIVO ao finalizar o pedido.



<changeSet author="systemScript" failOnError="false" id="" runOnChange="true">
    <preConditions onError="HALT" onFail="MARK_RAN" onSqlOutput="IGNORE">
        <customPrecondition className="com.wealthsystems.sim3g.dao.hibernate.api.liquibase.custom.precondition.RegisterExistsPrecondition">
            <param name="table" value="WsConfigPedidoGeral"/>
            <param name="column" value="chave"/>
            <param name="value" value="'VALEST_GATILHO_FINALIZAR'"/>
        </customPrecondition>
    </preConditions>
    <insert tableName="WsConfigPedidoGeral">
        <column name="idWsConfigPedidoGeral" valueSequenceNext="SEQPKWSCONFIGPEDIDOGERAL"/>
        <column name="chave" valueComputed="'VALEST_GATILHO_FINALIZAR'"/>
        <column name="idnAtivo" valueComputed="(select idnAtivo from WsConfigPedidoGeral where chave = 'HABILITAR_VALIDACAO_ESTOQUE')"/>
        <column name="label" valueComputed=""/>
        <column name="idParametroSuperior" valueComputed="(select idWsConfigPedidoGeral from WsConfigPedidoGeral where chave = 'HABILITAR_VALIDACAO_ESTOQUE')"/>
    </insert>
</changeSet>
         

VALEST_LOGICA_BLOQUEIA_SALDO_NEGATIVO

Descrição: Esta lógica impede a venda de produtos quando o saldo é negativo (quantidade requisitada excede o estoque disponível). Ela é ativada quando qualquer um dos seguintes parâmetros estiver ativo: VALEST_GATILHO_ALTERACAO_CARRINHO, VALEST_GATILHO_GRAVAR, VALEST_GATILHO_FINALIZAR.


  
<changeSet author="systemScript" failOnError="false" id="" runOnChange="true">
  <preConditions onError="HALT" onFail="MARK_RAN" onSqlOutput="IGNORE">
      <customPrecondition className="com.wealthsystems.sim3g.dao.hibernate.api.liquibase.custom.precondition.RegisterExistsPrecondition">
          <param name="table" value="WsConfigPedidoGeral"/>
          <param name="column" value="chave"/>
          <param name="value" value="'VALEST_LOGICA_BLOQUEIA_SALDO_NEGATIVO'"/>
      </customPrecondition>
  </preConditions>
  <insert tableName="WsConfigPedidoGeral">
      <column name="idWsConfigPedidoGeral" valueSequenceNext="SEQPKWSCONFIGPEDIDOGERAL"/>
      <column name="chave" valueComputed="'VALEST_LOGICA_BLOQUEIA_SALDO_NEGATIVO'"/>
      <column name="idnAtivo" valueComputed="(select idnAtivo from WsConfigPedidoGeral where chave = 'HABILITAR_VALIDACAO_ESTOQUE')"/>
      <column name="label" valueComputed=""/>
      <column name="idParametroSuperior" valueComputed="(select idWsConfigPedidoGeral from WsConfigPedidoGeral where chave = 'HABILITAR_VALIDACAO_ESTOQUE')"/>
  </insert>
</changeSet>
  

VALEST_LOGICA_BLOQUEIA_SALDO_POSITIVO

Descrição: Esta lógica impede a venda de produtos quando há saldo suficiente (a quantidade requisitada é menor ou igual ao estoque disponível). A lógica será ativada se qualquer um dos parâmetros VALEST_GATILHO_GRAVAR ou VALEST_GATILHO_FINALIZAR estiver habilitado.


 
  
<changeSet author="systemScript" failOnError="false" id="" runOnChange="true">
  <preConditions onError="HALT" onFail="MARK_RAN" onSqlOutput="IGNORE">
      <customPrecondition className="com.wealthsystems.sim3g.dao.hibernate.api.liquibase.custom.precondition.RegisterExistsPrecondition">
          <param name="table" value="WsConfigPedidoGeral"/>
          <param name="column" value="chave"/>
          <param name="value" value="'VALEST_LOGICA_BLOQUEIA_SALDO_NEGATIVO'"/>
      </customPrecondition>
  </preConditions>
  <insert tableName="WsConfigPedidoGeral">
      <column name="idWsConfigPedidoGeral" valueSequenceNext="SEQPKWSCONFIGPEDIDOGERAL"/>
      <column name="chave" valueComputed="'VALEST_LOGICA_BLOQUEIA_SALDO_NEGATIVO'"/>
      <column name="idnAtivo" valueComputed="(select idnAtivo from WsConfigPedidoGeral where chave = 'HABILITAR_VALIDACAO_ESTOQUE')"/>
      <column name="label" valueComputed=""/>
      <column name="idParametroSuperior" valueComputed="(select idWsConfigPedidoGeral from WsConfigPedidoGeral where chave = 'HABILITAR_VALIDACAO_ESTOQUE')"/>
  </insert>
</changeSet>
  

Modificação nas Configurações de Agrupadores

Siga os passos abaixo:

  1. Acesse o menu "Configuração".
  2. Navegue até "Configuração pedido" e depois clique em "Geral".
  3. Clique no botão "Agrupadores".
  4. Na opção "Parâmetro geral", adicione os seguintes registros:
  • VALEST_GATILHO_ALTERACAO_CARRINHO
  • VALEST_GATILHO_GRAVAR
  • VALEST_GATILHO_FINALIZAR
  • VALEST_LOGICA_BLOQUEIA_SALDO_NEGATIVO
  • VALEST_LOGICA_BLOQUEIA_SALDO_POSITIVO

Minha Imagem

Lógica de Pedido:

Alterando os Campos:

  • Quando os campos "Quantidade" ou "Quantidade Embalagem" são modificados:
    • Se VALEST_GATILHO_ALTERACAO_CARRINHO e VALEST_LOGICA_BLOQUEIA_SALDO_NEGATIVO estiverem ativos, o sistema bloqueará a alteração se "Quantidade" for maior que "Estoque disponível" (usar QUANTIDADE_PREVISTA_ENTRADA se presente, senão ESTOQUE).
    • Em outros casos, o sistema permitirá a alteração.

Ao Gravar o Pedido:

  • Se VALEST_GATILHO_GRAVAR estiver ativo:
    • Se VALEST_LOGICA_BLOQUEIA_SALDO_NEGATIVO estiver ativo, o sistema bloqueará se "Quantidade" for maior que "Estoque disponível".
    • Se VALEST_LOGICA_BLOQUEIA_SALDO_POSITIVO estiver ativo, o sistema bloqueará se "Quantidade" for menor ou igual ao "Estoque disponível".
    • Em outros casos, o sistema permitirá a alteração.

Finalizando o Pedido:

  • Se VALEST_GATILHO_FINALIZAR estiver ativo:
    • Se VALEST_LOGICA_BLOQUEIA_SALDO_NEGATIVO estiver ativo, o sistema bloqueará se "Quantidade" for maior que "Estoque disponível".
    • Se VALEST_LOGICA_BLOQUEIA_SALDO_POSITIVO estiver ativo, o sistema bloqueará se "Quantidade" for menor ou igual ao "Estoque disponível".
    • Em outros casos, o sistema permitirá a alteração.

Nota:

A ordem de prioridade dos parâmetros é:

  1. Parâmetros na tela de Agrupadores de configuração, com base no campo AGRUPADOR_CONFIGURACAO escolhido no cabeçalho.
  2. Se não estiverem definidos conforme acima, os parâmetros da tela "Configuração Pedido > Geral" serão usados.
  3. Se os parâmetros esperados não estiverem no banco de dados, o sistema exibirá: "Os seguintes parâmetros são esperados pelo sistema e não constam existentes no banco de dados: X, Y".

PERGUNTAS FREQUENTES

  • question_answer