1035 行
39 KiB
PHP
可执行文件
1035 行
39 KiB
PHP
可执行文件
<?php
|
|
|
|
namespace Common\Business;
|
|
|
|
use Common\Model\RetailCashierModel;
|
|
use Common\Model\RetailStoreModel;
|
|
use Common\Model\RetailSupplierModel;
|
|
use Common\Model\RetreatGoodsModel;
|
|
use Common\Model\SaleWarehouseModel;
|
|
use Common\Model\SSaleWarehouseModel;
|
|
use Common\Model\SStockGoodsSerialModel;
|
|
use Common\Model\SStockOutGoodsModel;
|
|
use Common\Model\StockGoodsSerialModel;
|
|
use Common\Model\StockOutGoodsModel;
|
|
use Common\Model\SWarehouseGoodsSerialModel;
|
|
use Common\Model\SWarehousingGoodsModel;
|
|
use Common\Model\SWarehousingRecordModel;
|
|
use Common\Model\WarehousingGoodsModel;
|
|
use Common\Model\WarehousingRecordModel;
|
|
|
|
//[1.7.90]
|
|
|
|
/**
|
|
* 商品入库类
|
|
* Class WarehousingRecord
|
|
* [
|
|
* 根据采购单查询采购入库的串号信息 basisOrderSerial
|
|
* 入库单修改金额 modifyWarehousingOrderMoney
|
|
* 修改入库单金额的参数验证 WarehousingOrderMoneyVerify
|
|
* 商户的供给仓查询 getMerchantSaleWarehouse
|
|
* 门店的供给仓查询 getStoreSaleWarehouse
|
|
* 商户商品入库记录列表 merchantWarehousingGoodsRecord
|
|
* 商户商品入库记录列表的where条件 getMerchantWarehousingGoodsRecordTerm
|
|
* 商户入库单列表 getMerchantWarehousingOrderList
|
|
* 商户入库单列表的where条件 getMerchantWarehousingOrderTerm
|
|
* 门店商品入库记录列表 storeWarehousingGoodsRecord
|
|
* 门店商品入库记录列表的条件 getStoreWarehousingGoodsRecordTerm
|
|
* 门店入库单列表 storeWarehousingOrderList
|
|
* 门店入库单列表的where条件 getStoreWarehousingOrderTerm
|
|
* 门店入库ID获取单个入库单信息 getStoreWarehousingOrderInfo
|
|
* 门店入库单的商品详情 getStoreWarehousingGoodsList
|
|
* 门店入库单的调拨商品详情 getStoreAllocationGoodsList
|
|
* ]
|
|
* @package Common\Business
|
|
*/
|
|
class WarehousingRecord
|
|
{
|
|
/**
|
|
* 根据采购单查询采购入库的串号信息
|
|
* @param $param
|
|
* [
|
|
* user_type 3商户 4门店
|
|
* order_number 采购订单号
|
|
* serial_number 串号
|
|
* goods_id
|
|
* sku_id
|
|
* page
|
|
* limit
|
|
* ]
|
|
* @return mixed
|
|
*/
|
|
public function basisOrderSerial($param)
|
|
{
|
|
try {
|
|
switch ($param['user_type']) {
|
|
case 3:
|
|
$WarehouseGoodsModel = new WarehousingGoodsModel();
|
|
break;
|
|
case 4:
|
|
$WarehouseGoodsModel = new SWarehousingGoodsModel();
|
|
break;
|
|
}
|
|
$id_arr = $WarehouseGoodsModel->getFindField([
|
|
'purchase_order_number' => $param['order_number'],
|
|
'goods_id' => $param['goods_id'],
|
|
'sku_id' => $param['sku_id'],
|
|
], 'id', true);
|
|
if (!empty($id_arr)) {
|
|
$SerialClass = new SerialNumberGoods();
|
|
$result = $SerialClass->recordSerialList([
|
|
'user_type' => $param['user_type'],
|
|
'type' => 1,
|
|
'serial_type' => 2,
|
|
'id' => $id_arr,
|
|
'serial_number' => $param['serial_number'],
|
|
'page' => $param['page'],
|
|
'limit' => $param['limit']
|
|
]);
|
|
return $result;
|
|
} else {
|
|
return callBack(statusCode()['success'], '查询成功', [
|
|
'list' => [],
|
|
'count' => 0
|
|
]);
|
|
}
|
|
} catch (\Exception $e) {
|
|
return callBack(statusCode()['success'], '查询成功', [
|
|
'list' => [],
|
|
'count' => 0
|
|
]);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
*修改入库单金额
|
|
* @param $parameter
|
|
* [
|
|
* user_type 1商户 2门店
|
|
* merchant_id
|
|
* store_id
|
|
* list =>入库单列表
|
|
* ]
|
|
* @return array
|
|
* [
|
|
* status
|
|
* message
|
|
* ]
|
|
*/
|
|
public function modifyWarehousingOrderMoney($parameter)
|
|
{
|
|
$verify = $this->WarehousingOrderMoneyVerify($parameter); //参数验证
|
|
if ($verify['status'] != 1) {
|
|
return $verify;
|
|
}
|
|
switch ($parameter['user_type']) {
|
|
case 1:
|
|
//商户
|
|
$warehousingOrderModel = new WarehousingRecordModel();
|
|
break;
|
|
case 2:
|
|
//门店
|
|
$warehousingOrderModel = new SWarehousingRecordModel();
|
|
break;
|
|
}
|
|
try {
|
|
foreach ($parameter['list'] as $key => $val) {
|
|
$val = round($val, 2);
|
|
if ($val > 0) {
|
|
$warehousingOrderModel->updateSetInc([
|
|
'id' => $key
|
|
], "real_money_total", $val);
|
|
$warehousingOrderModel->updateSetInc([
|
|
'id' => $key
|
|
], "money_total", $val);
|
|
} else {
|
|
$val = abs($val);
|
|
$warehousingOrderModel->updateSetDec([
|
|
'id' => $key
|
|
], "real_money_total", $val);
|
|
$warehousingOrderModel->updateSetDec([
|
|
'id' => $key
|
|
], "money_total", $val);
|
|
}
|
|
}
|
|
return ['status' => 1, 'message' => '修改成功'];
|
|
} catch (\Exception $e) {
|
|
return ['status' => 1, 'message' => '修改失败'];
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* 修改入库单金额的参数验证
|
|
* @param $parameter
|
|
* [
|
|
* user_type 1商户 2门店
|
|
* merchant_id
|
|
* store_id
|
|
* list 入库单列表
|
|
* ]
|
|
* @return array
|
|
* [
|
|
* status
|
|
* message
|
|
* ]
|
|
*/
|
|
public function WarehousingOrderMoneyVerify($parameter)
|
|
{
|
|
if (!in_array($parameter['user_type'], [1, 2])) {
|
|
return ['status' => 0, 'message' => '未知请求源'];
|
|
}
|
|
if (empty($parameter['merchant_id']) || ($parameter['user_type'] == 2 && empty($parameter['store_id']))) {
|
|
return ['status' => 0, 'message' => '登录超时,缺少必要参数'];
|
|
}
|
|
if (empty($parameter['list'])) {
|
|
return ['status' => 0, 'message' => '缺少入库单'];
|
|
}
|
|
return ['status' => 1, 'message' => '验证成功'];
|
|
}
|
|
|
|
|
|
/**
|
|
* 门店的供给仓查询
|
|
* [
|
|
* merchant_id
|
|
* store_id
|
|
* ]
|
|
*/
|
|
public function getStoreSaleWarehouse($parameter)
|
|
{
|
|
$warehouseMode = new SSaleWarehouseModel();
|
|
$warehouseInfo = $warehouseMode->getFind(['merchant_id' => $parameter['merchant_id'], 'store_id' => $parameter['store_id'], 'status' => 1]);
|
|
return $warehouseInfo;
|
|
}
|
|
|
|
|
|
/**
|
|
* 商户的供给仓查询
|
|
* [
|
|
* merchant_id
|
|
* ]
|
|
*/
|
|
public function getMerchantSaleWarehouse($parameter)
|
|
{
|
|
$warehouseMode = new SaleWarehouseModel();
|
|
$warehouseInfo = $warehouseMode->getFind(['merchant_id' => $parameter['merchant_id'], 'status' => 1]);
|
|
return $warehouseInfo;
|
|
}
|
|
|
|
|
|
/**
|
|
* 商户商品入库记录列表
|
|
* @param $parameter
|
|
* [
|
|
* operator_type 1后台 2收银端 3助手端
|
|
* merchant_id 商户id
|
|
* goods_query 名称货号条码
|
|
* type 入库类型
|
|
* add_time 入库时间
|
|
* page 分页
|
|
* limit 分页
|
|
* ]
|
|
* @return array
|
|
* [
|
|
* list 列表
|
|
* count 总条数
|
|
* ]
|
|
*/
|
|
public function merchantWarehousingGoodsRecord($parameter)
|
|
{
|
|
$where = $this->getMerchantWarehousingGoodsRecordTerm($parameter);
|
|
if (empty($where)) {
|
|
return ['list' => [], 'count' => 0];
|
|
}
|
|
$page = $parameter['page'] ? $parameter['page'] : ''; //分页
|
|
$limit = $parameter['limit'] ? $parameter['limit'] : ''; //分页
|
|
$WarehousingGoods = new WarehousingGoodsModel();
|
|
$list = $WarehousingGoods->getSelect($where, $page, $limit);
|
|
if ($list) {
|
|
$count = $WarehousingGoods->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;
|
|
case 5:
|
|
$val['type_name'] = '初始化入库';
|
|
break;
|
|
case 6:
|
|
$val['type_name'] = '调拨拒收入库';
|
|
break;
|
|
case 7:
|
|
$val['type_name'] = '门店申请调拨拒收入库';
|
|
break;
|
|
}
|
|
if ($val['attribute_state'] == 2) {
|
|
$val['goods_number'] = $val['sku_goods_number'];
|
|
}
|
|
if (!empty($val['build_date'])) {
|
|
$val['build_date'] = date('Y-m-d', $val['build_date']);
|
|
}
|
|
$val['warehouse_price'] = round($val['warehouse_price'], 2);
|
|
$val['sku_num'] = round($val['sku_num'], 3);
|
|
$val['warehouse_num'] = round($val['warehouse_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
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* 商户商品入库记录列表的where条件
|
|
* @param $parameter
|
|
* [
|
|
* operator_type 1后台 2收银端 3助手端
|
|
* merchant_id 商户id
|
|
* goods_query 名称货号条码
|
|
* type 入库类型
|
|
* add_time 入库时间
|
|
* page 分页
|
|
* limit 分页
|
|
* ]
|
|
* @return 条件数组[]
|
|
*/
|
|
public function getMerchantWarehousingGoodsRecordTerm($parameter)
|
|
{
|
|
$goods_query = $parameter['goods_query']; //名称货号条码
|
|
$type = $parameter['type']; //入库类型
|
|
$add_time = $parameter['add_time']; //入库时间
|
|
if (!empty($goods_query)) {
|
|
$where['goods_name|goods_number|sku_goods_number|goods_code|sku_code'] = array('like', "%" . $goods_query . "%");
|
|
}
|
|
if ($type != '') {
|
|
$where['type'] = $type;
|
|
}
|
|
switch ($parameter['operator_type']) {
|
|
case 1:
|
|
if (!empty($add_time)) {
|
|
if (!is_array($add_time)) {
|
|
$add_time = explode(',', $add_time);
|
|
}
|
|
$start_time = strtotime($add_time[0]);
|
|
$end_time = strtotime($add_time[1]);
|
|
$where['add_time'] = array("between", array($start_time, $end_time));
|
|
}
|
|
break;
|
|
}
|
|
$goodsClassify = new GoodsClassify();
|
|
$where = $goodsClassify->getGoodsClassId($parameter, $where, "goods_class_id"); //添加条件分类id数组
|
|
$where['merchant_id'] = $parameter['merchant_id'];
|
|
return $where;
|
|
}
|
|
|
|
/**
|
|
* 商户入库单列表
|
|
* @param $parameter
|
|
* [
|
|
* operator_type 1后台 2收银 3助手
|
|
* merchant_id
|
|
* order_number 入库订单号
|
|
* supplier_id 供货商id
|
|
* add_time 入库的时间
|
|
* type 0其他入库 1采购入库 2补货入库 3盘盈入库 4退货入库
|
|
* status 0入库出错 1入库成功
|
|
* ]
|
|
* @return array
|
|
* [
|
|
* list 入库单列表
|
|
* count 入库单总订单数
|
|
* ]
|
|
*/
|
|
public function getMerchantWarehousingOrderList($parameter)
|
|
{
|
|
$where = $this->getMerchantWarehousingOrderTerm($parameter); //获取查询条件
|
|
if (empty($where)) {
|
|
return ['list' => [], 'count' => 0];
|
|
}
|
|
$WarehousingRecordModel = new WarehousingRecordModel();
|
|
$list = $WarehousingRecordModel->getSelect($where, $parameter['page'], $parameter['limit'], "*", "id desc");
|
|
if (!empty($list)) {
|
|
$count = $WarehousingRecordModel->getCount($where);
|
|
$SaleWarehouseModel = new SaleWarehouseModel();
|
|
$StoreModel = new RetailStoreModel();
|
|
$SupplierModel = new RetailSupplierModel();
|
|
foreach ($list as $key => &$val) {
|
|
$val['index'] = $key + 1;
|
|
$val['operator'] = A('Api/Inventory')->OperatorName($val['operator_id']);
|
|
$val['retreat_time'] = date('Y-m-d H:i:s', $val['retreat_time']);
|
|
if (!empty($val['add_time'])) {
|
|
$val['add_time'] = date('Y-m-d H:i:s', $val['add_time']);
|
|
}
|
|
$val['warehouse_name'] = $SaleWarehouseModel->getFindField(array('id' => $val['warehouse_id']), "name");
|
|
if ($val['type'] == 4) {
|
|
$val['supplier_name'] = $StoreModel->getFindField(array('id' => $val['store_id']), 'storetag');
|
|
} else {
|
|
$val['supplier_name'] = $SupplierModel->where(array('id' => $val['supplier_id']))->getField("supplier_name");
|
|
}
|
|
if (!$val['status']) {
|
|
$val['status_name'] = '未入库';
|
|
} else {
|
|
$val['status_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'] = "盘盈入库";
|
|
break;
|
|
case 4:
|
|
$val['type_name'] = "退货入库";
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
return callBack(statusCode()['success'], '查询成功', [
|
|
'list' => $list ? $list : [],
|
|
'count' => $count ? $count : 0
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* 商户入库单列表的where条件
|
|
* @param $parameter
|
|
* [
|
|
* operator_type 1后台 2收银 3助手
|
|
* merchant_id
|
|
* order_number 入库订单号
|
|
* supplier_id 供货商id
|
|
* add_time 入库的时间
|
|
* type 0其他入库 1采购入库 2补货入库 3盘盈入库 4退货入库
|
|
* status 0入库出错 1入库成功
|
|
* ]
|
|
* @return mixed
|
|
*/
|
|
public function getMerchantWarehousingOrderTerm($parameter)
|
|
{
|
|
$order_number = $parameter['order_number'];
|
|
$supplier_id = $parameter['supplier_id'];
|
|
$add_time = $parameter['add_time'];
|
|
$type = $parameter['type'];
|
|
$status = $parameter['status'];
|
|
if (!empty($order_number)) {
|
|
$where['order_number'] = array('like', '%' . $order_number . '%');
|
|
}
|
|
if (!empty($supplier_id)) {
|
|
$where['supplier_id'] = $supplier_id;
|
|
}
|
|
switch ($parameter['operator_type']) {
|
|
case 1:
|
|
if (!empty($add_time)) {
|
|
if (!is_array($add_time)) {
|
|
$add_time = explode(',', $add_time);
|
|
}
|
|
$start_time = strtotime($add_time[0]);
|
|
$end_time = strtotime($add_time[1]);
|
|
$where['retreat_time'] = array('between', array($start_time, $end_time));
|
|
}
|
|
break;
|
|
}
|
|
|
|
if ($type != '') {
|
|
$where['type'] = $type;
|
|
}
|
|
if ($status != '') {
|
|
$where['status'] = $status;
|
|
}
|
|
$where['merchant_id'] = $parameter['merchant_id'];
|
|
return $where;
|
|
}
|
|
|
|
/**
|
|
* 门店商品入库记录列表
|
|
* @param $parameter
|
|
* [
|
|
* operator_type 1后台 2收银端 3助手端
|
|
* merchant_id 商户id
|
|
* store_id 门店id
|
|
* showPrice 1可以查看价格 2不可以查看价格
|
|
* identity 1商户 2店长
|
|
* goods_query 名称货号条码
|
|
* type 入库类型
|
|
* add_time 入库时间
|
|
* supplier_id 供货商id
|
|
* page 分页
|
|
* limit 分页
|
|
* ]
|
|
* @return array
|
|
* [
|
|
* list 列表
|
|
* count 总条数
|
|
* ]
|
|
*/
|
|
public function storeWarehousingGoodsRecord($parameter)
|
|
{
|
|
$where = $this->getStoreWarehousingGoodsRecordTerm($parameter); //获取查询条件
|
|
$page = $parameter['page'] ? $parameter['page'] : ''; //分页
|
|
$limit = $parameter['limit'] ? $parameter['limit'] : ''; //每页数量
|
|
$SWarehousingGoodsModel = new SWarehousingGoodsModel();
|
|
$list = $SWarehousingGoodsModel->getSelect($where, $page, $limit);
|
|
if ($list) {
|
|
$count = $SWarehousingGoodsModel->getCount($where);
|
|
$SupplierClass = new Supplier();
|
|
$supplier_list = $SupplierClass->getList([
|
|
'user_type' => 4,
|
|
'merchant_id' => $parameter['merchant_id'],
|
|
'store_id' => $parameter['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;
|
|
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;
|
|
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;
|
|
case 18:
|
|
$val['type_name'] = '预售换货入库';
|
|
break;
|
|
case 19:
|
|
$val['type_name'] = '收银赠品退货入库';
|
|
break;
|
|
case 20:
|
|
$val['type_name'] = '商城赠品退货入库';
|
|
break;
|
|
case 21:
|
|
$val['type_name'] = '门店调拨拒收入库';
|
|
break;
|
|
}
|
|
if (!empty($val['build_date'])) {
|
|
$val['build_date'] = date('Y-m-d', $val['build_date']);
|
|
}
|
|
$val['sku_num'] = round($val['sku_num'], 3);
|
|
$val['warehouse_num'] = round($val['warehouse_num'], 3);
|
|
$val['add_time'] = date('Y-m-d H:i:s', $val['add_time']);
|
|
if ($val['attribute_state'] == 2) {
|
|
$val['goods_number'] = $val['sku_goods_number'];
|
|
}
|
|
if ($parameter['showPrice'] == 2 && $parameter['identity'] == 2) {
|
|
$val['warehouse_price'] = '***';
|
|
$val['subtotal'] = '***';
|
|
} else {
|
|
$val['warehouse_price'] = round($val['warehouse_price'], 2);
|
|
$val['subtotal'] = round($val['warehouse_price'] * $val['warehouse_num'], 2);
|
|
}
|
|
//供货商
|
|
if (!empty($supplier_list) && !empty($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 $parameter
|
|
* [
|
|
* operator_type 1后台 2收银端 3助手端
|
|
* merchant_id 商户id
|
|
* store_id 门店id
|
|
* goods_query 名称货号条码
|
|
* type 入库类型
|
|
* add_time 入库时间
|
|
* supplier_id 供货商id
|
|
* page 分页
|
|
* limit 分页
|
|
* showPrice 1可以查看价格 2不可以查看价格
|
|
* identity 1商户 2店长
|
|
* ]
|
|
* @return []
|
|
*/
|
|
public function getStoreWarehousingGoodsRecordTerm($parameter)
|
|
{
|
|
$goods_query = $parameter['goods_query'];
|
|
$type = $parameter['type'];
|
|
$add_time = $parameter['add_time'];
|
|
if (!empty($goods_query)) {
|
|
$where['goods_name|goods_number|sku_goods_number|goods_code|sku_code'] = array('like', '%' . $goods_query . "%");
|
|
}
|
|
if ($type != '') {
|
|
$where['type'] = $type;
|
|
}
|
|
if (!empty($parameter['supplier_id'])) {
|
|
$where['supplier_id'] = $parameter['supplier_id'];
|
|
}
|
|
switch ($parameter['operator_type']) {
|
|
case 1:
|
|
if (!empty($add_time)) {
|
|
if (!is_array($add_time)) {
|
|
$add_time = explode(',', $add_time);
|
|
}
|
|
$start_time = strtotime($add_time[0]);
|
|
$end_time = strtotime($add_time[1]);
|
|
$where['add_time'] = array("between", array($start_time, $end_time));
|
|
}
|
|
break;
|
|
}
|
|
$goodsClassify = new GoodsClassify();
|
|
$where = $goodsClassify->getGoodsClassId($parameter, $where, "goods_class_id"); //添加条件分类id数组
|
|
$where['merchant_id'] = $parameter['merchant_id'];
|
|
$where['store_id'] = $parameter['store_id'];
|
|
return $where;
|
|
}
|
|
|
|
/**
|
|
* 门店入库单列表
|
|
* @param $parameter
|
|
* [
|
|
* operator_type 1后台 2收银端 3助手端
|
|
* merchant_id 商户id
|
|
* store_id 门店id
|
|
* order_number 入库订单号
|
|
* supplier_id 供货商id
|
|
* type 0其他入库 1采购入库 2补货入库 3盘盈入库 4商户调拨入库 5其他门店调拨入库 6门店申请调拨入库
|
|
* status 0入库出错 1入库成功
|
|
* add_time 入库时间 web端
|
|
* start_time 入库开始时间 移动端
|
|
* end_time 入库结束时间 移动端
|
|
* ]
|
|
* @return array
|
|
* [
|
|
* list 列表
|
|
* count 总条数
|
|
* ]
|
|
*/
|
|
public function storeWarehousingOrderList($parameter)
|
|
{
|
|
$where = $this->getStoreWarehousingOrderTerm($parameter); //获取查询条件
|
|
$SWarehousingRecordModel = new SWarehousingRecordModel();
|
|
$list = $SWarehousingRecordModel->getSelect($where, $parameter['page'], $parameter['limit'], "*", "id desc");
|
|
if (!empty($list)) {
|
|
$count = $SWarehousingRecordModel->getCount($where);
|
|
$CashierModel = new RetailCashierModel();
|
|
$SaleWarehouseModel = new SSaleWarehouseModel();
|
|
$StoreModel = new RetailStoreModel();
|
|
foreach ($list as $key => &$val) {
|
|
$val['index'] = $key + 1;
|
|
if ($val['operator_type'] == 1) {//收银员
|
|
$val['operator'] = $CashierModel->getFindField(array('id' => $val['operator_id']), "name");
|
|
} else {
|
|
$val['operator'] = A('Api/Inventory')->OperatorName($val['operator_id']);
|
|
}
|
|
$val['allocation_time'] = date('Y-m-d H:i:s', $val['allocation_time']);
|
|
if (!empty($val['add_time'])) {
|
|
$val['add_time'] = date('Y-m-d H:i:s', $val['add_time']);
|
|
} else if (!empty($val['refuse_time'])) {
|
|
$val['add_time'] = date('Y-m-d H:i:s', $val['refuse_time']);
|
|
}
|
|
$val['warehouse_name'] = $SaleWarehouseModel->getFindField(array('id' => $val['warehouse_id']), "name");
|
|
if ($val['type'] == 1 || $val['type'] == 2 || $val['type'] == 0) {
|
|
$val['supplier_name'] = D('SSupplier')->getFindField(array('id' => $val['supplier_id']), "supplier_name");
|
|
} else if ($val['type'] == 4 || $val['type'] == 6) {
|
|
$val['supplier_name'] = '商户';
|
|
} else if ($val['type'] == 5) {
|
|
$val['supplier_name'] = $StoreModel->getFindField(array('id' => $val['source_store_id']), "storetag");
|
|
}
|
|
if (!$val['status']) {
|
|
if ($val['refuse_status'] == 2) {
|
|
$val['examine_name'] = '已拒绝';
|
|
} else {
|
|
$val['examine_name'] = '未入库';
|
|
}
|
|
} else {
|
|
$val['examine_name'] = '已入库';
|
|
}
|
|
if ($val['type'] == 5) {
|
|
switch ($val['examine_status']) {
|
|
case 0:
|
|
$val['examine_name'] = '未审核';
|
|
break;
|
|
case 1:
|
|
if (!$val['status']) {
|
|
if ($val['refuse_status'] == 2) {
|
|
$val['examine_name'] = '已拒绝';
|
|
} else {
|
|
$val['examine_name'] = '未入库';
|
|
}
|
|
} else {
|
|
$val['examine_name'] = '已入库';
|
|
}
|
|
break;
|
|
case 2:
|
|
$val['examine_name'] = '拒绝';
|
|
break;
|
|
}
|
|
}
|
|
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;
|
|
case 5:
|
|
$val['type_name'] = "门店调拨入库";
|
|
break;
|
|
case 6:
|
|
$val['type_name'] = "申请调拨入库";
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
return callBack(statusCode()['success'], '查询成功', [
|
|
'list' => $list ? $list : [],
|
|
'count' => $count ? $count : 0
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* 门店入库单列表的条件
|
|
* @param $parameter
|
|
* [
|
|
* operator_type 1后台 2收银端 3助手端
|
|
* merchant_id 商户id
|
|
* store_id 门店id
|
|
* order_number 入库订单号
|
|
* supplier_id 供货商id
|
|
* type 0其他入库 1采购入库 2补货入库 3盘盈入库 4商户调拨入库 5其他门店调拨入库 6门店申请调拨入库
|
|
* status 0入库出错 1入库成功
|
|
* add_time 入库时间 web端
|
|
* start_time 入库开始时间 移动端
|
|
* end_time 入库结束时间 移动端
|
|
* ]
|
|
* @return mixed array
|
|
*/
|
|
public function getStoreWarehousingOrderTerm($parameter)
|
|
{
|
|
$order_number = $parameter['order_number'];
|
|
$supplier_id = $parameter['supplier_id'];
|
|
$type = $parameter['type'];
|
|
$status = $parameter['status'];
|
|
$add_time = $parameter['add_time'];
|
|
$start_time = $parameter['start_time'];
|
|
$end_time = $parameter['end_time'];
|
|
if (!empty($order_number)) {
|
|
$where['order_number'] = array('like', '%' . $order_number . '%');
|
|
}
|
|
if (!empty($supplier_id)) {
|
|
$where['supplier_id'] = $supplier_id;
|
|
}
|
|
switch ($parameter['operator_type']) {
|
|
case 1:
|
|
if (!empty($add_time)) {
|
|
if (!is_array($add_time)) {
|
|
$add_time = explode(',', $add_time);
|
|
}
|
|
$start_time = strtotime($add_time[0]);
|
|
$end_time = strtotime($add_time[1]);
|
|
$where['allocation_time'] = array('between', array($start_time, $end_time));
|
|
}
|
|
break;
|
|
case 3:
|
|
if (!empty($start_time) && !empty($end_time)) {
|
|
$start_time = strtotime($start_time . "00:00:00");
|
|
$end_time = strtotime($end_time . "23:59:59");
|
|
$where['allocation_time'] = array('between', array($start_time, $end_time));
|
|
} else if (!empty($start_time)) {
|
|
$start_time = strtotime($start_time . "00:00:00");
|
|
$where['allocation_time'] = array('gt', $start_time);
|
|
} else if (!empty($end_time)) {
|
|
$end_time = strtotime($end_time . "23:59:59");
|
|
$where['allocation_time'] = array('lt', $end_time);
|
|
}
|
|
$where['type'] = array('in', "4,5");
|
|
break;
|
|
}
|
|
if ($type != '') {
|
|
$where['type'] = $type;
|
|
}
|
|
if ($status != '') {
|
|
$where['status'] = $status;
|
|
}
|
|
$where['merchant_id'] = $parameter['merchant_id'];
|
|
$where['store_id'] = $parameter['store_id'];
|
|
return $where;
|
|
}
|
|
|
|
/**
|
|
* 门店入库单ID获取单个入库详情信息
|
|
* @param $id 入库单ID
|
|
* @return array
|
|
*/
|
|
public function getStoreWarehousingOrderInfo($id)
|
|
{
|
|
$SWarehousingRecordModel = new SWarehousingRecordModel();
|
|
$info = $SWarehousingRecordModel->getFind(array('id' => $id));
|
|
if ($info) {
|
|
$CashierModel = new RetailCashierModel();
|
|
$SaleWarehouseModel = new SSaleWarehouseModel();
|
|
$StoreModel = new RetailStoreModel();
|
|
if ($info['operator_type'] == 1) {//收银员
|
|
$info['operator'] = $CashierModel->getFindField(array('id' => $info['operator_id']), "name");
|
|
} else {
|
|
$info['operator'] = A('Api/Inventory')->OperatorName($info['operator_id']);
|
|
}
|
|
$info['allocation_time'] = date('Y-m-d H:i:s', $info['allocation_time']);
|
|
if (!empty($info['add_time'])) {
|
|
$info['add_time'] = date('Y-m-d H:i:s', $info['add_time']);
|
|
} else if (!empty($info['refuse_time'])) {
|
|
$info['add_time'] = date('Y-m-d H:i:s', $info['refuse_time']);
|
|
}
|
|
$info['warehouse_name'] = $SaleWarehouseModel->getFindField(array('id' => $info['warehouse_id']), "name");
|
|
if ($info['type'] == 1 || $info['type'] == 2 || $info['type'] == 0) {
|
|
$info['supplier_name'] = D('SSupplier')->getFindField(array('id' => $info['supplier_id']), "supplier_name");
|
|
} else if ($info['type'] == 4 || $info['type'] == 6) {
|
|
$info['supplier_name'] = '商户';
|
|
} else if ($info['type'] == 5) {
|
|
$info['supplier_name'] = $StoreModel->getFindField(array('id' => $info['source_store_id']), "storetag");
|
|
}
|
|
if (!$info['status']) {
|
|
if ($info['refuse_status'] == 2) {
|
|
$info['examine_name'] = '已拒绝';
|
|
} else {
|
|
$info['examine_name'] = '未入库';
|
|
}
|
|
} else {
|
|
$info['examine_name'] = '已入库';
|
|
}
|
|
if ($info['type'] == 5) {
|
|
switch ($info['examine_status']) {
|
|
case 0:
|
|
$info['examine_name'] = '未审核';
|
|
break;
|
|
case 1:
|
|
if (!$info['status']) {
|
|
if ($info['refuse_status'] == 2) {
|
|
$info['examine_name'] = '已拒绝';
|
|
} else {
|
|
$info['examine_name'] = '未入库';
|
|
}
|
|
} else {
|
|
$info['examine_name'] = '已入库';
|
|
}
|
|
break;
|
|
case 2:
|
|
$info['examine_name'] = '拒绝';
|
|
break;
|
|
}
|
|
}
|
|
switch ($info['type']) {
|
|
case 0:
|
|
$info['type_name'] = "其他入库";
|
|
break;
|
|
case 1:
|
|
$info['type_name'] = "采购入库";
|
|
break;
|
|
case 2:
|
|
$info['type_name'] = "补货入库";
|
|
break;
|
|
case 3:
|
|
$info['type_name'] = "盘盈入库";
|
|
break;
|
|
case 4:
|
|
$info['type_name'] = "商户调拨入库";
|
|
break;
|
|
case 5:
|
|
$info['type_name'] = "门店调拨入库";
|
|
break;
|
|
case 6:
|
|
$info['type_name'] = "申请调拨入库";
|
|
break;
|
|
}
|
|
}
|
|
return ['status' => 1, 'message' => '查询成功', 'data' => ['info' => $info]];
|
|
}
|
|
|
|
|
|
/**
|
|
* 门店入库单的调拨详情
|
|
* @param $parameter
|
|
* [
|
|
* show_type 1调拨入库的商品 2调拨详情的商品
|
|
* id 门店的入库单id
|
|
* type 0其他入库 1采购入库 2补货入库 3盘盈入库 4商户调拨入库 5其他门店调拨入库 6门店申请调拨入库
|
|
* ]
|
|
* @return array
|
|
*/
|
|
public function getStoreAllocationGoodsList($parameter)
|
|
{
|
|
$id = $parameter['id'];
|
|
$type = $parameter['type'];
|
|
$where['warehouse_record_id'] = $id;
|
|
switch ($type) {
|
|
case 4:
|
|
case 6:
|
|
//商家出库
|
|
switch ($type) {
|
|
case 4:
|
|
//商户调拨入库
|
|
$where['type'] = 1;
|
|
break;
|
|
case 6:
|
|
//门店申请调拨入库
|
|
$where['type'] = 3;
|
|
break;
|
|
}
|
|
$StockOutGoodsModel = new StockOutGoodsModel();
|
|
$StockGoodsSerialModel = new StockGoodsSerialModel();
|
|
break;
|
|
case 5:
|
|
//门店出库
|
|
$where['type'] = 3;
|
|
$StockOutGoodsModel = new SStockOutGoodsModel();
|
|
$StockGoodsSerialModel = new SStockGoodsSerialModel();
|
|
break;
|
|
}
|
|
$list = $StockOutGoodsModel->getSelect($where, '', '');
|
|
if (!empty($list)) {
|
|
unset($where['warehouse_record_id']);
|
|
switch ($parameter['show_type']) {
|
|
case 1:
|
|
foreach ($list as $key => &$val) {
|
|
$val['stock_num'] = round($val['stock_num'], 3);
|
|
$val['warehouse_num'] = round($val['stock_num'], 3);
|
|
$val['warehouse_price'] = round($val['stock_price'], 2);
|
|
$val['build_date'] = $val['build_date'] ? date('Y-m-d', $val['build_date']) : '';
|
|
if ($val['serial_number_state'] == 1) {
|
|
//串号信息
|
|
$where['outside_id'] = $val['id'];
|
|
$val['serial_list'] = $StockGoodsSerialModel->getSelect($where, '', '', 'id,main_serial_number,auxiliary_serial_number_one,auxiliary_serial_number_two');
|
|
}
|
|
}
|
|
break;
|
|
case 2:
|
|
foreach ($list as $key => &$val) {
|
|
$val['index'] = $key + 1;
|
|
$val['warehouse_num'] = round($val['stock_num'], 3);
|
|
$val['warehouse_price'] = round($val['stock_price'], 2);
|
|
$val['subtotal'] = round($val['subtotal'], 2);
|
|
$val['sku_num'] = round($val['sku_num'], 3);
|
|
if ($val['attribute_state'] == 2) {
|
|
$val['goods_code'] = $val['sku_code'];
|
|
$val['goods_number'] = $val['sku_goods_number'];
|
|
}
|
|
$val['build_date'] = $val['build_date'] ? date('Y-m-d', $val['build_date']) : '';
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
return callBack(statusCode()['success'], '查询成功', $list);
|
|
}
|
|
|
|
|
|
/**
|
|
* 门店入库单的商品详情
|
|
* @param $parameter
|
|
* [
|
|
* id 入库单id
|
|
* ]
|
|
* @return mixed
|
|
*/
|
|
public function getStoreWarehousingGoodsList($parameter)
|
|
{
|
|
$id = $parameter['id'];
|
|
$GoodsModel = new SWarehousingGoodsModel();
|
|
$list = $GoodsModel->getSelect(array('warehouse_record_id' => $id), '', '', '', 'id asc');
|
|
if (!empty($list)) {
|
|
foreach ($list as $key => &$val) {
|
|
if ($val['attribute_state'] == 2) {
|
|
$val['goods_code'] = $val['sku_code'];
|
|
$val['goods_number'] = $val['sku_goods_number'];
|
|
}
|
|
if (!empty($val['build_date'])) {
|
|
$val['build_date'] = date('Y-m-d', $val['build_date']);
|
|
}
|
|
$val['index'] = $key + 1;
|
|
$val['sku_num'] = round($val['sku_num'], 3);
|
|
$val['warehouse_num'] = round($val['warehouse_num'], 3);
|
|
$val['warehouse_price'] = round($val['warehouse_price'], 2);
|
|
$val['subtotal'] = round($val['subtotal'], 2);
|
|
}
|
|
}
|
|
return callBack(statusCode()['success'], '查询成功', $list);
|
|
}
|
|
} |