<?

/*
logger3("",$);
*/

logger3("START: [/shared/process_withdraw_wire.shared]");

logger3("_SESSION['transaction']['action']",$_SESSION['transaction']['action']);

### ONLY DO THIS ONCE:
if($_SESSION['transaction']['action'] == "process.withdrawal") {

	//logger3("transaction[action] 3",$_SESSION['transaction'][action]);

	
	##############################################################################
	### SET SOME VARS THAT WILL BE COMMON TO ALL TRANSACTION RESULTS:
	$_SESSION['transaction']['ratio'] = get_fx($_SESSION['template']['company']['currency1'],$_SESSION['account']['currency_code_1'],"1.00");
	logger3("_SESSION['transaction']['ratio']",$_SESSION['transaction']['ratio']);
	
	$_SESSION['transaction']['datetime_requested'] = date("Y-m-d H:i:s",$_SESSION['authorization']['timestamp']);
	$_SESSION['transaction']['datetime_updated'] = date("Y-m-d H:i:s",time());
	$_SESSION['transaction']['original_balance'] = balance($_SESSION['account']['accountid']);
	
	logger3("_SESSION['transaction']['original_balance']",$_SESSION['transaction']['original_balance']);
  
	# SET INITIATED BY:
	$_SESSION['transaction']['results'] = "INITIATED BY ACCOUNTID][" . $_SESSION['account']['accountid'] . "][accountname][" . $_SESSION['account']['accountname'] . "][emailaddress][" . $_SESSION['account']['emailaddress'] . "][";
  
	# SET ACCOUNT DETAILS:
	$_SESSION['account_details'] = "ACCOUNTID][" . $_SESSION['account']['accountid'] . "][accountname][" . $_SESSION['account']['accountname'] . "][emailaddress][" . $_SESSION['account']['emailaddress'] . "][";
	
	# SET FEES
	$tmp_transaction_fee = "master_config_wire_to_bank_fee_".$_SESSION['template']['company']['currency1'];
    $tmp_transaction_fee = $$tmp_transaction_fee; //"0.00";

  
	##############################################################################
	### SET AMOUNT_VALUES: (has o be set b4 therwsie valus wonlt display or something)
	#
	# USE VARS:
	$_SESSION['transaction']['requested_value'] = $_SESSION['withdrawal']['amount'];
	$_SESSION['transaction']['gross_value'] = $_SESSION['withdrawal']['amount'];
	$_SESSION['transaction']['net_value'] = $_SESSION['withdrawal']['amount'];
	$_SESSION['transaction']['account_bonus_value'] = "0.00";
	$_SESSION['transaction']['fee_sponsor_value'] = "0.00";
	$_SESSION['transaction']['fee_bonus_value'] = "0.00";
	$_SESSION['transaction']['fee_network_value'] = $tmp_transaction_fee;
	# $_SESSION['transaction']['fee_total_value']
	#
	### UPDATE FOR BANK:
	# $_SESSION['withdrawal']['name_of_banking_institution'];
	# $_SESSION['withdrawal']['banking_routing_number'];
	# $_SESSION['withdrawal']['banking_account_number'];
	# $_SESSION['withdrawal']['banking_iban_swift'];
	# $_SESSION['withdrawal']['banking_telephone_number'];
	
	### GROSS:
	$_SESSION['transaction']['gross_value'] = $_SESSION['transaction']['requested_value']; // + $_SESSION['transaction']['fee_network_value'];
	
	
	    
	#
	### FEES:
	$_SESSION['transaction']['fee_total_value'] = $_SESSION['transaction']['fee_network_value'] + $_SESSION['transaction']['fee_bonus_value'] + $_SESSION['transaction']['fee_sponsor_value'];
	
	
	
	
	#  
	### NET:
	//$_SESSION['transaction']['net_value'] = currency_format($_SESSION['transaction']['requested_value'] * (1-$_SESSION['account']['transaction_fee_my']));
	$_SESSION['transaction']['net_value'] = currency_format($_SESSION['transaction']['gross_value'] - $_SESSION['transaction']['fee_total_value']);
	
	
	#
	### MAKE 'EM LOOK PRETTY:
	$_SESSION['transaction']['gross_value'] = number_format($_SESSION['transaction']['gross_value'],2,".","");
	$_SESSION['transaction']['fee_total_value'] = number_format($_SESSION['transaction']['fee_total_value'],2,".","");
	$_SESSION['transaction']['net_value'] = number_format($_SESSION['transaction']['net_value'],2,".","");

  
	logger3("_SESSION['transaction']['gross_value']",$_SESSION['transaction']['gross_value']);
	logger3("_SESSION['transaction']['fee_total_value']",$_SESSION['transaction']['fee_total_value']);
	logger3("_SESSION['transaction']['net_value']",$_SESSION['transaction']['net_value']);
  
  
	##############################################################################
	### THIS IS A WIRE SO WE HAVE TO SET THE MAIL TO ADDRESS AT THE ACCOUNT NUMBER:
	$banking_account_owner_account_details = account($_SESSION['withdrawal']['banking_account_owner_account_hash']);
	$_SESSION['transaction']['wire_instructions'] = "";
	$_SESSION['transaction']['wire_instructions'] .= "ACCOUNT_NAME][" . $banking_account_owner_account_details['accountname'] . " " . $banking_account_owner_account_details['business_type'] . "][";
	$_SESSION['transaction']['wire_instructions'] .= "BANK_NAME][" . $_SESSION['withdrawal']['name_of_banking_institution'] . "][";
	$_SESSION['transaction']['wire_instructions'] .= "ABA_NUMBER][" . $_SESSION['withdrawal']['banking_routing_number'] . "][";
	$_SESSION['transaction']['wire_instructions'] .= "ACCOUNT_NUMBER][" . $_SESSION['withdrawal']['banking_account_number'] . "][";
	$_SESSION['transaction']['wire_instructions'] .= "IBAN_SWIFT][" . $_SESSION['withdrawal']['banking_iban_swift'] . "][";
	$_SESSION['transaction']['wire_instructions'] .= "PHONE_NUMBER][" . $_SESSION['withdrawal']['banking_telephone_number'] . "][";

	logger3("_SESSION['transaction']['wire_instructions']",$_SESSION['transaction']['wire_instructions']);
  
  
	##############################################################################
	### CANCELED:
	logger3("_SESSION['transaction']['status']",$_SESSION['transaction']['status']);
	if($_SESSION['transaction']['status'] == "Canceled") {
  	
  		# do nothing special
  		
  		//logger3("transaction['status'] 2",$_SESSION['transaction']['status']);
  
  	
		


  	 ##############################################################################
  	### VERIFY SUFFICIENT BALANCE:
  	//} else if(($_SESSION['transaction']['requested_value'] + $_SESSION['transaction']['fee_network_value']) > $_SESSION['transaction']['original_balance']['available']) {
  	} else if($_SESSION['transaction']['requested_value'] > $_SESSION['transaction']['original_balance']['available']) {
    	
    	$_SESSION['transaction']['status'] = "Rejected";
    	$_SESSION['transaction']['results'] = "Insufficient Funds";
   
   /* 	
    	$_SESSION['SYSMSG'] = "<font color='990000'>REJECTED! Your " . currency1($_SESSION['transaction']['requested_value'],$blank) . " withdrawal request is greater than your current Available Balance of " . currency1($_SESSION['transaction']['original_balance']['available'],$blank) . ".</font color><br>
<br>
<font color='000099'>Please review your transaction receipt below...</font color>";
*/


  	##############################################################################
  	} else { ### ALL GOOD NOW PROCESS TRANSACTION:
  
    	### SET COMMON VARS:
    	$_SESSION['transaction']['status'] = "Approved";
    	logger3("_SESSION['transaction']['status']",$_SESSION['transaction']['status']);
    	//logger3("transaction['status'] 3",$_SESSION['transaction']['status']);
   
   
    	##############################################################################
    	### UPDATE ACCOUNT BALANCE:
    	//$_SESSION['transaction']['new_balance']['available'] = $_SESSION['transaction']['original_balance']['available'] - $_SESSION['transaction']['requested_value'] - $_SESSION['transaction']['fee_total_value'];
    	$_SESSION['transaction']['new_balance']['available'] = $_SESSION['transaction']['original_balance']['available'] - $_SESSION['transaction']['requested_value'];
    	 
    	logger3("_SESSION['transaction']['new_balance']['available']",$_SESSION['transaction']['new_balance']['available']);
    	
    	//$_SESSION['transaction']['new_balance']['account'] = $_SESSION['transaction']['original_balance']['account'] - $_SESSION['transaction']['requested_value'] - $_SESSION['transaction']['fee_total_value'];
    	$_SESSION['transaction']['new_balance']['account'] = $_SESSION['transaction']['original_balance']['account'] - $_SESSION['transaction']['requested_value'];
    	
    	logger3("_SESSION['transaction']['new_balance']['account_balance']",$_SESSION['transaction']['new_balance']['account_balance']);
    	
    	if(!empty($master_config_platform_emulation)) {
    		$tmp_platform = $master_config_platform_emulation;
    	} else {
	    	$tmp_platform = $_SESSION['template']['company']['domain'];
    	}
    	$tmp_sql = "UPDATE balances 
    						SET 
    						available = '" . $_SESSION['transaction']['new_balance']['available'] . "' 
							WHERE 
							accountid = '" . $_SESSION['account']['accountid'] . "'
							AND platform = '".$tmp_platform."' 
							AND currency_iso3 = '".$_SESSION['template']['company']['currency1']."'
							;";
		$tmp_results = updateTHECASHIER($tmp_sql);
		logger3("tmp_sql",$tmp_sql);
		logger3("tmp_results",$tmp_results);
    	
    	
    	$tmp_sql = "UPDATE balances 
    						SET 
    						account_balance = '" . $_SESSION['transaction']['new_balance']['account'] . "' 
    						WHERE
							accountid = '" . $_SESSION['account']['accountid'] . "'
							AND platform = '".$tmp_platform."' 
							AND currency_iso3 = '".$_SESSION['template']['company']['currency1']."'
							;";
		$tmp_results = updateTHECASHIER($tmp_sql);
		logger3("tmp_sql",$tmp_sql);
		logger3("tmp_results",$tmp_results);
    }
  
 
    //// SET SOME VARS FOR DB:
    $_SESSION['transaction']['hash'] = hash_me();
	$tmp_transaction_fee = "master_config_wire_to_bank_fee_".$_SESSION['template']['company']['currency1'];
    $_SESSION['withdrawal']['fee'] = $$tmp_transaction_fee; //"0.00";
 	$_SESSION['transaction']['currency_0_iso3'] = $_SESSION['template']['company']['currency1'];
	$_SESSION['transaction']['currency_0_request'] = currency_format($_SESSION['withdrawal']['amount']);
	$_SESSION['transaction']['currency_0_fee'] = currency_format($_SESSION['withdrawal']['fee']);
	$_SESSION['transaction']['currency_0_total'] = currency_format($_SESSION['withdrawal']['amount']);
	
	### new:
	$_SESSION['transaction']['net_value'] = currency_format($_SESSION['withdrawal']['amount'] - $_SESSION['withdrawal']['fee']);

		
		
    if($_SESSION['account']['currency_code_1']) {
		$_SESSION['transaction']['currency_1_iso3'] = $_SESSION['account']['currency_code_1'];
		$_SESSION['transaction']['currency_1_request'] = currency_format($_SESSION['withdrawal']['amount'] * $_SESSION['transaction']['ratio']);
		$_SESSION['transaction']['currency_1_total'] = currency_format($_SESSION['withdrawal']['amount'] * $_SESSION['transaction']['ratio']);
		$_SESSION['transaction']['currency_1_ratio'] = $_SESSION['transaction']['ratio'];
	}
	
	$_SESSION['transaction']['walletid'] = $_SESSION['withdrawal']['destination_banking_details']['walletid'];
    
    
    
   
    ##############################################################################
    ### ALWAYS RECORD ABOVE TRANSACTION: (ALWAYS SEND)
    $tmp_sql = "INSERT into transactions 
    (`transactionid`,
    `platform`,
    `hash`,
    `source`,
    `memberid`,
    `accountid`,
    `account_details`,
    `description`,
    `method`,
    `method_details`,
    `walletid`,
    `transaction_gross_value`,
    `fee_sponsor_value`,
    `fee_bonus_value`,
    `fee_network_value`,
    `fee_total_value`,
    `status`,
    `results`,
    `account_balance_before`,
    `available_balance_before`,
    `transaction_net_value`,
    `account_bonus_value`,
    `account_balance_after`,
    `available_balance_after`,
    `ratio`,
    `currency_0_iso3`,
    `currency_0_request`,
    `currency_0_fee`,
    `currency_0_total`,
    `currency_1_iso3`,
    `currency_1_request`,
    `currency_1_total`,
    `currency_1_ratio`,
    `memo`,
    `requested_datetime`,
    `updated_datetime`,
    `authorization`) 
    
    VALUES 
    
    ('" . $blank_id . "',
    '" . $tmp_platform . "',
    '" . $_SESSION['transaction']['hash'] . "',
    'WWW',
    '" . $_SESSION['member']['memberid'] . "',
    '" . $_SESSION['account']['accountid'] . "',
    '" . $_SESSION['accountdetails'] . "',
    'Withdrawal',
    'Bank Wire',
    '" . $_SESSION['transaction']['wire_instructions'] . "',
    '" . $_SESSION['transaction']['walletid'] . "',
    '" . $_SESSION['transaction']['gross_value'] . "',
    '" . $_SESSION['transaction']['fee_sponsor_value'] . "',
    '" . $_SESSION['transaction']['fee_bonus_value'] . "',
    '" . $_SESSION['transaction']['fee_network_value'] . "',
    '" . $_SESSION['transaction']['fee_total_value'] . "',
    '".  $_SESSION['transaction']['status'] . "',
    '" . $_SESSION['transaction']['results'] . "',
    '" . $_SESSION['transaction']['original_balance']['account'] . "',
    '" . $_SESSION['transaction']['original_balance']['available'] . "',
    '" . $_SESSION['transaction']['net_value'] . "',
    '" . $_SESSION['transaction']['account_bonus_value'] . "',
    '" . $_SESSION['transaction']['new_balance']['account'] . "',
    '" . $_SESSION['transaction']['new_balance']['available'] . "',
    '" . $_SESSION['transaction']['ratio'] . "',

    '" . $_SESSION['transaction']['currency_0_iso3'] . "',
    '" . $_SESSION['transaction']['currency_0_request'] . "',
    '" . $_SESSION['transaction']['currency_0_fee'] . "',
    '" . $_SESSION['transaction']['currency_0_total'] . "',
    
    '" . $_SESSION['transaction']['currency_1_iso3'] . "',
    '" . $_SESSION['transaction']['currency_1_request'] . "',
    '" . $_SESSION['transaction']['currency_1_total'] . "',
    '" . $_SESSION['transaction']['currency_1_ratio'] . "',
    '" . $blank_memo . "',
    '" . $_SESSION['transaction']['datetime_requested'] . "',
    '" . $_SESSION['transaction']['datetime_updated'] . "',
    '" . $_SESSION['authorization']['voice_file'] . "');";
    
    logger3("tmp_sql",$tmp_sql);
    
    $_SESSION['transaction']['transactionid'] = insertTHECASHIER($tmp_sql);
    
    logger3("_SESSION['transaction']['transactionid']",$_SESSION['transaction']['transactionid']);
    
    $email_alert_message  = "WITHDRAWAL:
    ACCOUNTID: " . $_SESSION['account']['accountid'] . "
    AMOUNT: " . currency_format($_SESSION['transaction']['gross_value']);
    email_alert($email_alert_message,"accounting@nsdb.com");
  
}


### done:
$_SESSION['transaction']['action'] = "process.complete";
logger3("_SESSION['transaction']['action']",$_SESSION['transaction']['action']);


?>