PdController.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. namespace console\controllers;
  3. use biz\shop\classes\ShopClass;
  4. use biz\stat\classes\StatPdAddClass;
  5. use biz\stat\classes\StatPdSubClass;
  6. use bizGhs\order\classes\CheckOrderClass;
  7. use bizGhs\order\classes\CheckOrderItemClass;
  8. use common\components\util;
  9. use yii\console\Controller;
  10. use Yii;
  11. class PdController extends Controller
  12. {
  13. //盘点数据 ./yii pd/update
  14. public function actionUpdate()
  15. {
  16. $list = CheckOrderClass::getAllByCondition(['status' => 2], 'id asc', '*', null, true);
  17. if (!empty($list)) {
  18. foreach ($list as $item) {
  19. $orderSn = $item->orderSn ?? '';
  20. $shopId = $item->shopId ?? 0;
  21. $addTime = $item->addTime ?? '';
  22. $shop = ShopClass::getById($shopId, true);
  23. if (empty($shop)) {
  24. echo '没有找到店铺 ' . $shopId . ' ' . $orderSn . "\n";
  25. continue;
  26. }
  27. $productList = CheckOrderItemClass::getAllByCondition(['orderSn' => $orderSn], null, '*', null, true);
  28. if (!empty($productList)) {
  29. $add = 0;
  30. $sub = 0;
  31. foreach ($productList as $product) {
  32. $num = $product->profitLossNum ?? 0;
  33. $cost = $product->itemCost ?? 0;
  34. $res = bcmul($num, $cost, 2);
  35. if ($res > 0) {
  36. $add = bcadd($add, $res, 2);
  37. } else {
  38. $sub = bcadd($add, abs($res), 2);
  39. }
  40. }
  41. $date = date("Ymd", strtotime($addTime));
  42. if ($add > 0) {
  43. StatPdAddClass::replace($shop, $add, $date);
  44. }
  45. if ($sub > 0) {
  46. StatPdSubClass::replace($shop, $sub, $date);
  47. }
  48. }
  49. }
  50. }
  51. }
  52. }