separation of tawarruq and onepercent
This commit is contained in:
@@ -0,0 +1,203 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services;
|
||||
|
||||
use App\Cawangan;
|
||||
use App\KadarUpah;
|
||||
use Illuminate\Http\Request as HttpRequest;
|
||||
use App\Support\OnePercent as OnePercentEngine;
|
||||
use App\Support\Tawarruq as TawarruqEngine;
|
||||
|
||||
class MasterServices
|
||||
{
|
||||
protected $cawangan;
|
||||
protected $cawangan_info;
|
||||
protected $engine;
|
||||
|
||||
public function __construct(String $kodcaw){
|
||||
$this->cawangan = $kodcaw;
|
||||
$this->cawangan_info = $this->getInfoCawangan($kodcaw);
|
||||
$this->engine = $this->getEngine($kodcaw);
|
||||
}
|
||||
|
||||
public function getInfoCawangan(String $kodcaw): Object{
|
||||
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$kodcaw)->first();
|
||||
|
||||
return $cawangan;
|
||||
}
|
||||
|
||||
public function getEngine(String $kodcaw){
|
||||
if ($this->cawangan_info['version'] == 'v1') {
|
||||
return new TawarruqEngine($kodcaw);
|
||||
|
||||
} else if ($this->cawangan_info['version'] == 'v2') {
|
||||
return new OnePercentEngine($kodcaw);
|
||||
} else {
|
||||
return new TawarruqEngine($kodcaw);
|
||||
}
|
||||
}
|
||||
|
||||
/* Start Gadaian */
|
||||
public function createGadai(HttpRequest $request){
|
||||
$response = $this->engine->createGadai($request);
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function createMarhunGadai($norujukan,HttpRequest $request){
|
||||
$response = $this->engine->createMarhunGadai($norujukan,$request);
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function kiraUpahTawarruq($kodcaw,$norujukan){
|
||||
$response = $this->engine->getUpahSebenar($norujukan);
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function kiraUpahRebet($kodcaw,$norujukan,$jeniskeuntungan){
|
||||
if($jeniskeuntungan == 'asal'){
|
||||
$tawarruq = new TawarruqEngine($this->cawangan);
|
||||
$response = $tawarruq->getUpahRebet($kodcaw,$norujukan);
|
||||
|
||||
}else{
|
||||
$tawarruq = new OnePercentEngine($this->cawangan);
|
||||
$response = $tawarruq->getUpahRebet($kodcaw,$norujukan);
|
||||
}
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function updateGadaiMarhunKaunter($kodcaw, $norujukan, HttpRequest $request){
|
||||
$response = $this->engine->updateGadaiMarhunKaunter($kodcaw,$norujukan,$request);
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
/* End Gadaian */
|
||||
|
||||
/* Start Penebusan */
|
||||
|
||||
public function tebusTawarruq($kodcaw,$norujukan){
|
||||
$response = $this->engine->tebusTawarruq($kodcaw,$norujukan);
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function hargaTebusTawarruq($kodcaw,$norujukan){
|
||||
$response = $this->engine->hargaTebusTawarruq($kodcaw,$norujukan);
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function kiraUpahRebetSebenar($kodcaw,$norujukan){
|
||||
$response = $this->engine->kiraUpahRebetSebenar($kodcaw,$norujukan);
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function upahTawarruq($kodcaw,$norujukan,$jeniskeuntungan){
|
||||
if($jeniskeuntungan == 'asal'){
|
||||
$tawarruq = new TawarruqEngine($this->cawangan);
|
||||
$response = $tawarruq->upahTawarruq($kodcaw,$norujukan,$jeniskeuntungan);
|
||||
|
||||
}else{
|
||||
$tawarruq = new OnePercentEngine($this->cawangan);
|
||||
$response = $tawarruq->upahTawarruq($kodcaw,$norujukan,$jeniskeuntungan);
|
||||
}
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function upahRebetTawarruq($kodcaw,$norujukan,$jeniskeuntungan){
|
||||
if($jeniskeuntungan == 'asal'){
|
||||
$tawarruq = new TawarruqEngine($this->cawangan);
|
||||
$response = $tawarruq->upahRebetTawarruq($kodcaw,$norujukan,$jeniskeuntungan);
|
||||
|
||||
}else{
|
||||
$tawarruq = new OnePercentEngine($this->cawangan);
|
||||
$response = $tawarruq->upahRebetTawarruq($kodcaw,$norujukan,$jeniskeuntungan);
|
||||
}
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function tebusSeparuhTawarruq($kodcaw,$norujukan,HttpRequest $request){
|
||||
$response = $this->engine->tebusSeparuhTawarruq($kodcaw,$norujukan,$request);
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function tebusNotTawarruq($kodcaw,$norujukan){
|
||||
$response = $this->engine->tebusNotTawarruq($kodcaw,$norujukan);
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function hargaTebusNotTawarruq($kodcaw,$norujukan){
|
||||
$response = $this->engine->hargaTebusNotTawarruq($kodcaw,$norujukan);
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function kiraUpahNotTawarruq($kodcaw,$norujukan){
|
||||
$response = $this->engine->kiraUpahNotTawarruq($kodcaw,$norujukan);
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function upahNotTawarruq($kodcaw,$norujukan){
|
||||
$response = $this->engine->upahNotTawarruq($kodcaw,$norujukan);
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function tebusSeparuhNotTawarruq($kodcaw,$norujukan,HttpRequest $request){
|
||||
$response = $this->engine->tebusSeparuhNotTawarruq($kodcaw,$norujukan,$request);
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
function rebet($kodcaw,$norujukan){
|
||||
$response = $this->engine->rebet($kodcaw,$norujukan);
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
function rebetselepastawarruq($kodcaw,$norujukan){
|
||||
$response = $this->engine->rebetselepastawarruq($kodcaw,$norujukan);
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function tebusUpdate($kodcaw,$norujukan,HttpRequest $request){
|
||||
$response = $this->engine->tebusUpdate($kodcaw,$norujukan,$request);
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function tebusUpdateAutoTawarruq($kodcaw,$norujukan,HttpRequest $request){
|
||||
$response = $this->engine->tebusUpdateAutoTawarruq($kodcaw,$norujukan,$request);
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function kiraupahUjrahOnePercent($kodcaw,$norujukan){
|
||||
$response = $this->engine->kiraupahUjrahOnePercent($kodcaw,$norujukan);
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function kiraupahUjrahOnePercentRebate($kodcaw,$norujukan){
|
||||
$response = $this->engine->kiraupahUjrahOnePercentRebate($kodcaw,$norujukan);
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
/* End Penebusan */
|
||||
|
||||
public function test(){
|
||||
$this->engine->test();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,81 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services;
|
||||
|
||||
use App\KadarUpah;
|
||||
|
||||
class OnePercentServices
|
||||
{
|
||||
|
||||
protected $maks_margin = 80;
|
||||
protected $one_percent = 1;
|
||||
|
||||
private function kiraanUjrah(float $nilaimarhun = 0.0,float $kadarujrah = 0.0,float $margin = 0.0){
|
||||
|
||||
//periksa adakah kadar ujrah ini diberi percentage
|
||||
if($kadarujrah >= 1){
|
||||
return;
|
||||
}
|
||||
|
||||
$ujrah = ($kadarujrah/100) * $nilaimarhun;
|
||||
$formula_margin = ($this->maks_margin - $margin) / $this->maks_margin;
|
||||
$ujrah_margin = $formula_margin * $kadarujrah;
|
||||
$rebate_ujrah = $nilaimarhun*($ujrah_margin/100);
|
||||
$ujrah_sebenar = $ujrah;
|
||||
|
||||
return $ujrah_sebenar;
|
||||
}
|
||||
|
||||
private function kiraanOnePercent(float $pembiayaan = 0.0){
|
||||
|
||||
//periksa adakah pembiayaan adalah null atau kosong.
|
||||
if($pembiayaan == 0 || $pembiayaan == null)
|
||||
return;
|
||||
|
||||
$onepercent = ($this->one_percent/100) * $pembiayaan;
|
||||
|
||||
|
||||
return $onepercent;
|
||||
}
|
||||
|
||||
public function kiraanUjrahSebenar(float $nilaimarhun = 0.0,float $kadarujrah = 0.0,float $margin = 0.0){
|
||||
|
||||
if($kadarujrah >= 1){
|
||||
return;
|
||||
}
|
||||
|
||||
$ujrah = ($kadarujrah/100) * $nilaimarhun;
|
||||
$formula_margin = ($this->maks_margin - $margin) / $this->maks_margin;
|
||||
$rebate_ujrah = $formula_margin * $ujrah;
|
||||
$ujrah_sebenar = $ujrah - $rebate_ujrah;
|
||||
|
||||
return $ujrah_sebenar;
|
||||
}
|
||||
|
||||
public function kiraanKeuntunganRebet(float $pembiayaan = 0.0,float $nilaimarhun = 0.0,float $kadarujrah = 0.0,float $margin = 0.0){
|
||||
|
||||
$onepercent = $this->kiraanOnePercent($pembiayaan);
|
||||
$ujrah_sebenar = $this->kiraanUjrahSebenar($nilaimarhun,$kadarujrah,$margin);
|
||||
|
||||
$keuntungan = $onepercent + $ujrah_sebenar;
|
||||
|
||||
return ['keuntungan' => $keuntungan,'onepercent' => $onepercent, 'ujrah' => $ujrah_sebenar];
|
||||
}
|
||||
|
||||
public function kiraanKeuntunganSebenar(float $pembiayaan = 0.0,float $nilaimarhun = 0.0,float $kadarujrah = 0.0,float $margin = 0.0){
|
||||
|
||||
$onepercent = $this->kiraanOnePercent($pembiayaan);
|
||||
$ujrah_sebenar = $this->kiraanUjrah($nilaimarhun,$kadarujrah,$margin);
|
||||
|
||||
$keuntungan = $onepercent + $ujrah_sebenar;
|
||||
|
||||
return ['keuntungan' => $keuntungan,'onepercent' => $onepercent, 'ujrah' => $ujrah_sebenar];
|
||||
}
|
||||
|
||||
public function getKadarUjrah(float $nilaimarhun = 0.0, $groupid) : Float{
|
||||
|
||||
$kadarujrah = KadarUpah::on('mysql7')->select('kadarujrah')->where([['min','<=',$nilaimarhun],['max','>=',$nilaimarhun]])->where('group_id',$groupid)->get()->toArray();
|
||||
|
||||
return isset($kadarujrah[0]) ? $kadarujrah[0]['kadarujrah'] : 0;
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services;
|
||||
|
||||
use App\KadarUpah;
|
||||
|
||||
class TawarruqServices
|
||||
{
|
||||
|
||||
protected $maks_margin = 80;
|
||||
protected $one_percent = 1;
|
||||
|
||||
private function getCalculation(){
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user