<?

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

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

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

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

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

	
	##############################################################################
	### SET SOME VARS THAT WILL BE COMMON TO ALL TRANSACTION RESULTS:
	$_SESSION['transaction']['ratio'] = get_fx($_SESSION['account']['currency_0_iso3'],$_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 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'] = $_SESSION['withdrawal']['fee_value']; //"0.00";
	$_SESSION['transaction']['fee_total_value'] = $_SESSION['transaction']['fee_sponsor_value'] + $_SESSION['transaction']['fee_network_value']; //
	
	
	logger3("_SESSION['transaction']['fee_network_value']",$_SESSION['transaction']['fee_network_value']);
	#
	### 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'];
	logger3("_SESSION['transaction']['fee_total_value']",$_SESSION['transaction']['fee_total_value']);
	
	#  
	### NET:
	$_SESSION['transaction']['net_value'] = $_SESSION['transaction']['requested_value'];
	logger3("_SESSION['transaction']['net_value']",$_SESSION['transaction']['net_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:
	# $_SESSION['transaction']['wire_instructions'] = "";
	# $_SESSION['transaction']['wire_instructions'] .= "ACCOUNT_NAME][" . addslashes($_SESSION['account']['accountname']) . "][";
	# $_SESSION['transaction']['wire_instructions'] .= "BANK_NAME][" . addslashes($_SESSION['withdrawal']['name_of_bank']) . "][";
	# $_SESSION['transaction']['wire_instructions'] .= "ABA_NUMBER][" . $_SESSION['withdrawal']['bank_routing_number'] . "][";
	# $_SESSION['transaction']['wire_instructions'] .= "ACCOUNT_NUMBER][" . $_SESSION['withdrawal']['bank_account_number'] . "][";
	# $_SESSION['transaction']['wire_instructions'] .= "IBAN_SWIFT][" . $_SESSION['withdrawal']['bank_iban_swift'] . "][";
	# $_SESSION['transaction']['wire_instructions'] .= "PHONE_NUMBER][" . $_SESSION['withdrawal']['bank_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
  		
  		//test("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']) {
    	
    	$_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'] = "Completed";
    	logger3("_SESSION['transaction']['status']",$_SESSION['transaction']['status']);
    	//test("transaction['status'] 3",$_SESSION['transaction']['status']);
    	
    	### UPDATE DEBIT CARD STATUS
    	$tmp_sql = "SELECT status FROM debit_cards WHERE memberid = '" . $_SESSION['member']['memberid'] . "';";
    	$tmp_status = getTHECASHIER($tmp_sql);
    	logger3("tmp_sql",$tmp_sql);
    	logger3("tmp_status",$tmp_status);
    	
    	if(!stristr($tmp_status,"ACTIVE")) { 
    		$first_time_load = TRUE; // used in withdrawal_to_atm_approved.auth
    		$tmp_sql = "UPDATE debit_cards SET status = 'ACTIVE', datetime_updated = '" . $_SESSION['transaction']['datetime_requested'] . "' WHERE memberid = '" . $_SESSION['member']['memberid'] . "';";
    		$tmp_update = updateTHECASHIER($tmp_sql);
    		logger3("tmp_sql",$tmp_sql);
    		logger3("tmp_status",$tmp_update);
    	}
   
    	##############################################################################
    	### UPDATE ACCOUNT BALANCE:
    	$_SESSION['transaction']['new_balance']['available'] = $_SESSION['transaction']['original_balance']['available'] - $_SESSION['transaction']['requested_value'] - $_SESSION['transaction']['fee_total_value'];
    	 
    	logger3("_SESSION['transaction']['new_balance']['available']",$_SESSION['transaction']['new_balance']['available']);
    	
    	$_SESSION['transaction']['new_balance']['account'] = $_SESSION['transaction']['original_balance']['account_balance'] - $_SESSION['transaction']['requested_value'] - $_SESSION['transaction']['fee_total_value'];
    	
    	logger3("_SESSION['transaction']['new_balance']['account_balance']",$_SESSION['transaction']['new_balance']['account_balance']);
    	
    	$tmp_sql = "UPDATE balances SET available = '" . $_SESSION['transaction']['new_balance']['available'] . "' where accountid = '" . $_SESSION['account']['accountid'] . "';";
    	$update_result = updateTHECASHIER($tmp_sql);
    	logger3("tmp_sql",$tmp_sql);
    	logger3("update_result",$update_result);
    	
    	$tmp_sql = "UPDATE balances SET account_balance = '" . $_SESSION['transaction']['new_balance']['account'] . "' where accountid = '" . $_SESSION['account']['accountid'] . "';";
    	updateTHECASHIER($tmp_sql);
    	logger3("tmp_sql",$tmp_sql);
    	logger3("update_result",$update_result);
    }
  
 
    //// SET SOME VARS FOR DB:
    $_SESSION['transaction']['hash'] = hash_me();
    $_SESSION['withdrawal']['fee'] = currency_format($_SESSION['withdrawal']['fee_value']);
 	$_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']);

		
		
    if($_SESSION['account']['currency_code_1']) {
		$_SESSION['transaction']['currency_1_iso3'] = $_SESSION['account']['currency_code_1'];
		
		$_SESSION['transaction']['currency_1_request'] = currency_format($_SESSION['transaction']['currency_0_request'] * $_SESSION['transaction']['ratio']);
		
		$_SESSION['transaction']['currency_1_total'] =  currency_format( ($_SESSION['transaction']['currency_0_request']+$_SESSION['transaction']['currency_0_fee']) * $_SESSION['transaction']['ratio']);
		
		$_SESSION['transaction']['currency_1_ratio'] = $_SESSION['transaction']['ratio'];
	}
    
    
    
   
    ##############################################################################
    ### ALWAYS RECORD ABOVE TRANSACTION: (ALWAYS SEND)
    $tmp_sql = "INSERT into transactions 
    (`transactionid`,
    `hash`,
    `source`,
    `memberid`,
    `accountid`,
    `account_details`,
    `description`,
    `method`,
    `method_details`,
    `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 . "',
    '" . $_SESSION['transaction']['hash'] . "',
    'WWW',
    '" . $_SESSION['member']['memberid'] . "',
    '" . $_SESSION['account']['accountid'] . "',
    '" . addslashes($_SESSION['accountdetails']) . "',
    'Withdrawal',
    'Debit Card',
    '" . $_SESSION['transaction']['wire_instructions'] . "',
    '" . $_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_balance'] . "',
    '" . $_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']);


?>