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