$param['store_id'], 'type' => ['in', ['4', '5', '7', '8', '11']], 'stock_out_id' => ['in', $param['sell_id']] ]; $StockGoodsModel = new SStockOutGoodsModel(); $list = $StockGoodsModel->getSelect($where, '', '', 'id,stock_out_id'); return callBack(statusCode()['success'], '查询成功', $list); } /** * 门店出库数据初始化(查询查看成本价权限) * @param $param * [ * store_id * ] * @return mixed */ public function addStockOutInitial($param) { $AuthorityClass = new StoreAuthority(); $cost_price_state = $AuthorityClass->checkSingleAuth([ 'store_id' => $param['store_id'], 'field' => 'showpurch_price' ]); return callBack(statusCode()['success'], '查询成功', $cost_price_state); } /** * 门店商品出库记录列表 * @param $param * [ * merchant_id 商户id * store_id 门店id * goods_query 商品名称货号条码 * type 出库类型 0其他出库 1退货商户出库 2盘亏出库 3调拨出库 4拼团出库 5秒杀出库 6拆分出库 7收银销售出库 8商城销售出库 9向供货商退货出库 10.组合出库 11.预售出库 12商城普通换货出库 13拼团换货出库 14秒杀换货出库 15预售换货出库 16收银赠品出库 17 商城赠品出库 * add_time 出库时间 * supplier_id 供货商id * person1 一级分类 * person2 二级分类 * person3 三级分类 * ] * @return array * [ * list 列表 * count 总条数 * ] */ public function storeRecordList($param) { $where = $this->storeRecordListTerm($param); //获取查询条件 $StockOutGoodsModel = new SStockOutGoodsModel(); $list = $StockOutGoodsModel->getSelect($where, $param['page'], $param['limit']); if (!empty($list)) { $stateResult = $this->addStockOutInitial([ 'store_id' => $param['store_id'] ]); $cost_price_state = $stateResult['data']; $count = $StockOutGoodsModel->getCount($where); $SupplierClass = new Supplier(); $supplier_list = $SupplierClass->getList([ 'user_type' => 4, 'merchant_id' => $param['merchant_id'], 'store_id' => $param['store_id'], 'fields' => 'id,supplier_name' ]); if (!empty($supplier_list)) { $supplier_list = array_column($supplier_list, null, 'id'); } foreach ($list as $key => &$val) { $val['index'] = $key + 1; $val['examine_name'] = ''; switch ($val['type']) { case 0: $val['type_name'] = '其他出库'; break; case 1: $val['type_name'] = '退货至商户出库'; break; case 2: $val['type_name'] = '盘亏出库'; break; case 3: $val['type_name'] = '调拨出库'; switch ($val['examine_status']) { case 0: $val['examine_name'] = "未审核"; break; case 1: $val['examine_name'] = "审核通过"; break; case 2: $val['examine_name'] = "审核失败"; break; } break; case 4: $val['type_name'] = '拼团出库'; break; case 5: $val['type_name'] = '秒杀出库'; break; case 6: $val['type_name'] = '拆分出库'; break; case 7: $val['type_name'] = '收银销售出库'; break; case 8: $val['type_name'] = '商城销售出库'; break; case 9: $val['type_name'] = '退货至供货商出库'; break; case 10: $val['type_name'] = '组合出库'; break; case 11: $val['type_name'] = '预售出库'; break; case 12: $val['type_name'] = '普通换货出库'; break; case 13: $val['type_name'] = '拼团换货出库'; break; case 14: $val['type_name'] = '秒杀换货出库'; break; case 15: $val['type_name'] = '预售换货出库'; break; case 16: $val['type_name'] = '收银赠品出库'; break; case 17: $val['type_name'] = '商城赠品出库'; break; } if ($val['attribute_state'] == 2) { $val['goods_number'] = $val['sku_goods_number']; } if ($cost_price_state == 2) { $val['stock_price'] = '***'; } else { $val['stock_price'] = round($val['cost_price'], 2); } $val['sku_num'] = round($val['sku_num'], 3); $val['stock_num'] = round($val['stock_num'], 3); $val['subtotal'] = round($val['stock_price'] * $val['stock_num'], 2); $val['add_time'] = date('Y-m-d H:i:s', $val['add_time']); if (!empty($supplier_list) && $val['supplier_id']) { $val['supplier_name'] = $supplier_list[$val['supplier_id']]['supplier_name']; } } } return callBack(statusCode()['success'], '查询成功', [ 'list' => $list ? $list : [], 'count' => $count ? $count : 0 ]); } /** * 门店商品出库记录列表的where条件 * @param $param * [ * merchant_id 商户id * store_id 门店id * goods_query 商品名称货号条码 * type 出库类型 0其他出库 1退货商户出库 2盘亏出库 3调拨出库 4拼团出库 5秒杀出库 6拆分出库 7收银销售出库 8商城销售出库 9向供货商退货出库 10.组合出库 11.预售出库 12商城普通换货出库 13拼团换货出库 14秒杀换货出库 15预售换货出库 16收银赠品出库 17 商城赠品出库 * add_time 出库时间 * supplier_id 供货商id * person1 一级分类 * person2 二级分类 * person3 三级分类 * requester_type 1web端 2移动端 * ] * @return mixed */ public function storeRecordListTerm($param) { $goodsClassify = new GoodsClassify(); $where = $goodsClassify->getGoodsClassId($param, [], "goods_class_id"); //获取分类条件 if (!empty($param['goods_query'])) { $where['goods_name|goods_number|sku_goods_number|goods_code|sku_code'] = array('like', "%" . $param['goods_query'] . "%"); } if ($param['type'] != '') { $where['type'] = $param['type']; } if (!empty($param['supplier_id'])) { $where['supplier_id'] = $param['supplier_id']; } if (!empty($param['add_time'])) { $start_time = strtotime($param['add_time'][0]); $end_time = strtotime($param['add_time'][1]); $where['add_time'] = array("between", array($start_time, $end_time)); } $where['merchant_id'] = $param['merchant_id']; $where['store_id'] = $param['store_id']; return $where; } /** * 商户出库记录列表 * @param $param * [ * merchant_id * goods_query 名称货号条码 * type 类型 * add_time 时间搜索 * person1 * person2 * person3 * page * limit * ] * @return mixed */ public function recordList($param) { $where = $this->recordListTerm($param); //查询条件 $StockOutGoodsModel = new StockOutGoodsModel(); $list = $StockOutGoodsModel->getSelect($where, $param['page'], $param['limit']); if (!empty($list)) { $count = $StockOutGoodsModel->getCount($where); foreach ($list as $key => &$val) { $val['index'] = $key + 1; switch ($val['type']) { case 0: $val['type_name'] = '其他出库'; break; case 1: $val['type_name'] = '调拨出库'; break; case 2: $val['type_name'] = '盘亏出库'; break; case 3: $val['type_name'] = '门店申请调拨出库'; break; case 4: $val['type_name'] = '退货出库'; break; } if ($val['attribute_state'] == 2) { $val['goods_number'] = $val['sku_goods_number']; } $val['stock_price'] = round($val['stock_price'], 2); $val['sku_num'] = round($val['sku_num'], 3); $val['stock_num'] = round($val['stock_num'], 3); $val['subtotal'] = round($val['subtotal'], 2); $val['add_time'] = date('Y-m-d H:i:s', $val['add_time']); } } return callBack(statusCode()['success'], '查询成功', [ 'list' => $list ? $list : [], 'count' => $count ? $count : 0 ]); } /** * 商户出库记录列表的查询条件 * @param $param * [ * merchant_id * goods_query 名称货号条码 * type 类型 * add_time 时间搜索 * person1 * person2 * person3 * ] * @return mixed */ public function recordListTerm($param) { $GoodsClassify = new GoodsClassify(); $where = $GoodsClassify->getGoodsClassId($param, [], 'goods_class_id'); if (!empty($param['goods_query'])) { $where['goods_name|goods_number|sku_goods_number|goods_code|sku_code'] = array('like', "%" . $param['goods_query'] . "%"); } if ($param['type'] != '') { $where['type'] = $param['type']; } if (!empty($param['add_time'])) { $start_time = strtotime($param['add_time'][0]); $end_time = strtotime($param['add_time'][1]); $where['add_time'] = array("between", array($start_time, $end_time)); } $where['merchant_id'] = $param['merchant_id']; return $where; } }