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); }
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())); } } }