MyProductBatchProcessSheetForm.php 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. /**
  3. * 重庆赤晓店信息科技有限公司
  4. * https://www.chixiaodian.com
  5. * Copyright (c) 2023 赤店商城 All rights reserved.
  6. */
  7. namespace app\plugins\product_traceability\models\client;
  8. use app\models\Goods;
  9. use app\models\SaasUser;
  10. use app\models\Shop;
  11. use app\models\Store;
  12. use app\models\User;
  13. use app\plugins\food\models\FoodOrderDetail;
  14. use app\plugins\product_traceability\models\Product;
  15. use app\plugins\product_traceability\models\ProductBatch;
  16. use app\plugins\product_traceability\models\ProductBatchProcess;
  17. use app\plugins\product_traceability\models\ProductBatchProcessLog;
  18. use app\plugins\product_traceability\models\ProductBatchProcessLogSheet;
  19. use app\plugins\product_traceability\models\ProductBatchProcessSheet;
  20. use app\utils\Tools;
  21. use yii\base\Model;
  22. use yii\data\Pagination;
  23. use yii\helpers\Json;
  24. use yii\helpers\Json as HelpersJson;
  25. class MyProductBatchProcessSheetForm extends Model
  26. {
  27. public $store_id;
  28. public $user_id;
  29. public $product_batch_process_id;
  30. public $page;
  31. public $limit;
  32. public function rules()
  33. {
  34. return [
  35. [['store_id', 'user_id', 'product_batch_process_id'], 'required'],
  36. [['page', 'limit'], 'integer'],
  37. [['page'], 'default', 'value' => 1],
  38. [['limit'], 'default', 'value' => 20],
  39. ];
  40. }
  41. public function search()
  42. {
  43. if (!$this->validate()) {
  44. return ['code' => 1, 'msg' => $this->getErrorSummary(false)[0]];
  45. }
  46. $query = ProductBatchProcess::find()->alias('pbp')
  47. ->innerJoin(['pbpl' => ProductBatchProcessLog::tableName()], 'pbp.id=pbpl.product_batch_process_id')
  48. ->innerJoin(['pbps' => ProductBatchProcessSheet::tableName()], 'pbp.id=pbps.product_batch_process_id')
  49. ->leftJoin(['pbpls' => ProductBatchProcessLogSheet::tableName()], 'pbps.id=pbpls.process_sheet_id and `pbpls`.`is_delete`=0')
  50. ->where([
  51. 'pbpl.is_delete' => 0,
  52. // 'pbpl.state' => 0,
  53. 'pbp.is_delete' => 0,
  54. 'pbp.store_id' => get_store_id(),
  55. 'pbp.process_user_id' => $this->user_id,
  56. 'pbp.id' => $this->product_batch_process_id,
  57. ])
  58. ->andWhere([
  59. 'or',
  60. 'isnull(pbpls.id)',
  61. ['pbpls.is_delete' => 0],
  62. ])
  63. ->select(['pbps.*', 'pbpl.id as process_log_id', 'pbpls.value']);
  64. $count = $query->count();
  65. $pagination = new Pagination(['totalCount' => $count, 'page' => $this->page - 1, 'pageSize' => $this->limit]);
  66. $product_batch_process_sheet = $query->limit($pagination->limit)->offset($pagination->offset)->asArray()->all();
  67. return [
  68. 'code' => 0,
  69. 'msg' => 'success',
  70. 'product_batch_process_sheet' => $product_batch_process_sheet
  71. ];
  72. }
  73. }