1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- <?php
- namespace app\admin\controller\finance;
- use app\admin\service\sys_manage\DeptService;
- use support\Db;
- use support\Request;
- class PremisesRevenueController
- {
- private $accountType = ['CASH', 'POINTS', 'CARD'];
- public function list(Request $request)
- {
- $page = $request->get('page', 1);
- $pageSize = $request->get('pageSize', 20);
- $premises = $request->get('premises', DeptService::getPremisesList());
- $premisesKeyValue = [];
- foreach($premises as $item){
- $premisesKeyValue[$item['key']] = $item['label'];
- }
- $month = date('Ym');
- $data = [];
- $statistics = ['income'=>0,'expend'=>0];
- foreach ($premises as $premise) {
- $premisesData = [];
- $premisesData['premises'] = $premise['label'];
- $premiseKey = intval($premise['key']);
- $premisesData['expend'] = $premisesData['income'] = [
- 'card' => 0,
- 'recharge' => 0,
- 'goods' => 0,
- 'service' => 0,
- 'meals' => 0,
- 'package' => 0,
- 'amount' => 0
- ];
- $income = Db::table("data_income_{$month}")
- ->where('join_data_income_dept_id',$premiseKey)
- ->selectRaw("data_income_classify,SUM(data_income_amount) as data_income_amount")
- ->groupBy('data_income_classify')
- ->get();
-
- foreach($income as $item){
- if($item->data_income_classify == 'CARD'){
- $premisesData['income']['card']+=$item->data_income_amount;
- }else if($item->data_income_classify == 'RECHARGE'){
- $premisesData['income']['recharge']+=$item->data_income_amount;
- }else if($item->data_income_classify == 'GOODS'){
- $premisesData['income']['goods']+=$item->data_income_amount;
- }else if(in_array($item->data_income_classify,['CHNMED','CHNNCD','SERVICE'])){
- $premisesData['income']['service']+=$item->data_income_amount;
- }else if($item->data_income_classify == 'MEALS'){
- $premisesData['income']['meals']+=$item->data_income_amount;
- }else if($item->data_income_classify == 'PACKAGE'){
- $premisesData['income']['package']+=$item->data_income_amount;
- }
- $premisesData['income']['amount'] += $item->data_income_amount;
- $statistics['income'] += $premisesData['income']['amount'];
- }
- $expend = Db::table("data_expend_{$month}")
- ->where('join_data_expend_dept_id',$premiseKey)
- ->selectRaw("data_expend_classify,SUM(data_expend_amount) as data_expend_amount")
- ->groupBy('data_expend_classify')
- ->get();
-
- foreach($expend as $item){
- if($item->data_expend_classify == 'CARD'){
- $premisesData['expend']['card']+=$item->data_expend_amount;
- }else if($item->data_expend_classify == 'RECHARGE'){
- $premisesData['expend']['recharge']+=$item->data_expend_amount;
- }else if($item->data_expend_classify == 'GOODS'){
- $premisesData['expend']['goods']+=$item->data_expend_amount;
- }else if(in_array($item->data_expend_classify,['CHNMED','CHNNCD','SERVICE'])){
- $premisesData['expend']['service']+=$item->data_expend_amount;
- }else if($item->data_expend_classify == 'MEALS'){
- $premisesData['expend']['meals']+=$item->data_expend_amount;
- }else if($item->data_expend_classify == 'PACKAGE'){
- $premisesData['expend']['package']+=$item->data_expend_amount;
- }
- $premisesData['expend']['amount'] += $item->data_expend_amount;
- $statistics['expend'] += $premisesData['expend']['amount'];
- }
- $data[] = $premisesData;
- }
- return json_success('', ['rows'=>$data,'statistics'=>$statistics]);
- }
- }
|