|
@@ -106,22 +106,9 @@ class Reorder extends Base
|
|
|
ActionLog::logAdd($this->post['token'],$stn,"XSTHD",$in['status'],$in);
|
|
|
$process=["order_code"=>$returnCode,"order_id"=>$create,"order_status"=>$in['status'],"order_type"=>'XSTHD',"before_status"=>0];
|
|
|
ProcessOrder::AddProcess($this->post['token'],$process);
|
|
|
-
|
|
|
//维护台账信息
|
|
|
Db::execute("UPDATE `wsm_standing_book` SET `returnGoodCode`=CONCAT(IFNULL(`returnGoodCode`,''),',{$returnCode}'),`updatetime`='" . date('Y-m-d H:i:s') . "' WHERE `orderCode`='{$ordeCode}'");
|
|
|
|
|
|
-// $rs = Db::name('standing_book')->where('orderCode', $ordeCode)->order('returnGoodCode')->find();
|
|
|
-// if (!empty($rs)) {
|
|
|
-// if ($rs['returnGoodCode'] == '') Db::name('standing_book')->where('id', $rs['id'])->update(["returnGoodCode" => $returnCode, "updatetime" => date("Y-m-d H:i:s")]);
|
|
|
-// else {
|
|
|
-// unset($rs['id']);
|
|
|
-// $rs['standBookNo'] = makeNo('IO');
|
|
|
-// $rs['addtime'] = $rs['updatetime'] = date("Y-m-d H:i:s");
|
|
|
-// $rs['returnGoodCode'] = $returnCode;
|
|
|
-// Db::name('standing_book')->insert($rs);
|
|
|
-// }
|
|
|
-// }
|
|
|
-
|
|
|
if($returnadr!=""){
|
|
|
$inf=[];
|
|
|
foreach ($returnadr as $val){
|
|
@@ -244,89 +231,100 @@ class Reorder extends Base
|
|
|
"order_status" =>$order['status'],"before_status"=>$lor
|
|
|
]);
|
|
|
|
|
|
- $ordernum = Db::name("order_num")->where(['orderCode' => $ordeCode])->find();
|
|
|
- if ($ordernum == false) {
|
|
|
- Db::rollback();
|
|
|
- return error_show(1005, '未找到关联采购单');
|
|
|
- }
|
|
|
- $ordernum['send_num'] -= $thnum;
|
|
|
- $orderup = Db::name("order_num")->save($ordernum);
|
|
|
- if ($orderup == 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, '未找到采购单数据');
|
|
|
- }
|
|
|
- $cgd['th_fee'] += round($cgd['good_price'] * $thnum, 2);
|
|
|
- $cgd['th_num'] += $thnum;
|
|
|
- $cgd['updatetime'] = date("Y-m-d H:i:s");
|
|
|
- $cgdup = Db::name("purchease_order")->save($cgd);
|
|
|
- if ($cgdup == false) {
|
|
|
- Db::rollback();
|
|
|
- return error_show(1005, '采购单数据更新失败');
|
|
|
- }
|
|
|
- if ($cgd['bkcode'] != "") {
|
|
|
- $bk = Db::name("purchease_order")->where(["bkcode" => $cgd['bkcode'], "order_type" => 1, "order_source" =>0, "is_del" => 0])
|
|
|
- ->find();
|
|
|
- if ($bk == false) {
|
|
|
- Db::rollback();
|
|
|
- return error_show(1005, '未找到备库单数据');
|
|
|
- }
|
|
|
- $orderbk = Db::name("order_bk")->where(['cgdNo' => $bk['cgdNo'], "is_del" => 0])->find();
|
|
|
- if ($orderbk == false) {
|
|
|
- Db::rollback();
|
|
|
- return error_show(1005, '备库单未完全入库');
|
|
|
- }
|
|
|
- $merge_num = Db::name("purchease_order")->where(["bkcode" => $bk['bkcode'], "order_type" =>
|
|
|
- 1, "is_del" => 0])->where("order_source","<>",0)->field("sum(send_num)-sum(th_num) as num")
|
|
|
- ->find();
|
|
|
+// $ordernum = Db::name("order_num")->where(['orderCode' => $ordeCode])->find();
|
|
|
+// if ($ordernum == false) {
|
|
|
+// Db::rollback();
|
|
|
+// return error_show(1005, '未找到关联采购单');
|
|
|
+// }
|
|
|
+// $ordernum['send_num'] -= $thnum;
|
|
|
+// $orderup = Db::name("order_num")->save($ordernum);
|
|
|
+// if ($orderup == 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, '未找到采购单数据');
|
|
|
+// }
|
|
|
+// $cgd['th_fee'] += round($cgd['good_price'] * $thnum, 2);
|
|
|
+// $cgd['th_num'] += $thnum;
|
|
|
+// $cgd['updatetime'] = date("Y-m-d H:i:s");
|
|
|
+// $cgdup = Db::name("purchease_order")->save($cgd);
|
|
|
+// if ($cgdup == false) {
|
|
|
+// Db::rollback();
|
|
|
+// return error_show(1005, '采购单数据更新失败');
|
|
|
+// }
|
|
|
+// if ($cgd['bkcode'] != "") {
|
|
|
+// $bk = Db::name("purchease_order")->where(["bkcode" => $cgd['bkcode'], "order_type" => 1, "order_source" =>0, "is_del" => 0])
|
|
|
+// ->find();
|
|
|
+// if ($bk == false) {
|
|
|
+// Db::rollback();
|
|
|
+// return error_show(1005, '未找到备库单数据');
|
|
|
+// }
|
|
|
+// $orderbk = Db::name("order_bk")->where(['cgdNo' => $bk['cgdNo'], "is_del" => 0])->find();
|
|
|
+// if ($orderbk == false) {
|
|
|
+// Db::rollback();
|
|
|
+// return error_show(1005, '备库单未完全入库');
|
|
|
+// }
|
|
|
+// $merge_num = Db::name("purchease_order")->where(["bkcode" => $bk['bkcode'], "order_type" =>
|
|
|
+// 1, "is_del" => 0])->where("order_source","<>",0)->field("sum(send_num)-sum(th_num) as num")
|
|
|
+// ->find();
|
|
|
+//
|
|
|
+// $orderbk['balance_num'] = $orderbk['total_num'] - $merge_num['num'];
|
|
|
+// $orderbk['merge_num'] = $merge_num['num'];
|
|
|
+// $orderbk['updatetime'] = date("Y-m-d H:i:s");
|
|
|
+// $orderbkup = Db::name("order_bk")->save($orderbk);
|
|
|
+// if ($orderbkup == false) {
|
|
|
+// Db::rollback();
|
|
|
+// return error_show(1005, '备库单库存数据释放失败');
|
|
|
+// }
|
|
|
+// }
|
|
|
|
|
|
- $orderbk['balance_num'] = $orderbk['total_num'] - $merge_num['num'];
|
|
|
- $orderbk['merge_num'] = $merge_num['num'];
|
|
|
- $orderbk['updatetime'] = date("Y-m-d H:i:s");
|
|
|
- $orderbkup = Db::name("order_bk")->save($orderbk);
|
|
|
- if ($orderbkup == false) {
|
|
|
- Db::rollback();
|
|
|
- return error_show(1005, '备库单库存数据释放失败');
|
|
|
- }
|
|
|
- }
|
|
|
- $stock = Db::name("good_stock")->where(["spuCode" => $order['good_code'], 'wsm_code' => $cgd['wsm_code']])
|
|
|
+ $saleinfo=Db::name("sale_info")->where([["orderCode","=",$ordeCode],["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 (empty($stock)) {
|
|
|
- $stock = [
|
|
|
- "spuCode" => $order['good_code'],
|
|
|
- "wsm_code" => $cgd['wsm_code'],
|
|
|
- "usable_stock" => 0,
|
|
|
- "wait_out_stock" => 0,
|
|
|
- "wait_in_stock" => 0,
|
|
|
- "total_stock" => 0,
|
|
|
- "addtime" => date("Y-m-d H:i:s"),
|
|
|
- "updatetime" => date("Y-m-d H:i:s"),
|
|
|
- ];
|
|
|
- }
|
|
|
-// if($stock['presale_stock']>0){
|
|
|
-// if($stock['presale_stock']>=$thnum){
|
|
|
-// $stock['presale_stock']-=$thnum;
|
|
|
-// }else{
|
|
|
-// $stock['presale_stock']=0;
|
|
|
-// $stock['usable_stock']+=$thnum;
|
|
|
-// $stock['wait_out_stock'] -= ($thnum -$stock['presale_stock']);
|
|
|
-// }
|
|
|
-// }else{
|
|
|
- $stock['usable_stock']+=$thnum;
|
|
|
- $stock['wait_out_stock'] -= $thnum;
|
|
|
- // }
|
|
|
+ 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, '可售商品入库失败');
|
|
|
}
|
|
|
- $good_data[]= ['good_log_code' => $returnCode, "stock_id" => isset($stock['id']) ? $stock['id'] : Db::name("good_stock")->getLastInsID(), "type" => 1, 'stock' => $thnum, "stock_name" => "usable_stock"];
|
|
|
- $good_data[]= ['good_log_code' => $returnCode, "stock_id" => isset($stock['id']) ? $stock['id'] : Db::name("good_stock")->getLastInsID(), "type" => 2, 'stock' => $thnum, "stock_name" => "wait_out_stock"];
|
|
|
+ $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, '商品批次退货入库失败');
|
|
|
+ }
|
|
|
+ $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"=>$ordeCode,
|
|
|
"th_type"=>1,
|
|
@@ -872,6 +870,7 @@ class Reorder extends Base
|
|
|
return error_show(1005, '可售商品入库失败');
|
|
|
}
|
|
|
|
|
|
+
|
|
|
} else {
|
|
|
$orderinfo['th_num'] += $info['num'];
|
|
|
if($orderinfo['th_num']==$orderinfo['send_num']&& $orderinfo['wsend_num']==0){
|
|
@@ -1182,14 +1181,17 @@ class Reorder extends Base
|
|
|
}
|
|
|
$remark =isset($this->post['remark']) &&$this->post['remark']!=''?trim($this->post['remark']) :"";
|
|
|
$addr =Db::name("order_addr")->where([["orderCode","=",$orderCode],["is_del","=",0]])->select()->toArray();
|
|
|
- $ordernum = Db::name("order_num")->where(['orderCode' => $orderCode])->find();
|
|
|
- if ($ordernum == false) {
|
|
|
- return error_show(1005, '未找到关联采购单');
|
|
|
- }
|
|
|
- $cgd = Db::name("purchease_order")->where(["cgdNo" => $ordernum['cgdNo'], "is_del" => 0])->find();
|
|
|
- if ($cgd == false) {
|
|
|
- return error_show(1005, '未找到采购单数据');
|
|
|
+ if($order['is_stock']==0){
|
|
|
+ $ordernum = Db::name("order_num")->where(['orderCode' => $orderCode])->find();
|
|
|
+ if ($ordernum == false) {
|
|
|
+ return error_show(1005, '未找到关联采购单');
|
|
|
+ }
|
|
|
+ $cgd = Db::name("purchease_order")->where(["cgdNo" => $ordernum['cgdNo'], "is_del" => 0])->find();
|
|
|
+ if ($cgd == false) {
|
|
|
+ return error_show(1005, '未找到采购单数据');
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
if($order['is_stock']==0&&$cgd['send_status']!=1){
|
|
|
return error_show(1005, '采购单已发起入库');
|
|
|
}
|
|
@@ -1320,67 +1322,49 @@ class Reorder extends Base
|
|
|
"order_status" =>$order['status'],"before_status"=>$lor
|
|
|
]);
|
|
|
|
|
|
- $ordernum['send_num'] -= $thnum;
|
|
|
- $orderup = Db::name("order_num")->save($ordernum);
|
|
|
- if ($orderup == false) {
|
|
|
- Db::rollback();
|
|
|
- return error_show(1005, '关联数据更新失败');
|
|
|
- }
|
|
|
- $cgd['th_fee'] += round($cgd['good_price'] * $thnum, 2);
|
|
|
- $cgd['th_num'] += $thnum;
|
|
|
- $cgd['updatetime'] = date("Y-m-d H:i:s");
|
|
|
- $cgdup = Db::name("purchease_order")->save($cgd);
|
|
|
- if ($cgdup == false) {
|
|
|
- Db::rollback();
|
|
|
- return error_show(1005, '采购单数据更新失败');
|
|
|
- }
|
|
|
- if ($cgd['bkcode'] != "") {
|
|
|
- $bk = Db::name("purchease_order")->where(["bkcode" => $cgd['bkcode'], "order_type" => 1, "order_source" =>0, "is_del" => 0])
|
|
|
- ->find();
|
|
|
- if ($bk == false) {
|
|
|
- Db::rollback();
|
|
|
- return error_show(1005, '未找到备库单数据');
|
|
|
- }
|
|
|
- $orderbk = Db::name("order_bk")->where(['cgdNo' => $bk['cgdNo'], "is_del" => 0])->find();
|
|
|
- if ($orderbk == false) {
|
|
|
- Db::rollback();
|
|
|
- return error_show(1005, '备库单未完全入库');
|
|
|
- }
|
|
|
- $merge_num = Db::name("purchease_order")->where(["bkcode" => $bk['bkcode'], "order_type" =>1, "is_del" => 0])->where("order_source","<>",0)->field("sum(send_num)-sum(th_num) as num")
|
|
|
- ->find();
|
|
|
- $orderbk['balance_num'] = $orderbk['total_num'] - $merge_num['num'];
|
|
|
- $orderbk['merge_num'] = $merge_num['num'];
|
|
|
- $orderbk['updatetime'] = date("Y-m-d H:i:s");
|
|
|
- $orderbkup = Db::name("order_bk")->save($orderbk);
|
|
|
- if ($orderbkup == false) {
|
|
|
- Db::rollback();
|
|
|
- return error_show(1005, '备库单库存数据释放失败');
|
|
|
- }
|
|
|
- }
|
|
|
- $stock = Db::name("good_stock")->where(["spuCode" => $order['good_code'], 'wsm_code' => $cgd['wsm_code']])
|
|
|
+ $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 (empty($stock)) {
|
|
|
- $stock = [
|
|
|
- "spuCode" => $order['good_code'],
|
|
|
- "wsm_code" => $cgd['wsm_code'],
|
|
|
- "usable_stock" => 0,
|
|
|
- "wait_out_stock" => 0,
|
|
|
- "wait_in_stock" => 0,
|
|
|
- "total_stock" => 0,
|
|
|
- "addtime" => date("Y-m-d H:i:s"),
|
|
|
- "updatetime" => date("Y-m-d H:i:s"),
|
|
|
- ];
|
|
|
- }
|
|
|
- $stock['usable_stock']+=$thnum;
|
|
|
- $stock['wait_out_stock'] -= $thnum;
|
|
|
+ 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, '可售商品入库失败');
|
|
|
}
|
|
|
- $good_data[]= ['good_log_code' => $returnCode, "stock_id" => isset($stock['id']) ? $stock['id'] : Db::name("good_stock")->getLastInsID(), "type" => 1, 'stock' => $thnum, "stock_name" => "usable_stock"];
|
|
|
- $good_data[]= ['good_log_code' => $returnCode, "stock_id" => isset($stock['id']) ? $stock['id'] : Db::name("good_stock")->getLastInsID(), "type" => 2, 'stock' => $thnum, "stock_name" => "wait_out_stock"];
|
|
|
- GoodLog::LogAdd(["id"=>$this->uid,"nickname"=>$this->uname], $good_data, 'XSTHD');
|
|
|
+ $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, '商品批次退货入库失败');
|
|
|
+ }
|
|
|
+ $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,
|