Пример #1
0
 private function getHeader()
 {
     $products = Services::get('products');
     $favs = '0';
     $carts = '0';
     if (UID::isLoggedIn()) {
         $orbit = new Orbit();
         $favRequest = $orbit->get('client/countfav', 1, 1, array('id' => UID::get('id')));
         $favs = $favRequest['fav'];
     }
     $cart = Services::get('cart');
     $carts = $cart->updateCounter(true);
     $this->newView('header');
     $this->view('header')->loadTemplate('header');
     $this->view('header')->setVariable('favs', $favs);
     $this->view('header')->setVariable('carts', $carts);
     $categories = $products->getCategories();
     $this->view('header')->setVariable('categories', $categories['items']);
     return $this->view('header')->render();
 }
Пример #2
0
 public function orders()
 {
     if (!UID::isLoggedIn()) {
         $this->loginPage();
         return;
     }
     $orbit = new Orbit();
     $result = $orbit->get('client/orders/' . UID::get('id'));
     $orders = $result['orders'];
     $this->view()->loadTemplate('orders');
     $this->view()->setVariable('orders', $orders);
     $this->commitReplace($this->view()->render(), '#content');
 }
Пример #3
0
 public function addFavourite()
 {
     if (!UID::isLoggedIn()) {
         $client = Services::get('client');
         $client->register();
         return;
     }
     $orbit = new Orbit();
     $favs = $orbit->post('client/favourites/' . UID::get('id'), array('product_id' => $this->getQueryString('id')));
     #debug($favs);
     $favRequest = $orbit->get('client/countfav', 1, 1, array('id' => UID::get('id')));
     $countfavs = $favRequest['fav'];
     $this->commitReplace(intval($countfavs), '#favitems');
     $this->view()->loadTemplate('favlink');
     $this->commitReplace($this->view()->render(), '#addfav');
 }
Пример #4
0
 public function purchase()
 {
     $shipping = UID::get('shipping_options', $this->getPost('shipping_option'));
     $address_id = $this->getPost('address_id');
     if (!$address_id) {
         $this->commitReplace('Informe o endereço de entrega', '#submitmsg');
         $this->commitShow('#submitmsg');
         return;
     }
     $order_id = $this->getQueryString('order_id');
     $cartItems = $this->getCartItems($order_id);
     if (!$order_id) {
         $cart = $this->createCart();
         foreach ($cartItems as $item) {
             $this->addCartItem($cart['id'], $item['id']);
         }
     }
     Session::del('cart');
     $hash = String::generateHash();
     if (!$shipping) {
         $this->commitReplace('Informe o tipo de envio', '#submitmsg');
         $this->commitShow('#submitmsg');
         return;
     }
     $shipping_fields = array('Codigo' => 'shipping_code', 'Valor' => 'shipping_value', 'PrazoEntrega' => 'delivery_time', 'ValorMaoPropria' => 'hand_value', 'ValorAvisoRecebimento' => 'notify_value', 'ValorValorDeclarado' => 'recover_value', 'EntregaDomiciliar' => 'home_delivery', 'EntregaSabado' => 'weekend_delivery');
     $orbit = new Orbit();
     $clientAddr = $orbit->get('client/address/' . $address_id);
     $address = $clientAddr['address'];
     $getCart = array('client_id' => UID::get('id'));
     if (isset($cart['id'])) {
         $getCart['id'] = $cart['id'];
     }
     $request = $orbit->get('request/cart', 1, 1, $getCart);
     if (!isset($request['cart']) || $request['cart'] === 0) {
         $this->commitReplace('Ocorreu um problema na sua sessão. Faça o login novamente.', '#submitmsg');
         $this->commitShow('#submitmsg');
         return;
     }
     $cart = $request['cart'];
     $purchaseData = array();
     foreach ($shipping_fields as $key => $field) {
         $purchaseData[$field] = $shipping[$key];
     }
     $requestItems = $orbit->get('client/cartitems', 1, 100, array('id' => UID::get('id'), 'request_id' => $cart['id']));
     if (!isset($requestItems['cart']) || count($requestItems['cart']) == 0) {
         $this->commitReplace('Não foi possível iniciar a transação. Por favor, entre em contato conosco e nos informe: ' . $requestItems['message'], '#submitmsg');
         $this->commitShow('#submitmsg');
     }
     $cartItems = $requestItems['cart'];
     $pagSeguro = new PagSeguro();
     $totalPrice = 0;
     foreach ($cartItems as $item) {
         //TODO: Quantidade variável
         $pagSeguro->addItem($item['id'], $item['product_name'], $item['price'], '1', $item['weight']);
         $totalPrice += $item['price'];
     }
     $orbit->put('request/' . $cart['id'], array('final_price' => $totalPrice));
     $totalPrice += floatval(str_replace(',', '.', $shipping['Valor']));
     $purchaseData['client_id'] = UID::get('id');
     $purchaseData['request_id'] = $cart['id'];
     $purchaseData['address_id'] = $address_id;
     $purchaseData['pay_hash'] = $hash;
     $purchaseData['price'] = $totalPrice;
     $config = $orbit->get('config');
     $config = current($config['config']);
     $phones = UID::get('phones');
     $area = '';
     $phone = '';
     if (count($phones) > 0) {
         $firstPhone = current($phones);
         $phoneInfo = explode(' ', $firstPhone['phone_number'], 2);
         if (count($phoneInfo) > 1) {
             $area = $phoneInfo[0];
             $phone = str_replace('-', '', $phoneInfo[1]);
         }
     }
     $pagSeguro->addSender(UID::get('client_name'), UID::get('email'), $area, $phone);
     $pagSeguro->addShipping(PagSeguro::getShippingType($purchaseData['shipping_code']), $purchaseData['shipping_value'], $address['street_addr'], $address['street_number'], $address['street_additional'], $address['hood'], $address['city'], $address['zip_code'], $address['state']);
     $pagSeguro->setReference($hash);
     $pagSeguro->setRedirectURL(MAINURL . '/cart/confirmed?order=' . $hash);
     $pagSeguro->setAccountEmail($config['payment_account']);
     $pagSeguro->setToken($config['token']);
     UID::set('purchase_data', $hash, $purchaseData);
     $code = $pagSeguro->submit();
     if ($code) {
         $response = $orbit->put('request/' . $cart['id'], array('pay_hash' => $hash, 'pay_token' => $code));
         $pagSeguro->redirect();
     }
     $submit = $pagSeguro->getResponse();
     if (isset($submit['error'])) {
         $this->commitReplace('Não foi possível iniciar a transação. Por favor, entre em contato conosco e nos informe: ' . $submit['error']['message'], '#submitmsg');
         $this->commitShow('#submitmsg');
     }
 }