获取剩余药品数量修改

This commit is contained in:
2024-04-24 17:46:30 +08:00
parent 5103fe875f
commit ace286e096
5 changed files with 164 additions and 108 deletions
+41 -18
View File
@@ -1354,18 +1354,14 @@ class PatientOrderService extends BaseService
case 3: // 检测订单
Db::rollBack();
return fail(HttpEnumCode::HTTP_ERROR, "非法订单类型");
break;
case 4: // 健康包订单
Db::rollBack();
return fail(HttpEnumCode::HTTP_ERROR, "非法订单类型");
break;
case 5: // 随访包订单
Db::rollBack();
return fail(HttpEnumCode::HTTP_ERROR, "非法订单类型");
break;
default:
Db::rollBack();
return fail(HttpEnumCode::HTTP_ERROR, "支付失败");
@@ -1497,6 +1493,22 @@ class PatientOrderService extends BaseService
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();
}
// 获取服务包订单详情
$params = array();
$params['order_service_id'] = $order_service_package['order_service_id'];
$order_service_package_detail = OrderServicePackageDetail::getOne($params);
if (empty($order_service_package_detail)){
return fail();
}
// 此处不检测未支付的商品订单,在创建订单时会进行数量的扣减
// 处理商品数量
$OrderServicePackageService = new OrderServicePackageService();
@@ -1504,7 +1516,7 @@ class PatientOrderService extends BaseService
$amount_total = 0;
foreach ($product_datas as &$product_data){
// 获取服务包内某一药品的总数量
$total_quantity = $OrderServicePackageService->getOrderServiceProductTotalQuantity($product_data['product_id']);
$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);
@@ -2040,6 +2052,22 @@ class PatientOrderService extends BaseService
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();
}
// 获取服务包订单详情
$params = array();
$params['order_service_id'] = $order_service_package['order_service_id'];
$order_service_package_detail = OrderServicePackageDetail::getOne($params);
if (empty($order_service_package_detail)){
return fail();
}
// 此处不检测未支付的商品订单,在创建订单时会进行数量的扣减
// 处理商品数量、金额
$OrderServicePackageService = new OrderServicePackageService();
@@ -2047,7 +2075,7 @@ class PatientOrderService extends BaseService
$amount_total = 0;
foreach ($product_datas as &$product_data){
// 获取服务包内某一药品的总数量
$total_quantity = $OrderServicePackageService->getOrderServiceProductTotalQuantity($product_data['product_id']);
$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);
@@ -3100,13 +3128,11 @@ class PatientOrderService extends BaseService
$result['order_service_package']['current_month_start_date'] = $current_month_date['current_month_start_date'];
$result['order_service_package']['current_month_finish_date'] = $current_month_date['current_month_finish_date'];
// 获取服务包当月已问诊/剩余次数
// 获取服务包当月已问诊次数
$month_inquiry_count = $OrderServicePackageService->getCurrentMonthInquiryCount($order_service_package['pay_time'],$order_service_package['order_service_type'],$order_service_package['user_id'], $order_service_package['doctor_id']);
// 获取服务包当月剩余问诊次数
if ($order_service_package_detail['monthly_frequency'] != 0) {
$OrderServicePackageService = new OrderServicePackageService();
// 获取服务包当月已问诊次数
$month_inquiry_count = $OrderServicePackageService->getCurrentMonthInquiryCount($order_service_package['pay_time'],$order_service_package['order_service_type'],$order_service_package['user_id'], $order_service_package['doctor_id']);
// 获取服务包当月剩余问诊次数
$remaining_inquiry_count = $order_service_package_detail['monthly_frequency'] - $month_inquiry_count;
if ($remaining_inquiry_count < 0){
@@ -3114,7 +3140,6 @@ class PatientOrderService extends BaseService
}
}else{
$remaining_inquiry_count = "不限";
$month_inquiry_count = "不限";
}
$result['order_service_package_detail']['month_inquiry_count'] = $month_inquiry_count;
@@ -3150,11 +3175,9 @@ class PatientOrderService extends BaseService
// 获取服务包内所有药品
$health_package_products = $OrderServicePackageService->getOrderServiceProduct($order_service_package_detail['package_id']);
if (!empty($health_package_products)) {
foreach ($health_package_products as $health_package_product) {
// 获取服务包内某一药品的剩余数量
$result['order_service_package_detail']['remaining_quantity'] = $OrderServicePackageService->getOrderServiceProductCanUseQuantity($order_service_package['order_service_id'],$health_package_product['product_id'],$health_package_product['quantity']);
}
foreach ($health_package_products as $health_package_product) {
// 获取服务包内某一药品的剩余数量
$result['order_service_package_detail']['remaining_quantity'] = $OrderServicePackageService->getOrderServiceProductCanUseQuantity($order_service_package['order_service_id'],$health_package_product['product_id'],$health_package_product['quantity']);
}
}
}