TRUE, 'index'=>TRUE, ); /** * Reconcile billing for an ADSL supplier */ public function action_billing() { if (empty($_POST['sid']) OR ! $_FILES) HTTP::redirect(URL::link('reseller','adsl/index')); $aso = ORM::factory('ADSL_Supplier',$_POST['sid']); // Process upload $files = Validation::factory($_FILES) ->rule('csv','Upload::valid') ->rule('csv','Upload::not_empty') ->rule('csv','Upload::type',array(':value',array('csv'))) ->rule('csv','Upload::size',array(':value','10M')); $csv = NULL; if ($files->check()) foreach ($files->data() as $file) { $csv = $aso->billing()->process($aso,$file); // We should only have 1 file break; } if (! $csv) throw HTTP_Exception::factory(501,'No CSV data ?'); Block::factory() ->title('ADSL Service Invoicing') ->title_icon('icon-th-list') ->body(View::factory('adsl/reseller/billing')->set('o',$csv)->set('aso',$aso)); Block::factory() ->title('ADSL Service Exception Charges') ->title_icon('icon-th-list') ->body(View::factory('adsl/reseller/billingexception')->set('o',$csv)); } /** * Select our primary export target */ public function action_index() { $output = ''; if ($_POST and isset($_POST['sid'])) { $aso = ORM::factory('ADSL_Supplier',$_POST['sid']); if (! $aso->loaded()) HTTP::redirect('adsl/index'); $c = Kohana::classname('Adsl_Billing_'.$aso->name); $o = new $c(); $output .= $o->form(); Block::factory() ->title('Upload ADSL Supplier Invoice') ->title_icon('icon-share') ->body($output); } else { $output .= Form::open(); $output .= Form::select('sid',ORM::factory('ADSL_Supplier')->list_select()); $output .= Form::button('submit','Submit',array('class'=>'btn btn-primary')); $output .= Form::close(); Block::factory() ->title('Select ADSL Supplier') ->title_icon('icon-share') ->body($output); } } } ?>