修正获取服务包内某一药品的剩余数量计算
This commit is contained in:
@@ -1487,7 +1487,7 @@ class PatientOrderService extends BaseService
|
||||
return fail();
|
||||
}
|
||||
|
||||
// 处理健康包赠送商品
|
||||
// 处理健康包赠送商品-金额、数量
|
||||
if ($order_inquiry['inquiry_type'] == 1 && $order_inquiry['inquiry_mode'] == 8){
|
||||
// 获取问诊订单关联服务包id
|
||||
$params = array();
|
||||
@@ -1503,12 +1503,22 @@ class PatientOrderService extends BaseService
|
||||
|
||||
$amount_total = 0;
|
||||
foreach ($product_datas as &$product_data){
|
||||
// 获取服务包内某一药品的剩余数量
|
||||
$remaining_quantity = $OrderServicePackageService->getOrderServiceProductRemainingQuantity($order_service_package_inquiry['order_service_id'],$product_data['product_id']);
|
||||
// 获取服务包内某一药品的总数量
|
||||
$total_quantity = $OrderServicePackageService->getOrderServiceProductTotalQuantity($product_data['product_id']);
|
||||
|
||||
// 可用数量大于处方商品数量,此情况把商品价格置为0
|
||||
// 获取服务包内某一药品的剩余数量
|
||||
$remaining_quantity = $OrderServicePackageService->getOrderServiceProductCanUseQuantity($order_service_package_inquiry['order_service_id'],$product_data['product_id'],$total_quantity);
|
||||
|
||||
// 可用数量大于处方商品数量
|
||||
if ($remaining_quantity >= $product_data['product_num']){
|
||||
// 把商品价格置为0。金额按照0计算
|
||||
$product_data['product_price'] = 0;
|
||||
|
||||
// 已使用数量 = 原数量+此次使用数量
|
||||
$product_data['used_quantity'] = $product_data['product_num'];
|
||||
}else{
|
||||
// 已使用数量 = 最大可用数量;表示此服务包商品已使用完毕
|
||||
$product_data['used_quantity'] = $remaining_quantity;
|
||||
}
|
||||
|
||||
// 此处重新计算药品总金额
|
||||
@@ -1674,6 +1684,28 @@ class PatientOrderService extends BaseService
|
||||
$params = array();
|
||||
$params['amount_id'] = $product_platform_amount['amount_id'];
|
||||
ProductPlatformAmount::dec($params, 'stock', $product_data['product_num']);
|
||||
|
||||
// 处理健康包数据,增加使用数量
|
||||
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)){
|
||||
Db::rollBack();
|
||||
return fail(HttpEnumCode::SERVER_ERROR, "订单创建失败");
|
||||
}
|
||||
|
||||
$data = array();
|
||||
$data['order_service_id'] = $order_service_package_inquiry['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);
|
||||
}
|
||||
}
|
||||
|
||||
// 修改处方为已使用
|
||||
@@ -2009,16 +2041,20 @@ class PatientOrderService extends BaseService
|
||||
}
|
||||
|
||||
// 此处不检测未支付的商品订单,在创建订单时会进行数量的扣减
|
||||
// 处理商品数量
|
||||
// 处理商品数量、金额
|
||||
$OrderServicePackageService = new OrderServicePackageService();
|
||||
|
||||
$amount_total = 0;
|
||||
foreach ($product_datas as &$product_data){
|
||||
// 获取服务包内某一药品的剩余数量
|
||||
$remaining_quantity = $OrderServicePackageService->getOrderServiceProductRemainingQuantity($order_service_package_inquiry['order_service_id'],$product_data['product_id']);
|
||||
// 获取服务包内某一药品的总数量
|
||||
$total_quantity = $OrderServicePackageService->getOrderServiceProductTotalQuantity($product_data['product_id']);
|
||||
|
||||
// 可用数量大于处方商品数量,此情况把商品价格置为0
|
||||
// 获取服务包内某一药品的剩余数量
|
||||
$remaining_quantity = $OrderServicePackageService->getOrderServiceProductCanUseQuantity($order_service_package_inquiry['order_service_id'],$product_data['product_id'],$total_quantity);
|
||||
|
||||
// 可用数量大于处方商品数量
|
||||
if ($remaining_quantity >= $product_data['product_num']){
|
||||
// 把商品价格置为0。金额按照0计算
|
||||
$product_data['product_price'] = 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user