Esempio n. 1
0
 public function search(Request $request)
 {
     $MrValidateData = new MrValidateData();
     $key = $request->get("search");
     $page = $request->get("page", 1);
     $sql = "";
     if ($key != "") {
         $key = MrValidateData::inject($key);
         $key = trim($key);
         $key = DB::raw("'%{$key}%'");
         $key = str_replace(" ", "%", $key);
         $sql = " AND ((pro_product.name LIKE {$key} OR pro_product.code LIKE {$key}) )";
     }
     return Product::select(array(DB::raw("check_coupon(pro_product.id,pro_product.cid_cate,1) AS discountcoupon"), DB::raw("check_coupon(pro_product.id,pro_product.cid_cate,2) AS coupons"), DB::raw("get_review(pro_product.id,1) AS rating"), DB::raw("get_review(pro_product.id,2) AS countrating"), DB::raw("get_price(pro_supplier_product.id,pro_supplier_product.discount) AS discount"), DB::raw("get_sale_price(pro_supplier_product.id,pro_supplier_product.saleprice) AS saleprice"), "pro_product.id", "pro_product.id AS myid", "pro_product.name", "pro_product.isprice", "pro_supplier_product.id AS cid_res", "pro_supplier_product.cid_supplier", "pro_product.is_shopping", "pro_supplier_product.stock_num", "pro_product.is_sample"))->whereRaw("pro_supplier_product.status='1' AND pro_product.status='1' AND pro_product.is_status_cate='1' AND pro_product.is_status_series='1'  {$sql}")->join("pro_supplier_product", function ($join) {
         $join->on("pro_product.id", "=", "pro_supplier_product.cid_product");
     })->orderBy("pro_supplier_product.date_mod", "DESC")->paginate(10);
 }
Esempio n. 2
0
 public static function getFilterPrice_Child($id_cate_child, $supplier = 0)
 {
     return Cache::remember("get_filter_price_child_" . $id_cate_child . $supplier, 30, function () use($id_cate_child, $supplier) {
         $MrValidateData = new MrValidateData();
         $sql_parent = "\n\t\t\t\t\t\tSELECT a.cid_cate,a.is_home,a.isprice,a.status,a.is_status_series,a.is_status_cate,\n\t\t\t\t\t\tb.id,b.cid_parent,b.links_right,b.links_left,\n\t\t\t\t\t\tMAX(c.saleprice) AS mymax,MIN(c.saleprice) as mymin,c.discount,c.stock_num,c.status,c.cid_supplier,c.cid_product,c.saleprice,c.discount\n\t\t\t\t\t\tFROM\n\t\t\t\t\t\t(  pro_product AS a INNER JOIN pro_categories AS b ON a.cid_cate=b.id)\n\t\t\t\t\t\tINNER JOIN pro_supplier_product AS c ON a.id = c.cid_product\n\t\t\t\t\t\tWHERE\n\t\t\t\t\t\tb.id={$id_cate_child}";
         if (!empty($supplier)) {
             $sql_parent .= " AND c.cid_supplier={$supplier}";
         }
         $sql_parent .= " AND a.is_status_series='1' AND a.is_status_cate='1' AND a.status='1'  AND c.status='1'\n\t\t\t\t\t";
         $data = DB::select($sql_parent);
         $data = empty($data[0]) ? null : $data[0];
         if ($data->mymax - $data->mymin > 1000000) {
             $tc_min_pirce = $data->mymin < 500000 ? 500000 : $MrValidateData->formod($data->mymin);
             $tc_max_price = $data->mymax > 30000000 ? 30000000 : $MrValidateData->formod($data->mymax);
         } else {
             $tc_min_pirce = $data->mymin < 500000 ? 500000 : $data->mymin;
             $tc_max_price = $data->mymax > 30000000 ? 30000000 : $data->mymax;
         }
         //	print_r($data); exit;
         $gioi_han_lai = $tc_max_price - $tc_min_pirce < 5000000 ? 3 : 7;
         $phan_doan1 = round(($tc_max_price - $tc_min_pirce) / $gioi_han_lai);
         $phan_doan1 = $MrValidateData->formod($phan_doan1);
         $result = array();
         $result['scroll'] = $data;
         $t = $tc_min_pirce;
         for ($i = 0; $i < $gioi_han_lai; $i++) {
             if ($i == 0) {
                 $sql = "SELECT a.cid_cate,a.isprice,a.status,a.is_status_series,a.is_status_cate,\n    \t\t\t\t\tb.id,b.cid_parent,\n    \t\t\t\t\tcount(a.id) AS total,c.status,c.cid_supplier,c.cid_product,c.saleprice,c.discount\n    \t\t\t\t\tFROM\n    \t\t\t\t\t(  pro_product AS a INNER JOIN pro_categories AS b ON a.cid_cate=b.id)\n    \t\t\t\t\tINNER JOIN pro_supplier_product AS c ON a.id = c.cid_product\n    \t\t\t\t\tWHERE\n    \t\t\t\t\tb.id={$id_cate_child}";
                 if (!empty($supplier)) {
                     $sql .= " AND c.cid_supplier={$supplier}";
                 }
                 $sql .= " AND c.discount <= {$t}\n    \t\t\t\t\tAND a.is_status_series='1' AND a.is_status_cate='1' AND a.status='1' AND c.status='1'\n    \t\t\t\t\t";
                 $count = DB::select($sql);
                 $count = empty($count[0]) ? null : $count[0];
                 $result[] = array('name' => "Thấp hơn " . $MrValidateData->toPice($t), "value" => $t, "count" => $count->total, 'position' => 1);
             } elseif ($i == $gioi_han_lai - 1) {
                 $max_price = $t - $phan_doan1;
                 $sql2 = "SELECT a.cid_cate,a.isprice,a.status,a.is_status_series,a.is_status_cate,\n\t\t\t\t\t\t\tb.id,b.cid_parent,\n\t\t\t\t\t\t\tcount(a.id) AS total,c.status,c.cid_supplier,c.cid_product,c.saleprice,c.discount\n\t\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\t(  pro_product AS a INNER JOIN pro_categories AS b ON a.cid_cate=b.id)\n\t\t\t\t\t\t\tINNER JOIN pro_supplier_product AS c ON a.id = c.cid_product\n\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\tb.id={$id_cate_child}";
                 if (!empty($supplier)) {
                     $sql2 .= " AND c.cid_supplier={$supplier}";
                 }
                 $sql2 .= " AND c.discount > {$max_price}\n\t\t\t\t\t\t\tAND a.is_status_series='1' AND a.is_status_cate='1' AND a.status='1' AND c.status='1'\n\t\t\t\t\t\t\t";
                 $count = DB::select($sql2);
                 $count = empty($count[0]) ? null : $count[0];
                 $result[] = array('name' => "Cao hơn " . $MrValidateData->toPice($max_price), "value" => $max_price, "count" => $count->total, 'position' => 2);
             } else {
                 $ff = $t - $phan_doan1;
                 $sql3 = "SELECT a.cid_cate,a.isprice,a.status,a.is_status_series,a.is_status_cate,\n\t\t\t\t\t\t\t\tb.id,b.cid_parent,\n\t\t\t\t\t\tcount(a.id) AS total,c.status,c.cid_supplier,c.cid_product,c.saleprice,c.discount\n\t\t\t\t\t\tFROM\n\t\t\t\t\t\t(  pro_product AS a INNER JOIN pro_categories AS b ON a.cid_cate=b.id)\n\t\t\t\t\t\tINNER JOIN pro_supplier_product AS c ON a.id = c.cid_product\n\t\t\t\t\t\tWHERE\n\t\t\t\t\t\tb.id={$id_cate_child}";
                 if (!empty($supplier)) {
                     $sql3 .= " AND c.cid_supplier={$supplier}";
                 }
                 $sql3 .= " AND c.discount > {$ff}  AND c.discount <= " . $t . "\n\t\t\t\t\t\tAND a.is_status_series='1' AND a.is_status_cate='1' AND a.status='1' AND c.status='1'\n\t\t\t\t\t\t";
                 $count = DB::select($sql3);
                 $count = empty($count[0]) ? null : $count[0];
                 $result[] = array('name' => $MrValidateData->toPice($ff) . "-" . $MrValidateData->toPice($t), "phandoan" => $ff, "value" => $t, "count" => $count->total, 'position' => 3);
             }
             $t = $phan_doan1 + $t;
         }
         return $result;
     });
 }
Esempio n. 3
0
 public function four()
 {
     if (!Session::has("orderdmcl") && !Session::has("ordercustomer")) {
         return '1';
     }
     $filter = new MrValidateData();
     $number_order = $filter->dateToNumber(date("d-m-Y H:i:s")) . $filter->randd(8);
     $data_payment = Session::get("orderdmcl");
     $data_customer = Session::get("ordercustomer");
     $salettotal = 0;
     $total = 0;
     $array_supplier = array();
     foreach ($data_payment as $key => $value) {
         if (!array_key_exists($value['product']['cid_supplier'], $array_supplier)) {
             $array_supplier[$value['product']['cid_supplier']] = $value['product']['cid_supplier'];
         }
         $salettotal = $value['product']['saleprice'] * $value['order']['limit'] + $salettotal;
         if (!empty($value['coupon'])) {
             $total = $value['product']['discount'] * $value['order']['limit'] - $value['coupon'] + $total;
         } else {
             $total = $value['product']['discount'] * $value['order']['limit'] + $total;
         }
     }
     foreach ($array_supplier as $idnhacungcap) {
         //OR ORDER
         $news_order = new Ororder();
         $news_order->code_order = $number_order;
         if (Auth::check()) {
             $news_order->id_cus = Auth::user()->id;
         }
         $news_order->pay_type = $data_customer['pay'] == '2' ? "Thanh toán tại siêu thị" : "Thanh toán tại nhà";
         $news_order->total_or = $total;
         //tong gia ban kèm số lượng
         $news_order->date_bill = date("Y-m-d H:i:s");
         $news_order->date_ship = !empty($data_customer['getdate']) ? date("Y-m-d H:i:s", strtotime($data_customer['getdate'])) : date("Y-m-d H:i:s");
         $news_order->order_info = !empty($data_customer['note']) ? $data_customer['note'] : "";
         $news_order->approved = '0';
         $news_order->dis_price = $salettotal - $total;
         //tong gia giảm kèm số lượng
         $news_order->type_payment = $data_customer['pay'];
         $news_order->cid_bank = 0;
         $news_order->flag = '1';
         $news_order->session = 1;
         $news_order->code_coupon = "";
         $news_order->code_voucher = Session::has("coupon") ? Session::get("coupon") : "";
         $news_order->mode = '0';
         $news_order->cid_supplier = $idnhacungcap;
         $news_order->save();
         //OR SHIPPING
         $news_shipping = new Orshipping();
         $news_shipping->cid_order = $news_order->id;
         $news_shipping->fullname = $data_customer['name'];
         $news_shipping->phone = $data_customer['phone'];
         $news_shipping->email = $data_customer['email'];
         $news_shipping->address = $data_customer['address'];
         $news_shipping->distict = $data_customer['state'];
         $news_shipping->city = $data_customer['city'];
         $news_shipping->save();
         //OR DETAIL
         foreach ($data_payment as $key => $value) {
             if ($idnhacungcap == $value['product']['cid_supplier']) {
                 $Gift = Promotion::getGift($value['product']['cid_res'], $value['product']['cid_supplier']);
                 $getpromotion = Promotion::getDetail($value['product']['cid_res'], $value['product']['cid_supplier']);
                 $news = new Ordetail();
                 $news->cid_order = $news_order->id;
                 $news->cid_product = $value['product']['myid'];
                 $news->cid_color = $value['order']['color'];
                 $news->cid_promotion = !empty($getpromotion->cid_promotion) ? $getpromotion->cid_promotion : "";
                 $news->amount = $value['order']['limit'];
                 $news->sale_price = $value['product']['saleprice'];
                 // ko kèm số lưog
                 if (!empty($value['coupon'])) {
                     $news->total = $value['order']['limit'] * $value['product']['discount'] - $value['coupon'];
                     $news->dis_price = $value['coupon'];
                     //khong kèm số lượng
                 } else {
                     $news->total = $value['order']['limit'] * $value['product']['discount'];
                     $news->dis_price = $value['product']['saleprice'] - $value['product']['discount'];
                     //khong kèm số lượng
                 }
                 $news->choose = !empty($getpromotion->type_promo) ? $getpromotion->type_promo : 0;
                 $news->code_coupon = Session::has("coupon") ? Session::get("coupon") : "";
                 $news->cid_supplier = $value['product']['cid_supplier'];
                 $news->save();
                 if (!empty($getpromotion->type_promo)) {
                     //print_r($getpromotion->type_promo);exit;
                     //print_r($Gift);exit;
                     if ($getpromotion->type_promo == '2') {
                         $news->cid_gift = '1';
                         if (!empty($Gift['online']) && is_object($Gift['online'])) {
                             $gift_online = $Gift['online'];
                             $news_gift = new Orgift();
                             $news_gift->cid_detail = $news->id;
                             $news_gift->cid_gift = $gift_online[0]->idpromotion;
                             $news_gift->type = '0';
                             $news_gift->save();
                         }
                     } elseif ($getpromotion->type_promo == '3') {
                         $news->cid_gift = '1';
                         if (!empty($Gift['press'])) {
                             $gift_press = $Gift['press'];
                             $news_gift = new Orgift();
                             $news_gift->cid_detail = $news->id;
                             $news_gift->cid_gift = $gift_press[0]->idpromotion;
                             $news_gift->type = '0';
                             $news_gift->save();
                         }
                     } elseif ($getpromotion->type_promo == '4' || $getpromotion->type_promo == '1') {
                         $news->cid_gift = '1';
                         if (!empty($Gift['text'])) {
                             foreach ($Gift['text'] as $gift_text) {
                                 $news_gift = new Orgift();
                                 $news_gift->cid_detail = $news->id;
                                 $news_gift->cid_gift = $gift_text->idpromotion;
                                 $news_gift->type = '0';
                                 $news_gift->save();
                             }
                         }
                     }
                 }
                 if (!empty($Gift['gift'])) {
                     $news->cid_gift = '1';
                     for ($i = 0; $i < count($Gift['gift']); $i++) {
                         # code...
                         $news_gift = new Orgift();
                         $news_gift->cid_detail = $news->id;
                         $news_gift->cid_gift = $Gift['gift'][$i]->cid_gift;
                         $news_gift->type = '1';
                         $news_gift->save();
                     }
                 }
                 $news->save();
             }
         }
     }
     Session::flush();
     return $number_order;
 }