Dashboard sipadu mbip
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

CalculateReportCurrentCompound.php 7.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. <?php
  2. namespace App\Http\Controllers\Api\Export;
  3. use Illuminate\Http\Request;
  4. use App\Http\Controllers\Api\BaseController;
  5. use Carbon\Carbon;
  6. use App\Model\Module\Compound;
  7. use App\Model\Module\ReportEnforcer;
  8. use App\Model\Staff;
  9. use App\Model\StaffDetail;
  10. use App\Model\Module\Department;
  11. class CalculateReportCurrentCompound extends BaseController
  12. {
  13. private function jumlah_kompaun_keluar($year, $month, $jabatan){
  14. $dateS = Carbon::createFromFormat('Y-m-d', $year.'-'.$month.'-01');
  15. $start = $dateS->copy()->startOfMonth();
  16. $end = $dateS->copy()->endOfMonth();
  17. $amaunt_kompaun_keluar = 0;
  18. $compound = Compound::whereBetween('created_at', array($start, $end))->where('jbkod', $jabatan)->get();
  19. foreach ($compound as $key => $c) {
  20. $amaunt_kompaun_keluar = $amaunt_kompaun_keluar + floatval($c->jumlah_asal_kompaun);
  21. }
  22. return number_format($amaunt_kompaun_keluar, 2, '.', '');
  23. }
  24. private function jumlah_kompaun_kurang($year, $month, $jabatan){
  25. $dateS = Carbon::createFromFormat('Y-m-d', $year.'-'.$month.'-01');
  26. $start = $dateS->copy()->startOfMonth();
  27. $end = $dateS->copy()->endOfMonth();
  28. $amaun_kurang = 0;
  29. $compound = Compound::whereBetween('created_at', array($start, $end))->where('jbkod', $jabatan)->get();
  30. foreach ($compound as $key => $c) {
  31. if($c->jumlah_kemaskini_kompaun != ''){
  32. $amaun_kurang = $amaun_kurang + floatval($c->jumlah_kemaskini_kompaun);
  33. }
  34. }
  35. return number_format($amaun_kurang, 2, '.', '');
  36. }
  37. private function jumlah_kompaun_kutipan($year, $month, $jabatan){
  38. $dateS = Carbon::createFromFormat('Y-m-d', $year.'-'.$month.'-01');
  39. $start = $dateS->copy()->startOfMonth();
  40. $end = $dateS->copy()->endOfMonth();
  41. $amaun_kutipan = 0;
  42. $compound = Compound::whereBetween('created_at', array($start, $end))->where('jbkod', $jabatan)->get();
  43. foreach ($compound as $key => $c) {
  44. if($c->status == 'Berbayar'){
  45. $amaun_kutipan = $amaun_kutipan + floatval($c->amount_payment);
  46. }
  47. }
  48. return number_format($amaun_kutipan, 2, '.', '');
  49. }
  50. public function returnReportCurrentCompound(Request $request){
  51. $nested_data = array();
  52. $start_year = $request->start_year;
  53. $end_year = $request->end_year;
  54. $budget1 = number_format((int)$request->budget1, 2, '.', '');
  55. $budget2 = number_format((int)$request->budget2, 2, '.', '');
  56. $jabatan = $request->jabatan;
  57. if($start_year != 'null' && $end_year != 'null' && $budget1 !='' && $budget2 !='' && $jabatan != 'null'){
  58. $year1= date('Y', strtotime($start_year));
  59. $year2= date('Y', strtotime($end_year));
  60. $first_month = date('m', strtotime($start_year));
  61. $first_text_month = strtoupper(date('M', strtotime($start_year)));
  62. $first_month_number = date('n', strtotime($start_year));
  63. $end_month_number = date('n', strtotime($end_year));
  64. array_push($nested_data, array(
  65. 'month' => $first_text_month,
  66. 'budget1' => $budget1,
  67. 'kompaun_keluar1' => $this->jumlah_kompaun_keluar($year1,$first_month,$jabatan),
  68. 'kompaun_kurang1' => $this->jumlah_kompaun_kurang($year1,$first_month,$jabatan),
  69. 'kutipan_bulanan1' => $this->jumlah_kompaun_kutipan($year1,$first_month,$jabatan),
  70. 'kutipan_terkumpul1' => $this->jumlah_kompaun_kutipan($year1,$first_month,$jabatan),
  71. 'kutipan1' => round(($this->jumlah_kompaun_kutipan($year1,$first_month,$jabatan)/$budget1) * 100, 2),
  72. 'terkumpul1' => round(($this->jumlah_kompaun_kutipan($year1,$first_month,$jabatan)/$budget1) * 100, 2),
  73. 'budget2' => $budget2,
  74. 'kompaun_keluar2' => $this->jumlah_kompaun_keluar($year2,$first_month,$jabatan),
  75. 'kompaun_kurang2' => $this->jumlah_kompaun_kurang($year2,$first_month,$jabatan),
  76. 'kutipan_bulanan2' => $this->jumlah_kompaun_kutipan($year2,$first_month,$jabatan),
  77. 'kutipan_terkumpul2' => $this->jumlah_kompaun_kutipan($year2,$first_month,$jabatan),
  78. 'kutipan2' => round(($this->jumlah_kompaun_kutipan($year2,$first_month,$jabatan)/$budget2) * 100, 2),
  79. 'terkumpul2' => round(($this->jumlah_kompaun_kutipan($year2,$first_month,$jabatan)/$budget2) * 100, 2),
  80. ));
  81. for($m=($first_month_number+1); $m<=12; ++$m){
  82. $prev_month = date('m', mktime(0, 0, 0, $m-1, 1));
  83. $month = date('m', mktime(0, 0, 0, $m, 1));
  84. $text_month = strtoupper(date('M', mktime(0, 0, 0, $m, 1)));
  85. $k1 = $this->jumlah_kompaun_kutipan($year1,$prev_month,$jabatan) + $this->jumlah_kompaun_kutipan($year1,$month,$jabatan);
  86. if($m<=$end_month_number){
  87. $k2 = $this->jumlah_kompaun_kutipan($year2,$prev_month,$jabatan) + $this->jumlah_kompaun_kutipan($year2,$month,$jabatan);
  88. array_push($nested_data, array(
  89. 'month' => $text_month,
  90. 'budget1' => '',
  91. 'kompaun_keluar1' => $this->jumlah_kompaun_keluar($year1,$month,$jabatan),
  92. 'kompaun_kurang1' => $this->jumlah_kompaun_kurang($year1,$month,$jabatan),
  93. 'kutipan_bulanan1' => $this->jumlah_kompaun_kutipan($year1,$month,$jabatan),
  94. 'kutipan_terkumpul1' => number_format($k1, 2, '.', ''),
  95. 'kutipan1' => round(($this->jumlah_kompaun_kutipan($year1,$month,$jabatan)/$budget1) * 100, 2),
  96. 'terkumpul1' => round(($k1/$budget1) * 100, 2),
  97. 'budget2' => '',
  98. 'kompaun_keluar2' => $this->jumlah_kompaun_keluar($year2,$month,$jabatan),
  99. 'kompaun_kurang2' => $this->jumlah_kompaun_keluar($year2,$month,$jabatan),
  100. 'kutipan_bulanan2' => $this->jumlah_kompaun_kutipan($year2,$month,$jabatan),
  101. 'kutipan_terkumpul2' => number_format($k2, 2, '.', ''),
  102. 'kutipan2' => round(($this->jumlah_kompaun_kutipan($year2,$month,$jabatan)/$budget2) * 100, 2),
  103. 'terkumpul2' => round(($k2/$budget2) * 100, 2),
  104. ));
  105. }else {
  106. $k2 = $this->jumlah_kompaun_kutipan($year2,$prev_month,$jabatan) + $this->jumlah_kompaun_kutipan($year2,$month,$jabatan);
  107. array_push($nested_data, array(
  108. 'month' => $text_month,
  109. 'budget1' => '',
  110. 'kompaun_keluar1' => $this->jumlah_kompaun_keluar($year1,$month,$jabatan),
  111. 'kompaun_kurang1' => $this->jumlah_kompaun_kurang($year1,$month,$jabatan),
  112. 'kutipan_bulanan1' => $this->jumlah_kompaun_kutipan($year1,$month,$jabatan),
  113. 'kutipan_terkumpul1' => number_format($k1, 2, '.', ''),
  114. 'kutipan1' => round(($this->jumlah_kompaun_kutipan($year1,$month,$jabatan)/$budget1) * 100, 2),
  115. 'terkumpul1' => round(($k1/$budget1) * 100, 2),
  116. 'budget2' => '',
  117. 'kompaun_keluar2' => $this->jumlah_kompaun_keluar($year2,$month,$jabatan),
  118. 'kompaun_kurang2' => $this->jumlah_kompaun_keluar($year2,$month,$jabatan),
  119. 'kutipan_bulanan2' => $this->jumlah_kompaun_kutipan($year2,$month,$jabatan),
  120. 'kutipan_terkumpul2' => number_format($k2, 2, '.', ''),
  121. 'kutipan2' => round(($this->jumlah_kompaun_kutipan($year2,$month,$jabatan)/$budget2) * 100, 2),
  122. 'terkumpul2' => round(($k2/$budget2) * 100, 2),
  123. ));
  124. }
  125. }
  126. }
  127. return \DataTables::of($nested_data)->make(true);
  128. }
  129. }