|
|
@@ -3,6 +3,7 @@
|
|
|
namespace bizGhs\book\classes;
|
|
|
|
|
|
use bizGhs\base\classes\BaseClass;
|
|
|
+use bizGhs\product\classes\ProductClass;
|
|
|
use bizGhs\shop\classes\ShopClass;
|
|
|
use common\components\noticeUtil;
|
|
|
use common\components\util;
|
|
|
@@ -13,7 +14,8 @@ class BookItemClass extends BaseClass
|
|
|
|
|
|
public static $baseFile = '\bizGhs\book\models\BookItem';
|
|
|
|
|
|
- public static function addItem($data, $order)
|
|
|
+ //数据结构 [['productId' => $productId,'num' => $num]]
|
|
|
+ public static function addBatchItem($batchData, $order)
|
|
|
{
|
|
|
$shopId = $order->shopId ?? 0;
|
|
|
$shop = ShopClass::getById($shopId, true);
|
|
|
@@ -32,50 +34,71 @@ class BookItemClass extends BaseClass
|
|
|
}
|
|
|
}
|
|
|
$mainId = $order->mainId ?? 0;
|
|
|
- $itemId = $data['productId'] ?? 0;
|
|
|
- $ptItemId = $data['ptItemId'] ?? 0;
|
|
|
- //预订单只会有大单位
|
|
|
- $num = $data['num'] ?? 0;
|
|
|
- $name = $data['name'] ?? '';
|
|
|
- $py = $data['py'] ?? '';
|
|
|
- $cgStaffId = $data['cgStaffId'] ?? 0;
|
|
|
- if (empty($cgStaffId)) {
|
|
|
- if ($pfLevel == 1) {
|
|
|
- util::fail($name . '没有设置采购人');
|
|
|
+ $customId = $order->customId ?? 0;
|
|
|
+ $customName = $order->customName ?? '';
|
|
|
+ $customNamePy = $order->customNamePy ?? '';
|
|
|
+
|
|
|
+ $ids = array_column($batchData, 'productId');
|
|
|
+ $infoList = ProductClass::getAllByCondition(['id' => ['in', $ids]], null, '*', 'id', true);
|
|
|
+ foreach ($batchData as $data) {
|
|
|
+ $itemId = $data['productId'] ?? 0;
|
|
|
+ $product = $infoList[$itemId] ?? null;
|
|
|
+ if (empty($product)) {
|
|
|
+ util::fail('没有找到产品,ID:' . $itemId);
|
|
|
}
|
|
|
- }
|
|
|
- $cgStaffName = $data['cgStaffName'] ?? '';
|
|
|
- $stat = self::getByCondition(['mainId' => $mainId, 'bookSn' => $bookSn, 'itemId' => $itemId,], true);
|
|
|
- if (empty($stat)) {
|
|
|
- $statData = ['mainId' => $mainId, 'itemId' => $itemId, 'ptItemId' => $ptItemId, 'name' => $name, 'bookSn' => $bookSn, 'py' => $py, 'cgStaffId' => $cgStaffId, 'cgStaffName' => $cgStaffName];
|
|
|
- $stat = self::add($statData, true);
|
|
|
- }
|
|
|
- $id = $stat->id;
|
|
|
- $unique = self::getLockById($id);
|
|
|
- $currentNum = bcadd($unique->bookNum, $num);
|
|
|
- $unique->bookNum = $currentNum;
|
|
|
- $unique->save();
|
|
|
+ $ptItemId = $product->itemId ?? 0;
|
|
|
+ $num = $data['num'] ?? 0;
|
|
|
+ $name = $product->name ?? '';
|
|
|
+ $py = $product->py ?? '';
|
|
|
+ $cgStaffName = $product->cgStaffName ?? '';
|
|
|
+ $cgStaffId = $product->cgStaffId ?? 0;
|
|
|
+ if (empty($cgStaffId)) {
|
|
|
+ if ($pfLevel == 1) {
|
|
|
+ util::fail($name . '没有设置采购人');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $stat = self::getByCondition(['mainId' => $mainId, 'bookSn' => $bookSn, 'itemId' => $itemId,], true);
|
|
|
+ if (empty($stat)) {
|
|
|
+ $statData = [
|
|
|
+ 'mainId' => $mainId,
|
|
|
+ 'itemId' => $itemId,
|
|
|
+ 'ptItemId' => $ptItemId,
|
|
|
+ 'name' => $name,
|
|
|
+ 'bookSn' => $bookSn,
|
|
|
+ 'py' => $py,
|
|
|
+ 'cgStaffId' => $cgStaffId,
|
|
|
+ 'cgStaffName' => $cgStaffName
|
|
|
+ ];
|
|
|
+ $stat = self::add($statData, true);
|
|
|
+ }
|
|
|
+ $id = $stat->id;
|
|
|
+ $unique = self::getLockById($id);
|
|
|
+ $currentNum = bcadd($unique->bookNum, $num);
|
|
|
+ $unique->bookNum = $currentNum;
|
|
|
+ $unique->save();
|
|
|
|
|
|
- $customId = $order->customId ?? 0;
|
|
|
- $has = BookItemCustomClass::getByCondition(['mainId' => $mainId, 'itemId' => $itemId, 'customId' => $customId,], true);
|
|
|
- if (empty($has)) {
|
|
|
- $customName = $order->customName ?? '';
|
|
|
- $customNamePy = $order->customNamePy ?? '';
|
|
|
- $currentData = [
|
|
|
- 'mainId' => $mainId,
|
|
|
- 'itemId' => $itemId,
|
|
|
- 'customId' => $customId,
|
|
|
- 'customName' => $customName,
|
|
|
- 'customNamePy' => $customNamePy,
|
|
|
- 'cgStaffId' => $cgStaffId,
|
|
|
- 'cgStaffName' => $cgStaffName
|
|
|
- ];
|
|
|
- $has = BookItemCustomClass::add($currentData, true);
|
|
|
+ $has = BookItemCustomClass::getByCondition(['mainId' => $mainId, 'itemId' => $itemId, 'customId' => $customId,], true);
|
|
|
+ if (empty($has)) {
|
|
|
+ $currentData = [
|
|
|
+ 'name' => $name,
|
|
|
+ 'py' => $py,
|
|
|
+ 'mainId' => $mainId,
|
|
|
+ 'itemId' => $itemId,
|
|
|
+ 'ptItemId' => $ptItemId,
|
|
|
+ 'customId' => $customId,
|
|
|
+ 'customName' => $customName,
|
|
|
+ 'customNamePy' => $customNamePy,
|
|
|
+ 'cgStaffId' => $cgStaffId,
|
|
|
+ 'cgStaffName' => $cgStaffName,
|
|
|
+ 'bookSn' => $bookSn,
|
|
|
+ ];
|
|
|
+ $has = BookItemCustomClass::add($currentData, true);
|
|
|
+ }
|
|
|
+ $hasId = $has->id ?? 0;
|
|
|
+ $has = BookItemCustomClass::getLockById($hasId);
|
|
|
+ $has->bookNum = bcadd($has->bookNum, $num);
|
|
|
+ $has->save();
|
|
|
}
|
|
|
- $hasId = $has->id ?? 0;
|
|
|
- $has = BookItemCustomClass::getLockById($hasId);
|
|
|
- $has->bookNum = bcadd($has->bookNum, $num);
|
|
|
- $has->save();
|
|
|
}
|
|
|
|
|
|
}
|