197 行
8.4 KiB
PHP
可执行文件
197 行
8.4 KiB
PHP
可执行文件
<?php
|
|
|
|
namespace Common\Business;
|
|
|
|
use Common\Model\InventoryGoodsModel;
|
|
use Common\Model\SaleMGoodsModel;
|
|
use Common\Model\SInventoryGoodsModel;
|
|
use Common\Model\SPurchaseOrderModel;
|
|
use Common\Model\SSaleMGoodsModel;
|
|
|
|
//[1.7.90]
|
|
|
|
/**
|
|
* 盘点记录类
|
|
* Class InventoryRecord
|
|
* [
|
|
* 继续盘点的盘点信息 keepInventory
|
|
* 盘点商品记录 goodsRecordList
|
|
* ]
|
|
* @package Common\Business
|
|
*/
|
|
class InventoryRecord
|
|
{
|
|
/**
|
|
* 继续盘点的盘点信息
|
|
* @param $param
|
|
* [
|
|
* user_type 3商户 4门店 6收银员
|
|
* store_id
|
|
* inventory_order_id 盘点单id
|
|
* supplier_type 2 寄售供货商
|
|
* ]
|
|
* @return mixed
|
|
*/
|
|
public function keepInventory($param)
|
|
{
|
|
$inventory_order_id = $param['inventory_order_id'];
|
|
$supplier_type = $param['supplier_type']?$param['supplier_type']:'';
|
|
$store_id = $param['store_id']?$param['store_id']:0;
|
|
$SerialClass = new SerialNumberGoods();
|
|
switch ($param['user_type']) {
|
|
case 3:
|
|
if (!empty($inventory_order_id)) {
|
|
$where['state'] = 1;
|
|
$where['inventory_order_id'] = $inventory_order_id;
|
|
$InventoryGoodsModel = new InventoryGoodsModel();
|
|
$goodsList = $InventoryGoodsModel->getSelect($where, '', '', '*', 'id asc'); //盘点的商品信息
|
|
if(!empty($goodsList)){
|
|
$goods_id = array_unique(array_column($goodsList, "goods_id"));
|
|
$SaleMGoodsModel = new SaleMGoodsModel();
|
|
$saleGoodsList = $SaleMGoodsModel->getFindFields(array('goods_id' => array('in', $goods_id)), "id,goods_id,sku_id,goods_num");
|
|
foreach ($goodsList as $key => &$val) {
|
|
$val['inventory_goods_id'] = $val['id'];
|
|
$val['inventory_num'] = round($val['inventory_num'], 3);
|
|
//串号信息
|
|
if ($val['serial_number_state'] == 1) {
|
|
$serialResult = $SerialClass->recordSerialList([
|
|
'user_type' => 3,
|
|
'id' => $val['id'],
|
|
'serial_type' => 4,
|
|
'fields'=>'id,main_serial_number,auxiliary_serial_number_one,auxiliary_serial_number_two'
|
|
]);
|
|
$val['serial_list'] = $serialResult['data']['list'];
|
|
}
|
|
foreach ($saleGoodsList as $ke => $va) {
|
|
if (($val['goods_id'] == $va['goods_id']) && ($val['sku_id'] == $va['sku_id'])) {
|
|
$val['id'] = $va['id'];
|
|
$val['goods_num'] = round($va['goods_num'], 3);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 4:
|
|
case 6:
|
|
if (!empty($inventory_order_id)) {
|
|
$where['state'] = 1;
|
|
$where['inventory_order_id'] = $inventory_order_id;
|
|
$SInventoryGoodsModel = new SInventoryGoodsModel();
|
|
$goodsList = $SInventoryGoodsModel->getSelect($where, '', '', '*', 'id asc'); //盘点的商品信息
|
|
if(!empty($goodsList)){
|
|
$goods_id = array_unique(array_column($goodsList, "goods_id"));
|
|
$SSaleMGoodsModel = new SSaleMGoodsModel();
|
|
$saleGoodsList = $SSaleMGoodsModel->getFindFields(array('goods_id' => array('in', $goods_id)), "id,goods_id,sku_id,goods_num");
|
|
foreach ($goodsList as $key => &$val) {
|
|
$val['inventory_goods_id'] = $val['id'];
|
|
$val['inventory_num'] = round($val['inventory_num'], 3);
|
|
//串号信息
|
|
if ($val['serial_number_state'] == 1) {
|
|
$serialResult = $SerialClass->recordSerialList([
|
|
'user_type' => 4,
|
|
'id' => $val['id'],
|
|
'serial_type' => 4
|
|
]);
|
|
$val['serial_list'] = $serialResult['data']['list'];
|
|
}
|
|
foreach ($saleGoodsList as $ke => $va) {
|
|
if (($val['goods_id'] == $va['goods_id']) && ($val['sku_id'] == $va['sku_id'])) {
|
|
$val['id'] = $va['id'];
|
|
$val['goods_num'] = round($va['goods_num'], 3);
|
|
}
|
|
}
|
|
if ($supplier_type == 2) {
|
|
$parameter = array(
|
|
'goods_id' => $val['goods_id'],
|
|
'sku_id' => $val['sku_id'],
|
|
'store_id' => $store_id,
|
|
);
|
|
$val['pur_id'] = $SSaleMGoodsModel->getPurchaseId($parameter);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
return callBack(statusCode()['success'],'查询成功',$goodsList?$goodsList:[]);
|
|
}
|
|
|
|
|
|
/**
|
|
* 盘点商品记录
|
|
* @param $param
|
|
* [
|
|
* user_type 3商户 4门店 6收银员
|
|
* order_id 盘点订单id
|
|
* purchase_price_state 查看进价权限 1可以 2不可以
|
|
* supplier_type 1普通供货商 2寄售供货商
|
|
* type 0不变 1盘盈 2盘亏
|
|
* ]
|
|
* @return mixed
|
|
* [
|
|
* list 列表
|
|
* goods_species 商品种数
|
|
* quantity 盈亏数量
|
|
* amount 盈亏金额
|
|
* ]
|
|
*/
|
|
public function goodsRecordList($param)
|
|
{
|
|
if (in_array($param['type'], ['0', '1', '2'])) {
|
|
$where['type'] = $param['type'];
|
|
}
|
|
$where['state'] = 1;
|
|
$where['inventory_order_id'] = $param['order_id'];
|
|
try {
|
|
switch ($param['user_type']) {
|
|
case 3:
|
|
//商户
|
|
$InventoryGoodsModel = new InventoryGoodsModel();
|
|
break;
|
|
case 4:
|
|
case 6:
|
|
//门店
|
|
$InventoryGoodsModel = new SInventoryGoodsModel();
|
|
$PurchaseModel = new SPurchaseOrderModel();
|
|
break;
|
|
}
|
|
$quantity = 0; // 盈亏数量
|
|
$amount = 0; //盈亏金额
|
|
$detailsList = $InventoryGoodsModel->getSelect($where, $page = '', $limit = '');
|
|
} catch (\Exception $e) {
|
|
$detailsList = [];
|
|
}
|
|
if (!empty($detailsList)) {
|
|
foreach ($detailsList as $key => &$val) {
|
|
$val['index'] = $key + 1;
|
|
$quantity += $val['num'];
|
|
$amount += $val['subtotal'];
|
|
$val['inventory_num'] = round($val['inventory_num'], 3);
|
|
$val['sku_num'] = round($val['sku_num'], 3);
|
|
$val['goods_num'] = round($val['goods_num'], 3);
|
|
$val['num'] = round($val['num'], 3);
|
|
if ($val['attribute_state'] == 2) {
|
|
$val['goods_code'] = $val['sku_code'];
|
|
$val['goods_number'] = $val['sku_goods_number'];
|
|
}
|
|
if ($param['purchase_price_state'] == 2) {
|
|
$val['cost_price'] = '***';
|
|
$val['subtotal'] = '***';
|
|
} else {
|
|
$val['cost_price'] = round($val['cost_price'], 2);
|
|
$val['subtotal'] = round($val['subtotal'], 2);
|
|
}
|
|
if ($param['supplier_type'] == 2 && !empty($val['purchase_order_id'])) {
|
|
$val['purchase_order_number'] = $PurchaseModel->getFindField(array('id' => $val['purchase_order_id']), "order_number");
|
|
}
|
|
}
|
|
}
|
|
return callBack(statusCode()['success'], "查询成功", [
|
|
'list' => $detailsList ? $detailsList : [],
|
|
'goods_species' => count($detailsList),
|
|
'quantity' => $quantity,
|
|
'amount' => $amount
|
|
]);
|
|
}
|
|
} |