GoodsForm.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. namespace app\modules\admin\models\erp;
  3. use app\models\ErpInventory;
  4. use app\models\ErpSupplier;
  5. use app\models\Goods;
  6. class GoodsForm extends Model
  7. {
  8. public $goods_no;
  9. public $store_id;
  10. public function rules()
  11. {
  12. return [
  13. [['goods_no', 'store_id'], 'string']
  14. ];
  15. }
  16. public function getGoodsList() {
  17. $store_id = $this->store_id;
  18. $goods_no = $this->goods_no;
  19. try {
  20. if (empty($goods_no)) {
  21. return [
  22. 'code' => 0,
  23. 'msg' => '货号不能为空',
  24. 'data' => [
  25. 'list' => []
  26. ]
  27. ];
  28. }
  29. $goods_id = Goods::find()->where(['store_id' => $store_id, 'is_delete' => 0])
  30. ->andWhere(['LIKE', 'goods_no', $goods_no])->select('id')->column();
  31. $query = ErpInventory::find()->alias('ei')->where(['ei.is_delete' => 0, 'ei.store_id' => $store_id]);
  32. $query->leftJoin(['g' => Goods::tableName()], 'g.id = ei.goods_id');
  33. if ($goods_id) {
  34. $query->andWhere(['OR', ['ei.goods_no' => $goods_no], ['LIKE', 'ei.sku_id', $goods_no], ['ei.goods_id' => $goods_id]]);
  35. } else {
  36. $query->andWhere(['OR', ['ei.goods_no' => $goods_no], ['LIKE', 'ei.sku_id', $goods_no]]);
  37. }
  38. $query->orderBy('ei.goods_id DESC');
  39. $query->select('ei.*, g.name goods_name, g.cover_pic');
  40. $pagination = pagination_make($query);
  41. foreach ($pagination['list'] as &$item) {
  42. // $item['created_at'] = date("Y-m-d H:i:s", $item['created_at']);
  43. $attr_info = json_decode($item['attr_info'], true);
  44. $item['attr_names'] = implode(',', array_column($attr_info['attr_list'], 'attr_name'));
  45. $item['price'] = $attr_info['price'];
  46. if($attr_info['pic']){
  47. $item['cover_pic'] = $attr_info['pic'];
  48. }
  49. $item['num'] = 0;
  50. }
  51. return [
  52. 'code' => 0,
  53. 'msg' => 'success',
  54. 'data' => $pagination,
  55. // 'q' => $query->createCommand()->getRawSql(),
  56. ];
  57. } catch (\Exception $e) {
  58. \Yii::error($e);
  59. return [
  60. 'code' => 1,
  61. 'msg' => $e->getMessage()
  62. ];
  63. }
  64. }
  65. }