**/ if (!defined("WHMCS")) { exit("This file cannot be accessed directly"); } if (!function_exists("updateInvoiceTotal")) { require ROOTDIR . "/includes/invoicefunctions.php"; } if (!function_exists("createCancellationRequest")) { require ROOTDIR . "/includes/clientfunctions.php"; } $result = select_query("tblhosting", "id,userid", array("id" => $serviceid)); $data = mysql_fetch_array($result); $serviceid = $data[0]; $userid = $data[1]; if (!$serviceid) { $apiresults = array("result" => "error", "message" => "Service ID Not Found"); return false; } $validtypes = array("Immediate", "End of Billing Period"); if (!in_array($type, $validtypes)) { $type = "End of Billing Period"; } if (!$reason) { $reason = "None Specified (API Submission)"; } $result = createCancellationRequest($userid, $serviceid, $reason, $type); if ($result == "success") { $apiresults = array("result" => "success", "serviceid" => $serviceid, "userid" => $userid); return 1; } $apiresults = array("result" => "error", "message" => $result, "serviceid" => $serviceid, "userid" => $userid);
} } } $updatearr[$fieldname] = $newval; } if (toMySQLDate($whmcs->get_req_var("oldnextduedate")) != $updatearr['nextduedate']) { $updatearr['nextinvoicedate'] = $updatearr['nextduedate']; } update_query("tblhosting", $updatearr, array("id" => $id)); logActivity("Modified Product/Service - " . implode(", ", $changelog) . (" - User ID: " . $userid . " - Service ID: " . $id), $userid); $cancelid = get_query_val("tblcancelrequests", "id", array("relid" => $id, "type" => "End of Billing Period"), "id", "DESC"); if ($autoterminateendcycle) { if ($cancelid) { update_query("tblcancelrequests", array("reason" => $autoterminatereason), array("id" => $cancelid)); } else { createCancellationRequest($userid, $id, $autoterminatereason, "End of Billing Period"); } } else { if ($cancelid) { delete_query("tblcancelrequests", array("id" => $cancelid)); logActivity("Removed Automatic Cancellation for End of Current Cycle - Service ID: " . $id, $userid); } } $module = get_query_val("tblproducts", "servertype", array("id" => $packageid)); if ($module) { if (!isValidforPath($module)) { exit("Invalid Server Module Name"); } $modulepath = ROOTDIR . "/modules/servers/" . $module . "/" . $module . ".php"; if (file_exists($modulepath)) { require_once $modulepath;
$smartyvalues['productname'] = $service->getData("productname"); $smartyvalues['domain'] = $service->getData("domain"); $cancelrequests = get_query_val("tblcancelrequests", "COUNT(*)", array("relid" => $id)); if ($cancelrequests) { $smartyvalues['invalid'] = "on"; } else { if ($sub == "submit") { check_token(); if (!trim($cancellationreason)) { $smartyvalues['error'] = true; } if (!$smartyvalues['error']) { if (!in_array($type, array("Immediate", "End of Billing Period"))) { $type = "End of Billing Period"; } createCancellationRequest($client->getID(), $id, $cancellationreason, $type); if ($canceldomain) { $domainid = get_query_val("tbldomains", "id", array("userid" => $client->getID(), "domain" => $service->getData("domain"))); if ($domainid) { disableAutoRenew($domainid); } } sendMessage("Cancellation Request Confirmation", $id); sendAdminMessage("New Cancellation Request", array("client_id" => $client->getID(), "clientname" => $clientsdetails['firstname'] . " " . $clientsdetails['lastname'], "service_id" => $id, "product_name" => $service->getData("productname"), "service_cancellation_type" => $type, "service_cancellation_type" => $type, "service_cancellation_reason" => $cancellationreason), "account"); $smartyvalues['requested'] = "on"; } } if ($service->getData("domain")) { $data = get_query_vals("tbldomains", "id,recurringamount,registrationperiod,nextduedate", array("userid" => $client->getID(), "domain" => $service->getData("domain"), "status" => "Active", "donotrenew" => "")); $smartyvalues['domainid'] = $data['id']; $smartyvalues['domainprice'] = formatCurrency($data['recurringamount']);