WastController.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. namespace console\controllers;
  3. use biz\shop\classes\ShopClass;
  4. use biz\stat\classes\StatWastClass;
  5. use bizGhs\order\classes\StockWastageOrderClass;
  6. use bizGhs\order\classes\StockWastageOrderItemClass;
  7. use yii\console\Controller;
  8. use Yii;
  9. class WastController extends Controller
  10. {
  11. //报损数据更新 ./yii wast/update
  12. public function actionUpdate()
  13. {
  14. $list = StockWastageOrderClass::getAllByCondition(['id>' => 0], 'id asc', '*', null, true);
  15. if (!empty($list)) {
  16. foreach ($list as $item) {
  17. $orderSn = $item->orderSn ?? '';
  18. $addTime = $item->addTime ?? '';
  19. $connection = Yii::$app->db;//事务处理
  20. $transaction = $connection->beginTransaction();
  21. try {
  22. $totalNum = 0;
  23. $productList = StockWastageOrderItemClass::getAllByCondition(['orderSn' => $orderSn], null, '*', null, true);
  24. if (!empty($productList)) {
  25. foreach ($productList as $product) {
  26. $itemInfo = $product->itemInfo ?? '';
  27. if (empty($itemInfo)) {
  28. $transaction->rollBack();
  29. continue;
  30. }
  31. $arr = json_decode($itemInfo, true);
  32. if (is_array($arr) == false) {
  33. $transaction->rollBack();
  34. continue;
  35. }
  36. $name = $arr['itemName'] ?? '';
  37. $cover = $arr['itemCover'] ?? '';
  38. $product->name = $name;
  39. $product->cover = $cover;
  40. $product->addTime = $addTime;
  41. $product->save();
  42. $totalNum = bcadd($totalNum, $product->itemNum, 2);
  43. }
  44. }
  45. $item->num = $totalNum;
  46. $item->save();
  47. $transaction->commit();
  48. } catch (\Exception $e) {
  49. $transaction->rollBack();
  50. $msg = $e->getMessage();
  51. echo "报错了:" . $msg . "\n";
  52. }
  53. }
  54. }
  55. }
  56. }