function insertMoneyTransfer($data)
 {
     $percent = empty($data['percent']) ? 0 : $data['percent'];
     $send_date = $data['send_date'] . ' ' . date('h:i:s');
     $exp_date = $data['epx_date'] . ' ' . date('h:i:s');
     $session_user = new Zend_Session_Namespace('auth');
     $db = $this->getAdapter();
     $db->beginTransaction();
     try {
         $agent_id = $data['agent_id'];
         $_data = array('sender_name' => $data['sender'], 'reciever_name' => $data['reciever'], 'reciever_tel' => $data['reciever_tel'], 'invoice_no' => $data['invoice_no'], 'amount' => $data['amount'], 'amount_type' => $data['type_money'], 'commission' => empty($data['commission']) ? 0 : $data['commission'], 'commission_type' => $data['type_money'], 'commission_percent' => $percent, 'commission_agent' => $data['commission_agent'], 'recieved' => $data['recieve_money'], 'recieved_type' => $data['type_money'], 'status' => $data['tran_type'] == 0 ? 0 : 2, 'status_loan' => empty($data['loan']) ? 0 : $data['loan'], 'cut_service' => empty($data['minus']) ? 0 : $data['minus'], 'agent_id' => $agent_id, 'subagent_id' => empty($data['sub_agent_id']) ? 0 : $data['sub_agent_id'], 'send_date' => $send_date, 'expire_date' => $exp_date, 'transfer_money' => $data['gave'], 'total_money' => $data['total'], 'return_money' => $data['return_money'], 'tran_type' => $data['tran_type'], 'is_kbank' => empty($data['is_kbank']) ? 0 : $data['is_kbank'], 'user_id' => $session_user->user_id);
         $tran_no = $this->insert($_data);
         $db_sender = new Application_Model_DbTable_DbKbank();
         $sender_id = $db_sender->getSenderIdbyName($data['sender']);
         //     	 	$db_rate=new Application_Model_DbTable_DbRate();
         //     	 	$rate = $db_rate->getCurrentRate();
         $_data['sender_name'] = $sender_id;
         $_data['exchange_rate_db'] = $data['BD'];
         $_data['exchange_rate_dr'] = $data['RD'];
         $_data['exchange_rate_rb'] = $data['RB'];
         $_data['is_orgdebt'] = 1;
         $db_cap = new Application_Model_DbTable_DbCapital();
         //for data capital
         if (!empty($data['loan'])) {
             //IF DEBT
             $this->_name = "cs_transactions_owe";
             $_data['money_tran_id'] = $tran_no;
             $_data['rate_perday'] = $data['rate_perday'];
             $money_type = 1;
             if ($data['type_money'] == 1) {
                 $total_debt = $data['total'] + $data['debt_dollar'];
             } elseif ($data['type_money'] == 2) {
                 $total_debt = $data['total'] + $data['debt_bath'];
                 $money_type = 2;
             } else {
                 $total_debt = $data['total'] + $data['debt_khmer'];
                 $money_type = 3;
             }
             $this->updateStatustoPaid($sender_id, $money_type);
             //update old tran debt to paid below add new debt
             $_data['total_money_owe'] = $total_debt;
             unset($_data['return_money']);
             unset($_data['is_kbank']);
             $this->insert($_data);
             if ($data['tran_type'] == 0) {
                 //debt with tran type = transfer
                 $amount = $data['total'];
             } else {
                 $amount = -$data['total'];
                 //យើងអស់លុយប៉ុន្តែយើងជំពាក់គេ
             }
             $income = 0;
             // 				$tran_type=7;//remain debt before pls ckeck condition  ;
             $tran_type = 2;
             //remain debt ;
         } else {
             //add owe if money kbank differ money transfer
             $_data['money_tran_id'] = $tran_no;
             $_data['rate_perday'] = $data['rate_perday'];
             $_data['total_money_owe'] = $data['total'];
             $_data['status_loan'] = 1;
             unset($_data['return_money']);
             //     	 		if($data['tran_type'] == 0){//with tran type = transfer
             //     	 			$amount = $data['total'];
             //     	 		}else{
             //     	 			$amount = -$data['total'];//វេចូល
             //     	 		}
             //     	 		$income = 1;
             if ($data['tran_type'] == 0) {
                 //with tran type = transfer
                 $amount = $data['total'];
             } else {
                 $amount = -$data['total'];
                 //វេចូល
             }
             //	for add withdraw to send if sender use kbank account
             if (!empty($data['is_kbank'])) {
                 if ($data['type_money'] == 1 and empty($data['debt_dollar'])) {
                     //if kbank no money for transfer
                     $this->AddOweTransationBysender($_data);
                 } elseif ($data['type_money'] == 2 and empty($data['debt_bath'])) {
                     $this->AddOweTransationBysender($_data);
                 } elseif ($data['type_money'] == 3 and empty($data['debt_khmer'])) {
                     $this->AddOweTransationBysender($_data);
                 }
                 $w_dollar = 0;
                 $w_bath = 0;
                 $w_riel = 0;
                 $b_dollar = 0;
                 $b_bath = 0;
                 $b_riel = 0;
                 $invoice = Application_Model_GlobalClass::getInvoiceWithdraw();
                 $db_draw = new Application_Model_DbTable_DbKbank();
                 $sender_id = $db_draw->getSenderIdbyName($data['sender']);
                 //covert sender name to sender id
                 $remain_from_kbank = 0;
                 $total_withdraw = $data['total'];
                 if ($data['type_money'] == 1) {
                     $w_dollar = $data['total'];
                     $remain_from_kbank = $data['debt_dollar'] - $data['total'];
                     if ($data['debt_dollar'] < $data['total']) {
                         $w_dollar = $data['debt_dollar'];
                         $total_withdraw = $w_dollar;
                     }
                 } elseif ($data['type_money'] == 2) {
                     $w_bath = $data['total'];
                     $remain_from_kbank = $data['debt_bath'] - $data['total'];
                     if ($data['debt_bath'] < $data['total']) {
                         $w_bath = $data['debt_bath'];
                         $total_withdraw = $w_bath;
                     }
                 } else {
                     $w_riel = $data['total'];
                     $remain_from_kbank = $data['debt_khmer'] - $data['total'];
                     if ($data['debt_khmer'] < $data['total']) {
                         $w_riel = $data['debt_khmer'];
                         $total_withdraw = $w_riel;
                     }
                 }
                 ///if transfer more thand money in kbank so we add this send dept
                 if ($remain_from_kbank < 0) {
                     $_data['total_money_owe'] = -$remain_from_kbank;
                     //if money tranfer larg than money in kbank
                     $debt_id = $this->AddOweTransationBysender($_data);
                     $arr = array('tran_id' => $tran_no, 'tran_type' => 8, 'curr_type' => $data['type_money'], 'amount' => -$remain_from_kbank, 'user_id' => $session_user->user_id, 'income' => 0);
                     $ass = $db_cap->addMoneyToCapitalDetail($arr);
                 }
                 //if money have in account kbank
                 if (!empty($data['debt_dollar'])) {
                     $b_dollar = $data['debt_dollar'];
                 }
                 if (!empty($data['debt_bath'])) {
                     $b_bath = $data['debt_bath'];
                 }
                 if (!empty($data['debt_khmer'])) {
                     $b_riel = $data['debt_khmer'];
                 }
                 //     	 		$amount = 0;
                 if ($b_dollar > 0 or $b_bath or $b_riel > 0) {
                     $_arr = array('sender' => $sender_id, 'invoice_no' => $invoice, 'withdraw_dollar' => $w_dollar, 'withdraw_bath' => $w_bath, 'withdraw_riel' => $w_riel, 'debt_dollar' => $b_dollar, 'debt_bath' => $b_bath, 'debt_riel' => $b_riel, 'send_date' => $data['send_date']);
                     $db_draw->addWithdrawBySendName($_arr);
                     $tran_no = $db->lastInsertId();
                     $arr = array('tran_id' => $tran_no, 'tran_type' => 7, 'curr_type' => $data['type_money'], 'amount' => -$total_withdraw, 'user_id' => $session_user->user_id, 'income' => 0);
                     $ass = $db_cap->addMoneyToCapitalDetail($arr);
                 }
                 $income = 0;
                 //     	 			if($data['tran_type'] == 0){//with tran type = transfer
                 //     	 				$amount = $data['total'];
                 //     	 			}else{
                 //     	 				$amount = -$data['total'];//វេចូល
                 //     	 			}
             } else {
                 //     	 			if($data['tran_type'] == 0){//with tran type = transfer
                 //     	 				$amount = $data['total'];
                 //     	 			}else{
                 //     	 				$amount = -$data['total'];//វេចូល
                 //     	 			}
                 $income = 1;
                 ///update date current capital if get money from sender////////////////////
                 $rs = $db_cap->DetechCapitalExist($session_user->user_id, $data['type_money']);
                 if (!empty($rs)) {
                     //update new user
                     $arr = array('amount' => $rs['amount'] + $amount);
                     $db_cap->updateCurrentBalanceById($rs['id'], $arr);
                 } else {
                     $date = date("Y-m-d H:i:s");
                     //change it to current edit
                     $arr = array('amount' => $amount, 'currencyType' => $data['type_money'], 'userid' => $session_user->user_id, 'statusDate' => $date);
                     $db_cap->AddCurrentBalanceById($arr);
                 }
             }
             $tran_type = 2;
             //transfer
         }
         ////for add capital detail
         $date = date("Y-m-d H:i:s");
         //change it to current edit
         $arr = array('tran_id' => $tran_no, 'tran_type' => $tran_type, 'curr_type' => $data['type_money'], 'amount' => $amount, 'user_id' => $session_user->user_id, 'income' => $income);
         $ass = $db_cap->addMoneyToCapitalDetail($arr);
         return $db->commit();
     } catch (Exception $e) {
         $db->rollBack();
         //     	 	echo 1111;
         //     	 	echo $e->getMessage();exit();
     }
 }
示例#2
0
 public function rptbalanceAction()
 {
     // Get Session User
     $session_user = new Zend_Session_Namespace('auth');
     $b = new Application_Model_DbTable_DbCapital();
     $user_id = $session_user->user_id;
     $month = date("n");
     if ($this->getRequest()->isPost()) {
         $formdata = $this->getRequest()->getPost();
         $user_id = $formdata['user_id'];
         if ($formdata['actions'] == "add_capital") {
             if ($formdata['dollar'] != 0 or $formdata['bath'] != 0 or $formdata['rail'] != 0) {
                 $b->addBalanceByUser($user_id, $formdata);
             }
         } else {
             $month = $formdata['month'];
         }
     }
     $usr_mod = new Application_Model_DbTable_DbUsers();
     $this->view->users = $usr_mod->getUserListSelect();
     $this->view->balance = $b->getCurrentBallancesByCurrentUser($user_id);
     $this->view->user_id = $user_id;
     $this->view->month = $month;
     // For view
     $db_loan = new Application_Model_DbTable_DbLoan();
     $trans = $db_loan->getLoanDataByUserId($user_id, $month);
     if (empty($trans)) {
         $trans = array('err' => 1, 'msg' => 'មិន​ទាន់​មាន​ទន្និន័យ​នូវ​ឡើយ​ទេ!');
     }
     $this->view->tranlist = $trans;
 }
示例#3
0
 public function culToCapitalDelete($tran_id, $currency_type, $amount)
 {
     /*start insert to capital*/
     $session_user = new Zend_Session_Namespace('auth');
     $user_id = $session_user->user_id;
     $db_cap = new Application_Model_DbTable_DbCapital();
     $cd = $db_cap->getCapitalDetailById($tran_id, 6, $currency_type);
     $date = date_create($cd['date']);
     $day = date_format($date, "d/m/Y");
     $rs = $db_cap->DetechCapitalExist($user_id, $currency_type, $day);
     //check if add capital exist
     if (!empty($rs)) {
         $arr = array('amount' => $rs['amount'] - $amount);
         $db_cap->updateCurrentBalanceById($rs['id'], $arr);
     }
     //update to capital_detail
     $db_cap->updateCapitalDetailById($cd['id'], array('status' => '0'));
     /*end update to capital*/
 }
示例#4
0
 public function balanceAction()
 {
     $session_user = new Zend_Session_Namespace('auth');
     $b = new Application_Model_DbTable_DbCapital();
     $user_id = $session_user->user_id;
     if ($this->getRequest()->isPost()) {
         $formdata = $this->getRequest()->getPost();
         $user_id = $formdata['user_id'];
         if ($formdata['actions'] == "add_capital") {
             //$b->addBalanceByUser($user_id, $formdata);
         }
     }
     $cp_db = new Application_Model_DbTable_DbCapital();
     $rs_d = $cp_db->DetechCapitalExist($user_id, 1, null);
     //check if add capital exist
     $rs_b = $cp_db->DetechCapitalExist($user_id, 2, null);
     //check if add capital exist
     $rs_r = $cp_db->DetechCapitalExist($user_id, 3, null);
     //check if add capital exist
     $total_balance = array('dollar' => empty($rs_d) ? 0 : $rs_d['amount'], 'baht' => empty($rs_b) ? 0 : $rs_b['amount'], 'riel' => empty($rs_r) ? 0 : $rs_r['amount']);
     $balance = $b->getCurrentBallancesByCurrentUser($user_id);
     $arr_img = array();
     foreach ($balance as $key => $val) {
         if ($key == 'dollar') {
             $k = 'dollar';
         } elseif ($key == 'bath') {
             $k = 'baht';
         } else {
             $k = 'riel';
         }
         if ($total_balance[$k] > $val) {
             $arr_img[$k] = array('amount' => $total_balance[$k] - $val, 'img' => 'up');
         } elseif ($total_balance[$k] < $val) {
             $arr_img[$k] = array('amount' => $val - $total_balance[$k], 'img' => 'down');
         } else {
             $arr_img[$k] = array('amount' => 0, 'img' => '');
         }
     }
     $usr_mod = new Application_Model_DbTable_DbUsers();
     $this->view->users = $usr_mod->getUserListSelect();
     $this->view->balance = $balance;
     $this->view->total_balance = $total_balance;
     $this->view->img = $arr_img;
     $this->view->user_id = $user_id;
 }
示例#5
0
 public function updateTranLoanById($data)
 {
     try {
         $db = $this->getAdapter();
         $db->beginTransaction();
         $session_user = new Zend_Session_Namespace('auth');
         $user_id = $session_user->user_id;
         $is_allinterest = 0;
         if (!empty($data['all_interest'])) {
             $is_allinterest = $data['all_interest'];
         }
         $arr = array('sender_id' => $data['sender'], 'invoice' => $data['invoice_no'], 'loan_date' => $data['loan_date'], 'user_id' => $user_id, 'status' => 1, 'is_allinterest' => $is_allinterest);
         $where = $db->quoteInto('b_id=?', $data['tran_id']);
         $this->update($arr, $where);
         $db_tran = new Application_Model_DbTable_DbCustomerLoan();
         $rows = $db_tran->getBorrowDetail($data['tran_id']);
         $dbc = new Application_Model_DbTable_DbCapital();
         $this->_name = 'cs_capital_detail';
         foreach ($rows as $key => $rs) {
             $row = $dbc->DetechCapitalExist($user_id, $rs['currency_type'], null);
             if (!empty($row)) {
                 $arr = array('amount' => $row['amount'] + $rs['loan_amount']);
                 $dbc->updateCurrentBalanceById($row['id'], $arr);
                 $where = ' tran_id = ' . $rs['id'] . ' AND tran_type = 5 ';
                 $this->delete($where);
                 //for delete capital detail
             }
         }
         $this->_name = 'cs_borrow_detail';
         $where = 'br_id = ' . $data['tran_id'];
         $this->delete($where);
         $process = 0;
         $amount = 0;
         for ($i = 1; $i < 4; $i++) {
             //for add capital detail and update current capital by staff
             if (!empty($data['borrow_dollar']) and $i == 1) {
                 $process = 1;
                 $curr_type = 1;
                 $amount = $data['borrow_dollar'] + ($data['debt_dollar'] - $data['old_dollar']);
                 if ($data['sender'] != $data['old_sender']) {
                     $amount = $data['borrow_dollar'] + $data['debt_dollar'];
                 }
                 $interest_rate = empty($data['all_interest']) == 0 ? $data['total_interest'] : $data['interest_dollar'];
             } elseif (!empty($data['borrow_bath']) and $i == 2) {
                 $process = 1;
                 $curr_type = 2;
                 $amount = $data['borrow_bath'] + ($data['debt_bath'] - $data['old_bath']);
                 if ($data['sender'] != $data['old_sender']) {
                     $amount = $data['borrow_bath'] + $data['debt_bath'];
                 }
                 $interest_rate = empty($data['all_interest']) == 0 ? $data['total_interest'] : $data['interest_bath'];
             } elseif (!empty($data['borrow_riel']) and $i == 3) {
                 $process = 1;
                 $curr_type = 3;
                 $amount = $data['borrow_riel'] + ($data['debt_khmer'] - $data['old_riel']);
                 if ($data['sender'] != $data['old_sender']) {
                     $amount = $data['borrow_riel'] + $data['debt_khmer'];
                 }
                 $interest_rate = empty($data['all_interest']) == 0 ? $data['total_interest'] : $data['interest_riel'];
             }
             if ($process == 1) {
                 //with loan tran_type = 5
                 $arr = array('br_id' => $data['tran_id'], 'currency_type' => $curr_type, 'loan_amount' => $amount, 'laon_rate' => $interest_rate, 'BD' => $data['BD'], 'RD' => $data['RD'], 'RB' => $data['RB'], 'status' => 1);
                 $l_id = $this->insert($arr);
                 $arr = array('tran_id' => $l_id, 'tran_type' => 5, 'curr_type' => $curr_type, 'amount' => -$amount, 'user_id' => $user_id);
                 $dbc->addMoneyToCapitalDetail($arr);
                 $rs = $dbc->DetechCapitalExist($session_user->user_id, $curr_type, null);
                 if (!empty($rs)) {
                     //update old user
                     $arr = array('amount' => $rs['amount'] - $amount);
                     $dbc->updateCurrentBalanceById($rs['id'], $arr);
                 } else {
                     $date = date("Y-m-d H:i:s");
                     $arr = array('amount' => -$amount, 'currencyType' => $curr_type, 'userid' => $user_id, 'statusDate' => $date);
                     $dbc->AddCurrentBalanceById($arr);
                 }
             }
             $process = 0;
         }
         $db->commit();
     } catch (Exception $e) {
         $db->rollBack();
     }
 }
示例#6
0
 function updateCapitalDetailById($data)
 {
     $this->_name = 'cs_capital_detail';
     $db = $this->getAdapter();
     $db->beginTransaction();
     try {
         if (!empty($data['dollar'])) {
             $amount = $data['dollar'];
             $currency_type = 1;
         } elseif (!empty($data['bath'])) {
             $amount = $data['bath'];
             $currency_type = 2;
         } elseif (!empty($data['rail'])) {
             $amount = $data['rail'];
             $currency_type = 3;
         }
         $sign = $amount >= 0 ? 1 : 0;
         $_arr = array('amount' => $amount, 'user_id' => $data['user_id'], 'sign' => $sign, 'date' => $data['date']);
         $where = $db->quoteInto('id = ?', $data['tran_id']);
         $this->update($_arr, $where);
         $dbdata = new Application_Model_DbTable_DbCapital();
         if ($data['user_id'] != $data['old_user']) {
             $rs = $dbdata->DetechCapitalExist($data['user_id'], $currency_type, $data['old_date']);
             if (!empty($rs)) {
                 //update new user
                 $arr = array('amount' => $rs['amount'] + $amount, 'statusDate' => $data['date']);
                 // 	    			print_r($arr);exit();
                 $dbdata->updateCurrentBalanceById($rs['id'], $arr);
             } else {
                 $date = date("Y-m-d H:i:s");
                 //change it to current edit
                 $arr = array('amount' => $amount, 'currencyType' => $currency_type, 'userid' => $data['user_id'], 'statusDate' => $data['date']);
                 $dbdata->AddCurrentBalanceById($arr);
             }
             $rs = $dbdata->DetechCapitalExist($data['old_user'], $currency_type, $data['old_date']);
             if (!empty($rs)) {
                 //update old user
                 $arr = array('amount' => $rs['amount'] - $data['old_amount'], 'statusDate' => $data['date']);
                 $dbdata->updateCurrentBalanceById($rs['id'], $arr);
             }
         } else {
             //if the same user edite
             $old_amount = (double) $data['old_amount'];
             //convert to float
             $new_amount = (double) $amount;
             if ($old_amount != $new_amount) {
                 $value = $new_amount - $old_amount;
                 $rs = $dbdata->DetechCapitalExist($data['user_id'], $currency_type, $data['old_date']);
                 if (!empty($rs)) {
                     $arr = array('amount' => $rs['amount'] + $value, 'statusDate' => $data['date']);
                     $dbdata->updateCurrentBalanceById($rs['id'], $arr);
                 } else {
                     // 						$date = date("Y-m-d H:i:s");
                     $arr = array('amount' => $amount, 'currencyType' => $currency_type, 'userid' => $data['user_id'], 'statusDate' => $data['date']);
                     $dbdata->AddCurrentBalanceById($arr);
                 }
             } else {
                 $rs = $dbdata->DetechCapitalExist($data['user_id'], $currency_type, $data['old_date']);
                 if (!empty($rs)) {
                     $arr = array('statusDate' => $data['date']);
                     $dbdata->updateCurrentBalanceById($rs['id'], $arr);
                 } else {
                     // 						$date = date("Y-m-d H:i:s");
                     $arr = array('amount' => $amount, 'currencyType' => $currency_type, 'userid' => $data['user_id'], 'statusDate' => $data['date']);
                     $dbdata->AddCurrentBalanceById($arr);
                 }
             }
         }
         $db->commit();
     } catch (Exception $e) {
         $db->rollBack();
     }
 }
示例#7
0
 public function AddTransactionWithDraw($data)
 {
     //after delete withdraw then after add withdraw
     $this->_name = 'cs_withdraw';
     $session_user = new Zend_Session_Namespace('auth');
     $user_id = $session_user->user_id;
     if (empty($data['withdraw_dollar'])) {
         $w_dollar = 0;
     } else {
         $w_dollar = $data['withdraw_dollar'];
         $rs_dollar = $this->getMoneyInAccountBySender($data['sender'], 1);
         $this->updateOldDeposit($w_dollar, $rs_dollar);
     }
     if (empty($data['withdraw_bath'])) {
         $w_bath = 0;
     } else {
         $w_bath = $data['withdraw_bath'];
         $rs_bath = $this->getMoneyInAccountBySender($data['sender'], 2);
         $this->updateOldDeposit($w_bath, $rs_bath);
     }
     if (empty($data['withdraw_riel'])) {
         $w_riel = 0;
     } else {
         $w_riel = $data['withdraw_riel'];
         $rs_riel = $this->getMoneyInAccountBySender($data['sender'], 3);
         $this->updateOldDeposit($w_riel, $rs_riel);
     }
     $this->_name = 'cs_withdraw';
     $data = array('sender_id' => $data['sender'], 'invoice' => $data['invoice_no'], 'wd_amountdollar' => $w_dollar, 'wd_amountbath' => $w_bath, 'wd_amountriel' => $w_riel, 'user_id' => $user_id, 'create_date' => $data['send_date']);
     $id = $this->insert($data);
     $process = 0;
     $amount = 0;
     $dbc = new Application_Model_DbTable_DbCapital();
     for ($i = 1; $i < 4; $i++) {
         //for add capital detail and update current capital by staff
         if (!empty($w_dollar) and $i == 1) {
             $process = 1;
             $curr_type = 1;
             $amount = $w_dollar;
         } elseif (!empty($w_bath) and $i == 2) {
             $process = 1;
             $curr_type = 2;
             $amount = $w_bath;
         } elseif (!empty($w_riel) and $i == 3) {
             $process = 1;
             $curr_type = 3;
             $amount = $w_riel;
         }
         if ($process == 1) {
             //with draw tran_type = 7
             $_arr = array('tran_id' => $id, 'tran_type' => 7, 'curr_type' => $curr_type, 'amount' => -$amount, 'user_id' => $user_id);
             $dbc->addMoneyToCapitalDetail($_arr);
             $rs = $dbc->DetechCapitalExist($user_id, $curr_type, null);
             if (!empty($rs)) {
                 //update old user
                 $arr = array('amount' => $rs['amount'] - $amount);
                 $dbc->updateCurrentBalanceById($rs['id'], $arr);
             } else {
                 $date = date("Y-m-d H:i:s");
                 $arr = array('amount' => -$amount, 'currencyType' => $curr_type, 'userid' => $user_id, 'statusDate' => $date);
                 $dbc->AddCurrentBalanceById($arr);
             }
         }
         $process = 0;
     }
 }
示例#8
0
 /**
  * Update For data exchange
  * @param Array $data
  * @return number
  */
 function updateData($data)
 {
     $db_cap = new Application_Model_DbTable_DbCapital();
     $session_user = new Zend_Session_Namespace('auth');
     $to_type = $this->getCurrencyById("`name`, `symbol`,`country_id`", $data["to_amount_type"]);
     $from_type = $this->getCurrencyById("`name`, `symbol`,`country_id`", $data["from_amount_type"]);
     $status = "in";
     if ($data["from_amount_type"] == 2 && $data["to_amount_type"] == 1 || $data["from_amount_type"] == 3) {
         $status = "out";
     }
     $_data = array("changedAmount" => $data["return_money"], "specail_customer" => empty($data['special_cus']) ? 0 : 1, "toAmount" => $data["to_amount"], "toAmountType" => $to_type["symbol"], "rate" => $data["rate"], "fromAmountType" => $from_type["symbol"], "fromAmount" => $data["from_amount"], "recievedType" => $from_type["symbol"], "recievedAmount" => $data["recieve_money"], "statusDate" => date('Y-m-d H:i:s'), "userid" => $session_user->user_id, "status" => $status, "from_to" => $from_type['name'] . " - " . $to_type["name"]);
     $result = $this->getDataById($data['id']);
     $user_id = $session_user->user_id;
     $db = $this->getAdapter();
     $db->beginTransaction();
     try {
         if ($result) {
             if ($data['from_amount'] != $result['fromAmount']) {
                 //if amount has changed
                 //update to capital_detail
                 $arr_cdfrom = array('curr_type' => $data["from_amount_type"], 'amount' => $data["from_amount"], 'date' => date('Y-m-d'));
                 $capital_detail = $db_cap->getCapitalDetailById($data['id'], 3, $data["from_amount_type"]);
                 $db_cap->updateCapitalDetailById($capital_detail['id'], $arr_cdfrom);
                 $arr_cdto = array('curr_type' => $data["to_amount_type"], 'amount' => $data["to_amount"], 'date' => date('Y-m-d'));
                 $capital_detail = $db_cap->getCapitalDetailById($data['id'], 3, $data["to_amount_type"]);
                 $db_cap->updateCapitalDetailById($capital_detail['id'], $arr_cdto);
                 //*************************************************************
                 //update to cs_current_capital
                 $amount = $data["from_amount"] - $data["return_money"];
                 $to = $data['to_amount'] - $result['toAmount'];
                 $from = $amount - $result['fromAmount'];
                 $currency_type_from = $data["from_amount_type"];
                 $currency_type_to = $data["to_amount_type"];
                 // 			    		print_r($_data);echo "**data<br/>";
                 // 			    		print_r($result);echo "**result<br/>";
                 // 			    		echo "to=".$to."<br/>from=".$from."<br/>amount=".$amount."<br/>";
                 // 		    		echo $amount." *** ".$amount_to;
                 // 		    		exit;
                 //from amount
                 $rs = $db_cap->DetechCapitalExist($user_id, $currency_type_from, null);
                 //check if add capital exist
                 // 			    		print_r($rs);echo "***rs from<br/>";
                 if (!empty($rs)) {
                     $balan = $rs['amount'] - abs($from);
                     if ($from > 0) {
                         $balan = $rs['amount'] + abs($from);
                     }
                     $arr = array('amount' => $balan);
                     $db_cap->updateCurrentBalanceById($rs['id'], $arr);
                 } else {
                     $arr = array('amount' => $data["from_amount"], 'currencyType' => $currency_type_from, 'userid' => $user_id, 'statusDate' => date("Y-m-d H:i:s"));
                     $db_cap->AddCurrentBalanceById($arr);
                 }
                 // 			    		print_r($arr);echo "**arr from<br/>";
                 //end from amount
                 //to amount
                 $rs = $db_cap->DetechCapitalExist($user_id, $currency_type_to, null);
                 //check if add capital exist
                 // 			    		print_r($rs);echo "***rs to<br/>";
                 if (!empty($rs)) {
                     $balan = $rs['amount'] + abs($to);
                     if ($from > 0) {
                         $balan = $rs['amount'] - abs($to);
                     }
                     $arr = array('amount' => $balan);
                     $db_cap->updateCurrentBalanceById($rs['id'], $arr);
                 } else {
                     $arr = array('amount' => -$data['to_amount'], 'currencyType' => $currency_type_to, 'userid' => $user_id, 'statusDate' => date("Y-m-d H:i:s"));
                     $db_cap->AddCurrentBalanceById($arr);
                 }
                 // 			    		print_r($arr);echo "**arr to<br/>";exit;
                 //end to amount
             }
             $this->_name = 'cs_exchange';
             $where = $this->getAdapter()->quoteInto('id=?', $data['id']);
             $this->update($_data, $where);
         }
         //     	return  $this->update($_data, $where);
         return $db->commit();
     } catch (Exception $e) {
         $db->rollBack();
     }
 }
示例#9
0
    public function reStroreDataBeforeUpdateExchange($data){
    	
    	$db = $this->getAdapter();
    	$db->beginTransaction();
    	try{
	    	$tran_id = $data['id'];
	    	$tran_type = 3;
	    	
	    	$sql = " SELECT 
					  id,
					  tran_id,
					  tran_type,
					  curr_type,
					  amount,
					  sign,
					  date,
					  income,
					  user_id 
					FROM
					  `cs_capital_detail` 
					WHERE tran_id = $tran_id
					  AND tran_type = $tran_type ";
	    	$rows = $db->fetchAll($sql);
	    	if($rows){
	    		$db_cap = new Application_Model_DbTable_DbCapital();//for data capital
	    		foreach($rows as $row){
	    			
	    			$session_user=new Zend_Session_Namespace('auth');
	    			$income = 1;
	    			$date = $row['date'];
	    			///update date current capital if get money from sender////////////////////
	    			$rs = $db_cap->DetechCapitalExist($session_user->user_id, $row['curr_type'],$date);
	    			if(!empty($rs)){//update new user
	    				$amount = $row['amount'];
	    				if($row['sign']==0){
	    					$amount = -$row['amount'];
	    				}
	    				$arr = array(
	    						'amount'=>$rs['amount']-$amount
	    				);
	    				$db_cap->updateCurrentBalanceById($rs['id'],$arr);
	    			}else{
	    			}
	    			
	    		}
	    		$this->_name='cs_capital_detail';
	    		$where =" tran_type =3 AND tran_id = $tran_id ";
	    		$this->delete($where);
	    		
	    		$this->_name='cs_exchange';
	    		$where = " id = $tran_id ";
	    		$this->delete($where);
	    		
	    		//////////for add new record
	    		
	    		$this->_name = 'cs_exchange';
	    		$session_user=new Zend_Session_Namespace('auth');
	    		 
	    		$data["to_amount_type"] =$data['exchangeto'];
	    		$to_type = $this->getCurrencyById("`name`, `symbol`", $data["to_amount_type"]);
	    		$from_type = $this->getCurrencyById("`name`, `symbol`", $data["exchangefrom"]);
	    		$status = "in";
	    		if(($data["exchangefrom"] == 2 && $data["to_amount_type"] == 1) || $data["exchangefrom"] == 3 ){
	    			$status = "out";
	    		}
	    		
	    		$date = (!empty($date))?$date:date('Y-m-d H:i:s');
	    		
	    		$db = $this->getAdapter();
	    		$user_id = $session_user->user_id;
	    		$_data=array(
	    				"changedAmount"=>$data["return_money"],//
	    				"recieptNo"=>$data["inv_no"],//
	    				"toAmount"=>$data["to_amount"],
	    				"toAmountType"=>$to_type["symbol"],
	    				"rate"=>$data["rate"],
	    				"fromAmountType"=>$from_type["symbol"],
	    				"fromAmount"=>$data["from_amount"],
	    				"recievedType"=>$from_type["symbol"],
	    				"recievedAmount"=>$data["recieve_money"],
	    				"statusDate"=>$date,//date('Y-m-d H:i:s'),
	    				"userid"=>$user_id,
	    				"status"=>$status,
	    				"specail_customer"=>(empty($data['special_cus']))? 0 : 1,
	    				"from_to"=>$from_type['name'] . " - " . $to_type["name"]
	    		);
	    		$ex_id = $this->insert($_data);
	    		
	    		
	    		////////////capital
	    		
	    		
	    		$arr_cd = array(
	    				'tran_id'=>$ex_id,
	    				'tran_type'=>3,
	    				'date'=>$date,
	    				'user_id'=>$user_id,
	    		);
	    		
	    		$db_cap = new Application_Model_DbTable_DbCapital();
	    		//from amount
	    		$currency_type = $data["exchangefrom"];
	    		$amount = ($data["from_amount"] - $data["return_money"]);
	    		$rs = $db_cap->DetechCapitalExist($user_id,$currency_type,$date);//check if add capital exist
	    		if(!empty($rs)){
	    			$arr = array(
	    					'amount'=>$rs['amount']+$amount
	    			);
	    			$db_cap->updateCurrentBalanceById($rs['id'],$arr);
	    		}else{
	    			$arr =array(
	    					'amount'=>$amount,
	    					'currencyType'=>$currency_type,
	    					'userid'=>$user_id,
	    					'statusDate'=>$date//date("Y-m-d H:i:s")
	    			);
	    			$db_cap->AddCurrentBalanceById($arr);
	    		}
	    		//end from amount
	    		
	    		//insert to capital_detail
	    		$arr_cd['curr_type']=$currency_type;
	    		$arr_cd['amount']=$data["from_amount"];
	    		$db_cap->addMoneyToCapitalDetail($arr_cd);
	    		
	    		//to amount
	    		$currency_type = $data["to_amount_type"];
	    		$rs = $db_cap->DetechCapitalExist($user_id,$currency_type,$date);//check if add capital exist
	    		if(!empty($rs)){
	    			$arr = array(
	    					'amount'=>$rs['amount']-$data["to_amount"]
	    			);
	    			$db_cap->updateCurrentBalanceById($rs['id'],$arr);
	    		}else{
	    			$arr =array(
	    					'amount'=>-$data["to_amount"],
	    					'currencyType'=>$currency_type,
	    					'userid'=>$user_id,
	    					'statusDate'=>$date//date("Y-m-d H:i:s")
	    			);
	    			$db_cap->AddCurrentBalanceById($arr);
	    		}
	    		//end to amount
	    		//insert to capital_detail
	    		$arr_cd['curr_type']=$currency_type;
	    		$arr_cd['amount']=-$data["to_amount"];
	    		$db_cap->addMoneyToCapitalDetail($arr_cd);
	    	}
	    	$db->commit();
    	}catch(Exception $err){
    		$db->rollBack();
    	}
    	
    }