better billing decition, specially to allow tollfree billing

This commit is contained in:
luis daniel lucio quiroz 2014-06-24 11:51:37 +00:00
parent 4ab72c66ae
commit e3562cd32b
1 changed files with 39 additions and 24 deletions

View File

@ -230,32 +230,47 @@ function call_cost($rate, $i1, $i2, $t){
//billing information //billing information
if (file_exists($_SERVER['DOCUMENT_ROOT'].PROJECT_PATH."/app/billings/app_config.php")){ if (file_exists($_SERVER['DOCUMENT_ROOT'].PROJECT_PATH."/app/billings/app_config.php")){
$database->fields['carrier_name'] = check_str(urldecode($xml->variables->lcr_carrier)); switch(check_str(urldecode($xml->variables->call_direction))){
$sql_rate ="SELECT connect_increment, talk_increment FROM v_lcr, v_carriers WHERE v_carriers.carrier_name = '".$xml->variables->lcr_carrier."' AND v_lcr.rate=".$xml->variables->lcr_rate." AND v_lcr.lcr_direction = '".check_str(urldecode($xml->variables->call_direction))."' AND digits in (".check_str(urldecode($xml->variables->lcr_query_expanded_digits)).") AND v_lcr.carrier_uuid = v_carriers.carrier_uuid ORDER BY digits DESC, rate ASC limit 1"; case "outbound":
$sql_user_rate = "SELECT connect_increment, talk_increment FROM v_lcr WHERE carrier_uuid='' AND v_lcr.lcr_direction = '".check_str(urldecode($xml->variables->call_direction))."' AND digits IN (".check_str(urldecode($xml->variables->lcr_query_expanded_digits)).") ORDER BY digits DESC, rate ASC limit 1"; $database->fields['carrier_name'] = check_str(urldecode($xml->variables->lcr_carrier));
if ($debug) { $sql_rate ="SELECT connect_increment, talk_increment FROM v_lcr, v_carriers WHERE v_carriers.carrier_name = '".$xml->variables->lcr_carrier."' AND v_lcr.rate=".$xml->variables->lcr_rate." AND v_lcr.lcr_direction = '".check_str(urldecode($xml->variables->call_direction))."' AND digits in (".check_str(urldecode($xml->variables->lcr_query_expanded_digits)).") AND v_lcr.carrier_uuid = v_carriers.carrier_uuid ORDER BY digits DESC, rate ASC limit 1";
echo "sql_rate: $sql_rate\n"; $sql_user_rate = "SELECT connect_increment, talk_increment FROM v_lcr WHERE carrier_uuid='' AND v_lcr.lcr_direction = '".check_str(urldecode($xml->variables->call_direction))."' AND digits IN (".check_str(urldecode($xml->variables->lcr_query_expanded_digits)).") ORDER BY digits DESC, rate ASC limit 1";
echo "sql_user_rate: $sql_user_rate\n"; if ($debug) {
echo "sql_rate: $sql_rate\n";
echo "sql_user_rate: $sql_user_rate\n";
}
$db2 = new database;
$db2->sql = $sql_rate;
$db2->result = $db2->execute();
// print_r($db2->result);
$lcr_rate = (strlen($xml->variables->lcr_rate)?$xml->variables->lcr_rate:0);
$lcr_first_increment = (strlen($db2->result[0]['connect_increment'])?check_str($db2->result[0]['connect_increment']):60);
$lcr_second_increment = (strlen($db2->result[0]['talk_increment'])?check_str($db2->result[0]['talk_increment']):60);
unset($db2->sql);
unset($db2->result);
$db2->sql = $sql_user_rate;
$db2->result = $db2->execute();
$lcr_user_rate = (strlen($xml->variables->lcr_user_rate)?$xml->variables->lcr_user_rate:0.01);
$lcr_user_first_increment = (strlen($db2->result[0]['connect_increment'])?check_str($db2->result[0]['connect_increment']):60);
$lcr_user_second_increment = (strlen($db2->result[0]['talk_increment'])?check_str($db2->result[0]['talk_increment']):60);
unset($db2->sql);
unset($db2->result);
break;
case "inbound":
// Need to add code for tollfree number, unique case when we bill inbound
$lcr_rate = 0; $lcr_first_increment = 0; $lcr_second_increment = 0;
$lcr_user_rate = 0; $lcr_user_first_increment = 0; $lcr_user_second_increment = 0;
break;
case "local":
$lcr_rate = 0; $lcr_first_increment = 0; $lcr_second_increment = 0;
$lcr_user_rate = 0; $lcr_user_first_increment = 0; $lcr_user_second_increment = 0;
break;
} }
$db2 = new database;
$db2->sql = $sql_rate;
$db2->result = $db2->execute();
// print_r($db2->result);
$lcr_rate = (strlen($xml->variables->lcr_rate)?$xml->variables->lcr_rate:0);
$lcr_first_increment = (strlen($db2->result[0]['connect_increment'])?check_str($db2->result[0]['connect_increment']):60);
$lcr_second_increment = (strlen($db2->result[0]['talk_increment'])?check_str($db2->result[0]['talk_increment']):60);
unset($db2->sql);
unset($db2->result);
$db2->sql = $sql_user_rate;
$db2->result = $db2->execute();
$lcr_user_rate = (strlen($xml->variables->lcr_user_rate)?$xml->variables->lcr_user_rate:(check_str(urldecode($xml->variables->call_direction)) == "outbound"?0.01:0.0));
$lcr_user_first_increment = (strlen($db2->result[0]['connect_increment'])?check_str($db2->result[0]['connect_increment']):60);
$lcr_user_second_increment = (strlen($db2->result[0]['talk_increment'])?check_str($db2->result[0]['talk_increment']):60);
unset($db2->sql);
unset($db2->result);
$time = check_str(urldecode($xml->variables->billsec)); $time = check_str(urldecode($xml->variables->billsec));
$call_buy = call_cost($lcr_rate, $lcr_first_increment, $lcr_second_increment, $time); $call_buy = call_cost($lcr_rate, $lcr_first_increment, $lcr_second_increment, $time);
$call_sell = call_cost($lcr_user_rate, $lcr_user_first_increment, $lcr_user_second_increment, check_str(urldecode($xml->variables->billsec))); $call_sell = call_cost($lcr_user_rate, $lcr_user_first_increment, $lcr_user_second_increment, check_str(urldecode($xml->variables->billsec)));