1
0
Fork 0

admin patient_record update saler_id,inviter_id

master
panliang 2023-10-26 15:21:30 +08:00
parent bfe76cc928
commit c20c21fb2d
2 changed files with 51 additions and 24 deletions

View File

@ -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()

View File

@ -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;