IsBillableAbstractClass
extends Model
in package
Uses
IsBillable, SoftDeletes
Table of Contents
- $billable_directly : bool
- $billable_hourly : bool
- $billable_hourly_cost : float
- $billable_monthly : bool
- $billable_monthly_cost : float
- $billable_multiplier : float
- $billable_one_time : bool
- $billable_one_time_cost : float
- $billable_per_usage : bool
- $billable_per_usage_cost : float
- $billable_upon_relation : bool
- $billable_upon_relation_class : string
- $billable_upon_relation_fk : string
- $deleted_at : Carbon
- $is_billable : bool
- $price_list_expires_at : int
- $attributes : array<string|int, mixed>
- Default attributes for the billable models.
- _isBillable() : bool
- This function is used to determinate if a model is ready to be billed.
- _isBillableDirectly() : bool
- This function is used to determinate if a model is ready to be billed.
- billingEntries() : MorphMany
- getBillableOwnerModel() : Model
- This function should be implemented by all models that are billable.
- getCustomerProduct() : CustomerProduct|null
- This function should be implemented by all models that are billable.
- getInvoiceItemDescription() : string
- This function should be implemented by all models that are billable.
- priceList() : BelongsTo
- priceListEntity() : MorphOne
- promotionsCustomers() : MorphMany
- _getUsage() : float
- Called by the custom attribute `usage`. This function must be overwritten by the class that should implement how usage is calculated
- billableHourly() : Attribute
- billableHourlyCost() : Attribute
- billableMonthly() : Attribute
- billableMonthlyCost() : Attribute
- billableMultiplier() : Attribute
- billableOneTime() : Attribute
- billableOneTimeCost() : Attribute
- billablePerUsage() : Attribute
- billablePerUsageCost() : Attribute
- billableUponRelation() : Attribute
- billableUponRelationClass() : Attribute
- billableUponRelationFk() : Attribute
- bootIsBillable() : void
- usage() : Attribute
- `usage` custom attribute (only getter).
Properties
$billable_directly
public
bool
$billable_directly
$billable_hourly
public
bool
$billable_hourly
$billable_hourly_cost
public
float
$billable_hourly_cost
$billable_monthly
public
bool
$billable_monthly
$billable_monthly_cost
public
float
$billable_monthly_cost
$billable_multiplier
public
float
$billable_multiplier
$billable_one_time
public
bool
$billable_one_time
$billable_one_time_cost
public
float
$billable_one_time_cost
$billable_per_usage
public
bool
$billable_per_usage
$billable_per_usage_cost
public
float
$billable_per_usage_cost
$billable_upon_relation
public
bool
$billable_upon_relation
$billable_upon_relation_class
public
string
$billable_upon_relation_class
$billable_upon_relation_fk
public
string
$billable_upon_relation_fk
$deleted_at
public
Carbon
$deleted_at
$is_billable
public
bool
$is_billable
$price_list_expires_at
public
int
$price_list_expires_at
$attributes
Default attributes for the billable models.
protected
array<string|int, mixed>
$attributes
= ['is_billable' => false, 'billable_directly' => false]
IMPORTANT! This should be redeclared if the chid class has its own default attributes.
Methods
_isBillable()
This function is used to determinate if a model is ready to be billed.
public
_isBillable([bool|null $originIsBillable = null ]) : bool
Should be overwritten by models that needs a custom logic. If a model do not specialize this function the provided parameter will be returned, otherwise the attribute of the model. IMPORTANT!!! In the specialized version of this function always check the provided parameter, as in some cases a model may have been set on is_billable = false
Parameters
- $originIsBillable : bool|null = null
Return values
bool —_isBillableDirectly()
This function is used to determinate if a model is ready to be billed.
public
_isBillableDirectly([bool $originIsBillableDirectly = null ]) : bool
Should be overwritten by models that needs a custom logic. If a model do not specialize this function the provided parameter will be returned, otherwise the attribute of the model. IMPORTANT!!! In the specialized version of this function always check the provided parameter, as in some cases a model may have been set on is_billable = false
Parameters
- $originIsBillableDirectly : bool = null
Return values
bool —billingEntries()
public
billingEntries() : MorphMany
Return values
MorphMany —getBillableOwnerModel()
This function should be implemented by all models that are billable.
public
abstract getBillableOwnerModel() : Model
It should return the reference to the main object which is the owner of the billable entity This SHOULD ALWAYS return a model, if there is no owner just return the model itself.
Return values
Model —getCustomerProduct()
This function should be implemented by all models that are billable.
public
abstract getCustomerProduct() : CustomerProduct|null
It should return the CustomerProduct related to the model, or null
Tags
Return values
CustomerProduct|null —getInvoiceItemDescription()
This function should be implemented by all models that are billable.
public
abstract getInvoiceItemDescription([array<string|int, mixed> $changes = [] ]) : string
It should return the description to be used in the invoice item
Parameters
- $changes : array<string|int, mixed> = []
Return values
string —priceList()
public
priceList() : BelongsTo
Return values
BelongsTo —priceListEntity()
public
priceListEntity() : MorphOne
Return values
MorphOne —promotionsCustomers()
public
promotionsCustomers() : MorphMany
Return values
MorphMany —_getUsage()
Called by the custom attribute `usage`. This function must be overwritten by the class that should implement how usage is calculated
protected
_getUsage() : float
Return values
float —billableHourly()
protected
billableHourly() : Attribute
Return values
Attribute —billableHourlyCost()
protected
billableHourlyCost() : Attribute
Return values
Attribute —billableMonthly()
protected
billableMonthly() : Attribute
Return values
Attribute —billableMonthlyCost()
protected
billableMonthlyCost() : Attribute
Return values
Attribute —billableMultiplier()
protected
billableMultiplier() : Attribute
Return values
Attribute —billableOneTime()
protected
billableOneTime() : Attribute
Return values
Attribute —billableOneTimeCost()
protected
billableOneTimeCost() : Attribute
Return values
Attribute —billablePerUsage()
protected
billablePerUsage() : Attribute
Return values
Attribute —billablePerUsageCost()
protected
billablePerUsageCost() : Attribute
Return values
Attribute —billableUponRelation()
protected
billableUponRelation() : Attribute
Return values
Attribute —billableUponRelationClass()
protected
billableUponRelationClass() : Attribute
Return values
Attribute —billableUponRelationFk()
protected
billableUponRelationFk() : Attribute
Return values
Attribute —bootIsBillable()
protected
static bootIsBillable() : void
Tags
Return values
void —usage()
`usage` custom attribute (only getter).
protected
usage() : Attribute
It returns the current usage of the entity for billable purpose.
Return values
Attribute —float Usage