<?php
 namespace VnChocola\Module\SuperAdmin\SpAdminUser;
 use TCMS\Controller;
 use Model;
 use Model\UserModel;
 class IndexController extends Controller {
 public function index() {
 return view();
 }
 public function create() {
 $data = [];
 if(\Request::has('uname')) {
 $data['username'] = \Request::get('uname');
 }
 if(\Request::has('staffId')) {
 $data['staffId'] = \Request::get('staffId');
 }
 if(\Request::has('name')) {
 $data['name'] = \Request::get('name');
 }
 return view($data);
 }
 private function setBranchAndStoreIdForUser($userModel) {
 $staffModel = Model::load('StaffsModel');
 $staff = $staffModel->select('id', 'branchID')->find($userModel->staffId);
 if(!$staff) return false;
 $branchModel = Model::load('BranchsModel');
 $branch = $branchModel->select('id', 'storeID')->find($staff->branchID);
 if(!$branch) return false;
 $userModel->storeID = $branch->storeID;
 $userModel->branchID = $staff->branchID;
 $userModel->avatar = isset($staff->image) ? $staff->image : '/elFinder/files/user.png';
 return true;
 }
 public function postCreate(UserModel $model) {
 if($model->isValid()) {
 if($model->password != $model->repassword) {
 $model->addModelError('repassword', 'Nhập lại mật khẩu sai!');
 return view($model);
 }
 $auth = load_auth();
 $model->password = $auth->encodePass($model->password);
 if(!$this->setBranchAndStoreIdForUser($model)) {
 view()->addErrorMessage('error', 'Không lấy được chi nhánh cho người dùng');
 }
 else {
 if($model->save()) return route_redirect('create', 'Thêm thành công');
 view()->addErrorMessage('error', 'Thêm thất bại');
 }
 }
 return view($model);
 }
 public function update($id) {
 $model = Model::load('UserModel');
 $data = $model->find($id);
 if(!$data) return route_redirect('index', 'Id không tồn tại', 'error');
 return view($data);
 }
 public function postUpdate(UserModel $model) {
 if($model->isValid()) {
 if($model->password) {
 $auth = load_auth();
 if(!$auth) {
 throw new \TCMS\TException('Không tìm thấy auth extension', 500);
 }
 $model->password = $auth->encodePass($model->password);
 }
 if(!$this->setBranchAndStoreIdForUser($model)) {
 view()->addErrorMessage('error', 'Không lấy được chi nhánh cho người dùng');
 }
 else {
 if($model->save()) return route_redirect('index', 'Cập nhật thành công');
 view()->addErrorMessage('error', 'Cập nhật thất bại');
 }
 }
 return view($model);
 }
 public function postDelete() {
 $id = \Request::get('data');
 $model = Model::load('UserModel');
 $isSuccess = $model->delete($id);
 if(\Request::isAjax()) return json(['success' => $isSuccess, 'message' => $isSuccess ? 'Xóa thành công' : 'Xóa thất bại']);
 return route_redirect('index', $isSuccess ? 'Xóa thành công' : 'Xóa thất bại');
 }
 }
