ERP-API/app/Repositories/Accounting/AccountRepository.php

52 lines
1.2 KiB
PHP

<?php
namespace App\Repositories\Accounting;
use App\Models\Account;
class AccountRepository
{
public function list($params){
$limit = @$params["limit"] ?? 10;
$offset = @$params["offset"] ?? 0;
$sortColumn = @$params["sort"]["column"] ?? "id";
$sortDir = @$params["sort"]["dir"] ?? "desc";
return Account::skip($offset)
->orderBy($sortColumn, $sortDir)
->when(@$params["filter"], function ($query) use ($params) {
foreach ($params["filter"] as $filter) {
$query->where($filter["column"], $filter["query"]);
}
})
->paginate($limit);
}
public function create($params){
$params["password"] = "-";
$model = Account::create($params);
if (@$params["permissions"]){
$model->permissions()->sync($params["permissions"]);
}
return $model;
}
public function update($model, $params){
$model->update($params);
if (@$params["permissions"]){
$model->permissions()->sync($params["permissions"]);
}
return $model;
}
public function delete($model){
$model->delete();
}
}