ProductController.php 3.5 KB

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