完善费用清单
parent
4525c3e4e9
commit
c8c4b65aff
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
])),
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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');
|
||||
|
||||
|
|
|
|||
|
|
@ -26,8 +26,8 @@ class ConstFlow extends Model
|
|||
{
|
||||
return [
|
||||
self::TYPE_IN => "<span class='label label-info'>入住缴费</span>",
|
||||
self::TYPE_CONTINUE => "<span class='label label-success'>续住缴费</span>",
|
||||
self::TYPE_EXIT => "<span class='label label-warning'>离开结算</span>",
|
||||
self::TYPE_CONTINUE => "<span class='label label-warning'>续住缴费</span>",
|
||||
self::TYPE_EXIT => "<span class='label label-danger'>离开结算</span>",
|
||||
'*'=>'其他:${live_in}'
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
]));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*
|
||||
|
|
|
|||
Loading…
Reference in New Issue