123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- <?php
-
- namespace App\Http\Controllers\Api\Export;
-
- use Illuminate\Http\Request;
- use App\Http\Controllers\Api\BaseController;
- use Carbon\Carbon;
-
- use App\Model\Module\Compound;
- use App\Model\Module\ReportEnforcer;
- use App\Model\Staff;
- use App\Model\StaffDetail;
- use App\Model\Module\Department;
-
- class CalculateReportCurrentCompound extends BaseController
- {
- private function jumlah_kompaun_keluar($year, $month, $jabatan){
- $dateS = Carbon::createFromFormat('Y-m-d', $year.'-'.$month.'-01');
- $start = $dateS->copy()->startOfMonth();
- $end = $dateS->copy()->endOfMonth();
-
- $amaunt_kompaun_keluar = 0;
-
- $compound = Compound::whereBetween('created_at', array($start, $end))->where('jbkod', $jabatan)->get();
- foreach ($compound as $key => $c) {
-
- $amaunt_kompaun_keluar = $amaunt_kompaun_keluar + floatval($c->jumlah_asal_kompaun);
-
- }
- return number_format($amaunt_kompaun_keluar, 2, '.', '');
- }
-
- private function jumlah_kompaun_kurang($year, $month, $jabatan){
- $dateS = Carbon::createFromFormat('Y-m-d', $year.'-'.$month.'-01');
- $start = $dateS->copy()->startOfMonth();
- $end = $dateS->copy()->endOfMonth();
-
- $amaun_kurang = 0;
- $compound = Compound::whereBetween('created_at', array($start, $end))->where('jbkod', $jabatan)->get();
- foreach ($compound as $key => $c) {
-
- if($c->jumlah_kemaskini_kompaun != ''){
- $amaun_kurang = $amaun_kurang + floatval($c->jumlah_kemaskini_kompaun);
- }
-
- }
-
- return number_format($amaun_kurang, 2, '.', '');
- }
-
- private function jumlah_kompaun_kutipan($year, $month, $jabatan){
- $dateS = Carbon::createFromFormat('Y-m-d', $year.'-'.$month.'-01');
- $start = $dateS->copy()->startOfMonth();
- $end = $dateS->copy()->endOfMonth();
-
- $amaun_kutipan = 0;
- $compound = Compound::whereBetween('created_at', array($start, $end))->where('jbkod', $jabatan)->get();
- foreach ($compound as $key => $c) {
-
- if($c->status == 'Berbayar'){
- $amaun_kutipan = $amaun_kutipan + floatval($c->amount_payment);
- }
-
- }
-
- return number_format($amaun_kutipan, 2, '.', '');
- }
-
-
- public function returnReportCurrentCompound(Request $request){
-
- $nested_data = array();
-
- $start_year = $request->start_year;
- $end_year = $request->end_year;
- $budget1 = number_format((int)$request->budget1, 2, '.', '');
- $budget2 = number_format((int)$request->budget2, 2, '.', '');
- $jabatan = $request->jabatan;
-
- if($start_year != 'null' && $end_year != 'null' && $budget1 !='' && $budget2 !='' && $jabatan != 'null'){
-
- $year1= date('Y', strtotime($start_year));
- $year2= date('Y', strtotime($end_year));
- $first_month = date('m', strtotime($start_year));
- $first_text_month = strtoupper(date('M', strtotime($start_year)));
- $first_month_number = date('n', strtotime($start_year));
- $end_month_number = date('n', strtotime($end_year));
-
- array_push($nested_data, array(
- 'month' => $first_text_month,
- 'budget1' => $budget1,
- 'kompaun_keluar1' => $this->jumlah_kompaun_keluar($year1,$first_month,$jabatan),
- 'kompaun_kurang1' => $this->jumlah_kompaun_kurang($year1,$first_month,$jabatan),
- 'kutipan_bulanan1' => $this->jumlah_kompaun_kutipan($year1,$first_month,$jabatan),
- 'kutipan_terkumpul1' => $this->jumlah_kompaun_kutipan($year1,$first_month,$jabatan),
- 'kutipan1' => round(($this->jumlah_kompaun_kutipan($year1,$first_month,$jabatan)/$budget1) * 100, 2),
- 'terkumpul1' => round(($this->jumlah_kompaun_kutipan($year1,$first_month,$jabatan)/$budget1) * 100, 2),
- 'budget2' => $budget2,
- 'kompaun_keluar2' => $this->jumlah_kompaun_keluar($year2,$first_month,$jabatan),
- 'kompaun_kurang2' => $this->jumlah_kompaun_kurang($year2,$first_month,$jabatan),
- 'kutipan_bulanan2' => $this->jumlah_kompaun_kutipan($year2,$first_month,$jabatan),
- 'kutipan_terkumpul2' => $this->jumlah_kompaun_kutipan($year2,$first_month,$jabatan),
- 'kutipan2' => round(($this->jumlah_kompaun_kutipan($year2,$first_month,$jabatan)/$budget2) * 100, 2),
- 'terkumpul2' => round(($this->jumlah_kompaun_kutipan($year2,$first_month,$jabatan)/$budget2) * 100, 2),
- ));
-
- for($m=($first_month_number+1); $m<=12; ++$m){
- $prev_month = date('m', mktime(0, 0, 0, $m-1, 1));
- $month = date('m', mktime(0, 0, 0, $m, 1));
- $text_month = strtoupper(date('M', mktime(0, 0, 0, $m, 1)));
-
- $k1 = $this->jumlah_kompaun_kutipan($year1,$prev_month,$jabatan) + $this->jumlah_kompaun_kutipan($year1,$month,$jabatan);
-
- if($m<=$end_month_number){
-
- $k2 = $this->jumlah_kompaun_kutipan($year2,$prev_month,$jabatan) + $this->jumlah_kompaun_kutipan($year2,$month,$jabatan);
-
- array_push($nested_data, array(
- 'month' => $text_month,
- 'budget1' => '',
- 'kompaun_keluar1' => $this->jumlah_kompaun_keluar($year1,$month,$jabatan),
- 'kompaun_kurang1' => $this->jumlah_kompaun_kurang($year1,$month,$jabatan),
- 'kutipan_bulanan1' => $this->jumlah_kompaun_kutipan($year1,$month,$jabatan),
- 'kutipan_terkumpul1' => number_format($k1, 2, '.', ''),
- 'kutipan1' => round(($this->jumlah_kompaun_kutipan($year1,$month,$jabatan)/$budget1) * 100, 2),
- 'terkumpul1' => round(($k1/$budget1) * 100, 2),
- 'budget2' => '',
- 'kompaun_keluar2' => $this->jumlah_kompaun_keluar($year2,$month,$jabatan),
- 'kompaun_kurang2' => $this->jumlah_kompaun_keluar($year2,$month,$jabatan),
- 'kutipan_bulanan2' => $this->jumlah_kompaun_kutipan($year2,$month,$jabatan),
- 'kutipan_terkumpul2' => number_format($k2, 2, '.', ''),
- 'kutipan2' => round(($this->jumlah_kompaun_kutipan($year2,$month,$jabatan)/$budget2) * 100, 2),
- 'terkumpul2' => round(($k2/$budget2) * 100, 2),
- ));
- }else {
-
- $k2 = $this->jumlah_kompaun_kutipan($year2,$prev_month,$jabatan) + $this->jumlah_kompaun_kutipan($year2,$month,$jabatan);
-
- array_push($nested_data, array(
- 'month' => $text_month,
- 'budget1' => '',
- 'kompaun_keluar1' => $this->jumlah_kompaun_keluar($year1,$month,$jabatan),
- 'kompaun_kurang1' => $this->jumlah_kompaun_kurang($year1,$month,$jabatan),
- 'kutipan_bulanan1' => $this->jumlah_kompaun_kutipan($year1,$month,$jabatan),
- 'kutipan_terkumpul1' => number_format($k1, 2, '.', ''),
- 'kutipan1' => round(($this->jumlah_kompaun_kutipan($year1,$month,$jabatan)/$budget1) * 100, 2),
- 'terkumpul1' => round(($k1/$budget1) * 100, 2),
- 'budget2' => '',
- 'kompaun_keluar2' => $this->jumlah_kompaun_keluar($year2,$month,$jabatan),
- 'kompaun_kurang2' => $this->jumlah_kompaun_keluar($year2,$month,$jabatan),
- 'kutipan_bulanan2' => $this->jumlah_kompaun_kutipan($year2,$month,$jabatan),
- 'kutipan_terkumpul2' => number_format($k2, 2, '.', ''),
- 'kutipan2' => round(($this->jumlah_kompaun_kutipan($year2,$month,$jabatan)/$budget2) * 100, 2),
- 'terkumpul2' => round(($k2/$budget2) * 100, 2),
- ));
- }
-
- }
- }
-
-
-
- return \DataTables::of($nested_data)->make(true);
- }
- }
|