/** * Overload delete() method * * @param Int $id * @return Boolean */ public function delete($id = 0) { $orm_instance = ORM::factory('used_coupon')->where('cpn_id', $id)->delete_all(); Mycpn_promotion::instance()->delete_by_couponid($id); return parent::delete($id); }
public function download() { role::check('promotion_coupon'); // 收集请求数据 $request_data = $this->input->get(); $coupon = Mycoupon::instance($request_data['id'])->get(); // 权限验证 if (!$coupon['id']) { remind::set(Kohana::lang('o_global.bad_request'), request::referrer(), 'error'); } if (!preg_match('/^\\d+$/', $request_data['amount']) || $request_data['amount'] >= 10000 || $request_data['amount'] <= 0) { exit; } //$used_coupons = Myused_coupon::instance()->get_used_coupon_codes($coupons['site_id']); $coupons = Mycoupon::instance()->gen_coupons($coupon['id'], $request_data['amount']); $cpn_promotion = Mycpn_promotion::instance()->get_by_couponid($coupon['id']); $coupon_scheme = Mycoupon_scheme::instance($cpn_promotion['cpns_id'])->get(); //CSV输出 $rand_name = date('Y-m-d') . '_' . mt_rand(); header("Pragma: public"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header("Content-Transfer-Encoding: binary "); header("Content-type:application/vnd.ms-excel"); header("Content-Disposition:attachment;filename=coupons_{$rand_name}.csv"); //header("Content-Disposition:attachment;filename={$filename}{$file}.xls"); header("Pragma: no-cache"); header("Expires: 0"); $output = ",,,,,\n"; switch ($cpn_promotion['cpns_id']) { case 1: case 2: $output .= "订单开始金额,订单结束金额,,,,\n"; $output .= "\${$cpn_promotion['money_from']},\${$cpn_promotion['money_to']},,,,\n"; break; case 3: $related_ids = explode(',', trim($cpn_promotion['related_ids'], ',')); $request_struct = array('where' => array('id' => $related_ids), 'orderby' => array('email' => 'ASC')); $all_users = Myuser::instance()->lists($request_struct); $output .= "用户邮箱,姓名,,,,\n"; foreach ($all_users as $key => $rs) { $output .= "{$rs['email']},{$rs['firstname']} {$rs['lastname']},,,,\n"; } break; case 4: $related_ids = explode(',', trim($cpn_promotion['related_ids'], ',')); $request_struct = array('where' => array('id' => $related_ids), 'orderby' => array('name_manage' => 'ASC')); $all_products = ProductService::get_instance()->index($request_struct); $output .= "商品SKU,名称,,,,\n"; foreach ($all_products as $key => $rs) { $output .= "{$rs['sku']},{$rs['name_manage']},,,,\n"; } break; case 5: $related_ids = explode(',', trim($cpn_promotion['related_ids'], ',')); $request_struct = array('where' => array('id' => $related_ids), 'orderby' => array('title_manage' => 'ASC')); $all_categories = CategoryService::get_instance()->index($request_struct); $output .= "分类名称,,,,,\n"; foreach ($all_categories as $key => $rs) { $output .= "{$rs['title_manage']},,,,,\n"; } break; case 6: $output .= "订单商品开始数量,订单商品结束数量,,,,\n"; $output .= "{$cpn_promotion['quantity_from']},{$cpn_promotion['quantity_to']},,,,\n"; break; } $output .= ",,,,,\n"; $output .= "打折号,开始时间,结束时间,打折值,折扣类型,\n"; foreach ($coupons as $key => $rs) { $output .= $rs . "," . $cpn_promotion['time_begin'] . "," . $cpn_promotion['time_end'] . ","; switch ($cpn_promotion['discount_type']) { case 0: $output .= '百分比 ' . $cpn_promotion['price'] * 100 . "%"; break; case 1: $output .= '减去 $' . $cpn_promotion['price']; break; case 2: $output .= '减到 $' . $cpn_promotion['price']; break; } $output .= ","; $output .= "{$coupon_scheme['cpns_memo']},\n"; } echo iconv('UTF-8', 'gb2312', $output); exit; }
public function do_edit() { role::check('promotion_coupon'); // 收集请求数据 $request_data = $this->input->post(); $session = Session::instance(); $session->set_flash('sessionErrorData', $request_data); //标签过滤 tool::filter_strip_tags($request_data); $cpn_promotion = Mycpn_promotion::instance($request_data['id'])->get(); $cpns_id = $cpn_promotion['cpns_id']; if (!$cpn_promotion['id']) { remind::set(Kohana::lang('o_global.update_error'), request::referrer(), 'error'); } //时间处理 if (strtotime($request_data['time_end']) < strtotime($request_data['time_begin'])) { remind::set(Kohana::lang('o_promotion.begin_time_over_end'), request::referrer(), 'error'); } $request_data['time_end'] = date("Y-m-d H:i:s", strtotime($request_data['time_end']) + 24 * 3600); //促销规则时间必须在促销活动时间内 $coupon = Mycoupon::instance($request_data['cpn_id'])->get(); //var_dump($coupon);exit; if (!$coupon['id']) { remind::set(Kohana::lang('o_global.access_denied'), request::referrer(), 'error'); } $cpn_time_begin = strtotime($coupon['cpn_time_begin']); $cpn_time_end = strtotime($coupon['cpn_time_end']); if ($cpn_time_begin > strtotime($request_data['time_begin']) || $cpn_time_end < strtotime($request_data['time_end'])) { remind::set(Kohana::lang('o_promotion.cpn_out_time_range'), request::referrer(), 'error'); } // extra process needed for IDs //验证打折值与订单优惠条件 if (isset($request_data['discount_type'])) { if (isset($request_data['price']) && (!preg_match('/^\\d{1,12}(\\.\\d{0,3})?$/', $request_data['price']) || $request_data['price'] < 0)) { remind::set(Kohana::lang('o_promotion.cpn_price_error'), request::referrer(), 'error'); } if ($request_data['discount_type'] == 0 && $request_data['price'] > 1) { remind::set(Kohana::lang('o_promotion.cpn_price_error'), request::referrer(), 'error'); } } if (isset($request_data['money_from']) && (!preg_match('/^\\d{1,12}(\\.\\d{0,3})?$/', $request_data['money_from']) || $request_data['money_from'] < 0) || isset($request_data['money_to']) && (!preg_match('/^\\d{1,12}(\\.\\d{0,3})?$/', $request_data['money_to']) || $request_data['money_to'] < 0) || isset($request_data['money_from']) && $request_data['money_from'] >= $request_data['money_to']) { remind::set(Kohana::lang('o_promotion.cpn_money_error'), request::referrer(), 'error'); } if (isset($request_data['quantity_from']) && (!preg_match('/^\\d+$/', $request_data['quantity_from']) || $request_data['quantity_from'] < 0) || isset($request_data['quantity_to']) && (!preg_match('/^\\d+$/', $request_data['quantity_to']) || $request_data['quantity_to'] < 0) || isset($request_data['quantity_from']) && $request_data['quantity_from'] >= $request_data['quantity_to']) { remind::set(Kohana::lang('o_promotion.buy_quantity_error'), request::referrer(), 'error'); } switch ($cpns_id) { case 3: // discount_cart_user_buy isset($info) || ($info = "请选择用户"); case 4: // discount_cart_buy_product isset($info) || ($info = "请选择货品"); case 5: // discount_category isset($info) || ($info = "请选择分类"); $related_ids = $this->input->post('related_ids'); if (empty($related_ids)) { remind::set($info, request::referrer(), 'error'); } // enclose selected category ids with comma $request_data['related_ids'] = Mycpn_promotion::enclose_ids($related_ids, ','); break; } //print_r($request_data);exit; if ($promotion_id = Mycpn_promotion::instance()->edit($request_data)) { $session->delete('sessionErrorData'); remind::set(Kohana::lang('o_global.update_success'), "promotion/coupon", 'success'); } else { remind::set(Kohana::lang('o_global.update_error'), request::referrer(), 'error'); } }