You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					57 lines
				
				1.8 KiB
			
		
		
			
		
	
	
					57 lines
				
				1.8 KiB
			| 
								 
											2 years ago
										 
									 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace App\Http\Controllers\Api\V1\Vendor;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								use App\Models\Expense;
							 | 
						||
| 
								 | 
							
								use Illuminate\Http\Request;
							 | 
						||
| 
								 | 
							
								use App\Http\Controllers\Controller;
							 | 
						||
| 
								 | 
							
								use Illuminate\Support\Facades\Validator;
							 | 
						||
| 
								 | 
							
								use App\CentralLogics\Helpers;
							 | 
						||
| 
								 | 
							
								use PayPal\Api\Search;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class ReportController extends Controller
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    public function expense_report(Request $request)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $validator = Validator::make($request->all(), [
							 | 
						||
| 
								 | 
							
								            'limit' => 'required',
							 | 
						||
| 
								 | 
							
								            'offset' => 'required',
							 | 
						||
| 
								 | 
							
								            'from' => 'required',
							 | 
						||
| 
								 | 
							
								            'to' => 'required',
							 | 
						||
| 
								 | 
							
								        ]);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $key = explode(' ', $request['search']);
							 | 
						||
| 
								 | 
							
								        if ($validator->fails()) {
							 | 
						||
| 
								 | 
							
								            return response()->json(['errors' => Helpers::error_processor($validator)], 403);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        $limit = $request['limite']??25;
							 | 
						||
| 
								 | 
							
								        $offset = $request['offset']??1;
							 | 
						||
| 
								 | 
							
								        $from = $request->from;
							 | 
						||
| 
								 | 
							
								        $to = $request->to;
							 | 
						||
| 
								 | 
							
								        $restaurant_id = $request->vendor->restaurants[0]->id;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $expense = Expense::where('created_by','vendor')->where('restaurant_id',$restaurant_id)
							 | 
						||
| 
								 | 
							
								            ->when(isset($from) &&  isset($to) ,function($query) use($from,$to){
							 | 
						||
| 
								 | 
							
								                $query->whereBetween('created_at', [$from.' 00:00:00', $to.' 23:59:29']);
							 | 
						||
| 
								 | 
							
								            })->when(isset($key), function($query) use($key) {
							 | 
						||
| 
								 | 
							
								                $query->where(function ($q) use ($key) {
							 | 
						||
| 
								 | 
							
								                    foreach ($key as $value) {
							 | 
						||
| 
								 | 
							
								                        $q->orWhere('order_id', 'like', "%{$value}%");
							 | 
						||
| 
								 | 
							
								                    }
							 | 
						||
| 
								 | 
							
								                });
							 | 
						||
| 
								 | 
							
								            })
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            ->paginate($limit, ['*'], 'page', $offset);
							 | 
						||
| 
								 | 
							
								            $data = [
							 | 
						||
| 
								 | 
							
								                'total_size' => $expense->total(),
							 | 
						||
| 
								 | 
							
								                'limit' => $limit,
							 | 
						||
| 
								 | 
							
								                'offset' => $offset,
							 | 
						||
| 
								 | 
							
								                'expense' => $expense->items()
							 | 
						||
| 
								 | 
							
								            ];
							 | 
						||
| 
								 | 
							
								            return response()->json($data,200);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 |