function getAdvanceAmountforBankAndDate($AdvanceDate, $TDate, $BankID)
 {
     try {
         $class_name = $this->class_name;
         $function_name = 'getAdvanceAmountforBankAndDate';
         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);
         }
         $this->items = array();
         $query = sprintf("CALL sp_getAdvanceAmountforBankAndDate('%s','%s','%s')", $AdvanceDate, $TDate, $BankID);
         $result = $this->_MDB2->extended->getAll($query);
         $num_row = count($result);
         if ($num_row > 0) {
             for ($i = 0; $i < $num_row; $i++) {
                 $this->items[$i] = new SOAP_Value('items', '{urn:' . $class_name . '}' . $function_name . 'Struct', array('AdvanceAmount' => new SOAP_Value("AdvanceAmount", "string", $result[$i]['advanceamount']), 'Numday' => new SOAP_Value("Numday", "string", $result[$i]['numday']), 'Val' => new SOAP_Value("Val", "string", $result[$i]['val'])));
             }
         }
     } 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);
 }
 function insertBuyingStockDivident($AccountID, $BankID, $Amount, $DepositDate, $Note, $CreatedBy)
 {
     $function_name = 'insertBuyingStockDivident';
     $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($AccountID) || !unsigned($AccountID) || !required($BankID) || !unsigned($BankID) || !required($Amount) || !unsigned($Amount) || !required($DepositDate)) {
         if (!required($AccountID) || !unsigned($AccountID)) {
             $this->_ERROR_CODE = 22230;
         }
         if (!required($BankID) || !unsigned($BankID)) {
             $this->_ERROR_CODE = 22231;
         }
         if (!required($Amount) || !unsigned($Amount)) {
             $this->_ERROR_CODE = 22232;
         }
         if (!required($DepositDate)) {
             $this->_ERROR_CODE = 22233;
         }
     } else {
         $query = sprintf("CALL sp_VirtualBank_insertBuyingStockDivident(%u, %u, %f, '%s', '%s', '%s' )", $AccountID, $BankID, $Amount, $DepositDate, $Note, $CreatedBy);
         $rs = $this->_MDB2_WRITE->extended->getRow($query);
         if (empty($rs)) {
             $this->_ERROR_CODE = 22234;
         } else {
             $result = $rs['varerror'];
             if ($result < 0) {
                 switch ($result) {
                     case '-1':
                         $this->_ERROR_CODE = 22235;
                         break;
                     case '-2':
                         $this->_ERROR_CODE = 22236;
                         break;
                     case '-3':
                         $this->_ERROR_CODE = 22237;
                         break;
                     case '-4':
                         $this->_ERROR_CODE = 22238;
                         break;
                     case '-5':
                         $this->_ERROR_CODE = 22239;
                         break;
                     case '-9':
                         $this->_ERROR_CODE = 22240;
                         break;
                     default:
                         $this->_ERROR_CODE = $result;
                 }
             }
         }
     }
     return returnXML(func_get_args(), $this->class_name, $function_name, $this->_ERROR_CODE, $this->items, $this);
 }
示例#3
0
 function checkQuotaAccountIsExisted($AccountNo)
 {
     $function_name = 'checkQuotaAccountIsExisted';
     $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);
     }
     $MDB2 = initDB();
     $query = sprintf("SELECT f_quota_QuotaAccount_IsExisted('%s') AS Boolean", $AccountNo);
     $result = $MDB2->extended->getRow($query);
     $this->items[0] = new SOAP_Value('item', $struct, array("Boolean" => new SOAP_Value("Boolean", "string", $result['boolean'])));
     return returnXML(func_get_args(), $this->class_name, $function_name, $this->_ERROR_CODE, $this->items, $this);
 }
示例#4
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);
 }
 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);
 }
示例#6
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);
 }
 function getTransferingOrderForReSend($OrderDate, $AccountNo, $OrderID)
 {
     $function_name = 'getTransferingOrderForReSend';
     $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);
     }
     try {
         $this->_MDB2_WRITE = newInitWriteDB();
         $query = sprintf("CALL sp_hnx_GetTransferingOrderForReSend('%s', '%s', %u)", $OrderDate, $AccountNo, $OrderID);
         $result = $this->_MDB2_WRITE->extended->getAll($query);
         $count = count($result);
         if ($count > 0) {
             for ($i = 0; $i < $count; $i++) {
                 $this->items[$i] = new SOAP_Value('item', $struct, array("OrderID" => new SOAP_Value("OrderID", "string", $result[$i]['OrderID']), "OrderNumber" => new SOAP_Value("OrderNumber", "string", $result[$i]['OrderNumber']), "AccountNo" => new SOAP_Value("AccountNo", "string", $result[$i]['AccountNo']), "OrderSideName" => new SOAP_Value("OrderSideName", "string", $result[$i]['OrderSideName']), "Symbol" => new SOAP_Value("Symbol", "string", $result[$i]['Symbol']), "OrderStyleName" => new SOAP_Value("OrderStyleName", "string", $result[$i]['OrderStyleName']), "OrderPrice" => new SOAP_Value("OrderPrice", "string", $result[$i]['OrderPrice']), "OrderQuantity" => new SOAP_Value("OrderQuantity", "string", $result[$i]['OrderQuantity']), "StatusName" => new SOAP_Value("StatusName", "string", $result[$i]['StatusName']), "GetNumber" => new SOAP_Value("GetNumber", "string", $result[$i]['o.GetNumber'])));
             }
         }
         $content = date("d/m/Y H:i:s") . "\t" . $query . "\t--> " . $count;
         another_write_log($function_name, $content, 'directly_tranfer');
     } catch (Exception $e) {
         $this->_ERROR_CODE = $e->getMessage();
     }
     return returnXML(func_get_args(), $this->class_name, $function_name, $this->_ERROR_CODE, $this->items, $this);
 }
示例#8
0
 function ReportVirtualBank_GetAccountBalanceByDate($BankID, $AccountNo, $FromDate, $ToDate)
 {
     $function_name = 'ReportVirtualBank_GetAccountBalanceByDate';
     $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_VirtualBank_getAccountBalanceByDate('%s','%s','%s','%s')", $BankID, $AccountNo, $FromDate, $ToDate);
     $result = $this->_MDB2->extended->getAll($query);
     $num_row = count($result);
     if ($num_row > 0) {
         for ($i = 0; $i < $num_row; $i++) {
             $this->items[$i] = new SOAP_Value('items', '{urn:' . $this->class_name . '}' . $function_name . 'Struct', array('PrevBalance' => new SOAP_Value("PrevBalance", "string", $result[$i]['prevbalance']), 'NextBalance' => new SOAP_Value("NextBalance", "string", $result[$i]['nextbalance']), 'AccountNo' => new SOAP_Value("AccountNo", "string", $result[$i]['accountno']), 'InvestorName' => new SOAP_Value("InvestorName", "string", $result[$i]['investorname'])));
         }
     }
     return returnXML(func_get_args(), $this->class_name, $function_name, $this->_ERROR_CODE, $this->items, $this);
 }
 function UpdateIsCollectedVSDFee()
 {
     $class_name = $this->class_name;
     $function_name = 'UpdateIsCollectedVSDFee';
     $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);
     }
     $date_array = getdate();
     $csv_dir = $this->path . 'vcb_kq/';
     if (!is_dir($csv_dir)) {
         mkdir($csv_dir, 0755);
     }
     $csv_dir = $csv_dir . 'logs/';
     if (!is_dir($csv_dir)) {
         mkdir($csv_dir, 0755);
     }
     $csv_dir = $csv_dir . $date_array['year'] . '/';
     if (!is_dir($csv_dir)) {
         mkdir($csv_dir, 0755);
     }
     $csv_dir = $csv_dir . $date_array['mon'] . '/';
     if (!is_dir($csv_dir)) {
         mkdir($csv_dir, 0755);
     }
     $filename = 'eps' . date('Ymd') . '_buy_log.vcbit';
     $filepath = $csv_dir . $filename;
     $vsdlogfile = 'vsdrefno_' . date('Ymd') . '.txt';
     $vsdlogfile = sprintf('%s%s%s/%s/%s', $this->path, 'vcb_kq/', $date_array['year'], $date_array['mon'], $vsdlogfile);
     if (is_file($vsdlogfile)) {
         if (!is_file($filepath)) {
             $conn_id = ftp_connect($this->ftp_server);
             // login with username and password
             $login_result = ftp_login($conn_id, $this->ftp_user_name, $this->ftp_user_pass);
             // check connection
             if (!$conn_id || !$login_result) {
                 $this->_ERROR_CODE = 24001;
             } else {
                 $destination_file = $filepath;
                 // open some file to write to
                 $handle = fopen($destination_file, 'w');
                 $source_file = 'OUT/' . $filename;
                 // get the size of $file
                 $res = ftp_size($conn_id, $source_file);
                 if ($res != -1) {
                     $upload = ftp_fget($conn_id, $handle, $source_file, FTP_BINARY);
                     // check upload status
                     if (!$upload) {
                         $this->_ERROR_CODE = 24002;
                     } else {
                         $this->_ERROR_CODE = 0;
                     }
                 } else {
                     //echo "couldn't get the size";
                     $this->_ERROR_CODE = 24005;
                 }
                 // close the FTP stream
                 ftp_close($conn_id);
                 fclose($handle);
             }
         }
         if (file_exists($filepath) === true) {
             $handle = fopen($vsdlogfile, "r");
             $vsdlogcontent = fgets($handle);
             fclose($handle);
             $vsdrefarray = explode('_', $vsdlogcontent);
             $handle = fopen($filepath, "r");
             while (!feof($handle)) {
                 $line = fgets($handle);
                 $splited = explode(';', $line);
                 if (in_array($splited[1], $vsdrefarray)) {
                     $orderID = substr($splited[1], 0, strlen($splited[1]) - 6);
                     $unitCode = substr($splited[1], -6);
                     if ($splited[15] == '0000') {
                         $this->_MDB2->connect();
                         $query = sprintf("CALL sp_FeeForVSD_updateIsCollectedForVCB('%s')", $orderID);
                         $result = $this->_MDB2->extended->getAll($query);
                         $this->_MDB2->disconnect();
                     }
                     $content = $line . ' ' . $query . ' varerror: ' . $result[0]['varerror'];
                     write_my_log_path('UpdateIsCollectedVSDFee', $content, $csv_dir);
                     $this->items[] = new SOAP_Value('item', $struct, array('Refno' => new SOAP_Value("Refno", "string", $splited[1]), 'OrderID' => new SOAP_Value("OrderID", "string", $orderID), 'UnitCode' => new SOAP_Value("UnitCode", "string", $unitCode), 'AccountNo' => new SOAP_Value("AccountNo", "string", $splited[4]), 'Amount' => new SOAP_Value("Amount", "string", $splited[12]), 'VCBResult' => new SOAP_Value("VCBResult", "string", $splited[15]), 'Note' => new SOAP_Value("Note", "string", substr($splited[16], 0, strlen($splited[16]) - 1)), 'UpdateIsCollectedResult' => new SOAP_Value("UpdateIsCollectedResult", "string", $result[0]['varerror'])));
                 }
             }
             fclose($handle);
         } else {
             // Chua co log file
             $this->_ERROR_CODE = 24004;
         }
     } else {
         // Khong tim thay file vsdfee refno log
         $this->_ERROR_CODE = 43007;
     }
     return returnXML(func_get_args(), $this->class_name, $function_name, $this->_ERROR_CODE, $this->items, $this);
 }
示例#10
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);
 }
示例#11
0
 /**
 	Function: NewGetPaymentDetailListWithCondition
 	Description:
 	Input:
 	Output: ???
 */
 function NewGetPaymentDetailListWithCondition($WhereClause, $TimeZone)
 {
     $function_name = 'NewGetPaymentDetailListWithCondition';
     $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_Mortage_getPaymentDetailConditionList( \"%s\", \"%s\")", $WhereClause, $TimeZone);
     $result = $this->_MDB2->extended->getAll($query);
     for ($i = 0; $i < count($result); $i++) {
         $this->items[$i] = new SOAP_Value('item', $struct, array("ID" => new SOAP_Value("ID", "string", $result[$i]['id']), "MortageID" => new SOAP_Value("MortageID", "string", $result[$i]['mortageid']), "AccountID" => new SOAP_Value("AccountNo", "string", $result[$i]['accountid']), "AccountNo" => new SOAP_Value("AccountNo", "string", $result[$i]['accountno']), "StockID" => new SOAP_Value("StockID", "string", $result[$i]['stockid']), "Symbol" => new SOAP_Value("Symbol", "string", $result[$i]['symbol']), "Quantity" => new SOAP_Value("Quantity", "string", $result[$i]['quantity']), "PaymentDate" => new SOAP_Value("PaymentDate", "string", $result[$i]['paymentdate']), "Note" => new SOAP_Value("Note", "string", $result[$i]['note']), "IsConfirmed" => new SOAP_Value("IsConfirmed", "string", $result[$i]['isconfirmed']), "FullName" => new SOAP_Value("FullName", "string", $result[$i]['fullname']), "CreatedBy" => new SOAP_Value("CreatedBy", "string", $result[$i]['createdby']), "CreatedDate" => new SOAP_Value("CreatedDate", "string", $result[$i]['createddate']), "UpdatedBy" => new SOAP_Value("UpdatedBy", "string", $result[$i]['updatedby']), "UpdatedDate" => new SOAP_Value("UpdatedDate", "string", $result[$i]['updateddate'])));
     }
     return returnXML(func_get_args(), $this->class_name, $function_name, $this->_ERROR_CODE, $this->items, $this);
 }
示例#12
0
function ListFolder($rootFolder, $ReturnAttr, $instituteArr, $courseArr, $classArr, $moderatorArr)
{
    $folderArr = "";
    $folderArrCnt = "";
    $dir_handle = "";
    $dirname = "";
    $parentFolder = "";
    $fPath = "";
    $Return = "";
    $xmlTreeFile = isset($xmlTreeFile) ? $xmlTreeFile : '';
    $xmlTreeFolder = isset($xmlTreeFolder) ? $xmlTreeFolder : '';
    //echo $rootFolder; exit;
    $dir_handle = @opendir($rootFolder) or die(returnXML("Unable to open the directory"));
    //Open the root directory
    $dirname = end(explode("/", $rootFolder));
    while (false !== ($file = readdir($dir_handle))) {
        //Read the root directory
        $fileLabel = "";
        $fileSize = "";
        $modified = "";
        $isModerator = "N";
        // default value set for is_moderator to N (means not a moderator)
        $showFolder = true;
        $icon = "";
        $unfold = 0;
        $tempPath = $rootFolder . "/" . $file;
        $folderArr = explode("/", $tempPath);
        $folderArrCnt = count($folderArr);
        $parentFolder = trim($folderArr[$folderArrCnt - 2]);
        if ($parentFolder == "institutes") {
            $fileLabel = isset($instituteArr[$file]) ? $instituteArr[$file] : "Doc {$file}";
            if (!array_key_exists($file, $instituteArr)) {
                $showFolder = false;
            }
        } else {
            if ($parentFolder == "courses") {
                $fileLabel = isset($courseArr[$file]) ? $courseArr[$file] : "Course {$file}";
                if (!array_key_exists($file, $courseArr)) {
                    $showFolder = false;
                }
            } else {
                if ($parentFolder == "classes") {
                    $fileLabel = isset($classArr[$file]) ? $classArr[$file] : "Class {$file}";
                    if (!array_key_exists($file, $classArr)) {
                        $showFolder = false;
                    }
                } else {
                    $fileLabel = $file;
                }
            }
        }
        if ($file != "." && $file != ".." && $showFolder && $file != '@@-Thumbnails-@@' && $file != '@@-OriginalDocs-@@') {
            if (is_dir($rootFolder . "/" . $file)) {
                //Check whether the file is a directory or not
                $checkFolder = substr($file, 0, 6);
                $modified = date("F d Y H:i:s.", @filemtime($tempPath));
                //$fileSize 		= convertSize(getFileSize($tempPath)); // get file size in KB or B
                $isModerator = isset($moderatorArr[$file]) ? $moderatorArr[$file] : $isModerator;
                if ($file != "courses" && $file != "classes") {
                    if ($checkFolder == '_sfp__') {
                        $xmlTreeFile .= "<files id='" . $file . "'label='" . substr($file, 6, strlen($file)) . "' path='" . $tempPath . "' cDate='" . $modified . "' fSize='" . $fileSize . "' type='file'></files>";
                        $emptyFolderCheckFlag = false;
                    } else {
                        $xmlTreeFolder .= "<folder id='" . $file . "' label='" . $fileLabel . "' path='" . $tempPath . "' cDate='" . $modified . "' fSize='" . $fileSize . "' is_moderator='" . $isModerator . "' type='" . $parentFolder . "'>";
                        $emptyFolderCheckFlag = is_empty_dir($tempPath);
                    }
                }
                if ($emptyFolderCheckFlag) {
                    $xmlTreeFolder .= "<emptyFolder label=\" - No documents - \" path='" . $tempPath . "' type='No Documents'></emptyFolder>";
                } else {
                    if ($checkFolder != '_sfp__') {
                        $rootFolder = substr($rootFolder, -1, 1) == "/" ? substr($rootFolder, 0, -1) : $rootFolder;
                        //exit;
                        $xmlTreeFolder .= ListFolder($rootFolder . "/" . $file, $Return, $instituteArr, $courseArr, $classArr, $moderatorArr);
                    }
                }
                if ($file != "courses" && $file != "classes" && $checkFolder != '_sfp__') {
                    $xmlTreeFolder .= "</folder>";
                }
            } else {
                //$fileSize 	=   convertSize(getFileSize($tempPath)); // get file size in KB or B
                $file = str_replace('.swf', '', $file);
                $modified = date("F d Y H:i:s.", @filemtime($tempPath));
                $xmlTreeFile .= "<files label='" . $file . "' path='" . $tempPath . "' cDate='" . $modified . "' fSize='" . $fileSize . "' type='file'></files>";
            }
        }
    }
    $Return = $xmlTreeFolder . $xmlTreeFile;
    closedir($dir_handle);
    return $Return;
}
示例#13
0
 /**
  * Function CloseBravoAccount  : update money --> bravo
  * Input         : $TradingDate
  * OutPut         : error code and items ( AccountNo, success or fail)
  */
 function CloseBravoAccount($AccountNo)
 {
     $class_name = $this->class_name;
     $function_name = 'CloseBravoAccount';
     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);
     }
     $this->items = array();
     $soap =& new Bravo();
     $this->_ERROR_CODE = $soap->closeCustomer($AccountNo);
     $this->write_my_log('MoneyBravo', $function_name . ' AccountNo ' . $AccountNo . ' ' . $date . '  varerror ' . $this->_ERROR_CODE . ' ' . date('Y-m-d h:i:s'));
     return returnXML(func_get_args(), $this->class_name, $function_name, $this->_ERROR_CODE, $this->items, $this);
 }
示例#14
0
 function OpenAccount1($PersonalCard, $Name, $Address, $BankAccountNo, $PartnerType, $dtBirthDay, $PlaceOfBirth, $dtDateIssue, $PlaceIssue, $ZipCode, $Country, $Email, $Phone, $Fax, $CompanyAddress, $CompanyPhone, $MailingAddress, $MailingPhone)
 {
     $class_name = $this->class_name;
     $function_name = 'OpenAccount1';
     $this->_ERROR_CODE = '0000';
     if (0) {
         //authenUser(func_get_args(), $this, $function_name) > 0 ){
         $Name = '';
         $Address = '';
         $Account = '';
         $Status = '';
         $RespString = 'Invalid user/Password';
         $OldNewAccount = '';
         write_my_log('VCB-test', $_SERVER['REMOTE_ADDR'] . ' function_name ' . $function_name . ' Input PersonalCard ' . $PersonalCard . ' Name ' . $Name . ' Address ' . $Address . ' BankAccountNo ' . $BankAccountNo . ' PartnerType ' . $PartnerType . ' dtBirthDay ' . $dtBirthDay . ' PlaceOfBirth ' . $PlaceOfBirth . ' dtDateIssue ' . $dtDateIssue . ' PlaceIssue ' . $PlaceIssue . ' ZipCode ' . $ZipCode . ' Country ' . $Country . ' Email ' . $Email . ' Phone ' . $Phone . ' Fax ' . $Fax . ' CompanyAddress ' . $CompanyAddress . ' CompanyPhone ' . $CompanyPhone . ' MailingAddress ' . $MailingAddress . ' MailingPhone ' . $MailingPhone . ' ErrorCode ' . $this->_ERROR_CODE . ' ' . date('Y-m-d h:i:s'));
         mailSMTP('*****@*****.**', '*****@*****.**', '*****@*****.**', '', '', 'Ket noi VietCombank test', 'Test ket noi VietComBank ' . $_SERVER['REMOTE_ADDR'] . ' function_name ' . $function_name . ' Input PersonalCard ' . $PersonalCard . ' Name ' . $Name . ' Address ' . $Address . ' BankAccountNo ' . $BankAccountNo . ' PartnerType ' . $PartnerType . ' dtBirthDay ' . $dtBirthDay . ' PlaceOfBirth ' . $PlaceOfBirth . ' dtDateIssue ' . $dtDateIssue . ' PlaceIssue ' . $PlaceIssue . ' ZipCode ' . $ZipCode . ' Country ' . $Country . ' Email ' . $Email . ' Phone ' . $Phone . ' Fax ' . $Fax . ' CompanyAddress ' . $CompanyAddress . ' CompanyPhone ' . $CompanyPhone . ' MailingAddress ' . $MailingAddress . ' MailingPhone ' . $MailingPhone . ' ErrorCode ' . $this->_ERROR_CODE . ' ' . date('Y-m-d h:i:s') . ' ErrorCode ' . $this->_ERROR_CODE);
         $array_input['PersonalCard'] = new SOAP_Value('PersonalCard', 'string', $PersonalCard);
         $array_input['Name'] = new SOAP_Value('Name', 'string', $Name);
         $array_input['Account'] = new SOAP_Value('Account', 'string', $Account);
         $array_input['State'] = new SOAP_Value('State', 'string', $State);
         $array_input['ResponseCode'] = new SOAP_Value('ResponseCode', 'string', $this->_ERROR_CODE);
         $array_input['RespString'] = new SOAP_Value('RespString', 'string', $RespString);
         $array_input['OldNewAccount'] = new SOAP_Value('OldNewAccount', 'string', $OldNewAccount);
         return returnXML(func_get_args(), $this->class_name, $function_name, $array_input, $this);
     }
     if (!required($Name)) {
         $this->_ERROR_CODE = 8013;
         $RespString = 'Name is null';
     }
     if ($this->_ERROR_CODE == '0000' && !required($BankAccountNo)) {
         $this->_ERROR_CODE = 8016;
         $RespString = 'BankAccountNo is null';
     }
     if ($this->_ERROR_CODE == '0000' && !required($PersonalCard)) {
         $this->_ERROR_CODE = 8072;
         $RespString = 'PersonalCard is null';
     }
     if ($this->_ERROR_CODE == '0000' && isset($PartnerType) && strlen($PartnerType) > 0 && !in_array($PartnerType, array('C', 'F', 'P'))) {
         $this->_ERROR_CODE = 8028;
         $RespString = 'Invalid PartnerType';
     }
     if ($this->_ERROR_CODE == '0000') {
         $BankName = 'VietComBank';
         $pos = strpos($Name, ' ');
         $FirstName = substr($Name, 0, $pos + 1);
         $LastName = substr($Name, $pos + 1);
         $query = sprintf("CALL Sp_aaaaOpenPrivateAccount_VCB\r\n('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')", $FirstName, $LastName, $PartnerType, $Address, $MailingAddress, $Phone, $MailingPhone, $Email, $dtBirthDay, $PersonalCard, $dtDateIssue, $PlaceIssue, 'F', $BankAccountNo, $Country, $BankName);
         $result = $this->_MDB2_WRITE->extended->getAll($query);
         $this->_MDB2_WRITE->disconnect();
         $Name = '';
         $Address = '';
         $Account = '';
         $Status = '';
         $RespString = '';
         $OldNewAccount = '';
         if (empty($result) || is_object($result)) {
             $this->_ERROR_CODE = 8049;
         } else {
             if (isset($result[0]['varerror'])) {
                 if ($result[0]['varerror'] == -1) {
                     $this->_ERROR_CODE = 8051;
                     //exception
                     $RespString = 'EPS-err : exception';
                 }
                 //if($result[0]['varerror'] == -2) $this->_ERROR_CODE = 18052;// duplicate cardno
                 if ($result[0]['varerror'] == -3) {
                     $this->_ERROR_CODE = 8053;
                     //invalid countryName
                     $RespString = 'EPS-err invalid country name';
                 }
                 if ($result[0]['varerror'] == -4) {
                     $this->_ERROR_CODE = 8054;
                     //update account err
                     $RespString = 'EPS-err update account';
                 }
                 if ($result[0]['varerror'] == -5) {
                     $this->_ERROR_CODE = 8055;
                     //insert investor err
                     $RespString = 'EPS-err insert Investor';
                 }
                 if ($result[0]['varerror'] == -6) {
                     $this->_ERROR_CODE = 8056;
                     //ins MoneyBalance err
                     $RespString = 'EPS-err insert Balance';
                 }
                 if ($result[0]['varerror'] == -2 || $result[0]['varerror'] == 0) {
                     $Name = $result[0]['v_sfullname'];
                     $Address = $result[0]['sresidentaddress'];
                     $Account = $result[0]['v_saccountno'];
                     $Status = $result[0]['v_iisactive'] ? 'A' : 'H';
                     $OldNewAccount = $result[0]['v_icreated'] ? 0 : 1;
                     $RespString = 'Sucess';
                 }
             } else {
                 $this->_ERROR_CODE = 8049;
                 $RespString = 'EPS-err: db err';
             }
         }
     }
     $array_input['PersonalCard'] = new SOAP_Value('PersonalCard', 'string', $PersonalCard);
     $array_input['Name'] = new SOAP_Value('Name', 'string', $Name);
     $array_input['Account'] = new SOAP_Value('Account', 'string', $Account);
     $array_input['State'] = new SOAP_Value('State', 'string', $Status);
     $array_input['ResponseCode'] = new SOAP_Value('ResponseCode', 'string', $this->_ERROR_CODE);
     $array_input['RespString'] = new SOAP_Value('RespString', 'string', $RespString);
     $array_input['OldNewAccount'] = new SOAP_Value('OldNewAccount', 'string', $OldNewAccount);
     write_my_log('VCB-test', $_SERVER['REMOTE_ADDR'] . ' function_name ' . $function_name . ' Input PersonalCard ' . $PersonalCard . ' Name ' . $Name . ' Address ' . $Address . ' BankAccountNo ' . $BankAccountNo . ' PartnerType ' . $PartnerType . ' dtBirthDay ' . $dtBirthDay . ' PlaceOfBirth ' . $PlaceOfBirth . ' dtDateIssue ' . $dtDateIssue . ' PlaceIssue ' . $PlaceIssue . ' ZipCode ' . $ZipCode . ' Country ' . $Country . ' Email ' . $Email . ' Phone ' . $Phone . ' Fax ' . $Fax . ' CompanyAddress ' . $CompanyAddress . ' CompanyPhone ' . $CompanyPhone . ' MailingAddress ' . $MailingAddress . ' MailingPhone ' . $MailingPhone . ' Output Account' . $Account . ' State A ' . ErrorCode . $this->_ERROR_CODE . ' ' . date('Y-m-d h:i:s'));
     mailSMTP('*****@*****.**', '*****@*****.**', '*****@*****.**', '', '', 'Ket noi VietCombank test', 'Test ket noi VietComBank ' . $_SERVER['REMOTE_ADDR'] . ' function_name ' . $function_name . ' Input PersonalCard ' . $PersonalCard . ' Name ' . $Name . ' Address ' . $Address . ' BankAccountNo ' . $BankAccountNo . ' PartnerType ' . $PartnerType . ' dtBirthDay ' . $dtBirthDay . ' PlaceOfBirth ' . $PlaceOfBirth . ' dtDateIssue ' . $dtDateIssue . ' PlaceIssue ' . $PlaceIssue . ' ZipCode ' . $ZipCode . ' Country ' . $Country . ' Email ' . $Email . ' Phone ' . $Phone . ' Fax ' . $Fax . ' CompanyAddress ' . $CompanyAddress . ' CompanyPhone ' . $CompanyPhone . ' MailingAddress ' . $MailingAddress . ' MailingPhone ' . $MailingPhone . ' Output Account' . $Account . ' State A ' . ErrorCode . $this->_ERROR_CODE . ' ' . date('Y-m-d h:i:s'));
     return returnXML(func_get_args(), $this->class_name, $function_name, $array_input, $this);
 }
示例#15
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);
 }
示例#16
0
 function checkInvalidDate($TradingDate)
 {
     $function_name = 'checkInvalidDate';
     $struct = '{urn:' . $this->class_name . '}' . $function_name . 'Struct';
     $query = sprintf("SELECT f_checkInvalidDate('%s') as Boolean", $TradingDate);
     $rs = $this->_MDB2->extended->getRow($query);
     $result = (string) $rs['boolean'];
     $this->items[0] = new SOAP_Value('item', $struct, array("Boolean" => new SOAP_Value("Boolean", "string", $result)));
     return returnXML(func_get_args(), $this->class_name, $function_name, $this->_ERROR_CODE, $this->items, $this);
 }
 /**
  * (Function nay chi khac ConfirmBuyingStockForDividend_CutMoney o cho tham so $Note - Tao ngay 20100712, request ngay 20100709)
  * Function ConfirmBuyingStockForDividend_CutMoney_ForTraiPhieu  : Ke toan cat tien -- day dl qua Bravo -- cap nhat bankid khi cat tien thanh cong
  * Input            : $EventID, $AccountID, $Today, $UpdatedBy, $Note
  * OutPut           : error code. Return 0 if success else return error code (number >0).
  */
 function ConfirmBuyingStockForDividend_CutMoney_ForTraiPhieu($EventID, $AccountID, $UpdatedBy, $Today, $BankID, $Note)
 {
     try {
         $class_name = $this->class_name;
         $function_name = 'ConfirmBuyingStockForDividend_CutMoney_ForTraiPhieu';
         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'], $Note);
                                 write_my_log_path('transfertoEPS', $function_name . ' BankAccount ' . $bank_rs[$i]['bankaccount'] . '  AccountNo ' . $Withdrawal['AccountNo'] . '  Event_AccountID ' . '3_' . $EventID . ' ' . $AccountID . '  Amount ' . $Withdrawal['Amount'] . ' Description ' . $Note . ' 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, $Note, $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) {
                     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='" . $Withdrawal['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($Withdrawal['Amount'], 0, '.', ',') . '. ' . $Note;
                             $message .= '. So du hien tai la: ' . number_format($acc_rs['usableamount'], 0, '.', ',');
                             sendSMS(array('Phone' => $acc_rs['mobilephone'], 'Content' => $message), 'ConfirmBuyingStockForDividend_CutMoney_ForTraiPhieu');
                         }
                     }
                     $soap =& new Bravo();
                     $Withdrawal_value = array("TradingDate" => $Today, 'TransactionType' => $TransactionType, "AccountNo" => $Withdrawal['AccountNo'], "Amount" => $Withdrawal['Amount'], "Bank" => $BravoCode, "Branch" => "", "Note" => $Note);
                     //'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);
 }
示例#18
0
 function checkAuctionForVirtualBank($TradingDate, $BankID)
 {
     $function_name = 'checkAuctionForVirtualBank';
     $class_name = $this->class_name;
     $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_VirtualBank_CheckAuction('%s', %u)", $TradingDate, $BankID);
     $result = $this->_MDB2->extended->getAll($query);
     for ($i = 0; $i < count($result); $i++) {
         $this->items[$i] = new SOAP_Value('item', $struct, array("OrderID" => new SOAP_Value("OrderID", "string", $result[$i]['orderid']), "AccountNo" => new SOAP_Value("AccountNo", "string", $result[$i]['accountno']), "Symbol" => new SOAP_Value("Symbol", "string", $result[$i]['symbol']), "Amount" => new SOAP_Value("Amount", "string", $result[$i]['amount']), "BidAmount" => new SOAP_Value("BidAmount", "string", $result[$i]['bidamount']), "Delta" => new SOAP_Value("Delta", "string", $result[$i]['delta'])));
     }
     return returnXML(func_get_args(), $this->class_name, $function_name, $this->_ERROR_CODE, $this->items, $this);
 }
示例#19
0
function GetImageClassList()
{
    global $db;
    global $xml;
    $sql = "select imageclass,count(*) as cnt from gridimage_search " . "group by imageclass having cnt > 5 and " . "length(imageclass) > 0";
    $classlist = "";
    if ($rs =& $db->Execute($sql)) {
        while (!$rs->EOF) {
            if ($classlist == "") {
                $classlist = $rs->fields[0];
            } else {
                $classlist .= "}" . $rs->fields[0];
            }
            $rs->moveNext();
        }
    }
    $xml['status'] = 'OK';
    $xml['classlist'] = $classlist;
    returnXML();
}