| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- <?php
- namespace console\controllers;
- use biz\shop\classes\ShopClass;
- use biz\stat\classes\StatPdAddClass;
- use biz\stat\classes\StatPdSubClass;
- use bizGhs\order\classes\CheckOrderClass;
- use bizGhs\order\classes\CheckOrderItemClass;
- use common\components\util;
- use yii\console\Controller;
- use Yii;
- class PdController extends Controller
- {
- //盘点数据 ./yii pd/update
- public function actionUpdate()
- {
- $list = CheckOrderClass::getAllByCondition(['status' => 2], 'id asc', '*', null, true);
- if (!empty($list)) {
- foreach ($list as $item) {
- $orderSn = $item->orderSn ?? '';
- $shopId = $item->shopId ?? 0;
- $addTime = $item->addTime ?? '';
- $connection = Yii::$app->db;
- $transaction = $connection->beginTransaction();
- try {
- $shop = ShopClass::getLockById($shopId);
- if (empty($shop)) {
- echo '没有找到店铺 ' . $shopId . ' ' . $orderSn . "\n";
- continue;
- }
- $productList = CheckOrderItemClass::getAllByCondition(['orderSn' => $orderSn], null, '*', null, true);
- if (!empty($productList)) {
- $add = 0;
- $sub = 0;
- foreach ($productList as $product) {
- $num = $product->profitLossNum ?? 0;
- $cost = $product->itemCost ?? 0;
- $res = bcmul($num, $cost, 2);
- if ($res > 0) {
- $add = bcadd($add, $res, 2);
- } else {
- $sub = bcadd($add, abs($res), 2);
- }
- }
- $totalAdd = bcadd($shop->totalPdAdd, $add, 2);
- $totalSub = bcadd($shop->totalPdSub, $sub, 2);
- $shop->totalPdAdd = $totalAdd;
- $shop->totalPdSub = $totalSub;
- $shop->save();
- $date = date("Ymd", strtotime($addTime));
- if ($add > 0) {
- StatPdAddClass::replace($shop, $add, $date);
- }
- if ($sub > 0) {
- StatPdSubClass::replace($shop, $sub, $date);
- }
- }
- $transaction->commit();
- } catch (\Exception $e) {
- $transaction->rollBack();
- $msg = $e->getMessage();
- echo "报错了:" . $msg . "\n";
- }
- }
- }
- }
- }
|