public function relatoriosAction() { if ($this->request->isPost()) { $array = $this->request->getPost(); } else { $array = array(); } $pedidos = new Pedidos(); $this->view->vendas = $pedidos->getEstatisticasVenda($array); $this->view->mais_vendidos = PedidoItens::getMaisVendidos(30, $array); $this->view->pedidos = Pedidos::getEstatisticas('pedido', $array); $this->view->estados = Pedidos::getEstatisticas('estado', $array); $this->view->pagamento = Pedidos::getEstatisticas('pagamento', $array); }
protected function verificaStatus($pedido_id, $redirect = true) { $pedido = Pedidos::findFirst('id = ' . $pedido_id); if ($pedido->status_id == 3) { $tipo = 'pedidoAprovado'; $cart->destroy(); $this->helper->mailer->getHelper(array('pedido_id' => $pedido_id, 'tipo' => $tipo)); if ($redirect) { return $this->response->redirect("checkout/confirmacao/{$pedido_id}"); } } else { if ($pedido->status_id == 6 || $pedido->status_id == 7) { $tipo = 'pedidoCancelado'; $this->helper->mailer->getHelper(array('pedido_id' => $pedido_id, 'tipo' => $tipo)); if ($redirect) { $this->flashSession->error('Pedido CANCELADO/NÃO AUTORIZADO tente com uma nova forma de pagamento'); return $this->response->redirect("checkout"); } } else { $this->cart->destroy(); if ($redirect) { return $this->response->redirect("checkout/confirmacao/{$pedido_id}"); } } } }
public function updateAction() { $pedido = Pedidos::findFirst("id = {$this->request->getPost('id')}"); $pedido->status_id = $this->request->getPost('status'); if ($pedido->save()) { $this->response->setContent(json_encode(array('status' => true, 'mensagem' => 'Requisição realizada com sucesso'))); } else { $this->response->setContent(json_encode(array('status' => false, 'mensagem' => 'A solicitação não pode ser completada, tente novamente'))); } return $this->response; }
public static function init($retorno, $pedido) { $pedido = Pedidos::findFirst("id={$pedido}"); if (isset($retorno->autorizacao) && $retorno->autorizacao->codigo == 6) { $pedido->status_id = 3; } else { $pedido->status_id = 6; } $pedido->tid = "{$retorno->tid}"; $pedido->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 static function init($retorno, $pedido) { $pedido = Pedidos::findFirst("id={$pedido}"); if ($retorno->status == 1 || $retorno->status == 2 || $retorno->status == 5) { $pedido->status_id = 2; } else { if ($retorno->status == 3 || $retorno->status == 4) { $pedido->status_id = 3; } else { $pedido->status_id = 7; } } $pedido->tid = "{$retorno->code}"; if (isset($retorno->paymentLink)) { $pedido->link = "{$retorno->paymentLink}"; $pedido->meio_pagamento = "{$retorno->paymentMethod->type}"; } $pedido->save(); }
public static function retornoPagseguro($dados) { $widget = Widgets::findFisrt('id = 3'); $opcoes = unserialize($widget->opcoes); $url = 'https://ws.pagseguro.uol.com.br/v2/transactions/notifications/' . $dados['notificationCode'] . '?email=' . $opcoes['email'] . '&token=' . $opcoes['token']; $curl = curl_init($url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $retorno = curl_exec($curl); curl_close($curl); if ($retorno == 'Unauthorized') { return false; //Mantenha essa linha } $retorno = simplexml_load_string($retorno); $pedido = Pedidos::findFirst('id = ' . $retorno->reference); $pedido->status_id = self::deParaStatus($retorno->status, 3); $pedido->save(); if ($pedido->status_id == 3) { self::subtraiEstoque($pedido->id); } return $pedido->pedido_id; }
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 detalhesAction($id) { $this->view->selecionado == 'Meus Pedidos'; $this->view->pedido = Pedidos::findFirst("id = {$id}"); $this->view->pedido_itens = PedidoItens::find("pedido_id = {$id}"); $this->view->endereco = Enderecos::findFirst("id_relacao = {$id} and relacao = 'pedidos'"); }