Prechádzať zdrojové kódy

花材和价格修改

shish 4 rokov pred
rodič
commit
976addd8d5

+ 1 - 0
app-ghs/controllers/ProductController.php

@@ -527,6 +527,7 @@ class ProductController extends BaseController
         }
         $post = Yii::$app->request->post();
         $post['adminId'] = $this->adminId;
+        $post['staffName'] = $this->shopAdmin->name;
         ProductClass::updateProduct($post, $this->shop);
         util::complete();
     }

+ 7 - 4
app-hd/controllers/ItemClassController.php

@@ -15,7 +15,7 @@ class ItemClassController extends BaseController
 {
     public function actionList()
     {
-        $where = ['sjId' => $this->sjId];
+        $where = ['mainId' => $this->mainId];
         $list = ItemClassClass::getGhsItemClassList($where);
         util::success($list);
     }
@@ -23,7 +23,7 @@ class ItemClassController extends BaseController
     //花材列表页的分类,包含今日特价分类 ssh 20220315
     public function actionShowClass()
     {
-        $list = ItemClassClass::getShopClass($this->sjId);
+        $list = ItemClassClass::getShopClass($this->mainId);
         util::success($list);
     }
 
@@ -38,7 +38,10 @@ class ItemClassController extends BaseController
     {
         $post = Yii::$app->request->post();
         $post['adminId'] = $this->adminId;
-        ItemClassClass::addGhsItemClass($this->sjId, $post);
+        $post['mainId'] = $this->mainId;
+        $post['sjId'] = $this->sjId;
+        $post['shopId'] = $this->shopId;
+        ItemClassClass::addGhsItemClass($this->mainId, $post);
         util::complete('添加成功');
     }
 
@@ -61,7 +64,7 @@ class ItemClassController extends BaseController
         if ($class->sjId != $this->sjId) {
             util::fail('没有权限修改');
         }
-        $has = ItemClassClass::getByCondition(['sjId' => $this->sjId, 'name' => $name]);
+        $has = ItemClassClass::getByCondition(['mainId' => $this->mainId, 'name' => $name]);
         if (!empty($has)) {
             util::fail('名称已经存在');
         }

+ 65 - 15
app-hd/controllers/ProductController.php

@@ -26,7 +26,7 @@ class ProductController extends BaseController
         $shop = $this->shop ?? [];
         $pfShopId = $shop->pfShopId ?? 0;
         if (!empty($pfShopId)) {
-            util::fail('请在批发端添加');
+            util::fail('请在批发端操作');
         }
 
         $shopAdmin = $this->shopAdmin;
@@ -45,7 +45,7 @@ class ProductController extends BaseController
         }
         $cost = bcsub($price, $addPrice, 2);
         $post['cost'] = $cost;
-        ItemClass::addItem($post);
+        ItemClass::addItem($post, $this->shop);
         util::complete('添加成功');
     }
 
@@ -120,21 +120,15 @@ class ProductController extends BaseController
     {
         $classId = Yii::$app->request->get('classId', 0);
         $pyName = Yii::$app->request->get('py', '');
-        $where['sjId'] = $this->sjId;
 
         if ($pyName) {
             $pyName = strtolower($pyName);
             $where['py'] = $pyName;
         }
-        $shopId = Yii::$app->request->get('shopId', 0);
-        if (!$shopId) {
-            $shopId = $this->shopId;
-        }
-        $where['shopId'] = $shopId;
+        $where['mainId'] = $this->mainId;
         if (!empty($classId)) {
             $where['classId'] = $classId;
         }
-
         $type = Yii::$app->request->get('type', '');
         $showPage = Yii::$app->request->get('showPage', 0);
         //需要显示分页
@@ -165,7 +159,12 @@ class ProductController extends BaseController
     //批量改价
     public function actionBatchChangePrice()
     {
-        util::fail('暂时无法修改');
+        $shop = $this->shop ?? [];
+        $pfShopId = $shop->pfShopId ?? 0;
+        if (!empty($pfShopId)) {
+            util::fail('请在批发端操作');
+        }
+        $default = $shop->default ?? 0;
 
         $shopAdmin = $this->shopAdmin;
         if (isset($shopAdmin->super) == false || $shopAdmin->super != 1) {
@@ -191,6 +190,12 @@ class ProductController extends BaseController
                 util::fail('请选择花材');
             }
 
+            $sjId = $shop->sjId ?? 0;
+            $chainShopList = [];
+            if ($default == 1) {
+                $chainShopList = ShopClass::getAllByCondition(['sjId' => $sjId, 'join' => 0], null, '*', null, true);
+            }
+
             $productList = ProductClass::getAllByCondition(['id' => ['in', $ids]], null, '*', 'id', true);
 
             foreach ($arr as $product) {
@@ -207,20 +212,31 @@ class ProductController extends BaseController
                 if (empty($product)) {
                     util::fail('没有找到花材');
                 }
-                if (isset($product->shopId) == false || $product->shopId != $this->shopId) {
+                if (isset($product->mainId) == false || $product->mainId != $this->mainId) {
                     util::fail('没有权限访问');
                 }
                 if (empty($price)) {
                     continue;
                 }
-                ProductClass::changeSinglePrice($product, $price, ProductClass::PRICE_LABEL_CHANGE);
+                $ptItemId = $product->itemId;
+                ItemClass::changeSinglePrice($shop, $ptItemId, $price);
+                //在首店修改需要同步到所有直营店
+                if ($default == 1) {
+                    foreach ($chainShopList as $chain) {
+                        if ($chain->id == $shop->id) {
+                            continue;
+                        }
+                        ItemClass::changeSinglePrice($chain, $ptItemId, $price);
+                    }
+                }
             }
+
             $transaction->commit();
             util::complete('修改成功');
 
         } catch (\Exception $e) {
             $transaction->rollBack();
-            Yii::info("修改失败原因:" . $e->getMessage());
+            Yii::info("失败原因:" . $e->getMessage());
             util::fail('修改失败');
         }
 
@@ -282,7 +298,7 @@ class ProductController extends BaseController
         $shop = $this->shop ?? [];
         $pfShopId = $shop->pfShopId ?? 0;
         if (!empty($pfShopId)) {
-            util::fail('请在批发端修改');
+            util::fail('请在批发端操作');
         }
 
         $post = Yii::$app->request->post();
@@ -292,7 +308,8 @@ class ProductController extends BaseController
         }
 
         $post['adminId'] = $this->adminId;
-        ProductClass::updateProduct($post);
+        $post['staffName'] = $this->shopAdmin->name;
+        ItemClass::updateProduct($post, $this->shop);
         util::complete();
     }
 
@@ -360,4 +377,37 @@ class ProductController extends BaseController
         util::success($product);
     }
 
+    //批量修改加价 ssh 20211211
+    public function actionBatchChangeAddPrice()
+    {
+        $shopAdmin = $this->shopAdmin;
+        if (isset($shopAdmin->super) == false || $shopAdmin->super != 1) {
+            util::fail('超管才能操作');
+        }
+
+        $addData = Yii::$app->request->post('addData', '');
+        if (empty($addData)) {
+            util::fail('没有花材');
+        }
+        $itemData = json_decode($addData, true);
+        if (is_array($itemData) == false) {
+            util::fail('没有花材...');
+        }
+        $ids = array_column($itemData, 'id');
+        $infoList = ProductClass::getByIds($ids);
+        if (empty($infoList)) {
+            util::fail('没有花材');
+        }
+        foreach ($infoList as $info) {
+            if (isset($info['mainId']) == false || $info['mainId'] != $this->mainId) {
+                util::fail('非常访问,不是你的花材不能修改');
+            }
+        }
+        foreach ($itemData as $key => $data) {
+            $id = $data['id'] ?? 0;
+            ProductClass::updateById($id, $data);
+        }
+        util::complete('修改成功');
+    }
+
 }

+ 1 - 1
app-hd/controllers/PtItemController.php

@@ -27,7 +27,7 @@ class PtItemController extends BaseController
                 $where['name'] = ['like', $name];
             }
         }
-        $list = PtItemClass::getItemList($where, true, $this->shopId);
+        $list = PtItemClass::getItemList($where, true, $this->mainId);
         util::success($list);
     }
 

+ 1 - 1
app-hd/controllers/StockController.php

@@ -18,7 +18,7 @@ class StockController extends BaseController
         $get = Yii::$app->request->get();
         $id = $get['id'] ?? 0;
         $product = ProductClass::getById($id, true);
-        if (isset($product->shopId) == false || $product->shopId != $this->shopId || $product->mainId != $this->mainId) {
+        if ($product->mainId != $this->mainId) {
             util::fail('没有权限');
         }
         $where = ['productId' => $id];

+ 7 - 14
biz-ghs/item/classes/ItemClassClass.php

@@ -31,23 +31,16 @@ class ItemClassClass extends BaseClass
     }
 
     //新增花材分类
-    public static function addGhsItemClass($sjId, $data)
+    public static function addGhsItemClass($mainId, $data)
     {
-        if (!$sjId) {
-            util::fail("请选择供应商");
-        }
-        $data['sjId'] = $sjId;
         $name = $data['name'] ?? '';
         if (!$name) {
             util::fail("请输入花材分类");
         }
-
-        //判断花材名称是否存在(当前sjId下)
-        $exist = self::exists(['sjId' => $sjId, 'name' => $name]);
-        if ($exist) {
+        $has = self::getByCondition(['mainId' => $mainId, 'name' => $name]);
+        if ($has) {
             util::fail("花材分类名称已存在");
         }
-
         $res = self::add($data);
         return $res;
     }
@@ -83,12 +76,12 @@ class ItemClassClass extends BaseClass
     }
 
     //花材列表页分类,包含今日特价分类 ssh 20220315
-    public static function getShopClass($sjId)
+    public static function getShopClass($mainId)
     {
         $class = [['id' => self::TJ_CLASS_ID, 'name' => '今日特价']];
-        $data = self::getAllList('id,name', ['sjId' => $sjId], 'inTurn desc');
+        $data = self::getAllList('id,name', ['mainId' => $mainId], 'inTurn desc');
         if (!empty($data)) {
-            $class = array_merge($data,$class);
+            $class = array_merge($data, $class);
         }
         return $class;
     }
@@ -96,7 +89,7 @@ class ItemClassClass extends BaseClass
     //获取开单页所有的分类
     public static function getGhsItemClassAll($mainId)
     {
-        $where = ['mainId'=>$mainId];
+        $where = ['mainId' => $mainId];
         $data = self::getAllList('id,name', $where, 'inTurn desc');
         return $data;
     }

+ 13 - 7
biz-ghs/order/classes/CheckOrderClass.php

@@ -7,6 +7,7 @@ use biz\shop\classes\ShopClass;
 use biz\stat\classes\StatPdAddClass;
 use biz\stat\classes\StatPdSubClass;
 use bizGhs\product\classes\ProductClass;
+use bizGhs\shop\classes\MainClass;
 use bizGhs\stock\classes\StockRecordClass;
 use bizGhs\stock\services\StockRecordService;
 use common\components\dict;
@@ -98,6 +99,7 @@ class CheckOrderClass extends BaseClass
                     $record['shopId'] = $shopId;
                     $record['mainId'] = $productData['mainId'];
                     $record['orderSn'] = $orderSn;
+                    $record['relateName'] = $data['staffName'] ?? '';
                     $record['itemId'] = $v['itemId'];
                     $record['productId'] = $productId;
                     $record['itemNum'] = $v['profitLossNum'];//盈亏数
@@ -119,16 +121,20 @@ class CheckOrderClass extends BaseClass
             $order->save();
 
             $shop = ShopClass::getLockById($shopId);
-            $currentAdd = bcadd($shop->totalPdAdd, $addAmount, 2);
-            $currentSub = bcadd($shop->totalPdSub, abs($subAmount), 2);
-            $shop->totalPdAdd = $currentAdd;
-            $shop->totalPdSub = $currentSub;
-            $shop->save();
+            $mainId = $shop->mainId ?? 0;
+            $main = MainClass::getLockById($mainId);
+            if (!empty($main)) {
+                $currentAdd = bcadd($main->totalPdAdd, $addAmount, 2);
+                $currentSub = bcadd($main->totalPdSub, abs($subAmount), 2);
+                $main->totalPdAdd = $currentAdd;
+                $main->totalPdSub = $currentSub;
+                $main->save();
+            }
 
             //统计每天和每月的盘盈盘亏数额
-            StatPdAddClass::replace($shop, $addAmount);
+            StatPdAddClass::replace($main, $shop, $addAmount);
             $subAmount = abs($subAmount);
-            StatPdSubClass::replace($shop, $subAmount);
+            StatPdSubClass::replace($main, $shop, $subAmount);
 
             $transaction->commit();
             return $order;

+ 12 - 5
biz-ghs/product/classes/ProductClass.php

@@ -720,6 +720,8 @@ class ProductClass extends BaseClass
     {
         $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("该花材不存在");
@@ -741,9 +743,11 @@ class ProductClass extends BaseClass
                 $ghsItemInfo = [['productId' => $product->id, 'bigNum' => $formNum['bigNum'], 'smallNum' => $formNum['smallNum'],]];
                 $pdData = [];
                 $pdData['itemInfo'] = $ghsItemInfo;
-                $pdData['sjId'] = $product->sjId;
-                $pdData['shopId'] = $product->shopId;
+                $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']);
@@ -819,7 +823,6 @@ class ProductClass extends BaseClass
         $ptItemId = $product->itemId ?? 0;
 
         //修改价格
-        $price = $upData['price'] ?? 0;
         if ($price != $product->price) {
             self::changeSinglePrice($shop, $ptItemId, $price);
             unset($upData['price']);
@@ -847,7 +850,6 @@ class ProductClass extends BaseClass
                 if (empty($chainProduct)) {
                     continue;
                 }
-                $price = $params['price'] ?? 0;
                 if ($price != $chainProduct->price) {
                     self::changeSinglePrice($chainShop, $ptItemId, $price);
                     unset($params['price']);
@@ -1069,8 +1071,8 @@ class ProductClass extends BaseClass
                 }
             }
 
-            //小菊的结构
             $ptItemId = $data['itemId'] ?? 0;
+            //小菊的结构
             $ptItemInfo = PtItemClass::getById($ptItemId, true);
             $data['variety'] = $ptItemInfo->variety ?? 0;
 
@@ -1185,6 +1187,11 @@ class ProductClass extends BaseClass
                         }
                         $data['classId'] = $defaultCatId;
                     }
+                    //已经有了不再添加
+                    $chainHas = self::getByCondition(['mainId' => $thisMainId, 'itemId' => $ptItemId], true);
+                    if (!empty($chainHas)) {
+                        continue;
+                    }
                     self::add($data);
                 }
             }

+ 238 - 75
biz-hd/item/classes/ItemClass.php

@@ -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();

+ 1 - 1
biz-hd/shop/classes/ShopClass.php

@@ -48,7 +48,7 @@ class ShopClass extends BaseClass
     public static function addMainShop($data, $oldShop, $sj)
     {
         if (isset($oldShop->pfShopId) && !empty($oldShop->pfShopId)) {
-            util::fail('请在批发端添加门店');
+            util::fail('请在批发端操作');
         }
         $mobile = $data['mobile'] ?? 0;
         if (empty($mobile) || stringUtil::isMobile($mobile) == false) {

+ 5 - 5
biz/item/classes/PtItemClass.php

@@ -15,16 +15,16 @@ class PtItemClass extends BaseClass
     public static $baseFile = '\biz\item\models\PtItem';
 
     //列表数据
-    public static function getItemList($where, $showSelect = false, $shopId = '')
+    public static function getItemList($where, $showSelect = false, $mainId = '')
     {
         $data = self::getList('*', $where, 'inTurn DESC');
         $list = $data['list'];
-        $sjItemIds = [];
+        //$sjItemIds = [];
         $sjItems = [];
-        if ($showSelect && $shopId) {
-            $sjItemIds = ProductClass::getAllByCondition($where = ['shopId' => $shopId], null, "*");
+        if ($showSelect && $mainId) {
+            $sjItemIds = ProductClass::getAllByCondition($where = ['mainId' => $mainId], null, "*");
 
-            foreach($sjItemIds as $item) {
+            foreach ($sjItemIds as $item) {
                 $sjItems[$item['itemId']] = ['ghsItemId' => $item['id'], 'delStatus' => $item['delStatus']];
             }
             //$sjItemIds = array_column($sjItemIds, 'itemId');

+ 7 - 6
biz/stat/classes/StatPdAddClass.php

@@ -13,28 +13,29 @@ class StatPdAddClass extends BaseClass
     //获取总和 ssh 20210829
     public static function getSum($where)
     {
-        $amount = self::sum($where,'amount');
+        $amount = self::sum($where, 'amount');
         return empty($amount) ? 0 : $amount;
     }
 
     //盘盈统计 ssh 20210827
-    public static function replace($shop, $amount, $date = null)
+    public static function replace($main, $shop, $amount, $date = null)
     {
         $sjId = $shop->sjId ?? 0;
         $shopId = $shop->id ?? 0;
+        $mainId = $main->id ?? 0;
         $time = $date == null ? date('Ymd') : $date;
-        $stat = self::getByCondition(['sjId' => $sjId, 'shopId' => $shopId, 'time' => $time], true);
+        $stat = self::getByCondition(['mainId' => $mainId, 'time' => $time], true);
         if (empty($stat)) {
-            $stat = self::add(['shopId' => $shopId, 'sjId' => $sjId, 'time' => $time, 'num' => 0], true);
+            $stat = self::add(['shopId' => $shopId, 'sjId' => $sjId, 'mainId' => $mainId, 'time' => $time, 'num' => 0], true);
         }
         $id = $stat->id;
         $unique = self::getLockById($id);
         $currentAmount = bcadd($unique->amount, $amount, 2);
         $unique->amount = $currentAmount;
-        $unique->totalAmount = $shop->totalPdAdd;
+        $unique->totalAmount = $main->totalPdAdd;
         $unique->num += 1;
         $unique->save();
-        StatPdAddMonthClass::replace($shop, $amount, $time);
+        StatPdAddMonthClass::replace($main, $shop, $amount, $time);
     }
 
 }

+ 5 - 4
biz/stat/classes/StatPdAddMonthClass.php

@@ -11,7 +11,7 @@ class StatPdAddMonthClass extends BaseClass
     public static $baseFile = '\biz\stat\models\StatPdAddMonth';
 
     //每月盘盈统计 ssh 20210827
-    public static function replace($shop, $amount, $date = null)
+    public static function replace($main, $shop, $amount, $date = null)
     {
         if ($date == null) {
             $time = date('Ym');
@@ -25,15 +25,16 @@ class StatPdAddMonthClass extends BaseClass
         }
         $sjId = $shop->sjId;
         $shopId = $shop->id;
-        $stat = self::getByCondition(['sjId' => $sjId, 'shopId' => $shopId, 'time' => $time], true);
+        $mainId = $main->id ?? 0;
+        $stat = self::getByCondition(['mainId' => $mainId, 'time' => $time], true);
         if (empty($stat)) {
-            $stat = self::add(['shopId' => $shopId, 'sjId' => $sjId, 'time' => $time, 'year' => $year, 'month' => $month, 'num' => 1], true);
+            $stat = self::add(['shopId' => $shopId, 'mainId' => $mainId, 'sjId' => $sjId, 'time' => $time, 'year' => $year, 'month' => $month, 'num' => 1], true);
         }
         $id = $stat->id;
         $unique = self::getLockById($id);
         $currentAmount = bcadd($unique->amount, $amount, 2);
         $unique->amount = $currentAmount;
-        $unique->totalAmount = $shop->totalPdAdd;
+        $unique->totalAmount = $main->totalPdAdd;
         $unique->num += 1;
         $unique->save();
     }

+ 7 - 6
biz/stat/classes/StatPdSubClass.php

@@ -13,32 +13,33 @@ class StatPdSubClass extends BaseClass
     //获取总和 ssh 20210829
     public static function getSum($where)
     {
-        $amount = self::sum($where,'amount');
+        $amount = self::sum($where, 'amount');
         return empty($amount) ? 0 : $amount;
     }
 
     //盘亏统计 ssh 20210827
-    public static function replace($shop, $amount, $date = null)
+    public static function replace($main, $shop, $amount, $date = null)
     {
         $sjId = $shop->sjId ?? 0;
         $shopId = $shop->id ?? 0;
+        $mainId = $main->id ?? 0;
         if ($date == null) {
             $time = date('Ymd');
         } else {
             $time = $date;
         }
-        $stat = self::getByCondition(['sjId' => $sjId, 'shopId' => $shopId, 'time' => $time], true);
+        $stat = self::getByCondition(['mainId' => $mainId, 'time' => $time], true);
         if (empty($stat)) {
-            $stat = self::add(['shopId' => $shopId, 'sjId' => $sjId, 'time' => $time, 'num' => 0], true);
+            $stat = self::add(['shopId' => $shopId, 'mainId' => $mainId, 'sjId' => $sjId, 'time' => $time, 'num' => 0], true);
         }
         $id = $stat->id;
         $unique = self::getLockById($id);
         $currentAmount = bcadd($unique->amount, $amount, 2);
         $unique->amount = $currentAmount;
-        $unique->totalAmount = $shop->totalPdSub;
+        $unique->totalAmount = $main->totalPdSub;
         $unique->num += 1;
         $unique->save();
-        StatPdSubMonthClass::replace($shop, $amount, $time);
+        StatPdSubMonthClass::replace($main, $shop, $amount, $time);
     }
 
 }

+ 4 - 4
biz/stat/classes/StatPdSubMonthClass.php

@@ -11,7 +11,7 @@ class StatPdSubMonthClass extends BaseClass
     public static $baseFile = '\biz\stat\models\StatPdSubMonth';
 
     //每月盘亏统计 ssh 20210827
-    public static function replace($shop, $amount, $date = null)
+    public static function replace($main, $shop, $amount, $date = null)
     {
         if ($date == null) {
             $time = date('Ym');
@@ -25,15 +25,15 @@ class StatPdSubMonthClass extends BaseClass
         }
         $sjId = $shop->sjId;
         $shopId = $shop->id;
-        $stat = self::getByCondition(['sjId' => $sjId, 'shopId' => $shopId, 'time' => $time], true);
+        $stat = self::getByCondition(['mainId' => $main, 'time' => $time], true);
         if (empty($stat)) {
-            $stat = self::add(['shopId' => $shopId, 'sjId' => $sjId, 'time' => $time, 'year' => $year, 'month' => $month, 'num' => 1], true);
+            $stat = self::add(['shopId' => $shopId, 'mainId' => $main, 'sjId' => $sjId, 'time' => $time, 'year' => $year, 'month' => $month, 'num' => 1], true);
         }
         $id = $stat->id;
         $unique = self::getLockById($id);
         $currentAmount = bcadd($unique->amount, $amount, 2);
         $unique->amount = $currentAmount;
-        $unique->totalAmount = $shop->totalPdSub;
+        $unique->totalAmount = $main->totalPdSub;
         $unique->num += 1;
         $unique->save();
     }

+ 10 - 0
console/controllers/InitController.php

@@ -20,6 +20,10 @@ use biz\stat\classes\StatCgMonthClass;
 use biz\stat\classes\StatOrderCountClass;
 use biz\stat\classes\StatOutClass;
 use biz\stat\classes\StatOutMonthClass;
+use biz\stat\classes\StatPdAddClass;
+use biz\stat\classes\StatPdAddMonthClass;
+use biz\stat\classes\StatPdSubClass;
+use biz\stat\classes\StatPdSubMonthClass;
 use biz\stat\classes\StatRefundClass;
 use biz\stat\classes\StatRefundMonthClass;
 use biz\stat\classes\StatSaleClass;
@@ -32,6 +36,7 @@ use bizGhs\cg\classes\CgClass;
 use bizGhs\custom\classes\CustomClass;
 use bizGhs\item\classes\ItemClass;
 use bizGhs\item\classes\ItemClassClass;
+use bizGhs\order\classes\CheckOrderClass;
 use bizGhs\order\classes\RefundOrderClass;
 use bizGhs\order\classes\StockWastageOrderClass;
 use bizGhs\order\classes\StockWastageOrderItemClass;
@@ -259,6 +264,11 @@ class InitController extends Controller
         ShopAdminClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
         CashClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
         AdminRoleClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
+        CheckOrderClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
+        StatPdAddClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
+        StatPdAddMonthClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
+        StatPdSubClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
+        StatPdSubMonthClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
     }
 
     public static function setGhs($shopId, $mainId)

+ 9 - 0
sql.sql

@@ -973,4 +973,13 @@ ALTER TABLE xhAdmin MODIFY `miniOpenId` VARCHAR(100) COLLATE utf8mb4_unicode_ci
 ALTER TABLE `xhAdmin` MODIFY `currentShopId` INT(11) NOT NULL DEFAULT '0' COMMENT '零售当前管理的门店' AFTER `super`;
 ALTER TABLE `xhAdmin` MODIFY `openShop` TINYINT(4) NOT NULL DEFAULT '1' COMMENT '零售申请开店 1没有 2有申请,待审核 3有申请,已审核通过' AFTER `currentShopId`;
 ALTER TABLE xhShop ADD `join` TINYINT NOT NULL DEFAULT 0 COMMENT '0非加盟店,直营,1加盟店' AFTER `ptStyle`;
+ALTER TABLE xhPdOrder ADD mainId INT NOT NULL DEFAULT 0 COMMENT '中央id' AFTER `shopId`;
+ALTER TABLE xhStatPdAdd ADD mainId INT NOT NULL DEFAULT 0 COMMENT '中央id' AFTER `shopId`;
+ALTER TABLE xhStatPdAddMonth ADD mainId INT NOT NULL DEFAULT 0 COMMENT '中央id' AFTER `shopId`;
+ALTER TABLE xhStatPdAdd DROP INDEX `shop`;
+ALTER TABLE xhStatPdAddMonth DROP INDEX `shop`;
+ALTER TABLE xhStatPdSub ADD mainId INT NOT NULL DEFAULT 0 COMMENT '中央id' AFTER `shopId`;
+ALTER TABLE xhStatPdSubMonth ADD mainId INT NOT NULL DEFAULT 0 COMMENT '中央id' AFTER `shopId`;
+ALTER TABLE xhStatPdSub DROP INDEX `shop`;
+ALTER TABLE xhStatPdSubMonth DROP INDEX `shop`;
 -- ssh 20220424