|
|
@@ -30,7 +30,120 @@ class CheckOrderClass extends BaseClass
|
|
|
self::STATUS_COMPLETE => '已盘点',
|
|
|
];
|
|
|
|
|
|
- public static function loanStock($inId, $outId, $num, $shop, $staff,$bookItemCustomRes)
|
|
|
+
|
|
|
+ public static function bookToDelStock($productId, $num, $shop, $staff)
|
|
|
+ {
|
|
|
+ $sjId = $shop->sjId ?? 0;
|
|
|
+ $shopId = $shop->id ?? 0;
|
|
|
+ $mainId = $shop->mainId ?? 0;
|
|
|
+ $product = ProductClass::getById($productId, true);
|
|
|
+ if (empty($product) || $product->mainId != $mainId) {
|
|
|
+ util::fail('没有找到花材。');
|
|
|
+ }
|
|
|
+ $stock = $out->stock ?? 0;
|
|
|
+ $bookSn = $shop->bookSn ?? 0;
|
|
|
+ $couldDelNum = 0;
|
|
|
+ if (empty($bookSn)) {
|
|
|
+ util::fail('没有在预订活动中');
|
|
|
+ }
|
|
|
+ $booItem = BookItemClass::getByCondition(['bookSn' => $bookSn, 'itemId' => $productId], true);
|
|
|
+ if (!empty($booItem)) {
|
|
|
+ //借出的人预订控制在不受影响范围
|
|
|
+ $bookNum = $booItem->bookNum ?? 0;
|
|
|
+ if ($bookNum > 0) {
|
|
|
+ $roadNum = $bookItem->roadNum ?? 0;
|
|
|
+ $needCgNum = $bookItem->needCgNum ?? 0;
|
|
|
+ $unReachNum = bcadd($roadNum, $needCgNum, 2);
|
|
|
+ $useStock = bcsub($bookNum, $unReachNum, 2);
|
|
|
+ if ($stock > $useStock) {
|
|
|
+ $couldDelNum = bcsub($stock, $useStock, 2);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ $couldDelNum = $stock;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ $couldDelNum = $stock;
|
|
|
+ }
|
|
|
+ if ($couldDelNum <= 0) {
|
|
|
+ util::fail('不能删除库存');
|
|
|
+ }
|
|
|
+ if ($num > $couldDelNum) {
|
|
|
+ util::fail("最多只能删{$couldDelNum}份");
|
|
|
+ }
|
|
|
+ $newStock = bcsub($stock, $num, 2);
|
|
|
+
|
|
|
+ $adminId = $staff->adminId ?? 0;
|
|
|
+ $staffName = $staff->name ?? '';
|
|
|
+ $staffId = $staff->id ?? 0;
|
|
|
+
|
|
|
+ $ghsItemInfo = [['productId' => $couldDelNum, 'bigNum' => $newStock, 'smallNum' => 0,]];
|
|
|
+ $pdData = [];
|
|
|
+ $pdData['itemInfo'] = $ghsItemInfo;
|
|
|
+ $pdData['sjId'] = $sjId;
|
|
|
+ $pdData['shopId'] = $shopId;
|
|
|
+ $pdData['adminId'] = $adminId;
|
|
|
+ $pdData['mainId'] = $mainId;
|
|
|
+ $pdData['staffName'] = $data['staffName'] ?? '';
|
|
|
+ $pdData['remark'] = "在预订中删除库存";
|
|
|
+ $pdData['staffName'] = $staffName;
|
|
|
+ $pdData['staffId'] = $staffId;
|
|
|
+ self::opOrder($pdData, false, false, false);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static function bookToAddStock($productId, $num, $shop, $staff, $bookItemCustomRes)
|
|
|
+ {
|
|
|
+ $mainId = $shop->mainId ?? 0;
|
|
|
+ $product = ProductClass::getById($productId, true);
|
|
|
+ if (empty($product) || $product->mainId != $mainId) {
|
|
|
+ util::fail('没有找到花材...');
|
|
|
+ }
|
|
|
+ $bookSn = $shop->bookSn ?? 0;
|
|
|
+
|
|
|
+ $stock = $product->stock ?? 0;
|
|
|
+ $newStock = bcadd($stock, $num);
|
|
|
+
|
|
|
+ $adminId = $staff->adminId ?? 0;
|
|
|
+ $staffName = $staff->name ?? '';
|
|
|
+ $staffId = $staff->id ?? 0;
|
|
|
+
|
|
|
+ $sjId = $shop->sjId ?? 0;
|
|
|
+ $shopId = $shop->id ?? 0;
|
|
|
+ $mainId = $shop->mainId ?? 0;
|
|
|
+ $ghsItemInfo = [['productId' => $productId, 'bigNum' => $newStock, 'smallNum' => 0,]];
|
|
|
+ $pdData = [];
|
|
|
+ $pdData['itemInfo'] = $ghsItemInfo;
|
|
|
+ $pdData['sjId'] = $sjId;
|
|
|
+ $pdData['shopId'] = $shopId;
|
|
|
+ $pdData['adminId'] = $adminId;
|
|
|
+ $pdData['mainId'] = $mainId;
|
|
|
+ $pdData['staffName'] = $staffName;
|
|
|
+ $pdData['staffId'] = $staffId;
|
|
|
+ $pdData['remark'] = "预定盘点增加{$num}个库存";
|
|
|
+ $inOrder = self::opOrder($pdData, false, false, false);
|
|
|
+ $needCgNum = $bookItemCustomRes->needCgNum ?? 0;
|
|
|
+ if ($num > $needCgNum) {
|
|
|
+ util::fail('增加库存不能超过待采数量');
|
|
|
+ }
|
|
|
+ $delNeedCgNum = $num;
|
|
|
+ $params = ['staffId' => $staffId, 'staffName' => $staffName];
|
|
|
+ $params['currentChangeType'] = 'pdAddStock';
|
|
|
+ $bookItemCustomRes = BookItemCustomClass::delNeedCgNum($bookItemCustomRes, $delNeedCgNum, 0, $inOrder, $shop, $in, $params);
|
|
|
+ $bookItemRes = BookItemClass::getByCondition(['bookSn' => $bookSn, 'itemId' => $productId], true);
|
|
|
+ if (empty($bookItemRes)) {
|
|
|
+ util::fail('借库存没有找到bookItem');
|
|
|
+ }
|
|
|
+ $bookItemRes = BookItemClass::delNeedCgNum($bookItemRes, $delNeedCgNum, 0, $inOrder, $shop, $in, $params);
|
|
|
+ $customId = $bookItemCustomRes->customId ?? 0;
|
|
|
+ $bookCustomRes = BookCustomClass::getByCondition(['bookSn' => $bookSn, 'customId' => $customId], true);
|
|
|
+ if (empty($bookCustomRes)) {
|
|
|
+ util::fail('盘点加库存没有找到bookCustom');
|
|
|
+ }
|
|
|
+ $bookCustomRes = BookCustomClass::delNeedCgNum($bookCustomRes, $delNeedCgNum, 0, $inOrder, $shop, $in, $params);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static function loanStock($inId, $outId, $num, $shop, $staff, $bookItemCustomRes)
|
|
|
{
|
|
|
$sjId = $shop->sjId ?? 0;
|
|
|
$shopId = $shop->id ?? 0;
|
|
|
@@ -51,31 +164,31 @@ class CheckOrderClass extends BaseClass
|
|
|
if (!empty($bookSn)) {
|
|
|
$booItem = BookItemClass::getByCondition(['bookSn' => $bookSn, 'itemId' => $outId], true);
|
|
|
if (!empty($booItem)) {
|
|
|
- //借出的人预订没有影响
|
|
|
- $bookNum = $booItem->bookNum??0;
|
|
|
- if($bookNum>0){
|
|
|
- $roadNum = $bookItem->roadNum??0;
|
|
|
- $needCgNum = $bookItem->needCgNum??0;
|
|
|
- $unReachNum = bcadd($roadNum,$needCgNum,2);
|
|
|
- $useStock = bcsub($bookNum,$unReachNum,2);
|
|
|
- if($stock>$useStock){
|
|
|
- $couldLoan = bcsub($stock,$useStock,2);
|
|
|
+ //借出的人预订控制在不受影响范围
|
|
|
+ $bookNum = $booItem->bookNum ?? 0;
|
|
|
+ if ($bookNum > 0) {
|
|
|
+ $roadNum = $bookItem->roadNum ?? 0;
|
|
|
+ $needCgNum = $bookItem->needCgNum ?? 0;
|
|
|
+ $unReachNum = bcadd($roadNum, $needCgNum, 2);
|
|
|
+ $useStock = bcsub($bookNum, $unReachNum, 2);
|
|
|
+ if ($stock > $useStock) {
|
|
|
+ $couldLoan = bcsub($stock, $useStock, 2);
|
|
|
}
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
$couldLoan = $stock;
|
|
|
}
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
$couldLoan = $stock;
|
|
|
}
|
|
|
}
|
|
|
- if($num>$couldLoan){
|
|
|
+ if ($num > $couldLoan) {
|
|
|
util::fail("只能借{$couldLoan}");
|
|
|
}
|
|
|
if ($inId == $outId) {
|
|
|
util::fail('同个花材呢');
|
|
|
}
|
|
|
|
|
|
- $newOutStock = bcsub($stock, $num,2);
|
|
|
+ $newOutStock = bcsub($stock, $num, 2);
|
|
|
|
|
|
$inStock = $in->stock ?? 0;
|
|
|
$newInStock = bcadd($inStock, $num);
|
|
|
@@ -95,7 +208,7 @@ class CheckOrderClass extends BaseClass
|
|
|
$pdData['remark'] = "借{$num}个库存给{$inName}";
|
|
|
$pdData['staffName'] = $staffName;
|
|
|
$pdData['staffId'] = $staffId;
|
|
|
- self::opOrder($pdData, false, false,false);
|
|
|
+ self::opOrder($pdData, false, false, false);
|
|
|
|
|
|
$sjId = $shop->sjId ?? 0;
|
|
|
$shopId = $shop->id ?? 0;
|
|
|
@@ -110,27 +223,27 @@ class CheckOrderClass extends BaseClass
|
|
|
$pdData['staffName'] = $staffName;
|
|
|
$pdData['staffId'] = $staffId;
|
|
|
$pdData['remark'] = "向{$outName}借{$num}个库存";
|
|
|
- $inOrder = self::opOrder($pdData, false, false,false);
|
|
|
+ $inOrder = self::opOrder($pdData, false, false, false);
|
|
|
|
|
|
//借入的人待采会被影响
|
|
|
- $needCgNum = $bookItemCustomRes->needCgNum??0;
|
|
|
- if($num>$needCgNum){
|
|
|
+ $needCgNum = $bookItemCustomRes->needCgNum ?? 0;
|
|
|
+ if ($num > $needCgNum) {
|
|
|
$delNeedCgNum = $needCgNum;
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
$delNeedCgNum = $num;
|
|
|
}
|
|
|
- $params = ['staffId'=>$staffId,'staffName'=>$staffName];
|
|
|
+ $params = ['staffId' => $staffId, 'staffName' => $staffName];
|
|
|
$params['currentChangeType'] = 'loanStock';
|
|
|
$params['outName'] = $outName;
|
|
|
- $bookItemCustomRes = BookItemCustomClass::delNeedCgNum($bookItemCustomRes,$delNeedCgNum, 0, $inOrder, $shop, $in, $params);
|
|
|
- $bookItemRes = BookItemClass::getByCondition(['bookSn'=>$bookSn,'itemId'=>$inId],true);
|
|
|
- if(empty($bookItemRes)){
|
|
|
+ $bookItemCustomRes = BookItemCustomClass::delNeedCgNum($bookItemCustomRes, $delNeedCgNum, 0, $inOrder, $shop, $in, $params);
|
|
|
+ $bookItemRes = BookItemClass::getByCondition(['bookSn' => $bookSn, 'itemId' => $inId], true);
|
|
|
+ if (empty($bookItemRes)) {
|
|
|
util::fail('借库存没有找到bookItem');
|
|
|
}
|
|
|
$bookItemRes = BookItemClass::delNeedCgNum($bookItemRes, $delNeedCgNum, 0, $inOrder, $shop, $in, $params);
|
|
|
- $customId = $bookItemCustomRes->customId??0;
|
|
|
- $bookCustomRes = BookCustomClass::getByCondition(['bookSn'=>$bookSn,'customId'=>$customId],true);
|
|
|
- if(empty($bookCustomRes)){
|
|
|
+ $customId = $bookItemCustomRes->customId ?? 0;
|
|
|
+ $bookCustomRes = BookCustomClass::getByCondition(['bookSn' => $bookSn, 'customId' => $customId], true);
|
|
|
+ if (empty($bookCustomRes)) {
|
|
|
util::fail('借库存没有找到bookCustom');
|
|
|
}
|
|
|
$bookCustomRes = BookCustomClass::delNeedCgNum($bookCustomRes, $delNeedCgNum, 0, $inOrder, $shop, $in, $params);
|
|
|
@@ -138,7 +251,7 @@ class CheckOrderClass extends BaseClass
|
|
|
}
|
|
|
|
|
|
//2021.1.22 lqh 操作订单 添加/保存草稿/草稿编辑保存: 区别在添加是立即改库存和记录流水记录,而保存草稿是只保存订单信息
|
|
|
- public static function opOrder($data, $draft = false, $update = false,$check=true)
|
|
|
+ public static function opOrder($data, $draft = false, $update = false, $check = true)
|
|
|
{
|
|
|
$sjId = $data['sjId'];
|
|
|
$shopId = $data['shopId'];
|