Set.php 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. <?php
  2. namespace Scm_product\Lib;
  3. use Dever;
  4. class Set
  5. {
  6. # 获取商品列表
  7. public function goods_api()
  8. {
  9. $id = Dever::input('id', 1);
  10. $project = Dever::input('project');
  11. $goods = Dever::input('goods');
  12. $price_id = Dever::input('price_id', -1);
  13. $type = Dever::input('type', 1);
  14. $source = '';
  15. $table = 'scm_'.$project.'/' . $goods;
  16. if ($type == 2) {
  17. $source = $table;
  18. $table = '';
  19. }
  20. $goods_category = Dever::input('goods_category');
  21. $where[$project . '_id'] = $id;
  22. return Dever::outDiy(Dever::load('scm_product/lib/info')->getSetList($table, $where, $goods_category, 'goods_id', array(), $price_id, $source));
  23. }
  24. # 配置商品
  25. public function home_api()
  26. {
  27. $data = array();
  28. $data['id'] = Dever::input('id', 1);
  29. $data['project'] = Dever::input('project');
  30. $data['info'] = Dever::input('info');
  31. $data['goods'] = Dever::input('goods');
  32. $info = Dever::db('scm_' . $data['project'] . '/' . $data['info'])->find($data['id']);
  33. $data['info'] = $info;
  34. $data['host'] = Dever::url('lib/set.home', 'scm_product');
  35. $uri = 'lib/set.goods?id=' . $data['id'] . '&project=' . $data['project'] . '&goods=' . $data['goods'];
  36. if (isset($info['category'])) {
  37. $uri .= '&goods_category=' . $info['category'];
  38. }
  39. if (isset($info['price_id'])) {
  40. $uri .= '&price_id=' . $info['price_id'];
  41. }
  42. $data['url'] = Dever::url($uri, 'scm_product');
  43. $data['submit'] = Dever::url('lib/set.action_commit?json=1', 'scm_product');
  44. return Dever::render('set_' . $data['project'] . '_goods', $data);
  45. }
  46. # 配置商品
  47. public function action_commit_api()
  48. {
  49. $goods = Dever::input('goods');
  50. if (!$goods) {
  51. Dever::alert('请传入商品');
  52. }
  53. $role = Dever::input('role');
  54. $goods = Dever::json_decode($goods);
  55. $id = Dever::input('id');
  56. $col = $role . '_id';
  57. $table_goods = 'scm_'.$role.'/goods';
  58. $table_goods_sku = 'scm_'.$role.'/goods_sku';
  59. $info = Dever::db('scm_' . $role . '/info')->one($id);
  60. $where['option_' . $col] = $id;
  61. $where['set_state'] = 2;
  62. Dever::db($table_goods)->updates($where);
  63. Dever::db($table_goods_sku)->updates($where);
  64. foreach ($goods as $k => $v) {
  65. $temp = explode('-', $k);
  66. $goods_id = $temp[0];
  67. if (isset($temp[1])) {
  68. $sku_id = $temp[1];
  69. } else {
  70. $sku_id = -1;
  71. }
  72. if ($v['num'] < 0) {
  73. continue;
  74. }
  75. $w = array();
  76. $w['goods_id'] = $goods_id;
  77. $w[$col] = $id;
  78. $w['sku_id'] = $sku_id;
  79. if ($v['del'] == 2) {
  80. $sku_info = Dever::db($table_goods_sku)->one($w);
  81. if ($sku_info) {
  82. Dever::db($table_goods_sku)->update(array('where_id' => $sku_info['id'], 'state' => 2));
  83. }
  84. unset($w['sku_id']);
  85. $t = $w;
  86. $t['state'] = 1;
  87. $total = Dever::db($table_goods_sku)->total($t);
  88. if ($total <= 0) {
  89. $info = Dever::db($table_goods)->one($w);
  90. if ($info) {
  91. Dever::db($table_goods)->update(array('where_id' => $info['id'], 'state' => 2));
  92. }
  93. }
  94. } else {
  95. $goods_info = Dever::db('scm_product/info')->one($goods_id);
  96. $info = Dever::db($table_goods)->one($w);
  97. $u = $w;
  98. if (isset($v['min'])) {
  99. $u['min'] = $v['min'];
  100. }
  101. if (isset($v['cost_price'])) {
  102. $u['cost_price'] = $v['cost_price'];
  103. }
  104. if (!$info) {
  105. Dever::db($table_goods)->insert($u);
  106. } else {
  107. $u['where_id'] = $info['id'];
  108. $u['state'] = 1;
  109. Dever::db($table_goods)->update($u);
  110. }
  111. $u['sku_id'] = $w['sku_id'] = $sku_id;
  112. $info = Dever::db($table_goods_sku)->one($w);
  113. if (!$info) {
  114. Dever::db($table_goods_sku)->insert($u);
  115. } else {
  116. $u['where_id'] = $info['id'];
  117. $u['state'] = 1;
  118. Dever::db($table_goods_sku)->update($u);
  119. }
  120. }
  121. }
  122. return 'refer';
  123. }
  124. }