Unpaid invoice usability hint and invoice page style fix - SAAS-1134
This commit is contained in:
parent
885f47c20e
commit
f79ca8650f
6 changed files with 75 additions and 26 deletions
|
@ -329,4 +329,49 @@ class Billing
|
|||
$result = Billing::makeRequest($credentials["url"], $query_string);
|
||||
}
|
||||
|
||||
public static function getInvoices()
|
||||
{
|
||||
Billing::ensureClientIdIsValid();
|
||||
$credentials = Billing::getAPICredentials();
|
||||
|
||||
$postfields = array();
|
||||
$postfields["username"] = $credentials["username"];
|
||||
$postfields["password"] = md5($credentials["password"]);
|
||||
$postfields["action"] = "getinvoices";
|
||||
$postfields["responsetype"] = "json";
|
||||
$postfields["userid"] = Application_Model_Preference::GetClientId();
|
||||
|
||||
$query_string = "";
|
||||
foreach ($postfields AS $k=>$v) $query_string .= "$k=".urlencode($v)."&";
|
||||
|
||||
$result = Billing::makeRequest($credentials["url"], $query_string);
|
||||
|
||||
$invoices = array();
|
||||
if ($result["invoices"]) {
|
||||
$invoices = $result["invoices"]["invoice"];
|
||||
}
|
||||
return $invoices;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the customer has any unpaid invoices and if so, returns
|
||||
* the ID of one of them. Returns 0 otherwise.
|
||||
*/
|
||||
public static function checkForUnpaidInvoice() {
|
||||
$invoices = self::getInvoices();
|
||||
$unpaidInvoice = 0;
|
||||
$unpaidInvoices = 0;
|
||||
foreach ($invoices as $invoice)
|
||||
{
|
||||
if ($invoice['status'] == 'Unpaid') {
|
||||
$unpaidInvoices += 1;
|
||||
$unpaidInvoice = $invoice;
|
||||
}
|
||||
}
|
||||
if ($unpaidInvoices > 0) {
|
||||
return $unpaidInvoice;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,6 +21,8 @@ class Application_Common_UsabilityHints
|
|||
|
||||
$userIsOnCalendarPage = false;
|
||||
$userIsOnAddMediaPage = false;
|
||||
$userIsOnShowbuilderPage = false;
|
||||
$userIsSuperAdmin = Application_Model_User::getCurrentUser()->isSuperAdmin();
|
||||
|
||||
// If $userPath is set the request came from AJAX so the user's
|
||||
// current location inside Airtime gets passed in to this function.
|
||||
|
@ -36,6 +38,11 @@ class Application_Common_UsabilityHints
|
|||
if (strpos(strtolower($userPath), 'schedule') !== false) {
|
||||
$userIsOnCalendarPage = true;
|
||||
}
|
||||
|
||||
if (strpos(strtolower($userPath), 'showbuilder') !== false) {
|
||||
$userIsOnShowbuilderPage = true;
|
||||
}
|
||||
|
||||
} else {
|
||||
// If $userPath is not set the request came from inside Airtime so
|
||||
// we can use Zend's Front Controller to get the user's current location.
|
||||
|
@ -48,6 +55,10 @@ class Application_Common_UsabilityHints
|
|||
if ($currentController == "plupload") {
|
||||
$userIsOnAddMediaPage = true;
|
||||
}
|
||||
|
||||
if ($currentController == 'showbuilder') {
|
||||
$userIsOnShowbuilderPage = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (self::zeroFilesUploaded()) {
|
||||
|
@ -92,9 +103,15 @@ class Application_Common_UsabilityHints
|
|||
"<a href=\"/schedule\">",
|
||||
"</a>");
|
||||
}
|
||||
} else {
|
||||
return "";
|
||||
} else if ($userIsOnShowbuilderPage && $userIsSuperAdmin) {
|
||||
$unpaidInvoice = Billing::checkForUnpaidInvoice();
|
||||
if ($unpaidInvoice != null) {
|
||||
$invoiceUrl = "/billing/invoice?invoiceid=" . $unpaidInvoice['id'];
|
||||
$amount = $unpaidInvoice['currencyprefix'] . $unpaidInvoice['total'];
|
||||
return _pro(sprintf("You have an unpaid invoice for %s due soon. <a href='%s'>Please pay it to keep your station on the air.</a>", $amount, $invoiceUrl));;
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue