修改 创建药品订单

This commit is contained in:
wucongxing8150 2024-04-30 09:59:06 +08:00
parent 93c3ca45e3
commit d6220dbd5f

View File

@ -1504,6 +1504,7 @@ class PatientOrderService extends BaseService
// 商品数据
$product['product_num'] = $order_prescription_product['prescription_product_num'];
$product['used_quantity'] = 0; // 健康包服务下已使用赠送药品的数量默认赋0
$product_data = $product->toArray();
$product_datas[] = $product_data;
}
@ -1535,7 +1536,7 @@ class PatientOrderService extends BaseService
$OrderServicePackageService = new OrderServicePackageService();
$amount_total = 0;
foreach ($product_datas as &$product_data){
foreach ($product_datas as $key => $product_data){
// 获取服务包内某一药品的总数量
$total_quantity = $OrderServicePackageService->getOrderServiceProductTotalQuantity($order_service_package_detail['package_id'],$product_data['product_id']);
@ -1545,13 +1546,13 @@ class PatientOrderService extends BaseService
// 可用数量大于处方商品数量
if ($remaining_quantity >= $product_data['product_num']){
// 把商品价格置为0。金额按照0计算
$product_data['product_price'] = 0;
$product_datas[$key]['product_price'] = 0;
// 已使用数量 = 原数量+此次使用数量
$product_data['used_quantity'] = $product_data['product_num'];
$product_datas[$key]['used_quantity'] = $product_data['product_num'];
}else{
// 已使用数量 = 最大可用数量;表示此服务包商品已使用完毕
$product_data['used_quantity'] = $remaining_quantity;
$product_datas[$key]['used_quantity'] = $remaining_quantity;
}
// 此处重新计算药品总金额
@ -1704,29 +1705,16 @@ class PatientOrderService extends BaseService
return fail(HttpEnumCode::SERVER_ERROR);
}
if (!empty($order_service_package) && !empty($order_service_package_detail)){
// 获取服务包内某一药品的总数量
$total_quantity = $OrderServicePackageService->getOrderServiceProductTotalQuantity($order_service_package_detail['package_id'],$product_data['product_id']);
// 获取服务包内某一药品的剩余数量
$remaining_quantity = $OrderServicePackageService->getOrderServiceProductCanUseQuantity($order_service_package['order_service_id'],$product_data['product_id'],$total_quantity);
// 获取服务包内所有药品
$health_package_products = $OrderServicePackageService->getOrderServiceProduct($order_service_package_detail['package_id']);
foreach ($health_package_products as $health_package_product){
// 可用数量大于处方商品数量
if ($remaining_quantity >= $product_data['product_num'] && $health_package_product['product_id'] == $product_data['product_id']){
$data = array();
$data['order_service_id'] = $order_service_package['order_service_id'];
$data['order_product_id'] = $order_product['order_product_id'];
$data['order_product_no'] = $order_product['order_product_no'];
$data['product_item_id'] = $order_product_item['product_item_id'];
$data['product_id'] = $product_data['product_id'];
$data['used_quantity'] = $product_data['used_quantity'];
OrderServicePackageProduct::addOrderServicePackageProduct($data);
}
}
// 存在已使用药品数量
if ($product_data['used_quantity'] > 0){
$data = array();
$data['order_service_id'] = $order_service_package['order_service_id'];
$data['order_product_id'] = $order_product['order_product_id'];
$data['order_product_no'] = $order_product['order_product_no'];
$data['product_item_id'] = $order_product_item['product_item_id'];
$data['product_id'] = $product_data['product_id'];
$data['used_quantity'] = $product_data['used_quantity'];
OrderServicePackageProduct::addOrderServicePackageProduct($data);
}
// 处方药品表标记为已使用