예제 #1
0
 public function model_before_check(Model_Purchase $purchase, Jam_Event_Data $data)
 {
     if ($purchase->shipping_required) {
         if ($purchase->shipping_same_as_billing and !$purchase->billing_address) {
             $purchase->errors()->add('billing_address', 'present');
         } elseif (!$purchase->shipping_same_as_billing and !$purchase->shipping_address) {
             $purchase->errors()->add('shipping_address', 'present');
         } else {
             $purchase->shipping_address()->fields_required = TRUE;
         }
         if ($purchase->items_count(array('can_ship' => FALSE))) {
             $purchase->errors()->add('brand_purchases', 'cannot_ship');
         }
     }
 }
예제 #2
0
 public function validate_purchase(Model_Purchase $purchase)
 {
     $purchase_price = $purchase->total_price('product');
     if ($purchase_price->is(Jam_Price::LESS_THAN, $this->requirement)) {
         $purchase->errors()->add('promo_code_text', 'requirement', array(':more_than' => $this->requirement->humanize()));
     }
 }
예제 #3
0
 /**
  * If there is a new value in promo_code_text, try to load promo_code object.
  * If the new value is NULL, remove it
  * @param  Model_Purchase $purchase
  */
 public function model_after_check(Model_Purchase $purchase)
 {
     if ($purchase->changed('promo_code_text') and !$purchase->errors('promo_code_text')) {
         if ($purchase->promo_code_text) {
             $purchase->promo_code = Jam::find('promo_code', $purchase->promo_code_text);
         } else {
             $purchase->promo_code = NULL;
         }
     }
 }