Пример #1
0
 public function actionShippingset()
 {
     $moduleid = Yii::app()->getRequest()->getQuery('id');
     if (empty($moduleid)) {
         return;
     }
     $moduleid = str_replace("AdminForm", "", $moduleid);
     $objPromoCode = PromoCode::model()->findByAttributes(array('module' => $moduleid));
     $model = new ShippingRestrictionForm();
     if (!$objPromoCode instanceof PromoCode) {
         //We don't have an existing line item
         $objPromoCode = new PromoCode();
         $objPromoCode->module = $moduleid;
         $objPromoCode->enabled = 0;
         //only defined LS are enabled for shipping restrictions
         $objPromoCode->type = PromoCode::Currency;
         //always 0 for shipping restrictions
         $objPromoCode->amount = 0;
         $objPromoCode->save();
     }
     if (!$objPromoCode->code) {
         $objPromoCode->code = $moduleid . ":";
         $objPromoCode->save();
     }
     //Prepopulate if we have them
     $model->id = $objPromoCode->id;
     $model->promocode = Yii::app()->getComponent($moduleid)->AdminName;
     $model->exception = $objPromoCode->exception;
     list($model->categories, $model->families, $model->classes, $model->keywords, $model->codes) = $this->parseRestrictions($objPromoCode->lscodes);
     echo $this->renderPartial("_restrictions", array('model' => $model), true);
 }
Пример #2
0
 public function syncPromoCode()
 {
     $config = $this->getConfigValues(get_class($this));
     $strPromoCode = $config['promocode'];
     //Entered promo code
     $objPromoCode = PromoCode::LoadByShipping(get_class($this));
     if (!$objPromoCode) {
         //If we're this far without an object, create one
         $objPromoCode = new PromoCode();
         $objPromoCode->lscodes = "shipping:,";
         $objPromoCode->exception = 0;
         $objPromoCode->enabled = 1;
         $objPromoCode->module = get_class($this);
     }
     //Sync any fields with the promo code table
     if (strlen($strPromoCode) == 0) {
         $strPromoCode = get_class($this) . ":";
     }
     $objPromoCode->code = $strPromoCode;
     $objPromoCode->valid_from = isset($config['startdate']) && !empty($config['startdate']) ? $config['startdate'] : null;
     $objPromoCode->valid_until = isset($config['enddate']) && !empty($config['enddate']) ? $config['enddate'] : null;
     $objPromoCode->amount = 0;
     $objPromoCode->type = PromoCodeType::Percent;
     //Needs to be 0% so UpdatePromoCode() returns valid test
     $objPromoCode->threshold = $config['rate'] == "" ? "0" : $config['rate'];
     if ($config['qty_remaining'] == '') {
         $objPromoCode->qty_remaining = -1;
     } else {
         $objPromoCode->qty_remaining = $config['qty_remaining'];
     }
     $objPromoCode->save();
 }
 public function actionNewpromo()
 {
     if (isset($_POST['PromoCode'])) {
         $objPromo = new PromoCode();
         $objPromo->attributes = $_POST['PromoCode'];
         $objPromo->setScenario('create');
         if ($objPromo->validate()) {
             if ($objPromo->save()) {
                 echo CJSON::encode(array('result' => 'success'));
             }
         } else {
             echo CJSON::encode(array('result' => 'failure', 'errors' => $objPromo->getErrors()));
         }
     }
 }