Misc fixes for ADSL excess traffic and strtotime() functions for last month

This commit is contained in:
Deon George 2013-12-31 17:18:49 +11:00
parent e19518c505
commit 82c51de550
11 changed files with 27 additions and 15 deletions

View File

@ -12,16 +12,17 @@
class StaticList_ItemType extends StaticList { class StaticList_ItemType extends StaticList {
protected function _table() { protected function _table() {
return array( return array(
0=>_('Product/Service Charge'), // Line Charge Topic on Invoice, eg: Service Name 0=>_('Product/Service Charge'), // Line Charge Topic on Invoice, eg: Service Name
1=>_('Hardware'), 1=>_('Hardware'),
2=>_('Service Relocation Fee'), 2=>_('Service Relocation Fee'),
3=>_('Service Change Fee'), 3=>_('Service Change Fee'),
4=>_('Service Connection Fee'), 4=>_('Service Connection Fee'),
5=>_('Excess Usage'), // Excess Service Item, of item 0 5=>_('Excess Usage'), // Excess Service Item, of item 0
6=>_('Service Cancellation Fee'), 6=>_('Service Cancellation Fee'),
7=>_('Extra Product/Service Charge'), // Service Billing in advance 7=>_('Extra Product/Service Charge'), // Service Billing in advance
8=>_('Product Addition'), // Additional Product Customisation
124=>_('Late Payment Fee'), 124=>_('Late Payment Fee'),
125=>_('Payment Fee'), // Payment processing fee 125=>_('Payment Fee'), // Payment processing fee
126=>_('Other'), 126=>_('Other'),
127=>_('Rounding'), 127=>_('Rounding'),
); );

View File

@ -124,7 +124,7 @@ class Controller_Admin_Adsl extends Controller_Adsl {
$a = 0; $a = 0;
foreach (array_reverse($traffic) as $i) { foreach (array_reverse($traffic) as $i) {
if ($i < $so->plugin()->traffic_month(strtotime('last month'),TRUE)) if ($i < $so->plugin()->traffic_month(strtotime('first day of last month'),TRUE))
break; break;
$a = $i; $a = $i;

View File

@ -72,7 +72,7 @@ class Controller_Reseller_Service_Adsl extends Controller_Service {
'product->plugin()->supplier_plan->speed'=>'Speed', 'product->plugin()->supplier_plan->speed'=>'Speed',
'product->plugin()->allowance(array(),TRUE,TRUE,TRUE)'=>'Allowance', 'product->plugin()->allowance(array(),TRUE,TRUE,TRUE)'=>'Allowance',
'plugin()->traffic_month(strtotime("yesterday"),TRUE,TRUE)'=>'This Month', 'plugin()->traffic_month(strtotime("yesterday"),TRUE,TRUE)'=>'This Month',
'plugin()->traffic_month(strtotime("last month"),TRUE,TRUE)'=>'Last Month', 'plugin()->traffic_month(strtotime("first day of last month"),TRUE,TRUE)'=>'Last Month',
'recur_schedule'=>'Billing', 'recur_schedule'=>'Billing',
'price(TRUE,TRUE)'=>'Price', 'price(TRUE,TRUE)'=>'Price',
'account->accnum()'=>'Cust ID', 'account->accnum()'=>'Cust ID',

View File

@ -135,8 +135,15 @@ class Model_Product_Plugin_Adsl extends Model_Product_Plugin {
if (! isset($data[$k])) if (! isset($data[$k]))
$data[$k] = 0; $data[$k] = 0;
if ($over) if ($over) {
$data[$k] = $invert ? $this->{$k} : $data[$k]-$this->{$k}; // @todo This is an ugly hack - if our data has been passed it, it is assumed it has been reduced by $this->metric
$z = $this->metric ? round($this->{$k}/$this->metric,2) : $this->{$k};
$data[$k] = $invert ? $z : $data[$k]-$z;
// We need to return this back to base units as later, we'll return it back to metric
$data[$k] = $this->metric ? $data[$k]*$this->metric : $data[$k];
}
// Do we charge for extra, or merge it to another field // Do we charge for extra, or merge it to another field
if (! is_null($this->{$v})) { if (! is_null($this->{$v})) {

View File

@ -15,7 +15,7 @@ class Task_Adsl_Trafficalert extends Minion_Task {
); );
protected function _execute(array $params) { protected function _execute(array $params) {
$date = strtotime('last month'); $date = strtotime('first day of last month');
$c = array(); $c = array();
// @todo Pick up services that are no longer active, but were inactive < 30 days ago. // @todo Pick up services that are no longer active, but were inactive < 30 days ago.

View File

@ -15,7 +15,7 @@ class Task_Adsl_Trafficcharge extends Minion_Task {
); );
protected function _execute(array $params) { protected function _execute(array $params) {
$date = strtotime('last month'); $date = strtotime('first day of last month');
$c = array(); $c = array();
// @todo Pick up services that are no longer active, but were inactive < 30 days ago. // @todo Pick up services that are no longer active, but were inactive < 30 days ago.

View File

@ -41,7 +41,7 @@
<div class="dl-horizontal"> <div class="dl-horizontal">
<dt>Last Month</dt> <dt>Last Month</dt>
<dd>&nbsp;<?php echo $o->traffic_month(strtotime('last month'),TRUE,TRUE); ?></dd> <dd>&nbsp;<?php echo $o->traffic_month(strtotime('first day of last month'),TRUE,TRUE); ?></dd>
<dt>This Month</dt> <dt>This Month</dt>
<dd>&nbsp;<?php echo $o->traffic_month(strtotime('yesterday'),TRUE,TRUE); ?></dd> <dd>&nbsp;<?php echo $o->traffic_month(strtotime('yesterday'),TRUE,TRUE); ?></dd>

View File

@ -12,6 +12,7 @@
class Model_Charge extends ORM_OSB implements Invoicable { class Model_Charge extends ORM_OSB implements Invoicable {
protected $_belongs_to = array( protected $_belongs_to = array(
'account'=>array(), 'account'=>array(),
'product'=>array(),
'service'=>array(), 'service'=>array(),
); );
protected $_has_one = array( protected $_has_one = array(

View File

@ -1,4 +1,4 @@
<fieldset class="span5"> <fieldset>
<legend>Service Details</legend> <legend>Service Details</legend>
<div class="dl-horizontal"> <div class="dl-horizontal">

View File

@ -1,4 +1,4 @@
<fieldset class="span5"> <fieldset>
<legend>Service Details</legend> <legend>Service Details</legend>
<div class="dl-horizontal"> <div class="dl-horizontal">

View File

@ -61,7 +61,7 @@ class Model_Invoice_Item extends ORM_OSB {
case 1: case 1:
// @todo // @todo
return $ii; return $this->product_name;
case 2: case 2:
case 3: case 3:
@ -70,6 +70,9 @@ class Model_Invoice_Item extends ORM_OSB {
case 6: case 6:
return ((! $this->service_id OR $this->product_id OR $this->charge_id OR $this->product_name OR $this->recurring_schedule OR ! $this->date_start OR ! $this->date_stop) ? '+ ' : '').$ii; return ((! $this->service_id OR $this->product_id OR $this->charge_id OR $this->product_name OR $this->recurring_schedule OR ! $this->date_start OR ! $this->date_stop) ? '+ ' : '').$ii;
case 8:
return $this->product_name;
case 124: case 124:
case 125: case 125:
case 126: case 126: