Files
api_arrahn/app/Services/Transaction/AnsuranServices.php
T
2024-01-10 10:11:25 +08:00

130 lines
4.6 KiB
PHP

<?php
namespace App\Services\Transaction;
use App\Audit;
use App\Gadai;
use App\Tunai;
use App\Transaction;
use App\TransaksiKeuntungan;
use App\Cawangan;
use App\TransaksiGadai;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
class AnsuranServices
{
/*
//////////////
/// NOTED ///
////////////
1. Pembaharuan untuk Hapus Ansuran.
*/
protected $cawangan = 'KB2';
public function __construct($kodcaw){
$this->cawangan = $kodcaw;
}
public function delete(Request $request): String{
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$this->cawangan)->first();
$tarikh_request = new Carbon($request->tarikh);
$tarikh = Carbon::now();
$harisemasa = $tarikh->toDateString();
if($harisemasa !== $tarikh_request->toDateString()){
return 'date not equal';
}
$transaction_gadai = TransaksiGadai::on('mysql7')->where('id',$request->tg_id)->first();
$transaction = Transaction::on('mysql7')->where('id',$transaction_gadai['transaction_id'])->first();
if($transaction['teller'] != $request->teller){
return 'wrong teller';
}
try{
DB::connection('mysql7')->transaction(function () use($cawangan,$request,$harisemasa,$transaction,$transaction_gadai){
try{
DB::connection($cawangan['mysql'])->transaction(function () use($cawangan,$request,$transaction_gadai,$harisemasa,$transaction){
Gadai::on($cawangan['mysql'])->where('norujukan',$request->norujukan)->update(array(
'percentpinj' => $transaction_gadai['percentpinj'],
'bakipjm' => $transaction_gadai['bakipjm'],
'tempoh' => $transaction_gadai['tempoh'],
't_update' => $transaction_gadai['t_update'],
'bakihargajualan' => $transaction_gadai['bakihargajualan'],
'tempohbayar' => $transaction_gadai['tempohbayar'],
'lelong_tawarruq' => $transaction_gadai['lelong_tawarruq'],
'margin_semasa' => $transaction_gadai['margin_semasa'],
'tunggakanujrah' => $transaction_gadai['tunggakanujrah'],
'tunggakanonepercent' => $transaction_gadai['tunggakanonepercent'],
));
$tunai = Tunai::on($cawangan['mysql'])->where('kodlaluan',$request->teller)->where('tarikh',$harisemasa)->first();
$total = $tunai['masuk'] - $transaction['duit_masuk'];
$bakiakhir = $tunai['bakiawal'] - $tunai['keluar'] + $total + $tunai['tambah'] - $tunai['serahan'];
Tunai::on($cawangan['mysql'])->where('tarikh',$harisemasa)->where('kodlaluan',$request->teller)->update(['masuk' => $total,'baki' => $bakiakhir]);
});
}catch(\Exception $e){
DB::connection('mysql7')->rollBack();
Log::debug($e->getMessage());
return 'error';
}
Transaction::on('mysql7')->where('id',$transaction_gadai['transaction_id'])->delete();
TransaksiKeuntungan::on('mysql7')->where('id',$transaction_gadai['transaksiupah_id'])->delete();
TransaksiGadai::on('mysql7')->where('id',$request->tg_id)->update(array(
'softDelete' => 1,
));
return 'success';
});
}catch(\Exception $error){
DB::connection($cawangan['mysql'])->rollBack();
DB::connection('mysql7')->rollBack();
Log::debug($error->getMessage());
return 'error';
}
return 'success';
// $audit = new Audit();
// $audit->users = $request->teller;
// $audit->actions = 'Hapus Ansuran';
// $audit->norujukan = $norujukan;
// $audit->new_data = $new_data;
// $audit->old_data = $old_data;
// $audit->kodcaw = $kodcaw;
// $audit->created_at = $current;
// $audit->updated_at = $current;
// $audit->save();
}
public function getLatestAdvanceWithoutDelete(Request $request){
$tarikh = Carbon::now();
$latest = TransaksiGadai::on('mysql7')->whereDate('created_at',$tarikh->toDateString())->where('norujukan',$request->norujukan)->where('softDelete',0)->latest()->first();
return $latest;
}
}