Ejemplo n.º 1
0
 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();
     }
 }