cqpCow hace 1 año
padre
commit
2553f9839b

+ 37 - 0
app/Service/CheckService.php

@@ -113,6 +113,12 @@ class CheckService extends Service
         self::four => 'createPurchaseOrder', // 派给分社的合同确认以后生成虚拟采购单
     ];
 
+    //自动生成的删除
+    public static $create_del = [
+        self::seven => 'delCreatePurchaseOrderSales', //分社合同生成(删除)
+//        self::four => 'createPurchaseOrder', // 派给分社的合同确认以后生成虚拟采购单
+    ];
+
     //审核通过后 驳回
     public static $opt_case_reject = [
         self::four => 'reject_sales', // 合同
@@ -386,6 +392,7 @@ class CheckService extends Service
         $model->other_fee = $order['other_fee'];
         $model->discount_fee = $order['discount_fee'];
         $model->contract_fee = $order['purchase_total'];
+        $model->contact_order_no = $order['order_number'];
         $model->sign_time = $time;
 
         $model->save();
@@ -442,6 +449,25 @@ class CheckService extends Service
     }
     //自动生成-----------------------------------
 
+    //自动生成删除
+    public function delCreatePurchaseOrderSales($data, $order){
+        $sale_order = SalesOrder::where('del_time',0)
+            ->where('contact_order_no',$order['order_number'])
+            ->select('id')
+            ->get()->toArray();
+        if(empty($sale_order)) return [true,''];
+        $sale_order = array_column($sale_order,'id');
+
+        foreach ($sale_order as $value){
+            list($status, $msg) = (new SalesOrderService())->salesOrderDel(['id' => $value]);
+            if(! $status) return [false,$msg];
+        }
+
+        return [true, ''];
+    }
+
+    //自动生成删除
+
     public function confirmInvoiceOrder($data){
         $model = InvoiceOrder::where('order_number',$data['order_number'])
             ->where('del_time',0)
@@ -1256,6 +1282,9 @@ class CheckService extends Service
 
             //流水
             $function2 = self::$reject_record[$data['opt_case']] ?? '';
+
+            //自动生成删除
+            $function3 = self::$create_del[$data['opt_case']] ?? '';
             try{
                 DB::beginTransaction();
 
@@ -1267,6 +1296,14 @@ class CheckService extends Service
                 }
                 $order = $msg;
 
+                if($function3){
+                    list($boolean,$msg) = $this->$function3($data,$order);
+                    if(! $boolean) {
+                        DB::rollBack();
+                        return [false, $msg];
+                    }
+                }
+
                 if($function2) {
                     //流水
                     list($boolean,$msg) = $this->$function2($data,$order);

+ 25 - 0
app/Service/InvoiceOrderService.php

@@ -380,4 +380,29 @@ class InvoiceOrderService extends Service
 
         return $product_save;
     }
+
+    //分社向总社采购的合同的发货单号
+    public function getInvoiceData($data){
+        $sale_order = SalesOrder::where('del_time',0)
+            ->whereIn('contact_order_no', array_column($data,'order_number'))
+            ->select('contact_order_no','id')
+            ->get()->toArray();
+        if(empty($sale_order)) return [];
+        $sale_order_map = array_column($sale_order,'contact_order_no','id');
+
+        $invoice = InvoiceOrder::where('del_time',0)
+            ->whereIn('sales_order_id',array_column($sale_order,'id'))
+            ->select('sales_order_id','order_number')
+            ->get()->toArray();
+
+        $return = [];
+        foreach ($invoice as $value){
+            if(isset($sale_order_map[$value['sales_order_id']])){
+                $purchase_order_number = $sale_order_map[$value['sales_order_id']];
+                $return[$purchase_order_number][] = $value['order_number'];
+            }
+        }
+
+        return $return;
+    }
 }

+ 12 - 0
app/Service/PurchaseOrderService.php

@@ -430,6 +430,8 @@ class PurchaseOrderService extends Service
         }
         //获取金额列表
         $money = (new BookingListService())->getAllAmount(array_column($data['data'],'id'), BookingList::data_type_two);
+        //获取发货信息
+        $invoice_map = (new InvoiceOrderService())->getInvoiceData($data['data']);
         foreach ($data['data'] as $key => $value){
             $supplier_tmp = $supplier_map[$value['supplier']] ?? [];
             $data['data'][$key]['crt_time'] = $value['crt_time'] ? date("Y-m-d H:i:s",$value['crt_time']) : '';
@@ -458,6 +460,16 @@ class PurchaseOrderService extends Service
             $data['data'][$key]['fee3'] = $fee2;
             //最终金额
             $data['data'][$key]['fee4'] = $value['purchase_total'] + $fee4 - $fee3;
+
+            //发货信息 分社向总社采购
+            $invoice_state = "未发货";
+            $invoice_arr = "";
+            if(! empty($invoice_map[$value['order_number']])){
+                $invoice_state = "已发货";
+                $invoice_arr = implode(',',$invoice_map[$value['order_number']]);
+            }
+            $data['data'][$key]['invoice_state_name'] = $invoice_state;
+            $data['data'][$key]['invoice_arr'] = $invoice_arr;
         }
 
         return $data;

+ 8 - 1
config/header/45.php

@@ -54,12 +54,19 @@ return [
         'key' => 'fee4',
         'value' => '最终金额',
     ],
-
     [
         'key' => 'state_title',
         'value' => '状态',
     ],
     [
+        'key' => 'invoice_state_name',
+        'value' => '发货状态',
+    ],
+    [
+        'key' => 'invoice_arr',
+        'value' => '发货单号',
+    ],
+    [
         'key' => 'crt_time',
         'value' => '创建时间',
     ],