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