|
@@ -141,8 +141,8 @@ class PurchaseOrderSpecialService extends Service
|
|
|
$order['supplier_title'] = $supplier->title ?? '';
|
|
|
$order['state_title'] = PurchaseOrderSpecial::$name[$order['state']] ?? '';
|
|
|
$order['type_title'] = PurchaseOrderSpecial::$type[$order['type']] ?? '';
|
|
|
- $sales = SalesOrder::where('id',$order['sales_order_id'])->value('order_number');
|
|
|
- $order['sales_order_number'] = $sales;
|
|
|
+ $sales_order_number = SalesOrder::where('id',$order['sales_order_id'])->value('order_number');
|
|
|
+ $order['sales_order_number'] = $sales_order_number;
|
|
|
$emp_map = Employee::whereIn('id',array_unique(array_merge_recursive([$order['purchase_id']],[$order['crt_id']])))
|
|
|
->pluck('emp_name','id')
|
|
|
->toArray();
|
|
@@ -167,17 +167,24 @@ class PurchaseOrderSpecialService extends Service
|
|
|
$order['crt_name'] = $emp_map[$order['crt_id']] ?? '';
|
|
|
$order['crt_time'] = $order['crt_time'] ? date("Y-m-d H:i:s",$order['crt_time']): '';
|
|
|
|
|
|
+ //退换货信息
|
|
|
+ $order['return_exchange'] = (new ReturnExchangeOrderService())->getDifferentAmount($order['sales_order_id']);
|
|
|
+ $order['return_exchange_amount'] = 0;
|
|
|
+ foreach ($order['return_exchange'] as $value){
|
|
|
+ if($value['state'] == ReturnExchangeOrder::State_two) $order['return_exchange_amount'] += $value['difference_amount'];
|
|
|
+ }
|
|
|
+
|
|
|
//回款单信息 审核过的
|
|
|
- $order['payment_receipt_list'] = (new PaymentReceiptService())->getPaymentReceiptDataList($order,PaymentReceipt::data_type_three);
|
|
|
- //坏账金额 = 红冲金额
|
|
|
- $order['payment_receipt_list']['bad_amount'] = $order['payment_receipt_list']['red_amount'];
|
|
|
+ $sales['order_number'] = $order['sales_order_number'];
|
|
|
+ $order['payment_receipt_list'] = (new PaymentReceiptService())->getPaymentReceiptDataList($sales, PaymentReceipt::data_type_one);
|
|
|
+ //坏账金额 = 已审核退货退款金额 - 红冲金额
|
|
|
+ $order['payment_receipt_list']['bad_amount'] = bcsub($order['return_exchange_amount'], $order['payment_receipt_list']['red_amount'],2);
|
|
|
//未回款金额 = 总金额 - 已回款金额 - 坏账金额 - 红冲
|
|
|
- $total = bcadd($order['purchase_total'], $order['other_fee'],2);
|
|
|
- $not_receipt_amount = bcsub($total,$order['payment_receipt_list']['receipt_amount'],2);
|
|
|
- $order['payment_receipt_list']['not_receipt_amount'] = $not_receipt_amount;
|
|
|
+ $total = bcadd($order['purchase_total'],$order['other_fee'],2);
|
|
|
+ $order['payment_receipt_list']['not_receipt_amount'] = bcsub(bcsub(bcsub($total, $order['payment_receipt_list']['receipt_amount'],2), $order['payment_receipt_list']['bad_amount'], 2),$order['payment_receipt_list']['red_amount'],2);
|
|
|
//回款单信息 审核过的
|
|
|
|
|
|
- $order['not_payment_receipt_amount'] = bcsub($total,$order['payment_receipt_list']['not_confirm_receipt_amount'],2);
|
|
|
+ $order['not_payment_receipt_amount'] = bcsub($total,$order['payment_receipt_list']['not_confirm_receipt_amount'],2);
|
|
|
|
|
|
|
|
|
return [true, $order];
|
|
@@ -275,6 +282,7 @@ class PurchaseOrderSpecialService extends Service
|
|
|
->toArray();
|
|
|
|
|
|
list($for_amount_list, $for_amount_list1) = (new PaymentReceiptService())->getPaymentReceiptDataCountList(array_column($data['data'],'order_number'));
|
|
|
+ list($getDifferentAmountALL,$getDifferentAmountALL1) = (new ReturnExchangeOrderService())->getDifferentAmountALLNew(array_column($data['data'],'sales_order_id'));
|
|
|
|
|
|
foreach ($data['data'] as $key => $value){
|
|
|
$data['data'][$key]['crt_time'] = $value['crt_time'] ? date("Y-m-d H:i:s",$value['crt_time']) : '';
|
|
@@ -295,19 +303,26 @@ class PurchaseOrderSpecialService extends Service
|
|
|
//已红冲
|
|
|
$three = $for_amount_list[$value['order_number'] . PaymentReceipt::type_three] ?? 0;
|
|
|
$data['data'][$key]['red_amount'] = $three;
|
|
|
+ //已退货退款
|
|
|
+ $return_exchange_amount = $getDifferentAmountALL[$value['sales_order_id']] ?? 0;
|
|
|
+ $data['data'][$key]['return_exchange_amount'] = $return_exchange_amount;
|
|
|
//用于计算--------
|
|
|
|
|
|
//用于统计--------
|
|
|
$red = $for_amount_list1[$value['order_number'] . PaymentReceipt::type_three] ?? 0;
|
|
|
+ $return_exchange_amount1 = $getDifferentAmountALL1[$value['sales_order_id']] ?? 0;
|
|
|
+ $bad = bcsub($return_exchange_amount1 ,$red,2);
|
|
|
//已收金额
|
|
|
$fee1 = bcsub($one1 ,$red,2);
|
|
|
$data['data'][$key]['fee1'] = $fee1;
|
|
|
//未收金额
|
|
|
$total = bcadd($value['purchase_total'],$value['other_fee'],2);
|
|
|
- $fee2 = bcsub($total, $fee1,2);
|
|
|
+ $fee2 = bcsub(bcsub($total, $bad, 2),$red,2);
|
|
|
$data['data'][$key]['fee2'] = $fee2;
|
|
|
//红冲金额
|
|
|
$data['data'][$key]['fee3'] = $red;
|
|
|
+ //坏账金额
|
|
|
+ $data['data'][$key]['fee4'] = $bad;
|
|
|
//用于统计--------
|
|
|
}
|
|
|
|