硕顺crm后台
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

<?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);
}
}