Added Service Add, some internal consistency updates
This commit is contained in:
@@ -29,6 +29,17 @@ class Model_Service extends ORM_OSB {
|
||||
'account'=>array(),
|
||||
);
|
||||
|
||||
// Validation rules
|
||||
public function rules() {
|
||||
$x = Arr::merge(parent::rules(), array(
|
||||
'product_id' => array(
|
||||
array('not_equal', array(':value', array(0))),
|
||||
),
|
||||
));
|
||||
|
||||
return $x;
|
||||
}
|
||||
|
||||
/**
|
||||
* Filters used to format the display of values into friendlier values
|
||||
*/
|
||||
@@ -50,6 +61,10 @@ class Model_Service extends ORM_OSB {
|
||||
),
|
||||
);
|
||||
|
||||
protected $_nullifempty = array(
|
||||
'price_override',
|
||||
);
|
||||
|
||||
protected $_form = array('id'=>'id','value'=>'service_name()');
|
||||
|
||||
// Cache our calls to our plugins
|
||||
@@ -216,6 +231,13 @@ class Model_Service extends ORM_OSB {
|
||||
return $type ? Model_Service::$plugin[$this->id]->$type : Model_Service::$plugin[$this->id];
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable the plugin to store data
|
||||
*/
|
||||
public function plugin_edit() {
|
||||
return (is_null($x = $this->plugin())) ? NULL : $x->render_edit();
|
||||
}
|
||||
|
||||
public function revenue($annual=FALSE) {
|
||||
$multiple = $annual ? Period::multiple($this->recur_schedule) : 1;
|
||||
|
||||
@@ -243,7 +265,7 @@ class Model_Service extends ORM_OSB {
|
||||
$x = $this->product->keyget('price_group',$this->recur_schedule);
|
||||
|
||||
// @todo This index shouldnt be hard coded.
|
||||
$p = ! is_null($this->price) ? $this->price : $x[$this->price_group]['price_base'];
|
||||
$p = ! is_null($this->price) ? $this->price : (isset($x[$this->price_group]['price_base']) ? $x[$this->price_group]['price_base'] : NULL);
|
||||
|
||||
if (! $original AND ! is_null($this->price_override))
|
||||
$p = $this->price_override;
|
||||
@@ -265,20 +287,13 @@ class Model_Service extends ORM_OSB {
|
||||
return is_null($plugin) ? array() : $plugin->_details($type);
|
||||
|
||||
case 'service_view':
|
||||
return is_null($plugin) ? HTML::nbsp('') : $plugin->service_view();
|
||||
return is_null($plugin) ? HTML::nbsp('') : $plugin->render_view();
|
||||
|
||||
default:
|
||||
throw new Kohana_Exception('Unkown detail request :type',array(':type'=>$type));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable the plugin to store data
|
||||
*/
|
||||
public function admin_update() {
|
||||
return (is_null($plugin = $this->plugin())) ? NULL : $plugin->admin_update();
|
||||
}
|
||||
|
||||
public function transactions() {
|
||||
return $this->invoice_item->order_by('date_start')->order_by('date_stop');
|
||||
}
|
||||
|
@@ -47,14 +47,6 @@ abstract class Model_Service_Plugin extends ORM_OSB {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Form info for admins to update
|
||||
*/
|
||||
public function admin_update() {
|
||||
return View::factory(sprintf('service/admin/plugin/%s/edit',$this->plugin()))
|
||||
->set('o',$this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Provide the button that launches the management of this service, generally from a 3rd party
|
||||
*/
|
||||
@@ -96,18 +88,26 @@ function() { $("form[id=id_"+t[0]+"_"+t[1]+"]").submit(); });
|
||||
}
|
||||
|
||||
/**
|
||||
* Show our service name as defined in the DB with product suffix.
|
||||
* Form info for admins to update plugin data
|
||||
*/
|
||||
public function service_name() {
|
||||
return sprintf('%s - %s',$this->service->product->title(),$this->name());
|
||||
public function render_edit() {
|
||||
return View::factory(sprintf('service/admin/plugin/%s/edit',$this->plugin()))
|
||||
->set('o',$this);
|
||||
}
|
||||
|
||||
/**
|
||||
* View details of the service
|
||||
*/
|
||||
public function service_view() {
|
||||
public function render_view() {
|
||||
return View::factory(sprintf('service/user/plugin/%s/view',$this->plugin()))
|
||||
->set('o',$this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show our service name as defined in the DB with product suffix.
|
||||
*/
|
||||
public function service_name() {
|
||||
return sprintf('%s - %s',$this->service->product->title(),$this->name());
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
Reference in New Issue
Block a user