Novo git da alteração

This commit is contained in:
2026-03-01 17:27:48 -03:00
parent 8b7a079235
commit 9ec8d6e70b
366 changed files with 50299 additions and 27325 deletions
+350 -201
View File
@@ -3,234 +3,383 @@
<head>
<meta charset="utf-8">
<title>Criar Solicitação de Compras</title>
<title>Criar Solicitações de Compras</title>
<!-- Fluig SG + deps -->
<!-- Fluig Style Guide -->
<link rel="stylesheet" href="/style-guide/css/fluig-style-guide.min.css">
<link rel="stylesheet" href="/style-guide/css/fluig-style-guide-filter.min.css"> <!-- ADICIONE -->
<link rel="stylesheet" href="/style-guide/css/fluig-style-guide-filter.min.css">
<link rel="stylesheet" href="comprasV2.css">
<link rel="stylesheet" href="style.css">
<!-- jQuery + Fluig -->
<script src="/portal/resources/js/jquery/jquery.js"></script>
<script src="/portal/resources/js/jquery/jquery-ui.min.js"></script>
<script src="/resources/js/mustache/mustache-min.js"></script>
<script src="/portal/resources/js/wcmapi.js"></script>
<script src="/style-guide/js/fluig-style-guide.min.js"></script>
<script src="/style-guide/js/fluig-style-guide-filter.min.js"></script> <!-- ADICIONE -->
<script src="/style-guide/js/fluig-style-guide-filter.min.js"></script>
<script type="text/javascript" src="/webdesk/vcXMLRPC.js"></script>
<script type="text/javascript" src="anexos.js" charset="utf-8"></script>
<!-- seu JS/CSS -->
<link rel="stylesheet" href="form.css">
<script src="compras.js"></script>
<style>
/* Painel Ginseng - Cabeçalho customizado */
.panel.panel-info.painel-ginseng>.panel-heading {
background-color: #04506b !important;
/* azul institucional */
color: #fff !important;
/* texto branco */
font-size: 16px !important;
font-weight: bold !important;
border-color: #04506b !important;
display: flex;
align-items: center;
gap: 8px;
/* espaço entre ícone e texto */
}
/* Painel Ginseng - Corpo */
.panel.panel-info.painel-ginseng {
border-color: #04506b !important;
}
/* Ícone dentro do painel */
.panel.panel-info.painel-ginseng .flaticon {
color: #fff !important;
/* ícone branco no header */
font-size: 18px;
}
.m-t-10 {
margin-top: 10px;
}
.m-t-15 {
margin-top: 15px;
}
.text-right {
text-align: right;
}
.cursor-pointer {
cursor: pointer;
}
</style>
</head>
<body>
<div class="fluig-style-guide">
<form name="form" role="form">
<form class="form-horizontal" role="form" name="form">
<div class="fs-display-block">
<!-- PAINEL: Dados da solicitação -->
<div class="panel panel-info">
<div class="panel-heading"><strong>Dados da Solicitação</strong></div>
<div class="panel panel-info painel-ginseng">
<div class="panel-heading" style="font-size:16px;">
<i class="flaticon flaticon-tests-central icon-md" aria-hidden="true"></i>
<strong>Dados da Solicitação</strong>
</div>
<div class="panel-body">
<div class="container activity-all">
<div class="activity activity-0 activity-1">
<!-- Linha 1: Empresa e Filial -->
<div class="row m-t-10">
<div class="col-sm-4">
<label>Empresa <span class="text-danger">*</span></label>
<input type="zoom" class="form-control requiredInput" name="estabelecimento" id="estabelecimento"
data-zoom="{
'displayKey':'LOJA',
'datasetId':'dsSysCompany',
'placeholder': 'Pesquisar por nome do estabelecimento.',
'fields':[{'field':'DESCRICAO','label':'nome da loja','standard':'true','search':'true'},
{'field':'BPCS','label':'estabelecimento','search':'true'},
{'field':'CODIGO','label':'PROTHEUS','search':'true'}]
}" />
<p class="text-danger text-error">Preenchimento obrigatório.</p>
</div>
<div class="row">
<div class="col-sm-6">
<label>Empresa</label>
<span class="required text-danger"><strong> * </strong></span>
<input type="zoom" class="form-control requiredInput" name="estabelecimento" id="estabelecimento"
data-zoom="{
'displayKey':'LOJA',
'datasetId':'dsSysCompany',
'placeholder': 'Pesquisar por nome do estabelecimento.',
'fields':[
{
'field':'BPCS',
'label':'Filial',
'standard':'true',
'search':'true'
},
{
'field':'DESCRICAO',
'label':'estabelecimento',
'search':'true'
}
]
}" />
<p class="text-danger text-error">
Preenchimento obrigatório.
</p>
</div>
<div class="col-sm-4">
<label>Cnpj</label>
<input type="hidden" name="filialCodigo" id="filialCodigo">
<input type="text" name="filialDesc" id="filialDesc" class="form-control"
placeholder="Selecione uma filial no campo Empresa" readonly>
</div>
<div class="col-sm-2">
<label>Filial Entrega</label>
<input type="text" name="filialDesc" id="filialDesc" class="form-control zoom"
placeholder="Selecione..." readonly>
</div>
<div class="col-sm-2">
<label>Estado</label>
<input type="text" name="filialest" id="filialest" class="form-control" readonly>
</div>
<!-- Linha 2: Tipo de Solicitação -->
<div class="col-sm-4">
<label>Tipo de Solicitação <span class="text-danger">*</span></label>
<select name="tipoSolicitacao" id="tipoSolicitacao" class="form-control" required>
<option value="">Selecione</option>
<option>Material</option>
<option>Serviço</option>
</select>
</div>
</div>
<div class="row m-t-15">
<div class="col-sm-2">
<label>Tipo de Solicitação <span class="text-danger">*</span></label>
<select name="tipoSolicitacao" id="tipoSolicitacao" class="form-control" required>
<option value="">Selecione</option>
<option>Material</option>
<option>Serviço</option>
</select>
</div>
</div>
<div class="col-sm-6">
<label>Produto/Serviço <span class="text-danger">*</span></label>
<div class="input-group">
<input type="hidden" name="produtoCod" id="produtoCod">
<input type="text" name="produtoDesc" id="produtoDesc" class="form-control zoom" data-zoom="produto"
placeholder="Buscar..." readonly required>
<span class="input-group-btn">
<button class="btn btn-default" type="button" id="btnBuscaProd">
<span class="fluigicon fluigicon-search"></span>
</button>
<button class="btn btn-danger" type="button" id="btnLimpaProd">
<span class="fluigicon fluigicon-trash"></span>
</button>
</span>
<div class="row m-t-10">
<div class="col-sm-4">
<label>Produto/Serviço <span class="text-danger">*</span></label>
<div class="input-group">
<input type="hidden" name="produtoCod" id="produtoCod">
<input type="text" name="DescoProduto" id="DescoProduto" class="form-control"
placeholder="Buscar..." readonly required>
<span class="input-group-btn">
<button class="btn btn-info" type="button" id="btnBuscaProd">
<span class="fluigicon fluigicon-search"></span>
</button>
<button class="btn btn-danger" type="button" id="btnLimpaProd">
<span class="fluigicon fluigicon-trash"></span>
</button>
</span>
</div>
</div>
<div class="col-sm-2">
<label>Último Preço</label>
<input type="text" name="ultimoPreco" id="ultimoPreco" class="form-control text-right" value="0,00"
readonly>
</div>
<div class="col-sm-2">
<label>Preço de Referência</label>
<input type="text" name="precoRef" id="precoRef" class="form-control text-right" value="0,00">
</div>
<div class="col-sm-2">
<label>Quantidade <span class="text-danger">*</span></label>
<div class="input-group">
<span class="input-group-btn">
<button type="button" class="btn btn-danger" id="qtdMenos"></button>
</span>
<input type="number" min="0" step="1" name="quantidade" id="quantidade"
class="form-control text-center" value="0" required>
<span class="input-group-btn">
<button type="button" class="btn btn-success" id="qtdMais">+</button>
</span>
</div>
</div>
<div class="col-sm-2">
<label>Data da Necessidade <span class="text-danger">*</span></label>
<div class="input-group">
<input type="text" name="dataNec" id="dataNec" class="form-control" placeholder="dd/mm/aaaa"
required>
<span class="input-group-btn">
<button type="button" class="btn btn-primary">
<span class="fluigicon fluigicon-calendar" aria-hidden="true"></span>
</button>
</span>
</div>
</div>
</div>
<div class="row m-t-10">
<div class="col-sm-4">
<label>Centro de Custo <span class="text-danger">*</span></label>
<input type="zoom" class="form-control" name="centroCusto" id="centroCusto" data-zoom="{
'displayKey':'centroCusto',
'datasetId':'ds_centroCusto',
'placeholder': 'Pesquisar número ou nome do centro de custo.',
'fields':[
{
'field':'codigoCentroCusto',
'label':'Código',
'standard':'true',
'search':'true'
},
{
'field':'centroCusto',
'label':'Centro de custo',
'search':'true'
},
{
'field': 'gestorCentroCusto',
'label': 'Gestor',
'visible': 'false'
}
]
}" required />
</div>
<div class="col-sm-4">
<label>Gestor do centro de Custo</label>
<input type="text" name="gestorCentroCusto" id="gestorCentroCusto" class="form-control"
placeholder="Selecione o centro de custo no campo anterior" readonly>
</div>
<div class="col-sm-2">
<label>Emergencial?</label>
<select name="emergencial" id="emergencial" class="form-control">
<option>Não</option>
<option>Sim</option>
</select>
</div>
<div class="col-sm-2">
<label>Total</label>
<input type="text" name="total" id="total" class="form-control text-right" value="R$ 0,00" readonly>
</div>
</div>
<div class="row m-t-10">
<div class="col-sm-2">
<label class="control-label">Adicionar Anexo</label>
<div class="componentAnexo">
<div class="input-group">
<input type="hidden" class="descAnexo" name="fdComprovante" value="Anexo" />
<input type="text" id="fnComprovante" name="fnComprovante"
class="form-control inputAnexo input-sm" placeholder="Selecione um arquivo" readonly />
</div>
<div class="icones">
<button type="button" class="btnUpFile btn btn-success btn-sm" data-acao="upload"
onclick="anexo(event)" title="Selecionar">
<i class="fluigicon fluigicon-file-upload icon-sm"></i>
</button>
<button style="display: none;" type="button" class="btnViewerFile btn btn-info btn-sm"
data-acao="viewer" onclick="anexo(event)" title="Visualizar" disabled>
<i class="fluigicon fluigicon-eye-open icon-sm"></i>
</button>
<button style="display: none;" type="button" class="btnDownloadFile btn btn-info btn-sm"
data-acao="download" onclick="anexo(event)" title="Download" disabled>
<i class="fluigicon fluigicon-download icon-sm"></i>
</button>
</div>
</div>
</div>
</div>
<div class="row m-t-10">
<div class="col-sm-10">
<label>Observação</label>
<textarea name="obs" id="obs" class="form-control" rows="3"></textarea>
</div>
</div>
<div class="row m-t-10">
<div class="form-group text-center">
<div class="col-sm-12">
<button type="button" id="btnAddItem" class="btn btn-primary" style="display: none;">
<span class="fluigicon fluigicon-add"></span> Adicionar Item
</button>
</div>
</div>
</div>
<!-- PAINEL: Itens -->
<div class="panel panel-default">
<div class="panel-heading"><strong>Itens</strong></div>
<div class="panel-body">
<table id="tbItens" tablename="tbItens" class="table table-bordered" noaddbutton="true"
nodeletebutton="true">
<thead>
<tr>
<th>#</th>
<th>Código</th>
<th>Descrição</th>
<th>Último Preço</th>
<th>Pc Ref</th>
<th>Qtd</th>
<th>Total</th>
<th>Data Necessidade</th>
<th>Excluir</th>
</tr>
</thead>
<tbody>
<!-- LINHA MODELO -->
<tr class="tableRow" detail="true">
<td><span class="tableIndex"></span></td>
<td>
<input type="text" name="Codproduto" class="form-control" readonly>
</td>
<td>
<input type="text" name="produtoDesc" class="form-control" readonly>
</td>
<td>
<input type="text" name="ultimoPrecoItem" class="form-control text-right" value="0,00"
readonly>
</td>
<td>
<input type="text" name="Refpreco" class="form-control text-right" value="0,00" readonly>
</td>
<td>
<input type="number" name="qtd" class="form-control text-right" min="0" step="1" readonly>
</td>
<td>
<input type="text" name="totalValor" class="form-control text-right" readonly>
</td>
<td>
<input type="text" name="dataNecItem" class="form-control" placeholder="dd/mm/aaaa">
</td>
<td class="text-center">
<button type="button" class="btn btn-link" onclick="fnWdkRemoveChild(this)">
<span class="fluigicon fluigicon-trash"></span>
</button>
</td>
</tr>
</tbody>
</table>
<div class="row m-t-10">
<div class="col-sm-3">
<label>Total de Itens</label>
<input type="text" name="totalItens" id="totalItens" class="form-control text-right" readonly
value="0">
</div>
<div class="col-sm-3">
<label>Total Geral</label>
<input type="text" name="totalGeral" id="totalGeral" class="form-control text-right" readonly
value="R$ 0,00">
</div>
</div>
</div>
</div>
</div>
<div class="col-sm-2">
<label>Último Preço</label>
<input type="text" name="ultimoPreco" id="ultimoPreco" class="form-control text-right" value="0,00"
readonly>
</div>
<div class="col-sm-2">
<label>Quantidade <span class="text-danger">*</span></label>
<div class="input-group">
<span class="input-group-btn">
<button type="button" class="btn btn-default" id="qtdMenos"></button>
</span>
<input type="number" min="0" step="1" name="quantidade" id="quantidade"
class="form-control text-center" value="0" required>
<span class="input-group-btn">
<button type="button" class="btn btn-default" id="qtdMais">+</button>
</span>
<div class="activity activity-4">
<div>
<br />
<h2>
<i class="flaticon flaticon-check-circle" aria-hidden="true"></i>
&nbsp;Validação do centro de custo &nbsp;
</h2>
<h6>
Informações complementares sobre a validação do centro de custo
da solicitação.
</h6>
<br />
</div>
<div class="row">
<div class="col-md-10 col-xs-6">
<div class="form-group">
<label for="userValidacaoGestor">Gestor aprovador do centro de custo</label>
<input type="text" name="userValidacaoGestor" id="userValidacaoGestor" class="form-control"
readonly />
</div>
</div>
<div class="col-md-2 col-xs-6">
<div class="form-group">
<label for="dataValidacaoGestor">Data</label>
<input type="text" name="dataValidacaoGestor" id="dataValidacaoGestor" class="form-control"
readonly />
</div>
</div>
</div>
<div class="row justificativa-activity-4">
<div class="col-md-12">
<div class="form-group">
<label for="justificativaDecisaoGestor">Justificativa</label>
<textarea class="form-control" name="justificativaDecisaoGestor" id="justificativaDecisaoGestor"
placeholder="Descreva a justificativa para a validação do centro de custo."></textarea>
</div>
</div>
</div>
</div>
<div class="col-sm-2">
<label>Data da Necessidade <span class="text-danger">*</span></label>
<input type="text" name="dataNec" id="dataNec" class="form-control" placeholder="dd/mm/aaaa" required>
</div>
</div>
<div class="row m-t-10">
<div class="col-sm-6">
<label>Centro de Custo <span class="text-danger">*</span></label>
<input type="zoom" name="ccDesc" id="ccDesc" class="form-control" data-zoom="{
'displayKey':'centroCusto',
'datasetId':'ds_centroCusto',
'placeholder': 'Pesquisar número ou nome do centro de custo.',
'fields':[
{
'field':'codigoCentroCusto',
'label':'Código',
'standard':'true',
'search':'true'
},
{
'field':'centroCusto',
'label':'Centro de custo',
'search':'true'
},
{
'field': 'gestorCentroCusto',
'label': 'Gestor',
'visible': 'false'
},
{
'field': 'emailGestor',
'label': 'Email do gestor',
'visible': 'false'
},
{
'field': 'idGestor',
'label': 'Id do gestor',
'visible': 'false'
}
]
}" />
</div>
<div class="col-sm-3">
<label>Compra Emergencial?</label>
<select name="emergencial" id="emergencial" class="form-control">
<option>Não</option>
<option>Sim</option>
</select>
</div>
<div class="col-sm-3">
<label>Total</label>
<input type="text" name="total" id="total" class="form-control text-right" value="R$ 0,00" readonly>
</div>
</div> <!-- aqui sim fecha corretamente a row -->
<div class="row m-t-20">
<div class="col-sm-12">
<button type="button" class="btn btn-success" id="btnAddAnexo">
<span class="fluigicon fluigicon-upload"></span> Adicionar Anexo
</button>
</div>
<div class="col-sm-12">
<label>Observação do Item</label>
<textarea name="obs" id="obs" class="form-control" rows="2"></textarea>
</div>
</div>
<div class="text-center m-t-15">
<button type="button" id="btnAddItem" class="btn btn-primary">
<span class="fluigicon fluigicon-add"></span> Adicionar Item
</button>
</div>
</div>
</div>
<!-- PAINEL: Itens -->
<div class="panel panel-default">
<div class="panel-heading"><strong>Itens</strong></div>
<div class="panel-body">
<table id="tbItens" tablename="tbItens" class="table table-bordered">
<thead>
<tr>
<th>Produto</th>
<th>Centro de Custo</th>
<th>Qtd</th>
<th>Preço Ref.</th>
<th>Total</th>
<th>Ação</th>
</tr>
</thead>
<tbody>
<!-- LINHA MODELO (detail=true) -->
<tr class="tableRow" detail="true">
<td>
<input type="hidden" name="CodProd" class="form-control">
<input type="text" name="DescProd" class="form-control" readonly>
</td>
<td>
<input type="hidden" name="Codcc" class="form-control">
<input type="text" name="Desccc" class="form-control" readonly>
</td>
<td><input type="number" name="qtd" class="form-control text-right" min="0" step="1" value="0"></td>
<td><input type="text" name="Refpreco" class="form-control text-right" value="0,00"></td>
<td><input type="text" name="totalProd" class="form-control text-right" value="R$ 0,00" readonly></td>
<td class="text-center">
<button type="button" class="btn btn-link" onclick="fnWdkRemoveChild(this)">
<span class="fluigicon fluigicon-trash"></span>
</button>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</form>
</div>
</div>
</form>
</div>
<!-- Seu JS no final -->
<script src="compras.js"></script>
</body>
</html>