986 行
36 KiB
PHP
可执行文件
986 行
36 KiB
PHP
可执行文件
<?php
|
|
|
|
namespace Common\Business;
|
|
|
|
use Common\Model\JurisdictionUserModel;
|
|
use Common\Model\ModifyPriceGoodsModel;
|
|
use Common\Model\ModifyPriceOrderModel;
|
|
use Common\Model\PurchaseGoodsModel;
|
|
use Common\Model\PurchaseOrderModel;
|
|
use Common\Model\SaleMGoodsModel;
|
|
use Common\Model\SaleWarehouseModel;
|
|
use Common\Model\SModifyPriceGoodsModel;
|
|
use Common\Model\SModifyPriceOrderModel;
|
|
use Common\Model\SPurchaseGoodsModel;
|
|
use Common\Model\SPurchaseOrderModel;
|
|
use Common\Model\SSaleMGoodsModel;
|
|
use Common\Model\SSaleWarehouseModel;
|
|
use Common\Model\SWarehousingGoodsModel;
|
|
use Common\Model\SWarehousingRecordModel;
|
|
use Common\Model\WarehousingGoodsModel;
|
|
use Common\Model\WarehousingRecordModel;
|
|
|
|
//[1.6.9]
|
|
|
|
/**
|
|
* 调价单类
|
|
* Class ModifyPriceSingle
|
|
* [
|
|
* 创建调价单 modifyPriceOperation
|
|
* 加入调价单商品表 ModifyPriceGoodsAdd
|
|
* 修改采购记录 modifyPurchaseRecord
|
|
* 修改入库价 modifyWarehousePrice
|
|
* 新增调价单操作 createModifyPriceOrder
|
|
* 创建调价单的参数验证 modifyPriceOperationVerify
|
|
* 选择的调价商品列表 getGoodsList
|
|
* 选择的调价商品列表的where条件 getGoodsListTerm
|
|
* 选择的调价商品验证 getGoodsListVerify
|
|
* 调价单详情的商品列表 ModifyPriceGoodsList
|
|
* 调价单详情导出 ModifyPriceGoodsListExport
|
|
* 调价单列表 getModifyPriceSingleList
|
|
* 调价单列表导出 ModifyPriceSingleListExport
|
|
* 调价单列表的参数验证 getModifyPriceSingleVerify
|
|
* 调价单列表的where条件 getModifyPriceSingleTerm
|
|
* ]
|
|
* @package Common\ModifyPriceSingle
|
|
*/
|
|
class ModifyPriceSingle
|
|
{
|
|
|
|
/**
|
|
* 创建调价单
|
|
* @param $parameter
|
|
* [
|
|
* user_type 1商户 2门店
|
|
* merchant_id
|
|
* store_id
|
|
* supplier_type 1常规供货商 2寄售供货商
|
|
* type 1初始化入库 2采购单 3其他入库
|
|
* modify_order_number 修改的订单号
|
|
* operator_id 操作人id
|
|
* remarks 备注
|
|
* goodsList=>[
|
|
* goods_id 商品id
|
|
* sku_id 规格id
|
|
* purchase_price 原进价
|
|
* goods_class_id 分类id
|
|
* attribute_state 1常规 2规格
|
|
* pricing_method 1不称重 2称重
|
|
* ]
|
|
* ]
|
|
* @return array
|
|
* [
|
|
* status
|
|
* message
|
|
* ]
|
|
*/
|
|
public function modifyPriceOperation($parameter)
|
|
{
|
|
$verify = $this->modifyPriceOperationVerify($parameter);
|
|
if ($verify['status'] != 1) {
|
|
return $verify;
|
|
}
|
|
$parameter['time'] = time();
|
|
$WarehousingClass = new WarehousingRecord();
|
|
switch ($parameter['user_type']) {
|
|
case 1:
|
|
//商户
|
|
$warehouseInfo = $WarehousingClass->getMerchantSaleWarehouse($parameter); //商户供给仓查询
|
|
switch ($parameter['type']) {
|
|
case 2:
|
|
//采购单
|
|
$modifyOrderModel = new PurchaseOrderModel();
|
|
break;
|
|
case 3:
|
|
//入库单
|
|
$modifyOrderModel = new WarehousingRecordModel();
|
|
break;
|
|
}
|
|
break;
|
|
case 2:
|
|
//门店
|
|
$warehouseInfo = $WarehousingClass->getStoreSaleWarehouse($parameter); //门店供给仓
|
|
$where['store_id'] = $parameter['store_id'];
|
|
switch ($parameter['type']) {
|
|
case 2:
|
|
//采购单
|
|
$modifyOrderModel = new SPurchaseOrderModel();
|
|
break;
|
|
case 3:
|
|
//入库单
|
|
$modifyOrderModel = new SWarehousingRecordModel();
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
if (empty($warehouseInfo)) {
|
|
return ['status' => 0, 'message' => '请创建供给仓'];
|
|
}
|
|
if (in_array($parameter['type'], [2, 3])) {
|
|
//获取修改订单id
|
|
$where['merchant_id'] = $parameter['merchant_id'];
|
|
$where['status'] = 1;
|
|
$where['order_number'] = $parameter['modify_order_number'];
|
|
$modify_order_id = $modifyOrderModel->getFindField($where, "id");
|
|
if (empty($modify_order_id)) {
|
|
return ['status' => 0, 'message' => '未找到改订单'];
|
|
}
|
|
}
|
|
$parameter['warehouse_id'] = $warehouseInfo['id'];
|
|
$parameter['modify_order_id'] = $modify_order_id ? $modify_order_id : '';
|
|
$result = $this->createModifyPriceOrder($parameter); //创建调价单
|
|
if ($result['status'] != 1) {
|
|
return $result;
|
|
}
|
|
$parameter['orderId'] = $result['data']['id']; //调价单id
|
|
$parameter['orderNumber'] = "MG" . orderNumber($parameter['orderId']); //调价单号
|
|
$result = $this->ModifyPriceGoodsAdd($parameter); //加入调价商品表修改记录表
|
|
if ($result['status'] != 1) {
|
|
return ['status' => 0, 'message' => '暂无修改'];
|
|
}
|
|
$parameter['list'] = $result['data']['newWarehouseOrderMoney']; //入库单金额修改信息
|
|
if (!empty($parameter['list']) && in_array($parameter['type'], [2, 3])) {
|
|
$WarehousingClass->modifyWarehousingOrderMoney($parameter);
|
|
}
|
|
unset($parameter['list']);
|
|
if ($parameter['type'] == 2) {
|
|
//采购单
|
|
$parameter['id'] = $modify_order_id;
|
|
$parameter['money_total'] = round($result['data']['newPurchaseOrderMoney'], 2); //采购单金额修改信息
|
|
$PurchaseOrderClass = new PurchaseOrder();
|
|
$PurchaseOrderClass->modifyPurchaseOrderMoney($parameter); //修改采购单
|
|
$parameter['purchase_order_id'] = $parameter['modify_order_id']; //采购单id
|
|
$parameter['payable_money'] = $parameter['money_total']; //修改金额
|
|
if ($parameter['supplier_type'] != 2) {
|
|
$PurchasePayableClass = new PurchasePayable();
|
|
$PurchasePayableClass->modifyOrderMoney($parameter); //修改采购应付款
|
|
}
|
|
unset($parameter['money_total']);
|
|
unset($parameter['id']);
|
|
}
|
|
switch ($parameter['user_type']) {
|
|
case 1:
|
|
//商户
|
|
$CostPriceModel = new ModifyPriceOrderModel();
|
|
break;
|
|
case 2:
|
|
//门店
|
|
$CostPriceModel = new SModifyPriceOrderModel();
|
|
break;
|
|
}
|
|
try {
|
|
$CostPriceModel->updateData([
|
|
'id' => $parameter['orderId']
|
|
], [
|
|
'status' => 1,
|
|
'order_number' => $parameter['orderNumber'],
|
|
'goods_species' => count($parameter['goodsList'])
|
|
]);
|
|
return ['status' => 1, 'message' => '操作成功'];
|
|
} catch (\Exception $e) {
|
|
return ['status' => 0, 'message' => '操作失败'];
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* 加入调价单商品表
|
|
* @param $parameter
|
|
* [
|
|
* user_type 1商户 2门店
|
|
* merchant_id
|
|
* store_id
|
|
* goodsList 商品信息
|
|
* type 1初始化入库 2采购单 3其他入库
|
|
* modify_order_number 修改的订单号
|
|
* operator_id 操作人id
|
|
* ]
|
|
* @return array
|
|
* [
|
|
* status
|
|
* message
|
|
* data=>[
|
|
* newWarehouseOrderMoney 入库单列表
|
|
* newPurchaseOrderMoney 采购单列表
|
|
* ]
|
|
* ]
|
|
*/
|
|
public function ModifyPriceGoodsAdd($parameter)
|
|
{
|
|
$parameter['newWarehouseOrderMoney'] = []; //入库单金额新信息
|
|
$parameter['newPurchaseOrderMoney'] = 0; //采购单金额
|
|
$data = [
|
|
'merchant_id' => $parameter['merchant_id'],
|
|
'modify_price_order_id' => $parameter['orderId'],
|
|
'warehouse_id' => $parameter['warehouse_id'],
|
|
'add_time' => $parameter['time'],
|
|
'order_number' => $parameter['orderNumber'],
|
|
'type' => $parameter['type']
|
|
];
|
|
switch ($parameter['user_type']) {
|
|
case 1:
|
|
$ModifyPriceGoodsModel = new ModifyPriceGoodsModel();
|
|
break;
|
|
case 2:
|
|
$ModifyPriceGoodsModel = new SModifyPriceGoodsModel();
|
|
$data['store_id'] = $parameter['store_id'];
|
|
break;
|
|
}
|
|
$CostPriceClass = new CostPrice();
|
|
try {
|
|
foreach ($parameter['goodsList'] as $val) {
|
|
$data['goods_id'] = $val['goods_id'];
|
|
$data['goods_name'] = $val['goods_name'];
|
|
$data['goods_class_id'] = $val['goods_class_id'];
|
|
$data['goods_number'] = $val['goods_number'];
|
|
$data['goods_code'] = $val['goods_code'];
|
|
$data['company'] = $val['company'];
|
|
$data['attribute_state'] = $val['attribute_state'];
|
|
$data['pricing_method'] = $val['pricing_method'];
|
|
$data['purchase_price'] = $val['purchase_price'];
|
|
$data['cost_price'] = $val['cost_price'];
|
|
$data['remarks'] = $val['remarks'];
|
|
if ($val['attribute_state'] == 2) {
|
|
$data['sku_id'] = $val['sku_id'];
|
|
$data['sku_name'] = $val['sku_name'];
|
|
$data['sku_id_list'] = $val['sku_id_list'];
|
|
$data['sku_goods_number'] = $val['sku_goods_number'];
|
|
$data['sku_code'] = $val['sku_code'];
|
|
$data['sku_num'] = $val['sku_num'];
|
|
}
|
|
$result = $ModifyPriceGoodsModel->addData($data);
|
|
if ($result['status'] != 1) {
|
|
continue;
|
|
}
|
|
$parameter['goodsInfo'] = $val;
|
|
$result = $this->modifyWarehousePrice($parameter); //修改入库价
|
|
if ($result['status'] != 1 && $parameter['type'] == 3) {
|
|
continue;
|
|
}
|
|
if (in_array($parameter['type'], [2, 3]) && !empty($result['data']['newWarehouseOrderMoney'])) {
|
|
$parameter['newWarehouseOrderMoney'] = $result['data']['newWarehouseOrderMoney'];
|
|
}
|
|
if ($parameter['type'] == 2) {
|
|
$purchaseSate = $this->modifyPurchaseRecord($parameter); //修改采购记录
|
|
if ($purchaseSate['status'] == 1) {
|
|
$parameter['newPurchaseOrderMoney'] = $purchaseSate['data']['newPurchaseOrderMoney'];
|
|
}
|
|
}
|
|
unset($parameter['goodsInfo']);
|
|
if ($result['status'] == 1) {
|
|
$val['type'] = 3; //调价单修改
|
|
$val['time'] = $parameter['time']; //调价单修改
|
|
$parameter['goods'] = $val;
|
|
$CostPriceClass->modifyCostPrice($parameter); //修改成本价
|
|
unset($parameter['goods']);
|
|
}
|
|
unset($result);
|
|
}
|
|
return ['status' => 1, 'message' => '操作成功', 'data' => ['newWarehouseOrderMoney' => $parameter['newWarehouseOrderMoney'], 'newPurchaseOrderMoney' => $parameter['newPurchaseOrderMoney']]];
|
|
} catch (\Exception $e) {
|
|
return ['status' => 0, 'message' => '操作失败'];
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* 修改采购记录
|
|
* @param $parameter
|
|
* [
|
|
* user_type 1商户 2门店
|
|
* merchant_id
|
|
* store_id
|
|
* goodsInfo 商品信息
|
|
* ]
|
|
* @return array
|
|
* [
|
|
* status
|
|
* message
|
|
* data=>[
|
|
* newPurchaseOrderMoney 变更的采购金额
|
|
* ]
|
|
* ]
|
|
*/
|
|
public function modifyPurchaseRecord($parameter)
|
|
{
|
|
$goodsInfo = $parameter['goodsInfo'];
|
|
$where = [
|
|
'merchant_id' => $parameter['merchant_id'],
|
|
'purchase_order_id' => $parameter['modify_order_id'],
|
|
'goods_id' => $goodsInfo['goods_id']
|
|
];
|
|
if ($goodsInfo['attribute_state'] == 2) {
|
|
$where['sku_id'] = $goodsInfo['sku_id'];
|
|
}
|
|
switch ($parameter['user_type']) {
|
|
case 1:
|
|
//商户
|
|
$PurchaseGoodsModel = new PurchaseGoodsModel();
|
|
break;
|
|
case 2:
|
|
//门店
|
|
$PurchaseGoodsModel = new SPurchaseGoodsModel();
|
|
$where['store_id'] = $parameter['store_id'];
|
|
break;
|
|
}
|
|
$purchase = $PurchaseGoodsModel->getFieldInfo($where, "purchase_num,purchase_price");
|
|
if (!empty($purchase)) {
|
|
$parameter['newPurchaseOrderMoney'] += ($goodsInfo['cost_price'] - $purchase['purchase_price']) * $purchase['purchase_num'];
|
|
$subtotal = round($goodsInfo['cost_price'] * $purchase['purchase_num'], 2);
|
|
$PurchaseGoodsModel->updateData($where, [
|
|
'purchase_price' => $goodsInfo['cost_price'],
|
|
'subtotal' => $subtotal
|
|
]);
|
|
return ['status' => 1, 'message' => '修改成功', 'data' => ['newPurchaseOrderMoney' => $parameter['newPurchaseOrderMoney']]];
|
|
} else {
|
|
return ['status' => 0, 'message' => '未找到该商品'];
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* 修改入库价
|
|
* @param $parameter
|
|
* [
|
|
* user_type 1商户 2门店
|
|
* merchant_id
|
|
* store_id
|
|
* goodsInfo 单个商品信息
|
|
* newWarehouseOrderMoney 订单新的金额信息s
|
|
* ]
|
|
* @return array
|
|
* [
|
|
* status
|
|
* message
|
|
* data=[
|
|
* newWarehouseOrderMoney 订单新的金额信息
|
|
* ]
|
|
* ]
|
|
*/
|
|
public function modifyWarehousePrice($parameter)
|
|
{
|
|
$goodsInfo = $parameter['goodsInfo'];
|
|
$where = [
|
|
'merchant_id' => $parameter['merchant_id'],
|
|
'goods_id' => $goodsInfo['goods_id']
|
|
];
|
|
if (!empty($goodsInfo['sku_id'])) {
|
|
$where['sku_id'] = $goodsInfo['sku_id'];
|
|
}
|
|
switch ($parameter['type']) {
|
|
case 1:
|
|
$where['type'] = 5;
|
|
break;
|
|
case 2:
|
|
$where['type'] = ['in', [1, 2]];
|
|
$where['purchase_order_number'] = $parameter['modify_order_number']; //采购单号
|
|
break;
|
|
case 3:
|
|
$where['type'] = 0;
|
|
$where['warehouse_record_id'] = $parameter['modify_order_id']; //入库单id
|
|
break;
|
|
}
|
|
switch ($parameter['user_type']) {
|
|
case 1:
|
|
$warehousingModel = new WarehousingGoodsModel();
|
|
break;
|
|
case 2:
|
|
$warehousingModel = new SWarehousingGoodsModel();
|
|
if ($parameter['type'] == 1) {
|
|
$where['type'] = 7;
|
|
}
|
|
$where['store_id'] = $parameter['store_id'];
|
|
break;
|
|
}
|
|
$warehouseInfo = $warehousingModel->getSelect($where, '', '', 'id,warehouse_record_id,warehouse_price,warehouse_num');
|
|
if (!empty($warehouseInfo)) {
|
|
foreach ($warehouseInfo as $val) {
|
|
if (in_array($parameter['type'], [2, 3])) {
|
|
$moreMoney = ($goodsInfo['cost_price'] - $val['warehouse_price']) * $val['warehouse_num'];
|
|
if (!empty($parameter['newWarehouseOrderMoney'][$val['warehouse_record_id']])) {
|
|
$parameter['newWarehouseOrderMoney'][$val['warehouse_record_id']] = ($parameter['newWarehouseOrderMoney'][$val['warehouse_record_id']] + $moreMoney);
|
|
} else {
|
|
$parameter['newWarehouseOrderMoney'][$val['warehouse_record_id']] = $moreMoney;
|
|
}
|
|
}
|
|
$warehousingModel->updateData([
|
|
'id' => $val['id']
|
|
], [
|
|
'warehouse_price' => $goodsInfo['cost_price'],
|
|
'subtotal' => round($goodsInfo['cost_price'] * $val['warehouse_num'], 2)
|
|
]);
|
|
}
|
|
return ['status' => 1, 'message' => '修改成功', 'data' => ['newWarehouseOrderMoney' => $parameter['newWarehouseOrderMoney']]];
|
|
} else {
|
|
return ['status' => 0, 'message' => '未找到入库记录'];
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* 新增调价单操作
|
|
* @param $parameter
|
|
* [
|
|
* user_type 1商户 2门店
|
|
* merchant_id
|
|
* store_id
|
|
* goodsList 商品信息
|
|
* type 1初始化入库 2采购单 3其他入库
|
|
* modify_order_number
|
|
* operator_id 操作人id
|
|
* ]
|
|
* @return array
|
|
* [
|
|
* status
|
|
* message
|
|
* data=>[
|
|
* id 采购单id
|
|
* ]
|
|
* ]
|
|
*/
|
|
public function createModifyPriceOrder($parameter)
|
|
{
|
|
$data = [
|
|
'merchant_id' => $parameter['merchant_id'],
|
|
'warehouse_id' => $parameter['warehouse_id'],
|
|
'remarks' => $parameter['remarks'],
|
|
'add_time' => $parameter['time'],
|
|
'operator_id' => $parameter['operator_id'],
|
|
'type' => $parameter['type'],
|
|
'modify_order_id' => $parameter['modify_order_id'] ? $parameter['modify_order_id'] : 0,
|
|
'modify_order_number' => $parameter['modify_order_number'] ? $parameter['modify_order_number'] : ''
|
|
];
|
|
switch ($parameter['user_type']) {
|
|
case 1:
|
|
//商户
|
|
$ModifyPriceOrderModel = new ModifyPriceOrderModel();
|
|
break;
|
|
case 2:
|
|
//门店
|
|
$ModifyPriceOrderModel = new SModifyPriceOrderModel();
|
|
$data['store_id'] = $parameter['store_id'];
|
|
break;
|
|
}
|
|
try {
|
|
$result = $ModifyPriceOrderModel->addData($data);
|
|
} catch (\Exception $e) {
|
|
return ['status' => 0, 'message' => '调价单生成失败'];
|
|
}
|
|
if ($result['status'] == 0) {
|
|
return ['status' => 0, 'message' => '调价单生成失败'];
|
|
}
|
|
return ['status' => 1, 'message' => '调价单创建成功', 'data' => ['id' => $result['data']]];
|
|
}
|
|
|
|
|
|
/**
|
|
* 创建调价单的参数验证
|
|
* @param $parameter
|
|
* [
|
|
* user_type 1商户 2门店
|
|
* merchant_id
|
|
* store_id
|
|
* type
|
|
* modify_order_number
|
|
* goodsList=>[
|
|
* goods_id 商品id
|
|
* sku_id 规格id
|
|
* purchase_price 原进价
|
|
* goods_class_id 分类id
|
|
* attribute_state 1常规 2规格
|
|
* pricing_method 1不称重 2称重
|
|
* ]
|
|
* ]
|
|
* @return array
|
|
* [
|
|
* status
|
|
* message
|
|
* ]
|
|
*/
|
|
public function modifyPriceOperationVerify($parameter)
|
|
{
|
|
if (!in_array($parameter['user_type'], [1, 2]) || !in_array($parameter['type'], [1, 2, 3])) {
|
|
return ['status' => 0, 'message' => '未知请求源'];
|
|
}
|
|
if (empty($parameter['merchant_id']) || ($parameter['user_type'] == 2 && empty($parameter['store_id']))) {
|
|
return ['status' => 0, 'message' => '登录超时'];
|
|
}
|
|
if ($parameter['type'] != 1 && empty($parameter['modify_order_number'])) {
|
|
return ['status' => 0, 'message' => '请输入修改的订单号'];
|
|
}
|
|
if (empty($parameter['goodsList'])) {
|
|
return ['status' => 0, 'message' => '请选择调价的商品'];
|
|
}
|
|
if (count($parameter['goodsList']) > 500) {
|
|
return ['status' => 0, 'message' => '单次操作上限为500种商品'];
|
|
}
|
|
$reg = "/^(?!0+(?:\.0+)?$)(?:[1-9]\d*|0)(?:\.\d{1,2})?$/";
|
|
foreach ($parameter['goodsList'] as $val) {
|
|
if (empty($val['cost_price']) || !preg_match($reg, $val['cost_price'])) {
|
|
return ['status' => 0, 'message' => $val['goods_name'] . $val['sku_name'] . "价格有误"];
|
|
}
|
|
}
|
|
return ['status' => 1, 'message' => '验证成功'];
|
|
}
|
|
|
|
|
|
/**
|
|
* 选择的调价商品列表
|
|
* @param $parameter
|
|
* [
|
|
* user_type 1商户2 门店
|
|
* merchant_id
|
|
* store_id
|
|
* type 1初始化入库 2采购单 3其他入库
|
|
* modify_order_number 修改的订单号
|
|
* page
|
|
* limit
|
|
* ]
|
|
* @return array
|
|
* [
|
|
* status
|
|
* message
|
|
* data=>[
|
|
* list 列表
|
|
* count 总条数
|
|
* ]
|
|
* ]
|
|
*/
|
|
public function getGoodsList($parameter)
|
|
{
|
|
$verify = $this->getGoodsListVerify($parameter); //参数验证
|
|
if ($verify['status'] != 1) {
|
|
return $verify;
|
|
}
|
|
$where = $this->getGoodsListTerm($parameter);
|
|
$page = $parameter['page'] ? $parameter['page'] : '';
|
|
$limit = $parameter['limit'] ? $parameter['limit'] : '';
|
|
switch ($parameter['user_type']) {
|
|
case 1:
|
|
//商户
|
|
switch ($parameter['type']) {
|
|
case 1:
|
|
$modifyGoodsModel = new SaleMGoodsModel();
|
|
$price = 'cost_price';
|
|
break;
|
|
case 2:
|
|
$modifyGoodsModel = new PurchaseGoodsModel();
|
|
$price = 'purchase_price';
|
|
break;
|
|
case 3:
|
|
$modifyGoodsModel = new WarehousingGoodsModel();
|
|
$price = 'warehouse_price';
|
|
break;
|
|
}
|
|
break;
|
|
case 2:
|
|
//门店
|
|
switch ($parameter['type']) {
|
|
case 1:
|
|
$modifyGoodsModel = new SSaleMGoodsModel();
|
|
$price = 'cost_price';
|
|
break;
|
|
case 2:
|
|
$modifyGoodsModel = new SPurchaseGoodsModel();
|
|
$price = 'purchase_price';
|
|
break;
|
|
case 3:
|
|
$modifyGoodsModel = new SWarehousingGoodsModel();
|
|
$price = 'warehouse_price';
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
$list = $modifyGoodsModel->getSelect($where, $page, $limit, "id,goods_id,sku_id,goods_class_id,goods_name,sku_name,goods_number,sku_goods_number,goods_code,sku_code,company,attribute_state,pricing_method,sku_id_list,sku_num,{$price}");
|
|
if ($list) {
|
|
$count = $modifyGoodsModel->getCount($where);
|
|
foreach ($list as $key => &$val) {
|
|
$val['index'] = $key + 1;
|
|
$val['cost_price'] = round($val[$price], 2);
|
|
if ($val['attribute_state'] == 2) {
|
|
$val['number'] = $val['sku_goods_number'];
|
|
$val['code'] = $val['sku_code'];
|
|
} else {
|
|
$val['number'] = $val['goods_number'];
|
|
$val['code'] = $val['goods_code'];
|
|
}
|
|
}
|
|
}
|
|
return ['status' => 1, 'message' => '查询成功', 'data' => ['list' => $list, 'count' => $count ? $count : 0]];
|
|
}
|
|
|
|
|
|
/**
|
|
* 选择的调价商品列表的where条件
|
|
* @param $parameter
|
|
* [
|
|
* user_type 1商户 2门店
|
|
* merchant_id
|
|
* store_id
|
|
* type 1初始化入库 2采购单 3其他入库
|
|
* modify_order_number 修改的订单号
|
|
* ]
|
|
* @return mixed
|
|
*/
|
|
public function getGoodsListTerm($parameter)
|
|
{
|
|
$where = [];
|
|
$goodsClass = new GoodsClassify();
|
|
$where = $goodsClass->getGoodsClassId($parameter, $where, "goods_class_id");
|
|
switch ($parameter['type']) {
|
|
case 1:
|
|
//初始化入库
|
|
$where['status'] = ['in', [0, 1]];
|
|
break;
|
|
case 2:
|
|
//采购单
|
|
$where['order_number'] = $parameter['modify_order_number'];
|
|
break;
|
|
case 3:
|
|
//其他入库
|
|
$where['type'] = 0;
|
|
$where['warehouse_order_number'] = $parameter['modify_order_number'];
|
|
break;
|
|
}
|
|
if (!empty($parameter['searchText'])) {
|
|
$where['goods_name|sku_name|goods_code|sku_code|goods_number|sku_goods_number'] = array('like', '%' . $parameter['searchText'] . '%');
|
|
}
|
|
if (!empty($parameter['notInIds'])) {
|
|
$where['id'] = array('not in', $parameter['notInIds']);
|
|
}
|
|
if ($parameter['user_type'] == 2) {
|
|
//门店
|
|
$where['store_id'] = $parameter['store_id'];
|
|
}
|
|
$where['merchant_id'] = $parameter['merchant_id'];
|
|
return $where;
|
|
}
|
|
|
|
|
|
/**
|
|
* 选择的调价商品验证
|
|
* @param $parameter
|
|
* [
|
|
* user_type 1商户2 门店
|
|
* merchant_id
|
|
* store_id
|
|
* type 1初始化入库 2采购单 3其他入库
|
|
* modify_order_number 修改的订单号
|
|
* ]
|
|
* @return array
|
|
*/
|
|
public function getGoodsListVerify($parameter)
|
|
{
|
|
if (!in_array($parameter['user_type'], [1, 2]) || !in_array($parameter['type'], [1, 2, 3])) {
|
|
return ['status' => 0, 'message' => '未知请求源'];
|
|
}
|
|
if (empty($parameter['merchant_id']) || (empty($parameter['store_id']) && $parameter['user_type'] == 2)) {
|
|
return ['status' => 0, 'message' => '登录超时'];
|
|
}
|
|
if ($parameter['type'] != 1 && empty($parameter['modify_order_number'])) {
|
|
return ['status' => 0, 'message' => '请输入订单号'];
|
|
}
|
|
return ['status' => 1, 'message' => '验证成功'];
|
|
}
|
|
|
|
|
|
/**
|
|
* 调价单详情的商品列表
|
|
* @param $parameter
|
|
* [
|
|
* user_type 1商户 2门店
|
|
* id 调价单id
|
|
* showPrice 查看进价权限 2无
|
|
* identity 身份 1商户 2门店
|
|
* ]
|
|
* @return array
|
|
*/
|
|
public function ModifyPriceGoodsList($parameter)
|
|
{
|
|
if (!in_array($parameter['user_type'], [1, 2])) {
|
|
return ['status' => 0, 'message' => '未知请求源'];
|
|
}
|
|
$id = $parameter['id'];
|
|
if (empty($id)) {
|
|
return ['status' => 0, 'message' => '缺少参数'];
|
|
}
|
|
switch ($parameter['user_type']) {
|
|
case 1:
|
|
//商户
|
|
$ModifyPriceGoodsModel = new ModifyPriceGoodsModel();
|
|
break;
|
|
case 2:
|
|
//门店
|
|
$ModifyPriceGoodsModel = new SModifyPriceGoodsModel();
|
|
break;
|
|
}
|
|
$list = $ModifyPriceGoodsModel->getSelect(['modify_price_order_id' => $id]);
|
|
if ($list) {
|
|
foreach ($list as $key => &$val) {
|
|
$val['index'] = $key + 1;
|
|
if ($parameter['user_type'] == 2 && $parameter['showPrice'] == 2 && $parameter['identity'] == 2) {
|
|
//门店
|
|
$val['purchase_price'] = "***";
|
|
} else {
|
|
$val['purchase_price'] = round($val['purchase_price'], 2);
|
|
$val['cost_price'] = round($val['cost_price'], 2);
|
|
}
|
|
$val['sku_num'] = round($val['sku_num'], 3);
|
|
if ($val['attribute_state'] == 2) {
|
|
$val['goods_number'] = $val['sku_goods_number'];
|
|
$val['goods_code'] = $val['sku_code'];
|
|
}
|
|
}
|
|
}
|
|
return ['status' => 1, 'message' => '查询成功', 'data' => ['list' => $list]];
|
|
}
|
|
|
|
|
|
/**
|
|
* 调价单详情导出
|
|
* @param $parameter
|
|
* [
|
|
* user_type 1商户 2门店
|
|
* id 调价单id
|
|
* ]
|
|
* @throws \PHPExcel_Exception
|
|
* @throws \PHPExcel_Reader_Exception
|
|
* @throws \PHPExcel_Writer_Exception
|
|
*/
|
|
public function ModifyPriceGoodsListExport($parameter)
|
|
{
|
|
$result = $this->ModifyPriceGoodsList($parameter);
|
|
switch ($parameter['user_type']) {
|
|
case 1:
|
|
//商户
|
|
$ModifyPriceOrderModel = new ModifyPriceOrderModel();
|
|
$SaleWarehouseModel = new SaleWarehouseModel();
|
|
break;
|
|
case 2:
|
|
//门店
|
|
$ModifyPriceOrderModel = new SModifyPriceOrderModel();
|
|
$SaleWarehouseModel = new SSaleWarehouseModel();
|
|
break;
|
|
}
|
|
$info = $ModifyPriceOrderModel->getFind(array('id' => $parameter['id']));
|
|
$info['add_time'] = date('Y-m-d H:i:s', $info['add_time']);
|
|
$warehouse = $SaleWarehouseModel->getFindField(array('id' => $info['warehouse_id']), "name");
|
|
$fileds_name = "调价详情导出";
|
|
$arr = array(
|
|
array('index', '序号'),
|
|
array('goods_name', '商品名称'),
|
|
array('sku_name', '规格'),
|
|
array('goods_number', '货号'),
|
|
array('goods_code', '条码'),
|
|
array('company', '单位'),
|
|
array('sku_num', '规格基数'),
|
|
array('purchase_price', '原进价'),
|
|
array('cost_price', '进价'),
|
|
array('remarks', '备注'),
|
|
);
|
|
$str = array();
|
|
$str[0] = $fileds_name . ',导出日期:' . date('Y-m-d H:i:s', time());
|
|
$str[1] = "调价单号:" . $info['order_number'] . " 调价仓库:" . $warehouse . " 调价时间:" . $info['add_time'];
|
|
$this->detailGetExcel($fileds_name, $arr, $result['data']['list'], $str);
|
|
}
|
|
|
|
|
|
/**
|
|
* 调价单列表
|
|
* @param $parameter
|
|
* [
|
|
* user_type 1商户 2门店
|
|
* merchant_id
|
|
* store_id
|
|
* order_number 调价单号或者被修改订单号
|
|
* type 1初始化入库 2采购单 3采购入库 4补货入库 5其他入库
|
|
* page
|
|
* limit
|
|
* ]
|
|
* @return array
|
|
*/
|
|
public function getModifyPriceSingleList($parameter)
|
|
{
|
|
$verify = $this->getModifyPriceSingleVerify($parameter); //参数验证
|
|
if ($verify['status'] != 1) {
|
|
return $verify;
|
|
}
|
|
$where = $this->getModifyPriceSingleTerm($parameter); //获取查询条件
|
|
$page = $parameter['page'] ? $parameter['page'] : '';
|
|
$limit = $parameter['limit'] ? $parameter['limit'] : '';
|
|
switch ($parameter['user_type']) {
|
|
case 1:
|
|
//商户
|
|
$ModifyPriceSingleModel = new ModifyPriceOrderModel();
|
|
break;
|
|
case 2:
|
|
$ModifyPriceSingleModel = new SModifyPriceOrderModel();
|
|
break;
|
|
}
|
|
$list = $ModifyPriceSingleModel->getSelect($where, $page, $limit);
|
|
if ($list) {
|
|
$JurisdictionUserModel = new JurisdictionUserModel();
|
|
$count = $ModifyPriceSingleModel->getCount($where);
|
|
foreach ($list as $key => &$val) {
|
|
$val['index'] = $key + 1;
|
|
$val['add_time'] = date('Y-m-d H:i:s', $val['add_time']);
|
|
if (!empty($val['operator_id'])) {
|
|
$val['operator'] = $JurisdictionUserModel->getFindField(['id' => $val['operator_id']], 'name');
|
|
}
|
|
switch ($val['type']) {
|
|
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;
|
|
}
|
|
}
|
|
}
|
|
return ['status' => 1, 'message' => '查询成功', 'data' => ['list' => $list, 'count' => $count ? $count : 0]];
|
|
}
|
|
|
|
|
|
/**
|
|
* 调价单列表导出
|
|
* @param $parameter
|
|
* [
|
|
* user_type 1商户 2门店
|
|
* merchant_id
|
|
* store_id
|
|
* order_number 调价单号或者被修改订单号
|
|
* type 1初始化入库 2采购单 3采购入库 4补货入库 5其他入库
|
|
* ]
|
|
* @throws \PHPExcel_Exception
|
|
* @throws \PHPExcel_Reader_Exception
|
|
* @throws \PHPExcel_Writer_Exception
|
|
*/
|
|
public function ModifyPriceSingleListExport($parameter)
|
|
{
|
|
$result = $this->getModifyPriceSingleList($parameter);
|
|
$fileds_name = "调价单导出";
|
|
$arr = array(
|
|
array('index', '序号'),
|
|
array('operator', '操作人'),
|
|
array('add_time', '调价时间'),
|
|
array('type_name', '类型'),
|
|
array('order_number', '调价单'),
|
|
array('modify_order_number', '被修改订单'),
|
|
array('goods_species', '合计(种)'),
|
|
array('remarks', '备注'),
|
|
);
|
|
$str = $fileds_name . ',导出日期:' . date('Y-m-d H:i:s', time());
|
|
getExcel($fileds_name, $arr, $result['data']['list'], $str);
|
|
}
|
|
|
|
|
|
/**
|
|
* 调价单列表的where条件
|
|
* @param $parameter
|
|
* [
|
|
* user_type 1商户 2门店
|
|
* merchant_id
|
|
* store_id
|
|
* order_number 调价单号或者被修改订单号
|
|
* type 1初始化入库 2采购单 3采购入库 4补货入库 5其他入库
|
|
* ]
|
|
* @return mixed
|
|
*/
|
|
public function getModifyPriceSingleTerm($parameter)
|
|
{
|
|
if (!empty($parameter['order_number'])) {
|
|
$where['order_number|modify_order_number'] = ['like', "%{$parameter['order_number']}%"];
|
|
}
|
|
if (!empty($parameter['type'])) {
|
|
$where['type'] = $parameter['type'];
|
|
}
|
|
if (!empty($parameter['add_time'])) {
|
|
$parameter['add_time'] = explode(',', $parameter['add_time']);
|
|
$where['add_time'] = ['between', [strtotime($parameter['add_time'][0]), strtotime($parameter['add_time'][1])]];
|
|
}
|
|
if ($parameter['user_type'] == 2) {
|
|
$where['store_id'] = $parameter['store_id'];
|
|
}
|
|
$where['merchant_id'] = $parameter['merchant_id'];
|
|
$where['status'] = 1;
|
|
return $where;
|
|
}
|
|
|
|
|
|
/**
|
|
* 调价单列表的参数验证
|
|
* @param $parameter
|
|
* [
|
|
* user_type 1商户 2门店
|
|
* merchant_id
|
|
* store_id
|
|
* ]
|
|
* @return array
|
|
*/
|
|
public function getModifyPriceSingleVerify($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' => '登录超时'];
|
|
}
|
|
return ['status' => 1, 'message' => '验证成功'];
|
|
}
|
|
|
|
|
|
/**
|
|
* 调价单详情导出
|
|
* @param $expTitle
|
|
* @param $expCellName
|
|
* @param $expTableData
|
|
* @param array $str
|
|
* @throws \PHPExcel_Exception
|
|
* @throws \PHPExcel_Reader_Exception
|
|
* @throws \PHPExcel_Writer_Exception
|
|
*/
|
|
public function detailGetExcel($expTitle, $expCellName, $expTableData, $str = array())
|
|
{
|
|
$xlsTitle = iconv('utf-8', 'gb2312', $expTitle);//文件名称
|
|
$fileName = $expTitle . date('_YmdHis');//or $xlsTitle 文件名称可根据自己情况设定
|
|
$cellNum = count($expCellName);
|
|
$dataNum = count($expTableData);
|
|
$common = $str;
|
|
vendor("PHPExcel.PHPExcel");
|
|
ob_clean();
|
|
$objPHPExcel = new \PHPExcel();
|
|
$cellName = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ');
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('A1:' . $cellName[$cellNum - 1] . '1');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', $str[0]);
|
|
$objPHPExcel->getActiveSheet(0)->mergeCells('A2:K2');//合并单元格
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A2', $str[1]);
|
|
for ($i = 0; $i < $cellNum; $i++) {
|
|
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i] . '3', $expCellName[$i][1]);
|
|
}
|
|
for ($i = 0; $i < $dataNum; $i++) {
|
|
for ($j = 0; $j < $cellNum; $j++) {
|
|
$objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j] . ($i + 4), ' ' . $expTableData[$i][$expCellName[$j][0]]);
|
|
|
|
}
|
|
}
|
|
foreach ($cellName as $value) {
|
|
$objPHPExcel->getActiveSheet()->getColumnDimension($value)->setWidth(20);
|
|
|
|
}
|
|
header('pragma:public');
|
|
header('Content-type:application/vnd.ms-excel;charset=utf-8;name="' . $xlsTitle . '.xls"');
|
|
header("Content-Disposition:attachment;filename=$fileName.xls");//attachment新窗口打印inline本窗口打印
|
|
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
|
|
$objWriter->save('php://output');
|
|
exit();
|
|
}
|
|
} |