1377 lines
34 KiB
JavaScript
1377 lines
34 KiB
JavaScript
var produtos = []
|
|
var itens = []
|
|
var fatura = []
|
|
var tipoPagamento = null
|
|
var cliente = null
|
|
var emitirNfce = false
|
|
|
|
$(".main").on("keydown", function(e) {
|
|
if (e.key === "Enter") {
|
|
e.preventDefault();
|
|
return false;
|
|
}
|
|
});
|
|
|
|
$(document).on("keydown", function(e) {
|
|
switch (e.key.toLowerCase()) {
|
|
case "f1":
|
|
e.preventDefault();
|
|
$('#inp-codigo-barras').focus()
|
|
break;
|
|
|
|
case "f2":
|
|
e.preventDefault();
|
|
openModalCartao('03')
|
|
break;
|
|
|
|
case "f3":
|
|
e.preventDefault();
|
|
openModalCartao('04')
|
|
break;
|
|
|
|
case "f4":
|
|
e.preventDefault();
|
|
openModalDinheiro()
|
|
break;
|
|
|
|
case "f7":
|
|
e.preventDefault();
|
|
openModalMultiploPagamento()
|
|
break;
|
|
|
|
case "f9":
|
|
e.preventDefault();
|
|
setPagamento('17')
|
|
break;
|
|
|
|
case "a":
|
|
if (e.ctrlKey) {
|
|
e.preventDefault();
|
|
$('.modal-acoes').modal('show');
|
|
}
|
|
break;
|
|
|
|
case "f":
|
|
if (e.shiftKey) {
|
|
e.preventDefault();
|
|
$('#inp-pesquisa').focus()
|
|
}
|
|
break;
|
|
}
|
|
});
|
|
|
|
$(function(){
|
|
|
|
atualizarBotaoOffline()
|
|
produtos = JSON.parse($('#produtos-hidden').val())
|
|
setTimeout(() => {
|
|
$('#inp-codigo-barras').focus()
|
|
}, 100)
|
|
|
|
$('#inp-cliente_cpf_cnpj').val('')
|
|
|
|
$('.select-cliente').select2({
|
|
|
|
width: $(this).data("width")
|
|
? $(this).data("width")
|
|
: $(this).hasClass("w-100")
|
|
? "100%"
|
|
: "style",
|
|
placeholder: $(this).data("placeholder"),
|
|
allowClear: Boolean($(this).data("allow-clear")),
|
|
dropdownParent: $('.modal-cliente')
|
|
});
|
|
|
|
if($("#definir_vendedor_pdv").val() == 1){
|
|
openModalVendedor()
|
|
}
|
|
|
|
let $tbody = $(".modal-fatura .table-dynamic tbody");
|
|
let $primeiraLinha = $tbody.find("tr:first").clone();
|
|
$primeiraLinha.show();
|
|
|
|
$primeiraLinha.find("input").val("");
|
|
$primeiraLinha.find(".tipo_pagamento").select2("destroy");
|
|
$primeiraLinha.find(".select2-container").remove();
|
|
|
|
$primeiraLinha.find("select").val("").trigger("change");
|
|
$tbody.html($primeiraLinha);
|
|
|
|
$('.tipo_pagamento').select2({
|
|
|
|
width: $(this).data("width")
|
|
? $(this).data("width")
|
|
: $(this).hasClass("w-100")
|
|
? "100%"
|
|
: "style",
|
|
placeholder: $(this).data("placeholder"),
|
|
allowClear: Boolean($(this).data("allow-clear")),
|
|
dropdownParent: $('.modal-fatura')
|
|
});
|
|
|
|
$('#inp-lista_preco_id').val('').change()
|
|
|
|
if($('#venda_suspensa_id').val() > 0){
|
|
let itenSuspensa = JSON.parse($('#itens_venda_suspensa').val())
|
|
itens = itenSuspensa
|
|
montaHtml()
|
|
}else{
|
|
if($('#cliente_padrao').val() == 0){
|
|
$('#cliente').val('').change()
|
|
}
|
|
$('#vendedor').val('').change()
|
|
}
|
|
|
|
if($('#venda_id').val() > 0){
|
|
let itenVenda = JSON.parse($('#itens_venda').val())
|
|
itens = itenVenda
|
|
montaHtml()
|
|
}else{
|
|
if($('#cliente_padrao').val() == 0){
|
|
$('#cliente').val('').change()
|
|
}
|
|
$('#vendedor').val('').change()
|
|
}
|
|
|
|
verificaVendasOff()
|
|
limpaFormularioProduto()
|
|
})
|
|
|
|
if($('#venda_id').val() == 0){
|
|
// $(window).on("beforeunload", function () {
|
|
// return "Tem certeza que deseja atualizar ou sair desta página?";
|
|
// });
|
|
}
|
|
|
|
$("#btnVendasOffline").on("click", function() {
|
|
verificaVendasOff()
|
|
});
|
|
|
|
function atualizarBotaoOffline() {
|
|
let vendas = JSON.parse(localStorage.getItem("vendas-off-slym")) || [];
|
|
|
|
if (vendas.length > 0) {
|
|
$("#btnVendasOffline").fadeIn();
|
|
$("#btnVendasOffline .badge").text(vendas.length);
|
|
} else {
|
|
$("#btnVendasOffline").fadeOut();
|
|
}
|
|
}
|
|
|
|
function verificaVendasOff(){
|
|
// localStorage.setItem("vendas-off-slym", "[]")
|
|
let vendasOff = JSON.parse(localStorage.getItem("vendas-off-slym")) || [];
|
|
// console.log(vendasOff)
|
|
if(vendasOff.length > 0){
|
|
$('.modal-vendas-off').modal('show')
|
|
|
|
vendasOff.map((x) => {
|
|
let tr = "<tr class='trid-"+x._id+"'>"
|
|
|
|
tr += "<td>"
|
|
tr += x._id
|
|
tr += "</td>"
|
|
tr += "<td>"
|
|
tr += x.cliente_nome
|
|
tr += "</td>"
|
|
|
|
tr += "<td>"
|
|
tr += convertFloatToMoeda(x.valor_total)
|
|
tr += "</td>"
|
|
|
|
tr += "<td>"
|
|
tr += x.itens.length
|
|
tr += "</td>"
|
|
|
|
tr += "<td>"
|
|
tr += x.data_atual
|
|
tr += "</td>"
|
|
|
|
|
|
tr += "<td>"
|
|
tr += "<button data-id='"+x._id+"' class='btn btn-sm btn-danger btn-remove-venda' type='button'><i class='ri-delete-bin-line'></i></button>"
|
|
tr += "</td>"
|
|
|
|
tr += "</tr>"
|
|
$('.vendas-off tbody').append(tr)
|
|
})
|
|
}
|
|
}
|
|
$(document).on("click", ".btn-remove-venda", function () {
|
|
|
|
swal({
|
|
title: "Você está certo?",
|
|
text: "Uma vez deletado, você não poderá recuperar esse item novamente!",
|
|
icon: "warning",
|
|
buttons: true,
|
|
buttons: ["Cancelar", "Excluir"],
|
|
dangerMode: true,
|
|
}).then((isConfirm) => {
|
|
if (isConfirm) {
|
|
let vendasOff = JSON.parse(localStorage.getItem("vendas-off-slym")) || [];
|
|
$(this).closest('tr').remove()
|
|
let temp = vendasOff.filter((x) => {
|
|
return x._id != $(this).attr('data-id')
|
|
})
|
|
|
|
vendasOff = temp
|
|
localStorage.setItem("vendas-off-slym", JSON.stringify(vendasOff))
|
|
} else {
|
|
swal("", "Este item está salvo!", "info");
|
|
}
|
|
});
|
|
})
|
|
|
|
$(document).on("click", ".btn-salvar-vendas", function () {
|
|
|
|
if (travaSalvar) {
|
|
console.log("Clique duplo bloqueado!");
|
|
return;
|
|
}
|
|
|
|
travaSalvar = true;
|
|
setTimeout(() => {
|
|
travaSalvar = false;
|
|
}, 1200);
|
|
|
|
let vendasOff = JSON.parse(localStorage.getItem("vendas-off-slym")) || [];
|
|
let falhas = [];
|
|
|
|
let promessas = vendasOff.map((x) => {
|
|
let url = path_url + 'api/frenteCaixa/storepdv3';
|
|
|
|
return $.post(url, x)
|
|
.done(() => {
|
|
toastr.success("Venda " + x._id + " salva no servidor!");
|
|
|
|
vendasOff = vendasOff.filter(v => v._id !== x._id);
|
|
localStorage.setItem("vendas-off-slym", JSON.stringify(vendasOff));
|
|
})
|
|
.fail(() => {
|
|
toastr.error("Falha ao salvar venda: " + x._id);
|
|
falhas.push(x);
|
|
});
|
|
});
|
|
|
|
Promise.all(promessas).then(() => {
|
|
localStorage.setItem("vendas-off-slym", JSON.stringify(falhas));
|
|
$('.modal-vendas-off').modal('hide');
|
|
});
|
|
})
|
|
|
|
$('.btn-seleciona-cliente').click(() => {
|
|
let cliente = $('#cliente option:selected').text()
|
|
$('.txt-cliente').text(cliente)
|
|
})
|
|
|
|
$('.btn-seleciona-vendedor').click(() => {
|
|
let vendedor = $('#vendedor option:selected').text()
|
|
$('.txt-vendedor').text(vendedor)
|
|
})
|
|
|
|
function atualizarRelogio() {
|
|
const agora = new Date();
|
|
|
|
const dia = String(agora.getDate()).padStart(2, '0');
|
|
const mes = String(agora.getMonth() + 1).padStart(2, '0');
|
|
const ano = agora.getFullYear();
|
|
|
|
const horas = String(agora.getHours()).padStart(2, '0');
|
|
const minutos = String(agora.getMinutes()).padStart(2, '0');
|
|
const segundos = String(agora.getSeconds()).padStart(2, '0');
|
|
|
|
const dataHora = `${dia}/${mes}/${ano} ${horas}:${minutos}:${segundos}`;
|
|
$('.timer').text(dataHora);
|
|
}
|
|
|
|
$(document).ready(function() {
|
|
setInterval(atualizarRelogio, 1000);
|
|
setInterval(testeConexao, 5000);
|
|
});
|
|
|
|
function testeConexao(){
|
|
|
|
$.ajax({
|
|
url: path_url + 'api/frenteCaixa/teste-conexao',
|
|
method: "GET",
|
|
global: false
|
|
}).done((success) => {
|
|
if(!$('.d-offline').hasClass('d-none')){
|
|
toastr.success("Servidor conectado!");
|
|
}
|
|
$('.d-offline').addClass('d-none')
|
|
}).fail((err) => {
|
|
if($('.d-offline').hasClass('d-none')){
|
|
toastr.error("Servidor off-line!");
|
|
}
|
|
$('.btn-fiscal').attr('disabled', 'disabled')
|
|
$('.d-offline').removeClass('d-none');
|
|
});
|
|
}
|
|
|
|
$(document).on("change", "#produto_id", function () {
|
|
let valor = $(this).find('option:selected').data('valor')
|
|
$('#inp-valor_unitario').val(convertFloatToMoeda(valor))
|
|
$('#inp-sub_total').val(convertFloatToMoeda(valor))
|
|
$('#inp-quantidade').val('1')
|
|
|
|
if(valor){
|
|
setTimeout(() => {
|
|
$('#inp-valor_unitario').focus()
|
|
}, 500)
|
|
}
|
|
});
|
|
|
|
$("#inp-valor_unitario").on("keydown", function(e) {
|
|
if (e.key === "Enter") {
|
|
$('#inp-quantidade').focus()
|
|
}
|
|
});
|
|
|
|
$("#inp-quantidade").on("keydown", function(e) {
|
|
if (e.key === "Enter") {
|
|
$('#inp-sub_total').focus()
|
|
}
|
|
});
|
|
|
|
$("#inp-sub_total").on("keydown", function(e) {
|
|
if (e.key === "Enter") {
|
|
$('#btn-adicionar').trigger('click')
|
|
}
|
|
});
|
|
|
|
$(document).on("click", ".btn-suprimento", function () {
|
|
$('.modal-acoes').modal('hide')
|
|
$('.modal-suprimento').modal('show')
|
|
});
|
|
|
|
$(document).on("click", ".btn-sangria", function () {
|
|
$('.modal-acoes').modal('hide')
|
|
$('.modal-sangria').modal('show')
|
|
});
|
|
|
|
$(document).on("click", ".btn-salvar-suprimento", function () {
|
|
let data = {
|
|
usuario_id: $('#usuario_id').val(),
|
|
valor: $('.modal-suprimento #inp-valor').val(),
|
|
observacao: $('.modal-suprimento #inp-observacao').val(),
|
|
tipo_pagamento: $('.modal-suprimento #inp-tipo_pagamento').val()
|
|
}
|
|
$.post(path_url + 'api/frenteCaixa/store-suprimento', data)
|
|
.done((success) => {
|
|
// console.log(success)
|
|
toastr.success("Suprimento realizado!")
|
|
})
|
|
.fail((err) => {
|
|
// console.log(err)
|
|
toastr.error("Erro ao realizar suprimento!")
|
|
})
|
|
});
|
|
|
|
$(document).on("click", ".btn-salvar-sangria", function () {
|
|
let data = {
|
|
usuario_id: $('#usuario_id').val(),
|
|
valor: $('.modal-sangria #inp-valor').val(),
|
|
observacao: $('.modal-sangria #inp-observacao').val(),
|
|
}
|
|
$.post(path_url + 'api/frenteCaixa/store-sangria', data)
|
|
.done((success) => {
|
|
// console.log(success)
|
|
toastr.success("Sangria realizada!")
|
|
})
|
|
.fail((err) => {
|
|
// console.log(err)
|
|
toastr.error("Erro ao realizar sangria!")
|
|
})
|
|
});
|
|
|
|
$(document).on("click", "#btn-adicionar", function () {
|
|
let produto_id = $('#produto_id').val()
|
|
let valor_unitario = convertMoedaToFloat($('#inp-valor_unitario').val())
|
|
let sub_total = convertMoedaToFloat($('#inp-sub_total').val())
|
|
let quantidade = $('#inp-quantidade').val()
|
|
|
|
let p = produtos.find((x) => {
|
|
return x.id == produto_id
|
|
})
|
|
|
|
if(p.quantidade_atacado > 0 && quantidade >= p.quantidade_atacado){
|
|
valor_unitario = p.valor_atacado
|
|
}
|
|
|
|
let nome = p.nome
|
|
if(p.promocao){
|
|
nome += p.promocao
|
|
}
|
|
|
|
let item = {
|
|
_id: Math.floor(Math.random() * (10000000000 - 1 + 1)) + 1,
|
|
produto_id: produto_id,
|
|
produto_nome: nome,
|
|
valor_unitario: valor_unitario,
|
|
sub_total: sub_total,
|
|
quantidade: quantidade,
|
|
disabled_qtd: p.quantidade_atacado >= quantidade
|
|
}
|
|
|
|
itens.push(item)
|
|
montaHtml()
|
|
// toastr.success('Produto adicionado!');
|
|
$('#inp-codigo-barras').focus()
|
|
|
|
});
|
|
|
|
function adicionarItemCard(id){
|
|
let p = produtos.find((x) => {
|
|
return x.id == id
|
|
})
|
|
|
|
let nome = p.nome
|
|
if(p.promocao){
|
|
nome += p.promocao
|
|
}
|
|
|
|
let item = {
|
|
_id: Math.floor(Math.random() * (10000000000 - 1 + 1)) + 1,
|
|
produto_id: id,
|
|
produto_nome: nome,
|
|
valor_unitario: p.valor_unitario,
|
|
sub_total: p.valor_unitario,
|
|
quantidade: 1,
|
|
disabled_qtd: 0
|
|
}
|
|
|
|
let qtdExistente = itens
|
|
.filter(x => x.produto_id === id)
|
|
.reduce((acc, x) => acc + parseFloat(x.quantidade || 1), 0);
|
|
|
|
let qtdTotal = qtdExistente + 1;
|
|
|
|
// console.log("qtdTotal", qtdTotal)
|
|
|
|
itens.push(item)
|
|
|
|
if (p.quantidade_atacado > 0 && qtdTotal >= p.quantidade_atacado) {
|
|
let novoValor = p.valor_atacado || p.valor_unitario;
|
|
|
|
itens = itens.map(x => {
|
|
if (x.produto_id === id) {
|
|
let novaQtd = parseFloat(x.quantidade || 1);
|
|
return {
|
|
...x,
|
|
valor_unitario: novoValor,
|
|
sub_total: parseFloat((novoValor * novaQtd).toFixed(2))
|
|
};
|
|
}
|
|
return x;
|
|
});
|
|
|
|
toastr.info(`${p.nome} atingiu o valor de atacado (${p.quantidade_atacado})`);
|
|
}
|
|
// console.log(itens)
|
|
naoAlteraQtd = 1
|
|
montaHtml();
|
|
$("#inp-codigo-barras").val('');
|
|
setTimeout(() => {
|
|
naoAlteraQtd = 0
|
|
}, 3000)
|
|
|
|
}
|
|
|
|
$('.btn-add-tr').click(() => {
|
|
let hoje = new Date().toISOString().split('T')[0];
|
|
$('.data_vencimento').last().val(hoje)
|
|
})
|
|
|
|
$(document).on("input", "#inp-valor_recebido", function () {
|
|
let total = convertMoedaToFloat($('.total-venda').text())
|
|
let valor_recebido = convertMoedaToFloat($(this).val())
|
|
$('.valor-troco').text("R$ " + convertFloatToMoeda(valor_recebido-total))
|
|
})
|
|
|
|
$(document).on("input", ".valor_integral_row", function () {
|
|
let soma = 0
|
|
$('.salvar-fatura').attr('disabled', 'disabled')
|
|
|
|
$('.valor_integral_row').each(function () {
|
|
soma += convertMoedaToFloat($(this).val())
|
|
})
|
|
|
|
let total = convertMoedaToFloat($('.total-venda').text())
|
|
$('.soma-fatura').text("R$ " + convertFloatToMoeda(soma))
|
|
$('.total-faltante').text("R$ " + convertFloatToMoeda(total - soma))
|
|
|
|
if(total - soma == 0){
|
|
$('.salvar-fatura').removeAttr('disabled')
|
|
}
|
|
})
|
|
|
|
$('.salvar-fatura').click(() => {
|
|
fatura = []
|
|
$('.valor_integral_row').each(function () {
|
|
let valor = convertMoedaToFloat($(this).val())
|
|
let data = $(this).closest('td').prev().find('input').val()
|
|
let tipo_pagamento = $(this).closest('td').prev().prev().find('select').val()
|
|
fatura.push({
|
|
valor: valor,
|
|
data: data,
|
|
tipo_pagamento: tipo_pagamento
|
|
})
|
|
})
|
|
|
|
setTimeout(() => {
|
|
$('.modal-finalizar').modal('show')
|
|
}, 10)
|
|
})
|
|
|
|
var timerLeitura = null;
|
|
var bufferCodigo = "";
|
|
|
|
$(document).on("keydown", "#inp-codigo-barras", function (e) {
|
|
let tecla = e.key;
|
|
|
|
// ignora teclas de controle
|
|
if (tecla.length !== 1) return;
|
|
|
|
// adiciona caractere ao buffer
|
|
bufferCodigo += tecla;
|
|
|
|
// limpa timer anterior
|
|
clearTimeout(timerLeitura);
|
|
|
|
timerLeitura = setTimeout(() => {
|
|
if (bufferCodigo.length >= 8) {
|
|
processarCodigo(bufferCodigo);
|
|
}
|
|
bufferCodigo = "";
|
|
}, 80);
|
|
});
|
|
|
|
function processarCodigo(codigo) {
|
|
let quantidade = 1;
|
|
let sub_total = 0;
|
|
let p = produtos.find((x) => x.codigo_barras == codigo);
|
|
|
|
if (!p) {
|
|
let balanca_digito_verificador = $('#balanca_digito_verificador').val();
|
|
let referencia = parseInt(codigo.substring(1, balanca_digito_verificador));
|
|
p = produtos.find((x) => x.referencia_balanca == referencia);
|
|
|
|
if (p) {
|
|
let valorStr = codigo.substring(7, 12);
|
|
let valor = parseFloat(valorStr) / 100;
|
|
sub_total = valor;
|
|
quantidade = (valor / p.valor_unitario).toFixed(3);
|
|
}
|
|
}
|
|
|
|
if (!p) {
|
|
toastr.error('Produto não encontrado!');
|
|
beepErro();
|
|
return;
|
|
}
|
|
|
|
let qtdExistente = itens
|
|
.filter(x => x.produto_id === p.id)
|
|
.reduce((acc, x) => acc + parseFloat(x.quantidade || 1), 0);
|
|
|
|
let qtdTotal = qtdExistente + parseFloat(quantidade || 1);
|
|
|
|
let item = {
|
|
_id: Math.floor(Math.random() * (10000000000 - 1 + 1)) + 1,
|
|
produto_id: p.id,
|
|
produto_nome: p.nome,
|
|
valor_unitario: p.valor_unitario,
|
|
sub_total: sub_total || p.valor_unitario,
|
|
quantidade: quantidade,
|
|
};
|
|
|
|
itens.push(item);
|
|
|
|
if (p.quantidade_atacado > 0 && qtdTotal >= p.quantidade_atacado) {
|
|
let novoValor = p.valor_atacado || p.valor_unitario;
|
|
|
|
itens = itens.map(x => {
|
|
if (x.produto_id === p.id) {
|
|
let novaQtd = parseFloat(x.quantidade || 1);
|
|
return {
|
|
...x,
|
|
valor_unitario: novoValor,
|
|
sub_total: parseFloat((novoValor * novaQtd).toFixed(2))
|
|
};
|
|
}
|
|
return x;
|
|
});
|
|
|
|
toastr.info(`${p.nome} atingiu o valor de atacado (${p.quantidade_atacado})`);
|
|
}
|
|
naoAlteraQtd = 1
|
|
montaHtml();
|
|
$("#inp-codigo-barras").val('');
|
|
setTimeout(() => {
|
|
naoAlteraQtd = 0
|
|
}, 3000)
|
|
}
|
|
|
|
|
|
function beepErro(){
|
|
var audio = new Audio('/audio/beep_error.mp3');
|
|
audio.addEventListener('canplaythrough', function() {
|
|
audio.play();
|
|
});
|
|
}
|
|
|
|
function limpaFormularioProduto(){
|
|
$('#produto_id').val('').change()
|
|
$('#inp-valor_unitario').val('')
|
|
$('#inp-sub_total').val('')
|
|
$('#inp-quantidade').val('1')
|
|
}
|
|
|
|
function montaHtml(){
|
|
let tbody = ""
|
|
|
|
$('.itens tbody').html('')
|
|
itens.map((item) => {
|
|
|
|
if(item.quantidade+"".includes('.')){
|
|
item.quantidade = (item.quantidade + "").replace(/\./g, ",");
|
|
}
|
|
|
|
let tr = "<tr>"
|
|
tr += "<td>"
|
|
tr += item.produto_nome
|
|
tr += "</td>"
|
|
|
|
tr += "<td>"
|
|
tr += convertFloatToMoeda(item.valor_unitario)
|
|
tr += "</td>"
|
|
|
|
tr += "<td>"
|
|
tr += "<input style='width: 100px' "+ (item.disabled_qtd ? 'readonly' : '') +" class='form-control qtd-custom' value='"+item.quantidade+"'>"
|
|
tr += "<input type='hidden' class='form-control produto_id-custom' value='"+item.produto_id+"'>"
|
|
tr += "</td>"
|
|
|
|
tr += "<td class='sub_total_linha'>"
|
|
tr += convertFloatToMoeda(item.sub_total)
|
|
tr += "</td>"
|
|
|
|
tr += "<td>"
|
|
tr += "<button onclick='editItem("+item._id+")' class='btn btn-sm btn-warning' style='margin-right: 3px;' type='button'><i class='ri-edit-line'></i></button>"
|
|
tr += "<button onclick='removeItem("+item._id+")' class='btn btn-sm btn-danger' type='button'><i class='ri-delete-bin-line'></i></button>"
|
|
tr += "</td>"
|
|
|
|
tr += "</tr>"
|
|
|
|
$('.itens tbody').append(tr)
|
|
})
|
|
calculaTotal()
|
|
limpaFormularioProduto()
|
|
let ultimo = $(".qtd-custom:last");
|
|
ultimo.focus();
|
|
|
|
setTimeout(() => {
|
|
$('#inp-codigo-barras').focus()
|
|
}, 100)
|
|
|
|
}
|
|
|
|
$(document).on('input', '.mask-num-up', function () {
|
|
this.value = this.value
|
|
.replace(/[^0-9,%]/g, '')
|
|
.replace(/,+/g, ',')
|
|
.replace(/%+/g, '%')
|
|
});
|
|
|
|
var naoAlteraQtd = 0
|
|
$(document).on("blur", ".qtd-custom", function () {
|
|
|
|
if(naoAlteraQtd == 1){
|
|
return;
|
|
}
|
|
let qtd = convertMoedaToFloat($(this).val())
|
|
if(!qtd){
|
|
qtd = 1
|
|
$(this).val('1')
|
|
}
|
|
let id = $(this).closest('td').find('.produto_id-custom').val()
|
|
|
|
let p = produtos.find((x) => {
|
|
return x.id == id
|
|
})
|
|
|
|
let vlUnit = convertMoedaToFloat($(this).closest('td').prev().text())
|
|
|
|
for(let i=0; i<itens.length; i++){
|
|
|
|
if(p && p.quantidade_atacado > 0 && qtd >= p.quantidade_atacado){
|
|
itens[i].disabled_qtd = 1
|
|
itens[i].valor_unitario = p.valor_atacado
|
|
$(this).closest('td').prev().text(convertFloatToMoeda(p.valor_atacado))
|
|
vlUnit = p.valor_atacado
|
|
}else{
|
|
// itens[i].disabled_qtd = 0
|
|
// $(this).closest('td').prev().text(convertFloatToMoeda(p.valor_unitario))
|
|
// vlUnit = p.valor_unitario
|
|
}
|
|
if(id == itens[i].produto_id){
|
|
itens[i].quantidade = qtd
|
|
itens[i].sub_total = qtd * itens[i].valor_unitario
|
|
}
|
|
}
|
|
$(this).closest('td').next().text(convertFloatToMoeda(qtd*vlUnit))
|
|
calculaTotal()
|
|
});
|
|
|
|
$(document).on("input", ".qtd-custom", function () {
|
|
let valor = $(this).val().replace(/[^0-9,]/g, '');
|
|
|
|
const partes = valor.split(',');
|
|
if (partes.length > 2) {
|
|
valor = partes[0] + ',' + partes[1];
|
|
}
|
|
|
|
$(this).val(valor);
|
|
});
|
|
|
|
function openModalCliente(){
|
|
$('.modal-cliente').modal('show')
|
|
}
|
|
|
|
function openModalListaPreco(){
|
|
$('.modal-lista-preco').modal('show')
|
|
}
|
|
|
|
$(document).on("click", ".btn-selecionar-lista", function () {
|
|
let lista_id = $('#inp-lista_preco_id').val()
|
|
|
|
if(lista_id){
|
|
produtos.map((x) => {
|
|
x.valor_unitario = x['valor_lista_'+lista_id]
|
|
$('.card-prod-'+x.id).find('.valor-produto').text("R$ " + convertFloatToMoeda(x.valor_unitario))
|
|
|
|
$('#produto_id option[value="'+x.id+'"]').text("#"+ x.numero_sequencial + " " + x.nome + "[R$" + convertFloatToMoeda(x['valor_lista_'+lista_id]) + "]");
|
|
$('#produto_id option[value="'+x.id+'"]').attr('data-valor', x['valor_lista_'+lista_id]);
|
|
})
|
|
}else{
|
|
produtos.map((x) => {
|
|
x.valor_unitario = x['valor_original']
|
|
$('.card-prod-'+x.id).find('.valor-produto').text("R$ " + convertFloatToMoeda(x.valor_unitario))
|
|
})
|
|
}
|
|
})
|
|
|
|
$(document).on("click", ".acoes-pdv", function () {
|
|
$('.modal-acoes').modal('show')
|
|
})
|
|
|
|
function openModalMultiploPagamento(){
|
|
let total = convertMoedaToFloat($('.total-venda').text())
|
|
if(total <= 0){
|
|
toastr.warning('O valor da venda precisa ser maior que zero!');
|
|
return
|
|
}
|
|
|
|
$('.total-fatura').text("R$ " + $('.total-venda').text())
|
|
$('.total-faltante').text("R$ " + $('.total-venda').text())
|
|
|
|
let hoje = new Date().toISOString().split('T')[0];
|
|
$('.data_vencimento').val(hoje)
|
|
$('.modal-fatura').modal('show')
|
|
}
|
|
|
|
function setPagamento(tipo){
|
|
let total = convertMoedaToFloat($('.total-venda').text())
|
|
if(total <= 0){
|
|
toastr.warning('O valor da venda precisa ser maior que zero!');
|
|
return
|
|
}
|
|
tipoPagamento = tipo
|
|
|
|
$('.modal-finalizar').modal('show')
|
|
|
|
}
|
|
|
|
function openModalVendedor(){
|
|
$('.modal-vendedor').modal('show')
|
|
}
|
|
|
|
function openModalDesconto(){
|
|
$('.modal-desconto').modal('show')
|
|
setTimeout(() => {
|
|
$('#inp-valor_desconto').focus()
|
|
}, 500)
|
|
}
|
|
|
|
function openModalDinheiro(){
|
|
tipoPagamento = '01'
|
|
let total = convertMoedaToFloat($('.total-venda').text())
|
|
if(total <= 0){
|
|
toastr.warning('O valor da venda precisa ser maior que zero!');
|
|
return
|
|
}
|
|
|
|
$('.total-fatura').text("R$ " + $('.total-venda').text())
|
|
$('.modal-dinheiro').modal('show')
|
|
}
|
|
|
|
$('.btn-modal-finalizar').click(() => {
|
|
$('.modal-finalizar').modal('show')
|
|
})
|
|
|
|
$("#inp-valor_desconto").on("keydown", function(e) {
|
|
if (e.key === "Enter") {
|
|
$('.salvar-desconto').trigger('click')
|
|
}
|
|
});
|
|
|
|
$('.salvar-desconto').click(() => {
|
|
let valorDigitado = $('#inp-valor_desconto').val()
|
|
let valorDesconto = convertMoedaToFloat($('#inp-valor_desconto').val())
|
|
let totalProdutos = convertMoedaToFloat($('.soma-produtos').text())
|
|
if(totalProdutos <= 0){
|
|
toastr.error('Valor da venda deve ser maior que Zero!');
|
|
return
|
|
}
|
|
if (valorDigitado.includes('%')) {
|
|
valorDesconto = totalProdutos*(valorDesconto/100)
|
|
}
|
|
|
|
$('.desconto').text("R$ " + convertFloatToMoeda(valorDesconto))
|
|
calculaTotal()
|
|
})
|
|
|
|
function openModalAcrescimo(){
|
|
$('.modal-acrescimo').modal('show')
|
|
setTimeout(() => {
|
|
$('#inp-valor_acrescimo').focus()
|
|
}, 500)
|
|
}
|
|
|
|
function openModalValorFrete(){
|
|
$('.modal-frete').modal('show')
|
|
setTimeout(() => {
|
|
$('#inp-valor_frete').focus()
|
|
}, 500)
|
|
}
|
|
|
|
function openModalObservacao(){
|
|
$('.modal-observacao').modal('show')
|
|
setTimeout(() => {
|
|
$('.modal-observacao #inp-observacao').focus()
|
|
}, 500)
|
|
}
|
|
|
|
$("#inp-valor_acrescimo").on("keydown", function(e) {
|
|
if (e.key === "Enter") {
|
|
$('.salvar-acrescimo').trigger('click')
|
|
}
|
|
});
|
|
|
|
$('.salvar-frete').click(() => {
|
|
let valor = convertMoedaToFloat($('#inp-valor_frete').val())
|
|
$('.valor_frete').text("R$ " + convertFloatToMoeda(valor))
|
|
calculaTotal()
|
|
})
|
|
|
|
// $('.salvar-acrescimo').click(() => {
|
|
// let valor = convertMoedaToFloat($('#inp-valor_acrescimo').val())
|
|
// $('.acrescimo').text("R$ " + convertFloatToMoeda(valor))
|
|
// calculaTotal()
|
|
// })
|
|
|
|
$('.salvar-acrescimo').click(() => {
|
|
let valorDigitado = $('#inp-valor_acrescimo').val()
|
|
let valorAcrescimo = convertMoedaToFloat($('#inp-valor_acrescimo').val())
|
|
let totalProdutos = convertMoedaToFloat($('.soma-produtos').text())
|
|
if(totalProdutos <= 0){
|
|
toastr.error('Valor da venda deve ser maior que Zero!');
|
|
return
|
|
}
|
|
if (valorDigitado.includes('%')) {
|
|
valorAcrescimo = totalProdutos*(valorAcrescimo/100)
|
|
}
|
|
|
|
$('.acrescimo').text("R$ " + convertFloatToMoeda(valorAcrescimo))
|
|
calculaTotal()
|
|
})
|
|
|
|
$('.salvar-observacao').click(() => {
|
|
$('.totalizador-observacao').removeClass('text-primary')
|
|
let observacao = $('.modal-observacao #inp-observacao').val()
|
|
if(observacao.length > 1){
|
|
$('.totalizador-observacao').addClass('text-primary')
|
|
}
|
|
})
|
|
|
|
function openModalCartao(tipo){
|
|
|
|
let total = convertMoedaToFloat($('.total-venda').text())
|
|
if(total <= 0){
|
|
toastr.warning('O valor da venda precisa ser maior que zero!');
|
|
return
|
|
}
|
|
tipoPagamento = tipo
|
|
$('.modal-cartao').modal('show')
|
|
}
|
|
|
|
function calculaTotal(){
|
|
let total = 0
|
|
let qtdItens = 0
|
|
|
|
$('.sub_total_linha').each(function () {
|
|
total += convertMoedaToFloat($(this).text())
|
|
// qtdItens += convertMoedaToFloat($(this).prev().text())
|
|
})
|
|
|
|
setTimeout(() => {
|
|
$('.soma-produtos').text("R$ " + convertFloatToMoeda(total))
|
|
$('.total-itens').text($('.itens tbody tr').length)
|
|
}, 10)
|
|
|
|
let desconto = convertMoedaToFloat($('.desconto').text())
|
|
let acrescimo = convertMoedaToFloat($('.acrescimo').text())
|
|
let valor_frete = convertMoedaToFloat($('.valor_frete').text())
|
|
|
|
$('.total-venda').text("R$ " + convertFloatToMoeda(total+acrescimo-desconto+valor_frete))
|
|
}
|
|
|
|
function removeItem(id){
|
|
let temp = itens.filter((x) => {
|
|
return x._id != id
|
|
})
|
|
itens = temp
|
|
montaHtml()
|
|
}
|
|
|
|
var __editId = null
|
|
function editItem(id){
|
|
let temp = itens.find((x) => {
|
|
return x._id == id
|
|
})
|
|
if(temp){
|
|
|
|
__editId = id
|
|
//abrir modal editar
|
|
console.log(temp)
|
|
$('.modal-edit-item').modal('show')
|
|
$('.modal-edit-item .modal-title').text(temp.produto_nome)
|
|
$('.modal-edit-item #inp-valor_unitario_edit').val(convertFloatToMoeda(temp.valor_unitario))
|
|
$('.modal-edit-item #inp-quantidade_edit').val((temp.quantidade))
|
|
}
|
|
}
|
|
|
|
$("body").on("click", ".editar-item", function () {
|
|
if(__editId){
|
|
let valor = convertMoedaToFloat($('.modal-edit-item #inp-valor_unitario_edit').val())
|
|
let quantidade = convertMoedaToFloat($('.modal-edit-item #inp-quantidade_edit').val())
|
|
|
|
for(let i=0; i<itens.length; i++){
|
|
if(itens[i]._id == __editId){
|
|
itens[i].quantidade = quantidade
|
|
itens[i].valor_unitario = valor
|
|
itens[i].sub_total = valor * quantidade
|
|
}
|
|
}
|
|
|
|
naoAlteraQtd = 1
|
|
|
|
setTimeout(() => {
|
|
montaHtml()
|
|
}, 100)
|
|
$("#inp-codigo-barras").val('');
|
|
setTimeout(() => {
|
|
naoAlteraQtd = 0
|
|
}, 3000)
|
|
}
|
|
})
|
|
|
|
$("body").on("blur", "#inp-valor_unitario", function () {
|
|
let qtd = $("#inp-quantidade").val();
|
|
let value_unit = $(this).val();
|
|
|
|
let valor_minimo_venda = parseFloat($('#produto_id').find('option:selected').data('valor_minimo_venda'))
|
|
value_unit = convertMoedaToFloat(value_unit);
|
|
|
|
if(value_unit < valor_minimo_venda){
|
|
$(this).val(convertFloatToMoeda(valor_minimo_venda))
|
|
toastr.info(`Valor minímo para este produto é R$ ${convertFloatToMoeda(valor_minimo_venda)}`);
|
|
value_unit = valor_minimo_venda
|
|
}
|
|
|
|
qtd = convertMoedaToFloat(qtd);
|
|
$("#inp-sub_total").val(convertFloatToMoeda(qtd * value_unit));
|
|
})
|
|
|
|
$("body").on("blur", "#inp-quantidade", function () {
|
|
let qtd = $(this).val();
|
|
let value_unit = $("#inp-valor_unitario").val()
|
|
value_unit = convertMoedaToFloat(value_unit);
|
|
qtd = convertMoedaToFloat(qtd);
|
|
$("#inp-sub_total").val(convertFloatToMoeda(qtd * value_unit));
|
|
})
|
|
|
|
// $('#inp-pesquisa').on('keyup', function () {
|
|
// const termo = $(this).val().toLowerCase();
|
|
// $('.btn-categoria').removeClass('btn-primary')
|
|
// $('.categoria-0').addClass('btn-primary')
|
|
// $('.prod').each(function () {
|
|
// const texto = $(this).text().toLowerCase();
|
|
// if (texto.indexOf(termo) > -1) {
|
|
// $(this).show();
|
|
// } else {
|
|
// $(this).hide();
|
|
// }
|
|
// });
|
|
// });
|
|
|
|
let timer;
|
|
$('#inp-pesquisa').on('keyup', function() {
|
|
clearTimeout(timer);
|
|
const termo = $(this).val().toLowerCase().trim();
|
|
|
|
timer = setTimeout(() => {
|
|
$('.btn-categoria').removeClass('btn-primary');
|
|
$('.categoria-0').addClass('btn-primary');
|
|
|
|
if (termo === "") {
|
|
// Se o campo estiver vazio, mostra tudo de forma rápida
|
|
$('.prod').show();
|
|
return;
|
|
}
|
|
|
|
$('.prod').each(function () {
|
|
const texto = $(this).text().toLowerCase();
|
|
$(this).toggle(texto.includes(termo));
|
|
});
|
|
}, 300); // espera 300ms depois da digitação
|
|
});
|
|
|
|
function selecionaCategoria(categoria_id){
|
|
$('.btn-categoria').removeClass('btn-primary')
|
|
$('.categoria-'+categoria_id).addClass('btn-primary')
|
|
|
|
$('.prod').each(function () {
|
|
if(categoria_id == 0){
|
|
$(this).show()
|
|
}else{
|
|
const categoria = $(this).find('.categoria').val();
|
|
if (categoria_id == categoria) {
|
|
$(this).show();
|
|
} else {
|
|
$(this).hide();
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
$('#btn_nao_fiscal').click(() => {
|
|
emitirNfce = false
|
|
salvarVenda()
|
|
})
|
|
|
|
$(document).on('click', '.btn-fiscal', function(){
|
|
$('.modal-finalizar').modal('hide')
|
|
})
|
|
|
|
$(document).on('click', '#btn_fiscal', function(){
|
|
emitirNfce = true
|
|
salvarVenda()
|
|
})
|
|
|
|
function vendaSuspensa(){
|
|
$.get(path_url + "api/frenteCaixa/venda-suspensas",
|
|
{
|
|
empresa_id: $('#empresa_id').val(),
|
|
})
|
|
.done((data) => {
|
|
// console.log(data)
|
|
$('#vendas_suspensas').modal('show')
|
|
$('.table-vendas-suspensas tbody').html(data)
|
|
})
|
|
.fail((e) => {
|
|
console.log(e);
|
|
toastr.error("Não foi possivel buscar as vendas suspensas!")
|
|
});
|
|
}
|
|
|
|
$("body").on("click", ".btn-delete", function (e) {
|
|
|
|
e.preventDefault();
|
|
var form = $(this).parents("form").attr("id");
|
|
|
|
swal({
|
|
title: "Você está certo?",
|
|
text: "Uma vez deletado, você não poderá recuperar esse item novamente!",
|
|
icon: "warning",
|
|
buttons: true,
|
|
buttons: ["Cancelar", "Excluir"],
|
|
dangerMode: true,
|
|
}).then((isConfirm) => {
|
|
if (isConfirm) {
|
|
|
|
document.getElementById(form).submit();
|
|
} else {
|
|
swal("", "Este item está salvo!", "info");
|
|
}
|
|
});
|
|
});
|
|
|
|
$("body").on("click", "#btn-suspender", function () {
|
|
swal({
|
|
title: "Você esta certo?",
|
|
text: "Deseja suspender esta venda?",
|
|
icon: "warning",
|
|
buttons: true,
|
|
buttons: ["Cancelar", "Suspender"],
|
|
}).then(confirm => {
|
|
if (confirm) {
|
|
console.clear()
|
|
let suspender = 1
|
|
salvarVenda(suspender)
|
|
}
|
|
});
|
|
})
|
|
|
|
let travaSalvar = false;
|
|
function salvarVenda(suspender = 0){
|
|
|
|
if (travaSalvar) {
|
|
console.log("Clique duplo bloqueado!");
|
|
return;
|
|
}
|
|
|
|
travaSalvar = true;
|
|
setTimeout(() => {
|
|
travaSalvar = false;
|
|
}, 1200);
|
|
|
|
if($("#definir_vendedor_pdv").val() == 1 && !$('#vendedor').val()){
|
|
openModalVendedor()
|
|
toastr.warning("Selecione o vendedor para finalizar!")
|
|
return
|
|
}
|
|
|
|
let json = {
|
|
_id: Math.floor(Math.random() * (10000000000 - 1 + 1)) + 1,
|
|
itens: itens,
|
|
fatura: fatura,
|
|
tipo_pagamento: tipoPagamento,
|
|
cliente_id: $('#cliente').val(),
|
|
cliente_nome: $('#cliente').val() ? $('#cliente option:selected').text() : 'Consumidor final',
|
|
empresa_id: $('#empresa_id').val(),
|
|
usuario_id: $('#usuario_id').val(),
|
|
funcionario_id: $('#vendedor').val(),
|
|
cliente_cpf_cnpj: $('#inp-cliente_cpf_cnpj').val(),
|
|
cliente_nome: $('#inp-cliente_nome').val(),
|
|
desconto: convertMoedaToFloat($('.desconto').text()),
|
|
acrescimo: convertMoedaToFloat($('.acrescimo').text()),
|
|
valor_frete: convertMoedaToFloat($('.valor_frete').text()),
|
|
observacao: $('.modal-observacao #inp-observacao').val(),
|
|
troco: convertMoedaToFloat($('.valor-troco').text()),
|
|
valor_recebido: convertMoedaToFloat($('#inp-valor_recebido').val()),
|
|
lista_id: null,
|
|
valor_total: convertMoedaToFloat($('.total-venda').text()),
|
|
valor_produtos: convertMoedaToFloat($('.soma-produtos').text()),
|
|
venda_suspensa_id: $('#venda_suspensa_id').val(),
|
|
data_atual: new Date().toLocaleString("pt-BR")
|
|
}
|
|
console.clear()
|
|
|
|
// console.log("salvando", json)
|
|
// return;
|
|
|
|
let url = path_url + 'api/frenteCaixa/storepdv3'
|
|
if(suspender == 1){
|
|
url = path_url + 'api/frenteCaixa/suspender3'
|
|
}
|
|
|
|
if($('#venda_id').val() > 0){
|
|
json.venda_id = $('#venda_id').val()
|
|
url = path_url + 'api/frenteCaixa/updatepdv3'
|
|
}
|
|
|
|
$.post(url, json)
|
|
.done((success) => {
|
|
// console.log(success)
|
|
|
|
if (emitirNfce == true) {
|
|
gerarNfce(success)
|
|
} else {
|
|
if(suspender == 0){
|
|
swal({
|
|
title: "Sucesso",
|
|
text: "Venda finalizada com sucesso, deseja imprimir o comprovante?",
|
|
icon: "success",
|
|
buttons: true,
|
|
buttons: ["Não", "Sim"],
|
|
dangerMode: true,
|
|
}).then((isConfirm) => {
|
|
if (isConfirm) {
|
|
imprimirNaoFiscal(success.id)
|
|
limpaFormulario()
|
|
} else {
|
|
limpaFormulario()
|
|
}
|
|
|
|
if($('#venda_id').val() > 0){
|
|
location.href = '/frontbox/create';
|
|
}
|
|
|
|
});
|
|
}
|
|
else if(suspender == 1){
|
|
toastr.success("Venda suspensa!")
|
|
limpaFormulario()
|
|
}
|
|
}
|
|
}).fail((err) => {
|
|
if(!$('.d-offline').hasClass('d-none')){
|
|
try {
|
|
let vendasOff = JSON.parse(localStorage.getItem("vendas-off-slym")) || [];
|
|
|
|
vendasOff = vendasOff.filter(v => v._id !== json._id);
|
|
vendasOff.push(json)
|
|
localStorage.setItem("vendas-off-slym", JSON.stringify(vendasOff))
|
|
toastr.warning("Não foi possível salvar esta venda no servidor, armazenado local para enviar depois!")
|
|
|
|
limpaFormulario()
|
|
} catch (e) {
|
|
console.error("Erro ao salvar venda offline", e);
|
|
toastr.err("Falha ao salvar venda offline. Verifique o armazenamento!")
|
|
}
|
|
|
|
}else{
|
|
swal("Erro", "Algo deu errado ao salvar venda!", "error")
|
|
}
|
|
console.log(err)
|
|
})
|
|
|
|
setTimeout(() => {
|
|
atualizarBotaoOffline()
|
|
}, 2000)
|
|
}
|
|
|
|
function gerarNfce(venda) {
|
|
$.post(path_url + "api/nfce_painel/emitir", {
|
|
id: venda.id,
|
|
})
|
|
.done((success) => {
|
|
swal("Sucesso", "NFCe emitida " + success.recibo + " - chave: [" + success.chave + "]", "success")
|
|
.then(() => {
|
|
window.open(path_url + 'nfce/imprimir/' + venda.id, "_blank")
|
|
setTimeout(() => {
|
|
limpaFormulario()
|
|
}, 100)
|
|
})
|
|
})
|
|
.fail((err) => {
|
|
console.log(err)
|
|
limpaFormulario()
|
|
swal("Algo deu errado", err.responseJSON, "error").then(() => {
|
|
toastr.warning(
|
|
'A NFCe foi rejeitada, porém a venda foi concluída com sucesso. Você pode transmiti-la posteriormente na lista de vendas do PDV.'
|
|
);
|
|
imprimirNaoFiscal(venda.id)
|
|
})
|
|
})
|
|
}
|
|
|
|
function imprimirNaoFiscal(id){
|
|
let impressao_sem_janela_cupom = $('#impressao_sem_janela_cupom').val()
|
|
if(impressao_sem_janela_cupom == 0){
|
|
var disp_setting="toolbar=yes,location=no,";
|
|
disp_setting+="directories=yes,menubar=yes,";
|
|
disp_setting+="scrollbars=yes,width=850, height=600, left=100, top=25";
|
|
|
|
var docprint=window.open(path_url+"frontbox/imprimir-nao-fiscal/"+id,"",disp_setting);
|
|
|
|
docprint.focus();
|
|
}else{
|
|
window.open(path_url+"frontbox/imprimir-nao-fiscal-html/"+id)
|
|
}
|
|
}
|
|
|
|
function limpaFormulario(){
|
|
console.clear()
|
|
$('#inp-valor_desconto').val("")
|
|
$('#inp-valor_acrescimo').val("")
|
|
$('.desconto').text("R$ 0,00")
|
|
$('.acrescimo').text("R$ 0,00")
|
|
$('.valor_frete').text("R$ 0,00")
|
|
$('.valor-troco').text("R$ 0,00")
|
|
$('#inp-valor_recebido').val('')
|
|
$('#inp-pesquisa').val('')
|
|
itens = []
|
|
fatura = []
|
|
emitirNfce = false
|
|
cliente = null
|
|
$('.itens tbody').html('')
|
|
|
|
if($('#cliente_padrao').val() == 0){
|
|
$('#cliente').val('').change()
|
|
$('.txt-cliente').text('Cliente')
|
|
}
|
|
$('#inp-cliente_cpf_cnpj').val('')
|
|
$('#vendedor').val('').change()
|
|
$('.modal-observacao #inp-observacao').val('')
|
|
$('.totalizador-observacao').removeClass('text-primary')
|
|
|
|
if($('#lista_preco_id').val()){
|
|
produtos.map((x) => {
|
|
x.valor_unitario = x['valor_original']
|
|
$('.card-prod-'+x.id).find('.valor-produto').text("R$ " + convertFloatToMoeda(x.valor_unitario))
|
|
})
|
|
}
|
|
$('#lista_preco_id').val('').change()
|
|
|
|
$('.txt-vendedor').text('Vendedor')
|
|
|
|
let $tbody = $(".modal-fatura .table-dynamic tbody");
|
|
let $primeiraLinha = $tbody.find("tr:first").clone();
|
|
$primeiraLinha.show();
|
|
|
|
$primeiraLinha.find("input").val("");
|
|
$primeiraLinha.find(".tipo_pagamento").select2("destroy");
|
|
$primeiraLinha.find(".select2-container").remove();
|
|
|
|
$primeiraLinha.find("select").val("").trigger("change");
|
|
$tbody.html($primeiraLinha);
|
|
|
|
$('.tipo_pagamento').select2({
|
|
|
|
width: $(this).data("width")
|
|
? $(this).data("width")
|
|
: $(this).hasClass("w-100")
|
|
? "100%"
|
|
: "style",
|
|
placeholder: $(this).data("placeholder"),
|
|
allowClear: Boolean($(this).data("allow-clear")),
|
|
dropdownParent: $('.modal-fatura')
|
|
});
|
|
|
|
calculaTotal()
|
|
$('.modal-finalizar').modal('hide')
|
|
|
|
if($("#definir_vendedor_pdv").val() == 1){
|
|
openModalVendedor()
|
|
}
|
|
}
|
|
|
|
function reiniciarVenda(){
|
|
swal({
|
|
title: "Alerta",
|
|
text: "Deseja reiniciar a venda?",
|
|
icon: "warning",
|
|
buttons: true,
|
|
buttons: ["Não", "Sim"],
|
|
dangerMode: true,
|
|
}).then((isConfirm) => {
|
|
if (isConfirm) {
|
|
limpaFormulario()
|
|
}
|
|
|
|
});
|
|
}
|
|
|