function cancelPaymnet($data){ $db = $this->getAdapter(); $db_il = new Loan_Model_DbTable_DbLoanILPayment(); $db_recipt= new Loan_Model_DbTable_DbGroupPayment(); $db->beginTransaction(); try{ $id = $data["id"]; $sql_option = "SELECT cr.`payment_option`,cr.`recieve_amount`,cr.`total_payment` FROM `ln_client_receipt_money` AS cr WHERE cr.`id`=$id"; $rs = $db->fetchRow($sql_option); $reciept_detail = $db_il->getRecieptMoneyDetailById($id); if(!empty($reciept_detail)){ foreach ($reciept_detail as $row_rd){ $old_loan_number = $row_rd["loan_number"]; $rs_fun = $db_recipt->getFunDetailByLoanNumber($old_loan_number); $rs_recipt = $db_recipt->getReciptDetailById($id); if($rs_fun=="" or $rs_fun==null){ $arr_member = array( 'is_completed' => 0, ); $this->_name = "ln_loan_member"; $where = $db->quoteInto("loan_number=?", $loan_number); $db->getProfiler()->setEnabled(true); $this->update($arr_member, $where); Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQuery()); Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQueryParams()); $db->getProfiler()->setEnabled(false); $sql_group = "SELECT m.`group_id` FROM `ln_loan_member` AS m WHERE m.`loan_number`='$loan_number' LIMIT 1"; $rs_group = $db->fetchOne($sql); $arr_group = array( 'status' => 1, ); $this->_name = "ln_loan_group"; $where = $db->quoteInto("g_id=?", $rs_group["group_id"]); $db->getProfiler()->setEnabled(true); $this->update($arr_group, $where); Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQuery()); Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQueryParams()); $db->getProfiler()->setEnabled(false); foreach ($rs_recipt as $row_recipt){ $arr_fun = array( 'is_completed' =>0, ); $this->_name="`ln_loanmember_funddetail`"; $where = $db->quoteInto("id=?", $row_recipt["lfd_id"]); $db->getProfiler()->setEnabled(true); $this->update($arr_fun, $where); Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQuery()); Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQueryParams()); $db->getProfiler()->setEnabled(false); } }else{ if($rs["payment_option"]==1){ foreach ($rs_recipt as $row_recipt){ $fun_id = $row_recipt['lfd_id']; $sql = "SELECT * FROM ln_loanmember_funddetail WHERE id= $fun_id"; $result_fun = $db->fetchAll($sql); $fun = $db_recipt->getFunHasPayedByLoanNumber($row_recipt["lfd_id"]); foreach ($result_fun as $result_row){ $fun_penelize = $result_row["penelize"]; $fun_service = $result_row["service_charge"]; if($fun["is_completed"]==0){ $total_pay = $row_recipt["total_payment"]; $total_recieve = $row_recipt["total_recieve"]; $principle = $row_recipt["principal_permonth"]; $interest = $row_recipt["total_interest"]; $penelize = $row_recipt["penelize_amount"]; $service =$row_recipt["service_charge"]; $new_recieve = $total_recieve-$service; if($new_recieve>0){ $old_service =0; $new_recieve = $new_recieve-$penelize; if($new_recieve>0){ $old_penelize =0; //$new_recieve = $new_recieve - $interest; //if($new_recieve>0){ // $old_interest = 0; // $new_recieve = $new_recieve - $penelize; // if($new_recieve>0){ // $old_principle = 0; // } //}else{ // $old_interest = abs($new_recieve); //} }else{ $old_penelize = abs($new_recieve); } }else{ $old_service = abs($new_recieve); } $arr_fun = array( "principle_after" => $principle, 'total_interest_after' => $interest, 'penelize' => $fun_penelize-$old_penelize, 'service_charge' => $fun_service-$old_service, 'total_payment_after' => $principle+$interest+($fun_penelize-$old_penelize)+($fun_service-$old_service), ); $this->_name = "ln_loanmember_funddetail"; $where = $db->quoteInto("id=?", $row_recipt["lfd_id"]); $db->getProfiler()->setEnabled(true); $this->update($arr_fun, $where); Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQuery()); Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQueryParams()); $db->getProfiler()->setEnabled(false); }else{ foreach ($rs_recipt as $row_recipt){ $arr_fun = array( 'is_completed' => 0, ); $this->_name = "ln_loanmember_funddetail"; $where = $db->quoteInto("id=?", $row_recipt["lfd_id"]); $db->getProfiler()->setEnabled(true); $this->update($arr_fun, $where); Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQuery()); Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQueryParams()); $db->getProfiler()->setEnabled(false); } } } } } } } } $sql = "DELETE FROM `ln_client_receipt_money` WHERE `id`=$id"; $db->getProfiler()->setEnabled(true); $db->query($sql); Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQuery()); Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQueryParams()); $db->getProfiler()->setEnabled(false); $sql_cmd = "DELETE FROM `ln_client_receipt_money_detail` WHERE `crm_id` = $id"; $db->getProfiler()->setEnabled(true); $db->query($sql_cmd); Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQuery()); Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQueryParams()); $db->getProfiler()->setEnabled(false); // exit(); $db->commit(); }catch (Exception $e){ $db->rollBack(); Application_Model_DbTable_DbUserLog::writeMessageError($e->getMessage()); } }