PageRenderTime 26ms CodeModel.GetById 24ms RepoModel.GetById 0ms app.codeStats 0ms

/SimulasiController.php

https://bitbucket.org/gungun/contoh_program
PHP | 283 lines | 209 code | 61 blank | 13 comment | 24 complexity | 6e96e2466104f4eb19ec5ac3ff2ec7d8 MD5 | raw file
  1. <?php
  2. /*
  3. * To change this template, choose Tools | Templates
  4. * and open the template in the editor.
  5. */
  6. /**
  7. * Description of SimulasiController
  8. *
  9. * @author msu
  10. */
  11. require_once 'BaseController.php';
  12. class SimulasiController extends Web_BaseController {
  13. const SUBSIDI_PREMI_PCT = 0.1;
  14. const UANG_MUKA_PCT = 0.20;
  15. const FIDUCIA = 250000;
  16. private $fPrice, $fTenor, $fBunga;
  17. private $fPremigross, $fSukubungaPerTahun, $fAdm;
  18. private $fPokokhutang, $fSubsidipremi, $fPokokutangsubsidi;
  19. private $fNilaikontrak, $fPremibayar;
  20. private $fUangmuka, $fBungatahun, $fAngsuranbulanan;
  21. private $fPremiasuransi, $fFiducia;
  22. private $fPremiGrossPct, $fPremiPct, $fTahun;
  23. private $fTotalBayarAwal;
  24. public function Process($Price, $UangMuka, $Bulan, $Bunga, $TipeAngsuran) {
  25. $fPrice = $Price;
  26. $fTenor = $Bulan;
  27. $fTahun = $Bulan / 12;
  28. $fBunga = $Bunga / 100;
  29. $fUangMuka = $fPrice * self::UANG_MUKA_PCT;
  30. if ($UangMuka == '') $UangMuka = $fUangMuka;
  31. if ((double) $fUangMuka < (double) $UangMuka) $fUangMuka = $UangMuka;
  32. $fPokokhutang = $fPrice - $fUangMuka;
  33. $fAngsuranbulanan = ( $fPokokhutang + ( $fPokokhutang * $fBunga * $fTahun) ) / ( $fTenor );
  34. if (trim(strtoupper($TipeAngsuran)) == 'ADV') $fTotalBayarAwal = $fUangMuka + $fAngsuranbulanan;
  35. $UangMuka = $fUangMuka;
  36. $data = array($fPokokhutang, $fAngsuranbulanan, $fTotalBayarAwal, $UangMuka);
  37. return $data;
  38. }
  39. public function simulasiKreditAction() {
  40. $request = $this->getRequest();
  41. $ctgr = $request->getParam('ctgr');
  42. $ctgr = 'simulasi-kredit';
  43. $q = $request->getParam('user');
  44. $this->view->q = $q;
  45. $bunga_hid = $request->getParam('percentbunga_hid');
  46. $service2 = ApplicationRegistry::getService('Admin_Service_SimulasiService');
  47. $rate = $service2->getRate();
  48. $bunga = (empty($bunga_hid)) ? (float) $rate['simulasi_rate_bunga'] : $bunga_hid ;
  49. $this->view->rate = $bunga;
  50. $contentService = ApplicationRegistry::getService('Admin_Service_ContentService');
  51. $data = $contentService->getDataPersyaratanSimulasi('prsyrtn-simulasi');
  52. $this->view->persyaratan = $data;
  53. $category = ApplicationRegistry::getService('MenuService')->getCategory($ctgr);
  54. if ($category['ctgr_parent'] && $category['ctgr_parent'] == 'simulasi') {
  55. $subcategory = ApplicationRegistry::getService('CategoryService')->getChildCategory($category['ctgr_parent']);
  56. $this->view->subcategory = $subcategory;
  57. }
  58. $this->view->category = $category;
  59. $session = new Zend_Session_Namespace('WEB_AUTH');
  60. unset($session->price);
  61. unset($session->uangmuka);
  62. unset($session->bulan);
  63. unset($session->hutang);
  64. unset($session->angsuran);
  65. unset($session->totalbayarAwal);
  66. $service = ApplicationRegistry::getService('SimulasiService');
  67. if (isset($session->user->user_name)) {
  68. $simUser = $service->getUserSim($session->user->user_name);
  69. $this->view->userSim = $simUser;
  70. if ($q == $session->user->user_name) {
  71. $session->price = ($simUser) ? $simUser['sim_rslt_price'] : '';
  72. $session->uangmuka = ($simUser) ? $simUser['sim_rslt_dp'] : '';
  73. $session->bulan = ($simUser) ? $simUser['sim_rslt_tenor'] : '';
  74. $session->hutang = ($simUser) ? $simUser['sim_rslt_debt'] : '';
  75. $session->angsuran = ($simUser) ? $simUser['sim_rslt_instlmnt'] : '';
  76. $session->totalbayarAwal = ($simUser) ? $simUser['sim_rslt_1st_pymnt_est'] : '';
  77. $session->typeSim = ($simUser) ? $simUser['sim_rslt_type'] : '';
  78. $this->view->price = ($simUser) ? $simUser['sim_rslt_price'] : '';
  79. $this->view->percent = ($simUser) ? $simUser['sim_rslt_percent'] : '';
  80. $this->view->uangmuka = ($simUser) ? $simUser['sim_rslt_dp'] : '';
  81. $this->view->bulan = ($simUser) ? $simUser['sim_rslt_tenor'] : '';
  82. $this->view->hutang = ($simUser) ? $simUser['sim_rslt_debt'] : '';
  83. $this->view->angsuran = ($simUser) ? $simUser['sim_rslt_instlmnt'] : '';
  84. $this->view->totalbayarAwal = ($simUser) ? $simUser['sim_rslt_1st_pymnt_est'] : '';
  85. }
  86. }
  87. if ($request->isPost() and $request->getPost('kirim')) {
  88. // var_dump($request->getParams()); die();
  89. $price = $request->getParam('price_hid');
  90. $persen = $request->getParam('percent_hid');
  91. $uangmuka = $request->getParam('nominal_hid');
  92. $bulan = $request->getParam('jangka-waktu');
  93. $tipeAngsuran = 'ADV';
  94. $data = $this->Process($price, $uangmuka, $bulan, $bunga, $tipeAngsuran);
  95. if (isset($session->user->user_name)) {
  96. $simdata = array(
  97. 'id'=>$simUser['id'],
  98. 'sim_rslt_price'=>$price,
  99. 'sim_rslt_dp'=>$uangmuka,
  100. 'sim_rslt_debt'=>$data[0],
  101. 'sim_rslt_instlmnt'=>$data[1],
  102. 'sim_rslt_tenor'=>$bulan,
  103. 'sim_rslt_1st_instlmnt'=>$data[1],
  104. 'sim_rslt_1st_pymnt_est'=>$data[2],
  105. 'sim_rslt_percent'=>$persen,
  106. 'sim_rslt_type'=>'C'
  107. );
  108. $savedata = $service->save($simdata);
  109. }
  110. /*
  111. * Set session hasil simulasi;
  112. */
  113. $session->price = $price;
  114. $session->uangmuka = $uangmuka;
  115. $session->bulan = $bulan;
  116. $session->hutang = $data[0];
  117. $session->angsuran = $data[1];
  118. $session->totalbayarAwal = $data[2];
  119. $this->view->price = $price;
  120. $this->view->percent = $persen;
  121. $this->view->uangmuka = $uangmuka;
  122. $this->view->bulan = $bulan;
  123. $this->view->hutang = $data[0];
  124. $this->view->angsuran = $data[1];
  125. $this->view->totalbayarAwal = $data[2];
  126. }
  127. }
  128. public function simulasiBudgetAction() {
  129. $request = $this->getRequest();
  130. $ctgr = $request->getParam('ctgr');
  131. $ctgr = 'simulasi-budget';
  132. $q = $request->getParam('user');
  133. $this->view->q = $q;
  134. $bunga_hid = $request->getParam('percentbunga_budget_hid');
  135. $service2 = ApplicationRegistry::getService('Admin_Service_SimulasiService');
  136. $rate = $service2->getRate();
  137. $bunga = (empty($bunga_hid)) ? (float) $rate['simulasi_rate_bunga'] : $bunga_hid ;
  138. $this->view->rate = $bunga;
  139. $contentService = ApplicationRegistry::getService('Admin_Service_ContentService');
  140. $data = $contentService->getDataPersyaratanSimulasi('prsyrtn-simulasi');
  141. $this->view->persyaratan = $data;
  142. $category = ApplicationRegistry::getService('MenuService')->getCategory($ctgr);
  143. if ($category['ctgr_parent'] && $category['ctgr_parent'] == 'simulasi') {
  144. $subcategory = ApplicationRegistry::getService('CategoryService')->getChildCategory($category['ctgr_parent']);
  145. $this->view->subcategory = $subcategory;
  146. }
  147. $this->view->category = $category;
  148. $session = new Zend_Session_Namespace('WEB_AUTH');
  149. unset($session->price);
  150. unset($session->uangmuka);
  151. unset($session->bulan);
  152. unset($session->hutang);
  153. unset($session->angsuran);
  154. unset($session->totalbayarAwal);
  155. $service = ApplicationRegistry::getService('SimulasiService');
  156. if (isset($session->user->user_name)) {
  157. $simUser = $service->getUserSim($session->user->user_name);
  158. $this->view->userSim = $simUser;
  159. if ($q == $session->user->user_name) {
  160. $session->price = ($simUser) ? $simUser['sim_rslt_price'] : '';;
  161. $session->uangmuka = ($simUser) ? $simUser['sim_rslt_dp'] : '';
  162. $session->bulan = ($simUser) ? $simUser['sim_rslt_tenor'] : '';
  163. $session->hutang = ($simUser) ? $simUser['sim_rslt_debt'] : '';
  164. $session->angsuran = ($simUser) ? $simUser['sim_rslt_instlmnt'] : '';
  165. $session->totalbayarAwal = ($simUser) ? $simUser['sim_rslt_1st_pymnt_est'] : '';
  166. $this->view->price = ($simUser) ? $simUser['sim_rslt_price'] : '';
  167. $this->view->percent = ($simUser) ? $simUser['sim_rslt_percent'] : '';
  168. $this->view->uangmuka = ($simUser) ? $simUser['sim_rslt_dp'] : '';
  169. $this->view->bulan = ($simUser) ? $simUser['sim_rslt_tenor'] : '';
  170. $this->view->hutang = ($simUser) ? $simUser['sim_rslt_debt'] : '';
  171. $this->view->angsuran = ($simUser) ? $simUser['sim_rslt_instlmnt'] : '';
  172. $this->view->totalbayarAwal = ($simUser) ? $simUser['sim_rslt_1st_pymnt_est'] : '';
  173. }
  174. }
  175. if ($request->isPost() and $request->getPost('kirim')) {
  176. $prior_budget = $request->getParam('prior-budget');
  177. $uangmuka = $request->getParam('dpbudget_hid');
  178. $angsuran = $request->getParam('angs_hid');
  179. $bulan = $request->getParam('jangka-waktu');
  180. $tipeAngsuran = 'ADV';
  181. if (empty($uangmuka)) {
  182. $price = ( (double) $angsuran * (int) $bulan ) + ( ((double) $angsuran * ( $bunga / 100 )) * $bulan );
  183. $uangmuka = ( 0.20 * $price );
  184. } else if (!empty($uangmuka)) {
  185. $price = ( 5 * $uangmuka );
  186. }
  187. $data = $this->Process($price, $uangmuka, $bulan, $bunga, $tipeAngsuran);
  188. if (isset($session->user->user_name)) {
  189. $simdata = array(
  190. 'id'=>$simUser['id'],
  191. 'sim_rslt_price'=>$price,
  192. 'sim_rslt_dp'=>$uangmuka,
  193. 'sim_rslt_debt'=>$data[0],
  194. 'sim_rslt_instlmnt'=>$data[1],
  195. 'sim_rslt_tenor'=>$bulan,
  196. 'sim_rslt_1st_instlmnt'=>$data[1],
  197. 'sim_rslt_1st_pymnt_est'=>$data[2],
  198. 'sim_rslt_type'=>'B'
  199. );
  200. $savedata = $service->save($simdata);
  201. }
  202. $session->price = $price;
  203. $session->uangmuka = (!empty($uangmuka)) ? $uangmuka : $data[3];
  204. $session->bulan = $bulan;
  205. $session->hutang = $data[0];
  206. $session->angsuran = (!empty($angsuran)) ? $angsuran : $data[1];
  207. $session->totalbayarAwal = (!empty($angsuran)) ? ( $angsuran + $uangmuka ) : (double) $data[2];
  208. $this->view->price = $price;
  209. $this->view->priority_budget = $prior_budget;
  210. $this->view->uangmuka = (!empty($uangmuka)) ? $uangmuka : $data[3];
  211. $this->view->bulan = $bulan;
  212. $this->view->hutang = $data[0];
  213. $this->view->angsuran = (!empty($angsuran)) ? $angsuran : $data[1];
  214. $this->view->totalbayarAwal = (!empty($angsuran)) ? ( $angsuran + $uangmuka ) : (double) $data[2];
  215. }
  216. }
  217. public function indexAction() {}
  218. public function viewAction() {}
  219. public function submenuAction() {}
  220. public function categoryAction() {}
  221. }
  222. ?>