|
@@ -22,7 +22,7 @@ class PurchaseOrderService extends Service
|
|
|
* @return array
|
|
|
*/
|
|
|
public function edit($data,$user){
|
|
|
- list($status,$msg) = $this->orderRule($data,false);
|
|
|
+ list($status,$msg) = $this->orderRule($data,$user, false);
|
|
|
if(!$status) return [$status,$msg];
|
|
|
|
|
|
try{
|
|
@@ -30,6 +30,7 @@ class PurchaseOrderService extends Service
|
|
|
$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->top_depart_id = $data['top_depart_id'] ?? 0;
|
|
|
$material_model->rate = $data['rate'] ?? 0;
|
|
|
$material_model->total = $data['total'] ?? 0;
|
|
|
$material_model->other_fee = $data['other_fee'] ?? 0;
|
|
@@ -82,13 +83,14 @@ class PurchaseOrderService extends Service
|
|
|
* @return array
|
|
|
*/
|
|
|
public function add($data,$user){
|
|
|
- list($status,$msg) = $this->orderRule($data);
|
|
|
+ list($status,$msg) = $this->orderRule($data, $user);
|
|
|
if(!$status) return [$status,$msg];
|
|
|
try{
|
|
|
DB::beginTransaction();
|
|
|
$material_model = new PurchaseOrder();
|
|
|
$material_model->order_number = $data['order_number'];
|
|
|
$material_model->depart_id = $data['depart_id'] ?? 0;
|
|
|
+ $material_model->top_depart_id = $data['top_depart_id'] ?? 0;
|
|
|
$material_model->rate = $data['rate'] ?? 0;
|
|
|
$material_model->total = $data['total'] ?? 0;
|
|
|
$material_model->other_fee = $data['other_fee'] ?? 0;
|
|
@@ -204,8 +206,9 @@ class PurchaseOrderService extends Service
|
|
|
* @return array
|
|
|
*/
|
|
|
public function getList($data,$user){
|
|
|
- $model = PurchaseOrder::where('del_time',0)
|
|
|
- ->select('order_number','id','depart_id','mark','crt_time','state','crt_id','order_type','sales_order_id','supplier','purchase_id','purchase_total','rate','discount_fee','other_fee','total')
|
|
|
+ $model = new PurchaseOrder(['userData' => $user]);
|
|
|
+ $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','rate','discount_fee','other_fee','total','is_purchase_to_main')
|
|
|
->orderby('id', 'desc');
|
|
|
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']);
|
|
@@ -260,7 +263,7 @@ class PurchaseOrderService extends Service
|
|
|
* @param $is_check
|
|
|
* @return array
|
|
|
*/
|
|
|
- public function orderRule(&$data, $is_check = true){
|
|
|
+ public function orderRule(&$data, $user, $is_check = true){
|
|
|
if(empty($data['order_type'])) return [false,'采购订单类型不能为空'];
|
|
|
if($this->isEmpty($data,'product')) return [false,'产品不能为空'];
|
|
|
if(! empty($data['rate'])){
|
|
@@ -289,6 +292,10 @@ class PurchaseOrderService extends Service
|
|
|
if(! $res) return [false,'请输入正确的产品数量'];
|
|
|
}
|
|
|
|
|
|
+ //所属部门 以及 顶级部门
|
|
|
+ if(empty($data['depart_id'])) $data['depart_id'] = $this->getDepart($user);
|
|
|
+ $data['top_depart_id'] = $user['depart_map'][$data['depart_id']] ?? 0;
|
|
|
+
|
|
|
if($is_check){
|
|
|
$order_number = (new OrderNoService())->createOrderNumber(PurchaseOrder::prefix);
|
|
|
if(empty($order_number)) return [false,'采购单号生成失败!'];
|