From e786382e19c697c72c2b519d0acaa4085599e4cc Mon Sep 17 00:00:00 2001
From: YM <479443481@qq.com>
Date: 星期日, 09 三月 2025 19:52:33 +0800
Subject: [PATCH] 增加班次管理

---
 app/finance/controller/Expense.php |  254 +++++++++++++++++++++++++-------------------------
 1 files changed, 125 insertions(+), 129 deletions(-)

diff --git a/app/finance/controller/Expense.php b/app/finance/controller/Expense.php
index 6b6678d..260db98 100644
--- a/app/finance/controller/Expense.php
+++ b/app/finance/controller/Expense.php
@@ -10,8 +10,8 @@
 * @Author 鍕捐偂宸ヤ綔瀹� <hdm58@qq.com>
 +-----------------------------------------------------------------------------------------------
 */
- 
-declare (strict_types = 1);
+
+declare(strict_types=1);
 
 namespace app\finance\controller;
 
@@ -25,220 +25,216 @@
 class Expense extends BaseController
 {
 	/**
-     * 鏋勯�犲嚱鏁�
-     */
+	 * 鏋勯�犲嚱鏁�
+	 */
 	protected $model;
-    public function __construct()
-    {
+	public function __construct()
+	{
 		parent::__construct(); // 璋冪敤鐖剁被鏋勯�犲嚱鏁�
-        $this->model = new ExpenseModel();
-    }
-	
-    /**
-    * 鏁版嵁鍒楄〃
-    */
-    public function datalist()
-    {
+		$this->model = new ExpenseModel();
+	}
+
+	/**
+	 * 鏁版嵁鍒楄〃
+	 */
+	public function datalist()
+	{
 		$param = get_params();
-        if (request()->isAjax()) {
+		if (request()->isAjax()) {
 			$tab = isset($param['tab']) ? $param['tab'] : 0;
 			$uid = $this->uid;
-            $where = array();
-            $whereOr = array();
-			$where[]=['delete_time','=',0];
-			if($tab == 0){
+			$where = array();
+			$whereOr = array();
+			$where[] = ['delete_time', '=', 0];
+			if ($tab == 0) {
 				//鍏ㄩ儴
 				$whereOr[] = ['admin_id', '=', $this->uid];
 				$whereOr[] = ['', 'exp', Db::raw("FIND_IN_SET('{$uid}',check_uids)")];
 				$whereOr[] = ['', 'exp', Db::raw("FIND_IN_SET('{$uid}',check_history_uids)")];
 				$whereOr[] = ['', 'exp', Db::raw("FIND_IN_SET('{$uid}',check_copy_uids)")];
 				$auth = isAuthExpense($uid);
-				if($auth == 0){
-					$dids_a = get_leader_departments($uid);	
+				if ($auth == 0) {
+					$dids_a = get_leader_departments($uid);
 					$dids_b = get_role_departments($uid);
 					$dids = array_merge($dids_a, $dids_b);
-					if(!empty($dids)){
-						$whereOr[] = ['did','in',$dids];
+					if (!empty($dids)) {
+						$whereOr[] = ['did', 'in', $dids];
 					}
 				}
 			}
-			if($tab == 1){
+			if ($tab == 1) {
 				//鎴戝垱寤虹殑
 				$where[] = ['admin_id', '=', $this->uid];
 			}
-			if($tab == 2){
+			if ($tab == 2) {
 				//寰呮垜瀹℃牳鐨�
 				$where[] = ['', 'exp', Db::raw("FIND_IN_SET('{$uid}',check_uids)")];
 			}
-			if($tab == 3){
+			if ($tab == 3) {
 				//鎴戝凡瀹℃牳鐨�
 				$where[] = ['', 'exp', Db::raw("FIND_IN_SET('{$uid}',check_history_uids)")];
 			}
-			if($tab == 4){
+			if ($tab == 4) {
 				//鎶勯�佺粰鎴戠殑
 				$where[] = ['', 'exp', Db::raw("FIND_IN_SET('{$uid}',check_copy_uids)")];
 			}
-			if($tab == 5){
+			if ($tab == 5) {
 				//宸叉墦娆剧殑
 				$where[] = ['pay_status', '=', 1];
 				$auth = isAuthExpense($uid);
-				if($auth == 0){
-					$dids_a = get_leader_departments($uid);	
+				if ($auth == 0) {
+					$dids_a = get_leader_departments($uid);
 					$dids_b = get_role_departments($uid);
 					$dids = array_merge($dids_a, $dids_b);
-					if(!empty($dids)){
-						$whereOr[] = ['did','in',$dids];
+					if (!empty($dids)) {
+						$whereOr[] = ['did', 'in', $dids];
 					}
 				}
 			}
 			//鎸夋椂闂存绱�
 			if (!empty($param['diff_time'])) {
-				$diff_time =explode('~', $param['diff_time']);
-				$where[] = ['income_month', 'between', [strtotime(urldecode($diff_time[0])),strtotime(urldecode($diff_time[1].' 23:59:59'))]];
+				$diff_time = explode('~', $param['diff_time']);
+				$where[] = ['income_month', 'between', [strtotime(urldecode($diff_time[0])), strtotime(urldecode($diff_time[1] . ' 23:59:59'))]];
 			}
-            if (isset($param['pay_status']) && $param['pay_status'] != "") {
-                $where[] = ['pay_status', '=', $param['pay_status']];
-            }
+			if (isset($param['pay_status']) && $param['pay_status'] != "") {
+				$where[] = ['pay_status', '=', $param['pay_status']];
+			}
 			if (isset($param['check_status']) && $param['check_status'] != "") {
-                $where[] = ['check_status', '=', $param['check_status']];
-            }
-            $list = $this->model->datalist($param,$where,$whereOr);
-            return table_assign(0, '', $list);
-        }
-        else{
-            return view();
-        }
-    }
-	
-    /**
-    * 娣诲姞/缂栬緫
-    */
-    public function add()
-    {
-		$param = get_params();	
-        if (request()->isAjax()) {
+				$where[] = ['check_status', '=', $param['check_status']];
+			}
+			$list = $this->model->datalist($param, $where, $whereOr);
+			return table_assign(0, '', $list);
+		} else {
+			return view();
+		}
+	}
+
+	/**
+	 * 娣诲姞/缂栬緫
+	 */
+	public function add()
+	{
+		$param = get_params();
+		if (request()->isAjax()) {
 			$param['income_month'] = isset($param['income_month']) ? strtotime(urldecode($param['income_month'])) : 0;
-            $param['expense_time'] = isset($param['expense_time']) ? strtotime(urldecode($param['expense_time'])) : 0;
+			$param['expense_time'] = isset($param['expense_time']) ? strtotime(urldecode($param['expense_time'])) : 0;
 			$amountData = isset($param['amount']) ? $param['amount'] : '0';
 			$cost = 0;
 			if ($amountData == 0) {
-				return to_assign(1,'鎶ラ攢閲戦涓嶅畬鍠�');
-			}
-			else{
+				return to_assign(1, '鎶ラ攢閲戦涓嶅畬鍠�');
+			} else {
 				foreach ($amountData as $key => $value) {
 					if ($value == 0) {
-						return to_assign(1,'绗�' . ($key + 1) . '鏉℃姤閿�閫夐」鐨勯噾棰濅笉鑳戒负闆�');
-					}
-					else{
-						$cost+=$value;
+						return to_assign(1, '绗�' . ($key + 1) . '鏉℃姤閿�閫夐」鐨勯噾棰濅笉鑳戒负闆�');
+					} else {
+						$cost += $value;
 					}
 				}
 			}
-			if($cost==0){
-				return to_assign(1,'鎶ラ攢閲戦涓嶈兘涓洪浂');
+			if ($cost == 0) {
+				return to_assign(1, '鎶ラ攢閲戦涓嶈兘涓洪浂');
 			}
 			$param['admin_id'] = $this->uid;
 			$param['did'] = $this->did;
 			$param['cost'] = $cost;
-            if (!empty($param['id']) && $param['id'] > 0) {
-                try {
-                    validate(ExpenseValidate::class)->scene('edit')->check($param);
-                } catch (ValidateException $e) {
-                    // 楠岃瘉澶辫触 杈撳嚭閿欒淇℃伅
-                    return to_assign(1, $e->getError());
-                }
+			if (!empty($param['id']) && $param['id'] > 0) {
+				try {
+					validate(ExpenseValidate::class)->scene('edit')->check($param);
+				} catch (ValidateException $e) {
+					// 楠岃瘉澶辫触 杈撳嚭閿欒淇℃伅
+					return to_assign(1, $e->getError());
+				}
 				$this->model->edit($param);
-            } else {
-                try {
-                    validate(ExpenseValidate::class)->scene('add')->check($param);
-                } catch (ValidateException $e) {
-                    // 楠岃瘉澶辫触 杈撳嚭閿欒淇℃伅
-                    return to_assign(1, $e->getError());
-                }
-                $this->model->add($param);
-            }	 
-        }else{
+			} else {
+				try {
+					validate(ExpenseValidate::class)->scene('add')->check($param);
+				} catch (ValidateException $e) {
+					// 楠岃瘉澶辫触 杈撳嚭閿欒淇℃伅
+					return to_assign(1, $e->getError());
+				}
+				$this->model->add($param);
+			}
+		} else {
 			$id = isset($param['id']) ? $param['id'] : 0;
-            View::assign('expense_cate', Db::name('ExpenseCate')->where(['status' => 1])->select()->toArray());
+			View::assign('expense_cate', Db::name('ExpenseCate')->where(['status' => 1])->select()->toArray());
 			View::assign('user', get_admin($this->uid));
-			if ($id>0) {
+			if ($id > 0) {
 				$detail = $this->model->getById($id);
 				View::assign('detail', $detail);
-				if(is_mobile()){
+				if (is_mobile()) {
 					return view('qiye@/finance/add_expense');
 				}
 				return view('edit');
 			}
-			if(is_mobile()){
+			if (is_mobile()) {
 				return view('qiye@/finance/add_expense');
 			}
 			return view();
 		}
-    }
-	
-    /**
-    * 鏌ョ湅
-    */
-    public function view($id)
-    {
+	}
+
+	/**
+	 * 鏌ョ湅
+	 */
+	public function view($id)
+	{
 		$detail = $this->model->getById($id);
 		if (!empty($detail)) {
-			$file_array = Db::name('File')->where('id','in',$detail['file_ids'])->select();
+			$file_array = Db::name('File')->where('id', 'in', $detail['file_ids'])->select();
 			$detail['file_array'] = $file_array;
 			View::assign('detail', $detail);
 			View::assign('create_user', get_admin($detail['admin_id']));
-			if(is_mobile()){
+			if (is_mobile()) {
 				return view('qiye@/finance/view_expense');
 			}
 			return view();
+		} else {
+			return view(EEEOR_REPORTING, ['code' => 404, 'warning' => '鎵句笉鍒伴〉闈�']);
 		}
-		else{
-			return view(EEEOR_REPORTING,['code'=>404,'warning'=>'鎵句笉鍒伴〉闈�']);
-		}
-    }
-	
-   /**
-    * 鍒犻櫎
-    */
-    public function del()
-    {
+	}
+
+	/**
+	 * 鍒犻櫎
+	 */
+	public function del()
+	{
 		$param = get_params();
 		$id = isset($param['id']) ? $param['id'] : 0;
 		if (request()->isDelete()) {
 			$this->model->delById($id);
 		} else {
-            return to_assign(1, "閿欒鐨勮姹�");
-        }
-    }   
-	
+			return to_assign(1, "閿欒鐨勮姹�");
+		}
+	}
+
 	//鎶ラ攢璁板綍
-    public function record()
-    {
-        if (request()->isAjax()) {
+	public function record()
+	{
+		if (request()->isAjax()) {
 			$param = get_params();
 			$where = [];
-			$where[]=['delete_time','=',0];
-			$where[]=['check_status','=',2];
-			if(isAuthExpense($this->uid)==0){
+			$where[] = ['delete_time', '=', 0];
+			$where[] = ['check_status', '=', 2];
+			if (isAuthExpense($this->uid) == 0) {
 				$where[] = ['admin_id', '=', $this->uid];
 			}
 			//鎸夋椂闂存绱�
 			if (!empty($param['diff_time'])) {
-				$diff_time =explode('~', $param['diff_time']);
-				$where[] = ['expense_time', 'between', [strtotime(urldecode($diff_time[0])),strtotime(urldecode($diff_time[1].' 23:59:59'))]];
+				$diff_time = explode('~', $param['diff_time']);
+				$where[] = ['expense_time', 'between', [strtotime(urldecode($diff_time[0])), strtotime(urldecode($diff_time[1] . ' 23:59:59'))]];
 			}
-            if (isset($param['pay_status']) && $param['pay_status'] != "") {
-                $where[] = ['pay_status', '=', $param['pay_status']];
-            }
-			$list = $this->model->datalist($param,$where);
-			
-			$cost = $this->model::where($where)->sum('cost');					
-			$totalRow['cost'] = sprintf("%.2f",$cost);
-            return table_assign(0, '', $list);
-        } else {
-			View::assign('authExpense',isAuthExpense($this->uid));
-            return view();
-        }
-    }
+			if (isset($param['pay_status']) && $param['pay_status'] != "") {
+				$where[] = ['pay_status', '=', $param['pay_status']];
+			}
+			$list = $this->model->datalist($param, $where);
+
+			$cost = $this->model::where($where)->sum('cost');
+			$totalRow['cost'] = sprintf("%.2f", $cost);
+			return table_assign(0, '', $list);
+		} else {
+			View::assign('authExpense', isAuthExpense($this->uid));
+			return view();
+		}
+	}
 
 }

--
Gitblit v1.9.1