|
@@ -285,9 +285,35 @@ class Reorder extends Base
|
|
|
$saleinfo=Db::name("sale_info")->where([["orderCode","=",$ordeCode],["num",">",0]])->select()
|
|
|
->toArray();
|
|
|
if(empty($saleinfo)) {
|
|
|
- Db::rollback();
|
|
|
- return error_show(1005, '商品批次数据未找到');
|
|
|
- }
|
|
|
+ $ordernum = Db::name("order_num")->where(['orderCode' => $ordeCode])->find();
|
|
|
+ if ($ordernum == false) {
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1005, '未找到关联采购单');
|
|
|
+ }
|
|
|
+ $cgd = Db::name("purchease_order")->where(["cgdNo" => $ordernum['cgdNo'], "is_del" => 0])->find();
|
|
|
+ if ($cgd == false) {
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1005, '未找到采购单数据');
|
|
|
+ }
|
|
|
+ $bn =makeNo("BN");
|
|
|
+ $stock = Db::name("good_stock")->where(["spuCode" => $order['good_code'], 'wsm_code'=>$cgd['wsm_code'],"is_del"=>0,"status"=>1])->find();
|
|
|
+ if($stock==false){
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1005, '商品库存数据未找到');
|
|
|
+ }
|
|
|
+ $stock['usable_stock']+=$thnum;
|
|
|
+ $stock['wait_out_stock'] -=$thnum;
|
|
|
+ $stock['updatetime'] = date("Y-m-d H:i:s");
|
|
|
+ $st_up = Db::name("good_stock")->save($stock);
|
|
|
+ if ($st_up == false) {
|
|
|
+ return error_show(1005, '可售商品入库失败');
|
|
|
+ }
|
|
|
+ $yp=GoodStockInfo::AddBn($stock['id'],$bn,$thnum,$cgd['good_price']);
|
|
|
+ if($yp==false){
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1005, '商品批次退货入库失败');
|
|
|
+ }
|
|
|
+ }else{
|
|
|
$tempnum =$thnum;
|
|
|
foreach ( $saleinfo as $va){
|
|
|
if($tempnum ==0) break;
|
|
@@ -330,6 +356,8 @@ class Reorder extends Base
|
|
|
$good_data[]= ['good_log_code' => $returnCode, "stock_id" => $va['stockid'], "type" => 2, 'stock' => $thnum, "stock_name" => "wait_out_stock"];
|
|
|
GoodLog::LogAdd($this->post['token'], $good_data, 'XSTHD');
|
|
|
}
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
$data=[
|
|
|
"orderCode"=>$ordeCode,
|
|
@@ -937,15 +965,9 @@ class Reorder extends Base
|
|
|
}
|
|
|
|
|
|
if($orderinfo['is_stock'] == 1 || $info['is_th'] == 0){
|
|
|
- $wsmcode = $orderinfo['is_stock'] == 1 ? $cgd['wsm_code'] : $info['return_wsm'];
|
|
|
- if ($wsmcode == "") {
|
|
|
- Db::rollback();
|
|
|
- return error_show(1005, '未找到退货仓库');
|
|
|
- }
|
|
|
- //::todo 非库存品订单退货 采购单退货 虚拟仓如何减库存
|
|
|
- $spuCode= $info['good_code'];
|
|
|
- if($orderinfo['order_type']!==1){
|
|
|
- if($orderinfo['order_type']==3){
|
|
|
+
|
|
|
+ if ($orderinfo['order_type']!=1){
|
|
|
+ if($orderinfo['order_type']==3){
|
|
|
$goon = Db::name("good_zixun")->where(["spuCode"=>$orderinfo['good_code'],"is_del"=>0])->find();
|
|
|
$isZx=1;
|
|
|
}else {
|
|
@@ -953,8 +975,12 @@ class Reorder extends Base
|
|
|
$isZx=2;
|
|
|
}
|
|
|
$spuCode = $this->CheckGood($goon,$isZx,$code);
|
|
|
- }
|
|
|
- $stock = Db::name("good_stock")->where(["spuCode" => $spuCode, 'wsm_code' => $wsmcode])->find();
|
|
|
+ $wsmcode = $info['return_wsm'];
|
|
|
+ if ($wsmcode == "") {
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1005, '未找到退货仓库');
|
|
|
+ }
|
|
|
+ $stock = Db::name("good_stock")->where(["spuCode" => $spuCode, 'wsm_code' => $wsmcode])->find();
|
|
|
if (empty($stock)) {
|
|
|
$stock = [
|
|
|
"spuCode" => $spuCode,
|
|
@@ -1008,18 +1034,97 @@ class Reorder extends Base
|
|
|
}
|
|
|
}
|
|
|
}else{
|
|
|
- if($orderinfo['order_type']!=1){
|
|
|
- $bn=makeNo("BN");
|
|
|
- $bnin=GoodStockInfo::AddBn($stockid,$bn,$info['num'],$cgd['good_price']??0);
|
|
|
- if($bnin==false){
|
|
|
- Db::rollback();
|
|
|
- return error_show(1005, '可售商品Bn库存数入库失败');
|
|
|
- }
|
|
|
- }
|
|
|
+ $bn=makeNo("BN");
|
|
|
+ $bnin=GoodStockInfo::AddBn($stockid,$bn,$info['num'],$cgd['good_price']??0);
|
|
|
+ if($bnin==false){
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1005, '可售商品Bn库存数入库失败');
|
|
|
+ }
|
|
|
}
|
|
|
$good_data = ['good_log_code' => $info['returnCode'], "stock_id" => $stockid, "type" => 1, 'stock'=> $info['num'], "stock_name" => "usable_stock"];
|
|
|
GoodLog::LogAdd($this->post['token'], $good_data, 'XSTHD');
|
|
|
+ }else{
|
|
|
+ $sabebn =Db::name("sale_info")->where(["orderCode"=>$orderinfo["orderCode"]])->select()->toArray();
|
|
|
+ if(!empty($sabebn)){
|
|
|
+ $total_num =$info['num'];
|
|
|
+ foreach ($sabebn as $ve){
|
|
|
+ $stock = Db::name("good_stock")->where(["spuCode" => $orderinfo['good_code'], 'id' => $ve['stockid']])->find();
|
|
|
+ if($stock==false) {
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1005, '商品库存数据未找到');
|
|
|
+ }
|
|
|
+ $tempnum=0;
|
|
|
+ if ($total_num==0) break;
|
|
|
+ if($total_num>=$ve['num']){
|
|
|
+ $tempnum = $ve['num'];
|
|
|
+ $total_num-=$ve['num'];
|
|
|
+ $ve['num']=0;
|
|
|
+ }else{
|
|
|
+ $tempnum = $total_num;
|
|
|
+ $total_num=0;
|
|
|
+ $ve['num']-=$total_num;
|
|
|
+ }
|
|
|
+ $stock['usable_stock']+=$tempnum;
|
|
|
+ $stock['wait_out_stock'] -=$tempnum;
|
|
|
+ $stock['updatetime'] = date("Y-m-d H:i:s");
|
|
|
+ $st_up = Db::name("good_stock")->save($stock);
|
|
|
+ if ($st_up == false) {
|
|
|
+ return error_show(1005, '可售商品入库失败');
|
|
|
+ }
|
|
|
+
|
|
|
+ $bnin=GoodStockInfo::AddBn($ve['stock_id'],$ve['bnCode'],$tempnum,$ve['origin_price']);
|
|
|
+ if($bnin==false){
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1005, '可售商品Bn库存数入库失败');
|
|
|
+ }
|
|
|
+ $ve['updatetime']=date("Y-m-d H:i:s");
|
|
|
+ $up=Db::name("sale_info")->save($ve);
|
|
|
+ if($up==false){
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1005, '可售商品Bn库存数入库失败');
|
|
|
+ }
|
|
|
+ $bnin=GoodStockInfo::ReturnBn($info['returnCode'],$ve['id'],$tempnum);
|
|
|
+ if($bnin==false){
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1005, '可售商品Bn库存数入库失败');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+
|
|
|
+ $ordernum = Db::name("order_num")->where(['orderCode' =>$orderinfo["orderCode"]])->find();
|
|
|
+ if ($ordernum == false) {
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1005, '未找到关联采购单');
|
|
|
+ }
|
|
|
+ $cgd = Db::name("purchease_order")->where(["cgdNo" => $ordernum['cgdNo'], "is_del" => 0])->find();
|
|
|
+ if ($cgd == false) {
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1005, '未找到采购单数据');
|
|
|
+ }
|
|
|
+ $bn =makeNo("BN");
|
|
|
+ $stock = Db::name("good_stock")->where(["spuCode" => $orderinfo['good_code'], 'wsm_code'=>$cgd['wsm_code'],"is_del"=>0,"status"=>1])->find();
|
|
|
+ if($stock==false){
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1005, '商品库存数据未找到');
|
|
|
+ }
|
|
|
+ $stock['usable_stock']+=$info['num'];
|
|
|
+ $stock['wait_out_stock'] -=$info['num'];
|
|
|
+ $stock['updatetime'] = date("Y-m-d H:i:s");
|
|
|
+ $st_up = Db::name("good_stock")->save($stock);
|
|
|
+ if ($st_up == false) {
|
|
|
+ return error_show(1005, '可售商品入库失败');
|
|
|
+ }
|
|
|
+ $yp=GoodStockInfo::AddBn($stock['id'],$bn,$info['num'],$cgd['good_price']);
|
|
|
+ if($yp==false){
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1005, '商品批次退货入库失败');
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
$data=[
|
|
|
"orderCode"=>$info['orderCode'],
|
|
|
"th_type"=>1,
|
|
@@ -1349,50 +1454,79 @@ class Reorder extends Base
|
|
|
|
|
|
$saleinfo=Db::name("sale_info")->where([["orderCode","=",$orderCode],["num",">",0]])->select()->toArray();
|
|
|
if(empty($saleinfo)) {
|
|
|
- Db::rollback();
|
|
|
- return error_show(1005, '商品批次数据未找到');
|
|
|
- }
|
|
|
- $tempnum =$thnum;
|
|
|
- foreach ( $saleinfo as $va){
|
|
|
- if($tempnum ==0) break;
|
|
|
- $stock = Db::name("good_stock")->where(["spuCode" => $order['good_code'], 'id' => $va['stockid']])->find();
|
|
|
- if($stock==false) {
|
|
|
- Db::rollback();
|
|
|
- return error_show(1005, '商品库存数据未找到');
|
|
|
- }
|
|
|
- if($va['num']>=$tempnum) {
|
|
|
- $tnm = $tempnum;
|
|
|
- $va['num']-= $tempnum;
|
|
|
- $tempnum=0;
|
|
|
+ $ordernum = Db::name("order_num")->where(['orderCode' => $orderCode])->find();
|
|
|
+ if ($ordernum == false) {
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1005, '未找到关联采购单');
|
|
|
+ }
|
|
|
+ $cgd = Db::name("purchease_order")->where(["cgdNo" => $ordernum['cgdNo'], "is_del" => 0])->find();
|
|
|
+ if ($cgd == false) {
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1005, '未找到采购单数据');
|
|
|
+ }
|
|
|
+ $bn =makeNo("BN");
|
|
|
+ $stock = Db::name("good_stock")->where(["spuCode" => $order['good_code'], 'wsm_code'=>$cgd['wsm_code'],"is_del"=>0,"status"=>1])->find();
|
|
|
+ if($stock==false){
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1005, '商品库存数据未找到');
|
|
|
+ }
|
|
|
+ $stock['usable_stock']+=$thnum;
|
|
|
+ $stock['wait_out_stock'] -=$thnum;
|
|
|
+ $stock['updatetime'] = date("Y-m-d H:i:s");
|
|
|
+ $st_up = Db::name("good_stock")->save($stock);
|
|
|
+ if ($st_up == false) {
|
|
|
+ return error_show(1005, '可售商品入库失败');
|
|
|
+ }
|
|
|
+ $yp=GoodStockInfo::AddBn($stock['id'],$bn,$thnum,$cgd['good_price']);
|
|
|
+ if($yp==false){
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1005, '商品批次退货入库失败');
|
|
|
+ }
|
|
|
+
|
|
|
}else{
|
|
|
- $tnm = $va['num'];
|
|
|
- $tempnum -=$va['num'];
|
|
|
- $va['num'] =0;
|
|
|
+ $tempnum =$thnum;
|
|
|
+ foreach ($saleinfo as $va){
|
|
|
+ if($tempnum ==0) break;
|
|
|
+ $stock = Db::name("good_stock")->where(["spuCode" => $order['good_code'], 'id' => $va['stockid']])->find();
|
|
|
+ if($stock==false) {
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1005, '商品库存数据未找到');
|
|
|
+ }
|
|
|
+ if($va['num']>=$tempnum) {
|
|
|
+ $tnm = $tempnum;
|
|
|
+ $va['num']-= $tempnum;
|
|
|
+ $tempnum=0;
|
|
|
+ }else{
|
|
|
+ $tnm = $va['num'];
|
|
|
+ $tempnum -=$va['num'];
|
|
|
+ $va['num'] =0;
|
|
|
+ }
|
|
|
+ $stock['usable_stock']+=$tnm;
|
|
|
+ $stock['wait_out_stock'] -=$tnm;
|
|
|
+ $stock['updatetime'] = date("Y-m-d H:i:s");
|
|
|
+ $st_up = Db::name("good_stock")->save($stock);
|
|
|
+ if ($st_up == false) {
|
|
|
+ return error_show(1005, '可售商品入库失败');
|
|
|
+ }
|
|
|
+ $ps = GoodStockInfo::AddBn($va['stockid'],$va['bnCode'],$tnm);
|
|
|
+ if ($ps == false) {
|
|
|
+ return error_show(1005, '商品批次退货入库失败');
|
|
|
+ }
|
|
|
+ $ret = GoodStockInfo::ReturnBn($returnCode,$va['id'],$tnm);
|
|
|
+ if ($ret == false) {
|
|
|
+ return error_show(1005, '商品批次退货入库失败');
|
|
|
+ }
|
|
|
+ $va['updatetime']=date("Y-m-d H:i:s");
|
|
|
+ $sal= Db::name("sale_info")->save($va);
|
|
|
+ if ($sal == false) {
|
|
|
+ return error_show(1005, '商品批次退货入库失败');
|
|
|
+ }
|
|
|
+ $good_data[]= ['good_log_code' => $returnCode, "stock_id" => $va['stockid'], "type" => 1, 'stock' => $tnm, "stock_name" => "usable_stock"];
|
|
|
+ $good_data[]= ['good_log_code' => $returnCode, "stock_id" => $va['stockid'], "type" => 2, 'stock' => $tnm, "stock_name" => "wait_out_stock"];
|
|
|
+ GoodLog::LogAdd($this->post['token'], $good_data, 'XSTHD');
|
|
|
}
|
|
|
- $stock['usable_stock']+=$tnm;
|
|
|
- $stock['wait_out_stock'] -=$tnm;
|
|
|
- $stock['updatetime'] = date("Y-m-d H:i:s");
|
|
|
- $st_up = Db::name("good_stock")->save($stock);
|
|
|
- if ($st_up == false) {
|
|
|
- return error_show(1005, '可售商品入库失败');
|
|
|
- }
|
|
|
- $ps = GoodStockInfo::AddBn($va['stockid'],$va['bnCode'],$tnm);
|
|
|
- if ($ps == false) {
|
|
|
- return error_show(1005, '商品批次退货入库失败');
|
|
|
- }
|
|
|
- $ret = GoodStockInfo::ReturnBn($returnCode,$va['id'],$tnm);
|
|
|
- if ($ret == false) {
|
|
|
- return error_show(1005, '商品批次退货入库失败');
|
|
|
- }
|
|
|
- $va['updatetime']=date("Y-m-d H:i:s");
|
|
|
- $sal= Db::name("sale_info")->save($va);
|
|
|
- if ($sal == false) {
|
|
|
- return error_show(1005, '商品批次退货入库失败');
|
|
|
- }
|
|
|
- $good_data[]= ['good_log_code' => $returnCode, "stock_id" => $va['stockid'], "type" => 1, 'stock' => $thnum, "stock_name" => "usable_stock"];
|
|
|
- $good_data[]= ['good_log_code' => $returnCode, "stock_id" => $va['stockid'], "type" => 2, 'stock' => $thnum, "stock_name" => "wait_out_stock"];
|
|
|
- GoodLog::LogAdd($this->post['token'], $good_data, 'XSTHD');
|
|
|
}
|
|
|
+
|
|
|
$data=[
|
|
|
"orderCode"=>$orderCode,
|
|
|
"th_type"=>1,
|