| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 |
- <?php
- namespace ghs\controllers;
- use bizGhs\order\classes\StockInOrderClass;
- use bizGhs\order\classes\StockInOrderItemClass;
- use bizGhs\product\classes\ProductClass;
- use bizGhs\shop\classes\ShopClass;
- use bizGhs\stock\classes\StockInDayClass;
- use common\components\dateUtil;
- use common\components\util;
- use Yii;
- //入库 lqh 2021.1.25
- class StockInController extends BaseController
- {
- //入库单盘点,生成需要盘点的花材 ssh 20221208
- public function actionCreatePdItem()
- {
- $post = Yii::$app->request->post();
- $ids = $post['ids'] ?? '';
- $arr = json_decode($ids, true);
- if (is_array($arr) == false) {
- util::fail('没有盘点单');
- }
- $idData = array_column($arr, 'id');
- if (empty($idData) || is_array($idData) == false) {
- util::fail('没有盘点单哦');
- }
- $idData = array_filter(array_unique($idData));
- $list = StockInOrderClass::getByIds($idData);
- if (empty($list)) {
- util::fail('没有找到盘点单');
- }
- $use = [];
- $inMainId = 0;
- foreach ($list as $item) {
- $inMainId = $item['inMainId'] ?? 0;
- if ($inMainId != $this->mainId) {
- util::fail('入库单有问题');
- }
- $orderSn = $item['orderSn'] ?? '';
- $itemList = StockInOrderItemClass::getAllByCondition(['orderSn' => $orderSn], null, '*');
- if (!empty($itemList)) {
- foreach ($itemList as $it) {
- $itemId = $it['productId'] ?? 0;
- $ptItemId = $it['itemId'] ?? 0;
- $use[$itemId] = [
- 'mainId' => $inMainId,
- 'itemId' => $itemId,
- 'ptItemId' => $ptItemId,
- ];
- }
- }
- $id = $item['id'] ?? 0;
- StockInOrderClass::updateById($id, ['check' => 1]);
- }
- if (empty($use)) {
- util::fail('没有找到需要盘点的花材');
- }
- StockInDayClass::deleteByCondition(['mainId' => $inMainId]);
- foreach ($use as $info) {
- StockInDayClass::add($info);
- }
- util::complete();
- }
- //入库列表 lqh 2021.1.25
- public function actionList()
- {
- $get = Yii::$app->request->get();
- $orderStatus = isset($get['status']) ? $get['status'] : '';
- $where = [];
- $where['inShopId'] = $this->shopId;
- if (!empty($orderStatus)) {
- $where['status'] = $orderStatus;
- }
- $searchTime = $get['searchTime'] ?? '';
- //惠雅鲜花搜索BUG兼容
- if (in_array($this->shopId, [2167, 2164])) {
- $searchTime = $get['searchTime'] ?? 'today';
- }
- if (!empty($searchTime)) {
- $startTime = $get['startTime'] ?? '';
- $endTime = $get['endTime'] ?? '';
- $period = dateUtil::formatTime($searchTime, $startTime, $endTime);
- $where['addTime'] = ['between', [$period['startTime'], $period['endTime']]];
- }
- $list = StockInOrderClass::getOrderList($where);
- util::success($list);
- }
- //入库详情 lqh 2021.1.25
- public function actionDetail()
- {
- $orderSn = Yii::$app->request->get('orderSn', '');
- $orderData = StockInOrderClass::getOrderDetail($orderSn, $this->shopId);
- util::success($orderData);
- }
- //获取完成入库信息和入库花材的实时库存 ssh 20250317
- public function actionGetFullInfo()
- {
- $orderSn = Yii::$app->request->get('orderSn', '');
- $in = StockInOrderClass::getByCondition(['orderSn' => $orderSn]);
- if (empty($in)) {
- util::fail('没有找到入库记录');
- }
- if ($in['inMainId'] != $this->mainId) {
- util::fail('不是你的入库记录');
- }
- $outShopId = $in['outShopId'];
- $outShop = ShopClass::getById($outShopId, true);
- $outShopName = $outShop->shopName ?? '';
- $in['outShopName'] = $outShopName;
- $list = StockInOrderItemClass::getAllByCondition(['orderSn' => $orderSn], null, '*', null, null);
- $productInfo = [];
- if (!empty($list)) {
- $productIds = array_column($list, 'productId');
- $productInfo = ProductClass::getAllByCondition(['id' => ['in', $productIds]], null, '*', 'id');
- }
- foreach ($list as $key => $item) {
- $productId = $item['productId'];
- $current = $productInfo[$productId] ?? [];
- $currentStock = $current['stock'] ?? 0;
- $currentStock = floatval($currentStock);
- $list[$key]['currentStock'] = $currentStock;
- $itemNum = $item['itemNum'] ?? 0;
- $itemNum = floatval($itemNum);
- $list[$key]['itemNum'] = $itemNum;
- $itemInfo = $item['itemInfo'];
- $itemExt = json_decode($itemInfo, true);
- $itemName = $itemExt['itemName'] ?? '';
- $list[$key]['itemName'] = $itemName;
- //前端使用,勿删
- if ($currentStock >= $itemNum) {
- $actPutNum = $itemNum;
- } else {
- $actPutNum = $currentStock;
- }
- $list[$key]['actPutNum'] = $actPutNum;
- $changeNum = $actPutNum - $itemNum;
- $list[$key]['changeNum'] = $changeNum;
- }
- $respond = ['info' => $in, 'list' => $list];
- util::success($respond);
- }
- //确认入库 lqh 2021.1.24
- public function actionConfirmOrder()
- {
- $get = Yii::$app->request->get();
- $orderSn = $get['orderSn'];
- $connection = Yii::$app->db;
- $transaction = $connection->beginTransaction();
- try {
- StockInOrderClass::confirmOrder($orderSn, $this->shop, $this->adminId);
- $transaction->commit();
- util::complete("入库成功");
- } catch (\Exception $exception) {
- Yii::info("确认入库报错:" . $exception->getMessage());
- $transaction->rollBack();
- util::fail();
- }
- }
- //取消入库 lqh 2021.1.24
- public function actionCancelOrder()
- {
- $get = Yii::$app->request->get();
- $orderSn = $get['orderSn'] ?? '';
- $order = StockInOrderClass::getByCondition(['orderSn' => $orderSn], true);
- if (empty($order)) {
- util::fail('订单不存在');
- }
- if (isset($order->inShopId) == false || $order->inShopId != $this->shopId) {
- util::fail('没有权限');
- }
- $id = $order->id ?? 0;
- $info = StockInOrderClass::getLockById($id);
- StockInOrderClass::cancelOrder($info, $this->adminId);
- util::complete("取消成功");
- }
- }
|