63 lines
1.3 KiB
PHP
63 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\InvoiceRule;
|
|
|
|
use App\InvoiceRuleInterface;
|
|
|
|
class PostReplacement implements InvoiceRuleInterface
|
|
{
|
|
public function getID()
|
|
{
|
|
return 'post_replacement';
|
|
}
|
|
|
|
public function compute($criteria, &$total)
|
|
{
|
|
$stype = $criteria->getServiceType();
|
|
|
|
$items = [];
|
|
|
|
if ($stype == $this->getID())
|
|
{
|
|
$fee = $this->getServiceTypeFee();
|
|
|
|
$qty = 1;
|
|
$items[] = [
|
|
'service_type' => $this->getID(),
|
|
'qty' => $qty,
|
|
'title' => $this->getServiceTitle(),
|
|
'price' => $fee,
|
|
];
|
|
|
|
$qty_price = bcmul($fee, $qty, 2);
|
|
$total['total_price'] = bcadd($total['total_price'], $qty_price, 2);
|
|
}
|
|
|
|
return $items;
|
|
}
|
|
|
|
public function getServiceTypeFee()
|
|
{
|
|
// TODO: we need to to put this somewhere like in .env
|
|
// so that if any chanages are to be made, we just edit the file
|
|
// instead of the code
|
|
return 0;
|
|
}
|
|
|
|
public function validatePromo($criteria, $promo_id)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
public function validateInvoiceItems($criteria, $invoice_items)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
protected function getServiceTitle()
|
|
{
|
|
$title = 'Battery replacement';
|
|
|
|
return $title;
|
|
}
|
|
}
|