From c20c21fb2d1d5cd48144b2d38176b2adf68e562c Mon Sep 17 00:00:00 2001 From: panliang <1163816051@qq.com> Date: Thu, 26 Oct 2023 15:21:30 +0800 Subject: [PATCH] admin patient_record update saler_id,inviter_id --- .../Controllers/PatientRecordController.php | 62 ++++++++++++++----- app/Admin/Services/PatientRecordService.php | 13 ++-- 2 files changed, 51 insertions(+), 24 deletions(-) diff --git a/app/Admin/Controllers/PatientRecordController.php b/app/Admin/Controllers/PatientRecordController.php index 8615728..6871efc 100644 --- a/app/Admin/Controllers/PatientRecordController.php +++ b/app/Admin/Controllers/PatientRecordController.php @@ -32,7 +32,7 @@ class PatientRecordController extends AdminController ->filterTogglable(false) ->columnsTogglable(false) ->headerToolbar([ - $this->createButton(true, 'lg'), + $this->createButton(), $this->exportAction(), ]) ->filter($this->baseFilter()->actions()->body([ @@ -78,10 +78,10 @@ class PatientRecordController extends AdminController public function form($isEdit, $patient_id = null): Form { $patient_element = amisMake()->SelectControl() - ->options($this->getPatientOptions()) - ->searchable() ->name('patient_id') ->label(__('patient-record.patient_id')) + ->options($this->getPatientOptions()) + ->searchable() ->onEvent([ 'change' => [ 'actions' => [ @@ -93,21 +93,52 @@ class PatientRecordController extends AdminController if ($patient_id) { $patient_element->value($patient_id); } - return $this->baseForm()->body([ + $elements = [ $patient_element, amisMake()->SelectControl()->options($this->getIllnessOption())->name('illness_type_id')->label(__('patient-record.illness_type_id'))->required(), amisMake()->DateTimeControl()->name('treat_at')->label(__('patient-record.treat_at'))->value(now())->required(), - amisMake()->SelectControl()->options($this->getAdminUserOptions())->searchable()->name('doctor_id')->label(__('patient-record.doctor_id'))->required(), - amisMake()->NumberControl()->name('origin_price')->label(__('patient-record.origin_price'))->required(), - amisMake()->NumberControl()->name('sell_price')->label(__('patient-record.sell_price'))->required(), - amisMake()->SelectControl()->options(OrderStatus::options())->name('order_status')->label(__('patient-record.order_status'))->default(OrderStatus::Success->value)->required(), + ]; + if ($isEdit) { + array_push($elements, + amisMake()->Divider(), + amisMake()->GroupControl()->body([ + amisMake()->NumberControl()->precision(2)->step(0.01)->name('origin_price')->label(__('patient-record.origin_price'))->required(), + amisMake()->NumberControl()->precision(2)->step(0.01)->name('sell_price')->label(__('patient-record.sell_price'))->required(), + amisMake()->SelectControl()->options(OrderStatus::options())->name('order_status')->label(__('patient-record.order_status'))->default(OrderStatus::Success->value)->required(), + ]), + amisMake()->Divider(), + amisMake()->GroupControl()->body([ + amisMake()->SelectControl()->options($this->getAdminUserOptions())->searchable()->name('doctor_id')->label(__('patient-record.doctor_id'))->required(), + amisMake()->NumberControl()->precision(2)->step(0.01)->name('doctor_money')->label(__('patient-record.doctor_money'))->required(), + ]), + amisMake()->Divider(), + amisMake()->GroupControl()->body([ + amisMake()->SelectControl()->options($this->getAdminUserOptions())->searchable()->name('inviter_id')->label(__('patient-record.inviter_id')), + amisMake()->NumberControl()->precision(2)->step(0.01)->name('inviter_money')->label(__('patient-record.inviter_money')), + ]), + amisMake()->Divider(), + amisMake()->GroupControl()->body([ + amisMake()->SelectControl()->options($this->getAdminUserOptions())->searchable()->name('saler_id')->label(__('patient-record.saler_id')), + amisMake()->NumberControl()->precision(2)->step(0.01)->name('saler_money')->label(__('patient-record.saler_money')), + ]), + amisMake()->Divider() + ); + } else { + array_push($elements, + amisMake()->SelectControl()->options($this->getAdminUserOptions())->searchable()->name('doctor_id')->label(__('patient-record.doctor_id'))->required(), + amisMake()->NumberControl()->precision(2)->step(0.01)->name('origin_price')->label(__('patient-record.origin_price'))->required(), + amisMake()->NumberControl()->precision(2)->step(0.01)->name('sell_price')->label(__('patient-record.sell_price'))->required(), + amisMake()->SelectControl()->options(OrderStatus::options())->name('order_status')->label(__('patient-record.order_status'))->default(OrderStatus::Success->value)->required(), + ); + } + array_push($elements, amisMake()->Service() - ->className('cxd-Form-item') - ->id('patient_record_form_content_service') - ->api(amisMake()->BaseApi()->method('get')->url(admin_url('api/category/content?id=${select_type_id}'))) - ->initFetch(false) - // ->body(Components::make()->fuEditorControl()->name('content')->label(__('patient-record.content'))), - ->body(amisMake()->TextareaControl()->name('content')->label(__('patient-record.content'))), + ->className('cxd-Form-item') + ->id('patient_record_form_content_service') + ->api(amisMake()->BaseApi()->method('get')->url(admin_url('api/category/content?id=${select_type_id}'))) + ->initFetch(false) + // ->body(Components::make()->fuEditorControl()->name('content')->label(__('patient-record.content'))), + ->body(amisMake()->TextareaControl()->name('content')->label(__('patient-record.content'))), amisMake()->ImageControl()->multiple()->receiver(admin_url('upload_image') . '?full-url=1')->name('images')->label(__('patient-record.images')), amisMake()->DateTimeControl()->name('next_treat_at')->label(__('patient-record.next_treat_at')), amisMake()->SwitchControl()->name('is_notified')->label(__('patient-record.is_notified'))->trueValue(0)->falseValue(1), @@ -115,7 +146,8 @@ class PatientRecordController extends AdminController amisMake()->DateControl()->name('notify_at')->label(__('patient-record.notify_at')), // amisMake()->TextControl()->name('notify_remarks')->label(__('patient-record.notify_remarks')), // amisMake()->TextControl()->label(__('patient-record.creator_id'))->name('creator_id')->value($this->user()->name)->readonly(), - ]); + ); + return $this->baseForm()->body($elements); } public function detail() diff --git a/app/Admin/Services/PatientRecordService.php b/app/Admin/Services/PatientRecordService.php index a35811e..ef17639 100644 --- a/app/Admin/Services/PatientRecordService.php +++ b/app/Admin/Services/PatientRecordService.php @@ -65,24 +65,19 @@ class PatientRecordService extends BaseService $data['type_id'] = $patient->type_id; $data['saler_id'] = $patient->saler_id; $data['inviter_id'] = $patient->inviter_id; - if (data_get($data, 'doctor_id')) { + + if (data_get($data, 'doctor_id') && !data_get($data, 'doctor_money')) { $data['doctor_ratio'] = data_get($type->options, 'doctor_ratio', 0); $data['doctor_money'] = floor($data['sell_price'] * $data['doctor_ratio']) / 100; } - if (data_get($data, 'inviter_id')) { + if (data_get($data, 'inviter_id') && !data_get($data, 'inviter_money')) { $data['inviter_ratio'] = data_get($type->options, 'inviter_ratio', 0); $data['inviter_money'] = floor($data['sell_price'] * $data['inviter_ratio']) / 100; } - if (data_get($data, 'saler_id')) { + if (data_get($data, 'saler_id') && !data_get($data, 'saler_money')) { $data['saler_ratio'] = data_get($type->options, 'saler_ratio', 0); $data['saler_money'] = floor($data['sell_price'] * $data['saler_ratio']) / 100; } - } else { - if (data_get($data, 'sell_price')) { - $data['doctor_money'] = floor($data['sell_price'] * $model->doctor_ratio) / 100; - $data['inviter_money'] = floor($data['sell_price'] * $model->inviter_ratio) / 100; - $data['saler_money'] = floor($data['sell_price'] * $model->saler_ratio) / 100; - } } return $data;