Este módulo tem o objetivo de manipular vendas dentro da aplicação. Na guia de pedidos, o usuário pode fazer novos pedidos de venda, consulta-los em listagem, aprovações entre outros. Este repositório permite que o usuário faça personalizações da aplicação conforme a necessidade, para atender todas as estratégias de venda utilizada pelo cliente.
Já na guia de Notas Fiscais, o usuário poderá realizar consultas das informações de notas fiscais que são importadas (integradas) do ERP utilizado.
Erro ao processar a macro "toc"
null
CORE
Neste módulo o usuário do sistema poderá consultar informações referente as notas fiscais que são integradas do ERP (Enterprise Resource Planning - ou Sistema de Gestão Empresarial).
Sendo assim, a listagem de notas é exibida ao usuário desta forma:
No botão de "Visualização" de cada registro, é exibido as informações da nota fiscal importadas do ERP. São exibidos os dados de do cabeçalho da Nota fiscal, como também os dados do produto.
Lembrando que alguns desses dados são exibidos quando associados aos pedidos emitidos pela aplicação TOTVS - SFA.
O sistema também permite que o usuário faça a manipulação dos campos que serão listados na consulta de notas fiscais.
Para isso, acesse Configuração > Configuração pedido > Consulta nota fiscal
Quando selecionado com "Exibir coluna" será apresentado o campo ao usuário na consulta. Ao "exibir filtro" o campo é listado como filtro na consulta de notas fiscais na web. Os outros campos tem o mesmo funcionamento que a configuração de consulta para os pedidos.
Por exemplo, a exibição de Data de vencimento da nota fiscal:
Na configuração, para o campo WEB_LISTAGEM_DATAVENCIMENTO é alterado para "Exibir coluna - Sim" e o Campo de Data vencimento é exibido na listagem
Porém quando o campo WEB_CABECALHO_DATAVENCIMENTO é alterado para "Exibir coluna - Sim" e o Campo de Data vencimento é exibido no Cabeçalho da consulta da Nota fiscal
Consequentemente, a configuração funciona para os outros campos da mesma forma.
Nesse módulo o usuário do sistema poderá emitir pedidos de vendas e enviá-los ao ERP (Enterprise Resource Planning - ou Sistema de Gestão Empresarial) integrado para posterior processamento e faturamento.
Também é possível visualizar os pedidos já existentes, a fim de validar informações e acompanhar o andamento deles.
Durante a emissão de um pedido de venda, o usuário terá a possibilidade de:
Em todas essas ações, o pedido poderá ser parametrizado de várias maneiras diferentes, baseado no Configurador de Pedidos do TOTVS CRM | SFA.
O Configurador de Pedidos é o recurso do sistema capaz de parametrizar regras para exibição/ocultação de informações e/ou lógicas de execução de validações em geral.
Abaixo serão descritas as principais possibilidades de configuração do emissor de pedidos do TOTVS CRM | SFA.
O cabeçalho do pedido é a seção destinada ao preenchimento dos dados comuns e gerais do pedido. Os produtos somente poderão ser adicionados ao pedido após o preenchimento dos campos obrigatórios do cabeçalho. Pelo Configurador de Pedidos, pode-se ativar ou desativar campos, definir títulos, se serão exibidos ou ocultados (e em qual ordem), se serão editáveis ou protegidos (com ou sem produtos no carrinho), se o preenchimento será obrigatório ou opcional e se o campo deverá ser exibido ou ocultado no relatório de pedido de venda. Além disso, alguns campos permitem a configuração de consultas específicas (que podem ser organizadas por níveis) para disponibilização das opções para seleção e qual registro já deverá vir selecionado por padrão.
O cabeçalho do pedido standard disponibiliza para preenchimento de alguns dos seguintes campos:
Aplicação web:
Aplicação Android:
Nesse campo deve ser preenchido o profissional responsável pelo pedido.
Vínculos disponíveis |
Hierarquia profissional Perfil de acesso Local de venda Filial Operação |
Exemplo |
Exibe o profissional autenticado e os profissionais ativos abaixo da sua hierarquia. |
Nesse campo deve ser preenchido o cliente do pedido.
Vínculos disponíveis∙ ∙ |
Profissional autenticado Hierarquia profissional |
Exemplo |
Exibe os clientes ativos vinculados ao profissional autenticado ou vinculados aos profissionais abaixo da hierarquia do profissional autenticado. |
Nesse campo deve ser preenchido o local de venda/faturamento do cliente do pedido. Entende-se local como sendo os endereços/lojas do cliente.
Vínculos disponíveis |
Cliente Profissional Filial Segmento Unidade federativa da filial Unidade federativa do local de venda Operação |
Exemplo |
Exibe os locais de venda/faturamento ativos vinculados ao cliente e ao profissional do pedido. |
Para o Local de atendimento, foi incluso um novo comportamento no Android, onde o Local do atendimento é selecionado automaticamente no pedido, quando disponível.
Sendo assim, na Visão 360º, quando selecionado um Local de atendimento, ao Clicar em "Novo pedido", é aberto a tela de pedidos, já com o mesmo local selecionado. A ideia é facilitar o preenchimento do cabeçalho trazendo já esta informação, mesmo que o usuário possa alterar o campo manualmente.
Após a seleção do local de venda do pedido, um semáforo indicará se o local possui ou não bloqueios cadastrados, podendo ser na cor verde, amarela ou vermelha.
No TOTVS CRM | SFA Web, o semáforo é exibido no cabeçalho da tela de pedidos, ao lado do campo "Local de venda". Já no TOTVS CRM | SFA Mobile, o mesmo semáforo é apresentado ao lado do campo "Local" na tela da visão 360 do cliente.
É possível cadastrar diferentes tipos de bloqueio no TOTVS CRM | SFA, conforme apresentado abaixo.
Configurações |
Cor do semáforo (verde/amarela/vermelha) Permite iniciar pedido (sim/não) Permite finalizar pedido (sim/não) Requer aprovação (sim/não) |
Exemplo |
Detalhes do bloqueio do cliente (Web) |
Após a seleção do local de venda do pedido, o ícone de "dinheiro" indica se o cliente possui títulos a pagar, pagos e/ou vencidos. Ao clicar sobre esse ícone, será exibida uma tela contendo informações detalhadas dos títulos do cliente. No TOTVS CRM | SFA Web, o ícone de "dinheiro" é exibido no cabeçalho da tela de pedidos, ao lado do campo "Local de venda". Já no TOTVS CRM | SFA Mobile, as mesmas informações são apresentadas na tela da visão 360 do cliente.
Configurações |
Ícone verde: Todos os títulos do cliente estão pagos. Ícone amarelo: O cliente não possui títulos vencidos, porém possui títulos a vencer, podendo ou não também possuir títulos pagos. Ícone vermelho: O cliente possui títulos vencidos, podendo ou não também possuir títulos a vencer e/ou pagos. |
Exemplo |
Detalhes dos títulos do cliente (Web) |
Nesse campo deve ser preenchido o local de cobrança do cliente do pedido. Entende-se local como sendo os endereços/lojas do cliente.
Vínculos disponíveis |
Cliente Profissional Filial Segmento Unidade federativa da filial Unidade federativa do local de venda Operação |
Exemplo |
Exibe os locais de cobrança ativos vinculados ao cliente e ao profissional do pedido. |
Nesse campo deve ser preenchida a filial de venda do pedido.
Vínculos |
Local de venda Profissional Operação Tabela de preços |
Exemplo |
Exibe as filiais ativas vinculadas ao local de venda e ao profissional do pedido. |
Nesse campo deve ser preenchido o tipo do pedido.
Vínculos disponíveis |
Profissional Local de venda Segmento Operação Filial Condição de pagamento Grupo de produtos |
Exemplo |
Exibe os tipos de pedido ativos vinculados ao profissional e ao local de venda do pedido. |
Nesse campo deve ser preenchida a tabela de preços do pedido, que será responsável por definir os preços dos produtos que serão inseridos no pedido.
Vínculos disponíveis |
Profissional Filial Cliente Local de venda Condição de pagamento Tipo de pedido Segmento Local de cobrança Grupo de clientes Região do local de venda Região da filial Unidade federativa da filial Unidade federativa do local de venda Operação Tipo de produto |
Exemplo |
Exibe as tabelas de preços ativas, vigentes, vinculadas ao profissional e ao local de venda do pedido. Caso não sejam encontradas tabelas de preços com as condições acima, exibe as tabelas de preços ativas, vigentes, vinculadas a unidade federativa do local de venda do pedido. Caso não sejam encontradas tabelas de preços com as condições acima, exibe as tabelas de preços ativas, vigentes, vinculadas a unidade federativa da filial do pedido. Caso não sejam encontradas tabelas de preços com as condições acima, exibe uma tabela de preços específica. |
Nesse campo deve ser preenchida a condição de pagamento do pedido. Entende-se como condição de pagamento os prazos para pagamento do pedido.
Vínculos |
Filial Prazo médio do local de venda Segmento Profissional Cliente Local de venda Tipo de cobrança Tabela de preços Tipo de pedido Operação |
Exemplo |
Exibe as condições de pagamento ativas vinculadas ao local de venda e a tabela de preços do pedido. |
Nesse campo deve ser preenchido o tipo de cobrança do pedido. Entende-se como tipo de cobrança a forma de pagamento do pedido.
Vínculos disponíveis |
Profissional Local de venda Filial Segmento Cliente Segmento Operação Condição de pagamento Tipo de pedido |
Exemplo |
Exibe os tipos de cobrança ativos vinculados a condição de pagamento e ao cliente do pedido. |
Nesse campo deve ser preenchido o grupo de clientes do pedido.
Vínculos disponíveis∙ |
Cliente |
Exemplo |
Exibe os grupos de clientes ativos vinculados ao cliente do pedido. |
Nesse campo deve ser preenchido o segmento do pedido.
Vínculos disponíveis |
Local de venda Filial Profissional Cliente Operação Grupo de produtos Tipo de produtos |
Exemplo |
Exibe os segmentos ativos vinculados ao cliente do pedido. |
Nesse campo deve ser preenchida a tipologia do pedido.
Vínculos disponíveis |
Local de venda Filial Segmento |
Exemplo |
Exibe as tipologias ativas vinculadas ao cliente do pedido. |
Nesse campo deve ser preenchida a operação do pedido.
Vínculos disponíveis ∙ |
Profissional Tipo de pedido Condição de pagamento Filial Local de venda Segmento Unidade federativa da filial Unidade federativa do local de venda Cliente Tabela de preços Tipo de cobrança Tipo de produto |
Exemplo |
Exibe as operações ativas vinculadas a filial, local de venda e tabela de preços do pedido. |
Nesse campo deve ser preenchido o grupo de produtos do pedido.
Vínculos disponíveis ∙ |
Tipo de pedido Operação Filial Segmento |
Exemplo |
Exibe os grupos de produtos ativos vinculados a operação e ao segmento do pedido. |
Nesse campo deve ser preenchido o tipo dos produtos do pedido.
Vínculos disponíveis |
Profissional Cliente Local de venda Operação Segmento Tabela de preços |
Exemplo |
Exibe os tipos de produtos ativos vinculados ao profissional e ao cliente do pedido. |
Nesse campo deve ser preenchido o cadastro da conta flex que será utilizada no pedido. Mais detalhes em "Configuração do flex".
Vínculos disponíveis∙ |
Profissional |
Exemplo |
Exibe a conta flex ativa, vigente e vinculada ao profissional do pedido. |
Esse campo é preenchido automaticamente com a data atual no momento da criação do pedido.
Configurações disponíveis∙ |
Nenhum |
Exemplo |
Ao iniciar um pedido no dia 01/06/2019, esse campo será preenchido com 01/06/2019. |
Nesse campo deve ser preenchido o local de entrega do pedido. Entende-se local como sendo os endereços/lojas do cliente. O mesmo campo poderá estar disponível na seção de "Entrega" do pedido.
Vínculos disponíveis |
Cliente Profissional Filial Segmento Unidade federativa da filial Unidade federativa do local de venda Operação |
Exemplo |
Exibe os locais de entrega ativos vinculados ao cliente e ao profissional do pedido. |
Nesse campo deve ser preenchida a data de entrega do pedido. O mesmo campo poderá estar disponível na seção de "Entrega" do pedido.
Configurações disponíveis |
Em branco Data atual Data atual + x dias |
Exemplo |
Se configurado para "Data atual + 2 dias", ao emitir um pedido no dia 20/11/2019, a data de entrega será preenchida com 22/11/2019. |
Nesse campo deve ser preenchido o tipo de frete do pedido. O mesmo campo poderá estar disponível na seção de "Entrega" do pedido.
Vínculos disponíveis |
Filial Cidade da filial Local de venda Cidade do local venda Segmento Tabela de preços Cliente |
Exemplo |
Exibe os tipos de frete ativos vinculados a filial e a cidade do local de venda do pedido. |
Após o preenchimento do "Cabeçalho", será possível adicionar produtos ao pedido.
Pelo Configurador de Pedidos, é possível definir quais produtos deverão estar disponíveis para venda no pedido, conforme vínculos abaixo.
Vínculos disponíveis |
Filial Segmento Região da filial Região do local de venda Tipo de produto Tipologia do local de venda Tipologia da filial Grupo de produtos Tipo de pedido Profissional Local de venda Condição de pagamento Tabela de preços Cliente Grupo de clientes Cidade da filial Cidade do local de venda Tipologia Unidade federativa da filial Unidade federativa do local de venda Operação Tipo de estoque Tipo de cobrança |
Exemplo |
Exibe os produtos ativos vinculados a filial, ao profissional e a tabela de preços do pedido. |
A pesquisa de produtos poderá ser realizada em todos os produtos disponíveis ou somente nos produtos pertencentes a uma categoria específica.
As categorias disponíveis são: Histórico, Sugestão de venda, Lançamento e Oferta. (Para detalhes vide link)
Nessa seção será possível pesquisar todos os produtos disponíveis para venda no pedido, de acordo com a configuração prévia realizada.
Para pesquisar um produto utilizando o TOTVS CRM | SFA Web, levando em consideração todos os produtos disponíveis (independentemente da categoria), o profissional deverá acessar a aba "Carrinho" e utilizar o campo "Produto" da grid ou clicar sobre o botão lupa para exibir a tela de pesquisa de produtos.
As informações disponíveis na tela de pesquisa de produtos do ambiente Web são: código, descrição, grupo, estoque, quantidade, preço de venda e categoria.
Para pesquisar um produto utilizando o TOTVS CRM | SFA Mobile, levando em consideração todos os produtos disponíveis (independentemente da categoria), o profissional deverá acessar a aba "Produtos", selecionar a opção "Todos" e utilizar o campo de pesquisa. Também é possível realizar a busca utilizando a pesquisa avançada, através do botão lupa cruzada.
1.2.1.2 Histórico
Nessa seção estarão disponíveis para pesquisa somente os produtos da seção "Todos" que estiverem categorizados como "Histórico".
A categorização do "Histórico" é processada e gerada automaticamente pelo TOTVS CRM | SFA de acordo com as configurações abaixo.
Vínculos e configurações disponíveis |
Cliente e local de venda Quantidade de produtos a serem sugeridos Vendidos em maior quantidade Vendidos mais vezes Vendidos nos últimos x dias Vendidos nos últimos x pedidos Periodicidade de geração do histórico |
Exemplo |
Categoriza como "Histórico" os diferentes produtos que foram vendidos em maior quantidade para o cliente e local de venda, considerando os últimos 10 pedidos emitidos nos últimos 30 dias, limitado ao máximo de 5 produtos. |
Para pesquisar um produto categorizado como "Histórico" utilizando o TOTVS CRM | SFA Web, o profissional deverá acessar a aba "Histórico".
Para pesquisar um produto categorizado como "Histórico" utilizando o TOTVS CRM | SFA Mobile, o profissional deverá acessar a aba "Produtos", selecionar a opção "Histórico" e utilizar o campo de pesquisa.
Nessa seção estarão disponíveis para pesquisa somente os produtos da seção "Todos" que estiverem categorizados como "Sugestão de venda".
A categorização da "Sugestão de venda" pode ser cadastrada no TOTVS CRM | SFA de acordo com as configurações abaixo.
Vínculos e ∙ configurações disponíveis |
Período de vigência Produtos Clientes Unidades federativas Cidades Tipologias Classificação de clientes Grupos de clientes |
Exemplo |
Categoriza como "Sugestão de venda" os produtos "Margarina" e "Manteiga" para todos os clientes da tipologia "Padaria" pertencentes ao estado do "Paraná" durante o período de 01/06/2019 à 31/12/2019. |
Para pesquisar um produto categorizado como "Sugestão de venda" utilizando o TOTVS CRM | SFA Web, o profissional deverá acessar a aba "Sugestão de venda".
Para pesquisar um produto categorizado como "Sugestão de venda" utilizando o TOTVS CRM | SFA Mobile, o profissional deverá acessar a aba "Produtos", selecionar a opção "Sugestão de venda" e utilizar o campo de pesquisa.
Nessa seção estarão disponíveis para pesquisa somente os produtos da seção "Todos" que estiverem categorizados como "Lançamento".
A categorização de "Lançamento" pode ser cadastrada no TOTVS CRM | SFA de acordo com as configurações abaixo.
Vínculos e configurações disponíveis |
Produtos Filial Cliente Local de venda Grupo de clientes Tipo de pedido |
Exemplo |
Categoriza como "Lançamento" os produtos "Leite semidesnatado" e "Iogurte integral" em pedidos emitidos pela Matriz cujo tipo de pedido seja "Venda normal". |
Para pesquisar um produto categorizado como "Lançamento" utilizando o TOTVS CRM | SFA Web, o profissional deverá acessar a aba "Lançamento".
Para pesquisar um produto categorizado como "Lançamento" utilizando o TOTVS CRM | SFA Mobile, o profissional deverá acessar a aba "Produtos", selecionar a opção "Lançamento" e utilizar o campo de pesquisa.
Nessa seção estarão disponíveis para pesquisa somente os produtos da seção "Todos" que estiverem categorizados como "Oferta".
A categorização de "Oferta" pode ser cadastrada no TOTVS CRM | SFA de acordo com as configurações abaixo.
Vínculos e configurações disponíveis |
Período de vigência Produtos Percentual de desconto Valor de desconto Filial Cliente Local de venda Grupo de clientes Tipo de pedido |
Exemplo |
Categoriza como "Oferta" o produto "Chocolate em pó" e concede 10% de desconto sobre o preço de tabela em pedidos emitidos para o cliente "Atacadão" durante o período de 01/12/2019 à 31/12/2019. |
Para pesquisar um produto categorizado como "Oferta" utilizando o TOTVS CRM | SFA Web, o profissional deverá acessar a aba "Oferta".
Para pesquisar um produto categorizado como "Oferta" utilizando o TOTVS CRM | SFA Mobile, o profissional deverá acessar a aba "Produtos", selecionar a opção "Oferta" e utilizar o campo de pesquisa.
A funcionalidade de embalagem do TOTVS CRM | SFA permite que o sistema seja capaz de exibir, tratar e persistir dados a respeito de embalagem de produtos no pedido de venda.
Campo editável onde são exibidas as embalagens vinculadas ao produto e à filial selecionada no pedido, ou seja, que um mesmo produto pode ser adquirido através de embalagens diferentes. O campo embalagem é exibido apenas quando o sistema vende por embalagens.
Como exemplo de produto sendo comercializado por embalagem, um produto REFRIGERANTE, pode ser comercializado por UNIDADE, contendo 1 unidade, efetivamente, ou pode ser comercializado por FARDO, contendo 12 unidades. A relação entre as unidades e quantidades é estabelecida pelo fator de quantidade.
Quando o sistema trabalha por embalagem, algumas funcionalidades como campanhas de desconto, políticas de desconto, campanhas de brinde, regras de preço fixo priorizarão os registros em que o campo de embalagem esteja preenchido. Os preços de venda poderão ser alterados em função da embalagem, através do fator de preço. Por exemplo, se o fator de preço da embalagem FARDO for 0,90, significa que o preço unitário receberá um desconto de 10%.
Vínculos e configurações disponíveis |
Produto Embalagem Código de barra Fator de embalagem Fator de embalagem padrão Fator de preço Local Quantidade múltipla de venda Sigla da unidade de medida padrão Embalagem ativa Embalagem padrão |
Através das configurações da embalagem será possível realizar validações, mostrar valores e preenchimento automático com a embalagem que possuir menor fator de quantidade.
Os dados de embalagem serão exibidos no carrinho quando inserido produto ao carrinho. Quando inserido será selecionado automático a embalagem do produto aplicando o filtro configurado.
A embalagem possui relação com a quantidade, pois com o preenchimento da embalagem do produto será possível determinar a quantidade de produtos.
No carrinho será exibido o campo de “Qt. Embalagem” que será a multiplicação da quantidade informada com o fator da quantidade do produto.
Nas configurações de embalagem poderá definir qual campo será exibido tanto no ambiente Android como no ambiente Web como:
Quando realizado a alteração nos campos de Embalagem, Qt. Embalagem e Quantidade o sistema deverá atualizar as informações desses campos automaticamente aplicando os valores correspondentes aos dados cadastrados no produto e na embalagem do produto.
1.2.3 Unidade de medida
O sistema deverá exibir a unidade de medida vinculada ao produto. No campo unidade de medida vai permitir a visualização das informações da embalagem, preferencialmente quando o sistema utilizar embalagem. Caso não utilizar embalagem no sistema, será trazido a unidade de medida vinculada ao produto.
O campo será exibido no interior do card no ambiente Android e na grid de produtos no ambiente Web.
No pedido de venda, o sistema irá realizar a restrição de aplicação de quantidades para produtos segundo a cota vigente para o registro. Essa cota será controlada através de movimentações geradas no TOTVS CRM | SFA evitando assim que o usuário consuma uma quantidade superior ao disponível.
Regras
A busca por cota ativa e vigente no sistema irá validar os parâmetros de configuração que estão habilitados que deverão validar através da ativação do parâmetro HABILITAR_GERENCIAMENTO_COTA, onde a aplicação deverá validar cota para os pedidos emitidos.
Quando realizado o preenchimento do cabeçalho do pedido, a aplicação deverá buscar se o pedido se enquadra em alguma cota cadastrada e vigente na listagem dos produtos. A aplicação buscará as configurações de controle de cota para verificar se existe alguma cota para ser validada na busca do pedido.
A consulta de saldo é realizada através da tela de consulta de produtos, tanto no ambiente Android como ambiente Web. Após consultar os produtos disponíveis para venda, caso o usuário tenha uma cota vigente, a aplicação irá consultar o saldo disponível de cota. O saldo disponível irá considerar os movimentos gerados em pedidos anteriores caso houver.
O saldo da cota será obtido através da consulta feita no controle da cota e então será somado as movimentações geradas para aquele produto nos registros do controle das movimentações da cota segundo o exemplo a seguir:
Para localizar uma cota vigente e para calcular as movimentações, a aplicação irá considerar como filtro a configuração realizada no controle da cota. O TOTVS CRM | SFA não deverá considerar a situação dos pedidos que consumiram cota para calcular o saldo disponível. As movimentações consideras serão todas as ativas e não processadas.
A exibição do saldo da conta será no campo cota, dessa forma a aplicação irá validar quais produtos possuem cota cadastrada, e caso existir será considerado o saldo disponível. Para o estoque da aplicação a cota terá um peso superior, então caso o produto possua cota a aplicação irá validar a cota, no entanto, caso o produto possua cota cadastrada, a aplicação irá considerar o saldo de estoque disponível, exibido no campo “Estoque”.
Caso o produto não tenha cota e nem estoque, o saldo será apresentado zerado em ambos os campos para impedir o usuário de incluir o produto ao pedido.
Quando o sistema realizar o cálculo do saldo disponível, caso o saldo estiver zerado ou negativo, a aplicação não irá permitir o usuário incluir o produto ao pedido, pois o usuário já consumiu toda a conta disponível em outros pedidos.
O saldo de cota e estoque estarão disponíveis na consulta de produto do ambiente Web e Android. No ambiente Web, estará disponível na grid de produto e na listagem de produtos, caso a funcionalidade de cota está habilitada. Já no ambiente Android na tela de negociação do produto e no carrinho de compras. Suas exibições poderão ser configuradas e assim exibidas conforme a necessidade do cliente.
Ao adicionar um produto ao carrinho com saldo de cota disponível, a aplicação irá impedir o usuário de informar uma quantidade superior ao saldo disponível. Caso o usuário uma quantidade superior ao saldo cota disponível, a aplicação irá exibir a seguinte mensagem: “O valor deve ser menor ou igual a XXX”, conforme exibido na validação de estoque atualmente.
Na gravação de um pedido, a aplicação irá gerar as movimentações de cota, onde irá ser realizada somente na finalização do pedido. Quando realizado a finalização do pedido o sistema irá gerar as movimentações de cota para todos os produtos que possuem cota cadastrada. Caso o usuário apenas grave, a aplicação não irá gerar movimentações, entretanto ao editar o pedido o saldo disponível de cota irá ser consultado novamente e atualizado no campo “Cota”.
Na finalização de um pedido gravado anteriormente, a aplicação validará se a quantidade informada é maior que a cota disponível. Se a quantidade informada for superior ao saldo de cota disponível, a aplicação não irá permitir finalizar o pedido e será apresentado a seguinte mensagem: “Existem produtos sem cota disponível, por gentileza, verifique as quantidades”.
O TOTVS CRM | SFA não irá processar as cotas geradas, essa responsabilidade se necessário deverá ocorrer por parte da integração.
Em algumas regras o sistema pode ser configurado para aprovação do pedido por um usuário superior. Nesses casos ao finalizar um pedido, ele será encaminhado para aprovações. Caso o pedido entre na regra de aprovação, a aplicação não irá gerar as movimentações da cota normalmente.
Quando o pedido for reprovado por qualquer alçada de aprovação, o sistema irá retornar o pedido para não finalizado, e todas as movimentações de cota gerada para esse pedido serão excluídas. Caso o usuário contestar o pedido ou apenas finalizar o pedido novamente, o sistema irá fazer a validação se a cota está vigente e verificar se a cota possui saldo disponível e então gerar as movimentações novamente, caso não houver será impedido que o usuário finalize o pedido.
No TOTVS CRM | SFA Web, os produtos podem ser incluídos no carrinho do pedido utilizando as linhas da grid da aba "Carrinho", pelo botão "Confirmar" da tela de pesquisa avançada de produtos ou pelos botões de adicionar presentes nas abas "Histórico", "Sugestão de venda", "Lançamento" e "Oferta", conforme descrito na seção "Pesquisa de produtos".
Na versão Mobile, um produto pode ser adicionado ao carrinho do pedido inserindo um valor no campo "Quantidade" do card do produto ou através do botão "Confirmar" da tela de negociação do produto.
No Configurador de pedidos, é possível parametrizar quais campos deverão ser exibidos na grid do carrinho da Web, assim como no card, no carrinho e na tela de negociação do Mobile. Também é possível atribuir títulos para os campos, definir a posição em que eles deverão ser apresentados e se os mesmos deverão ser impressos no relatório do pedido de venda. Abaixo seguem os campos do produto passíveis de configuração:
CAMPO |
DESCRIÇÃO |
Código |
Código do produto. |
Estoque |
Quantidade em estoque disponível para o produto de acordo com a filial do pedido. |
Quantidade |
Quantidade de venda do produto. |
Preço de tabela |
Preço de tabela do produto. Mais detalhes em "Configuração do preço de tabela". |
% Desconto |
Percentual de desconto do produto. Caso o percentual de desconto seja diferente de zero, os campos "Valor de desconto" e "Preço de venda" serão atualizados. |
Valor de desconto | Valor de desconto do produto. Caso o valor de desconto seja diferente de zero, os campos "% Desconto" e "Preço de venda" serão atualizados. |
Preço de venda | Preço de venda do produto. Caso o preço de venda seja diferente do preço de tabela, os campos "% Desconto" e "Valor de desconto" serão atualizados. Mais detalhes em "Configuração do preço de venda, oferta e desconto". |
% Comissão | Percentual de comissão do produto. Mais detalhes em "Configuração da comissão". |
Valor da comissão | Valor da comissão do produto. Mais detalhes em "Configuração da comissão". |
Valor unitário de flex | Valor unitário de flex gerado no produto. Mais detalhes em "Configuração do flex". |
Valor total de flex | Valor total de flex gerado no produto. Mais detalhes em "Configuração do flex". |
Valor total | Valor total líquido do produto. |
Peso total |
Peso total do produto. |
Peso unitário |
Peso unitário do produto. |
Situação |
Situação do produto (ex: faturado, cancelado, em separação, etc.). |
Desempenho de venda |
Desempenho de venda do produto. Mais detalhes em "Configuração do desempenho de venda". |
Histórico de venda |
Exibe todos os pedidos emitidos para o cliente e local de venda do pedido que contenham o respectivo produto. |
Imagem | Imagem do produto. |
O carrinho do pedido é responsável por exibir os produtos que foram adicionados ao pedido.
Após confirmar a inserção do produto no pedido, o profissional poderá manipular as informações de quantidade, preço de venda, percentual e valor de desconto diretamente no carrinho do pedido, tanto na grid da Web como no card ou tela de negociação do Mobile.
Nessa seção serão definidas as parcelas de pagamento do pedido.
Existem duas configurações possíveis: "Parcelamento livre" ou "Parcelamento por condição de pagamento".
1.3.1 Parcelamento livre
No parcelamento livre, o profissional poderá definir quais serão as parcelas do pedido, informando a quantidade de parcelas, a data de vencimento e o valor de cada parcela.
CAMPO |
DESCRIÇÃO |
Quantidade de parcelas |
Quantidade de parcelas do pedido. Ao definir a quantidade de parcelas, o TOTVS CRM | SFA automaticamente cria os registros delas, definindo as datas de vencimento como sendo os dias seguintes a emissão do pedido e o valor de cada parcela como sendo o valor total líquido do pedido dividido pela quantidade de parcelas. Porém, o profissional poderá alterar as datas e os valores de cada parcela criada. O pedido deverá possuir no mínimo uma parcela. |
Data de vencimento
|
Data de vencimento da parcela. A data de vencimento da primeira parcela deverá ser maior que a data de emissão do pedido. A data de vencimento da segunda parcela não poderá ser igual ou inferior a data de vencimento da primeira parcela, e assim sucessivamente. |
Valor da parcela |
Valor da parcela. Se o pedido possuir apenas uma parcela, obrigatoriamente o valor dela será igual ao valor total líquido do pedido. Caso o pedido possua mais que uma parcela, ao alterar o valor de uma parcela as demais serão automaticamente ajustadas com o valor proporcional restante do pedido. O valor máximo da parcela é igual ao valor líquido do pedido. |
Ordem |
Ordem sequencial de cada parcela, de acordo com as datas delas. |
|
Botão responsável por adicionar uma parcela ao pedido, fazendo a redistribuição proporcional dos valores de cada parcela. |
|
Botão responsável por remover uma parcela do pedido, fazendo a redistribuição proporcional dos valores de cada parcela. |
|
Botão responsável por redistribuir proporcionalmente o valor total líquido do pedido nas parcelas existentes. |
No parcelamento por condição de pagamento, o TOTVS CRM | SFA definirá automaticamente a quantidade, valor e vencimento das parcelas de acordo com a condição de pagamento do pedido e não é possível alterá-las manualmente. Ao alterar a condição de pagamento do pedido, as parcelas serão automaticamente recalculadas.
A definição das parcelas do pedido se baseia nos seguintes parâmetros da condição de pagamento:
Essa seção destina-se a configuração dos dados da entrega do pedido. Existem duas configurações possíveis: "Entrega por pedido" ou "Entrega por item".
Na "Entrega por pedido", uma única entrega poderá ser definida e a mesma será aplicada a todos os itens do pedido. Já na "Entrega por item", poderão ser definidas diversas entregas onde cada uma será aplicada a determinados itens do pedido.
Nesse campo deve ser preenchida a data de entrega do pedido. O mesmo campo poderá estar disponível na seção de Cabeçalho do pedido.
Configurações disponíveis |
Em branco Data atual Data atual + x dias |
Exemplo |
Se configurado para "Data atual + 2 dias", ao emitir um pedido no dia 20/11/2019, a data de entrega será preenchida com 22/11/2019. |
Nesse campo deve ser preenchido o local de entrega do pedido. Entende-se local como sendo os endereços/lojas do cliente. O mesmo campo poderá estar disponível na seção de Cabeçalho do pedido.
Vínculos disponíveis |
Cliente Profissional Filial Segmento Unidade federativa da filial Unidade federativa do local de venda Operação |
Exemplo |
Exibe os locais de entrega ativos vinculados ao cliente e ao profissional do pedido. |
Nesse campo deve ser preenchida a observação de entrega do pedido.
Configurações disponíveis ∙ |
Nenhuma |
Exemplo |
"Pedido com urgência". |
Nesse campo deve ser preenchido o tipo de frete da entrega do pedido. O mesmo campo poderá estar disponível na seção de Cabeçalho do pedido.
Vínculos disponíveis |
Filial Cidade da filial Local de venda Cidade do local venda Segmento Tabela de preços Cliente |
Exemplo |
Exibe os tipos de frete ativos vinculados a filial e a cidade do local de venda do pedido. |
Nesse campo deve ser preenchida a transportadora principal da entrega do pedido.
Vínculos disponíveis |
Local de venda Segmento Cliente Profissional |
Exemplo |
Exibe as transportadoras ativas vinculadas ao local de venda do pedido. |
Nesse campo deve ser preenchida a transportadora de despacho da entrega do pedido
Vínculos disponíveis |
Local de venda Segmento Cliente Profissional |
Exemplo |
Exibe as transportadoras ativas vinculadas ao local de venda do pedido. |
Nesse campo deve ser preenchido o operador logístico da entrega do pedido.
Vínculos disponíveis |
Local de venda Segmento Cliente Profissional |
Exemplo |
Exibe os operadores logísticos ativos vinculados ao local de venda do pedido. |
Nesse campo deve ser preenchido o nome do transportador da entrega do pedido.
Configurações disponíveis ∙ |
Nenhuma |
Exemplo |
"Transporte Rápido Ltda". |
Nesse campo deve ser preenchida a data de coleta da entrega do pedido.
Configurações disponíveis |
Em branco Data atual Data atual + x dias |
Exemplo |
Se configurado para "Data atual + 2 dias", ao emitir um pedido no dia 20/11/2019, a data de coleta será preenchida com 22/11/2019. |
Nesse campo deve ser preenchida a data de carregamento da entrega do pedido.
Configurações disponíveis∙ |
Nenhuma |
Exemplo |
Data de carregamento prevista para 15/06/2019. |
Nesse campo deve ser preenchido o valor de frete da entrega do pedido.
Configurações disponíveis ∙ |
Nenhuma |
Exemplo |
Valor de frete R$50,00. |
Nesse campo deve ser preenchido o valor de despesa da entrega do pedido.
Configurações disponíveis ∙ |
Nenhuma |
Exemplo |
Valor de despesa R$25,00. |
Nesse campo deve ser preenchido o valor do seguro da entrega do pedido.
Configurações disponíveis ∙ |
Nenhuma |
Exemplo |
Valor do seguro R$30,00. |
Essa seção refere-se aos dados complementares do pedido.
CAMPO |
DESCRIÇÃO |
Observação do pedido |
Observação geral do pedido. |
Observação da nota fiscal |
Observação que deverá ser impressa na nota fiscal. |
Observação da situação |
Observação sobre a situação do pedido. |
Observação da expedição |
Observação sobre a expedição do pedido. |
Ordem de compra |
Número da ordem de compra do cliente. |
Número pedido ERP |
Número do pedido gerado no ERP. |
Data/hora início |
Data e hora de início da digitação do pedido. |
Data/hora finalização |
Data e hora de finalização da digitação do pedido. |
O resumo do pedido é responsável por exibir os totalizadores dos valores envolvidos na negociação do pedido.
CAMPO |
DESCRIÇÃO |
Quantidade de produtos |
Quantidade total de produtos distintos (SKUs) inseridos no carrinho do pedido. |
Quantidade de itens |
Quantidade total de itens (volume) inseridos no carrinho do pedido. |
Peso total |
Peso total dos itens inseridos no carrinho do pedido. |
Valor total flex |
Valor total de flex gerado no pedido. O ícone ao lado do valor exibe a vigência, o saldo inicial, o saldo disponível e o saldo a liberar do flex. Mais detalhes em "Configuração do flex". |
Valor total comissão |
Valor total da comissão do pedido. Mais detalhes em "Configuração da comissão". |
Percentual total comissão |
Percentual total da comissão do pedido. Mais detalhes em "Configuração da comissão". |
Valor total bruto |
Valor total bruto do pedido. |
Valor total desconto |
Valor total de desconto do pedido. |
Percentual total desconto |
Percentual total de desconto do pedido. |
Valor total líquido |
Valor total líquido do pedido. |
Desempenho de venda |
Desempenho de venda do pedido. Mais detalhes em "Configuração do desempenho de venda". |
Botão disponível apenas no TOTVS CRM | SFA Web, sendo responsável pela geração do relatório do pedido, que contém todas as informações da negociação realizada e poderá ser exportado nos formatos PDF e XLSX.
No TOTVS CRM | SFA Mobile o mesmo relatório poderá ser gerado, porém essa ação deverá ser efetuada no módulo "Relatórios", informando manualmente o número do pedido desejado.
Botão responsável por gravar o pedido e enviar o relatório do pedido ao e-mail do cliente, no formato PDF. O envio do e-mail não é imediato, a rotina de envio de e-mails do TOTVS CRM | SFA é executada de acordo com uma periodicidade pré-definida.
]
Botão responsável por realizar a gravação do pedido no TOTVS CRM | SFA. Ao gravar um pedido, o estado atual do mesmo será salvo e ficará disponível para edição posterior (rascunho), mantendo a situação do pedido como "Não finalizado" e não será enviado ao ERP.
Botão responsável por realizar a finalização do pedido no TOTVS CRM | SFA.
Ao finalizar um pedido no TOTVS CRM | SFA Web, ele estará apto para ser enviado ao ERP e não será mais possível editá-lo no TOTVS CRM | SFA.
Quando a finalização do pedido é realizada através do TOTVS CRM | SFA Mobile, ele permanecerá editável na aplicação móvel enquanto não for realizada uma nova sincronização. Ao sincronizar o TOTVS CRM | SFA Mobile, o pedido será enviado ao servidor do TOTVS CRM | SFA e estará apto para ser enviado ao ERP, não sendo mais possível editá-lo no TOTVS CRM | SFA.
O envio do pedido ao ERP, processo esse chamado de "exportação do pedido", é realizado através de uma tarefa agendada que é executada periodicamente.
Durante a emissão do pedido no TOTVS CRM | SFA Mobile, é possível coletar a assinatura do cliente no próprio aparelho móvel, de maneira digital. Essa assinatura poderá ser visualizada na Web após a sincronização da aplicação.
O conceito de flex utilizado no TOTVS CRM | SFA assemelha-se ao funcionamento de uma conta corrente, que estará vinculada ao profissional.
Quando o profissional realiza a venda de um produto utilizando um preço de venda superior ao preço flex, é gerado no TOTVS CRM | SFA um lançamento positivo (crédito) na sua conta corrente, que inicialmente não estará liberado para utilização. O processamento e liberação desse crédito somente será realizado quando o pedido exportado ao ERP retornar ao TOTVS CRM | SFA com a informação de faturamento dos itens do pedido, onde a liberação do crédito será proporcional a quantidade faturada do item que a gerou. Caso o item gerador do crédito tenha sofrido corte integral do pedido, o crédito será cancelado.
Quando o profissional realiza a venda de um produto utilizando um preço de venda inferior ao preço flex, é gerado no TOTVS CRM | SFA um lançamento negativo (débito) na sua conta corrente, que é processado no momento da realização da venda no TOTVS CRM | SFA, consumindo imediatamente o valor do saldo flex do profissional.
O cálculo do valor do flex é composto conforme fórmula abaixo:
valor_flex_produto = (preço de venda – preço flex) x quantidade vendida
Exemplo:
O vendedor Emerson tem saldo flex igual a R$100,00 e realizou a seguinte venda:
PRODUTO |
QTDE VENDIDA |
PREÇO FLEX |
PREÇO VENDA |
TOTAL VENDA |
LANÇAMENTO FLEX |
Produto A |
10 |
R$10,00 |
R$8,00 |
R$80,00 |
-R$20,00 |
Produto B |
20 |
R$15,00 |
R$18,00 |
R$360,00 |
+R$60,00 |
A venda do Produto A gerou um lançamento negativo de flex no valor R$20,00, pois o preço de venda ficou abaixo do preço flex:
valor_flex_produto = (8,00 – 10,00) x 10
valor_flex_produto = -20,00
A venda do Produto B gerou um lançamento positivo de flex no valor R$60,00, pois o preço de venda ficou acima do preço flex: valor_flex_produto = (18,00 – 15,00) x 20
valor_flex_produto = 60,00
O saldo disponível de flex será, portanto: Saldo da conta de flex - movimentações de flex negativas e não processadas.
Quando há o processamento de flex, o saldo é ajustado conforme o valor da movimentação.
Portanto, seguindo o exemplo anterior, logo após a digitação do pedido, o saldo flex do Emerson seria R$80,00, pois existe 1 movimentação negativa ainda não processada.
Assim que a movimentação for processada manualmente ou via integração de dados (cuja explicação está descrita pelo presente link) vinculada a status de pedido, se o pedido for faturado, o novo saldo flex do vendedor seria de R$140,00.
Ao finalizar um pedido, ele poderá estar sujeito à aprovação dependendo das regras pré-estabelecidas, conforme configurações disponíveis abaixo.
1.13.1 Tipos de aprovação
1.13.2 Vínculos disponíveis
Um pedido sujeito a aprovação no TOTVS CRM | SFA poderá ser aprovado ou reprovado pelo gestor responsável, com a possibilidade de inserir uma observação.
Caso o pedido seja aprovado, ele seguirá para exportação ao ERP, não havendo a necessidade de intervenção do vendedor que o emitiu. Porém, se o gestor reprovar, o pedido retornará ao vendedor, que, por sua vez, poderá contestar a decisão do gestor inserindo novas observações e encaminhando para aprovação novamente, ou então poderá realizar as adequações necessárias no pedido mencionadas pelo gestor e realizar a finalização do pedido novamente.
O cálculo do desempenho de venda no TOTVS CRM | SFA visa classificar determinado produto e/ou pedido de acordo com a margem de lucro obtida na venda.
Para o cálculo, são utilizados como parâmetros o custo total e o preço de venda dos produtos inseridos no pedido. As seguintes informações são exibidas: valor do desempenho, percentual do desempenho e classificação através de um gráfico de barras horizontal.
Podem ser criadas diversas faixas de desempenho, onde os seguintes dados serão parametrizados:
Adicionalmente, é possível configurar quais perfis de acesso poderão visualizar essas informações.
Exemplo
Valor do desempenho de venda do produto = (preço de venda x quantidade) – (preço de custo x quantidade) Percentual de desempenho de venda do produto = (((preço de venda x quantidade) – (preço de custo x quantidade)) / (preço de venda x quantidade)) x 100
Valor do desempenho de venda do pedido = ∑ (valor_desempenho_produto)
Percentual de desempenho de venda do pedido = (valor_desempenho_pedido / valor_líquido_pedido) x 100 1.15 Configuração do preço de tabela
A formação do preço de tabela no TOTVS CRM | SFA é composta pelo seguinte cálculo:
Preço de tabela = Preço original - (Preço original x Percentual de acréscimo/desconto da condição de pagamento) O preço original do produto pode ser configurado de acordo com os vínculos abaixo.
Vínculos disponíveis ∙ |
Profissional Condição de pagamento Tabela de preços Filial Cliente Local de venda Grupo de clientes Cidade da filial Cidade do local de venda Tipologia do local de venda Tipologia do pedido Tipologia da filial Tipo de pedido Unidade federativa da filial Unidade federativa do local de venda Segmento Região da filial Região do local de venda Produto Grupo de produtos |
Exemplo |
O produto "Margarina", da tabela de preços "Outubro/2019", para o cliente "Atacadão", possui o preço original de R$3,90. |
O percentual de acréscimo/desconto da condição de pagamento pode ser configurado de acordo com os vínculos abaixo:
Vínculos disponíveis∙ |
Condição de pagamento do pedido |
Exemplo |
A condição de pagamento "À vista" possui 3% de desconto. |
A formação do preço de venda sugerido no TOTVS CRM | SFA é composta pelas seguintes variáveis:
Além das variáveis acima, existem dois modelos de cálculo, que envolvem a ordem em que as variáveis são expostas na fórmula.
Caso o preço de venda calculado seja diferente do preço de tabela, os campos "% Desconto" e "Valor de desconto" serão atualizados.
O preço, percentual ou valor de oferta podem ser configurados de acordo com os vínculos e parâmetros abaixo.
Vínculos e configurações disponíveis |
Período de vigência Produtos Percentual de desconto Valor de desconto Filial Cliente Local de venda Grupo de clientes Tipo de pedido |
Exemplo |
O produto "Chocolate em pó" possui 10% de desconto em pedidos emitidos para o cliente "Atacadão" durante o período de 01/12/2019 à 31/12/2019. |
O percentual ou valor de desconto adicional podem ser configurados de acordo com os vínculos abaixo:
Vínculos disponíveis |
Profissional Filial Cliente Grupo de clientes Local de venda Região do local de venda Região da filial Tipologia do local de venda Tipologia da filial Unidade federativa do local de venda Unidade federativa da filial Condição de pagamento Tabela de preços Segmento Produto |
Exemplo |
O produto "Leite integral" possui 5% de desconto para locais de venda com a tipologia "Padaria". |
O cálculo do valor de comissão no TOTVS CRM | SFA pode ser configurado de duas formas: por item ou por pedido.
1.17.1 Comissão por item
Para realizar o cálculo do valor de comissão por item, primeiramente é necessário configurar os percentuais de comissão dos produtos.
Essa configuração pode ser realizada de acordo com os parâmetros abaixo:
Caso o percentual de desconto do produto no pedido esteja entre os percentuais mínimo e máximo de desconto da configuração, então o seguinte cálculo é realizado:
Valor de comissão do produto = Valor total líquido do produto x percentual de comissão do produto Se o percentual de desconto do produto no pedido não estiver contido na faixa de desconto configurada, o valor da comissão do produto será zero.
1.17.2 Comissão por pedido
Para realizar o cálculo do valor de comissão por pedido, primeiramente é necessário configurar o percentual de comissão geral que será aplicado.
Essa configuração pode ser realizada de acordo com os parâmetros abaixo:
Caso o percentual de desconto total do pedido esteja entre os percentuais mínimo e máximo de desconto da configuração, então o seguinte cálculo é realizado:
Valor de comissão do pedido = Valor total líquido do pedido x percentual de comissão do pedido Se o percentual de desconto total do pedido não estiver contido na faixa de desconto configurada, o valor da comissão do pedido será zero.
Nesta guia, é possível gerar relatórios de Títulos financeiros manipulando os filtros em tela.
Filtro | Descrição |
---|---|
Período | Campo que define o período correspondente ais dados que serão gerados no relatório |
Profissional | Campo que permite gerar o relatório por profissional |
Cliente | Campo que permite gerar o relatório por Cliente |
Local | Campo que permite gerar o relatório por Local |
Considerar hierarquia | Campo que permite gerar o relatório considerando o supervisor do profissional, conforme a configuração no cadastro do profissional |
Considerar clientes da hierarquia | Campo que permite gerar o relatório considerando os clientes dos profissionais atrelados a um supervisor, conforme a configuração no cadastro do profissional |
Agrupar por | Agrupar dados do relatório por Títulos ou Clientes |
Situação | Campo que permite definir qual situação dos títulos será considerada no relatório |
Por exemplo:
Os relatórios são gerados em PDF, HTM ou Planilha.
O sistema conta com a opção de agrupar configurações em opções que serão disponibilizadas no cabeçalho do pedido.
Assim, quando configurado previamente, o usuário poderá selecionar no cabeçalho e o pedido seguirá as regras daquelas condições.
No menu Configuração → Configuração pedido → Geral, no botão "Agrupadores"
E Nesta tela é possível criar um agrupador para a validação escolhida, por exemplo uma validação de pedidos com estoque:
Nesta opção de agrupar, o usuário pode definir uma configuração para que valide o estoque e não permita finalizar o pedido com produtos com estoque negativo,
Segue um exemplo de agrupador de estoque:
Nome do Agrupador | Combinação de parâmetros | Ativo |
---|---|---|
Com estoque | HABILITAR_EXIBICAO_PRODUTOS_COM_ESTOQUE | Sim |
VALEST_LOGICA_BLOQUEIA_SALDO_NEGATIVO | Sim | |
VALEST_GATILHO_FINALIZAR | Sim |
Para que a venda seja possível concluir, deverá ser utilizado no campo "Config. pedido" a opção "Com estoque". Assim ao incluir o item no carrinho como no quadro a seguir, o saldo ficará positivo e permitirá finalizar o pedido:
Produto | Estoque disponível | Qtde no carrinho |
---|---|---|
Z146J310000045 - GRAMA SINTETICA 10MM NACIONAL 1,5X2,00M - 9PCS INBOX | 10 | 2 |
Neste exemplo, o saldo ficará positivo, e o produto ainda possui um estoque positivo de 8 unidades, sendo assim o pedido será gravado ou finalizado corretamente. Mas se o usuário utilizar uma venda com quantidade maior que o estoque disponível, será exibido um alerta em tela e não será possível concluir a venda.
O sistema conta com a opção de Anexo, quando gravado um pedido na aplicação TOTVS - SFA, e então é exibido o botão em tela.
Dentro do pedido há a opção de anexo de documentos, essa informação pode ser utilizada pelo cliente para anexar informações de documentos de licitações de órgãos públicos, ordens de compras e empenhos.
Como regra, as informações de anexo não são exportadas para o ERP. Lembrando que para o botão anexo ser apresentado o pedido precisa ser gravado, somente após isso o botão ficará disponível.
Ao clicar no botão "Anexo" é exibido a seguinte tela para o usuário:
Nesta grid, é possível criar uma lista de arquivos que ficarão anexados ao pedido em questão e poderão ser visualizados posteriormente, seja no ambiente web ou Android.
Possui os seguintes botões para manipulação dos arquivos:
Botão | Descrição |
---|---|
Adicionar | Permite adicionar um arquivo a este pedido |
Remover | Quando selecionado, permite que seja removido os arquivos já anexados a este pedido |
Gravar | Permite gravar a lista de arquivos agora relacionados ao pedido |
Baixar | Permite fazer o download dos arquivos selecionados |
Após incluir o arquivo, não é necessário gravar o pedido, pois agravação do mesmo é feito pela tela de anexo.
Ao clicar no campo Observação quando existir um anexo a pop-up é possível fazer a adição da observação pelo usuário.
Dessa forma, os anexos associados aos pedidos serão passíveis de consulta e edição, conforme a parametrização.
Para habilitar o botão Anexo, é preciso ativar o parâmetro em "Configuração > Configuração pedido > Geral"
Descrição do Parâmetro principal e Parâmetros dependentes:
Campo | Descrição | |
---|---|---|
HABILITAR_BOTAO_ANEXO | Quando habilitado, exibe o botão "Anexo" para pedidos gravados | |
HABILITAR_BOTAO_ANEXO_TAMANHOMAXIMO | Define o tamanho máximo em megabytes em que o arquivo que pode ser anexado. Ex: 100 representa a 100MB, 1024 representa 1GB. | |
HABILITAR_BOTAO_ANEXO_EXTENSAOARQUIVO | Define quais extensões de arquivos podem ser anexados ao pedido. Extensões possíveis (PDF, DOCX, PPTM, PPTX, PUB, ONE, XLSB, XLSM, XLSX, DOC, PPT, XLS, PDF, JPG, BMP, TXT, CSV, PNG) | |
HABILITAR_BOTAO_ANEXO_QUANTIDADEMAXIMA | Define a quantidade máxima de arquivos que podem ser anexados. | |
HABILITAR_BOTAO_ANEXO_STATUS_FINALIZADO | Define se será possível editar os anexos do pedido mesmo que ele já esteja Finalizado, se desativado vai permitir apenas a visualização para pedidos com status finalizado |
Conforme parametrizado, será exibido na grid dentro do pedido.
Na digitação de pedido, ao inserir o produto, o sistema precisa validar se existe desconto cadastrado para a configuração do pedido.
Caso exista descontos cadastrados, o usuário pode incluir manualmente sem que valide aprovação ou, quando configurado para isso, pode ser preenchido automaticamente o percentual de desconto e calcula os valores de preço de venda e preço total, considerando o desconto aplicado.
No cadastro de descontos tanto para o ambiente Web quanto para o Mobile, onde os perfis terão acesso e poderão realizar o cadastro de descontos. Essa interface possui um campo de pesquisa, uma Pesquisa avançada de acordo com os campos do cadastro de desconto.
O cadastro de descontos deve possuir os seguintes campos:
Campo | Descrição |
---|---|
Descrição | Campo que será informado uma descrição específica para este desconto |
Lógica ao exceder | Campo que define o comportamento que será realizado quando o desconto exceder do definido nos próximos campos
|
Sigla | Campo para definir uma sigla que identificará o desconto no banco de dados |
Tipo Aprovação | Campo que o usuário define qual tipo de aprovação será gerada quando validar a lógica ao exceder |
Valor (R$) | Campo que define um único valor para Descontar diretamente no produto |
Percentual (%) | Percentual de desconto que será aplicado no produto |
Faixa Percentual inicial (%) | Campo que permite o usuário a definir o inicio de uma faixa de percentual de valor para aplicar o desconto |
Faixa Percentual final (%) | Campo que permite o usuário a definir o Final da faixa de percentual de valor editada no campo acima |
Quantidade mínima | Campo que permite definir uma quantidade mínima para aplicar este desconto |
Quantidade máxima | Campo que permite definir um limite de quantidade para aplicar este desconto |
Data de inicio da vigência | Campo que permite selecionar a data atual ou superior; |
Data de fim da vigência | Campo que permite selecionar data igual ou superior a data "Inicio Vigência"; |
Aplicar automático | Quando ativo, aplicará o desconto automaticamente, assim que o item for inserido no carrinho e estiver dentro das condições configuradas no desconto em questão |
Ícone de Edição | Campo de preenchimento livre |
Ícone Aprovação | Indica se o cadastro está pendente de aprovação. |
Ao editar o Desconto pelo ícone de Edição, é aberto uma grid que permite informar condições para a aplicação desse desconto, como:
Segue as informações dos seguintes campos:
Campo | Descrição |
---|---|
Segmento | Segmente pertencente ao cliente selecionado no cabeçalho |
Filial | Campo lista todos as Filiais cadastradas e ativas; |
Região | Campo que permite definir uma Região específica para aplicar o desconto |
Unidade federativa | Campo que permite definir uma UF específica para aplicar o desconto |
Profissional | Campo lista todos os profissionais e quando informado aplicará o desconto apenas para estes usuários quando gerarem novos pedidos |
Grupo de Clientes | Campo que permite definir um Grupo de clientes específico |
Cliente | Campo lista todos os clientes ativos da carteira de clientes do profissional ligado ou na carteira de clientes dos profissionais abaixo da hierarquia do profissional autenticado; |
Local | Campo lista todos os locais ativos do cliente selecionado no campo "Cliente". |
Tipologia | Campo lista tipologia de clientes para definir como parâmetro para aplicação do desconto |
Grupo de Produtos | Campo que permite definir um Grupo de Produtos específico |
Produto | Campo que permite definir produtos para aplicar o desconto |
Tabela de preços | Campo lista todas as tabelas de preços ativas, vinculadas ao "Estabelecimento" e "Local" para aplicação do desconto |
Condição de Pagamento | Campo que permite definir as Condições de pagamento para aplicar o desconto |
Produto | Campo lista todos os produtos ativos, da tabela de preços selecionada no campo "Tabela de Preços" |
Perfil de acesso | Campo que permite definir perfis de acesso que poderão aplicar o desconto |
Grupos de usuários | Campo que permite definir Grupos de usuários que poderão aplicar o desconto |
Tipos de Pedidos | Campo que permite definir tipos de pedido que poderão aplicar o desconto |
Embalagem | Campo que permite definir embalagens que poderão aplicar o desconto |
Tipos de Produtos | Campo que permite definir tipos de produtos que poderão aplicar o desconto |
Cidade | Campo que permite definir cidades dos clientes que poderão aplicar o desconto |
Classificação parceiro | Campo que permite definir a classificação de clientes que poderão aplicar o desconto |
Linha | Campo que permite definir uma linha de produtos que poderão aplicar o desconto |
Tipo Frete | Campo que permite definir tipos de frete que poderão aplicar o desconto |
Tipo Estoque | Campo que permite definir tipos de estoque do produto que poderão aplicar o desconto |
Faixa de vida útil | Campo que permite definir uma faixa de vida útil baseada no Lote do produto para aplicar o desconto (vide a documentação específica para este processo) |
Lote | Campo que permite definir lotes que poderão aplicar o desconto (vide a documentação específica para este processo) |
Após o cadastro dos Descontos, será possível aplica-los no pedido conforme as regras cadastradas
Sendo assim, a aplicação busca se o desconto é dinâmica, ou seja está disponível para o produto, mas não exigindo cadastro informando produto. Por exemplo, o sistema sugere um desconto de 5% para todos os produtos quando utilizado uma condição de pagamento específica. Nesse exemplo, basta que o usuário tenha informado uma Condição de pagamento no cadastro do Desconto.
A busca de cache de produtos acontece no preenchimento de todos os campos obrigatórios do cabeçalho, portanto, deve-se garantir que os campos que influenciam na determinação de descontos devem ser marcados como obrigatórios no cabeçalho.
Quando o sistema encontra mais de um registro para o produto no item, ele considera o menor desconto.
Agora, os campos % e R$ estão funcionais Quando há os dois cadastros, o % será considerado o sistema encontra mais de um registro para o produto no item, ele considera o menor desconto Entidades com prefixo PRODUTO será uma interpolação à nível de produto.
Por exemplo, diferença entre os filtros IDTIPOLOGIA (Cabeçalho) e PRODUTO_IDTIPOLOGIA (Qualquer uma das tipologias do item).
Para que o pedido caia em aprovação, deve haver ao menos um desconto cuja lógica ao exceder seja Aprovação, em que o desconto aplicado ao item esteja acima do “teto”. Existirá um “nível invisível” que valida os descontos por produto, para respeito à clientes da base, que já utilizam o recurso de descontos. Quando há níveis cadastrados, esses serão considerados. Caso contrário, o desconto virá por produto.
Todo pedido que sofrer qualquer alteração do preço ou desconto, deve gerar uma solicitação de aprovação ao ser finalizado. Para que o pedido caia em aprovação, deve haver ao menos um desconto cuja lógica ao exceder seja Aprovação no cadastro do Desconto, em que o desconto aplicado ao item esteja acima do valor ou percentual definido na regra.
Quando os descontos em um pedido excederem o % desconto permitido para algum grupo de descontos, esse pedido deve ser encaminhado para aprovação obedecendo a alçada de cada aprovador.
Regras:
• O % alçada de cada aprovador varia conforme o grupo de produtos;
• O % de alçada para cada aprovador e grupo de produtos será importado do Protheus;
• O aprovador só pode aprovar pedidos cujo % desconto adicional seja igual ou inferior ao % alçada para ele definido;
• São 3 os níveis de alçada de aprovação:
Supervisor: este é o superior imediato dos vendedores;
Diretor Regional: este é o superior dos supervisores;
Diretor: este está no topo da hierarquia e é a instância final de aprovação;
Nesta etapa os pedidos passam por uma hierarquia de aprovações baseadas em qual o porcentual de desconto do pedido e quantos % de desconto está liberado para o usuário aprovador. Caso o usuário SUPERVISOR por exemplo não esteja liberado para aprovar pedidos com a % cadastrada, será passado para o Diretor Regional Aprovar, caso o Diretor Regional não esteja liberado para aprovação da quantidade % será passado para o Diretor realizar a aprovação.
Um pedido reprovado por qualquer instância de aprovação, retorna ao vendedor com status de "Não Finalizado" para que seja editado, revisado ou excluído.
É possível configurar um tipo de aprovação específico para este processo, em "Cadastro > venda > Tipos de Aprovação" e alterar o registro PED_DESEMP_VENDA_ITEM para ativo.
Em seguida, o usuário precisa configurar uma faixa de desconto para o Desempenho da venda em "Cadastro > venda > Desempenho de venda" utilizando um registro que tenha a coluna Requer Aprovação Ativo.
Assim quando o usuário estiver realizando um pedido, em que o Desempenho de venda exceda o permitido na configuração e entre na faixa de Desempenho que Requer aprovação, vai gerar a aprovação conforme o exemplo a seguir:
E as aprovações ou Reprovações deste tipo de aprovação segue o padrão.
Para configuração desta opção, é preciso criar um desconto e incluir a condição de pagamento como filtro. Por exemplo:
E nos filtros, incluir uma condição de pagamento:
Assim, no pedido o Desconto é aplicado conforme a regra:
Este fluxo vale também para os outros filtros que podem ser utilizado pelo usuário.
O sistema disponibiliza telas de cadastro de Faixas de Vida Útil, para que se possa definir faixa de dias restantes ou porcentagem da vida útil de produtos. Esse cadastro poderá ser vinculado com uma regra de desconto, pela tela de cadastro de descontos de itens (Cadastro > Venda > Desconto)
Além disso, o sistema conta com tela de configuração de descontos, que pode ser configurada de forma que a vida útil vinculada no cadastro seja considerada para a busca de descontos válidos para o item. No pedido de venda, quando selecionado um lote (deve ser cadastrado por integração), o sistema calculará a vida útil do lote do produto, e considerará a vida útil para a busca de descontos válidos.
Exemplo:
Data atual: 29/06/2023
CADASTRO DE FAIXAS DE VIDA ÚTIL
Código | Descrição | Cor | Situação | Percentual inicial | Percentual final | Núm. dias inicial | Núm. dias final |
---|---|---|---|---|---|---|---|
AZUL | FAIXA AZUL | #0000ff | Ativo | 0 | 50 | ||
AMARELA | FAIXA AMARELA | #fdff3e | Ativo | 50 | 70 | ||
VERMELHA | FAIXA VERMELHA | #ff3901 | Ativo | 70 | 90 |
CADASTRO DE DESCONTO
Descrição | Sigla | Percentual (%) | Faixa percentual inicial (%) | Faixa percentual final (%) | Faixa Vida Útil |
---|---|---|---|---|---|
Desconto faixa Azul | AZUL | 15 | 0 | 15 | AZUL |
Desconto faixa Amarela | AMARELA | 30 | 0 | 30 | AMARELA |
Desconto faixa Vermelha | VERMELHA | 50 | 0 | 50 | VERMELHA |
CADASTRO DE LOTES
codigo | descricao | quantidade | datainicio | datafim |
---|---|---|---|---|
1 | PRODUTO 1 - LOTE 1 | 50 | 25/06/2023 | 30/06/2023 |
2 | PRODUTO 1 - LOTE 2 | 100 | 29/06/2023 | 30/07/2023 |
DESCONTO APLICÁVEL NO PEDIDO
Produto | Quantidade | Lote | Dias fim Vida Útil | % Vida Útil | Desconto aplicável no pedido |
---|---|---|---|---|---|
PRODUTO 1 | 30 | PRODUTO 1 - LOTE 1 | 1 | 80 | 0-50% (Faixa Vermelha) |
PRODUTO 1 | 60 | PRODUTO 1 - LOTE 2 | 31 | 3 | 0-15% (Faixa Azul) |
Resultado da configuração de filtros gerais e níveis da busca produto > LOTE
|
|
|
O Sistema também um e-mail de notificação para os aprovadores, informando da existência de pedido aguardando para ser aprovado, quando marcado o campo "Gerar notificação" para "Sim" no tipo de aprovação:
Lembrando que para este processo, é necessário realizar a configuração da Conta de e-mail e de Envio, utilizando o contexto "aprovação".
Quando o aprovador clicar em um dos links Aprovar ou Reprovar, é replicado o mesmo comportamento já realizado na grid de Aprovações da Listagem de pedidos, na aplicação.
Em caso de tentativa de aprovação de um pedido já aprovado por outro aprovador, a aplicação apenas ignorar a ação.
Documentação em construção!
O sistema possui cadastro de campos adicionais sendo então possível criar campos extras no sistema, usados para complementar os dados dentro do pedido.
O campo adicional para exibição no Pedido pode ser configurado de acordo com a necessidade dos usuários.
Lembrando que há também os campos adicionais gerais, que são exibidos nas outras telas de cadastro e podem ser acessados Aqui
em "Configuração > Configuração Pedido > Campos adicionais" é realizado o cadastro dos campos adicionais que serão exibidos na tela de pedido, sendo assim é exibido os botões "Adicionar" para novos registros de campos, "Cancelar alteração" se deseja ignorar as alterações realizadas antes de gravar ou "Gravar" que permite gravar os novos registros criados.
Segue as descrições dos campos da tela:
Registro | Descrição |
---|---|
Contexto | Exibe qual contexto corresponde o registro, ou seja o módulo que o campo será exibido |
Descrição | Exibe a descrição informada pelo usuário na configuração |
Chave | Exibe a chave identificadora do campo adicional informada pelo usuário na configuração |
Identificador | Exibe a identificação do campo no banco de dados |
Tipo de Campo | Exibe o Tipo do campo para o registro informado pelo usuário na configuração |
Obrigatório | Exibe se o campo será obrigatório no cadastro |
Situação | Exibe se o campo está ativo ou inativo na configuração do registro |
Exibir no relatório | Exibe se o parâmetro para exibir no relatório estiver ativo |
Botão Editar | Neste botão será realizado a configuração para o campo |
Botão configuração de dados pessoais | Neste botão é realizado configuração da suframa (integração) |
Quando clicado no Botão Editar é realizado a configuração dos Campos adicionais do pedido.
Ao clicar no botão teremos os seguintes campos para preencher e configurar:
Campo | Descrição |
---|---|
Situação | O campo situação tem a funcionalidade e o objetivo de deixar o campo com situação “Ativo” e “Inativo”. Quando configurado com a situação Ativo o campo a ser configurado ficara ativo no cadastro configurado de acordo com o contexto configurado. Quando configurado com a situação Inativo ele não será exibido e não estará funcionando no contexto configurado. |
Contexto | No campo contexto podemos selecionar qual cadastro o campo adicionado será cadastrado. O contexto é dividido em Cliente (cadastro do cliente), Contato (cadastro contato do cliente), Lead (cadastro de etapas do lead) e Local (cadastro do local). |
Tipo de campo | O tipo de campo é relacionado que tipo de dado inserido, ou qual será sua ação dentro do cadastro. Ao lado do campo Tipo de campo terá uma lupa que quando clicado abrirá uma tela para selecionar qual o tipo do campo. |
Descrição | Na descrição informaremos o nome do campo adicional, ou seja, o nome que será exibido no cadastro. |
Identificador | O campo chave é um campo onde informamos um nome único para o campo adicional, pois não pode haver duplicação de campo dentro do cadastro. |
Valor Padrão | Alguns "Tipos de campos" requer que o usuário informe um valor padrão no campo adicional, obrigando que o usuário preencha este campo |
Máscara | Permite informar uma mascará padrão para o campo, por exemplo Data __/__/__ |
Tamanho mínimo | Alguns "Tipos de campos" requer que o usuário informe um valor mínimo para campo adicional, como por exemplo campos numéricos |
Tamanho máximo | Alguns "Tipos de campos" requer que o usuário informe um valor máximo para campo adicional, como por exemplo campos numéricos |
Obrigatório | Essa configuração tem o objetivo de dizer se o campo será obrigatório no cadastro, ou seja, se será necessário que seja preenchido algum dado ou selecionado. |
Permite visualizar | Permite se o campo será visível no cadastro, ou seja, se será possível ver o campo. |
Permite cadastrar | Permite se através do campo pode ser inserido ou selecionado algum dado. |
Permite editar | Caso possua algum dado pré-selecionado ou preenchido, permite editar o campo. |
Exibir no relatório | Permite o usuário escolher se o campo adicional será exibido no relatório que for gerado da tela |
São eles:
Os campos adicionais do pedido serão exibidos nos blocos conforme o contexto selecionado, na seguinte forma:
O objetivo desse campo é buscar dados partir do campo adicional de cadastros. Por exemplo um campo adicional vinculado no pedido trazer informações de um campo adicional do contexto do cadastro de Produto.
Similar com o comportamento dos campos vinculáveis, porém busca dados de uma única entidade, por exemplo Produto.
Após a configuração, os campos são exibidos no Pedido conforme o seu contexto configurado.
O sistema possui cadastro de campos adicionais sendo então possível criar campos extras no sistema, usados para complementar os dados dentro do pedido.
O campo adicional para exibição no Pedido pode ser configurado de acordo com a necessidade dos usuários.
Lembrando que há também os campos adicionais gerais, que são exibidos nas outras telas de cadastro e podem ser acessados Aqui
em "Configuração > Configuração Pedido > Campos adicionais" é realizado o cadastro dos campos adicionais que serão exibidos na tela de pedido, sendo assim é exibido os botões "Adicionar" para novos registros de campos, "Cancelar alteração" se deseja ignorar as alterações realizadas antes de gravar ou "Gravar" que permite gravar os novos registros criados.
Segue as descrições dos campos da tela:
Registro | Descrição |
---|---|
Contexto | Exibe qual contexto corresponde o registro, ou seja o módulo que o campo será exibido |
Descrição | Exibe a descrição informada pelo usuário na configuração |
Chave | Exibe a chave identificadora do campo adicional informada pelo usuário na configuração |
Identificador | Exibe a identificação do campo no banco de dados |
Tipo de Campo | Exibe o Tipo do campo para o registro informado pelo usuário na configuração |
Obrigatório | Exibe se o campo será obrigatório no cadastro |
Situação | Exibe se o campo está ativo ou inativo na configuração do registro |
Exibir no relatório | Exibe se o parâmetro para exibir no relatório estiver ativo |
Botão Editar | Neste botão será realizado a configuração para o campo |
Botão configuração de dados pessoais | Neste botão é realizado configuração da suframa (integração) |
Quando clicado no Botão Editar é realizado a configuração dos Campos adicionais do pedido.
Ao clicar no botão teremos os seguintes campos para preencher e configurar:
Campo | Descrição |
---|---|
Situação | O campo situação tem a funcionalidade e o objetivo de deixar o campo com situação “Ativo” e “Inativo”. Quando configurado com a situação Ativo o campo a ser configurado ficara ativo no cadastro configurado de acordo com o contexto configurado. Quando configurado com a situação Inativo ele não será exibido e não estará funcionando no contexto configurado. |
Contexto | No campo contexto podemos selecionar qual cadastro o campo adicionado será cadastrado. O contexto é dividido em Cliente (cadastro do cliente), Contato (cadastro contato do cliente), Lead (cadastro de etapas do lead) e Local (cadastro do local). |
Tipo de campo | O tipo de campo é relacionado que tipo de dado inserido, ou qual será sua ação dentro do cadastro. Ao lado do campo Tipo de campo terá uma lupa que quando clicado abrirá uma tela para selecionar qual o tipo do campo. |
Descrição | Na descrição informaremos o nome do campo adicional, ou seja, o nome que será exibido no cadastro. |
Identificador | O campo chave é um campo onde informamos um nome único para o campo adicional, pois não pode haver duplicação de campo dentro do cadastro. |
Valor Padrão | Alguns "Tipos de campos" requer que o usuário informe um valor padrão no campo adicional, obrigando que o usuário preencha este campo |
Máscara | Permite informar uma mascará padrão para o campo, por exemplo Data __/__/__ |
Tamanho mínimo | Alguns "Tipos de campos" requer que o usuário informe um valor mínimo para campo adicional, como por exemplo campos numéricos |
Tamanho máximo | Alguns "Tipos de campos" requer que o usuário informe um valor máximo para campo adicional, como por exemplo campos numéricos |
Obrigatório | Essa configuração tem o objetivo de dizer se o campo será obrigatório no cadastro, ou seja, se será necessário que seja preenchido algum dado ou selecionado. |
Permite visualizar | Permite se o campo será visível no cadastro, ou seja, se será possível ver o campo. |
Permite cadastrar | Permite se através do campo pode ser inserido ou selecionado algum dado. |
Permite editar | Caso possua algum dado pré-selecionado ou preenchido, permite editar o campo. |
Exibir no relatório | Permite o usuário escolher se o campo adicional será exibido no relatório que for gerado da tela |
São eles:
Os campos adicionais do pedido serão exibidos nos blocos conforme o contexto selecionado, na seguinte forma:
O objetivo desse campo é buscar dados partir do campo adicional de cadastros. Por exemplo um campo adicional vinculado no pedido trazer informações de um campo adicional do contexto do cadastro de Produto.
Similar com o comportamento dos campos vinculáveis, porém busca dados de uma única entidade, por exemplo Produto.
Após a configuração, os campos são exibidos no Pedido conforme o seu contexto configurado.
O recurso de Configurar a exibição e manipulação dos campos permite que o usuário personalize as Guias de Carrinho, Histórico, Sugestão de venda, Oferta, Lançamento e Campanha dentro do Pedido.
Para que seja possível manipular os campos existentes no carrinho, o usuário realiza a configuração em "Configuração > Configuração Pedido > Produtos".
Campo | Descrição |
---|---|
Campo | Nome do campo que será exibido para os itens, lembrando que normalmente há campos definidos para cada ambeinte |
Label | Descrição que será exibido para o campo, se o usuário não editar a label, será exibido uma descrição padrão existente |
Visível | Permite que o campo seja exibido em tela |
Editável | Permite que o campo seja editado pelo usuário, na tela de pedidos |
Obrigatório | Permite definir se o campo será ou não obrigatório o preenchimento |
Exibir no relatório | Permite definir se o campo será exibido no Espelho do pedido |
Linha | Define em qual linha é exibido o componente em tela |
Coluna | Define em qual Coluna é exibido o componente em tela |
Botão Validação | Alguns campos permite informar uma validação específica para ele, para mais detalhes vide o fluxo do campo |
Botão Editar | Alguns campos permite Editar especificações, para mais detalhes vide o fluxo do campo |
Sendo assim, a descrição dos campos irão definir se o mesmo será exibido no ambiente Web ou Android.
Por exemplo:
Ativando o campo "Lote" no Ambiente web e verificando no carrinho:
Realizando a mesma configuração agora para o ambiente Android:
São exibidos:
Alguns campos configuráveis possuem a opção de incluir validação, Por exemplo, a configuração de Data Entrega, onde é possível incluir a validação de Dias que serão considerados para o cálculo.
Ao Clicar no botão é exibido a dialog, e o usuário define a validação Mínima ou Máxima e informa os dias do cálculo:
Alguns campos configuráveis possuem a opção de Edição, Por exemplo, a configuração de Cultura, onde é possível incluir ao informações de cultura que serão preenchidas no campo, no Item:
Ao Clicar no botão é exibido uma tela, e o usuário define os campos que serão considerados para preenchimento do mesmo:
Há também as opções para exibição dos campos nos cards de produto nas abas de "Sugestão de venda", "Black Friday", "Lançamento", e "Oferta".
Por exemplo: Saldo de estoque nos Cards:
O Objetivo desse recurso, é oferecer uma visualização mais prática e rápida do estoque disponível, eliminando a necessidade de adicionar um produto ao carrinho para essa consulta. Exibido da seguinte forma:
O módulo de Consulta do ambiente Android possibilita a consulta das informações relacionadas a venda, ao profissional, informações dos produtos, aprovações, notas fiscais e relatórios.
O módulo de aprovações serão listados os pedidos que sofreram algum tipo de restrição e que necessitam de aprovação de um profissional responsável ou superior. Suas aprovações serão listadas de acordo com o tipo de aprovação. Somente os profissionais configurados para a aprovação poderão aprovar/reprovar os pedidos. Para profissionais que realizaram o pedido as aprovações poderão ser visualizadas e verificadas se o pedido foi aprovado ou reprovado pelo usuário responsável.
A consulta de histórico de atendimento conterá todos os dados relacionados ao atendimento realizado pelo profissional. Através dos filtros da tela de atendimento poderá ser feito a consulta dos últimos atendimentos realizados pelo profissional. Informações como Justificativa e Imagens poderão ser visualizadas no atendimento realizado com o cliente.
A consulta de Histórico de vendas (Pedido) poderão ser visualizados os pedidos gerados pelo profissional. Os pedidos serão listados por cliente e poderão ser acessados a qualquer momento pelo profissional.
Pedidos gerados no ambiente Android poderão somente ser finalizados pelo ambiente Android, possibilitando o controle dos pedidos gerados no ambiente Web e Android.
Nesta guia é possível manipular os pedidos que foram gerados no Android, pelos botões de opção que são disponibilizados. Segue os detalhes dos botões:
Botão | Descrição |
---|---|
Aprovação | Exibe os detalhes de status de bloqueios e aprovações sobre o pedido em questão |
Corte | Exibe se o pedido possui itens com corte de quantidade |
Preço | Exibe as informações de quantidade por preço dos itens dentro do pedido |
Exportação | Permite consultar se o pedido já foi exportado para o ERP |
Ambiente | Exibe se o pedido foi gerado pelo Ambiente da Web ou do Android |
Transmissão | Permite consultar se o pedido já foi sincronizado |
Além dos botões de status, há também o botão de Opções:
Ao clicar, é exibido uma janela com as seguintes opções:
Opção | Descrição |
---|---|
Aprovação | Exibe os detalhes de status de bloqueios e aprovações sobre o pedido em questão |
Assinatura | Exibe a tela de assinatura que foi preenchido durante o pedido |
Visualizar | Permite visualizar e Editar o pedido, abrindo a tela de pedidos |
Clonar | Permite Clonar o pedido em questão, com os mesmos dados informados no cabeçalho |
Cancelar | Permite cancelar o pedido, mudando seu status |
Salvar Cópia do Pedido | Gera um PDF do Espelho do pedido (relatório do pedido) |
Na consulta de Histórico de vendas (Notas Fiscais) serão listados as notas faturadas e armazenadas no ambiente. Informações das notas fiscais poderão ser visualizadas de acordo com o profissional autenticado ou sua hierarquia. As notas fiscais terão os produtos faturados e poderão ser visualizados informações dos produtos das notas fiscais e do pedido que gerou esses produtos.
Nesta guia também possui um botão de Opções que permite visualizar os campos da Nota fiscal como também imprimir a DANFE que foi anexada ao pedido.
A consulta de Financeiro (Débito e Crédito) possibilita consultar os títulos dos clientes. Os títulos visíveis serão somente dos clientes da carteira do profissional.
Poderão ser consultadas informações do títulos como status de vencidos, pago, a vencer, títulos de crédito e limite de crédito.
Detalhes de Títulos Vencidos:
Detalhes de Títulos Pagos:
A consulta de Produtos permite consultar os produtos do sistema, como informações, estoque do produto e dados relacionados a caracterização do produto.
A consulta dos produtos pode ser filtradas pela pesquisa avançada da tela de produtos.
Ao clicar em um dos produtos, os detalhes são exibidos:
Tem a possibilidade de consultar os dados relacionados aos pedidos dos clientes. Para consultar os dados dos pedidos gerados para esse cliente é executado uma função que busca os dados dos pedidos dos clientes no sistema e grava em uma tabela denominada positivação do produto. Nessa tabela são gravados as relações dos clientes com os pedidos, possibilitando assim consultar os produtos dos pedidos gerados para os clientes.
Quando realizado a consulta pode ser consultado os produtos do pedido do cliente consultado
Parecido com a tela de positivação de produto por cliente, a tela da empresa possibilita consultar os dados relacionados aos produtos adquiridos pela empresa. Para consultar os dados dos produtos gerados é executado uma função que busca os dados dos produtos da empresa no sistema e grava em uma tabela denominada positivação do produto. Nessa tabela são gravados as relações dos produtos com a empresa, possibilitando assim consultar os produtos da empresa.
O sistema disponibiliza a visualização de relatórios para os usuários, incluindo Exportação e Compartilhamento dos mesmos.
Ao pressionar sobre uma pasta, a mesma será aberta para exibir seu conteúdo, como pode ser visto na imagem abaixo:
Para abrir a seleção de filtros do relatório e a opção de exportar o mesmo para visualizá-lo no dispositivo, basta pressionar sobre o relatório desejado que a seguinte tela será aberta:
O sistema disponibiliza telas de cadastro de Faixas de Vida Útil, para que se possa definir faixa de dias restantes ou porcentagem da vida útil de produtos.
Além disso, o sistema conta com tela de configuração de descontos, que pode ser configurada de forma que a vida útil vinculada no cadastro seja considerada para a busca de descontos válidos para o item.
Esse cadastro poderá ser vinculado com uma regra de desconto, pela tela de cadastro de descontos de itens (Cadastro > Venda > Desconto)
No pedido de venda, quando selecionado um lote (deve ser cadastrado por integração), o sistema calculará a vida útil do lote do produto, e considerará a vida útil para a busca de descontos válidos.
Exemplo:
Data atual: 29/06/2023
CADASTRO DE FAIXAS DE VIDA ÚTIL
Código | Descrição | Cor | Situação | Percentual inicial | Percentual final | Núm. dias inicial | Núm. dias final |
---|---|---|---|---|---|---|---|
AZUL | FAIXA AZUL | #0000ff | Ativo | 0 | 50 | ||
AMARELA | FAIXA AMARELA | #fdff3e | Ativo | 50 | 70 | ||
VERMELHA | FAIXA VERMELHA | #ff3901 | Ativo | 70 | 90 |
CADASTRO DE DESCONTO
Descrição | Sigla | Percentual (%) | Faixa percentual inicial (%) | Faixa percentual final (%) | Faixa Vida Útil |
---|---|---|---|---|---|
Desconto faixa Azul | AZUL | 15 | 0 | 15 | AZUL |
Desconto faixa Amarela | AMARELA | 30 | 0 | 30 | AMARELA |
Desconto faixa Vermelha | VERMELHA | 50 | 0 | 50 | VERMELHA |
CADASTRO DE LOTES
codigo | descricao | quantidade | datainicio | datafim |
---|---|---|---|---|
1 | PRODUTO 1 - LOTE 1 | 50 | 25/06/2023 | 30/06/2023 |
2 | PRODUTO 1 - LOTE 2 | 100 | 29/06/2023 | 30/07/2023 |
DESCONTO APLICÁVEL NO PEDIDO
Produto | Quantidade | Lote | Dias fim Vida Útil | % Vida Útil | Desconto aplicável no pedido |
---|---|---|---|---|---|
PRODUTO 1 | 30 | PRODUTO 1 - LOTE 1 | 1 | 80 | 0-50% (Faixa Vermelha) |
PRODUTO 1 | 60 | PRODUTO 1 - LOTE 2 | 31 | 3 | 0-15% (Faixa Azul) |
Resultado da configuração de filtros gerais e níveis da busca produto > LOTE
|
|
|
O sistema disponibiliza a opção de considerar estoque previsto para os itens, ou seja considerar no pedido de venda: o estoque atual somado com ordens de compra de produtos que ainda terão entrada no estoque em uma determinada data posterior.
Para que isso seja possível, o requisito realiza a importação das ordens de produção existentes no ERP para o SFA, e exibe essas ordens na tela de pedido do SFA para o usuário.
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.
Também é possível projetar uma Data de Faturamento do pedido baseado na data das ordens de entrada dos itens.
Para que seja disponibilizado as ordens de compra/produção para o usuário visualizar, o banco de dados deve ser alimentado com esses registros, sendo assim 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.
Essas informação são armazenadas na tabela ordemproducao e relacionadas a um tipo de estoque. Com essa combinação, a tabela estoque consulta as ordens de produção com o tipo de estoque selecionado pelo usuário e exibe em tela, no pedido.
Para utilização do estoque com qualidade prevista dentro das Ordens de Produção é necessário ativar o parâmetro sim3g.pedido.qtde.prevista.idnValidaQtdePrevista em: Configuração > Geral
Para listar na tela do pedido as ordens de compra vinculadas ao produto, é preciso antes ativar a configuração de busca ORDEM_PRODUCAO para filtrar corretamente o armazém vinculado às ordens de produção existentes.
Essa configuração é realizada em: Configuração > Configuração Pedido > Busca Produto.
Quanto aos filtros para exibição das ordens de produção do produto, podem ser configuradas conforme o usuário desejar, como por exemplo por TIPOESTOQUE, ou LOCALFILIAL.
Para visualização da Ordem de Produção no pedido, será necessário ativar o Ícone correspondente ao fluxo, para que ele seja exibido na coluna de Categoria da Grid de Produtos.
Esta configuração é realizada em: Cadastro > Geral > Ícone.
Por tratar-se de um ícone fixo, não é necessário informar consulta e imagem, apenas ativa-lo e já será exibido nas Grid de produto, dentro do pedido:
Os usuários podem optar por ativar o campo de Data de previsão faturamento, e por meio das datas de entrada no estoque que são inseridas na ordem de produção, a aplicação automaticamente preenche este campo uma data que o estoque estará disponível para a venda real.
Essa configuração é realizada em: Configuração > Configuração Pedido > Busca Cabeçalho ou Resumo. Isso vai depender de qual bloco o usuário deseja visualizar o campo.
Quando exibido o campo de Data Previsão Faturamento, a aplicação preenche esse campo automaticamente com a Data em que a quantidade de estoque poderá ser faturada, seja a data atual ou as datas de entrada de produto no estoque.
Por exemplo, o Estoque atual deste item está em 150 unidades e a venda realizada é de apenas 1 unidade, então como o estoque atual atende essa demanda, a Data prevista Faturamento pode ser a data atual
Porém se o usuário informar uma quantidade maior que o estoque atual, a aplicação irá consumir o estoque provisionado, projetando a data para a próxima entrada no estoque
Após a configuração, 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. Esta ordens serão consideradas válidas cuja data de entrega prevista seja igual ou superior à data atual no momento da importação.
Desta forma, quando o usuário abrir a Grid de produtos, na coluna "Categoria" o ícone correspondente as ordens de produção são exibidas para os produtos que tenham ordens validas:
Quando o usuário clicar no ícone exibir uma pop-up listando as ordens de compra válidas:
Opcionalmente, será possível também visualizar no carrinho de compras em ambos os ambientes a quantidade total prevista para entrega dos produtos inseridos,
Essa opção é realizada pela configuração em: Configuração > Configuração Pedido > Produto > QUANTIDADE_PREVISTA_ENTRADA ativando os parâmetros filhos.
A Quantidade prevista é a soma de todas as quantidades das ordens de compra vinculadas ao produto que está no carrinho.
Também é possível validar o estoque permitido para a venda, ativando o parâmetro de validação de estoque configurando para que o Meu SFA não permitir vendas acima da quantidade prevista para entrega, ativando o parâmetro sim3g.pedido.qtde.prevista.idnValidaQtdePrevista em: Configuração > Geral
Após essa configuração, agora é possível que o usuário faça vendas com previsões de estoque e faturamento apenas visualizando os campos diretos no pedido.
Detalhamento técnico - Comportamento |
|||||||||||||||||||||||||||||||||||||||||||||
Importa para a tabela [ORDEMPRODUCAO] as ordens de produção existentes no ERP salvos na tabela [SC2];
Utiliza o filtro C2_DATRF = '' 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. |
No comportamento anterior era importado o campo:
O campo C2_QUANT é a quantidade solicitada para produção;
O campo C2_QUJE é Quantidade ja entregue dessa solicitação.
Portando a quantidade prevista deve ser:
As opções de filtro direto e níveis agora possuem:
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 a 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;
Detalhamento técnico - Comportamento |
||||||||||||||||||||||||||||
Adicionado via Tools pela opção 18, a configuração de ícone na tabela [ICONE]:
Adicionar na tela de cadastro de ícones, a coluna Ícone Fixo referente ao campo [ICONE.IDNFIXO]; Se [ICONE.IDNFIXO] = 1 permite a edição em tela da coluna DESCRICAO apenas, demais campos não devem ser editáveis. |
Detalhamento técnico - Comportamento |
Exibe 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 padrão O filtro de busca (datafimordem >= CURRENT_DATE AND idnativo=1) sempre é fixo, independente da configuração do pedidoengine; Caso não haja configuração de busca, segue abaixo a 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 ; Utilizado os campos: WEB_GRID_QUANTIDADE_PREVISTA_ENTRADA ANDROID_CARD_QUANTIDADE_PREVISTA_ENTRADA ANDROID_CARRINHO_QUANTIDADE_PREVISTA_ENTRADA ANDROID_NEGOCIACAO_QUANTIDADE_PREVISTA_ENTRADA |
Detalhamento técnico - Comportamento |
Se o parâmetro HABILITAR_VALIDACAO_ESTOQUE = ATIVO, então: Valida se o parâmetro ‘sim3g.pedido.qtde.prevista.idnValidaQtdePrevista’ = ATIVO; Se ambos os parâmetros HABILITAR_VALIDACAO_ESTOQUE e ‘sim3g.pedido.qtde.prevista.idnValidaQtdePrevista’ estão 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:
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 é:
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:
|
Detalhamento técnico - Comportamento |
ALTER TABLE ordemproducao ADD COLUMN idtipoestoque INT8 REFERENCES tipoestoque (idtipoestoque); |
O sistema possui o campo de valor total de itens e valor total de resumo cuja implementação lógica é definida através de declaração de fórmulas, a partir da tela Configuração > Configuração pedido > Fórmulas.
Com essa configurações, ele pode definir como será exibido o valor para os campos totais de formula, incluindo em como será considerado o arredondamento utilizado para estes campos
O registro do valor da fórmula para o contexto de produtos é a label "PROD_VALOR_TOTAL_FORMULA" referente ao valor total do item no carrinho, definido por meio de fórmula. Nos campos passíveis de comporem a definição dessa fórmula, estão presentes os seguintes registros:
Variável | Descrição da variável |
---|---|
PROD_QUANTIDADE | Campo referente ao valor informado no campo quantidade do produto |
PROD_PRECO_VENDA | Campo referente ao valor informado no campo preço de venda |
PROD_VALOR_DESCONTO | Campo referente ao valor informado no campo Desconto |
PROD_PERCENTUAL_DESCONTO | Campo referente ao valor informado no campo Percentual de Desconto |
PROD_PRECO_BASE | Campo referente ao valor informado no campo preço base na Tabela de Preços |
PROD_PRECO_ORIGINAL | Campo referente ao valor informado no campo Preço Base na Tabela de Preços |
PROD_FATOR_EMBALAGEM | Campo referente ao valor informado no campo fator embalagem, na Tabela produtoembalagem |
PROD_VALOR_FLEX | Campo referente ao valor calculado em cima do flex gerado |
PROD_VALOR_TOTAL_COM_IMPOSTO | Campo referente ao valor calculado com impostos |
PROD_VALOR_TOTAL | Campo referente ao valor total do produto |
PROD_VALOR_TOTAL_DESCONTO | Campo referente ao valor calculado com o desconto informado |
VALOR_TOTAL_FORMULA | Campo referente ao valor total do pedido composto também por SOMA_PROD_VALOR_TOTAL_FORMULA, referente ao somatório do valor definido pela fórmula PROD_VALOR_TOTAL_FORMULA |
Com estes campos, o usuário pode definir uma fórmula para o cálculo da coluna "Valor da fórmula" exibida no carrinho para os itens acessando a tela Configuração > Configuração pedido > Fórmulas e Editando o registro PROD_VALOR_TOTAL_FORMULA.
Por exemplo:
Para representação do campo de itens em tela, é utilizado a configuração de campo chamado "VALOR_TOTAL_FORMULA" na tela Configuração > Configuração pedido > Produto, que fará relação com campo no contexto de itens, de label "Valor total fórmula".
No exemplo, a fórmula utilizada é a PROD_PRECO_VENDA * PROD_QUANTIDADE que será exibida no item, da seguinte forma:
As configurações para as fórmulas para o contexto de Resumo são bem similares ao contexto de itens, porém é utilizado o registro VALOR_TOTAL_FORMULA
Nas configurações, o usuário pode utilizar das variáveis disponíveis, por exemplo:
O resultado da fórmula será exibido no Resumo do pedido, no campo "Valor total fórmula" que pode ser ativado na tela Configuração > Configuração pedido > Resumo.
Na declaração de fórmulas, é possível utilizar função ROUND(Valor numérico, modo arredondamento, quantidade casas decimais) que é responsável por arredondar o "valor numérico" em quantas casas decimais forem definidas no parâmetro "quantidade casas decimais", utilizando o modo de arredondamento declarado no parâmetro "modo arredondamento", cujas opções aceitáveis é o:
segundo a documentação https://docs.oracle.com/javase/7/docs/api/java/math/RoundingMode.html .Dessa forma, o sistema interpreta, por exemplo, as seguintes fórmula:
ou
Onde "ROUND" é a função do arredondamento, e dentro dos "( _ )" são informados a variável e o número de casas decimais que serão considerados para a formula.
Exemplo:
PROD_PRECO_VENDA=9.1085 e PROD_QUANTIDADE=20
Então a Fórmula seria: ROUND(PROD_PRECO_VENDA), HALF_UP, 2) * PROD_QUANTIDADE
Então: ROUND(9.1085), HALF_UP, 2) * 20 = 9.11 * 20 = 182.2
Resultado exibido no campo "Valor total fórmula" = R$ 182,20
INSERT INTO wsconfigpedidoformula (idwsconfigpedidoformula,identificador,descricao,formula,idnativo,contexto,codigoerp,wsversao) VALUES
(nextval('seqpkwsconfigpedidoformula'),'PROD_VALOR_TOTAL_FORMULA','Valor total do item do pedido, calculado por fórmula','PRECOVENDA * QUANTIDADE',1,'NEGOCIACAO',NULL,7)
INSERT INTO wsconfigpedidoproduto (idwsconfigpedidoproduto,chave,"label",linha,coluna,idnvisivel,idneditavel,codigoerp,idnexiberelatorio,idnobrigatorio) VALUES
(nextval('seqpkwsconfigpedidoproduto'),'WEB_GRID_VALOR_TOTAL_FORMULA','standard.pedidoconfig.item.valortotalformula',0,0,0,0,NULL,0,0),
(nextval('seqpkwsconfigpedidoproduto'),'ANDROID_CARD_VALOR_TOTAL_FORMULA','standard.pedidoconfig.item.valortotalformula',0,0,0,0,NULL,0,0),(nextval('seqpkwsconfigpedidoproduto'),'ANDROID_CARRINHO_VALOR_TOTAL_FORMULA','standard.pedidoconfig.item.valortotalformula',0,0,0,0,NULL,0,0),(nextval('seqpkwsconfigpedidoproduto'),'ANDROID_NEGOCIACAO_VALOR_TOTAL_FORMULA','standard.pedidoconfig.item.valortotalformula',0,0,0,0,NULL,0,0)
Função |
Descrição |
Exemplo |
---|---|---|
ROUND(valor numérico, modo arredondamento, quantidade casas decimais) | Função responsável por retornar o ${valor numérico} arredondado em ${quantidade casas decimais} casas decimais, utilizando o modo de arredondamento de código ${modo arredondamento}. Valores aceitáveis para o parâmetro "modo arredondamento": UP,DOWN,CEILING,FLOOR,HALF_UP,HALF_DOWN,HALF_EVEN,UNNECESSARY, conforme documentação https://docs.oracle.com/javase/7/docs/api/java/math/RoundingMode.html |
Se Fórmula: ROUND(PRECOVENDA), HALF_UP, 2) * QUANTIDADE Então: ROUND(9.1085), HALF_UP, 2) * 20 = 9.11 * 20 = 182.2 |
O sistema tem a possibilidade de converter a moeda associada à tabela de preço para a moeda selecionada no cabeçalho que será aplicada no pedido, convertendo os valores da cotação selecionada também no cabeçalho.
Ou seja, A tabela de preço é definida com uma moeda padrão, porém o usuário pode realizar pedidos com outra moeda e automaticamente será realizado a conversão de valores, conforme uma cotação para o indexador do dia.
Na Tabela de preço, pode ser definido qual será a moeda referente aos valores dos produtos, dessa forma já é configurado os seus valores considerando este indexador específico. Por exemplo:
Para que seja exibido os campos de Moeda (indexador) no pedido, é necessário realizar a configuração destes campos. Na tela Configuração > Configuração Pedido > Busca Cabeçalho o usuário pode ativar os seguintes campos:
Entidade | Descrição |
---|---|
MOEDA | Campo selecionável para que o usuário defina a moeda que será aplicada no pedido |
MOEDAORIGEM | Campo não editável que exibe a moeda origem da Tabela de Preço |
COTACAO_INDEXADOR | Campo selecionável para que o usuário defina qual será a cotação que será utilizada neste pedido, para a conversão de valores da moeda da tabela de preço para a moeda do pedido |
Quanto aos filtros e níveis, são configurados assim como os outros campos, permitindo que o usuário defina as entidades e sequencias que ocorrerão as validações de cada campo.
Na tela Configuração > Configuração Pedido > Resumo, também é disponibilizado campos para exibição dos valores com a conversão das moedas.
Campos | Descrição |
---|---|
VALOR_FATURADO_MOEDAORIGINAL | Campo que exibe a conversão dos valores considerando o campo pedido.valorfaturado |
VALOR_PENDENTE_MOEDAORIGINAL | Campo que exibe a conversão dos valores considerando o campo pedido.valorpendente |
VALOR_TOTAL_BRUTO_MOEDAORIGINAL | Campo que exibe a conversão dos valores considerando o campo de Valor total Bruto do pedido |
VALOR_TOTAL_LIQUIDO_MOEDAORIGINAL | Campo que exibe a conversão dos valores considerando o campo de Valor total Liquido do pedido |
VALOR_TOTAL_DESCONTOS_MOEDAORIGINAL | Campo que exibe a conversão dos valores considerando o campo de Valor Total de Descontos que incidiram no pedido |
VALOR_TOTAL_COM_IMPOSTOS_MOEDAORIGINAL | Campo que exibe a conversão dos valores considerando o campo de Valor com Impostos do pedido |
VALOR_DESCONTO_RESUMO_MOEDAORIGINAL | Campo que exibe a conversão dos valores considerando o campo de Valor de Descontos que incidiram no pedido |
VALOR_TOTAL_FORMULA_MOEDAORIGINAL | Campo que exibe a conversão dos valores considerando o campo pedido.valortotalformula |
Ao realizar o pedido, o Profissional informa campo Tabela de Preço e automaticamente é preenchido o campo Moeda origem cujo comportamento de tela é associado ao meta dado de código "MOEDAORIGEM". Por exemplo:
Em seguida, o usuário poderá informar o campo Moeda, que corresponde a moeda que será utilizada no pedido, e a Cotação do Indexador, que é o valor de conversão da Moeda Origem para a Moeda utilizada no pedido.
E Desta forma, o produto será exibido na Moeda do pedido, porém no Resumo será exibido as informações de ambas as moedas
Para que o usuário possa visualizar tanto os valores sem conversão, quanto os valores convertidos, o sistema exibe os campos monetários do resumo de pedidos desta forma.
contexto | nomeentidade | label | idnativo | idnvisivel | idneditavel | idneditavelcomitens | idnobrigatorio | idnunion | ordem | codigoerp | idnexiberelatorio |
CABECALHO | MOEDAORIGEM |
"Moeda Origem" | 0 | 1 | 1 | 1 | 1 | 0 | 22 | 0 |
chave | label | ordem | idnvisivel | idnobrigatorio | codigoerp | idnexiberelatorio | idneditavel |
VALOR_FATURADO_MOEDAORIGINAL | 0 | 0 | 0 | 0 | 0 | ||
VALOR_PENDENTE_MOEDAORIGINAL | 0 | 0 | 0 | 0 | 0 | ||
VALOR_TOTAL_BRUTO_MOEDAORIGINAL | 0 | 0 | 0 | 0 | 0 | ||
VALOR_TOTAL_LIQUIDO_MOEDAORIGINAL | 0 | 0 | 0 | 0 | 0 | ||
VALOR_TOTAL_DESCONTOS_MOEDAORIGINAL | 0 | 0 | 0 | 0 | 0 | ||
VALOR_TOTAL_COM_IMPOSTOS_MOEDAORIGINAL | 0 | 0 | 0 | 0 | 0 | ||
VALOR_DESCONTO_RESUMO_MOEDAORIGINAL | 0 | 0 | 0 | 0 | 0 | ||
VALOR_TOTAL_FORMULA_MOEDAORIGINAL | 0 | 0 | 0 | 0 | 0 |
Na tela Configuração > Configuração Pedido > Busca Cabeçalho,
Na tela Configuração > Configuração Pedido > Resumo,
VALOR_FATURADO_MOEDAORIGINAL |
VALOR_PENDENTE_MOEDAORIGINAL |
VALOR_TOTAL_BRUTO_MOEDAORIGINAL |
VALOR_TOTAL_LIQUIDO_MOEDAORIGINAL |
VALOR_TOTAL_DESCONTOS_MOEDAORIGINAL |
VALOR_TOTAL_COM_IMPOSTOS_MOEDAORIGINAL |
VALOR_DESCONTO_RESUMO_MOEDAORIGINAL |
VALOR_TOTAL_FORMULA_MOEDAORIGINAL |
A coluna "Editável" não deve ter ação para esse registro, recebendo o valor "-"
Nos ambientes Web/Android, no pedido de venda
|
Nos itens,
No resumo,
VALOR_FATURADO_MOEDAORIGINAL | Campo implementa associado à visualização do campo VALOR_FATURADO, da seguinte forma: Valor faturado: ${Cifrão da moeda associada à tabela de preço} ${Valor convertido à moeda associada à tabela de preço} / ${Cifrão da moeda selecionada no cabeçalho} ${Valor convertido à moeda selecionada no cabeçalho} |
VALOR_PENDENTE_MOEDAORIGINAL | Campo implementa associado à visualização do campo VALOR_PENDENTE, da seguinte forma: Valor pendente: ${Cifrão da moeda associada à tabela de preço} ${Valor convertido à moeda associada à tabela de preço} / ${Cifrão da moeda selecionada no cabeçalho} ${Valor convertido à moeda selecionada no cabeçalho} |
VALOR_TOTAL_BRUTO_MOEDAORIGINAL | Campo implementa associado à visualização do campo VALOR_TOTAL_BRUTO, da seguinte forma: Valor total bruto: ${Cifrão da moeda associada à tabela de preço} ${Valor convertido à moeda associada à tabela de preço} / ${Cifrão da moeda selecionada no cabeçalho} ${Valor convertido à moeda selecionada no cabeçalho} |
VALOR_TOTAL_LIQUIDO_MOEDAORIGINAL | Campo implementa associado à visualização do campo VALOR_TOTAL_LIQUIDO, da seguinte forma: Valor total liquido: ${Cifrão da moeda associada à tabela de preço} ${Valor convertido à moeda associada à tabela de preço} / ${Cifrão da moeda selecionada no cabeçalho} ${Valor convertido à moeda selecionada no cabeçalho} |
VALOR_TOTAL_DESCONTOS_MOEDAORIGINAL | Campo implementa associado à visualização do campo VALOR_TOTAL_DESCONTOS, da seguinte forma: Valor total descontos: ${Cifrão da moeda associada à tabela de preço} ${Valor convertido à moeda associada à tabela de preço} / ${Cifrão da moeda selecionada no cabeçalho} ${Valor convertido à moeda selecionada no cabeçalho} |
VALOR_TOTAL_COM_IMPOSTOS_MOEDAORIGINAL | Campo implementa associado à visualização do campo VALOR_TOTAL_COM_IMPOSTOS, da seguinte forma: Valor total com impostos: ${Cifrão da moeda associada à tabela de preço} ${Valor convertido à moeda associada à tabela de preço} / ${Cifrão da moeda selecionada no cabeçalho} ${Valor convertido à moeda selecionada no cabeçalho} |
VALOR_DESCONTO_RESUMO_MOEDAORIGINAL | Campo implementa associado à visualização do campo VALOR_DESCONTO_RESUMO, da seguinte forma: Valor desconto resumo: ${Cifrão da moeda associada à tabela de preço} ${Valor convertido à moeda associada à tabela de preço} / ${Cifrão da moeda selecionada no cabeçalho} ${Valor convertido à moeda selecionada no cabeçalho} |
VALOR_TOTAL_FORMULA_MOEDAORIGINAL | Campo implementa associado à visualização do campo VALOR_TOTAL_FORMULA, da seguinte forma: Valor total fórmula: ${Cifrão da moeda associada à tabela de preço} ${Valor convertido à moeda associada à tabela de preço} / ${Cifrão da moeda selecionada no cabeçalho} ${Valor convertido à moeda selecionada no cabeçalho} |
O cálculo do valor monetário associado à moeda de origem deve ser feito da seguinte forma:
O Sistema contém uma configuração específica para definir uma data de Entrega para os pedidos.
Desta forma os usuários configuram regras para gerar um prazo em dias para que sejam calculado prazo para entrega.
A configuração é realizada em "Configuração > Configuração Pedido > Prazo de Entrega"
Campo | Descrição |
---|---|
Cliente | Campo que determina se a regra criada considera um cliente específico, para validação |
Cidade Origem | Campo que determina se a regra criada considera a cidade origem do pedido, ou seja o endereço da Filial, para validação |
Cidade Destino | Campo que determina se a regra criada considera a cidade Destino do pedido, ou seja o endereço do Cliente, para validação |
UF Origem | Campo que determina se a regra criada considera a Unidade Federativa origem do pedido, ou seja o endereço da Filial, para validação |
UF Destino | Campo que determina se a regra criada considera a Unidade Federativa Destino do pedido, ou seja o endereço do Cliente, para validação |
Filial | Campo que determina se a regra considera a Filial selecionada no pedido, para validação |
Segmento | Campo que determina se a regra considera o Segmento selecionado no pedido, para validação |
Dias para entrega | Campo que determina quantos dias será considerados para determinar o prazo de entrega do pedido |
Tipo Prazo | Campo que determina se o cálculo será feito sobre dias corridos, ou dias úteis (desconsiderando finais de semana e feriados) |
Além disso, há critérios de busca dos prazos de entrega em níveis, por exemplo:
No pedido de venda, a partir da busca configurada acima, o sistema trás o campo "Data entrega" automaticamente preenchido segundo o contexto do pedido.
Caso o campo "Data entrega" seja configurado como editável, e o usuário poderá alterá-lo manualmente, o sistema apenas restringi que o prazo de entrega mínimo não seja infringido, ou seja, que o campo não possa ser inferior à data de entrega calculada automaticamente.
Na tela Configuração > Configuração Pedido > Busca entrega, o sistema possui a configuração de níveis e filtros gerais e a validação será aplicada conforme definida nessas configurações.
No Primeiro ícone, de "Validação" o usuário define a regra que será considerada, que para o fluxo de "Prazo de Entrega" deve ser selecionado "Data mínima: busca prazo de entrega"
Observação: Se o usuário escolher as outras opções, como Data mínima com Valor de Dias, entra em outro fluxo de validações, e não considera as regras criadas no Menu "Prazo de Validade", calculando apenas os dias informados manualmente nesta tela
No Segundo ícone, de "Níveis", a configuração segue conforme é realizado para outros campos, onde o usuário define níveis de validação para a Entidade Prazoentrega, como PARCEIRO_IDPARCEIRO, CIDADEORIGEM_IDCIDADE e outros.
Ainda nas configurações, no ícone "Filtros Diretos" o usuário define os campos que serão considerados na validação, como também se a regra poderá conter valor nulo para incidir no pedido. Por exemplo:
Para este caso, todos os campos estão sendo considerados na validação e nenhum campo poderá ser nulo para que a regra seja incidida no pedido.
Após configurado as regras de validação, quando o campo DATA_ENTREGA estiver ativo no pedido, a Data de Entrega é gerada automaticamente.
Lembrando que se o campo permitir edição o usuário pode altera-lo, porém não poderá informar uma data menor que o prazo definido na regra. Ao finalizar o pedido, é exibido a mensagem para que será corrigido e informado uma data válida:
Desta forma, as datas de entrega são validadas corretamente no pedido.
|
|
|
|
|
|
|
|
|
|
|
|
|
O sistema disponibiliza o plugin de nome "Simulação de impostos", onde o usuário terá a possibilidade de visualizar os impostos que serão gerados no pedido, tendo uma visão mais precisa dos valores.
A configuração é realizada nas configurações > Integração > Plugins de integração.
Nas configurações do Plugin, o usuário realiza o cadastro dos dados confirme a sua necessidade:
Campo | Dados informados |
---|---|
Campo que definirá se o plugin utilizado será Protheus, Datasul ou Outro Plugin dentro das diretrizes informada na documentação | |
URL de conexão | Url fornecida pelo plugin para gerar a integração com o cálculo de imposto |
Usuário | Usuário do plugin |
Senha | Senha do plugin |
Timeout ao requisitar impostos (seg) | Tempo de espera para o retorno da consulta no Plugin |
Obrigar simulação de impostos para | Campo que permite selecionar se haverá validação de imposto calculado tanto na gravação do pedido quanto na finalização. |
Exemplo de configuração do Plugin Simulação de impostos:
No pedido de venda, caso o Plugin de integração de código "imposto" estiver ativo,
O sistema disponibiliza o botão de "Calcular impostos" Web e ícone no Android.
Este botão é dinâmico, ou seja, o sistema muda a cor de ícone baseado na situação dos impostos:
Se alterado dados dos produtos, o ícone retorna para o status de "não calculado"
Ao clicar no botão de "Calcular impostos" o sistema dispara uma requisição POST para carte do Pentaho:
Imagem de exemplo:
A representação dos impostos em tela exibe os valores persistidos na linha do item e nos resumos, agrupando os valores dos itens.
Sobre a validação ao Cincuir o Pedido, varia confirme for selecionado na Configuração do Plugin de Integração:
O Pentaho Carte, recebe a requisição da aplicação na rota COMMONS_Bloco_TAXSIMULATION, e trata os dados recebidos segundo o modelo da entrada da API de simulação de impostos do Protheus, segundo documentação https://api.totvs.com.br/apidetails/SalesTaxes_v1_000.json
Com o retorno, o serviço de integração implementa os campos definidos pela tabela de-para do Modelo Protheus (veja em "Escopo Técnico).
O Pentaho Carte, recebe a requisição da aplicação na rota COMMONS_Bloco_TAXSIMULATION, e trata os dados recebidos segundo o modelo da entrada da API de simulação de impostos do Datasul, que segue o modelo: API-REST Imposto/Classificação Imposto
A URL da rota é definida pelo padrão; ${base_url}/api/ftp/v2/ItemTaxSimulationPublic
Com o retorno, o serviço de integração implementa os campos definidos pela tabela de-para do Modelo Datasul (veja em "Escopo Técnico).
Foi também implementado um modelo genérico padrão, onde o Pentaho envia requisição com autenticação básica definida segundo modelo padrão e esperando receber retorno segundo modelo padrão definido pela documentação Plugin de Integração "Simulação de Impostos".
Caso os sistemas terceiros se adaptem ao modelo padrão definido acima, o requisito de simulação de impostos poderá ser implementados sem necessidade de customização.
Entretanto, caso os sistemas não possam se adaptar para receber e retornar a requisição segundo o definido pela documentação acima, esse modelo de simulação de impostos será configurado na aplicação para que dispare serviço de integração customizado, que respeita apenas o contrato requisição/retorno definido entre aplicação/pentaho.
Pelo tools, opção 5, o sistema cria o registro na tabela pluginintegracao.codigo com valor = IMPOSTO
Para funcionar corretamente, o cadastro das configurações do plugin de Imposto insere na tabela pluginintconfig as seguintes informações:
{ "idusuario": 1, //pedido.idusuarioprofissional "idparceiro": 1, //pedido.idparceiro "idlocal": 2, //pedido.idlocal "idlocalcobranca": 3, //pedido.idlocalcobranca "idfilialvenda": 3, //pedido.idlocalfilialvenda "idfilialretira": 4, //pedido.idlocalfilialretirada "idfilialfaturamento": 5, //pedido.idlocalfilialfaturamento "idtipopedido": 4, //pedido.idtipopedido "idtipocobranca": 5, //pedido.idtipocobranca "idtabelapreco": 6, //pedido.idtabelapreco "idcondicaopagamento": 5, //pedido.idcondicaopagamento "idsegmento": 8, //pedido.idsegmento "idtipologia": 8, //pedido.idtipologia "idoperacao": 8, //pedido.idoperacao "idmoeda": 8, //pedido.idindexador "idtipoestoque": 8, //pedido.idtipoestoque "valortotalbruto": 8.00, //Campo "Valor total bruto do resumo" "valortotalliquido": 9.00,//Campo "Valor total liquido do resumo" "descontopedido": [ { "codigo": "8", //pedidotipodesconto.idtipodesconto > tipodesconto.codigo "percentual": 9.00, //pedidotipodesconto.percentual "valor": 10.00 //pedidotipodesconto.valor }, { "codigo": "8", //pedidotipodesconto.idtipodesconto > tipodesconto.codigo "percentual": 9.00, //pedidotipodesconto.percentual "valor": 10.00 //pedidotipodesconto.valor } ], "pedidoproduto": [ { "ordem": 1, //pedidoproduto.ordem "idproduto": 8, //pedidoproduto.idproduto "idembalagem": 10, //pedidoproduto.idembalagem, "quantidade": 9.00, //pedidoproduto.quantidade "precovenda": 10.00, //pedidoproduto.precovenda PS:Valor unitário "precotabela": 11.00, //pedidoproduto.precotabela PS:Valor unitário "precooriginal": 12.00, //pedidoproduto.precooriginal PS:Valor unitário "percentualdesconto": 13.00, //pedidoproduto.percentualdesconto "valordesconto": 13.00, //pedidoproduto.valordesconto PS:Valor unitário "percentualacrescimo": 13.00, //pedidoproduto.percentualacrescimo "valoracrescimo": 13.00, //pedidoproduto.valoracrescimo PS:Valor unitário "idtipopedido": 13.00, //pedidoproduto.idtipopedido "idtipoestoque": 14, //pedidoproduto.idtipoestoque "idtabelapreco": 15, //pedidoproduto.idtabelapreco }, { "ordem": 1, //pedidoproduto.ordem "idproduto": 8, //pedidoproduto.idproduto "idembalagem": 10, //pedidoproduto.idembalagem, "quantidade": 9.00, //pedidoproduto.quantidade "precovenda": 10.00, //pedidoproduto.precovenda PS:Valor unitário "precotabela": 11.00, //pedidoproduto.precotabela PS:Valor unitário "precooriginal": 12.00, //pedidoproduto.precooriginal PS:Valor unitário "percentualdesconto": 13.00, //pedidoproduto.percentualdesconto "valordesconto": 13.00, //pedidoproduto.valordesconto PS:Valor unitário "percentualacrescimo": 13.00, //pedidoproduto.percentualacrescimo "valoracrescimo": 13.00, //pedidoproduto.valoracrescimo PS:Valor unitário "idtipopedido": 13.00, //pedidoproduto.idtipopedido "idtipoestoque": 14, //pedidoproduto.idtipoestoque "idtabelapreco": 15, //pedidoproduto.idtabelapreco } ], "pedidoentrega": [ { "idtipofrete": 4, //pedidoentrega.idtipofrete "idtransportadora": 7,//pedidoentrega.idparceirotransportador "idparceiroentrega": 8, //pedidoentrega.idparceiroentrega "valorfrete": 5.00, //pedidoentrega.valorfrete "valordespesa": 6.00, //pedidoentrega.valordespesa "valorseguro": 7.00 //pedidoentrega.valorseguro }, { "idtipofrete": 4, //pedidoentrega.idtipofrete "idtransportadora": 7,//pedidoentrega.idparceirotransportador "idparceiroentrega": 8, //pedidoentrega.idparceiroentrega "valorfrete": 5.00, //pedidoentrega.valorfrete "valordespesa": 6.00, //pedidoentrega.valordespesa "valorseguro": 7.00 //pedidoentrega.valorseguro } ] }
O retorno esperado virá com o modelo a seguir:
{ "valortotalcomimpostos": 178.56, "valortotalimpostos": 21.96, "valortotaldespesa": 0, //pedidoentrega.valordespesa "valortotalseguro": 7, //pedidoentrega.valorseguro "pedidoimposto": [ { "sglimposto": "ICMS", "aliquota": 7, "valortotalimposto": 12.14 }, { "sglimposto": "IPI", "aliquota": 6, "valortotalimposto": 9.82 } ], "itemimposto": [ { "ordem": 1, //pedidoproduto.ordem "idproduto": 8, //pedidoproduto.idproduto // "valortotalcomimpostos": 89.21, //NÃO UNITÁRIO, precisa ser múltiplicado pela requisição.quantidade "valortotalfrete": 2.5, //NÃO UNITÁRIO, precisa ser múltiplicado pela requisição.quantidade "impostos": [ { "sglimposto": "ICMS", "valorbase": 78.3, "aliquota": 6.24, "valortotalimposto": 6.24 //NÃO UNITÁRIO, precisa ser múltiplicado pela requisição.quantidade }, { "sglimposto": "IPI", "valorbase": 78.3, "aliquota": 6, "valortotalimposto": 4.91 //NÃO UNITÁRIO, precisa ser múltiplicado pela requisição.quantidade }, { "sglimposto": "ST", "valorbase": 78.3, "aliquota": 0, "valortotalimposto": 0 //NÃO UNITÁRIO, precisa ser múltiplicado pela requisição.quantidade }, { "sglimposto": "COFINS", "valorbase": 78.3, "aliquota": 0, "valortotalimposto": 0 //NÃO UNITÁRIO, precisa ser múltiplicado pela requisição.quantidade }, { "sglimposto": "CSLL", "valorbase": 78.3, "aliquota": 0, "valortotalimposto": 0 //NÃO UNITÁRIO, precisa ser múltiplicado pela requisição.quantidade } ] }, { "ordem": 2, //pedidoproduto.ordem "idproduto": 9, //pedidoproduto.idproduto // "valortotalcomimpostos": 84.3, //NÃO UNITÁRIO, precisa ser múltiplicado pela requisição.quantidade "valortotalfrete": 2.5, //NÃO UNITÁRIO, precisa ser múltiplicado pela requisição.quantidade "impostos": [ { "sglimposto": "ICMS", "valorbase": 78.3, "aliquota": 5.9, "valortotalimposto": 5.9 //NÃO UNITÁRIO, precisa ser múltiplicado pela requisição.quantidade }, { "sglimposto": "IPI", "valorbase": 78.3, "aliquota": 6, "valortotalimposto": 4.91 //NÃO UNITÁRIO, precisa ser múltiplicado pela requisição.quantidade }, { "sglimposto": "ST", "valorbase": 78.3, "aliquota": 0, "valortotalimposto": 0 //NÃO UNITÁRIO, precisa ser múltiplicado pela requisição.quantidade }, { "sglimposto": "COFINS", "valorbase": 78.3, "aliquota": 0, "valortotalimposto": 0 //NÃO UNITÁRIO, precisa ser múltiplicado pela requisição.quantidade }, { "sglimposto": "CSLL", "valorbase": 78.3, "aliquota": 0, "valortotalimposto": 0 //NÃO UNITÁRIO, precisa ser múltiplicado pela requisição.quantidade } ] } ] }
Com o retorno acima, o sistema persiste as informações em tela, segundo o seguinte de-para:
Retorno da Simulação | Campo do SFA |
---|---|
itemimposto.impostos.sglimposto | pedidoimposto.idimposto |
itemimposto.impostos.valorbase | pedidoimposto.valorbasecalculoreducao |
itemimposto.impostos.aliquota | pedidoimposto.valorbasecalculo |
itemimposto.impostos.valortotalimposto | pedidoimposto.valorimposto |
itemimposto.ordem / itemimposto.idproduto | pedidoimposto.idpedidoproduto (procurar por pedidoproduto.ordem e pedidoproduto.idproduto respectivamente) |
itemimposto.valortotalfrete | pedidoproduto.valorfrete |
itemimposto.valortotalcomimpostos | pedidoproduto.valortotalcomimposto |
Abaixo está o escopo do cálculo de imposto do Protheus.
A integração recebe a solicitação da aplicação via Carte, busca, processa e retorna para a mesma.
Abaixo estão exemplos via POSTMAN:
Na URL para o Protheus, o formato será o seguinte:
POST {{URL}/AMBIENTE/api/fat/v1/SalesTaxes
Substitua a variável URL pelo caminho da API, informado pelo cliente.
Exemplo:
Na aba de autorização, selecione o tipo Basic e informe os dados de usuário e senha:
No header da requisição, informado o tipo do conteúdo:
Content-Type: application/json
No corpo da mensagem, substituido os dados da ordem de venda nas tags correspondentes.
Exemplo:
Corpo de uma mensagem de exemplo:
{
"SalesType": "N",
"CustomerId": "0D69DO",
"CustomerUnit": "01",
"CustomerIdDelivery": "0D69DO",
"CustomerUnitDelivery": "01",
"CustomerType": "S",
"Payment": "002",
"DiscountPercentage1": 9,
"DiscountPercentage2": 0,
"DiscountPercentage3": 0,
"DiscountPercentage4": 0,
"Currency": 1,
"Freight": 0,
"Insurance": 0,
"Expense": 0,
"ListofProducts": [
{
"ItemId": "1",
"ProductId": "181647",
"Quantity": 90,
"UnitaryValue": 10,
"TotalValue": 900,
"ItemDiscountPercentage": 13,
"operationType": "03",
"TES": "501",
"ItemDiscountValue": 0
}
]
}
"SalesType": "N"
Tipo da venda, usa o valor “N" fixo
"CustomerId": "0D69DO"
Código do cliente, extraído do campo PARCEIRO.NUMEROMATRICULA selecionado no cabeçalho da ordem de venda
"CustomerUnit": "01"
Código da loja selecionado no cabeçalho da ordem de venda, extraído do campo LOCAL.SPLIT_PART(CODIGOERP,'#',4), ou se for nulo, FILIALVENDA.SPLIT_PART(CODIGOERP,'#',3)
"CustomerIdDelivery": "0D69DO"
Código do cliente, extraído do campo PARCEIRO.NUMEROMATRICULA selecionado na entrega da ordem de venda
"CustomerUnitDelivery": "01"
Código da loja do cliente, extraído do campo LOCAL.SPLIT_PART(CODIGOERP,'#',4) selecionado na entrega da ordem de venda
"CustomerType": "S"
Tipo do cliente, usa o valor extraído do campo CLASSIFICACAOPARCEIRO.CODIGOERP
"Payment": "002"
Código da condição de pagamento, campo CONDICAOPAGAMENTO.SPLIT_PART(CODIGOERP,'#',2) selecionado no cabeçalho da ordem de venda
"DiscountPercentage1": 9, "DiscountPercentage2": 0, "DiscountPercentage3": 0, "DiscountPercentage4": 0
Campo Calculado: total bruto dos itens - total liquido dos itens ((1 - (totalliquido/ totalbruto)) * 100) na primeira tag, nas demais não é enviado nenhum valor.
"Currency": 1
Fixo 1
"Freight": 0
Valor do frete inserido na ordem de venda, campo PEDIDOENTREGA.VALORFRETE
"Insurance": 0
Valor do seguro do pedido, campo PEDIDOENTREGA.VALORSEGURO
"Expense": 0
Valor de despesas acessórias, campo PEDIDOENTREGA.VALORDESPESA
"ListofProducts"."ItemId": “1”
Número sequencial de cada item dentro da ordem de venda, campo PEDIDOPRODUTO.ORDEM
"ListofProducts"."ProductId": "181647"
Código do produto inserido nos itens da ordem de venda, campo PRODUTO.SPLIT_PART(CODIGOERP,'#',2)
"ListofProducts"."Quantity": 90
Quantidade do item em questão inserido nas ordens de venda, campo PEDIDOPRODUTO.QUANTIDADE
"ListofProducts"."UnitaryValue": 10
Valor unitário do item inserido nas ordens de venda (valor cheio, não considera desconto), campo PEDIDOPRODUTO.PRECOVENDA
"ListofProducts"."TotalValue": 900
Valor total do item inserido nas ordens de venda, PEDIDOPRODUTO.QUANTIDADE * PEDIDOPRODUTO.PRECOVENDA
"ListofProducts"."ItemDiscountPercentage": 13
Percentual de desconto inserido no item da ordem de venda, campo PEDIDOPRODUTO.PERCENTUALDESCONTO
"ListofProducts"."ItemDiscountValue": 0
Fixo 0
"ListofProducts"."OperationType": "03"
TES INTELIGENTE, campo TIPOPEDIDO.CODIGOERP
OBS: Caso o tipo de pedido do item for nulo, é enviado o do cabeçalho
"ListofProducts"."TES": "501"
TES PADRÃO, campo TIPOPEDIDO.SPLIT_PART(CODIGOERP,'#',2)
OBS: Caso o tipo de pedido do item for nulo, é enviado o do cabeçalho
Abaixo está o escopo do cálculo de imposto do Datasul.
A integração recebe a solicitação da aplicação via Carte, busca, processa e retorna para a mesma.
Abaixo estão exemplos via POSTMAN:
Na URL para o Datasul, o formato será o seguinte:
POST {{URL}/api/ftp/v2/ItemTaxSimulationPublic
Substitua a variável URL pelo caminho da API, informado pelo cliente.
Exemplo:
Na aba de autorização, é selecionado o tipo Basic e informado os dados de usuário e senha:
No header da requisição, informaado o tipo do conteúdo:
Content-Type: application/json
No corpo da mensagem, substituido os dados da ordem de venda nas tags correspondentes.
Exemplo:
Corpo de uma mensagem de exemplo:
{
"SalesType": "N",
"CustomerId": "000001",
"CustomerUnit": "01",
"CustomerIdDelivery": "000001",
"CustomerUnitDelivery": "01",
"CustomerType": "F",
"Payment": "001",
"DiscountPercentage1": 10,
"DiscountPercentage2": 0,
"DiscountPercentage3": 0,
"DiscountPercentage4": 0,
"Currency": 1,
"Freight": 10,
"Insurance": 0,
"Expense": 0,
"ListofProducts": [
{
"ItemId": "01",
"ProductId": "3395979",
"Quantity": 10,
"UnitaryValue": 100,
"TotalValue": 1000,
"ItemDiscountPercentage": 10,
"ItemDiscountValue": 100,
"OperationType": "02"
}
]
}
"SalesType": "N"
Tipo da venda, usa o valor “N" fixo
"CustomerId": "000001"
Código do cliente, extraído do campo PARCEIRO.SPLIT_PART(CODIGOERP,'#',3) selecionado no cabeçalho da ordem de venda
"CustomerUnit": "01"
Código da loja, extraído do campo PARCEIRO.SPLIT_PART(CODIGOERP,'#',3) selecionado no cabeçalho da ordem de venda
"CustomerIdDelivery": "000001"
Código do cliente de entrega, extraído do campo PARCEIRO.SPLIT_PART(CODIGOERP,'#',3) selecionado na entrega da ordem de venda
"CustomerUnitDelivery": "01"
Código da loja do cliente de entrega, extraído do campo PARCEIRO.SPLIT_PART(CODIGOERP,'#',3) selecionado na entrega da ordem de venda
"CustomerType": "F"
Tipo do cliente, usa o valor extraído do campo CLASSIFICACAOPARCEIRO.SUBSTR(C.CODIGOERP,LENGTH(C.CODIGOERP),LENGTH(C.CODIGOERP))
"Payment": "001"
Código da condição de pagamento, campo CONDICAOPAGAMENTO.SPLIT_PART(CODIGOERP,'#',2) selecionado no cabeçalho da ordem de venda
"DiscountPercentage1": 10, "DiscountPercentage2": 0, "DiscountPercentage3": 0, "DiscountPercentage4": 0
Campo Calculado: total bruto dos itens - total liquido dos itens ((1 - (totalliquido/ totalbruto)) * 100) na primeira tag, nas demais não é enviado nenhum valor.
"Currency": 1
Moeda selecionada na ordem de venda, campo INDEXADOR.CAST(SPLIT_PART(CODIGOERP,'#',2) AS INT)
"Freight": 10
Valor do frete inserido na ordem de venda, campo PEDIDOENTREGA.VALORFRETE
"Insurance": 0
Valor do seguro do pedido, campo PEDIDOENTREGA.VALORSEGURO
"Expense": 0
Valor de despesas acessórias, campo PEDIDOENTREGA.VALORDESPESA
"ListofProducts"."ItemId": “01”
Número sequencial de cada item dentro da ordem de venda, campo PEDIDOPRODUTO.ORDEM * 10
"ListofProducts"."ProductId": "3395979"
Código do produto inserido nos itens da ordem de venda, campo PRODUTO.SPLIT_PART(CODIGOERP,'#',2)
"ListofProducts"."Quantity": 10
Quantidade do item em questão inserido nas ordens de venda, campo PEDIDOPRODUTO.QUANTIDADE
"ListofProducts"."UnitaryValue": 100
Valor unitário do item inserido nas ordens de venda (valor cheio, não considera desconto), campo PEDIDOPRODUTO.PRECOVENDA
"ListofProducts"."TotalValue": 1000
Valor total do item inserido nas ordens de venda, PEDIDOPRODUTO.QUANTIDADE * PEDIDOPRODUTO.PRECOVENDA
"ListofProducts"."ItemDiscountPercentage": 10
Percentual de desconto inserido no item da ordem de venda, campo PEDIDOPRODUTO.PERCENTUALDESCONTO
"ListofProducts"."ItemDiscountValue": 100
Fixo 0
"ListofProducts"."OperationType": "02"
Tipo de operação, campo TIPOPEDIDO.CODIGOERP
OBS: Caso o tipo de pedido do item for nulo, é enviado o do cabeçalho.
Protocolo HTTP REST
Modelo de autenticação: Básica Usuário/Senha
|
Inicialmente quando utilziado a API nativa, o usuario da integração deve possuir acesso a estrutura da API dentro do DATASUL, para isso o cliente precisa realziar a seguinte configuração:
Acessar a tela do cadastro de permissão de usuário, CD0821 e realizar o cadastro do usuario que faz a chamada da API.
Outro erro que pode ser apresentado é de "data do faturamento maior que a data do próximo faturamento" é em relação a tua série, la no FT0114, usado para visualizar a data do próximo faturamento, para funcionamento, pode ser removido o parâmetro "controle próximo faturamento" e deixar o campo em branco pra série e estab que esta sendo usado.
Erro
O seguinte erro é apresentado caso as telas acima não estejam de acordo com as liberações.
{
"detailedMessage": "Usuário integrador não tem permissão para executar esse programa.\n",
"code": "852",
"details": [
{
"detailedMessage": "A data de emissão da nota fiscal informada é maior que a data do próximo faturamento da série/estabelecimento.\n",
"code": "5173",
"message": "Data do faturamento maior que data do próximo faturamento",
"type": "error"
},
{
"detailedMessage": "",
"code": "17006",
"message": "Ocorreu algum erro técnico durante a simulação dos impostos. Favor avaliar o log do Appserver Progress.",
"type": "error"
}
],
"message": "Usuário integrador não Cadastrado no Banco Comercial",
"type": "error"
}
Quando as liberações estão corretas o calculo de imposto é possivel, conforme imagem abaixo:
Retorno da Simulação | Campo do SFA |
---|---|
itemimposto.impostos.sglimposto | pedidoimposto.idimposto |
itemimposto.impostos.valorbase | pedidoimposto.valorbasecalculoreducao |
itemimposto.impostos.aliquota | pedidoimposto.valorbasecalculo |
itemimposto.impostos.valortotalimposto | pedidoimposto.valorimposto |
itemimposto.ordem / itemimposto.idproduto | pedidoimposto.idpedidoproduto (procurar por pedidoproduto.ordem e pedidoproduto.idproduto respectivamente) |
itemimposto.valortotalfrete | pedidoproduto.valorfrete |
itemimposto.valortotalcomimpostos | pedidoproduto.valortotalcomimposto |
Abaixo está o escopo do cálculo de imposto do Datasul.
A integração recebe a solicitação da aplicação via Carte, busca, processa e retorna para a mesma.
Abaixo estão exemplos via POSTMAN:
Na URL para o Datasul, o formato será o seguinte:
POST {{URL}/api/ftp/v2/ItemTaxSimulationPublic
Substitua a variável URL pelo caminho da API, informado pelo cliente.
Exemplo:
Na aba de autorização, é selecionado o tipo Basic e informado os dados de usuário e senha:
No header da requisição, informaado o tipo do conteúdo:
Content-Type: application/json
No corpo da mensagem, substituido os dados da ordem de venda nas tags correspondentes.
Exemplo:
Corpo de uma mensagem de exemplo:
{
"SalesType": "N",
"CustomerId": "000001",
"CustomerUnit": "01",
"CustomerIdDelivery": "000001",
"CustomerUnitDelivery": "01",
"CustomerType": "F",
"Payment": "001",
"DiscountPercentage1": 10,
"DiscountPercentage2": 0,
"DiscountPercentage3": 0,
"DiscountPercentage4": 0,
"Currency": 1,
"Freight": 10,
"Insurance": 0,
"Expense": 0,
"ListofProducts": [
{
"ItemId": "01",
"ProductId": "3395979",
"Quantity": 10,
"UnitaryValue": 100,
"TotalValue": 1000,
"ItemDiscountPercentage": 10,
"ItemDiscountValue": 100,
"OperationType": "02"
}
]
}
O sistema disponibiliza o plugin de nome "TOTVS Pagamento instantâneo", onde o usuário terá a possibilidade de gerenciar o pagamento feito pela modalidade PIX.
Sendo assim, quando o Plugin estiver ativo e as configurações realizadas corretamente, ao finalizar um pedido utilizando o Tipo de Cobrança configurado para o Pagamento instantâneo, já será gerado em tela um QRCode que permitirá o usuário realizar o pagamento.
Após o pagamento, a aplicação vai consultar o plugin e exibir em tela que o Pagamento por PIX foi realizado, gerando o pedido com status Finalizado.
Na tela de Plugins de integração acessado em Configuração > Integração, o sistema disponibiliza um card de nome "TOTVS Pagamento Instantâneo" para ativar o recurso.
Ao clicar no botão "Configurar", é aberto a Tela de configurações do TOTVS Pagamento instantâneo. Informe cada campo conforme a configuração detalhada a seguir:
Configuração do TPI | |
---|---|
Tenant | Informe a URL em que a API do TOTVS Pagamento Instantâneo (TPI) estará sendo servida (Ex: https://produtosfa.rac.staging.totvs.app) |
Usuário | Informe o Usuário da autenticação básica do TPI |
Senha | Informe a senha da autenticação básica do TPI |
Client ID | Informe o identificador do sistema solicitante da requisição |
Client secret | Informe a senha do sistema solicitante da requisição |
Carteira | Informe o código da carteira digital. Para o pix, terá o identificador "pix" |
Business unit ID | Informe o identificador da unidade de negócio geradora de transações de pagamento |
POS ID | Informe o identificador do ponto de venda cadastrado |
Configuração do SFA | |
---|---|
Tipos de cobrança | Selecione os Tipos de cobrança que serão utilizados para disparar a requisição da transação de pagamento. |
Timeout ao gerar transação | Campo que determina a quantidade de segundos que o sistema aguardará o retorno da criação da transação |
Timeout consulta pagamento | Campo que determina quantos segundos o sistema irá aguardar para a consulta de pagamento. |
Após essa configuração, o Plugin já está passível de utilização na Aplicação.
É importante que o usuário realize a configuração de e-mail para envio do QRCode, assim o cliente do Pedido poderá receber as informações do processo de pagamento por PIX por e-mail disparado pelo próprio Totvs CRM SFA através da conta de e-mail configurada na ferramenta.
Nos tópicos a seguir, é detalhar como será o comportamento para cada modelo.
Estas configurações são acessadas somente por usuários administradores e deve estar localizada em: Configuração > Email > Configuração de envio.
Campo que permite selecionar o contexto “Plugin TOTVS Pagamento instantâneo”. Este contexto permitirá que seja configurado um envio de e-mail que tem relação com o processo de pagamento com pix.
O contexto “Plugin TOTVS Pagamento instantâneo ” somente será apresentado quando a configuração do plugin TOTVS Pagamento Instantâneo também estiver ativo (pluginintegracao.idnativo = 1)
Campo que permite selecionar o registro chamado “Envio de QR Code PIX - sob demanda”. O propósito desta configuração é enviar o link de pagamento gerado pela TOTVS Pagamento instantâneo conforme a solicitação do usuário responsável pelo pedido. Ou seja, é necessário que o usuário acione o botão de enviar na tela de QR Code para que essa configuração seja executada. E com isso a aplicação encaminha um e-mail ao(s) destinatário(s) conforme as configurações informadas.
Campo que permita anexar um modelo de relatório nos e-mails enviados. Podendo ser o espelho do pedido, ou um resumo do pedido entre outras possibilidades de relatório no formato PRPT.
Campo que permite definir quem receberá o e-mail:
É possível também selecionar o campo check-box de "Exibir tela de confirmação/edição de e-mail" com label de "Permitir editar e-mails de contexto na tela de confirmação de e-mail".
Será adicionado este campo que deve permitir configurar um assunto padrão de envio nos e-mails que tratam deste processo de pagamento com cartão de crédito. Também será possível adicionar uma TAG dentro deste assunto, que irá fazer com que a aplicação troque a TAG do assunto pelo número do pedido referente ao processo de pagamento de cartão de crédito. Desta forma, o cliente quando receber o e-mail, já irá conseguir ver através do assunto qual a numeração que se trata.
Neste campo é possível configurar um corpo do e-mail personalizado para este tipo de situação. Onde o usuário cria um template de e-mail para que fique alinhado com o cliente e dar mais credibilidade ao processo. A seguir um protótipo de como ficará essa parte da configuração:
Neste campo é exibido as tags:
Após a configuração realizada nos pontos acima, o Pedido de venda já estará pronto para realizar o processo gerando essa forma de pagamento em QRCode.
Assim, ao confeccionar um pedido de venda no SFA, contanto que o campo "Tipo de cobrança" do cabeçalho do pedido esteja vinculado com o plugin de integração "TOTVS Pagamento Instantâneo", o sistema irá disparar a seguinte lógica de funcionamento;
Ao finalizar um pedido, contato que não haja aprovações pendentes para o pedido, o sistema realiza a solicitação do QR code para pagamento junto à TOTVS Pagamento Instantâneo, respeitando o tempo do campo "Timeout ao gerar transação".
Quando a requisição for bem sucedida, o sistema exibe em tela o QR Code (pedidopagamento.imagem), juntamente com o código do "PIX copia e cola"(pedidopagamento.codigopagamento), armazenando a informação vinculado ao pedido de venda (processorTransactionId) (pedidopagamento.tokentransacao).
Caberá ao usuário vendedor compartilhar a informação para pagamento.
Por exemplo, ao finalizar o pedido normalmente:
Logo em seguida é exibido em tela o tempo de requisição do Plugin TOTVSPagamento Instantâneo para gerar o QRCode do pagamento:
Assim que o pagamento é gerado, é exibido em tela a as opções de leitura do QRCode, Cancelar o pagamento, Enviar via email e Finalizar o pagamento:
Quando o pagamento é realizado no tempo dentro do tempo determinado nas configurações, é exibido em tela a mensagem de "Pagamento aprovado":
O mesmo processo é realizado no Android, e ocorre da seguinte forma:
Se a configuração de envio de e-mail de contexto "Plugin TOTVS Pagamento Instantâneo" estiver ativa, o sistema exibirá botão "Enviar" com ícone de envelope, para enviar o QR Code por e-mail ao cliente.
Na web:
No Android:
Ao clicar no botão enviar, o sistema exibe os e-mails trazidos pelo contexto da configuração de e-mail, respeitando o que foi definido na flag "Não permitir editar e-mails de contexto na tela de confirmação de envio", porém também da a possibilidade de o usuário adicionar novos e-mails para receber o QR Code.
Dessa forma, ainda que o e-mail do cadastro não esteja correto, o usuário tem a oportunidade de colocar o e-mail correto para recebimento do QR Code. Nestes casos que o envio do QR Code é realizado por e-mail, o sistema seguirá realizando a consulta de pagamento de 10 em 10 segundos no servidor, até que obtenha um resultado diferente de PENDENTE do servidor de pagamentos da TPI.
E assim como no exemplo anterior, o servidor responde que o pagamento está aprovado, o sistema exibe a mensagem de "Pagamento aprovado. Pedido finalizado com sucesso." Dessa forma, o pedido será finalizado e o status de pagamento (pedidopagamento.idtiposituacaopagamento, onde sgltiposituacaopagamento="APR") será atualizado para APROVADO.
Nos casos de alguma inconsistência no processo, é sempre alertado ao usuário em tela sobre o procedimento, por exemplo:
Caso a geração do QR Code não seja bem sucedida, por qualquer que seja o motivo, o sistema exibe a mensagem:
Caso o servidor responda que o pagamento está expirado ou cancelado, o sistema irá exibe a mensagem de "Pagamento expirado/cancelado. Finalize o pedido novamente para gerar um novo pagamento". Dessa forma, o pedido não será finalizado, e o status de pagamento é atualizado para o código de retorno (cancelado (sgl CAN)/expirado (sgl EXP)).
O sistema respeita o tempo máximo de consulta de status de pagamento, segundo o parâmetro "Timeout consulta pagamento". Quando o tempo de requisição de pagamento ultrapassar o tempo definido no campo de timeout, o usuário será notificado: "Pedido finalizado com sucesso! Entretanto, o pagamento precisa ser aprovado para que o pedido seja devidamente encaminhado para faturamento". Dessa forma, o pedido é finalizado e o status de pagamento permanecerá como PENDENTE.
Caso a resposta não seja bem sucedida, por qualquer motivo o sistema notificado o usuário.
Como visto no exemplo anterior, o sistema também disponibiliza o botão "Cancelar", que, ao clicado, exibe uma mensagem de confirmação para o usuário: "A ação irá cancelar o QR Code, que não poderá mais ser pago. Deseja prosseguir?" Sim/não.
Se sim, é disparado uma requisição de cancelamento do QR Code para o servidor do TPI.
Caso a resposta seja bem sucedida, o sistema irá notificar o usuário: "Pagamento cancelado com sucesso. Finalize o pedido novamente para gerar um novo pagamento". Dessa forma, o pedido não será finalizado, e o status de pagamento deverá ser atualizado para cancelado(sgl CAN).
Caso a resposta não seja bem sucedida, o sistema deverá notificar o usuário: "Pagamento não pode ser cancelado. Tente novamente mais tarde ou entre em contato com o suporte técnico"
Como visto no exemplo anterior, o sistema também disponibiliza o botão "Finalizar", que, ao clicado, notifica o usuário: "Pedido finalizado com ressalva! O pedido precisa ter seu pagamento aprovado para ser encaminhado para faturamento. Você será notificado automaticamente das atualizações, porém pode consultar instantaneamente o status do pagamento pela tela de pagamentos do pedido". Dessa forma, o pedido será finalizado e o status de pagamento permanecerá como PENDENTE (sgl PEND).
Após a finalização do pedido, o sistema disponibiliza ícone de "Status de pagamento" na listagem de pedidos, e também no "Roda teto" do pedido, exibindo o status do último registro de pagamento vinculado ao pedido.
Os status possíveis são:
Ao clicar no ícone de "Pagamentos" relacionado ao pedido, o sistema exibe tela a seguir:
Também exibido na aplicação Mobile. No Android, a consulta dos registros será online, para garantir que os dados sempre estejam atualizados. Caso não seja possível realizar a conexão online, o sistema deverá mostrar a data de atualização como a data da ultima sincronização.
Os campos de informações disponíveis no card, são:
Ícone que, ao clicado, exibe tela conforme o protótipo a seguir, exibindo o conteúdo textual da tabela de observações de pagamento, para acompanhamento do histórico.
Ícone que, ao clicado, consultará no banco para retornar a imagem e conteúdo do QR code para pagamento. Nessa tela, as opções de "Cancelar" e "Cobrar depois" não serão exibidas, somente a função "Enviar e-mail". O timer de consulta de pagamento também não será disparado.
Caso a resposta não seja bem sucedida, por qualquer motivo o sistema deverá notificar o usuário: "Pagamento não pôde ser criado no servidor do {nome do plugin}, cuja resposta foi: ${resposta da requisição}. ". Caso não houver mensagem de retorno, o sistema deverá exibir: "Pagamento não pôde ser criado no servidor do {nome do plugin}. Tente novamente mais tarde ou entre em contato com o suporte técnico"
Ícone que, ao clicado, fará uma requisição ao servidor do TPI para retornar o status atual do pagamento.
Caso o servidor responda que o pagamento está aprovado, o sistema irá exibir mensagem toast de "Pagamento aprovado" Dessa forma, o status do pagamento será atualizado para APROVADO.
Caso o servidor responda que o pagamento está expirado, o sistema irá exibir mensagem toast de "Pagamento expirado" Dessa forma, o status do pagamento será atualizado para EXPIRADO.
Caso o servidor responda que o pagamento está cancelado, o sistema irá exibir mensagem toast de "Pagamento cancelado" Dessa forma, o status do pagamento será atualizado para CANCELADO.
Caso o servidor responda que o pagamento está reembolsado, o sistema irá exibir mensagem toast de "Pagamento reembolsado" Dessa forma, o status do pagamento será atualizado para REEMBOLSADO.
Caso o servidor responda que o pagamento está pendente, o sistema irá exibir a mensagem toast de "Pagamento pendente"
Caso a resposta não seja bem sucedida, por qualquer motivo, o sistema deverá notificar o usuário: "Pagamento não pôde ser consultado no servidor do {nome do plugin}, cuja resposta foi: ${resposta da requisição}.". Caso não houver mensagem de retorno, o sistema deverá exibir: "Pagamento não pôde ser consultado no servidor do {nome do plugin}. Tente novamente mais tarde ou entre em contato com o suporte técnico"
Ícone que, ao clicado, deverá exibir mensagem de confirmação para o usuário: "A ação irá cancelar o QR Code, que não poderá mais ser pago. Deseja prosseguir?" Sim/não. Se sim, fará uma requisição ao servidor do TPI para cancelar o pagamento
Caso a resposta seja bem sucedida, o sistema deverá exibir mensagem toast: "Pagamento cancelado". Dessa forma, o status de pagamento deverá ser atualizado para CANCELADO.
Caso a resposta não seja bem sucedida, o sistema deverá notificar o usuário: "Pagamento não pode ser cancelado no servidor do {nome do plugin}, cuja resposta foi: ${resposta da requisição}. ". Caso não houver mensagem de retorno, o sistema deverá exibir: "Pagamento não pôde ser criado no servidor do {nome do plugin}. Tente novamente mais tarde ou entre em contato com o suporte técnico"
É exibido sempre que não houver a presença de nenhum pagamento com status APROVADO ou PENDENTE, para pedidos de origem Web/Android, sem numeropedidoerp, de status PENDENTE.
Esse botão, quando clicado, fará a criação de nova transação junto à TPI, e exibir o conteúdo do QR code, em tela semelhante ao resultado do ícone "Exibir QR code"
Ao finalizar um pedido com tipos de cobrança vinculados com o plugin de integração TPI, em que o mesmo seja encaminhado para aprovação, qualquer que seja, o sistema não realiza a criação do pagamento. Ao invés, informa o usuário com a seguinte mensagem: "A geração do pagamento do pedido deverá ser gerada após a aprovação do pedido, para que seja devidamente encaminhado para faturamento."
Nesse cenário, o pedido passa pelo fluxo de aprovação padrão, onde os usuários determinarão a situação das aprovações do pedido. Um pedido é declarado totalmente aprovado quando apenas possui aprovações vinculadas nos status de APROVADO ou CANCELADO.
Na notificação que é gerada pela aplicação quando o pedido é aprovado, o sistema deve consultar se o plugin "TOTVS Pagamento instantâneo" está ativo e o pedido está vinculado com um dos tipos de cobrança configurados no plugin. Se positivo, o sistema deverá adicionar a mensagem "Será necessário gerar um pagamento para o pedido X através da tela de "Pagamentos do pedido""
Após aprovação do pedido, é então exibido o ícone de Pendente para pagamentos e ao gerenciar pela tela de Pagamentos, será disponibilizado o botão "Novo pagamento" para que seja gerado um novo QrCode.
Desta forma o pagamento vai ser gerado também para pedidos que passam pelo fluxo de Aprovação
A presente documentação apenas define que os tokens de pagamento serão armazenados em banco de dados do SFA, vinculados com os pedidos de venda.
A integração de dados de pagamento com o ERP deverá ocorrer sob demanda, de maneira configurável ou customizada, mediante identificação dos campos de destino pelo cliente que utiliza o plugin de integração.
Após a consulta do QR code, o sistema realiza a consulta de pagamento de 10 em 10 segundos no servidor, até que obtenha um resultado diferente de PENDENTE do servidor de pagamentos da TPI.
pending: pendente de aprovação
approved: aprovado pagamento
expired: expirado o QR Code por prazo (padrão 1h)
refunded: estornado o valor para o consumidor final, após realizado o pagamento do QR Code
cancelled: pedido cancelado pelo operador, sem realizar o pagamento
Caso o servidor responda que o pagamento está aprovado, o sistema irá exibir mensagem de "Pagamento aprovado. Pedido finalizado com sucesso.". Dessa forma, o pedido será finalizado e o status de pagamento (pedidopagamento.idtiposituacaopagamento, onde sgltiposituacaopagamento="APR") será atualizado para APROVADO.
Caso o servidor responda que o pagamento está expirado ou cancelado, o sistema irá exibir a mensagem de "Pagamento expirado/cancelado. Finalize o pedido novamente para gerar um novo pagamento". Dessa forma, o pedido não será finalizado, e o status de pagamento deverá ser atualizado para o código de retorno (cancelado (sgl CAN)/expirado (sgl EXP)).
O sistema deverá respeitar o tempo máximo de consulta de status de pagamento, segundo o parâmetro "Timeout consulta pagamento". Quando o tempo de requisição de pagamento ultrapassar o tempo definido no campo de timeout, o usuário será notificado: "Pedido finalizado com sucesso! Entretanto, o pagamento precisa ser aprovado para que o pedido seja devidamente encaminhado para faturamento". Dessa forma, o pedido será finalizado e o status de pagamento permanecerá como PENDENTE.
Caso a resposta não seja bem sucedida, por qualquer motivo o sistema deverá notificar o usuário: "Pagamento não pôde ser criado no servidor do {nome do plugin}, cuja resposta foi: ${resposta da requisição}." Caso não houver mensagem, o sistema deverá exibir: "Pagamento não pôde ser consultado no servidor do {nome do plugin}."
Após a mensagem, o sistema deverá:
O sistema exibirá o botão "Cancelar", que, ao clicado, deverá exibir mensagem de confirmação para o usuário: "A ação irá cancelar o QR Code, que não poderá mais ser pago. Deseja prosseguir?" Sim/não. Se sim, disparar uma requisição de cancelamento do QR Code para o servidor do TPI.
cancelled: pedido cancelado pelo operador, sem realizar o pagamento
Caso a resposta seja bem sucedida, o sistema deverá notificar o usuário: "Pagamento cancelado com sucesso. Finalize o pedido novamente para gerar um novo pagamento". Dessa forma, o pedido não será finalizado, e o status de pagamento deverá ser atualizado para cancelado(sgl CAN).
Caso a resposta não seja bem sucedida, o sistema deverá notificar o usuário: "Pagamento não pode ser cancelado no servidor do {nome do plugin}, cuja resposta foi: ${resposta da requisição}.". Caso não houver mensagem de retorno, o sistema deverá exibir: "Pagamento não pode ser cancelado no servidor do {nome do plugin}. Tente novamente mais tarde ou entre em contato com o suporte técnico"
O sistema exibirá o botão "Finalizar", que, ao clicado, deverá notificar o usuário: "Pedido finalizado com ressalva! O pedido precisa ter seu pagamento aprovado para ser encaminhado para faturamento. Você será notificado automaticamente das atualizações, porém pode consultar instantaneamente o status do pagamento pela tela de pagamentos do pedido". Dessa forma, o pedido será finalizado e o status de pagamento permanecerá como PENDENTE (sgl PEND).
Para evitar que pedidos fiquem travados no fluxo de integração com o ERP por falta de consulta do usuário, mesmo tendo sido pagos, o serviço de integração deverá consultar, com frequência definida baseado no recurso infra estrutural do servidor, os status dos pagamentos de transações com status de PENDENTE, para que, ao aprovado, o sistema possa atualizar os status dos pagamentos de maneira ativa, e quando o fizer, notificar o usuário, via notificação PUSH, que o pagamento do pedido foi aprovado/cancelado/expirado.
Portanto, o sistema de integração deve consultar os pagamentos que estão com status pendente de pagamento através da consulta a seguir:
|
Com os tokens retornados, o sistema de integração deverá consultar na api da transformação COMMONS_Bloco_TPIGETSTATUS, e verificar qual é o status atualizado do pagamento a partir do retorno "status".
Com o status do pagamento em memória, o sistema de integração deverá atualizar a coluna pedidopagamento.idstiposituacaopagamento, conforme o seguinte de-para:
Status do retorno |
sgltiposituacaopagamento |
---|---|
pending | PEND |
approved | APR |
expired | EXP |
refunded | REEMB |
cancelled | CAN |
Se houve alteração de status, o sistema de integração deverá inserir novo registro na tabela observacaopagamento, segundo o seguinte de-para:
PARA |
DE |
---|---|
PARA |
DE |
idobservacaopagamento | nextval('seqpkobservacaopagamento') |
observacao | "O status do pagamento foi atualizado para ${retorno.status > tiposituacaopagamento.descricao}" |
idpedidopagamento | CONSULTA_PAGAMENTOS_PENDENTES.tokentransacao |
idtiposituacaopagamento | retorno.status > tiposituacaopagamento.idtiposituacaopagamento |
idusuario | lookup para tabela usuario where login = 'admin' |
datahora | current_timestamp |
Para que não exista risco de um pedido já pago permaneça no android sem ser sincronizado, o sistema disponibiliza função de "Sincronização instantânea" via função de "envio de dados" da Sincronização para processos online como o processo de geração de pagamento.
O envio de dados acontecerá de maneira síncrona nos gatilhos abaixo, enviando apenas os dados (DATS) de pedido e suas dependências.
A sincronização instantânea será realizada nas etapas de:
Dessa forma, o pedido devidamente pago, seja atualizado pela integração, de maneira, agendada, ou seja atualizado instantaneamente, via consulta de pagamentos, fará com que o pedido esteja em condições de ser exportado na próxima execução da integração.
Caso o plugin de integração da TPI estiver ativo, a integração padrão deverá aguardar o envio do pedido pedido para o ERP segundo as restrições a seguir:
OBS: Anteriormente, no Android, pedidos que haviam sido finalizados ainda continuavam editáveis até a sincronização. Agora, esses pedidos que já foram transmitidos ao servidor não serão mais editáveis, como acontece na Web, por exemplo.
O sistema disponibiliza a opção de trabalhar de maneira híbrida (online/offline) para os pedidos gerados no Aplicativo Meu SFA, armazenando dados dos pedidos já finalizados.
Ou seja, caso haja conexão com a internet, os pedidos serão enviadas para o servidor automaticamente assim que sejam finalizados.
Para atingir esse comportamento, o sistema possui os seguintes parâmetros gerais:
Desta forma, quando os parâmetros estiverem ativos e o usuário finalizar o pedido no Mobile, já mostra a sincronização automática e é exibido uma mensagem em toast indicando que o pedido foi Finalizado e Sincronizado,
Exemplo de comportamento quando o pedido é gravado e sincronizado automaticamente:
Assim que o pedido é finalizado e sincronizado vai para o servidor e fica disponível para consulta na web. Sendo então disponibilizado em tempo real.
Lembrando que no caso do profissional estiver sem acesso a internet, é exibido um aviso para que o mesmo faça a sincronização manual assim que a internet estiver disponível.
E em seguida, ele poderá fazer a sincronização manual, como anteriormente.
O sistema disponibiliza a possibilidade de utilizar tabelas de preço nos itens do pedido, funcionalidade cujo a qual proporciona uma maior flexibilidade de preços ao incluir produtos no pedido de venda.
Para habilitar a visualização do campo de tabela de preço nos itens do pedido acesse:
Configuração > Configuração pedido > Produto
Campos | Descrição |
---|---|
WEB_GRID_TABELAPRECO | Determina se o campo de tabela de preço será exibido na grid de produtos do pedido (Carrinho) . |
WEB_PESQUISA_TABELAPRECO | Determina se o campo de tabela de preço será exibido na consulta de produtos do pedido. |
ANDROID_CARD_TABELAPRECO | Determina se o campo de tabela de preço será exibido na nos cards da aba Produto do Android. |
ANDROID_CARRINHO_TABELAPRECO | Determina se o campo de tabela de preço será exibido na nos cards da aba Carrinho do Android. |
ANDROID_NEGOCIACAO_TABELAPRECO | Determina se o campo de tabela de preço será exibido na tela de negociação do Android. |
A configuração de busca desse campo pode ser realizada no menu:
Configuração > Configuração pedido > Busca produto > Entidade: PEDIDOPRODUTO_TABELAPRECO
Obs.: Quando utilizada esta funcionalidade de tabela de preço nos itens do pedido, para que a busca de preços ocorra normalmente também é necessário adicionar o filtro PEDIDOPRODUTO_TABELAPRECO_IDTABELAPRECO na entidade TABELAPRECOPRODUTO da busca de produtos.
Com os campos devidamente habilitados e configurados, no lançamento de pedido será exibido o campo de tabela de preço nos produtos:
Este campo é do tipo Combobox e permite que o usuário altere a tabela de preço diretamente nos itens.
Por padrão, a tabela de preço do cabeçalho virá selecionada também nos itens.
Ao alterar a tabela de preço no item. o preço do produto será atualizado conforme a configuração da tabela selecionada.
contexto | nomeentidade | label | idnativo | idnvisivel | idneditavel | idneditavelcomitens | idnobrigatorio | idnunion | ordem | codigoerp | idnexiberelatorio | sglordenacao |
---|---|---|---|---|---|---|---|---|---|---|---|---|
PRODUTO | PEDIDOPRODUTO_TABELAPRECO | standard.pedidoconfig.campo.lbl.tabelapreco | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
chave | label | idnativo | codigoerp | idparametrosuperior |
---|---|---|---|---|
EXIBIR_PRODUTOS_COM_PRECOS_EM_OUTRAS_TABELAS | 0 |
chave | label | linha | coluna | idnvisivel | idneditavel | codigoerp | idnexiberelatorio | idnobrigatorio | idwsconfigpedprodsup |
---|---|---|---|---|---|---|---|---|---|
WEB_GRID_TABELAPRECO | standard.pedidoconfig.item.tabelapreco | 0 | 0 | 0 | 0 | 0 | 0 | ||
WEB_PESQUISA_TABELAPRECO | standard.pedidoconfig.filtro.item.tabelapreco | 0 | 0 | 0 | 0 | 0 | 0 | ||
ANDROID_CARD_TABELAPRECO | standard.pedidoconfig.item.tabelapreco | 0 | 0 | 0 | 0 | 0 | 0 | ||
ANDROID_CARRINHO_TABELAPRECO | standard.pedidoconfig.item.tabelapreco | 0 | 0 | 0 | 0 | 0 | 0 | ||
ANDROID_NEGOCIACAO_TABELAPRECO | standard.pedidoconfig.item.tabelapreco | 0 | 0 | 0 | 0 | 0 | 0 |
idnativo | descricao | codigo | imagem | consulta | sglcontexto | codigoerp | idnfixo | mapacomparador |
---|---|---|---|---|---|---|---|---|
0 | O produto possui preço em outras tabelas de preço | PRODUTO_POSSUI_PRECO_OUTRAS_TABELAS | PRODUTO | 1 |
Na tela disponível em Configuração > Configuração pedido > Busca produto:
Na tela disponível em Configuração > Configuração pedido > Produto:
WEB_GRID_TABELAPRECO |
WEB_PESQUISA_TABELAPRECO |
ANDROID_CARD_TABELAPRECO |
ANDROID_CARRINHO_TABELAPRECO |
ANDROID_NEGOCIACAO_TABELAPRECO |
Na tela disponível em Configuração > Configuração pedido > Geral:
Na tela disponível em Cadastro > Geral > Ícone:
O sistema possibilita validar o estoque ao incluir o item no carrinho como também ao gravar ou finalização o pedido.
A configuração é realizada nos parâmetros do pedido Configuração > Configuração Pedido > Geral.
No parâmetro principal HABILITAR_VALIDACAO_ESTOQUE é aberto a raiz de parâmetros de gatilhos que definem o comportamento da validação do estoque.
Campo | |
---|---|
HABILITAR_VALIDACAO_ESTOQUE |
|
VALEST_GATILHO_ALTERACAO_CARRINHO |
|
VALEST_GATILHO_GRAVAR |
|
VALEST_GATILHO_FINALIZAR | |
VALEST_LOGICA_BLOQUEIA_SALDO_NEGATIVO | |
VALEST_LOGICA_BLOQUEIA_SALDO_POSITIVO |
Sendo assim é configurado pelo usuário, uma combinação de parâmetros que define o comportamento do saldo de estoque dos produtos no carrinho.
Configuração de pedido |
Combinação de parâmetros |
Ativo |
---|---|---|
Com estoque | HABILITAR_EXIBICAO_PRODUTOS_COM_ESTOQUE | Sim |
VALEST_LOGICA_BLOQUEIA_SALDO_NEGATIVO | Sim | |
VALEST_GATILHO_FINALIZAR | Sim |
Para que a venda sea possível concluir, deverá ser utilizado no campo "Config. pedido" a opção "Com estoque". Assim ao incluir o item no carrinho como no quadro a seguir, o saldo ficará positivo e permitirá finalizar o pedido:
Produto |
Estoque disponível |
Qtde no carrinho |
---|---|---|
Z146J310000045 - GRAMA SINTETICA 10MM NACIONAL 1,5X2,00M - 9PCS INBOX | 10 | 2 |
Neste exemplo, o saldo ficará positivo, e o produto ainda possui um estoque positivo de 8 unidades, sendo assim o pedido será gravado ou finalizado corretamente. Mas se o usuário utilizar uma venda com quantidade maior que o estoque disponível, será exibido um alerta em tela e não será possível concluir a venda.
Configuração de pedido |
Combinação de parâmetros |
Ativo |
---|---|---|
Sem estoque | HABILITAR_EXIBICAO_PRODUTOS_SEM_ESTOQUE | Sim |
HABILITAR_EXIBICAO_PRODUTOS_COM_ESTOQUE | Sim | |
VALEST_LOGICA_BLOQUEIA_SALDO_POSITIVO | Sim | |
VALEST_GATILHO_FINALIZAR | Sim |
Para que a venda seja possível concluir, deverá ser utilizado no campo "Config. pedido" a opção "Sem estoque". Assim ao incluir o item no carrinho como no quadro a seguir, o saldo ficará negativo e permitirá finalizar o pedido:
Produto |
Estoque disponível |
Qtde no carrinho |
---|---|---|
Z146J310000045 - GRAMA SINTETICA 10MM NACIONAL 1,5X2,00M - 9PCS INBOX | 10 | 14 |
Porém se nestas condições o usuário tentar utilizar o item com saldo positivo, como no quadro a seguir:
Produto |
Estoque disponível |
Qtde no carrinho |
---|---|---|
Z146J310000045 - GRAMA SINTETICA 10MM NACIONAL 1,5X2,00M - 9PCS INBOX | 10 | 8 |
Neste exemplo, o saldo ficará positivo, e o produto ainda possui um estoque positivo de 2 unidades, como a venda está sendo feita com a opção "Sem estoque" no campo "Config. pedido", deve ser validado na finalização do pedido, impedindo a finalização, pois o produto ainda possui um saldo positivo, e para isso deve se usar no campo "Config. pedido" a opção "Com estoque".
Descrição: Dispara a lógica dos parâmetros VALEST_LOGICA_BLOQUEIA_SALDO_NEGATIVO e VALEST_LOGICA_BLOQUEIA_SALDO_POSITIVO, na alteração de produtos no carrinho
A funcionalidade controle de embalagem do TOTVS CRM | SFA permite que o sistema seja capaz de exibir, tratar e persistir dados a respeito de embalagem de produtos no pedido de venda.
Quando utilizado, o campo embalagem é editável e são exibidas as embalagens vinculadas ao produto e à filial selecionada no pedido, ou seja, um mesmo produto pode ser adquirido através de embalagens diferentes.
O campo embalagem é exibido apenas quando o sistema vende por embalagens, assim os parâmetros para este fluxo devem estar configurados para este tipo de venda.
Como exemplo, um produto sendo comercializado por embalagem, como "Refrigerante", pode ser comercializado por Unidade, ou pode ser comercializado por Fardo contendo 12 unidades. A relação entre as unidades e quantidades é estabelecida pelo "fator embalagem".
Quando o sistema trabalha por embalagem, algumas funcionalidades como campanhas de desconto, políticas de desconto, campanhas de brinde, regras de preço fixo priorizarão os registros em que o campo de embalagem esteja preenchido.
Os preços de venda poderão ser alterados em função da embalagem, através do fator de preço. Por exemplo, se o fator de preço da embalagem Fardo for 0,90, significa que o preço unitário receberá um desconto de 10%.
Através das configurações da embalagem será possível realizar validações, mostrar valores e preenchimento automático com a embalagem que possuir menor fator de quantidade.
Os dados de embalagem serão exibidos no carrinho quando inserido produto ao carrinho. Quando inserido será selecionado automático a embalagem do produto aplicando o filtro configurado.
A embalagem possui relação com a quantidade, pois com o preenchimento da embalagem do produto será possível determinar a quantidade de produtos. No carrinho será exibido o campo de “Qt. Embalagem” que será a multiplicação da quantidade informada com o fator da quantidade do produto.
Nas configurações de embalagem poderá definir qual campo será exibido tanto no ambiente Android como no ambiente Web como:
Quando realizado a alteração nos campos de Embalagem, Qt. Embalagem e Quantidade o sistema deverá atualizar as informações desses campos automaticamente aplicando os valores correspondentes aos dados cadastrados no produto e na embalagem do produto.
Para utilização da venda por embalagem, o parâmetro sim3g.pedido.embalagem.utilizavendaporembalagem deve estar ativo
Ativar no produto a validação de produto embalagem
E escolher exibir o campo no carrinho, em Configuração > Configuração Pedido > Produto:
O sistema deverá exibir a unidade de medida vinculada ao produto. No campo unidade de medida vai permitir a visualização das informações da embalagem, preferencialmente quando o sistema utilizar embalagem.
Caso não utilizar embalagem no sistema, será trazido a unidade de medida vinculada ao produto.
O campo será exibido no interior do card no ambiente Android e na grid de produtos no ambiente Web.
Quando o sistema estiver configurada para venda por embalagens, o usuário pode editar no Cadastro do produto a opção "Permite fracionada"
Assim, quando ativo, irá permitir que o usuário informe a quantidade de embalagens com casas decimais e o cálculo será feito automaticamente para que seja vendido apenas frações de embalagem do item
Porém quando a quantidade fracionada estiver desmarcado, o sistema permite informar a quantidade do item fracionado porém a quantidade de embalagem aceita somente números inteiros.
O sistema de pedidos de venda possui o recurso "Fator de Embalagem". Isso permite visualizar, de maneira clara, quantos itens individuais estão contidos em uma embalagem selecionada para um produto específico.
Assim como o campo "Preço de tabela", não será editável e servirá apenas para visualização. Os campos idneditavel e idnobrigatorio não serão implementados no pedido de venda e devem mostrar "-" na configuração dos campos do produto.
Quando o campo "Embalagem" do produto for alterado, este campo também deve ser atualizado. O novo "Fator de embalagem" deve ser levado em consideração no "Preço tabela embalagem".
Com a nova funcionalidade "Fator de Embalagem" implementada no sistema, embaixo de cada produto no pedido, o cliente pode ver claramente quantas unidades estão contidas em uma embalagem selecionada. Isso trouxe transparência ao processo de pedido, reduziu o número de erros e aumentou a confiança dos clientes na distribuidora. Os clientes, agora, podem fazer pedidos com maior precisão, sabendo exatamente quantas unidades estão solicitando.
Mais detalhes deste processo no Link
O "Fator de Embalagem" é um aditivo recente ao TOTVS SFA, proporcionando aos usuários uma visualização imediata da relação entre produto e embalagem. Disponível tanto na interface Web quanto na aplicação Android, esse recurso simplifica e esclarece o processo de pedidos.
Permite aos usuários visualizar o "Fator de Embalagem" diretamente na grade de produtos na interface web.
Com a funcionalidade "Fator de Embalagem" implementada no sistema, agora, embaixo de cada produto no pedido, o cliente pode ver claramente quantas unidades estão contidas em uma embalagem selecionada. Isso trouxe transparência ao processo de pedido, reduziu o número de erros e aumentou a confiança dos clientes na distribuidora. Os clientes, agora, podem fazer pedidos com maior precisão, sabendo exatamente quantas unidades estão solicitando.
Mais detalhes deste processo no Link