InitController.php 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. <?php
  2. namespace console\controllers;
  3. use biz\admin\classes\AdminClass;
  4. use biz\item\classes\UnitClass;
  5. use biz\product\classes\ProductClass;
  6. use biz\shop\classes\ShopClass;
  7. use bizGhs\custom\classes\CustomClass;
  8. use bizGhs\ghs\classes\GhsClass;
  9. use bizGhs\order\classes\PurchaseOrderClass;
  10. use bizGhs\order\classes\PurchaseOrderItemClass;
  11. use bizGhs\order\classes\StockInOrderClass;
  12. use bizGhs\order\classes\StockOutOrderClass;
  13. use bizGhs\order\classes\StockOutOrderItemClass;
  14. use bizGhs\stock\classes\OnStockRecordClass;
  15. use bizHd\purchase\classes\PurchaseClass;
  16. use bizHd\purchase\classes\PurchaseItemClass;
  17. use yii\console\Controller;
  18. use Yii;
  19. class InitController extends Controller
  20. {
  21. //在路上库存 ssh 20231218
  22. public function actionOnStock()
  23. {
  24. ini_set('memory_limit', '2045M');
  25. set_time_limit(0);
  26. $sql = 'UPDATE xhGhsItem SET onStock=0;';
  27. Yii::$app->db->createCommand($sql)->execute();
  28. $sql = 'truncate xhGhsOnStockRecord;';
  29. Yii::$app->db->createCommand($sql)->execute();
  30. $cgList = PurchaseOrderClass::getAllByCondition(['status' => 3], null, '*', null, true);
  31. if (!empty($cgList)) {
  32. foreach ($cgList as $key => $cg) {
  33. $orderSn = $cg->orderSn ?? '';
  34. $sjId = $cg->sjId ?? 0;
  35. $shopId = $cg->shopId ?? 0;
  36. $mainId = $cg->mainId ?? 0;
  37. $ghsName = $cg->ghsName ?? '';
  38. $itemList = PurchaseOrderItemClass::getAllByCondition(['orderSn' => $orderSn], null, '*', null, true);
  39. if (!empty($itemList)) {
  40. foreach ($itemList as $info) {
  41. $productId = $info->productId ?? 0;
  42. $itemId = $info->itemId ?? 0;
  43. $num = $info->itemNum ?? 0;
  44. $product = ProductClass::getLockById($productId);
  45. //增加路上库存
  46. $onRecord = [];
  47. $onRecord['sjId'] = $sjId;
  48. $onRecord['shopId'] = $shopId;
  49. $onRecord['mainId'] = $mainId;
  50. $onRecord['orderSn'] = $orderSn;
  51. $onRecord['productId'] = $productId;
  52. $onRecord['itemId'] = $itemId;
  53. $onRecord['relateName'] = $ghsName;
  54. $onRecord['itemNum'] = $num;
  55. $oldOnStock = $product->onStock ?? 0;
  56. $onRecord['oldStock'] = $oldOnStock;
  57. $newOnStock = bcadd($oldOnStock, $num);
  58. $onRecord['newStock'] = $newOnStock;
  59. $onRecord['ptStyle'] = 2;
  60. OnStockRecordClass::addPurchaseOrderRecord($onRecord);
  61. \bizGhs\product\classes\ProductClass::addOnStockByItemNum($productId, $num);
  62. }
  63. }
  64. }
  65. }
  66. }
  67. public function actionLsOnStock()
  68. {
  69. ini_set('memory_limit', '2045M');
  70. set_time_limit(0);
  71. $cgList = PurchaseClass::getAllByCondition(['status' => 3], null, '*', null, true);
  72. if (!empty($cgList)) {
  73. foreach ($cgList as $key => $cg) {
  74. $orderSn = $cg->orderSn ?? '';
  75. $sjId = $cg->sjId ?? 0;
  76. $shopId = $cg->shopId ?? 0;
  77. $mainId = $cg->mainId ?? 0;
  78. $ghsName = $cg->ghsName ?? '';
  79. $itemList = PurchaseItemClass::getAllByCondition(['orderSn' => $orderSn], null, '*', null, true);
  80. if (!empty($itemList)) {
  81. foreach ($itemList as $val) {
  82. $productId = $val->productId ?? 0;
  83. $itemId = $val->itemId ?? 0;
  84. $num = $val->xhNum ?? 0;
  85. $product = ProductClass::getLockById($productId);
  86. if (empty($product)) {
  87. util::fail('没有找到花材呢');
  88. }
  89. //增加路上库存
  90. $onRecord = [];
  91. $onRecord['sjId'] = $sjId;
  92. $onRecord['shopId'] = $shopId;
  93. $onRecord['mainId'] = $mainId;
  94. $onRecord['orderSn'] = $orderSn;
  95. $onRecord['productId'] = $productId;
  96. $onRecord['itemId'] = $itemId;
  97. $onRecord['relateName'] = $ghsName;
  98. $onRecord['itemNum'] = $num;
  99. $oldOnStock = $product->onStock ?? 0;
  100. $onRecord['oldStock'] = $oldOnStock;
  101. $newOnStock = bcadd($oldOnStock, $num);
  102. $onRecord['newStock'] = $newOnStock;
  103. $onRecord['ptStyle'] = 1;
  104. OnStockRecordClass::addPurchaseOrderRecord($onRecord);
  105. \bizGhs\product\classes\ProductClass::addOnStockByItemNum($productId, $num);
  106. }
  107. }
  108. }
  109. }
  110. }
  111. public function actionCustom()
  112. {
  113. $list = CustomClass::getAllByCondition(['isHd' => 0], null, '*', null, true);
  114. if (!empty($list)) {
  115. foreach ($list as $custom) {
  116. $custom->level = 0;
  117. $custom->save();
  118. $ghsId = $custom->ghsId;
  119. $ghs = GhsClass::getById($ghsId, true);
  120. if (!empty($ghs)) {
  121. $ghs->giveLevel = 0;
  122. $ghs->save();
  123. echo 'customId:' . $custom->id . ' ghsId:' . $ghsId . "\n";
  124. }
  125. }
  126. }
  127. }
  128. public function actionOut()
  129. {
  130. ini_set('memory_limit', '2045M');
  131. set_time_limit(0);
  132. $list = StockOutOrderClass::getAllByCondition(['addTime>' => '2022-11-10 00:00:00'], null, '*', null, true);
  133. if (empty($list)) {
  134. return false;
  135. }
  136. foreach ($list as $out) {
  137. $orderSn = $out->orderSn ?? '';
  138. $inOrderSn = $out->inOrderSn ?? '';
  139. $in = StockInOrderClass::getByCondition(['orderSn' => $inOrderSn], true);
  140. if (empty($in)) {
  141. echo $orderSn . " 没有找到入库记录\n";
  142. }
  143. $itemList = StockOutOrderItemClass::getAllByCondition(['orderSn' => $orderSn], null, '*', null, true);
  144. $totalCost = 0;
  145. if (!empty($itemList)) {
  146. foreach ($itemList as $item) {
  147. $itemNum = $item->itemNum ?? 0;
  148. $itemPrice = $item->itemPrice ?? 0;
  149. $current = bcmul($itemNum, $itemPrice, 2);
  150. $totalCost = bcadd($totalCost, $current, 2);
  151. }
  152. }
  153. $in->price = $totalCost;
  154. $in->save();
  155. $out->price = $totalCost;
  156. $out->save();
  157. echo $orderSn . " 总成本{$totalCost}\n";
  158. }
  159. }
  160. }