diff --git a/app/Admin/Controllers/ConstFlowController.php b/app/Admin/Controllers/ConstFlowController.php
index 878271c..167a8bb 100644
--- a/app/Admin/Controllers/ConstFlowController.php
+++ b/app/Admin/Controllers/ConstFlowController.php
@@ -7,6 +7,7 @@ use Slowlyo\OwlAdmin\Renderers\Page;
use Slowlyo\OwlAdmin\Renderers\Form;
use Slowlyo\OwlAdmin\Controllers\AdminController;
use App\Services\Admin\ConstFlowService;
+use Illuminate\Http\Request;
/**
* 费用明细
@@ -22,7 +23,6 @@ class ConstFlowController extends AdminController
$crud = $this->baseCRUD()
->filterTogglable(false)
->headerToolbar([
- ...$this->baseHeaderToolBar()
])
->filter(
$this->baseFilter()->body([
@@ -40,7 +40,7 @@ class ConstFlowController extends AdminController
amisMake()->TableColumn('created_at', '办理时间')->type('datetime')->sortable(true),
amisMake()->Operation()->label(__('admin.actions'))->buttons([
$this->showFlow(),
- //打印清单
+ //打印票据
]),
]);
@@ -57,10 +57,32 @@ class ConstFlowController extends AdminController
public function showFlow(){
return amisMake()->DialogAction()->icon('fa-regular fa-eye')->label('费用清单')->level('link')->dialog(
amisMake()->Dialog()->title('查看详情')->body([
- // \amisMake()->Service()->schemaApi(admin_url('custom-region-tabs?id=${id}'))
- ])->size('lg')->actions([
- //打印--todo
- ])
+ \amisMake()->Service()->schemaApi(admin_url('flow-list-tabs?id=${id}'))
+ ])->size('lg')->actions([])
);
}
+
+ public function flowExtendList(Request $request)
+ {
+ $id = $request->input('id');
+ $rows = [];
+ $flow = $this->service->getDetail($id);
+ $rows = $this->service->makeFeelist($flow);
+ $page = amisMake()->table()->affixHeader(false)
+ ->data([
+ 'rows' => $rows
+ ])
+ ->title('')
+ ->source('${rows}')
+ ->combineNum(2)
+ ->columns([
+ amisMake()->TableColumn()->name('name')->label('名称'),
+ amisMake()->TableColumn()->name('fee_name')->label('费用项'),
+ amisMake()->TableColumn()->name('fee_value')->label('费用'),
+ ])->affixRow([
+ amis('text')->text('合计')->colSpan(2),
+ amis('tpl')->tpl('${SUM(ARRAYMAP(rows, item => item.fee_value))}')
+ ]);
+ return $this->response()->success($page);
+ }
}
diff --git a/app/Admin/Controllers/OldmenController.php b/app/Admin/Controllers/OldmenController.php
index b3e23c5..84ccc63 100644
--- a/app/Admin/Controllers/OldmenController.php
+++ b/app/Admin/Controllers/OldmenController.php
@@ -167,99 +167,17 @@ class OldmenController extends AdminController
*/
public function liveFeelist(Request $request)
{
- $rows = $addFee = $delFee = [];
- foreach($request->input() as $key => $value){
- if($key == 'add_extends'){
- if(is_array($value)){
- $addFee = $value;
- }
- }elseif($key == 'del_extends'){
- if(is_array($value)){
- $delFee = $value;
- }
- }else{
- if(is_array($value)){
- foreach($value as $item =>$vv){
- $_fee = Keyword::where('key', $item)->first();
- $rows[] = [
- 'name' => $_fee->parent->name,
- 'fee_name' => $_fee->name,
- 'fee_value' => $vv,
- ];
- }
- }else{
- $_fee = Keyword::where('key', $key)->first();
- $rows[] = [
- 'name' => $_fee->parent->name,
- 'fee_name' => $_fee->name,
- 'fee_value' => $value,
- ];
- }
- }
- }
- foreach($addFee as $item){
- if(isset($item['name']) && isset($item['fee'])){
- $rows[] = [
- 'name' => '收费项',
- 'fee_name' => $item['name'],
- 'fee_value' => $item['fee'],
- ];
- }
- }
- foreach($delFee as $item){
- if(isset($item['name']) && isset($item['fee'])){
- $rows[] = [
- 'name' => '抵扣项',
- 'fee_name' => $item['name'],
- 'fee_value' => 0-$item['fee'],
- ];
- }
- }
return $this->response()->success([
- 'rows'=> $rows,
+ 'rows'=> $this->service->makeFeelist(ConstFlow::TYPE_IN, $request->input()),
]);
}
public function exitFeelist(Request $request)
- {
- $rows = $addFee = $delFee = [];
- $oldMan = Oldmen::find($request->input('oldman_id', 0));
- if($oldMan){
- $flowList = ConstFlow::where('oldman_id', $oldMan->id)
- ->whereIn('const_type', [ConstFlow::TYPE_IN, ConstFlow::TYPE_CONTINUE])
- ->whereBetween('start_at', [$oldMan->live_in_at, $oldMan->avliable_at])//开始时间在用户这段时间内的清单
- ->get();
- foreach($flowList as $flow){
- $rows[] = [
- 'name' => '缴费记录',
- 'fee_name' => ConstFlow::typeMap()[$flow->const_type].'【'.$flow->created_at->format('m-d H:i:s').'】',
- 'fee_value' => $flow->money,
- ];
- }
- }
-
- $addFee = $request->input('add_extends') ?? [];
- $delFee = $request->input('del_extends') ?? [];
- foreach($addFee as $item){
- if(isset($item['name']) && isset($item['fee'])){
- $rows[] = [
- 'name' => '抵扣项',
- 'fee_name' => $item['name'],
- 'fee_value' => $item['fee'],
- ];
- }
- }
- foreach($delFee as $item){
- if(isset($item['name']) && isset($item['fee'])){
- $rows[] = [
- 'name' => '收费项',
- 'fee_name' => $item['name'],
- 'fee_value' => 0-$item['fee'],
- ];
- }
- }
+ {
return $this->response()->success([
- 'rows'=> $rows,
+ 'rows'=> $this->service->makeFeelist(ConstFlow::TYPE_EXIT, array_merge($request->input(), [
+ 'oldman_id' => $request->input('oldman_id', 0)
+ ])),
]);
}
diff --git a/app/Admin/routes.php b/app/Admin/routes.php
index 6229d80..90c0b7a 100644
--- a/app/Admin/routes.php
+++ b/app/Admin/routes.php
@@ -43,6 +43,7 @@ Route::group([
//费用设置
$router->resource('consts', \App\Admin\Controllers\ConstFlowController::class)->only(['index', 'show', 'destroy']);
+ $router->post('flow-list-tabs', '\App\Admin\Controllers\ConstFlowController@flowExtendList');
$router->get('const-setting', '\App\Admin\Controllers\SettingController@settingFeeConfig');
$router->post('const-setting', '\App\Admin\Controllers\SettingController@settingFeeConfigStore');
diff --git a/app/Models/ConstFlow.php b/app/Models/ConstFlow.php
index 2082c2f..ec635cc 100644
--- a/app/Models/ConstFlow.php
+++ b/app/Models/ConstFlow.php
@@ -26,8 +26,8 @@ class ConstFlow extends Model
{
return [
self::TYPE_IN => "入住缴费",
- self::TYPE_CONTINUE => "续住缴费",
- self::TYPE_EXIT => "离开结算",
+ self::TYPE_CONTINUE => "续住缴费",
+ self::TYPE_EXIT => "离开结算",
'*'=>'其他:${live_in}'
];
}
diff --git a/app/Services/Admin/ConstFlowService.php b/app/Services/Admin/ConstFlowService.php
index 83b4222..79fd7a8 100644
--- a/app/Services/Admin/ConstFlowService.php
+++ b/app/Services/Admin/ConstFlowService.php
@@ -19,4 +19,13 @@ class ConstFlowService extends BaseService
protected string $modelFilterName = ConstFlowFilter::class;
protected array $withRelationships = ['oldman'];
+
+ public function makeFeelist(ConstFlow $flow)
+ {
+ return (new OldmenService())->makeFeelist($flow->const_type, array_merge($flow->extends, [
+ 'oldman_id' => $flow->oldman_id,
+ 'live_in_at' => $flow->start_at,
+ 'avliable_at' => $flow->end_at
+ ]));
+ }
}
diff --git a/app/Services/Admin/OldmenService.php b/app/Services/Admin/OldmenService.php
index 80ee2d6..af7ef69 100644
--- a/app/Services/Admin/OldmenService.php
+++ b/app/Services/Admin/OldmenService.php
@@ -3,8 +3,10 @@
namespace App\Services\Admin;
use App\Models\Oldmen;
+use App\Models\Keyword;
use App\Filters\Admin\OldmenFilter;
use App\Models\ConstFlow;
+use Illuminate\Support\Arr;
/**
* @method Oldmen getModel()
@@ -102,6 +104,115 @@ class OldmenService extends BaseService
return $money;
}
+ public function makeFeelist($type, $extends = []){
+ $rows = $addFee = $delFee =[];
+ $oldMan = Oldmen::find(Arr::get($extends, 'oldman_id', 0));
+
+ switch($type){
+ case ConstFlow::TYPE_EXIT:
+ if($oldMan){
+ if(isset($extends['live_in_at']) && $extends['avliable_at']){
+ $startAt = $extends['live_in_at'];
+ $endAt = $extends['avliable_at'];
+ }else{
+ $startAt = $oldMan->live_in_at;
+ $endAt = $oldMan->avliable_at;
+ }
+
+ $flowList = ConstFlow::where('oldman_id', $oldMan->id)
+ ->whereIn('const_type', [ConstFlow::TYPE_IN, ConstFlow::TYPE_CONTINUE])
+ ->whereBetween('start_at', [$startAt, $endAt])//开始时间在用户这段时间内的清单
+ ->get();
+ foreach($flowList as $flow){
+ $rows[] = [
+ 'name' => '缴费记录',
+ 'fee_name' => ConstFlow::typeMap()[$flow->const_type].'【'.$flow->created_at->format('m-d H:i:s').'】',
+ 'fee_value' => $flow->money,
+ ];
+ }
+ }
+
+ $addFee = Arr::get($extends, 'add_extends', []);
+ if(!$addFee){
+ $addFee = Arr::get($extends, 'add_fee', []);
+ }
+ $delFee = Arr::get($extends, 'del_extends', []);
+ if(!$delFee){
+ $delFee = Arr::get($extends, 'del_fee', []);
+ }
+ foreach($addFee as $item){
+ if(isset($item['name']) && isset($item['fee'])){
+ $rows[] = [
+ 'name' => '抵扣项',
+ 'fee_name' => $item['name'],
+ 'fee_value' => $item['fee'],
+ ];
+ }
+ }
+ foreach($delFee as $item){
+ if(isset($item['name']) && isset($item['fee'])){
+ $rows[] = [
+ 'name' => '收费项',
+ 'fee_name' => $item['name'],
+ 'fee_value' => 0-$item['fee'],
+ ];
+ }
+ }
+ break;
+ default:
+ unset($extends['oldman_id'], $extends['live_in_at'], $extends['avliable_at']);
+ foreach($extends as $key => $value){
+ if(in_array($key, ['add_extends', 'add_fee'])){
+ if(is_array($value)){
+ $addFee = $value;
+ }
+ }elseif(in_array($key, ['del_extends', 'del_fee'])){
+ if(is_array($value)){
+ $delFee = $value;
+ }
+ }else{
+ if(is_array($value)){
+ foreach($value as $item =>$vv){
+ $_fee = Keyword::where('key', $item)->first();
+ $rows[] = [
+ 'name' => $_fee->parent?->name ?? '',
+ 'fee_name' => $_fee->name,
+ 'fee_value' => $vv,
+ ];
+ }
+ }else{
+ $_fee = Keyword::where('key', $key)->first();
+ $rows[] = [
+ 'name' => $_fee->parent?->name ?? '',
+ 'fee_name' => $_fee->name,
+ 'fee_value' => $value,
+ ];
+ }
+ }
+ }
+ foreach($addFee as $item){
+ if(isset($item['name']) && isset($item['fee'])){
+ $rows[] = [
+ 'name' => '收费项',
+ 'fee_name' => $item['name'],
+ 'fee_value' => $item['fee'],
+ ];
+ }
+ }
+ foreach($delFee as $item){
+ if(isset($item['name']) && isset($item['fee'])){
+ $rows[] = [
+ 'name' => '抵扣项',
+ 'fee_name' => $item['name'],
+ 'fee_value' => 0-$item['fee'],
+ ];
+ }
+ }
+ break;
+ }
+ return $rows;
+ }
+
/**
* 删除
*