mirror of
				https://github.com/crater-invoice/crater.git
				synced 2025-10-31 05:31:10 -04:00 
			
		
		
		
	add user to expense
This commit is contained in:
		| @ -5,6 +5,7 @@ use Illuminate\Database\Eloquent\Model; | ||||
| use Spatie\MediaLibrary\HasMedia\HasMedia; | ||||
| use Spatie\MediaLibrary\HasMedia\HasMediaTrait; | ||||
| use Crater\ExpenseCategory; | ||||
| use Crater\User; | ||||
| use Carbon\Carbon; | ||||
| use Illuminate\Support\Facades\DB; | ||||
|  | ||||
| @ -16,6 +17,7 @@ class Expense extends Model implements HasMedia | ||||
|         'expense_category_id', | ||||
|         'amount', | ||||
|         'company_id', | ||||
|         'user_id', | ||||
|         'expense_date', | ||||
|         'notes', | ||||
|         'attachment_receipt' | ||||
| @ -32,6 +34,11 @@ class Expense extends Model implements HasMedia | ||||
|         return $this->belongsTo(ExpenseCategory::class, 'expense_category_id'); | ||||
|     } | ||||
|  | ||||
|     public function user() | ||||
|     { | ||||
|         return $this->belongsTo(User::class); | ||||
|     } | ||||
|  | ||||
|     public function getFormattedExpenseDateAttribute($value) | ||||
|     { | ||||
|         $dateFormat = CompanySetting::getSetting('carbon_date_format', $this->company_id); | ||||
| @ -81,6 +88,11 @@ class Expense extends Model implements HasMedia | ||||
|         return $query->where('expenses.expense_category_id', $categoryId); | ||||
|     } | ||||
|  | ||||
|     public function scopeWhereUser($query, $user_id) | ||||
|     { | ||||
|         return $query->where('expenses.user_id', $user_id); | ||||
|     } | ||||
|  | ||||
|     public function scopeApplyFilters($query, array $filters) | ||||
|     { | ||||
|         $filters = collect($filters); | ||||
| @ -89,6 +101,10 @@ class Expense extends Model implements HasMedia | ||||
|             $query->whereCategory($filters->get('expense_category_id')); | ||||
|         } | ||||
|  | ||||
|         if ($filters->get('user_id')) { | ||||
|             $query->whereUser($filters->get('user_id')); | ||||
|         } | ||||
|  | ||||
|         if ($filters->get('from_date') && $filters->get('to_date')) { | ||||
|             $start = Carbon::createFromFormat('d/m/Y', $filters->get('from_date')); | ||||
|             $end = Carbon::createFromFormat('d/m/Y', $filters->get('to_date')); | ||||
|  | ||||
| @ -24,9 +24,11 @@ class ExpensesController extends Controller | ||||
|         $limit = $request->has('limit') ? $request->limit : 10; | ||||
|  | ||||
|         $expenses = Expense::with('category') | ||||
|             ->join('users', 'users.id', '=', 'expenses.user_id') | ||||
|             ->join('expense_categories', 'expense_categories.id', '=', 'expenses.expense_category_id') | ||||
|             ->applyFilters($request->only([ | ||||
|                 'expense_category_id', | ||||
|                 'user_id', | ||||
|                 'search', | ||||
|                 'from_date', | ||||
|                 'to_date', | ||||
| @ -34,7 +36,7 @@ class ExpensesController extends Controller | ||||
|                 'orderBy' | ||||
|             ])) | ||||
|             ->whereCompany($request->header('company')) | ||||
|             ->select('expenses.*', 'expense_categories.name') | ||||
|             ->select('expenses.*', 'expense_categories.name', 'users.name as user_name') | ||||
|             ->paginate($limit); | ||||
|  | ||||
|         return response()->json([ | ||||
| @ -76,6 +78,11 @@ class ExpensesController extends Controller | ||||
|         $expense = new Expense(); | ||||
|         $expense->notes = $request->notes; | ||||
|         $expense->expense_category_id = $request->expense_category_id; | ||||
|  | ||||
|         if ($request->has('user_id') && $request->user_id != null) { | ||||
|             $expense->user_id = $request->user_id; | ||||
|         } | ||||
|  | ||||
|         $expense->amount = $request->amount; | ||||
|         $expense->company_id = $request->header('company'); | ||||
|         $expense->expense_date = $expense_date; | ||||
| @ -138,6 +145,11 @@ class ExpensesController extends Controller | ||||
|         $expense->notes = $request->notes; | ||||
|         $expense->expense_category_id = $request->expense_category_id; | ||||
|         $expense->amount = $request->amount; | ||||
|  | ||||
|         if ($request->has('user_id') && $request->user_id != null) { | ||||
|             $expense->user_id = $request->user_id; | ||||
|         } | ||||
|  | ||||
|         $expense->expense_date = $expense_date; | ||||
|         $expense->save(); | ||||
|  | ||||
|  | ||||
| @ -9,6 +9,7 @@ use carbon\carbon; | ||||
| use Crater\MemberLoan; | ||||
| use Crater\Address; | ||||
| use Crater\Payment; | ||||
| use Crater\Expense; | ||||
| use Crater\Company; | ||||
| use Crater\Notifications\MailResetPasswordNotification; | ||||
| use Spatie\MediaLibrary\HasMedia\HasMedia; | ||||
| @ -105,6 +106,11 @@ class User extends Authenticatable implements HasMedia | ||||
|         return $this->hasMany(Address::class); | ||||
|     } | ||||
|  | ||||
|     public function expenses() | ||||
|     { | ||||
|         return $this->hasMany(Expense::class); | ||||
|     } | ||||
|  | ||||
|     public function billingAddress() | ||||
|     { | ||||
|         return $this->hasOne(Address::class)->where('type', Address::BILLING_TYPE); | ||||
|  | ||||
		Reference in New Issue
	
	Block a user