Dashboard sipadu mbip
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ExportReport.php 33KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709
  1. <?php
  2. namespace App\Http\Controllers\Main;
  3. use Illuminate\Http\Request;
  4. use App\Http\Controllers\Controller;
  5. use Illuminate\Support\Facades\Auth;
  6. use App\Exports\EnforcerStatisticExport;
  7. use App\Exports\FaultyStatisticExport;
  8. use App\Exports\CompoundCurrentExport;
  9. use App\Exports\CompoundBacklogExport;
  10. use Maatwebsite\Excel\Facades\Excel;
  11. use Carbon\Carbon;
  12. use App\Model\Module\Compound;
  13. use App\Model\Module\Faulty;
  14. use App\Model\Staff;
  15. use App\Model\StaffDetail;
  16. use App\Model\Module\ReportEnforcer;
  17. use App\Model\Module\ReportFaulty;
  18. class ExportReport extends Controller
  19. {
  20. /**
  21. * @return \Illuminate\Support\Collection
  22. */
  23. public function export_compound_enforcer($year,$jenis,$jbkod){
  24. $keping = array(); $jumlah = array();
  25. $data_report = ReportEnforcer::where('year', $year)->where('jbkod', $jbkod)->get();
  26. if(count($data_report) > 0){
  27. foreach ($data_report as $key => $d) {
  28. $st = StaffDetail::find($d->staff_detail_id);
  29. array_push($jumlah, array(
  30. 'index' => $key+1,
  31. 'name' => $st->full_name,
  32. 'jan' => $d->jan['jumlah'],
  33. 'feb' => $d->feb['jumlah'],
  34. 'mac' => $d->mac['jumlah'],
  35. 'apr' => $d->apr['jumlah'],
  36. 'mei' => $d->mei['jumlah'],
  37. 'jun' => $d->jun['jumlah'],
  38. 'july' => $d->july['jumlah'],
  39. 'ogos' => $d->ogos['jumlah'],
  40. 'sept' => $d->sept['jumlah'],
  41. 'okt' => $d->okt['jumlah'],
  42. 'nov' => $d->nov['jumlah'],
  43. 'dis' => $d->dis['jumlah'],
  44. 'total' => $d->total['jumlah'],
  45. ));
  46. array_push($keping, array(
  47. 'index' => $key+1,
  48. 'name' => $st->full_name,
  49. 'jan' => $d->jan['keping'],
  50. 'feb' => $d->feb['keping'],
  51. 'mac' => $d->mac['keping'],
  52. 'apr' => $d->apr['keping'],
  53. 'mei' => $d->mei['keping'],
  54. 'jun' => $d->jun['keping'],
  55. 'july' => $d->july['keping'],
  56. 'ogos' => $d->ogos['keping'],
  57. 'sept' => $d->sept['keping'],
  58. 'okt' => $d->okt['keping'],
  59. 'nov' => $d->nov['keping'],
  60. 'dis' => $d->dis['keping'],
  61. 'total' => $d->total['keping'],
  62. ));
  63. }
  64. }
  65. $filename = 'Statistik_Pengeluaran_kompaun_bulanan';
  66. return Excel::download(new EnforcerStatisticExport($keping,$jumlah,$year), $filename.'.xlsx');
  67. }
  68. public function export_compound_faulty($start_date,$end_date,$jabatan){
  69. $jan = array(); $feb = array(); $mac = array(); $apr = array(); $mei = array(); $jun = array();
  70. $july = array(); $ogos = array(); $sept = array(); $okt = array(); $nov = array(); $dis = array();
  71. $all = array();
  72. // All Faulty
  73. $data_sketr = ReportFaulty::where('start_date', $start_date)->where('end_date', $end_date)->where('month', 'All')->where('jbkod', $jabatan)->groupBy('sketr')->get();
  74. if(count($data_sketr) > 0){
  75. $i = 0;
  76. foreach ($data_sketr as $key => $d) {
  77. $jumlah_kompaun_keluar = 0; $amaun_kompaun_rm = 0;
  78. $jumlah_bayar = 0; $amaun_bayar_rm = 0;
  79. $jumlah_kompaun_belum_bayar = 0; $amaun_tunggakan_rm = 0;
  80. $kompaun_batal = 0; $amaun_batal_rm = 0;
  81. $kompaun_kurang = 0; $amaun_kurang_rm = 0;
  82. $name = '';
  83. $ft = Faulty::where('sketr', $d->sketr)->first();
  84. if(strpos($ft->nama, '(RM500)') !== false){
  85. $name = str_replace("(RM500)","",$ft->nama);
  86. }else if(strpos($ft->nama, '(RM100)') !== false){
  87. $name = str_replace("(RM100)","",$ft->nama);
  88. }else if(strpos($ft->nama, '(RM50)') !== false){
  89. $name = str_replace("(RM50)","",$ft->nama);
  90. }else if(strpos($ft->nama, '(RM250)') !== false){
  91. $name = str_replace("(RM250)","",$ft->nama);
  92. }else {
  93. $name = $ft->nama;
  94. }
  95. $data_report = ReportFaulty::where('start_date', $start_date)->where('end_date', $end_date)->where('month', 'All')->where('jbkod', $jabatan)->where('sketr', $d->sketr)->get();
  96. if(count($data_report) > 0){
  97. foreach ($data_report as $key => $r) {
  98. if ($r->amaun_kompaun_rm == ""){
  99. $temp_amount_rm = 0;
  100. }else {
  101. $temp_amount_rm = $r->amaun_kompaun_rm;
  102. }
  103. if ($r->jumlah_kompaun_keluar == ""){
  104. $temp_kompaun_keluar = 0;
  105. }else {
  106. $temp_kompaun_keluar = $r->jumlah_kompaun_keluar;
  107. }
  108. if ($r->jumlah_bayar == ""){
  109. $temp_jumlah_bayar = 0;
  110. }else {
  111. $temp_jumlah_bayar = $r->jumlah_bayar;
  112. }
  113. if ($r->amaun_bayar_rm == ""){
  114. $temp_amaun_bayar = 0;
  115. }else {
  116. $temp_amaun_bayar = $r->amaun_bayar_rm;
  117. }
  118. if ($r->jumlah_kompaun_belum_bayar == ""){
  119. $temp_kompaun_belum_bayar = 0;
  120. }else {
  121. $temp_kompaun_belum_bayar = $r->jumlah_kompaun_belum_bayar;
  122. }
  123. if ($r->amaun_tunggakan_rm == ""){
  124. $temp_tunggakan = 0;
  125. }else {
  126. $temp_tunggakan = $r->amaun_tunggakan_rm;
  127. }
  128. if ($r->kompaun_batal == ""){
  129. $temp_kompaun_batal = 0;
  130. }else {
  131. $temp_kompaun_batal = $r->kompaun_batal;
  132. }
  133. if ($r->amaun_batal_rm == ""){
  134. $temp_amaun_batal = 0;
  135. }else {
  136. $temp_amaun_batal = $r->amaun_batal_rm;
  137. }
  138. if ($r->kompaun_kurang == ""){
  139. $temp_kompaun_kurang = 0;
  140. }else {
  141. $temp_kompaun_kurang = $r->kompaun_kurang;
  142. }
  143. if ($r->amaun_kurang_rm == ""){
  144. $temp_amaun_kurang = 0;
  145. }else {
  146. $temp_amaun_kurang = $r->amaun_kurang_rm;
  147. }
  148. $jumlah_kompaun_keluar = $jumlah_kompaun_keluar + $temp_kompaun_keluar;
  149. $amaun_kompaun_rm = $amaun_kompaun_rm + $temp_amount_rm;
  150. $jumlah_bayar = $jumlah_bayar + $temp_jumlah_bayar;
  151. $amaun_bayar_rm = $amaun_bayar_rm + $temp_amaun_bayar;
  152. $jumlah_kompaun_belum_bayar = $jumlah_kompaun_belum_bayar + $temp_kompaun_belum_bayar;
  153. $amaun_tunggakan_rm = $amaun_tunggakan_rm + $temp_tunggakan;
  154. $kompaun_batal = $kompaun_batal + $temp_kompaun_batal;
  155. $amaun_batal_rm = $amaun_batal_rm + $temp_amaun_batal;
  156. $kompaun_kurang = $kompaun_kurang + $temp_kompaun_kurang;
  157. $amaun_kurang_rm = $amaun_kurang_rm + $temp_amaun_kurang;
  158. }
  159. }
  160. array_push($all, array(
  161. 'index' => $i+1,
  162. 'name' => strtoupper($name.' - '.$ft->sketr),
  163. 'jum_kompaun_keluar' => $jumlah_kompaun_keluar,
  164. 'amaun_kompaun' => $amaun_kompaun_rm,
  165. 'jumlah_byr' => $jumlah_bayar,
  166. 'amaun_byr' => $amaun_bayar_rm,
  167. 'jum_kompaun_belum_byr' => $jumlah_kompaun_belum_bayar,
  168. 'amaun_tunggakan' => $amaun_tunggakan_rm,
  169. 'kompaun_batal' => $kompaun_batal,
  170. 'amaun_batal' => $amaun_batal_rm,
  171. 'kompaun_kurang' => $kompaun_kurang,
  172. 'amaun_kurang' => $amaun_kurang_rm,
  173. ));
  174. }
  175. }
  176. for($m=1; $m<=12; ++$m){
  177. $month[] = date('m', mktime(0, 0, 0, $m, 1));
  178. }
  179. foreach ($month as $key => $m) {
  180. // Calculate by sketr
  181. $data_sketrb = ReportFaulty::where('start_date', $start_date)->where('end_date', $end_date)->where('month', $m)->where('jbkod', $jabatan)->groupBy('sketr')->get();
  182. if(count($data_sketrb) > 0){
  183. $i = 0;
  184. foreach ($data_sketrb as $key => $d) {
  185. $jumlah_kompaun_keluar = 0; $amaun_kompaun_rm = 0;
  186. $jumlah_bayar = 0; $amaun_bayar_rm = 0;
  187. $jumlah_kompaun_belum_bayar = 0; $amaun_tunggakan_rm = 0;
  188. $kompaun_batal = 0; $amaun_batal_rm = 0;
  189. $kompaun_kurang = 0; $amaun_kurang_rm = 0;
  190. $name = '';
  191. $ft = Faulty::where('sketr', $d->sketr)->first();
  192. if(strpos($ft->nama, '(RM500)') !== false){
  193. $name = str_replace("(RM500)","",$ft->nama);
  194. }else if(strpos($ft->nama, '(RM100)') !== false){
  195. $name = str_replace("(RM100)","",$ft->nama);
  196. }else if(strpos($ft->nama, '(RM50)') !== false){
  197. $name = str_replace("(RM50)","",$ft->nama);
  198. }else if(strpos($ft->nama, '(RM250)') !== false){
  199. $name = str_replace("(RM250)","",$ft->nama);
  200. }else {
  201. $name = $ft->nama;
  202. }
  203. $data_reportb = ReportFaulty::where('start_date', $start_date)->where('end_date', $end_date)->where('month', 'All')->where('jbkod', $jabatan)->where('sketr', $d->sketr)->get();
  204. if(count($data_reportb) > 0){
  205. foreach ($data_reportb as $key => $r) {
  206. if ($r->amaun_kompaun_rm == ""){
  207. $temp_amount_rm = 0;
  208. }else {
  209. $temp_amount_rm = $r->amaun_kompaun_rm;
  210. }
  211. if ($r->jumlah_kompaun_keluar == ""){
  212. $temp_kompaun_keluar = 0;
  213. }else {
  214. $temp_kompaun_keluar = $r->jumlah_kompaun_keluar;
  215. }
  216. if ($r->jumlah_bayar == ""){
  217. $temp_jumlah_bayar = 0;
  218. }else {
  219. $temp_jumlah_bayar = $r->jumlah_bayar;
  220. }
  221. if ($r->amaun_bayar_rm == ""){
  222. $temp_amaun_bayar = 0;
  223. }else {
  224. $temp_amaun_bayar = $r->amaun_bayar_rm;
  225. }
  226. if ($r->jumlah_kompaun_belum_bayar == ""){
  227. $temp_kompaun_belum_bayar = 0;
  228. }else {
  229. $temp_kompaun_belum_bayar = $r->jumlah_kompaun_belum_bayar;
  230. }
  231. if ($r->amaun_tunggakan_rm == ""){
  232. $temp_tunggakan = 0;
  233. }else {
  234. $temp_tunggakan = $r->amaun_tunggakan_rm;
  235. }
  236. if ($r->kompaun_batal == ""){
  237. $temp_kompaun_batal = 0;
  238. }else {
  239. $temp_kompaun_batal = $r->kompaun_batal;
  240. }
  241. if ($r->amaun_batal_rm == ""){
  242. $temp_amaun_batal = 0;
  243. }else {
  244. $temp_amaun_batal = $r->amaun_batal_rm;
  245. }
  246. if ($r->kompaun_kurang == ""){
  247. $temp_kompaun_kurang = 0;
  248. }else {
  249. $temp_kompaun_kurang = $r->kompaun_kurang;
  250. }
  251. if ($r->amaun_kurang_rm == ""){
  252. $temp_amaun_kurang = 0;
  253. }else {
  254. $temp_amaun_kurang = $r->amaun_kurang_rm;
  255. }
  256. $jumlah_kompaun_keluar = $jumlah_kompaun_keluar + $temp_kompaun_keluar;
  257. $amaun_kompaun_rm = $amaun_kompaun_rm + $temp_amount_rm;
  258. $jumlah_bayar = $jumlah_bayar + $temp_jumlah_bayar;
  259. $amaun_bayar_rm = $amaun_bayar_rm + $temp_amaun_bayar;
  260. $jumlah_kompaun_belum_bayar = $jumlah_kompaun_belum_bayar + $temp_kompaun_belum_bayar;
  261. $amaun_tunggakan_rm = $amaun_tunggakan_rm + $temp_tunggakan;
  262. $kompaun_batal = $kompaun_batal + $temp_kompaun_batal;
  263. $amaun_batal_rm = $amaun_batal_rm + $temp_amaun_batal;
  264. $kompaun_kurang = $kompaun_kurang + $temp_kompaun_kurang;
  265. $amaun_kurang_rm = $amaun_kurang_rm + $temp_amaun_kurang;
  266. }
  267. }
  268. if($m == '01'){
  269. array_push($jan, array(
  270. 'index' => $i+1,
  271. 'name' => strtoupper($name.' - '.$ft->sketr),
  272. 'jum_kompaun_keluar' => $jumlah_kompaun_keluar,
  273. 'amaun_kompaun' => $amaun_kompaun_rm,
  274. 'jumlah_byr' => $jumlah_bayar,
  275. 'amaun_byr' => $amaun_bayar_rm,
  276. 'jum_kompaun_belum_byr' => $jumlah_kompaun_belum_bayar,
  277. 'amaun_tunggakan' => $amaun_tunggakan_rm,
  278. 'kompaun_batal' => $kompaun_batal,
  279. 'amaun_batal' => $amaun_batal_rm,
  280. 'kompaun_kurang' => $kompaun_kurang,
  281. 'amaun_kurang' => $amaun_kurang_rm,
  282. ));
  283. }else if($m == '02'){
  284. array_push($feb, array(
  285. 'index' => $i+1,
  286. 'name' => strtoupper($name.' - '.$ft->sketr),
  287. 'jum_kompaun_keluar' => $jumlah_kompaun_keluar,
  288. 'amaun_kompaun' => $amaun_kompaun_rm,
  289. 'jumlah_byr' => $jumlah_bayar,
  290. 'amaun_byr' => $amaun_bayar_rm,
  291. 'jum_kompaun_belum_byr' => $jumlah_kompaun_belum_bayar,
  292. 'amaun_tunggakan' => $amaun_tunggakan_rm,
  293. 'kompaun_batal' => $kompaun_batal,
  294. 'amaun_batal' => $amaun_batal_rm,
  295. 'kompaun_kurang' => $kompaun_kurang,
  296. 'amaun_kurang' => $amaun_kurang_rm,
  297. ));
  298. }else if($m == '03'){
  299. array_push($mac, array(
  300. 'index' => $i+1,
  301. 'name' => strtoupper($name.' - '.$ft->sketr),
  302. 'jum_kompaun_keluar' => $jumlah_kompaun_keluar,
  303. 'amaun_kompaun' => $amaun_kompaun_rm,
  304. 'jumlah_byr' => $jumlah_bayar,
  305. 'amaun_byr' => $amaun_bayar_rm,
  306. 'jum_kompaun_belum_byr' => $jumlah_kompaun_belum_bayar,
  307. 'amaun_tunggakan' => $amaun_tunggakan_rm,
  308. 'kompaun_batal' => $kompaun_batal,
  309. 'amaun_batal' => $amaun_batal_rm,
  310. 'kompaun_kurang' => $kompaun_kurang,
  311. 'amaun_kurang' => $amaun_kurang_rm,
  312. ));
  313. }else if($m == '04'){
  314. array_push($apr, array(
  315. 'index' => $i+1,
  316. 'name' => strtoupper($name.' - '.$ft->sketr),
  317. 'jum_kompaun_keluar' => $jumlah_kompaun_keluar,
  318. 'amaun_kompaun' => $amaun_kompaun_rm,
  319. 'jumlah_byr' => $jumlah_bayar,
  320. 'amaun_byr' => $amaun_bayar_rm,
  321. 'jum_kompaun_belum_byr' => $jumlah_kompaun_belum_bayar,
  322. 'amaun_tunggakan' => $amaun_tunggakan_rm,
  323. 'kompaun_batal' => $kompaun_batal,
  324. 'amaun_batal' => $amaun_batal_rm,
  325. 'kompaun_kurang' => $kompaun_kurang,
  326. 'amaun_kurang' => $amaun_kurang_rm,
  327. ));
  328. }else if($m == '05'){
  329. array_push($mei, array(
  330. 'index' => $i+1,
  331. 'name' => strtoupper($name.' - '.$ft->sketr),
  332. 'jum_kompaun_keluar' => $jumlah_kompaun_keluar,
  333. 'amaun_kompaun' => $amaun_kompaun_rm,
  334. 'jumlah_byr' => $jumlah_bayar,
  335. 'amaun_byr' => $amaun_bayar_rm,
  336. 'jum_kompaun_belum_byr' => $jumlah_kompaun_belum_bayar,
  337. 'amaun_tunggakan' => $amaun_tunggakan_rm,
  338. 'kompaun_batal' => $kompaun_batal,
  339. 'amaun_batal' => $amaun_batal_rm,
  340. 'kompaun_kurang' => $kompaun_kurang,
  341. 'amaun_kurang' => $amaun_kurang_rm,
  342. ));
  343. }else if($m == '06'){
  344. array_push($jun, array(
  345. 'index' => $i+1,
  346. 'name' => strtoupper($name.' - '.$ft->sketr),
  347. 'jum_kompaun_keluar' => $jumlah_kompaun_keluar,
  348. 'amaun_kompaun' => $amaun_kompaun_rm,
  349. 'jumlah_byr' => $jumlah_bayar,
  350. 'amaun_byr' => $amaun_bayar_rm,
  351. 'jum_kompaun_belum_byr' => $jumlah_kompaun_belum_bayar,
  352. 'amaun_tunggakan' => $amaun_tunggakan_rm,
  353. 'kompaun_batal' => $kompaun_batal,
  354. 'amaun_batal' => $amaun_batal_rm,
  355. 'kompaun_kurang' => $kompaun_kurang,
  356. 'amaun_kurang' => $amaun_kurang_rm,
  357. ));
  358. }else if($m == '07'){
  359. array_push($july, array(
  360. 'index' => $i+1,
  361. 'name' => strtoupper($name.' - '.$ft->sketr),
  362. 'jum_kompaun_keluar' => $jumlah_kompaun_keluar,
  363. 'amaun_kompaun' => $amaun_kompaun_rm,
  364. 'jumlah_byr' => $jumlah_bayar,
  365. 'amaun_byr' => $amaun_bayar_rm,
  366. 'jum_kompaun_belum_byr' => $jumlah_kompaun_belum_bayar,
  367. 'amaun_tunggakan' => $amaun_tunggakan_rm,
  368. 'kompaun_batal' => $kompaun_batal,
  369. 'amaun_batal' => $amaun_batal_rm,
  370. 'kompaun_kurang' => $kompaun_kurang,
  371. 'amaun_kurang' => $amaun_kurang_rm,
  372. ));
  373. }else if($m == '08'){
  374. array_push($ogos, array(
  375. 'index' => $i+1,
  376. 'name' => strtoupper($name.' - '.$ft->sketr),
  377. 'jum_kompaun_keluar' => $jumlah_kompaun_keluar,
  378. 'amaun_kompaun' => $amaun_kompaun_rm,
  379. 'jumlah_byr' => $jumlah_bayar,
  380. 'amaun_byr' => $amaun_bayar_rm,
  381. 'jum_kompaun_belum_byr' => $jumlah_kompaun_belum_bayar,
  382. 'amaun_tunggakan' => $amaun_tunggakan_rm,
  383. 'kompaun_batal' => $kompaun_batal,
  384. 'amaun_batal' => $amaun_batal_rm,
  385. 'kompaun_kurang' => $kompaun_kurang,
  386. 'amaun_kurang' => $amaun_kurang_rm,
  387. ));
  388. }else if($m == '09'){
  389. array_push($sept, array(
  390. 'index' => $i+1,
  391. 'name' => strtoupper($name.' - '.$ft->sketr),
  392. 'jum_kompaun_keluar' => $jumlah_kompaun_keluar,
  393. 'amaun_kompaun' => $amaun_kompaun_rm,
  394. 'jumlah_byr' => $jumlah_bayar,
  395. 'amaun_byr' => $amaun_bayar_rm,
  396. 'jum_kompaun_belum_byr' => $jumlah_kompaun_belum_bayar,
  397. 'amaun_tunggakan' => $amaun_tunggakan_rm,
  398. 'kompaun_batal' => $kompaun_batal,
  399. 'amaun_batal' => $amaun_batal_rm,
  400. 'kompaun_kurang' => $kompaun_kurang,
  401. 'amaun_kurang' => $amaun_kurang_rm,
  402. ));
  403. }else if($m == '10'){
  404. array_push($okt, array(
  405. 'index' => $i+1,
  406. 'name' => strtoupper($name.' - '.$ft->sketr),
  407. 'jum_kompaun_keluar' => $jumlah_kompaun_keluar,
  408. 'amaun_kompaun' => $amaun_kompaun_rm,
  409. 'jumlah_byr' => $jumlah_bayar,
  410. 'amaun_byr' => $amaun_bayar_rm,
  411. 'jum_kompaun_belum_byr' => $jumlah_kompaun_belum_bayar,
  412. 'amaun_tunggakan' => $amaun_tunggakan_rm,
  413. 'kompaun_batal' => $kompaun_batal,
  414. 'amaun_batal' => $amaun_batal_rm,
  415. 'kompaun_kurang' => $kompaun_kurang,
  416. 'amaun_kurang' => $amaun_kurang_rm,
  417. ));
  418. }else if($m == '11'){
  419. array_push($nov, array(
  420. 'index' => $i+1,
  421. 'name' => strtoupper($name.' - '.$ft->sketr),
  422. 'jum_kompaun_keluar' => $jumlah_kompaun_keluar,
  423. 'amaun_kompaun' => $amaun_kompaun_rm,
  424. 'jumlah_byr' => $jumlah_bayar,
  425. 'amaun_byr' => $amaun_bayar_rm,
  426. 'jum_kompaun_belum_byr' => $jumlah_kompaun_belum_bayar,
  427. 'amaun_tunggakan' => $amaun_tunggakan_rm,
  428. 'kompaun_batal' => $kompaun_batal,
  429. 'amaun_batal' => $amaun_batal_rm,
  430. 'kompaun_kurang' => $kompaun_kurang,
  431. 'amaun_kurang' => $amaun_kurang_rm,
  432. ));
  433. }else if($m == '12'){
  434. array_push($dis, array(
  435. 'index' => $i+1,
  436. 'name' => strtoupper($name.' - '.$ft->sketr),
  437. 'jum_kompaun_keluar' => $jumlah_kompaun_keluar,
  438. 'amaun_kompaun' => $amaun_kompaun_rm,
  439. 'jumlah_byr' => $jumlah_bayar,
  440. 'amaun_byr' => $amaun_bayar_rm,
  441. 'jum_kompaun_belum_byr' => $jumlah_kompaun_belum_bayar,
  442. 'amaun_tunggakan' => $amaun_tunggakan_rm,
  443. 'kompaun_batal' => $kompaun_batal,
  444. 'amaun_batal' => $amaun_batal_rm,
  445. 'kompaun_kurang' => $kompaun_kurang,
  446. 'amaun_kurang' => $amaun_kurang_rm,
  447. ));
  448. }
  449. }
  450. }
  451. }
  452. $filename = 'Statistik_Pengeluaran_kompaun_mengikut_kesalahan';
  453. return Excel::download(new FaultyStatisticExport($jan,$feb,$mac,$apr,$mei,$jun,$july,$ogos,$sept,$okt,$nov,$dis,$all,$start_date,$end_date), $filename.'.xlsx');
  454. }
  455. public function export_compound_current($start_year,$end_year,$budget1,$budget2,$jbkod){
  456. $url = 'https://mdch.sipadu.my/api/get/current-compound?start_year='.$start_year.'&end_year='.$end_year.'&budget1='.$budget1.'&budget2='.$budget2.'&jabatan='.$jbkod;
  457. $year1= date('Y', strtotime($start_year));
  458. $year2= date('Y', strtotime($end_year));
  459. $client = new \GuzzleHttp\Client();
  460. $request = $client->get($url);
  461. $response = json_decode($request->getBody());
  462. $data = array();
  463. foreach ($response->data as $key => $d) {
  464. array_push($data, array(
  465. 'bulan' => $d->month,
  466. 'budget1' => $d->budget1,
  467. 'kompaun_keluar1' => $d->kompaun_keluar1,
  468. 'kompaun_kurang1' => $d->kompaun_kurang1,
  469. 'kutipan_bulanan1' => $d->kutipan_bulanan1,
  470. 'kutipan_terkumpul1' => $d->kutipan_terkumpul1,
  471. 'kutipan1' => $d->kutipan1,
  472. 'terkumpul1' => $d->terkumpul1,
  473. 'budget2' => $d->budget2,
  474. 'kompaun_keluar2' => $d->kompaun_keluar2,
  475. 'kompaun_kurang2' => $d->kompaun_kurang2,
  476. 'kutipan_bulanan2' => $d->kutipan_bulanan2,
  477. 'kutipan_terkumpul2' => $d->kutipan_terkumpul2,
  478. 'kutipan2' => $d->kutipan2,
  479. 'terkumpul2' => $d->terkumpul2,
  480. ));
  481. }
  482. $filename = 'Laporan_Perbezaan_kutipan_Kompaun_Semasa';
  483. return Excel::download(new CompoundCurrentExport($data,$year1,$year2,$end_year), $filename.'.xlsx');
  484. }
  485. public function jumlah_kopmaun_tahunan($year, $jabatan)
  486. {
  487. $date = Carbon::createFromDate($year, 01, 01);
  488. $startOfYear = $date->copy()->startOfYear();
  489. $endOfYear = $date->copy()->endOfYear();
  490. //list of compound 'Belum Bayar' in the year 2019
  491. $compound = Compound::whereBetween('created_at', array($startOfYear, $endOfYear))->where('jbkod', $jabatan)->get();
  492. $jumlah_kompaun = 0;
  493. $keping_kompaun = 0;
  494. $kpd = array();
  495. foreach($compound as $c)
  496. {
  497. $jumlah_kompaun += $c->jumlah_asal_kompaun;
  498. $keping_kompaun += 1;
  499. $kpd[] = $c->kpd;
  500. }
  501. $result = array();
  502. array_push($result, array(
  503. 'jumlah_kompaun' => $jumlah_kompaun,
  504. 'keping_kompaun' => $keping_kompaun,
  505. 'kpd' => $kpd,
  506. ));
  507. return json_encode($result);
  508. }
  509. //Calculate compound with status 'Berbayar'
  510. public function kompaun_bayar_by_bulan($year, $month, $jabatan)
  511. {
  512. $monthly = Carbon::createFromDate($year, $month, 1);
  513. $startOfMonth = $monthly->copy()->startOfMonth();
  514. $endOfMonth = $monthly->copy()->endOfMonth();
  515. $kpd = array();
  516. $monthly_collection = Compound::whereBetween('created_at', array($startOfMonth, $endOfMonth))->where('jbkod', $jabatan)->where('status', 'Berbayar')->get();
  517. // dd($monthly_collection);
  518. $jumlah_bayar = 0;
  519. $keping_bayar = 0;
  520. $jumlah_asal = 0;
  521. $jumlah_kurang = 0;
  522. $temp_jumlah_kurang = 0;
  523. $kpd = array();
  524. foreach($monthly_collection as $k)
  525. {
  526. if((!($k->jumlah_kemaskini_kompaun == '')))
  527. {
  528. $temp_jumlah_kurang = $k->jumlah_asal_kompaun - $k->jumlah_kemaskini_kompaun;
  529. }
  530. $keping_bayar += 1;
  531. $jumlah_asal += $k->jumlah_asal_kompaun;
  532. $jumlah_bayar += $k->amount_payment;
  533. $jumlah_kurang += $temp_jumlah_kurang;
  534. }
  535. $result = array();
  536. array_push($result, array(
  537. 'jumlah_berbayar' => $jumlah_bayar,
  538. 'keping_berbayar' => $keping_bayar,
  539. 'jumlah_pengurangan' => $jumlah_kurang,
  540. 'jumlah_asal_berbayar' => $jumlah_asal,
  541. ));
  542. return json_encode($result);
  543. }
  544. public function berbayar_terkumpul($value1, $value2)
  545. {
  546. return $value1 += $value2;
  547. }
  548. public function baki_tunggakan($baki_tertunggak, $bayar_bulanan, $jumlah_kurang)
  549. {
  550. return $baki_tertunggak - $bayar_bulanan - $jumlah_kurang;
  551. }
  552. public function keping_tunggakan($keping_tertunggak, $keping_bulanan)
  553. {
  554. return $keping_tertunggak -= $keping_bulanan;
  555. }
  556. public function peratus_kutipan($jumlah_tertunggak, $berbayar_bulanan)
  557. {
  558. return $berbayar_bulanan /= $jumlah_tertunggak;
  559. }
  560. public function peratus_terkumpul($jumlah_tertunggak, $berbayar_terkumpul)
  561. {
  562. return $berbayar_terkumpul /= $jumlah_tertunggak;
  563. }
  564. public function pengurangan_terkumpul($total_pengurangan, $pengurangan_bulanan)
  565. {
  566. return $total_pengurangan += $pengurangan_bulanan;
  567. }
  568. public function export_compound_backlog($year, $jabatan)
  569. {
  570. $looping_month = array();
  571. // search kompaun tertunggak a year before
  572. $tertunggak = json_decode($this->jumlah_kopmaun_tahunan($year, $jabatan));
  573. //declaring required variables
  574. $kutipan_terkumpul = 0;
  575. $tunggakan_terkumpul = 0;
  576. $pengurangan_terkumpul = 0;
  577. $baki_tunggakan = 0;
  578. $keping_tunggakan = 0;
  579. $baki_tunggakan = $tertunggak[0]->jumlah_kompaun;
  580. $keping_tunggakan = $tertunggak[0]->keping_kompaun;
  581. $nama_bulan = array('JAN', 'FEB', 'MAC', 'APR', 'MEI', 'JUN', 'JUL', 'OGOS', 'SEP', 'OKT', 'NOV', 'DIS');
  582. $kpd_bulan = array();
  583. for( $bulan = 1; $bulan < 13; $bulan++)
  584. {
  585. //calling required functions
  586. $bayar_bulanan = json_decode($this->kompaun_bayar_by_bulan($year, $bulan,$jabatan));
  587. $kutipan_terkumpul = $this->berbayar_terkumpul($kutipan_terkumpul, $bayar_bulanan[0]->jumlah_berbayar);
  588. $baki_tunggakan = $this->baki_tunggakan($baki_tunggakan, $bayar_bulanan[0]->jumlah_berbayar, $bayar_bulanan[0]->jumlah_pengurangan);
  589. $keping_tunggakan = $this->keping_tunggakan($keping_tunggakan, $bayar_bulanan[0]->keping_berbayar);
  590. $peratus_kutipan = $this->peratus_kutipan($tertunggak[0]->jumlah_kompaun, $bayar_bulanan[0]->jumlah_berbayar);
  591. $peratus_terkumpul = $this->peratus_terkumpul($tertunggak[0]->jumlah_kompaun, $kutipan_terkumpul);
  592. $pengurangan_terkumpul = $this->pengurangan_terkumpul($pengurangan_terkumpul, $bayar_bulanan[0]->jumlah_pengurangan);
  593. // foreach($bayar_bulanan[0]->kpd as $bb)
  594. // {
  595. // dd($bb);
  596. // }
  597. array_push($looping_month, array(
  598. 'bulan' => $nama_bulan[$bulan-1], //A
  599. 'space' => '', //B
  600. 'kutipan_bulanan(RM)' => $bayar_bulanan[0]->jumlah_berbayar, //C
  601. 'jumlah_kompaun_bayar' => $bayar_bulanan[0]->keping_berbayar, //D
  602. 'kutipan_terkumpul(RM)' => $kutipan_terkumpul, //E
  603. 'baki_tunggakan(RM)' => $baki_tunggakan, //F
  604. 'baki_belum_bayar' => $keping_tunggakan, //G
  605. 'jumlah_kurang(RM)' => $bayar_bulanan[0]->jumlah_pengurangan, //H
  606. '%_kutipan' => number_format((float)$peratus_kutipan, 3, '.', ''), //I
  607. '%_terkumpul' => number_format((float)$peratus_terkumpul, 3, '.', ''), //J
  608. ));
  609. }
  610. $kompaun_j = $tertunggak[0]->jumlah_kompaun;
  611. $kompaun_k = $tertunggak[0]->keping_kompaun;
  612. $filename = 'Laporan_Tunggakan_Tahunan_(Tahun_:_'.$year.')';
  613. return Excel::download(new CompoundBacklogExport($looping_month, $year, $kompaun_j, $kompaun_k), $filename.'.xlsx');
  614. }
  615. }