|
@@ -28,6 +28,39 @@ class Manage
|
|
|
$update['lat'] = $temp[2];
|
|
|
}
|
|
|
|
|
|
+ $goods = Dever::param('goods', $data);
|
|
|
+ if ($goods) {
|
|
|
+ $goods = Dever::json_decode($goods);
|
|
|
+
|
|
|
+ if ($goods) {
|
|
|
+ foreach ($goods as $k1 => $v1) {
|
|
|
+ if ($v1['value']) {
|
|
|
+ foreach ($v1['value'] as $k => $v) {
|
|
|
+ if ($v['state'] == 1) {
|
|
|
+ $w = array();
|
|
|
+ $w['goods_id'] = $v['id'];
|
|
|
+ $w['factory_id'] = $id;
|
|
|
+ $info = Dever::db('factory/goods')->one($w);
|
|
|
+
|
|
|
+ $w['category_id'] = $v1['id'];
|
|
|
+ if (!$info) {
|
|
|
+ Dever::db('factory/goods')->insert($w);
|
|
|
+ } else {
|
|
|
+ $w['where_id'] = $info['id'];
|
|
|
+ $w['state'] = 1;
|
|
|
+ Dever::db('factory/goods')->update($w);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ unset($goods[$k1]['value'][$k]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ $update['goods'] = Dever::json_encode($goods);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
if (isset($update) && $update) {
|
|
|
$update['where_id'] = $id;
|
|
|
Dever::db('factory/info')->update($update);
|
|
@@ -44,62 +77,91 @@ class Manage
|
|
|
$update = array();
|
|
|
$state = Dever::param('state', $data);
|
|
|
if ($state) {
|
|
|
+ Dever::config('base')->after = true;
|
|
|
$info = Dever::db('factory/goods')->one($id);
|
|
|
$factory_id = $info['factory_id'];
|
|
|
|
|
|
- $array = Dever::db('factory/goods')->getIds(array('factory_id' => $factory_id));
|
|
|
- Dever::config('base')->after = true;
|
|
|
- if ($array) {
|
|
|
- $ids = array_keys($array);
|
|
|
- $set = array();
|
|
|
- $set['goods'] = implode(',', $ids);
|
|
|
- $set['where_id'] = $factory_id;
|
|
|
- Dever::db('factory/info')->update($set);
|
|
|
- } else {
|
|
|
- $set['goods'] = '';
|
|
|
+ $factory = Dever::db('factory/info')->one($factory_id);
|
|
|
+
|
|
|
+ if ($factory && $factory['goods']) {
|
|
|
+ $goods = Dever::json_decode($factory['goods']);
|
|
|
+
|
|
|
+ if (isset($goods['level_' . $info['category_id']]['value']['id_' . $info['goods_id']])) {
|
|
|
+ if ($state == 2) {
|
|
|
+ unset($goods['level_' . $info['category_id']]['value']['id_' . $info['goods_id']]);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (count($goods['level_' . $info['category_id']]['value']) <= 0) {
|
|
|
+ unset($goods['level_' . $info['category_id']]);
|
|
|
+ }
|
|
|
+ } elseif ($state == 1) {
|
|
|
+ $goods_info = Dever::db('goods/info')->one($info['goods_id']);
|
|
|
+ $cate = Dever::load('category/api')->string($info['category_id']);
|
|
|
+ $goods['level_' . $info['category_id']]['id'] = $info['category_id'];
|
|
|
+ $goods['level_' . $info['category_id']]['name'] = $cate;
|
|
|
+ $goods['level_' . $info['category_id']]['value']['id_' . $info['goods_id']] = array
|
|
|
+ (
|
|
|
+ 'id' => $info['goods_id'],
|
|
|
+ 'name' => $goods_info['name'],
|
|
|
+ 'state' => 1,
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ $set['goods'] = Dever::json_encode($goods);
|
|
|
$set['where_id'] = $factory_id;
|
|
|
Dever::db('factory/info')->update($set);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- $goods_id = Dever::param('goods_id', $data);
|
|
|
- if ($goods_id) {
|
|
|
- $info = Dever::db('goods/info')->find($goods_id);
|
|
|
- $update['price_type'] = $info['price_type'];
|
|
|
- }
|
|
|
-
|
|
|
- if (isset($update) && $update) {
|
|
|
- $update['where_id'] = $id;
|
|
|
- Dever::db('factory/goods')->update($update);
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
public function skuConfig()
|
|
|
{
|
|
|
$data['action'] = Dever::url('factory/lib/manage.skuUp');
|
|
|
- $data['info_id'] = Dever::input('search_option_factory_goods_id');
|
|
|
+ $data['goods_id'] = Dever::input('search_option_goods_id');
|
|
|
+ $data['factory_id'] = Dever::input('search_option_factory_id');
|
|
|
return $data;
|
|
|
}
|
|
|
|
|
|
public function skuUp_api()
|
|
|
{
|
|
|
- $factory_goods_id = Dever::input('info_id');
|
|
|
+ $goods_id = Dever::input('goods_id');
|
|
|
+ $factory_id = Dever::input('factory_id');
|
|
|
$key = Dever::input('key');
|
|
|
- $c_price = Dever::input('c_price');
|
|
|
+ $p_price = Dever::input('p_price');
|
|
|
+
|
|
|
+ if ($key == -1) {
|
|
|
+ $data = array();
|
|
|
+ $data['factory_id'] = $factory_id;
|
|
|
+ $data['goods_id'] = $goods_id;
|
|
|
+ $data['sku_id'] = -1;
|
|
|
+ $factory_info = Dever::db('factory/goods_sku')->one($data);
|
|
|
+
|
|
|
+ $data['p_price'] = $p_price;
|
|
|
+ if (!$factory_info) {
|
|
|
+ Dever::db('factory/goods_sku')->insert($data);
|
|
|
+ } else {
|
|
|
+ $data['where_id'] = $factory_info['id'];
|
|
|
+ Dever::db('factory/goods_sku')->update($data);
|
|
|
+ }
|
|
|
|
|
|
- $factory_goods = Dever::db('factory/goods')->one($factory_goods_id);
|
|
|
- if ($key) {
|
|
|
+ $where['factory_id'] = $factory_id;
|
|
|
+ $where['goods_id'] = $goods_id;
|
|
|
+ $info = Dever::db('factory/goods')->one($where);
|
|
|
+
|
|
|
+ if ($info) {
|
|
|
+ Dever::db('factory/goods')->update(array('id' => $info['id'], 'p_price' => $p_price));
|
|
|
+ }
|
|
|
+ } elseif ($key) {
|
|
|
foreach ($key as $k => $v) {
|
|
|
- if (isset($c_price[$k]) && $c_price[$k]) {
|
|
|
- $info = Dever::db('goods/info_sku')->one(array('key' => $v));
|
|
|
+ if (isset($p_price[$k]) && $p_price[$k]) {
|
|
|
+ $sku = Dever::db('goods/info_sku')->one(array('key' => $v));
|
|
|
$data = array();
|
|
|
- $data['factory_id'] = $factory_goods['factory_id'];
|
|
|
- $data['goods_id'] = $factory_goods['goods_id'];
|
|
|
- $data['factory_goods_id'] = $factory_goods_id;
|
|
|
- $data['sku_id'] = $info['id'];
|
|
|
+ $data['factory_id'] = $factory_id;
|
|
|
+ $data['goods_id'] = $goods_id;
|
|
|
+ $data['sku_id'] = $sku['id'];
|
|
|
$factory_info = Dever::db('factory/goods_sku')->one($data);
|
|
|
|
|
|
- $data['c_price'] = $c_price[$k];
|
|
|
+ $data['p_price'] = $p_price[$k];
|
|
|
if (!$factory_info) {
|
|
|
Dever::db('factory/goods_sku')->insert($data);
|
|
|
} else {
|
|
@@ -115,64 +177,75 @@ class Manage
|
|
|
|
|
|
public function skuInput()
|
|
|
{
|
|
|
- $id = Dever::input('search_option_factory_goods_id');
|
|
|
+ $goods_id = Dever::input('search_option_goods_id');
|
|
|
|
|
|
- $factory_goods = Dever::db('factory/goods')->one($id);
|
|
|
+ $factory_id = Dever::input('search_option_factory_id');
|
|
|
|
|
|
- $sku = Dever::db('goods/info_sku')->getData(array('info_id' => $factory_goods['goods_id']));
|
|
|
+ $sku = Dever::db('goods/info_sku')->getData(array('info_id' => $goods_id));
|
|
|
|
|
|
- $sku_num = Dever::db('factory/goods_sku')->getData(array('factory_goods_id' => $id));
|
|
|
+ $sku_value = Dever::db('factory/goods_sku')->getData(array('goods_id' => $goods_id, 'factory_id' => $factory_id));
|
|
|
|
|
|
- $info = Dever::db('goods/info')->one($factory_goods['goods_id']);
|
|
|
+ $info = Dever::db('goods/info')->one($goods_id);
|
|
|
|
|
|
$info = \Goods\Lib\Info::init(-1)->info($info, 'list_reorder');
|
|
|
|
|
|
- $html = '请先选择属性';
|
|
|
- if ($info['sell_attr']) {
|
|
|
- $head = '<thead><tr>';
|
|
|
- $body = '<tbody>';
|
|
|
- $option = array();
|
|
|
- foreach ($info['sell_attr'] as $k => $v) {
|
|
|
- $head .= '<th>'.$v['name'].'</th>';
|
|
|
- if (isset($v['option_sku'])) {
|
|
|
- $option[$k] = $v['option_sku'];
|
|
|
- }
|
|
|
+ if (!isset($info['sell_attr'])) {
|
|
|
+ $html = '<input type="hidden" name="goods_id" value="'.$goods_id.'"/><input type="hidden" name="factory_id" value="'.$factory_id.'"/><input type="hidden" name="key" value="-1"/>';
|
|
|
+
|
|
|
+ $p_price = '';
|
|
|
+ if (isset($sku_value[-1])) {
|
|
|
+ $p_price = $sku_value[-1]['p_price'];
|
|
|
}
|
|
|
- $head .= '<th>出厂价</th>';
|
|
|
- $head .= '</tr></thead>';
|
|
|
-
|
|
|
- if ($option) {
|
|
|
- $option = Dever::cartesian($option);
|
|
|
-
|
|
|
- foreach ($option as $k => $v) {
|
|
|
- $body .= '<tr data-row="' .($k+1). '">';
|
|
|
-
|
|
|
- $key = $id = array();
|
|
|
- foreach ($v['name'] as $k1 => $v1) {
|
|
|
- $rows = 1;
|
|
|
- $body .= '<td width="50" rowspan="'.$rows.'">'.$v1.'</td>';
|
|
|
- $id[] = array
|
|
|
- (
|
|
|
- 'id' => $v['id'][$k1],
|
|
|
- 'attr_id' => $v['info_id'][$k1],
|
|
|
- );
|
|
|
- $key[] = $v['info_id'][$k1] . '-' . $v['id'][$k1];
|
|
|
+ $html .= '<div classs="layui-col-lg6"><div><label style="font-size:14px;font-weight:bold;" class="">出厂价</label></div><div><input type="text" class="layui-input update_value form-control layui-input" name="p_price" id="p_price" autocomplete="new-password" placeholder="" value="'.$p_price.'"></div></div>';
|
|
|
+
|
|
|
+ } else {
|
|
|
+ $html = '请先选择属性';
|
|
|
+ if ($info['sell_attr']) {
|
|
|
+ $head = '<thead><tr>';
|
|
|
+ $body = '<tbody>';
|
|
|
+ $option = array();
|
|
|
+ foreach ($info['sell_attr'] as $k => $v) {
|
|
|
+ $head .= '<th>'.$v['name'].'</th>';
|
|
|
+ if (isset($v['option_sku'])) {
|
|
|
+ $option[$k] = $v['option_sku'];
|
|
|
}
|
|
|
- $key = implode('_', $key);
|
|
|
- $c_price = '';
|
|
|
- if (isset($sku[$key]) && isset($sku_num[$sku[$key]['id']])) {
|
|
|
- $c_price = $sku_num[$sku[$key]['id']]['c_price'];
|
|
|
+ }
|
|
|
+ $head .= '<th>出厂价</th>';
|
|
|
+ $head .= '</tr></thead>';
|
|
|
+
|
|
|
+ if ($option) {
|
|
|
+ $option = Dever::cartesian($option);
|
|
|
+
|
|
|
+ foreach ($option as $k => $v) {
|
|
|
+ $body .= '<tr data-row="' .($k+1). '">';
|
|
|
+
|
|
|
+ $key = $id = array();
|
|
|
+ foreach ($v['name'] as $k1 => $v1) {
|
|
|
+ $rows = 1;
|
|
|
+ $body .= '<td width="50" rowspan="'.$rows.'">'.$v1.'</td>';
|
|
|
+ $id[] = array
|
|
|
+ (
|
|
|
+ 'id' => $v['id'][$k1],
|
|
|
+ 'attr_id' => $v['info_id'][$k1],
|
|
|
+ );
|
|
|
+ $key[] = $v['info_id'][$k1] . '-' . $v['id'][$k1];
|
|
|
+ }
|
|
|
+ $key = implode('_', $key);
|
|
|
+ $p_price = '';
|
|
|
+ if (isset($sku[$key]) && isset($sku_value[$sku[$key]['id']])) {
|
|
|
+ $p_price = $sku_value[$sku[$key]['id']]['p_price'];
|
|
|
+ }
|
|
|
+ $body .= '<td width="30"><input type="text" class="layui-input" name="p_price['.$k.']" value="'.$p_price.'"/></td>';
|
|
|
+
|
|
|
+ $body .= '<input type="hidden" name="key['.$k.']" value="'.$key.'"/>';
|
|
|
+ $body .= '</tr>';
|
|
|
}
|
|
|
- $body .= '<td width="30"><input type="text" class="layui-input" name="c_price['.$k.']" value="'.$c_price.'"/></td>';
|
|
|
-
|
|
|
- $body .= '<input type="hidden" name="key['.$k.']" value="'.$key.'"/>';
|
|
|
- $body .= '</tr>';
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- $body .= '</tbody>';
|
|
|
-
|
|
|
- $html = $head . $body;
|
|
|
+ $body .= '<input type="hidden" name="goods_id" value="'.$goods_id.'"/><input type="hidden" name="factory_id" value="'.$factory_id.'"/></tbody>';
|
|
|
+
|
|
|
+ $html = $head . $body;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return $html;
|