ProductController.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. <?php
  2. /**
  3. * User: admin
  4. * Date Time: 2021/1/15 20:36
  5. */
  6. namespace ghs\controllers;
  7. use bizGhs\item\classes\ItemClass;
  8. use bizGhs\item\classes\ItemClassClass;
  9. use bizGhs\product\classes\ProductClass;
  10. use bizGhs\product\services\ProductService;
  11. use bizGhs\item\services\ItemService;
  12. use common\components\util;
  13. use Yii;
  14. class ProductController extends BaseController
  15. {
  16. //开单时获取所有的分类花材信息
  17. //库存预警
  18. public function actionIndex()
  19. {
  20. $py = Yii::$app->request->get('py','');
  21. $type = Yii::$app->request->get('type','');
  22. //获取所有当前供应商的分类 (全部、常用)
  23. //根据分类组装分类下的花材信息
  24. $classIds = ItemClassClass::getGhsItemClassAll($this->sjId);
  25. //获取供应商下所有花材ID (itemIds)
  26. $itemIdsInfo = ItemService::getGhsItemIds($this->sjId);
  27. $itemIds = array_column($itemIdsInfo,'itemId');
  28. if($py){
  29. $pyNameItemIds = ItemClass::getItemIdsByPyName($py);
  30. $itemIds = array_intersect($itemIds,$pyNameItemIds);
  31. }
  32. $shopId = $this->shopId;
  33. //库存预警
  34. if($type=='waring'){
  35. //shopId 改为可以前端传,默认是当前shopId linqh 2021.1.26
  36. $shopId = Yii::$app->request->get('shopId',0);
  37. if(!$shopId){
  38. $shopId = $this->shopId;
  39. }
  40. $waringItemIds = ProductClass::getItemIdsWarning($this->sjId,$shopId);
  41. $itemIds = array_intersect($itemIds,$waringItemIds);
  42. }
  43. $itemInfoData = ProductClass::getProductInfoByItemIds($itemIds,$shopId);
  44. //常用的itemIds
  45. $oftenItemIds = ProductClass::getOftenItemIds($shopId);
  46. //组装数据: [{classId:'','className:'',child:[{itemInfoData}]}]
  47. $data = ProductService::assembleData($classIds,$itemIdsInfo,$itemInfoData,$oftenItemIds);
  48. util::success($data);
  49. }
  50. //弃用
  51. public function actionList()
  52. {
  53. $classId = Yii::$app->request->get('classId',0);
  54. $pyName = Yii::$app->request->get('py','');
  55. $itemIds = ItemClass::getItemIdsByClassId($classId);
  56. if($pyName){
  57. $pyNameItemIds = ItemClass::getItemIdsByPyName($pyName);
  58. $itemIds = array_intersect($itemIds,$pyNameItemIds);
  59. }
  60. $data = ProductClass::getProductInfoByItemIds($itemIds,$this->shopId);
  61. util::success($data);
  62. }
  63. //改价
  64. public function actionChangePrice()
  65. {
  66. $productId = Yii::$app->request->post('productId',0);
  67. $price = Yii::$app->request->post('price');
  68. if(!is_numeric($price)){
  69. util::fail("请输入正确价格");
  70. }
  71. if($price <= 0 ){
  72. util::fail("价格不能小于0");
  73. }
  74. //判断是否有效
  75. $productData = ProductClass::getProductData($productId,$this->shopId);
  76. if(!$productData){
  77. util::fail("花材不存在");
  78. }
  79. ProductClass::changePrice($productId,$this->shopId,$price, ProductClass::PRICE_LABEL_CHANGE);
  80. util::complete("改价成功");
  81. }
  82. //恢复自动调价
  83. public function actionAutoPrice()
  84. {
  85. $productId = Yii::$app->request->post('productId',0);
  86. $productData = ProductClass::getById($productId);
  87. if(!$productData){
  88. util::fail("花材不存在");
  89. }
  90. $itemId = $productData['itemId'];
  91. //获取该花材的每扎成本价和每扎加价
  92. //自动调价=每扎成本价+每扎加价
  93. $itemData = ItemClass::getItemData($itemId,$this->sjId);
  94. if(!$itemData){
  95. util::fail("出错拉");
  96. }
  97. $price = bcadd($itemData['unitCost'],$itemData['unitAddPrice'],2);
  98. ProductClass::changePrice($productId,$this->shopId,$price, ProductClass::PRICE_LABEL_AUTO);
  99. util::complete("操作成功");
  100. }
  101. }