完善费用清单
parent
4525c3e4e9
commit
c8c4b65aff
|
|
@ -7,6 +7,7 @@ use Slowlyo\OwlAdmin\Renderers\Page;
|
||||||
use Slowlyo\OwlAdmin\Renderers\Form;
|
use Slowlyo\OwlAdmin\Renderers\Form;
|
||||||
use Slowlyo\OwlAdmin\Controllers\AdminController;
|
use Slowlyo\OwlAdmin\Controllers\AdminController;
|
||||||
use App\Services\Admin\ConstFlowService;
|
use App\Services\Admin\ConstFlowService;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 费用明细
|
* 费用明细
|
||||||
|
|
@ -22,7 +23,6 @@ class ConstFlowController extends AdminController
|
||||||
$crud = $this->baseCRUD()
|
$crud = $this->baseCRUD()
|
||||||
->filterTogglable(false)
|
->filterTogglable(false)
|
||||||
->headerToolbar([
|
->headerToolbar([
|
||||||
...$this->baseHeaderToolBar()
|
|
||||||
])
|
])
|
||||||
->filter(
|
->filter(
|
||||||
$this->baseFilter()->body([
|
$this->baseFilter()->body([
|
||||||
|
|
@ -40,7 +40,7 @@ class ConstFlowController extends AdminController
|
||||||
amisMake()->TableColumn('created_at', '办理时间')->type('datetime')->sortable(true),
|
amisMake()->TableColumn('created_at', '办理时间')->type('datetime')->sortable(true),
|
||||||
amisMake()->Operation()->label(__('admin.actions'))->buttons([
|
amisMake()->Operation()->label(__('admin.actions'))->buttons([
|
||||||
$this->showFlow(),
|
$this->showFlow(),
|
||||||
//打印清单
|
//打印票据
|
||||||
]),
|
]),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
@ -57,10 +57,32 @@ class ConstFlowController extends AdminController
|
||||||
public function showFlow(){
|
public function showFlow(){
|
||||||
return amisMake()->DialogAction()->icon('fa-regular fa-eye')->label('费用清单')->level('link')->dialog(
|
return amisMake()->DialogAction()->icon('fa-regular fa-eye')->label('费用清单')->level('link')->dialog(
|
||||||
amisMake()->Dialog()->title('查看详情')->body([
|
amisMake()->Dialog()->title('查看详情')->body([
|
||||||
// \amisMake()->Service()->schemaApi(admin_url('custom-region-tabs?id=${id}'))
|
\amisMake()->Service()->schemaApi(admin_url('flow-list-tabs?id=${id}'))
|
||||||
])->size('lg')->actions([
|
])->size('lg')->actions([])
|
||||||
//打印--todo
|
|
||||||
])
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -167,99 +167,17 @@ class OldmenController extends AdminController
|
||||||
*/
|
*/
|
||||||
public function liveFeelist(Request $request)
|
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([
|
return $this->response()->success([
|
||||||
'rows'=> $rows,
|
'rows'=> $this->service->makeFeelist(ConstFlow::TYPE_IN, $request->input()),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function exitFeelist(Request $request)
|
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([
|
return $this->response()->success([
|
||||||
'rows'=> $rows,
|
'rows'=> $this->service->makeFeelist(ConstFlow::TYPE_EXIT, array_merge($request->input(), [
|
||||||
|
'oldman_id' => $request->input('oldman_id', 0)
|
||||||
|
])),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -43,6 +43,7 @@ Route::group([
|
||||||
|
|
||||||
//费用设置
|
//费用设置
|
||||||
$router->resource('consts', \App\Admin\Controllers\ConstFlowController::class)->only(['index', 'show', 'destroy']);
|
$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->get('const-setting', '\App\Admin\Controllers\SettingController@settingFeeConfig');
|
||||||
$router->post('const-setting', '\App\Admin\Controllers\SettingController@settingFeeConfigStore');
|
$router->post('const-setting', '\App\Admin\Controllers\SettingController@settingFeeConfigStore');
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,8 +26,8 @@ class ConstFlow extends Model
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
self::TYPE_IN => "<span class='label label-info'>入住缴费</span>",
|
self::TYPE_IN => "<span class='label label-info'>入住缴费</span>",
|
||||||
self::TYPE_CONTINUE => "<span class='label label-success'>续住缴费</span>",
|
self::TYPE_CONTINUE => "<span class='label label-warning'>续住缴费</span>",
|
||||||
self::TYPE_EXIT => "<span class='label label-warning'>离开结算</span>",
|
self::TYPE_EXIT => "<span class='label label-danger'>离开结算</span>",
|
||||||
'*'=>'其他:${live_in}'
|
'*'=>'其他:${live_in}'
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,4 +19,13 @@ class ConstFlowService extends BaseService
|
||||||
protected string $modelFilterName = ConstFlowFilter::class;
|
protected string $modelFilterName = ConstFlowFilter::class;
|
||||||
|
|
||||||
protected array $withRelationships = ['oldman'];
|
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
|
||||||
|
]));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,10 @@
|
||||||
namespace App\Services\Admin;
|
namespace App\Services\Admin;
|
||||||
|
|
||||||
use App\Models\Oldmen;
|
use App\Models\Oldmen;
|
||||||
|
use App\Models\Keyword;
|
||||||
use App\Filters\Admin\OldmenFilter;
|
use App\Filters\Admin\OldmenFilter;
|
||||||
use App\Models\ConstFlow;
|
use App\Models\ConstFlow;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @method Oldmen getModel()
|
* @method Oldmen getModel()
|
||||||
|
|
@ -102,6 +104,115 @@ class OldmenService extends BaseService
|
||||||
return $money;
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除
|
* 删除
|
||||||
*
|
*
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue