|
|
@@ -25,9 +25,150 @@ class ItemClass extends BaseClass
|
|
|
|
|
|
public static $baseFile = '\bizHd\item\models\Item';
|
|
|
|
|
|
+ //修改product
|
|
|
+ public static function updateProduct($data, $shop)
|
|
|
+ {
|
|
|
+ $id = $data['id'] ?? 0;
|
|
|
+ $sjId = $shop->sjId ?? 0;
|
|
|
+ $shopId = $shop->id ?? 0;
|
|
|
+ $mainId = $shop->mainId ?? 0;
|
|
|
+ $product = self::getLockById($id);
|
|
|
+ if (empty($product)) {
|
|
|
+ util::fail("该花材不存在");
|
|
|
+ }
|
|
|
+ $upData = [];
|
|
|
+ //库存可以修改
|
|
|
+ if (isset($data['stock']) && is_numeric($data['stock'])) {
|
|
|
+ $preStock = $product->stock ?? 0;
|
|
|
+ if ($data['stock'] != $preStock) {
|
|
|
+ if ($data['stock'] < 0) {
|
|
|
+ util::fail("库存不能小于0");
|
|
|
+ }
|
|
|
+ if (floor($data['stock']) != $data['stock']) {
|
|
|
+ util::fail('库存请填写整数');
|
|
|
+ }
|
|
|
+ //增加盘点记录 2021.7.27
|
|
|
+ $ratio = $product->ratio ?? 0;
|
|
|
+ $formNum = self::formatStock($data['stock'], $ratio);
|
|
|
+ $ghsItemInfo = [['productId' => $product->id, 'bigNum' => $formNum['bigNum'], 'smallNum' => $formNum['smallNum'],]];
|
|
|
+ $pdData = [];
|
|
|
+ $pdData['itemInfo'] = $ghsItemInfo;
|
|
|
+ $pdData['sjId'] = $sjId;
|
|
|
+ $pdData['shopId'] = $shopId;
|
|
|
+ $pdData['adminId'] = $data['adminId'];
|
|
|
+ $pdData['mainId'] = $mainId;
|
|
|
+ $pdData['staffName'] = $data['staffName'] ?? '';
|
|
|
+ CheckOrderClass::opOrder($pdData, false, false);
|
|
|
+ }
|
|
|
+ unset($data['stock']);
|
|
|
+ }
|
|
|
+ unset($data['adminId']);
|
|
|
+
|
|
|
+ if (isset($data['name'])) {
|
|
|
+ if (empty($data['name'])) {
|
|
|
+ util::fail("请输入花材名称");
|
|
|
+ }
|
|
|
+ $upData['name'] = $data['name'];
|
|
|
+ }
|
|
|
+ if (isset($data['py']) && !empty($data['py'])) {
|
|
|
+ $upData['py'] = $data['py'];
|
|
|
+ }
|
|
|
+ if (isset($data['cover']) && !empty($data['cover'])) {
|
|
|
+ $upData['cover'] = $data['cover'];
|
|
|
+ }
|
|
|
+ if (isset($data['discountPrice']) && is_numeric($data['discountPrice'])) {
|
|
|
+ $discountPrice = $data['discountPrice'] ?? 0;
|
|
|
+ $currentPrice = $data['price'] ?? 0;
|
|
|
+ if ($discountPrice >= $currentPrice) {
|
|
|
+ util::fail('今日特价要小于售价');
|
|
|
+ }
|
|
|
+ $upData['discountPrice'] = $discountPrice;
|
|
|
+ }
|
|
|
+
|
|
|
+ //加价
|
|
|
+ $upData['skAddPrice'] = $data['skAddPrice'] ?? 0;
|
|
|
+ //价格
|
|
|
+ $price = $data['skPrice'] ?? 0;
|
|
|
+ if (is_numeric($price) == false || $price < 0) {
|
|
|
+ util::fail('请填写价格');
|
|
|
+ }
|
|
|
+ $upData['skPrice'] = $price;
|
|
|
+
|
|
|
+ if (isset($data['stockWarning'])) {
|
|
|
+ $upData['stockWarning'] = $data['stockWarning'];
|
|
|
+ }
|
|
|
+
|
|
|
+ if (isset($data['inTurn'])) {
|
|
|
+ $upData['inTurn'] = $data['inTurn'];
|
|
|
+ }
|
|
|
+
|
|
|
+ if (isset($data['delStatus'])) {
|
|
|
+ $upData['delStatus'] = $data['delStatus'];
|
|
|
+ }
|
|
|
+
|
|
|
+ //分类ID
|
|
|
+ if (isset($data["classId"])) {
|
|
|
+ $classId = $data['classId'];
|
|
|
+ $upData['classId'] = $classId;
|
|
|
+ }
|
|
|
+
|
|
|
+ $paramsBack = $upData;
|
|
|
+ $ptItemId = $product->itemId ?? 0;
|
|
|
+
|
|
|
+ //修改价格
|
|
|
+ if ($price != $product->price) {
|
|
|
+ self::changeSinglePrice($shop, $ptItemId, $price);
|
|
|
+ unset($upData['skPrice']);
|
|
|
+ }
|
|
|
+ //修改其它
|
|
|
+ self::updateById($id, $upData);
|
|
|
+
|
|
|
+ if (isset($shop->default) && $shop->default == 1) {
|
|
|
+ //首店修改同步到所有直营店
|
|
|
+ $chainShopList = ShopClass::getAllByCondition(['sjId' => $sjId], null, '*', null, true);
|
|
|
+ foreach ($chainShopList as $chainShop) {
|
|
|
+ $chainShopId = $chainShop->id ?? 0;
|
|
|
+ if (isset($chainShop->join) && $chainShop->join == 1) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if ($chainShopId == $shop->id) {
|
|
|
+ //前面已经添加过了
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ $params = $paramsBack;
|
|
|
+ //所有直营店的分类不修改
|
|
|
+ unset($params['classId']);
|
|
|
+ $chainMainId = $chainShop->mainId ?? 0;
|
|
|
+ $chainProduct = ProductClass::getByCondition(['mainId' => $chainMainId, 'itemId' => $ptItemId], true);
|
|
|
+ if (empty($chainProduct)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if ($price != $chainProduct->price) {
|
|
|
+ self::changeSinglePrice($chainShop, $ptItemId, $price);
|
|
|
+ unset($params['skPrice']);
|
|
|
+ }
|
|
|
+ self::updateById($chainProduct->id, $params);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ //单个价格修改 ssh 20220503
|
|
|
+ public static function changeSinglePrice($shop, $ptItemId, $price)
|
|
|
+ {
|
|
|
+ $mainId = $shop->mainId ?? 0;
|
|
|
+ $productInfo = ProductClass::getByCondition(['itemId' => $ptItemId, 'mainId' => $mainId], true);
|
|
|
+ if (empty($productInfo)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ $productInfo->skPrice = $price;
|
|
|
+ $productInfo->save();
|
|
|
+ }
|
|
|
+
|
|
|
//新增花材
|
|
|
- public static function addItem($data)
|
|
|
+ public static function addItem($data, $currentShop)
|
|
|
{
|
|
|
+ $currentMainId = $currentShop->mainId ?? 0;
|
|
|
$classId = $data['classId'] ?? 0;
|
|
|
$mainId = $data['mainId'] ?? 0;
|
|
|
$stockWarning = $data['stockWarning'] ?? false;
|
|
|
@@ -103,84 +244,106 @@ class ItemClass extends BaseClass
|
|
|
$data['itemId'] = $ptItemInfo['id'];
|
|
|
} else {
|
|
|
//从平台导入花材
|
|
|
- $has = self::getByCondition(['shopId' => $data['shopId'], 'itemId' => $data['itemId']], true);
|
|
|
+ $has = self::getByCondition(['mainId' => $mainId, 'itemId' => $data['itemId']], true);
|
|
|
if (!empty($has)) {
|
|
|
- util::fail('已经导过了');
|
|
|
+ util::fail('已经导入过了');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- //找到父级sj下的所有直营店,添加花材
|
|
|
- $shopList = ShopClass::getAllByCondition(['sjId' => $data['sjId']], null, '*', null, true);
|
|
|
- foreach ($shopList as $shop) {
|
|
|
- if (isset($shop->join) && $shop->join == 1) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- $shopId = $shop->id ?? 0;
|
|
|
- $currentMainId = $shop->mainId ?? 0;
|
|
|
- $data['shopId'] = $shopId;
|
|
|
- $data['mainId'] = $currentMainId;
|
|
|
- //非当前门店库存默认为0并且是下架状态
|
|
|
- if ($currentShopId != $shopId) {
|
|
|
- $data['stock'] = 0;
|
|
|
- $data['status'] = 2;
|
|
|
- }
|
|
|
- $res = self::add($data);
|
|
|
- if ($stock > 0 && $res && $currentShopId == $shopId) {
|
|
|
- //有库存数量,增加盘盈记录 2021.7.9 lqh
|
|
|
- //增加盘点订单
|
|
|
- $pdOrderSn = orderSn::getGhsCheckSn();
|
|
|
- $pdOrderData = [];
|
|
|
- $pdOrderData['orderSn'] = $pdOrderSn;
|
|
|
- $pdOrderData['sjId'] = $data['sjId'];
|
|
|
- $pdOrderData['shopId'] = $data['shopId'];
|
|
|
- $pdOrderData['status'] = CheckOrderClass::STATUS_COMPLETE;
|
|
|
- $pdOrderData['bigNum'] = $stock;
|
|
|
- $pdOrderData['adminId'] = $data['adminId'];
|
|
|
- $pdOrderData['smallNum'] = 0;
|
|
|
- $pdOrderData['price'] = $data['price'];
|
|
|
- $pdOrderData['remark'] = '添加花材时初始化库存';
|
|
|
- CheckOrderClass::add($pdOrderData);
|
|
|
-
|
|
|
- $pdOrderItemData = [];
|
|
|
- $pdOrderItemData['orderSn'] = $pdOrderSn;
|
|
|
- $pdOrderItemData['productId'] = $res['id'];
|
|
|
- $pdOrderItemData['itemId'] = $data['itemId'];
|
|
|
- $pdOrderItemData['itemId'] = $data['itemId'];
|
|
|
- $pdOrderItemData['itemNum'] = $stock;
|
|
|
- $pdOrderItemData['itemStock'] = 0;
|
|
|
- $pdOrderItemData['profitLostNum'] = $stock;
|
|
|
- $itemInfo = [
|
|
|
- 'itemName' => $name,
|
|
|
- 'itemCover' => $data['cover'],
|
|
|
- 'bigNum' => $stock,
|
|
|
- 'smallNum' => 0,
|
|
|
- 'bigNumStock' => 0,
|
|
|
- 'smallNumStock' => 0,
|
|
|
- 'bigNumProfitLoss' => $stock,
|
|
|
- 'smallNumProfitLoss' => 0,
|
|
|
- 'itemUnit' => 0,
|
|
|
- 'ratio' => $ratio,
|
|
|
- 'rank' => 'A',
|
|
|
- 'bigUnit' => $data['bigUnit'],
|
|
|
- 'smallUnit' => $data['smallUnit'],
|
|
|
- ];
|
|
|
- $pdOrderItemData['itemInfo'] = json_encode($itemInfo);
|
|
|
- $pdOrderItemData['itemPrice'] = $data['price'];
|
|
|
- $pdOrderItemData['itemCost'] = $data['cost'];
|
|
|
- CheckOrderItemClass::add($pdOrderItemData);
|
|
|
-
|
|
|
- $record = [];
|
|
|
- $record['sjId'] = $data['sjId'];
|
|
|
- $record['shopId'] = $data['shopId'];
|
|
|
- //增加中央ID
|
|
|
- $record['mainId'] = $currentMainId;
|
|
|
- $record['orderSn'] = $pdOrderSn;
|
|
|
- $record['itemId'] = $data['itemId'];
|
|
|
- $record['productId'] = $res['id'];
|
|
|
- $record['itemNum'] = $stock;//盈亏数
|
|
|
- $record['oldStock'] = 0;
|
|
|
- $record['newStock'] = $stock; //新库存直接等于盘点的数量
|
|
|
- StockRecordClass::addCheckOrderRecord($record);
|
|
|
+ $ptItemId = $data['itemId'] ?? 0;
|
|
|
+ $res = self::add($data, true);
|
|
|
+
|
|
|
+ if ($stock > 0) {
|
|
|
+ //有库存数量,增加盘盈记录 2021.7.9 lqh
|
|
|
+ //增加盘点订单
|
|
|
+ $pdOrderSn = orderSn::getGhsCheckSn();
|
|
|
+ $pdOrderData = [];
|
|
|
+ $pdOrderData['orderSn'] = $pdOrderSn;
|
|
|
+ $pdOrderData['sjId'] = $data['sjId'];
|
|
|
+ $pdOrderData['shopId'] = $data['shopId'];
|
|
|
+ $pdOrderData['status'] = CheckOrderClass::STATUS_COMPLETE;
|
|
|
+ $pdOrderData['bigNum'] = $stock;
|
|
|
+ $pdOrderData['adminId'] = $data['adminId'];
|
|
|
+ $pdOrderData['smallNum'] = 0;
|
|
|
+ $pdOrderData['price'] = $data['price'];
|
|
|
+ $pdOrderData['remark'] = '添加花材时初始化库存';
|
|
|
+ CheckOrderClass::add($pdOrderData);
|
|
|
+
|
|
|
+ $pdOrderItemData = [];
|
|
|
+ $pdOrderItemData['orderSn'] = $pdOrderSn;
|
|
|
+ $pdOrderItemData['productId'] = $res->id;
|
|
|
+ $pdOrderItemData['itemId'] = $data['itemId'];
|
|
|
+ $pdOrderItemData['itemId'] = $data['itemId'];
|
|
|
+ $pdOrderItemData['itemNum'] = $stock;
|
|
|
+ $pdOrderItemData['itemStock'] = 0;
|
|
|
+ $pdOrderItemData['profitLostNum'] = $stock;
|
|
|
+ $itemInfo = [
|
|
|
+ 'itemName' => $name,
|
|
|
+ 'itemCover' => $data['cover'],
|
|
|
+ 'bigNum' => $stock,
|
|
|
+ 'smallNum' => 0,
|
|
|
+ 'bigNumStock' => 0,
|
|
|
+ 'smallNumStock' => 0,
|
|
|
+ 'bigNumProfitLoss' => $stock,
|
|
|
+ 'smallNumProfitLoss' => 0,
|
|
|
+ 'itemUnit' => 0,
|
|
|
+ 'ratio' => $ratio,
|
|
|
+ 'rank' => 'A',
|
|
|
+ 'bigUnit' => $data['bigUnit'],
|
|
|
+ 'smallUnit' => $data['smallUnit'],
|
|
|
+ ];
|
|
|
+ $pdOrderItemData['itemInfo'] = json_encode($itemInfo);
|
|
|
+ $pdOrderItemData['itemPrice'] = $data['price'];
|
|
|
+ $pdOrderItemData['itemCost'] = $data['cost'];
|
|
|
+ CheckOrderItemClass::add($pdOrderItemData);
|
|
|
+
|
|
|
+ $record = [];
|
|
|
+ $record['sjId'] = $data['sjId'];
|
|
|
+ $record['shopId'] = $data['shopId'];
|
|
|
+ //增加中央ID
|
|
|
+ $record['mainId'] = $currentMainId;
|
|
|
+ $record['orderSn'] = $pdOrderSn;
|
|
|
+ $record['itemId'] = $data['itemId'];
|
|
|
+ $record['productId'] = $res->id;
|
|
|
+ $record['itemNum'] = $stock;//盈亏数
|
|
|
+ $record['oldStock'] = 0;
|
|
|
+ $record['newStock'] = $stock; //新库存直接等于盘点的数量
|
|
|
+ StockRecordClass::addCheckOrderRecord($record);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (isset($currentShop->default) && $currentShop->default == 1) {
|
|
|
+ //找到父级sj下的所有直营店,添加花材
|
|
|
+ $shopList = ShopClass::getAllByCondition(['sjId' => $data['sjId']], null, '*', null, true);
|
|
|
+ foreach ($shopList as $shop) {
|
|
|
+ if (isset($shop->join) && $shop->join == 1) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ $shopId = $shop->id ?? 0;
|
|
|
+ if ($shopId == $currentShop->id) {
|
|
|
+ //前面已经添加过了
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ $thisMainId = $shop->mainId ?? 0;
|
|
|
+ $data['shopId'] = $shopId;
|
|
|
+ $data['mainId'] = $thisMainId;
|
|
|
+ //不是当前门店,库存默认为0并且是下架状态
|
|
|
+ //不是当前门店,花材分类放在默认分类下
|
|
|
+ if ($currentShopId != $shopId) {
|
|
|
+ $data['stock'] = 0;
|
|
|
+ $data['status'] = 2;
|
|
|
+ $defaultCat = ItemClassClass::getByCondition(['mainId' => $thisMainId, 'isDefault' => 1], true);
|
|
|
+ $defaultCatId = $defaultCat->id ?? 0;
|
|
|
+ if (empty($defaultCatId)) {
|
|
|
+ util::fail($shop->shopName . "没有默认分类");
|
|
|
+ }
|
|
|
+ $data['classId'] = $defaultCatId;
|
|
|
+ }
|
|
|
+ //已经有了不再添加
|
|
|
+ $chainHas = self::getByCondition(['mainId' => $thisMainId, 'itemId' => $ptItemId], true);
|
|
|
+ if (!empty($chainHas)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ self::add($data);
|
|
|
}
|
|
|
}
|
|
|
$transaction->commit();
|