186 行
6.5 KiB
PHP
可执行文件
186 行
6.5 KiB
PHP
可执行文件
<?php
|
|
|
|
namespace Common\Business;
|
|
|
|
use Common\Model\RetailGoodsModel;
|
|
use Common\Model\RetailSkuGoodsModel;
|
|
use Common\Model\RetailStoreModel;
|
|
use Common\Model\SaleMGoodsModel;
|
|
use Common\Model\SSaleMGoodsModel;
|
|
|
|
//[1.7.14]
|
|
|
|
/**
|
|
* 库存报表类
|
|
* Class Inventory
|
|
* [
|
|
* 门店同步商户的普通商品库存统计 getStoreSyncGoodsInventoryList
|
|
* 门店同步商户的普通商品库存详情 getSyncGoodsInfo
|
|
* 门店同步商户的规格商品库存统计 getStoreSyncGoodsSkuInventoryList
|
|
* 门店同步商户的规格商品库存详情 getSyncGoodsSkuInfo
|
|
* ]
|
|
* @package Common\Business
|
|
*/
|
|
class Inventory
|
|
{
|
|
/**
|
|
* 门店同步商户的普通商品库存统计
|
|
* @param $parameter
|
|
* [
|
|
* merchant_id
|
|
* store_id 要查询的门店id 默认为空
|
|
* searchText 商品名称货号条码
|
|
* page
|
|
* limit
|
|
* ]
|
|
* @return array
|
|
* [
|
|
* status
|
|
* message
|
|
* data=>[
|
|
* list 列表
|
|
* count 总数
|
|
* ]
|
|
* ]
|
|
*/
|
|
public function getStoreSyncGoodsInventoryList($parameter)
|
|
{
|
|
if (empty($parameter)) {
|
|
return ['status' => 1, 'message' => '查询成功', 'data' => ['list' => [], 'count' => 0]];
|
|
}
|
|
$where = [
|
|
'status' => ['in', ['0', '1']],
|
|
'merchant_id' => $parameter['merchant_id'],
|
|
'm_goods_id' => ['gt', 0],
|
|
'attribute_state' => 1
|
|
];
|
|
if (!empty($parameter['searchText'])) {
|
|
$where['goods_name|goods_number|goods_code'] = array('like', '%' . trim($parameter['searchText']) . '%');
|
|
}
|
|
if (!empty($parameter['store_id'])) {
|
|
$where['store_id'] = $parameter['store_id'];
|
|
}
|
|
$GoodsModel = new RetailGoodsModel();
|
|
$list = $GoodsModel->getGroupSelect($where, 'm_goods_id', 'm_goods_id as merchant_goods_id,goods_name,goods_number,goods_code,attribute_state,company', $parameter['page'], $parameter['limit']);
|
|
if (!empty($list)) {
|
|
$count = $GoodsModel->where($where)->count('distinct(m_goods_id)');
|
|
$SSaleMGoodsModel = new SSaleMGoodsModel();
|
|
$map = [
|
|
'status' => ['in', ['0', '1']],
|
|
'merchant_id' => $parameter['merchant_id'],
|
|
'attribute_state' => 1
|
|
];
|
|
foreach ($list as $key => &$val) {
|
|
$val['index'] = $key + 1;
|
|
$where['m_goods_id'] = $val['merchant_goods_id'];
|
|
$store_goods_id = $GoodsModel->getFindField($where, 'id', true);
|
|
$val['store_goods_id'] = $store_goods_id;
|
|
$map['goods_id'] = ['in', $store_goods_id];
|
|
$goods_num = $SSaleMGoodsModel->getSum($map, 'goods_num');
|
|
$val['goods_num'] = round($goods_num, 3);
|
|
}
|
|
}
|
|
return ['status' => 1, 'message' => '查询成功', 'data' => ['list' => $list, 'count' => $count ? $count : 0]];
|
|
}
|
|
|
|
|
|
/**
|
|
* 门店同步商户的普通商品库存详情
|
|
* @param $parameter
|
|
* @return array
|
|
*/
|
|
public function getSyncGoodsInfo($parameter)
|
|
{
|
|
$goods = new RetailGoodsModel();
|
|
$list = $goods->getSyncMerchantGoodsInfo($parameter);
|
|
if ($list) {
|
|
$store = new RetailStoreModel();
|
|
$count = $goods->getSyncMerchantGoodsCount($parameter);
|
|
foreach ($list as $key => &$val) {
|
|
$val['index'] = $key + 1;
|
|
$val['storetag'] = $store->getFindField(array('id' => $val['store_id']), "storetag");
|
|
$val['goods_num'] = round($val['goods_num'], 3);
|
|
}
|
|
}
|
|
return ['status' => 1, 'message' => '查询成功', 'data' => ['list' => $list, 'count' => $count]];
|
|
}
|
|
|
|
|
|
/**
|
|
* 门店同步商户的规格商品库存统计
|
|
* @param $parameter
|
|
* [
|
|
* merchant_id
|
|
* store_id 要查询的门店id 默认为空
|
|
* searchText 商品名称货号条码
|
|
* page
|
|
* limit
|
|
* ]
|
|
* @return array
|
|
* [
|
|
* status
|
|
* message
|
|
* data=>[
|
|
* list 列表
|
|
* count 总数
|
|
* ]
|
|
* ]
|
|
*/
|
|
public function getStoreSyncGoodsSkuInventoryList($parameter)
|
|
{
|
|
if (empty($parameter)) {
|
|
return ['status' => 1, 'message' => '查询成功', 'data' => ['list' => [], 'count' => 0]];
|
|
}
|
|
$goods = new SaleMGoodsModel();
|
|
$list = $goods->getStoreSyncGoodsSkuInventoryList($parameter);
|
|
if ($list) {
|
|
$count = $goods->getStoreSyncGoodsSkuInventoryCount($parameter);
|
|
$where = [
|
|
'merchant_id' => ['gt', 0],
|
|
'state' => 0,
|
|
'store_id' => ['gt', 0]
|
|
];
|
|
$map = [
|
|
'merchant_id' => $parameter['merchant_id'],
|
|
'goods_id'=>['gt',0],
|
|
'attribute_state'=>2,
|
|
'status'=>['in',['0','1']]
|
|
];
|
|
$SkuGoodsModel = new RetailSkuGoodsModel();
|
|
$SSaleMGoodsModel = new SSaleMGoodsModel();
|
|
foreach ($list as $key => &$val) {
|
|
$val['index'] = $key + 1;
|
|
$val['goods_number'] = $val['sku_goods_number'];
|
|
$val['goods_code'] = $val['sku_code'];
|
|
$where['sku_mgoods_id'] = $val['merchant_goods_sku_id'];
|
|
$store_goods_sku_id = $SkuGoodsModel->getFindField($where, 'id', true);
|
|
$map['sku_id'] = ['in',$store_goods_sku_id];
|
|
$goods_num = $SSaleMGoodsModel->getSum($map, 'goods_num');
|
|
$val['goods_num'] = round($goods_num, 3);
|
|
$val['attribute_state'] = '2';
|
|
}
|
|
}
|
|
return ['status' => 1, 'message' => '查询成功', 'data' => ['list' => $list, 'count' => $count ? $count : 0]];
|
|
}
|
|
|
|
/**
|
|
* 门店同步商户的规格商品库存详情
|
|
* @param $parameter
|
|
* @return array
|
|
*/
|
|
public function getSyncGoodsSkuInfo($parameter)
|
|
{
|
|
$skuGoodsModel = new RetailSkuGoodsModel();
|
|
$list = $skuGoodsModel->getSyncMerchantGoodsSkuInfo($parameter);
|
|
if ($list) {
|
|
$store = new RetailStoreModel();
|
|
$count = $skuGoodsModel->getSyncMerchantGoodsSkuCount($parameter);
|
|
foreach ($list as $key => &$val) {
|
|
$val['index'] = $key + 1;
|
|
$val['storetag'] = $store->getFindField(array('id' => $val['store_id']), "storetag");
|
|
$val['goods_num'] = round($val['goods_num'], 3);
|
|
}
|
|
}
|
|
return ['status' => 1, 'message' => '查询成功', 'data' => ['list' => $list, 'count' => $count]];
|
|
}
|
|
} |