|
@@ -17,11 +17,11 @@ class ReorderChild extends Base
|
|
|
public function add()
|
|
|
{
|
|
|
|
|
|
- $param = $this->request->only(['returnCode', 'outCode', 'list'], 'post', 'trim');
|
|
|
+ $param = $this->request->only(['returnCode', 'outCode' => '', 'list'], 'post', 'trim');
|
|
|
|
|
|
$val = Validate::rule([
|
|
|
'returnCode|退货单编号' => 'require',
|
|
|
- 'outCode|发货单编号' => 'require',
|
|
|
+// 'outCode|发货单编号' => 'require',
|
|
|
'list|退货工单集合' => 'require|array|max:100',
|
|
|
]);
|
|
|
if ($val->check($param) == false) return json_show(1004, $val->getError());
|
|
@@ -34,27 +34,28 @@ class ReorderChild extends Base
|
|
|
if ($saleReturn['status'] != 11) return json_show(1004, '退货单状态有误');
|
|
|
|
|
|
$sale = Db::name('sale')
|
|
|
- ->field('id,sale_price,good_num,total_price')
|
|
|
+ ->field('id,sale_price,good_num,total_price,is_stock')
|
|
|
->where(['is_del' => 0, 'orderCode' => $saleReturn['orderCode']])
|
|
|
->findOrEmpty();
|
|
|
if (empty($sale)) return json_show(1004, '销售单不存在');
|
|
|
|
|
|
- //所有发货工单
|
|
|
- $orderOutChild = Db::name('order_out_child')
|
|
|
- ->where(['is_del' => 0, 'outChildCode' => array_unique(array_column($param['list'], 'outChildCode'))])
|
|
|
- ->column('outCode,wsm_code,num,status', 'outChildCode');
|
|
|
-
|
|
|
- $saleReturnAddr = Db::name('sale_returnaddr')
|
|
|
- ->field('id,return_num,is_sale_return_child')
|
|
|
- ->where(['is_del' => 0, 'returnCode' => $param['returnCode'], 'outCode' => $param['outCode']])
|
|
|
- ->findOrEmpty();
|
|
|
- if (empty($saleReturnAddr)) return json_show(1004, '该退货地址不存在');
|
|
|
- if ($saleReturnAddr['is_sale_return_child'] == 1) return json_show(1004, '该退货地址不能重复设置退货工单');
|
|
|
- if ($saleReturnAddr['return_num'] != array_sum(array_column($param['list'], 'return_num'))) return json_show(1004, '数量错误');
|
|
|
+ if ($param['outCode'] != '') {
|
|
|
+ //所有发货工单
|
|
|
+ $orderOutChild = Db::name('order_out_child')
|
|
|
+ ->where(['is_del' => 0, 'outChildCode' => array_unique(array_column($param['list'], 'outChildCode'))])
|
|
|
+ ->column('outCode,wsm_code,num,status', 'outChildCode');
|
|
|
|
|
|
+ $saleReturnAddr = Db::name('sale_returnaddr')
|
|
|
+ ->field('id,return_num,is_sale_return_child')
|
|
|
+ ->where(['is_del' => 0, 'returnCode' => $param['returnCode'], 'outCode' => $param['outCode']])
|
|
|
+ ->findOrEmpty();
|
|
|
+ if (empty($saleReturnAddr)) return json_show(1004, '该退货地址不存在');
|
|
|
+ if ($saleReturnAddr['is_sale_return_child'] == 1) return json_show(1004, '该退货地址不能重复设置退货工单');
|
|
|
+ if ($saleReturnAddr['return_num'] != array_sum(array_column($param['list'], 'return_num'))) return json_show(1004, '数量错误');
|
|
|
|
|
|
+ }
|
|
|
$val_child = Validate::rule([
|
|
|
- 'outChildCode|发货工单号' => 'require',
|
|
|
+// 'outChildCode|发货工单号' => 'require',
|
|
|
'return_num|退货数量' => 'require|number|gt:0|max:999999999999',
|
|
|
'return_wsm_code|退货仓库编码' => 'require'
|
|
|
]);
|
|
@@ -68,9 +69,12 @@ class ReorderChild extends Base
|
|
|
$date = date('Y-m-d H:i:s');
|
|
|
|
|
|
//维护退货地址
|
|
|
- Db::name('sale_returnaddr')
|
|
|
- ->where(['id' => $saleReturnAddr['id'], 'is_del' => 0, 'is_sale_return_child' => 0])
|
|
|
- ->update(['is_sale_return_child' => 1, 'updatetime' => $date]);
|
|
|
+ if (isset($saleReturnAddr)) {
|
|
|
+ Db::name('sale_returnaddr')
|
|
|
+ ->where(['id' => $saleReturnAddr['id'], 'is_del' => 0, 'is_sale_return_child' => 0])
|
|
|
+ ->update(['is_sale_return_child' => 1, 'updatetime' => $date]);
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
//生成售前退货工单
|
|
|
$insert = [];
|
|
@@ -84,7 +88,7 @@ class ReorderChild extends Base
|
|
|
'returnCode' => $param['returnCode'],
|
|
|
'outCode' => $param['outCode'],
|
|
|
'outChildCode' => $value['outChildCode'] ?? '',
|
|
|
- 'order_out_child_status' => $orderOutChild[$value['outChildCode']]['status'],
|
|
|
+ 'order_out_child_status' => $orderOutChild[$value['outChildCode']]['status'] ?? 0,
|
|
|
'saleReturnChildCode' => substr(makeNo('KCC'), 0, -2) . str_pad($i++, 2, '0', STR_PAD_LEFT),
|
|
|
// 'type' => $param['type'],
|
|
|
'companyNo' => $saleReturn['companyNo'],
|
|
@@ -97,8 +101,8 @@ class ReorderChild extends Base
|
|
|
'addtime' => $date,
|
|
|
'updatetime' => $date,
|
|
|
'record' => '',
|
|
|
- 'send_wsm_code' => $orderOutChild[$value['outChildCode']]['wsm_code'],
|
|
|
- 'send_num' => $orderOutChild[$value['outChildCode']]['num'],
|
|
|
+ 'send_wsm_code' => $orderOutChild[$value['outChildCode']]['wsm_code'] ?? '',
|
|
|
+ 'send_num' => $orderOutChild[$value['outChildCode']]['num'] ?? 0,
|
|
|
'return_num' => $value['return_num'],
|
|
|
'return_wsm_code' => $value['return_wsm_code'],
|
|
|
'good_receive_type' => 0,
|