|
@@ -4847,23 +4847,22 @@ class Sale extends Base
|
|
|
['a.outCode', 'in', array_column($param['list'], 'outCode')],
|
|
|
])->column('c.supplierNo', 'a.outCode');
|
|
|
|
|
|
- //检查这些供应商编码是否开通了账号
|
|
|
- $temp_res = checkHasAccountBySupplierNos(array_values($suppliers));
|
|
|
-
|
|
|
+ if ($this->level != 3) {
|
|
|
+ //检查这些供应商编码是否开通了账号
|
|
|
+ $temp_res = checkHasAccountBySupplierNos(array_values($suppliers));
|
|
|
// ->whereIn('supplierNo', array_values($suppliers))
|
|
|
// ->column('supplierNo');
|
|
|
// $temp = [];
|
|
|
// foreach ($suppliers as $k => $v) {
|
|
|
// if (in_array($v, $temp_res)) $temp[] = $k;
|
|
|
// }
|
|
|
-
|
|
|
- if (!empty($temp_res)) return json_show(1003, '不允许处理已开通账号的供应商的单子', array_keys($temp_res));
|
|
|
-
|
|
|
+ if (!empty($temp_res)) return json_show(1003, '不允许处理已开通账号的供应商的单子', array_keys($temp_res));
|
|
|
+ }
|
|
|
|
|
|
// $user = GetUserInfo($param['token']);
|
|
|
$createrid = $this->uid;//$user['data']['id']??0;//$this->uid;
|
|
|
$creater = $this->uname;//$user['data']['nickname']??0;//$this->uname;
|
|
|
- $own_roleid = Db::name('user_role')->where(['is_del'=>0,'uid'=>$createrid,'status'=>1])->value('roleid',0);
|
|
|
+// $own_roleid = Db::name('user_role')->where(['is_del'=>0,'uid'=>$createrid,'status'=>1])->value('roleid',0);
|
|
|
|
|
|
//所有发货单信息
|
|
|
$order_out_infos = Db::name("order_out")
|
|
@@ -4872,6 +4871,26 @@ class Sale extends Base
|
|
|
->whereIn('outCode', array_column($param['list'], 'outCode'))
|
|
|
->column('id,status,send_num,orderCode,wsm_code,apply_id,apply_name', 'outCode');
|
|
|
|
|
|
+ //所有库管人员信息
|
|
|
+ $wsm_infos=Db::name('warehouse_info')
|
|
|
+ ->where(['is_del'=>0,'wsm_code'=>array_column($order_out_infos,'wsm_code')])
|
|
|
+ ->column('contactor','wsm_code');
|
|
|
+
|
|
|
+ //所有商品信息及供应商编码
|
|
|
+ $spuCodes=Db::name('sale')
|
|
|
+ ->where(['is_del'=>0,'orderCode'=>array_column($order_out_infos,'orderCode')])
|
|
|
+ ->column('good_code');
|
|
|
+ $supplierNo1 = Db::name('good_zixun')
|
|
|
+ ->where(['spuCode' => $spuCodes, 'is_del' => 0])
|
|
|
+ ->column('supplierNo','spuCode');
|
|
|
+ $supplierNo2 = Db::name('good')
|
|
|
+ ->where(['spuCode' => $spuCodes, 'is_del' => 0])
|
|
|
+ ->column('supplierNo','spuCode');
|
|
|
+ $supplierNos = array_unique(array_merge($supplierNo1,$supplierNo2));
|
|
|
+ $userCommon = new \app\admin\common\User();
|
|
|
+ $temp = $userCommon->handle('sGetList',['more_code'=>array_values($supplierNos)]);
|
|
|
+ $supplier_personid = array_column($temp,'person','code');
|
|
|
+
|
|
|
//处理数据
|
|
|
Db::startTrans();
|
|
|
try {
|
|
@@ -4895,29 +4914,37 @@ class Sale extends Base
|
|
|
return app_show(1005, '下列发货申请单号重复', [$value]);
|
|
|
} else $temp_out_codes[$value['outCode']] = $value['outCode'];
|
|
|
|
|
|
- if ($sale_infos[$order_out_infos[$value['outCode']]['orderCode']]['is_stock'] == 1) {
|
|
|
- if (!in_array($own_roleid, config('app.wsm_cgder_role'))) {
|
|
|
- Db::rollback();
|
|
|
- return app_show(1003, $value['outCode'] . '发货单只能由库管操作');
|
|
|
- }
|
|
|
- } else {
|
|
|
- if($sale_infos[$order_out_infos[$value['outCode']]['orderCode']]['order_type']==3 ||$sale_infos[$order_out_infos[$value['outCode']]['orderCode']]['order_type']==4 ){
|
|
|
- $personid = Db::name('good_zixun')->alias("a")->leftJoin("supplier b","a.supplierNo=b.code")
|
|
|
- ->where(['a.spuCode' => $sale_infos[$order_out_infos[$value['outCode']]['orderCode']]['good_code'], 'a.is_del' => 0])
|
|
|
- ->value('personid');
|
|
|
- }else{
|
|
|
- $personid = Db::name('good')->alias("a")->leftJoin("supplier b","a.supplierNo=b.code")
|
|
|
- ->where(['a.spuCode' =>
|
|
|
- $sale_infos[$order_out_infos[$value['outCode']]['orderCode']]['good_code'],'a.is_del' => 0])
|
|
|
- ->value('personid');
|
|
|
- }
|
|
|
+ if($this->level==2) {
|
|
|
|
|
|
- if ($createrid != $personid) {
|
|
|
- Db::rollback();
|
|
|
- return app_show(1003, $value['outCode'] . '发货单只能由供应商负责人操作');
|
|
|
- }
|
|
|
- }
|
|
|
+ //level2账号的话,库存品只能由库管操作,非库存品只能由供应商负责人操作,level3账号不限制
|
|
|
+ if ($sale_infos[$order_out_infos[$value['outCode']]['orderCode']]['is_stock'] == 1) {
|
|
|
+
|
|
|
+ if($wsm_infos[$order_out_infos[$value['outCode']]['wsm_code']]??0 != $createrid) throw new \think\Exception($value['outCode'] . '发货单只能由库管操作');
|
|
|
|
|
|
+// if (!in_array($own_roleid, config('app.wsm_cgder_role'))) {
|
|
|
+// Db::rollback();
|
|
|
+// return app_show(1003, $value['outCode'] . '发货单只能由库管操作');
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if ($sale_infos[$order_out_infos[$value['outCode']]['orderCode']]['order_type'] == 3 || $sale_infos[$order_out_infos[$value['outCode']]['orderCode']]['order_type'] == 4) {
|
|
|
+// $supplierNo = Db::name('good_zixun')
|
|
|
+//// ->leftJoin("supplier b", "a.supplierNo=b.code")
|
|
|
+// ->where(['spuCode' => $sale_infos[$order_out_infos[$value['outCode']]['orderCode']]['good_code'], 'is_del' => 0])
|
|
|
+// ->value('supplierNo');
|
|
|
+ } else {
|
|
|
+// $supplierNo = Db::name('good')
|
|
|
+//// ->alias("a")
|
|
|
+//// ->leftJoin("supplier b", "a.supplierNo=b.code")
|
|
|
+// ->where(['spuCode' =>$sale_infos[$order_out_infos[$value['outCode']]['orderCode']]['good_code'], 'is_del' => 0])
|
|
|
+// ->value('supplierNo');
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($createrid != $supplier_personid[$supplierNos[$sale_infos[$order_out_infos[$value['outCode']]['orderCode']]['good_code']]]) throw new \think\Exception($value['outCode'] . '发货单只能由供应商负责人操作');
|
|
|
+// Db::rollback();
|
|
|
+// return app_show(1003, $value['outCode'] . '发货单只能由供应商负责人操作');
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
//【发货单】
|
|
|
//查询已有发货单信息及状态
|
|
|
|