文件
mashangyoujiu/Application/Common/Business/StockRecord.class.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;
}
}