|
@@ -4,8 +4,10 @@ namespace App\Service;
|
|
|
|
|
|
use App\Model\Depart;
|
|
|
use App\Model\Employee;
|
|
|
+use App\Model\Product;
|
|
|
use App\Model\PurchaseOrder;
|
|
|
use App\Model\PurchaseOrderInfo;
|
|
|
+use App\Model\SalesOrder;
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
|
|
class PurchaseOrderService extends Service
|
|
@@ -17,6 +19,7 @@ class PurchaseOrderService extends Service
|
|
|
try{
|
|
|
DB::beginTransaction();
|
|
|
$material_model = PurchaseOrder::where('order_number',$data['order_number'])->first();
|
|
|
+ $material_model->order_number = $data['order_number'];
|
|
|
$material_model->depart_id = $data['depart_id'] ?? 0;
|
|
|
$material_model->rate = $data['rate'] ?? 0;
|
|
|
$material_model->total = $data['total'] ?? 0;
|
|
@@ -34,8 +37,13 @@ class PurchaseOrderService extends Service
|
|
|
->where('del_time',0)
|
|
|
->update(['del_time' => time()]);
|
|
|
if(!empty($data['product'])){
|
|
|
+ $pro = Product::whereIn('id',array_column($data['product'],'product_id'))
|
|
|
+ ->select('bar_code','code','size','title','id')
|
|
|
+ ->get()->toArray();
|
|
|
+ $pro = array_column($pro,null,'id');
|
|
|
$sub = [];
|
|
|
foreach ($data['product'] as $value){
|
|
|
+ $tmp = $pro[$value['product_id']] ?? [];
|
|
|
$sub[] = [
|
|
|
'order_number' => $data['order_number'],
|
|
|
'depart_id' => $data['depart_id'] ?? 0,
|
|
@@ -43,6 +51,11 @@ class PurchaseOrderService extends Service
|
|
|
'number' => $value['number'],
|
|
|
'price' => $value['price'],
|
|
|
'mark' => $value['mark'] ?? '',
|
|
|
+ 'title' => $tmp['title'],
|
|
|
+ 'code' => $tmp['code'] ?? '',
|
|
|
+ 'size' => $tmp['size'] ?? '',
|
|
|
+ 'unit' => $tmp['unit'] ?? 0,
|
|
|
+ 'bar_code' => $tmp['bar_code'] ?? '',
|
|
|
];
|
|
|
}
|
|
|
PurchaseOrderInfo::insert($sub);
|
|
@@ -63,6 +76,7 @@ class PurchaseOrderService extends Service
|
|
|
try{
|
|
|
DB::beginTransaction();
|
|
|
$material_model = new PurchaseOrder();
|
|
|
+ $material_model->order_number = $data['order_number'];
|
|
|
$material_model->depart_id = $data['depart_id'] ?? 0;
|
|
|
$material_model->rate = $data['rate'] ?? 0;
|
|
|
$material_model->total = $data['total'] ?? 0;
|
|
@@ -78,8 +92,13 @@ class PurchaseOrderService extends Service
|
|
|
$material_model->save();
|
|
|
|
|
|
if(!empty($data['product'])){
|
|
|
+ $pro = Product::whereIn('id',array_column($data['product'],'product_id'))
|
|
|
+ ->select('bar_code','code','size','title','id')
|
|
|
+ ->get()->toArray();
|
|
|
+ $pro = array_column($pro,null,'id');
|
|
|
$sub = [];
|
|
|
foreach ($data['product'] as $value){
|
|
|
+ $tmp = $pro[$value['product_id']] ?? [];
|
|
|
$sub[] = [
|
|
|
'order_number' => $data['order_number'],
|
|
|
'depart_id' => $data['depart_id'] ?? 0,
|
|
@@ -87,6 +106,11 @@ class PurchaseOrderService extends Service
|
|
|
'number' => $value['number'],
|
|
|
'price' => $value['price'],
|
|
|
'mark' => $value['mark'] ?? '',
|
|
|
+ 'title' => $tmp['title'],
|
|
|
+ 'code' => $tmp['code'] ?? '',
|
|
|
+ 'size' => $tmp['size'] ?? '',
|
|
|
+ 'unit' => $tmp['unit'] ?? 0,
|
|
|
+ 'bar_code' => $tmp['bar_code'] ?? '',
|
|
|
];
|
|
|
}
|
|
|
PurchaseOrderInfo::insert($sub);
|
|
@@ -106,15 +130,26 @@ class PurchaseOrderService extends Service
|
|
|
|
|
|
$order = PurchaseOrder::where('order_number',$data['order_number'])
|
|
|
->where('del_time',0)
|
|
|
- ->select('id','order_number','depart_id','mark','state','crt_id','order_type','sales_order_id','supplier','purchase_id','rate','total','other_fee','discount_fee','purchase_total')
|
|
|
+ ->select('id','order_number','depart_id','mark','state','crt_id','order_type','sales_order_id','supplier','purchase_id','rate','total','other_fee','discount_fee','purchase_total','crt_time')
|
|
|
->first();
|
|
|
if(empty($order)) return [false, '采购订单不存在或已被删除'];
|
|
|
+ $order = $order->toArray();
|
|
|
+ $order['order_type_title'] = PurchaseOrder::$order_type[$order['order_type']] ?? '';
|
|
|
+ $order['state_title'] = PurchaseOrder::$name[$order['state']] ?? '';
|
|
|
+ $sales = SalesOrder::where('id',$order['sales_order_id'])->value('order_number');
|
|
|
+ $order['sales_order_number'] = $sales;
|
|
|
+ $emp_map = Employee::whereIn('id',array_unique(array_merge_recursive([$order['purchase_id']],array_column($order,'crt_id'))))
|
|
|
+ ->pluck('emp_name','id')
|
|
|
+ ->toArray();
|
|
|
+ $order['purchase_title'] = $emp_map[$order['purchase_id']];
|
|
|
|
|
|
$info = PurchaseOrderInfo::where('del_time',0)
|
|
|
->where('order_number',$data['order_number'])
|
|
|
- ->select('id','order_number','depart_id','product_id','number','mark','price')
|
|
|
+ ->select('id','order_number','depart_id','product_id','number','mark','price','title','size','code','bar_code')
|
|
|
->get()->toArray();
|
|
|
$order['product'] = $info;
|
|
|
+ $order['crt_name'] = $emp_map[$order['crt_id']] ?? '';
|
|
|
+ $order['crt_time'] = $order['crt_time'] ? date("Y-m-d H:i:s",$order['crt_time']): '';
|
|
|
|
|
|
return [true, $order];
|
|
|
}
|
|
@@ -176,12 +211,15 @@ class PurchaseOrderService extends Service
|
|
|
->pluck('emp_name','id')
|
|
|
->toArray();
|
|
|
|
|
|
+ $sales = SalesOrder::whereIn('id',array_unique(array_column($data['data'],'sales_order_id')))->pluck('order_number','id')->toArray();
|
|
|
foreach ($data['data'] as $key => $value){
|
|
|
$data['data'][$key]['crt_time'] = $value['crt_time'] ? date("Y-m-d H:i:s",$value['crt_time']) : '';
|
|
|
$data['data'][$key]['depart_name'] = $depart_map[$value['depart_id']] ?? '';
|
|
|
$data['data'][$key]['crt_name'] = $emp_map[$value['crt_id']] ?? '';
|
|
|
$data['data'][$key]['purchase_name'] = $emp_map[$value['purchase_id']] ?? '';
|
|
|
$data['data'][$key]['order_type_title'] = PurchaseOrder::$order_type[$value['order_type']] ?? '';
|
|
|
+ $data['data'][$key]['state_title'] = PurchaseOrder::$name[$value['state']] ?? '';
|
|
|
+ $data['data'][$key]['sales_order_number'] = $sales[$value['sales_order_id']] ?? '';
|
|
|
}
|
|
|
|
|
|
return $data;
|