From d6220dbd5fc15eab2981838201a3199a500bdae1 Mon Sep 17 00:00:00 2001 From: wucongxing8150 <815046773@qq.com> Date: Tue, 30 Apr 2024 09:59:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E8=8D=AF=E5=93=81=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Services/PatientOrderService.php | 42 ++++++++++------------------ 1 file changed, 15 insertions(+), 27 deletions(-) diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index c8da7de..72ef003 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -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); } // 处方药品表标记为已使用