Compare commits

...

4 Commits

Author SHA1 Message Date
vine_liutk f79a1ee60a 调整续住费用计算兼容 2023-06-26 13:00:02 +08:00
vine_liutk 9be3b31eb2 调整续住结束时间 2023-06-26 12:54:24 +08:00
vine_liutk 1d1e36bdc0 处理自动填入和禁止回车提交 2023-06-26 12:28:17 +08:00
vine_liutk a2d50fec23 处理自动填入 2023-06-26 11:48:49 +08:00
6 changed files with 125 additions and 21 deletions

View File

@ -64,13 +64,18 @@ class LiveContinueController extends AdminController
$feeKeys['del_extends'] = '${del_extends}';
$feeKeys['continue_fee'] = '${continue_fee}';
foreach(Keyword::getByParentKey('continue_fee') as $fee){
$continueArr[] = Components::make()->decimalControl('continue_fee['.$fee->key.']', $fee->name)->description(amis('tpl')->tpl('根据当前护理等级,建议费用为:${'.$fee->key.'_tmp}'));
// $feeKeys[$fee->key.'_tmp'] = '${'.$fee->key.'_tmp}';
}
$page = $this->basePage()->body([
amisMake()->Card()->className('border-0')->body(
amisMake()->Wrapper()->className('p-0')->body(
amisMake()->Grid()->className('relative')->columns([
amisMake()->Wrapper()->sm(8)->body([
amisMake()->Panel()->title('续住表单')->body(
amisMake()->form()->title('')->panelClassName('border-0')->mode('horizontal')->name('base_form')
amisMake()->form()->title('')->panelClassName('border-0')->mode('horizontal')->name('base_form')->preventEnterSubmit(true)
->api(admin_url('live-continue-do'))
->body([
amisMake()->FieldSetControl()->title('续住人信息')->collapsable(true)->body([
@ -144,10 +149,16 @@ class LiveContinueController extends AdminController
amisMake()->FieldSetControl()->className('mt-10')->title('费用明细')->collapsable(true)->body([
amisMake()->FieldSetControl()->title('基础费用')->className('mt-5')->collapsable(true)->size('base')->body(
amisMake()->Service()->schemaApi([
amisMake()->Service()
// ->schemaApi([
// "method"=>'get',
// "url" => admin_url('live-fee-form').'?nurse_lv=${nurse_lv}&start_at=${start_at}&end_at=${end_at}&type=continue_fee',
// ])
->api([
"method"=>'get',
"url" => admin_url('live-fee-form').'?nurse_lv=${nurse_lv}&start_at=${start_at}&end_at=${end_at}&type=continue_fee',
"url" => admin_url('live-fee-form-data').'?nurse_lv=${nurse_lv}&start_at=${start_at}&end_at=${end_at}&type=continue_fee',
])
->body($continueArr),
),
]),

View File

@ -36,7 +36,7 @@ class LiveExitController extends AdminController
amisMake()->Grid()->className('relative')->columns([
amisMake()->Wrapper()->sm(8)->body([
amisMake()->Panel()->title('结算表单')->body(
amisMake()->form()->title('')->panelClassName('border-0')->mode('horizontal')->name('base_form')
amisMake()->form()->title('')->panelClassName('border-0')->mode('horizontal')->name('base_form')->preventEnterSubmit(true)
->api(admin_url('live-exit-do'))
->body([
amisMake()->FieldSetControl()->title('客人信息')->collapsable(true)->body([

View File

@ -66,19 +66,20 @@ class LiveInController extends AdminController
$feeKeys['live_fee'] = '${live_fee}';
$feeKeys['bonds_fee'] = '${bonds_fee}';
// foreach(Keyword::getByParentKey('live_fee') as $fee){
// $feeKeys[$fee->key] = '${'.$fee->key.'}';
// }
// foreach(Keyword::getByParentKey('bonds_fee') as $fee){
// $feeKeys[$fee->key] = '${'.$fee->key.'}';
// }
foreach(Keyword::getByParentKey('live_fee') as $fee){
$liveArr[] = Components::make()->decimalControl('live_fee['.$fee->key.']', $fee->name)->description(amis('tpl')->tpl('根据当前护理等级,建议费用为:${'.$fee->key.'_tmp}'));
// $feeKeys[$fee->key.'_tmp'] = '${'.$fee->key.'_tmp}';
}
foreach(Keyword::getByParentKey('bonds_fee') as $fee){
$bondsArr[] = Components::make()->decimalControl('bonds_fee['.$fee->key.']', $fee->name)->description(amis('tpl')->tpl('根据当前护理等级,建议费用为:${'.$fee->key.'_tmp}'));
}
$page = $this->basePage()->body([
amisMake()->Card()->className('border-0')->body(
amisMake()->Wrapper()->className('p-0')->body(
amisMake()->Grid()->className('relative')->columns([
amisMake()->Wrapper()->sm(8)->body([
amisMake()->Panel()->title('入住表单')->body(
amisMake()->form()->title('')->panelClassName('border-0')->mode('horizontal')->name('base_form')
amisMake()->form()->title('')->panelClassName('border-0')->mode('horizontal')->name('base_form')->preventEnterSubmit(true)
->api(admin_url('live-in-do'))
->body([
amisMake()->FieldSetControl()->title('入住人信息')->collapsable(true)->body([
@ -147,16 +148,28 @@ class LiveInController extends AdminController
amisMake()->FieldSetControl()->className('mt-10')->title('费用明细')->collapsable(true)->body([
amisMake()->FieldSetControl()->title('基础费用')->className('mt-5')->collapsable(true)->size('base')->body(
amisMake()->Service()->schemaApi([
amisMake()->Service()
// ->schemaApi([
// "method"=>'get',
// "url" => admin_url('live-fee-form').'?nurse_lv=${nurse_lv}&live_in_date=${live_in_date}&type=live_fee',
// ])
->api([
"method"=>'get',
"url" => admin_url('live-fee-form').'?nurse_lv=${nurse_lv}&live_in_date=${live_in_date}&type=live_fee',
"url" => admin_url('live-fee-form-data').'?nurse_lv=${nurse_lv}&live_in_date=${live_in_date}&type=live_fee',
])
->body($liveArr),
),
amisMake()->FieldSetControl()->title('保证金')->className('mt-5')->collapsable(true)->size('base')->body(
amisMake()->Service()->schemaApi([
amisMake()->Service()
// ->schemaApi([
// "method"=>'get',
// "url" => admin_url('live-fee-form').'?nurse_lv=${nurse_lv}&live_in_date=${live_in_date}&type=bonds_fee',
// ])
->api([
"method"=>'get',
"url" => admin_url('live-fee-form').'?nurse_lv=${nurse_lv}&live_in_date=${live_in_date}&type=bonds_fee',
"url" => admin_url('live-fee-form-data').'?nurse_lv=${nurse_lv}&live_in_date=${live_in_date}&type=bonds_fee',
])
->body($bondsArr),
),
]),

View File

@ -264,7 +264,7 @@ class OldmenController extends AdminController
}
/**
* 费用表单
* 推荐费用表单
*
*/
public function liveSchemaForm(Request $request)
@ -276,16 +276,19 @@ class OldmenController extends AdminController
$endDay = $dateRange ? explode(',', $dateRange)[1].' 23:59:59' : $request->input('end_at', null);
if($startDay && $endDay){
$diffYears = Carbon::parse($startDay)->diffInYears($endDay);
$diffMonths = Carbon::parse($startDay)->addYears($diffYears)->diffInMonths($endDay);
$diffAbMonths = Carbon::parse($startDay)->diffInMonths($endDay);
$diffDays = Carbon::parse($startDay)->addYears($diffYears)->addMonths($diffMonths)->diffInDays($endDay);
$diffAbDays = Carbon::parse($startDay)->diffInDays($endDay);
$startDay = Carbon::parse($startDay);
$endDay = Carbon::parse($endDay)->addSecond(1);
$diffYears = $startDay->diffInYears($endDay);
$diffMonths = $startDay->addYears($diffYears)->diffInMonths($endDay);
$diffAbMonths = $startDay->diffInMonths($endDay);
$diffDays = $startDay->addYears($diffYears)->addMonths($diffMonths)->diffInDays($endDay);
$diffAbDays = $startDay->diffInDays($endDay);
}
$lv = $request->input('nurse_lv', 1);
$feeKey = Keyword::getByParentKey($type);
$feeKeyHelp = AdminSetting::whereIn('key', $feeKey?->pluck('key')->toArray())->pluck('values','key')->toArray();
$feeData = $feeArr = [];
foreach(Keyword::getByParentKey($type) as $fee)
{
$_feeValue = 0;
@ -297,6 +300,7 @@ class OldmenController extends AdminController
}, $feeKeyHelp[$fee->key]['values']);
if(isset($_feeValues[$lv]['day'])){
//判断是否有设置年份
if(isset($_feeValues[$lv]['year'])){
$_feeValue += bcmul($diffYears, $_feeValues[$lv]['year'], 2);
@ -309,6 +313,7 @@ class OldmenController extends AdminController
}else{
if(isset($_feeValues[$lv]['month'])){
$_feeValue += bcmul($diffAbMonths, $_feeValues[$lv]['month'], 2);
$_feeValue += bcmul($diffDays, $_feeValues[$lv]['day'], 2);
}else{
$_feeValue += bcmul($diffAbDays, $_feeValues[$lv]['day'], 2);
}
@ -322,6 +327,78 @@ class OldmenController extends AdminController
$feeArr[] = Components::make()->decimalControl($type.'['.$fee->key.']', $fee->name)->description(amis('tpl')->tpl('根据当前护理等级,建议费用为:'.$_feeValue));
}
$resData['body'] = $feeArr;
return $this->response()->success($resData);
}
/**
* 推荐费用表单
*
*/
public function liveSchemaFormData(Request $request)
{
$type = $request->input('type', 'live_fee');
$dateRange = $request->input('live_in_date', null);
//处理续住时间传递
$startDay = $dateRange ? explode(',', $dateRange)[0] : $request->input('start_at', null);
$endDay = $dateRange ? explode(',', $dateRange)[1] : $request->input('end_at', null);
if($startDay && $endDay){
$startDay = Carbon::parse($startDay.' 00:00:00');
$endDay = Carbon::parse($endDay.' 23:59:59')->addSecond(1);
$diffYears = $startDay->diffInYears($endDay);
$diffMonths = $startDay->addYears($diffYears)->diffInMonths($endDay);
$diffAbMonths = $startDay->diffInMonths($endDay);
$diffDays = $startDay->addYears($diffYears)->addMonths($diffMonths)->diffInDays($endDay);
$diffAbDays = $startDay->diffInDays($endDay);
}
$lv = $request->input('nurse_lv', 1);
$feeKey = Keyword::getByParentKey($type);
$feeKeyHelp = AdminSetting::whereIn('key', $feeKey?->pluck('key')->toArray())->pluck('values','key')->toArray();
$feeData = $feeArr = [];
foreach(Keyword::getByParentKey($type) as $fee)
{
$_feeValue = 0;
if(isset($feeKeyHelp[$fee->key])){
$_feeValues = [];
if($feeKeyHelp[$fee->key]['has_time'] == 2 && !empty($startDay) && !empty($endDay)){
array_map(function($item) use(&$_feeValues){
$_feeValues[$item['lv']][$item['time_type']] = $item['fee'];
}, $feeKeyHelp[$fee->key]['values']);
if(isset($_feeValues[$lv]['day'])){
//判断是否有设置年份
if(isset($_feeValues[$lv]['year'])){
$_feeValue += bcmul($diffYears, $_feeValues[$lv]['year'], 2);
if(isset($_feeValues[$lv]['month'])){
$_feeValue += bcmul($diffMonths, $_feeValues[$lv]['month'], 2);
$_feeValue += bcmul($diffDays, $_feeValues[$lv]['day'], 2);
}else{
$_feeValue += bcmul($diffAbDays, $_feeValues[$lv]['day'], 2);
}
}else{
if(isset($_feeValues[$lv]['month'])){
$_feeValue += bcmul($diffAbMonths, $_feeValues[$lv]['month'], 2);
$_feeValue += bcmul($diffDays, $_feeValues[$lv]['day'], 2);
}else{
$_feeValue += bcmul($diffAbDays, $_feeValues[$lv]['day'], 2);
}
}
}
}else{
$_feeValues = collect($feeKeyHelp[$fee->key]['values'] ?? [])->keyBy('lv')->toArray();
$_feeValue = $_feeValues[$lv]['fee'] ?? 0;
}
}
$feeArr[$type][$fee->key] = $_feeValue;
$feeArr[$fee->key.'_tmp'] = $_feeValue;
}
return $this->response()->success($feeArr);
}

View File

@ -28,6 +28,7 @@ Route::group([
$router->get('live-feelist', '\App\Admin\Controllers\OldmenController@liveFeelist');
$router->get('exit-feelist', '\App\Admin\Controllers\OldmenController@exitFeelist');
$router->get('live-fee-form', '\App\Admin\Controllers\OldmenController@liveSchemaForm');
$router->get('live-fee-form-data', '\App\Admin\Controllers\OldmenController@liveSchemaFormData');
$router->get('live-const-flow', '\App\Admin\Controllers\OldmenController@liveConstFlow');
//客人-入住
$router->get('live-in', '\App\Admin\Controllers\LiveInController@index');

View File

@ -44,6 +44,8 @@ class LiveContinueService extends OldmenService
if(Carbon::parse($oldMan->avliable_at)->diffInSeconds($startAt) != 1){
return $this->setError('续住开始时间异常,请刷新重试!');
}
//调整结束时间
$endAt .= ' 23:59:59';
$flow = new ConstFlow();
$flow->oldman_id = $oldMan->id;