public function editQuickPayment($id,$data){ $db = $this->getAdapter(); $db->beginTransaction(); $session_user=new Zend_Session_Namespace('auth'); $user_id = $session_user->user_id; $reciept_no=$this->getIlPaymentNumber(); $db_loanFun = new Loan_Model_DbTable_DbLoanILPayment(); try { $is_set=0; $quick_fun = $this->getIlQuickPaymentDetailById($id); $identify = explode(',',$data['identity']); if(!empty($identify)){ $arr_reciept_money = array( 'co_id' => $data['co_id'], 'receiver_id' => $data['reciever'], 'branch_id' => $data['branch_id'], 'date_input' => $data["collect_date"], 'principal_amount' => $data["priciple_amount"], 'total_principal_permonth' => $data["os_amount"], 'total_payment' => $data["total_payment"], 'total_interest' => $data["total_interest"], 'recieve_amount' => $data["amount_receive"], 'penalize_amount' => $data['penalize_amount'], 'return_amount' => $data["amount_return"], 'service_charge' => $data["service_charge"], 'note' => $data['note'], 'user_id' => $user_id, 'is_group' => 2, 'payment_option' => 1, 'currency_type' => $data["currency_type"], 'status' => 1, 'amount_payment' => $data["amount_receive"]-$data["amount_return"], 'is_completed' => 1 ); $this->_name="ln_client_receipt_money"; $where = $db->quoteInto("id=?", $id); $this->update($arr_reciept_money, $where); $sql_delete = "DELETE FROM `ln_client_receipt_money_detail` WHERE crm_id = $id"; $db->query($sql_delete); if(!empty($quick_fun)){ foreach ($quick_fun as $rs){ $principle = $rs["principal_permonth"]; $interest = $rs["total_interest"]; $recieve_amount = $rs["total_recieve"]; $total_pay = $rs["total_payment"]; $penelize = $rs["penelize_amount"]; $service_charge = $rs["service_charge"]; $old_group_id = $rs["group_id"]; $old_datepayment = $rs["date_payment"]; $fun = $db_loanFun->getLoanFunByGroupId($old_group_id, $old_datepayment); foreach ($fun as $row_fun){ if($row_fun["is_completed"]==1){ $arr_fun = array( 'is_completed' => 0, ); $this->_name= "ln_loanmember_funddetail"; $where = $db->quoteInto("id=?", $row_fun["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{ $arr_fun = array( 'principle_after' => $principle, 'total_interest_after' => $interest, 'total_payment_after' => $total_pay, 'penelize' => $penelize, 'service_charge' => $service_charge, ); $this->_name= "ln_loanmember_funddetail"; $where = $db->quoteInto("id=?", $row_fun["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); } } } } foreach ($identify as $i){ $client_detail = $data["mfdid_".$i]; $sub_recieve_amount = $data["sub_recive_amount_".$i]; $sub_service_charge = $data["sub_service_charge_".$i]; $sub_peneline_amount = $data["sub_penelize_".$i]; $sub_interest_amount = $data["sub_interest_".$i]; $sub_principle= $data["sub_principal_permonth_".$i]; $sub_total_payment = $data["sub_payment_".$i]; if($client_detail!=""){ $loan_type = $data["loan_type_".$i]; $group_id = $data["group_id_".$i]; $pay_date = $data["date_payment_".$i]; $loanFun = $db_loanFun->getLoanFunByGroupId($group_id,$pay_date); if($loan_type==2){ if(!empty($loanFun) or $loanFun!="" or $loanFun!=null){ foreach ($loanFun as $rowFun){ if($is_set!=1){ $total_pene = $data["sub_penelize_".$i]; $total_pay = $rowFun["total_payment_after"]+$data["sub_penelize_".$i]; $is_set=1; }else{ $total_pene = $rowFun["penelize"]; $total_pay = $rowFun["total_payment_after"]; } $arr_money_detail = array( 'crm_id' => $id, 'loan_number' => $rowFun["loan_number"], 'lfd_id' => $rowFun["id"], 'client_id' => $rowFun["client_id"], 'date_payment' => $rowFun["date_payment"], 'capital' => $rowFun["total_capital"], 'remain_capital' => $rowFun["total_capital"] - $rowFun["principle_after"], 'principal_permonth' => $rowFun["principle_after"], 'total_interest' => $rowFun["total_interest_after"], 'total_payment' => $total_pay, 'total_recieve' => $total_pay, 'currency_id' => $data["cu_id_".$i], 'pay_after' => $data['multiplier_'.$i], 'penelize_amount' => $total_pene, 'service_charge' => $data["sub_service_charge_".$i], 'is_completed' => 1, 'is_verify' => 0, 'verify_by' => 0, 'is_closingentry' => 0, 'status' => 1 ); $db->getProfiler()->setEnabled(true); $db->insert("ln_client_receipt_money_detail", $arr_money_detail); Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQuery()); Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQueryParams()); $db->getProfiler()->setEnabled(false); $arr_fu = array( 'is_completed' => 1, ); $this->_name="ln_loanmember_funddetail"; $where = $db->quoteInto("id=?", $rowFun["id"]); $db->getProfiler()->setEnabled(true); $this->update($arr_fu, $where); Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQuery()); Zend_Debug::dump($db->getProfiler()->getLastQueryProfile()->getQueryParams()); $db->getProfiler()->setEnabled(false); } } }else{ if($sub_recieve_amount>=$sub_total_payment){ $arr_money_detail = array( 'crm_id' => $id, 'loan_number' => $data["loan_number_".$i], 'lfd_id' => $data["mfdid_".$i], 'client_id' => $data["client_id_".$i], 'date_payment' => $data["date_payment_".$i], 'capital' => $data["sub_total_priciple_".$i], 'remain_capital' => $data["sub_total_priciple_".$i] - $data["sub_principal_permonth_".$i], 'principal_permonth' => $data["sub_principal_permonth_".$i], 'total_interest' => $data["sub_interest_".$i], 'total_payment' => $data["sub_payment_".$i], 'total_recieve' => $data["sub_recive_amount_".$i], 'currency_id' => $data["cu_id_".$i], 'pay_after' => $data['multiplier_'.$i], 'penelize_amount' => $data["sub_penelize_".$i], 'service_charge' => $data["sub_service_charge_".$i], 'is_completed' => 0, 'is_verify' => 0, 'verify_by' => 0, 'is_closingentry' => 0, 'status' => 1 ); $db->insert("ln_client_receipt_money_detail", $arr_money_detail); $arr_update_fun_detail = array( 'is_completed' => 1, 'payment_option' => 1 ); $this->_name="ln_loanmember_funddetail"; $where = $db->quoteInto("id=?", $data["mfdid_".$i]); $this->update($arr_update_fun_detail, $where); }else{ $new_sub_interest_amount = $data["sub_interest_".$i]; $new_sub_penelize = $data["sub_penelize_".$i]; $new_sub_service_charge = $data["sub_service_charge_".$i]; $new_sub_principle = $data["sub_principal_permonth_".$i]; if($sub_recieve_amount>0){ $new_amount_after_service = $sub_recieve_amount-$sub_service_charge; if($new_amount_after_service>=0){ $new_sub_service_charge = 0; $new_amount_after_penelize = $new_amount_after_service - $sub_peneline_amount; if($new_amount_after_penelize>=0){ $new_sub_penelize = 0; $new_amount_after_interest = $new_amount_after_penelize - $sub_interest_amount; if($new_amount_after_interest>=0){ $new_sub_interest_amount = 0; $new_sub_principle = $sub_principle - $new_amount_after_interest; }else{ $new_sub_interest_amount = abs($new_amount_after_interest); } }else{ $new_sub_penelize = abs($new_amount_after_penelize); } }else{ $new_sub_service_charge = abs($new_amount_after_service); } } $arr_money_detail = array( 'crm_id' => $id, 'loan_number' => $data["loan_number_".$i], 'lfd_id' => $data["mfdid_".$i], 'client_id' => $data["client_id_".$i], 'date_payment' => $data["date_payment_".$i], 'capital' => $data["sub_total_priciple_".$i], 'remain_capital' => $data["sub_total_priciple_".$i] - $data["sub_principal_permonth_".$i], 'principal_permonth' => $sub_principle, 'total_interest' => $sub_interest_amount, 'total_payment' => $sub_total_payment, 'total_recieve' => $data["sub_recive_amount_".$i], 'currency_id' => $data["cu_id_".$i], 'pay_after' => $data['multiplier_'.$i], 'penelize_amount' => $data["sub_penelize_".$i], 'service_charge' => $data["sub_service_charge_".$i], 'is_completed' => 0, 'is_verify' => 0, 'verify_by' => 0, 'is_closingentry' => 0, 'status' => 1 ); $db->insert("ln_client_receipt_money_detail", $arr_money_detail); $arr_update_fun_detail = array( 'is_completed' => 0, 'total_interest_after' => $new_sub_interest_amount, 'total_payment_after' => $new_sub_principle, 'penelize' => $new_sub_penelize, 'principle_after' => $new_sub_principle, 'service_charge' => $new_sub_service_charge, 'payment_option' => 1 ); $this->_name="ln_loanmember_funddetail"; $where = $db->quoteInto("id=?", $data["mfdid_".$i]); $this->update($arr_update_fun_detail, $where); } } $loan_fun = $db_loanFun->getFunByGroupId($group_id); if(empty($loan_fun) or $loan_fun="" or $loan_fun=null){ $sql_mem = "SELECT lm.`member_id` FROM `ln_loan_member` AS lm WHERE lm.`group_id`=$group_id"; $row_mem = $db->fetchAll($sql_mem); foreach ($row_mem as $rs_mem){ $arr_member = array( 'is_completed' => 1, ); $this->_name ="ln_loan_member"; $where = $db->quoteInto("member_id=?", $rs_mem["member_id"]); $this->update($arr_member, $where); $arr_group = array( 'status' => 2, ); $this->_name ="ln_loan_group"; $where = $db->quoteInto("g_id=?", $group_id); $this->update($arr_group, $where); } } } } } // exit(); $db->commit(); }catch (Exception $e){ $db->rollBack(); Application_Model_DbTable_DbUserLog::writeMessageError($e->getMessage()); } }