orderSn ?? ''; $bookSn = $cg->bookSn ?? ''; $cgItemList = PurchaseOrderItemClass::getAllByCondition(['orderSn' => $orderSn], null, '*', null, true); if (empty($cgItemList)) { return true; } $ids = []; foreach ($cgItemList as $cgItem) { $ids[] = $cgItem->productId ?? 0; } $productInfo = ProductClass::getAllByCondition(['id' => ['in', $ids]], null, '*', 'id', true); foreach ($cgItemList as $cgItem) { $productId = $cgItem->productId ?? 0; $product = $productInfo[$productId] ?? null; if (empty($product)) { util::fail('售后找不到花材'); } $cgItemName = $cgItem->name ?? ''; $parentId = $cgItem->id ?? 0; $assignSeat = $cgItem->assignSeat; if ($assignSeat == 0) { $params['currentChangeType'] = 'cgCancel'; $params['customName'] = ''; $params['customId'] = ''; $params['customNamePy'] = ''; $remainNeedSendNum = $cgItem->itemNum ?? 0; $currentItemInfo = ProductClass::getById($productId, true); $bookItemRes = BookItemClass::getByCondition(['bookSn' => $bookSn, 'itemId' => $productId], true); $bookItemRes = BookItemClass::addNeedCgNum($bookItemRes, $remainNeedSendNum, 0, $cg, $shop, $currentItemInfo, $params); continue; } $sendList = CgOrderItemSendClass::getAllByCondition(['parentId' => $parentId], null, '*', null, true); if (!empty($sendList)) { foreach ($sendList as $send) { if ($send->status == 0) { $num = $send->num ?? 0; $send->status = 2; $send->save(); $bookGhsGiveId = $send->bookGhsGiveId ?? 0; $bookItemGhsRes = BookItemGhsClass::getById($bookGhsGiveId, true); if (empty($bookItemGhsRes)) { util::fail('送货记录缺失'); } $bookItemGhsRes->status = 2; $bookItemGhsRes->save(); $bookItemCustomId = $send->bookItemCustomId ?? 0; //路上数量减少,待采数量增加 $bookItemCustomRes = BookItemCustomClass::getById($bookItemCustomId, true); if (empty($bookItemCustomRes)) { util::fail('预订花材客户缺失'); } $roadNum = $bookItemCustomRes->roadNum ?? 0; if ($num > $roadNum) { util::fail("路上库存不足扣减 bookItemCustom {$cgItemName}"); } $params['currentChangeType'] = 'cgCancel'; $bookItemCustomRes = BookItemCustomClass::delRoadNum($bookItemCustomRes, $num, 0, $cg, $shop, $product, $params); $bookItemCustomRes = BookItemCustomClass::addNeedCgNum($bookItemCustomRes, $num, 0, $cg, $shop, $product, $params); $customId = $bookItemCustomRes->customId ?? 0; $bookCustomRes = BookCustomClass::getByCondition(['bookSn' => $bookSn, 'customId' => $customId], true); if (empty($bookCustomRes)) { util::fail('预订客户缺失'); } $roadNum2 = $bookCustomRes->roadNum ?? 0; if ($num > $roadNum2) { util::fail("路上库存不足扣减 bookCustom {$cgItemName}"); } $bookCustomRes = BookCustomClass::delRoadNum($bookCustomRes, $num, 0, $cg, $shop, $product, $params); $bookCustomRes = BookCustomClass::addNeedCgNum($bookCustomRes, $num, 0, $cg, $shop, $product, $params); $bookItemRes = BookItemClass::getByCondition(['bookSn' => $bookSn, 'itemId' => $productId], true); if (empty($bookItemRes)) { util::fail('预订花材缺失'); } $roadNum3 = $bookItemRes->roadNum ?? 0; if ($num > $roadNum3) { util::fail("路上库存不足扣减 bookItem {$cgItemName}"); } $bookItemRes = BookItemClass::delRoadNum($bookItemRes, $num, 0, $cg, $shop, $product, $params); $bookItemRes = BookItemClass::addNeedCgNum($bookItemRes, $num, 0, $cg, $shop, $product, $params); } } } } } //分配货位后上架和入库 public static function assignToPutOn($cg, $shop, $params) { if ($cg->status != 3) { return true; } $orderSn = $cg->orderSn ?? ''; $bookSn = $cg->bookSn ?? ''; $cgItemList = PurchaseOrderItemClass::getAllByCondition(['orderSn' => $orderSn], null, '*', null, true); if (empty($cgItemList)) { return true; } $ids = []; foreach ($cgItemList as $cgItem) { $productId = $cgItem->productId ?? 0; $ids[] = $productId; } $productInfo = ProductClass::getAllByCondition(['id' => ['in', $ids]], null, '*', 'id', true); foreach ($cgItemList as $cgItem) { $productId = $cgItem->productId ?? 0; $product = $productInfo[$productId] ?? null; if (empty($product)) { util::fail('花材信息无效呢'); } $cgItemName = $cgItem->name ?? ''; $parentId = $cgItem->id ?? 0; $assignSeat = $cgItem->assignSeat; if ($assignSeat == 0) { //不需要分配货位号 continue; } $sendList = CgOrderItemSendClass::getAllByCondition(['parentId' => $parentId], null, '*', null, true); if (!empty($sendList)) { foreach ($sendList as $send) { if ($send->status == 0) { $num = $send->num ?? 0; $send->status = 1; $send->save(); $bookGhsGiveId = $send->bookGhsGiveId ?? 0; $bookItemGhsRes = BookItemGhsClass::getById($bookGhsGiveId, true); if (empty($bookItemGhsRes)) { util::fail('送货记录缺失'); } $bookItemGhsRes->status = 1; $bookItemGhsRes->save(); $bookItemCustomId = $send->bookItemCustomId ?? 0; //路上数量减少,上架数量增加 $bookItemCustomRes = BookItemCustomClass::getById($bookItemCustomId, true); if (empty($bookItemCustomRes)) { util::fail('预订花材客户缺失'); } $roadNum = $bookItemCustomRes->roadNum ?? 0; if ($num > $roadNum) { util::fail("路上库存不足扣减 bookItemCustom {$cgItemName}"); } $params['currentChangeType'] = 'putIn'; $bookItemCustomRes = BookItemCustomClass::delRoadNum($bookItemCustomRes, $num, 0, $cg, $shop, $product, $params); $bookItemCustomRes = BookItemCustomClass::addOnNum($bookItemCustomRes, $num, $cg, $shop, $product, $params); $customId = $bookItemCustomRes->customId ?? 0; $bookCustomRes = BookCustomClass::getByCondition(['bookSn' => $bookSn, 'customId' => $customId], true); if (empty($bookCustomRes)) { util::fail('预订客户缺失'); } $roadNum2 = $bookCustomRes->roadNum ?? 0; if ($num > $roadNum2) { util::fail("路上库存不足扣减 bookCustom {$cgItemName}"); } $bookCustomRes = BookCustomClass::delRoadNum($bookCustomRes, $num, 0, $cg, $shop, $product, $params); BookCustomClass::addOnNum($bookCustomRes, $num, $cg, $shop, $product, $params); $bookItemRes = BookItemClass::getByCondition(['bookSn' => $bookSn, 'itemId' => $productId], true); if (empty($bookItemRes)) { util::fail('预订花材缺失'); } $roadNum3 = $bookItemRes->roadNum ?? 0; if ($num > $roadNum3) { util::fail("路上库存不足扣减 bookItem {$cgItemName}"); } $bookItemRes = BookItemClass::delRoadNum($bookItemRes, $num, 0, $cg, $shop, $product, $params); BookItemClass::addOnNum($bookItemRes, $num, $cg, $shop, $product, $params); } } } } } }