ajaxReturn($rt); } $retailGoodsClass = D('RetailGoodsClass'); $w = array($retailGoodsClass::MERCHANT_ID => $merchant_id, $retailGoodsClass::STATUS => 0); if (!empty($industry_id)) { $w['industry_id'] = ['in', [0, $industry_id]]; $w1['industry_id'] = ['in', [0, $industry_id]]; $w2['industry_id'] = ['in', [0, $industry_id]]; } $w[$retailGoodsClass::TYPE] = 1; // 一级分类 $one = $retailGoodsClass->getSelect($w, $retailGoodsClass::ID . ',' . $retailGoodsClass::CLASS_NAME, $retailGoodsClass::CODE . ' asc'); if ($one) { foreach ($one as $k1 => $v1) { $w1[$retailGoodsClass::TYPE] = 2; $w1[$retailGoodsClass::PID] = $v1[$retailGoodsClass::ID]; $w1[$retailGoodsClass::STATUS] = 0; $two = $retailGoodsClass->getSelect($w1, $retailGoodsClass::ID . ',' . $retailGoodsClass::CLASS_NAME, $retailGoodsClass::CODE . ' asc'); if ($two) { foreach ($two as $k2 => $v2) { $w2[$retailGoodsClass::TYPE] = 3; $w2[$retailGoodsClass::PID] = $v2[$retailGoodsClass::ID]; $w2[$retailGoodsClass::STATUS] = 0; $three = $retailGoodsClass->getSelect($w2, $retailGoodsClass::ID . ',' . $retailGoodsClass::CLASS_NAME, $retailGoodsClass::CODE . ' asc'); if ($three) { if ($type) { $two[$k2]['childtwo'] = $three; } else { $two[$k2]['child'] = $three; } $two[$k2]['haschild'] = 1; $two[$k2]['show'] = false; } else { if ($type) { $two[$k2]['childtwo'] = array(); } else { $two[$k2]['child'] = array(); } $two[$k2]['haschild'] = 0; } } if ($type) { $one[$k1]['childone'] = $two; } else { $one[$k1]['child'] = $two; } $one[$k1]['haschild'] = 1; $one[$k1]['show'] = false; } else { if ($type) { $one[$k1]['childone'] = array(); } else { $one[$k1]['child'] = array(); } $one[$k1]['haschild'] = 0; } } } $goodsclass = $one; if ($goodsclass) { $rt['status'] = 1; $rt['msg'] = '搜索成功'; $rt['goods_cate'] = $goodsclass; } else { $rt['status'] = 0; $rt['msg'] = '搜索失败'; } $this->ajaxReturn($rt); } } /* 收银机添加分类 * @param $class_id 上级分类id * @param $type 分类类别 * @param $merchantid 商户id * @param $class_name 分类名称 * @param $code 分类编码 * @return array * */ public function addCate() { $class_id = I('post.class_id') ? I('post.class_id') : 0; // 分类id $type = I('post.type'); // 1.顶级分类 2.二级分类 3.三级分类 $merchant_id = self::$merchant_id;//商户id; // 商户id $store_id = self::$store_id; //门店id $industry_id = self::$store['industry_id']; $class_name = I('post.class_name'); // 分类名称 $code = I('post.code'); // 编码 if (!$type || !$merchant_id || !$class_name) { $res['status'] = 0; $res['msg'] = '参数缺失'; $this->ajaxReturn($res); } /* 判断分类是否已被使用 */ if ($class_id && $class_id != 0) { $retailGoods = D('RetailGoods'); $retailMgoods = D('RetailMgoods'); $goods = $retailGoods->getFind(array($retailGoods::GOODS_CLASS_ID => $class_id, $retailGoods::STATUS => array('neq', 2))); $mGoods = $retailMgoods->getFind(array($retailMgoods::GOODS_CLASS_ID => $class_id, $retailMgoods::STATUS => array('neq', 2))); if ($goods || $mGoods) { $res['status'] = 0; $res['msg'] = '该上级分类下已存在商品,不能添加下级分类'; $this->ajaxReturn($res); } } $retailGoodsClass = D('RetailGoodsClass'); /* 判断分类是否存在 */ $find_class = $retailGoodsClass->getFind(array($retailGoodsClass::PID => $class_id, $retailGoodsClass::STATUS => 0, $retailGoodsClass::CLASS_NAME => $class_name)); if ($find_class) { $res['status'] = 0; $res['msg'] = '同级分类下该分类已存在'; $this->ajaxReturn($res); } /* 判断编号 */ if ($code) { $add[$retailGoodsClass::CODE] = $code; } else { $result = $this->auto_class_code($merchant_id, $class_id); // 自动获取分类编码 if ($result['status'] == 1) { $add[$retailGoodsClass::CODE] = $result['code']; } else { $res['status'] = 0; $res['msg'] = $result['msg']; $this->ajaxReturn($res); } } $add[$retailGoodsClass::CLASS_NAME] = $class_name; $add[$retailGoodsClass::TYPE] = $type; $add[$retailGoodsClass::MERCHANT_ID] = $merchant_id; $add[$retailGoodsClass::ADD_TIME] = time(); $add[$retailGoodsClass::STATUS] = 0; $add[$retailGoodsClass::PID] = $class_id; $add['store_id'] = $store_id; $add['industry_id'] = $industry_id; $add['add_type'] = 2; $create = $retailGoodsClass->addOrder($add); if ($create) { $res['status'] = 1; $res['msg'] = '添加成功'; } else { $res['status'] = 0; $res['msg'] = '添加失败'; } $this->ajaxReturn($res); } /* 自动获取分类编码 @param $merchantid 商户id @param $pid 上级分类id * @return array * */ public function auto_class_code($merchantid, $pid) { $retailGoodsClass = D('RetailGoodsClass'); if ($pid == 0) { // 顶级分类 $code = $retailGoodsClass->getMax(array($retailGoodsClass::TYPE => 1, $retailGoodsClass::STATUS => 0, $retailGoodsClass::MERCHANT_ID => $merchantid), $retailGoodsClass::CODE); if ($code) { if (!is_numeric($code)) { $res['status'] = 0; $res['msg'] = '一级分类最大编码中存在非数字,无法自动编号'; return $res; } else { $temp_code = $code + 1; } } else { $temp_code = 1; } } else { // 其他 /* 获取上级分类 */ $class = $retailGoodsClass->getFind(array($retailGoodsClass::ID => $pid, $retailGoodsClass::STATUS => 0)); if (!$class) { $res['status'] = 0; $res['msg'] = '未查询到上级分类'; return $res; } if (!is_numeric($class['code'])) { $res['status'] = 0; $res['msg'] = '上级分类序号非数字,无法自动编号'; return $res; } else { $code = $retailGoodsClass->getMax(array($retailGoodsClass::TYPE => 1, $retailGoodsClass::STATUS => 0, $retailGoodsClass::MERCHANT_ID => $merchantid), $retailGoodsClass::CODE); if ($code) { if (!is_numeric($code)) { $res['status'] = 0; $res['msg'] = '同级分类最大编码中存在非数字,无法自动编号'; return $res; } else { $temp_code = $code + 1; } } else { $temp_code = $class['code'] . '1'; } } } if ($temp_code) { $res['status'] = 1; $res['code'] = $temp_code; } else { $res['status'] = 0; $res['msg'] = '获取失败'; } return $res; } /*收银端当日添加商品的列表 * @param $merchant_id 商户id * @param $store_id 门店id * @param $source_type //2收银端添加 */ public function getTodayGoods() { $merchant_id = self::$merchant_id;//商户id; $store_id = self::$store_id;//门店id; $page = I('post.page'); $limit = I('post.limit'); $stime = time(); $stat_time = strtotime(date('Y-m-d 00:00:00', $stime)); $end_time = $stat_time + 86399; $retailGoods = D('RetailGoods'); $retailGoodsClass = D('RetailGoodsClass'); $where['g.' . $retailGoods::MERCHANT_ID] = $merchant_id; $where['g.' . $retailGoods::STORE_ID] = $store_id; $where['g.' . $retailGoods::STATUS] = 0; $where['g.' . $retailGoods::SOURCE_TYPE] = 3; $where['g.' . $retailGoods::ADD_TIME] = array('between', array($stat_time, $end_time)); $field = array( 'g.' . $retailGoods::GOODS_NAME, 'g.' . $retailGoods::GOODS_NUMBER, 'g.' . $retailGoods::RETAIL_PRICE, 'g.' . $retailGoods::ONLINE_PRICE, 'g.' . $retailGoods::PURCHASE_PRICE, 'g.' . $retailGoods::GOODS_NUM, 'g.' . $retailGoods::LESS_NUM, 'g.' . $retailGoods::MORE_NUM, 'g.' . $retailGoods::GOODS_CODE, 'g.' . $retailGoods::ADD_TIME, 'c.' . $retailGoodsClass::CLASS_NAME, ); $goodsAll = $retailGoods->getCashierGoodsList($where, $field, $retailGoods::ADD_TIME . " desc", $page . ',' . $limit); $goodsList = $goodsAll['list']; $goodsCount = $goodsAll['count']; // $goods_info = M('retail_goods as g') // ->join("ls_retail_goods_class as c on g.goods_class_id=c.id") // ->where($where) // ->page($page, $limit) // ->order("addtime desc") // ->field("g.goods_name,g.good_number,g.retail_price,g.online_price,g.purch_price,g.goods_num,g.less_num,g.more_num,g.goods_code,g.addtime,c.class_name") // ->select(); if ($goodsList) { foreach ($goodsList as $key => &$val) { $val[$retailGoods::ADD_TIME] = date('Y-m-d H:i:s', $val[$retailGoods::ADD_TIME]); } } $res['status'] = 1; $res['goods_info'] = $goodsList; $res['count'] = $goodsCount ? $goodsCount : 0; $this->ajaxReturn($res); } /* 收银机添加商品 * @param $store_id 门店id * @param $merchant_id 商户id * @param $cashier_id 收银员id * @param $goods_code 条码 * @param $goods_number 货号 * @param $goods_name 品名 * @param $retail_price 店内售价 * @param $online_price 商城售价 * @param $purch_price 进价 * @param $goods_class_id 分类 * @param $goods_num 库存 * @param $more_num 超量 * @param $less_num 预警 * @return array * */ public function addGoods() { $cashier_id = self::$cashier_id;//收银员id; $merchant_id = self::$merchant_id;//商户id; $store_id = self::$store_id;//门店id 查询门店优惠券 if (!$cashier_id || !$store_id || !$merchant_id) { $res['status'] = 0; $res['msg'] = '收营员登入过期'; $this->ajaxReturn($res); } /* 添加商品权限 1.开启 2.关闭 查看进价权限 1.开启 2.关闭 */ $storeJurisdiction = D('StoreJurisdiction'); $jurisdiction = $storeJurisdiction->getOrderFind(array($storeJurisdiction::STORE_ID => $store_id), $storeJurisdiction::SHOW_PURCH_PRICE . ',' . $storeJurisdiction::ADD_GOODS); if (!$jurisdiction[$storeJurisdiction::SHOW_PURCH_PRICE] || $jurisdiction[$storeJurisdiction::SHOW_PURCH_PRICE] == 2 || !$jurisdiction[$storeJurisdiction::ADD_GOODS] || $jurisdiction[$storeJurisdiction::ADD_GOODS] == 2) { $res['status'] = 0; $res['msg'] = '该门店暂无添加商品权限'; $this->ajaxReturn($res); } $retailCashier = D('RetailCashier'); $cashier_add_goods = $retailCashier->getOrderFind(array($retailCashier::ID => $cashier_id, $retailCashier::STATUS => 1), $retailCashier::ADD_GOODS_STATE); if (!$cashier_add_goods || $cashier_add_goods == 2) { $res['status'] = 0; $res['msg'] = '暂无添加商品权限'; $this->ajaxReturn($res); } $warehouse_id = D('SSaleWarehouse')->getFindField(array('merchant_id' => $merchant_id, 'status' => 1, 'store_id' => $store_id), "id"); //销售仓库id if (!$warehouse_id) { $res['status'] = 0; $res['msg'] = "请先创建销售仓"; $this->ajaxReturn($res); } $retailGoods = D('RetailGoods'); $add[$retailGoods::STORE_ID] = $store_id; // 门店id $add[$retailGoods::MERCHANT_ID] = $merchant_id; // 商户id $goods_code = I('post.goods_code'); // 条码 $goods_number = I('post.goods_number'); // 货号 $goods_name = I('post.goods_name'); // 品名 $retail_price = I('post.retail_price'); // 店内售价 $online_price = I('post.online_price'); // 商城售价 $purch_price = I('post.purch_price'); // 进价 $goods_class_id = I('post.goods_class_id'); // 分类 $goods_num = is_numeric(I('post.goods_num')) ? I('post.goods_num') : 0; // 库存 $more_num = I('post.more_num'); // 超量 $less_num = I('post.less_num'); // 预警 $pricing_method = I('post.pricing_method'); // 称重 $specifications = I('post.specification'); //规格 $company = I('post.company'); //单位 $origin = I('post.origin'); //产地 if ($pricing_method == 2 && $company == '') { $res['status'] = 0; $res['msg'] = '请输入单位'; $this->ajaxReturn($res); } if (!$goods_name || !$goods_class_id) { $res['status'] = 0; $res['msg'] = '请完善表单'; $this->ajaxReturn($res); } /* 条码 */ if ($goods_code) { $ids_c = $retailGoods->getOrderFind(array($retailGoods::STORE_ID => $store_id, $retailGoods::GOODS_CODE => $goods_code, $retailGoods::STATUS => array('in', '0,1')), $retailGoods::ID); if ($ids_c) { $res['status'] = 0; $res['msg'] = '条码已存在'; $this->ajaxReturn($res); } $add[$retailGoods::GOODS_CODE] = $goods_code; } else { $j = 0; while (1) { $code = rand(1000000000, 9999999999); if ($j > 30) { $res['status'] = 0; $res['msg'] = '条码生成失败,请重试'; $this->ajaxReturn($res); break; } $id_g = $retailGoods->getOrderFind(array($retailGoods::STORE_ID => $store_id, $retailGoods::GOODS_CODE => $code, $retailGoods::STATUS => array('in', '0,1')), $retailGoods::ID); if ($id_g) { $j++; continue; } $retailSkuGoods = D('RetailSkuGoods'); $id_sg = $retailSkuGoods->getOrderFind(array($retailSkuGoods::STORE_ID => $store_id, $retailSkuGoods::SKU_CODE => $code, $retailSkuGoods::STATUS => 0), $retailSkuGoods::ID); if ($id_sg) { $j++; continue; } $add[$retailGoods::GOODS_CODE] = $code; // 生成成功 跳出循环 break; } } /* 货号 */ if ($goods_number) { $ids_n = $retailGoods->getOrderFind(array($retailGoods::STORE_ID => $store_id, $retailGoods::GOODS_NUMBER => $goods_number, $retailGoods::STATUS => array('in', '0,1')), $retailGoods::ID); if ($ids_n) { $res['status'] = 0; $res['msg'] = '货号已存在'; $this->ajaxReturn($res); } $add[$retailGoods::GOODS_NUMBER] = $goods_number; } else { $i = 0; while (1) { if ($i > 30) { $res['status'] = 0; $res['msg'] = '货号生成失败,请重试'; $this->ajaxReturn($res); break; } $num = rand(1000, 99999); $id = $retailGoods->getOrderFind(array($retailGoods::STORE_ID => $store_id, $retailGoods::GOODS_NUMBER => $num, $retailGoods::STATUS => array('in', '0,1')), $retailGoods::ID); if (!$id) { $add[$retailGoods::GOODS_NUMBER] = $num; // 生成成功 跳出循环 break; } $i++; } } /* 店内售价 */ if ($retail_price <= 0) { $res['status'] = 0; $res['msg'] = '店内售价不能小于等于0'; $this->ajaxReturn($res); } if (!is_numeric($retail_price)) { $res['status'] = 0; $res['msg'] = '店内售价数值不正确'; $this->ajaxReturn($res); } /* 商城售价 */ if ($online_price <= 0) { $res['status'] = 0; $res['msg'] = '商城售价不能小于等于0'; $this->ajaxReturn($res); } if (!is_numeric($online_price) && $more_num != 0) { $res['status'] = 0; $res['msg'] = '商城售价数值不正确'; $this->ajaxReturn($res); } /* 进价 */ if ($purch_price <= 0) { $res['status'] = 0; $res['msg'] = '进价不能小于等于0'; $this->ajaxReturn($res); } if (!is_numeric($purch_price) && $more_num != 0) { $res['status'] = 0; $res['msg'] = '进价数值不正确'; $this->ajaxReturn($res); } /* 库存 */ if ($goods_num < 0) { $res['status'] = 0; $res['msg'] = '库存数值不能小于0'; $this->ajaxReturn($res); } if (!is_numeric($goods_num) && $more_num != 0) { $res['status'] = 0; $res['msg'] = '库存数值不正确'; $this->ajaxReturn($res); } /* 超量 */ if ($more_num < 0) { $res['status'] = 0; $res['msg'] = '超量数值不能小于0'; $this->ajaxReturn($res); } if (!is_numeric($more_num) && $more_num != 0) { $res['status'] = 0; $res['msg'] = '超量数值不正确'; $this->ajaxReturn($res); } /* 预警 */ if ($less_num < 0) { $res['status'] = 0; $res['msg'] = '预警数值不能小于0'; $this->ajaxReturn($res); } if (!is_numeric($less_num) && $less_num != 0) { $res['status'] = 0; $res['msg'] = '预警数值不正确'; $this->ajaxReturn($res); } $add[$retailGoods::GOODS_NAME] = $goods_name; $add[$retailGoods::RETAIL_PRICE] = $retail_price; $add[$retailGoods::ONLINE_PRICE] = $online_price; $add[$retailGoods::PURCHASE_PRICE] = $purch_price; $add[$retailGoods::GOODS_CLASS_ID] = $goods_class_id; $add[$retailGoods::GOODS_NUM] = $goods_num; $add[$retailGoods::MORE_NUM] = $more_num && $more_num > 0 ? $more_num : 0; $add[$retailGoods::LESS_NUM] = $less_num && $less_num > 0 ? $less_num : 0; $add[$retailGoods::STATUS] = 0; $add[$retailGoods::ADD_TIME] = time(); $add[$retailGoods::SOURCE_TYPE] = 3; //1店长添加 2商户同步 3收银员添加) $add[$retailGoods::CASHIER_ID] = $cashier_id; //收银员id $add[$retailGoods::PRICING_METHOD] = $pricing_method == 2 ? 2 : 1; //是否称重 $add['specification'] = $specifications ? $specifications : ''; //规格 $add['company'] = $company ? $company : ''; //单位 if (!empty($origin)) { $origin_info = M('retail_goods_yieldly')->where(array('merchantid' => $merchant_id, 'storeid' => $store_id, 'name' => $origin))->find(); if ($origin_info) { $goods_yieldly_id = $origin['id']; } else { $origin_data = array( 'name' => $origin, 'merchantid' => $merchant_id, 'storeid' => $store_id, 'addtime' => time(), 'state' => 0 ); $goods_yieldly_id = M('retail_goods_yieldly')->add($origin_data); if (!$goods_yieldly_id) { $res['status'] = 0; $res['msg'] = '产地添加失败'; $this->ajaxReturn($res); } } $add['goods_yieldly_id'] = $goods_yieldly_id; } $create = $retailGoods->addOrder($add); if ($create) { $add['warehouse_id'] = $warehouse_id; $add['goods_id'] = $create; $addSaleGoods = A('Api/Inventory')->addSaleGoods($add, 1); if ($addSaleGoods['status'] == 1) { $res['status'] = 1; $res['msg'] = '添加成功'; $this->ajaxReturn($res); } else { $res['status'] = 0; $res['msg'] = '添加失败'; } } else { $res['status'] = 0; $res['msg'] = '添加失败'; } $this->ajaxReturn($res); } /* 收银机添加商品 * @param $store_id 门店id * @param $merchant_id 商户id * @param $cashier_id 收银员id * @param $goods_code 条码 * @param $goods_number 货号 * @param $goods_name 品名 * @param $retail_price 店内售价 * @param $online_price 商城售价 * @param $purch_price 进价 * @param $goods_class_id 分类 * @param $goods_num 库存 * @param $more_num 超量 * @param $less_num 预警 * @param weight_value 重量 * @param third_goods_code 第三方商品编码 * @return array * */ public function addGoods_v1() { $cashier_id = self::$cashier_id;//收银员id; $merchant_id = self::$merchant_id;//商户id; $store_id = self::$store_id;//门店id 查询门店优惠券 if (!$cashier_id || !$store_id || !$merchant_id) { $res['status'] = 0; $res['msg'] = '收营员登入过期'; $this->ajaxReturn($res); } /* 添加商品权限 1.开启 2.关闭 查看进价权限 1.开启 2.关闭 */ $storeJurisdiction = D('StoreJurisdiction'); $jurisdiction = $storeJurisdiction->getOrderFind(array($storeJurisdiction::STORE_ID => $store_id), $storeJurisdiction::SHOW_PURCH_PRICE . ',' . $storeJurisdiction::ADD_GOODS); if (!$jurisdiction[$storeJurisdiction::SHOW_PURCH_PRICE] || $jurisdiction[$storeJurisdiction::SHOW_PURCH_PRICE] == 2 || !$jurisdiction[$storeJurisdiction::ADD_GOODS] || $jurisdiction[$storeJurisdiction::ADD_GOODS] == 2) { $res['status'] = 0; $res['msg'] = '该门店暂无添加商品权限'; $this->ajaxReturn($res); } $retailCashier = D('RetailCashier'); $cashier_add_goods = $retailCashier->getOrderFind(array($retailCashier::ID => $cashier_id, $retailCashier::STATUS => 1), $retailCashier::ADD_GOODS_STATE); if (!$cashier_add_goods || $cashier_add_goods == 2) { $res['status'] = 0; $res['msg'] = '暂无添加商品权限'; $this->ajaxReturn($res); } $warehouse_id = D('SSaleWarehouse')->getFindField(array('merchant_id' => $merchant_id, 'status' => 1, 'store_id' => $store_id), "id"); //销售仓库id if (!$warehouse_id) { $res['status'] = 0; $res['msg'] = "请先创建销售仓"; $this->ajaxReturn($res); } $retailGoods = D('RetailGoods'); $add[$retailGoods::STORE_ID] = $store_id; // 门店id $add[$retailGoods::MERCHANT_ID] = $merchant_id; // 商户id $goods_code = I('post.goods_code'); // 条码 $goods_number = I('post.goods_number'); // 货号 $goods_name = I('post.goods_name'); // 品名 $retail_price = I('post.retail_price'); // 店内售价 $online_price = I('post.online_price'); // 商城售价 $purch_price = I('post.purch_price'); // 进价 $goods_class_id = I('post.goods_class_id'); // 分类 $goods_num = is_numeric(I('post.goods_num')) ? I('post.goods_num') : 0; // 库存 $more_num = I('post.more_num'); // 超量 $less_num = I('post.less_num'); // 预警 $pricing_method = I('post.pricing_method'); // 称重 $specifications = I('post.specification'); //规格 $company = I('post.company'); //单位 $origin = I('post.origin'); //产地 $weight_value = I('post.weight_value'); //重量 $goods_image = I('post.goods_image'); //商品云库图片 if (self::$merchant['platform_type'] == 2) { //第三方平台 $third_goods_code = I('post.third_goods_code'); //第三方商品编码 if (empty($third_goods_code)) { $res['status'] = 0; $res['msg'] = '请输入第三方的商品编码'; $this->ajaxReturn($res); } } if ($pricing_method == 2) { if (empty($company)) { $res['status'] = 0; $res['msg'] = '请输入单位'; $this->ajaxReturn($res); } switch ($company) { case 'g': case 'G': case '克': $weight_value = 0.001; break; case '斤': case '市斤': $weight_value = 0.5; break; default: $weight_value = 1; break; } } else { if (!empty($weight_value) && !preg_match("/^[+-]?\d*\.?\d{0,3}$/", $weight_value)) { $res['status'] = 0; $res['msg'] = '请输入正确的重量'; $this->ajaxReturn($res); } } if (!$goods_name || !$goods_class_id) { $res['status'] = 0; $res['msg'] = '请完善表单'; $this->ajaxReturn($res); } $item = array( 'add_time' => time(), 'from_type_id' => 28, 'localUrl' => 'Store/Goods', 'user_type' => 4, 'merchant_id' => $merchant_id, 'store_id' => $store_id ); $uploads = uploadFiles($item);//本次请求的所有图片上传 if (!empty($uploads['image_file'])) { $add['goods_img_id'] = $uploads['image_file']['id']; //商品封面图 } /* 条码 */ if ($goods_code) { $ids_c = $retailGoods->getOrderFind(array($retailGoods::STORE_ID => $store_id, $retailGoods::GOODS_CODE => $goods_code, $retailGoods::STATUS => array('in', '0,1')), $retailGoods::ID); if ($ids_c) { $res['status'] = 0; $res['msg'] = '条码已存在'; $this->ajaxReturn($res); } if (!$add['goods_img_id'] && $goods_image) { $item['path'] = $goods_image; $goodsApi = new \Common\Business\Goods(); //商品类 $codeImage = $goodsApi->basisCodeAddImageGallery($item); //阿里云条码查询的商品图片存入库图片库 $add['goods_img_id'] = $codeImage['goods_image']['id']; } $add[$retailGoods::GOODS_CODE] = $goods_code; } else { $j = 0; while (1) { $code = rand(1000000000, 9999999999); if ($j > 30) { $res['status'] = 0; $res['msg'] = '条码生成失败,请重试'; $this->ajaxReturn($res); break; } $id_g = $retailGoods->getOrderFind(array($retailGoods::STORE_ID => $store_id, $retailGoods::GOODS_CODE => $code, $retailGoods::STATUS => array('in', '0,1')), $retailGoods::ID); if ($id_g) { $j++; continue; } $retailSkuGoods = D('RetailSkuGoods'); $id_sg = $retailSkuGoods->getOrderFind(array($retailSkuGoods::STORE_ID => $store_id, $retailSkuGoods::SKU_CODE => $code, $retailSkuGoods::STATUS => 0), $retailSkuGoods::ID); if ($id_sg) { $j++; continue; } $add[$retailGoods::GOODS_CODE] = $code; // 生成成功 跳出循环 break; } } /* 货号 */ if ($goods_number) { $ids_n = $retailGoods->getOrderFind(array($retailGoods::STORE_ID => $store_id, $retailGoods::GOODS_NUMBER => $goods_number, $retailGoods::STATUS => array('in', '0,1')), $retailGoods::ID); if ($ids_n) { $res['status'] = 0; $res['msg'] = '货号已存在'; $this->ajaxReturn($res); } $add[$retailGoods::GOODS_NUMBER] = $goods_number; } else { $i = 0; while (1) { if ($i > 30) { $res['status'] = 0; $res['msg'] = '货号生成失败,请重试'; $this->ajaxReturn($res); break; } $num = rand(1000, 99999); $id = $retailGoods->getOrderFind(array($retailGoods::STORE_ID => $store_id, $retailGoods::GOODS_NUMBER => $num, $retailGoods::STATUS => array('in', '0,1')), $retailGoods::ID); if (!$id) { $add[$retailGoods::GOODS_NUMBER] = $num; // 生成成功 跳出循环 break; } $i++; } } /* 店内售价 */ if ($retail_price <= 0) { $res['status'] = 0; $res['msg'] = '店内售价不能小于等于0'; $this->ajaxReturn($res); } if (!is_numeric($retail_price)) { $res['status'] = 0; $res['msg'] = '店内售价数值不正确'; $this->ajaxReturn($res); } /* 商城售价 */ if ($online_price <= 0) { $res['status'] = 0; $res['msg'] = '商城售价不能小于等于0'; $this->ajaxReturn($res); } if (!is_numeric($online_price) && $more_num != 0) { $res['status'] = 0; $res['msg'] = '商城售价数值不正确'; $this->ajaxReturn($res); } /* 进价 */ if ($purch_price <= 0) { $res['status'] = 0; $res['msg'] = '进价不能小于等于0'; $this->ajaxReturn($res); } if (!is_numeric($purch_price) && $more_num != 0) { $res['status'] = 0; $res['msg'] = '进价数值不正确'; $this->ajaxReturn($res); } /* 库存 */ if ($goods_num < 0) { $res['status'] = 0; $res['msg'] = '库存数值不能小于0'; $this->ajaxReturn($res); } if (!is_numeric($goods_num) && $more_num != 0) { $res['status'] = 0; $res['msg'] = '库存数值不正确'; $this->ajaxReturn($res); } /* 超量 */ if ($more_num < 0) { $res['status'] = 0; $res['msg'] = '超量数值不能小于0'; $this->ajaxReturn($res); } if (!is_numeric($more_num) && $more_num != 0) { $res['status'] = 0; $res['msg'] = '超量数值不正确'; $this->ajaxReturn($res); } /* 预警 */ if ($less_num < 0) { $res['status'] = 0; $res['msg'] = '预警数值不能小于0'; $this->ajaxReturn($res); } if (!is_numeric($less_num) && $less_num != 0) { $res['status'] = 0; $res['msg'] = '预警数值不正确'; $this->ajaxReturn($res); } $add[$retailGoods::GOODS_NAME] = $goods_name; $add[$retailGoods::RETAIL_PRICE] = $retail_price; $add[$retailGoods::ONLINE_PRICE] = $online_price; $add[$retailGoods::PURCHASE_PRICE] = $purch_price; $add[$retailGoods::GOODS_CLASS_ID] = $goods_class_id; $add[$retailGoods::GOODS_NUM] = $goods_num; $add[$retailGoods::MORE_NUM] = $more_num && $more_num > 0 ? $more_num : 0; $add[$retailGoods::LESS_NUM] = $less_num && $less_num > 0 ? $less_num : 0; $add[$retailGoods::STATUS] = 0; $add[$retailGoods::ADD_TIME] = time(); $add[$retailGoods::SOURCE_TYPE] = 3; //1店长添加 2商户同步 3收银员添加) $add[$retailGoods::CASHIER_ID] = $cashier_id; //收银员id $add[$retailGoods::PRICING_METHOD] = $pricing_method == 2 ? 2 : 1; //是否称重 $add['specification'] = $specifications ? $specifications : ''; //规格 $add['company'] = $company ? $company : ''; //单位 $add['weight_value'] = $weight_value ? $weight_value : null; //重量 if (!empty($origin)) { $origin_info = M('retail_goods_yieldly')->where(array('merchantid' => $merchant_id, 'storeid' => $store_id, 'name' => $origin))->find(); if ($origin_info) { $goods_yieldly_id = $origin['id']; } else { $origin_data = array( 'name' => $origin, 'merchantid' => $merchant_id, 'storeid' => $store_id, 'addtime' => time(), 'state' => 0 ); $goods_yieldly_id = M('retail_goods_yieldly')->add($origin_data); if (!$goods_yieldly_id) { $res['status'] = 0; $res['msg'] = '产地添加失败'; $this->ajaxReturn($res); } } $add['goods_yieldly_id'] = $goods_yieldly_id; } if (self::$merchant['platform_type'] == 2) { //第三方平台 $ThirdGoodsClass = new \LittleGift\Business\Goods(); $verifyResult = $ThirdGoodsClass->verifyQ3Code([ 'merchant_id' => self::$merchant_id, 'third_goods_code' => $third_goods_code ]); if ($verifyResult['status'] != 1) { $res['status'] = 0; $res['msg'] = $verifyResult['message']; $this->ajaxReturn($res); } $verifyCode = $ThirdGoodsClass->GoodsVerify([ 'merchant_id' => self::$merchant_id, 'code_arr' => [$third_goods_code] ]); if ($verifyCode['status'] == 0) { $res['status'] = 0; $res['msg'] = '添加失败' . 'Q3 编码验证失败'; $this->ajaxReturn($res); } if (!empty($verifyCode['data']['arr_diff'])) { $res['status'] = 0; $res['msg'] = '添加失败' . 'Q3 编码验证失败'; $this->ajaxReturn($res); } } $create = $retailGoods->addOrder($add); if ($create) { $add['warehouse_id'] = $warehouse_id; $add['goods_id'] = $create; unset($add['weight_value']); $addSaleGoods = A('Api/Inventory')->addSaleGoods($add, 1); if ($addSaleGoods['status'] == 1) { $GoodsClass = new Goods(); $GoodsClass->goodsEditRecord([ 'merchant_id' => $merchant_id, 'store_id' => $store_id, 'add_time' => $_SERVER['REQUEST_TIME'], 'goods_id' => $create ]); $res['status'] = 1; $res['msg'] = '添加成功'; $this->ajaxReturn($res); } else { $res['status'] = 0; $res['msg'] = '添加失败'; } } else { $res['status'] = 0; $res['msg'] = '添加失败'; } $this->ajaxReturn($res); } }