332 行
12 KiB
PHP
可执行文件
332 行
12 KiB
PHP
可执行文件
<?php
|
|
|
|
namespace Common\Business;
|
|
|
|
use Common\Model\SStockOutGoodsModel;
|
|
use Common\Model\StockOutGoodsModel;
|
|
|
|
//[1.7.90]
|
|
|
|
/**
|
|
* 出库记录类
|
|
* Class StockRecord
|
|
* [
|
|
* 门店出库数据初始化(查询查看成本价权限) addStockOutInitial
|
|
* 门店商品出库记录列表 storeRecordList
|
|
* 门店商品出库记录列表的where条件 storeRecordListTerm
|
|
* 商户出库记录列表 recordList
|
|
* 商户出库记录列表的查询条件 recordListTerm
|
|
* ]
|
|
* @package Common\Business
|
|
*/
|
|
class StockRecord
|
|
{
|
|
/**
|
|
* 依据出售记录获取出库记录
|
|
* @param $param
|
|
* [
|
|
* store_id
|
|
* sell_id 出售记录id
|
|
* ]
|
|
* @return mixed
|
|
*/
|
|
public function basisSellStockRecord($param)
|
|
{
|
|
$where = [
|
|
'store_id' => $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;
|
|
}
|
|
} |