<!-- Tabs e conteúdo das guias --><tr>
<div class="card">
<ul class="tabs">
<li<td><i class="tab col s4"><a href="#tab1">DETALHES FUNCIONAIS</a></li>fas fa-globe"></i> Aplicação:</td>
<li class="tab col s4"><a href="#tab2">DETALHES TÉCNICOS</a></li>
<td>Web/App móvel</td>
<li class="tab col s4"><a href="#tab3">FAQ</a></li>
</ul>tr>
<!-- Tab Content -->
<tr>
<div id="tab1" class="col s12">
<div<td><i class="tabfas fa-content">hashtag"></i> Identificador:</td>
<div style="background-color: #f4f5f7; padding: 20px; margin-left: 50px; margin-right: 50px;">
<td>
<section id="section1" style="margin-top: 40px;">
DTSFAPD-2265 </td>
</tr>
<!-- Tab 70 conteúdo -->
<!-- Segundo Card -->
<h2/table>
</span>
</div>
</div>
<h2 class="custom-heading">
<i class="fa-solid fa-eye"></i>    VISÃO GERAL
</h2>
<p class="justificado">
Esta melhoria introduz a abordagem de "Pontos de Entrada de Customizações" no
TOTVS CRM Automação da Força de Vendas. Ela permite que os desenvolvedores
personalizem a solução de forma mais eficiente, implementando modificações em um
repositório separado, de acordo com os Contratos Técnicos de Customização.
</p>
<br>
<h2 class="custom-heading">
<i class="fa-solid fa-rocket"></i>    OBJETIVO
</h2>
<p class="justificado">
Aprimorar a flexibilidade e a manutenção da solução, permitindo
customizações mais organizadas, redução de conflitos e facilitação das
atualizações.
</p>
<br>
<!-- ... (seu conteúdo existente) ... -->
<h2 class="custom-heading">
<i class="fa-solid fa-book"></i>   ANTES DE COMEÇAR
</h2>
<h3>Requisitos</h3>
<ul class="browser-default">
<li>Versão padrão da solução TOTVS CRM - SFA.</li>
</ul>
</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>
Introdução de novas rotas nas APIs padrão para manipulação de dados, como
"Cota" e "Saldo Cota".
</li>
<li>
Adição de novos campos em rotas existentes, como "ClienteSub", "PedidoSub",
"Nota fiscal Produto", entre outras.
</li>
<li>
Inclusão de propriedades "Sub" para permitir campos adicionais em diferentes
contextos, como PedidoCabecalhoCampo, PedidoProdutoCampo, etc.
</li>
<li>
Adição de campos específicos em rotas como "Segmento", "Pedido", "Tabela
Preço Produto", entre outras, para enriquecer as informações.
</li>
</ol>
<br>
</div>
<!-- Tab 30 fim -->
<!-- Tab 30 fim -->
</div>
</div>
<div id="tab2" class="col s12">
<div class="tab-content">
<div style="background-color: #f4f5f7; padding: 20px; margin-left: 50px; margin-right: 50px;">
<section id="section5" style="margin-top: 40px;">
<!-- Primeira coluna do conteúdo da guia 2 -->
<h2 class="custom-heading"><i class="fa-solid fa-gear"></i>  DETALHES TÉCNICOS</h2>
<h2>Novas Rotas</h2>
<p>O SFA deverá receber novas rotas em suas APIs padrão, sendo elas:</p> <br>
<h3>Nome da Rota: Cota</h3>
<p>Tabela: cota</p>
<p>Métodos: GET, POST, PUT, DELETE</p>
<br>
<table class="custom-grey">
<thead>
<tr>
<th>Campo</th>
<th>Propriedade da API</th>
<th>Tipagem da Propriedade</th>
<th>Observações</th>
</tr>
</thead>
<tbody>
<tr>
<td>idcota</td>
<td>internalid</td>
<td>integer</td>
<td>Não presente na rota POST</td>
</tr>
<tr>
<td>descricao</td>
<td>descricao</td>
<td>varchar</td>
<td></td>
</tr>
<tr>
<td>sgltipocota</td>
<td>sgltipocota</td>
<td>varchar</td>
<td></td>
</tr>
<tr>
<td>datainiciovigencia</td>
<td>datainiciovigencia</td>
<td>data</td>
<td></td>
</tr>
<tr>
<td>datafimvigencia</td>
<td>datafimvigencia</td>
<td>data</td>
<td></td>
</tr>
<tr>
<td>idnativo</td>
<td>idnativo</td>
<td>boolean</td>
<td></td>
</tr>
<tr>
<td>idunidademedida</td>
<td>idunidademedida</td>
<td>integer</td>
<td></td>
</tr>
<tr>
<td>idunidademedida_externalid</td>
<td>idunidademedida > unidademedida.codigoerp</td>
<td>varchar</td>
<td></td>
</tr>
<tr>
<td>codigoerp</td>
<td>externalid</td>
<td>varchar</td>
<td></td>
</tr>
<tr>
<td>datacadastro</td>
<td>datacadastro</td>
<td>data</td>
<td></td>
</tr>
<tr>
<td>horacadastro</td>
<td>horacadastro</td>
<td>varchar</td>
<td></td>
</tr>
<tr>
<td>numerocota</td>
<td>numerocota</td>
<td>varchar</td>
<td></td>
</tr>
<tr>
<td>observacaocota</td>
<td>observacaocota</td>
<td>varchar</td>
<td></td>
</tr>
</tbody>
</table>
<br>
<h2>Campos com Valores Fixos</h2>
<ul class="browser-default">
<li>idnvalidaproduto: 1</li>
<li>idnvalidaunidademedida: 1</li>
<li>idnvalidalocalfilial: 1</li>
<li>idnvalidasegmento: 1</li>
<li>idnvalidatabelapreco: 1</li>
<li>idnvalidagrupoproduto: 1</li>
<li>sglorigem: "INTEGRACAO"</li>
<li>idnfinalizado: 0</li>
</ul>
<br>
<h3>Nome da Rota: Saldo Cota</h3>
<p>Tabela: controlecota</p>
<p>Métodos: GET, POST, PUT, DELETE</p> <br>
<table class="custom-grey">
<thead>
<tr>
<th>Campo</th>
<th>Propriedade da API</th>
<th>Tipagem da Propriedade</th>
<th>Observações</th>
</tr>
</thead>
<tbody>
<tr>
<td>idcontrolecota</td>
<td>internalid</td>
<td>integer</td>
<td>Não presente na rota POST</td>
</tr>
<tr>
<td>idnativo</td>
<td>idnativo</td>
<td>boolean</td>
<td></td>
</tr>
<tr>
<td>saldoinicio</td>
<td>saldoinicio</td>
<td>decimal</td>
<td></td>
</tr>
<tr>
<td>saldocota</td>
<td>saldocota</td>
<td>decimal</td>
<td></td>
</tr>
<tr>
<td>saldodisponivel</td>
<td>saldodisponivel</td>
<td>decimal</td>
<td></td>
</tr>
<tr>
<td>idcota</td>
<td>idcota</td>
<td>integer</td>
<td></td>
</tr>
<tr>
<td>idcota_externalid</td>
<td>idcota > cota.codigoerp</td>
<td>varchar</td>
<td></td>
</tr>
<tr>
<td>idusuario</td>
<td>idusuario</td>
<td>integer</td>
<td></td>
</tr>
<tr>
<td>idusuario_externalid</td>
<td>idusuario > usuario.codigoerp</td>
<td>varchar</td>
<td></td>
</tr>
<tr>
<td>idproduto</td>
<td>idproduto</td>
<td>integer</td>
<td></td>
</tr>
<tr>
<td>idproduto_externalid</td>
<td>idproduto > produto.codigoerp</td>
<td>varchar</td>
<td></td>
</tr>
<tr>
<td>idgrupoproduto</td>
<td>idgrupoproduto</td>
<td>integer</td>
<td></td>
</tr>
<tr>
<td>idgrupoproduto_externalid</td>
<td>idgrupoproduto > grupoproduto.codigoerp</td>
<td>varchar</td>
<td></td>
</tr>
<tr>
<td>idlocal</td>
<td>idlocal</td>
<td>integer</td>
<td></td>
</tr>
<tr>
<td>idlocal_externalid</td>
<td>idlocal > local.codigoerp</td>
<td>varchar</td>
<td></td>
</tr>
<tr>
<td>idlocalfilial</td>
<td>idlocalfilial</td>
<td>integer</td>
<td></td>
</tr>
<tr>
<td>idlocalfilial_externalid</td>
<td>idlocalfilial > local.codigoerp</td>
<td>varchar</td>
<td></td>
</tr>
<tr>
<td>idsegmento</td>
<td>idsegmento</td>
<td>integer</td>
<td></td>
</tr>
<tr>
<td>idsegmento_externalid</td>
<td>idsegmento > segmento.codigoerp</td>
<td>varchar</td>
<td></td>
</tr>
<tr>
<td>idtabelapreco</td>
<td>idtabelapreco</td>
<td>integer</td>
<td></td>
</tr>
<tr>
<td>idtabelapreco_externalid</td>
<td>idtabelapreco > tabelapreco.codigoerp</td>
<td>varchar</td>
<td></td>
</tr>
<tr>
<td>idparceiro</td>
<td>idparceiro</td>
<td>integer</td>
<td></td>
</tr>
<tr>
<td>idparceiro_externalid</td>
<td>idparceiro > parceiro.codigoerp</td>
<td>varchar</td>
<td></td>
</tr>
<tr>
<td>idusuariosuperior</td>
<td>idusuariosuperior</td>
<td>integer</td>
<td></td>
</tr>
<tr>
<td>idusuariosuperior_externalid</td>
<td>idusuariosuperior > usuario.codigoerp</td>
<td>varchar</td>
<td></td>
</tr>
<tr>
<td>codigoerp</td>
<td>externalid</td>
<td>varchar</td>
<td></td>
</tr>
</tbody>
</table> <br>
<h3>Nome da Rota: Pedido Campo Opção Fixa</h3>
<p>Tabela: wsconfigcampoopcaofixo</p>
<p>Métodos: GET, POST, PUT</p> <br>
<table class="custom-grey">
<thead>
<tr>
<th>Campo</th>
<th>Propriedade da API</th>
<th>Tipagem da Propriedade</th>
<th>Observações</th>
</tr>
</thead>
<tbody>
<tr>
<td>idwsconfigcampoopcaofixo</td>
<td>internalid</td>
<td>integer</td>
<td>Não presente na rota POST</td>
</tr>
<tr>
<td>idwsconfigcampo</td>
<td>idwsconfigcampo</td>
<td>integer</td>
<td></td>
</tr>
<tr>
<td>idwsconfigcampo_externalid</td>
<td>idwsconfigcampo > wsconfigcampo.codigoerp</td>
<td>varchar</td>
<td></td>
</tr>
<tr>
<td>valor</td>
<td>valor</td>
<td>varchar</td>
<td></td>
</tr>
<tr>
<td>descricao</td>
<td>descricao</td>
<td>varchar</td>
<td></td>
</tr>
<tr>
<td>codigoerp</td>
<td>externalid</td>
<td>varchar</td>
<td></td>
</tr>
</tbody>
</table>
<br>
<h3>Rota: ClienteSub</h3>
<p>Métodos: GET, POST, PUT</p>
<p>Nova Propriedade Sub "CampoResposta"</p> <br>
<table class="custom-grey">
<thead>
<tr>
<th>Campo</th>
<th>Propriedade da API</th>
<th>Tipagem da Propriedade</th>
<th>Observações</th>
</tr>
</thead>
<tbody>
<tr>
<td>idcamporesposta</td>
<td>internalid</td>
<td>integer</td>
<td>Não presente na rota POST</td>
</tr>
<tr>
<td>idcampo</td>
<td>idcampo</td>
<td>integer</td>
<td></td>
</tr>
<tr>
<td>idcampo_externalid</td>
<td>idcampo > campo.codigoerp</td>
<td>varchar</td>
<td></td>
</tr>
<tr>
<td>idcampoopcaofixo</td>
<td>idcampoopcaofixo</td>
<td>integer</td>
<td></td>
</tr>
<tr>
<td>idcampoopcaofixo_externalid</td>
<td>idcampoopcaofixo > campoopcaofixo.codigoerp</td>
<td>varchar</td>
<td></td>
</tr>
<tr>
<td>resposta</td>
<td>resposta</td>
<td>varchar</td>
<td></td>
</tr>
<tr>
<td>codigoerp</td>
<td>externalid</td>
<td>varchar</td>
<td></td>
</tr>
</tbody>
</table>
<br>
<h2>Rota: PedidoSub - Nova Propriedade Sub 'PedidoCabecalhoCampo'</h2>
<p>Métodos: GET, POST, PUT</p> <br>
<table class="custom-grey">
<thead>
<tr>
<th>Campo</th>
<th>Propriedade da API</th>
<th>Tipagem da Propriedade</th>
<th>Observações</th>
</tr>
</thead>
<tbody>
<tr>
<td>idpedidocabecalhocampo</td>
<td>internalid</td>
<td>integer</td>
<td>Não presente na rota POST</td>
</tr>
<tr>
<td>idwsconfigcampo</td>
<td>idwsconfigcampo</td>
<td>integer</td>
<td></td>
</tr>
<tr>
<td>idwsconfigcampo_externalid</td>
<td>idwsconfigcampo > wsconfigcampo.codigoerp</td>
<td>varchar</td>
<td></td>
</tr>
<tr>
<td>valor</td>
<td>valor</td>
<td>varchar</td>
<td></td>
</tr>
<tr>
<td>idnobrigatorio</td>
<td>Valor fixo 0</td>
<td></td>
<td></td>
</tr>
<tr>
<td>ordem</td>
<td>ordem</td>
<td>integer</td>
<td></td>
</tr>
<tr>
<td>codigoerp</td>
<td>externalid</td>
<td>varchar</td>
<td></td>
</tr>
</tbody>
</table>
<br>
<h2>Rota: PedidoSub - Nova Propriedade Sub 'PedidoProdutoCampo'</h2>
<p>Métodos: GET, POST, PUT</p> <br>
<table class="custom-grey">
<thead>
<tr>
<th>Campo</th>
<th>Propriedade da API</th>
<th>Tipagem da Propriedade</th>
<th>Observações</th>
</tr>
</thead>
<tbody>
<tr>
<td>idpedidocabecalhocampo</td>
<td>internalid</td>
<td>integer</td>
<td>Não presente na rota POST</td>
</tr>
<tr>
<td>idwsconfigcampo</td>
<td>idwsconfigcampo</td>
<td>integer</td>
<td></td>
</tr>
<tr>
<td>idwsconfigcampo_externalid</td>
<td>idwsconfigcampo > wsconfigcampo.codigoerp</td>
<td>varchar</td>
<td></td>
</tr>
<tr>
<td>valor</td>
<td>valor</td>
<td>varchar</td>
<td></td>
</tr>
<tr>
<td>codigoerp</td>
<td>externalid</td>
<td>varchar</td>
<td></td>
</tr>
</tbody>
</table>
<br>
<h2>Rota: PedidoSub - Nova Propriedade Sub 'PedidoEntregaCampo'</h2>
<p>Métodos: GET, POST, PUT</p> <br>
<table class="custom-grey">
<thead>
<tr>
<th>Campo</th>
<th>Propriedade da API</th>
<th>Tipagem da Propriedade</th>
<th>Observações</th>
</tr>
</thead>
<tbody>
<tr>
<td>idpedidocabecalhocampo</td>
<td>internalid</td>
<td>integer</td>
<td>Não presente na rota POST</td>
</tr>
<tr>
<td>idwsconfigcampo</td>
<td>idwsconfigcampo</td>
<td>integer</td>
<td></td>
</tr>
<tr>
<td>idwsconfigcampo_externalid</td>
<td>idwsconfigcampo > wsconfigcampo.codigoerp</td>
<td>varchar</td>
<td></td>
</tr>
<tr>
<td>valor</td>
<td>valor</td>
<td>varchar</td>
<td></td>
</tr>
<tr>
<td>idnobrigatorio</td>
<td>Valor fixo 0</td>
<td></td>
<td></td>
</tr>
<tr>
<td>ordem</td>
<td>ordem</td>
<td>integer</td>
<td></td>
</tr>
<tr>
<td>codigoerp</td>
<td>externalid</td>
<td>varchar</td>
<td></td>
</tr>
</tbody>
</table>
<br>
<h2>Rota: PedidoSub - Nova Propriedade Sub 'PedidoResumoCampo'</h2>
<p>Métodos: GET, POST, PUT</p> <br>
<table class="custom-grey">
<thead>
<tr>
<th>Campo</th>
<th>Propriedade da API</th>
<th>Tipagem da Propriedade</th>
<th>Observações</th>
</tr>
</thead>
<tbody>
<tr>
<td>idpedidocabecalhocampo</td>
<td>internalid</td>
<td>integer</td>
<td>Não presente na rota POST</td>
</tr>
<tr>
<td>idwsconfigcampo</td>
<td>idwsconfigcampo</td>
<td>integer</td>
<td></td>
</tr>
<tr>
<td>idwsconfigcampo_externalid</td>
<td>idwsconfigcampo > wsconfigcampo.codigoerp</td>
<td>varchar</td>
<td></td>
</tr>
<tr>
<td>valor</td>
<td>valor</td>
<td>varchar</td>
<td></td>
</tr>
<tr>
<td>idnobrigatorio</td>
<td>Valor fixo 0</td>
<td></td>
<td></td>
</tr>
<tr>
<td>ordem</td>
<td>ordem</td>
<td>integer</td>
<td></td>
</tr>
<tr>
<td>codigoerp</td>
<td>externalid</td>
<td>varchar</td>
<td></td>
</tr>
</tbody>
</table>
<br>
<h2>Rota: PedidoSub - Nova Propriedade Sub 'PedidoComplementoCampo'</h2>
<p>Métodos: GET, POST, PUT</p> <br>
<table class="custom-grey">
<thead>
<tr>
<th>Campo</th>
<th>Propriedade da API</th>
<th>Tipagem da Propriedade</th>
<th>Observações</th>
</tr>
</thead>
<tbody>
<tr>
<td>idpedidocabecalhocampo</td>
<td>internalid</td>
<td>integer</td>
<td>Não presente na rota POST</td>
</tr>
<tr>
<td>idwsconfigcampo</td>
<td>idwsconfigcampo</td>
<td>integer</td>
<td></td>
</tr>
<tr>
<td>idwsconfigcampo_externalid</td>
<td>idwsconfigcampo > wsconfigcampo.codigoerp</td>
<td>varchar</td>
<td></td>
</tr>
<tr>
<td>valor</td>
<td>valor</td>
<td>varchar</td>
<td></td>
</tr>
<tr>
<td>idnobrigatorio</td>
<td>Valor fixo 0</td>
<td></td>
<td></td>
</tr>
<tr>
<td>ordem</td>
<td>ordem</td>
<td>integer</td>
<td></td>
</tr>
<tr>
<td>codigoerp</td>
<td>externalid</td>
<td>varchar</td>
<td></td>
</tr>
</tbody>
</table>
<br>
<h2>Rota: Nota fiscal Produto, NotafiscalSub</h2>
<p>Métodos: GET, POST, PUT</p> <br>
<table class="custom-grey">
<thead>
<tr>
<th>Campo</th>
<th>Propriedade da API</th>
<th>Tipagem da Propriedade</th>
</tr>
</thead>
<tbody>
<tr>
<td>valorcomissao</td>
<td>valorcomissao</td>
<td>decimal</td>
</tr>
<tr>
<td>percentualcomissao</td>
<td>percentualcomissao</td>
<td>decimal</td>
</tr>
</tbody>
</table>
<br>
<h2>Rota: Segmento</h2>
<p>Métodos: GET, POST, PUT</p> <br>
<table class="custom-grey">
<thead>
<tr>
<th>Campo</th>
<th>Propriedade da API</th>
<th>Tipagem da Propriedade</th>
</tr>
</thead>
<tbody>
<tr>
<td>sigla</td>
<td>sigla</td>
<td>varchar</td>
</tr>
</tbody>
</table>
<br>
<h2>Rota: Pedido, PedidoSub</h2>
<p>Métodos: GET, POST, PUT</p> <br>
<table class="custom-grey">
<thead>
<tr>
<th>Campo</th>
<th>Propriedade da API</th>
<th>Tipagem da Propriedade</th>
</tr>
</thead>
<tbody>
<tr>
<td>datafaturamento</td>
<td>datafaturamento</td>
<td>date</td>
</tr>
</tbody>
</table>
<br>
<h2>Rota: Tabela Preço Produto</h2>
<p>Métodos: GET, POST, PUT</p> <br>
<table class="custom-grey">
<thead>
<tr class="custom-grey">
<th>Campo</th>
<th>Propriedade da API</th>
<th>Tipagem da Propriedade</th>
</tr>
</thead>
<tbody>
<tr>
<td>precocusto</td>
<td>precocusto</td>
<td>decimal</td>
</tr>
</tbody>
</table>
<!-- Second Card -->
</div>
</div>
</div>
<div id="tab3" 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 -->
<div class="container">
<h2 class="custom-heading"><i class="fa-solid fa-circle-question"></i> PERGUNTAS FREQUENTES</h2>
<ul class="collapsible">
<li>
<div class="collapsible-header"><i class="material-icons">question_answer</i></div>
<div class="collapsible-body"><span>
</span></div>
</li>
<!-- Adicione mais perguntas e respostas aqui conforme necessário -->
</ul>
</div>
<!-- Primeira coluna do conteúdo da guia 2 -->
</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> |