311 行
9.7 KiB
PHP
可执行文件
311 行
9.7 KiB
PHP
可执行文件
<?php
|
|
|
|
namespace Common\Business;
|
|
|
|
use Common\Model\JurisdictionUserModel;
|
|
use Common\Model\PurchasePayableModel;
|
|
use Common\Model\SPurchasePayableModel;
|
|
use Common\Model\SSupplierModel;
|
|
use Common\Model\SupplierModel;
|
|
|
|
//[1.6.9]
|
|
|
|
/**
|
|
* 采购应付款类
|
|
* Class PurchasePayable
|
|
* [
|
|
* 修改订单应付款金额 modifyOrderMoney
|
|
* 采购应付款统计 payableTotal
|
|
* 采购应付款列表 payableList
|
|
* 采购应付款导出 payableListExport
|
|
* 采购应付款列表的where查询条件 payableListTerm
|
|
* 采购应付款列表的参数验证 payableListVerify
|
|
* ]
|
|
* @package Common\Business
|
|
*/
|
|
class PurchasePayable
|
|
{
|
|
/**
|
|
*修改订单应付款金额
|
|
* @param $parameter
|
|
* [
|
|
* supplier_type 1常规供货商 2寄售供货商
|
|
* user_type 1商户 2门店
|
|
* merchant_id
|
|
* store_id
|
|
* payable_money 应付金额
|
|
* purchase_order_id 采购单id
|
|
* ]
|
|
* @return array
|
|
* [
|
|
* status
|
|
* message
|
|
* ]
|
|
*/
|
|
public function modifyOrderMoney($parameter)
|
|
{
|
|
$where = [
|
|
'merchant_id' => $parameter['merchant_id'],
|
|
'purchase_order_id' => $parameter['purchase_order_id'],
|
|
];
|
|
switch ($parameter['user_type']) {
|
|
case 1:
|
|
$payableModel = new PurchasePayableModel();
|
|
break;
|
|
case 2:
|
|
$payableModel = new SPurchasePayableModel();
|
|
$where['store_id'] = $parameter['store_id'];
|
|
break;
|
|
}
|
|
try {
|
|
if ($parameter['payable_money'] > 0) {
|
|
$save = $payableModel->updateSetInc($where, "payable_money", $parameter['payable_money']);
|
|
} else {
|
|
$parameter['payable_money'] = abs($parameter['payable_money']);
|
|
$save = $payableModel->updateSetDec($where, "payable_money", $parameter['payable_money']);
|
|
}
|
|
if ($save) {
|
|
return ['status' => 1, 'message' => '修改成功'];
|
|
} else {
|
|
return ['status' => 0, 'message' => '暂无修改'];
|
|
}
|
|
} catch (\Exception $e) {
|
|
return ['status' => 0, 'message' => '暂无修改'];
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* 采购应付款统计
|
|
* @param $parameter
|
|
* [
|
|
* user_type 1商户 2门店
|
|
* merchant_id
|
|
* store_id
|
|
* order_number 批次号
|
|
* supplier_id 供货商id
|
|
* pay_status pay_status
|
|
* add_time 时间
|
|
* ]
|
|
* @return array
|
|
* [
|
|
* status
|
|
* message
|
|
* data=>[
|
|
* list 列表
|
|
* count 条数
|
|
* ]
|
|
* ]
|
|
*/
|
|
public function payableTotal($parameter)
|
|
{
|
|
$verify = $this->payableListVerify($parameter); //参数验证
|
|
if ($verify['status'] != 1) {
|
|
return $verify;
|
|
}
|
|
$where = $this->payableListTerm($parameter); //查询条件
|
|
switch ($parameter['user_type']) {
|
|
case 1:
|
|
//商户
|
|
$payableModel = new PurchasePayableModel();
|
|
break;
|
|
case 2:
|
|
//门店
|
|
$payableModel = new SPurchasePayableModel();
|
|
break;
|
|
}
|
|
$list = $payableModel->getSelect($where, '', '', "payable_money,paid_money");
|
|
$payable_money = 0; //应付
|
|
$paid_money = 0; //已付
|
|
$stay_money = 0; //待付
|
|
if ($list) {
|
|
foreach ($list as $val) {
|
|
$payable_money += $val['payable_money'];
|
|
$paid_money += $val['paid_money'];
|
|
}
|
|
$stay_money = round($payable_money - $paid_money, 2);
|
|
}
|
|
$TotalList = [
|
|
[
|
|
'payable_money' => $payable_money,
|
|
'paid_money' => $paid_money,
|
|
'stay_money' => $stay_money
|
|
]
|
|
];
|
|
return callBack(statusCode()['success'], "查询成功", ['TotalList' => $TotalList]);
|
|
}
|
|
|
|
|
|
/**
|
|
* 采购应付款列表
|
|
* @param $parameter
|
|
* [
|
|
* user_type 1商户 2门店
|
|
* merchant_id
|
|
* store_id
|
|
* order_number 批次号
|
|
* supplier_id 供货商id
|
|
* pay_status pay_status
|
|
* add_time 时间
|
|
* ]
|
|
* @return array
|
|
* [
|
|
* status
|
|
* message
|
|
* data=>[
|
|
* list 列表
|
|
* count 条数
|
|
* ]
|
|
* ]
|
|
*/
|
|
public function payableList($parameter)
|
|
{
|
|
$verify = $this->payableListVerify($parameter); //参数验证
|
|
if ($verify['status'] != 1) {
|
|
return $verify;
|
|
}
|
|
$page = $parameter['page'] ? $parameter['page'] : '';
|
|
$limit = $parameter['limit'] ? $parameter['limit'] : '';
|
|
$where = $this->payableListTerm($parameter); //查询条件
|
|
switch ($parameter['user_type']) {
|
|
case 1:
|
|
//商户
|
|
$payableModel = new PurchasePayableModel();
|
|
$SupplierModel = new SupplierModel();
|
|
break;
|
|
case 2:
|
|
//门店
|
|
$payableModel = new SPurchasePayableModel();
|
|
$SupplierModel = new SSupplierModel();
|
|
break;
|
|
}
|
|
$list = $payableModel->getSelect($where, $page, $limit, "*");
|
|
if ($list) {
|
|
$JurisdictionUserModel = new JurisdictionUserModel();
|
|
$count = $payableModel->getCount($where);
|
|
foreach ($list as $key => &$val) {
|
|
$val['index'] = $key + 1;
|
|
$val['purchase_time'] = date("Y-m-d H:i:s", $val['purchase_time']);
|
|
$val['payable_money'] = round($val['payable_money'], 2);
|
|
$val['paid_money'] = round($val['paid_money'], 2);
|
|
$val['stay_money'] = round($val['payable_money'] - $val['paid_money'], 2);
|
|
$val['supplier_name'] = $SupplierModel->getFindField(array('id' => $val['supplier_id']), "supplier_name");
|
|
$val['operator'] = $JurisdictionUserModel->getFind(['id' => $val['operator_id']])['name'];
|
|
if ($val['paid_money'] == 0) {
|
|
$val['pay_name'] = "待付款";
|
|
} else if ($val['paid_money'] < $val['payable_money']) {
|
|
$val['pay_name'] = "部分付款";
|
|
} else if ($val['paid_money'] >= $val['payable_money']) {
|
|
$val['pay_name'] = "已付款";
|
|
}
|
|
}
|
|
}
|
|
return callBack(statusCode()['success'], "查询成功", ['list' => $list, 'count' => $count ? $count : 0]);
|
|
}
|
|
|
|
|
|
/**
|
|
* 采购应付款导出
|
|
* @param $parameter
|
|
* @throws \PHPExcel_Exception
|
|
* @throws \PHPExcel_Reader_Exception
|
|
* @throws \PHPExcel_Writer_Exception
|
|
*/
|
|
public function payableListExport($parameter)
|
|
{
|
|
$result = $this->payableList($parameter);
|
|
$fileds_name = "采购应付款导出";
|
|
$arr = array(
|
|
array('index', "序号"),
|
|
array('supplier_name', "供货商"),
|
|
array("purchase_order_number", "批次号"),
|
|
array("operator", "操作人"),
|
|
array("purchase_time", "采购时间"),
|
|
array("payable_money", "应付金额"),
|
|
array("paid_money", "已付金额"),
|
|
array("stay_money", "待付金额"),
|
|
array("pay_name", "付款状态"),
|
|
);
|
|
$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 批次号
|
|
* supplier_id 供货商id
|
|
* pay_status pay_status
|
|
* add_time 时间
|
|
* ]
|
|
* @return mixed
|
|
*/
|
|
public function payableListTerm($parameter)
|
|
{
|
|
if (!empty($parameter['order_number'])) {
|
|
$where['purchase_order_number'] = array('like', '%' . $parameter['order_number'] . "%");
|
|
}
|
|
if (!empty($parameter['supplier_id'])) {
|
|
$where['supplier_id'] = $parameter['supplier_id'];
|
|
}
|
|
switch ($parameter['pay_status']) {
|
|
case 1:
|
|
//待付款
|
|
$where['paid_money'] = 0;
|
|
break;
|
|
case 2:
|
|
//部分付款
|
|
$where['paid_money'] = ['gt', 0];
|
|
$where['_string'] = "paid_money < payable_money";
|
|
break;
|
|
case 3:
|
|
//已付款
|
|
$where['_string'] = "paid_money >= payable_money";
|
|
break;
|
|
}
|
|
if (!empty($parameter['add_time'])) {
|
|
if (!is_array($parameter['add_time'])) {
|
|
$parameter['add_time'] = explode(',', $parameter['add_time']);
|
|
}
|
|
$start_time = strtotime($parameter['add_time'][0]);
|
|
$end_time = strtotime($parameter['add_time'][1]);
|
|
$where['purchase_time'] = array('between', array($start_time, $end_time));
|
|
}
|
|
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
|
|
* ]
|
|
* @return array
|
|
* [
|
|
* status
|
|
* message
|
|
* ]
|
|
*/
|
|
public function payableListVerify($parameter)
|
|
{
|
|
if (!in_array($parameter['user_type'], [1, 2])) {
|
|
return callBack(statusCode()['error'], "未知请求源");
|
|
}
|
|
if (empty($parameter['merchant_id']) || ($parameter['user_type'] == 2 && empty($parameter['store_id']))) {
|
|
return callBack(statusCode()['error'], "参数缺少");
|
|
}
|
|
return callBack(statusCode()['success'], "验证成功");
|
|
}
|
|
} |