Add cost/price/supplierid to service, update service report to show supplerid and overridden costs (if any)
This commit is contained in:
@@ -412,7 +412,9 @@ class ServiceController extends Controller
|
||||
'suspend_billing' => 'nullable|in:on',
|
||||
'recur_schedule' => ['required',Rule::in(collect(Invoice::billing_periods)->keys())],
|
||||
'invoice_next_at' => 'nullable|date',
|
||||
'price' => 'nullable|numeric',
|
||||
'price' => 'nullable|numeric|min:0', // Price we charge the client, if we dont charge supplied/price
|
||||
'cost' => 'nullable|numeric|min:0', // Price we are charged by supplier, if we arent charged supplier/price
|
||||
'supplierid' => 'nullable|string|min:1', // As used on invoices
|
||||
$o->product->category => 'array|min:1',
|
||||
]
|
||||
)
|
||||
@@ -456,6 +458,8 @@ class ServiceController extends Controller
|
||||
$o->suspend_billing = ($validated->get('suspend_billing') == 'on');
|
||||
$o->external_billing = ($validated->get('external_billing') == 'on');
|
||||
$o->price = $validated->get('price');
|
||||
$o->cost = $validated->get('cost');
|
||||
$o->supplierid = $validated->get('supplierid');
|
||||
|
||||
// Also update our service start_at date.
|
||||
// @todo We may want to make start_at/stop_at dynamic values calculated by the type records
|
||||
|
@@ -955,13 +955,14 @@ class Service extends Model implements IDs
|
||||
|
||||
/**
|
||||
* The amount we are charged for the client to have this service
|
||||
*
|
||||
* @return float
|
||||
*/
|
||||
public function billing_cost(): float
|
||||
{
|
||||
return is_null($this->cost)
|
||||
? $this->product->getBaseCostAttribute()
|
||||
: $this->cost;
|
||||
: $this->cost*Invoice::billing_change($this->product->type->billing_interval,$this->product->billing_interval);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1127,7 +1128,7 @@ class Service extends Model implements IDs
|
||||
|
||||
public function isContract(): bool
|
||||
{
|
||||
return $this->getContractEndAttribute()->greaterThan(Carbon::now());
|
||||
return $this->getContractEndAttribute() && $this->getContractEndAttribute()->greaterThan(Carbon::now());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -57,16 +57,6 @@ class Broadband extends Type implements ServiceUsage
|
||||
|
||||
/* ATTRIBUTES */
|
||||
|
||||
/**
|
||||
* @deprecated use $o->service_name;
|
||||
* @return mixed|string
|
||||
*/
|
||||
public function getNameAttribute()
|
||||
{
|
||||
abort(500,'deprecated - use $o->service_name');
|
||||
return $this->service_number ?: $this->service_address;
|
||||
}
|
||||
|
||||
/**
|
||||
* The type of technology used to provide this Internet Service
|
||||
*
|
||||
@@ -104,15 +94,14 @@ class Broadband extends Type implements ServiceUsage
|
||||
/* METHODS */
|
||||
|
||||
/**
|
||||
* Return the suppliers offering that this service is providing
|
||||
* Return the supplier's offering that this service is providing
|
||||
*
|
||||
* @return SupplierType
|
||||
* @todo This column provided_adsl_plan_id should either be deprecated or renamed.
|
||||
*/
|
||||
public function supplied(): SupplierType
|
||||
{
|
||||
return $this->provided_adsl_plan_id
|
||||
? SupplierBroadband::findOrFail($this->provided_adsl_plan_id)
|
||||
return $this->provided_supplier_broadband_id
|
||||
? SupplierBroadband::findOrFail($this->provided_supplier_broadband_id)
|
||||
: $this->service->offering->supplied;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user