find($id);
if ($cash && $cash > 0) {
Dever::load('shop/lib/sign')->account_check($sign, $cash);
}
$create_shop = Dever::param('create_shop', $data);
$shop_id = Dever::param('shop_id', $data);
if ($create_shop) {
if ($create_shop == 1) {
# 绑定门店
if (!$shop_id) {
Dever::alert('请选择门店');
}
Dever::load('shop/lib/sign')->bind($id, $shop_id);
} elseif ($create_shop == 2) {
# 生成门店
//Dever::alert('暂时无法生成门店');
$shop_id = $this->createShop($sign);
if ($shop_id) {
Dever::load('shop/lib/sign')->bind($id, $shop_id);
}
}
}
}
private function createShop($info)
{
$data['name'] = $info['shop_name'];
$data['truename'] = $info['name'];
$data['mobile'] = $info['mobile'];
$data['type'] = 1;
$state = Dever::db('shop/info')->find($data);
if ($state) {
if (!$state['mid']) {
return $state['id'];
} else {
return false;
}
} else {
$data['area'] = $info['shop_area'];
$data['address'] = $info['shop_address'];
$data['license'] = $info['license'];
$data['license_number'] = $info['license_number'];
$data['company_name'] = $info['company_name'];
$data['idcard_front'] = $info['idcard_front'];
$data['idcard_back'] = $info['idcard_back'];
$data['license'] = $info['license'];
return Dever::db('shop/info')->insert($data);
}
}
public function sellOrderPs($id, $name, $data)
{
Dever::config('base')->hook = true;
$order_id = Dever::param('order_id', $data);
if ($order_id) {
$info = Dever::db('shop/sell_order')->find(array('id' => $order_id));
if ($info && $info['status'] < 3) {
Dever::load('shop/lib/sell')->notice($info);
}
}
}
# 获取规格型号
public function getSku($goods_id, $sku_id)
{
$goods_info = Dever::load('goods/lib/info')->getInfoBySku($goods_id, $sku_id);
if (isset($goods_info['sku'])) {
$sku = $goods_info['sku']['string'];
} else {
$sku = '';
}
return $sku;
}
# 获取在途库存
public function getGoodsTotal($type, $type_id, $goods_id, $sku_id)
{
$where['type'] = $type;
$where['type_id'] = $type_id;
$where['status'] = '2,3,4';
$where['goods_id'] = $goods_id;
$where['sku_id'] = $sku_id;
$order = Dever::db('shop/buy_order_goods')->getGoodsTotal($where);
if ($order && $order['total']) {
return $order['total'];
}
return 0;
}
public function buyInfoRefundNum($id)
{
$where['status'] = 3;
$where['order_id'] = $id;
$order = Dever::db('shop/buy_order_goods')->getGoodsNum($where);
if ($order && $order['total']) {
return $order['total'];
}
return 0;
}
public function buyInfoRefundStatus($id, $table = 'buy_order')
{
$info = Dever::db('shop/' . $table)->find($id);
if ($info['refund_cash'] > 0) {
if ($info['status'] == 6 || $info['status'] == 8) {
return '已退款';
} else {
return '有退款';
}
} elseif ($info['refund_status'] == 2) {
return '已申请';
} else {
return '未申请';
}
}
public function shopInfoType($type)
{
$config_type = Dever::db('shop/info')->config['config_type'];
return $config_type[$type];
}
public function getTotalCash($id)
{
$order = Dever::db('shop/sell_order')->one($id);
$cash = 0;
$cash = $order['oprice'];
return round($cash, 2);
}
public function getOrderUrl($source_type, $order_id, $order_num, $search)
{
//$url = Dever::load('manage/database')->url('list', $order_id, 'buy_order_goods&project=shop&order_id='.$order_id.'&page_type=1');
if ($source_type == 4) {
$url = Dever::url('project/database/list&project=shop&search_option_shop_type=1&page_type=2&menu_id=85&table=sell_order_goods&project=shop&order_id='.$order_id.'&page_type=&search_option_shop_type=1&menu=shop&menu_id=85&search_option_state=1&menu_id=85', 'manage');
} else {
$url = Dever::url('project/database/list?project=cash&search_option_search=1&search_option_type=1&page_type=2&table=buy_order_goods&project=shop&order_id='.$order_id.'&page_type=1&menu=cash&menu_id=124&search_option_state=1', 'manage');
if ($search == 3) {
$url .= '&type=2&search_option_type=2';
} elseif ($search == 2) {
$url .= '&type=1&search_option_type=3';
} else {
$url .= '&type=1&search_option_type=1';
}
}
$url = ''.$order_num.'';
return $url;
}
public function showCash($cash, $p_cash = 0)
{
if (!$cash) {
$cash = 0;
}
if (!$p_cash) {
$p_cash = 0;
}
return round($cash - $p_cash,2);
}
# 获取用户信息
public function user($id, $type = 1)
{
$info = Dever::db('shop/sell_order')->one($id);
if ($info['uid'] && $info['uid'] > 0) {
$user = Dever::db('passport/user')->one($info['uid']);
$result = $user['username'];
if ($type == 1 && $info['mobile']) {
$result .= '('.$info['mobile'].')';
}
} else {
$result = $info['mobile'];
}
return $result;
}
# 获取订单信息
public function sell_order($id)
{
$table = array();
$info = Dever::db('shop/sell_order')->one($id);
$goods = Dever::db('shop/sell_order_goods')->select(array('order_id' => $info['id']));
foreach ($goods as $k => $v) {
$goods_info = Dever::load('goods/lib/info')->getInfoBySku($v['goods_id'], $v['sku_id']);
//print_r($goods_info);die;
$table[$goods_info['name']] = $v['price'];
}
return Dever::table($table);
}
/**
* 更新信息
*
* @return mixed
*/
public function upInfo($id, $name, $data)
{
Dever::config('base')->hook = true;
}
/**
* 更新信息
*
* @return mixed
*/
public function printInsert($id, $name, $data)
{
Dever::config('base')->hook = true;
$name = Dever::param('name', $data);
$number = Dever::param('number', $data);
$phonenum = Dever::param('phonenum', $data);
$key = Dever::param('key', $data);
if ($number && $key) {
$data = array();
$data['name'] = $name;
$data['number'] = $number;
$data['phonenum'] = $phonenum;
$data['key'] = $key;
$result = Dever::load('mshop/lib/feieyun')->add(array($data));
if (isset($result['no'][0]) && $result['no'][0] && strstr($result['no'][0], '编号不合法')) {
Dever::db('shop/print')->update(array('where_id' => $id, 'status' => 10));
} else {
Dever::db('shop/print')->update(array('where_id' => $id, 'status' => 1));
}
}
}
/**
* 更新信息
*
* @return mixed
*/
public function printUpdate($id, $name, $data)
{
Dever::config('base')->hook = true;
$info = Dever::db('shop/print')->one($id);
$name = Dever::param('name', $data);
$phonenum = Dever::param('phonenum', $data);
if ($info && $name) {
if ($info['status'] == 10) {
$this->printInsert($id, $name, $info);
} else {
Dever::load('mshop/lib/feieyun')->edit($info['number'], $name, $phonenum);
}
}
}
/**
* 打印机状态
*
* @return mixed
*/
public function printStatus($status, $sn)
{
return $status >= 10 ? '绑定失败' : Dever::load('mshop/lib/feieyun')->status($sn);
}
public function buyOrderUpdate($id, $name, $data)
{
Dever::config('base')->hook = true;
$update = array();
$audit = Dever::param('audit', $data);
$info = Dever::db('shop/buy_order')->one($id);
if ($audit > 1 && $info && $info['status'] == 2) {
if ($audit == 2) {
# 成功
Dever::setInput('order_id', $id);
Dever::load('mshop/lib/buy.audit_commit');
} else {
# 退款
$shop = Dever::db('shop/info')->find($info['type_id']);
Dever::load('shop/lib/refund')->set('buy')->apply(1, $shop['id'], $id, false, 3, 0, '未通过审核');
}
}
}
public function sellOrderUpdate($id, $name, $data)
{
Dever::config('base')->hook = true;
$update = array();
$audit = Dever::param('audit', $data);
$info = Dever::db('shop/sell_order')->one($id);
if ($audit > 1 && $info && $info['status'] == 2) {
if ($audit == 2) {
# 成功
Dever::setInput('order_id', $id);
Dever::load('shop/lib/sell.audit_commit');
} else {
# 退款
$shop = Dever::db('shop/info')->find($info['shop_id']);
Dever::load('shop/lib/refund')->set('sell')->apply(1, $shop['id'], $id, false, 3, 0, '未通过审核');
}
}
}
public function setSellOrderStatusMul_commit($id, $name, $data)
{
Dever::config('base')->hook = true;
$status = Dever::param('status', $data);
if ($status == 5) {
# 批量确认收货
$list = explode(',', $id);
if ($list) {
foreach ($list as $k => $v) {
if (is_array($v)) {
$id = $v['id'];
$info = Dever::db('shop/sell_order')->one($id);
} else {
$id = $v;
$info = Dever::db('shop/sell_order')->one($id);
}
if ($info['status'] != 4) {
Dever::alert($info['order_num'] . '该订单无法确认收货');
}
$info['status'] = 4;
Dever::load('shop/lib/sell')->finish($info, $info['shop_id']);
}
}
} elseif ($status == 2) {
# 批量审核
$list = explode(',', $id);
if ($list) {
foreach ($list as $k => $v) {
if (is_array($v)) {
$id = $v['id'];
} else {
$id = $v;
}
Dever::load('shop/lib/sell')->auditOne($id);
}
}
}
}
/**
* 更新信息
*
* @return mixed
*/
public function couponUpdate($id, $name, $data)
{
Dever::config('base')->hook = true;
$update = array();
$coupon = Dever::param('coupon', $data);
if ($coupon) {
$temp = is_string($coupon) ? explode(',', $coupon) : $coupon;
$update['method'] = $temp[0];
$update['coupon_id'] = $temp[1];
}
$shop_id = Dever::param('shop_id', $data);
if ($shop_id) {
$shop = Dever::db('shop/info')->find($shop_id);
$update['city'] = $shop['city'];
}
if (isset($update) && $update) {
$update['where_id'] = $id;
Dever::db('shop/coupon')->update($update);
}
}
/**
* 更新信息
*
* @return mixed
*/
public function infoUpdate($id, $name, $data)
{
$update = array();
$area = Dever::param('area', $data);
if ($area) {
$temp = is_string($area) ? explode(',', $area) : $area;
$update['province'] = $temp[0];
$update['city'] = $temp[1];
if (isset($temp[2])) {
$update['county'] = $temp[2];
}
if (isset($temp[3])) {
$update['town'] = $temp[3];
}
if (is_array($area)) {
$area = implode(',', $area);
}
$gup['option_shop_id'] = $id;
$gup['set_area'] = $area;
Dever::db('shop/goods_sku')->updates($gup);
Dever::db('shop/sell_order')->updates($gup);
unset($gup['option_shop_id']);
$gup['option_type_id'] = $id;
$gup['option_type'] = 1;
Dever::db('shop/buy_order')->updates($gup);
Dever::db('shop/out_order')->updates($gup);
}
$address = Dever::param('address', $data);
if ($address && isset($update['city'])) {
$geo = Dever::load('shop/lib/info')->geo($update['city'], $address);
$update['lng'] = $geo[0];
$update['lat'] = $geo[1];
$update['map'] = $geo[2];
$update['coord_address'] = $address;
}
/*
$map = Dever::param('map', $data);
if ($map) {
$temp = is_string($map) ? explode(',', $map) : $map;
if (isset($temp[1])) {
$update['lng'] = $temp[1];
$update['lat'] = $temp[2];
$address = Dever::param('address', $data);
$update['coord_address'] = Dever::load('shop/lib/info')->address($temp[1], $temp[2]);
if (!$address && $update['coord_address']) {
$update['address'] = $update['coord_address'];
}
}
}
*/
$act = Dever::param('act', $data);
if ($act) {
foreach ($act as $k => $v) {
$w = array();
$w['shop_id'] = $id;
$w['act_id'] = $k;
foreach ($v as $k1 => $v1) {
$w['shop_coupon_id'] = $v1;
$info = Dever::db('shop/coupon_act')->find($w);
if (!$info) {
Dever::db('shop/coupon_act')->insert($w);
}
}
}
}
//Dever::upLinkage($update, $id, $data, 'goods', 'shop/goods', 'shop_id', 'goods_id', 'category_id');
//Dever::upLinkage($update, $id, $data, 'factory', 'shop/factory', 'shop_id', 'factory_id', 'city');
//Dever::upLinkage($update, $id, $data, 'store', 'shop/store', 'shop_id', 'store_id', 'city');
if (isset($update) && $update) {
$update['where_id'] = $id;
Dever::db('shop/info')->update($update);
}
$truename = Dever::param('truename', $data);
$mobile = Dever::param('mobile', $data);
if ($mobile) {
$match = Dever::rule('mobile');
if (preg_match($match, $mobile)) {
$member = Dever::db('shop/member')->one(array('shop_id' => $id, 'mobile' => $mobile));
$update = array();
$update['shop_id'] = $id;
$update['name'] = $truename;
$update['mobile'] = $mobile;
if ($member) {
$update['where_id'] = $member['id'];
Dever::db('shop/member')->update($update);
} else {
Dever::db('shop/member')->insert($update);
}
}
}
}
private function updateParam()
{
}
/**
* 更新商品信息
*
* @return mixed
*/
public function goodsUpdate($id, $name, $data)
{
$update = array();
$state = Dever::param('state', $data);
if ($state) {
Dever::config('base')->after = true;
$info = Dever::db('shop/goods')->one($id);
$shop_id = $info['shop_id'];
$shop = Dever::db('shop/info')->one($shop_id);
if ($shop && $shop['goods']) {
$goods = Dever::json_decode($shop['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'] = $shop_id;
Dever::db('shop/info')->update($set);
}
}
}
/**
* 更新库存信息
*
* @return mixed
*/
public function skuUpdate($id, $name, $data)
{
$update = array();
$add_num = Dever::param('add_num', $data);
if ($add_num) {
$state = Dever::db('shop/goods_sku')->updateTotal(array('where_id' => $id, 'total_num' => $add_num));
if ($state) {
$state = Dever::db('shop/goods_sku')->update(array('where_id' => $id, 'add_num' => 0));
$info = Dever::db('shop/goods_sku')->one($id);
$goods = Dever::db('shop/goods')->one(array('goods_id' => $info['goods_id'], 'shop_id' => $info['shop_id']));
if ($goods) {
Dever::db('shop/goods')->update(array('where_id' => $goods['id'], 'total_num' => $info['total_num'], 'add_num' => 0));
}
if ($add_num < 0) {
# 记录出库日志
} else {
# 记录入库日志
}
}
}
}
# 获取供货商信息
public function buyInfo($type = '', $type_id = '')
{
if ($type == 1) {
$type_info = Dever::db('shop/info')->one($type_id);
return $type_info['name'] . '('.$type_info['mobile'].')';
} elseif ($type == 2) {
$type_info = Dever::db('store/info')->one($type_id);
$sign = Dever::login($type_id);
$link = Dever::url('home?sign=' . $sign, 'store');
//return $type_info['name'] . '('.$type_info['mobile'].')
进入仓库管理';
return $type_info['name'] . '('.$type_info['mobile'].')';
} elseif ($type == 3) {
$sign = Dever::login($type_id);
$link = Dever::url('home?sign=' . $sign, 'factory');
$type_info = Dever::db('factory/info')->one($type_id);
//return $type_info['name'] . '('.$type_info['mobile'].')
进入工厂管理';
return $type_info['name'] . '('.$type_info['mobile'].')';
} else {
return '无';
}
}
/**
* 更新信息
*
* @return mixed
*/
public function buyOrderPs($id, $name, $data)
{
$order_id = Dever::param('order_id', $data);
if ($order_id) {
$update['where_id'] = $order_id;
$update['set_status'] = 4;
Dever::db('shop/buy_order')->update($update);
}
}
# 获取门店
public function search_api()
{
return Dever::search('shop/info');
}
# 获取门店
public function search_shop_api()
{
$data = Dever::search('shop/info');
$result = array();
if ($data) {
foreach ($data as $k => $v) {
if (!$v['mid']) {
$data[$k]['name'] .= '('.$v['sid'].')';
$result[] = $data[$k];
}
}
}
return $result;
}
# 获取所有门店
public function search_all_shop_api()
{
$data = Dever::search('shop/info');
$result = array();
if ($data) {
foreach ($data as $k => $v) {
$data[$k]['name'] .= '('.$v['sid'].')';
$result[] = $data[$k];
}
}
return $result;
}
# 获取零售门店
public function search_l_shop_api()
{
$data = Dever::search('shop/info');
$result = array();
if ($data) {
foreach ($data as $k => $v) {
if ($v['type'] == 2) {
$data[$k]['name'] .= '('.$v['sid'].')';
$result[] = $data[$k];
}
}
}
return $result;
}
# 获取环比增长
public function getGoodsHb($num, $day, $goods_id)
{
$where = array('day' => $day, 'goods_id' => $goods_id);
$search = Dever::search_button();
if ($search) {
$where['config']['group'] = $search[0];
$where['config']['col'] = str_replace('|id', '', $search[1]);
}
if ($num < 0) {
$num = 0;
}
$prev = Dever::db('shop/goods_stat')->prev($where);
if ($prev && $num > 0 && $prev['num'] >= 0) {
$n = $prev['num'];
if ($n == 0) {
$n = 1;
}
$hb = round(($num-$prev['num'])/$n, 2)*100;
} else {
$hb = 0;
}
return $hb . '%';
}
public function getUserHb($num, $total, $day)
{
$result = $this->getUserStat($num, $total, 0);
$where = array('day' => $day);
$search = Dever::search_button();
if ($search) {
$where['config']['group'] = $search[0];
$where['config']['col'] = str_replace('|id', '', $search[1]);
}
$hb = 0;
$prev = Dever::db('shop/user_stat')->prev($where);
if ($prev) {
$prev = $this->getUserStat($prev['num'], $prev['total'], $prev['order_num']);
if ($result['fg'] > 0 && $prev['fg'] >= 0) {
$fg = $prev['fg'];
if ($fg == 0) {
$fg = 1;
}
$hb = round(($result['fg']-$prev['fg'])/$fg, 2)*100;
}
}
return $hb . '%';
}
public function getUserStat($num, $total, $order_num)
{
//print_r($info);die;
if ($num && $total) {
$result['fg'] = round($num/$total, 2);
} else {
$result['fg'] = 0;
}
if ($order_num) {
$result['per_num'] = round($order_num/$total, 2);
} else {
$result['per_num'] = 0;
}
return $result;
}
# 获取环比增长
public function getUserRankHb($num, $mobile, $day)
{
$where = array('day' => $day, 'mobile' => $mobile);
$search = Dever::search_button();
if ($search) {
$where['config']['group'] = $search[0];
$where['config']['col'] = str_replace('|id', '', $search[1]);
}
if ($num < 0) {
$num = 0;
}
$prev = Dever::db('shop/user_rank_stat')->prev($where);
if ($prev && $num > 0 && $prev['num'] >= 0) {
$n = $prev['num'];
if ($n == 0) {
$n = 1;
}
$hb = round(($num-$prev['num'])/$n, 2)*100;
} else {
$hb = 0;
}
return $hb . '%';
}
# 确认收货
public function setSellOrderStatus_api()
{
$order_id = Dever::input('order_id');
$info = Dever::db('shop/sell_order')->find($order_id);
if ($info) {
Dever::load('shop/lib/sell')->finish($info, $info['shop_id']);
return 'reload';
} else {
Dever::alert('错误的订单号');
}
}
public function searchName($where)
{
$data = Dever::db('store/info')->like($where);
if (!$data) {
$data = Dever::db('shop/info')->like($where);
}
return $data;
}
public function searchFName($where)
{
$data = Dever::db('store/info')->like($where);
if (!$data) {
$data = Dever::db('factory/info')->like($where);
}
return $data;
}
public function goods_list($id){
$info = Dever::db('shop/sell_order')->find($id);
$res = array();
$goods = Dever::db('shop/sell_order_goods')->getGoods(array('order_id'=>$id));
$data = array();
foreach($goods as $k => $v){
$data[] = Dever::db('goods/info')->fetch('select `name` from churen_goods_info where id = '.$v['goods_id'].' and state =1');
}
$html = '';
if ($data) {
foreach($data as $k => $v){
if (isset($v['name']) && $v['name']) {
$res[] = $v['name'];
} else {
$res[] = '';
}
}
if (count($res) > 3){
$html = $res[0].'
'.$res[1].'
'.$res['2'].'……';
} else {
$html = implode('
',$res);
}
}
return $html;
}
}