Ejemplo n.º 1
0
 function __construct($check_ip)
 {
     //initialize MDB2
     $this->_MDB2 = initDB();
     $this->_MDB2_WRITE = initWriteDB();
     $this->_ERROR_CODE = $check_ip;
     $this->class_name = get_class($this);
     $this->items = array();
     $arr = array('insertOrderTemp' => array('input' => array('OrderNumber', 'AccountNo', 'Symbol', 'OrderQuantity', 'OrderPrice', 'OrderStyleID', 'MatchedQuantity', 'OrderSideName', 'StockExchangeID', 'OrderDate', 'CreatedBy'), 'output' => array('OrderTempID')), 'insertStockDetail' => array('input' => array('ConfirmNo', 'OrderNumber', 'AccountID', 'StockID', 'MatchedQuantity', 'MatchedPrice', 'OrderSideID', 'MatchedSession', 'TradingDate', 'CreatedBy'), 'output' => array('StockDetailID')), 'insertSellingOrderForTransactionExecute' => array('input' => array('OrderNumber', 'AccountNo', 'Symbol', 'OrderQuantity', 'OrderPrice', 'Session', 'OrderStyleID', 'Note', 'StockExchangeID', 'OrderDate', 'CreatedBy'), 'output' => array('ID')), 'insertBuyingOrderForTransactionExecute' => array('input' => array('OrderNumber', 'AccountNo', 'Symbol', 'OrderQuantity', 'OrderPrice', 'Session', 'OrderStyleID', 'Note', 'StockExchangeID', 'OrderDate', 'CreatedBy'), 'output' => array('ID')), 'insertBuyingOrderForTransactionExecuteWithoutBlockingMoney' => array('input' => array('OrderNumber', 'AccountNo', 'Symbol', 'OrderQuantity', 'OrderPrice', 'Session', 'OrderStyleID', 'Note', 'StockExchangeID', 'OrderDate', 'CreatedBy'), 'output' => array('ID')), 'insertBuyingOrderForTransactionExecuteWithReservingMoney' => array('input' => array('OrderNumber', 'AccountNo', 'Symbol', 'OrderQuantity', 'OrderPrice', 'Session', 'OrderStyleID', 'Note', 'StockExchangeID', 'OrderDate', 'CreatedBy'), 'output' => array('ID')), 'insertStockDetailOnline' => array('input' => array('ConfirmNo', 'OrderNumber', 'MatchedQuantity', 'MatchedPrice', 'MatchedSession', 'TradingDate', 'CreatedBy'), 'output' => array('ID')), 'insertStockDetailForExecuteTransaction' => array('input' => array('ConfirmNo', 'OrderNumber', 'MatchedQuantity', 'MatchedPrice', 'MatchedSession', 'TradingDate', 'CreatedBy'), 'output' => array('ID')), 'insertStockDetailForKLDK' => array('input' => array('ConfirmNo', 'OrderNumber', 'MatchedQuantity', 'MatchedPrice', 'MatchedSession', 'TradingDate', 'CreatedBy'), 'output' => array('ID')), 'updateOrderTemp' => array('input' => array('ID', 'AccountNo', 'OrderQuantity', 'OrderStyleID', 'Price'), 'output' => array()), 'executeStockOfBuyingDeal' => array('input' => array('ID', 'UpdatedBy'), 'output' => array()), 'executeStockOfSellingDeal' => array('input' => array('ID', 'UpdatedBy'), 'output' => array()), 'executeMoneyForSellingTransaction' => array('input' => array('TradingDate', 'UpdatedBy'), 'output' => array()), 'executeMoneyForBuyingTransaction' => array('input' => array('TradingDate', 'UpdatedBy'), 'output' => array()), 'executeMoneyForBuyingTransactionOfAccount' => array('input' => array('AccountID', 'AmountMoney', 'TradingDate', 'Updatedby'), 'output' => array()), 'executeEndTransaction' => array('input' => array('TradingDate'), 'output' => array()), 'confirmMatchedAgencyFee' => array('input' => array('TradingDate'), 'output' => array()), 'updateStockDetail' => array('input' => array('ID', 'OrderNumber', 'AccountNo', 'MatchedQuantity', 'UpdatedBy'), 'output' => array()), 'editBuyingOrderWhenExecTransaction' => array('input' => array('OrderID', 'OrderQuantity', 'OrderPrice', 'OrderStyleID', 'AccountNo', 'UpdatedBy'), 'output' => array()), 'editSellingOrderWhenExecTransaction' => array('input' => array('OrderID', 'OrderQuantity', 'OrderPrice', 'OrderStyleID', 'UpdatedBy'), 'output' => array()), 'listWarningOrderTemp' => array('input' => array('TradingDate', 'StockExchangeID'), 'output' => array('OrderTempID', 'OrderNumber', 'AccountNo', 'OrderSide', 'Symbol', 'OrderQuantity', 'OrderPrice', 'OrderStyleName', 'OrderDate', 'ExchangeName', 'StockExchangeID', 'OrderSideID', 'OrderStyleID', 'MatchedQuantity', 'Value')), 'getPrivateStockDetailWithoutConfirmList' => array('input' => array('OrderNumber', 'TradingDate'), 'output' => array('ID', 'ConfirmNo', 'OrderNumber', 'AccountNo', 'OrderSide', 'Symbol', 'MatchedQuantity', 'MatchedPrice', 'Note', 'TradingDate', 'StockExchangeID', 'OrderSideID')), 'getStockDetailWithoutConfirmList' => array('input' => array('OrderDate'), 'output' => array('ID', 'ConfirmNo', 'OrderNumber', 'AccountNo', 'OrderSide', 'Symbol', 'MatchedQuantity', 'MatchedPrice', 'TradingDate', 'StockExchangeID', 'OrderSideID', 'Note')), 'getOrderWithoutOrderNumberList' => array('input' => array('OrderDate', 'StockExchangeID'), 'output' => array('ID', 'OrderNumber', 'AccountNo', 'OrderSide', 'Symbol', 'OrderQuantity', 'OrderPrice', 'Session', 'StatusName', 'OrderStyleName', 'FromName', 'StockExchangeID')), 'getStockDetailWithConfirmList' => array('input' => array('OrderDate'), 'output' => array('ID', 'ConfirmNo', 'OrderNumber', 'OrderSide', 'AccountNo', 'Symbol', 'MatchedQuantity', 'MatchedPrice', 'MatchedSession', 'MatchedAgencyFee', 'Note', 'StockExchangeID')), 'getFullStockDetailWithConfirmList' => array('input' => array('OrderDate'), 'output' => array('ID', 'ConfirmNo', 'OrderNumber', 'OrderSide', 'AccountNo', 'Symbol', 'MatchedQuantity', 'MatchedPrice', 'MatchedSession', 'MatchedAgencyFee', 'MatchedValue', 'Commission', 'LogMoney', 'TMoney', 'StockExchangeID')), 'getReportStockList' => array('input' => array('TradingDate'), 'output' => array('Symbol', 'Mua', 'Ban')), 'getStockDetailWithoutExecAgencyFeeList' => array('input' => array('TradingDate'), 'output' => array('ID', 'ConfirmNo', 'OrderNumber', 'AccountNo', 'OrderSide', 'Symbol', 'MatchedQuantity', 'MatchedPrice', 'Note', 'TradingDate', 'StockExchangeID', 'OrderSideID')), 'getStockDetailAfterExecMoney' => array('input' => array('TradingDate'), 'output' => array('ID', 'ConfirmNo', 'OrderNumber', 'OrderSide', 'AccountNo', 'Symbol', 'MatchedQuantity', 'MatchedPrice', 'MatchedSession', 'MatchedAgencyFee', 'Note', 'StockExchangeID')), 'checkOrderIsWarningOrNormal' => array('input' => array('OrderTempID'), 'output' => array()), 'getNextOrderNumber' => array('input' => array('TradingDate'), 'output' => array('OrderNumber')), 'getNextConfirmNo' => array('input' => array('TradingDate'), 'output' => array('ConfirmNo')), 'getAccountWithBuyingTransactionList' => array('input' => array('TradingDate'), 'output' => array('AccountID', 'AccountNo', 'AmountMoney')), 'getAuctionForXML' => array('input' => array('OrderDate', 'BankID'), 'output' => array('FileName')), 'getAllSellForXML' => array('input' => array('OrderDate', 'BankID'), 'output' => array('FileName')), 'getAllCancelBidForXML' => array('input' => array('OrderDate', 'BankID'), 'output' => array('FileName')), 'getDABLockMoneyFile' => array('input' => array(), 'output' => array('FileContent')), 'DABgetListOrderInfo' => array('input' => array('OrderDate'), 'output' => array('OrderID', 'AccountNo', 'Value')), 'DABgetResultFile' => array('input' => array('FileName'), 'output' => array('FileContent')), 'CheckTransaction' => array('input' => array(), 'output' => array()), 'getBuyInfo' => array('input' => array('OrderDate'), 'output' => array("AccountNo", "Amount")), 'getBuyInfoForChecking' => array('input' => array(), 'output' => array("AccountNo", "LogMoney")), 'getSellInfo' => array('input' => array('OrderDate'), 'output' => array("AccountNo", "Amount")), 'getSellInfoForChecking' => array('input' => array(), 'output' => array("AccountNo", "TMoney")), 'getBuyInfoForBravo' => array('input' => array('OrderDate'), 'output' => array("AccountNo", "Amount", "Fee", "BranchName")), 'getSellInfoForBravo' => array('input' => array('OrderDate'), 'output' => array("AccountNo", "Amount", "Fee", "BranchName")), 'getBuyInfoForBravoChecking' => array('input' => array(), 'output' => array("AccountNo", "LogMoney")), 'getSellInfoForBravoChecking' => array('input' => array(), 'output' => array("AccountNo", "TMoney")), 'editMoney' => array('input' => array('OrderID', 'NewValue'), 'output' => array()), 'cutMoney' => array('input' => array('OrderID'), 'output' => array()), 'insertMissingDeal' => array('input' => array('OrderNumber', 'AccountNo', 'Symbol', 'StockExchangeID', 'Quantity', 'Price', 'OrderSideID', 'Session', 'TradingDate', 'Note', 'CreatedBy'), 'output' => array('OrderID')), 'getOrderListToEditOrAuction' => array('input' => array('OrderID', 'AccountNo'), 'output' => array('ID', 'AccountNo', 'Symbol', 'OrderQuantity', 'OrderPrice', 'Note', 'OrderSide')), 'getMoneyBeforeCutting' => array('input' => array('OrderID'), 'output' => array('TotalAmount')), 'calculateAveragePrices' => array('input' => array(), 'output' => array()), 'getOrderTempMissingList' => array('input' => array('OrdeDate', 'IsValid', 'StockExchangeID'), 'output' => array('OrderID', 'OrderNumber', 'Symbol', 'AccountNo', 'OrderQuantity', 'OrderPrice', 'OrderSideName', 'OrderStyleID', 'OrderStyleName', 'StockExchangeID', 'StockExchange', 'OrderMissingStatus')), 'updateOrderTempMissing' => array('input' => array('OrderID', 'AccountNo'), 'output' => array()), 'updateOrderTempMissingIsValidField' => array('input' => array('OrderID'), 'output' => array()), 'changeOrderStatusToFailed' => array('input' => array('OrderID', 'CreatedBy'), 'output' => array()), 'deleteDeal' => array('input' => array('ID'), 'output' => array()), 'editDeal' => array('input' => array('ID', 'AccountNo', 'Quantity', 'CreatedBy'), 'output' => array()), 'getListStockDetailForExecTrans' => array('input' => array('TradingDate', 'AccountNo', 'StockExchangeID'), 'output' => array('ID', 'OrderNumber', 'AccountNo', 'Symbol', 'MatchedQuantity', 'MatchedPrice', 'OrderSideName', 'MatchedSession', 'MatchedAgencyFee', 'IsExist')), 'getStockBalanceListForTTBT' => array('input' => array('TradingDate', 'AccountNo'), 'output' => array('AccountNo', 'Symbol', 'T3Quantity', 'AccountID', 'StockID')), 'executeStockTTBTPrivateAccount' => array('input' => array('AccountID', 'StockID', 'T3Quantity', 'TradingDate'), 'output' => array('ID')), 'getAdditionCommission' => array('input' => array('TradingDate', 'UpdatedBy'), 'output' => array()), 'insertAdditionallyCommission' => array('input' => array('TradingDate', 'MinCommission', 'CreatedBy'), 'output' => array()), 'lockMoney' => array('input' => array('OrderID', 'Amount', 'AccountNo'), 'output' => array()), 'getMatchedOrderUnLocked' => array('input' => array(), 'output' => array('OrderID', 'AccountNo', 'Symbol')), 'getInvalidBankIDOfMatchedOrder' => array('input' => array(), 'output' => array('OrderID', 'AccountNo', 'Symbol')), 'getStockDetailWithoutConfirmForHOSE' => array('input' => array('TradingDate', 'TFlag'), 'output' => array('ID', 'OrderNumber', 'AccountNo', 'OrderSideName', 'Symbol', 'MatchedQuantity', 'MatchedPrice', 'Note', 'TradingDate', 'StockExchangeID', 'OrderSideID', 'OrderID', 'TFlag')), 'updateTFlagForHOSE' => array('input' => array('OrderID', 'TFlag', 'UpdatedBy'), 'output' => array()), 'updateTFlagForHNX' => array('input' => array('OrderID', 'TFlag', 'UpdatedBy'), 'output' => array()), 'getStockDetailWithoutConfirmForHNX' => array('input' => array('TradingDate', 'TFlag'), 'output' => array('ID', 'OrderNumber', 'AccountNo', 'OrderSideName', 'Symbol', 'MatchedQuantity', 'MatchedPrice', 'Note', 'TradingDate', 'StockExchangeID', 'OrderSideID', 'OrderID', 'TFlag')), 'getMatchedQuantityGreaterThanOrderQuantity' => array('input' => array(), 'output' => array('AccountNo', 'Symbol', 'OrderID', 'MatchedQuantity', 'OrderQuantity')), 'confirmBuyOrderForVirtualBank' => array('input' => array('TradingDate', 'BankID'), 'output' => array()), 'cancelBuyOrderForVirtualBank' => array('input' => array('TradingDate', 'BankID'), 'output' => array()), 'getListMatchNotCutMoney' => array('input' => array('TradingDate', 'BankID', 'AccountNo'), 'output' => array('AccountNo', 'LockID', 'AccountID', 'OrderID', 'Symbol', 'MatchedQuantity', 'Value', 'Commission')), 'getList4Unlock' => array('input' => array('TradingDate', 'BankID', 'AccountNo'), 'output' => array('AccountNo', 'AccountID', 'LockID', 'BidAmount', 'OrderID', 'OrderNumber', 'OrderPrice', 'OrderQuantity', 'Symbol', 'StatusName')), 'unLockForVirtualBank' => array('input' => array('AccountID', 'LockID', 'BankID', 'LockAmount', 'UpdatedBy'), 'output' => array()), 'checkAuctionForVirtualBank' => array('input' => array('TradingDate', 'BankID'), 'output' => array('OrderID', 'AccountNo', 'Symbol', 'Amount', 'BidAmount', 'Delta')), 'getAuctionForNVB' => array('input' => array('OrderDate'), 'output' => array()));
     parent::__construct($arr);
 }
Ejemplo n.º 2
0
 function CBank($check_ip)
 {
     //initialize _MDB2
     $this->_MDB2 = initDB();
     $this->_MDB2_WRITE = initWriteDB();
     $this->_ERROR_CODE = $check_ip;
     //$this->_TIME_ZONE = get_timezon();
     $this->items = array();
     $this->class_name = get_class($this);
     $arr = array('listBank' => array('input' => array('TimeZone'), 'output' => array('ID', 'BankName', 'ShortName', 'Phone', 'BankAddress', 'Fax', 'Email', 'MaximumLoanMoney', 'MinimumLoanMoney', 'MaximumPayMoney', 'MinimumPayMoney', 'CreatedBy', 'CreatedDate', 'UpdatedBy', 'UpdatedDate')), 'listBankWithFilter' => array('input' => array('Where', 'TimeZone'), 'output' => array('ID', 'BankName', 'ShortName', 'Phone', 'BankAddress', 'Fax', 'Email', 'MaximumLoanMoney', 'MinimumLoanMoney', 'MaximumPayMoney', 'MinimumPayMoney', 'CreatedBy', 'CreatedDate', 'UpdatedBy', 'UpdatedDate')), 'addBank' => array('input' => array('BankName', 'ShortName', 'Phone', 'BankAddress', 'Fax', 'Email', 'MaximumLoanMoney', 'MinimumLoanMoney', 'MaximumPayMoney', 'MinimumPayMoney', 'CreatedBy'), 'output' => array('ID')), 'updateBank' => array('input' => array('ID', 'BankName', 'ShortName', 'Phone', 'BankAddress', 'Fax', 'Email', 'MaximumLoanMoney', 'MinimumLoanMoney', 'MaximumPayMoney', 'MinimumPayMoney', 'UpdatedBy'), 'output' => array()), 'deleteBank' => array('input' => array('ID', 'UpdatedBy'), 'output' => array()), 'listBankLoan' => array('input' => array('TimeZone'), 'output' => array('ID', 'BankID', 'BankName', 'LoanPeriod', 'LoanInterestRate', 'OverdueInterestRate', 'CreatedBy', 'CreatedDate', 'UpdatedBy', 'UpdatedDate')), 'listBankLoanWithFilter' => array('input' => array('Where', 'TimeZone'), 'output' => array('ID', 'BankID', 'BankName', 'LoanPeriod', 'LoanInterestRate', 'OverdueInterestRate', 'CreatedBy', 'CreatedDate', 'UpdatedBy', 'UpdatedDate')), 'addBankLoan' => array('input' => array('BankID', 'LoanPeriod', 'LoanInterestRate', 'OverdueInterestRate', 'CreatedBy'), 'output' => array('ID')), 'updateBankLoan' => array('input' => array('ID', 'BankID', 'LoanPeriod', 'LoanInterestRate', 'OverdueInterestRate', 'UpdatedBy'), 'output' => array()), 'deleteBankLoan' => array('input' => array('ID', 'UpdatedBy'), 'output' => array()), 'listRate' => array('input' => array('TimeZone'), 'output' => array('ID', 'BankID', 'BankName', 'FromValue', 'ToValue', 'PercentRate', 'UseMarketPrice', 'CreatedBy', 'CreatedDate', 'UpdatedBy', 'UpdatedDate')), 'listRateWithFilter' => array('input' => array('Where', 'TimeZone'), 'output' => array('ID', 'BankID', 'BankName', 'FromValue', 'ToValue', 'PercentRate', 'UseMarketPrice', 'CreatedBy', 'CreatedDate', 'UpdatedBy', 'UpdatedDate')), 'addRate' => array('input' => array('BankID', 'FromValue', 'ToValue', 'PercentRate', 'UseMarketPrice', 'CreatedBy'), 'output' => array('ID')), 'updateRate' => array('input' => array('ID', 'BankID', 'FromValue', 'ToValue', 'PercentRate', 'UseMarketPrice', 'UpdatedBy'), 'output' => array()), 'deleteRate' => array('input' => array('ID', 'UpdatedBy'), 'output' => array()), 'listSpecialRate' => array('input' => array('TimeZone'), 'output' => array('ID', 'BankID', 'BankName', 'StockID', 'StockName', 'FromValue', 'ToValue', 'PercentRate', 'UseMarketPrice', 'CreatedBy', 'CreatedDate', 'UpdatedBy', 'UpdatedDate')), 'listSpecialRateWithFilter' => array('input' => array('Where', 'TimeZone'), 'output' => array('ID', 'BankID', 'BankName', 'StockID', 'StockName', 'FromValue', 'ToValue', 'PercentRate', 'UseMarketPrice', 'CreatedBy', 'CreatedDate', 'UpdatedBy', 'UpdatedDate')), 'addSpecialRate' => array('input' => array('BankID', 'StockID', 'FromValue', 'ToValue', 'PercentRate', 'UseMarketPrice', 'CreatedBy'), 'output' => array('ID')), 'updateSpecialRate' => array('input' => array('ID', 'BankID', 'StockID', 'FromValue', 'ToValue', 'PercentRate', 'UseMarketPrice', 'UpdatedBy'), 'output' => array()), 'deleteSpecialRate' => array('input' => array('ID', 'UpdatedBy'), 'output' => array()), 'getPercentRate' => array('input' => array('BankID', 'StockID', 'MarketPrice'), 'output' => array('PercentRate', 'UseMarketPrice')), 'getTransactionTypeList' => array('input' => array(), 'output' => array('ID', 'Name', 'Type', 'Description')), 'getTransactionList' => array('input' => array('TimeZone', 'WhereClause'), 'output' => array('ID', 'AccountID', 'AccountNo', 'InvestorName', 'Amount', 'IsConfirmed', 'TransactionStatus', 'TransTypeName', 'TransTypeID', 'BankID', 'BankName', 'TradingDate', 'CreatedBy', 'UpdatedBy', 'TransactionBankID', 'TransactionBankName', 'CreatedDate', 'UpdatedDate', 'Note', 'TransBankBravoCode')), 'getAccountBankInfo' => array('input' => array('AccountID', 'BankID'), 'output' => array('AccountID', 'BankID', 'BankAccount', 'Amount', 'LockAmount', 'UsableAmount')), 'insertDeposit' => array('input' => array('AccountID', 'BankID', 'TransactionBankID', 'Amount', 'DepositDate', 'Note', 'CreatedBy'), 'output' => array('ID')), 'deleteDeposit' => array('input' => array('ID', 'UpdatedBy'), 'output' => array()), 'cofirmDeposit' => array('input' => array('ID', 'UpdatedBy', 'TransactionBankID', 'TransactionBankBravoCode', 'AccountNo', 'Amount', 'Note'), 'output' => array()), 'insertWithdrawal' => array('input' => array('AccountID', 'BankID', 'TransactionBankID', 'Amount', 'WithdrawalDate', 'Note', 'CreatedBy'), 'output' => array('ID')), 'deleteWithdrawal' => array('input' => array('ID', 'UpdatedBy'), 'output' => array()), 'cofirmWithdrawal' => array('input' => array('ID', 'UpdatedBy', 'TransactionBankID', 'TransactionBankBravoCode', 'AccountNo', 'Amount', 'Note'), 'output' => array()), 'getBankList' => array('input' => array(), 'output' => array('BankID', 'BankName', 'ShortName')), 'getVirtualBankOfAccount' => array('input' => array('AccountNo'), 'output' => array('AccountID', 'AccountNo', 'BankID', 'BankName', 'BankShortName')), 'getBankListForWD' => array('input' => array(), 'output' => array('BankID', 'BankName', 'ShortName')), 'getBankListByType' => array('input' => array('Type'), 'output' => array('BankID', 'BankName', 'ShortName')), 'getBankListByType4Account' => array('input' => array('Type', 'AccountID '), 'output' => array('BankID', 'BankAccount', 'BankName', 'ShortName')), 'insertInternalTransfer' => array('input' => array('FromAccountID', 'ToAccountID', 'BankID', 'Amount', 'TransactionDate', 'Note', 'CreatedBy'), 'output' => array('ID')), 'deleteInternalTransfer' => array('input' => array('ID', 'UpdatedBy'), 'output' => array()), 'confirmInternalTransfer' => array('input' => array('ID', 'UpdatedBy', 'FromAccountNo', 'ToAccountNo', 'Amount'), 'output' => array()), 'getListInternalTransfer' => array('input' => array('TimeZone', 'WhereClause'), 'output' => array('ID', 'FromAccountID', 'FromAccountNo', 'FromInvestorName', 'ToAccountID', 'ToAccountNo', 'ToInvestorName', 'Amount', 'TransactionStatus', 'IsConfirmed', 'BankID', 'BankName', 'TradingDate', 'CreatedBy', 'UpdatedBy')), 'updateAllAdvRate' => array('input' => array('BankID', 'RateForBank', 'RateForEPS', 'MinAdvCommission'), 'output' => array('varError')), 'listAllAdvRate' => array('input' => array('BankID'), 'output' => array('BankID', 'BankName', 'ShortName', 'RateForBank', 'RateForEPS', 'MinAdvCommission')), 'ReportVirtualBank_ReportTransactionByAccount' => array('input' => array('BankID', 'AccountNo', 'FromDate', 'ToDate'), 'output' => array('TradingDate', 'TransName', 'Note', 'Amount', 'Type', 'TransactionBankName', 'ConfirmedDate', 'PrevBalance', 'CreatedBy', 'UpdatedBy', 'SortDate')), 'ReportVirtualBank_GetAccountBalanceByDate' => array('input' => array('BankID', 'AccountNo', 'FromDate', 'ToDate'), 'output' => array('PrevBalance', 'NextBalance', 'AccountNo', 'InvestorName')));
     parent::__construct($arr);
 }
Ejemplo n.º 3
0
 function CBravoMoney($check_ip)
 {
     //initialize _MDB2
     $this->_MDB2 = initDB();
     $this->_MDB2_WRITE = initWriteDB();
     $this->_ERROR_CODE = $check_ip;
     //$this->_TIME_ZONE = get_timezon();
     $this->items = array();
     $this->class_name = get_class($this);
     $arr = array('SellingValueAndFeeListForBravo' => array('input' => array('TradingDate'), 'output' => array('AccountNo', 'Amount', 'Fee', 'Bank', 'BravoError', 'Tax')), 'SellingValueAndFeeListForBravoTDate' => array('input' => array('TradingDate'), 'output' => array('AccountNo', 'Amount', 'Fee', 'Bank', 'BravoError', 'Tax')), 'BuyingValueAndFeeListForBravo' => array('input' => array('TradingDate'), 'output' => array('AccountNo', 'Amount', 'Fee', 'Bank', 'BravoError')), 'PaidAdvanceForBravo' => array('input' => array('TradingDate'), 'output' => array('AccountNo', 'Amount', 'Fee', 'Bank', 'BravoError', 'BankID', 'OrderBankBravoCode')), 'CloseBravoAccount' => array('input' => array('AccountNo'), 'output' => array()));
     parent::__construct($arr);
 }
Ejemplo n.º 4
0
 function CVCB($check_ip)
 {
     //initialize _MDB2
     //$this->_MDB2 = initDB() ;
     $this->_MDB2_WRITE = initWriteDB();
     //$this->_MDB2_WRITE1 = initWriteDB();
     //$this->_MDB2_WRITE2 = initWriteDB();
     $this->_ERROR_CODE = $check_ip;
     //$this->_TIME_ZONE = get_timezon();
     $this->items = array();
     $this->class_name = get_class($this);
     $arr = array('OpenAccount' => array('input' => array('PersonalCard', 'Name', 'Address', 'BankAccountNo', 'PartnerType', 'dtBirthDay', 'PlaceOfBirth', 'dtDateIssue', 'PlaceIssue', 'ZipCode', 'Country', 'Email', 'Phone', 'Fax', 'CompanyAddress', 'CompanyPhone', 'MailingAddress', 'MailingPhone'), 'output' => array('PersonalCard', 'Name', 'Account', 'State', 'ResponseCode', 'RespString', 'OldNewAccount')));
     parent::__construct($arr);
 }
Ejemplo n.º 5
0
 /**
 	Function: insertBuyingOrderForTransactionExecuteWithReservingMoney
 */
 function insertBuyingOrderForTransactionExecuteWithReservingMoney($OrderNumber, $AccountNo, $Symbol, $OrderQuantity, $OrderPrice, $Session, $OrderStyleID, $Note, $StockExchangeID, $OrderDate, $CreatedBy)
 {
     $function_name = 'insertBuyingOrderForTransactionExecuteWithReservingMoney';
     $struct = '{urn:' . $this->class_name . '}' . $function_name . 'Struct';
     if (authenUser(func_get_args(), $this, $function_name) > 0) {
         return returnXML(func_get_args(), $this->class_name, $function_name, $this->_ERROR_CODE, $this->items, $this);
     }
     if (!required($OrderNumber) || !required($AccountNo) || !required($Symbol) || !required($OrderDate) || !required($OrderQuantity) || !unsigned($OrderQuantity) || !required($OrderPrice) || !required($Session) || !unsigned($Session) || !required($OrderStyleID) || !unsigned($OrderStyleID) || !required($StockExchangeID) || !unsigned($StockExchangeID)) {
         if (!required($OrderNumber)) {
             $this->_ERROR_CODE = 34410;
         }
         if (!required($AccountNo)) {
             $this->_ERROR_CODE = 34411;
         }
         if (!required($Symbol)) {
             $this->_ERROR_CODE = 34412;
         }
         if (!required($OrderQuantity) || !unsigned($OrderQuantity)) {
             $this->_ERROR_CODE = 34413;
         }
         if (!required($OrderPrice)) {
             $this->_ERROR_CODE = 34414;
         }
         if (!required($Session) || !unsigned($Session)) {
             $this->_ERROR_CODE = 34415;
         }
         if (!required($OrderDate)) {
             $this->_ERROR_CODE = 34416;
         }
         if (!required($OrderStyleID) || !unsigned($OrderStyleID)) {
             $this->_ERROR_CODE = 34417;
         }
         if (!required($StockExchangeID) || !unsigned($StockExchangeID)) {
             $this->_ERROR_CODE = 34418;
         }
     } else {
         $query = sprintf("CALL sp_insertBuyingOrderForTransactionExecute('%s', '%s', '%s', %u, %u, %u, %u, '%s', %u, '%s', '%s')", $OrderNumber, $AccountNo, $Symbol, $OrderQuantity, $OrderPrice, $Session, $OrderStyleID, $Note, $StockExchangeID, $OrderDate, $CreatedBy);
         $rs = $this->_MDB2_WRITE->extended->getRow($query);
         $this->_MDB2_WRITE->disconnect();
         if (empty($rs)) {
             $this->_ERROR_CODE = 34419;
         } else {
             $result = $rs['varerror'];
             if ($result < 0) {
                 switch ($result) {
                     case '-1':
                         $this->_ERROR_CODE = 34420;
                         break;
                     case '-2':
                         $this->_ERROR_CODE = 34421;
                         break;
                     case '-3':
                         $this->_ERROR_CODE = 34422;
                         break;
                     case '-4':
                         $this->_ERROR_CODE = 34423;
                         break;
                 }
             } else {
                 //block money in bank
                 $query = sprintf("SELECT * FROM vw_ListAccountBank_Detail WHERE AccountNo='%s' ORDER BY Priority ", $AccountNo);
                 $bank_rs = $this->_MDB2->extended->getAll($query);
                 if (strpos(PAGODA_ACCOUNT, $AccountNo) === false) {
                     $dab_rs = 999;
                     $isQuotaAccount = CheckIsQuotaAccount($AccountNo);
                     if ($isQuotaAccount != 0) {
                         // Neu khach hang su dung dich vu T2 thi chi giao dich voi bank NHHM
                         $BankID = NHHM;
                         $mdb = initWriteDB();
                         $query = sprintf("CALL sp_VirtualBank_Lock('%s', %u,  %u, %f, '%s', '%s')", $AccountNo, NHHM, $result, $rs['varordervalue'], $OrderDate, $CreatedBy);
                         $off_rs = $mdb->extended->getRow($query);
                         $mdb->disconnect();
                         $dab_rs = $off_rs['varerror'];
                     } else {
                         for ($i = 0; $i < count($bank_rs); $i++) {
                             switch ($bank_rs[$i]['bankid']) {
                                 case DAB_ID:
                                     $dab =& new CDAB();
                                     $dab_rs = $dab->blockMoney($bank_rs[$i]['bankaccount'], $bank_rs[$i]['cardno'], $AccountNo, $result, 1, $OrderDate);
                                     break;
                                 case VCB_ID:
                                     $dab =& new CVCB();
                                     $OrderID = $result . $rs['varunitcode'];
                                     $dab_rs = $dab->blockMoney($AccountNo, $OrderID, 1);
                                     break;
                                 case NVB_ID:
                                     $dab =& new CNVB();
                                     $dab_rs = $dab->blockMoney(substr($result . date("His"), 3), $bank_rs[$i]['bankaccount'], 1, $result);
                                     break;
                                 case OFFLINE:
                                     $query = sprintf("CALL sp_VirtualBank_Lock('%s', %u,  %u, %f, '%s', '%s')", $AccountNo, OFFLINE, $result, 1, $OrderDate, $CreatedBy);
                                     $this->_MDB2_WRITE->connect();
                                     $off_rs = $this->_MDB2_WRITE->extended->getRow($query);
                                     $this->_MDB2_WRITE->disconnect();
                                     $dab_rs = $off_rs['varerror'];
                                     break;
                             }
                             if ($dab_rs == 0) {
                                 $BankID = $bank_rs[$i]['bankid'];
                                 break;
                             }
                         }
                     }
                 } else {
                     $dab_rs = 0;
                     $BankID = EXI_ID;
                 }
                 if ($dab_rs != 0) {
                     //fail
                     if ($isQuotaAccount != 0) {
                         // ==> BankID = NHHM
                         switch ($dab_rs) {
                             case '-1':
                                 $this->_ERROR_CODE = 30650;
                                 break;
                             case '-2':
                                 $this->_ERROR_CODE = 30651;
                                 break;
                             case '-3':
                                 $this->_ERROR_CODE = 30652;
                                 break;
                             case '-4':
                                 $this->_ERROR_CODE = 30653;
                                 break;
                             default:
                                 $this->_ERROR_CODE = $dab_rs;
                         }
                     } else {
                         $i = $i - 1;
                         switch ($bank_rs[$i]['bankid']) {
                             case DAB_ID:
                                 switch ($dab_rs) {
                                     case '-1':
                                         $this->_ERROR_CODE = 41020;
                                         break;
                                     case '-2':
                                         $this->_ERROR_CODE = 41021;
                                         break;
                                     case '-3':
                                         $this->_ERROR_CODE = 41022;
                                         break;
                                     case '-4':
                                         $this->_ERROR_CODE = 41023;
                                         break;
                                     case '-5':
                                         $this->_ERROR_CODE = 41024;
                                         break;
                                     case '1':
                                         $this->_ERROR_CODE = 41025;
                                         break;
                                     case '2':
                                         $this->_ERROR_CODE = 41026;
                                         break;
                                     case '3':
                                         $this->_ERROR_CODE = 41027;
                                         break;
                                     case '4':
                                         $this->_ERROR_CODE = 41028;
                                         break;
                                     case '5':
                                         $this->_ERROR_CODE = 41030;
                                         break;
                                     case '99':
                                         $this->_ERROR_CODE = 41029;
                                         break;
                                     default:
                                         $this->_ERROR_CODE = $dab_rs;
                                 }
                                 break;
                             case VCB_ID:
                                 $this->_ERROR_CODE = $dab_rs;
                                 break;
                             case NVB_ID:
                                 $this->_ERROR_CODE = $dab_rs;
                                 break;
                             case NHHM:
                             case OFFLINE:
                                 switch ($dab_rs) {
                                     case '-1':
                                         $this->_ERROR_CODE = 30650;
                                         break;
                                     case '-2':
                                         $this->_ERROR_CODE = 30651;
                                         break;
                                     case '-3':
                                         $this->_ERROR_CODE = 30652;
                                         break;
                                     case '-4':
                                         $this->_ERROR_CODE = 30653;
                                         break;
                                     default:
                                         $this->_ERROR_CODE = $dab_rs;
                                 }
                                 break;
                         }
                         //switch
                     }
                     $this->_MDB2_WRITE->connect();
                     $query = sprintf("DELETE FROM %s WHERE ID=%u ", TBL_ORDER, $result);
                     $delete_rs = $this->_MDB2_WRITE->extended->getRow($query);
                 } else {
                     // bank
                     $this->items[0] = new SOAP_Value('item', $struct, array("ID" => new SOAP_Value("ID", "string", $result)));
                     $this->_MDB2_WRITE->connect();
                     $query = sprintf("CALL sp_updateBankIDWhenInsertWarningOrder( %u, %u ) ", $result, $BankID);
                     $status_rs = $this->_MDB2_WRITE->extended->getRow($query);
                     if (empty($status_rs)) {
                         $this->_ERROR_CODE = 34145;
                     }
                 }
             }
         }
     }
     return returnXML(func_get_args(), $this->class_name, $function_name, $this->_ERROR_CODE, $this->items, $this);
 }
Ejemplo n.º 6
0
 /**
 	Function: changeStatusFromTranferingToMatchedOrFailedForCancelOrderForHN
 	Description: change Status
 	Input: Order id
 	Output: success / error code
 */
 function changeStatusFromTranferingToMatchedOrFailedForCancelOrderForHN($OrderID, $IsMatched, $AccountNo, $UpdatedBy)
 {
     $function_name = 'changeStatusFromTranferingToMatchedOrFailedForCancelOrderForHN';
     $struct = '{urn:' . $this->class_name . '}' . $function_name . 'Struct';
     if (authenUser(func_get_args(), $this, $function_name) > 0) {
         return returnXML(func_get_args(), $this->class_name, $function_name, $this->_ERROR_CODE, $this->items, $this);
     }
     if (!required($OrderID) || !unsigned($OrderID)) {
         $this->_ERROR_CODE = 30220;
     } else {
         if (intval($IsMatched) == 1) {
             $query = sprintf("SELECT o1.OrderQuantity, o1.OrderPrice, o1.OrderAgencyFee,\r\n\t\t\t\t\t\t\t\t\t\to2.OrderQuantity AS OlderQuantity, o2.OrderAgencyFee AS OldOrderAgencyFee,\r\n\t\t\t\t\t\t\t\t\t\to1.OldOrderID, o1.AccountID, o2.OrderSideID, o2.UnitCode, o2.BankID\r\n\t\t\t\t\t\t\t\t\t\tFROM %s o1, %s o2\r\n\t\t\t\t\t\t\t\t\t\tWHERE o1.ID=%u\r\n\t\t\t\t\t\t\t\t\t\tAND o1.Deleted='0'\r\n\t\t\t\t\t\t\t\t\t\tAND o2.Deleted='0'\r\n\t\t\t\t\t\t\t\t\t\tAND o1.OldOrderID=o2.ID\r\n\t\t\t\t\t\t\t\t\t\tAND o1.OrderStockStatusID=%u ", TBL_ORDER, TBL_ORDER, $OrderID, ORDER_TRANSFERING);
             $rs = $this->_MDB2->extended->getRow($query);
             //block money in bank
             $query = sprintf("SELECT vw_ListAccountBank_Detail.*\r\n\t\t\t\t\t\t\t\t\t\tFROM vw_ListAccountBank_Detail, %s\r\n\t\t\t\t\t\t\t\t\t\tWHERE AccountNo='%s'\r\n\t\t\t\t\t\t\t\t\t\tAND %s.Deleted='0'\r\n\t\t\t\t\t\t\t\t\t\tAND vw_ListAccountBank_Detail.AccountID = %s.AccountID\r\n\t\t\t\t\t\t\t\t\t\tAND vw_ListAccountBank_Detail.BankID = %u\r\n\t\t\t\t\t\t\t\t\t\tORDER BY Priority LIMIT 1", TBL_ORDER, $AccountNo, TBL_ORDER, TBL_ORDER, $rs['bankid']);
             $bank_rs = $this->_MDB2->extended->getRow($query);
             if ($rs['ordersideid'] == ORDER_BUY) {
                 if ($bank_rs['accountid'] == $rs['accountid']) {
                     //last Order
                     $oldTempFee = $rs['olderquantity'] * $rs['orderprice'] * $rs['oldorderagencyfee'];
                     $oldTempFee = $oldTempFee > 10000 ? $oldTempFee : 10000;
                     $oldOrderValue = $rs['olderquantity'] * $rs['orderprice'] + $oldTempFee;
                     $oldOrderValue = number_format($oldOrderValue, 0, ".", "");
                     //remain Quantity
                     $remainQuantity = $rs['olderquantity'] - $rs['orderquantity'];
                     $remainQuantity = number_format($remainQuantity, 0, ".", "");
                     //cancel Order
                     if ($remainQuantity > 0) {
                         //incompleted cancel
                         $tempCancelFee = $remainQuantity * $rs['orderprice'] * $rs['orderagencyfee'];
                         $tempCancelFee = $tempCancelFee > 10000 ? $tempCancelFee : 10000;
                         $cancelOrderValue = $remainQuantity * $rs['orderprice'] + $tempCancelFee;
                         $cancelOrderValue = number_format($cancelOrderValue, 0, ".", "");
                     } else {
                         //completed cancel
                         $cancelOrderValue = 0;
                     }
                     $cancelValue = $oldOrderValue - $cancelOrderValue;
                     if (strpos(PAGODA_ACCOUNT, $AccountNo) === false) {
                         switch ($bank_rs['bankid']) {
                             case DAB_ID:
                                 $dab =& new CDAB();
                                 $dab_rs = $dab->cancelBlockMoney($bank_rs['bankaccount'], $AccountNo, $rs['oldorderid'], $cancelValue);
                                 break;
                             case VCB_ID:
                                 $dab =& new CVCB();
                                 $oldOrderID = $rs['oldorderid'] . $rs['unitcode'];
                                 $suffix = date("His");
                                 $newOrderID = $rs['oldorderid'] . $suffix;
                                 if ($cancelOrderValue > 0) {
                                     $dab_rs = $dab->editBlockMoney($AccountNo, $oldOrderID, $newOrderID, $oldOrderValue, $cancelOrderValue, $function_name);
                                 } else {
                                     $dab_rs = $dab->cancelBlockMoney($AccountNo, $oldOrderID, $oldOrderValue);
                                 }
                                 break;
                             case NVB_ID:
                                 $dab =& new CNVB();
                                 $dab_rs = $dab->cancelBlockMoney(substr($rs['oldorderid'] . date("His"), 3), $bank_rs['bankaccount'], $cancelValue, $rs['oldorderid']);
                                 break;
                             case OFFLINE:
                                 $query = sprintf("CALL sp_VirtualBank_Cancel('%s', %u, %u, %f, '%s')", $AccountNo, OFFLINE, $rs['oldorderid'], $cancelValue, $UpdatedBy);
                                 $mdb = initWriteDB();
                                 $off_rs = $mdb->extended->getRow($query);
                                 $mdb->disconnect();
                                 $dab_rs = $off_rs['varerror'];
                                 break;
                         }
                         // switch
                     } else {
                         $dab_rs = 0;
                     }
                     if ($dab_rs != 0) {
                         //fail
                         $IsMatched = 0;
                         switch ($bank_rs['bankid']) {
                             case DAB_ID:
                                 switch ($dab_rs) {
                                     case '-1':
                                         $this->_ERROR_CODE = 41060;
                                         break;
                                     case '-2':
                                         $this->_ERROR_CODE = 41061;
                                         break;
                                     case '-3':
                                         $this->_ERROR_CODE = 41062;
                                         break;
                                     case '-4':
                                         $this->_ERROR_CODE = 41063;
                                         break;
                                     case '-5':
                                         $this->_ERROR_CODE = 41064;
                                         break;
                                     case '1':
                                         $this->_ERROR_CODE = 41065;
                                         break;
                                     default:
                                         $this->_ERROR_CODE = $dab_rs;
                                 }
                                 // switch
                                 break;
                             case VCB_ID:
                                 $arrErr = explode("_", $dab_rs);
                                 $this->_ERROR_CODE = $arrErr[1];
                                 break;
                             case NVB_ID:
                                 $this->_ERROR_CODE = $dab_rs;
                                 break;
                             case OFFLINE:
                                 switch ($dab_rs) {
                                     case '-1':
                                         $this->_ERROR_CODE = 30730;
                                         break;
                                     case '-2':
                                         $this->_ERROR_CODE = 30731;
                                         break;
                                     case '-3':
                                         $this->_ERROR_CODE = 30732;
                                         break;
                                     case '-4':
                                         $this->_ERROR_CODE = 30733;
                                         break;
                                     case '-5':
                                         $this->_ERROR_CODE = 30734;
                                         break;
                                     default:
                                         $this->_ERROR_CODE = $dab_rs;
                                 }
                                 break;
                         }
                     }
                     // bank
                 } else {
                     // AccountNo doesn't match
                     $this->_ERROR_CODE = 30225;
                     return returnXML(func_get_args(), $this->class_name, $function_name, $this->_ERROR_CODE, $this->items, $this);
                 }
             }
         }
         $query = sprintf("CALL sp_updateFromTranferingToMatchedOrFailedForCancelOrderForHN(%u, '%u', '%s', '%s')", $OrderID, $IsMatched, $UpdatedBy, $suffix);
         $rs = $this->_MDB2_WRITE->extended->getRow($query);
         if (empty($rs)) {
             $this->_ERROR_CODE = 30221;
         } else {
             $result = $rs['varerror'];
             if ($result < 0) {
                 switch ($result) {
                     case '-2':
                         $this->_ERROR_CODE = 30223;
                         break;
                     default:
                         $this->_ERROR_CODE = 666;
                 }
                 //switch
             }
             // if result
         }
         // if store
     }
     return returnXML(func_get_args(), $this->class_name, $function_name, $this->_ERROR_CODE, $this->items, $this);
 }
 /**
  * Function ConfirmBuyingStockForDividend_CutMoney	: Ke toan cat tien -- day dl qua Bravo -- cap nhat bankid khi cat tien thanh cong
  * Input 					: $EventID, $AccountID, $Today, $UpdatedBy
  * OutPut 					: error code. Return 0 if success else return error code (number >0).
  */
 function ConfirmBuyingStockForDividend_CutMoney($EventID, $AccountID, $UpdatedBy, $Today, $BankID)
 {
     try {
         $class_name = $this->class_name;
         $function_name = 'ConfirmBuyingStockForDividend_CutMoney';
         if (authenUser(func_get_args(), $this, $function_name) > 0) {
             return returnXML(func_get_args(), $this->class_name, $function_name, $this->_ERROR_CODE, $this->items, $this);
         }
         if (!required($EventID) || !numeric($EventID)) {
             $this->_ERROR_CODE = 22042;
         }
         if ($this->_ERROR_CODE == 0 && (!required($AccountID) || !numeric($AccountID))) {
             $this->_ERROR_CODE = 22005;
         }
         if ($this->_ERROR_CODE == 0 && (!required($Today) || !valid_date($Today))) {
             $this->_ERROR_CODE = 22056;
         }
         if ($this->_ERROR_CODE == 0) {
             $Withdrawal = $this->CheckConfirmBuyingStock_CutMoney($EventID, $AccountID, $Today);
             if ($Withdrawal['ErrorCode'] == '0') {
                 // money in bank
                 $query = sprintf("SELECT BankID, BankAccount, BravoCode FROM vw_ListAccountBank_Detail WHERE AccountID='%s' AND BankID ='%s' ", $AccountID, $BankID);
                 $this->_MDB2->disconnect();
                 $this->_MDB2->connect();
                 $bank_rs = $this->_MDB2->extended->getAll($query);
                 $dab_rs = 999;
                 $BankID = 0;
                 $TransactionType = BRAVO_BUYING_STOCK;
                 // phat hanh them cp
                 if ($Withdrawal['AccountNo'] != PAGODA_ACCOUNT) {
                     if (count($bank_rs) > 0) {
                         $i = 0;
                         $BankID = $bank_rs[$i]['bankid'];
                         $BravoCode = $bank_rs[$i]['bravocode'];
                         switch ($BankID) {
                             case DAB_ID:
                                 $dab =& new CDAB();
                                 $dab_rs = $dab->transfertoEPS($bank_rs[$i]['bankaccount'], $Withdrawal['AccountNo'], '3_' . $EventID . '_' . $AccountID, $Withdrawal['Amount'], "*Mua cp uu dai " . $Withdrawal['StockSymbol']);
                                 write_my_log_path('transfertoEPS', $function_name . ' BankAccount ' . $bank_rs[$i]['bankaccount'] . '  AccountNo ' . $Withdrawal['AccountNo'] . '  Event_AccountID ' . '3_' . $EventID . ' ' . $AccountID . '  Amount ' . $Withdrawal['Amount'] . " Decription *Mua cp uu dai " . $Withdrawal['StockSymbol'] . ' Error ' . $dab_rs, EVENT_PATH);
                                 break;
                             case OFFLINE:
                                 $mdb2 = initWriteDB();
                                 //`sp_VirtualBank_insertBuyingStockDivident`(inAccountID bigint, inBankID int, inAmount double,inTransactionDate date, inNote text(1000), inCreatedBy varchar(100))
                                 $query = sprintf("CALL sp_VirtualBank_insertBuyingStockDivident(%u, %u, %f, '%s', '%s', '%s' )", $AccountID, $BankID, $Withdrawal['Amount'], $Today, 'Mua cp uu dai  ' . $Withdrawal['StockSymbol'], $UpdatedBy);
                                 $rs = $mdb2->extended->getRow($query);
                                 $mdb2->disconnect();
                                 $dab_rs = $rs["varerror"];
                                 break;
                             default:
                                 $dab_rs = 0;
                         }
                     } else {
                         $dab_rs = 9999;
                         $this->_ERROR_CODE = 22155;
                         //TK k co TK Ngan hang nay
                     }
                 } else {
                     $TransactionType = BRAVO_BUYING_STOCK;
                     // phat hanh them cp
                     $dab_rs = 0;
                     $BankID = EXI_ID;
                 }
                 if ($dab_rs == 0) {
                     $soap =& new Bravo();
                     $Withdrawal_value = array("TradingDate" => $Today, 'TransactionType' => $TransactionType, "AccountNo" => $Withdrawal['AccountNo'], "Amount" => $Withdrawal['Amount'], "Bank" => $BravoCode, "Branch" => "", "Note" => "Mua cp gia uu dai " . $Withdrawal['StockSymbol']);
                     //'011C001458'
                     //var_dump($withdraw_value);
                     $ret = $soap->withdraw($Withdrawal_value);
                     if ($ret['table0']['Result'] == 1) {
                         $query = sprintf("CALL sp_UpdateDividendPrivilege_BankID ('%s','%s','%s','%s')", $BankID, $EventID, $AccountID, $UpdatedBy);
                         //echo $query;
                         $result = $this->_MDB2_WRITE->extended->getAll($query);
                         //Can not update
                         if (empty($result) || is_object($result)) {
                             $this->_ERROR_CODE = 22120;
                             write_my_log_path('ErrorCallStore', $query . '  ' . $result->backtrace[0]['args'][4], EVENT_PATH);
                         } else {
                             if (isset($result[0]['varerror'])) {
                                 //p_iDividentPrivilege sai hoac dang ky mua chua xac nhan hoac da cat tien roi
                                 if ($result[0]['varerror'] == -2) {
                                     $this->_ERROR_CODE = 22121;
                                 } else {
                                     if ($result[0]['varerror'] == -3) {
                                         //qua ngay cat tien
                                         $this->_ERROR_CODE = 22149;
                                     } else {
                                         if ($result[0]['varerror'] == -1) {
                                             //Exception
                                             $this->_ERROR_CODE = 22122;
                                         } else {
                                             if ($result[0]['varerror'] < 0) {
                                                 $this->_ERROR_CODE = 22134;
                                                 write_my_log_path($function_name, $query . '  VarError ' . $result[0]['varerror'], EVENT_PATH);
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                         if ($this->_ERROR_CODE != 0) {
                             $soap->rollback($ret['table1']['Id'], $Today);
                         }
                     } else {
                         switch ($ret['table0']['Result']) {
                             case 0:
                                 $this->_ERROR_CODE = 0;
                                 break;
                             case -2:
                                 //Error - bravo
                                 $this->_ERROR_CODE = 23002;
                                 break;
                             case -1:
                                 //Invalid key
                                 $this->_ERROR_CODE = 23003;
                                 break;
                             case -13:
                                 /*Invalid Transaction Type*/
                                 $this->_ERROR_CODE = 23006;
                                 break;
                             case -15:
                                 /*Invalid CustomerCode*/
                                 $this->_ERROR_CODE = 23005;
                                 break;
                             case -16:
                                 /*Invalid DestCustomerCode*/
                                 $this->_ERROR_CODE = 23004;
                                 break;
                             default:
                                 //Unknown Error
                                 $this->_ERROR_CODE = 23009;
                                 write_my_log_path($function_name, '  Bravo ' . $ret['table0']['Result'], EVENT_PATH);
                                 break;
                         }
                     }
                 } else {
                     switch ($dab_rs) {
                         case '-1':
                             //unauthenticate partner
                             $this->_ERROR_CODE = 22135;
                             break;
                         case '-2':
                             //invalid parameters
                             $this->_ERROR_CODE = 22136;
                             break;
                         case '-3':
                             //invalid date
                             $this->_ERROR_CODE = 22137;
                             break;
                         case '-12':
                             // Tai khoan khong ton tai
                             $this->_ERROR_CODE = 12001;
                             break;
                         case '-4':
                             //no customer found
                             $this->_ERROR_CODE = 22140;
                             break;
                         case '-5':
                             //transfer unsuccessful
                             $this->_ERROR_CODE = 22141;
                             break;
                         case '-13':
                         case '1':
                             //invalid account
                             $this->_ERROR_CODE = 22142;
                             break;
                         case '2':
                             //invalid amount
                             $this->_ERROR_CODE = 22143;
                             break;
                         case '3':
                             //duplicate transfer
                             $this->_ERROR_CODE = 22147;
                             break;
                         case '-14':
                         case '5':
                             //not enough balance
                             $this->_ERROR_CODE = 22144;
                             break;
                         case '6':
                             //duplicate account
                             $this->_ERROR_CODE = 22145;
                             break;
                         case '-15':
                             //can not add history transaction
                             $this->_ERROR_CODE = 22228;
                             break;
                         case '-11':
                         case '99':
                             //unknown error
                             $this->_ERROR_CODE = 22138;
                             break;
                         default:
                             $this->_ERROR_CODE = 22139;
                     }
                 }
             } else {
                 $this->_ERROR_CODE = $Withdrawal['ErrorCode'];
             }
         }
     } catch (Exception $e) {
         write_my_log_path('PHP-Exception', $function_name . ' Caught exception: ' . $e->getMessage() . ' ' . date('Y-m-d h:i:s'), DEBUG_PATH);
         $this->_ERROR_CODE = 23022;
     }
     return returnXML(func_get_args(), $this->class_name, $function_name, $this->_ERROR_CODE, $this->items, $this);
 }
Ejemplo n.º 8
0
 function cofirmWithdrawal($ID, $UpdatedBy, $TransactionBankID, $TransactionBankBravoCode, $AccountNo, $Amount, $Note = "")
 {
     $function_name = 'cofirmWithdrawal';
     $struct = '{urn:' . $this->class_name . '}' . $function_name . 'Struct';
     if (authenUser(func_get_args(), $this, $function_name) > 0) {
         return returnXML(func_get_args(), $this->class_name, $function_name, $this->_ERROR_CODE, $this->items, $this);
     }
     if (!required($ID)) {
         $this->_ERROR_CODE = 13130;
     } else {
         $query = sprintf("CALL  sp_VirtualBank_confirmWithdrawal(%u, '%s' )", $ID, $UpdatedBy);
         $rs = $this->_MDB2_WRITE->extended->getRow($query);
         if (empty($rs)) {
             $this->_ERROR_CODE = 13131;
         } else {
             $result = $rs['varerror'];
             $content = date("d/m/Y H:i:s") . " Rut: ID => {$ID}, AccountNo => {$AccountNo}, Amount => {$Amount}, TransactionBankID => {$TransactionBankID}, TransactionBankBravoCode => {$TransactionBankBravoCode}, UpdatedBy => {$UpdatedBy} --> {$result}";
             write_log($function_name, $content, VIRTUAL_BANK_LOG_FILE_PATH);
             if ($result < 0) {
                 switch ($result) {
                     case '-1':
                         $this->_ERROR_CODE = 13132;
                         break;
                     case '-2':
                         $this->_ERROR_CODE = 13133;
                         break;
                     case '-3':
                         $this->_ERROR_CODE = 13134;
                         break;
                     case '-4':
                         $this->_ERROR_CODE = 13135;
                         break;
                     case '-5':
                         $this->_ERROR_CODE = 13136;
                         break;
                     default:
                         $this->_ERROR_CODE = $result;
                 }
                 //switch
             } else {
                 //if
                 $query = "SELECT mobilephone,ab.usableamount FROM " . TBL_INVESTOR;
                 $query .= " i INNER JOIN " . TBL_ACCOUNT . " a ON(i.id=a.investorId)";
                 $query .= " INNER JOIN " . TBL_ACCOUNT_BANK . " ab ON(a.id=ab.accountid)";
                 $query .= " WHERE a.accountNo='" . $AccountNo . "' AND ab.bankid=" . OFFLINE;
                 $mdb = initWriteDB();
                 $acc_rs = $mdb->extended->getRow($query);
                 $mdb->disconnect();
                 if (!empty($acc_rs['mobilephone'])) {
                     $message = 'Tai khoan cua quy khach tai KIS da thay doi: -' . number_format($Amount, 0, '.', ',') . '. ' . $Note;
                     $message .= '. So du hien tai la: ' . number_format($acc_rs['usableamount'], 0, '.', ',');
                     sendSMS(array('Phone' => $acc_rs['mobilephone'], 'Content' => $message));
                 }
                 $soap =& new Bravo();
                 if ($TransactionBankID == EPS_BANKID) {
                     $withdrawValue = array("TradingDate" => date("Y-m-d"), 'TransactionType' => WITHDRAW_AT_EPS, "AccountNo" => $AccountNo, "Amount" => $Amount, "Fee" => 0, "Bank" => $TransactionBankBravoCode, "Note" => $Note);
                 } else {
                     $withdrawValue = array("TradingDate" => date("Y-m-d"), 'TransactionType' => WITHDRAW_AT_OTHERS, "AccountNo" => $AccountNo, "Amount" => $Amount, "Fee" => 0, "Bank" => $TransactionBankBravoCode, "Note" => $Note);
                 }
                 $ret = $soap->withdraw($withdrawValue);
                 if ($ret['table0']['Result'] != 1) {
                     // success
                     switch ($ret['table0']['Result']) {
                         case '-2':
                             $this->_ERROR_CODE = 23002;
                             break;
                         case '-1':
                             $this->_ERROR_CODE = 23003;
                             break;
                         case '-13':
                             $this->_ERROR_CODE = 23006;
                             break;
                         case '-15':
                             $this->_ERROR_CODE = 23005;
                             break;
                         case '-16':
                             $this->_ERROR_CODE = 23004;
                             break;
                         default:
                             $this->_ERROR_CODE = 'Bravo' . $ret['table0']['Result'];
                     }
                     //switch
                 }
             }
         }
         //if WS
     }
     return returnXML(func_get_args(), $this->class_name, $function_name, $this->_ERROR_CODE, $this->items, $this);
 }
Ejemplo n.º 9
0
 function rollbackupdatePayment($PaymentID, $UpdatedBy)
 {
     $mdbwrite2 = initWriteDB();
     $query1 = sprintf("CALL sp_rollbackupdatePayment (%s,'%s')", $PaymentID, $UpdatedBy);
     $result = $mdbwrite2->extended->getAll($query1);
 }
Ejemplo n.º 10
0
 function ConfirmExtraCollectDisbursement($ID, $UpdatedBy)
 {
     $function_name = 'ConfirmExtraCollectDisbursement';
     $struct = '{urn:' . $this->class_name . '}' . $function_name . 'Struct';
     if (authenUser(func_get_args(), $this, $function_name) > 0) {
         return returnXML(func_get_args(), $this->class_name, $function_name, $this->_ERROR_CODE, $this->items, $this);
     }
     $query = sprintf("CALL sp_ExtraCollectDisbursement_getInfo('%s')", $ID);
     $rs = $this->_MDB2->extended->getRow($query);
     $BankAccount = $rs['bankaccount'];
     $BankID = (int) $rs['bankid'];
     $BravoCode = (int) $rs['bravocode'];
     $Amount = $rs['amount'];
     $AccountNo = $rs['accountno'];
     $TradingDate = $rs['tradingdate'];
     $Note = $rs['note'];
     $TranTypeID = (int) $rs['trantypeid'];
     if ($BankAccount != '') {
         switch ($BankID) {
             case DAB_ID:
                 $dab =& new CDAB();
                 $refno = $AccountNo . "_" . $ID . "_" . date('Y-m-d');
                 if ($TranTypeID == 1) {
                     // Thu tien
                     $dab_rs = $dab->transfertoEPS($BankAccount, $AccountNo, $refno, $Amount, $Note);
                 } elseif ($TranTypeID == 2) {
                     // Chuyen tien
                     $dab_rs = $dab->transferfromEPS($BankAccount, $AccountNo, $refno, $Amount, $Note);
                 }
                 break;
             case OFFLINE:
                 $mdb = initWriteDB();
                 $query = sprintf("CALL sp_VirtualBank_ExtraCollectDisbursement(%u, '%s', '%s')", $ID, date("Y-m-d"), $UpdatedBy);
                 $offline_rs = $mdb->extended->getRow($query);
                 $mdb->disconnect();
                 if (PEAR::isError($offline_rs)) {
                     $this->_ERROR_CODE = 31500;
                 } else {
                     $result = $offline_rs['varerror'];
                     if ($result < 0) {
                         switch ($result) {
                             case '-1':
                                 $this->_ERROR_CODE = 31501;
                                 break;
                             case '-2':
                                 $this->_ERROR_CODE = 31502;
                                 break;
                             case '-3':
                                 $this->_ERROR_CODE = 31503;
                                 break;
                             case '-4':
                                 $this->_ERROR_CODE = 30624;
                                 // khong du tien
                                 break;
                             case '-5':
                                 $this->_ERROR_CODE = 31504;
                                 break;
                             case '-9':
                                 $this->_ERROR_CODE = 31505;
                                 break;
                         }
                         //switch
                     } else {
                         //if
                         $dab_rs = 0;
                     }
                 }
                 //if PEAR
                 break;
         }
         //switch
         if ($dab_rs == 0) {
             $query = sprintf("CALL sp_ExtraCollectDisbursement_Confirm(%u,'%s')", $ID, $UpdatedBy);
             $rs = $this->_MDB2_WRITE->extended->getRow($query);
             if ($rs['varerror'] < 0) {
                 switch ($rs['varerror']) {
                     case '-2':
                         $this->_ERROR_CODE = 31450;
                         break;
                 }
                 return returnXML(func_get_args(), $this->class_name, $function_name, $this->_ERROR_CODE, $this->items, $this);
             } else {
                 //update Bank
                 $soap =& new Bravo();
                 if ($TranTypeID == 1) {
                     // Thu tien
                     $transactionType = "M13.09";
                 } elseif ($TranTypeID == 2) {
                     // Chuyen tien
                     $transactionType = "M13.08";
                 }
                 $Deposit_value = array("TradingDate" => date('Y-m-d'), 'TransactionType' => $transactionType, "AccountNo" => $AccountNo, "Amount" => $Amount, "Bank" => $BravoCode, "Branch" => "", "Note" => $Note);
                 $ret = $soap->deposit($Deposit_value);
                 if ($ret['table0']['Result'] != 1) {
                     switch ($ret['table0']['Result']) {
                         case 0:
                             $this->_ERROR_CODE = 0;
                             break;
                         case -2:
                             //Error - bravo
                             $this->_ERROR_CODE = 23002;
                             break;
                         case -1:
                             //Invalid key
                             $this->_ERROR_CODE = 23003;
                             break;
                         case -13:
                             /*Invalid Transaction Type*/
                             $this->_ERROR_CODE = 23006;
                             break;
                         case -15:
                             /*Invalid CustomerCode*/
                             $this->_ERROR_CODE = 23005;
                             break;
                         case -16:
                             /*Invalid DestCustomerCode*/
                             $this->_ERROR_CODE = 23004;
                             break;
                         default:
                             //Unknown Error
                             $this->_ERROR_CODE = $ret['table0']['Result'];
                             break;
                     }
                     if ($this->_ERROR_CODE != 0 && $Deposit_value['Amount'] > 0) {
                         $soap->rollback($ret['table1']['Id'], date('Y-m-d'));
                     }
                 }
             }
             //update bank
         } else {
             switch ($dab_rs) {
                 case '-1':
                     //unauthenticate partner
                     $this->_ERROR_CODE = 22135;
                     break;
                 case '-2':
                     //invalid parameters
                     $this->_ERROR_CODE = 22136;
                     break;
                 case '-3':
                     //invalid date
                     $this->_ERROR_CODE = 22137;
                     break;
                 case '-4':
                     //no customer found
                     $this->_ERROR_CODE = 22140;
                     break;
                 case '-5':
                     //transfer unsuccessful
                     $this->_ERROR_CODE = 22141;
                     break;
                 case '1':
                     //invalid account
                     $this->_ERROR_CODE = 22142;
                     break;
                 case '2':
                     //invalid amount
                     $this->_ERROR_CODE = 22143;
                     break;
                 case '3':
                     //duplicate transfer
                     $this->_ERROR_CODE = 22147;
                     break;
                 case '5':
                     //not enough balance
                     $this->_ERROR_CODE = 22144;
                     break;
                 case '6':
                     //duplicate account
                     $this->_ERROR_CODE = 22145;
                     break;
                 case '99':
                     //unknown error
                     $this->_ERROR_CODE = 22138;
                     break;
                 default:
                     $this->_ERROR_CODE = 22139;
             }
         }
         // bank
     } else {
         //bank account
         $this->_ERROR_CODE = 31452;
     }
     return returnXML(func_get_args(), $this->class_name, $function_name, $this->_ERROR_CODE, $this->items, $this);
 }
Ejemplo n.º 11
0
 function insertCoSellOrder($CoAccountNo, $AccountNo, $StockID, $OrderQuantity, $OrderPrice, $Session, $FromTypeID, $Note, $OrderDate, $IsAssigner, $IsGotPaper, $CreatedBy, $AccountNoContra, $CompanyNameContra)
 {
     $function_name = 'insertCoSellOrder';
     $struct = '{urn:' . $this->class_name . '}' . $function_name . 'Struct';
     $log[] = sprintf('insertCoSellOrder - CoAccountNo:%s;AccountNo:%s;StockID:%s;OrderQuantity:%s;OrderPrice:%s;Session:%s;FromTypeID:%s;Note:%s;OrderDate:%s;IsAssigner:%s;IsGotPaper:%s;CreatedBy:%s;AccountNoContra:%s;CompanyNameContra:%s;ExecutedTime:%s', $CoAccountNo, $AccountNo, $StockID, $OrderQuantity, $OrderPrice, $Session, $FromTypeID, $Note, $OrderDate, $IsAssigner, $IsGotPaper, $CreatedBy, $AccountNoContra, $CompanyNameContra, date('Y-m-d h:i:s'));
     if (authenUser(func_get_args(), $this, $function_name) > 0) {
         $log[] = sprintf('authenUser: ERROR_CODE: %s', $this->_ERROR_CODE);
         write_my_log_path("insertCoSellOrder", implode("\n --> ", $log), '/home/vhosts/eSMS/htdocs/logs/otc/');
         return returnXML(func_get_args(), $this->class_name, $function_name, $this->_ERROR_CODE, $this->items, $this);
     }
     $log[] = sprintf('authenUser: ERROR_CODE: %s', $this->_ERROR_CODE);
     // checking account is active / not
     if (!checkAccountIsActive($AccountNo) || !checkAccountIsActive($CoAccountNo)) {
         $this->_ERROR_CODE = 30275;
         $log[] = sprintf('checkAccountIsActive: ERROR_CODE: %s; AccountNo:%s,%s;CoAccountNo: %s,%s', $this->_ERROR_CODE, $AccountNo, checkAccountIsActive($AccountNo) ? 'TRUE' : 'FALSE', $CoAccountNo, checkAccountIsActive($CoAccountNo) ? 'TRUE' : 'FALSE');
         write_my_log_path("insertCoSellOrder", implode("\n --> ", $log), '/home/vhosts/eSMS/htdocs/logs/otc/');
         return returnXML(func_get_args(), $this->class_name, $function_name, 30275, $this->items, $this);
     }
     $log[] = sprintf('checkAccountIsActive: ERROR_CODE: %s; AccountNo:%s,%s;CoAccountNo: %s,%s', $this->_ERROR_CODE, $AccountNo, checkAccountIsActive($AccountNo) ? 'TRUE' : 'FALSE', $CoAccountNo, checkAccountIsActive($CoAccountNo) ? 'TRUE' : 'FALSE');
     if (!required($CoAccountNo) || !required($AccountNo) || !required($OrderDate) || !required($StockID) || !required($OrderQuantity) || !required($OrderPrice) || !required($Session) || !unsigned($OrderQuantity) || !unsigned($StockID)) {
         if (!required($AccountNo) || !required($CoAccountNo)) {
             $this->_ERROR_CODE = 30051;
         }
         if (!required($OrderDate)) {
             $this->_ERROR_CODE = 30052;
         }
         if (!required($StockID) || !unsigned($StockID)) {
             $this->_ERROR_CODE = 30053;
         }
         if (!required($OrderQuantity) || !unsigned($OrderQuantity)) {
             $this->_ERROR_CODE = 30054;
         }
         if (!required($Session)) {
             $this->_ERROR_CODE = 30055;
         }
         if (!required($OrderPrice)) {
             $this->_ERROR_CODE = 30056;
         }
         $log[] = sprintf('check require: ERROR_CODE: %s', $this->_ERROR_CODE);
     } else {
         $vip = checkVIPAccount($AccountNo);
         // 1: exist 0: not exist
         $vipCo = checkVIPAccount($CoAccountNo);
         // 1: exist 0: not exist
         if (($vip == 1 || $vipCo == 1) && $FromTypeID == 5) {
             // web
             $this->_ERROR_CODE = 30602;
             $log[] = sprintf('Vip on web: Fail; AccountNo: %s;CoAccountNo: %s', $vip == 0 ? 'not vip' : 'vip', $vipCo == 0 ? 'not vip' : 'vip');
             write_my_log_path("insertCoSellOrder", implode("\n --> ", $log), '/home/vhosts/eSMS/htdocs/logs/otc/');
             return returnXML(func_get_args(), $this->class_name, $function_name, $this->_ERROR_CODE, $this->items, $this);
         }
         if ((strpos(EOT_PROHIBITION_ACCOUNT, $AccountNo) !== false || strpos(EOT_PROHIBITION_ACCOUNT, $CoAccountNo) !== false) && $FromTypeID == 5) {
             $this->_ERROR_CODE = 30602;
             $log[] = sprintf('check EOT_PROHIBITION_ACCOUNT: ERROR_CODE: %s;AccountNo:%s,%s;CoAccountNo:%s,%s', $this->_ERROR_CODE, $AccountNo, strpos(EOT_PROHIBITION_ACCOUNT, $AccountNo), $CoAccountNo, strpos(EOT_PROHIBITION_ACCOUNT, $CoAccountNo));
             write_my_log_path("insertCoSellOrder", implode("\n --> ", $log), '/home/vhosts/eSMS/htdocs/logs/otc/');
             return returnXML(func_get_args(), $this->class_name, $function_name, $this->_ERROR_CODE, $this->items, $this);
         }
         if (!checkStockPrice($StockID, $OrderPrice, $OrderDate)) {
             $this->_ERROR_CODE = 30057;
         }
         $log[] = sprintf('checkStockPrice: ERROR_CODE: %s', $this->_ERROR_CODE);
         $sellingOrderID = '';
         $buyingOrderID = '';
         try {
             if ($this->_ERROR_CODE == 0) {
                 // -------------------------------------------------------------------------------------- //
                 // Insert sell order for $CoAccountNo
                 // -------------------------------------------------------------------------------------- //
                 $query = sprintf("CALL sp_upcom_insertSellingOrder('%s', %u, %u, %u, %u, '%u', '%s', '%s', '%u', '%u', '%s', '%s', '%s')", $CoAccountNo, $StockID, $OrderQuantity, $OrderPrice, $Session, $FromTypeID, $Note, $OrderDate, $IsAssigner, $IsGotPaper, $CreatedBy, $AccountNoContra, $CompanyNameContra);
                 $log[] = sprintf('%s', $query);
                 $mdb = initWriteDB();
                 $rs = $mdb->extended->getRow($query);
                 $mdb->disconnect();
                 if (empty($rs)) {
                     $this->_ERROR_CODE = 30060;
                 } else {
                     $result = $rs['varerror'];
                     if ($result < 0) {
                         switch ($result) {
                             case '-1':
                                 $this->_ERROR_CODE = 19010;
                                 break;
                             case '-2':
                                 $this->_ERROR_CODE = 19011;
                                 break;
                             case '-3':
                                 $this->_ERROR_CODE = 19012;
                                 break;
                             case '-4':
                                 $this->_ERROR_CODE = 19013;
                                 break;
                             case '-5':
                                 $this->_ERROR_CODE = 19014;
                                 break;
                             case '-6':
                                 $this->_ERROR_CODE = 19015;
                                 break;
                             default:
                                 $this->_ERROR_CODE = $result;
                         }
                     } else {
                         $sellingOrderID = $result;
                     }
                 }
                 $log[] = sprintf('ERROR_CODE: %s', $this->_ERROR_CODE);
                 $log[] = sprintf('SellingOrderID: %s', $sellingOrderID);
             }
             if ($this->_ERROR_CODE == 0) {
                 // -------------------------------------------------------------------------------------- //
                 // Insert buy order for $AccountNo
                 // -------------------------------------------------------------------------------------- //
                 $query = sprintf("CALL sp_upcom_insertBuyingOrder('%s', %u, %u, %u, %u, %u, '%s', '%s', '%u', '%u', '%s', '%s', '%s')", $AccountNo, $StockID, $OrderQuantity, $OrderPrice, $Session, $FromTypeID, $Note, $OrderDate, $IsAssigner, $IsGotPaper, $CreatedBy, $AccountNoContra, $CompanyNameContra);
                 $log[] = sprintf('%s', $query);
                 $rs = $this->_MDB2_WRITE->extended->getRow($query);
                 if (empty($rs)) {
                     $this->_ERROR_CODE = 30015;
                     $log[] = sprintf('ERROR_CODE: %s', $this->_ERROR_CODE);
                 } else {
                     $result = $rs['varerror'];
                     if ($result < 0) {
                         switch ($result) {
                             case '-1':
                                 $this->_ERROR_CODE = 19001;
                                 break;
                             case '-2':
                                 $this->_ERROR_CODE = 19002;
                                 break;
                             case '-3':
                                 $this->_ERROR_CODE = 19003;
                                 break;
                             case '-4':
                                 $this->_ERROR_CODE = 19004;
                                 break;
                             case '-5':
                                 $this->_ERROR_CODE = 19005;
                                 break;
                             default:
                                 $this->_ERROR_CODE = $result;
                         }
                         $log[] = sprintf('ERROR_CODE: %s', $this->_ERROR_CODE);
                     } else {
                         $isQuotaAccount = CheckIsQuotaAccount($AccountNo);
                         $vip = checkVIPAccount($AccountNo);
                         // 1: exist 0: not exist
                         $log[] = sprintf('ERROR_CODE: %s', $this->_ERROR_CODE);
                         $log[] = sprintf('BuyingOrderID: %s', $result);
                         $buyingOrderID = $result;
                         //block money in bank
                         $query = sprintf("SELECT * FROM vw_ListAccountBank_Detail WHERE AccountNo='%s' ORDER BY Priority ", $AccountNo);
                         $log[] = sprintf('%s', $query);
                         $mdb = initWriteDB();
                         $bank_rs = $mdb->extended->getAll($query);
                         $log[] = sprintf('PAGODA_ACCOUNT: %s', strpos(PAGODA_ACCOUNT, $AccountNo) === false ? 'FALSE' : 'TRUE');
                         $log[] = sprintf('VIP_ACCOUNT: %s', $vip == 0 ? 'FALSE' : 'TRUE');
                         if (strpos(PAGODA_ACCOUNT, $AccountNo) === false && $vip == 0) {
                             $dab_rs = 999;
                             if ($isQuotaAccount != 0) {
                                 $BankID = NHHM;
                                 $mdb = initWriteDB();
                                 $query = sprintf("CALL sp_VirtualBank_Lock('%s', %u,  %u, %f, '%s', '%s')", $AccountNo, NHHM, $result, $rs['varordervalue'], $OrderDate, $CreatedBy);
                                 $off_rs = $mdb->extended->getRow($query);
                                 $mdb->disconnect();
                                 $dab_rs = $off_rs['varerror'];
                                 $log[] = sprintf('block_money: bankid:NHHM;result:%s', $dab_rs);
                             } else {
                                 for ($i = 0; $i < count($bank_rs); $i++) {
                                     switch ($bank_rs[$i]['bankid']) {
                                         case DAB_ID:
                                             $dab =& new CDAB();
                                             $dab_rs = $dab->blockMoney($bank_rs[$i]['bankaccount'], $bank_rs[$i]['cardno'], $AccountNo, $result, $rs['varordervalue'], $OrderDate);
                                             $log[] = sprintf('block_money: bankid:DAB_ID;result:%s', $dab_rs);
                                             break;
                                         case VCB_ID:
                                             $dab =& new CVCB();
                                             $OrderID = $result . $rs['varunitcode'];
                                             if (!killStupidBank()) {
                                                 // VCB is stupid
                                                 $dab_rs = $dab->blockMoney($AccountNo, $OrderID, $rs['varordervalue']);
                                             } else {
                                                 $dab_rs = 30999;
                                             }
                                             $log[] = sprintf('block_money: bankid:VCB_ID;result:%s', $dab_rs);
                                             break;
                                         case ANZ_ID:
                                             $OrderID = $result;
                                             $query = sprintf("CALL sp_anz_money_request_lock( %u, '%s', '%s', '%s' )", $OrderID, $AccountNo, $rs['varordervalue'], $CreatedBy);
                                             $this->_MDB2_WRITE->connect();
                                             $rs1 = $this->_MDB2_WRITE->extended->getRow($query);
                                             $this->_MDB2_WRITE->disconnect();
                                             switch ($rs1['varerror']) {
                                                 case -1:
                                                     $dab_rs = 34511;
                                                     //database error
                                                     break;
                                                 case -2:
                                                     $dab_rs = 34512;
                                                     //not enough money to unlock
                                                     break;
                                                 case -3:
                                                     $dab_rs = 34513;
                                                     //account does not exist
                                                     break;
                                                 default:
                                                     $dab_rs = $rs1['varerror'];
                                             }
                                             $log[] = sprintf('block_money: bankid:ANZ_ID;result:%s', $dab_rs);
                                             // added by Quang, 20100407 ------------------------------------
                                             break;
                                         case OFFLINE:
                                             //inAccountNo varchar(20),inBankID int,inOrderID bigint,inOrderAmount double,inOrderDate date,inCreatedBy
                                             $mdb = initWriteDB();
                                             $query = sprintf("CALL sp_VirtualBank_Lock('%s', %u,  %u, %f, '%s', '%s')", $AccountNo, OFFLINE, $result, $rs['varordervalue'], $OrderDate, $CreatedBy);
                                             $off_rs = $mdb->extended->getRow($query);
                                             $mdb->disconnect();
                                             $dab_rs = $off_rs['varerror'];
                                             $log[] = sprintf('block_money: bankid:OFFLINE;result:%s', $dab_rs);
                                             break;
                                             // end add -----------------------------------------------------
                                     }
                                     if ($dab_rs == 0) {
                                         $BankID = $bank_rs[$i]['bankid'];
                                         break;
                                     }
                                 }
                             }
                         } else {
                             $dab_rs = 0;
                         }
                         if ($dab_rs == 0) {
                             //Successfully
                             $log[] = sprintf('successded_block_money');
                             $mdb = initWriteDB();
                             if ($Session <= 3) {
                                 $query = sprintf("CALL sp_updateBuyingOrderFromPendingToApproved(%u, %u) ", $result, $BankID);
                             } else {
                                 $query = sprintf("CALL sp_updateBuyingOrderFromPendingToTransfered(%u, %u) ", $result, $BankID);
                             }
                             $log[] = sprintf('%s', $query);
                             $status_rs = $mdb->extended->getRow($query);
                             $mdb->disconnect();
                             if (empty($status_rs)) {
                                 $this->_ERROR_CODE = 30143;
                             } else {
                                 $result = $status_rs['varerror'];
                                 if ($result < 0) {
                                     //update Order Status fail
                                     switch ($result) {
                                         case '-1':
                                             $this->_ERROR_CODE = 30141;
                                             break;
                                         case '-2':
                                             $this->_ERROR_CODE = 30142;
                                             break;
                                     }
                                     //switch
                                 }
                                 // if
                             }
                             // if WS
                             $log[] = sprintf('ERROR_CODE: %s', $this->_ERROR_CODE);
                         } else {
                             // bank fail
                             $log[] = sprintf('failed_block_money');
                             switch ($dab_rs) {
                                 case '-1':
                                     $this->_ERROR_CODE = 41020;
                                     break;
                                 case '-2':
                                     $this->_ERROR_CODE = 41021;
                                     break;
                                 case '-3':
                                     $this->_ERROR_CODE = 41022;
                                     break;
                                 case '-4':
                                     $this->_ERROR_CODE = 41023;
                                     break;
                                 case '-5':
                                     $this->_ERROR_CODE = 41024;
                                     break;
                                 case '1':
                                     $this->_ERROR_CODE = 41025;
                                     break;
                                 case '2':
                                     $this->_ERROR_CODE = 41026;
                                     break;
                                 case '3':
                                     $this->_ERROR_CODE = 41027;
                                     break;
                                 case '4':
                                     $this->_ERROR_CODE = 41028;
                                     break;
                                 case '5':
                                     $this->_ERROR_CODE = 41030;
                                     break;
                                 case '99':
                                     $this->_ERROR_CODE = 41029;
                                     break;
                                 default:
                                     $this->_ERROR_CODE = $dab_rs;
                             }
                             $log[] = sprintf('ERROR_CODE: %s', $this->_ERROR_CODE);
                             $mdb = initWriteDB();
                             $query = sprintf("CALL sp_updateBuyingOrderFromPendingToDenied(%u, '%s') ", $result, $dab_rs);
                             $log[] = sprintf('%s', $query);
                             $status_rs = $mdb->extended->getRow($query);
                             $mdb->disconnect();
                             if (empty($status_rs)) {
                                 $this->_ERROR_CODE = 30144;
                             } else {
                                 $result = $status_rs['varerror'];
                                 if ($result < 0) {
                                     //update Order Status fail
                                     switch ($result) {
                                         case '-1':
                                             $this->_ERROR_CODE = 30145;
                                             break;
                                         case '-2':
                                             $this->_ERROR_CODE = 30146;
                                             break;
                                     }
                                     //switch
                                 }
                                 // if
                             }
                             // if WS
                             $log[] = sprintf('ERROR_CODE: %s', $this->_ERROR_CODE);
                         }
                     }
                 }
                 // -------------------------------------------------------------------------------------- //
                 // End Insert buy order for $AccountNo
                 // -------------------------------------------------------------------------------------- //
             }
             $this->items[0] = new SOAP_Value('item', $struct, array("BuyingOrderID" => new SOAP_Value("BuyingOrderID", "string", $buyingOrderID), "SellingOrderID" => new SOAP_Value("SellingOrderID", "string", $sellingOrderID)));
         } catch (Exception $e) {
             $log[] = sprintf('Exception: %s', $e->getMessage());
             $this->_ERROR_CODE = 30060;
         }
     }
     write_my_log_path("insertCoSellOrder", implode("\n --> ", $log), '/home/vhosts/eSMS/htdocs/logs/otc/');
     return returnXML(func_get_args(), $this->class_name, $function_name, $this->_ERROR_CODE, $this->items, $this);
 }
Ejemplo n.º 12
0
 function deleteSetOfEmployee4Group($GroupID, $SetOfEmployeeID, $UpdatedBy)
 {
     $function_name = 'deleteSetOfEmployee4Group';
     $struct = '{urn:' . $this->class_name . '}' . $function_name . 'Struct';
     $delete_log = array();
     $lastest_error = 0;
     if (authenUser(func_get_args(), $this, $function_name) > 0) {
         $delete_log[] = sprintf('GroupID:%s;SetOfEmployeeID:%s;UpdatedBy:%s;ErrorCode:%s;ExecutedTime:%s', $GroupID, $SetOfEmployeeID, $UpdatedBy, $this->_ERROR_CODE, date('Y-m-d h:i:s'));
         write_my_log_path("deleteSetOfEmployee4Group", implode("\n --> ", $delete_log), '/home/vhosts/eSMS/htdocs/logs/employee/');
         return returnXML(func_get_args(), $this->class_name, $function_name, $this->_ERROR_CODE, $this->items, $this);
     }
     if (!required($GroupID) || !unsigned($GroupID) || !required($SetOfEmployeeID)) {
         if (!required($GroupID) || !unsigned($GroupID)) {
             $this->_ERROR_CODE = $lastest_error = 32071;
         }
         if (!required($SetOfEmployeeID)) {
             $this->_ERROR_CODE = $lastest_error = 32070;
         }
         $delete_log[] = sprintf('GroupID:%s;SetOfEmployeeID:%s;UpdatedBy:%s;ErrorCode:%s;ExecutedTime:%s', $GroupID, $SetOfEmployeeID, $UpdatedBy, $this->_ERROR_CODE, date('Y-m-d h:i:s'));
     } else {
         $arr_epm = explode(',', $SetOfEmployeeID);
         $delete_success = array();
         $delete_fail = array();
         $delete_log[] = sprintf('GroupID:%s;SetOfEmployeeID:%s;UpdatedBy:%s;ExecutedTime:%s', $GroupID, $SetOfEmployeeID, $UpdatedBy, date('Y-m-d h:i:s'));
         foreach ($arr_epm as $emp_id) {
             $this->_ERROR_CODE = 0;
             $result = NULL;
             if (!unsigned($emp_id)) {
                 $this->_ERROR_CODE = 32070;
                 $delete_fail[] = trim($emp_id);
             } else {
                 $query = sprintf("CALL sp_deleteEmployeeGroup(%u, %u, '%s')", trim($emp_id), $GroupID, $UpdatedBy);
                 $mdb = initWriteDB();
                 $rs = $mdb->extended->getRow($query);
                 if (empty($rs)) {
                     $this->_ERROR_CODE = 32072;
                     $delete_fail[] = trim($emp_id);
                 } else {
                     $result = $rs['varerror'];
                     if ($result < 0) {
                         $delete_fail[] = trim($emp_id);
                         switch ($result) {
                             case '-1':
                                 $this->_ERROR_CODE = 32073;
                                 break;
                             case '-2':
                                 $this->_ERROR_CODE = 32074;
                                 break;
                         }
                     }
                 }
             }
             if ($this->_ERROR_CODE == 0) {
                 $delete_success[] = trim($emp_id);
             } else {
                 $lastest_error = $this->_ERROR_CODE;
             }
             $delete_log[] = sprintf('GroupID:%s;EmployeeID:%s;UpdatedBy:%s;ErrorCode:%s;ExecutedTime:%s', $GroupID, trim($emp_id), $UpdatedBy, $this->_ERROR_CODE, date('Y-m-d h:i:s'));
         }
         $this->items[] = new SOAP_Value('item', $struct, array("SuccessdedEmployeeID" => new SOAP_Value("SuccessdedEmployeeID", "string", implode(', ', $delete_success)), "FailedEmployeeID" => new SOAP_Value("FailedEmployeeID", "string", implode(', ', $delete_fail))));
     }
     write_my_log_path("deleteSetOfEmployee4Group", implode("\n --> ", $delete_log), '/home/vhosts/eSMS/htdocs/logs/employee/');
     return returnXML(func_get_args(), $this->class_name, $function_name, $lastest_error, $this->items, $this);
 }
 function confirmChangeOrder($OrderID, $IsMatched, $MatchedQuantity, $ExchangeRefno)
 {
     $function_name = 'confirmChangeOrder';
     $struct = '{urn:' . $this->class_name . '}' . $function_name . 'Struct';
     if (authenUser(func_get_args(), $this, $function_name) > 0) {
         return returnXML(func_get_args(), $this->class_name, $function_name, $this->_ERROR_CODE, $this->items, $this);
     }
     if (!required($OrderID) || !required($IsMatched)) {
         if (!required($OrderID)) {
             $this->_ERROR_CODE = 30451;
         }
         if (!required($IsMatched)) {
             $this->_ERROR_CODE = 30452;
         }
     } else {
         $this->_MDB2_WRITE = newInitWriteDB();
         $query = sprintf("CALL sp_hnx_ChangeOrder_Confirm(%u, '%s', %u, '%s' )", $OrderID, $IsMatched, $MatchedQuantity, $ExchangeRefno);
         $rs = $this->_MDB2_WRITE->extended->getRow($query);
         $this->_MDB2_WRITE->disconnect();
         if (empty($rs)) {
             $this->_ERROR_CODE = 30453;
         } else {
             $result = $rs['varError'];
             if ($result < 0) {
                 switch ($result) {
                     case '-1':
                         $this->_ERROR_CODE = 30454;
                         break;
                     case '-2':
                         $this->_ERROR_CODE = 30455;
                         break;
                     default:
                         $this->_ERROR_CODE = 666;
                 }
                 // switch
             } else {
                 // if
                 //,varOldValue,varReBlockedValue,varUnitCode,varBankID,varAccountNo,varAccountBank;
                 if (strpos(PAGODA_ACCOUNT, $AccountNo) === false) {
                     $suffix = date("His");
                     if ($rs['varReBlockedValue'] > 0) {
                         switch ($rs['varBankID']) {
                             case DAB_ID:
                                 $dab =& new CDAB();
                                 $dab_rs = $dab->editBlockMoney($rs['varAccountBank'], $rs['varAccountNo'], $OrderID, $rs['varReBlockedValue']);
                                 break;
                             case VCB_ID:
                                 $dab =& new CVCB();
                                 $oldOrderID = $OrderID . $rs['varUnitCode'];
                                 $newOrderID = $OrderID . $suffix;
                                 $dab_rs = $dab->editBlockMoney($rs['varAccountNo'], $oldOrderID, $newOrderID, $rs['varOldValue'], $rs['varReBlockedValue'], $function_name);
                                 break;
                             case NVB_ID:
                                 $dab =& new CNVB();
                                 $dab_rs = $dab->editBlockMoney(substr($OrderID . date("His"), 3), $rs['varAccountBank'], $rs['varReBlockedValue'], $OrderID);
                                 break;
                             case NHHM:
                             case OFFLINE:
                                 $query = sprintf("CALL sp_VirtualBank_Edit( '%s', %u, %u, %f, '%s')", $rs['varAccountNo'], $rs['varBankID'], $OrderID, $rs['varReBlockedValue'], 'HNX');
                                 $this->_MDB2_WRITE->connect();
                                 $off_rs = $this->_MDB2_WRITE->extended->getRow($query);
                                 $this->_MDB2_WRITE->disconnect();
                                 $dab_rs = $off_rs['varError'];
                                 break;
                         }
                         //switch
                     }
                 } else {
                     //PAGODA_ACCOUNT
                     $dab_rs = 0;
                 }
                 if ($dab_rs == 0) {
                     //Successfully
                     // if ( $rs['varbankid'] == VCB_ID ) {
                     if ($rs['varBankID'] == VCB_ID) {
                         $_MDB2_WRITE = initWriteDB();
                         $query = sprintf(" CALL sp_updateUnitCode(%u, '%s' )", $OrderID, $suffix);
                         $rs = $_MDB2_WRITE->extended->getRow($query);
                         $_MDB2_WRITE->disconnect();
                         if (empty($rs)) {
                             $this->_ERROR_CODE = 30456;
                         }
                     }
                 } else {
                     // bank fail
                     // switch ($rs['varbankid']) {
                     switch ($rs['varBankID']) {
                         case DAB_ID:
                             switch ($dab_rs) {
                                 case '-1':
                                     $this->_ERROR_CODE = 41040;
                                     break;
                                 case '-2':
                                     $this->_ERROR_CODE = 41041;
                                     break;
                                 case '-3':
                                     $this->_ERROR_CODE = 41042;
                                     break;
                                 case '-4':
                                     $this->_ERROR_CODE = 41043;
                                     break;
                                 case '-5':
                                     $this->_ERROR_CODE = 41044;
                                     break;
                                 case '1':
                                     $this->_ERROR_CODE = 41045;
                                     break;
                                 case '2':
                                     $this->_ERROR_CODE = 41046;
                                     break;
                                 case '3':
                                     $this->_ERROR_CODE = 41047;
                                     break;
                                 case '4':
                                     $this->_ERROR_CODE = 41048;
                                     break;
                                 case '5':
                                     $this->_ERROR_CODE = 41050;
                                     break;
                                 case '6':
                                     $this->_ERROR_CODE = 41051;
                                     break;
                                 case '7':
                                     $this->_ERROR_CODE = 41052;
                                     break;
                                 case '99':
                                     $this->_ERROR_CODE = 41049;
                                     break;
                                 default:
                                     $this->_ERROR_CODE = $dab_rs;
                             }
                             break;
                         case VCB_ID:
                             $arrErr = explode("_", $dab_rs);
                             $this->_ERROR_CODE = $arrErr[1];
                             break;
                         case NVB_ID:
                             $this->_ERROR_CODE = $dab_rs;
                             break;
                         case NHHM:
                         case OFFLINE:
                             switch ($dab_rs) {
                                 case '-1':
                                     $this->_ERROR_CODE = 30720;
                                     break;
                                 case '-2':
                                     $this->_ERROR_CODE = 30721;
                                     break;
                                 case '-3':
                                     $this->_ERROR_CODE = 30722;
                                     break;
                                 case '-4':
                                     $this->_ERROR_CODE = 30723;
                                     break;
                                 case '-5':
                                     $this->_ERROR_CODE = 30724;
                                     break;
                                 default:
                                     $this->_ERROR_CODE = $dab_rs;
                             }
                             break;
                     }
                     //switch
                 }
                 //if
             }
         }
     }
     return returnXML(func_get_args(), $this->class_name, $function_name, $this->_ERROR_CODE, $this->items, $this);
 }
Ejemplo n.º 14
0
 function InsertListOfQuota4AcountVB($TradingDate)
 {
     $class_name = $this->class_name;
     $function_name = 'InsertListOfQuota4AcountVB';
     $struct = '{urn:' . $this->class_name . '}' . $function_name . 'Struct';
     $log[] = sprintf('InsertListOfQuota4AcountVB - TradingDate:%s;BankID:%s;ExecutedTime:%s', $TradingDate, OFFLINE, date('Y-m-d h:i:s'));
     if (authenUser(func_get_args(), $this, $function_name) > 0) {
         $log[] = sprintf('ErrorCode:%s(authenUser);', $this->_ERROR_CODE);
         write_my_log_path("InsertListOfQuota4AcountVB", implode("\n --> ", $log), '/home/vhosts/eSMS/htdocs/logs/quota/');
         return returnXML(func_get_args(), $this->class_name, $function_name, $this->_ERROR_CODE, $this->items, $this);
     }
     $query = sprintf("CALL sp_quota_getQuota4Bravo('%s', %u)", $TradingDate, OFFLINE);
     $result = $this->_MDB2->extended->getAll($query);
     $count = count($result);
     $log[] = sprintf('Query:%s;Count:%s', $query, $count);
     $f_args = func_get_args();
     $argscount = count($f_args);
     for ($i = 0; $i < $count; $i++) {
         $error_code = 0;
         $query = sprintf("CALL sp_quota_insertQuota4AccountVB(%u, %f, '%s', '%s', %u, '%s')", $result[$i]['accountid'], $result[$i]['debtamount'], 'Nộp hạn mức', $TradingDate, OFFLINE, $f_args[$argscount - 2]);
         $mdb = initWriteDB();
         $result2 = $mdb->extended->getAll($query);
         $log[] = sprintf('Query:%s; Times:%s', $query, $i);
         if (!isset($result2[0]['varerror'])) {
             $error_code = 40001;
         } else {
             $varerror = $result2[0]['varerror'];
             if ($varerror < 0) {
                 switch ($varerror) {
                     case '-1':
                         $error_code = 40002;
                         break;
                     case '-2':
                         $error_code = 40047;
                         break;
                     case '-3':
                         $error_code = 40048;
                         break;
                     case '-4':
                         $error_code = 40049;
                         break;
                     case '-5':
                         $error_code = 40050;
                         break;
                     default:
                         $error_code = $varerror;
                         break;
                 }
             }
         }
         $log[] = sprintf('ErrorCode:%s;', $error_code);
         if ($error_code == 0) {
             $deposit = array("TradingDate" => date("Y-m-d"), 'TransactionType' => BRAVO_QUOTA, "AccountNo" => $result[$i]['accountno'], "Amount" => $result[$i]['debtamount'], "Fee" => $result[$i]['debtamount'], "Bank" => VIRTUAL_BANK_BRAVO_BANKCODE, "Branch" => "", "Note" => 'Nop han muc');
             $log[] = sprintf('Bravo: TransactionType:%s;AccountNo:%s;Amount:%s;Fee:%s;Bank:%s;', BRAVO_QUOTA, $result[$i]['accountno'], $result[$i]['debtamount'], $result[$i]['debtamount'], VIRTUAL_BANK_BRAVO_BANKCODE);
             $soap =& new Bravo();
             $ret = $soap->deposit($deposit);
             if ($ret['table0']['Result'] != 1) {
                 switch ($ret['table0']['Result']) {
                     case '-2':
                         $error_code = 23002;
                         break;
                     case '-1':
                         $error_code = 23003;
                         break;
                     case '-13':
                         $error_code = 23006;
                         break;
                     case '-15':
                         $error_code = 23005;
                         break;
                     case '-16':
                         $error_code = 23004;
                         break;
                     default:
                         $error_code = 'Bravo' . $ret['table0']['Result'];
                 }
             }
             $log[] = sprintf('ErrorCode:%s;', $error_code);
         }
         if ($error_code != 0) {
             $this->_ERROR_CODE = $error_code;
             $this->items[] = new SOAP_Value('item', $struct, array("AccountID" => new SOAP_Value("AccountID", "string", $result[$i]['accountid']), "AccountNo" => new SOAP_Value("AccountNo", "string", $result[$i]['accountno']), "DebtAmount" => new SOAP_Value("DebtAmount", "string", $result[$i]['debtamount']), "BravoCode" => new SOAP_Value("BravoCode", "string", $result[$i]['bravocode']), "ErrorCode" => new SOAP_Value("ErrorCode", "string", $error_code)));
         }
     }
     $log[] = "\n\n";
     write_my_log_path("InsertListOfQuota4AcountVB", implode("\n --> ", $log), '/home/vhosts/eSMS/htdocs/logs/quota/');
     return returnXML(func_get_args(), $this->class_name, $function_name, $this->_ERROR_CODE, $this->items, $this);
 }
Ejemplo n.º 15
0
 /**
 	Function: confirmCollectDebt
 	Description:
 	Input:
 	Output: success / error code
 */
 function confirmCollectDebt($CollectDebtID, $UpdatedBy)
 {
     $function_name = 'confirmCollectDebt';
     $struct = '{urn:' . $this->class_name . '}' . $function_name . 'Struct';
     if (authenUser(func_get_args(), $this, $function_name) > 0) {
         return returnXML(func_get_args(), $this->class_name, $function_name, $this->_ERROR_CODE, $this->items, $this);
     }
     if (!required($CollectDebtID) || !unsigned($CollectDebtID)) {
         $this->_ERROR_CODE = 21130;
     } else {
         $query = sprintf("CALL sp_getInfoForCollectDebt( %u )", $CollectDebtID);
         $rs = $this->_MDB2->extended->getRow($query);
         $dab_rs = 999;
         $Amount = $rs['payment'] + $rs['paymentinterest'];
         $description = "EPS thu nợ cầm cố hợp đồng " . $rs['contractno'];
         switch ($rs['bankid']) {
             case DAB_ID:
                 $dab =& new CDAB();
                 $contractno = $CollectDebtID . " " . $rs['contractno'];
                 $dab_rs = $dab->transfertoEPS($rs['bankaccount'], $rs['accountno'], $contractno, $Amount, $description);
                 break;
             case OFFLINE:
                 $mdb = initWriteDB();
                 $query = sprintf("CALL sp_VirtualBank_CollectDebt(%u, '%s', '%s')", $CollectDebtID, date("Y-m-d"), $UpdatedBy);
                 $offline_rs = $mdb->extended->getRow($query);
                 $mdb->disconnect();
                 if (PEAR::isError($offline_rs)) {
                     $this->_ERROR_CODE = 21200;
                 } else {
                     $result = $offline_rs['varerror'];
                     if ($result < 0) {
                         switch ($result) {
                             case '-1':
                                 $this->_ERROR_CODE = 21201;
                                 break;
                             case '-2':
                                 $this->_ERROR_CODE = 21202;
                                 break;
                             case '-3':
                                 $this->_ERROR_CODE = 21203;
                                 break;
                             case '-4':
                                 $this->_ERROR_CODE = 21204;
                                 break;
                             case '-5':
                                 $this->_ERROR_CODE = 21205;
                                 break;
                             case '-9':
                                 $this->_ERROR_CODE = 21206;
                                 break;
                         }
                         //switch
                     } else {
                         //if
                         $dab_rs = 0;
                     }
                 }
                 //if PEAR
                 break;
             case VCB_ID:
                 $dab_rs = 666;
                 break;
         }
         if ($dab_rs == 0) {
             //Successfully
             $query = sprintf("UPDATE %s SET IsBank='1', UpdatedBy='%s', CollectDate=date(now()), UpdatedDate=convert_tz(now(), '+07:00', '+00:00') WHERE ID=%u", TBL_COLLECT_DEBT, $UpdatedBy, $CollectDebtID);
             $this->_MDB2_WRITE->extended->getRow($query);
             $this->_MDB2_WRITE->disconnect();
             //bravo
             $soap =& new Bravo();
             if ($rs['bravocode'] == VIRTUAL_BANK_BRAVO_BANKCODE) {
                 $withdrawValue = array("TradingDate" => date("Y-m-d"), 'TransactionType' => BRAVO_PAID_MORTAGE_EPS, "AccountNo" => $rs['accountno'], "Amount" => $rs['payment'], "Fee" => $rs['payment'], "Bank" => $rs['bravocode'], "Branch" => $rs['mortagebravocode'], "Note" => $description);
                 $ret = $soap->withdraw($withdrawValue);
                 if ($ret['table0']['Result'] == 1 && $rs['paymentinterest'] > 0) {
                     $withdrawValue = array("TradingDate" => date("Y-m-d"), 'TransactionType' => BRAVO_PAID_MORTAGE_INTEREST_EPS, "AccountNo" => $rs['accountno'], "Amount" => $rs['paymentinterest'], "Fee" => $rs['paymentinterest'], "Bank" => $rs['bravocode'], "Branch" => $rs['mortagebravocode'], "Note" => $description . ' - Lai cam co');
                     $ret = $soap->withdraw($withdrawValue);
                 }
             } else {
                 $withdrawValue = array("TradingDate" => date("Y-m-d"), 'TransactionType' => BRAVO_PAID_MORTAGE, "AccountNo" => $rs['accountno'], "Amount" => $rs['payment'], "Fee" => $rs['paymentinterest'], "Bank" => $rs['bravocode'], "Branch" => $rs['mortagebravocode'], "Note" => $description);
                 $ret = $soap->withdraw($withdrawValue);
             }
             if ($ret['table0']['Result'] == 1) {
                 // success
                 $this->_MDB2_WRITE->connect();
                 $query = sprintf("UPDATE %s SET IsBravo='1', UpdatedBy='%s', UpdatedDate=convert_tz(now(), '+07:00', '+00:00') WHERE ID=%u", TBL_COLLECT_DEBT, $UpdatedBy, $CollectDebtID);
                 $this->_MDB2_WRITE->extended->getRow($query);
             } else {
                 // Bravo fail
                 switch ($ret['table0']['Result']) {
                     case '-2':
                         $this->_ERROR_CODE = 23002;
                         break;
                     case '-1':
                         $this->_ERROR_CODE = 23003;
                         break;
                     case '-13':
                         $this->_ERROR_CODE = 23006;
                         break;
                     case '-15':
                         $this->_ERROR_CODE = 23005;
                         break;
                     case '-16':
                         $this->_ERROR_CODE = 23004;
                         break;
                     default:
                         $this->_ERROR_CODE = 'Bravo' . $ret['table0']['Result'];
                 }
                 //switch
             }
         } else {
             // bank fail
             switch ($dab_rs) {
                 /*					case '-1':
                 						$this->_ERROR_CODE = 22120;
                 						break;
                 
                 					case '-2':
                 						$this->_ERROR_CODE = 22121;
                 						break;
                 
                 					case '-3':
                 						$this->_ERROR_CODE = 22122;
                 						break;
                 
                 					case '-4':
                 						$this->_ERROR_CODE = 22123;
                 						break;
                 
                 					case '-5':
                 						$this->_ERROR_CODE = 22124;
                 						break;
                 
                 					case '1':
                 						$this->_ERROR_CODE = 22126;
                 						break;
                 
                 					case '2':
                 						$this->_ERROR_CODE = 22127;
                 						break;
                 
                 					case '5':
                 						$this->_ERROR_CODE = 22128;
                 						break;
                 
                 					case '6':
                 						$this->_ERROR_CODE = 22129;
                 						break;
                 
                 					case '99':
                 						$this->_ERROR_CODE = 22130;
                 						break;
                 */
                 case '-1':
                     //unauthenticate partner
                     $this->_ERROR_CODE = 22135;
                     break;
                 case '-2':
                     //invalid parameters
                     $this->_ERROR_CODE = 22136;
                     break;
                 case '-3':
                     //invalid date
                     $this->_ERROR_CODE = 22137;
                     break;
                 case '-4':
                     //no customer found
                     $this->_ERROR_CODE = 22140;
                     break;
                 case '-5':
                     //transfer unsuccessful
                     $this->_ERROR_CODE = 22141;
                     break;
                 case '1':
                     //invalid account
                     $this->_ERROR_CODE = 22142;
                     break;
                 case '2':
                     //invalid amount
                     $this->_ERROR_CODE = 22143;
                     break;
                 case '3':
                     //duplicate transfer
                     $this->_ERROR_CODE = 22147;
                     break;
                 case '5':
                     //not enough balance
                     $this->_ERROR_CODE = 22144;
                     break;
                 case '6':
                     //duplicate account
                     $this->_ERROR_CODE = 22145;
                     break;
                 case '99':
                     //unknown error
                     $this->_ERROR_CODE = 22138;
                     break;
                 default:
                     $this->_ERROR_CODE = $dab_rs;
             }
             //switch
         }
     }
     return returnXML(func_get_args(), $this->class_name, $function_name, $this->_ERROR_CODE, $this->items, $this);
 }
Ejemplo n.º 16
0
 function ConfirmExtraCollectDisbursement($ID, $UpdatedBy)
 {
     $function_name = 'ConfirmExtraCollectDisbursement';
     $struct = '{urn:' . $this->class_name . '}' . $function_name . 'Struct';
     if (authenUser(func_get_args(), $this, $function_name) > 0) {
         return returnXML(func_get_args(), $this->class_name, $function_name, $this->_ERROR_CODE, $this->items, $this);
     }
     $query = sprintf("CALL sp_ExtraCollectDisbursement_getInfo('%s')", $ID);
     $rs = $this->_MDB2->extended->getRow($query);
     $BankAccount = $rs['bankaccount'];
     $BankID = (int) $rs['bankid'];
     $BravoCode = (int) $rs['bravocode'];
     $Amount = $rs['amount'];
     $AccountNo = $rs['accountno'];
     $TradingDate = $rs['tradingdate'];
     $Note = $rs['note'];
     $TranTypeID = (int) $rs['trantypeid'];
     if ($BankAccount != '') {
         switch ($BankID) {
             case DAB_ID:
                 $dab =& new CDAB();
                 $refno = $AccountNo . "_" . $ID . "_" . date('Y-m-d');
                 if ($TranTypeID == 1) {
                     // Thu tien
                     $dab_rs = $dab->transfertoEPS($BankAccount, $AccountNo, $refno, $Amount, $Note);
                 } elseif ($TranTypeID == 2) {
                     // Chuyen tien
                     $dab_rs = $dab->transferfromEPS($BankAccount, $AccountNo, $refno, $Amount, $Note);
                 }
                 break;
             case OFFLINE:
                 $mdb = initWriteDB();
                 $query = sprintf("CALL sp_VirtualBank_ExtraCollectDisbursement(%u, '%s', '%s')", $ID, date("Y-m-d"), $UpdatedBy);
                 $offline_rs = $mdb->extended->getRow($query);
                 $mdb->disconnect();
                 if (PEAR::isError($offline_rs)) {
                     $this->_ERROR_CODE = 31500;
                 } else {
                     $result = $offline_rs['varerror'];
                     if ($result < 0) {
                         switch ($result) {
                             case '-1':
                                 $this->_ERROR_CODE = 31501;
                                 break;
                             case '-2':
                                 $this->_ERROR_CODE = 31502;
                                 break;
                             case '-3':
                                 $this->_ERROR_CODE = 31503;
                                 break;
                             case '-4':
                                 $this->_ERROR_CODE = 30624;
                                 // khong du tien
                                 break;
                             case '-5':
                                 $this->_ERROR_CODE = 31504;
                                 break;
                             case '-9':
                                 $this->_ERROR_CODE = 31505;
                                 break;
                         }
                         //switch
                     } else {
                         //if
                         $dab_rs = 0;
                     }
                 }
                 //if PEAR
                 break;
         }
         //switch
         if ($dab_rs == 0) {
             $query = sprintf("CALL sp_ExtraCollectDisbursement_Confirm(%u,'%s')", $ID, $UpdatedBy);
             $rs = $this->_MDB2_WRITE->extended->getRow($query);
             if ($rs['varerror'] < 0) {
                 switch ($rs['varerror']) {
                     case '-2':
                         $this->_ERROR_CODE = 31450;
                         break;
                 }
                 return returnXML(func_get_args(), $this->class_name, $function_name, $this->_ERROR_CODE, $this->items, $this);
             } else {
                 //update Bank
                 $soap =& new Bravo();
                 if ($TranTypeID == 1) {
                     // Thu tien
                     $transactionType = "M13.09";
                     $sign = '-';
                 } elseif ($TranTypeID == 2) {
                     // Chuyen tien
                     $transactionType = "M13.08";
                     $sign = '%2B';
                 }
                 if ($BankID == OFFLINE) {
                     $query = "SELECT mobilephone,ab.usableamount FROM " . TBL_INVESTOR;
                     $query .= " i INNER JOIN " . TBL_ACCOUNT . " a ON(i.id=a.investorId)";
                     $query .= " INNER JOIN " . TBL_ACCOUNT_BANK . " ab ON(a.id=ab.accountid)";
                     $query .= " WHERE a.accountNo='" . $AccountNo . "' AND ab.bankid=" . OFFLINE;
                     $mdb = initWriteDB();
                     $acc_rs = $mdb->extended->getRow($query);
                     $mdb->disconnect();
                     if (!empty($acc_rs['mobilephone'])) {
                         $message = 'Tai khoan cua quy khach tai KIS da thay doi: ' . $sign . number_format($Amount, 0, '.', ',') . '. ' . $Note;
                         $message .= '. So du hien tai la: ' . number_format($acc_rs['usableamount'], 0, '.', ',');
                         sendSMS(array('Phone' => $acc_rs['mobilephone'], 'Content' => $message));
                     }
                 }
                 $Deposit_value = array("TradingDate" => date('Y-m-d'), 'TransactionType' => $transactionType, "AccountNo" => $AccountNo, "Amount" => $Amount, "Bank" => $BravoCode, "Branch" => "", "Note" => $Note);
                 $ret = $soap->deposit($Deposit_value);
                 if ($ret['table0']['Result'] != 1) {
                     switch ($ret['table0']['Result']) {
                         case 0:
                             $this->_ERROR_CODE = 0;
                             break;
                         case -2:
                             //Error - bravo
                             $this->_ERROR_CODE = 23002;
                             break;
                         case -1:
                             //Invalid key
                             $this->_ERROR_CODE = 23003;
                             break;
                         case -13:
                             /*Invalid Transaction Type*/
                             $this->_ERROR_CODE = 23006;
                             break;
                         case -15:
                             /*Invalid CustomerCode*/
                             $this->_ERROR_CODE = 23005;
                             break;
                         case -16:
                             /*Invalid DestCustomerCode*/
                             $this->_ERROR_CODE = 23004;
                             break;
                         default:
                             //Unknown Error
                             $this->_ERROR_CODE = $ret['table0']['Result'];
                             break;
                     }
                     if ($this->_ERROR_CODE != 0 && $Deposit_value['Amount'] > 0) {
                         $soap->rollback($ret['table1']['Id'], date('Y-m-d'));
                     }
                 }
             }
             //update bank
         } else {
             switch ($dab_rs) {
                 case '-1':
                     //unauthenticate partner
                     $this->_ERROR_CODE = 22135;
                     break;
                 case '-2':
                     //invalid parameters
                     $this->_ERROR_CODE = 22136;
                     break;
                 case '-3':
                     //invalid date
                     $this->_ERROR_CODE = 22137;
                     break;
                 case '-4':
                     //no customer found
                     $this->_ERROR_CODE = 22140;
                     break;
                 case '-5':
                     //transfer unsuccessful
                     $this->_ERROR_CODE = 22141;
                     break;
                 case '1':
                     //invalid account
                     $this->_ERROR_CODE = 22142;
                     break;
                 case '2':
                     //invalid amount
                     $this->_ERROR_CODE = 22143;
                     break;
                 case '3':
                     //duplicate transfer
                     $this->_ERROR_CODE = 22147;
                     break;
                 case '5':
                     //not enough balance
                     $this->_ERROR_CODE = 22144;
                     break;
                 case '6':
                     //duplicate account
                     $this->_ERROR_CODE = 22145;
                     break;
                 case '99':
                     //unknown error
                     $this->_ERROR_CODE = 22138;
                     break;
                 default:
                     $this->_ERROR_CODE = 22139;
             }
         }
         // bank
     } else {
         //bank account
         $this->_ERROR_CODE = 31452;
     }
     return returnXML(func_get_args(), $this->class_name, $function_name, $this->_ERROR_CODE, $this->items, $this);
 }