| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- <?php
- namespace bizHd\work\services;
- use bizHd\base\services\BaseService;
- use bizHd\goods\classes\CategoryClass;
- use bizHd\goods\classes\GoodsCategoryClass;
- use bizHd\goods\classes\GoodsClass;
- use bizHd\goods\classes\GoodsItemClass;
- use bizHd\work\classes\WorkClass;
- use bizHd\work\classes\WorkItemClass;
- use common\components\orderSn;
- use common\components\util;
- use Yii;
- class WorkService extends BaseService
- {
- public static $baseFile = '\bizHd\work\classes\WorkClass';
- public static function GoodsCreateFinish($data)
- {
- $goods = $data['goods'] ?? '';
- $goods = json_decode($goods, true);
- if (empty($goods)) {
- util::fail('没有找到成品');
- }
- $remark = $data['remark'] ?? '';
- $sjId = $data['sjId'] ?? 0;
- $shopId = $data['shopId'] ?? 0;
- $mainId = $data['mainId'] ?? 0;
- $ids = array_column($goods, 'productId');
- $info = GoodsClass::getByIds($ids, null, 'id');
- foreach ($goods as $key => $val) {
- $goodsId = $val['productId'] ?? 0;
- $name = $info[$goodsId]['name'] ?? '';
- $goodsSn = $info[$goodsId]['goodsSn'] ?? '';
- $workNum = $val['num'] ?? 0;
- $cover = isset($info[$goodsId]['cover']) && !empty($info[$goodsId]['cover']) ? $info[$goodsId]['cover'] : 'hhb_small.png';
- $product = [];
- $goodsItem = GoodsItemClass::getAllByCondition(['goodsId' => $goodsId], null, '*');
- if (!empty($goodsItem)) {
- foreach ($goodsItem as $one) {
- $itemId = $one['itemId'] ?? 0;
- $unitType = $one['unitType'] ?? 0;
- $num = $one['num'] ?? 0;
- $product[] = [
- 'productId' => $itemId,
- 'num' => $num,
- 'unitType' => $unitType,
- ];
- }
- }
- $goodsCat = GoodsCategoryClass::getByCondition(['gId' => $goodsId], true);
- $catId = $goodsCat->cId ?? 0;
- $catName = '';
- if (!empty($catId)) {
- $cat = CategoryClass::getById($catId, true);
- $catName = $cat->categoryName ?? '';
- }
- $workSn = orderSn::getWorkSn();
- $flowerNum = $info[$goodsId]['flowerNum'] ?? 0;
- $current = [
- 'name' => $name,
- 'num' => $workNum,
- 'cover' => $cover,
- 'remark' => $remark,
- 'catId' => $catId,
- 'catName' => $catName,
- 'product' => $product,
- 'goodsId' => $goodsId,
- 'goodsSn' => $goodsSn,
- 'sjId' => $sjId,
- 'shopId' => $shopId,
- 'mainId' => $mainId,
- 'workSn' => $workSn,
- 'flowerNum' => $flowerNum,
- ];
- self::createFinish($current);
- }
- }
- public static function createFinish($data)
- {
- $data['flowerNum'] = isset($data['flowerNum']) && is_numeric($data['flowerNum']) ? $data['flowerNum'] : 0;
- $work = WorkClass::add($data, true);
- $product = $data['product'] ?? [];
- //有花材传入的情况是花艺师制作直接完成
- if (!empty($product)) {
- //修改用材
- WorkItemClass::modifyItem($work, $product);
- //锁定库存
- WorkItemClass::lock($work);
- }
- $complete = $data['complete'] ?? 0;
- if ($complete == 1) {
- //直接完成
- WorkClass::finish($work);
- }
- return $work;
- }
- }
|