| Server IP : 34.87.99.72 / Your IP : 216.73.217.31 Web Server : Apache/2.4.46 (Unix) OpenSSL/1.1.1n System : Linux zlock-bitnami-lamp-prod-v2-vm 4.19.0-16-cloud-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 User : bitnami ( 1000) PHP Version : 7.4.18 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /opt/bitnami/apache/htdocs/app/app/Http/Services/ |
Upload File : |
<?php
namespace App\Http\Services;
use App\Models\PartnerPackage;
use App\Models\PartnerPackageDetail;
use Auth;
use Illuminate\Validation\ValidationException;
use Queriplex;
class PartnerPackageDetailService
{
public function __construct()
{
}
public function partnerPackageDetailList(Array $request)
{
$partnerPackageDetail = PartnerPackageDetail::query();
// // filter
$partnerPackageDetail = Queriplex::make($partnerPackageDetail)
->withFilters($request, [
'id' => 'id',
'partner_package_id' => 'partner_package_id',
'activity' => function($query, $value){
$query->whereActivity($value);
},
])->apply();
// search
if(isset($request['search'])){
$allowed_search = [
'id',
'name',
];
$search_by = $request['searchBy'] ?? $allowed_search[0];
if(in_array($search_by,$allowed_search)){
$partnerPackageDetail->search($search_by,$request['search']);
}
}
// sort
if( isset($request['sortBy']) ){
$order_mode = (!isset($request['sortDesc']) || $request['sortDesc'] == true) ? 'DESC' : 'ASC';
switch ($request['sortBy']) {
case 'id':
$partnerPackageDetail->orderBy('id', $order_mode);
break;
}
}
$result = $partnerPackageDetail->paginate($request['itemsPerPage'] ?? null);
return $result;
}
public function partnerPackageDetailCreate(PartnerPackage $package)
{
$packageDetails = new PartnerPackageDetail();
$packageDetails->partner_package_id = $package->id;
$packageDetails->name = $package->name;
$packageDetails->profit_percentage = $package->profit_percentage;
$packageDetails->effective_from = $package->updated_at ?? $package->created_at;
$packageDetails->effective_to = now();
$packageDetails->save();
return $packageDetails;
}
}