Farmácias Independente | Medicamentos e Produtos de Saúde de Qualidade (2024)

Página Inicial > Salgadinho Doritos Flamin Hot 60g

Farmácias Independente | Medicamentos e Produtos de Saúde de Qualidade (11)

Farmácias Independente | Medicamentos e Produtos de Saúde de Qualidade (12)

Farmácias Independente | Medicamentos e Produtos de Saúde de Qualidade (13) Farmácias Independente | Medicamentos e Produtos de Saúde de Qualidade (14) Farmácias Independente | Medicamentos e Produtos de Saúde de Qualidade (15) Farmácias Independente | Medicamentos e Produtos de Saúde de Qualidade (16) Farmácias Independente | Medicamentos e Produtos de Saúde de Qualidade (17) (0)

Marca: Pepsico do Brasil

Código: 94046002 | EAN: 7892840822378

Farmácias Independente | Medicamentos e Produtos de Saúde de Qualidade (18)

Favoritar

Consulte estoque disponível em lojas próximas:

Consultar estoque

Farmácias Independente | Medicamentos e Produtos de Saúde de Qualidade (20) Utilizar minha localização

Farmácias Independente | Medicamentos e Produtos de Saúde de Qualidade (21)

Lojas com produto disponível na sua região:

Localização mapa

Informações sobre este produto

Código

94046002

EAN

7892840822378

Opiniões de quem já comprou

0,0

Farmácias Independente | Medicamentos e Produtos de Saúde de Qualidade (22) Farmácias Independente | Medicamentos e Produtos de Saúde de Qualidade (23) Farmácias Independente | Medicamentos e Produtos de Saúde de Qualidade (24) Farmácias Independente | Medicamentos e Produtos de Saúde de Qualidade (25) Farmácias Independente | Medicamentos e Produtos de Saúde de Qualidade (26)

0 Respostas

Saiba como funciona a recorrência

- Tenha a praticidade de receber o seu produto em entregas recorrentes de acordo com o período de sua preferência.

- Sem taxas de adesão.

- Cancele ou gerencie o tempo entre as entregas quando quiser.

- O preço do produto e da entrega não são fixos e podem variar de acordo com os valores em vigência no site no momento em que o seu pedido é criado.

Envie sua receita
`; if (index === $('.dots-preview').children().length - 1) html += ``; return html; }, }, navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, on: { init: function () { resize_swiper_produto(); }, }, }); $(window).on('load', function () { resize_swiper_produto(); $('#tempo-recorrencia').select2({ theme: 'bootstrap', dropdownParent: $('.bloco-recorrencia'), minimumResultsForSearch: -1 }) $('#tempo-recorrencia').on('change', function(){ $('[data-target="receba-a-partir-de"]').hide(250) $('[data-target="receba-a-partir-de"]').html(``) let periodos_recorrencia = [] let recorrencia_selecionada = {} let dias_para_proxima_recorrencia = 0 let dia_recorrencia = '' let mes_recorrencia = '' periodos_recorrencia.push({ id: '2', periodo: 30, duracao: 6, }) periodos_recorrencia.push({ id: '1', periodo: 1, duracao: 4, }) periodos_recorrencia.push({ id: '3', periodo: 1, duracao: 1, }) recorrencia_selecionada = periodos_recorrencia.find(rec => { return rec.id == $('#tempo-recorrencia').val() }) if(recorrencia_selecionada && Object.keys(recorrencia_selecionada).length) dias_para_proxima_recorrencia = parseInt(recorrencia_selecionada.periodo) * parseInt(recorrencia_selecionada.duracao) if(dias_para_proxima_recorrencia){ dia_recorrencia = moment(new Date()).add(dias_para_proxima_recorrencia, 'days').format('DD') mes_recorrencia = moment(new Date()).add(dias_para_proxima_recorrencia, 'days').format('MMMM') } if(dia_recorrencia && mes_recorrencia){ $('[data-target="receba-a-partir-de"]').html(`Receba a partir de ${dia_recorrencia} de ${mes_recorrencia}`) $('[data-target="receba-a-partir-de"]').show(250) } }) }); $(window).resize(function () { resize_swiper_produto(); }); function qtdSelecionadaProduto(el){ let valor_antigo = parseInt($(el).attr('data-valor')) let valor_atual = parseInt($(el).val()) let valor_minimo = parseInt($(el).attr('data-limite-min')) let valor_maximo = parseInt($(el).attr('data-limite-max')) $(el).attr('data-valor', $(el).val()) $('[data-qtd_produto]').attr('data-qtd_produto', valor_atual); }

Farmácias Independente | Medicamentos e Produtos de Saúde de Qualidade (27) Cesta (0 itens)

* Promoção não válida para entrega via Correio

Subtotal: R$ 0,00

Frete: R$ 0,00

Desconto do programa: R$ 0,00

Total: R$ 0,00

Localização mapa

Endereço:

, - /

CEP:

Horário de funcionamento:

Seg a Sex:

Sáb:

Dom:

Telefone:

Serviços:

Selecione o horário que deseja receber

Divisão em pacotes

Farmácias Independente | Medicamentos e Produtos de Saúde de Qualidade (28)

Seus produtos foram agrupados em pacotes de acordo com o menor prazo de entrega que temos disponível.

Você pode selecionar a forma de entrega de cada pacote e dar andamento ao seu pedido clicando na seta.
- Entrega Express: Entregue em até 3h após a confirmação do seu pagamento.
- Entrega Agendada: Escolha o dia e período que for mais conveniente para você.

Retirada em Loja

Farmácias Independente | Medicamentos e Produtos de Saúde de Qualidade (29)

O serviço Retirada está disponível para 100% da Rede Farmácias Independente. Consulte através do CEP a disponibilidade de estoque do produto selecionado;

- Selecione a modalidade de entrega RETIRADA, escolha a loja mais conveniente, e retire a patir de 1 hora após aprovação do pedido.

- Frete Grátis sem mínimo de compra.

Qual o horário para retirada?

O horário de retirada varia de acordo com o horário de funcionamento da loja. Os horários são informados na Cesta de compras ao finalizar o pedido;

Posso pedir para alguém retirar no meu lugar?

Sim, ao selecionar a opção RETIRADA você terá opção de retirar por terceiros, onde deverá informar o CPF e Nome da pessoa autorizada a retirar o pedido;

Onde retiro o pedido ao chegar na loja ?

Chegando na loja, dirija-se ao balcão conforme sinalização da loja. Nossa equipe estará preparada para melhor atendê-lo.

Selecione a loja para retirar

QUANTIDADE DE PRODUTOS

Login Necessário

Este produto é comercializado de forma controlada e a conclusão da compra será realizada mediante o envio da receita médica.

Faça seu Login ou Cadastre-se para prosseguir.

Login Necessário

Realize seu Login ou Cadastre-se para prosseguir com a compra do produto com recorrência.

Login Necessário

Realize seu Login ou Cadastre-se para prosseguir com a compra do produto com recorrência.

Enviar receita(s)

Confirme os dados da sua compra

PACOTE 1: Escolha a Entrega

Endereço:

Desconto do programa: R$ 0,00

Total: R$ 0,00

Localização bloqueada

O acesso à localização não é permitida nesse navegador. Para conseguir filtrar apenas endereços próximos, você precisa utilizar outro navegador.

Localização não permitida

Essa aplicação requer à localização do seu navegador. Vá até as configurações do seu navegador e permita o acesso para conseguir utilizá-la. Se você bloqueou o acesso mas não clicou em 'lembrar essa decisão', recarregue a página e permita o acesso.

Farmácias Independente | Medicamentos e Produtos de Saúde de Qualidade (30)

Tabela de Preços Desconto do Programa

*Este desconto pode alterar de acordo com os itens da cesta, a quantidade do produto e o CPF, Cartão ou Cupom informado.

Login Necessário

Para participar do PBM (Programa de Benefício em Medicamentos) é necessário estar logado

Faça seu Login ou Cadastre-se

Cadastro no programa de desconto
Necessário aceitar o termo de LGPD abaixo

Para dar continuidade no processo de liberação de compra é necessário aceitar os termos de uso. Concluída esta etapa feche esta janela e solicite novamente o desconto.

Clique Aqui para acessar os termos de uso.

Necessário realizar o cadastro no Programa De Beneficíos

Para dar continuidade no processo de liberação de compra é necessário realizar a adesão ao programa do laboratório. Você será direcionado para uma página externa de nosso parceiro. Concluída esta etapa, feche esta janela e solicite novamente o desconto


Clique aqui para continuar

Dados Necessários

Cookies: a gente usa cookies para personalizar anúncios e melhorar a sua experiência no site. Ao continuar navegando, você concorda com a nossa Política de Privacidade.

${ this.is_controlado ? `

` : `` }

${this._produto.quantidade ? this._produto.quantidade : ""}

R$${this.valor} cada R$${this.valor_multiplicado}

${this.recorrencia && Object.keys(this.recorrencia).length ? `

Freq. de entrega:

${this.template_opcoes_recorrencia}

` : ``} `; } } Produto.prototype.formatarRecorrencia = function(recorrencia) { let string_recorrencia if(recorrencia.duracao){ if(recorrencia.recorrencia_codigo == 'semanal'){ if(recorrencia.duracao == 1){ string_recorrencia = `${recorrencia.duracao} semana` } else { string_recorrencia = `${recorrencia.duracao} semanas` } } else if(recorrencia.recorrencia_codigo == 'mensal'){ if(recorrencia.duracao == 1){ string_recorrencia = `${recorrencia.duracao} mês` } else { string_recorrencia = `${recorrencia.duracao} meses` } } else if(recorrencia.recorrencia_codigo == 'diario'){ if(recorrencia.duracao == 1){ string_recorrencia = `${recorrencia.duracao} dia` } else { string_recorrencia = `${recorrencia.duracao} dias` } } } return string_recorrencia } Produto.prototype.remover = function() { load("on", $(".asidebar")); $.ajax({ type: "POST", url: "/carrinho/remover/todos", data: { "csrfmiddlewaretoken": 'F6O5FYUDzBHTfb9P1f1qItahZI6DsBbHbXJsVF7BAdEe57T2MIZ8x8pnB8hVfnja', "hash_produto": this.hash, "token_nsu": this.token_nsu }, success: (data) => { load("off", $(".asidebar")); filtroParaDadosAnaliticos('RemoveFromCart', { value: this._produto.valor_ini * this._produto.quantidade, items: [{ id: this._produto.produto_id, price: this._produto.valor_ini, discount: this._produto.valor_desc, item_name: this._produto.produto__nm_url_ecommerce, promotion_name: this._produto.descontoprodutopreco__desconto__tipo_id, currency: "BRL", quantidade: this._produto.quantidade, index: this._produto.origem_posicao, item_list_name: this._produto.origem_descricao ? this._produto.origem_descricao : '', item_list_id: this._produto && this._produto.origem_descricao ? slugify(this._produto.origem_descricao) : '', item_brand: this._produto.marca ? this._produto.marca : '', item_category: this._produto.categoria ? this._produto.categoria : '', }] }) carrinho.instance._atualizarCarrinho(); }, error: (data) => { load("off", $(".asidebar")); toastr.error("Ocorreu um erro inesperado ao remover o produto do carrinho.", "Erro ao enviar"); } }); } Produto.prototype._selectItem = function() { filtroParaDadosAnaliticos('SelectItem', { item_list_name: this._produto.origem_descricao ? this._produto.origem_descricao : '', item_list_id: this._produto && this._produto.origem_descricao ? slugify(this._produto.origem_descricao) : '', items: [{ id: this._produto.produto_id, price: this._produto.valor_ini, discount: this._produto.valor_desc, item_name: this._produto.produto__nm_url_ecommerce, promotion_name: this._produto.descontoprodutopreco__desconto__tipo_id, item_brand: this._produto.marca ? this._produto.marca : '', item_category: this._produto.categoria ? this._produto.categoria : '', index: this._produto.origem_posicao, }], }); } Produto.prototype._setJsonRecorrencia = function(recorrencia_id) { let novaRecorrencia = {} if(this._pacote && this._pacote._carrinho && this._pacote._carrinho.lista_recorrencias){ novaRecorrencia = this._pacote._carrinho.lista_recorrencias.find(rec => { return rec.id == recorrencia_id }) } if(novaRecorrencia && Object.keys(novaRecorrencia).length) this.recorrencia = novaRecorrencia; this.infos_recorrencia = { "codigo": this.recorrencia && Object.keys(this.recorrencia).length ? this.recorrencia.id : "", "tipo_entrega": this._pacote.entrega ? this._pacote.entrega.tipo_entrega : "", "filial_entrega": this._pacote.entrega && this._pacote.entrega.value && this._pacote.entrega.value.filial ? this._pacote.entrega.value.filial.cd_filial : "", "endereco_entrega": this._pacote && this._pacote._carrinho && this._pacote._carrinho.endereco && this._pacote._carrinho.endereco.value ? this._pacote._carrinho.endereco.value.id : "", } this._pacote._carregarTemplate() } function FaixaHorario(id, faixa, _faixas) { this.id = id; this.faixa = faixa; this._selecionado = false; this._faixas = _faixas; } FaixaHorario.prototype = { get selecionado() { return this._selecionado; }, set selecionado(value) { this._selecionado = value; this._faixas._carregarTemplate(); }, get template() { return `

Farmácias Independente | Medicamentos e Produtos de Saúde de Qualidade (31)

${this.faixa.descricao_combobox.split('%quebralinha%')[0]}

${this.faixa.descricao_combobox.split('%quebralinha%')[1]}

`; } } function FaixaHorarioComponent(id, _entrega) { this.id = id; this._entrega = _entrega; this._faixas = null; this._carregarFaixas(); } FaixaHorarioComponent.prototype = { get valid() { return this.value ? true : false; }, get value() { const faixa = this._faixas ? this._faixas.filter((faixa) => { return faixa.selecionado }) : []; return faixa.length > 0 ? faixa[0] : null; }, set value(value) { if (!this.value || this.value.id !== value) { this._faixas.map((faixa) => { faixa.id === value ? faixa.selecionado = true : faixa.selecionado ? faixa.selecionado = false : ''; if (faixa.id === value) { this._entrega.faixa_entrega = faixa.faixa; onToggleCarrinhoPopUp('', '#popupAgendada'); } }); } }, get faixas() { return this._faixas; }, set faixas(value) { const faixas = []; let i = 0; for (const faixa of value) { i++; faixas.push(new FaixaHorario(i, faixa, this)); } this._faixas = faixas; this._carregarTemplate(); }, get template() { return $.map(this._faixas, (elem) => { return elem.template; }).join(''); } } FaixaHorarioComponent.prototype._carregarFaixas = function() { toastr.options.target = null; const _pacote = $.extend(true, {}, this._entrega._entrega_component._pacote); toastr.options.target = 'body'; delete _pacote._carrinho; delete _pacote.filial; delete _pacote.entregas; delete _pacote.entrega; delete _pacote.produtos; const _produtos = []; for (const produto of _pacote._produtos) { const _produto = $.extend(true, {}, produto); delete _produto._pacote; _produtos.push(_produto); } _pacote._produtos = _produtos; load("on", $("#popupEntrega")); $.ajax({ type: "POST", url: "/entrega/agendada", data: { "csrfmiddlewaretoken": "F6O5FYUDzBHTfb9P1f1qItahZI6DsBbHbXJsVF7BAdEe57T2MIZ8x8pnB8hVfnja", carrinho_completo: _pacote.carrinho_completo, cd_filial: this._entrega.filial.cd_filial, tempo: this._entrega.dadosComplemento.tempo, }, success: (data) => { load("off", $("#popupEntrega")); this.faixas = data.value; onToggleCarrinhoPopUp('open', '#popupAgendada'); }, error: (data) => { load("off", $("#popupEntrega")); } }); } FaixaHorarioComponent.prototype._carregarTemplate = function() { $('#carrinho-horarios-agendada').html(this.template); } function Agendada(id, tipo_codigo, _entrega) { this.id = id; this.tipo_codigo = tipo_codigo; this._entrega = _entrega; } Agendada.prototype = { get template() { let html_template; if (this._entrega.faixa_entrega) { html_template = `

${this._entrega.faixa_entrega.descricao_combobox.split('%quebralinha%')[0]}

${this._entrega.faixa_entrega.descricao_combobox.split('%quebralinha%')[1]}

`; } else { html_template = `

Disponibilidades

Selecione o horário que deseja receber seu pacote

`; } return `

Selecione o horário que deseja receber

`; } } Agendada.prototype._selecionar_faixa = function() { if (!this._faixa_componente) { this._faixa_componente = new FaixaHorarioComponent(this.id, this._entrega); } else { onToggleCarrinhoPopUp('open', '#popupAgendada'); } } function Loja(id, filial, _lojas) { this.id = id; this.filial = filial; this._selecionado = false; this._lojas = _lojas; } Loja.prototype = { get selecionado() { return this._selecionado; }, set selecionado(value) { this._selecionado = value; this._lojas._carregarTemplate(); }, get horarios() { let html_horarios = ``; if (this.filial.hr_abertura_util !== '00:00' && this.filial.hr_fechamento_util !== '00:00') { html_horarios += `Seg a sex: ${this.filial.hr_abertura_util && this.filial.hr_fechamento_util ? this.filial.hr_abertura_util + ` às ` + this.filial.hr_fechamento_util : 'Fechado'} | `; } else { html_horarios += `Seg a sex: 24h | `; } if (this.filial.hr_abertura_util !== '00:00' && this.filial.hr_fechamento_util !== '00:00') { html_horarios += `Sáb: ${this.filial.hr_abertura_sab && this.filial.hr_fechamento_sab ? this.filial.hr_abertura_sab + ` às ` + this.filial.hr_fechamento_sab : 'Fechado'} | `; } else { html_horarios += `Sáb: 24h | `; } if (this.filial.hr_abertura_util !== '00:00' && this.filial.hr_fechamento_util !== '00:00') { html_horarios += `Dom: ${this.filial.hr_abertura_dom && this.filial.hr_fechamento_dom ? this.filial.hr_abertura_dom + ` às ` + this.filial.hr_fechamento_dom : 'Fechado'}`; } else { html_horarios += `Dom: 24h | `; } return html_horarios; }, get template() { return ``; } } function LojasComponent(id, _entrega) { this.id = id; this._entrega = _entrega; this._lojas = null; this._carregarLojas(); } LojasComponent.prototype = { get valid() { return this.value ? true : false; }, get value() { const loja = this._lojas ? this._lojas.filter((loja) => { return loja.selecionado }) : []; return loja.length > 0 ? loja[0] : null; }, set value(value) { if (!this.value || this.value.id !== value) { this._lojas.map((loja) => { loja.id === value ? loja.selecionado = true : loja.selecionado ? loja.selecionado = false : ''; if (loja.id === value) { this._entrega.filial = loja.filial; onToggleCarrinhoPopUp('', '#popupLojas'); } }); } }, get lojas() { return this._lojas; }, set lojas(value) { const filiais = []; let i = 0; for (const filial of value) { i++ filiais.push(new Loja(filial.cd_localentrega, filial, this)); } this._lojas = filiais; this._carregarTemplate(); }, get template() { let html_template = ``; html_template += `

`; let lojas = this.lojas.filter((loja) => { let texto = `${loja.filial.nm_filial} ${loja.filial.endereco}, ${loja.filial.numero} - ${title(loja.filial.bairro)}, ${loja.filial.cidade} - ${loja.filial.uf}`.toLowerCase(); return texto.indexOf(this._entrega.retirada_filtro.toLowerCase()) > -1; }) html_template += $.map(lojas, (elem) => { return elem.template; }).join(''); html_template += `

`; return html_template; } } LojasComponent.prototype._carregarFiltros = function() { let html_template = `

Usar Minha Localização

`; $('#carrinho-lojas-pesquisa').html(html_template); } LojasComponent.prototype._carregarLojas = function() { toastr.options.target = null; const _pacote = $.extend(true, {}, this._entrega._entrega_component._pacote); toastr.options.target = 'body'; delete _pacote._carrinho; delete _pacote.filial; delete _pacote.entregas; delete _pacote.entrega; delete _pacote.produtos; const _produtos = []; for (const produto of _pacote._produtos) { const _produto = $.extend(true, {}, produto); delete _produto._pacote; _produtos.push(_produto); } _pacote._produtos = _produtos; load("on", $("#popupEntrega")); load("on", $("#popupLojas")); $.ajax({ type: "POST", url: "/entrega/buscar/retiradas", data: { "csrfmiddlewaretoken": "F6O5FYUDzBHTfb9P1f1qItahZI6DsBbHbXJsVF7BAdEe57T2MIZ8x8pnB8hVfnja", coordenadas: this._entrega.coordenadas, endereco_id: carrinho.instance.endereco && carrinho.instance.endereco.value ? carrinho.instance.endereco.value.id : '', cep: carrinho.instance.endereco && carrinho.instance.endereco.value ? carrinho.instance.endereco.value.cep : '', pacote: JSON.stringify(_pacote), tipo_entrega: this.id }, success: (data) => { load("off", $("#popupEntrega")); load("off", $("#popupLojas")); this._carregarFiltros(); this.lojas = data.lista_filiais; carrinho.instance.filiais_retirada = data.lista_filiais onToggleCarrinhoPopUp('open', '#popupLojas'); }, error: (data) => { load("off", $("#popupLojas")); load("off", $("#popupEntrega")); } }); } LojasComponent.prototype._carregarTemplate = function() { $('#carrinho-lojas').html(this.template); } function Retirada(id, tipo_codigo, _entrega) { this.id = id; this.tipo_codigo = tipo_codigo; this._entrega = _entrega; } Retirada.prototype = { get horarios() { let html_horarios = ``; if (this._entrega.filial.hr_abertura_util !== '00:00' && this._entrega.filial.hr_fechamento_util !== '00:00') { html_horarios += `Seg a sex: ${this._entrega.filial.hr_abertura_util && this._entrega.filial.hr_fechamento_util ? this._entrega.filial.hr_abertura_util + ` às ` + this._entrega.filial.hr_fechamento_util : 'Fechado'} | `; } else { html_horarios += `Seg a sex: 24h | `; } if (this._entrega.filial.hr_abertura_util !== '00:00' && this._entrega.filial.hr_fechamento_util !== '00:00') { html_horarios += `Sáb: ${this._entrega.filial.hr_abertura_sab && this._entrega.filial.hr_fechamento_sab ? this._entrega.filial.hr_abertura_sab + ` às ` + this._entrega.filial.hr_fechamento_sab : 'Fechado'} | `; } else { html_horarios += `Sáb: 24h | `; } if (this._entrega.filial.hr_abertura_util !== '00:00' && this._entrega.filial.hr_fechamento_util !== '00:00') { html_horarios += `Dom: ${this._entrega.filial.hr_abertura_dom && this._entrega.filial.hr_fechamento_dom ? this._entrega.filial.hr_abertura_dom + ` às ` + this._entrega.filial.hr_fechamento_dom : 'Fechado'}`; } else { html_horarios += `Dom: 24h | `; } return html_horarios; }, get template() { let html_template; let html_retirada; let titulo_retirada; let descricao_retirada; let nm_loja_retirada; if(this._entrega.nome === 'retirada'){ titulo_retirada = 'Selecione a loja para retirar'; nm_loja_retirada = 'Loja' descricao_retirada = 'Selecione a loja para retirar seu pacote'; } else { titulo_retirada = 'Selecione o local para retirar'; nm_loja_retirada = 'Local' descricao_retirada = 'Selecione o local para retirar seu pacote'; } if (this._entrega.filial) { html_template = `

${title(this._entrega.filial.nm_filial)} (${this._entrega.filial.cd_filial})

${title(this._entrega.filial.endereco)}, ${this._entrega.filial.numero} - ${title(this._entrega.filial.bairro)} - ${this._entrega.filial.cidade}/${this._entrega.filial.uf}

${this.horarios}

Ver mapa

`; } else { html_template = `

${nm_loja_retirada}

${descricao_retirada}

`; } if (this._entrega.retirada_terceiro) { let nm_completo = this._entrega.retirada_terceiro_nome; let cpf = this._entrega.retirada_terceiro_cpf; let telefone = this._entrega.retirada_terceiro_telefone; html_retirada = `
`; } else { html_retirada = ``; } return `

${titulo_retirada}

Observações

1 - Não retiramos a retirada de motoristas de Aplicativo - apenas pessoa Física

2 - Prazo para realizar a retirada na loja é de 5 dias úteis

3 - No caso de retirada por terceiro é obrigatório informar o nome do terceiro e a apresentação do documento de identificação no momento da retirada.

Autorizar outra pessoa a retirar

${html_retirada} `; } } Retirada.prototype._selecionar_loja = function() { if (!this._loja_componente) { this._loja_componente = new LojasComponent(this.id, this._entrega); } else { onToggleCarrinhoPopUp('open', '#popupLojas'); } } function Entrega(index, nome, _filial, nome_descritivo, vlr_frete, descricao, imagem, tipo_codigo, dadosComplemento, _entrega_component) { this._entrega_component = _entrega_component; this.index = index; this.nome = nome; this.dadosComplemento = dadosComplemento; this._valid = true; if (tipo_codigo !== 'retirada') { this.filial = _filial; } else { this.filial = null; } this.nome_descritivo = nome_descritivo; this._vlr_frete = vlr_frete; this.descricao = descricao; this.imagem = imagem; this.tipo_codigo = tipo_codigo; this._selecionado = false; if (_entrega_component && _entrega_component.value && _entrega_component.value.nome == nome) { this._selecionado = true; } } Entrega.prototype = { get filial() { return this._filial; }, set filial(value) { if (!this.filial || this.filial.cd_localentrega != value.cd_localentrega) { this._filial = value; this._entrega_component._carregarTemplate(); } }, get valid() { return this._valid; }, set valid(value) { this._valid = value; }, get faixa_entrega() { return this._faixa_entrega; }, set faixa_entrega(value) { this._faixa_entrega = value; this._entrega_component._carregarTemplate(); }, get retirada_filtro() { return this._retirada_filtro ? this._retirada_filtro : ''; }, set retirada_filtro(value) { this._retirada_filtro = value; this.entrega_complemento._loja_componente._carregarTemplate(); }, get proximas_mim() { return this._proximas_mim; }, set proximas_mim(value) { this._pegarLocalizacao(value); }, get coordenadas() { return this._coordenadas ? this._coordenadas : ''; }, set coordenadas(value) { this._coordenadas = value; }, get retirada_terceiro() { return this._retirada_terceiro; }, set retirada_terceiro(value) { if (value) { this._retirada_terceiro = true; } else { this._retirada_terceiro = false; } this._entrega_component._carregarTemplate(); }, get retirada_terceiro_nome() { return this._retirada_terceiro_nome; }, set retirada_terceiro_nome(value) { this._retirada_terceiro_nome = value; this.retirada_terceiro = 'on'; }, get retirada_terceiro_telefone() { return this._retirada_terceiro_telefone; }, set retirada_terceiro_telefone(value) { this._retirada_terceiro_telefone = value; this.retirada_terceiro = 'on'; }, get retirada_terceiro_cpf() { return this._retirada_terceiro_cpf; }, set retirada_terceiro_cpf(value) { this._retirada_terceiro_cpf = value; this.retirada_terceiro = 'on'; }, get vlr_frete() { return this._vlr_frete > 0 ? 'R$ ' + parseFloat(this._vlr_frete).toLocaleFixed(2) : 'Grátis'; }, set vlr_frete(value) { this._vlr_frete = value; }, get selecionado() { return this._selecionado; }, set selecionado(value) { this._selecionado = value; }, get entregaComplemento() { if (this._entrega_component.value && this.selecionado) { if (this.tipo_codigo == 'retirada') { this.entrega_complemento = new Retirada(this.nome, this.tipo_codigo, this); return this.entrega_complemento.template; } else if (this._entrega_component.value.nome === 'entrega_agendada') { this.entrega_complemento = new Agendada(this.nome, this.tipo_codigo, this); return this.entrega_complemento.template; } } return ''; }, get template() { return `

${this.nome_descritivo}

${this.vlr_frete}

${this.descricao}

`; } } Entrega.prototype._pegarLocalizacao = function (value) { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition( (position) => { this._proximas_mim = value; if(value){ this.coordenadas = `${position.coords.latitude}, ${position.coords.longitude}`; } else { this.coordenadas = ''; } this.entrega_complemento._loja_componente._carregarLojas(); }, (error) => { $('#modal_localizacao_nao_permitida').modal('show'); this._proximas_mim = ''; this.coordenadas = ''; this.entrega_complemento._loja_componente._carregarLojas(); } ); } else { $('#modal_localizacao_bloqueada').modal('show'); this._proximas_mim = ''; this.coordenadas = ''; this.entrega_complemento._loja_componente._carregarLojas(); } } function EntregaComponent(entregas, _pacote) { this.entregas = entregas; this._pacote = _pacote; } EntregaComponent.prototype = { get valid() { if (!this.value) { return false; } else { if (this.value.nome == 'entrega_agendada' || this.value.nome == 'agendada_estoque_zero') { if (!this.value.faixa_entrega) { toastr.error('Selecione o horário para receber o pacote', 'Erro'); this.value.valid = false; return false; } } else { if (!this.value.filial) { this.value.valid = false; toastr.error('Selecione a Loja para retirar seu pacote.', 'Erro'); return false; } if(this.value.retirada_terceiro && (!this.value.retirada_terceiro_nome || !this.value.retirada_terceiro_cpf || !this.value.retirada_terceiro_telefone)){ this.value.valid = false toastr.error('Preencha os campos obrigatórios de retirada por terceiro para prosseguir.', 'Erro'); return false; } if (carrinho.instance.pacotes[0].entrega.value.retirada_terceiro === true){ if ($("#cpf_terceiro").on('change')) { var cpf = document.getElementById('cpf_terceiro'); if (validaCPF(cpf.value)) { cpf.setCustomValidity(''); return true; } else { cpf.setCustomValidity('cpf invalido'); toastr.error('Houve um erro quanto a validação do CPF, por favor digite um CPF válido', 'Erro'); $(cpf).focus(); return false; } } } } } return true; }, get is_frete_gratis(){ if(this._pacote && this._pacote._carrinho && this._pacote._carrinho._cupom){ if(this._pacote._carrinho._cupom.is_frete_gratis){ return true; } else { return false; } } return false; }, get nome() { if (this.value && this.value.nome_descritivo) { return this.value.nome_descritivo + ' - ' + (this.value._vlr_frete === 'Grátis' && !this.is_frete_gratis ? this.value._vlr_frete : +this.value._vlr_frete > 0 && !this.is_frete_gratis ? 'R$ ' + parseFloat(this.value._vlr_frete).toLocaleFixed(2) : 'Grátis') } else { return null; } }, get value() { return this._value; }, set value(value) { if (value != this.value) { this.entregasDoTipo.filter((entrega) => { entrega.nome === value ? entrega.selecionado = true : entrega.selecionado = false; }); const entrega = this.entregasDoTipo.filter((entrega) => { return entrega.selecionado }); this._value = entrega.length > 0 ? entrega[0] : null; this._pacote._carrinho.cupom = ''; carrinho.instance.entrega_alterada = true; } this._logicaFrete(); this._carregarTemplate(); this._pacote._carregarTemplate(); if($('#ancora') && $('#ancora').offset()){ $('#carrinho-tipo-entregas').animate({ scrollTop: $('#ancora').offset().top / 3 }, 100); } if(this._value && this._value.entrega_complemento){ if(this._value.entrega_complemento._selecionar_loja){ this._value.entrega_complemento._selecionar_loja(); } else if (this._value.entrega_complemento._selecionar_faixa) { this._value.entrega_complemento._selecionar_faixa(); } } }, get tipo_entrega() { return this._tipo_entrega; }, set tipo_entrega(value) { this._tipo_entrega = value; this._carregarEntregas(); }, get entregasDoTipo() { return this._entregasDoTipo; }, set entregasDoTipo(value) { this._entregasDoTipo = value; this._carregarTemplate(); }, get template() { const template_entregas = `

${$.map(this.entregasDoTipo, (elem) => { return elem.template; }).join('')}

`; const retiradas_filtro = this.entregas.filter((val) => { if (val.tipo_codigo === 'retirada') { return val; } }); const entregas_filtro = this.entregas.filter((val) => { if (val.tipo_codigo === 'entrega') { return val; } }); let html_template = entregas_filtro.length > 0 ? `

Receber em casa

Entregas Express, Agendada e Normal

${this.tipo_entrega == 'entrega' ? template_entregas : ''} ${this.tipo_entrega == 'entrega' && this.value && this.value.tipo_codigo == 'entrega' && this.value.entregaComplemento ? this.value.entregaComplemento : ''} ` : ``; html_template += retiradas_filtro.length > 0 ? `

Compre e Retire

Retire na loja, com o carro ou por Armário

${this.tipo_entrega == 'retirada' ? `

Escolha como deseja retirar seu produto

${template_entregas} ` : ''} ${this.tipo_entrega == 'retirada' && this.value && this.value.tipo_codigo == 'retirada' && this.value.entregaComplemento ? this.value.entregaComplemento : ''} ` : ``; return html_template; } } EntregaComponent.prototype._logicaFrete = function () { let maior_frete = 0; let maior_entrega_nome = ''; let entregas = []; if(this._pacote && this._pacote._carrinho && this._pacote._carrinho.pacotes){ for (const index in this._pacote._carrinho.pacotes) { const pac = this._pacote._carrinho.pacotes[index]; if (pac.entrega && pac.entrega.value && (pac.entrega.value.tipo_codigo === 'entrega' && pac.entrega.value.nome !== 'correios')) { entregas.push(1); } // atualiza valores das entregas do front com a do back for (const entrega of pac.entrega.entregas) { if (pac.entrega.value && entrega.nome === pac.entrega.value.nome) { pac.entrega.value._vlr_frete = entrega.valor; } } // faz logica para pegar o frete mais caro das entregas que n sao correios for (const pacote of this._pacote._carrinho.pacotes) { let entrega = pacote.entrega.value; if ( entrega && (entrega.tipo_codigo === 'entrega' && entrega.nome !== 'correios') ) { if( ( pac.entrega && pac.entrega.value ) && pac.entrega.value.tipo_codigo === 'entrega' && pac.entrega.value.nome !== 'correios' ){ if (pac.entrega.value._vlr_frete > entrega._vlr_frete) { maior_frete = pac.entrega.value._vlr_frete; maior_entrega_nome = pac.entrega.value.nome; } } } } } let esseEoPrimeiroFreteGratisDaEntrega = 0; for (const index in this._pacote._carrinho.pacotes) { const pac = this._pacote._carrinho.pacotes[index]; // logica para cupom frete gratis if (this._pacote._carrinho.cupom && this._pacote._carrinho.cupom.cupom_id && this._pacote._carrinho.cupom.is_frete_gratis && this._pacote._carrinho.cupom.pacotes.indexOf(+index + 1) > - 1) { pac.entrega.value._vlr_frete = 0; } // faz logica para o frete gratis e deixar cobrar apenas o mais caro das entregas, exceto para correios, pacotes marketplace ou pacotes com produto controlado com receita física else if (entregas.length > 1 && pac.entrega.value && pac.entrega.value.tipo_codigo === 'entrega' && pac.entrega.value.nome !== 'correios' && !this._pacote._carrinho.is_marketplace && (pac.pacote && !pac.pacote.is_receita_fisica)) { let isFretegratis = 0; if (pac.entrega.value.nome === maior_entrega_nome && esseEoPrimeiroFreteGratisDaEntrega == 0) { isFretegratis = 1; esseEoPrimeiroFreteGratisDaEntrega = 1; } if (isFretegratis == 0) { pac.entrega.value._vlr_frete = 0; } } } } } EntregaComponent.prototype._carregarEntregas = function () { let _entregas = [] for (const entrega of this.entregas) { if (this.tipo_entrega == entrega.tipo_codigo) { _entregas.push(entrega); } } var i = 0; _entregas = _entregas.map((entrega) => { let filial = entrega.filial, nome = entrega.nome, nm_descritivo = entrega.nm_descritivo, valor = entrega.valor, descricao = entrega.descricao, imagem = entrega.imagem, tipo_codigo = entrega.tipo_codigo; i++; return new Entrega(i, nome, filial, nm_descritivo, valor, descricao, imagem, tipo_codigo, entrega, this); }) this.entregasDoTipo = _entregas; } EntregaComponent.prototype._carregarTemplate = function () { $('#carrinho-entrega-pacote').html(` Pacote ${this._pacote.index}: ${ this.nome ? this.nome : 'Escolha a Entrega' }`); $('#carrinho-tipo-entregas').html(this.template); $('#carrinho-tipo-entregas').attr('data-pacote-ativo', this._pacote.index) $(".cpf").mask("000.000.000-00"), $(".telefone").mask("(00) 0 0000-0000"); } function Pacote(index, id, produtos, tipos_entrega, carrinho_completo, _carrinho) { this.index = index; this.id = id; this.produtos = produtos; this.carrinho_completo = carrinho_completo; this.entrega = new EntregaComponent(tipos_entrega, this); this._carrinho = _carrinho; this._entregas = tipos_entrega if(this._carrinho.lista_recorrencias && this._carrinho.lista_recorrencias.length){ this.lista_recorrencias = this._carrinho.lista_recorrencias } } Pacote.prototype = { get valid() { this.produtos.map(p => { if(p.recorrencia && Object.keys(p.recorrencia).length){ p._setJsonRecorrencia(p.recorrencia.id) } }) if(this.entrega && this.entrega.value && (this.entrega.value && this.entrega.value.retirada_terceiro)){ carrinho.instance.submit_retirada_por_terceiro = true; } return this.entrega.valid ? true : false }, get lista_recorrencias(){ return this._lista_recorrencias; }, set lista_recorrencias(value){ this._lista_recorrencias = value; }, get entregas() { return this._entregas; }, set entregas(value) { this._entregas = value; }, get produtos() { return this._produtos; }, set produtos(value) { const products = []; var i = 0; for (const produto of value) { let hash = produto.hash, id = produto.id, produto__nm_ecommerce = produto.produto__nm_ecommerce, quantidade = produto.quantidade, valor = produto.valor, valor_mult = produto.valor_mult, produto__imagem_pequena = produto.produto__imagem_pequena, produto__nm_url_ecommerce = produto.produto__nm_url_ecommerce, token_nsu = produto.token_nsu, // TODO: add marca e categoria para os eventos do Google Analytics marca = produto.marca, categoria = produto.categoria; products.push(new Produto(i + 1, hash, id, produto__nm_ecommerce, quantidade, valor, valor_mult, produto__imagem_pequena, produto__nm_url_ecommerce, produto, this, value.length - 1 === i, marca, categoria)); i++; } this._produtos = products; }, get template() { const template_produtos = $.map(this.produtos, (elem) => { return elem.template; }).join(''); return `

Pacote ${ this.index }:

${!this._entregas || !this._entregas.length ? `

Não existem entregas disponíveis para este pacote. Remova os produtos para prosseguir.

` : ``}

${template_produtos}

`; } } Pacote.prototype._carregarTemplate = function () { this._carrinho._carregarTemplate(); } function Endereco(id, apelido, cep, logradouro, numero, bairro, cidade, estado, complemento, _enderecos, is_principal) { this.id = id; this.apelido = apelido; this.logradouro = logradouro; this.cep = cep; this.numero = numero; this.bairro = bairro; this.cidade = cidade; this.estado = estado; this.complemento = complemento; this._selecionado = false; this._enderecos = _enderecos; } Endereco.prototype = { get selecionado() { return this._selecionado; }, set selecionado(value) { this._selecionado = value; this._enderecos._carregarTemplate(); }, get endereco() { return this.logradouro + ', ' + this.numero + ', ' + this.bairro; }, get municipio() { return this.cidade + '/' + this.estado; }, get endereco_completo() { return this.endereco + ' - ' + this.municipio; }, get editar() { return ` event.stopPropagation(); carrinho.instance.endereco.id = '${this.id}'; carrinho.instance.endereco.cep = '${this.cep}'; carrinho.instance.endereco.estado = '${this.estado}'; carrinho.instance.endereco.numero = '${this.numero}'; carrinho.instance.endereco.rua = '${this.logradouro}'; carrinho.instance.endereco.complemento = '${this.complemento}'; carrinho.instance.endereco.bairro = '${this.bairro}'; carrinho.instance.endereco.apelido = '${this.apelido}'; carrinho.instance.endereco.is_principal = '${this.is_principal}'; carrinho.instance.endereco._carregarEdicaoEndereco(); `; }, get template() { return `

Farmácias Independente | Medicamentos e Produtos de Saúde de Qualidade (32)

${this.apelido}

${this.endereco}

${this.municipio}

...

`; } }; function EnderecoComponent() { this._enderecos = null; this._carregarEnderecos(); } EnderecoComponent.prototype = { get valid() { return this.value ? true : false; }, get value() { const endereco = this._enderecos ? this._enderecos.filter((endereco) => { return endereco.selecionado }) : []; return endereco.length > 0 ? endereco[0] : null; }, set value(value) { this._enderecos.map((endereco) => { if(endereco.id === value){ endereco.selecionado = true } else { endereco.selecionado = false; } }); if (value) { localStorage.setItem('carrinho_endereco_id', value); } carrinho.instance._atualizarCarrinho(); }, get ultimo_editado_criado() { return this._ultimo_editado_criado; }, set ultimo_editado_criado(value) { this._ultimo_editado_criado = value; }, get enderecos() { return this._enderecos; }, set enderecos(value) { const end = []; let principal = null; let primeiro = null; let ultimo_salvo = localStorage.getItem('carrinho_endereco_id'); let ultimo_salvo_id = null; for (const { id, apelido, cep__cep_form, endereco, numero, bairro, cep__bairro_cep, cep__municipio__nome, cep__municipio__uf__nm_abrev, complemento, is_principal } of value) { if (!principal) { if (this.ultimo_editado_criado) { principal = this.ultimo_editado_criado; this.ultimo_editado_criado = null; } else { if (ultimo_salvo == id) { ultimo_salvo_id = id; } else { if (!primeiro) { primeiro = id; } if (is_principal) { principal = id; } } } } end.push(new Endereco(id, apelido, cep__cep_form, endereco, numero, cep__bairro_cep ? cep__bairro_cep : bairro, cep__municipio__nome, cep__municipio__uf__nm_abrev, complemento, this, is_principal)); } this._enderecos = end; this._carregarTemplate(); this.value = ultimo_salvo_id ? ultimo_salvo_id : principal ? principal : primeiro; }, get template() { return $.map(this._enderecos, (elem) => { return elem.template; }).join(''); }, get cep() { return this._cep ? this._cep : ''; }, set cep(value) { this._cep = value; let cep = value.replace(/-/g, '').replace(/\./g, '').trim(); let urlStr = `https://viacep.com.br/ws/${cep}/json/`; $.ajax({ url: urlStr, type: "GET", dataType: "json", success: (response_endereco) => { if (response_endereco.logradouro) this.rua = response_endereco.logradouro; if (response_endereco.uf) this.estado = response_endereco.uf; if (response_endereco.localidade) this.cidade = response_endereco.localidade; if (response_endereco.bairro) this.bairro = response_endereco.bairro; this._carregarEdicaoEndereco(); $("#carrinho-endereco-numero").focus(); }, error: (erro) => { toastr.error('Não foi possível localizar automaticamente, por favor, tente novamente ou preencha manualmente.', 'Erro CEP'); } }); }, get id() { return this._id; }, set id(value) { this._id = value; }, get rua() { return this._rua ? this._rua : ''; }, set rua(value) { this._rua = value; }, get estado() { return this._estado ? this._estado : ''; }, set estado(value) { this._estado = value; }, get cidade() { return this._cidade ? this._cidade : ''; }, set cidade(value) { this._cidade = value; }, get numero() { return this._numero ? this._numero : ''; }, set numero(value) { this._numero = value; }, get complemento() { return this._complemento ? this._complemento : ''; }, set complemento(value) { this._complemento = value; }, get bairro() { return this._bairro ? this._bairro : ''; }, set bairro(value) { this._bairro = value; }, get apelido() { return this._apelido ? this._apelido : ''; }, set apelido(value) { this._apelido = value; }, get is_principal() { return this._is_principal; }, set is_principal(value) { this._is_principal = value; }, get template_novo_endereco() { return `

`; }, } EnderecoComponent.prototype._carregarEnderecos = function () { load("on", $(".asidebar")); $.ajax({ type: "POST", url: "/cliente/endereco/atualizar", data: { "csrfmiddlewaretoken": "F6O5FYUDzBHTfb9P1f1qItahZI6DsBbHbXJsVF7BAdEe57T2MIZ8x8pnB8hVfnja", }, success: (data) => { load("off", $(".asidebar")); this.enderecos = data.enderecos; if(data.enderecos && data.enderecos.length){ let end = data.enderecos[0] $('[data-target="endereco-cliente"]').html(` ${end.endereco}, ${end.numero} - ${end.cep__municipio__nome}/${end.cep__municipio__uf__nm_abrev} `) } else if (data.enderecos.length === 0) { this._limparCamposEndereco(); this._carregarEdicaoEndereco(); $('#carrinho-voltar-endereco').addClass('hidden') } }, error: (data) => { load("off", $(".asidebar")); //toastr.error("Ocorreu um erro inesperado ao atualizar os endereços.", "Erro ao enviar"); } }); }, EnderecoComponent.prototype._limparCamposEndereco = function () { this.id = ''; this._cep = ''; this.rua = ''; this.estado = ''; this.cidade = ''; this.numero = ''; this.complemento = ''; this.bairro = ''; this.apelido = ''; this.is_principal = false; }, EnderecoComponent.prototype._salvarEndereco = function () { // form.addClass('was-validated'); load('on', $('#popupEndereco')); // if (this.checkValidity()) { $.ajax({ url: "/cliente/endereco/cadastrar", type: "POST", data: { csrfmiddlewaretoken: 'F6O5FYUDzBHTfb9P1f1qItahZI6DsBbHbXJsVF7BAdEe57T2MIZ8x8pnB8hVfnja', endereco_id: this.id, cep: this.cep, rua: this.rua, numero: this.numero, complemento: this.complemento, bairro: this.bairro, nome: this.apelido, is_principal: this.is_principal }, success: (data) => { load("off", $("#popupEndereco")); this._carregarEnderecos(); this.ultimo_editado_criado = data.endereco_id; }, error: function (data) { load("off", $("#popupEndereco")); } }); // } }, EnderecoComponent.prototype._carregarEdicaoEndereco = function () { $('#carrinho-voltar-endereco').removeClass('hidden'); $('#carrinho-enderecos').html(this.template_novo_endereco); $('#carrinho-novo-endereco').addClass('d-none'); }, EnderecoComponent.prototype._carregarTemplate = function () { $('#carrinho-enderecos').html(this.template); $('[data-target="carrinho-endereco-resumo"]').html(this.value && this.value.endereco_completo ? this.value.endereco_completo : ''); $('#carrinho-voltar-endereco').addClass('hidden'); $('#carrinho-novo-endereco').removeClass('d-none').on('click', () => { this._limparCamposEndereco(); this._carregarEdicaoEndereco(); }); } function Convenio(tipo, _pagamento) { this.tipo = tipo; this._pagamento = _pagamento; this._getConvenios(); this.id = null; } Convenio.prototype = { get template() { return `

Seus convênios

`; } } Convenio.prototype._getConvenios = function() { load('on', $('.asidebar')); $.ajax({ type: "POST", url: "/clube/buscar/convenios", data: { 'csrfmiddlewaretoken': 'F6O5FYUDzBHTfb9P1f1qItahZI6DsBbHbXJsVF7BAdEe57T2MIZ8x8pnB8hVfnja', }, success: (response) => { if(response.status){ this.html_convenios = ``; this.id = response.convenios.length > 0 ? response.convenios[0].id : null const convenios = response.convenios.length > 0 ? response.convenios : [] if(response.convenios.length > 0){ $(convenios).each((chave, convenio) => { this.html_convenios += ` ` }); } else { this.html_convenios += `` } this._pagamento._pagamentos._carregarTemplate(); } else { toast.error(response.descricao ? response.descricao : 'Ocorreu um erro interno ao exibir seus convênios.') } load('off', $('.asidebar')); }, error: (response) => { load('off', $('.asidebar')); toastr.error('Ocorreu um erro interno ao exibir seus convênios.') }, }) } function Cartao(tipo, _pagamento) { this.tipo = tipo; this._pagamento = _pagamento; this._submit = false; this.doPay = this.doPay.bind(this); this.sdkResponseHandler = this.sdkResponseHandler.bind(this); this._status = false; } Cartao.prototype = { get submit() { return this._submit; }, set submit(value) { if (value !== this._submit) { if (value) { load('on', $('.asidebar')); } else { load('off', $('.asidebar')); } this._submit = value; } }, get template() { return ` `; } } Cartao.prototype.guessPaymentMethod = function() { let cardnumber = $("#cardNumber").val().split(' ').join(''); if (cardnumber.length >= 6) { let bin = cardnumber.substring(0, 6); /* window.Mercadopago.getPaymentMethod({ "bin": bin }, setPaymentMethod); */ } } Cartao.prototype.doPay = function(event) { if (event) { event.preventDefault(); } let valor = $("#carrinho-cartao-cpf_titular").val().replace(/\./g, '').replace(/-/g, '').replace('\/', ''); $("#docNumber").val(valor); if (!this.submit) { this.submit = true; this.adicionarCartao(); //window.Mercadopago.createToken(document.querySelector('#pay'), carrinho.instance.pagamento.valueNotCashback.cartao.sdkResponseHandler); return false; } } Cartao.prototype.sdkResponseHandler = function(status, response) { let numero_cartao = document.getElementById('cardNumber'); let nm_impresso = document.getElementById('cardholderName'); let data_vencimento = document.getElementById('carrinho-cartao-validade'); let codigo_seguranca = document.getElementById('securityCode'); let cpf_titular = document.getElementById('carrinho-cartao-cpf_titular'); setarInputInvalid(numero_cartao, ''); setarInputInvalid(nm_impresso, ''); setarInputInvalid(data_vencimento, ''); setarInputInvalid(codigo_seguranca, ''); setarInputInvalid(cpf_titular, ''); if (status !== 200 && status !== 201) { this.submit = false; for (let i = 0; i < response['cause'].length; i++) { errosNoCartao(response['cause'][i].code); } } else { this.token = response.id; this.adicionarCartao(); } } Cartao.prototype.adicionarCartao = function() { load('on', $('.asidebar')) $.ajax({ type: "POST", url: "/pagamento/erede/salvar/cartao", data: { 'csrfmiddlewaretoken': 'F6O5FYUDzBHTfb9P1f1qItahZI6DsBbHbXJsVF7BAdEe57T2MIZ8x8pnB8hVfnja', 'token_cartao': this.token, 'numero_cartao': document.getElementById('cardNumber').value.replace(/\s/g, ''), 'is_salvar': true, 'vencimento': document.getElementById('carrinho-cartao-validade').value, 'password': this.securityCode, 'tipo_id': this.tipo, 'nm_impresso': document.getElementById('cardholderName').value, }, success: (data) => { this.submit = false; carrinho.instance.pagamento._carregarPagamentos(); if (data.status) { carrinho.instance.pagamento.cartao_adicionado = data.cartao_id; if (carrinho.instance.pagamento.valueNotCashback) { $('#carrinho-botao-finalizar').click(); } } else { toastr.error(data.descricao, 'Erro'); } load('off', $('.asidebar')) }, error: (data) => { this.submit = false; load('off', $('.asidebar')) } }); } function Pagamento(index, id, nome_descritivo, imagem, dadosComplemento, _pagamentos) { this.index = index; this.id = id; this.nome_descritivo = nome_descritivo; this.imagem = imagem; this._selecionado = false; this._pagamentos = _pagamentos; this.dadosComplemento = dadosComplemento; } Pagamento.prototype = {get selecionado() { return this._selecionado; }, set selecionado(value) { this._selecionado = value; this._pagamentos._carregarTemplate(); }, get qtd_parcelas() { return this._qtd_parcelas ? this._qtd_parcelas : 1; }, set qtd_parcelas(value) { this._qtd_parcelas = value; }, get pagamentoComplemento() { var template = ``; if (this._pagamentos.value && this.selecionado) { this._pagamentos.qtd_parcelas = null; // Criacao de cartão if (!this.dadosComplemento && this._pagamentos.valueNotCashback && (this._pagamentos.valueNotCashback.id == 'credito' || this._pagamentos.valueNotCashback.id == 'debito' || this._pagamentos.valueNotCashback.id == 'auxilio')) { this.cartao = new Cartao(this._pagamentos.valueNotCashback.id, this) template = this.cartao.template; } // Pagamento convênio else if (this._pagamentos.valueNotCashback && this._pagamentos.valueNotCashback.id == 'convenio') { if(!this.convenio) this.convenio = new Convenio(this._pagamentos.valueNotCashback.id, this); template = this.convenio.template; } // Cartão já salvo else if (this.dadosComplemento && this.dadosComplemento.tipo_codigo && (this.dadosComplemento.tipo_codigo == 'credito' || this.dadosComplemento.tipo_codigo == 'auxilio')) { if (!this.cartao) { if(this.passwordEndpoint){ this.passwordEndpoint.abort(); } this.passwordEndpoint = $.ajax({ type: "POST", url: "/pagamento/pegar/password", data: { 'csrfmiddlewaretoken': 'F6O5FYUDzBHTfb9P1f1qItahZI6DsBbHbXJsVF7BAdEe57T2MIZ8x8pnB8hVfnja', 'cartao_id': this.dadosComplemento.cartao_id }, success: (data) => { if (data.status) { this.cartao = {}; $('#pay_fast').html(` `); this.dadosComplemento.cvv = data.password; let $form = document.querySelector('#pay_fast'); //Mercadopago.createToken($form, pegarTokenSeForCartao); carrinho.instance.pagamento.valueNotCashback._pagamentoMeuCartao(); } }, }); } } if( (!this.dadosComplemento && !(this._pagamentos.valueNotCashback.id == 'credito' || this._pagamentos.valueNotCashback.id == 'auxilio' || this._pagamentos.valueNotCashback.id == 'debito')) || (this.dadosComplemento && (this.dadosComplemento.tipo_codigo == 'credito' || this.dadosComplemento.tipo_codigo == 'auxilio' || this.dadosComplemento.tipo_codigo == 'debito')) ){ const vlr_total = this._pagamentos.cashback_selecionado ? (this._pagamentos._carrinho._calculaVlrTotalFloat() - this._pagamentos._carrinho._saldo_cashback) : this._pagamentos._carrinho._calculaVlrTotalFloat(); if("credito" === this._pagamentos.valueNotCashback.id){ template += `

Parcelas

`; } if("pix" === this._pagamentos.valueNotCashback.id){ } } } return template; }, get template() { if(this.imagem !== null){ return `

Farmácias Independente | Medicamentos e Produtos de Saúde de Qualidade (33)

${this.nome_descritivo}

${this.pagamentoComplemento} `; } else{ return `

Farmácias Independente | Medicamentos e Produtos de Saúde de Qualidade (34)

${this.nome_descritivo}

${this.pagamentoComplemento} `; } } } Pagamento.prototype._pagamentoMeuCartao = function() { if (this.dadosComplemento) { this.cartao = { id: this.dadosComplemento.cartao_id, token: this.dadosComplemento.token, cvv: this.dadosComplemento.cvv, bandeira_id: this.dadosComplemento.bandeira_id, }; } } function PagamentoComponent(_carrinho) { this._carrinho = _carrinho; this._carregarPagamentos(); this._cartao_adicionado = null; } PagamentoComponent.prototype = { get valid() { return this._validacaoPagamento(); }, get value() { const pagamentos = this.meus_pagamentos.concat(this.tipos_pagamento); const pagamento = pagamentos.filter((pagamento) => { return pagamento.selecionado }); if (this.cashback_selecionado && this._carrinho._saldo_cashback > 0) { let retorno = []; retorno.push({ "index": -1, "id": "cashback", "nome_descritivo": "Cashback", "imagem": "pagamentos/cashback.png", "qtd_parcelas": 1, "_selecionado": true, "_pagamentos": this, "_vlr_total": this._carrinho._saldo_cashback >= this._carrinho._calculaVlrTotalFloat() ? this._carrinho._calculaVlrTotalFloat() : this._carrinho._saldo_cashback }); if (pagamento.length > 0 && this._carrinho._saldo_cashback < this._carrinho._calculaVlrTotalFloat()) { pagamento[0]._vlr_total = this._carrinho._calculaVlrTotalFloat() - this._carrinho._saldo_cashback; retorno.push(pagamento[0]); } return retorno.length > 0 ? retorno : null; } if (pagamento.length > 0) { pagamento[0]._vlr_total = this._carrinho._calculaVlrTotalFloat(); return pagamento; } return null; }, set value(value) { if (!this.value || this.value.index !== value) { let pagamentoSelecionado; this.meus_pagamentos.map((pagamento) => { if (pagamento.index == value) { pagamento.selecionado = true; pagamentoSelecionado = pagamento; } else { pagamento.selecionado = false; } }); this.tipos_pagamento.map((pagamento) => { if (pagamento.index == value) { pagamento.selecionado = true; pagamentoSelecionado = pagamento; } else { pagamento.selecionado = false; } }); const produtos = []; for (const pacote of this._carrinho.pacotes) { for (const { _produto } of pacote._produtos) { produtos.push({ id: _produto.produto_id, price: _produto.valor_ini, discount: _produto.valor_desc, item_name: _produto.produto__nm_ecommerce, promotion_name: _produto.descontoprodutopreco__desconto__tipo_id, quantidade: _produto.quantidade, currency: 'BRL', index: _produto.origem_posicao, item_list_name: _produto.origem_descricao, item_list_id: _produto.origem_descricao ? slugify(_produto.origem_descricao) : '', item_brand: _produto.marca, item_category: _produto.categoria, }); } } filtroParaDadosAnaliticos('AddPaymentInfo', { currency: 'BRL', payment_type: pagamentoSelecionado.id, coupon: this._carrinho.cupom.codigo, value: this._carrinho._calculaVlrTotalFloat(), items: produtos, }); } }, get valueNotCashback() { const pagamentos = this.meus_pagamentos.concat(this.tipos_pagamento); const pagamento = pagamentos.filter((pagamento) => { return pagamento.selecionado }); if (this.cashback_selecionado && this._carrinho._saldo_cashback > 0) { if (pagamento.length > 0 && this._carrinho._saldo_cashback < this._carrinho._calculaVlrTotalFloat()) { pagamento[0]._vlr_total = this._carrinho._calculaVlrTotalFloat() - this._carrinho._saldo_cashback; } return pagamento.length > 0 ? pagamento[0] : null; } if (pagamento.length > 0) { pagamento[0]._vlr_total = this._carrinho._calculaVlrTotalFloat(); return pagamento[0]; } return null; }, get cashback_selecionado() { return this._cashback_selecionado; }, set cashback_selecionado(value) { this._cashback_selecionado = value; this._carregarTemplate(); }, get cartao_adicionado() { return this._cartao_adicionado; }, set cartao_adicionado(value) { this._cartao_adicionado = value; }, get meus_pagamentos() { return this._meus_pagamentos; }, set meus_pagamentos(value) { this._meus_pagamentos = value; }, get tipos_pagamento() { return this._tipos_pagamento; }, set tipos_pagamento(value) { this._tipos_pagamento = value; }, get template() { const meus_pagamentos_template = this.meus_pagamentos.length > 0 ? `

Seus pagamentos

` + $.map(this.meus_pagamentos, (elem) => { return elem.template; }).join('') + `

` : ''; const tipo_pagamentos_template = this.tipos_pagamento.length > 0 ? `

Outras formas de pagamento

` + $.map(this.tipos_pagamento, (elem) => { return elem.template; }).join('') + `

` : ''; let html_template = ``; html_template += `

Escolha a forma de pagamento

Adicionar cupom de desconto

`; if (!this._carrinho.cupom.codigo) { html_template += `

Aplicar

`; } else if (this._carrinho.cupom.codigo) { html_template += `

Remover

`; } html_template += `

${meus_pagamentos_template} ${tipo_pagamentos_template}

`; return html_template; } } PagamentoComponent.prototype._carregarPagamentos = function() { this.meus_pagamentos = []; this.tipos_pagamento = []; let i = 1; this.tipos_pagamento.push(new Pagamento(i, 'credito', 'Cartão de crédito', 'icones/icone_cartao_VDxHCpZ.svg', null, this)); i++; this.tipos_pagamento.push(new Pagamento(i, 'pix', 'Pix', 'icones/logo_pix.png', null, this)); i++; if(this._carrinho.is_recorrencia){ load('on', $('body')) this.tipos_pagamento = this.tipos_pagamento.filter(tipo_pag => { return tipo_pag.id === 'credito' }) } $.ajax({ type: "POST", url: "/pagamento/atualizar/cartoes", data: { 'csrfmiddlewaretoken': 'F6O5FYUDzBHTfb9P1f1qItahZI6DsBbHbXJsVF7BAdEe57T2MIZ8x8pnB8hVfnja', }, success: (data) => { if (data.status) { let selecionado = null; for (let count = 1; count <= data.cartoes.length; count++) { const cartao = data.cartoes[count - 1]; let nome_bandeira = 'Cartão'; if(cartao.bandeira__nm_descritivo !== null){ nome_bandeira = cartao.bandeira__nm_descritivo; } this.meus_pagamentos.push(new Pagamento(i, cartao.tipo_codigo, nome_bandeira + ' ***** ' + cartao.ultimos_4, cartao.bandeira__imagem, cartao, this)); if (cartao.cartao_id === this.cartao_adicionado) { selecionado = i.toString(); } i++; } if(this._carrinho.is_recorrencia){ this.meus_pagamentos = this.meus_pagamentos.filter(meu_pag => { return meu_pag.id === 'credito' }) load('off', $('body')) } this._carregarTemplate(); if (selecionado != null) { this.value = selecionado; } this.cartao_adicionado = null; } }, error: (data) => { } }); } PagamentoComponent.prototype._carregarTemplate = function() { this._carrinho._carregarTemplate(); } PagamentoComponent.prototype._validacaoPagamento = function() { if (this.cashback_selecionado && this._carrinho._saldo_cashback >= this._carrinho._calculaVlrTotalFloat()) { return true; } else { if (!this.value) { toastr.error('Selecione uma forma de pagamento', 'Erro'); } else if ((!this.valueNotCashback.dadosComplemento || !this.valueNotCashback.cartao) && (this.valueNotCashback.id == 'credito' || this.valueNotCashback.id == 'debito' || this.valueNotCashback.id == 'auxilio')) { this.valueNotCashback.cartao.doPay(); return false; } else if (this.valueNotCashback.id === 'convenio' && (!this.valueNotCashback.convenio || !this.valueNotCashback.convenio.id)) { toastr.error('Selecione um convênio', 'Erro'); return false; } else if (this.value) { return true; } } } function CarrinhoConfirmacao(qtd_produtos, pacotes, vlr_subtotal, vlr_desconto_pbm, vlr_frete, entrega, endereco, pagamento, cupom, informacoes_pbm, vlr_total) { this.qtd_produtos = qtd_produtos; this.pacotes = pacotes; this._vlr_subtotal = vlr_subtotal; this._vlr_desconto_pbm = vlr_desconto_pbm; this._vlr_frete = vlr_frete; this.endereco = endereco; this.pagamento = pagamento; this.informacoes_pbm = informacoes_pbm; this.cupom = cupom; this._vlr_total = vlr_total; $('#carrinho-confirmacao').html(this.template); onToggleCarrinhoPopUp('open', '#popupConfirmacao'); let produtos = []; for (const pacote of this.pacotes) { for (const { _produto } of pacote._produtos) { produtos.push({ id: _produto.produto_id, price: _produto.valor_ini, discount: _produto.valor_desc, item_name: _produto.produto__nm_ecommerce, promotion_name: _produto.descontoprodutopreco__desconto__tipo_id, quantidade: _produto.quantidade, currency: 'BRL', index: _produto.origem_posicao, item_list_name: _produto.origem_descricao, item_list_id: _produto.origem_descricao ? slugify(_produto.origem_descricao) : '', item_brand: _produto.marca, item_category: _produto.categoria, }); } } filtroParaDadosAnaliticos('InitiateCheckout', { currency: 'BRL', value: this._vlr_total, coupon: this.cupom.codigo, items: produtos }); } CarrinhoConfirmacao.prototype = { get qtd_pacotes() { return this.pacotes.length; }, get vlr_subtotal() { return parseFloat(this._vlr_subtotal).toLocaleFixed(2); }, get vlr_desconto_pbm() { return parseFloat(this._vlr_desconto_pbm).toLocaleFixed(2); }, get vlr_total() { return parseFloat(this._vlr_total).toLocaleFixed(2); }, get vlr_frete() { return this.cupom && this.cupom.is_frete_gratis ? parseFloat(0).toLocaleFixed(2) : parseFloat(this._vlr_frete).toLocaleFixed(2); }, get token(){ return this._token; }, set token(value){ this._token = value; }, get template() { let html_template = ``; for (const pacote of this.pacotes) { html_template += `

`; if (pacote.entrega._value.tipo_codigo === 'retirada') { if(pacote.entrega._value.nome === 'retirada'){ html_template += ` Pct ${pacote.index} ( ${pacote.produtos.length} ite${pacote.produtos.length > 1 ? 'ns' : 'm'} ) - ${pacote.entrega._value.nome_descritivo} em ${title(pacote.entrega._value.filial.nm_filial)} `; } else { html_template += ` Pct ${pacote.index} ( ${pacote.produtos.length} ite${pacote.produtos.length > 1 ? 'ns' : 'm'} ) - ${pacote.entrega._value.nome_descritivo} em ${title(pacote.entrega._value.filial.endereco)}, ${pacote.entrega._value.filial.numero} - ${pacote.entrega._value.filial.bairro} `; } } else if (pacote.entrega._value.nome === 'entrega_agendada') { html_template += ` Pct ${pacote.index} ( ${pacote.produtos.length} ite${pacote.produtos.length > 1 ? 'ns' : 'm'} ) - ${pacote.entrega._value.nome_descritivo} - ${pacote.entrega._value._faixa_entrega.descricao_combobox.split('%quebralinha%')[0] + ' ' + pacote.entrega._value._faixa_entrega.descricao_combobox.split('%quebralinha%')[1]} `; } else { html_template += ` Pct ${pacote.index} ( ${pacote.produtos.length} ite${pacote.produtos.length > 1 ? 'ns' : 'm'} ) - ${pacote.entrega._value.nome_descritivo} `; } html_template += `

`; if(carrinho.instance._mensagem[pacote.index - 1]){ html_template += `

${carrinho.instance._mensagem[pacote.index - 1]}

` } else { html_template += `` } } let html_pagamento = ``; for(const pay of this.pagamento){ if(pay.imagem === null){ html_pagamento += `

${pay.nome_descritivo}

${pay.qtd_parcelas}x R$${(pay._vlr_total / parseFloat(pay.qtd_parcelas)).toLocaleFixed(2)}

`; } else{ html_pagamento += `

Farmácias Independente | Medicamentos e Produtos de Saúde de Qualidade (35)

${pay.nome_descritivo}

${pay.qtd_parcelas}x R$${(pay._vlr_total / parseFloat(pay.qtd_parcelas)).toLocaleFixed(2)}

`; } } let html_cashback = ``; if (this.pagamento[0]._pagamentos._carrinho._vlr_cashback > 0){ html_cashback += `

Você receberá R$${this.pagamento[0]._pagamentos._carrinho.vlr_cashback} de dinheiro de volta por essa compra

`; } let template_retorno = `

${this.qtd_produtos} Produto${this.qtd_produtos == 1 ? '' : 's'}

Dividido${this.qtd_pacotes == 1 ? '' : 's'} em ${this.qtd_pacotes} pacote${this.qtd_pacotes == 1 ? '' : 's'}

${html_template}`; for (const pacote of this.pacotes) { if(pacote.index == 1){ if(pacote.entrega._value.tipo_codigo === 'retirada' || pacote.entrega._value.nome === 'entrega_agendada' || pacote.entrega._value.nome === 'agendada_estoque_zero'){ template_retorno += `

Endereço

Farmácias Independente | Medicamentos e Produtos de Saúde de Qualidade (36)

${this.endereco.endereco}

${this.endereco.municipio}

`; } else { } } } template_retorno += `

Forma de Pagamento

${html_pagamento}

Quantidade: ${this.qtd_produtos} Ite${this.qtd_produtos == 1 ? 'm' : 'ns'}

Subtotal: R$ ${this.vlr_subtotal}

Desconto do programa: R$ ${this.vlr_desconto_pbm}

Frete: R$ ${this.vlr_frete}

`; if (this.cupom && this.cupom.vlr_cupom) { template_retorno += `

Desconto: R$ ${this.cupom && this.cupom.vlr_cupom ? parseFloat(this.cupom.vlr_cupom).toLocaleFixed(2) : 0}

`; } template_retorno += `

Total: R$${this.vlr_total}

`; return template_retorno; } } CarrinhoConfirmacao.prototype._confirmar = function() { $('.carrinho-btn-finalizar').addClass('isDisabled') toastr.options.target = null; const pacotes = []; var endereco = $.extend(true, {}, this.endereco); delete endereco._enderecos; endereco = removeTemplates(endereco); for (const pacote of this.pacotes) { const _pacote = $.extend(true, {}, pacote); delete _pacote._carrinho; delete _pacote.filial; delete _pacote.entregas; delete _pacote.produtos; const entrega = $.extend(true, {}, _pacote.entrega); delete entrega._pacote; delete entrega.value; delete entrega.entregasDoTipo; delete entrega._entregasDoTipo; delete entrega.entregas; delete entrega._tipo_entrega; delete entrega.filial; _pacote.entrega = entrega; const entregaValor = $.extend(true, {}, _pacote.entrega._value); delete entregaValor._entrega_component; _pacote.entrega._value = entregaValor; if(_pacote.entrega && _pacote.entrega.is_frete_gratis){ _pacote.entrega._value && _pacote.entrega._value.vlr_frete ? _pacote.entrega._value._vlr_frete = 0 : null } if (_pacote.entrega._value.entrega_complemento) { const entregaComplemento = $.extend(true, {}, _pacote.entrega._value.entrega_complemento); delete entregaComplemento._entrega; _pacote.entrega._value.entrega_complemento = entregaComplemento; } const _produtos = []; for (const produto of pacote._produtos) { const _produto = $.extend(true, {}, produto); delete _produto._pacote; _produtos.push(_produto); } _pacote._produtos = _produtos; pacotes.push(removeTemplates(_pacote)); } const pagamentos = []; for (const pay of this.pagamento) { const payment = $.extend(true, {}, pay); delete payment._pagamentos; delete payment._carrinho; delete payment._meus_pagamentos; delete payment._tipos_pagamento; if(payment.convenio){ delete payment.convenio._pagamento } if (payment.cartao) { delete payment.cartao._pagamento; } pagamentos.push(removeTemplates(payment)); } toastr.options.target = 'body'; load('on', $('#popupConfirmacao')); let _this = this if(typeof(grecaptcha) === 'object'){ grecaptcha.ready(function() { grecaptcha.execute("6LfnbWkkAAAAAIcEc3HbZtE8V-_YSpv9ZOO9pe0i", { action: 'submit'} ).then(function(token) { $.ajax({ type: "POST", url: "/pedido/fazer", data: { csrfmiddlewaretoken: 'F6O5FYUDzBHTfb9P1f1qItahZI6DsBbHbXJsVF7BAdEe57T2MIZ8x8pnB8hVfnja', lista_pacotes: JSON.stringify(pacotes), endereco: JSON.stringify(endereco), pagamento: JSON.stringify(pagamentos), cupom: JSON.stringify(_this.cupom), informacoes_pbm: JSON.stringify(_this.informacoes_pbm), origin: originCarrinho ? originCarrinho : '', //session_key: typeof(SIGNIFYD_GLOBAL) === 'object' && SIGNIFYD_GLOBAL.scriptTagHasLoaded() ? 'None' : '', session_key: 'None', token: token, }, success: (data) => { if (data) { if (data.status === true) { if (data.ultimo_status_pagamento === 'pedido_pendente' || data.ultimo_status_pagamento === 'pagamento_pendente') { let produtos = []; if(_this.pacotes && _this.pacotes.length){ for (const pacote of _this.pacotes) { for (const { _produto } of pacote._produtos) { produtos.push({ id: _produto.produto_id, price: _produto.valor_ini, discount: _produto.valor_desc, item_name: _produto.produto__nm_ecommerce, promotion_name: _produto.descontoprodutopreco__desconto__tipo_id, quantidade: _produto.quantidade, currency: 'BRL', index: _produto.origem_posicao, item_list_name: _produto.origem_descricao ? _produto.origem_descricao : '', item_list_id: _produto.origem_descricao ? slugify(_produto.origem_descricao) : '', item_brand: _produto.marca ? _produto.marca : '', item_category: _produto.categoria ? _produto.categoria : '', }); } } } filtroParaDadosAnaliticos('Purchase', { currency: 'BRL', value: _this._vlr_total, items: produtos, shipping: _this._vlr_frete, // affiliation: 'Online Store', coupon: _this.cupom.codigo, transaction_id: data.pedido_id }); } if(data.pedido_hash){ document.location.href = "/cliente/pedido/0".replace(0, data.pedido_hash); } else { document.location.href = "/cliente/pedidos"; } } else { $('.carrinho-btn-finalizar').removeClass('isDisabled') load('off', $('#popupConfirmacao')); toastr.error(data.descricao, 'Erro'); if(originCarrinho === 'app') document.location.reload() if(pagamentos && pagamentos.length > 0 && pagamentos[0].id === 'credito'){ //Mercadopago.clearSession() let $form = document.querySelector('#pay_fast'); //Mercadopago.createToken($form, pegarTokenSeForCartao); } } } }, error: (data) => { load('off', $('#popupConfirmacao')); } }); }); }); } else { $.ajax({ type: "POST", url: "/pedido/fazer", data: { csrfmiddlewaretoken: 'F6O5FYUDzBHTfb9P1f1qItahZI6DsBbHbXJsVF7BAdEe57T2MIZ8x8pnB8hVfnja', lista_pacotes: JSON.stringify(pacotes), endereco: JSON.stringify(endereco), pagamento: JSON.stringify(pagamentos), cupom: JSON.stringify(_this.cupom), informacoes_pbm: JSON.stringify(_this.informacoes_pbm), origin: originCarrinho ? originCarrinho : '', //session_key: typeof(SIGNIFYD_GLOBAL) === 'object' && SIGNIFYD_GLOBAL.scriptTagHasLoaded() ? 'None' : '', session_key: 'None', }, success: (data) => { if (data) { if (data.status === true) { if (data.ultimo_status_pagamento === 'pedido_pendente' || data.ultimo_status_pagamento === 'pagamento_pendente') { let produtos = []; if(_this.pacotes && _this.pacotes.length){ for (const pacote of _this.pacotes) { for (const { _produto } of pacote._produtos) { produtos.push({ id: _produto.produto_id, price: _produto.valor_ini, discount: _produto.valor_desc, item_name: _produto.produto__nm_ecommerce, promotion_name: _produto.descontoprodutopreco__desconto__tipo_id, quantidade: _produto.quantidade, currency: 'BRL', index: _produto.origem_posicao, item_list_name: _produto.origem_descricao ? _produto.origem_descricao : '', item_list_id: _produto.origem_descricao ? slugify(_produto.origem_descricao) : '', item_brand: _produto.marca ? _produto.marca : '', item_category: _produto.categoria ? _produto.categoria : '', }); } } } filtroParaDadosAnaliticos('Purchase', { currency: 'BRL', value: _this._vlr_total, items: produtos, shipping: _this._vlr_frete, // affiliation: 'Online Store', coupon: _this.cupom.codigo, transaction_id: data.pedido_id }); } if(data.pedido_hash){ document.location.href = "/cliente/pedido/0".replace(0, data.pedido_hash); } else { document.location.href = "/cliente/pedidos"; } } else { $('.carrinho-btn-finalizar').removeClass('isDisabled') load('off', $('#popupConfirmacao')); toastr.error(data.descricao, 'Erro'); if(pagamentos && pagamentos.length > 0 && pagamentos[0].id === 'credito'){ //Mercadopago.clearSession() let $form = document.querySelector('#pay_fast'); //Mercadopago.createToken($form, pegarTokenSeForCartao); } } } }, error: (data) => { load('off', $('#popupConfirmacao')); } }); } } function CarrinhoComponent() { this.id = null; this.passoAtual = 'entregas'; this.endereco = new EnderecoComponent(); this.pagamento = new PagamentoComponent(this); this._atualizarCarrinho(); this._index = null this._mensagem = [] } CarrinhoComponent.prototype = { get valid() { return this._validacaoEndereco() && this._validacaoPacotes() && this.pagamento.valid; }, get passos() { return [ { nome: 'entregas', valid: () => { return this._validacaoEndereco() && this._validacaoPacotes() && this._validacaoReceita(); }, progresso: () => { return this._validacaoPacotes() ? 75 : 25 }, texto: () => { if("False" === "True"){ return this._validacaoPacotes() ? 'Continuar' : 'Escolher Entrega'; } else { return 'Entrar ou Cadastrar'; } } }, { nome: 'pagamentos', valid: () => { return this.pagamento.valid; }, texto: () => { return 'Finalizar Compra'; }, progresso: () => { return 100 } } ]; }, get saldo_cashback() { return this._saldo_cashback.toLocaleFixed(2) ? this._saldo_cashback.toLocaleFixed(2) : (0).toLocaleFixed(2); }, set saldo_cashback(value) { this._saldo_cashback = +value > 0 ? +value : 0; }, get vlr_cashback() { return this._vlr_cashback && this._vlr_cashback.toLocaleFixed(2) ? this._vlr_cashback.toLocaleFixed(2) : (0).toLocaleFixed(2); }, set vlr_cashback(value) { this._vlr_cashback = +value; }, get cupom() { return this._cupom; }, set cupom(value) { if (value) { const pacotes = []; var endereco = $.extend(true, {}, this.endereco.value); delete endereco._enderecos; endereco = removeTemplates(endereco); for (const pacote of this.pacotes) { const _pacote = $.extend(true, {}, pacote); delete _pacote._carrinho; delete _pacote.filial; delete _pacote.entregas; delete _pacote.produtos; const entrega = $.extend(true, {}, _pacote.entrega); delete entrega.value; delete entrega._pacote; delete entrega.entregasDoTipo; delete entrega._entregasDoTipo; delete entrega.entregas; delete entrega._tipo_entrega; delete entrega.filial; _pacote.entrega = entrega; const entregaValor = $.extend(true, {}, _pacote.entrega._value); delete entregaValor._entrega_component; _pacote.entrega._value = entregaValor; if(_pacote.entrega && _pacote.entrega.is_frete_gratis){ _pacote.entrega._value && _pacote.entrega._value.vlr_frete ? _pacote.entrega._value._vlr_frete = 0 : null } if (_pacote.entrega._value.entrega_complemento) { const entregaComplemento = $.extend(true, {}, _pacote.entrega._value.entrega_complemento); delete entregaComplemento._entrega; _pacote.entrega._value.entrega_complemento = entregaComplemento; } const _produtos = []; for (const produto of pacote._produtos) { const _produto = $.extend(true, {}, produto); delete _produto._pacote; _produtos.push(_produto); } _pacote._produtos = _produtos; pacotes.push(removeTemplates(_pacote)); } const pagamentos = []; if(this.pagamento && this.pagamento.value && this.pagamento.value.length){ for (const pay of this.pagamento.value) { const payment = $.extend(true, {}, pay); delete payment._pagamentos; delete payment._carrinho; delete payment._meus_pagamentos; delete payment._tipos_pagamento; if (payment.cartao) { delete payment.cartao._pagamento; } pagamentos.push(removeTemplates(payment)); } } load('on', $('.asidebar')); $.ajax({ type: "POST", url: "/cupom/validar", data: { csrfmiddlewaretoken: 'F6O5FYUDzBHTfb9P1f1qItahZI6DsBbHbXJsVF7BAdEe57T2MIZ8x8pnB8hVfnja', lista_pacotes: JSON.stringify(pacotes), endereco: JSON.stringify(endereco), pagamento: JSON.stringify(pagamentos), cupom: JSON.stringify(value) }, success: (data) => { load('off', $('.asidebar')); if (data.status) { this._cupom = { codigo: data.codigo, cupom_id: data.cupom_id, vlr_cupom: data.vlr_cupom, is_frete_gratis: data.is_frete_gratis, pacotes: data.pacotes }; } else { toastr.error(data.descricao, 'Erro'); } for (const pacote of carrinho.instance.pacotes) { pacote.entrega._logicaFrete() } this._carregarTemplate(); }, error: (data) => { load('off', $('.asidebar')); } }); } else { this._cupom = { cupom_id: '', codigo: '', vlr_cupom: 0, is_frete_gratis: false, pacotes: [], }; for (const pacote of carrinho.instance.pacotes) { pacote.entrega._logicaFrete() } this._carregarTemplate(); } }, get passoAtual() { return this._passoAtual; }, set passoAtual(value) { this._passoAtual = value; this._atualizarProgressoCarrinho(); }, get pacotes() { return this._pacotes; }, set pacotes(value) { const packages = []; for (const index in value) { const pac = value[index]; let i = parseFloat(index) + 1; packages.push(new Pacote(i, i, pac.produtos, pac.entregas, pac.completo, this)); } this._pacotes = packages; this._carregarTemplate(); }, get qtd_itens() { return this._qtd_itens; }, set qtd_itens(value) { this._qtd_itens = value; this._carregarTemplate(); }, get vlr_subtotal() { return this._vlr_subtotal; }, set vlr_subtotal(value) { if (value) { if (value != this.value) { this._vlr_subtotal = parseFloat(value); } } else { this._vlr_subtotal = 0; } this._carregarTemplate(); }, get entrega_alterada() { return this._entrega_alterada; }, set entrega_alterada(value) { this._entrega_alterada = value; }, get vlr_frete() { let f = 0; let entregas = []; this.pacotes ? this.pacotes.map(({ entrega }) => { if(entrega && entrega.value){ if (entrega.value._vlr_frete) { f += +entrega.value._vlr_frete; } entregas.push({ price: entrega.value._vlr_frete ? entrega.value._vlr_frete : 0, item_id: entrega.value.nome ? entrega.value.nome : '', item_name: entrega.value.nome_descritivo ? entrega.value.nome_descritivo : '', currency: 'BRL', }); } }) : ''; if (entregas.length > 0 && this.entrega_alterada) { this.entrega_alterada = false; filtroParaDadosAnaliticos('AddShippingInfo', { value: f, currency: 'BRL', coupon: this.cupom && this.cupom.codigo ? this.cupom.codigo : '' , items: entregas, }); } return f; }, get vlr_frete_gratis() { return this._vlr_frete_gratis; }, set vlr_frete_gratis(value) { this._vlr_frete_gratis = value; this._carregarTemplate(); }, get vlr_restante_frete_gratis() { return this._calculaRestanteFreteGratis(); }, get perc_restante_frete_gratis() { return this._calculaPercentualFreteGratis(); }, get texto_frete_gratis() { if (this.vlr_restante_frete_gratis > 0) { return `Faltam apenas R$ ${parseFloat(this.vlr_restante_frete_gratis).toLocaleFixed(2)} para Frete Grátis na Entrega`; } else { return `Parabéns seu Frete é GRÁTIS`; } }, get vlr_total_calculado() { return this._calculaVlrTotal(); }, get informacoes_pbm() { return this._informacoes_pbm; }, set informacoes_pbm(value) { this._informacoes_pbm = value; }, get pacotes_juntos() { return this._pacotes_juntos; }, set pacotes_juntos(value) { this._pacotes_juntos = value; this._atualizarCarrinho(); }, get index() { return this._index }, set index(value) { this._index = value }, get mensagem() { return this._mensagem }, set mensagem(value) { this._mensagem[this._index] = value }, get popupConfirmacao() { return this._popupConfirmacao; }, set popupConfirmacao(value) { this._popupConfirmacao = value; }, set submit_retirada_por_terceiro(value) { this._submit_retirada_por_terceiro = value ? value : false }, get is_controlado() { return this._is_controlado }, set is_controlado(value) { this._is_controlado = value }, get receitas(){ return this._receitas }, set receitas(value) { this._receitas = value }, get is_validar_receita(){ return this._is_validar_receita }, set is_validar_receita(value) { this._is_validar_receita = value }, get is_validar_controlado(){ return this._is_validar_controlado }, set is_validar_controlado(value){ this._is_validar_controlado = value }, get lista_recorrencias(){ return this._lista_recorrencias; }, set lista_recorrencias(value){ this._lista_recorrencias = value; }, get is_recorrencia() { let is_recorrencia = false; if(this.pacotes && this.pacotes.length){ this.pacotes.map(pac => { if(pac.produtos && pac.produtos.length){ pac.produtos.map(p => { if(p.infos_recorrencia && Object.keys(p.infos_recorrencia).length) is_recorrencia = true; }) } }) } return is_recorrencia; }, get template() { if (this.passoAtual === this.passos[0].nome) { let html_template = ``; if(this.is_controlado || (this.receitas && this.receitas.length)){ html_template += `

${!this.receitas || !this.receitas.length ? 'Insira uma receita' : this.receitas && this.receitas.length === 1 ? 'Receita anexada com sucesso' : this.receitas && this.receitas.length > 1 ? 'Receitas anexadas com sucesso' : 'Insira uma receita'}

` if(this.receitas && this.receitas.length){ this.receitas.forEach(receita => { html_template += `

Cód. ${receita.id}

${receita.is_digital ? `

Token: ${receita.token}

` : ` Ver receita `}

` }); } html_template += `

` } if(this.pacotes){ html_template += $.map(this.pacotes, (elem) => { return elem.template; }).join(''); } if (this.pacotes && this.pacotes.length > 0) { html_template += `

? Saiba mais sobre divisão em pacotes

`; } if (!html_template) { html_template = `

Sua cesta está vazia

Adicione produtos à sua cesta e eles aparecerão aqui.

Farmácias Independente | Medicamentos e Produtos de Saúde de Qualidade (37)

`; } // Pacotes return html_template; } else if (this.passoAtual === this.passos[1].nome) { // Pagamento return this.pagamento.template; } } }; CarrinhoComponent.prototype._calculaVlrTotalFloat = function () { const vlrSubTotal = +this.vlr_subtotal ? +this.vlr_subtotal : 0; const vlrFrete = this.cupom && this.cupom.is_frete_gratis ? 0 : +this.vlr_frete ? +this.vlr_frete : 0; const vlrCupom = this.cupom && this.cupom.vlr_cupom ? this.cupom.vlr_cupom : 0; const calculo1 = vlrSubTotal + vlrFrete; const calculo2 = calculo1 - vlrCupom; return calculo2; }, CarrinhoComponent.prototype._calculaVlrTotal = function () { return this._calculaVlrTotalFloat().toLocaleFixed(2) ? this._calculaVlrTotalFloat().toLocaleFixed(2) : (0).toLocaleFixed(2); }, CarrinhoComponent.prototype._calculaRestanteFreteGratis = function () { const calculo = +this.vlr_frete_gratis - +this.vlr_subtotal return calculo > 0 ? calculo : 0 }, CarrinhoComponent.prototype._calculaPercentualFreteGratis = function () { return (this.vlr_frete_gratis * +this.vlr_subtotal) / 100 > 100 ? 100 : (this.vlr_frete_gratis * +this.vlr_subtotal) / 100; }, CarrinhoComponent.prototype._atualizarCashback = function () { load('on', $('.asidebar')); $.ajax({ type: "POST", url: "/cashback/buscar", data: { 'csrfmiddlewaretoken': 'F6O5FYUDzBHTfb9P1f1qItahZI6DsBbHbXJsVF7BAdEe57T2MIZ8x8pnB8hVfnja' }, success: (data) => { load('off', $('.asidebar')); this.saldo_cashback = data.valor; }, error: (data) => { load('off', $('.asidebar')); } }); const pacotes = []; const pagamentos = []; var endereco; if (this.pacotes.length > 0) { endereco = $.extend(true, {}, this.endereco.value); delete endereco._enderecos; endereco = removeTemplates(endereco); for (const pacote of this.pacotes) { const _pacote = $.extend(true, {}, pacote); delete _pacote._carrinho; delete _pacote.filial; delete _pacote.entregas; delete _pacote.produtos; const entrega = $.extend(true, {}, _pacote.entrega); delete entrega.value; delete entrega._pacote; delete entrega.entregasDoTipo; delete entrega._entregasDoTipo; delete entrega.entregas; delete entrega._tipo_entrega; delete entrega.filial; _pacote.entrega = entrega; const entregaValor = $.extend(true, {}, _pacote.entrega._value); delete entregaValor._entrega_component; _pacote.entrega._value = entregaValor; if(_pacote.entrega && _pacote.entrega.is_frete_gratis){ _pacote.entrega._value && _pacote.entrega._value.vlr_frete ? _pacote.entrega._value._vlr_frete = 0 : null } if (_pacote.entrega._value.entrega_complemento) { const entregaComplemento = $.extend(true, {}, _pacote.entrega._value.entrega_complemento); delete entregaComplemento._entrega; _pacote.entrega._value.entrega_complemento = entregaComplemento; } const _produtos = []; for (const produto of pacote._produtos) { const _produto = $.extend(true, {}, produto); delete _produto._pacote; _produtos.push(_produto); } _pacote._produtos = _produtos; pacotes.push(removeTemplates(_pacote)); } if (this.pagamento && this.pagamento.value && this.pagamento.value.length > 0) { for (const pay of this.pagamento.value) { const payment = $.extend(true, {}, pay); delete payment._pagamentos; delete payment._carrinho; delete payment._meus_pagamentos; delete payment._tipos_pagamento; if (payment.cartao) { delete payment.cartao._pagamento; } pagamentos.push(removeTemplates(payment)); } } } $.ajax({ type: "POST", url: "/cashback/calcular", data: { csrfmiddlewaretoken: 'F6O5FYUDzBHTfb9P1f1qItahZI6DsBbHbXJsVF7BAdEe57T2MIZ8x8pnB8hVfnja', lista_pacotes: JSON.stringify(pacotes), endereco: JSON.stringify(endereco), pagamento: JSON.stringify(pagamentos), cupom: JSON.stringify(this.cupom) }, success: (data) => { load('off', $('.asidebar')); this.vlr_cashback = data.valor; this._carregarTemplate(); }, error: (data) => { load('off', $('.asidebar')); } }); }, CarrinhoComponent.prototype._atualizarCarrinho = function () { load('on', $('.asidebar')); if (this.endpointPacotes) { this.endpointPacotes.abort(); } this.endpointPacotes = $.ajax({ type: "POST", url: "/entrega/buscar/pacotes", data: { 'csrfmiddlewaretoken': 'F6O5FYUDzBHTfb9P1f1qItahZI6DsBbHbXJsVF7BAdEe57T2MIZ8x8pnB8hVfnja', 'cep': this.endereco.value && this.endereco.value.cep ? this.endereco.value.cep : '', 'endereco_id': this.endereco.value && this.endereco.value.id ? this.endereco.value.id : '', 'is_pacote_unico': this.pacotes_juntos, 'is_validar_controlado': this.is_validar_controlado }, success: (response_pacotes) => { this.endpointPacotes = null; load('off', $('.asidebar')); this.id = response_pacotes.carrinho_id; this.qtd_itens = response_pacotes.qtd_itens; this.vlr_subtotal = +response_pacotes.subtotal_valor; this.vlr_frete_gratis = response_pacotes.valor_frete_gratis; this.is_validar_receita = response_pacotes.validar_receitas; this.is_controlado = response_pacotes.is_controlado; this.lista_recorrencias = response_pacotes.periodos this.informacoes_pbm = response_pacotes.informacoes_pbm; this.pacotes = response_pacotes.pacotes; this.vlr_desconto_pbm = response_pacotes.vlr_desconto_pbm; this.vlr_desconto_pbm = this.vlr_desconto_pbm != 0 ? this.vlr_desconto_pbm : '0,00' if (this.passoAtual === 'pagamentos') { this._passoAtual = 'entregas'; this._carregarTemplate(); } this._atualizarCashback(); if(this.is_validar_receita){ this._atualizarListaReceitas(); } else { this.receitas = [] } if(!this.is_controlado) this.receitas = [] carrinho.instance.mensagem = []; if(this.is_recorrencia && this.pagamento) this.pagamento._carregarPagamentos(); }, error: (data) => { load('off', $('.asidebar')); } }); }, CarrinhoComponent.prototype._validacaoDosPassos = async function () { if (this.passoAtual === 'pagamentos' && this.valid) { this.popupConfirmacao = new CarrinhoConfirmacao(this.qtd_itens, this.pacotes, this.vlr_subtotal, this.vlr_desconto_pbm, this.vlr_frete, null, this.endereco.value, this.pagamento.value, this.cupom, this.informacoes_pbm, this._calculaVlrTotalFloat()); } else { for (const index in this.passos) { if (this.passoAtual === this.passos[index].nome) { if (await this.passos[index].valid()) { if (this.passos[parseFloat(index) + 1].nome) { this.passoAtual = this.passos[parseFloat(index) + 1].nome; break; } } } } this._carregarTemplate(); this._atualizarProgressoCarrinho(); } }, CarrinhoComponent.prototype._validacaoPacotes = function () { let packValid = true; let isValid = this.pacotes && this.pacotes.length > 0 ? $.map(this.pacotes, (pacote) => { if (packValid) { packValid = pacote.valid; if (!packValid) { carrinho.instance.pacotes[pacote.index - 1].entrega._carregarTemplate(); onToggleCarrinhoPopUp('open', '#popupEntrega'); return pacote.valid; } } }) : [false]; if (this.pacotes && this.pacotes.length > 0) { isValid = [packValid]; } else { isValid = [false]; } return isValid[0]; }, CarrinhoComponent.prototype._validacaoEndereco = function () { if (this.endereco.valid) { return true; } else { onToggleCarrinhoPopUp('open', '#popupEndereco'); return false; } }, CarrinhoComponent.prototype._validacaoReceita = async function () { if(!this.is_controlado){ return true } else { if(this.receitas && this.receitas.length){ return true; } else { toastr.warning('Sua cesta contém um medicamento controlado. Adicione uma receita para prosseguir.') return false; } } }, CarrinhoComponent.prototype._carregarTemplate = function () { $('#carrinho-itens').html(this.qtd_itens > 0 ? '(' + this.qtd_itens + (this.qtd_itens > 1 ? ' itens)' : ' item)') : '(Vazio)'); $('[data-target="carrinho-vlr_cashback"]').html('R$ ' + this.vlr_cashback); $('[data-target="carrinho-vlr_desconto_pbm"]').html('R$ ' + parseFloat(this.vlr_desconto_pbm).toLocaleFixed(2)); $('[data-target="carrinho-vlr_total"]').html('R$ ' + this.vlr_total_calculado); $('#carrinho-texto-frete-gratis').html(this.texto_frete_gratis); $('#carrinho-restante_frete_bar').css('width', this.perc_restante_frete_gratis + '%'); $('#carrinho-body').html(this.template); $(".asidebar").find("select").each(function (e, a) { var r = $(".asidebar"); a && $(a).select2({ theme: "bootstrap", dropdownParent: r, minimumResultsForSearch: -1 }) }); if (this.qtd_itens > 0) { $('.btn-market').addClass('contain_item').attr('data-content', this.qtd_itens); } if (this.pagamento && this.pagamento.valueNotCashback && this.pagamento.valueNotCashback.cartao && this.pagamento.valueNotCashback.cartao.tipo) { eventosCartao(); } $('#carrinho-botao-finalizar').off('click.cart').on('click.cart', () => { window.location.href = "/cliente/login"; }); $('#carrinho-continuar-entrega').off('click.cart').on('click.cart', () => { const isValid = this._validacaoPacotes(); if (isValid) { this._atualizarProgressoCarrinho(); blackPanel(document.getElementById('carrinho_desfoco')); } }); if (this.passoAtual != 'entregas') { let _vlr_frete = this.cupom && this.cupom.is_frete_gratis ? 0 : this.vlr_frete $('[data-target="carrinho-vlr_frete"]').html('R$ ' + parseFloat(_vlr_frete).toLocaleFixed(2)); $('[data-target="carrinho-vlr_frete"]').parent().removeClass('d-none').addClass('d-flex'); $('[data-target="carrinho-vlr_subtotal"]').html('R$ ' + parseFloat(this.vlr_subtotal).toLocaleFixed(2)); $('[data-target="carrinho-vlr_subtotal"]').parent().removeClass('d-none').addClass('d-flex'); } else { $('[data-target="carrinho-vlr_frete"]').parent().removeClass('d-flex').addClass('d-none'); $('[data-target="carrinho-vlr_subtotal"]').parent().removeClass('d-flex').addClass('d-none'); } }, CarrinhoComponent.prototype._atualizarProgressoCarrinho = function () { var textoBotao = 'Escolher Entrega'; let pas = $.map(this.passos, (passo) => { if (this.passoAtual === passo.nome) { textoBotao = passo.texto(); } return passo.nome; }) const perc = this.passos[pas.indexOf(this.passoAtual)].progresso(); $('#carrinho-botao-finalizar').html(`
${textoBotao}
`); if (this.passoAtual !== 'entregas') { $('#carrinho-voltar-entrega').removeClass('d-none').off('click.cart').on('click.cart', () => { this.passoAtual = 'entregas'; this._carregarTemplate(); }); } else { $('#carrinho-voltar-entrega').addClass('d-none').off('click.cart'); } $('[data-target="carrinho-progresso"]').css('width', perc + '%'); }, CarrinhoComponent.prototype._mensagemTempoDeEntrega = function (pacote_entrega) { const index_pct = $('#carrinho-tipo-entregas').attr('data-pacote-ativo') - 1; const _entregas = pacote_entrega[index_pct].entrega._value.dadosComplemento; let carrinho = pacote_entrega[index_pct]._carrinho; pacote_entrega[index_pct]._carrinho.index = index_pct; $.ajax({ type: 'POST', url: '/alerta/horarios', data: { 'csrfmiddlewaretoken': 'F6O5FYUDzBHTfb9P1f1qItahZI6DsBbHbXJsVF7BAdEe57T2MIZ8x8pnB8hVfnja', 'cd_filial': _entregas && _entregas.filial && _entregas.filial.cd_filial ? _entregas.filial.cd_filial : '', 'tempo_entrega': _entregas.tempo, 'tipo': _entregas.tipo_codigo, 'tempo_limite': _entregas.hora_limite, 'hr_inicio': _entregas.hr_inicio, 'entrega_id': _entregas.nome, 'is_mensagem_horario': _entregas.is_mensagem_horario, }, success: function (response) { if(response.status){ pacote_entrega[index_pct]._carrinho.mensagem[index_pct] = response.mensagem; $('#msg-tempo-entrega-' + index_pct).html(response.mensagem); $('#msg-tempo-entrega-' + index_pct).parent().show(300); } else { pacote_entrega[index_pct]._carrinho.mensagem[index_pct] = ''; $('#msg-tempo-entrega-' + index_pct).parent().hide(300); } }, error: function (response) { pacote_entrega[index_pct]._carrinho.mensagem[index_pct] = ''; } }); } CarrinhoComponent.prototype._atualizarListaReceitas = function () { load('on', $('.asidebar')); $.ajax({ type: "POST", url: "/buscar/receitas/pacotes", data: { 'csrfmiddlewaretoken': 'F6O5FYUDzBHTfb9P1f1qItahZI6DsBbHbXJsVF7BAdEe57T2MIZ8x8pnB8hVfnja', }, success: (data) => { load('off', $('.asidebar')); this.receitas = data.receitas; let form_envio_receita = $('#form_envio_receita') if(data.receitas && data.receitas.length){ $(form_envio_receita).find('[name="receita-tipo"]').parent().parent().removeClass('col-md-6').addClass('col-md-4') $(form_envio_receita).find('[name="receita-tipo"]').parent().parent().show(300) $(form_envio_receita).find('[name="receita-tipo"]').next().css('height', '70px') } else { $(form_envio_receita).find('[name="receita-tipo"]').parent().parent().removeClass('col-md-4').addClass('col-md-6') $(form_envio_receita).find('[name="receita-tipo"]').last().parent().parent().hide(300) $(form_envio_receita).find('[name="receita-tipo"]').next().css('height', '50px') } this._carregarTemplate(); }, error: (data) => { load('off', $('.asidebar')); } }); }, CarrinhoComponent.prototype._validarTipoEntregaPorReceita = async function () { return new Promise(function(resolve, reject) { load('on', $('.asidebar')); let json_pacotes = [] let lista_pacotes = carrinho.instance.pacotes if(lista_pacotes && lista_pacotes.length){ lista_pacotes.forEach(pct => { if(pct.produtos && pct.produtos.length){ pct.produtos.forEach(prod => { delete prod._pacote delete prod.template }); } json_pacotes.push({ 'pacote': +pct.index - 1, 'produtos': pct.produtos, 'tipo_entrega': pct.entrega ? pct.entrega.tipo_entrega : '', }) }) } $.ajax({ type: "POST", url: "/validar/receitas/pacotes", data: { 'csrfmiddlewaretoken': 'F6O5FYUDzBHTfb9P1f1qItahZI6DsBbHbXJsVF7BAdEe57T2MIZ8x8pnB8hVfnja', 'pacotes': JSON.stringify(json_pacotes), }, success: (data) => { if(data.status){ carrinho.instance.is_validar_controlado = '' load('off', $('.asidebar')); } else { toastr.error('Sua cesta contém um produto com venda controlada. Insira uma nova receita ou selecione uma opção de entrega do tipo "Compre e retire" para prosseguir.', 'Atenção'); carrinho.instance.is_validar_controlado = true carrinho.instance._atualizarCarrinho(); } resolve(data.status); }, error: (data) => { load('off', $('.asidebar')); if(this.receitas && this.receitas.length){ resolve(true); } else { resolve(false); } } }); }) }, CarrinhoComponent.prototype._excluirReceita = function (receita_id) { load('on', $('.asidebar')); $.ajax({ type: "POST", url: "/remover/receitas/carrinho", data: { 'csrfmiddlewaretoken': 'F6O5FYUDzBHTfb9P1f1qItahZI6DsBbHbXJsVF7BAdEe57T2MIZ8x8pnB8hVfnja', 'receita_id': receita_id, }, success: (data) => { if(data.status){ if(this.receitas && this.receitas.length){ let index = this.receitas.findIndex(val => val.id == receita_id) index > -1 ? this.receitas.splice(index, 1) : '' } this._atualizarCarrinho(); } else { toastr.error(data.descricao ? data.descricao : 'Ocorreu um erro interno ao realizar a exclusão da receita', 'Erro'); load('off', $('.asidebar')); } }, error: (data) => { toastr.error('Ocorreu um erro interno ao realizar a exclusão da receita', 'Erro'); load('off', $('.asidebar')); } }); }, CarrinhoComponent.prototype._visualizarReceita = async function () { let form_upload_receita_carrinho = $('#form_upload_receita_carrinho') let dat_nasc = '' + '-' + '' + '-' + '' if(dat_nasc){ dat_nasc = moment(dat_nasc, 'YYYY-MM-DD').format('DD/MM/YYYY') $(form_upload_receita_carrinho).find('[name="dat_nasc"]').val(dat_nasc) } filepond_receita_carrinho(false) await getEstados($('#form_upload_receita_carrinho'), $('.asidebar')) await getTiposCr($('#form_upload_receita_carrinho'), $('.asidebar')) $(form_upload_receita_carrinho).find("[name='receita-tipo']").off('change').on('change', function(e){ if($(form_upload_receita_carrinho).hasClass('was-validated')){ $(form_upload_receita_carrinho).find('.labl').children('input').addClass('is-valid') } $(form_upload_receita_carrinho).find("[name='receita_numero_token']").val('') $('#receita_anexo_carrinho').filepond("removeFiles") let forma_envio = $(this).val() if(forma_envio === 'token'){ $(form_upload_receita_carrinho).find("[name='bloco_receita_digital']").show(300) $(form_upload_receita_carrinho).find("[name='bloco_receita_anexo']").hide(300) $(form_upload_receita_carrinho).find("[name='receita_numero_token']").attr('required', true) filepond_receita_carrinho(false) } else if(forma_envio === 'path_receita'){ $(form_upload_receita_carrinho).find("[name='bloco_receita_anexo']").show(300) $(form_upload_receita_carrinho).find("[name='bloco_receita_digital']").hide(300) $(form_upload_receita_carrinho).find("[name='receita_numero_token']").attr('required', false) filepond_receita_carrinho(true) } else { $(form_upload_receita_carrinho).find("[name='bloco_receita_anexo']").hide(300) $(form_upload_receita_carrinho).find("[name='bloco_receita_digital']").hide(300) $(form_upload_receita_carrinho).find("[name='receita_numero_token']").attr('required', false) filepond_receita_carrinho(false) } }) onToggleCarrinhoPopUp('open', '#popupUploadReceita'); }, CarrinhoComponent.prototype._submitReceita = function () { let form_upload_receita_carrinho = $('#form_upload_receita_carrinho') let dat_nasc = $(form_upload_receita_carrinho).find("[name='dat_nasc']").val() dat_nasc = moment(dat_nasc, 'DD/MM/YYYY').format('YYYYMMDD') let dat_receita = $(form_upload_receita_carrinho).find("[name='dat_receita']").val() dat_receita = moment(dat_receita, 'DD/MM/YYYY').format('YYYYMMDD') if(!$(form_upload_receita_carrinho).find('[name=receita-tipo]:checked').val()){ $(form_upload_receita_carrinho).find('.labl').children('input').addClass('is-invalid') $(form_upload_receita_carrinho).find('.is-invalid-text').show(300) } else { $(form_upload_receita_carrinho).find('.labl').children('input').addClass('is-valid') $(form_upload_receita_carrinho).find('.is-invalid-text').hide(300) } if($(form_upload_receita_carrinho).find('[name=receita-tipo]:checked').val() === 'path_receita' && path_receita_carrinho){ $(form_upload_receita_carrinho).find('#receita_anexo_arquivo').addClass('is-valid') } else if($(form_upload_receita_carrinho).find('[name=receita-tipo]:checked').val() === 'path_receita' && !path_receita_carrinho){ toastr.warning('Envie sua receita para prosseguir.') $(form_upload_receita_carrinho).find('#receita_anexo_arquivo').addClass('is-invalid') return } if($('#form_upload_receita_carrinho')[0].checkValidity()){ onToggleCarrinhoPopUp('', '#popupUploadReceita'); load('on', $('.asidebar')); $.ajax({ type: 'POST', url: "/receita/salvar", data: { 'csrfmiddlewaretoken': 'F6O5FYUDzBHTfb9P1f1qItahZI6DsBbHbXJsVF7BAdEe57T2MIZ8x8pnB8hVfnja', 'nm_completo': $(form_upload_receita_carrinho).find("[name='nm_completo']").val(), 'uf_rg': $(form_upload_receita_carrinho).find("[name='estado-documento']").val(), 'documento': $(form_upload_receita_carrinho).find("[name='documento']").val(), 'dat_nasc': dat_nasc ? dat_nasc : '', 'sexo': $(form_upload_receita_carrinho).find("[name='sexo']:checked").val(), 'dat_receita': dat_receita ? dat_receita : '', 'qtd': $(form_upload_receita_carrinho).find("[name='qtd_medicamentos']").val(), 'cr': $(form_upload_receita_carrinho).find("[name='cr']").val(), 'uf': $(form_upload_receita_carrinho).find("[name='uf_cr']").val(), 'conselho': $(form_upload_receita_carrinho).find("[name='codigo_cr']").val(), 'nm_medico': $(form_upload_receita_carrinho).find("[name='nm_medico']").val(), 'token': $(form_upload_receita_carrinho).find("#tipo_digital_carrinho").is(':checked') ? $(form_upload_receita_carrinho).find("[name='receita_numero_token']").val() : '', 'path_receita': $(form_upload_receita_carrinho).find("#tipo_anexo_carrinho").is(':checked') ? path_receita_carrinho : '', }, success: function (response) { if(response.status){ carrinho.instance._resetFormularioReceitaCarrinho(); carrinho.instance._atualizarCarrinho() } else { toastr.error(response.descricao ? response.descricao : 'Ocorreu um erro interno ao enviar a receita', 'Erro'); load('off', $('.asidebar')); } }, error: function () { load('off', $('.asidebar')); toastr.error('Ocorreu um erro interno ao enviar a receita', 'Erro'); } }); } else { toastr.warning('Preencha os campos obrigatórios para prosseguir.') $('#form_upload_receita_carrinho').addClass('was-validated') } }, CarrinhoComponent.prototype._resetFormularioReceitaCarrinho = function () { let _form = $('#form_upload_receita_carrinho') $(_form).removeClass('was-validated') $(_form).get(0).reset() $(_form).find(".is-valid").removeClass('is-valid') $(_form).find(".is-invalid").removeClass('is-invalid') $(_form).find("[name='bloco_receita_anexo']").hide(300) $(_form).find("[name='bloco_receita_digital']").hide(300) $(_form).find("[name='bloco_tipo_receita_required']").hide(300) filepond_receita_carrinho(false) path_receita_carrinho = '' $('#receita_anexo_carrinho').filepond("removeFiles") }, CarrinhoComponent.prototype._preSelecionarEntrega = function(tipo_entrega, pct) { if(tipo_entrega === 'entrega'){ this.pacotes[pct].entrega.value = 'entrega' } else if(tipo_entrega === 'retirada') { this.pacotes[pct].entrega.value = 'retirada' } this._mensagemTempoDeEntrega(this._pacotes); }, carrinho.instance = new CarrinhoComponent(); function removeTemplates(obj) { for(prop in obj) { if (prop === 'template' || prop === 'pagamentoComplemento' || prop === 'template_novo_endereco' || prop === 'editar' || prop === 'html_convenios') delete obj[prop]; else if (typeof obj[prop] === 'object') obj[prop] = removeTemplates(obj[prop]); } return obj; } atualizarCarrinho = () => { carrinho.instance._atualizarCarrinho(); } async function loadScript(url, callback) { var script = document.createElement("script"); script.type = "text/javascript"; if (script.readyState) { // only required for IE <9 script.onreadystatechange = function () { if (script.readyState === "loaded" || script.readyState === "complete") { script.onreadystatechange = null; if (callback) { callback(); } } }; } else { //Others script.onload = function () { if (callback) { callback(); } }; } script.src = url; document.getElementsByTagName("head")[0].appendChild(script); } const chaveMercadoPago = async () => { $('.modal-carrinho').on('shown.bs.modal', function () { $('.asidebar').css('zIndex', 10000); }).on('hidden.bs.modal', function () { if ($('.modal-carrinho').hasClass('show') === false) { $('.asidebar').css('zIndex', ''); do_submit_confirmar_compra = false; do_submit_comprar = false; is_loader_confirmar_compra = false; load('off', $('.asidebar')); } }); loadScript('https://www.mercadopago.com/v2/security.js'); loadScript('https://secure.mlstatic.com/sdk/javascript/v1/mercadopago.js', function () { integracaoMercadoPago(); }); }; loadScript(`https://www.google.com/recaptcha/api.js?render=6LfnbWkkAAAAAIcEc3HbZtE8V-_YSpv9ZOO9pe0i`) const integracaoMercadoPago = async () => { // uses moduleA window.Mercadopago.setPublishableKey("None"); }; function eventosCartao() { //window.Mercadopago.getIdentificationTypes(); $('#cardNumber').off('keyup.mercado').on('keyup.mercado', carrinho.instance.pagamento.valueNotCashback.cartao.guessPaymentMethod); $('#cardNumber').off('change.mercado').on('change.mercado', carrinho.instance.pagamento.valueNotCashback.cartao.guessPaymentMethod); $('#cardNumber').mask('9999 9999 9999 9999'); $('#carrinho-cartao-validade').mask('00/00').off('change.mercado').on('change.mercado', function () { let valor = this.value.split('/'); if (valor.length === 2) $("#cardExpirationMonth").val(valor[0]); $("#cardExpirationYear").val(valor[1]); }); $("#securityCode").mask('999').off('change.mercado').on('change.mercado', () => { carrinho.instance.pagamento.valueNotCashback.cartao.securityCode = $("#securityCode").val(); }); var cpfMascara = function (val) { if (val.replace(/\D/g, '').length > 11) { $('#docType').val('CNPJ'); return '00.000.000/0000-00'; } else { $('#docType').val('CPF'); return '000.000.000-009'; } }, cpfOptions = { onKeyPress: function (val, e, field, options) { field.mask(cpfMascara.apply({}, arguments), options); } }; $('#carrinho-cartao-cpf_titular').mask(cpfMascara, cpfOptions); $("#carrinho-endereco-cep").mask('99.999-999'); $('#carrinho-botao-finalizar').off('submit.mercado').on('submit.mercado', carrinho.instance.pagamento.valueNotCashback.cartao.doPay); $('.input-cartao').focus(function(){ $(this).prev().addClass('foco-carrinho') }) $('.input-cartao').focusout(function(){ $(this).prev().removeClass('foco-carrinho') }) } //chaveMercadoPago(); function setarInputInvalid(dom, mensagem) { if (mensagem) { $(dom).addClass('border-danger'); $(dom).parent().find(".text-danger.invalid").html(mensagem); } else { $(dom).removeClass('border-danger'); $(dom).parent().find(".text-danger.invalid").html(''); } } function errosNoCartao(status) { let numero_cartao = document.getElementById("cardNumber"), nm_impresso = document.getElementById("cardholderName"), data_vencimento = document.getElementById("carrinho-cartao-validade"), codigo_seguranca = document.getElementById("securityCode"), cpf_titular = document.getElementById("carrinho-cartao-cpf_titular"); switch (status.toString().toUpperCase()) { case "326": case "325": setarInputInvalid(data_vencimento, "Data de vencimento inválida."); break; case "324": case "323": case "322": setarInputInvalid(cpf_titular, "Confira o CPF do titular."); break; case "316": setarInputInvalid(nm_impresso, "Por favor, digite um nome válido."); break; case "E302": setarInputInvalid(codigo_seguranca, "Código de segurança inválido."); break; case "E301": setarInputInvalid(numero_cartao, "Há algo de errado com o número do cartão. Digite novamente."); break; case "224": setarInputInvalid(codigo_seguranca, "Digite o código de segurança."); break; case "221": setarInputInvalid(nm_impresso, "Digite o nome e sobrenome."); break; case "214": case "213": case "212": setarInputInvalid(cpf_titular, "Informe seu CPF."); break; case "209": case "208": setarInputInvalid(data_vencimento, "Informe a data de vencimento."); break; case "205": setarInputInvalid(numero_cartao, "Digite o número do seu cartão."); break; default: toastr.error("Confira os dados do cartão.", "Erro"); } } function setPaymentMethod(status, response) { let numero_cartao = document.getElementById('cardNumber'); let nm_impresso = document.getElementById('cardholderName'); let data_vencimento = document.getElementById('carrinho-cartao-validade'); let codigo_seguranca = document.getElementById('securityCode'); let cpf_titular = document.getElementById('carrinho-cartao-cpf_titular'); setarInputInvalid(numero_cartao, ''); setarInputInvalid(nm_impresso, ''); setarInputInvalid(data_vencimento, ''); setarInputInvalid(codigo_seguranca, ''); setarInputInvalid(cpf_titular, ''); if (status === 200) { if (response[0].id === "amex") { $('#cardNumber').mask('9999 999999 99999'); $('#securityCode').mask('9999'); } else { $('#cardNumber').mask('9999 9999 9999 9999'); $('#securityCode').mask('999'); } $('#cardNumber').attr('minlength', response[0].settings[0].card_number.length); $('#payment_method_id').val(response[0].id); } else { errosNoCartao(status); } } function pegarTokenSeForCartao(status, response) { if (status !== 200 && status !== 201) { } else { carrinho.instance.pagamento.valueNotCashback.dadosComplemento.token = response.id; carrinho.instance.pagamento.valueNotCashback._pagamentoMeuCartao(); } } let json_hashs = {}; /** * função especifica para o carrinho, adicionar ou remover itens do carrinho de 1 em 1 armazenando qtd de clicks e enviando a qtd de clicks em um intervalo após 700 milisegundos sem click do usuário * @param __this DOM botao + ou - * @param acao mais ou menos string * @param hash hash_produto */ function adicionar_remover(__this, acao, hash, token_nsu) { let _this = __this.parent().find(`[data-toggle='number_plus_minus']`); let receita_id = $(_this).attr("data-receita-id") if (!hash) { hash = null; } if (acao) { if (acao === "menos") { if (_this.attr('data-valor') > parseInt(_this.attr('data-limite-min')) || _this.attr('data-limite-min') === "") { $(__this).parent().find('a').removeClass('isDisabled'); if (_this.attr('data-valor') <= parseInt(_this.attr('data-limite-min')) || _this.attr('data-valor') <= 1) { $(__this).addClass('isDisabled'); } else { $(__this).removeClass('isDisabled'); _this.html( parseInt(_this.attr('data-valor')) - 1 ).attr('data-valor', parseInt(_this.attr('data-valor')) - 1); if (hash) { if (!json_hashs[hash + acao]) { json_hashs[hash + acao] = 0; } json_hashs[hash + acao]++; let click = json_hashs[hash + acao]; setTimeout(() => { if (click === json_hashs[hash + acao]) { removerProdutoCarrinho(hash, json_hashs[hash + acao], token_nsu, receita_id); json_hashs[hash + acao] = 0; } }, 700); } } } else { $(__this).addClass('isDisabled'); } } else if (acao === "mais") { if (_this.attr('data-valor') < parseInt(_this.attr('data-limite-max')) || _this.attr('data-limite-max') === "") { $(__this).parent().find('a').removeClass('isDisabled'); _this.html( parseInt(_this.attr('data-valor')) + 1 ).attr('data-valor', parseInt(_this.attr('data-valor')) + 1); _this.attr('data-valor') === parseInt(_this.attr('data-limite-max')) ? $(__this).addClass('isDisabled') : $(__this).removeClass('isDisabled'); if (hash) { if (!json_hashs[hash + acao]) { json_hashs[hash + acao] = 0; } json_hashs[hash + acao]++; let click = json_hashs[hash + acao]; setTimeout(function () { if (click === json_hashs[hash + acao]) { adicionarProdutoCarrinho(hash, json_hashs[hash + acao], _this); json_hashs[hash + acao] = 0; } }, 700) } } else { $(__this).addClass('isDisabled'); } } } } function addEventToDataLayer(event, parameters) { const info = { event: event, ecommerce: parameters, userData: getUserData(), }; dataLayer.push({ ecommerce: null }); // Formatando valores para number if (parameters.items) { parameters.items = parameters.items.map((item) => { if (item.hasOwnProperty('price')) { item.price = !isNaN(parseFloat(item.price)) ? parseFloat(item.price) : 0 } if (item.hasOwnProperty('discount')) { item.discount = !isNaN(parseFloat(item.discount)) ? parseFloat(item.discount) : 0 } return item }) } dataLayer.push(info); } function getUserData() { return { email: "", phone: "", first_name: "", last_name: "", address_street: "", address_city: "", address_region: "", address_postal_code: "", address_country: "", } } function defaultGtagItem(item) { return { item_id: item.id, item_name: item.item_name, quantity: item.quantidade, item_brand: item.item_brand, item_category: item.item_category, discount: item.discount, currency: item.currency, price: item.price, promotion_id: item.promotion_name, item_list_name: item.item_list_name, item_list_id: item.item_list_id, index: item.index, } } function filtroParaDadosAnaliticos(referencia, termo) { var items_gtag = []; var items_fbq = []; switch (referencia) { case "AddShippingInfo": addEventToDataLayer('add_shipping_info', { value: termo.value, currency: termo.currency, coupon: termo.coupon, items: termo.items, }); break; case "Search": // fbq("track", referencia, termo ? { search_string: termo } : undefined); addEventToDataLayer('search', { search_term: termo }); break; case "AddPaymentInfo": for (let i = 0; i < termo.items.length; i++) { items_gtag.push(defaultGtagItem(termo.items[i])); items_fbq.push({ id: termo.items[i].id, quantity: termo.items.quantidade }); } if(typeof(originCarrinho) === 'string' && originCarrinho === 'app'){ fbq('track', 'AddPaymentInfo', { currency: 'BRL', value: termo.value, content_type: 'product', contents: items_fbq, }); } addEventToDataLayer('add_payment_info', { currency: termo.currency, payment_type: termo.payment_type, coupon: termo.coupon, value: termo.value, items: items_gtag, }); break; case "InitiateCheckout": for (let i = 0; i < termo.items.length; i++) { items_gtag.push(defaultGtagItem(termo.items[i])); items_fbq.push({ id: termo.items[i].id, quantity: termo.items.quantidade }); } if(typeof(originCarrinho) === 'string' && originCarrinho === 'app'){ fbq('track', 'InitiateCheckout'); } addEventToDataLayer('begin_checkout', { currency: termo.currency, coupon: termo.coupon, value: termo.value, items: items_gtag, }); break; case "Purchase": for (let i = 0; i < termo.items.length; i++) { items_gtag.push(defaultGtagItem(termo.items[i])); items_fbq.push({ id: termo.items[i].id, quantity: termo.items.quantidade }); } if(typeof(originCarrinho) === 'string' && originCarrinho === 'app'){ fbq('track', 'Purchase', { currency: 'BRL', value: termo.value + termo.shipping, content_type: 'product', contents: items_fbq, }); } addEventToDataLayer('purchase', { currency: 'BRL', value: termo.value, items: items_gtag, shipping: termo.shipping, tax: termo.tax, // affiliation: termo.affiliation, coupon: termo.coupon, transaction_id: termo.transaction_id, }); break; case "SelectItem": for (let i = 0; i < termo.items.length; i++) { items_gtag.push({ item_id: termo.items[i].id, item_name: termo.items[i].item_name, item_brand: termo.items[i].item_brand, item_category: termo.items[i].item_category, discount: termo.items[i].discount, price: termo.items[i].price, promotion_id: termo.items[i].promotion_name, index: termo.items[i].index, }); } addEventToDataLayer('select_item', { item_list_name: termo.item_list_name, item_list_id: termo.item_list_id, currency: 'BRL', items: items_gtag, }); break; case "ViewContent": for (let i = 0; i < termo.items.length; i++) { items_gtag.push({ item_id: termo.items[i].id, item_name: termo.items[i].item_name, item_brand: termo.items[i].item_brand, item_category: termo.items[i].item_category, discount: termo.items[i].discount, price: termo.items[i].price, promotion_id: termo.items[i].promotion_name, index: termo.items[i].index, }); items_fbq.push({ id: termo.items[i].id, item_category: termo.items[i].item_category, item_name: termo.items[i].item_name, price: termo.items[i].price }); } if(typeof(originCarrinho) === 'string' && originCarrinho === 'app'){ fbq('track', 'ViewContent', { content_type: 'product', contents: items_fbq, }); } addEventToDataLayer('view_item', { currency: 'BRL', items: items_gtag, }); break; case "AddToCart": for (let i = 0; i < termo.items.length; i++) { items_gtag.push(defaultGtagItem(termo.items[i])); items_fbq.push({ id: termo.items[i].id, quantity: termo.items[i].quantidade }); } if(typeof(originCarrinho) === 'string' && originCarrinho === 'app'){ fbq('track', 'AddToCart', { currency: 'BRL', value: termo.value, content_type: 'product', contents: items_fbq, }); } addEventToDataLayer('add_to_cart', { currency: 'BRL', value: termo.value, items: items_gtag, }); break; case "RemoveFromCart": for (let i = 0; i < termo.items.length; i++) { items_gtag.push(defaultGtagItem(termo.items[i])); // items_fbq.push({ // id: termo.items[i].id, // quantity: termo.items[i].quantidade // }); } addEventToDataLayer('remove_from_cart', { currency: 'BRL', value: termo.value, items: items_gtag, }); break; case "CompleteRegistration": if(typeof(originCarrinho) === 'string' && originCarrinho === 'app'){ fbq('track', 'CompleteRegistration'); } break; case "ViewItemList": items_gtag = termo.items; addEventToDataLayer('view_item_list', termo); break; case "ViewCart": addEventToDataLayer('view_cart', termo); break; case "CloseCart": addEventToDataLayer('close_cart', termo); break; case "RequestContact": // fbq('track', 'FindLocation', termo.value); addEventToDataLayer('request_contact', termo); break; case "Login": dataLayer.push({ event: 'login', userData: termo, email: termo, phone: termo, first_name: termo, last_name: termo, address_street: termo, address_city: termo, address_region: termo, address_postal_code: termo, address_country: termo, gender: termo, dob: termo, }); break; case "SignUp": dataLayer.push({ event: 'sign_up', userData: termo, email: termo, phone: termo, first_name: termo, last_name: termo, address_street: termo, address_city: termo, address_region: termo, address_postal_code: termo, address_country: termo, gender: termo, dob: termo, }); break; } } $('[data-target="entrando-contato"]').on('click', function() { filtroParaDadosAnaliticos('RequestContact', { value: this.getAttribute('href') }); }); function pesquisar_post(termo) { filtroParaDadosAnaliticos("Search", termo ); $.ajax({ type: "POST", url: "/pesquisa/buscar/sugestoes", data: { 'csrfmiddlewaretoken': 'F6O5FYUDzBHTfb9P1f1qItahZI6DsBbHbXJsVF7BAdEe57T2MIZ8x8pnB8hVfnja', 'q': termo, }, success: function (data) { $(".dropdown-search").html(""); $(".dropdown-search").append('

Sugestão

Produtos

'); $("#search-suggestion").html(""); data.indices.forEach(function (a) { let e = a._source.indice; a = document.createElement("a"); a.classList.add("text-search"); a.setAttribute("href", "/pesquisa/" + e.replace(/\s/g, "-")); a.classList.add("my-1"); a.innerHTML = e; $("#search-suggestion").append(a); }); let todas_categorias = []; if (data.dados.categorias) { if (data.dados.categorias.length) $("#search-suggestion").append(""); data.dados.categorias.forEach(function (a) { todas_categorias.includes(a._source.categoria_principal_url) || void 0 === a._source.categoria_principal_url || $("#search-suggestion").append("

" + termo + ' em ' + a._source.categoria_principal_nome + "

"); todas_categorias.push(a._source.categoria_principal_url); }); } if (data.indices.length) $("#search-suggestion").append(''); $("#search-product").html(""); data.dados.produtos.forEach(function (value) { var img_produto = 'produtos/caixa.jpg'; if (value._source.imagem_produto) { img_produto = value._source.imagem_produto; } $("#search-product").append(` `); }); $('.dropdown-search').append(` Ver todos os resultados >`); pegarPrecosAtribuirDescontos(true); }, error: function (data) { load('off', $('.asidebar')); if (data.statusText !== 'error') { doSubmit = false; } } }); } function pesquisar_get() { let valor = $('#barra-pesquisa').val(); valor = valor.replace(/\s/g, '-').trim().toLowerCase(); window.location.replace("/pesquisa/" + valor); } function pesquisar_get_sugestao(termo) { let valor = termo; valor = valor.replace(/\s/g, '-').trim(); window.location.replace("/pesquisa/" + valor); } var typingTimer; //timer identifier var doneTypingInterval = 500; //time in ms, 1 second for example //quando digita inicia o contador document.addEventListener("DOMContentLoaded", function() { $('#barra-pesquisa').on('keyup', function (e) { timer = 0; if (e.key === 'Enter' || e.keyCode === 13) { pesquisar_get(); } clearTimeout(typingTimer); if ($('#barra-pesquisa').val) { typingTimer = setTimeout(doneTyping, doneTypingInterval); } }); }); var timer = 0; setInterval(function () { timer += 1 }, 1); //quando o usuario para de digitar function doneTyping() { var $search = $('#barra-pesquisa'); if ($search.val().length >= 3) { pesquisar_post($search.val()); $search.css({ borderRadius: '7px 7px 0px 0px', borderBottom: 'none' }); } }
Farmácias Independente | Medicamentos e Produtos de Saúde de Qualidade (2024)
Top Articles
Latest Posts
Article information

Author: Tyson Zemlak

Last Updated:

Views: 6267

Rating: 4.2 / 5 (63 voted)

Reviews: 86% of readers found this page helpful

Author information

Name: Tyson Zemlak

Birthday: 1992-03-17

Address: Apt. 662 96191 Quigley Dam, Kubview, MA 42013

Phone: +441678032891

Job: Community-Services Orchestrator

Hobby: Coffee roasting, Calligraphy, Metalworking, Fashion, Vehicle restoration, Shopping, Photography

Introduction: My name is Tyson Zemlak, I am a excited, light, sparkling, super, open, fair, magnificent person who loves writing and wants to share my knowledge and understanding with you.