修正健康包赠送药品使用问题

This commit is contained in:
wucongxing8150 2024-04-28 15:31:17 +08:00
parent 8f80c8e7e9
commit 67faeeb85e
2 changed files with 38 additions and 40 deletions

View File

@ -1554,4 +1554,30 @@ class OrderServicePackageService extends BaseService
return $result;
}
/**
* 获取患者家庭成员进行中的服务包订单
* @param string|int $patient_user_id
* @param string|int $family_id
* @param string|int $doctor_id
* @param string|int $service_type
* @return array
*/
public function getPatientFamilyInProgressServicePackage(string|int $patient_user_id,string|int $family_id,string|int $doctor_id,string|int $service_type): array
{
// 检测患者是否购买服务包
$params = array();
$params['user_id'] = $patient_user_id;
$params['doctor_id'] = $doctor_id;
$params['family_id'] = $family_id;
$params['order_service_type'] = $service_type;
$order_service_status = ['3'];
$order_service_package = OrderServicePackage::getStatusOne($params, $order_service_status);
if (empty($order_service_package)) {
return [];
}
return $order_service_package->toArray();
}
}

View File

@ -1520,24 +1520,11 @@ class PatientOrderService extends BaseService
return fail();
}
// 处理健康包赠送商品-金额、数量
if ($order_inquiry['inquiry_type'] == 1 && $order_inquiry['inquiry_mode'] == 8){
// 获取问诊订单关联服务包id
$params = array();
$params['order_inquiry_id'] = $order_inquiry['order_inquiry_id'];
$order_service_package_inquiry = OrderServicePackageInquiry::getOne($params);
if (empty($order_service_package_inquiry)){
return fail();
}
// 获取服务包订单
$params = array();
$params['order_service_no'] = $order_service_package_inquiry['order_service_no'];
$order_service_package = OrderServicePackage::getOne($params);
if (empty($order_service_package)){
return fail();
}
// 获取患者家庭成员进行中的服务包订单
$OrderServicePackageService = new OrderServicePackageService();
$order_service_package = $OrderServicePackageService->getPatientFamilyInProgressServicePackage($order_inquiry['user_id'],$order_inquiry['family_id'],$order_inquiry['doctor_id'],1);
if (!empty($order_service_package)){
// 处理健康包赠送商品-金额、数量
// 获取服务包订单详情
$params = array();
$params['order_service_id'] = $order_service_package['order_service_id'];
@ -1556,7 +1543,7 @@ class PatientOrderService extends BaseService
$total_quantity = $OrderServicePackageService->getOrderServiceProductTotalQuantity($order_service_package_detail['package_id'],$product_data['product_id']);
// 获取服务包内某一药品的剩余数量
$remaining_quantity = $OrderServicePackageService->getOrderServiceProductCanUseQuantity($order_service_package_inquiry['order_service_id'],$product_data['product_id'],$total_quantity);
$remaining_quantity = $OrderServicePackageService->getOrderServiceProductCanUseQuantity($order_service_package['order_service_id'],$product_data['product_id'],$total_quantity);
// 可用数量大于处方商品数量
if ($remaining_quantity >= $product_data['product_num']){
@ -2080,24 +2067,11 @@ class PatientOrderService extends BaseService
return fail();
}
// 处理健康包赠送商品
if ($order_inquiry['inquiry_type'] == 1 && $order_inquiry['inquiry_mode'] == 8){
// 获取问诊订单关联服务包id
$params = array();
$params['order_inquiry_id'] = $order_inquiry['order_inquiry_id'];
$order_service_package_inquiry = OrderServicePackageInquiry::getOne($params);
if (empty($order_service_package_inquiry)){
return fail();
}
// 获取服务包订单
$params = array();
$params['order_service_no'] = $order_service_package_inquiry['order_service_no'];
$order_service_package = OrderServicePackage::getOne($params);
if (empty($order_service_package)){
return fail();
}
// 获取患者家庭成员进行中的服务包订单
$OrderServicePackageService = new OrderServicePackageService();
$order_service_package = $OrderServicePackageService->getPatientFamilyInProgressServicePackage($order_inquiry['user_id'],$order_inquiry['family_id'],$order_inquiry['doctor_id'],1);
if (!empty($order_service_package)){
// 处理健康包赠送商品
// 获取服务包订单详情
$params = array();
$params['order_service_id'] = $order_service_package['order_service_id'];
@ -2108,15 +2082,13 @@ class PatientOrderService extends BaseService
// 此处不检测未支付的商品订单,在创建订单时会进行数量的扣减
// 处理商品数量、金额
$OrderServicePackageService = new OrderServicePackageService();
$amount_total = 0;
foreach ($product_datas as &$product_data){
// 获取服务包内某一药品的总数量
$total_quantity = $OrderServicePackageService->getOrderServiceProductTotalQuantity($order_service_package_detail['package_id'],$product_data['product_id']);
// 获取服务包内某一药品的剩余数量
$remaining_quantity = $OrderServicePackageService->getOrderServiceProductCanUseQuantity($order_service_package_inquiry['order_service_id'],$product_data['product_id'],$total_quantity);
$remaining_quantity = $OrderServicePackageService->getOrderServiceProductCanUseQuantity($order_service_package['order_service_id'],$product_data['product_id'],$total_quantity);
// 可用数量大于处方商品数量
if ($remaining_quantity >= $product_data['product_num']){