| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203 |
- <?php
- namespace bizGhs\cg\classes;
- use bizGhs\base\classes\BaseClass;
- use bizGhs\book\classes\BookCustomClass;
- use bizGhs\book\classes\BookItemClass;
- use bizGhs\book\classes\BookItemCustomClass;
- use bizGhs\book\classes\BookItemGhsClass;
- use bizGhs\order\classes\PurchaseOrderItemClass;
- use bizGhs\product\classes\ProductClass;
- use common\components\util;
- use Yii;
- class CgOrderItemClass extends BaseClass
- {
- public static $baseFile = '\bizGhs\cg\models\CgOrderItem';
- public static function cancelAssign($cg, $shop, $params)
- {
- $orderSn = $cg->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);
- }
- }
- }
- }
- }
- }
|