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); }
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; }); }
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; }