Improvements to traffic collection, zero record ignore, some fixes to order_by
This commit is contained in:
44
modules/adsl/classes/Task/Adsl/Traffictrim.php
Normal file
44
modules/adsl/classes/Task/Adsl/Traffictrim.php
Normal file
@@ -0,0 +1,44 @@
|
||||
<?php defined('SYSPATH') or die('No direct access allowed.');
|
||||
|
||||
/**
|
||||
* Trim ADSL Traffic Records, truncating any zeros
|
||||
*
|
||||
* @package ADSL
|
||||
* @category Tasks
|
||||
* @author Deon George
|
||||
* @copyright (c) 2009-2013 Open Source Billing
|
||||
* @license http://dev.osbill.net/license.html
|
||||
*/
|
||||
class Task_Adsl_Traffictrim extends Task_Adsl_Trafficget {
|
||||
protected function _execute(array $params) {
|
||||
$t = ORM::factory('Service_Plugin_Adsl_Traffic')
|
||||
->select('service,supplier_id')
|
||||
->group_by('service,supplier_id');
|
||||
|
||||
foreach ($t->find_all() as $group) {
|
||||
|
||||
$zerorow = FALSE;
|
||||
foreach (ORM::factory('Service_Plugin_Adsl_Traffic')->where('service','=',$group->service)->where('supplier_id','=',$group->supplier_id)->order_by('date')->order_by('time')->find_all() as $spato)
|
||||
if ($spato->total() === 0) {
|
||||
if ($zerorow) {
|
||||
// Cant use delete(), as our primary key is not used in this table.
|
||||
$db = DB::query(Database::DELETE,DB::delete($spato->table_name())
|
||||
->where('service','=',$group->service)
|
||||
->where('supplier_id','=',$group->supplier_id)
|
||||
->where('date','=',$spato->date)
|
||||
->where('time','=',$spato->time));
|
||||
|
||||
$db->execute();
|
||||
}
|
||||
|
||||
$zerorow = TRUE;
|
||||
|
||||
} else
|
||||
$zerorow = FALSE;
|
||||
|
||||
// An attempt to free some memory.
|
||||
$spato = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
Reference in New Issue
Block a user