|
@@ -5,7 +5,7 @@ namespace app\admin\controller;
|
|
|
use app\abutment\model\SupplierRelationUser;
|
|
|
use app\abutment\model\SupplierUser;
|
|
|
use app\admin\model\GoodLog;
|
|
|
-use app\admin\model\ProcessOrder;
|
|
|
+use app\admin\model\GoodStockInfo;use app\admin\model\ProcessOrder;
|
|
|
use Exception;
|
|
|
use think\App;
|
|
|
use think\facade\Cache;
|
|
@@ -94,16 +94,15 @@ class Sale extends Base
|
|
|
}
|
|
|
if ($goodinfo['is_stock'] == 1) {
|
|
|
$stock = Db::name("good_stock")->alias("a")->leftJoin("warehouse_info b", "a.wsm_code=b.wsm_code")->where
|
|
|
- (["spuCode" => $spuCode, "a.is_del" => 0, "a.status" => 1, "b.wsm_type" => 5, "b.companyNo" => $supplierNo])->field("a.id,a.wait_in_stock,a.usable_stock,a.wait_out_stock")->find();
|
|
|
+ (["spuCode" => $spuCode, "a.is_del" => 0, "a.status" => 1, "b.wsm_type" => 5, "b.companyNo" =>
|
|
|
+ $supplierNo])->field("a.id,a.wait_in_stock,a.usable_stock,a.wait_out_stock,a.wsm_code")->find();
|
|
|
if ($stock == false || $stock['usable_stock'] < $good_num) {
|
|
|
return error_show(1003, "库存数量不足");
|
|
|
}
|
|
|
-// if($stock['usable_stock']>0 && $stock['usable_stock']<$good_num){
|
|
|
-// return error_show(1003,"可用库存数量不足");
|
|
|
-// }
|
|
|
-// if($stock['usable_stock']== 0 && $stock['wait_in_stock']- $stock['presale_stock']<$good_num){
|
|
|
-// return error_show(1003,"待入库存数量不足");
|
|
|
-// }
|
|
|
+ $stock_num =Db::name("good_stock_info")->where(["stockid"=>$stock['id']])->sum('balance_num');
|
|
|
+ if($stock_num < $good_num){
|
|
|
+ return error_show(1003, "Bn库存数量不足");
|
|
|
+ }
|
|
|
$origin_price = 0;
|
|
|
} else {
|
|
|
if ($is_activity == 0) {
|
|
@@ -299,38 +298,36 @@ class Sale extends Base
|
|
|
}
|
|
|
} else {
|
|
|
$outstatus = 1;
|
|
|
- $bol = $this->RelaCgd([
|
|
|
- 'orderCode' => $orderCode,
|
|
|
- "good_num" => $good_num,
|
|
|
- "spuCode" => $spuCode,
|
|
|
- "companyNo" => $supplierNo,
|
|
|
- "cost_fee" => isset($good['cost_fee']) ? $good['cost_fee'] : 0,
|
|
|
- 'order_type' => $data['order_type'],
|
|
|
- 'order_source' => $data['order_source'],
|
|
|
- ], $standing_book_da);
|
|
|
- if ($bol == false) {
|
|
|
- Db::rollback();
|
|
|
- return error_show(1002, "库存商品关联采购单失败");
|
|
|
- }
|
|
|
+// $bol = $this->RelaCgd([
|
|
|
+// 'orderCode' => $orderCode,
|
|
|
+// "good_num" => $good_num,
|
|
|
+// "spuCode" => $spuCode,
|
|
|
+// "companyNo" => $supplierNo,
|
|
|
+// "cost_fee" => isset($good['cost_fee']) ? $good['cost_fee'] : 0,
|
|
|
+// 'order_type' => $data['order_type'],
|
|
|
+// 'order_source' => $data['order_source'],
|
|
|
+// ], $standing_book_da);
|
|
|
+// if ($bol == false) {
|
|
|
+// Db::rollback();
|
|
|
+// return error_show(1002, "库存商品关联采购单失败");
|
|
|
+// }
|
|
|
if (isset($stock)) {
|
|
|
-
|
|
|
-// if($stock['usable_stock']==0){
|
|
|
-// $stck = ["presale_stock"=>$stock['presale_stock']+$good_num,
|
|
|
-// "updatetime"=>date("Y-m-d H:i:s")
|
|
|
-// ];
|
|
|
-// }else{
|
|
|
$stck = [
|
|
|
"usable_stock" => $stock['usable_stock'] - $good_num,
|
|
|
"wait_out_stock" => $stock['wait_out_stock'] + $good_num,
|
|
|
"updatetime" => date("Y-m-d H:i:s")
|
|
|
];
|
|
|
-// }
|
|
|
|
|
|
$upad = Db::name("good_stock")->where($stock)->update($stck);
|
|
|
if ($upad == false) {
|
|
|
Db::rollback();
|
|
|
return error_show(1002, "库存商品更新库存失败");
|
|
|
}
|
|
|
+ $stockinfo =GoodStockInfo::OrderBn($orderCode,$stock['id'],$good_num);
|
|
|
+ if($stockinfo==false){
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1002, "Bn库存更新库存失败");
|
|
|
+ }
|
|
|
//商品变动日志表,good_log_code字段存储采购单号
|
|
|
$good_data[] = ['good_log_code' => $orderCode, "stock_id" => $stock['id'], "type" => 2, 'stock' => $good_num, "stock_name" => "usable_stock"];
|
|
|
$good_data[] = ['good_log_code' => $orderCode, "stock_id" => $stock['id'], "type" => 1, 'stock' => $good_num, "stock_name" => "wait_out_stock"];
|
|
@@ -366,43 +363,44 @@ class Sale extends Base
|
|
|
$temp['arrive_time'] = $arrtime;
|
|
|
$vmp = Db::name('order_addr')->insert($temp, true);
|
|
|
if ($vmp > 0) {
|
|
|
- // if($is_stock==1) {
|
|
|
- $order = Db::name("order_num")->where(["orderCode" => $orderCode, "status" => 1])->where([["wsend_num", ">=", 0]])
|
|
|
- ->lock(true)->find();
|
|
|
- if ($order == false) {
|
|
|
- return error_show(1004, "未找到可以发货得采购单数据");
|
|
|
- }
|
|
|
- $num = $value['receipt_quantity'];
|
|
|
- $outCode = makeNo("DF");
|
|
|
- //改变编码规则,将原来的outCode后两位换成序列号
|
|
|
- //str_pad字符串填充
|
|
|
- $outCode = substr($outCode, 0, -2) . str_pad($i, 2, '0', STR_PAD_LEFT);
|
|
|
- $i++;
|
|
|
- $order['wsend_num'] -= $num;
|
|
|
- $order['send_num'] += $num;
|
|
|
- $or = Db::name("order_num")->save($order);
|
|
|
- if ($or == false) {
|
|
|
- Db::rollback();
|
|
|
- return error_show(1002, "发货地址添加创建失败");
|
|
|
- }
|
|
|
- $tep = [
|
|
|
- "cgdNo" => $order['cgdNo'],
|
|
|
- "outCode" => $outCode,
|
|
|
- "send_num" => $num,
|
|
|
- "status" => 1,
|
|
|
- "addtime" => date("Y-m-d H:i:s"),
|
|
|
- "updatetime" => date("Y-m-d H:i:s")
|
|
|
- ];
|
|
|
- $sen = Db::name("order_send")->save($tep);
|
|
|
- if ($sen == false) {
|
|
|
- Db::rollback();
|
|
|
- return error_show(1002, "发货地址添加创建失败");
|
|
|
- }
|
|
|
-
|
|
|
- $cgdinfo = Db::name("purchease_order")->where(["cgdNo" => $order['cgdNo']])->find();
|
|
|
- if ($cgdinfo == false) {
|
|
|
- Db::rollback();
|
|
|
- return error_show(1002, "未匹配到采购数据");
|
|
|
+ if($is_stock!=1) {
|
|
|
+ $order = Db::name("order_num")->where(["orderCode" => $orderCode, "status" => 1])->where([["wsend_num", ">=", 0]])
|
|
|
+ ->lock(true)->find();
|
|
|
+ if ($order == false) {
|
|
|
+ return error_show(1004, "未找到可以发货得采购单数据");
|
|
|
+ }
|
|
|
+ $num = $value['receipt_quantity'];
|
|
|
+ $outCode = makeNo("DF");
|
|
|
+ //改变编码规则,将原来的outCode后两位换成序列号
|
|
|
+ //str_pad字符串填充
|
|
|
+ $outCode = substr($outCode, 0, -2) . str_pad($i, 2, '0', STR_PAD_LEFT);
|
|
|
+ $i++;
|
|
|
+ $order['wsend_num'] -= $num;
|
|
|
+ $order['send_num'] += $num;
|
|
|
+ $or = Db::name("order_num")->save($order);
|
|
|
+ if ($or == false) {
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1002, "发货地址添加创建失败");
|
|
|
+ }
|
|
|
+ $tep = [
|
|
|
+ "cgdNo" => $order['cgdNo'],
|
|
|
+ "outCode" => $outCode,
|
|
|
+ "send_num" => $num,
|
|
|
+ "status" => 1,
|
|
|
+ "addtime" => date("Y-m-d H:i:s"),
|
|
|
+ "updatetime" => date("Y-m-d H:i:s")
|
|
|
+ ];
|
|
|
+ $sen = Db::name("order_send")->save($tep);
|
|
|
+ if ($sen == false) {
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1002, "发货地址添加创建失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ $cgdinfo = Db::name("purchease_order")->where(["cgdNo" => $order['cgdNo']])->find();
|
|
|
+ if ($cgdinfo == false) {
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1002, "未匹配到采购数据");
|
|
|
+ }
|
|
|
}
|
|
|
$out = [
|
|
|
"orderCode" => $orderCode,
|
|
@@ -417,7 +415,7 @@ class Sale extends Base
|
|
|
"send_num" => $num,
|
|
|
"check_num" => 0,
|
|
|
"error_num" => 0,
|
|
|
- "wsm_code" => $cgdinfo['wsm_code'],
|
|
|
+ "wsm_code" => $is_stock == 1 ?$stock['wsm_code']:$cgdinfo['wsm_code'],
|
|
|
"order_type" => $is_stock == 1 ? 1 : 2,
|
|
|
"status" => $outstatus,
|
|
|
"addtime" => date("Y-m-d H:i:s"),
|
|
@@ -447,9 +445,10 @@ class Sale extends Base
|
|
|
// $standing_book_da['outCode'] = $outCode;
|
|
|
if (isset($standing_book_da['outCode'])) $standing_book_da['outCode'][] = $outCode;
|
|
|
else $standing_book_da['outCode'] = [$outCode];
|
|
|
- }
|
|
|
- // }
|
|
|
- } else {
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ else {
|
|
|
Db::rollback();
|
|
|
return error_show(1002, "发货地址添加创建失败");
|
|
|
}
|
|
@@ -680,15 +679,15 @@ class Sale extends Base
|
|
|
$vmp = Db::name('order_addr')->insert($temp, true);
|
|
|
if ($vmp > 0) {
|
|
|
$num = $value['receipt_quantity'];
|
|
|
- $order = Db::name("order_num")->where(["orderCode" => $orderCode, "status" => 1])->where([["wsend_num", ">=", 0]])
|
|
|
+ $outCode = makeNo("DF");
|
|
|
+ //维护商品所在仓库的库存 --- start
|
|
|
+ if ($etid['is_stock'] != 1){
|
|
|
+ $order = Db::name("order_num")->where(["orderCode" => $orderCode, "status" => 1])->where([["wsend_num", ">=", 0]])
|
|
|
->find();
|
|
|
if (empty($order) || $order['wsend_num'] < $num) {
|
|
|
return error_show(1004, "未找到可以发货得采购单数据");
|
|
|
}
|
|
|
|
|
|
- $outCode = makeNo("DF");
|
|
|
-
|
|
|
-
|
|
|
//改变编码规则,将原来的outCode后两位换成序列号
|
|
|
//str_pad字符串填充
|
|
|
$outCode = substr($outCode, 0, -2) . str_pad($i, 2, '0', STR_PAD_LEFT);
|
|
@@ -701,7 +700,7 @@ class Sale extends Base
|
|
|
Db::rollback();
|
|
|
return error_show(1002, "发货地址添加创建失败");
|
|
|
}
|
|
|
- $tep = [
|
|
|
+ $tep = [
|
|
|
"cgdNo" => $order['cgdNo'],
|
|
|
"outCode" => $outCode,
|
|
|
"send_num" => $num,
|
|
@@ -719,38 +718,11 @@ class Sale extends Base
|
|
|
Db::rollback();
|
|
|
return error_show(1002, "未匹配到采购数据");
|
|
|
}
|
|
|
-
|
|
|
- //维护商品所在仓库的库存 --- start
|
|
|
$temp = Db::name('good_stock')
|
|
|
->field('id,usable_stock,wait_out_stock')
|
|
|
- ->where(['spuCode' => $order['spuCode'], 'wsm_code' => $cgdinfo['wsm_code']])
|
|
|
+ ->where(['spuCode' => $etid['spuCode'], 'wsm_code' => $cgdinfo['wsm_code']])
|
|
|
->find();
|
|
|
- if ($etid['is_stock'] == 1) {
|
|
|
- if ($temp == false) {
|
|
|
- Db::rollback();
|
|
|
- return error_show(1004, '库存不足');
|
|
|
- }
|
|
|
- if (($temp['wait_out_stock'] - $num) < 0) {
|
|
|
- Db::rollback();
|
|
|
- return error_show(1004, '库存不足');
|
|
|
- }
|
|
|
-
|
|
|
-// $up =Db::name('good_stock')
|
|
|
-// ->where('id', $temp['id'])
|
|
|
-// ->update([
|
|
|
-// 'usable_stock' => $temp['usable_stock'] - $num,
|
|
|
-// 'wait_out_stock' => $temp['wait_out_stock'] + $num,
|
|
|
-// 'updatetime' => date('Y-m-d H:i:s'),
|
|
|
-// ]);
|
|
|
-// if($up==false){
|
|
|
-// Db::rollback();
|
|
|
-// return error_show(1004, '库存更新失败');
|
|
|
-// }
|
|
|
-// $good_data[] = ['good_log_code' =>$outCode, "stock_id" =>$temp['id'], "type" => 1,'stock'=>$num, "stock_name" => "wait_out_stock"];
|
|
|
-// $good_data[] = ['good_log_code' =>$outCode, "stock_id" =>$temp['id'], "type" => 2,'stock'=>$num, "stock_name" => "usable_stock"];
|
|
|
-// GoodLog::LogAdd($this->post['token'],$good_data,"CKD");
|
|
|
- $status = 1;
|
|
|
- } else {
|
|
|
+ //非库存品 导入地址生成发货单时占用库存 可用库存进入待出库
|
|
|
if ($temp == false || ($temp['usable_stock'] - $num) < 0) {
|
|
|
$status = 0;
|
|
|
} else {
|
|
@@ -775,9 +747,19 @@ class Sale extends Base
|
|
|
GoodLog::LogAdd($this->post['token'], $good_data, "CKD");
|
|
|
$status = 1;
|
|
|
}
|
|
|
+ }else{
|
|
|
+ $stockid=Db::name("sale_info")->where(["orderCode"=>$orderCode])->value("stockid","");
|
|
|
+ if($stockid==''){
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1005,"未找到对应库存仓库");
|
|
|
+ }
|
|
|
+ $cgdinfo = Db::name("good_stock")->where(["id"=>$stockid])->findOrEmpty();
|
|
|
+ if(empty($cgdinfo)){
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1005,"未找到对应库存仓库");
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-
|
|
|
$out = [
|
|
|
"orderCode" => $orderCode,
|
|
|
"outCode" => $outCode,
|
|
@@ -828,6 +810,11 @@ class Sale extends Base
|
|
|
return error_show(1002, "发货地址添加创建失败");
|
|
|
}
|
|
|
}
|
|
|
+// $OrderBn = GoodStockInfo::OrderBn($orderCode,$stock_id,$num);
|
|
|
+// if($OrderBn==false){
|
|
|
+// Db::rollback();
|
|
|
+// return error_show(1004,"Bn库存数关联订单失败");
|
|
|
+// }
|
|
|
Db::commit();
|
|
|
return app_show(0, "发货地址添加完成");
|
|
|
} catch (\Exception $e) {
|
|
@@ -1882,11 +1869,14 @@ class Sale extends Base
|
|
|
if ($stock == false || $stock['usable_stock'] < $data['good_num']) {
|
|
|
return 1; //库存不足
|
|
|
}
|
|
|
-
|
|
|
- $bol = $this->RelaCgd(['orderCode' => $orderCode, "good_num" => $data['good_num'], "spuCode" => $good['spuCode'], "companyNo" => $data['companyNo'], "cost_fee" => $goodlass['cost_fee'], 'order_type' => $cgd['order_type'], 'order_source' => $cgd['order_source']], $standing_book_data);
|
|
|
- if ($bol == false) {
|
|
|
- return 3;//关联采购失败
|
|
|
- }
|
|
|
+ $stock_num =Db::name("good_stock_info")->where(["stockid"=>$stock['id']])->sum('balance_num');
|
|
|
+ if($stock_num < $data['good_num']){
|
|
|
+ return 1; //库存不足
|
|
|
+ }
|
|
|
+// $bol = $this->RelaCgd(['orderCode' => $orderCode, "good_num" => $data['good_num'], "spuCode" => $good['spuCode'], "companyNo" => $data['companyNo'], "cost_fee" => $goodlass['cost_fee'], 'order_type' => $cgd['order_type'], 'order_source' => $cgd['order_source']], $standing_book_data);
|
|
|
+// if ($bol == false) {
|
|
|
+// return 3;//关联采购失败
|
|
|
+// }
|
|
|
if (isset($stock)) {
|
|
|
$stck = [
|
|
|
"usable_stock" => $stock['usable_stock'] - $data['good_num'],
|
|
@@ -1897,6 +1887,10 @@ class Sale extends Base
|
|
|
if ($upad == false) {
|
|
|
return 2; //库存更新失败
|
|
|
}
|
|
|
+ $stockinfo =GoodStockInfo::OrderBn($orderCode,$stock['id'],$data['good_num']);
|
|
|
+ if($stockinfo==false){
|
|
|
+ return 2; //库存不足
|
|
|
+ }
|
|
|
//商品变动日志表,good_log_code字段存储采购单号
|
|
|
$good_data[] = ['good_log_code' => $orderCode, "stock_id" => $stock['id'], "type" => 2, 'stock' => $data['good_num'], "stock_name" => "usable_stock"];
|
|
|
$good_data[] = ['good_log_code' => $orderCode, "stock_id" => $stock['id'], "type" => 1, 'stock' => $data['good_num'], "stock_name" => "wait_out_stock"];
|
|
@@ -3498,19 +3492,10 @@ class Sale extends Base
|
|
|
$rm = isset($apply_id["data"]['id']) ? $apply_id["data"]['id'] : "";
|
|
|
$ri = isset($apply_id["data"]['nickname']) ? $apply_id["data"]['nickname'] : "";
|
|
|
$sendtime = isset($this->post['sendtime']) && $this->post['sendtime'] !== "" ? $this->post['sendtime'] : date("Y-m-d H:i:s");
|
|
|
- $order = Db::name("order_num")->where(["orderCode" => $orderCode, "status" => 1])->where([["wsend_num", ">=", 0]])
|
|
|
- ->find();
|
|
|
- if (empty($order)) {
|
|
|
- return error_show(1004, "未找到可以发货得采购单数据");
|
|
|
- }
|
|
|
+
|
|
|
Db::startTrans();
|
|
|
try {
|
|
|
- $order = Db::name("order_num")->where(["orderCode" => $orderCode, "status" => 1])->where([["wsend_num", ">=", 0]])
|
|
|
- ->lock(true)->find();
|
|
|
- if ($order == false) {
|
|
|
- Db::rollback();
|
|
|
- return error_show(1004, "未找到可以发货得采购单数据");
|
|
|
- }
|
|
|
+
|
|
|
$addrlst = [
|
|
|
"orderCode" => $orderCode,
|
|
|
"addr" => $addr,
|
|
@@ -3527,18 +3512,14 @@ class Sale extends Base
|
|
|
];
|
|
|
$addrid = Db::name("order_addr")->insert($addrlst, true);
|
|
|
if ($addrid > 0) {
|
|
|
-// $der['send_num'] +=$send_num;
|
|
|
-// $der['wsend_num'] -= $send_num;
|
|
|
-// $der['send_status'] = $der['send_num'] == 0 ? 1 : $der['wsend_num'] == 0 ? 3 : 2;
|
|
|
-// $der['status'] = $der['send_num'] == 0 ? 0 : $der['wsend_num'] == 0 ?2 :1;
|
|
|
-// $der['updatetime'] = date("Y-m-d H:i:s");
|
|
|
-// $si = Db::name('sale')->save($der);
|
|
|
-// if($si==false){
|
|
|
-// Db::rollback();
|
|
|
-// return error_show(1002,"出库单新建失败");
|
|
|
-// }
|
|
|
-
|
|
|
$outCode = makeNo("DF");
|
|
|
+ if($der['order_type']!=1){
|
|
|
+ $order = Db::name("order_num")->where(["orderCode" => $orderCode, "status" => 1])->where([["wsend_num", ">=", 0]])
|
|
|
+ ->lock(true)->find();
|
|
|
+ if ($order == false) {
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1004, "未找到可以发货得采购单数据");
|
|
|
+ }
|
|
|
$cgd = Db::name("purchease_order")->where(["cgdNo" => $order['cgdNo']])->find();
|
|
|
if ($cgd == false) {
|
|
|
Db::rollback();
|
|
@@ -3559,11 +3540,24 @@ class Sale extends Base
|
|
|
"addtime" => date("Y-m-d H:i:s"),
|
|
|
"updatetime" => date("Y-m-d H:i:s")
|
|
|
];
|
|
|
- $sen = Db::name("order_send")->save($tep);
|
|
|
- if ($sen == false) {
|
|
|
- Db::rollback();
|
|
|
- return error_show(1002, "发货地址添加创建失败");
|
|
|
+ $sen = Db::name("order_send")->save($tep);
|
|
|
+ if ($sen == false) {
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1002, "发货地址添加创建失败");
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ $stockid=Db::name("sale_info")->where(["orderCode"=>$orderCode])->value("stockid","");
|
|
|
+ if($stockid==''){
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1005,"未找到对应库存仓库");
|
|
|
+ }
|
|
|
+ $cgd = Db::name("good_stock")->where(["id"=>$stockid])->findOrEmpty();
|
|
|
+ if(empty($cgd)){
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1005,"未找到对应库存仓库");
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
$data = [
|
|
|
"wsm_code" => isset($cgd['wsm_code']) ? $cgd['wsm_code'] : "",
|
|
|
"orderCode" => $orderCode,
|
|
@@ -3780,6 +3774,27 @@ class Sale extends Base
|
|
|
Db::rollback();
|
|
|
return error_show(1002, "库存更新失败");
|
|
|
}
|
|
|
+ if($einfo["order_type"]!=1){
|
|
|
+ $outsend =Db::name("order_send")->where(["outCode"=> $outCode])->findOrEmpty();
|
|
|
+ if(empty($outsend)){
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1002, "未找到关联采购单");
|
|
|
+ }
|
|
|
+ $cgdinfo= Db::name("purchease_order")->where(["cgdNo"=>$outsend['cgdNo'],"is_del"=>0])
|
|
|
+ ->findOrEmpty();
|
|
|
+ $bn_code =makeNo("BN");
|
|
|
+ $bnin=GoodStockInfo::AddBn($stokc["id"],$bn_code,$outinfo['send_num'],$cgdinfo['good_price']??0);
|
|
|
+ if($bnin==false){
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1004,"库存bn数据新增失败");
|
|
|
+ }
|
|
|
+ $bnup =GoodStockInfo::OrderBn($outinfo['orderCode'],$stokc["id"],$outinfo['send_num']);
|
|
|
+ if($bnup==false){
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1004,"库存bn库存数更新失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
$good_data[] = ['good_log_code' => $outCode, "stock_id" => $stokc['id'], "type" => 2, 'stock' => $outinfo['send_num'], "stock_name" => "wait_out_stock"];
|
|
|
|
|
|
GoodLog::LogAdd(['id' => $uid, 'nickname' => $uname], $good_data, "CKD");
|
|
@@ -4369,7 +4384,7 @@ class Sale extends Base
|
|
|
$sale_infos = Db::name("sale")
|
|
|
->where('orderCode', $order_out_infos[$value['outCode']]['orderCode'])
|
|
|
->where('is_del', 0)
|
|
|
- ->column('id,send_num,wsend_num,status,good_code,order_source', 'orderCode');
|
|
|
+ ->column('id,send_num,wsend_num,status,good_code,order_source,order_type', 'orderCode');
|
|
|
|
|
|
if (!isset($sale_infos[$order_out_infos[$value['outCode']]['orderCode']])) throw new Exception($value['outCode'] . '该发货单对应的销售单未找到');
|
|
|
|
|
@@ -4464,7 +4479,26 @@ class Sale extends Base
|
|
|
->where('id', $stock['id'])
|
|
|
->update($stock);
|
|
|
if ($stock_rs == false) throw new Exception($value['outCode'] . '库存更新失败');
|
|
|
-
|
|
|
+ if($sale_infos[$order_out_infos[$value['outCode']]['orderCode']]["order_type"]!=1){
|
|
|
+ $outsend =Db::name("order_send")->where(["outCode"=> $value['outCode']])->findOrEmpty();
|
|
|
+ if(empty($outsend)){
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1002, "未找到关联采购单");
|
|
|
+ }
|
|
|
+ $cgdinfo= Db::name("purchease_order")->where(["cgdNo"=>$outsend['cgdNo'],"is_del"=>0])
|
|
|
+ ->findOrEmpty();
|
|
|
+ $bn_code =makeNo("BN");
|
|
|
+ $bnin=GoodStockInfo::AddBn($stock["id"],$bn_code,$order_out_infos[$value['outCode']]['send_num'],$cgdinfo['good_price']??0);
|
|
|
+ if($bnin==false){
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1004,"库存bn数据新增失败");
|
|
|
+ }
|
|
|
+ $bnup =GoodStockInfo::OrderBn($order_out_infos[$value['outCode']]['orderCode'],$stock["id"],$order_out_infos[$value['outCode']]['send_num']);
|
|
|
+ if($bnup==false){
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1004,"库存bn库存数更新失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
$good_data[] = [
|
|
|
'good_log_code' => $value['outCode'],
|
|
|
'stock_id' => $stock['id'],
|