示例#1
0
 public function add($order_id)
 {
     import('system/share/network/redirect');
     AuthPlugins::required($this, array('销售经理', '销售顾问'));
     $order_id = abs(intval($order_id));
     if (!$this->is_post() || !$order_id) {
         return false;
     }
     /*
      * 上传方案附件
      */
     import('system/share/io/filesystem');
     FileSystem::init();
     $file_path = FileSystem::Upload($_FILES['attachment'], false);
     if (!$file_path) {
         HTTPRedirect::flash_to('order/detail/' . $order_id, '文件上传失败:' . FileSystem::$message, $this->smarty);
     }
     /*
      * 写入方案表
      */
     parent::load('model', 'order');
     $solution = new Solution();
     $solution->order_id = $order_id;
     $solution->solution_code = trim(strip_tags($_POST['solution_code']));
     $solution->name = trim(strip_tags($_POST['name']));
     $solution->attachment = $file_path;
     $solution->price = abs(intval($_POST['price']));
     $solution->save();
     HTTPRedirect::flash_to('order/detail/' . $order_id, '添加方案成功', $this->smarty);
 }
示例#2
0
 public function __construct()
 {
     /*
      * Call parent construct
      */
     parent::__construct();
     import('system/contrib/admin/base');
     import('system/contrib/auth/plugins');
     /*
      * Initialize the Pluggable if it doesn't initialized.
      */
     if (!Pluggable::$inited) {
         Pluggable::init($this);
     }
     /*
      * smarty instance
      */
     $this->smarty = $this->load('smarty');
     /*
      * admin_required, if use RBAC, this will another use
      */
     AuthPlugins::admin_required($this);
     Pluggable::trigger('before_admin_site_run');
     $this->smarty->assign('admin_menus', BaseAdmin::build_menus());
 }
示例#3
0
 public function __construct($parameters)
 {
     if ($parameters['log'] == '<none>') {
         $parameters['log'] = '~log';
     }
     parent::__construct($parameters);
     $this->testSet = $parameters['test'] != '<none>';
     $this->input = $this->testSet ? $parameters['test'] : $parameters['input'];
     $this->testReport = $parameters['report'];
     $this->reportTemplate = $parameters['template'];
 }
示例#4
0
 public function work_plan()
 {
     parent::load('model', 'work');
     parent::load('model', 'system/contrib/auth');
     $smarty = parent::load('smarty');
     if (!$this->is_post()) {
         return;
     }
     /*
      * ajax提交的工作计划信息
      */
 }
示例#5
0
 public function index($id_or_alias)
 {
     parent::load('model', 'system/contrib/auth');
     parent::load('model', 'articles');
     $articles = Article::get_by_category($id_or_alias);
     import('system/share/web/paginator');
     $paginator = new Paginator($articles, $_GET['page'], 10);
     $category = CategoryTable::getInstance()->findByAlias($id_or_alias);
     $smarty = parent::load('smarty');
     $smarty->assign('category', $category[0]);
     $smarty->assign('paginator', $paginator->output());
     $smarty->assign('page_title', $category[0]->name);
     $smarty->display('article/list');
 }
示例#6
0
 public function __construct($params = null)
 {
     self::$instance = $this;
     self::$current_application = ini('runtime/application');
     self::_check_dependence(self::$current_application);
     Pluggable::trigger('after_application_construct');
     /*
      * 基础是否登录权限判断
      */
     if (ini('runtime/application') != 'system/contrib/auth' && ini('runtime/action') != 'login' && ini('runtime/application' != 'system/contrib/dev_tools')) {
         import('system/contrib/auth/plugins');
         AuthPlugins::login_required($this);
     }
 }
示例#7
0
 public function state()
 {
     $id = abs(intval($_GET['id']));
     $state = abs(intval($_GET['state']));
     echo $id;
     parent::load('model', 'forms');
     import('system/share/network/redirect');
     $form = FormsTable::getInstance()->find($id);
     if (!$form) {
         return false;
     }
     $form->state = $state;
     $form->save();
     HTTPRedirect::flash_to('forms/' . $this->maps[$form->type], '操作成功', $this->smarty);
 }
示例#8
0
 public function add($order_id)
 {
     AuthPlugins::required($this, array('销售经理', '销售顾问'));
     $order_id = abs(intval($order_id));
     $content = trim(nl2br(strip_tags($_POST['content'])));
     if (!$order_id || !$this->is_post() || !$content) {
         return false;
     }
     parent::load('model', 'Order.Communication');
     $c = new Communication();
     $c->order_id = $order_id;
     $c->content = $content;
     $c->user_id = User::info('id');
     $c->save();
     echo 'ok';
 }
示例#9
0
 public function end($type, $order_id)
 {
     parent::load('model', 'work');
     parent::load('model', 'order');
     import('system/share/network/redirect');
     $smarty = parent::load('smarty');
     $work = OrderWork::get_by_order($order_id, $type);
     $workflow = Workflow::get_by_alias($this->available_next_type[$type]);
     if (!$work) {
         $message = sprintf('此订单的 %s 工作还没开始', $type);
         HTTPRedirect::flash_to('order/list/' . $workflow->id, $message, $smarty);
     }
     $work->process = 100;
     $work->save();
     Order::set_workflow($order_id, $workflow);
     $message = '此工作已经完成, 将转入下一工作流程';
     HTTPRedirect::flash_to('order/list/' . $workflow->id, $message, $smarty);
 }
示例#10
0
 public function decide_programe($order_id)
 {
     $workflow = Workflow::get_by_alias('程序验收完成');
     import('system/share/io/filesystem');
     FileSystem::init();
     $http_path = FileSystem::Upload($_FILES['attachment']);
     if (!$_FILES['attachment'] || !$http_path) {
         HTTPRedirect::flash_to('customer', '请您上传首页确认书的扫描件', $this->smarty, 'cus_flash_to');
     }
     $order = Order::get_by_id($order_id);
     $order->programe_decide_attachment = $http_path;
     $order->save();
     Order::set_workflow($order_id, $workflow);
     $smarty = parent::load('smarty');
     import('system/share/network/redirect');
     $message = '程序验收完成,等待客户付尾款即可上线';
     $flash_to = $userinfo['role']['0']['alias'] == '技术经理' ? 'order/list/' . $workflow->id : 'customer';
     $template = $userinfo['role']['0']['alias'] == '技术经理' ? 'flash_to' : 'cus_flash_to';
     HTTPRedirect::flash_to($flash_to, $message, $smarty, $template);
 }
示例#11
0
 public function change_password()
 {
     parent::load('model', 'system/contrib/auth.User');
     $user = UserTable::getInstance()->find(User::info('id'));
     import('system/share/network/redirect');
     if ($this->is_post()) {
         list($func, $random, $encryped) = explode('$', $user->password);
         /*
          * 验证原密码
          */
         if ($user->password && $user->password === User::generate_password($_POST['old_password'], $random, $func)) {
             $user->password = User::generate_password($_POST['new_password']);
             $user->save();
             User::logout();
             $message = '修改密码成功, 请重新登录';
             HTTPRedirect::flash_to(url_reverse('auth_login'), $message, $this->smarty);
         } else {
             $message = '原密码不正确, 请重试';
             HTTPRedirect::flash_to('accounts/change_password', $message, $this->smarty);
         }
     }
     $this->smarty->display('auth/change_password');
 }
 public function save(Doctrine_Connection $conn = null)
 {
     if (!$this->exists()) {
         $this->setCreatedAt(date('Y-m-d H:i:s'));
     }
     $modified = $this->getModified();
     if (!isset($modified['downloads']) && !isset($modified['rating'])) {
         $this->setUpdatedAt(date('Y-m-d H:i:s'));
     }
     parent::save($conn);
 }
示例#13
0
 public function workflow_edit($id)
 {
     parent::load('model', 'workflow');
     parent::load('model', 'order');
     parent::load('model', 'system/contrib/auth');
     $workflow = WorkflowTable::getInstance()->find($id);
     $all_roles = RoleTable::getInstance()->findAll();
     $workflow_roles = array_filter(explode(',', $workflow->roles));
     $options = array();
     foreach ($all_roles as $ar) {
         $options[$ar['id']] = $ar['name'];
     }
     if ($this->is_post()) {
         $workflow->roles = sprintf(',%s,', implode(',', $_POST['roles']));
         $workflow->save();
         HTTPRedirect::flash_to('manager/workflow_permission', '编辑工作流程权限成功', $this->smarty);
     }
     $this->smarty->assign('roles', $workflow_roles);
     $this->smarty->assign('workflow', $workflow);
     $this->smarty->assign('all_roles', $options);
     $this->smarty->display('manager/order/workflow_edit');
 }
示例#14
0
 public function detail($id)
 {
     $smarty = parent::load('smarty');
     $smarty->assign('page_title', '客户详情');
     $id = abs(intval($id));
     if (!$id) {
         $smarty->display(404);
     }
     parent::load('model', 'order');
     $order = Order::get_by_id($id);
     $smarty->assign('order', $order);
     $smarty->display('customer/detail');
 }
示例#15
0
 /**
  * Returns a peer instance associated with this om.
  *
  * Since Peer classes are not to have any instance attributes, this method returns the
  * same instance for all member of this class. The method could therefore
  * be static, but this would prevent one from overriding the behavior.
  *
  * @return     ApplicationPeer
  */
 public function getPeer()
 {
     if (self::$peer === null) {
         self::$peer = new ApplicationPeer();
     }
     return self::$peer;
 }
示例#16
0
 public function dispatch($order_id, $complete = false)
 {
     AuthPlugins::required($this, '技术经理');
     $smarty = parent::load('smarty');
     $order = Order::get_by_id($order_id);
     if ($complete && $this->is_post()) {
         $order->layouter_id = abs(intval($_POST['layouter']));
         $order->programmer = abs(intval($_POST['programmer']));
         $order->save();
     } else {
         $samrty->assign('page_title', '选择设计师和程序员');
         $smarty->assign('order', $order);
         $smarty->assign('layouter', Role::get_users_by_alias('布局师'));
         $smarty->assign('programmer', Role::get_users_by_alias('程序员'));
         $smarty->display('order/dispatch');
     }
 }
示例#17
0
 public function delete($id)
 {
     parent::load('model', 'articles');
     parent::load('model', 'system/contrib/auth.User');
     $article = ArticleTable::getInstance()->find($id);
     /*
      * 判断是否有权限修改此类文章
      */
     $has_role = Category::has_role($article->Category->id, User::info());
     if (!$has_role || !User::has_role('人力资源') || !User::has_role('总经理')) {
         $this->smarty->display(403);
         Boot::shutdown();
     }
     if ($article) {
         $article->delete();
         $message = '删除成功';
     } else {
         $message = '文章不存在';
     }
     import('system/share/network/redirect');
     HTTPRedirect::flash_to('', $message, $this->smarty);
 }