PurchaseController.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <?php
  2. namespace console\controllers;
  3. use bizHd\purchase\classes\PurchaseClass;
  4. use bizHd\purchase\models\Purchase;
  5. use bizHd\purchase\services\PurchaseService;
  6. use common\components\dict;
  7. use common\components\noticeUtil;
  8. use yii\console\Controller;
  9. use Yii;
  10. class PurchaseController extends Controller
  11. {
  12. //采购订单过期变更 ssh 2021.5.14
  13. public function actionExpireOrder()
  14. {
  15. die;
  16. //采购单由花店发起的!!!!!
  17. $hdInvite = dict::getDict('cgStyle', 'hd');
  18. $query = new \yii\db\Query();
  19. $query->from(Purchase::tableName());
  20. $date = date("Y-m-d H:i:s");
  21. //找出一个星期内可以标记为过期的订单
  22. $startDate = date("Y-m-d H:i:s", strtotime('-7 days'));
  23. $query->where(['status' => PurchaseClass::STATUS_UN_PAY])->andWhere(['cgStyle' => $hdInvite])->andWhere(['>', 'deadline', $startDate])->andWhere(['<=', 'deadline', $date]);
  24. $query->orderBy('deadline ASC');
  25. Yii::$app->params['ptStyle'] = dict::getDict('ptStyle', 'hd');
  26. //如果有报错,抛出异常
  27. Yii::$app->params['errorReport'] = 1;
  28. $arr = [];
  29. foreach ($query->batch() as $purchases) {
  30. foreach ($purchases as $purchase) {
  31. $connection = Yii::$app->db;//事务处理
  32. $transaction = $connection->beginTransaction();
  33. $id = $purchase['id'] ?? 0;
  34. $orderSn = $purchase['orderSn'] ?? '';
  35. try {
  36. $current = PurchaseClass::getById($id, true);
  37. PurchaseService::expire($current);
  38. $transaction->commit();
  39. noticeUtil::push("客户未付款,采购单过期,库存已回滚,单号:{$orderSn}");
  40. } catch (\Exception $e) {
  41. $transaction->rollBack();
  42. $msg = $e->getMessage();
  43. noticeUtil::push("采购单过期处理报错了!订单号:{$orderSn},错误信息:{$msg}", '15280215347');
  44. }
  45. $log = "过期的采购单:{$id} json:" . json_encode($purchase);
  46. $arr[] = $log;
  47. }
  48. }
  49. if (!empty($arr)) {
  50. foreach ($arr as $item) {
  51. Yii::info($item);
  52. }
  53. }
  54. }
  55. //待付款订单自动变成欠款订单
  56. public function actionSetDebtOrder()
  57. {
  58. //采购单由供应商发起的!!!!!
  59. $ghsInvite = dict::getDict('cgStyle', 'ghs');
  60. $query = new \yii\db\Query();
  61. $query->from(Purchase::tableName());
  62. $date = date("Y-m-d H:i:s");
  63. //找出一个星期内可以标记为欠款的订单
  64. $startDate = date("Y-m-d H:i:s", strtotime('-7 days'));
  65. $query->where(['status' => PurchaseClass::STATUS_UN_PAY])->andWhere(['cgStyle' => $ghsInvite])->andWhere(['>', 'autoSetTime', $startDate])->andWhere(['<=', 'autoSetTime', $date]);
  66. $query->orderBy('autoSetTime ASC');
  67. Yii::$app->params['ptStyle'] = dict::getDict('ptStyle', 'hd');
  68. //如果有报错,抛出异常
  69. Yii::$app->params['errorReport'] = 1;
  70. $arr = [];
  71. foreach ($query->batch() as $purchases) {
  72. foreach ($purchases as $purchase) {
  73. $connection = Yii::$app->db;//事务处理
  74. $transaction = $connection->beginTransaction();
  75. $id = $purchase['id'] ?? 0;
  76. $orderSn = $purchase['orderSn'] ?? '';
  77. try {
  78. $current = PurchaseClass::getById($id, true);
  79. //供应商发起的记欠款
  80. PurchaseService::debt($current);
  81. $transaction->commit();
  82. noticeUtil::push("采购单已经变更为欠款。订单号:{$orderSn}", '15280215347');
  83. } catch (\Exception $e) {
  84. $transaction->rollBack();
  85. $msg = $e->getMessage();
  86. noticeUtil::push("待付款采购单设置为欠款单报错了!订单号:{$orderSn},错误信息:{$msg}", '15280215347');
  87. }
  88. $log = "待付款采购单设置为欠款单:{$id} json:" . json_encode($purchase);
  89. $arr[] = $log;
  90. }
  91. }
  92. if (!empty($arr)) {
  93. foreach ($arr as $item) {
  94. Yii::info($item);
  95. }
  96. }
  97. }
  98. }