public function add_postage_band()
 {
     access::verify_csrf();
     $form = postage_band::get_add_form_admin();
     try {
         $valid = $form->validate();
         $postage_band = ORM::factory("postage_band");
         $postage_band->name = $form->add_postage->inputs["name"]->value;
         $postage_band->flat_rate = $form->add_postage->flat_rate->value;
         $postage_band->per_item = $form->add_postage->per_item->value;
         $postage_band->validate();
     } catch (ORM_Validation_Exception $e) {
         // Translate ORM validation errors into form error messages
         foreach ($e->validation->errors() as $key => $error) {
             $form->add_postage->inputs[$key]->add_error($error, 1);
         }
         $valid = false;
     }
     if ($valid) {
         $postage_band->save();
         message::success(t("Created postage band %postage_name", array("postage_name" => html::clean($postage_band->name))));
         print json_encode(array("result" => "success"));
     } else {
         print json_encode(array("result" => "error", "form" => (string) $form));
     }
 }
 public function add_postage_band()
 {
     access::verify_csrf();
     $form = postage_band::get_add_form_admin();
     $valid = $form->validate();
     $name = $form->add_postage->inputs["name"]->value;
     $postage = ORM::factory("postage_band")->where("name", "=", $name)->find();
     if ($postage->loaded()) {
         $form->add_postage->inputs["name"]->add_error("in_use", 1);
         $valid = false;
     }
     if ($valid) {
         $postage = postage_band::create($name, $form->add_postage->flat_rate->value, $form->add_postage->per_item->value);
         $postage->save();
         message::success(t("Created postage band %postage_name", array("postage_name" => html::clean($postage->name))));
         print json::reply(array("result" => "success"));
     } else {
         print $form;
     }
 }