public function avaliacaoAction()
 {
     $this->view->disable();
     if ($this->request->isPost()) {
         if ($this->request->isAjax()) {
             $avaliacao = new Avaliacoes();
             $avaliacao->data = date('Y-m-d H:i:s');
             if ($avaliacao->save($this->request->getPost())) {
                 $this->response->setContent(json_encode(array('status' => true, 'mensagem' => 'Obrigado pelo feedback, sua avaliação passará por uma análise assim que concluida deixaremos-a visivel para outros usuário.')));
             } else {
                 $this->response->setContent(json_encode(array('status' => false, 'mensagem' => 'Houve um erro, tente novamente mais tarde')));
             }
             return $this->response;
         }
     }
 }
 public function updateAction($id)
 {
     $this->view->disable();
     $avaliacao = Avaliacoes::findFirst("id = {$id}");
     $avaliacao->aprovado = $_POST['aprovado'];
     $avaliacao->save();
 }
 private function getAvaliacoes($produto)
 {
     $html = '';
     $avaliacoes = Avaliacoes::find("produto_id = '{$produto}' and avaliacao_tipo_id = 2 and aprovado = 1");
     if (!empty($avaliacoes->toArray())) {
         $html .= '<div class="reviews">';
         foreach ($avaliacoes as $key => $value) {
             $data = date('d/m/Y', strtotime($value->data));
             $stars = Avaliacoes::getStars($value->nota);
             $nome = $value->Usuario ? $value->Usuario->nome : $value->nome;
             $html .= "<h5><strong>{$nome}</strong> {$data} - {$stars}</h5>\n\t\t\t\t\t\t<p>{$value->descricao}</p>\n\t\t\t\t\t\t<hr/>";
         }
         $html .= '</div>';
     } else {
         $html .= '<div class="alert alert-warning">Esse produto ainda não foi avaliado.</div><hr/>';
     }
     return $html;
 }
 protected function getAvaliacoes($obj)
 {
     $html = '';
     $condicoes = array("produto_id = '{$obj->_id}' and avaliacao_tipo_id = 2 and aprovado = 1", 'column' => 'nota');
     $total = Avaliacoes::count($condicoes);
     $avaliacao = Avaliacoes::getStars(Avaliacoes::average($condicoes));
     if ($avaliacao != '') {
         $str = $total <= 1 ? 'Avaliação' : 'Avaliações';
         $html .= $avaliacao . ' ( ' . $total . ' ' . $str . ' )';
         $html .= '<br clear="all"/>';
     }
     return $html;
 }
 protected function setAvaliacao()
 {
     $produto = (string) $this->layout['produto']->_id;
     $stars = Avaliacoes::getStars(Avaliacoes::average(array("produto_id = '{$produto}' and avaliacao_tipo_id = 2 and aprovado = 1", 'column' => 'nota')));
     return parent::replaceWraper(2, array($this->layout['avaliacao_class'], $stars), $this->layout['avaliacao_wrap']);
 }
 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 avaliacoesAction()
 {
     $this->view->selecionado == 'Minhas Avaliacoes';
     $this->view->avaliacoes = Avaliacoes::findWithProduto($this->session->get('id'));
 }