| Server IP : 54.94.228.101 / Your IP : 172.28.20.13 Web Server : Apache System : Linux ip-172-28-29-189 6.5.0-1014-aws #14~22.04.1-Ubuntu SMP Thu Feb 15 15:27:06 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.2.34-43+ubuntu22.04.1+deb.sury.org+1 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/html/vinumday2_0/app/Modules/PedidoVenda/Views/admin/ |
Upload File : |
@extends($current_template)
@section('content')
<script>
$('.carregando').fadeIn();
</script>
<!-- Content Wrapper. Contains page content -->
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<section class="content-header">
<h1>
Pedido Venda
<small>Listagem</small>
</h1>
<ol class="breadcrumb">
<li><a href="{{ url('admin') }}"><i class="fa fa-dashboard"></i> Dashboard</a></li>
<li><a href="{{ url('admin/pedido-venda') }}"><i class="fa fa-dashboard"></i> Pedidos</a></li>
<li class="active">Gerador de Pedido Interno</li>
</ol>
</section>
<!-- Main content -->
<section class="content">
<div class="row">
<div class="col-xs-12">
<div class="box">
<div class="box-header">
</div>
<!-- /.box-header -->
<div class="box-body">
<form method="/" id="formFiltros" type="POST">
<div class="row">
<div class="col-md-12">
<label for="id_cliente" class="control-label">DADOS PEDIDO INTERNO</label>
</div>
</div>
<div class="row">
<div class="col-md-3">
<div class="row">
<div class="col-md-12">
<h6>Cliente:</h6>
<select name="id_cliente" id="id_cliente" class="form-control" required>
@foreach($clientes as $cliente)
<option value="{{ $cliente->id}}">{{ $cliente->nome_completo() }}</option>
@endforeach
</select>
</div>
</div>
</div>
<div class="col-md-3">
<div class="row">
<div class="col-md-12">
<h6>Categoria Interna <span style="color:#999;font-size: 11px;">(Menu>Vendas>Categorias)</span>*:</h6>
<select name="id_pedido_venda_categoria" id="id_pedido_venda_categoria" class="form-control" required>
<option value="0">Selecione</option>
@foreach($categorias as $categoria)
<option value="{{ $categoria->id}}">{{ $categoria->nome }}</option>
@endforeach
</select>
</div>
</div>
</div>
<div class="col-md-3">
<div class="row">
<div class="col-md-12">
<h6>Data:</h6>
<input id="data_fechamento" required type="datetime-local" class="form-control" value="{{ date('Y-m-d H:i:s') }}" name="data_fechamento">
</div>
</div>
</div>
</div>
<br>
</form>
<!-- /.row -->
<div class="row">
<fieldset style="float:left; width: 100%" id="field-produtos">
<legend>Produtos</legend>
<div class="item">
<div class="row">
<div class="col-md-4">
<label for="id_produto">Produto</label>
<select id="id_produto" class="default-select select2-produto" name="produto" ></select>
</div>
<div class="col-md-1">
<label for="qtd_produto">Quantidade</label>
<input type="number" value="1" style="padding:10px;" class="form-control" id="qtd_produto" name="qtd_produto" />
</div>
<div class="col-md-2">
<label> </label>
<button class="btn btn-primary btn-block" type="button" id="add-produto-to-pedido">Adicionar</button>
</div>
</div>
</div>
<script>
$(document).ready(function(){
$(".select2-produto").select2({
minimumInputLength: 2,
placeholder: 'Buscar Produtos',
ajax: {
url: '/admin/produto/buscar',
dataType: 'json',
type: "POST",
data: function (term) {
return {
term : term,
origem : 'oferta'
};
},
processResults: function (data, params) {
console.log(data);
return {
results: $.map(data.items, function (item) {
return {
text: item.nome+' - SKU: '+item.sku,
slug: item.slug,
id: item.id,
preco_mercado: item.preco_mercado,
preco_custo: item.preco_custo,
preco_venda: item.preco_de_venda,
disponibilidade : item.disponibilidade
}
})
};
}
}
});
});
</script>
<br>
<div class="row">
<div class="col-md-12">
<table class="table table-bordered table-striped" id="produtos-lista">
<thead>
<tr>
<th width="5%" class="no-sort text-center"></th>
<th width="5%">SKU</th>
<th width="22%">Produto</th>
<th width="10%" class="text-center">Última atualização</th>
<!--<th width="10%" class="text-center">Ações</th>-->
<th width="5%" class="text-center">Qtde</th>
<th width="7%" class="text-center">P. Custo</th>
<th width="5%" class="text-center">Caixa</th>
<th width="5%" class="text-center">Qtd. Cx.</th>
<th width="7%" class="text-center">P. Merc.</th>
<th width="7%" class="text-center">P. Venda</th>
<th width="7%" class="text-right">Total</th>
<th width="5%" class="text-center"></th>
</tr>
</thead>
<tbody class="principal">
</tbody>
</table>
</div>
</div>
<br>
<div class="row">
<div class="col-md-3">
<label for="preco_custo">Preço Custo*</label>
<input id="preco_custo" type="number" class="form-control" value="0" name="preco_custo" />
</div>
<div class="col-md-3">
<label for="preco_mercado">Preço Mercado*</label>
<input id="preco_mercado" type="number" class="form-control" value="0" name="preco_mercado" />
</div>
<div class="col-md-3">
<label for="preco_oferta">Preço Venda*</label>
<input id="preco_oferta" type="number" class="form-control" value="0" name="preco_oferta" />
</div>
</div>
<br>
<div class="row">
<div class="col-md-3">
<label for="assunto">Observações*</label>
<input id="assunto" type="text" class="form-control" value="Pedido interno através da plataforma." name="assunto" />
</div>
<div class="col-md-2">
<label> </label>
<button class="btn btn-primary btn-block" type="button" id="btn-gerar-pedido">Gerar Pedido Interno</button>
<input name="percentual_desconto" id="percentual_desconto" type="hidden" value="0" />
</div>
<div class="col-md-2 hidden" id="acesso-pedido">
<label style="margin-bottom: 4px;"> </label>
<a class="btn btn-success btn-block" href="" id="btn-acessar-pedido" target="_blank">Acessar Pedido</a>
</div>
</div>
</fieldset>
</div>
</div>
</div>
<!-- /.box -->
</div>
<!-- /.col -->
</div>
<!-- /.row -->
</section>
<!-- /.content -->
</div>
<!-- /.content-wrapper -->
<script>
$('#add-produto-to-pedido').click(function(){
var id_produto = $(".select2-produto").val();
var quantidade_produto = $("#qtd_produto").val();
var row_id = 0;
var validaProduto = true;
var rows = 0;
$('#produtos-lista tbody.principal tr.produto-item').each(function(){
var quantidade = parseFloat($(this).find('[name^="produto-quantidade-checkbox"]').val());
row_id = $(this).data('id');
rows += 1;
if (quantidade != 'NaN' && row_id == id_produto){
validaProduto = false;
}
});
$('#acesso-pedido').addClass('hidden');
$('#btn-acessar-pedido').attr('href', '');
console.log('validaProduto | rows');
console.log(validaProduto + '|' + rows);
if(validaProduto == true){
if(quantidade_produto){
if (id_produto) {
$.ajax({
url: '/admin/pedido-venda/gerador-add-produto',
type: 'POST',
data: {produto_id: id_produto, quantidade: quantidade_produto},
dataType: 'json',
beforeSend:function(){
$('.carregando').fadeIn();
},
success:function(data){
$('.carregando').fadeOut();
$('#produtos-lista tbody.principal').append(data.html);
setTimeout(function() {
calcularOferta();
}, 1000);
},
error:function(){
$('.carregando').fadeOut();
alertUtil.alertError('Erro ao adicionar produto!');
}
});
}else{
alertUtil.alertWarning('Você deve selecionar um produto');
}
}else{
alertUtil.alertWarning('Você deve digitar a quantidade');
}
}else{
alertUtil.alertWarning('Produto já adicionado!');
}
});
$('#btn-gerar-pedido').click(function(e){
var id_pedido_venda_categoria = $("#id_pedido_venda_categoria").val();
var produtos_selecionados = $('[name="produto-item[]"]');
var produto = 0;
var produtos = [];
var item = {};
if(id_pedido_venda_categoria == 0){
alertUtil.alertWarning('Campo "Categoria Interna" Obrigatório');
}else{
if(produtos_selecionados.length > 0){
$( produtos_selecionados ).each(function( index ) {
produto = produtos_selecionados[index].value;
item = {
produto_id : produto,
quantidade : $('#produto_quantidade_' + produto).val(),
preco_custo : $('#produto_preco_custo_' + produto).val(),
preco_mercado : $('#produto_preco_mercado_' + produto).val(),
preco_venda : $('#produto_preco_venda_' + produto).val(),
valor_caixa_status : $('#valor_caixa_status_' + produto).val(),
qtd_produtos_caixa : $('#qtd_produtos_caixa_' + produto).val()
};
produtos.push(item);
});
var assunto = $('#assunto').val();
var data_fechamento = $('#data_fechamento').val();
var id_cliente = $('#id_cliente').val();
var preco_custo = $('#preco_custo').val();
var preco_mercado = $('#preco_mercado').val();
var percentual_desconto = $('#percentual_desconto').val();
var preco_oferta = $('#preco_oferta').val();
$.ajax({
url: '/admin/pedido-venda/gerar-pedido-interno',
type: 'POST',
data: {produtos: produtos, id_cliente: id_cliente, assunto : assunto, data_fechamento : data_fechamento, id_pedido_venda_categoria : id_pedido_venda_categoria, preco_custo: preco_custo, preco_mercado: preco_mercado, percentual_desconto: percentual_desconto, preco_oferta: preco_oferta},
dataType: 'json',
beforeSend:function(){
$('.carregando').fadeIn();
},
success:function(data){
$('.carregando').fadeOut();
if(data.status){
alertUtil.alertSuccess(data.message);
resetGerador();
if(data.url){
$('#btn-acessar-pedido').attr('href', data.url);
$('#acesso-pedido').removeClass('hidden');
}
}else{
alertUtil.alertError(data.message);
}
},
error:function(){
$('.carregando').fadeOut();
alertUtil.alertError('Erro durante gravação pedido!');
}
});
}else{
alertUtil.alertWarning('Você deve selecionar ao menos um produto');
}
}
});
function atualizarItemProduto(produto_id){
var data = $('#formFiltros').serialize();
$.ajax({
url: '/admin/ordem-compra/item-lista-produtos',
type: 'POST',
data: data + '&item_id=' + produto_id,
beforeSend:function(){
},
success:function(data){
$('.carregando').fadeOut();
if (data.status) {
$('#produto-' + produto_id).html(data.html_produto);
$('#detalhes-produto-' + produto_id).html(data.html_detalhes_produto);
alertUtil.alertSuccess(data.message);
}else{
alertUtil.alertError(data.message);
}
},
error:function(){
$('.carregando').fadeOut();
alertUtil.alertError('Erro ao detalhar produto!');
}
});
}
function atualizarProduto(produto_id){
$.ajax({
url: '/admin/produto/atualizar-saldo-produto',
type: 'POST',
data: {produto_id: produto_id},
beforeSend:function(){
$('.carregando').fadeIn();
},
success:function(data){
if (data.status) {
atualizarItemProduto(produto_id);
}else{
$('.carregando').fadeOut();
alertUtil.alertError(data.message);
}
},
error:function(){
$('.carregando').fadeOut();
alertUtil.alertError('Erro durante atualização saldo!');
}
});
}
function removerProdutoPedido(produto_id){
var $tr = $('#produto-' + produto_id);
$tr.remove();
setTimeout(function() {
calcularOferta();
}, 1000);
}
function calcularProduto(produto_id){
var preco_venda = $('#produto_preco_venda_' + produto_id).val();
var quantidade = $('#produto_quantidade_' + produto_id).val();
var total_produto = 0;
total_produto = preco_venda * quantidade;
$('#produto_total_' + produto_id).text(number_format(total_produto,2,',','.'));
$('#produto_total_' + produto_id).closest('.ffl-wrapper').addClass('ffl-floated');
setTimeout(function() {
calcularOferta();
}, 1000);
}
function calcularOferta() {
var preco_venda = 0;
var preco_mercado = 0;
var preco_custo = 0;
var produto_id = 0;
var row_id = 0;
$('#produtos-lista tbody.principal tr.produto-item').each(function(){
var quantidade = parseFloat($(this).find('[name^="produto-quantidade-checkbox"]').val());
console.log('quantidade: ' + quantidade);
row_id = $(this).data('id');
if (quantidade != 'NaN' && row_id != produto_id){
produto_id = row_id;
preco_mercado += quantidade * parseFloat($(this).find('[name^="produto-preco-mercado"]').val());
preco_custo += quantidade * parseFloat($(this).find('[name^="produto-preco-custo"]').val());
preco_venda += quantidade * parseFloat($(this).find('[name^="produto-preco-venda"]').val());
console.log('preco_venda row ' + row_id + ': ' + preco_venda);
}
});
preco_mercado = number_format(preco_mercado,2,'.','');
preco_custo = number_format(preco_custo,2,'.','');
preco_venda = number_format(preco_venda,2,'.','');
console.log('preco_mercado: ' + preco_mercado);
console.log('preco_custo: ' + preco_custo);
console.log('preco_venda: ' + preco_venda);
$('#preco_mercado').val(preco_mercado);
$('#preco_mercado').closest('.ffl-wrapper').addClass('ffl-floated');
$('#preco_custo').val(preco_custo);
$('#preco_custo').closest('.ffl-wrapper').addClass('ffl-floated');
$('#preco_oferta').val(preco_venda);
$('#preco_oferta').closest('.ffl-wrapper').addClass('ffl-floated');
}
function resetGerador(){
$('#produtos-lista tbody.principal').html('');
//RESET FILTROS
$('#id_pedido_venda_categoria').val(0);
$('#observacoes').val('Pedido interno através da plataforma.');
//RESET DADOS ORDEM
$('#id_produto').val('');
$('#id_produto').trigger('change');
$('#preco_mercado, #preco_custo, #preco_oferta').val(0);
}
$(document).ready(function(){
$('.carregando').fadeOut();
});
</script>
@endsection