Recipe.php_bk 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Categories;
  4. use App\MapRecipeCategories;
  5. use App\Photos;
  6. use App\Recipes;
  7. use App\Restaurants;
  8. use Brian2694\Toastr\Facades\Toastr;
  9. use Illuminate\Http\Request;
  10. use Illuminate\Support\Facades\Auth;
  11. use Illuminate\Support\Facades\Storage;
  12. use Ramsey\Uuid\Uuid;
  13. use App\ClothOptions;
  14. use Str;
  15. use File;
  16. use Illuminate\Support\Facades\Hash;
  17. use Image;
  18. use App\ProductFAQs;
  19. use App\Helpers\CommonMethods;
  20. class Recipe extends Controller
  21. {
  22. public function inventory(){
  23. $resto_id = CommonMethods::getRestuarantID();
  24. $resto = Restaurants::find($resto_id);
  25. $recipes = $resto->recipes();;
  26. $data = [
  27. 'recipes' => $recipes->get()
  28. ];
  29. return view('recipes.inventory',$data);
  30. }
  31. //
  32. public function recipes(){
  33. Toastr::success('Post added successfully :)','Success');
  34. $resto_id = CommonMethods::getRestuarantID();
  35. $resto = Restaurants::find($resto_id);
  36. $recipes = $resto->recipes();;
  37. $data = [
  38. 'recipes' => $recipes->get()
  39. ];
  40. return view('recipes.recipes',$data);
  41. }
  42. public function new_recipe(){
  43. $resto_id = CommonMethods::getRestuarantID();
  44. $categories = Categories::whereNull('deleted_at')->where('is_active',1)->whereIn('resto_id',[$resto_id])->get();
  45. $data = [
  46. 'categories' => $categories
  47. ];
  48. return view('recipes.recipe_form',$data);
  49. }
  50. public function edit($id){
  51. $resto_id = CommonMethods::getRestuarantID();
  52. $categories = Categories::whereNull('deleted_at')->where('is_active',1)->whereIn('resto_id',[$resto_id])->get();
  53. $recipe = Recipes::find($id);
  54. $data = [
  55. 'categories' => $categories,
  56. 'recipe' =>$recipe
  57. ];
  58. return view('recipes.recipe_form',$data);
  59. }
  60. public function save(Request $request){
  61. $resto_id = CommonMethods::getRestuarantID();
  62. $resto = Restaurants::find($resto_id);
  63. $id = $request->id;
  64. if(empty($id)){
  65. $recipe = new Recipes();
  66. $recipe->unique_shared_key = Str::uuid();
  67. }
  68. else
  69. $recipe = Recipes::find($id);
  70. $recipe->name = $request->name;
  71. $recipe->arabic_name = $request->arabic_name;
  72. $recipe->status = '1';
  73. $recipe->resto_id = $resto_id;
  74. $recipe->price = $request->price;
  75. $recipe->show_recipe_main_price = isset($request->show_recipe_main_price)?1:0;
  76. $recipe->short_description = $request->short_description;
  77. $recipe->short_description_arabic = $request->short_description_arabic;
  78. $recipe->is_customized = isset($request->is_customized)?1:0;
  79. $recipe->status = isset($request->status)?1:0;
  80. $recipe->save();
  81. $recipe_id = $recipe->id;
  82. if($recipe_id > 0){
  83. $categories = $request->category;
  84. //dd($categories);
  85. MapRecipeCategories::where('recipe_id',$recipe_id)->delete();
  86. if(count($categories) > 0){
  87. foreach($categories as $category){
  88. $m_c = new MapRecipeCategories();
  89. $m_c->category_id = $category;
  90. $m_c->recipe_id = $recipe_id;
  91. $m_c->resto_id = $resto_id;;
  92. $m_c->save();
  93. }
  94. }
  95. if($request->hasFile('main_image')){
  96. $logo = $request->file('main_image');
  97. $file_name = Str::slug($request->name)."-main_image".'-'.time();
  98. $extension = $logo->getClientOriginalExtension();
  99. Storage::disk('main_image')->put($file_name.'.'.$extension, File::get($logo));
  100. $destinationPath = public_path('/uploads/main_image/');
  101. /*$img = Image::make($destinationPath . '/' . $file_name.'.'.$extension)->resize(1400, null, function ($constraint) {
  102. $constraint->aspectRatio();
  103. });*/
  104. // $img->save($destinationPath . '/' . $file_name.'.'.$extension);
  105. $file = public_path('uploads/main_image/'.$file_name.'.'.$extension);
  106. $result = CommonMethods::uploadFileToAWSCDN('meemapp-order',$resto_id, $resto->resto_unique_name,$file,$file_name);
  107. /*
  108. $img = Image::make($destinationPath . '/' . $file_name.'.'.$extension)->resize(200, null, function ($constraint) {
  109. $constraint->aspectRatio();
  110. });
  111. $img->save($destinationPath . '/thumbnails/' . $file_name.'.'.$extension);*/
  112. $main_image = Photos::where('recipe_id',$recipe_id)->where('photo_type','main_image')->first();
  113. if(!$main_image)
  114. $main_image = new Photos();
  115. $main_image->file_name = $result['url'];
  116. $main_image->aws_cdn = $result['url'];
  117. $main_image->recipe_id = $recipe_id;
  118. $main_image->photo_type = 'main_image';
  119. $main_image->resto_id = $resto_id;;;
  120. $main_image->save();
  121. File::delete( $file);
  122. //$resto->text =
  123. }
  124. if($request->business_type=="ClothsStore"){
  125. $color_image = ($request->color_image);
  126. $option = ClothOptions::where('resto_id',$resto_id)->where('product_id',$recipe_id)->delete();
  127. $colors = !empty($request->color)?$request->color:NULL;
  128. $sizes = !empty($request->size)?$request->size:NULL;
  129. if(isset($colors) && count($colors) > 0){
  130. foreach($colors as $color){
  131. if(isset($color_image[$color])){
  132. dump('found');
  133. }
  134. $options = new ClothOptions();
  135. $options->resto_id = $resto_id;
  136. $options->product_id = $recipe_id;
  137. $options->name = $color;
  138. $options->type="color";
  139. $options->save();
  140. }
  141. }
  142. if(isset($sizes) && count($sizes) > 0){
  143. foreach($sizes as $size){
  144. $options = new ClothOptions();
  145. $options->resto_id = $resto_id;
  146. $options->product_id = $recipe_id;
  147. $options->name = $size;
  148. $options->type="size";
  149. $options->save();
  150. }
  151. }
  152. }
  153. echo json_encode(array('type' => 'success', 'message'=>"Item is saved successfully."));
  154. }
  155. else
  156. echo json_encode(array('type' => 'error', 'message'=>"Item is not saved successfully."));
  157. }
  158. /* public function save(Request $request){
  159. $id = $request->id;
  160. if(empty($id)){
  161. $recipe = new Recipes();
  162. $recipe->unique_shared_key = Str::uuid();
  163. }
  164. else
  165. $recipe = Recipes::find($id);
  166. $recipe->name = $request->name;
  167. $recipe->status = '1';
  168. $recipe->resto_id = Auth::user()->restaurants->id;
  169. $recipe->price = $request->price;
  170. $recipe->short_description = $request->short_description;
  171. $recipe->is_customized = isset($request->is_customized)?1:0;
  172. $recipe->status = isset($request->status)?1:0;
  173. $recipe->save();
  174. $recipe_id = $recipe->id;
  175. if($recipe_id > 0){
  176. $categories = $request->category;
  177. //dd($categories);
  178. MapRecipeCategories::where('recipe_id',$recipe_id)->delete();
  179. if(count($categories) > 0){
  180. foreach($categories as $category){
  181. $m_c = new MapRecipeCategories();
  182. $m_c->category_id = $category;
  183. $m_c->recipe_id = $recipe_id;
  184. $m_c->resto_id = Auth::user()->restaurants->id;;
  185. $m_c->save();
  186. }
  187. }
  188. if($request->hasFile('main_image')){
  189. $logo = $request->file('main_image');
  190. $file_name = Str::slug($request->name)."-main_image".'-'.time();
  191. $extension = $logo->getClientOriginalExtension();
  192. Storage::disk('main_image')->put($file_name.'.'.$extension, File::get($logo));
  193. $destinationPath = public_path('/uploads/main_image/');
  194. $img = Image::make($destinationPath . '/' . $file_name.'.'.$extension)->resize(1400, null, function ($constraint) {
  195. $constraint->aspectRatio();
  196. });
  197. $img->save($destinationPath . '/' . $file_name.'.'.$extension);
  198. $img = Image::make($destinationPath . '/' . $file_name.'.'.$extension)->resize(200, null, function ($constraint) {
  199. $constraint->aspectRatio();
  200. });
  201. $img->save($destinationPath . '/thumbnails/' . $file_name.'.'.$extension);
  202. $main_image = Photos::where('recipe_id',$recipe_id)->where('photo_type','main_image')->first();
  203. if(!$main_image)
  204. $main_image = new Photos();
  205. $main_image->file_name = $file_name.'.'.$extension;
  206. $main_image->recipe_id = $recipe_id;
  207. $main_image->photo_type = 'main_image';
  208. $main_image->resto_id = Auth::user()->restaurants->id;;;
  209. $main_image->save();
  210. //$resto->text =
  211. }
  212. echo json_encode(array('type' => 'success', 'message'=>"Recipe's data is saved successfully."));
  213. }
  214. else
  215. echo json_encode(array('type' => 'error', 'message'=>"Recipe's data is not saved successfully."));
  216. }*/
  217. public function delete($id){
  218. $recipe = Recipes::find($id);
  219. $recipe->deleted_at = date('Y-m-d H:i:s');
  220. $recipe->save();
  221. }
  222. public function upload_gallery(Request $request){
  223. $resto_id = CommonMethods::getRestuarantID();
  224. $resto = Restaurants::find($resto_id);
  225. $files = $request->file('files');;
  226. $recipe_id = $request->recipe_id;
  227. if(isset($files) && count($files) > 0){
  228. foreach($files as $file){
  229. $photo = new Photos();
  230. $extension = $file->getClientOriginalExtension();
  231. $original_name = $file->getClientOriginalName();
  232. // $original_name = str_replace(' ', '-', $original_name);
  233. $extension_array = ['jpg', 'jpeg', 'bmp', 'png'];
  234. $image_array = ['jpg', 'jpeg', 'bmp', 'png'];
  235. if (in_array($extension, $extension_array)) {
  236. $file_name = 'recipe-gallery-'.$recipe_id. '-' . time().rand(1000,9999) . '.' . $extension;
  237. $destinationPath = public_path('/uploads/resto-gallery/');
  238. $file->move($destinationPath, $file_name);
  239. $file = public_path('uploads/resto-gallery/'.$file_name);
  240. $result = CommonMethods::uploadFileToAWSCDN('meemapp-order',$resto->id, $resto->resto_unique_name,$file,$file_name);
  241. /* $img = Image::make($destinationPath . '/' . $file_name)->resize(1400, null, function ($constraint) {
  242. $constraint->aspectRatio();
  243. });
  244. $img->save($destinationPath . '/' . $file_name);
  245. $img = Image::make($destinationPath . '/' . $file_name)->resize(85, null, function ($constraint) {
  246. $constraint->aspectRatio();
  247. });
  248. $img->save($destinationPath . '/thumbnails/' . $file_name);
  249. */
  250. // dd($request->file('attachment'));
  251. $photo->recipe_id = $recipe_id;
  252. $photo->file_name = $result['url'];
  253. $photo->aws_cdn = $result['url'];
  254. $photo->photo_type = "gallery";
  255. $photo->resto_id = $resto->id;;;
  256. $photo->save();
  257. }
  258. }
  259. }
  260. }
  261. public function show($id){
  262. $recipe = Recipes::find($id);
  263. $categories = isset($recipe->categories)?$recipe->categories->pluck('category_id'):NULL;
  264. if($categories){
  265. $categories = Categories::whereIn('id',$categories)->pluck('name')->toArray();
  266. $categories = implode(', ',$categories);
  267. }
  268. $data = [
  269. 'recipe' => $recipe,
  270. 'categories' => $categories
  271. ];
  272. return view('recipes.show',$data);
  273. }
  274. public function remove_main_image(Request $request){
  275. $id = $request->id;
  276. $photo = Photos::where('recipe_id',$id)->where('photo_type','main_image')->first();
  277. $photo->delete();
  278. }
  279. public function exclude_outlet(Request $request){
  280. $is_exclude = $request->is_exclude;
  281. $outlet_id = $request->outlet_id;
  282. $recipe_id = $request->recipe_id;
  283. $recipe = Recipes::find($recipe_id);
  284. $exclude_outlets = $recipe->exclude_outlets;
  285. if(empty($exclude_outlets)){
  286. $o = explode(',',$exclude_outlets);
  287. $o[$outlet_id] = $outlet_id;
  288. // dump($o);
  289. $recipe->exclude_outlets = $outlet_id;
  290. }else{
  291. $o = explode(',',$exclude_outlets);
  292. if($is_exclude=="true"){
  293. $key = array_search($outlet_id, $o);
  294. unset($o[$key]);
  295. }
  296. else
  297. $o[] = $outlet_id;
  298. $o = array_unique($o);
  299. $recipe->exclude_outlets = implode(',',$o);
  300. }
  301. $recipe->save();
  302. }
  303. public function save_faq(Request $request){
  304. $id = $request->id;
  305. if(empty($id))
  306. $faq = new ProductFAQs();
  307. else
  308. $faq = ProductFAQs::find($id);
  309. $faq->product_id = $request->product_id;
  310. $faq->question = $request->question;
  311. $faq->answer = $request->answer;
  312. $faq->save();
  313. $faq_id = $faq->id;
  314. if($faq_id > 0)
  315. echo json_encode(array('type' => 'success', 'message'=>"FAQ's data is saved successfully."));
  316. else
  317. echo json_encode(array('type' => 'error', 'message'=>"FAQ's data is not saved."));
  318. }
  319. public function delete_faq(Request $request){
  320. $faq = ProductFAQs::find($request->id);
  321. $faq->deleted_at = date('Y-m-d H:i:s');
  322. $faq->save();
  323. }
  324. }