diff --git a/serve/app/controller/Sell.php b/serve/app/controller/Sell.php index 5a9bdebdd81b2462aa7a9977f1493a14528dd95b..2d37e7af3f0caa07d1c7d50cb5e1c0e050b85443 100644 --- a/serve/app/controller/Sell.php +++ b/serve/app/controller/Sell.php @@ -502,7 +502,12 @@ class Sell extends Acl{ //2 关联单据 if(!empty($store['sorInfo'])){ //1 更新详情 - Db::name('sor_info')->duplicate(['handle'=>Db::raw('handle + VALUES(`handle`)')])->insertAll($store['sorInfo']); + //Db::name('sor_info')->duplicate(['handle'=>Db::raw('handle + VALUES(`handle`)')])->insertAll($store['sorInfo']); + foreach($store['sorInfo'] as $item){ + Db::name('sor_info')->where('id', $item['id']) + ->inc('handle', $item['handle']) + ->update(); + } //2 更新CLASS $sorInfo=Db::name('sor_info')->where([['pid','=',$class['source']]])->select()->toArray(); $state=mathArraySum(array_column($sorInfo,'nums'))==mathArraySum(array_column($sorInfo,'handle'))?2:1; @@ -743,7 +748,15 @@ class Sell extends Acl{ foreach ($info as $infoVo) { empty($infoVo['source'])||$sorInfoDuplicate[]=['id'=>$infoVo['source'],'handle'=>$infoVo['nums']]; } - empty($sorInfoDuplicate)||Db::name('sor_info')->duplicate(['handle'=>Db::raw('handle - VALUES(`handle`)')])->insertAll($sorInfoDuplicate); + //empty($sorInfoDuplicate)||Db::name('sor_info')->duplicate(['handle'=>Db::raw('handle - VALUES(`handle`)')])->insertAll($sorInfoDuplicate); + if (!empty($sorInfoDuplicate)) + { + foreach($sorInfoDuplicate as $item){ + Db::name('sor_info')->where('id', $item['id']) + ->dec('handle', $item['handle']) + ->update(); + } + } //2 更新CALSS $sorInfo=Db::name('sor_info')->where([['pid','=',$class['source']]])->select()->toArray(); $state=empty(mathArraySum(array_column($sorInfo,'handle')))?0:1; @@ -755,7 +768,12 @@ class Sell extends Acl{ $roomDuplicate[]=['id'=>$roomInfoVo['pid'],'nums'=>$roomInfoVo['nums']]; } //3.1 更新仓储 - Db::name('room')->duplicate(['nums'=>Db::raw('nums + VALUES(`nums`)')])->insertAll($roomDuplicate); + //Db::name('room')->duplicate(['nums'=>Db::raw('nums + VALUES(`nums`)')])->insertAll($roomDuplicate); + foreach($roomDuplicate as $item){ + Db::name('room')->where('id', $item['id']) + ->inc('nums', $item['nums']) + ->update(); + } //3.2 删除仓储详情 Db::name('room_info')->where([['id','in',array_column($roomInfoList,'id')]])->delete(); //3.3 仓储|冗余