Update destination_edit.php

Rewrote a large amount of the page to the new class which allows for much less code. Also remove the proprietary billing system and its contributor as their code was removed. Proper integration should not have to touch project code but be a standalone plugin. If current plugin capability is not sufficient will need to expand its capabilities.
This commit is contained in:
FusionPBX 2016-10-02 11:40:49 -06:00 committed by GitHub
parent c372ece23e
commit e1556c9dc3
1 changed files with 252 additions and 356 deletions

View File

@ -17,12 +17,11 @@
The Initial Developer of the Original Code is The Initial Developer of the Original Code is
Mark J Crane <markjcrane@fusionpbx.com> Mark J Crane <markjcrane@fusionpbx.com>
Portions created by the Initial Developer are Copyright (C) 2013-2016 Portions created by the Initial Developer are Copyright (C) 2008-2016
the Initial Developer. All Rights Reserved. the Initial Developer. All Rights Reserved.
Contributor(s): Contributor(s):
Mark J Crane <markjcrane@fusionpbx.com> Mark J Crane <markjcrane@fusionpbx.com>
Luis Daniel Lucio Quiroz <dlucio@okay.com.mx>
*/ */
//includes //includes
@ -39,12 +38,6 @@
exit; exit;
} }
//billing
if (file_exists($_SERVER["PROJECT_ROOT"]."/app/billing/app_config.php")) {
require_once "app/billing/resources/functions/currency.php";
require_once "app/billing/resources/functions/rating.php";
}
//add multi-lingual support //add multi-lingual support
$language = new text; $language = new text;
$text = $language->get(); $text = $language->get();
@ -113,9 +106,13 @@
if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) { if (count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) {
//get the uuid //get the uuid
if ($action == "update") { if ($action == "update" && isset($_POST["destination_uuid"])) {
$destination_uuid = check_str($_POST["destination_uuid"]); $destination_uuid = check_str($_POST["destination_uuid"]);
} }
else {
$destination_uuid = uuid();
$_POST["destination_uuid"] = $destination_uuid;
}
//check for all required data //check for all required data
$msg = ''; $msg = '';
@ -153,9 +150,6 @@
return; return;
} }
//add or update the database
if ($_POST["persistformvar"] != "true") {
//determine whether save the dialplan //determine whether save the dialplan
foreach ($_POST["dialplan_details"] as $row) { foreach ($_POST["dialplan_details"] as $row) {
if (strlen($row["dialplan_detail_data"]) > 0) { if (strlen($row["dialplan_detail_data"]) > 0) {
@ -164,9 +158,6 @@
} }
} }
//add or update the dialplan if the destination number is set
if ($add_dialplan) {
//get the array //get the array
$dialplan_details = $_POST["dialplan_details"]; $dialplan_details = $_POST["dialplan_details"];
@ -356,7 +347,7 @@
} }
//delete the previous details //delete the previous details
if(strlen($dialplan_uuid) > 0) { if ($action == "update") {
$sql = "delete from v_dialplan_details "; $sql = "delete from v_dialplan_details ";
$sql .= "where dialplan_uuid = '".$dialplan_uuid."' "; $sql .= "where dialplan_uuid = '".$dialplan_uuid."' ";
if (!permission_exists('destination_domain')) { if (!permission_exists('destination_domain')) {
@ -367,7 +358,16 @@
unset($sql); unset($sql);
} }
//remove empty dialplan details from the POST array
unset($_POST["dialplan_details"]);
//make sure the dialplan_uuid is set
if(strlen($_POST["dialplan_uuid"]) == 0) {
$_POST["dialplan_uuid"] = $dialplan_uuid;
}
//prepare the array //prepare the array
$array['destinations'][] = $_POST;
$array['dialplans'][] = $dialplan; $array['dialplans'][] = $dialplan;
unset($dialplan); unset($dialplan);
@ -409,69 +409,9 @@
$cache = new cache; $cache = new cache;
$cache->delete("dialplan:".$destination_context); $cache->delete("dialplan:".$destination_context);
} //add or update the dialplan if the destination number is set
else {
//remove empty dialplan details from POST array so doesn't attempt to insert below
unset($_POST["dialplan_details"]);
}
//get the destination_uuid
if (strlen($dialplan_response['uuid']) > 0) {
$_POST["dialplan_uuid"] = $dialplan_response['uuid'];
}
//add the dialplan permission
$permission = "dialplan_edit";
$p = new permissions;
$p->add($permission, 'temp');
//save the destination
$orm = new orm;
$orm->name('destinations');
if (strlen($destination_uuid) > 0) {
$orm->uuid($destination_uuid);
}
$orm->save($_POST);
$message = $orm->message;
$destination_response = $orm->message;
//remove the temporary permission
$p->delete($permission, 'temp');
//get the destination_uuid
if (strlen($destination_response['uuid']) > 0) {
$destination_uuid = $destination_response['uuid'];
}
//redirect the user //redirect the user
if ($action == "add") { if ($action == "add") {
$_SESSION["message"] = $text['message-add']; $_SESSION["message"] = $text['message-add'];
// billing
if (file_exists($_SERVER["PROJECT_ROOT"]."/app/billing/app_config.php")){
$db2 = new database;
$db2->sql = "select currency, billing_uuid, balance from v_billings where type_value='$destination_accountcode'";
$db2->result = $db2->execute();
$default_currency = (strlen($_SESSION['billing']['currency']['text'])?$_SESSION['billing']['currency']['text']:'USD');
$billing_currency = (strlen($db2->result[0]['currency'])?$db2->result[0]['currency']:$default_currency);
$destination_sell_current_currency = currency_convert($destination_sell,$billing_currency,$currency);
$billing_uuid = $db2->result[0]['billing_uuid'];
$balance = $db2->result[0]['balance'];
unset($db2->sql, $db2->result);
$balance -= $destination_sell_current_currency;
$db2->sql = "update v_billings set balance = $balance, old_balance = $balance where type_value='$destination_accountcode'";
$db2->result = $db2->execute();
unset($db2->sql, $db2->result);
$billing_invoice_uuid = uuid();
$user_uuid = check_str($_SESSION['user_uuid']);
$settled=1;
$mc_gross = -1 * $destination_sell_current_currency;
$post_payload = serialize($_POST);
$db2->sql = "insert into v_billing_invoices (billing_invoice_uuid, billing_uuid, payer_uuid, billing_payment_date, settled, amount, debt, post_payload,plugin_used, domain_uuid) values ('$billing_invoice_uuid', '$billing_uuid', '$user_uuid', NOW(), $settled, $mc_gross, $balance, '$post_payload', 'DID $destination_number Assigment', '".$domain_uuid."' )";
$db2->result = $db2->execute();
unset($db2->sql, $db2->result);
}
} }
if ($action == "update") { if ($action == "update") {
$_SESSION["message"] = $text['message-update']; $_SESSION["message"] = $text['message-update'];
@ -479,7 +419,6 @@
header("Location: destination_edit.php?id=".$destination_uuid); header("Location: destination_edit.php?id=".$destination_uuid);
return; return;
} //if ($_POST["persistformvar"] != "true")
} //(count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0) } //(count($_POST) > 0 && strlen($_POST["persistformvar"]) == 0)
//initialize the destinations object //initialize the destinations object
@ -787,46 +726,6 @@
echo "</td>\n"; echo "</td>\n";
echo "</tr>\n"; echo "</tr>\n";
// billing
if (file_exists($_SERVER["PROJECT_ROOT"]."/app/billing/app_config.php")){
echo "<tr id='tr_sell'>\n";
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
echo " ".$text['label-monthly_price']."\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <input class='formfld' type='number' min='0' step='0.01' name='destination_sell' maxlength='255' value=\"$destination_sell\">\n";
currency_select($currency);
echo "<br />\n";
echo $text['description-monthly_price']."\n";
echo "</td>\n";
echo "</tr>\n";
echo "<tr id='tr_buy'>\n";
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
echo " ".$text['label-monthly_price_buy']."\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <input class='formfld' type='number' min='0' step='0.01' name='destination_buy' maxlength='255' value=\"$destination_buy\">\n";
currency_select($currency_buy,0,'currency_buy');
echo "<br />\n";
echo $text['description-monthly_price_buy']."\n";
echo "</td>\n";
echo "</tr>\n";
echo "<tr id='tr_carrier'>\n";
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
echo " ".$text['label-carrier']."\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <input class='formfld' type='text' name='destination_carrier' maxlength='255' value=\"$destination_carrier\">\n";
echo "<br />\n";
echo $text['description-carrier']."\n";
echo "</td>\n";
//set the default account code
if ($action == "add") { $destination_accountcode = $_SESSION['domain_name']; }
}
echo "<tr id='tr_account_code'>\n"; echo "<tr id='tr_account_code'>\n";
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n"; echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
echo " ".$text['label-account_code']."\n"; echo " ".$text['label-account_code']."\n";
@ -835,9 +734,6 @@
echo " <input class='formfld' type='text' name='destination_accountcode' maxlength='255' value=\"$destination_accountcode\">\n"; echo " <input class='formfld' type='text' name='destination_accountcode' maxlength='255' value=\"$destination_accountcode\">\n";
echo "<br />\n"; echo "<br />\n";
echo $text['description-account_code']."\n"; echo $text['description-account_code']."\n";
if (file_exists($_SERVER["PROJECT_ROOT"]."/app/billing/app_config.php")){
echo " ".$text['billing-warning'];
}
echo "</td>\n"; echo "</td>\n";
if (permission_exists('destination_domain')) { if (permission_exists('destination_domain')) {