/**
  * Remove the specified resource from storage.
  * @return \Illuminate\Http\Response
  */
 public function postDestroy()
 {
     $response = [];
     if (!empty($_POST) && !empty($_POST['method'])) {
         //Remove product
         if ($_POST['method'] == 'product' && !empty($_POST['record_id']) && is_numeric($_POST['record_id'])) {
             $response['status'] = 'error';
             $response['message'] = trans('orders.product_not_removed');
             if (Model_Orders::removeOrderProducts(Input::get('record_id')) === TRUE) {
                 $response['status'] = 'success';
                 $response['message'] = trans('orders.product_removed');
             }
         }
         //Remove order
         if ($_POST['method'] == 'order' && !empty($_POST['order_id'])) {
             if (Model_Orders::removeOrder($_POST['order_id']) === TRUE) {
                 $response['status'] = 'success';
                 $response['message'] = trans('orders.removed');
             }
         }
     }
     return response()->json($response);
 }
Exemple #2
0
 private function sendMail($id)
 {
     $response = ['sys_title' => $this->system['title'], 'sys_email' => $this->system['email']];
     //Try to catch order id
     if (empty($id)) {
         $id = session()->get('order_id', FALSE);
         if (!empty($id)) {
             $response['new'] = TRUE;
             session()->forget('order_id');
         }
     }
     //If no order
     if (empty($id)) {
         return redirect('/');
     }
     $order_data = Model_Orders::getOrders($id, FALSE);
     if (!empty($order_data = $order_data[0]) && is_array($order_data)) {
         $response['cart'] = !empty($order_data['cart']) ? json_decode($order_data['cart'], TRUE) : [];
         $response['total'] = !empty($order_data['total']) ? $order_data['total'] : 0;
         if (isset($order_data['total'])) {
             unset($order_data['total']);
         }
         if (isset($order_data['cart'])) {
             unset($order_data['cart']);
         }
         if (isset($response['cart']['total'])) {
             unset($response['cart']['total']);
         }
         $response['order'] = $order_data;
     }
     foreach ($this->states as $state) {
         $response['states'][$state] = trans('orders.' . $state);
     }
     //Calculate delivery and total
     if (!empty($order_data['delivery_type']) && $response['total'] < $this->system['delivery_free_delivery']) {
         if ($order_data['delivery_type'] == 'to_address') {
             $response['delivery_cost'] = $this->system['delivery_to_address'];
         } elseif ($order_data['delivery_type'] == 'to_office') {
             $response['delivery_cost'] = $this->system['delivery_to_office'];
         }
         $response['order_total'] = $response['total'] + $response['delivery_cost'];
     } else {
         $response['delivery_cost'] = 0;
         $response['order_total'] = $response['total'];
     }
     $response['order_id'] = $order_data['id'];
     $response['date_created'] = date('H:i - m.d.Y', strtotime($order_data['created_at']));
     $response['delivery_type'] = $order_data['delivery_type'];
     $products_to_cart = [];
     //Get product id's
     if (!empty($response['cart']) && is_array($response['cart'])) {
         foreach ($response['cart'] as $key => $item) {
             $products_to_cart[] = $item['product_id'];
         }
     }
     // Get products data
     $response['products'] = Model_Main::getProducts($products_to_cart, ['title', 'images']);
     // Send products to response
     $response['products'] = self::prepareProductsForResponse($response['products']);
     $response['thumbs_path'] = Config::get('system_settings.product_public_path');
     $response['icon_size'] = Config::get('images.sm_icon_size');
     Mail::send('dressplace::emails.order', $response, function ($m) use($response) {
         $m->from($response['sys_email'], $response['sys_title']);
         $m->replyTo($response['sys_email'], $response['sys_title']);
         $m->to($response['order']['email'], $response['order']['name'] . ' ' . $response['order']['last_name'])->subject(trans('client.order_completed_mail'));
     });
 }
Exemple #3
0
 public function index()
 {
     $customCSS = [];
     $customJS = ['global/plugins/flot/jquery.flot', 'global/plugins/flot/jquery.flot.resize', 'global/plugins/flot/jquery.flot.categories', 'admin/pages/scripts/ecommerce-index'];
     $response = ['blade_custom_css' => $customCSS, 'blade_custom_js' => $customJS];
     $response['total_sales'] = intval(Model_Orders::getTotalSales());
     $response['count_sales'] = intval(Model_Orders::getCountSales());
     $response['avg_sales'] = intval(Model_Orders::getAvgSales());
     if (!empty($last_orders = Model_Orders::getOrders(FALSE, TRUE, FALSE, 0, 20))) {
         foreach ($last_orders as $key => $order) {
             $response['last_orders'][$key]['id'] = $order['id'];
             $response['last_orders'][$key]['first_name'] = $order['name'];
             $response['last_orders'][$key]['last_name'] = $order['last_name'];
             $response['last_orders'][$key]['created_at'] = date('d.m.Y H:i', strtotime($order['created_at']));
             $response['last_orders'][$key]['status'] = trans('dashboard.' . $order['status']);
             switch ($order['status']) {
                 case 'pending':
                     $response['last_orders'][$key]['status_color'] = 'bg-yellow-lemon';
                     break;
                 case 'confirmed':
                     $response['last_orders'][$key]['status_color'] = 'bg-blue-madison';
                     break;
                 case 'completed':
                     $response['last_orders'][$key]['status_color'] = 'bg-green-jungle';
                     break;
                 case 'canceled':
                     $response['last_orders'][$key]['status_color'] = 'bg-red-flamingo';
                     break;
             }
         }
     }
     if (!empty($last_users = Model_Users::getUsers(FALSE, FALSE, 0, 20))) {
         if (!empty($users_data = Model_Users::getUsersData(['first_name', 'last_name'], 0, 20))) {
             //Merge users and users data
             foreach ($last_users as $key => $user) {
                 $user_id = $user['id'];
                 foreach ($user as $user_info_key => $user_info) {
                     //Do not pass sensitive data to view
                     if ($user_info_key != 'password' && $user_info_key != 'remember_token' && $user_info_key != 'updated_at' && $user_info_key != 'last_login') {
                         $response['last_users'][$user_id][$user_info_key] = $user_info;
                     }
                 }
             }
             foreach ($users_data as $key => $data) {
                 $response['last_users'][$data['user_id']][$data['object']] = $data['value'];
             }
         }
     }
     if (!empty($response['last_orders'])) {
         $response['last_orders_count'] = count($response['last_orders']);
     }
     if (!empty($response['last_users'])) {
         $response['last_users_count'] = count($response['last_users']);
     }
     $date_seven_days_ago = date('Y-m-d 00:00:00', strtotime('-6 days'));
     $last_seven_days_orders = Model_Orders::getOrders(FALSE, TRUE, FALSE, 0, 0, $date_seven_days_ago, date('Y-m-d H:i:s', time()));
     $count = 1;
     $response['graph'][date('d.m', time())] = 0.0;
     $response['graph2'][date('d.m', time())] = 0;
     while ($count < 7) {
         $date = date('d.m', strtotime('-' . $count . ' days'));
         $response['graph'][$date] = 0.0;
         $response['graph2'][$date] = 0;
         $count++;
     }
     if (!empty($last_seven_days_orders) && is_array($last_seven_days_orders)) {
         foreach ($last_seven_days_orders as $key => $order) {
             $date = date('d.m', strtotime($order['created_at']));
             $amount = Model_Orders::getTotalSales($order['id']);
             $response['graph'][$date] = $response['graph'][$date] + $amount;
             $response['graph2'][$date] = $response['graph2'][$date] + 1;
         }
     }
     //Sort by date
     ksort($response['graph']);
     ksort($response['graph2']);
     //		dd($response['graph']);
     return Theme::view('dashboard.index', $response);
 }