var adicionais = [] var sabores_selecionados = [] var adicionais_id = [] var valor_adicional = 0 $(document).on("click", ".sacola-adicionar", function (e) { let validateMensagem = [] $(".minimo_escolha_valida").each(function (e, v) { if($(this).val() == 0){ let categoria_nome = $(this).prev().val() let minimo = $(this).prev().prev().val() validateMensagem.push("Selecione ao menos " + minimo + " item para adicional " + categoria_nome + "") } }) $(".maximo_escolha").each(function (e, v) { if($(this).val() > 0){ let categoria_nome = $(this).prev().prev().val() let conta = $(this).next().val() let maximo = $(this).val() console.log(maximo) console.log(conta) if(conta > maximo){ validateMensagem.push("Selecione no máximo " + maximo + " para adicional " + categoria_nome + "") } } }) setTimeout(() => { if(validateMensagem.length > 0){ validateMensagem.map((m) => { toastr.warning(m) }) }else{ $(".form-modal-item").submit() } }, 100) }) $(document).on("click", ".opcao", function () { $('.opcao').removeClass('active') $('.opcoes-input').html('') var valor = $(this).attr('adicional-valor'); var id = $(this).attr('adicional-id'); var categoria_id = $(this).attr('categoria-adicional-id'); if(adicionais_id.includes(id)){ adicionais_id = adicionais.filter((x) => { return x != id }) adicionais = adicionais.filter((x) => { return x.id != id }) }else{ adicionais.push({id: id, valor: valor, categoria_id: categoria_id}) adicionais_id.push(id) } let minimo_escolha = $('.adicional_categoria_'+categoria_id).find('.minimo_escolha').val() if(minimo_escolha > 0){ let minimo_escolha_valida = 0 adicionais.map((x) => { if(x.categoria_id == categoria_id){ minimo_escolha_valida = 1 } }) setTimeout(() => { $('.adicional_categoria_'+categoria_id).find('.minimo_escolha_valida').val(minimo_escolha_valida) }, 50) } let maximo_escolha = $('.adicional_categoria_'+categoria_id).find('.maximo_escolha').val() if(maximo_escolha > 0){ let minimo_escolha_conta = 0 adicionais.map((x) => { if(x.categoria_id == categoria_id){ minimo_escolha_conta++ } }) setTimeout(() => { $('.adicional_categoria_'+categoria_id).find('.maximo_escolha_contador').val(minimo_escolha_conta) }, 50) } setTimeout(() => { percorreAdicionais(adicionais) }, 10) }); $(".btn-delete").on("click", 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"); } }); }); function percorreAdicionais(adicionais){ valor_adicional = 0 adicionais.map((x) => { $('.op_'+x.id).addClass('active') $('.opcoes-input').append('') valor_adicional += parseFloat(x.valor) }) setTimeout(() => { atualizaSubTotal() }, 10) } $(document).on("click", ".campo-numero .decrementar", function () { var valor = parseInt( $(this).siblings('input').val() ); var newvalor = valor-1; if( newvalor >= 1 ) { $(this).siblings('input').val(newvalor); } else { $(this).siblings('input').val(1); } atualizaSubTotal() $(this).siblings('input').trigger("change"); }); $(document).on("click", ".campo-numero .incrementar", function () { var valor = parseInt( $(this).siblings('input').val() ); var newvalor = valor+1; $(this).siblings('input').val(newvalor); $(this).siblings('input').trigger("change"); atualizaSubTotal() }); function atualizaSubTotal(){ let qtd = $('#quantidade').val() let valor_unitario = $('#valor_unitario_produto').val() let total = qtd * (parseFloat(valor_unitario) + parseFloat(valor_adicional)) $('.subtotal').html('Total: R$ ' + convertFloatToMoeda(total)); $('#inp-sub_total').val(total); } function convertMoedaToFloat(value) { if (!value) { return 0; } var number_without_mask = value.replaceAll(".", "").replaceAll(",", "."); return parseFloat(number_without_mask.replace(/[^0-9\.]+/g, "")); } function convertFloatToMoeda(value) { value = parseFloat(value) return value.toLocaleString("pt-BR", { minimumFractionDigits: 2, maximumFractionDigits: 2 }); } $(document).on("keyup", "#inp-pesquisa_sabor", function () { let pesquisa = $(this).val() let tamanho_id = $('#tamanho_id').val() let produto_id = $('#produto_id').val() if(!tamanho_id){ swal("Atenção", "Selecione o tamanho primeiro", "warning") return; } if(pesquisa.length > 1){ $.get(path_url + 'api/delivery-link/pesquisa-pizza', { pesquisa: pesquisa, tamanho_id: tamanho_id, produto_id: produto_id, empresa_id: $('#inp-empresa_id').val(), }).done((res) => { console.clear() $('.div-sabores').html(res) }).fail((err) => { console.log(err) }) } }); $(document).on("change", "#tamanho_id", function () { let pesquisa = $("#inp-pesquisa_sabor").val() let tamanho_id = $('#tamanho_id').val() let produto_id = $('#produto_id').val() if(pesquisa.length > 1){ $.get(path_url + 'api/delivery-link/pesquisa-pizza', { pesquisa: pesquisa, tamanho_id: tamanho_id, produto_id: produto_id, empresa_id: $('#inp-empresa_id').val(), }).done((res) => { console.clear() $('.div-sabores').html(res) montaSabores() }).fail((err) => { console.log(err) }) }else{ $.get(path_url + 'api/delivery-link/monta-pizza', { sabores_selecionados: sabores_selecionados, produto_id: produto_id, tamanho_id: tamanho_id }).done((res) => { console.clear() $('.total-pizza').text('R$ ' + convertFloatToMoeda(res.valor_pizza)) }).fail((err) => { console.log(err) }) setTimeout(() => { validaValorPizza() }, 500) } }); function seleciona_tamanho(produto_id){ if(!sabores_selecionados.includes(produto_id)){ sabores_selecionados.push(produto_id) } setTimeout(() => { console.log(sabores_selecionados) montaSabores() }, 10) } function remove_sabor(produto_id){ let pizza_princial = $('#produto_id').val() if(pizza_princial == produto_id){ toastr.warning("Não é possível remover o sabor principal!") return; } sabores_selecionados = sabores_selecionados.filter((x) => { return x != produto_id }) setTimeout(() => { console.log(sabores_selecionados) montaSabores() }, 10) } function validaValorPizza(){ let total_pizza = convertMoedaToFloat($('.total-pizza').text()) if(total_pizza > 0){ $('.sacola-adicionar').removeAttr('disabled') }else{ $('.sacola-adicionar').attr('disabled', 1) } } function montaSabores(){ $('.sabores-input').html('') let produto_id = $('#produto_id').val() let tamanho_id = $('#tamanho_id').val() $.get(path_url + 'api/delivery-link/monta-pizza', { sabores_selecionados: sabores_selecionados, produto_id: produto_id, tamanho_id: tamanho_id }).done((res) => { console.clear() $('.div-sabores-selecionados').html(res.view) console.log(res) res.sabores.map((x) => { $('.sabores-input').append('') }) $('.total-pizza').text('R$ ' + convertFloatToMoeda(res.valor_pizza)) $('#inp-sub_total').val(res.valor_pizza); }).fail((err) => { console.log(err) toastr.warning(err.responseText) }) setTimeout(() => { validaValorPizza() }, 100) }