ProductController.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  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. //库存预警
  33. if($type=='waring'){
  34. //shopId 改为可以前端传,默认是当前shopId linqh 2021.1.26
  35. $shopId = Yii::$app->request->get('shopId',0);
  36. if(!$shopId){
  37. $shopId = $this->shopId;
  38. }
  39. $waringItemIds = ProductClass::getItemIdsWarning($this->sjId,$shopId);
  40. $itemIds = array_intersect($itemIds,$waringItemIds);
  41. }
  42. $itemInfoData = ProductClass::getProductInfoByItemIds($itemIds);
  43. //常用的itemIds
  44. $oftenItemIds = ProductClass::getOftenItemIds($this->sjId);
  45. //组装数据: [{classId:'','className:'',child:[{itemInfoData}]}]
  46. $data = ProductService::assembleData($classIds,$itemIdsInfo,$itemInfoData,$oftenItemIds);
  47. util::success($data);
  48. }
  49. //弃用
  50. public function actionList()
  51. {
  52. $classId = Yii::$app->request->get('classId',0);
  53. $pyName = Yii::$app->request->get('py','');
  54. $itemIds = ItemClass::getItemIdsByClassId($classId);
  55. if($pyName){
  56. $pyNameItemIds = ItemClass::getItemIdsByPyName($pyName);
  57. $itemIds = array_intersect($itemIds,$pyNameItemIds);
  58. }
  59. $data = ProductClass::getProductInfoByItemIds($itemIds);
  60. util::success($data);
  61. }
  62. //改价
  63. public function actionChangePrice()
  64. {
  65. $productId = Yii::$app->request->post('productId',0);
  66. $price = Yii::$app->request->post('price');
  67. if(!is_numeric($price)){
  68. util::fail("请输入正确价格");
  69. }
  70. if($price <= 0 ){
  71. util::fail("价格不能小于0");
  72. }
  73. //判断是否有效
  74. $productData = ProductClass::getProductData($productId,$this->shopId);
  75. if(!$productData){
  76. util::fail("花材不存在");
  77. }
  78. ProductClass::changePrice($productId,$this->shopId,$price, ProductClass::PRICE_LABEL_CHANGE);
  79. util::complete("改价成功");
  80. }
  81. //恢复自动调价
  82. public function actionAutoPrice()
  83. {
  84. $productId = Yii::$app->request->post('productId',0);
  85. $productData = ProductClass::getById($productId);
  86. if(!$productData){
  87. util::fail("花材不存在");
  88. }
  89. $itemId = $productData['itemId'];
  90. //获取该花材的每扎成本价和每扎加价
  91. //自动调价=每扎成本价+每扎加价
  92. $itemData = ItemClass::getItemData($itemId,$this->sjId);
  93. if(!$itemData){
  94. util::fail("出错拉");
  95. }
  96. $price = bcadd($itemData['unitCost'],$itemData['unitAddPrice'],2);
  97. ProductClass::changePrice($productId,$this->shopId,$price, ProductClass::PRICE_LABEL_AUTO);
  98. util::complete("操作成功");
  99. }
  100. }