|
@@ -2,13 +2,14 @@
|
|
|
|
|
|
namespace App\Service;
|
|
namespace App\Service;
|
|
|
|
|
|
|
|
+use App\Model\BasicType;
|
|
use App\Model\Depart;
|
|
use App\Model\Depart;
|
|
use App\Model\Employee;
|
|
use App\Model\Employee;
|
|
-use App\Model\Product;
|
|
|
|
use App\Model\PurchaseOrder;
|
|
use App\Model\PurchaseOrder;
|
|
use App\Model\PurchaseOrderInfo;
|
|
use App\Model\PurchaseOrderInfo;
|
|
use App\Model\SalesOrder;
|
|
use App\Model\SalesOrder;
|
|
use App\Model\Storehouse;
|
|
use App\Model\Storehouse;
|
|
|
|
+use App\Model\Supplier;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -36,12 +37,11 @@ class PurchaseOrderService extends Service
|
|
$material_model->other_fee = $data['other_fee'] ?? 0;
|
|
$material_model->other_fee = $data['other_fee'] ?? 0;
|
|
$material_model->discount_fee = $data['discount_fee'] ?? 0;
|
|
$material_model->discount_fee = $data['discount_fee'] ?? 0;
|
|
$material_model->purchase_total = $data['purchase_total'] ?? 0;
|
|
$material_model->purchase_total = $data['purchase_total'] ?? 0;
|
|
- $material_model->supplier = $data['supplier'] ?? '';
|
|
|
|
|
|
+ $material_model->supplier = $data['supplier'] ?? 0;
|
|
$material_model->purchase_id = $data['purchase_id'] ?? 0;
|
|
$material_model->purchase_id = $data['purchase_id'] ?? 0;
|
|
$material_model->order_type = $data['order_type'];
|
|
$material_model->order_type = $data['order_type'];
|
|
$material_model->sales_order_id = $data['sales_order_id'] ?? 0;
|
|
$material_model->sales_order_id = $data['sales_order_id'] ?? 0;
|
|
$material_model->mark = $data['mark'] ?? '';
|
|
$material_model->mark = $data['mark'] ?? '';
|
|
- $material_model->is_purchase_to_main = $data['is_purchase_to_main'];
|
|
|
|
$material_model->storehouse_id = $data['storehouse_id'];
|
|
$material_model->storehouse_id = $data['storehouse_id'];
|
|
$material_model->save();
|
|
$material_model->save();
|
|
|
|
|
|
@@ -57,13 +57,9 @@ class PurchaseOrderService extends Service
|
|
'storehouse_id' => $data['storehouse_id'] ?? 0,
|
|
'storehouse_id' => $data['storehouse_id'] ?? 0,
|
|
'product_id' => $value['product_id'],
|
|
'product_id' => $value['product_id'],
|
|
'number' => $value['number'],
|
|
'number' => $value['number'],
|
|
|
|
+ 'basic_type_id' => $value['basic_type_id'],
|
|
'price' => $value['price'],
|
|
'price' => $value['price'],
|
|
'mark' => $value['mark'] ?? '',
|
|
'mark' => $value['mark'] ?? '',
|
|
- 'title' => $value['title'] ?? '',
|
|
|
|
- 'code' => $value['code'] ?? '',
|
|
|
|
- 'size' => $value['size'] ?? '',
|
|
|
|
- 'unit' => $value['unit'] ?? 0,
|
|
|
|
- 'bar_code' => $value['bar_code'] ?? '',
|
|
|
|
];
|
|
];
|
|
}
|
|
}
|
|
PurchaseOrderInfo::insert($sub);
|
|
PurchaseOrderInfo::insert($sub);
|
|
@@ -97,12 +93,11 @@ class PurchaseOrderService extends Service
|
|
$material_model->other_fee = $data['other_fee'] ?? 0;
|
|
$material_model->other_fee = $data['other_fee'] ?? 0;
|
|
$material_model->discount_fee = $data['discount_fee'] ?? 0;
|
|
$material_model->discount_fee = $data['discount_fee'] ?? 0;
|
|
$material_model->purchase_total = $data['purchase_total'] ?? 0;
|
|
$material_model->purchase_total = $data['purchase_total'] ?? 0;
|
|
- $material_model->supplier = $data['supplier'] ?? '';
|
|
|
|
|
|
+ $material_model->supplier = $data['supplier'] ?? 0;
|
|
$material_model->purchase_id = $data['purchase_id'] ?? 0;
|
|
$material_model->purchase_id = $data['purchase_id'] ?? 0;
|
|
$material_model->order_type = $data['order_type'];
|
|
$material_model->order_type = $data['order_type'];
|
|
$material_model->sales_order_id = $data['sales_order_id'] ?? 0;
|
|
$material_model->sales_order_id = $data['sales_order_id'] ?? 0;
|
|
$material_model->mark = $data['mark'] ?? '';
|
|
$material_model->mark = $data['mark'] ?? '';
|
|
- $material_model->is_purchase_to_main = $data['is_purchase_to_main'];
|
|
|
|
$material_model->crt_id = $user['id'];
|
|
$material_model->crt_id = $user['id'];
|
|
$material_model->storehouse_id = $data['storehouse_id'];
|
|
$material_model->storehouse_id = $data['storehouse_id'];
|
|
$material_model->save();
|
|
$material_model->save();
|
|
@@ -116,13 +111,9 @@ class PurchaseOrderService extends Service
|
|
'storehouse_id' => $data['storehouse_id'] ?? 0,
|
|
'storehouse_id' => $data['storehouse_id'] ?? 0,
|
|
'product_id' => $value['product_id'],
|
|
'product_id' => $value['product_id'],
|
|
'number' => $value['number'],
|
|
'number' => $value['number'],
|
|
|
|
+ 'basic_type_id' => $value['basic_type_id'],
|
|
'price' => $value['price'],
|
|
'price' => $value['price'],
|
|
'mark' => $value['mark'] ?? '',
|
|
'mark' => $value['mark'] ?? '',
|
|
- 'title' => $value['title'] ?? '',
|
|
|
|
- 'code' => $value['code'] ?? '',
|
|
|
|
- 'size' => $value['size'] ?? '',
|
|
|
|
- 'unit' => $value['unit'] ?? 0,
|
|
|
|
- 'bar_code' => $value['bar_code'] ?? '',
|
|
|
|
];
|
|
];
|
|
}
|
|
}
|
|
PurchaseOrderInfo::insert($sub);
|
|
PurchaseOrderInfo::insert($sub);
|
|
@@ -147,10 +138,12 @@ class PurchaseOrderService extends Service
|
|
|
|
|
|
$order = PurchaseOrder::where('order_number',$data['order_number'])
|
|
$order = PurchaseOrder::where('order_number',$data['order_number'])
|
|
->where('del_time',0)
|
|
->where('del_time',0)
|
|
- ->select('id','order_number','depart_id','mark','state','crt_id','order_type','sales_order_id','supplier','purchase_id','total','other_fee','discount_fee','purchase_total','crt_time','is_purchase_to_main')
|
|
|
|
|
|
+ ->select('id','order_number','depart_id','mark','state','crt_id','order_type','sales_order_id','supplier','purchase_id','total','other_fee','discount_fee','purchase_total','crt_time','storehouse_id')
|
|
->first();
|
|
->first();
|
|
if(empty($order)) return [false, '采购订单不存在或已被删除'];
|
|
if(empty($order)) return [false, '采购订单不存在或已被删除'];
|
|
$order = $order->toArray();
|
|
$order = $order->toArray();
|
|
|
|
+ $order['storehouse_title'] = Storehouse::where('id',$order['storehouse_id'])->value('title');
|
|
|
|
+ $order['supplier_title'] = Supplier::where('id',$order['supplier'])->value('title');
|
|
$order['order_type_title'] = PurchaseOrder::$order_type[$order['order_type']] ?? '';
|
|
$order['order_type_title'] = PurchaseOrder::$order_type[$order['order_type']] ?? '';
|
|
$order['order_type_title'] = PurchaseOrder::$order_type[$order['order_type']] ?? '';
|
|
$order['order_type_title'] = PurchaseOrder::$order_type[$order['order_type']] ?? '';
|
|
$order['state_title'] = PurchaseOrder::$name[$order['state']] ?? '';
|
|
$order['state_title'] = PurchaseOrder::$name[$order['state']] ?? '';
|
|
@@ -161,11 +154,21 @@ class PurchaseOrderService extends Service
|
|
->toArray();
|
|
->toArray();
|
|
$order['purchase_title'] = $emp_map[$order['purchase_id']] ?? '';
|
|
$order['purchase_title'] = $emp_map[$order['purchase_id']] ?? '';
|
|
|
|
|
|
- $info = PurchaseOrderInfo::where('del_time',0)
|
|
|
|
|
|
+ $p_info = PurchaseOrderInfo::where('del_time',0)
|
|
->where('order_number',$data['order_number'])
|
|
->where('order_number',$data['order_number'])
|
|
- ->select('id','order_number','storehouse_id','product_id','number','mark','price','title','size','code','bar_code','purchase_order_id')
|
|
|
|
->get()->toArray();
|
|
->get()->toArray();
|
|
- $order['product'] = $info;
|
|
|
|
|
|
+ $basic_price = BasicType::whereIn('id',array_unique(array_column($p_info,'basic_type_id')))->pluck('title','id')->toArray();
|
|
|
|
+ $map = (new ProductService())->getProductDetail(array_column($p_info,'product_id'));
|
|
|
|
+ foreach ($p_info as $value){
|
|
|
|
+ $tmp = $map[$value['product_id']] ?? [];
|
|
|
|
+ $value['title'] = $tmp['title'] ?? "";
|
|
|
|
+ $value['code'] = $tmp['code'] ?? "";
|
|
|
|
+ $value['size'] = $tmp['size'] ?? "";
|
|
|
|
+ $value['unit'] = $tmp['unit'] ?? "";
|
|
|
|
+ $value['bar_code'] = $tmp['bar_code'] ?? "";
|
|
|
|
+ $value['basic_type_title'] = $basic_price[$value['basic_type_id']] ?? "";
|
|
|
|
+ $order['product'][] = $value;
|
|
|
|
+ }
|
|
$order['crt_name'] = $emp_map[$order['crt_id']] ?? '';
|
|
$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['crt_time'] = $order['crt_time'] ? date("Y-m-d H:i:s",$order['crt_time']): '';
|
|
|
|
|
|
@@ -210,7 +213,7 @@ class PurchaseOrderService extends Service
|
|
*/
|
|
*/
|
|
public function getList($data,$user){
|
|
public function getList($data,$user){
|
|
$model = new PurchaseOrder(['userData' => $user, 'search' => $data]);
|
|
$model = new PurchaseOrder(['userData' => $user, 'search' => $data]);
|
|
- $model = $model->where('del_time',0)->select('order_number','id','depart_id','top_depart_id','mark','crt_time','state','crt_id','order_type','sales_order_id','supplier','purchase_id','purchase_total','discount_fee','other_fee','total','is_purchase_to_main','storehouse_id')
|
|
|
|
|
|
+ $model = $model->where('del_time',0)->select('order_number','id','depart_id','top_depart_id','mark','crt_time','state','crt_id','order_type','sales_order_id','supplier','purchase_id','purchase_total','discount_fee','other_fee','total','storehouse_id')
|
|
->orderby('id', 'desc');
|
|
->orderby('id', 'desc');
|
|
if(! empty($data['order_number'])) $model->where('order_number', 'LIKE', '%'.$data['order_number'].'%');
|
|
if(! empty($data['order_number'])) $model->where('order_number', 'LIKE', '%'.$data['order_number'].'%');
|
|
if(! empty($data['depart_id'])) $model->where('depart_id', $data['depart_id']);
|
|
if(! empty($data['depart_id'])) $model->where('depart_id', $data['depart_id']);
|
|
@@ -249,6 +252,9 @@ class PurchaseOrderService extends Service
|
|
$storehouse = Storehouse::whereIn('id',array_unique(array_column($data['data'],'storehouse_id')))
|
|
$storehouse = Storehouse::whereIn('id',array_unique(array_column($data['data'],'storehouse_id')))
|
|
->pluck('title','id')
|
|
->pluck('title','id')
|
|
->toArray();
|
|
->toArray();
|
|
|
|
+ $supplier = Supplier::whereIn('id',array_unique(array_column($data['data'],'supplier')))
|
|
|
|
+ ->pluck('title','id')
|
|
|
|
+ ->toArray();
|
|
foreach ($data['data'] as $key => $value){
|
|
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]['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]['depart_name'] = $depart_map[$value['depart_id']] ?? '';
|
|
@@ -258,6 +264,7 @@ class PurchaseOrderService extends Service
|
|
$data['data'][$key]['state_title'] = PurchaseOrder::$name[$value['state']] ?? '';
|
|
$data['data'][$key]['state_title'] = PurchaseOrder::$name[$value['state']] ?? '';
|
|
$data['data'][$key]['sales_order_number'] = $sales[$value['sales_order_id']] ?? '';
|
|
$data['data'][$key]['sales_order_number'] = $sales[$value['sales_order_id']] ?? '';
|
|
$data['data'][$key]['storehouse_title'] = $storehouse[$value['storehouse_id']] ?? '';
|
|
$data['data'][$key]['storehouse_title'] = $storehouse[$value['storehouse_id']] ?? '';
|
|
|
|
+ $data['data'][$key]['supplier_title'] = $supplier[$value['supplier']] ?? '';
|
|
}
|
|
}
|
|
|
|
|
|
return $data;
|
|
return $data;
|
|
@@ -271,8 +278,9 @@ class PurchaseOrderService extends Service
|
|
*/
|
|
*/
|
|
public function orderRule(&$data, $user, $is_check = true){
|
|
public function orderRule(&$data, $user, $is_check = true){
|
|
if(empty($data['order_type'])) return [false,'采购订单类型不能为空'];
|
|
if(empty($data['order_type'])) return [false,'采购订单类型不能为空'];
|
|
|
|
+ if($data['order_type'] == PurchaseOrder::Order_type_two && empty($data['sales_order_id'])) return [false, PurchaseOrder::$order_type[PurchaseOrder::Order_type_two] . '必须选择合同'];
|
|
if($this->isEmpty($data,'product')) return [false,'产品不能为空'];
|
|
if($this->isEmpty($data,'product')) return [false,'产品不能为空'];
|
|
- if(! empty($data['storehouse_id'])) return [false,'请选择仓库'];
|
|
|
|
|
|
+ if(empty($data['storehouse_id'])) return [false,'请选择仓库'];
|
|
if(! empty($data['other_fee'])){
|
|
if(! empty($data['other_fee'])){
|
|
$res = $this->checkNumber($data['other_fee']);
|
|
$res = $this->checkNumber($data['other_fee']);
|
|
if(! $res) return [false, '其它费用请输入不超过两位小数并且大于0的数值'];
|
|
if(! $res) return [false, '其它费用请输入不超过两位小数并且大于0的数值'];
|