Discount.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Helpers\CommonMethods;
  4. use App\Models\User;
  5. use App\Models\Discounts;
  6. use App\Models\DiscountOutlets;
  7. use App\Models\DiscountItems;
  8. use Carbon\Carbon;
  9. use Illuminate\Http\Request;
  10. use Illuminate\Support\Facades\Auth;
  11. use Illuminate\Support\Facades\Hash;
  12. use Illuminate\Support\Facades\Storage;
  13. use Illuminate\Support\Str;
  14. use File;
  15. use DB;
  16. class Discount extends Controller
  17. {
  18. public function discounts(){
  19. return view('discounts.discounts');
  20. }
  21. public function edit_discount($id){
  22. $discount = Discounts::where('unique_key',$id)->first();
  23. return view('discounts.discount-form',['discount'=>$discount]);
  24. }
  25. public function discount(){
  26. return view('discounts.discount-form');
  27. }
  28. public function save_discount(Request $request){
  29. // dd($request->all());
  30. $data = $request->except(['id', '_token','selected_outlets']);
  31. $outlets = $request->outlets;
  32. $order_type = implode(',',$request->order_type);
  33. $selected_outlets = $request->selected_outlets;
  34. $selected_items = $request->discount_item;
  35. $data['order_type'] = $order_type;
  36. $data['order_applicable'] = isset($request->order_applicable)?"Yes":"No";
  37. $data['is_discount_at_delivery'] = isset($request->is_discount_at_delivery)?"Yes":"No";
  38. $data['start_datetime'] = isset($request->start_date) && !empty($request->start_date)?$request->start_date. ' '.(isset($request->start_time) && !empty($request->start_time)?Carbon::parse($request->start_time)->format('H:i'):"00:00"):"";
  39. if($request->expire_on_date=="expire_on_date"){
  40. $data['expire_on_date'] = null;
  41. $data['end_date'] = isset($request->end_date) && !empty($request->end_date)?$request->end_date:null;;
  42. $data['end_datetime'] = isset($request->end_date) && !empty($request->end_date)?$request->end_date. ' '.(isset($request->end_time) && !empty($request->end_time)?Carbon::parse($request->end_time)->format('H:i'):"00:00"):"";
  43. }
  44. else{
  45. $data['end_datetime'] = null;
  46. $data['end_date'] = null;;
  47. }
  48. // dd($data);
  49. if($data['is_discount_at_delivery']=="No"){
  50. $data['discount_at_delivery'] = null;
  51. $data['delivery_discount_type'] = null;
  52. }
  53. // $data['selected_outlets']=$selected_outlets;
  54. $data['resto_id'] = CommonMethods::getRestuarantID();;
  55. $id = $request->id;
  56. if(empty($id)){
  57. $discount = new Discounts();
  58. $data['unique_key'] = Str::uuid();
  59. $data['discount_item']=isset($selected_items) && count($selected_items) > 0?implode(',',$selected_items ):"";
  60. // dd($data);
  61. $discount->insert($data);
  62. $id = DB::getPdo()->lastInsertId();;
  63. }
  64. else{
  65. $discount = Discounts::find($id);
  66. $id =$discount->update($data);
  67. }
  68. if($id > 0){
  69. if($outlets=="all_outlets")
  70. DiscountOutlets::where('discount_id',$id)->delete();
  71. else{
  72. if(isset($selected_outlets)){
  73. DiscountOutlets::where('discount_id',$id)->delete();
  74. foreach($selected_outlets as $outlet){
  75. $dc = new DiscountOutlets();
  76. $dc->resto_id = \App\Helpers\CommonMethods::getRestuarantID();
  77. $dc->outlet_id = $outlet;
  78. $dc->discount_id = $id;
  79. $dc->save();
  80. }
  81. }
  82. }
  83. if($outlets=="all_items")
  84. DiscountItems::where('discount_id',$id)->delete();
  85. else{
  86. if(isset($selected_items)){
  87. DiscountItems::where('discount_id',$id)->delete();
  88. foreach($selected_items as $item){
  89. $di = new DiscountItems();
  90. $di->resto_id = \App\Helpers\CommonMethods::getRestuarantID();
  91. $di->item_id = $item;
  92. $di->discount_id = $id;
  93. $di->save();
  94. }
  95. }
  96. }
  97. echo json_encode(array('type'=>'success','message'=>'Discount saved!.'));
  98. }
  99. else
  100. echo json_encode(array('type'=>'error','message'=>'Data is not saved!.'));
  101. }
  102. public function delete_discount($id){
  103. $discount = Discounts::where('unique_key',$id)->first();
  104. $discount->deleted_at = date('Y-m-d H:i:s');
  105. $discount->is_active = 0;
  106. $discount->save();
  107. }
  108. public function update_status_discount(Request $request){
  109. $id = $request->id;
  110. $status = $request->status;
  111. $discount = Discounts::where('unique_key',$id)->first();
  112. $discount->is_active =$status;
  113. $discount->save();
  114. }
  115. }