Bring back some services logic to still needed by charges
This commit is contained in:
parent
c1080481ec
commit
2590997b1a
19
app/Http/Controllers/ResellerServicesController.php
Normal file
19
app/Http/Controllers/ResellerServicesController.php
Normal file
@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
use App\Models\Account;
|
||||
|
||||
class ResellerServicesController extends Controller
|
||||
{
|
||||
public function services(Request $request,Account $o)
|
||||
{
|
||||
return $o->services
|
||||
->filter(function($item) use ($request) {
|
||||
return $item->active || ($item->id == $request->include);
|
||||
});
|
||||
}
|
||||
}
|
@ -33,6 +33,7 @@ use App\Traits\SiteID;
|
||||
* + billing_interval_string : The period that this service is billed for by default as a name
|
||||
* + billed_to : When this service has been billed to // @todo rename all references to invoice_to
|
||||
* + category : The type of service this is, eg: broadband, phone
|
||||
* + category_name : The type of service this is, eg: Broadband, Telephone (in human friendly)
|
||||
* + contract_term : The term that this service must be active
|
||||
* + contract_end : The date that the contract ends for this service
|
||||
* + name : Service short name with service address
|
||||
@ -65,6 +66,27 @@ class Service extends Model implements IDs
|
||||
'stop_at',
|
||||
];
|
||||
|
||||
protected $appends = [
|
||||
'category_name',
|
||||
'name_short',
|
||||
];
|
||||
|
||||
protected $visible = [
|
||||
// 'account_name',
|
||||
// 'admin_service_id_url',
|
||||
'active',
|
||||
'category_name',
|
||||
// 'billing_price',
|
||||
// 'data_orig',
|
||||
'id',
|
||||
'name_short',
|
||||
// 'next_invoice',
|
||||
// 'product.name',
|
||||
// 'service_id',
|
||||
// 'service_id_url',
|
||||
// 'status',
|
||||
];
|
||||
|
||||
protected $with = [
|
||||
'invoice_items',
|
||||
'product.type.supplied',
|
||||
@ -483,6 +505,16 @@ class Service extends Model implements IDs
|
||||
return number_format($this->getBillingChargeAttribute()/Arr::get(Invoice::billing_periods,$this->recur_schedule.'.interval',1),2);
|
||||
}
|
||||
|
||||
public function getCategoryAttribute(): string
|
||||
{
|
||||
return $this->product->category;
|
||||
}
|
||||
|
||||
public function getCategoryNameAttribute(): string
|
||||
{
|
||||
return $this->product->category_name;
|
||||
}
|
||||
|
||||
/**
|
||||
* The date the contract ends
|
||||
*
|
||||
|
@ -284,7 +284,7 @@
|
||||
success: function(data) {
|
||||
$("select[name=service_id]").empty();
|
||||
$.each(data,function(i,j) {
|
||||
var row = '<option value="' + j.id + '" '+(j.id == {{ $o->service_id ?: 'null' }} ? 'selected' : '')+'>' + j.id + ': ' + j.product_name + ' ' + j.name_short + ((! j.active) ? ' **' : '') +'</option>';
|
||||
var row = '<option value="' + j.id + '" '+(j.id == {{ $o->service_id ?: 'null' }} ? 'selected' : '')+'>' + j.id + ': ' + j.category_name + ' ' + j.name_short + ((! j.active) ? ' **' : '') +'</option>';
|
||||
$(row).appendTo("select[name=service_id]");
|
||||
});
|
||||
|
||||
|
@ -22,8 +22,8 @@
|
||||
@foreach ($x as $co)
|
||||
<tr>
|
||||
<td><a href="{{ url('a/charge/addedit',[$co->id]) }}">{{ $co->id }}</a></td>
|
||||
<td>{{ $co->date_orig->format('Y-m-d') }}</td>
|
||||
<td>{{ $co->charge_date->format('Y-m-d') }}</td>
|
||||
<td>{{ $co->created_at->format('Y-m-d') }}</td>
|
||||
<td>{{ $co->charged_at ? $co->charged_at->format('Y-m-d') : '-' }}</td>
|
||||
<td>{{ $co->service->sid }}</td>
|
||||
<td>{{ $co->type }}</td>
|
||||
<td>{{ $co->description }}</td>
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
use App\Http\Controllers\{CheckoutController,ProductController};
|
||||
use App\Http\Controllers\{CheckoutController,ProductController,ResellerServicesController};
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@ -18,6 +18,12 @@ Route::group(['middleware'=>['auth:api','role:wholesaler']], function() {
|
||||
Route::get('a/supplier_products',[ProductController::class,'api_supplier_products']);
|
||||
});
|
||||
|
||||
// Reseller API calls
|
||||
Route::group(['middleware'=>['auth:api','role:reseller']], function() {
|
||||
Route::get('/r/services/{o}',[ResellerServicesController::class,'services'])
|
||||
->where('o','[0-9]+');
|
||||
});
|
||||
|
||||
Route::group(['middleware'=>'auth:api'], function() {
|
||||
Route::post('/u/checkout/fee/{o}',[CheckoutController::class,'fee'])
|
||||
->where('o','[0-9]+');
|
||||
|
Loading…
Reference in New Issue
Block a user