Add a separate service fee for motolite users for jumpstart. #798
This commit is contained in:
parent
06dc8eae7b
commit
c8e2c02be1
1 changed files with 34 additions and 25 deletions
|
|
@ -68,18 +68,8 @@ class Jumpstart implements InvoiceRuleInterface
|
||||||
|
|
||||||
public function getServiceTypeFee($source, CustomerVehicle $cv)
|
public function getServiceTypeFee($source, CustomerVehicle $cv)
|
||||||
{
|
{
|
||||||
// check the source of JO
|
// get the service fee code, depending on the JO source and if customer vehicle has a motolite battery
|
||||||
// (1) if from app, service fee is 0 if motolite user. jumpstart fee for app if non-motolite user.
|
$code = $this->getServiceFeeCode($cv, $source);
|
||||||
// (2) any other source, jumpstart fees are charged whether motolite user or not
|
|
||||||
if ($source == TransactionOrigin::MOBILE_APP)
|
|
||||||
{
|
|
||||||
if ($cv->hasMotoliteBattery())
|
|
||||||
$code = 'motolite_user_service_fee';
|
|
||||||
else
|
|
||||||
$code = 'jumpstart_fee_mobile_app';
|
|
||||||
}
|
|
||||||
else
|
|
||||||
$code = 'jumpstart_fee';
|
|
||||||
|
|
||||||
$fee = $this->em->getRepository(ServiceOffering::class)->findOneBy(['code' => $code]);
|
$fee = $this->em->getRepository(ServiceOffering::class)->findOneBy(['code' => $code]);
|
||||||
|
|
||||||
|
|
@ -110,20 +100,10 @@ class Jumpstart implements InvoiceRuleInterface
|
||||||
if ($item_type == null)
|
if ($item_type == null)
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
// find the service offering
|
// get the service fee code, depending on the JO source and if customer vehicle has a motolite battery
|
||||||
// check the source of JO
|
$code = $this->getServiceFeeCode($cv, $source);
|
||||||
// (1) if from app, service fee is 0 if motolite user. jumpstart fee for app if non-motolite user.
|
|
||||||
// (2) any other source, jumpstart fees are charged whether motolite user or not
|
|
||||||
if ($source == TransactionOrigin::MOBILE_APP)
|
|
||||||
{
|
|
||||||
if ($cv->hasMotoliteBattery())
|
|
||||||
$code = 'motolite_user_service_fee';
|
|
||||||
else
|
|
||||||
$code = 'jumpstart_fee_mobile_app';
|
|
||||||
}
|
|
||||||
else
|
|
||||||
$code = 'jumpstart_fee';
|
|
||||||
|
|
||||||
|
// find the service offering
|
||||||
$service = $this->em->getRepository(ServiceOffering::class)->findOneBy(['code' => $code]);
|
$service = $this->em->getRepository(ServiceOffering::class)->findOneBy(['code' => $code]);
|
||||||
|
|
||||||
// check if service is null. If null, return null
|
// check if service is null. If null, return null
|
||||||
|
|
@ -144,4 +124,33 @@ class Jumpstart implements InvoiceRuleInterface
|
||||||
|
|
||||||
return $title;
|
return $title;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function getServiceFeeCode(CustomerVehicle $cv, $source)
|
||||||
|
{
|
||||||
|
// check the source of JO
|
||||||
|
// (1) if from app, service fee is 0 if motolite user. jumpstart fee for app if non-motolite user.
|
||||||
|
// (2) any other source, jumpstart fees are charged whether motolite user or not. Service fees for non-motolite
|
||||||
|
// and motolite users are now different (used to be the same)
|
||||||
|
if ($source == TransactionOrigin::MOBILE_APP)
|
||||||
|
{
|
||||||
|
if ($cv->hasMotoliteBattery())
|
||||||
|
$code = 'motolite_user_service_fee';
|
||||||
|
else
|
||||||
|
$code = 'jumpstart_fee_mobile_app';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
error_log('hotline');
|
||||||
|
if ($cv->hasMotoliteBattery())
|
||||||
|
{
|
||||||
|
error_log('has motolite battery');
|
||||||
|
$code = 'motolite_user_jumpstart_fee';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$code = 'jumpstart_fee';
|
||||||
|
}
|
||||||
|
|
||||||
|
return $code;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue