public function indexAction() { $this->view->numeros = array('produtos' => count(Produtos::find()), 'pedidos' => Pedidos::count(), 'total_vendas' => Pedidos::sum(array("column" => "total", "conditions" => "status_id in (3,4,5)")), 'usuarios' => Usuarios::count('nivel_id = 3')); $this->view->ultimos_pedidos = Pedidos::find(array('limit' => 10, 'order' => 'data desc')); $this->view->pedidos = Pedidos::getEstatisticas('pedido'); $this->view->mais_vendidos = PedidoItens::getMaisVendidos(); }
protected function setWidgtedDetalhes($layout) { $html = ''; if ($this->ecommerce_options->produto_detalhes == 1) { $detalhes = unserialize($this->ecommerce_options->produto_detalhe_options); $categoria = Categorias::findById($layout['categoria_id']); $ids = array(); $subcategorias = Categorias::getChildrensIds($categoria); if (!empty($subcategorias)) { foreach ($subcategorias as $value) { $ids[] = (string) $value; } } $ids[] = (string) $categoria->_id; $produtos = Produtos::find($this->getConditions($ids)); foreach ($detalhes as $value) { $array = array(); for ($i = 0; $i < count($produtos); $i++) { foreach ($produtos[$i]['detalhes'] as $key => $valor) { if (isset($valor[$value['label']])) { $array[] = $valor[$value['label']]; } } } $html .= $this->getWidgtedDetalhes($layout, array_unique($array), $value); } } return $html; }
public function indexAction() { $array = array(); for ($i = 0; $i < count($this->session->get('comparacao')); $i++) { $array[] = Produtos::findById($this->session->get('comparacao')[$i])->toArray(); } $chaves = array(); foreach ($array[0] as $key => $value) { $chaves[] = $key; } $this->view->produtos = $array; $this->view->chaves = $chaves; }
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(); } } }
public static function getMaisVendidos($limit = 10, $periodo = array()) { $produtos = self::sum(array("column" => "quantidade", "group" => "produto_id,pedido_id", "order" => "sumatory DESC", "limit" => $limit)); $arr = array(); for ($i = 0; $i < count($produtos); $i++) { if (!empty($periodo)) { $pedido = Pedidos::findFirst($produtos[$i]->pedido_id)->toArray(); if ($pedido['data'] >= $periodo['inicial'] . ' 00:00:00' && $pedido['data'] <= $periodo['final'] . ' 23:59:59') { $arr[$i]['produto'] = Produtos::findById($produtos[$i]->produto_id)->nome; $arr[$i]['quantidade'] = $produtos[$i]->sumatory; } } else { $arr[$i]['produto'] = Produtos::findById($produtos[$i]->produto_id)->nome; $arr[$i]['quantidade'] = $produtos[$i]->sumatory; } } return $arr; }
public function setCorAction() { if ($this->request->isPost()) { if ($this->request->isAjax()) { $this->view->disable(); $produto = Produtos::findById('560433b1b440b308090001c1'); if ($this->request->getPost('cor') != '') { if (isset($produto->imagem_detalhes) && !empty($produto->imagem_detalhes)) { foreach ($produto->imagem_detalhes as $key => $value) { if ($this->request->getPost('cor') != $key) { $arr = array_diff($produto->imagem_detalhes[$key], array($this->request->getPost('imagem'))); $produto->imagem_detalhes[$key] = $arr; } } } $produto->imagem_detalhes[$this->request->getPost('cor')][] = $this->request->getPost('imagem'); $produto->save(); } } } }
public function searchAction() { if ($this->request->isPost()) { if (isset($_POST['q'])) { $this->view->disable(); $arr = array(); $param = $this->request->getPost('q'); $produtos = Produtos::find(array('conditions' => array('nome' => new \MongoRegex("/{$param}/i")))); foreach ($produtos as $key => $value) { $arr[$key]['id'] = (string) $value->_id; $arr[$key]['name'] = $value->nome; $arr[$key]['imagem'] = $this->ecommerce_options->url_base . Imagens::findFirst($value->imagens[0])->url; $arr[$key]['url'] = $this->base->generateUrl($value->nome, $value->_id, 'produto'); } $this->response->setHeader("Content-Type", "application/json"); return $this->response->setContent(json_encode($arr)); } else { $this->view->indice = 0; $this->view->pagina = 0; $this->view->filtros = array(); $this->view->search = true; } } }
protected function getData($array) { $arr = array(); if (isset($array['relacionados'])) { if (!empty($array['relacionados'])) { $ids = array(); foreach ($array['relacionados'] as $value) { $ids[] = new \MongoId($value); } $arr['conditions'] = array('_id' => array('$in' => $ids)); } else { $arr['conditions'] = array('categoria' => (string) $array['categoria'], '_id' => array('$ne' => $this->options['produto']->_id)); } } else { if ($array['search']) { $param = $_POST['search']; $arr['conditions'] = array('nome' => new \MongoRegex("/{$param}/i")); } else { if ($array['destaque']) { $arr['conditions'] = array('destaque' => '1'); } else { if ($array['lancamento']) { $arr['conditions'] = array('destaque' => '0'); } else { if ($array['categoria'] != '') { if (is_array($array['categoria'])) { $ids = array(); foreach ($array['categoria'] as $value) { $ids[] = (string) $value; } $arr['conditions'] = array('categoria' => array('$in' => $ids)); } else { $arr['conditions'] = array('categoria' => $array['categoria']); } } } } if (!empty($array['filtros'])) { $filtros = array(); foreach ($array['filtros'] as $key => $value) { if ($key != 'valor') { $filtros['$elemMatch']["{$key}"] = array('$in' => $value); } else { $valores = explode(';', $value[0]); $filtros['$elemMatch']["{$key}"] = array('$gte' => floatval($valores[0]), '$lte' => floatval($valores[1])); } } $arr['conditions']['detalhes'] = $filtros; } } } if ($array['destaque']) { $arr['limit'] = $this->ecommerce_options->produtos_destaque; } else { $arr['limit'] = $this->ecommerce_options->produtos_por_pagina; } $arr['conditions']['ativo'] = '1'; if ($array['pagina'] != 0) { $arr['skip'] = intval($this->ecommerce_options->produtos_por_pagina) * $array['pagina']; } $arr['sort'] = array('created_at' => -1); return Produtos::find($arr); }
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; }
public function showAction($id) { $this->view->dados = Avaliacoes::findFirst("id = {$id}"); $this->view->produto = Produtos::findById($this->view->dados->produto_id); }
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; }
public function getProduto($param) { return Produtos::findById($param); }
public static function withProduto($array) { $produto_id = new \MongoId($array['produto_id']); $array['produto'] = Produtos::findFirst(array('conditions' => array('_id' => $produto_id)))->toArray(); $array['nota'] = self::getStars($array['nota']); $array['data'] = date('d/m/Y', strtotime($array['data'])); return $array; }
public function setComprimento() { $comprimento = array(); foreach ($this->obj as $key => $value) { $produto = Produtos::findById($value->id)->toArray(); if ($this->helper->ecommerce_options('produto_detalhes') == '1') { $chave = $this->helper->arrayMultiSearch($produto['detalhes'], 'detalhe_id', $value->options['detalhe_id']); $comprimento[] = $produto['detalhes'][$chave]['comprimento']; } else { $comprimento[] = $produto['comprimento']; } } return max($comprimento) > 16 ? max($comprimento) : 16; }
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; }