File: /var/www/vhost/disk-apps/qas.sports-crowd.com/app/Http/Controllers/DiscountController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use DB;
use Datatables;
use App\Discount;
use App\DiscountType;
use App\Product;
use App\DiscountProduct;
use App\DiscountOrderUser;
use App\Category;
class DiscountController extends Controller
{
public function index(){
// $rol = Auth::user()->rol->id;
// if ($rol == 1 || $rol == 6) {
$discountTypes = DiscountType::where('active', 1)->orderBy('id','ASC')->get();
return view('discounts.discounts')->with('discountTypes',$discountTypes);
// }else{
// return redirect()->back();
// }
}
public function indexAdd(){
$discountTypes = DiscountType::where('active', 1)->orderBy('id','ASC')->get();
$discountShipments = Discount::where([['active', 1], ['discount_type_id', 1]])->first();
$products = Product::where('active',1)->orderBy('name','ASC')->get();
$categories = Category::where('active',1)->orderBy('name','ASC')->get();
if (isset($discountShipments->id)) {
$statusDiscountShipments = true;
}else{
$statusDiscountShipments = false;
}
return view('discounts.addDiscount')
->with('discountTypes', $discountTypes)
->with('products', $products)
->with('statusDiscountShipments', $statusDiscountShipments)
->with('categories', $categories);
}
public function create(Request $request)
{
if ($request["discount_id"] == 1) {
$discount = new Discount();
$discount->name = $request["name"];
$discount->price_discount = $request["price_discount"];
$discount->percentage_discount = $request["percentage_discount"];
$discount->days_register_discount_delivery = $request["days_register_discount_delivery"];
$discount->discount_global_shipping = $request["discount_global_shipping"];
$discount->discount_type_id = $request["discount_id"];
$discount->save();
}else{
$discount = new Discount();
$discount->name = $request["name"];
$discount->value_for_win = $request["value_for_win"];
$discount->message_to_user = $request["message_to_user"];
$discount->when_start = $request["when_start"];
$discount->when_finish = $request["when_finish"];
$discount->max_winners = $request["max_winners"];
$discount->code_coupon = $request["code_coupon"];
$discount->price_discount = $request["price_discount"];
$discount->percentage_discount = $request["percentage_discount"];
$discount->is_multiple_redeem = $request["is_multiple_redeem"];
$discount->is_cumulative_another_discounts = $request["is_cumulative_another_discounts"];
$discount->apply_value = $request["apply_value"];
$discount->category_id = $request["category_id"];
$discount->discount_type_id = $request["discount_id"];
$discount->save();
if ($request["discount_id"] == 5 || $request["discount_id"] == 6) {
foreach ($request["products"] as $key => $product) {
$discountProducts = new DiscountProduct();
$discountProducts->plu = $product['plu'];
$discountProducts->discount_id = $discount->id;
$discountProducts->product_id = $product['id'];
$discountProducts->quantity = $product['value'];
$discountProducts->save();
}
}
if ($request["discount_id"] == 5 || $request["discount_id"] == 6 || $request["discount_id"] == 7 || $request["discount_id"] == 9) {
foreach ($request["productsGift"] as $key => $product) {
$discountProducts = new DiscountProduct();
$discountProducts->is_gift = 1;
$discountProducts->plu = $product['plu'];
$discountProducts->discount_id = $discount->id;
$discountProducts->product_id = $product['id'];
$discountProducts->save();
}
}
}
if($discount){
return array('r' => true, 'd' => null, 'm'=> trans('messages.screen_discounts_tag8'));
}else{
return array('r' => false, 'd' => null, 'm'=> trans('messages.screen_discounts_tag9'));
}
}
public function indexInfo($id){
$discount = Discount::find($id);
if ($discount->discount_type_id == 1) {
$discountUsers = DiscountOrderUser::where('discount_id', $id)->whereNotNull('order_id')->with('user')->with('order')->with('discount')->get();
}else{
$discountUsers = DiscountOrderUser::where('discount_id', $id)->with('user')->with('order')->with('discount')->get();
}
return view('discounts.infoDiscount')
->with('discountUsers', $discountUsers);
}
public function indexEdit($id){
$discount = Discount::find($id);
$products = Product::where('active',1)->orderBy('name','ASC')->get();
$productsRequirement = DiscountProduct::where('discount_id',$discount->id)->whereNull('is_gift')->with('product')->get();
$productGift = DiscountProduct::where('discount_id',$discount->id)->whereNotNull('is_gift')->with('product')->get();
if ($discount->discount_type_id == 10) {
$categories = Category::where('active',1)->orderBy('name','ASC')->get();
}else{
$categories = null;
}
return view('discounts.editDiscount')
->with('discount', $discount)
->with('products', $products)
->with('productsRequirement', $productsRequirement)
->with('productGift', $productGift)
->with('categories', $categories);
}
public function update(Request $request){
if ($request["type_discount_id"] == 1) {
$discount = Discount::find($request["discount_id"]);
$discount->name = $request["name"];
$discount->price_discount = $request["price_discount"];
$discount->percentage_discount = $request["percentage_discount"];
$discount->days_register_discount_delivery = $request["days_register_discount_delivery"];
$discount->discount_global_shipping = $request["discount_global_shipping"];
$discount->update();
}else{
$discount = Discount::find($request["discount_id"]);
$discount->name = $request["name"];
$discount->value_for_win = $request["value_for_win"];
$discount->message_to_user = $request["message_to_user"];
$discount->when_start = $request["when_start"];
$discount->when_finish = $request["when_finish"];
$discount->max_winners = $request["max_winners"];
$discount->code_coupon = $request["code_coupon"];
$discount->price_discount = $request["price_discount"];
$discount->percentage_discount = $request["percentage_discount"];
$discount->is_multiple_redeem = $request["is_multiple_redeem"];
$discount->is_cumulative_another_discounts = $request["is_cumulative_another_discounts"];
$discount->apply_value = $request["apply_value"];
$discount->category_id = $request["category_id"];
$discount->update();
if ($request["type_discount_id"] == 5 || $request["type_discount_id"] == 6) {
$deletedRowsDiscountProducts = DiscountProduct::where('discount_id', $request["discount_id"])->whereNull('is_gift')->delete();
foreach ($request["products"] as $key => $product) {
$discountProducts = new DiscountProduct();
$discountProducts->plu = $product['plu'];
$discountProducts->discount_id = $request["discount_id"];
$discountProducts->product_id = $product['id'];
$discountProducts->quantity = $product['quantity'];
$discountProducts->save();
}
}
if ($request["type_discount_id"] == 5 || $request["type_discount_id"] == 6 || $request["type_discount_id"] == 7 || $request["type_discount_id"] == 9) {
$deletedRowDiscountProducts = DiscountProduct::where('discount_id', $request["discount_id"])->whereNotNull('is_gift')->delete();
foreach ($request["productsGift"] as $key => $product) {
$discountProducts = new DiscountProduct();
$discountProducts->is_gift = 1;
$discountProducts->plu = $product['plu'];
$discountProducts->discount_id = $request["discount_id"];
$discountProducts->product_id = $product['id'];
$discountProducts->save();
}
}
}
if ($discount) {
return array('r' => true, 'd' => null, 'm'=> trans('messages.screen_discounts_tag53'));
}else{
return array('r' => false,'d' => null, 'm'=> trans('messages.screen_discounts_tag54'));
}
}
public function activateDiscount(Request $request){
$id= $request['id'];
$state= $request['state'];
$discount = Discount::find($id);
if ($discount->discount_type_id == 1 && $state) {
Discount::where('discount_type_id', 1)
->update(['active' => 0]);
}
if($id != $discount->discount_type_id){
Discount::where('discount_type_id', $discount->discount_type_id)
->update(['active' => 0]);
}
$discount->active = $state;
$discount->update();
if ($discount) {
return array('r' => true, 'd' => null, 'm'=> trans('messages.screen_discounts_tag31'));
}else{
return array('r' => false,'d' => null, 'm'=> trans('messages.screen_discounts_tag32'));
}
}
public function tableFilter(Request $request){
$obj = $obj = DB::table('discounts')
->select('discounts.id','discounts.name','discounts.active', 'discounts.current_winners', 'discounts.max_winners')->where('discount_type_id',$request["discount_type_id"]);
return Datatables::of($obj)
->addColumn('actions', function ($obj) {
return '<i class="fa fa-eye iconMini" onClick="clickInfoDiscount('.$obj->id.')" name="btnEditar" data-id="'.$obj->id.'" data-toggle="tooltip" data-placement="bottom" title="Información" style="cursor:pointer;"></i>
<i class="fa fa-pencil iconMini" onClick="clickEditDiscount('.$obj->id.')" data-id="'.$obj->id.'" data-toggle="tooltip" data-placement="bottom" title="Editar" style="cursor:pointer;"></i>
';
})
->editColumn('active', function ($obj) {
if($obj->active == 0){
return '<div class="switch"><label><div class="checkbox checbox-switch switch-success"> <label> No <input type="checkbox" onChange="chkDiscount('.$obj->id.')" data-id="'.$obj->id.'" id="Checkactive'.$obj->id.'" name="Checkactivo" /> <span></span>Si </label></div> </label> </div>';
}else{
return '<div class="switch"><label> <div class="checkbox checbox-switch switch-success"> <label> No <input type="checkbox" onChange="chkDiscount('.$obj->id.')" data-id="'.$obj->id.'" id="Checkactive'.$obj->id.'" name="Checkactivo" checked="" />
<span></span> Si </label> </div> </label> </div>';
}
})
->editColumn('current_winners', function ($obj) {
if($obj->current_winners == null){
return '<span> 0 </span>';
}else{
return '<span>'.$obj->current_winners.'</span>';
}
})
->rawColumns([ 'active','actions','current_winners'])
->make(true);
}
}