You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
112 lines
3.1 KiB
112 lines
3.1 KiB
<?php
|
|
|
|
namespace addons\qingdong\controller;
|
|
|
|
use addons\qingdong\model\Message;
|
|
use addons\qingdong\model\ReceivablesPlan as ReceivablesPlanModel;
|
|
use addons\qingdong\model\Staff;
|
|
use think\Db;
|
|
use think\Exception;
|
|
|
|
/**
|
|
* 回款计划
|
|
*/
|
|
class ReceivablesPlan extends StaffApi {
|
|
protected $noNeedLogin = [];
|
|
protected $noNeedRight = [];
|
|
|
|
|
|
//新增回款计划
|
|
public function addPlan() {
|
|
$params = $this->request->post();
|
|
|
|
// 表单验证
|
|
if (($result = $this->qingdongValidate($params, get_class(), 'create')) !== true) {
|
|
$this->error($result);
|
|
}
|
|
if (ReceivablesPlanModel::where([
|
|
'num' => $params['num'],
|
|
'contract_id' => $params['contract_id']
|
|
])->find()) {
|
|
$this->error('计划回款期数已存在');
|
|
}
|
|
|
|
Db::startTrans();
|
|
try {
|
|
ReceivablesPlanModel::createPlan($params);
|
|
|
|
Db::commit();
|
|
} catch (Exception $e) {
|
|
Db::rollback();
|
|
$this->error($e->getMessage());
|
|
}
|
|
if ($result) {
|
|
$this->success('新增回款计划成功');
|
|
}
|
|
}
|
|
|
|
|
|
//获取回款计划列表
|
|
public function getList()
|
|
{
|
|
$customer_id = input('customer_id');
|
|
$contract_id = input('contract_id');
|
|
$times = input('times');
|
|
$staff_id = input('staff_id');
|
|
$status = input('status', null);
|
|
$limit = input('limit');
|
|
$type = input('type',0);
|
|
$where = [];
|
|
if ($customer_id) {
|
|
$where['customer_id'] = $customer_id;
|
|
}
|
|
if ($contract_id) {
|
|
$where['contract_id'] = $contract_id;
|
|
}
|
|
if ($staff_id) {
|
|
$where['owner_staff_id'] = $staff_id;
|
|
} else {
|
|
|
|
if ($type == 1) {//我的客户
|
|
$where['owner_staff_id'] = $this->auth->id;
|
|
} elseif ($type == 2) {//下属负责的客户
|
|
$where['owner_staff_id'] = ['in', Staff::getLowerStaffId()];
|
|
}else{
|
|
$where['owner_staff_id'] = ['in', Staff::getMyStaffIds()];
|
|
}
|
|
|
|
}
|
|
if ($times) {//计划回款日期
|
|
$times = explode(',', $times);
|
|
$where['return_date'] = ['between', [$times[0], $times[1]]];
|
|
}
|
|
if($status !== null){
|
|
$where['status'] = $status;
|
|
}
|
|
|
|
$list = ReceivablesPlanModel::where($where)->with(['contract', 'customer', 'createStaff'])
|
|
->order('id desc')->paginate($limit);
|
|
$this->success('请求成功', $list);
|
|
}
|
|
|
|
|
|
//获取select回款计划列表
|
|
public function getSelectList() {
|
|
$contract_id = input('contract_id');
|
|
$where = [];
|
|
$where['contract_id'] = $contract_id;
|
|
$where['status'] = 0;
|
|
$list = ReceivablesPlanModel::where($where)->field('id,num')->select();
|
|
$this->success('请求成功', $list);
|
|
}
|
|
|
|
|
|
//回款详情
|
|
public function getDetail() {
|
|
$id = input('id');
|
|
$customer = ReceivablesPlanModel::where(['id' => $id])->with(['contract', 'customer', 'createStaff'])->find();
|
|
//标记通知已读
|
|
Message::setRead(Message::PLAN_TYPE, $id, $this->auth->id);
|
|
$this->success('请求成功', $customer);
|
|
}
|
|
}
|
|
|