|
@@ -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];
|