public function entregueAction()
 {
     $id = $this->_request->getParam('id');
     $pedidoModel = new Application_Model_Pedido();
     $pedidoModel->update(array('estado' => '4'), 'id_pedido = ' . $id);
     return $this->_helper->redirector('index');
 }
 public function refazerAction()
 {
     $busca = $this->_request->getParam('id');
     $confirma = $this->_request->getParam('confirma');
     if (isset($confirma)) {
         $this->view->visualiza = 0;
         /// function to generate random number ///////////////
         function random_generator($digits)
         {
             srand((double) microtime() * 10000000);
             //Array of alphabets
             $input = array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z");
             $random_generator = "";
             // Initialize the string to store random numbers
             for ($i = 1; $i < $digits + 1; $i++) {
                 // Loop the number of times of required digits
                 if (rand(1, 2) == 1) {
                     // to decide the digit should be numeric or alphabet
                     // Add one random alphabet
                     $rand_index = array_rand($input);
                     $random_generator .= $input[$rand_index];
                     // One char is added
                 } else {
                     // Add one numeric digit between 1 and 10
                     $random_generator .= rand(1, 10);
                     // one number is added
                 }
                 // end of if else
             }
             // end of for loop
             return $random_generator;
         }
         // end of function
         $pedidoModel = new Application_Model_Pedido();
         $old_pedido = $pedidoModel->fetchAll($pedidoModel->select()->where('id_pedido = ?', $busca));
         $key = random_generator(10);
         $key = md5($key);
         $date = date_create();
         $date0 = date_format($date, 'c');
         $novo_pedido = array();
         $novo_pedido['cliente'] = $old_pedido[0]['cliente'];
         $novo_pedido['valor'] = $old_pedido[0]['valor'];
         $novo_pedido['secure'] = $key;
         $novo_pedido['data'] = $date0;
         $id = $pedidoModel->insert($novo_pedido);
         $pedido_id = $pedidoModel->fetchAll($pedidoModel->select()->where('secure = ?', $key));
         $nova_id = $pedido_id[0]['id_pedido'];
         $prodpedModel = new Application_Model_ProdutoPedido();
         $produtos = $prodpedModel->fetchAll($prodpedModel->select()->from($prodpedModel->info(Zend_Db_Table_Abstract::NAME))->columns(array('id_produto', 'id_adicionais'))->where('id_pedido = ?', $busca));
         $prodz = array();
         $maismais = 0;
         foreach ($produtos as $produto) {
             $prodz[$maismais]['id_pedido'] = $nova_id;
             $prodz[$maismais]['id_produto'] = $produto['id_produto'];
             $prodz[$maismais]['id_adicionais'] = $produto['id_adicionais'];
             $id = $prodpedModel->insert($prodz[$maismais]);
             $maismais++;
         }
         $this->view->aviso = 'Pedido enviado com sucesso!';
     } else {
         $this->view->visualiza = 1;
         $busca = $this->_request->getParam('id');
         $prodpedModel = new Application_Model_ProdutoPedido();
         $dados = $prodpedModel->fetchAll($prodpedModel->select()->where('id_pedido = ?', $busca));
         $this->view->pedido = $dados;
     }
 }
    public function finalizarAction()
    {
        Zend_Loader::loadClass('Zend_Auth');
        $authClass = Zend_Auth::getInstance();
        if ($authClass->hasIdentity()) {
            $auth = $authClass->getStorage()->read();
            $idx = $auth['usuario_id'];
            $usuarioModel = new Application_Model_Usuario();
            $dados = 0;
            $dadosUsuario = $usuarioModel->fetchAll($usuarioModel->select()->from($usuarioModel->info(Zend_Db_Table_Abstract::NAME))->columns(array('usuario'))->where('idusuario = ?', $idx));
            $dados = $dadosUsuario[0]['usuario'];
            $contatoModel = new Application_Model_Contato();
            $dadosContato = $contatoModel->fetchAll($contatoModel->select()->from($contatoModel->info(Zend_Db_Table_Abstract::NAME))->columns(array('completo'))->where('usuario = ?', $dados));
            $this->view->dadosContato = $dadosContato;
        }
        $categoriaModel = new Application_Model_Categoria();
        $nome_categorias = $categoriaModel->fetchAll($categoriaModel->select()->from($categoriaModel->info(Zend_Db_Table_Abstract::NAME))->columns(array('nome_categoria')));
        $this->view->categorias = $nome_categorias;
        $confirmar = $this->_request->getParam('confirmar');
        if (isset($confirmar)) {
            if ($confirmar == 1) {
                $sessao = new Zend_Session_Namespace('SESSAO_CARRINHO');
                Zend_Loader::loadClass('Zend_Auth');
                $authClass = Zend_Auth::getInstance();
                if ($authClass->hasIdentity()) {
                    $auth = $authClass->getStorage()->read();
                    $id = $auth['usuario_id'];
                }
                /// function to generate random number ///////////////
                function random_generator($digits)
                {
                    srand((double) microtime() * 10000000);
                    //Array of alphabets
                    $input = array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z");
                    $random_generator = "";
                    // Initialize the string to store random numbers
                    for ($i = 1; $i < $digits + 1; $i++) {
                        // Loop the number of times of required digits
                        if (rand(1, 2) == 1) {
                            // to decide the digit should be numeric or alphabet
                            // Add one random alphabet
                            $rand_index = array_rand($input);
                            $random_generator .= $input[$rand_index];
                            // One char is added
                        } else {
                            // Add one numeric digit between 1 and 10
                            $random_generator .= rand(1, 10);
                            // one number is added
                        }
                        // end of if else
                    }
                    // end of for loop
                    return $random_generator;
                }
                // end of function
                $key = random_generator(10);
                $key = md5($key);
                $date = date_create();
                $pedido = array();
                $pedido['cliente'] = $auth['usuario_id'];
                $pedido['data'] = date_format($date, 'c');
                $pedido['secure'] = $key;
                $pedido['valor'] = str_replace(array(',', '.'), '', $sessao->total);
                $pedidoModel = new Application_Model_Pedido();
                $id = $pedidoModel->insert($pedido);
                $pedido_id = $pedidoModel->fetchAll($pedidoModel->select()->where('secure = ?', $key));
                $pedido_xid = $pedido_id[0]['id_pedido'];
                $prodpedModel = new Application_Model_ProdutoPedido();
                $addModel = new Application_Model_Adicionais();
                if (isset($sessao->produtos)) {
                    foreach ($sessao->produtos as $posicao => $id) {
                        $chave = random_generator(10);
                        $chave = md5($chave);
                        $prod = array();
                        $prod['id_pedido'] = $pedido_xid;
                        $prod['id_produto'] = $id;
                        $prod['id_adicionais'] = $chave;
                        $id = $prodpedModel->insert($prod);
                        if (isset($sessao->quantidades[$posicao])) {
                            foreach ($sessao->quantidades[$posicao] as $ingred => $quanti) {
                                $adi = array();
                                $adi['id_adicionais'] = $chave;
                                $adi['id_adicional'] = $ingred;
                                $adi['quantidade'] = $quanti;
                                $id = $addModel->insert($adi);
                            }
                        }
                    }
                }
                $sessao->produtos = null;
                $sessao->quantidades = null;
                $sessao->total = null;
                $sessao->ingred = null;
                $email = $dadosContato[0]['email'];
                $data = '<html><body><table>
					<tr><td>Online Thru informa: Pedido recebido, valor R$ ' . number_format($pedido['valor'] / 100, 2, ',', '.') . '</td></tr>
					</table></body></html>';
                // Using the ini_set()
                ini_set("SMTP", "localhost");
                ini_set("sendmail_from", "*****@*****.**");
                ini_set("smtp_port", "587");
                $mail = new Zend_Mail('UTF-8', 'ISO-8859-8');
                $mail->setBodyHtml($data)->setFrom('*****@*****.**', 'Online Thru')->addTo($email, 'Online Thru')->setSubject('Online Thru - Pedido')->send();
                $this->view->aviso = "Pedido enviado com sucesso!";
            }
        } else {
            $sessao = new Zend_Session_Namespace('SESSAO_CARRINHO');
            $this->view->produtos = $sessao->produtos;
            if (!isset($sessao->ingred)) {
                $sessao->ingred = array();
            }
            if ($this->_request->isPost()) {
                $sessao->ingred = $this->_request->getPost();
                foreach ($sessao->ingred as $key => $value) {
                    $mystring = $key;
                    $findme = 'q';
                    $pos = strpos($mystring, $findme);
                    if ($pos === false) {
                        $mystring = $key;
                        $find = '-';
                        $posi = strpos($mystring, $find);
                        $chave = substr($key, 0, $posi);
                        $ingr = substr($key, $posi + 1, strlen($key));
                        $sessao->ingredientes[$chave][$ingr] = $value;
                    } else {
                        $key = str_replace('q-', '', $key);
                        $mystring = $key;
                        $find = '-';
                        $posi = strpos($mystring, $find);
                        $chave = substr($key, 0, $posi);
                        $ingr = substr($key, $posi + 1, strlen($key));
                        $sessao->quantidades[$chave][$ingr] = $value;
                    }
                    $idp = $sessao->produtos[$chave]['id_produto'];
                    $ingredModel = new Application_Model_Relacionamentos();
                    $nome_ingred = $ingredModel->fetchAll($ingredModel->select()->from($ingredModel->info(Zend_Db_Table_Abstract::NAME))->columns(array('qtd_padrao'))->where('id_produto = ?', $idp)->where('id_ingrediente = ?', $ingr));
                    if (isset($nome_ingred[0]['qtd_padrao'])) {
                        $padrao[$idp][$ingr] = $nome_ingred[0]['qtd_padrao'];
                    }
                }
            }
            if (isset($sessao->produtos) && sizeof($sessao->produtos) > 0) {
                if (isset($padrao)) {
                    $this->view->padrao = $padrao;
                }
                if (isset($sessao->quantidades)) {
                    $this->view->quantidades = $sessao->quantidades;
                }
                if (isset($sessao->ingredientes)) {
                    $this->view->ingredientes = $sessao->ingredientes;
                }
                if (isset($sessao->ingred)) {
                    $this->view->data = $sessao->ingred;
                }
            }
        }
    }