<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css"
/>
<link
href="https://fonts.googleapis.com/icon?family=Material+Icons"
rel="stylesheet"
/>
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css"
/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
<!-- Inclua o estilo do tema Monokai -->
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/monokai.min.css"/>
<style>
/* ==============================
= CONFIGURAÇÕES GERAIS =
=============================== */
* {
font-family: "Roboto", sans-serif;
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
margin: 0;
padding: 0;
}
a {
color: #42526e;
text-decoration: none;
-webkit-tap-highlight-color: transparent;
}
a:hover {
color: white;
}
li { font-size: 13px !important;
}
h3 { font-size: 13px !important;
font-weight: bold;
}
h2 { font-size: 15px !important;
font-weight: bold;
}
/* ==============================
= ESTILOS DE TÍTULOS =
=============================== */
#title-text {
display: none !important;
}
.wiki-content h1,
.wiki-content h2 {
font-family: "Roboto", sans-serif !important;
}
.wiki-content h1 {
font-size: 16px !important;
}
.wiki-content h2 {
font-size: 14px !important;
color: #42526e !important;
border-bottom: 2px solid #dfe1e5;
padding-bottom: 5px;
font-weight: bold;
}
.custom-heading,
h3.custom-h3 {
font-size: 16px;
color: #42526e;
margin-bottom: 20px;
}
.custom-h1 {
color: #feac0e;
}
.explanation h2 {
font-weight: bold;
}
/* ==============================
= ESTILOS DE TEXTO =
=============================== */
.wiki-content p {
font-size: 14px !important;
}
.justificado,
.custom-justified {
text-align: justify;
margin: 10px 0;
}
/* ==============================
= ESTILOS DE LINKS =
=============================== */
.wiki-content a,
.wiki-content a:link,
.wiki-content a:visited,
.wiki-content a:focus,
.wiki-content a:active {
text-decoration: none;
color: #42526e;
font-size: 14px;
}
.wiki-content a:hover {
color: white;
}
/* ==============================
= ESTILOS DE CONTAINER =
=============================== */
.container2 {
display: flex;
gap: 20px;
padding: 10px;
}
.custom-content {
background-color: #f5f5f5;
padding: 20px;
border-radius: 8px;
margin: 0 10px;
max-width: 100%;
overflow: hidden;
}
.faq-container {
max-width: 800px;
margin: 0 auto;
padding: 20px;
}
/* ==============================
= ESTILOS DE CARDS =
=============================== */
.card {
border: 2px solid #9aa1ad;
padding: 20px;
flex-grow: 1;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
border-radius: 8px;
background-color: #f4f5f7;
color: #42526e;
overflow-x: hidden;
}
.card:first-child {
flex: 4;
}
.card:last-child {
flex: 6;
}
/* ==============================
= ESTILOS DE TABS =
=============================== */
.tabs {
background-color: #dfe1e5;
}
.tabs .tab a {
color: rgb(66, 82, 110);
}
.tabs .tab a:hover,
.tabs .tab a.active,
.tabs .tab a:focus.active {
color: #1094b8;
background-color: transparent;
}
.tabs .tab a:focus {
background-color: rgba(82, 200, 232, 0.25);
}
.tabs .tab.disabled a,
.tabs .tab.disabled a:hover {
color: rgba(16, 148, 184, 0.24);
}
.tabs .indicator {
background-color: #1094b8;
}
.tab-content {
display: grid;
grid-template-columns: 70% 30%;
gap: 0;
padding: 10px;
}
.tab-content pre {
max-width: 100%;
overflow-x: hidden;
}
/* ==============================
= ESTILOS DE ÍCONES =
=============================== */
.icon-list,
.icon {
padding-left: 0;
list-style-type: none;
}
.icon {
display: inline-block;
width: 24px;
vertical-align: middle;
margin-right: 45px;
position: relative;
left: -25px;
}
.item .label i {
margin-right: 10px;
}
/* ==============================
= ESTILOS DE COMPONENTES =
=============================== */
.collapsible,
.collapsible-header,
.collapsible-body {
box-shadow: none !important;
}
.faq-question {
font-weight: bold;
margin-bottom: 5px;
}
.faq-answer {
margin-bottom: 20px;
}
.custom-list {
padding-left: 0;
margin-left: 1.5em;
}
.custom-list li {
position: relative;
padding-left: 1em;
}
ul.custom-list {
padding-left: 10px;
}
ul.custom-list li {
position: relative;
list-style-type: disc;
padding-left: 30px;
margin-bottom: 10px;
}
.item {
display: flex;
align-items: center;
padding: 10px;
border-bottom: 1px solid #eee;
}
.item:last-child {
border-bottom: none;
}
.item .label {
flex: 1;
font-weight: bold;
}
.item .value {
flex: 1;
text-align: right;
}
.item {
border-bottom: 1px solid #e0e0e0;
padding: 10px 0;
display: flex;
justify-content: space-between;
align-items: center;
}
.item:last-child {
border-bottom: none;
}
/* Estilos para o label */
.label {
font-weight: bold;
display: flex;
align-items: center;
}
.item .label i {
margin-right: 10px; /* Adiciona espaço depois dos ícones */
}
/* ==============================
= ESTILOS DE IMAGENS =
=============================== */
.imagem-responsiva {
max-width: 100%;
height: auto;
}
.custom-header-bg img {
width: 100%;
height: auto;
display: block;
}
/* ==============================
= ESTILOS DE VÍDEO =
=============================== */
#youtube-video-container iframe {
width: 100%;
height: auto;
display: block;
}
.video-container {
max-width: 800px;
margin: 0 auto;
}
.ytp-cued-thumbnail-overlay-image {
background-size: cover;
background-position: center;
width: 100%;
height: 100%;
position: absolute;
}
/* ==============================
= OUTROS ESTILOS PERSONALIZADOS =
=============================== */
.custom-content {
background-color: #f5f5f5;
padding: 20px;
border-radius: 8px;
margin: 0 10px;
max-width: 100%;
overflow: hidden;
}
.custom-heading {
font-size: 16px;
color: #42526e;
margin: 10px 0;
border-bottom: 2px solid #e0e0e0;
padding-bottom: 5px;
font-weight: bold;
}
#indice {
border-radius: 5px;
padding: 20px;
max-width: 100%;
overflow: hidden;
}
#indice h2 {
text-align: center;
margin-bottom: 16px;
}
#indice ul {
list-style-type: none;
padding-left: 0;
}
#indice li {
padding: 10px;
border-bottom: 1px solid #eee;
cursor: pointer;
transition: background-color 0.1s ease;
}
#indice li:last-child {
border-bottom: none;
}
#indice li:hover {
background-color: #1094b8;
color: white;
}
/* ==============================
= ESTILOS DE TABELAS =
============================== */
.custom-grey {
background-color: #ffffff;
}
.custom-grey th,
.custom-grey td {
border: 1px solid #42526e;
padding: 10px;
}
.custom-grey th {
color: #fff;
background-color: #42526e;
}
.custom-grey tr:nth-child(odd) {
background-color: #e4e4e6;
}
.custom-grey tr:nth-child(even) {
background-color: #dfdfdf;
}
/* ========== FIM DO ESTILO ========= */
</style>
<div class="container2">
<!-- Primeiro Card -->
<div class="card">
<div class="item">
<span class="label">
<i class="fas fa-tags"></i>
<div>Produto:</div>
</span>
<div>Automação da Força de Vendas</div>
</div>
<div class="item">
<span class="label">
<i class="fas fa-link"></i>
<div>Linha de Produto:</div>
</span>
<div>TOTVS CRM</div>
</div>
<div class="item">
<span class="label">
<i class="fas fa-chart-pie"></i>
<div>Segmento:</div>
</span>
<div>Cross Segmentos</div>
</div>
<div class="item">
<span class="label">
<i class="fas fa-desktop"></i>
<div>Módulo:</div>
</span>
<div>Venda</div>
</div>
<div class="item">
<span class="label">
<i class="fas fa-globe"></i>
<div>Aplicação:</div>
</span>
<div>Web/app móvel</div>
</div>
<div class="item">
<span class="label">
<i class="fas fa-hashtag"></i>
<div>Identificador:</div>
</span>
<div>15272362</div>
</div>
</div>
<!-- Segundo Card -->
<div class="card">
<div class="explanation">
<h2 class="custom-heading">
<i class="fa-solid fa-eye"></i>    VISÃO GERAL
</h2>
<p class="justificado">
O TOTVS CRM - SFA agora oferece uma visão aprimorada das entradas de estoque
futuras por produto, incluindo datas de reposição e quantidades previstas.
Esse recurso eleva o nível das decisões de venda, permitindo que sejam
baseadas não apenas no estoque atual, mas também no que está a caminho. Ao
vender com base em futuras reposições, o sistema ajusta automaticamente a
data de faturamento conforme a data de chegada do produto, garantindo
eficiência e precisão na gestão de vendas.
</p>
</div>
<div class="explanation"></div>
<h2 class="custom-heading">
<i class="fa-solid fa-rocket"></i>    OBJETIVO
</h2>
<p class="justificado">
Visa ampliar a visibilidade sobre as entradas futuras de estoque, permitindo
vendas mais informadas que consideram tanto o estoque atual quanto o que
será reposto em breve.
</p>
</div>
</div>
</div>
<div class="container2">
<!-- ... (seu conteúdo existente) ... -->
<!-- Tabs e conteúdo das guias -->
<div class="card">
<ul class="tabs">
<li class="tab col s4"><a href="#tab1">DETALHES FUNCIONAIS</a></li>
<li class="tab col s4"><a href="#tab2">DETALHES TÉCNICOS</a></li>
<li class="tab col s4"><a href="#tab3">FAQ</a></li>
</ul>
<!-- Tab Content -->
<div id="tab1" class="col s12">
<div class="tab-content">
<div style="background-color: #f5f5f5#f4f5f7; padding: 20px; margin-left: 10px50px; margin-right: 10px50px;">
<section id="section1" style="margin-top: 40px;">
<!-- Tab 70 conteúdo -->
<h2 class="custom-heading">
<i class="fa-solid fa-book"></i>   ANTES DE COMEÇAR
</h2>
<h3>Requisitos</h3>
<p>Para utilizar o recurso, certifique-se de estar usando a versão padrão da solução.</p>
</section>
<section id="section2" style="margin-top: 40px;">
<h2 class="custom-heading"><i class="fa-solid fa-star"></i>  DETALHES FUNCIONAIS</h2>
<h3>Funções </h3>
<ol>
<li>
<p>
<b>Visualização de Entradas Futuras:</b> A funcionalidade
permite uma visão proativa do estoque, indicando entradas futuras para
cada produto, incluindo datas de reposição e quantidades.
</p>
</li>
<li>
<p>
<b>Atualização de Data de Faturamento:</b> Com base no estoque e
nas entradas previstas, o sistema ajusta automaticamente a data de
faturamento, alinhando-a com a disponibilidade do produto.
</p>
</li>
<li>
<p>
<b>Validação de Estoque:</b> Existe a opção de ativar uma
validação que impede vendas que excedam a quantidade total prevista para
entrega, garantindo vendas dentro dos limites de estoque projetados.
</p>
</li>
<li>
<p>
<b>Resumo de Carrinho:</b> A visualização consolidada no
carrinho de compras oferece uma visão geral da quantidade total prevista
para entrega de produtos selecionados, proporcionando clareza e
previsibilidade durante a finalização da compra.
</p>
</li>
</ol>
</section>
<section id="section3" style="margin-top: 40px;">
<h2 class="custom-heading"><i class="fa-solid fa-shoe-prints"></i>  COMO USAR?</h2>
<h3> Passo a Passo</h3>
<h3>1. Acesse a Funcionalidade Pedidos:</h3>
<p>Na lista de produtos, observe a coluna "Categorias".</p>
<h3>2. Visualize Detalhes da Ordem de Produção:</h3>
<ul class="browser-default">
<li>Procure pelo ícone de prancheta verde na coluna "Categorias".</li>
<li>Clique neste ícone.</li>
<li>Uma janela pop-up se abrirá com detalhes, como número do pedido, data de emissão, previsão de entrega, filial, armazém, código e quantidade em estoque.</li>
</ul>
<h3>3. Confira o Estoque e a Quantidade Prevista:</h3>
<ul class="browser-default">
<li>Com o produto selecionado, visualize a quantidade atual em estoque.</li>
<li>A "Quantidade Prevista" indicará o total do estoque atual mais a quantidade a caminho.</li>
</ul>
<h3>4. Acompanhe a Previsão de Faturamento:</h3>
<ul class="browser-default">
<li>Selecione a opção "Previsão de Faturamento".</li>
<li>Visualize quando o produto poderá ser faturado, com base no estoque disponível.</li>
</ul> <br>
<img src="https://totvscrm.com/wp-content/uploads/2023/08/estoqueprev_2.gif" alt="Minha Imagem" class="imagem-responsiva">
</section>
<section id="section4" style="margin-top: 40px;">
<h2 class="custom-heading"><i class="fa-solid fa-signs-post"></i>  EXEMPLO PRÁTICO</h2>
<h3>Caso de uso</h3>
<p>
<b>Cenário:</b> João é representante de vendas em uma empresa no ramo de
manufatura. Seu principal instrumento de trabalho é o TOTVS CRM - SFA, onde
ele gerencia e emite pedidos para os seus clientes.
</p> <br>
<p>
<b>Desafio Antigo:</b> Sempre que um cliente questionava sobre a data de
entrega de um produto específico, João tinha que acessar o ERP da empresa para
verificar os detalhes da ordem de produção. Após coletar as informações, ele
retornava ao SFA para continuar e finalizar o pedido. Esse método de alternar
entre os sistemas não só era ineficiente, mas também abria margem para erros e
incoerências nas informações passadas aos clientes.
</p><br>
<p>
<b>Solução Atualizada:</b> Agora, com a integração no TOTVS CRM - SFA, João
pode acessar diretamente a funcionalidade de Pedidos e, na lista de produtos,
clica no ícone de prancheta na coluna "Categorias". Uma janela pop-up surge
com todos os detalhes das ordens de produção, integradas diretamente do ERP.
Esta solução otimizou o processo, tornando-o mais rápido e preciso, melhorando
assim o atendimento ao cliente e a gestão das vendas.
</p>
</section>
</div>
<!-- Tab 7030 conteúdofim -->
<div style="background-color: #dfe1e5; padding: 20px">
<!-- Tab 30 conteúdofim -->
<div id="indice">
</div>
<h2><i class="fa-solid fa-address-book"></i> NESTE ARTIGO<</h2>div>
<div id="tab2" <ul>class="col s12">
<div class="tab-content">
<li data-target="section1">ANTES DE COMEÇAR</li>
<div style="background-color: #f4f5f7; padding: 20px; margin-left: 50px; margin-right: 50px;">
<section <li data-target="section2">DETALHES FUNCIONAIS</li>id="section5" style="margin-top: 40px;">
<!-- Primeira coluna do conteúdo da <liguia 2 data-target="section3">COMO USAR?</li>-->
<li data-target="section4">EXEMPLO PRÁTICO</li>
</ul>
<br>
<h2><i <h2 class="custom-heading"><i class="fa-solid fa-videogear"></i>  DETALHES VIDEOS<TÉCNICOS</h2>
<br>
<div class="video-container">
<div id="player"></div>
</div>
<b>1. INTEGRAÇÃO - IMPORTAÇÃO DE ORDENS DE PRODUÇÃO</b>
<!-- ... (fim conteudo video) ... -->
<ol>
</div>
<div id="indice<ul class="browser-default">
<li>Importe
os registros da tabela [SC2] do ERP para [ORDEMPRODUCAO].</li>
<h2><i class="fa-solid fa-link"></i> LINKS ÚTEIS</h2>
<li>
<ul>
Garanta que apenas ordens de produção válidas <li><a(C2_DATRF href="https://produtos.totvs.com/produto/totvs-crm/automacao-da-forca-de-vendas/" class="link-item">PORTAL DE PRODUTOS</a></li>
= '') sejam
importadas.
<li><a href="https://informa.totvs.com/" class="link-item">TOTVS INFORMA</a></li>
</li>
<li><a href="https://centraldeatendimento.totvs.com/hc/pt-br/community/topics" class="link-item">CENTRAL COLABORATIVA</a></li>
<li>
</ul>
</div>
Ordens com datafimordem anterior à data atual devem ser atualizadas para
<!-- Tab 30IDNATIVO=0 fim -->
ou excluídas.
</li></ul>
<!-- Tab 30 fim --></ol> <br>
<h3>Busca Padrão para ORDEM_PRODUCAO no PedidoEngine</h3>
</div>
</div><p>
</div>
<div id="tab2" class="col s12">
<div class="tab-content">Para garantir que as ordens de compra sejam exibidas na tela do
<div style="background-color: #f5f5f5; padding: 40px; margin-left: 10px; margin-right: 10px;">
pedido, é crucial definir uma configuração padrão que busque as informações
<section id="section5" style="margin-top: 40px;">
corretas com base nos critérios especificados. Veja abaixo a <!-- Primeira coluna do conteúdo da guia 2 -->
sugestão de
configuração padrão:
<h2 class="custom-heading"><i class="fa-solid fa-gear"></i>  DETALHES TÉCNICOS</h2>
</p> <br>
<br>
<ol>
<b>1. INTEGRAÇÃO - IMPORTAÇÃO DE ORDENS DE<li>Acesse PRODUÇÃO<<b>CONFIGURAÇÃO</b>.</li>
<ol>
<li>Selecione <b>CONFIGURAÇÃO PEDIDO</b>.</li>
<ul class="browser-default">
<li>Navegue até <b>BUSCA PRODUTO</b>.</li>
<li>Importe os registros da tabela [SC2] do ERP para [ORDEMPRODUCAO]. <li>Localize a configuração <b>ORDEM_PRODUCAO</b> e <b>[TIPOESTOQUE]</b>;</li>
</ol> <li>
<br>
Garanta que apenas ordens de produção válidas (C2_DATRF<div class= '') sejam"responsive-table"> <table class="striped custom-grey">
<thead>
importadas.
</li><tr>
<li>
<th></th>
Ordens com datafimordem anterior à data atual devem ser<th>TOTVS atualizadasCRM paraSFA</th>
IDNATIVO=0 ou excluídas.<th>PROTHEUS</th>
</li></ul>
<th>Tipo TOTVS CRM SFA</th>
</ol> <br>
<h3>Busca Padrão para ORDEM_PRODUCAO no PedidoEngine</h3> <th>Obrigatório</th>
<p>
</tr>
Para garantir que</thead>
as ordens de compra sejam exibidas na tela do
<tbody>
pedido, é crucial definir uma configuração<tr>
padrão que busque as informações
corretas com<td>1</td>
base nos critérios especificados. Veja abaixo a sugestão de
<td>IDLOCALFILIAL</td>
configuração padrão:
</p> <br>
<td>C2_FILIAL</td>
<ol>
<td>INTEIRO</td>
<li>Acesse <b>CONFIGURAÇÃO</b>.</li>
<li>Selecione <b>CONFIGURAÇÃO PEDIDO</b>.</li><td>SIM</td>
<li>Navegue até <b>BUSCA PRODUTO</b>.</li>tr>
<li>Localize a configuração <b>ORDEM_PRODUCAO</b> e <b>[TIPOESTOQUE]</b>;</li>
<tr>
</ol>
<td>2</td>
<br>
<div class="responsive-table"> <table class="striped custom-grey">
<td>NUMEROPEDIDO</td>
<thead>
<td>C2_NUM</td>
<tr><td>VARCHAR</td>
<th><<td>SIM</th>
td>
</tr>
<th>TOTVS CRM SFA</th><tr>
<th>PROTHEUS<<td>3</th>td>
<th>Tipo TOTVS CRM SFA</th><td>IDPRODUTO</td>
<th>Obrigatório<<td>C2_PRODUTO</th>td>
</tr>
<td>INTEIRO</td>
<<td>SIM</thead>td>
<tbody> </tr>
<tr>
<td>1<<td>4</td>
<td>IDLOCALFILIAL<<td>QUANTIDADE</td>
<td>C2_FILIAL<QUANT</td>
<td>INTEIRO<<td>NUMERIC</td>
<td>SIM</td>
</tr>
<tr>
<td>2<<td>5</td>
<td>NUMEROPEDIDO<<td>DATAINICIOORDEM</td>
<td>C2_NUM<EMISSAO</td>
<td>VARCHAR<<td>DATE</td>
<td>SIM</td>
</tr>
<tr>
<td>3<<td>6</td>
<td>IDPRODUTO<<td>DATAFIMORDEM</td>
<td>C2_PRODUTO<DATPRF</td>
<td>INTEIRO<<td>DATE</td>
<td>SIM</td>
</tr>
<tr>
<td>4<<td>7</td>
<td>QUANTIDADE<<td>IDNATIVO</td>
<td>FIXO <td>C2_QUANT<1</td>
<td>NUMERIC<<td>INTEIRO</td>
<td>SIM</td>
</tr>
<tr>
<td>5<<td>8</td>
<td>DATAINICIOORDEM<<td>IDTIPOESTOQUE</td>
<td>C2_EMISSAO<LOCAL</td>
<td>DATE<<td>INTEIRO</td>
<td>SIM</td>
</tr>
</tbody>
<tr>
</table> </div>
<td>6</td><br>
<b>Opções de Filtro Direto <td>DATAFIMORDEM</td>e Níveis:</b>
<ol>
<td>C2_DATPRF</td>
<li>ORDEMPRODUCAO.IDPRODUTO</li>
<td>DATE<<li>ORDEMPRODUCAO.IDTIPOESTOQUE</td>li>
<td>SIM</td><li>ORDEMPRODUCAO.IDLOCALFILIAL</li>
</tr><li>TIPOESTOQUE.SGLTIPOESTOQUE</li>
<tr><li>TIPOESTOQUE.IDNATIVO</li>
<li>TIPOESTOQUE.IDNDISPONIVELPARAPEDIDO</li>
<td>7</td>
</ol> <br>
<td>IDNATIVO</td>
<div class="row">
<td>FIXO 1</td>
<!-- Observação 1 -->
<td>INTEIRO</td>
<div class="col s12">
<td>SIM</td>
<div class="card-panel" style="background-color: #f4f9fd; border: 1px solid #cdd6e5; box-shadow: none;">
</tr>
<i class="fa fa-info-circle <tr>blue-text" aria-hidden="true"></i>
<span class="black-text" <td>8</td>style="margin-left: 10px;">
<td>IDTIPOESTOQUE</td>
Independentemente das configurações feitas no PedidoEngine, o filtro <b>o.datafimordem >= CURRENT_DATE and o.idnativo=1</b> será sempre aplicado nas buscas.
<td>C2_LOCAL</td>
</span>
<td>INTEIRO</td>
<td>SIM</td>
</div>
</tr>div>
</tbody>
</table> </div>
<!-- Observação <br>
2 -->
<b>Opções de Filtro Direto e Níveis:</b><div class="col s12">
<ol>
<div class="card-panel" style="background-color: #fdf3e2; border: 1px solid #fadfb0; <li>ORDEMPRODUCAO.IDPRODUTO</li>box-shadow: none;">
<li>ORDEMPRODUCAO.IDTIPOESTOQUE</li>
<i class="fa fa-exclamation-triangle amber-text" aria-hidden="true"></i>
<li>ORDEMPRODUCAO.IDLOCALFILIAL</li>
<span <li>TIPOESTOQUE.SGLTIPOESTOQUE</li>class="black-text" style="margin-left: 10px;">
<li>TIPOESTOQUE.IDNATIVO</li>
Caso não haja uma configuração específica feita no <li>TIPOESTOQUE.IDNDISPONIVELPARAPEDIDO</li>
<b>PedidoEngine</b>, a busca padrão a seguir deverá ser aplicada.
</ol> <br>
</span>
<div class="row"> </div>
<!-- Observação 1 -->
/div>
</div>
<div<pre><code class="col s12language-sql">
SELECT o.numeropedido <div class="card-panel" style="background-color: #f4f9fd; border: 1px solid #cdd6e5; box-shadow: none;">
as Pedido,
l.descricao AS Filial,
<i class="fa fa-info-circle blue-text" aria-hidden="true"></i> tp.descricao as "Tipo Estoque"
p.codigo, AS Codigo,
<span class="black-text" style="margin-left: 10px;">
quantidade AS Quantidade,
Independentemente das configurações datainicioordem feitasAS no"Data PedidoEngineemissao",
o filtro <b>o.datafimordem >= CURRENT_DATE and o.idnativo=1</b> será sempre aplicado nas buscas.
datafimordem AS "Data prevista entrega"
FROM ordemproducao </span>o
INNER JOIN produto </div>p
</div> ON p.idproduto = o.idproduto
INNER JOIN local l
<!-- Observação 2 --> ON l.idlocal = o.idlocalfilial
<div class="col s12"> INNER JOIN tipoestoque tp
<div class="card-panel" style="background-color: #fdf3e2; border: 1px solid #fadfb0; box-shadow: none;">ON tp.idtipoestoque = o.idtipoestoque
WHERE o.idproduto in (select idproduto <i class="fa fa-exclamation-triangle amber-text" aria-hidden="true"></i>
from tabelapecoproduto where
<span class="black-text" style="margin-left: 10px;">
idtabelapreco=tabela_preco_do_cabecalho)
and o.datafimordem >= CURRENT_DATE
Caso não haja uma configuração específica feita no <b>PedidoEngine</b>, a busca padrão a seguir deverá ser aplicada.
and o.idnativo=1;
</span>code>
</div>pre>
</div>
<b>2. CONFIGURAÇÃO DE ÍCONE </div>FIXO</b> <br>
<pre><code class="language-sql">
<b>Comportamento:</b>
<ul>
SELECT o.numeropedido as Pedido,
<li>
l.descricao AS Filial,
Utilize a opção 18 no módulo Tools para incorporar uma tp.descricao as "Tipo Estoque"nova configuração de
p.codigo, AS Codigo, ícone na tabela [ICONE].
quantidade AS Quantidade,
</li>
</ul>
datainicioordem AS "Data emissao",
<br>
datafimordem AS "Data prevista entrega"
<div class="responsive-table"> <table FROM ordemproducao oclass="striped custom-grey">
INNER<thead>
JOIN produto p
ON p.idproduto = o.idproduto
<tr>
INNER JOIN local l
ON l.idlocal = o.idlocalfilial <th>MasterSALES</th>
INNER JOIN tipoestoque tp<th></th>
ON tp.idtipoestoque = o.idtipoestoque<th>Obrigatório</th>
WHERE o.idproduto in (select idproduto from tabelapecoproduto where </tr>
</thead>
idtabelapreco=tabela_preco_do_cabecalho)
<tbody>
and o.datafimordem >= CURRENT_DATE
<tr>
and o.idnativo=1;
<<td>DESCRIÇÃO</code>td>
</pre>
<td>Consulta Ordens de produção ativas no ERP</td>
<b>2. CONFIGURAÇÃO DE ÍCONE FIXO</b> <br>
<td>SIM</td>
<b>Comportamento:</b>
</tr>
<ul>
<li>
<tr>
Utilize a opção 18 no módulo Tools para incorporar uma<td>CÓDIGO</td>
nova configuração de
ícone na tabela [ICONE]. <td>ORDEM_PRODUCAO</td>
</li>
<td>SIM</td>
</ul>
<br>
</tr>
<tr>
<div class="responsive-table"> <table class="striped custom-grey"> <td>IMAGEM</td>
<thead>
<td> <img src="https://totvscrm.com/wp-content/uploads/2023/08/iconesfa.png" alt="Ícone" style="width: 3dvh; height: auto;"></td>
<tr>
<td>SIM</td>
<th>MasterSALES<</th>tr>
<tr>
<th></th>
<td>SGLCONTEXTO</td>
<th>Obrigatório</th>
<<td>PRODUTO</tr>td>
</thead>
<td>SIM</td>
<tbody></tr>
<tr>
<td>DESCRIÇÃO<<td>IDNATIVO</td>
<td>Consulta Ordens de produção ativas no ERP<<td>0</td>
<td>SIM</td>
</tr>
<tr>
<td>CÓDIGO<<td>IDNFIXO</td>
<td>ORDEM_PRODUCAO<<td>1</td>
<td>SIM</td>
</tr>
<tr></tbody>
</table> </div>
<td>IMAGEM</td>
<br>
<td> <img src="https://totvscrm.com/wp-content/uploads/2023/08/iconesfa.png" alt="Ícone" style="width: 3dvh; height: auto;"></td>
<ul class="browser-default">
<li>
<p>
<td>SIM</td>
Acrescente a coluna <b>"Ícone Fixo?"</tr>
b> na tela de cadastro de ícones, que
<tr>
estará vinculada ao campo <b>[ICONE.IDNFIXO]</b>.
<td>SGLCONTEXTO< </td>p>
</li>
<td>PRODUTO</td>
<li>
<p>
<td>SIM</td>
Caso <b>[ICONE.IDNFIXO]</b> tenha o valor 1, permita a </tr>
edição apenas da coluna
<tr>
<b>"DESCRICAO"</b>. Os outros campos devem permanecer não editáveis.
<td>IDNATIVO<</td>p>
</li>
<td>0<</td>ul>
<h3>3. <td>SIM</td>EXIBIÇÃO NA COLUNA CATEGORIA</h3>
<b>Comportamento:</b>
</tr>
<ul class="browser-default">
<tr><li>
<p>
<td>IDNFIXO</td>
Ao iniciar a criação de um pedido, o sistema deve verificar se o <td>1</td>ícone
<b>ORDEM_PRODUCAO</b> está habilitado na tabela <td>SIM<<b>ICONE</td>b>.
</tr>p>
</tbody>li>
</table> </div> <li>
<p>Caso este ícone esteja <b>ATIVO</b>:</p>
<br>
<ul class="browser-default">
<li>
<li>
<p>
Utilizando as configurações de busca detalhadas no Acrescente a colunatópico <b>"ÍconeBusca Fixo?"</b> na tela de cadastro de ícones, que
Padrão", um novo
ícone deve ser estaráexibido vinculadana ao campo <b>[ICONE.IDNFIXO]</b>.coluna <b>CATEGORIA</b> na tela de
</p>
pesquisa de produtos. Isso deve ser refletido tanto no </li>
grid de produtos
<li>
da interface WEB quanto na interface <p>mobile.
</li>
Caso <b>[ICONE.IDNFIXO]</b> tenha o valor 1, permita a edição apenas da coluna
<li>Este ícone representará as ordens de <b>"DESCRICAO"</b>. Os outros campos devem permanecer não editáveis.compra ativas.</li>
</p>ul>
</li>
</ul>
<h3>3. EXIBIÇÃO NA<br>
COLUNA CATEGORIA</h3>
<b>Comportamento:</b>
<ul class="browser-default<img src="https://totvscrm.com/wp-content/uploads/2023/08/consulta_produtos.png" alt="Minha Imagem" class="imagem-responsiva">
<li>
<img src="https://totvscrm.com/wp-content/uploads/2023/08/grid_produtos.png" alt="Minha Imagem" class="imagem-responsiva">
<img <p>
src="https://totvscrm.com/wp-content/uploads/2023/08/card_produtos.png" alt="Minha Imagem" class="imagem-responsiva">
<br> <br>
<li>
Ao iniciar a criação de um pedido, o<p>Quando sistemaeste deveícone verificarfor seclicado o íconepelo usuário:</p>
<ul class="browser-default">
<b>ORDEM_PRODUCAO</b> está habilitado na tabela <b>ICONE</b>.
<li>
</p>
Uma janela pop-up deve </li>
ser aberta, apresentando a lista de ordens de
<li>
compra ativas no momento.
<p>Caso este ícone esteja <b>ATIVO</b>:</p>
</li>
<ul class="browser-default">
</ul>
<li></li>
</ul>
<img Utilizando as configurações de busca detalhadas no tópico "Busca Padrão", um novosrc="https://totvscrm.com/wp-content/uploads/2023/08/nova_lista_ordens.png" alt="Minha Imagem" class="imagem-responsiva">
<h1>4. EXIBIÇÃO NO GRID/CARRINHO</h1>
ícone deve ser exibido na coluna <b>CATEGORIA</b> na tela de <h3>Comportamento:</h3>
<ul class="browser-default">
pesquisa de produtos. Isso deve ser refletido tanto<li>No no grid de produtos
da interface WEB e nas respectivas telas do aplicativo mobile (Card, Carrinho e Negociação), deve ser exibido um dacampo para interfacemostrar WEBa quanto"Quantidade naPrevista" interfacedos mobileprodutos.</li>
<li>Esta "Quantidade Prevista" corresponde </li>
ao total acumulado das quantidades nas ordens de compra associadas ao produto que foi adicionado <li>Este ícone representará as ordens de compra ativasao carrinho.</li>
<li>A lógica </ul>
para </li>
<br>
<img src="https://totvscrm.com/wp-content/uploads/2023/08/consulta_produtos.png" alt="Minha Imagem" class="imagem-responsiva">
<img src="https://totvscrm.com/wp-content/uploads/2023/08/grid_produtos.png" alt="Minha Imagem" class="imagem-responsiva">
<img src="https://totvscrm.com/wp-content/uploads/2023/08/card_produtos.png" alt="Minha Imagem" class="imagem-responsiva">
<br> <br>
<li>
<p>Quando este ícone for clicado pelo usuário:</p>
<ul class="browser-default">
<li>
Uma janela pop-up deve ser aberta, apresentando a lista de ordens de
compra ativas no momento.
</li>
</ul>
</li>
</ul>
<img src="https://totvscrm.com/wp-content/uploads/2023/08/nova_lista_ordens.png" alt="Minha Imagem" class="imagem-responsiva">
<h1>4. EXIBIÇÃO NO GRID/CARRINHO</h1>
<h3>Comportamento:</h3>
<ul class="browser-default">
<li>No grid de produtos da interface WEB e nas respectivas telas do aplicativo mobile (Card, Carrinho e Negociação), deve ser exibido um campo para mostrar a "Quantidade Prevista" dos produtos.</li>
<li>Esta "Quantidade Prevista" corresponde ao total acumulado das quantidades nas ordens de compra associadas ao produto que foi adicionado ao carrinho.</li>
<li>A lógica para obter esta quantidade total se baseia na configuração de busca descrita no tópico acima.</li>
<li>O filtro de busca, que consiste na condição <b>(datafimordem >= CURRENT_DATE AND idnativo=1)</b>, é uma constante e não deve ser alterado, independente de qualquer configuração em <code>pedidoengine</code>.</li>
<li>Na eventualidade de não existir uma configuração de busca, pode-se recorrer à seguinte consulta para obter a 'Quantidade Prevista':</li>
</ul> <br>
<pre><code class="language-sql">
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 ;
</code>
</pre>
<p>Os campos que irão exibir estas quantidades nas diferentes interfaces são:</p> <br>
<ul class="browser-default">
<li><b>WEB_GRID_QUANTIDADE_PREVISTA_ENTRADA</b></li>
<li><b>ANDROID_CARD_QUANTIDADE_PREVISTA_ENTRADA</b></li>
<li><b>ANDROID_CARRINHO_QUANTIDADE_PREVISTA_ENTRADA</b></li>
<li><b>ANDROID_NEGOCIACAO_QUANTIDADE_PREVISTA_ENTRADA</b></li>
</ul>
<h3>VALIDAÇÃO PARÂMETRO</h3>
<br>
<ul class="browser-default">
<li>Se o parâmetro <code>HABILITAR_VALIDACAO_ESTOQUE = ATIVO</code>, prosseguir com a seguinte verificação:
<ul class="browser-default">
<li>Validar se o parâmetro <code>sim3g.pedido.qtde.prevista.idnValidaQtdePrevista = ATIVO</code>.</li>
<li>Se ambos os parâmetros forem ativos, calcular a <strong>QUANTIDADE TOTAL DISPONÍVEL</strong> (considerando ESTOQUE ATUAL + QUANTIDADE PREVISTA).</li>
</ul>
</li>
<li>A <strong>QUANTIDADE PREVISTA</strong> é calculada a partir das ordens de produção definidas obter esta quantidade total se baseia na configuração de busca do produto > ORDEM_PRODUCAO.</li>
</ul>
<br>
<pre><code class="language-sql">
SELECT e.idproduto,
e.quantidade
+ (SELECT Sum(quantidade)
descrita no tópico acima.</li>
FROM<li>O filtro de ordemproducaobusca, o
que consiste na condição <b>(datafimordem WHERE>= o.idproduto = e.idprodutoCURRENT_DATE AND idnativo=1)</b>, é uma constante e não deve ser alterado, independente de qualquer configuração em <code>pedidoengine</code>.</li>
AND<li>Na o.idlocalfilialeventualidade = e.idlocalfilial
AND o.idtipoestoque = e.idtipoestoquede não existir uma configuração de busca, pode-se recorrer à seguinte consulta para obter a 'Quantidade Prevista':</li>
</ul> <br>
AND o.idnativo
= 1
<pre><code class="language-sql">
AND o.datafimordem >= CURRENT_DATE) AS quantidade_disponívelSELECT idproduto,
FROM estoque e
WHERE e.idproduto = :produto_no_carrinho Sum(quantidade) AS "quantidade prevista"
AND e.idlocalfilial = :filial_cabecalhoFROM ordemproducao o
AND e.idtipoestoqueWHERE idproduto= :tipoproduto_estoque_itemno_carrinho;
</code> </pre>
<ul class="browser-default">
AND idlocalfilial = :filial_do_pedido
<li>ApósAND validardatafimordem os parâmetros e determinar a quantidade total disponível, essa será a referência para validar o estoque, ou seja:>= CURRENT_DATE
AND idnativo=1
GROUP BY idproduto ;
<ul class="browser-default"> </code>
</pre>
<p>Os campos que irão exibir estas quantidades nas diferentes interfaces são:</p> <br>
<li>Se <strong>QUANTIDADE VENDIDA</strong> for maior que a <strong>QUANTIDADE TOTAL DISPONÍVEL</strong>, a venda desse produto será bloqueada.<<ul class="browser-default">
<li><b>WEB_GRID_QUANTIDADE_PREVISTA_ENTRADA</b></li>
<li><b>ANDROID_CARD_QUANTIDADE_PREVISTA_ENTRADA</b></li>
</ul><li><b>ANDROID_CARRINHO_QUANTIDADE_PREVISTA_ENTRADA</b></li>
<li><b>ANDROID_NEGOCIACAO_QUANTIDADE_PREVISTA_ENTRADA</b></li>
</li>ul>
<h3>VALIDAÇÃO PARÂMETRO</h3>
<br>
<ul class="browser-default">
<li>Se <li>Caso o usuário tente inserir uma quantidade maior que a disponível, uma mensagem será exibidaparâmetro <code>HABILITAR_VALIDACAO_ESTOQUE = ATIVO</code>, prosseguir com a seguinte verificação:
<ul class="browser-default">
<blockquote>‘Quantidade não permitida, pois é superior à quantidade<li>Validar totalse disponível.o Quantidade total disponível (estoque + quantidade prevista = XXX)’</blockquote>
parâmetro <code>sim3g.pedido.qtde.prevista.idnValidaQtdePrevista = ATIVO</code>.</li>
<li>Se ambos os parâmetros </li>
</ul>
forem ativos, calcular a <strong>QUANTIDADE TOTAL DISPONÍVEL</strong> (considerando ESTOQUE ATUAL + QUANTIDADE PREVISTA).</li>
</ul>
<div class="note"> </li>
<li>A <strong>QUANTIDADE PREVISTA</strong> é calculada a partir das ordens Abaixo,de segueprodução odefinidas fluxogramana daconfiguração regra de validaçãobusca dedo estoque.produto (O fluxograma real deverá ser inserido aqui).
</div> <br>
> ORDEM_PRODUCAO.</li>
</ul>
<br>
<pre><code class="language-sql">
SELECT e.idproduto,
e.quantidade
+ (SELECT Sum(quantidade)
FROM ordemproducao o
<img src="https://totvscrm.com/wp-content/uploads/2023/08/qtd_total.png" alt="Minha Imagem" class="imagem-responsiva">
WHERE o.idproduto = e.idproduto
<h3>CRIAÇÃOAND DEo.idlocalfilial NOVO CAMPO NO BANCO</h3>
= e.idlocalfilial
AND <ulo.idtipoestoque class="browser-default">= e.idtipoestoque
AND <li>Modificação na tabela <b>ordemproducao</b> para adicionar uma nova coluna referente ao tipo de estoque.
</li>o.idnativo = 1
AND o.datafimordem >= CURRENT_DATE) AS quantidade_disponível
FROM estoque e
WHERE e.idproduto = :produto_no_carrinho
AND e.idlocalfilial </ul>= :filial_cabecalho
AND e.idtipoestoque = :tipo_estoque_item_carrinho;
</code> <pre><code</pre>
<ul class="languagebrowser-sqldefault">
ALTER TABLE ordemproducao
<li>Após validar os parâmetros e determinar a quantidade total disponível, essa será a referência ADDpara COLUMNvalidar idtipoestoqueo INT8estoque, REFERENCES tipoestoque (idtipoestoque);
ou seja:
</code> </pre>
</div>
<div style="background-color: #dfe1e5; padding: 20px<ul class="browser-default">
<!-- Tab 30 conteúdo -->
<li>Se <strong>QUANTIDADE VENDIDA</strong> for maior que a <strong>QUANTIDADE TOTAL DISPONÍVEL</strong>, a venda desse produto <div id="indice">será bloqueada.</li>
</ul>
<h2><i class="fa-solid fa-link"></i> LINKS ÚTEIS<</h2>li>
<li>Caso o <ul>
usuário tente inserir uma quantidade maior que a disponível, uma mensagem será exibida:
<li><a href="https://produtos.totvs.com/produto/totvs-crm/automacao-da-forca-de-vendas/" class="link-item">PORTAL DE PRODUTOS</a></li>
<blockquote>‘Quantidade não permitida, pois é superior à quantidade total disponível. Quantidade total disponível (estoque + quantidade <li><a href="https://informa.totvs.com/" class="link-item">TOTVS INFORMA</a></li>prevista = XXX)’</blockquote>
</li>
<li><a href="https://centraldeatendimento.totvs.com/hc/pt-br/community/topics" class="link-item">CENTRAL COLABORATIVA</a></li> </ul>
</ul>
<div class="note">
</div>
Abaixo, segue o fluxograma da regra de validação de estoque. (O fluxograma real deverá ser inserido aqui).
</div> <br>
<img src="https://totvscrm.com/wp-content/uploads/2023/08/qtd_total.png" alt="Minha Imagem" class="imagem-responsiva">
<h3>CRIAÇÃO DE NOVO CAMPO NO </div>
</div>BANCO</h3>
<div id="tab3" class="col s12">
<div<ul class="tabbrowser-contentdefault">
<div style="background-color: #f5f5f5; padding: 20px">
<li>Modificação na tabela <b>ordemproducao</b> para adicionar <!-- Primeirauma nova coluna doreferente conteúdoao datipo guia 2 -->de estoque.
<div class="container"></li>
</ul>
<h2 class="custom-heading"><i class="fa-solid fa-circle-question"></i> PERGUNTAS FREQUENTES</h2>
<ul<pre><code class="collapsiblelanguage-sql">
ALTER TABLE <li>ordemproducao
ADD COLUMN idtipoestoque INT8 REFERENCES tipoestoque (idtipoestoque);
<div class="collapsible-header"><i class="material-icons">question_answer</i>O que acontece se eu tentar vender uma quantidade de produto maior do que a disponível?</div>
</code> </pre>
</div>
</div>
</div>
<div classid="collapsible-bodytab3"><span>Se a quantidade vendida for maior do que a quantidade total disponível (estoque atual + quantidade prevista), a venda daquele produto será bloqueada e você receberá um aviso.
class="col s12">
<div class="tab-content">
<div style="background-color: #f4f5f7; padding: 20px; margin-left: 50px; margin-right: 50px;">
<!-- Primeira coluna do conteúdo da guia 2 -->
</span></div>
<div class="container">
</li>
<h2 class="custom-heading"><i class="fa-solid fa-circle-question"></i> PERGUNTAS FREQUENTES</h2>
<ul class="collapsible">
<!-- Adicione mais perguntas e respostas aqui conforme necessário --><li>
</ul>
<div class="collapsible-header"><i class="material-icons">question_answer</i>O que acontece </div>
se eu tentar vender uma quantidade de produto maior do que a disponível?</div>
<div class="collapsible-body"><span>Se a quantidade <!-- Primeira colunavendida for maior do conteúdoque a daquantidade guiatotal 2 -->
disponível (estoque atual + quantidade prevista), a venda daquele produto será bloqueada e você receberá um aviso.
</div>
<div style="background-color: #dfe1e5; padding: 20px"> </span></div>
<!-- Tab 30 conteúdo --> </li>
<div id="indice">
<h2><i class="fa-solid fa-link"></i> LINKS ÚTEIS</h2>
<!-- Adicione mais perguntas e respostas aqui conforme necessário -->
<ul>
</ul>
<li><a href="#" class="link-item">PORTAL DE PRODUTOS</a></li></div>
<li><a href="#" class="link-item">TOTVS INFORMA</a></li>
<!-- Primeira coluna <li><a href="#" class="link-item">CENTRAL COLABORATIVA</a></li>
do conteúdo da guia 2 -->
</ul>
</div>
</div>
</div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
<script>
// Inicialização das tabs
document.addEventListener("DOMContentLoaded", function () {
var tabs = document.querySelectorAll(".tabs");
M.Tabs.init(tabs);
});
</script>
<script>
const items = document.querySelectorAll("#indice li");
items.forEach(item => {
item.addEventListener('click', (e) => {
const targetId = e.target.getAttribute('data-target');
const targetElement = document.getElementById(targetId);
window.scrollTo({
top: targetElement.offsetTop - 10,
behavior: "smooth"
});
});
});
</script>
<script src="https://kit.fontawesome.com/c97d4c197a.js" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js"></script>
<script>hljs.highlightAll();</script>
<script src="scripts.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
var elems = document.querySelectorAll('.collapsible');
var instances = M.Collapsible.init(elems);
});
</script>
<!-- ... (conteudo video) ... -->
<script src="https://www.youtube.com/iframe_api"></script>
<script>
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
height: '315',
width: '560',
videoId: 'FvsuBOvyyro',
playerVars: {
start: 1238, // 20:38 em segundos
end: 1356 // 22:36 em segundos
}
});
}
</script>
|