/**
  * Creates a new model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  */
 public function actionCreate()
 {
     $model = new Promotion();
     // Uncomment the following line if AJAX validation is needed
     // $this->performAjaxValidation($model);
     if (isset($_POST['Promotion'])) {
         $model->attributes = $_POST['Promotion'];
         if ($model->save()) {
             $this->redirect(array('view', 'id' => $model->id));
         }
     }
     $this->render('create', array('model' => $model));
 }
 protected function processAddOrUpdate()
 {
     //promotion create
     $promotion = new Promotion();
     //1.assign values
     $promotion->PromotionId = Tools::getValue('PromotionId');
     $promotion->getById($promotion->PromotionId);
     $promotion->HotelName = Tools::getValue('HotelName');
     $promotion->AreaId = Tools::getValue('AreaId');
     $promotion->Title = Tools::getValue('Title');
     $promotion->StaDate = Tools::getValue('StaDate');
     $promotion->EndDate = Tools::getValue('EndDate');
     $promotion->Content = Tools::getValue('Content');
     $promotion->Type = Tools::getValue('Type');
     $promotion->WriterId = self::$cookie->UserID;
     $promotion->id = Tools::getValue('PromotionId');
     //2.validation check
     if (empty($promotion->HotelName)) {
         $this->errors[] = Tools::displayError('HotelName is required');
     }
     if (empty($promotion->AreaId)) {
         $this->errors[] = Tools::displayError('Area is required');
     }
     if (empty($promotion->StaDate)) {
         $this->errors[] = Tools::displayError('Effective period start is required');
     }
     if (empty($promotion->EndDate)) {
         $this->errors[] = Tools::displayError('Effective period end is required');
     }
     if (empty($promotion->Title)) {
         $this->errors[] = Tools::displayError('Title is required');
     }
     //3.update or add
     $result = false;
     if (!sizeof($this->errors)) {
         $result = $promotion->save();
         /*if($promotion -> PromotionId == 0)
         			$result = $promotion -> add();
         		else
         			$result = $promotion -> update();*/
     }
     if (!sizeof($this->errors) && result) {
         echo 'true';
     } else {
         self::$smarty->assign('errors', $this->errors);
         self::$smarty->display(_TAS_THEME_DIR_ . "common/errors_ajax.tpl");
     }
     exit;
 }
Exemple #3
0
	/**
	 * Interface processor for the promotions list manager
	 *	 
	 * @return void
	 **/
	function promotions () {
		global $Ecart;
		$db = DB::get();

		if ( !(is_ecart_userlevel() || current_user_can('ecart_promotions')) )
			wp_die(__('You do not have sufficient permissions to access this page.'));

		require_once("{$Ecart->path}/core/model/Promotion.php");

		$defaults = array(
			'page' => false,
			'deleting' => false,
			'delete' => false,
			'pagenum' => 1,
			'per_page' => 20,
			's' => ''
			);

		$args = array_merge($defaults,$_GET);
		extract($args,EXTR_SKIP);

		if ($page == "ecart-promotions"
				&& !empty($deleting)
				&& !empty($delete)
				&& is_array($delete)) {
			foreach($delete as $deletion) {
				$Promotion = new Promotion($deletion);
				$Promotion->delete();
			}
		}

		if (!empty($_POST['save'])) {
			check_admin_referer('ecart-save-promotion');

			if ($_POST['id'] != "new") {
				$Promotion = new Promotion($_POST['id']);
			} else $Promotion = new Promotion();

			if (!empty($_POST['starts']['month']) && !empty($_POST['starts']['date']) && !empty($_POST['starts']['year']))
				$_POST['starts'] = mktime(0,0,0,$_POST['starts']['month'],$_POST['starts']['date'],$_POST['starts']['year']);
			else $_POST['starts'] = 1;

			if (!empty($_POST['ends']['month']) && !empty($_POST['ends']['date']) && !empty($_POST['ends']['year']))
				$_POST['ends'] = mktime(23,59,59,$_POST['ends']['month'],$_POST['ends']['date'],$_POST['ends']['year']);
			else $_POST['ends'] = 1;
			if (isset($_POST['rules'])) $_POST['rules'] = stripslashes_deep($_POST['rules']);

			$Promotion->updates($_POST);
			$Promotion->save();

			do_action_ref_array('ecart_promo_saved',array(&$Promotion));

			$Promotion->reset_discounts();
			if ($Promotion->target == "Catalog")
				$Promotion->build_discounts();

			// Force reload of the session promotions to include any updates
			$Ecart->Promotions->reload();

		}

		$pagenum = absint( $pagenum );
		if ( empty($pagenum) )
			$pagenum = 1;
		if( !$per_page || $per_page < 0 )
			$per_page = 20;
		$start = ($per_page * ($pagenum-1));


		$where = "";
		if (!empty($s)) $where = "WHERE name LIKE '%$s%'";

		$table = DatabaseObject::tablename(Promotion::$table);
		$promocount = $db->query("SELECT count(*) as total FROM $table $where");
		$Promotions = $db->query("SELECT * FROM $table $where",AS_ARRAY);

		$status = array(
			'enabled' => __('Enabled','Ecart'),
			'disabled' => __('Disabled','Ecart')
		);

		$num_pages = ceil($promocount->total / $per_page);
		$page_links = paginate_links( array(
			'base' => add_query_arg( 'pagenum', '%#%' ),
			'format' => '',
			'total' => $num_pages,
			'current' => $pagenum
		));

		include("{$Ecart->path}/core/ui/promotions/promotions.php");
	}
 function promotions_list()
 {
     global $Shopp;
     $db = DB::get();
     if (!current_user_can(SHOPP_USERLEVEL)) {
         wp_die(__('You do not have sufficient permissions to access this page.'));
     }
     require_once "{$this->basepath}/core/model/Promotion.php";
     $defaults = array('page' => false, 'deleting' => false, 'delete' => false, 'pagenum' => 1, 'per_page' => 20, 's' => '');
     $args = array_merge($defaults, $_GET);
     extract($args, EXTR_SKIP);
     if ($page == "shopp-promotions" && !empty($deleting) && !empty($delete) && is_array($delete)) {
         foreach ($delete as $deletion) {
             $Promotion = new Promotion($deletion);
             $Promotion->delete();
         }
     }
     if (!empty($_POST['save'])) {
         check_admin_referer('shopp-save-promotion');
         if ($_POST['id'] != "new") {
             $Promotion = new Promotion($_POST['id']);
         } else {
             $Promotion = new Promotion();
         }
         if (!empty($_POST['starts']['month']) && !empty($_POST['starts']['date']) && !empty($_POST['starts']['year'])) {
             $_POST['starts'] = mktime(0, 0, 0, $_POST['starts']['month'], $_POST['starts']['date'], $_POST['starts']['year']);
         } else {
             $_POST['starts'] = 1;
         }
         if (!empty($_POST['ends']['month']) && !empty($_POST['ends']['date']) && !empty($_POST['ends']['year'])) {
             $_POST['ends'] = mktime(23, 59, 59, $_POST['ends']['month'], $_POST['ends']['date'], $_POST['ends']['year']);
         } else {
             $_POST['ends'] = 1;
         }
         if (isset($_POST['rules'])) {
             $_POST['rules'] = stripslashes_deep($_POST['rules']);
         }
         $Promotion->updates($_POST);
         $Promotion->save();
         do_action_ref_array('shopp_promo_saved', array(&$Promotion));
         if ($Promotion->scope == "Catalog") {
             $Promotion->build_discounts();
         }
         // Reset cart promotions cache
         // to force reload for these updates
         $Shopp->Cart->data->Promotions = false;
     }
     $pagenum = absint($pagenum);
     if (empty($pagenum)) {
         $pagenum = 1;
     }
     if (!$per_page || $per_page < 0) {
         $per_page = 20;
     }
     $start = $per_page * ($pagenum - 1);
     $where = "";
     if (!empty($s)) {
         $where = "WHERE name LIKE '%{$s}%'";
     }
     $table = DatabaseObject::tablename(Promotion::$table);
     $promocount = $db->query("SELECT count(*) as total FROM {$table} {$where}");
     $Promotions = $db->query("SELECT * FROM {$table} {$where}", AS_ARRAY);
     $status = array('enabled' => __('Enabled', 'Shopp'), 'disabled' => __('Disabled', 'Shopp'));
     $num_pages = ceil($promocount->total / $per_page);
     $page_links = paginate_links(array('base' => add_query_arg('pagenum', '%#%'), 'format' => '', 'total' => $num_pages, 'current' => $pagenum));
     include "{$this->basepath}/core/ui/promotions/promotions.php";
 }
     //First you need to create a Career
     $career = new Career();
     $careers = $career->get_all();
     if (empty($careers)) {
         $url = Display::url(get_lang('YouNeedToCreateACareerFirst'), 'careers.php?action=add');
         Display::display_normal_message($url, false);
         Display::display_footer();
         exit;
     }
     $url = api_get_self() . '?action=' . Security::remove_XSS($_GET['action']);
     $form = $promotion->return_form($url, 'add');
     // The validation or display
     if ($form->validate()) {
         if ($check) {
             $values = $form->exportValues();
             $res = $promotion->save($values);
             if ($res) {
                 Display::display_confirmation_message(get_lang('ItemAdded'));
             }
         }
         $promotion->display();
     } else {
         echo '<div class="actions">';
         echo Display::url(Display::return_icon('back.png', get_lang('Back'), '', ICON_SIZE_MEDIUM), api_get_self());
         echo '</div>';
         $form->addElement('hidden', 'sec_token');
         $form->setConstants(array('sec_token' => $token));
         $form->display();
     }
     break;
 case 'edit':