private static function subtraiEstoque($pedido)
 {
     $itens = PedidoItens::find('pedido_id =' . $pedido);
     $base = new BaseHelper();
     foreach ($itens as $key => $value) {
         $item = PedidoItens::findFisrt('id =' . $value->id);
         $produto = Produtos::findById($value->produto_id);
         if ($value->detalhe_id != '') {
             $chave = $base->arrayMultiSearch($produto['detalhes'], 'detalhe_id', $value->detalhe_id);
             $produto['detalhes'][$chave]['estoque'] = $produto['detalhes'][$chave]['estoque'] - $value->quantidade;
             $produto->save();
         } else {
             $produto->estoque = $produto->estoque - $value->quantidade;
             $produto->save();
         }
     }
 }
 protected function setData()
 {
     $html = '<form class="' . $this->options['form_class'] . '" action="' . $this->url_base . 'produtos/search" id="search" method="post">';
     if ($this->options['categorias']) {
         $html .= parent::replaceWraper(3, array($this->options['categoria_id'], $this->options['categoria_class'], $this->getCategorias()), $this->options['categorias_container']);
     }
     $html .= $this->getInput();
     $html .= '<button type="submit" class="' . $this->options['button_class'] . '" id="search-submit">' . $this->options['button_text'] . '</button>';
     $html .= '</form>';
     return $html;
 }
 public function setSubmenu($dados, $array)
 {
     $submenu = '';
     if (!empty($dados)) {
         foreach ($dados as $key => $value) {
             $replaces = array($array['submenu_item_class'], $array['submenu_item_link_class'], parent::generateUrl($value['nome'], $value['id'], 'categoria'), $value['nome'], '');
             $wrap = $array['submenu_item_wrap'] != "" ? $array['submenu_item_wrap'] : $array['item_wrap'];
             $submenu .= parent::replaceWraper(5, $replaces, $wrap);
         }
     }
     return $submenu;
 }
 public function setSubmenu($dados, $array)
 {
     $submenu = '';
     if (!empty($dados)) {
         if ($array['break_menu']) {
             $quebramenu = array_chunk($dados, $array['break_limit']);
             for ($i = 0; $i < count($quebramenu); $i++) {
                 foreach ($quebramenu[$i] as $key => $value) {
                     $replaces = array($array['submenu_item_class'], $array['submenu_item_link_class'], parent::generateUrl($value['nome'], $value['id'], 'categoria'), $value['nome'], '');
                     $wrap = $array['submenu_item_wrap'] != "" ? $array['submenu_item_wrap'] : $array['item_wrap'];
                     $submenu .= parent::replaceWraper(5, $replaces, $wrap);
                 }
             }
         } else {
             foreach ($dados as $key => $value) {
                 $replaces = array($array['submenu_item_class'], $array['submenu_item_link_class'], parent::generateUrl($value['nome'], $value['id'], 'categoria'), $value['nome'], '');
                 $wrap = $array['submenu_item_wrap'] != "" ? $array['submenu_item_wrap'] : $array['item_wrap'];
                 $submenu .= parent::replaceWraper(5, $replaces, $wrap);
             }
         }
     }
     return $submenu;
 }
 public function getCaption($dados, $param, $chave)
 {
     $item = '';
     if ($param == 'title') {
         if ($this->options['posicao'] == '1') {
             if ($dados->descricao != '') {
                 $item = $dados->nome;
             } else {
                 $item = '';
             }
         } else {
             $item = $dados->nome;
         }
     } else {
         if ($param == 'description') {
             $item = nl2br($dados->descricao);
         } else {
             if ($param == 'link') {
                 if ($dados->link != '') {
                     $item = "<a href='{$dados->link}' class='{$this->options['link_class']}'>Mais Detalhes</a>";
                 }
             } else {
                 $item = '';
             }
         }
     }
     $opcoes = '';
     if (isset($this->options[$param . '_options'][$chave])) {
         $options = $this->options[$param . '_options'][$chave];
     } else {
         $options = $this->options[$param . '_options'];
     }
     foreach ($options as $key => $value) {
         $opcoes .= "{$key}='{$value}' ";
     }
     return parent::replaceWraper(2, array($opcoes, $item), $this->options[$param . '_wrap']);
 }
 public function setOverlay($array, $obj)
 {
     $html = '';
     foreach ($array['overlay_options'] as $key => $value) {
         if ($value['content'] != '') {
             $content_class = isset($value['content_class']) ? $value['content_class'] : '';
             $conteudo = '<' . $value['content'] . ' class="' . $content_class . '">' . constant('self::' . $key) . '</' . $value['content'] . '>';
         } else {
             $conteudo = constant('self::' . $key);
         }
         $overlay = parent::replaceWraper(3, array($obj->_id, $value['class'], $value['text']), $conteudo);
         $html .= $overlay;
     }
     return parent::replaceWraper(2, array($this->options['overlay_class'], $html), $this->options['overlay_wrap']);
 }
 protected function setTitleLabel($layout)
 {
     return parent::replaceWraper(2, array($layout['title_class'], $layout['title_label']), $layout['title_wrap']);
 }
 private static function setDados($post)
 {
     $base = new BaseHelper();
     $pedido = Pedidos::findFirst("id = " . $post['pedido_id'] . "");
     $endereco = Enderecos::findFirst("relacao = 'pedidos' and id_relacao = " . $post['pedido_id']);
     $usuario = Usuarios::findFirst('id = ' . $pedido->usuario_id);
     $cliente = Clientes::findFirst('usuario_id =' . $pedido->usuario_id);
     $fone = explode(')', $cliente->telefone);
     $dados['email'] = self::$email;
     $dados['token'] = self::$token;
     $dados['paymentMode'] = 'default';
     $dados['receiverEmail'] = self::$email;
     $dados['currency'] = self::$currency;
     $dados['reference'] = $post['pedido_id'];
     $dados['notificationURL'] = $base->url_base . 'checkout/notificacao/pagseguro';
     //Itens
     $itens = PedidoItens::find("pedido_id = " . $post['pedido_id']);
     foreach ($itens as $key => $value) {
         $indice = $key + 1;
         $dados["itemId{$indice}"] = $value->produto_id;
         $dados["itemDescription{$indice}"] = Produtos::findById($value->produto_id)->nome;
         if ($post['paymentMethod'] == 'ONLINE_DEBIT' || $post['paymentMethod'] == 'BOLETO') {
             $dados["itemAmount{$indice}"] = $base->setDesconto($value->valor, 10);
         } else {
             $dados["itemAmount{$indice}"] = $value->valor;
         }
         $dados["itemQuantity{$indice}"] = $value->quantidade;
     }
     // Informações do pagamento
     if ($post['creditCardToken'] != '') {
         $dados['paymentMethod'] = 'creditCard';
         $dados['creditCardToken'] = $post['creditCardToken'];
         $dados['installmentQuantity'] = $post['parcelas'];
         $dados['installmentValue'] = number_format($post['installmentValue'], 2, '.', '');
         $dados['creditCardHolderName'] = $post['nome_titular'];
         $dados['creditCardHolderBirthDate'] = $post['data_nascimento'];
         $dados['creditCardHolderCPF'] = $base->limpaString($post['cpf']);
         $dados['creditCardHolderAreaCode'] = str_replace('(', '', $fone[0]);
         $dados['creditCardHolderPhone'] = str_replace('-', '', $fone[1]);
         $dados['billingAddressPostalCode'] = str_replace('-', '', $endereco->cep);
         $dados['billingAddressStreet'] = $endereco->logradouro;
         $dados['billingAddressNumber'] = $endereco->numero;
         $dados['billingAddressComplement'] = $endereco->complemento;
         $dados['billingAddressDistrict'] = $endereco->bairro;
         $dados['billingAddressCity'] = $endereco->Cidade->nome;
         $dados['billingAddressState'] = $endereco->Estado->sigla;
         $dados['billingAddressCountry'] = 'BRA';
     } else {
         if ($post['paymentMethod'] == 'ONLINE_DEBIT') {
             $dados['paymentMethod'] = 'eft';
             $dados['bankName'] = $post['bankName'] == 'BANCO_BRASIL' ? 'bancodobrasil' : strtolower($post['bankName']);
         } else {
             $dados['paymentMethod'] = 'boleto';
         }
     }
     //Hash
     $dados['senderHash'] = $post['hash'];
     //Dados do Comprador
     $dados['extraAmount'] = $pedido->frete;
     $dados['senderEmail'] = self::$producao ? $usuario->email : '*****@*****.**';
     $dados['senderName'] = $usuario->nome;
     if ($cliente->pessoa_juridica) {
         $dados['senderCNPJ'] = $cliente->documento;
     } else {
         $dados['senderCPF'] = $cliente->documento;
     }
     $dados['senderAreaCode'] = str_replace('(', '', $fone[0]);
     $dados['senderPhone'] = str_replace('-', '', $fone[1]);
     // Dados de endereco
     $dados['shippingAddressStreet'] = $endereco->logradouro;
     $dados['shippingAddressNumber'] = $endereco->numero;
     $dados['shippingAddressComplement'] = $endereco->complemento;
     $dados['shippingAddressDistrict'] = $endereco->bairro;
     $dados['shippingAddressPostalCode'] = str_replace('-', '', $endereco->cep);
     $dados['shippingAddressCity'] = $endereco->Cidade->nome;
     $dados['shippingAddressState'] = $endereco->Estado->sigla;
     $dados['shippingAddressCountry'] = 'BRA';
     return $dados;
 }
 private function setItem($array)
 {
     $base = new BaseHelper();
     $produto = Produtos::findById($array['produto_id'])->toArray();
     $array['id'] = $array['produto_id'];
     $array['name'] = $produto['nome'];
     $array['quantity'] = $array['quantidade'];
     if (isset($array['detalhe_id']) && $array['detalhe_id'] != '') {
         $desconto = $base->getDesconto($produto, $array['detalhe_id']);
         $chave = $base->arrayMultiSearch($produto['detalhes'], 'detalhe_id', $array['detalhe_id']);
         $array['options']['detalhe_id'] = $array['detalhe_id'];
         $array['price'] = $produto['detalhes'][$chave]['valor'] - $desconto;
         if ($desconto != 0) {
             $array['valor_real'] = $produto['detalhes'][$chave]['valor'];
         }
     } else {
         $desconto = $base->getDesconto($produto);
         $valor = isset($produto['valor']) ? $produto['valor'] : $produto['detalhes'][0]['valor'];
         $array['price'] = $valor - $desconto;
         if ($desconto != 0) {
             $array['valor_real'] = $valor;
         }
     }
     unset($array['produto_id']);
     unset($array['detalhe_id']);
     return $array;
 }
 protected function getItens($param)
 {
     $html = '';
     $size = 90 / count($this->options['produtos']);
     foreach ($this->options['produtos'] as $key => $value) {
         $html .= '<td style="width:' . $size . '%">';
         if ($param == 'imagem') {
             $imagem = Imagens::findFirst($value['imagens'][0])->url;
             $html .= '<img src="' . $this->url_base . $imagem . '" class="img-responsive" width="150px" />';
         } else {
             if ($param == 'valor' || $param == 'peso' || $param == 'dimensões') {
                 if ($param == 'valor') {
                     $desconto = parent::getDesconto($value);
                     if ($this->ecommerce_options->produto_detalhes == '1') {
                         $html .= 'R$ ' . number_format($value['detalhes'][0][$param] - $desconto, 2, ',', '.');
                         if ($desconto != 0) {
                             $html .= '<span class="preco-desconto">R$ ' . number_format($value['detalhes'][0][$param], 2, ',', '.') . '</span>';
                         }
                     } else {
                         $html .= 'R$ ' . number_format($value[$param] - $desconto, 2, ',', '.');
                         if ($desconto != 0) {
                             $html .= '<span class="preco-desconto">R$ ' . number_format($value[$param], 2, ',', '.') . '</span>';
                         }
                     }
                 } else {
                     if ($param == 'dimensões') {
                         if ($this->ecommerce_options->produto_cubagem_detalhe == '1') {
                             $html .= $value['detalhes'][0]['altura'] . ' / ' . $value['detalhes'][0]['largura'] . ' / ' . $value['detalhes'][0]['comprimento'] . ' CM';
                         } else {
                             $html .= $value['altura'] . ' / ' . $value['largura'] . ' / ' . $value['comprimento'] . ' CM';
                         }
                     } else {
                         if ($param == 'peso') {
                             if ($this->ecommerce_options->produto_cubagem_detalhe == '1') {
                                 $html .= $value['detalhes'][0][$param];
                             } else {
                                 $html .= $value[$param];
                             }
                             $html .= ' KG';
                         } else {
                             $html .= $value['detalhes'][0][$param];
                         }
                     }
                 }
             } else {
                 if ($param == 'avaliação') {
                     $star = Avaliacoes::getStars(Avaliacoes::average(array("produto_id = '{$value['_id']}' and avaliacao_tipo_id = 2 and aprovado = 1", 'column' => 'nota')));
                     if ($star == '') {
                         $html .= 'Produto não foi avaliado';
                     } else {
                         $html .= $star . ' ' . Avaliacoes::count("produto_id = '{$value['_id']}' and avaliacao_tipo_id = 2 and aprovado = 1") . ' -Avaliação(oes)';
                     }
                 } else {
                     if ($param == 'opções') {
                         $html .= '<a href="' . parent::generateUrl($value['nome'], $value['_id'], 'produto') . '" class="btn btn-primary"><i class="fa fa-plus"></i> Mais detalhes</a> ';
                         $html .= '<a href="' . $this->url_base . 'comparacao/delete/' . $value['_id'] . '" class="btn btn-danger"><i class="fa fa-times"></i> Remover</a>';
                     } else {
                         if ($param == 'descrição') {
                             $html .= $value['descricao'];
                         } else {
                             $html .= $value[$param];
                         }
                     }
                 }
             }
         }
         $html .= '</td>';
     }
     return $html;
 }
 public function getTemplateFiles()
 {
     $base = new BaseHelper();
     $this->view->css = $base->getFiles('css');
     $this->view->js = $base->getFiles('js');
 }
 public function update($post, $param)
 {
     $user = Usuarios::findFirstById($this->session->get('id'));
     if ($param == 'password') {
         if ($this->security->checkHash($post['senha_atual'], $user->senha)) {
             if ($post['senha'] == $post['repeat_senha']) {
                 $user->senha = $this->security->hash($post['senha']);
                 $user->save();
                 $this->flashSession->success("Editado com sucesso");
                 return $this->response->redirect("user/edit/{$param}");
             } else {
                 $this->flashSession->error("Senhas não confrerem");
                 return $this->response->redirect("user/edit/{$param}");
             }
         } else {
             $this->flashSession->error("Senhas atual invalida ");
             return $this->response->redirect("user/edit/{$param}");
         }
     } else {
         $base = new BaseHelper();
         $cliente = Clientes::findFirst('usuario_id =' . $this->session->get('id'));
         $user->nome = $post['nome'];
         $user->save();
         $this->setSession($user);
         $cliente->telefone = $post['telefone'];
         $cliente->celular = $post['celular'];
         $cliente->documento = $base->limpaString($post['documento']);
         $cliente->save();
         $this->flashSession->success("Editado com sucesso");
         return $this->response->redirect("user/edit/{$param}");
     }
 }
 public function getBase($layout, $valor)
 {
     $html = parent::replaceWraper(2, array($layout['title_class'], ucfirst($valor)), $layout['title_wrap']);
     $item = '';
     if ($valor == 'descrição') {
         $html .= '<p>' . $this->ecommerce_options->descricao . '</p>';
     } else {
         if ($valor == 'segurança') {
             $html .= '<img src=' . $this->url_base . 'img/loja/certificado/' . $this->ecommerce_options->certificado . '.png class="img-responsive">';
         } else {
             if ($valor == 'menu') {
                 foreach (\Ecommerce\Admin\Models\Paginas::find() as $key => $value) {
                     $item .= parent::replaceWraper(3, array($layout['item_wrap_class'], $this->url_base . 'pagina/' . $value->id, $value->nome), $layout['item_wrap']);
                 }
             } else {
                 if ($valor == 'informações') {
                     $array = array('termos_de_uso', 'politica_de_privacidade', 'politica_de_entrega', 'trocas_e_devolucoes');
                     foreach ($array as $key => $value) {
                         $nome = str_replace('politica', 'política', str_replace('_', ' ', $value));
                         $nome = str_replace('devolucoes', 'devoluções', $nome);
                         if ($this->ecommerce_options->{$value} != '') {
                             $item .= parent::replaceWraper(3, array('launch-modal ' . $layout['item_wrap_class'], 'javascript:;', ucfirst($nome) . '<span data-title="' . ucfirst($nome) . '" style="display:none">' . $this->ecommerce_options->{$value} . '</span>'), $layout['item_wrap']);
                         }
                     }
                 } else {
                     if ($valor == 'contato') {
                         $array = array('email', 'telefone', 'endereco');
                         foreach ($array as $value) {
                             $item .= parent::replaceWraper(3, array($layout['item_wrap_class'], 'javascript:;', $this->ecommerce_options->{$value}), $layout['item_wrap']);
                         }
                     }
                 }
             }
         }
     }
     if ($item != '') {
         $html .= parent::replaceWraper(2, array($layout['wrap_class'], $item), $layout['wrap']);
     }
     return parent::replaceWraper(2, array($layout['container_class'], $html), $layout['container_wrap']);
 }
 protected function pedidoCancelado()
 {
     $array = array('email' => $this->session->get('email'), 'assunto' => 'Pedido Cancelado Nº ' . $this->opcoes['pedido_id'], 'conteudo' => parent::replaceWraper(3, array($this->opcoes['pedido_id'], $this->session->get('nome'), $this->opcoes['pedido_id']), $this->ecommerce_options->email_pedido_cancelado));
     $this->sendMail($array);
 }
 protected function getItens()
 {
     $html = '';
     foreach ($this->cart->contents() as $key => $value) {
         $produto = Produtos::findById($value->id)->toArray();
         $html .= "<tr class='cart-item {$this->options['item_class']}'>";
         $preco = number_format($value->price, 2, ',', '.');
         $total = number_format($value->price * $value->quantity, 2, ',', '.');
         $imagem = Imagens::findFirst($produto['imagens'][0]);
         $preco_real = $value->valor_real ? '<span class="preco-desconto">R$ ' . number_format($value->valor_real, 2, ',', '.') . '</span>' : '';
         if (!$this->options['resumo']) {
             $html .= "<td><img src='{$this->url_base}{$imagem->url}' class='img-responsive' style='width:100px'/></td>";
             if ($this->ecommerce_options->produto_detalhes == '1') {
                 $chave = parent::arrayMultiSearch($produto['detalhes'], 'detalhe_id', $value->options['detalhe_id']);
                 $variacao = '';
                 foreach (unserialize($this->ecommerce_options->produto_detalhe_options) as $c => $v) {
                     $variacao .= ucwords($v['label']) . ': ' . $produto['detalhes'][$chave]["{$v['label']}"];
                 }
             } else {
                 $variacao = '';
             }
             $html .= "<td>{$value->name}<br/> <span class='cart-variacao'>{$variacao}</span></td>";
             $select = "<select class='form-control cart-update' data-identificador='{$key}'>";
             if ($this->ecommerce_options->produto_detalhes == '0') {
                 $estoque = $produto['estoque'];
             } else {
                 $estoque = isset($value->options) ? $produto['detalhes'][$chave]['estoque'] : $produto['detalhes'][0]['estoque'];
             }
             for ($i = 1; $i <= $estoque; $i++) {
                 $selected = $value->quantity == $i ? 'selected' : '';
                 $select .= "<option value='{$i}' {$selected}>{$i}</option>";
             }
             $select .= '</select>';
             $html .= "<td style='width:18%'>{$select}</td>";
             $html .= "<td>R\$ {$preco} {$preco_real}</td>";
             $html .= "<td class='cart-item-total'>R\$ {$total}</td>";
             $link = $this->url_base . 'cart/remove/' . $key;
             $html .= "<td><a href='{$link}' class='cart-remove'><i class='fa fa-trash fa-2x'></i></a></td>";
         } else {
             $html .= "<td><img src='{$this->url_base}{$imagem->url}' class='img-responsive' style='width:100px'/></td>";
             $html .= "<td>\n\t\t\t\t\t\t\t{$value->name} <br/>\n\t\t\t\t\t\t\t<strong>{$value->quantity} x R\$ {$preco}</strong>\n\t\t\t\t\t\t\t<h5>R\$ {$total}</h5>\n\t\t\t\t</td>";
         }
         $html .= '<tr/>';
     }
     return $html;
 }