cqpCow 1 year ago
parent
commit
e62adc39f1
1 changed files with 34 additions and 5 deletions
  1. 34 5
      app/Service/FinanceService.php

+ 34 - 5
app/Service/FinanceService.php

@@ -41,9 +41,18 @@ class FinanceService extends Service
     }
 
     public function financeList($data){
-        $list = Finance::where('del_time',0)->select('id','finance_account_name','account','ifsc','amount','crt_id','crt_time')->orderBy('id','desc');
-
-        $list = $this->limit($list,'',$data);
+        $model = Finance::where('del_time',0)
+            ->select('id','finance_account_name','account','ifsc','amount','crt_id','crt_time')
+            ->orderBy('id','desc');
+
+        if(! empty($data['finance_account_name'])) $model->where('finance_account_name', 'LIKE', '%'.$data['finance_account_name'].'%');
+        if(! empty($data['account'])) $model->where('account', 'LIKE', '%'.$data['account'].'%');
+        if(! empty($data['ifsc'])) $model->where('ifsc', 'LIKE', '%'.$data['ifsc'].'%');
+        if(! empty($data['amount'])) $model->where('amount', $data['amount']);
+        if(! empty($data['crt_id'])) $model->where('crt_id', $data['crt_id']);
+        if(! empty($data['crt_time'][0]) && ! empty($data['crt_time'][1])) $model->whereBetween('crt_time',[$data['crt_time'][0],$data['crt_time'][1]]);
+
+        $list = $this->limit($model,'',$data);
         $list = $this->fillFinanceList($list);
 
         return [200,$list];
@@ -66,9 +75,29 @@ class FinanceService extends Service
     }
 
     public function financeDetailList($data){
-        $list = FinanceDetail::where('del_time',0)->select('id','finance_id','amount','crt_time')->orderBy('id','desc');
+        $model = FinanceDetail::where('del_time',0)
+            ->select('id','finance_id','amount','crt_time')
+            ->orderBy('id','desc');
+
+        if(! empty($data['finance_account_name']) || ! empty($data['account']) || ! empty($data['ifsc']) || ! empty($data['crt_id']) || ! empty($data['total_amount'])){
+            $search = '';
+            if(! empty($data['finance_account_name'])) $search .= "(finance_account_name LIKE '%'. {$data['finance_account_name']} .'%') AND ";
+            if(! empty($data['account'])) $search .= "(account LIKE '%'. {$data['account']} .'%') AND ";
+            if(! empty($data['ifsc'])) $search .= "(ifsc LIKE '%'. {$data['ifsc']} .'%') AND ";
+            if(! empty($data['crt_id'])) $search .= "(crt_id = {$data['crt_id']}) AND ";
+            if(! empty($data['total_amount'])) $search .= "(amount = {$data['total_amount']}) AND ";
+            $search = rtrim($search,'AND ');
+            $search = "({$search})";
+            $result = Finance::where('del_time',0)
+                ->whereRaw($search)
+                ->select('id')
+                ->get()->toArray();
+            $model->whereIn('finance_id', array_column($result,'id'));
+        }
+        if(! empty($data['amount'])) $model->where('amount', $data['amount']);
+        if(! empty($data['crt_time'][0]) && ! empty($data['crt_time'][1])) $model->whereBetween('crt_time',[$data['crt_time'][0],$data['crt_time'][1]]);
 
-        $list = $this->limit($list,'',$data);
+        $list = $this->limit($model,'',$data);
         $list = $this->fillFinanceDetailList($list);
 
         return [200,$list];