Files
api_arrahn/app/Http/Controllers/BackupStokAuditController.php
T
2023-02-10 18:36:46 +08:00

393 lines
14 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Bank;
use App\Cawangan;
use App\Gadai;
use App\StokAudit1;
use App\StokAudit2;
use App\StokAudit3;
use App\StokAudit4;
use App\StokAudit5;
use App\StokAudit6;
use App\StokAudit7;
use App\StokAudit8;
use App\StokAudit9;
use App\StokAudit10;
use App\StokAudit11;
use App\StokAudit12;
use Carbon\Carbon;
use Illuminate\Http\Request;
class BackupStokAuditController extends Controller
{
public function backupStokAudit(Request $request){
if($request->zone == 'all'){
$cawangan = Cawangan::on('mysql7')->get();
}else{
$cawangan = Cawangan::on('mysql7')->where('zone',$request->zone)->get();
}
$tarikh = Carbon::now();
$tarikh = $tarikh->subDay(1);
$month = $tarikh->month;
$year = $tarikh->year;
foreach($cawangan as $cawangan_mysql){
$all_gadai = Gadai::on($cawangan_mysql['mysql'])
->where([['tagpalsu','=',0],['sttebus','=','']])
->orderBy('t_gadai', 'ASC')
->orderBy('sirig', 'ASC')->get();
$data = [];
foreach($all_gadai as $gadai){
$tarikh_gadai = Carbon::parse($gadai['t_gadai']. ' 00:00:00');
$current = Carbon::now();
$current = $current->subDay(1);
$tahun_gadai = $tarikh_gadai->year;
$bulan_gadai = $tarikh_gadai->month;
$hari_gadai = $tarikh_gadai->day;
$tahun_semasa = $current->year;
$bulan_semasa = $current->month;
$hari_semasa = $current->day;
if($hari_semasa >= $hari_gadai){
$beza_hari = $hari_semasa - $hari_gadai + 1;
}else if($hari_semasa < $hari_gadai){
$bulan_semasa = $bulan_semasa - 1;
$beza_hari = ($hari_semasa + 30) - $hari_gadai + 1;
}
$extensivemonth_gadai = 0;
if($beza_hari >= 1 && $beza_hari <= 15){
$extensivemonth_gadai = 0.5;
}else if($beza_hari >= 16){
$extensivemonth_gadai = 1;
}else{
$extensivemonth_gadai = 0;
}
$beza_tahun = $tahun_semasa - $tahun_gadai;
$beza_bulan = ($bulan_semasa + ($beza_tahun * 12)) - $bulan_gadai;
$tempoh_gadai = $beza_bulan + $extensivemonth_gadai;
$upah_semasa = $this->kiraupahTawarruqStokAudit($tempoh_gadai,$gadai['tempohbayar'],$gadai['kadarupah'],$gadai['bakipjm']);
Gadai::on($cawangan_mysql['mysql'])->where('norujukan','=',$gadai['norujukan'])->update(array(
'jbg' => $tempoh_gadai,
'tempoh' => $tempoh_gadai,
'tunggakan' => $upah_semasa
));
$data_gadai = [
'tahun' => $year,
'bulan' => $month,
'norujukan' => $gadai['norujukan'],
'tempoh' => $tempoh_gadai,
'nokp' => $gadai['nokp'],
'berat' => $gadai['berat'],
'nilaimarhun' => $gadai['nilaimarhun'],
'pinjaman' => $gadai['pinjaman'],
'bakipjm' => $gadai['bakipjm'],
'kadarupah' => $gadai['kadarupah'],
'tempohblmbyar' => $gadai['tempoh'] - $gadai['tempohbayar'],
'upahblmbyar' => $upah_semasa,
'lanjutan' => $gadai['lelong_tawarruq']
];
array_push($data,$data_gadai);
}
if($month == 1){
foreach (array_chunk($data,1000) as $t)
{
StokAudit1::on($cawangan_mysql['mysql'])->insert($t);
}
}elseif($month == 2){
foreach (array_chunk($data,1000) as $t)
{
StokAudit2::on($cawangan_mysql['mysql'])->insert($t);
}
}elseif($month == 3){
foreach (array_chunk($data,1000) as $t)
{
StokAudit3::on($cawangan_mysql['mysql'])->insert($t);
}
}elseif($month == 4){
foreach (array_chunk($data,1000) as $t)
{
StokAudit4::on($cawangan_mysql['mysql'])->insert($t);
}
}elseif($month == 5){
foreach (array_chunk($data,1000) as $t)
{
StokAudit5::on($cawangan_mysql['mysql'])->insert($t);
}
}elseif($month == 6){
foreach (array_chunk($data,1000) as $t)
{
StokAudit6::on($cawangan_mysql['mysql'])->insert($t);
}
}elseif($month == 7){
foreach (array_chunk($data,1000) as $t)
{
StokAudit7::on($cawangan_mysql['mysql'])->insert($t);
}
}elseif($month == 8){
foreach (array_chunk($data,1000) as $t)
{
StokAudit8::on($cawangan_mysql['mysql'])->insert($t);
}
}elseif($month == 9){
foreach (array_chunk($data,1000) as $t)
{
StokAudit9::on($cawangan_mysql['mysql'])->insert($t);
}
}elseif($month == 10){
foreach (array_chunk($data,1000) as $t)
{
StokAudit10::on($cawangan_mysql['mysql'])->insert($t);
}
}elseif($month == 11){
foreach (array_chunk($data,1000) as $t)
{
StokAudit11::on($cawangan_mysql['mysql'])->insert($t);
}
}elseif($month == 12){
foreach (array_chunk($data,1000) as $t)
{
StokAudit12::on($cawangan_mysql['mysql'])->insert($t);
}
}
}
return 'success';
}
public function backupStokAuditProblem(Request $request){
// if($request->zone == 'all'){
// $cawangan = Cawangan::on('mysql7')->get();
// }else{
// $cawangan = Cawangan::on('mysql7')->where('zone',$request->zone)->get();
// }
$cawangan = Cawangan::on('mysql7')->where('kodcaw',$request->kodcaw)->first();
// $tarikh = Carbon::now();
// $tarikh = $tarikh->subDay(1);
$tarikh = Carbon::parse($request->dateProblem . ' 00:00:00');
$month = $tarikh->month;
$year = $tarikh->year;
$all_gadai = Gadai::on($cawangan['mysql'])
->where([['tagpalsu','=',0],['sttebus','=','']])
->orderBy('t_gadai', 'ASC')
->orderBy('sirig', 'ASC')->get();
$data = [];
foreach($all_gadai as $gadai){
$tarikh_gadai = Carbon::parse($gadai['t_gadai']. ' 00:00:00');
// $current = Carbon::now();
// $current = $current->subDay(1);
$current = Carbon::parse($request->dateProblem . ' 00:00:00');
$tahun_gadai = $tarikh_gadai->year;
$bulan_gadai = $tarikh_gadai->month;
$hari_gadai = $tarikh_gadai->day;
$tahun_semasa = $current->year;
$bulan_semasa = $current->month;
$hari_semasa = $current->day;
if($hari_semasa >= $hari_gadai){
$beza_hari = $hari_semasa - $hari_gadai + 1;
}else if($hari_semasa < $hari_gadai){
$bulan_semasa = $bulan_semasa - 1;
$beza_hari = ($hari_semasa + 30) - $hari_gadai + 1;
}
$extensivemonth_gadai = 0;
if($beza_hari >= 1 && $beza_hari <= 15){
$extensivemonth_gadai = 0.5;
}else if($beza_hari >= 16){
$extensivemonth_gadai = 1;
}else{
$extensivemonth_gadai = 0;
}
$beza_tahun = $tahun_semasa - $tahun_gadai;
$beza_bulan = ($bulan_semasa + ($beza_tahun * 12)) - $bulan_gadai;
$tempoh_gadai = $beza_bulan + $extensivemonth_gadai;
$upah_semasa = $this->kiraupahTawarruqStokAudit($tempoh_gadai,$gadai['tempohbayar'],$gadai['kadarupah'],$gadai['bakipjm']);
Gadai::on($cawangan['mysql'])->where('norujukan','=',$gadai['norujukan'])->update(array(
'jbg' => $tempoh_gadai,
'tempoh' => $tempoh_gadai,
'tunggakan' => $upah_semasa
));
$data_gadai = [
'tahun' => $year,
'bulan' => $month,
'norujukan' => $gadai['norujukan'],
'tempoh' => $tempoh_gadai,
'nokp' => $gadai['nokp'],
'berat' => $gadai['berat'],
'nilaimarhun' => $gadai['nilaimarhun'],
'pinjaman' => $gadai['pinjaman'],
'bakipjm' => $gadai['bakipjm'],
'kadarupah' => $gadai['kadarupah'],
'tempohblmbyar' => $gadai['tempoh'] - $gadai['tempohbayar'],
'upahblmbyar' => $upah_semasa,
'lanjutan' => $gadai['lelong_tawarruq']
];
array_push($data,$data_gadai);
}
if($month == 1){
foreach (array_chunk($data,1000) as $t)
{
StokAudit1::on($cawangan['mysql'])->insert($t);
}
}elseif($month == 2){
foreach (array_chunk($data,1000) as $t)
{
StokAudit2::on($cawangan['mysql'])->insert($t);
}
}elseif($month == 3){
foreach (array_chunk($data,1000) as $t)
{
StokAudit3::on($cawangan['mysql'])->insert($t);
}
}elseif($month == 4){
foreach (array_chunk($data,1000) as $t)
{
StokAudit4::on($cawangan['mysql'])->insert($t);
}
}elseif($month == 5){
foreach (array_chunk($data,1000) as $t)
{
StokAudit5::on($cawangan['mysql'])->insert($t);
}
}elseif($month == 6){
foreach (array_chunk($data,1000) as $t)
{
StokAudit6::on($cawangan['mysql'])->insert($t);
}
}elseif($month == 7){
foreach (array_chunk($data,1000) as $t)
{
StokAudit7::on($cawangan['mysql'])->insert($t);
}
}elseif($month == 8){
foreach (array_chunk($data,1000) as $t)
{
StokAudit8::on($cawangan['mysql'])->insert($t);
}
}elseif($month == 9){
foreach (array_chunk($data,1000) as $t)
{
StokAudit9::on($cawangan['mysql'])->insert($t);
}
}elseif($month == 10){
foreach (array_chunk($data,1000) as $t)
{
StokAudit10::on($cawangan['mysql'])->insert($t);
}
}elseif($month == 11){
foreach (array_chunk($data,1000) as $t)
{
StokAudit11::on($cawangan['mysql'])->insert($t);
}
}elseif($month == 12){
foreach (array_chunk($data,1000) as $t)
{
StokAudit12::on($cawangan['mysql'])->insert($t);
}
}
// foreach($cawangan as $cawangan_mysql){
// }
return 'success';
}
public function kiraupahTawarruqStokAudit($tempoh,$tempohbayar,$kadarupah,$bakipinjaman){
$bilang_bln = $tempoh - $tempohbayar;
if($bilang_bln > 12){
$bilang_bln = 12;
}
$upahsemasa_raw = $bilang_bln * (($kadarupah/100 )* $bakipinjaman);
$upah_semasa_round = number_format($upahsemasa_raw,2);
$upah_semasa = substr($upah_semasa_round, 0, -1);
// $upah_semasa = floatval(preg_replace('/[^\d.]/', '', $upah_semasa));
if(strpos($upah_semasa,',')){
$upah_semasa = str_replace(',','',$upah_semasa);
}
return $upah_semasa;
}
public function LaporanAuditBackdate(Request $request)
{
$cawangan = Cawangan::on('mysql7')->where('kodcaw','=',$request->kodcaw)->first();
$bulan = $request->bulan;
$tahun = $request->tahun;
if($bulan == 1){
$audit = StokAudit1::on($cawangan['mysql'])->where('tahun',$tahun);
}elseif($bulan == 2){
$audit = StokAudit2::on($cawangan['mysql'])->where('tahun',$tahun);
}elseif($bulan == 3){
$audit = StokAudit3::on($cawangan['mysql'])->where('tahun',$tahun);
}elseif($bulan == 4){
$audit = StokAudit4::on($cawangan['mysql'])->where('tahun',$tahun);
}elseif($bulan == 5){
$audit = StokAudit5::on($cawangan['mysql'])->where('tahun',$tahun);
}elseif($bulan == 6){
$audit = StokAudit6::on($cawangan['mysql'])->where('tahun',$tahun);
}elseif($bulan == 7){
$audit = StokAudit7::on($cawangan['mysql'])->where('tahun',$tahun);
}elseif($bulan == 8){
$audit = StokAudit8::on($cawangan['mysql'])->where('tahun',$tahun);
}elseif($bulan == 9){
$audit = StokAudit9::on($cawangan['mysql'])->where('tahun',$tahun);
}elseif($bulan == 10){
$audit = StokAudit10::on($cawangan['mysql'])->where('tahun',$tahun);
}elseif($bulan == 11){
$audit = StokAudit11::on($cawangan['mysql'])->where('tahun',$tahun);
}elseif($bulan == 12){
$audit = StokAudit12::on($cawangan['mysql'])->where('tahun',$tahun);
}
$rekodaudit = $audit->get();
$totalrekod = $audit->sum('pinjaman');
$totalberat = $audit->sum('berat');
$totalnilaimarhun = $audit->sum('nilaimarhun');
$totalpinjaman = $audit->sum('pinjaman');
$totalbakipjm = $audit->sum('bakipjm');
$totaltunggakan = $audit->sum('upahblmbyar');
$arrayrekod = ['rekod' => $rekodaudit, 'total' => $totalrekod,'totalberat' => $totalberat,'totalnilaimarhun' => $totalnilaimarhun,'totalpinjaman'=>$totalpinjaman,'totalbakipjm'=>$totalbakipjm,'totaltunggakan'=>$totaltunggakan];
if(sizeof($rekodaudit) == 0){
return response()->json('failed',200);
}else{
return response()->json($arrayrekod,200);
}
}
}