|
@@ -155,29 +155,49 @@ class U8XkyServerService extends Service
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if(! $is_add){
|
|
if(! $is_add){
|
|
|
- $bool = Inventory::where('del_time', 0)
|
|
|
|
|
- ->where('login_type', $user['login_type'])
|
|
|
|
|
- ->where('id', $id)
|
|
|
|
|
- ->where('status', '>', Inventory::STATE_ZERO)
|
|
|
|
|
- ->exists();
|
|
|
|
|
- if($bool) return [false, '存货记录状态已变更,编辑失败'];
|
|
|
|
|
|
|
+ $order = Inventory::where('id', $data['id'])->first();
|
|
|
|
|
+ if(empty($order)) return [false, '存货信息不存在或已被删除'];
|
|
|
|
|
+ $order = $order->toArray();
|
|
|
|
|
+ list($status, $msg) = $this->checkState(U8State::type_four, $user, $order['order_number']);
|
|
|
|
|
+ if(! $status) return [false, $msg];
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
return [true, ''];
|
|
return [true, ''];
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public function inventoryCommon($data,$user, $field = []){
|
|
|
|
|
- $model = Inventory::where('del_time',0)
|
|
|
|
|
-// ->where('crt_id', $user['userid'])
|
|
|
|
|
- ->where('login_type', $user['login_type'])
|
|
|
|
|
- ->orderby('id', 'desc');
|
|
|
|
|
|
|
+ public function inventoryCommon($data, $user, $field = []){
|
|
|
|
|
+ $type = U8State::type_four;
|
|
|
|
|
+
|
|
|
|
|
+ $model = Inventory::from('inventory as i')
|
|
|
|
|
+ ->leftJoin('u8_state as s', function ($join) use ($type, $user) {
|
|
|
|
|
+ $join->on('i.order_number', '=', 's.order_number')
|
|
|
|
|
+ ->where('s.type', '=', $type)
|
|
|
|
|
+ ->where('s.login_type', '=', $user['login_type'])
|
|
|
|
|
+ ->where('s.del_time', '=', 0);
|
|
|
|
|
+ })
|
|
|
|
|
+ ->where('i.del_time', 0)
|
|
|
|
|
+ ->where('i.login_type', $user['login_type'])
|
|
|
|
|
+ ->select('i.*', DB::raw('IFNULL(s.state, -1) as state'))
|
|
|
|
|
+ ->orderby('i.id', 'desc');
|
|
|
|
|
+
|
|
|
|
|
+ // 2. 状态过滤逻辑
|
|
|
|
|
+ if (isset($data['state']) && $data['state'] !== '') {
|
|
|
|
|
+ $state_filter = $data['state'];
|
|
|
|
|
+ if ($state_filter == -1) {
|
|
|
|
|
+ // 未发起审批:在状态表里找不到记录
|
|
|
|
|
+ $model->whereNull('s.state');
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 0:待审核 1:通过 2:驳回
|
|
|
|
|
+ $model->where('s.state', $state_filter);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if(! empty($data['id'])) $model->where('i.id', $data['id']);
|
|
|
|
|
|
|
|
- if(! empty($data['id'])) $model->where('id', $data['id']);
|
|
|
|
|
- if(isset($data['status'])) $model->where('status', $data['status']);
|
|
|
|
|
if(! empty($data['crt_time'][0]) && ! empty($data['crt_time'][1])) {
|
|
if(! empty($data['crt_time'][0]) && ! empty($data['crt_time'][1])) {
|
|
|
$return = $this->changeDateToTimeStampAboutRange($data['crt_time']);
|
|
$return = $this->changeDateToTimeStampAboutRange($data['crt_time']);
|
|
|
- $model->where('crt_time','>=',$return[0]);
|
|
|
|
|
- $model->where('crt_time','<=',$return[1]);
|
|
|
|
|
|
|
+ $model->where('i.crt_time', '>=', $return[0]);
|
|
|
|
|
+ $model->where('i.crt_time', '<=', $return[1]);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
return $model;
|
|
return $model;
|
|
@@ -202,52 +222,40 @@ class U8XkyServerService extends Service
|
|
|
public function fillInventoryData($data, $user){
|
|
public function fillInventoryData($data, $user){
|
|
|
if(empty($data['data'])) return $data;
|
|
if(empty($data['data'])) return $data;
|
|
|
|
|
|
|
|
- //状态
|
|
|
|
|
- $map = $this->returnState($data, Record::type_four, $user['login_type']);
|
|
|
|
|
-
|
|
|
|
|
- $e_map = DDEmployee::whereIn('crt_id', array_unique(array_column($data['data'], 'crt_id')))
|
|
|
|
|
|
|
+ $e_map = DDEmployee::whereIn('userid', array_unique(array_column($data['data'], 'crt_id')))
|
|
|
->where('login_type', $user['login_type'])
|
|
->where('login_type', $user['login_type'])
|
|
|
- ->pluck('name_id', 'id')
|
|
|
|
|
|
|
+ ->pluck('name', 'userid')
|
|
|
->toArray();
|
|
->toArray();
|
|
|
foreach ($data['data'] as $key => $value){
|
|
foreach ($data['data'] as $key => $value){
|
|
|
- $data['data'][$key]['crt_name'] = $e_map[$value['crt_id']] ?? "";
|
|
|
|
|
- $data['data'][$key]['crt_time'] = $value['crt_time'] ? date('Y-m-d H:i:s',$value['crt_time']) : '';
|
|
|
|
|
$data['data'][$key]['bSale'] = $value['bSale'] ? '是' : '否';
|
|
$data['data'][$key]['bSale'] = $value['bSale'] ? '是' : '否';
|
|
|
$data['data'][$key]['bExpSale'] = $value['bExpSale'] ? '是' : '否';
|
|
$data['data'][$key]['bExpSale'] = $value['bExpSale'] ? '是' : '否';
|
|
|
$data['data'][$key]['bPurchase'] = $value['bPurchase'] ? '是' : '否';
|
|
$data['data'][$key]['bPurchase'] = $value['bPurchase'] ? '是' : '否';
|
|
|
$data['data'][$key]['bSelf'] = $value['bSelf'] ? '是' : '否';
|
|
$data['data'][$key]['bSelf'] = $value['bSelf'] ? '是' : '否';
|
|
|
$data['data'][$key]['bComsume'] = $value['bComsume'] ? '是' : '否';
|
|
$data['data'][$key]['bComsume'] = $value['bComsume'] ? '是' : '否';
|
|
|
|
|
|
|
|
- if(isset($map[$value['order_number']])) {
|
|
|
|
|
- $m = $map[$value['order_number']];
|
|
|
|
|
- $state = $m;
|
|
|
|
|
- $state_title = Record::state_name[$state];
|
|
|
|
|
- }else{
|
|
|
|
|
- $state = Record::state_minus_one;
|
|
|
|
|
- $state_title = Record::state_name[$state];
|
|
|
|
|
- }
|
|
|
|
|
- $data['data'][$key]['state'] = $state;
|
|
|
|
|
- $data['data'][$key]['state_title'] = $state_title;
|
|
|
|
|
|
|
+ $data['data'][$key]['crt_name'] = $e_map[$value['crt_id']] ?? "";
|
|
|
|
|
+ $data['data'][$key]['crt_time'] = $value['crt_time'] ? date('Y-m-d H:i:s',$value['crt_time']) : '';
|
|
|
|
|
+ $data['data'][$key]['state_title'] = Record::state_name[$value['state']];
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
return $data;
|
|
return $data;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public function inventoryDel($data){
|
|
|
|
|
|
|
+ public function inventoryDel($data, $user){
|
|
|
if($this->isEmpty($data,'id')) return [false,'请选择数据!'];
|
|
if($this->isEmpty($data,'id')) return [false,'请选择数据!'];
|
|
|
|
|
|
|
|
try {
|
|
try {
|
|
|
DB::beginTransaction();
|
|
DB::beginTransaction();
|
|
|
$time = time();
|
|
$time = time();
|
|
|
|
|
|
|
|
- $bool = Inventory::where('del_time', 0)
|
|
|
|
|
- ->whereIn('id', $data['id'])
|
|
|
|
|
- ->where('status', '>', Inventory::STATE_ZERO)
|
|
|
|
|
- ->exists();
|
|
|
|
|
- if($bool) return [false, '存货记录状态已变更,删除失败'];
|
|
|
|
|
|
|
+ $order = Inventory::where('id', $data['id'])->first();
|
|
|
|
|
+ if(empty($order)) return [false, '存货信息不存在或已被删除'];
|
|
|
|
|
+ $order = $order->toArray();
|
|
|
|
|
+ list($status, $msg) = $this->checkState(U8State::type_five, $user, $order['order_number']);
|
|
|
|
|
+ if(! $status) return [false, $msg];
|
|
|
|
|
|
|
|
Inventory::where('del_time',0)
|
|
Inventory::where('del_time',0)
|
|
|
- ->whereIn('id',$data['id'])
|
|
|
|
|
|
|
+ ->where('id',$data['id'])
|
|
|
->update(['del_time' => $time]);
|
|
->update(['del_time' => $time]);
|
|
|
|
|
|
|
|
DB::commit();
|
|
DB::commit();
|
|
@@ -261,6 +269,24 @@ class U8XkyServerService extends Service
|
|
|
|
|
|
|
|
//新增存货到本地-----------------------------------------------
|
|
//新增存货到本地-----------------------------------------------
|
|
|
|
|
|
|
|
|
|
+ private function checkState($type, $user, $order_number){
|
|
|
|
|
+ $lastRecord = U8State::where('del_time', 0)
|
|
|
|
|
+ ->where('type', $type)
|
|
|
|
|
+ ->where('login_type', $user['login_type'])
|
|
|
|
|
+ ->where('order_number', $order_number)
|
|
|
|
|
+ ->first(['state']); // 只取状态字段
|
|
|
|
|
+ if ($lastRecord) {
|
|
|
|
|
+ $text_o = U8State::type_name[$type];
|
|
|
|
|
+ // 如果状态是 0 (待审核) 或 1 (审核通过),拦截
|
|
|
|
|
+ if (in_array($lastRecord->state, [U8State::state_zero, U8State::state_one])) {
|
|
|
|
|
+ $text = U8State::state_name[$lastRecord->state];
|
|
|
|
|
+ return [false, $text_o . ' (' . $order_number . ') 处于' . $text . ',操作失败'];
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return [true, ''];
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
//新增供应商到本地-----------------------------------------------
|
|
//新增供应商到本地-----------------------------------------------
|
|
|
|
|
|
|
|
public function vendorAdd($data, $user){
|
|
public function vendorAdd($data, $user){
|
|
@@ -348,27 +374,47 @@ class U8XkyServerService extends Service
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if(! $is_add){
|
|
if(! $is_add){
|
|
|
- $bool = Vendor::where('del_time', 0)
|
|
|
|
|
- ->where('id', $id)
|
|
|
|
|
- ->where('status', '>', Vendor::STATE_ZERO)
|
|
|
|
|
- ->exists();
|
|
|
|
|
- if($bool) return [false, '供应商记录状态已变更,编辑失败'];
|
|
|
|
|
|
|
+ $order = Vendor::where('id', $data['id'])->first();
|
|
|
|
|
+ if(empty($order)) return [false, '供应商信息不存在或已被删除'];
|
|
|
|
|
+ $order = $order->toArray();
|
|
|
|
|
+ list($status, $msg) = $this->checkState(U8State::type_five, $user, $order['order_number']);
|
|
|
|
|
+ if(! $status) return [false, $msg];
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
return [true, ''];
|
|
return [true, ''];
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public function vendorCommon($data,$user, $field = []){
|
|
|
|
|
- $model = Vendor::where('del_time',0)
|
|
|
|
|
- ->where('crt_id', $user['userid'])
|
|
|
|
|
- ->orderby('id', 'desc');
|
|
|
|
|
|
|
+ public function vendorCommon($data, $user, $field = []){
|
|
|
|
|
+ $type = U8State::type_five;
|
|
|
|
|
+
|
|
|
|
|
+ $model = Vendor::from('vendor as v')
|
|
|
|
|
+ ->leftJoin('u8_state as s', function ($join) use ($type, $user) {
|
|
|
|
|
+ $join->on('v.order_number', '=', 's.order_number')
|
|
|
|
|
+ ->where('s.type', '=', $type)
|
|
|
|
|
+ ->where('s.login_type', '=', $user['login_type'])
|
|
|
|
|
+ ->where('s.del_time', '=', 0);
|
|
|
|
|
+ })
|
|
|
|
|
+ ->where('v.del_time', 0)
|
|
|
|
|
+ ->where('v.crt_id', $user['userid'])
|
|
|
|
|
+ ->select('v.*', DB::raw('IFNULL(s.state, -1) as state'))
|
|
|
|
|
+ ->orderby('v.id', 'desc');
|
|
|
|
|
+
|
|
|
|
|
+ if (isset($data['state']) && $data['state'] !== '') {
|
|
|
|
|
+ $state_filter = $data['state'];
|
|
|
|
|
+ if ($state_filter == -1) {
|
|
|
|
|
+ // 未发起审批:u8_states 表里没记录,s.id 就会是 NULL
|
|
|
|
|
+ $model->whereNull('s.id');
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 0:待审核 1:通过 2:驳回
|
|
|
|
|
+ $model->where('s.state', $state_filter);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- if(! empty($data['id'])) $model->where('id', $data['id']);
|
|
|
|
|
- if(isset($data['status'])) $model->where('status', $data['status']);
|
|
|
|
|
|
|
+ if(! empty($data['id'])) $model->where('v.id', $data['id']);
|
|
|
if(! empty($data['crt_time'][0]) && ! empty($data['crt_time'][1])) {
|
|
if(! empty($data['crt_time'][0]) && ! empty($data['crt_time'][1])) {
|
|
|
$return = $this->changeDateToTimeStampAboutRange($data['crt_time']);
|
|
$return = $this->changeDateToTimeStampAboutRange($data['crt_time']);
|
|
|
- $model->where('crt_time','>=',$return[0]);
|
|
|
|
|
- $model->where('crt_time','<=',$return[1]);
|
|
|
|
|
|
|
+ $model->where('v.crt_time', '>=', $return[0]);
|
|
|
|
|
+ $model->where('v.crt_time', '<=', $return[1]);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
return $model;
|
|
return $model;
|
|
@@ -385,27 +431,14 @@ class U8XkyServerService extends Service
|
|
|
public function fillVendorData($data, $user){
|
|
public function fillVendorData($data, $user){
|
|
|
if(empty($data['data'])) return $data;
|
|
if(empty($data['data'])) return $data;
|
|
|
|
|
|
|
|
- //状态
|
|
|
|
|
- $map = $this->returnState($data, Record::type_five, $user['login_type']);
|
|
|
|
|
-
|
|
|
|
|
- $e_map = DDEmployee::whereIn('crt_id', array_unique(array_column($data['data'], 'crt_id')))
|
|
|
|
|
|
|
+ $e_map = DDEmployee::whereIn('userid', array_unique(array_column($data['data'], 'crt_id')))
|
|
|
->where('login_type', $user['login_type'])
|
|
->where('login_type', $user['login_type'])
|
|
|
- ->pluck('name_id', 'id')
|
|
|
|
|
|
|
+ ->pluck('name', 'userid')
|
|
|
->toArray();
|
|
->toArray();
|
|
|
foreach ($data['data'] as $key => $value){
|
|
foreach ($data['data'] as $key => $value){
|
|
|
$data['data'][$key]['crt_name'] = $e_map[$value['crt_id']] ?? "";
|
|
$data['data'][$key]['crt_name'] = $e_map[$value['crt_id']] ?? "";
|
|
|
$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']) : '';
|
|
|
-
|
|
|
|
|
- if(isset($map[$value['order_number']])) {
|
|
|
|
|
- $m = $map[$value['order_number']];
|
|
|
|
|
- $state = $m;
|
|
|
|
|
- $state_title = Record::state_name[$state];
|
|
|
|
|
- }else{
|
|
|
|
|
- $state = Record::state_minus_one;
|
|
|
|
|
- $state_title = Record::state_name[$state];
|
|
|
|
|
- }
|
|
|
|
|
- $data['data'][$key]['state'] = $state;
|
|
|
|
|
- $data['data'][$key]['state_title'] = $state_title;
|
|
|
|
|
|
|
+ $data['data'][$key]['state_title'] = Record::state_name[$value['state']];
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
return $data;
|
|
return $data;
|
|
@@ -419,21 +452,21 @@ class U8XkyServerService extends Service
|
|
|
return [true, $return];
|
|
return [true, $return];
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public function vendorDel($data){
|
|
|
|
|
|
|
+ public function vendorDel($data, $user){
|
|
|
if($this->isEmpty($data,'id')) return [false,'请选择数据!'];
|
|
if($this->isEmpty($data,'id')) return [false,'请选择数据!'];
|
|
|
|
|
|
|
|
try {
|
|
try {
|
|
|
DB::beginTransaction();
|
|
DB::beginTransaction();
|
|
|
$time = time();
|
|
$time = time();
|
|
|
|
|
|
|
|
- $bool = Vendor::where('del_time', 0)
|
|
|
|
|
- ->whereIn('id', $data['id'])
|
|
|
|
|
- ->where('status', '>', Inventory::STATE_ZERO)
|
|
|
|
|
- ->exists();
|
|
|
|
|
- if($bool) return [false, '供应商记录状态已变更,删除失败'];
|
|
|
|
|
|
|
+ $order = Vendor::where('id', $data['id'])->first();
|
|
|
|
|
+ if(empty($order)) return [false, '供应商信息不存在或已被删除'];
|
|
|
|
|
+ $order = $order->toArray();
|
|
|
|
|
+ list($status, $msg) = $this->checkState(U8State::type_five, $user, $order['order_number']);
|
|
|
|
|
+ if(! $status) return [false, $msg];
|
|
|
|
|
|
|
|
Vendor::where('del_time',0)
|
|
Vendor::where('del_time',0)
|
|
|
- ->whereIn('id',$data['id'])
|
|
|
|
|
|
|
+ ->where('id',$data['id'])
|
|
|
->update(['del_time' => $time]);
|
|
->update(['del_time' => $time]);
|
|
|
|
|
|
|
|
DB::commit();
|
|
DB::commit();
|