Documentation

AbstractBillableCloudModel extends IsBillableAbstractClass
in package
Uses IsCloudModel, LogsActivityAllDirty

Table of Contents

$activityLogName  : string
$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
$error_at  : Carbon
$id  : int
$is_billable  : bool
$openStackActivityLogName  : string
$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.
belongsToDefaultDomain()  : bool
This function will return true if the model is under the default domain, false otherwise
billingEntries()  : MorphMany
getActivitylogOptions()  : LogOptions
Specifies which model properties should be logged in the activy log
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.
isOwner()  : bool
isReadyToInsert()  : bool
Check if the model is consistent to be updated.
isReadyToUpdate()  : bool
Check if the model is consistent to be inserted and created
priceList()  : BelongsTo
priceListEntity()  : MorphOne
promotionsCustomers()  : MorphMany
retrieveDomain()  : Domain
This function will traverse all model relation up to the Domain
_getUsage()  : float
Called by the custom attribute `usage`. This function must be overwritten by the class that should implement how usage is calculated
_isReadyToInsert()  : bool
Check if the model is consistent to be updated.
_isReadyToUpdate()  : bool
Check if the model is consistent to be inserted and created
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

$openStackActivityLogName

public static string $openStackActivityLogName = 'openstack'

$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

belongsToDefaultDomain()

This function will return true if the model is under the default domain, false otherwise

public belongsToDefaultDomain() : bool
Tags
throws
NotImplementedException
Return values
bool

billingEntries()

public billingEntries() : MorphMany
Return values
MorphMany

getActivitylogOptions()

Specifies which model properties should be logged in the activy log

public getActivitylogOptions() : LogOptions
Return values
LogOptions

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

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

isReadyToInsert()

Check if the model is consistent to be updated.

public isReadyToInsert() : bool
Tags
throws
ReporterException
Return values
bool

true if the model is ready to be updated. The return type is just for convenience cause the method throws an exception

isReadyToUpdate()

Check if the model is consistent to be inserted and created

public isReadyToUpdate() : bool
Tags
throws
ReporterException
Return values
bool

true if the model is ready to be updated. The return type is just for convenience cause the method throws an exception

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

_isReadyToInsert()

Check if the model is consistent to be updated.

protected abstract _isReadyToInsert() : bool
Tags
throws
ReporterException

a consistency check exception

Return values
bool

true if the model is ready to be updated. The return type is just for convenience cause the method throws an exception

_isReadyToUpdate()

Check if the model is consistent to be inserted and created

protected abstract _isReadyToUpdate() : bool
Tags
throws
ReporterException

a consistency check exception

Return values
bool

true if the model is ready to be updated. The return type is just for convenience cause the method throws an exception

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

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

Search results