316 行
11 KiB
PHP
可执行文件
316 行
11 KiB
PHP
可执行文件
<?php
|
|
|
|
namespace Common\Business;
|
|
|
|
use Api\Controller\InventoryController;
|
|
use Common\Model\PurchaseGoodsModel;
|
|
use Common\Model\PurchaseOrderModel;
|
|
use Common\Model\PurchasePayableModel;
|
|
use Common\Model\PurchaseWarehouseModel;
|
|
use Common\Model\RetailSupplierModel;
|
|
use Common\Model\SPurchaseGoodsModel;
|
|
use Common\Model\SPurchaseOrderModel;
|
|
use Common\Model\SPurchasePayableModel;
|
|
use Common\Model\SPurchaseWarehouseModel;
|
|
use Common\Model\SSupplierModel;
|
|
|
|
//[1.7.90]
|
|
|
|
/**
|
|
* 采购单类
|
|
* Class PurchaseOrder
|
|
* [
|
|
* 采购单金额统计 orderTotal
|
|
* 采购单列表 orderList
|
|
* 采购单列表的查询条件 orderListTerm
|
|
* 修改采购单金额 modifyPurchaseOrderMoney
|
|
* 修改采购单金额参数验证 modifyPurchaseOrderMoneyVerify
|
|
* ]
|
|
* @package Common\Business
|
|
*/
|
|
class PurchaseOrder
|
|
{
|
|
/**
|
|
* 采购单金额统计
|
|
* @param $param
|
|
* [
|
|
* operator_type 1后台 2收银端 3助手端
|
|
* user_type 3商户 4门店
|
|
* merchant_id
|
|
* store_id
|
|
* order_number 订单号
|
|
* supplier_id 供货商id
|
|
* warehouse_id 仓库id
|
|
* add_time 后台时间搜索
|
|
* type 1常规采购单 2补采购单
|
|
* showPrice 1可以查看金额 2不可以查看金额
|
|
* identity 身份1商户 2门店
|
|
* ]
|
|
* @return mixed
|
|
*/
|
|
public function orderTotal($param)
|
|
{
|
|
$where = $this->orderListTerm($param); //查询条件
|
|
try {
|
|
switch ($param['user_type']) {
|
|
case 3:
|
|
$PurchaseOrderModel = new PurchaseOrderModel();
|
|
break;
|
|
case 4:
|
|
$PurchaseOrderModel = new SPurchaseOrderModel();
|
|
break;
|
|
}
|
|
$orderCount = $PurchaseOrderModel->getCount($where);
|
|
$orderCount = $orderCount ? $orderCount : 0;
|
|
$goodsCount = $PurchaseOrderModel->getSum($where, "goods_species");
|
|
$goodsCount = $goodsCount ? $goodsCount : 0;
|
|
if ($param['user_type'] == 3 || ($param['showPrice'] != 2 || $param['identity'] == 1)) {
|
|
$totalMoney = $PurchaseOrderModel->getSum($where, "money_total");
|
|
$totalMoney = $totalMoney ? round($totalMoney, 2) : 0;
|
|
} else {
|
|
$totalMoney = '***';
|
|
}
|
|
$TotalList = [
|
|
'orderCount' => $orderCount,
|
|
'goodsCount' => $goodsCount,
|
|
'totalMoney' => $totalMoney
|
|
];
|
|
return callBack(statusCode()['success'], '查询成功', [$TotalList]);
|
|
} catch (\Exception $e) {
|
|
return callBack(statusCode()['success'], '查询成功', [
|
|
[
|
|
'orderCount' => 0,
|
|
'goodsCount' => 0,
|
|
'totalMoney' => 0,
|
|
]
|
|
]);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* 采购单列表
|
|
* @param $param
|
|
* [
|
|
* operator_type 1后台 2收银端 3助手端
|
|
* user_type 3商户 4门店
|
|
* order_number 订单号
|
|
* supplier_id 供货商id
|
|
* warehouse_id 仓库id
|
|
* add_time 后台时间搜索
|
|
* start_time 助手开始时间
|
|
* end_time 助手结束时间
|
|
* type 1常规采购单 2补采购单
|
|
* showPrice 1可以查看金额 2不可以查看金额
|
|
* identity 身份1商户 2门店
|
|
* page
|
|
* limit
|
|
* ]
|
|
* @return mixed
|
|
*/
|
|
public function orderList($param)
|
|
{
|
|
$where = $this->orderListTerm($param); //查询条件
|
|
switch ($param['user_type']) {
|
|
case 3:
|
|
$PurchaseOrderModel = new PurchaseOrderModel();
|
|
$SupplierModel = new RetailSupplierModel();
|
|
$PurchaseWarehouseModel = new PurchaseWarehouseModel();
|
|
$PurchaseGoodsModel = new PurchaseGoodsModel();
|
|
$PurchasePayableModel = new PurchasePayableModel();
|
|
break;
|
|
case 4:
|
|
$PurchaseOrderModel = new SPurchaseOrderModel();
|
|
$SupplierModel = new SSupplierModel();
|
|
$PurchaseWarehouseModel = new SPurchaseWarehouseModel();
|
|
$PurchaseGoodsModel = new SPurchaseGoodsModel();
|
|
$PurchasePayableModel = new SPurchasePayableModel();
|
|
break;
|
|
}
|
|
$list = $PurchaseOrderModel->getSelect($where, $param['page'], $param['limit'], "*", "id desc");
|
|
if (!empty($list)) {
|
|
if ($param['operator_type'] == 1) {
|
|
$count = $PurchaseOrderModel->getCount($where);
|
|
}
|
|
$InventoryClass = new InventoryController();
|
|
foreach ($list as $key => &$val) {
|
|
$val['index'] = $key + 1;
|
|
$val['operator'] = $InventoryClass->OperatorName($val['operator_id']);
|
|
$val['add_time'] = date('Y-m-d H:i:s', $val['add_time']);
|
|
$val['repair_time'] = date('Y-m-d H:i:s', $val['repair_time']);
|
|
$val['supplier'] = $SupplierModel->getFindField(array('id' => $val['supplier_id']), "supplier_name");
|
|
$val['warehouse'] = $PurchaseWarehouseModel->getFindField(array('id' => $val['warehouse_id']), "name");
|
|
$val['goods_species'] = $val['goods_species'] . "种";
|
|
if ($val['type'] == 1) {
|
|
$val['type_name'] = "常规采购单";
|
|
} else {
|
|
$val['type_name'] = "补采购单";
|
|
}
|
|
$goodsNum = $PurchaseGoodsModel->getSum(array('purchase_order_id' => $val['id']), "surplus_num");
|
|
$goodsNum = $goodsNum ? $goodsNum : 0;
|
|
if ($goodsNum > 0) {
|
|
$val['warehouse_state'] = 0;
|
|
} else {
|
|
$val['warehouse_state'] = 1;
|
|
}
|
|
if ($param['user_type'] == 3 || ($param['showPrice'] != 2 || $param['identity'] == 1)) {
|
|
$val['money_total'] = round($val['money_total'], 2);
|
|
} else {
|
|
$val['money_total'] = '***';
|
|
}
|
|
//判断是否可编辑
|
|
$val["pay_status"] = $PurchasePayableModel->getFindField(array('purchase_order_id' => $val['id']), "pay_status");
|
|
}
|
|
}
|
|
return callBack(statusCode()['success'], '查询成功', [
|
|
'list' => $list ? $list : [],
|
|
'count' => $count ? $count : 0
|
|
]);
|
|
}
|
|
|
|
|
|
/**
|
|
* 采购单列表的查询条件
|
|
* @param $param
|
|
* [
|
|
* operator_type 1后台 2收银端 3助手端
|
|
* user_type 3商户 4门店
|
|
* merchant_id
|
|
* store_id
|
|
* order_number 订单号
|
|
* supplier_id 供货商id
|
|
* warehouse_id 仓库id
|
|
* add_time 后台时间搜索
|
|
* start_time 助手开始时间
|
|
* end_time 助手结束时间
|
|
* type 1常规采购单 2补采购单
|
|
* ]
|
|
* @return mixed
|
|
*/
|
|
public function orderListTerm($param)
|
|
{
|
|
if (!empty($param['type'])) {
|
|
$where['type'] = $param['type'];
|
|
}
|
|
if (!empty($param['order_number'])) {
|
|
$where['order_number'] = array('like', '%' . $param['order_number'] . '%');
|
|
}
|
|
if (!empty($param['supplier_id'])) {
|
|
$where['supplier_id'] = $param['supplier_id'];
|
|
}
|
|
if (!empty($param['warehouse_id'])) {
|
|
$where['warehouse_id'] = $param['warehouse_id'];
|
|
}
|
|
switch ($param['operator_type']) {
|
|
case 1:
|
|
if (!empty($param['add_time'])) {
|
|
$start_time = strtotime($param['add_time'][0]);
|
|
$end_time = strtotime($param['add_time'][1]);
|
|
$where['add_time'] = array('between', array($start_time, $end_time));
|
|
}
|
|
break;
|
|
case 3:
|
|
$start_time = $param['start_time'];
|
|
$end_time = $param['end_time'];
|
|
if (!empty($start_time) && !empty($end_time)) {
|
|
$start_time = strtotime($start_time . "00:00:00");
|
|
$end_time = strtotime($end_time . "23:59:59");
|
|
$where['add_time'] = array('between', array($start_time, $end_time));
|
|
} else if (!empty($start_time)) {
|
|
$start_time = strtotime($start_time . "00:00:00");
|
|
$where['add_time'] = array('gt', $start_time);
|
|
} else if (!empty($end_time)) {
|
|
$end_time = strtotime($end_time . "23:59:59");
|
|
$where['add_time'] = array('lt', $end_time);
|
|
}
|
|
break;
|
|
}
|
|
if ($param['user_type'] == 4) {
|
|
$where['store_id'] = $param['store_id'];
|
|
}
|
|
$where['merchant_id'] = $param['merchant_id'];
|
|
$where['status'] = 1;
|
|
return $where;
|
|
}
|
|
|
|
|
|
/**
|
|
* 修改采购单金额
|
|
* @param $parameter
|
|
* [
|
|
* user_type 1商户 2门店
|
|
* merchant_id
|
|
* store_id
|
|
* id 采购单id
|
|
* money_total 金额
|
|
* ]
|
|
* @return array
|
|
* [
|
|
* status
|
|
* message
|
|
* ]
|
|
*/
|
|
public function modifyPurchaseOrderMoney($parameter)
|
|
{
|
|
$verify = $this->modifyPurchaseOrderMoneyVerify($parameter); //参数验证
|
|
if ($verify['status'] != 1) {
|
|
return $verify;
|
|
}
|
|
switch ($parameter['user_type']) {
|
|
case 1:
|
|
//商户
|
|
$PurchaseOrderModel = new PurchaseOrderModel();
|
|
break;
|
|
case 2:
|
|
//门店
|
|
$PurchaseOrderModel = new SPurchaseOrderModel();
|
|
break;
|
|
}
|
|
try {
|
|
if ($parameter['money_total'] > 0) {
|
|
$PurchaseOrderModel->updateSetInc([
|
|
'id' => $parameter['id']
|
|
], "money_total", $parameter['money_total']);
|
|
} else {
|
|
$parameter['money_total'] = abs($parameter['money_total']);
|
|
$PurchaseOrderModel->updateSetDec([
|
|
'id' => $parameter['id']
|
|
], "money_total", $parameter['money_total']);
|
|
}
|
|
return ['status' => 1, 'message' => '修改成功'];
|
|
} catch (\Exception $e) {
|
|
return ['status' => 0, 'message' => '修改失败'];
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* 修改采购单金额参数验证
|
|
* @param $parameter
|
|
* [
|
|
* user_type 1商户 2门店
|
|
* merchant_id
|
|
* store_id
|
|
* id 采购单id
|
|
* money_total 金额
|
|
* ]
|
|
* @return array
|
|
* [
|
|
* status
|
|
* message
|
|
* ]
|
|
*/
|
|
public function modifyPurchaseOrderMoneyVerify($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['id']) || empty($parameter['money_total'])) {
|
|
return ['status' => 0, 'message' => '缺少必要参数'];
|
|
}
|
|
return ['status' => 1, 'message' => '缺少必要参数'];
|
|
}
|
|
} |