报销管理功能bug修改

This commit is contained in:
hdm 2021-11-24 17:01:17 +08:00
parent 2db7668b62
commit baaee849a8
7 changed files with 147 additions and 61 deletions

View File

@ -68,7 +68,7 @@ class Expense extends BaseController
{
$rows = empty($param['limit']) ? get_config('app . page_size') : $param['limit'];
$expense = ExpenseList::where($where)
->order('create_time asc')
->order('id desc')
->paginate($rows, false, ['query' => $param])
->each(function ($item, $key) {
$item->income_month = empty($item->income_month) ? '-' : date('Y-m', $item->income_month);
@ -93,19 +93,21 @@ class Expense extends BaseController
$expense['user_name'] = Db::name('Admin')->where(['id' => $expense['admin_id']])->value('name');
$expense['department'] = Db::name('Department')->where(['id' => $expense['did']])->value('title');
$expense['amount'] = Db::name('ExpenseInterfix')->where(['exid' => $expense['id']])->sum('amount');
if ($expense['check_admin_id'] > 0) {
$expense['check_admin'] = Db::name('Admin')->where(['id' => $expense['check_admin_id']])->value('name');
$expense['pay_admin'] = Db::name('Admin')->where(['id' => $expense['pay_admin_id']])->value('name');
if ($expense['check_time'] > 0) {
$expense['check_time'] = date('Y-m-d H:i:s', $expense['check_time']);
}
if ($expense['pay_admin_id'] > 0) {
$expense['pay_admin'] = Db::name('Admin')->where(['id' => $expense['pay_admin_id']])->value('name');
if ($expense['pay_time'] > 0) {
$expense['pay_time'] = date('Y-m-d H:i:s', $expense['pay_time']);
}
else{
$expense['pay_time'] = '-';
}
$expense['list'] = Db::name('ExpenseInterfix')
->field('a.*,c.title as cate_title')
->alias('a')
->join('ExpenseCate c', 'a.cate_id = c.id')
->join('ExpenseCate c', 'a.cate_id = c.id','LEFT')
->where(['a.exid' => $expense['id']])
->select();
}
@ -124,6 +126,10 @@ class Expense extends BaseController
if ($start_time > 0 && $end_time > 0) {
$where[] = ['expense_time', 'between', [$start_time, $end_time]];
}
if (isset($param['check_status']) && $param['check_status']!='') {
$where[] = ['check_status', '=', $param['check_status']];
}
$expense = $this->get_list($param, $where);
return table_assign(0, '', $expense);
} else {

View File

@ -224,10 +224,10 @@ class Invoice extends BaseController
if ($param['invoice_status'] == 2 || $param['invoice_status'] == 0) {
$param['check_time'] = time();
}
if ($param['check_status'] == 3) {
if ($param['invoice_status'] == 3) {
$param['open_time'] = time();
}
if ($param['check_status'] == 10) {
if ($param['invoice_status'] == 10) {
$param['update_time'] = time();
}
$res = InvoiceList::where('id', $param['id'])->strict(false)->field(true)->update($param);

View File

@ -38,15 +38,18 @@ class Login
}
$admin = Db::name('Admin')->where(['username' => $param['username']])->find();
if (empty($admin)) {
$admin = Db::name('Admin')->where(['mobile' => $param['username']])->find();
if (empty($admin)) {
return to_assign(1, '用户名或密码错误');
}
}
$param['pwd'] = set_password($param['password'], $admin['salt']);
if ($admin['pwd'] !== $param['pwd']) {
return to_assign(1, '用户名或密码错误');
}
if ($admin['status'] == 0) {
return to_assign(1, '该用户禁止登录,请于系统所有者联系');
if ($admin['status'] != 1) {
return to_assign(1, '该用户禁止登录,请与管理者联系');
}
$data = [
'last_login_time' => time(),
@ -68,7 +71,6 @@ class Login
{
$session_admin = get_config('app.session_admin');
Session::delete($session_admin);
//redirect('/')->send();
return to_assign(0, "退出成功");
}
}

View File

@ -143,7 +143,7 @@
<div class="layui-form-item" style="padding-top:10px;">
<input name="id" id="id" type="hidden" value="{$id}">
<button class="layui-btn" lay-submit="" lay-filter="webform">立即提交</button>
<button class="layui-btn" lay-submit="" lay-filter="webform">保存并提交审核</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</form>
@ -185,6 +185,10 @@
layer.msg('至少要保留一个报销选项');
return false;
}
layer.confirm('审核期间不能编辑修改,确定报销数据无误?', {
icon: 3,
title: '提示'
}, function(index) {
$.ajax({
url:"{:url('/home/expense/add')}",
type:'post',
@ -196,6 +200,8 @@
}
}
})
layer.close(index);
});
return false;
});

View File

@ -2,6 +2,27 @@
<!-- 主体 -->
{block name="body"}
<div class="body-content">
<form class="layui-form">
<div id="barDate" class="layui-input-inline">
<div class="layui-input-inline" style="width:110px;">
<input type="text" class="layui-input" id="start_time" placeholder="选择时间区间" readonly name="start_time">
</div>
~
<div class="layui-input-inline" style="width:110px;">
<input type="text" class="layui-input" id="end_time" placeholder="选择时间区间" readonly name="end_time">
</div>
</div>
<div class="layui-input-inline">
<select name="check_status">
<option value="">请选择状态</option>
<option value="1">未审核</option>
<option value="0">审核不通过</option>
<option value="2">审核通过</option>
<option value="3">已打款</option>
</select>
</div>
<button class="layui-btn layui-btn-danger" lay-submit="" lay-filter="webform">提交搜索</button>
</form>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>
<script type="text/html" id="toolbarDemo">
@ -18,7 +39,20 @@
function init(layui) {
var table = layui.table,
rightpage = layui.rightpage,
form = layui.form;
form = layui.form,
laydate = layui.laydate;
//日期范围
laydate.render({
elem: '#barDate',
range: ['#start_time', '#end_time']
});
//监听搜索提交
form.on('submit(webform)', function(data){
let f=data.field;
tableIns.reload({where:{check_status:f.check_status,start_time:f.start_time,end_time:f.end_time},page:{curr:1}});
return false;
});
var tableIns = table.render({
elem: '#test',
@ -38,6 +72,7 @@
field: 'amount',
title: '报销总金额(元)',
align: 'right',
style: 'color:#1E9FFF',
width: 120,
},{
field: 'admin_name',
@ -69,20 +104,20 @@
align: 'center',
width: 150
},{
field: 'status',
field: 'check_status',
title: '状态',
align: 'center',
width: 120,
templet:function(d){
var html='<span style="color:#FF5722">审核不通过</span>';
if(d.check_status==1){
html='<span style="color:#393D49">报销审核中</span>';
html='<span style="color:#5FB878">报销审核中</span>';
}
else if(d.check_status==2){
html='<span style="color:#5FB878">审核通过</span>';
html='<span style="color:#1E9FFF">审核通过</span>';
}
else if(d.check_status==3){
html='<span style="color:#009688">已打款</span>';
html='<span style="color:#FFB800">已打款</span>';
}
return html;
}
@ -90,7 +125,7 @@
field: 'check_name',
title: '审核人',
align: 'center',
width: 100
width: 90
},{
field: 'check_time',
title: '审核时间',
@ -98,9 +133,9 @@
width: 150
},{
field: 'pay_name',
title: '打款确认人',
title: '打款人',
align: 'center',
width: 100
width: 90
},{
field: 'pay_time',
title: '打款确认时间',
@ -117,11 +152,9 @@
var btn1='<span class="layui-btn layui-btn-normal layui-btn-xs" lay-event="view">详情</span>';
var btn2='<span class="layui-btn layui-btn-xs" lay-event="edit">编辑</span>';
var btn3='<span class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</span>';
if(d.admin_id==login_user){
html+=btn1+btn2+btn3;
}
else{
html+=btn1+btn3;
html+=btn1;
if(d.check_status==0 && d.admin_id==login_user){
html+=btn2+btn3;
}
html+='</div>';
return html;

View File

@ -32,27 +32,32 @@
{if condition="$expense.check_status == 0"}
<span style="color:#FF5722">审核不通过 【原因:{$expense.check_remark}】</span>
{elseif condition="$expense.check_status == 1"}
<span style="color:#393D49">报销审核中</span>
<span style="color:#FFB800">报销审核中</span>
{elseif condition="$expense.check_status == 2"}
<span style="color:#5FB878">审核通过</span>
<span style="color:#1E9FFF">审核通过</span>
{elseif condition="$expense.check_status == 3"}
<span style="color:#009688">已打款</span>
{/if}
</td>
</tr>
{if condition="$expense.check_admin_id > 0"}
{if condition="$expense.check_time > 0"}
<tr>
<td class="layui-td-gray2">审核人</td>
<td>{$expense.check_admin}</td>
<td class="layui-td-gray2">审核时间</td>
<td colspan="3">{$expense.check_time}</td>
</tr>
{else/}
<tr>
<td class="layui-td-gray2">审核人</td>
<td colspan="5">{$expense.check_admin}</td>
</tr>
{/if}
{if condition="$expense.pay_admin_id > 0"}
<tr>
<td class="layui-td-gray2">打款确认人</td>
<td class="layui-td-gray2">打款人</td>
<td>{$expense.pay_admin}</td>
<td class="layui-td-gray2">打款确认时间</td>
<td class="layui-td-gray2">打款时间</td>
<td colspan="3">{$expense.pay_time}</td>
</tr>
{/if}
@ -77,16 +82,31 @@
</div>
</td>
</tr>
{if condition="($expense.check_status == 1) AND ($uid == $expense.check_admin_id)"}
<tr>
<td class="layui-td-gray">选择打款人<span style="color: red">*</span></td>
<td>
<form class="layui-form">
<select name="pay_admin_id">
<option value="">请选择报销打款人</option>
{volist name=":get_check_user(2)" id="vo"}
<option value="{$vo.uid}">{$vo.user}</option>
{/volist}
</select>
</form>
</td>
<td colspan="4">
<button class="layui-btn layui-btn-danger" lay-event="checkno">审核不通过</button>
<button class="layui-btn" lay-event="checkok">审核通过</button>
</td>
</tr>
{/if}
</table>
<div class="layui-form-item" style="padding-top:10px;">
<input name="id" id="id" type="hidden" value="{$expense.id}">
{if condition="($expense.check_status == 0) AND ($uid == $expense.admin_id)"}
<a class="layui-btn" href="/home/expense/add?id={$expense.id}">编辑</a>
{/if}
{if condition="($expense.check_status == 1) AND ($uid == $expense.check_admin_id)"}
<button class="layui-btn layui-btn-danger" lay-event="checkno">审核不通过</button>
<button class="layui-btn" lay-event="checkok">审核通过</button>
{/if}
{if condition="($expense.check_status == 2) AND ($uid == $expense.pay_admin_id)"}
<button class="layui-btn" lay-event="payed">打款确认</button>
{/if}
@ -101,10 +121,15 @@
function init(layui) {
$('.body-content').on('click', '[lay-event="checkok"]', function () {
var id=$('#id').val();
var pay_admin=$('[name="pay_admin_id"]').val();
if(pay_admin == ''){
layer.msg('请选择报销打款人');
return false;
}
layer.confirm('确定审核通过该报销申请?', {icon: 3, title:'提示'}, function(index){
$.ajax({
url:"{:url('home/expense/check')}",
data:{id:id,check_status:2},
data:{id:id,check_status:2,pay_admin_id:pay_admin},
success:function(res){
layer.msg(res.msg);
if(res.code==0){
@ -120,7 +145,7 @@ function init(layui) {
$('.body-content').on('click', '[lay-event="checkno"]', function () {
var id=$('#id').val();
layer.confirm('确定拒绝该提现申请?', {icon: 3, title:'提示'}, function(index){
layer.confirm('确定拒绝该报销申请?', {icon: 3, title:'提示'}, function(index){
layer.prompt({title: '拒绝的理由', formType: 3,value :''}, function(text, index){
if(text ==''){
layer.msg('请输入拒绝的理由');

View File

@ -61,9 +61,23 @@
<tr>
<td class="layui-td-gray">发票状态</td>
<td colspan="5">
{if condition="($detail.check_time == 0)"}
{elseif condition="($detail.check_time == 1)"}
{if condition="($detail.invoice_status == 0)"}
<span style="color:#FF5722">审核不通过</span>
{elseif condition="($detail.invoice_status == 1)"}
<span style="color:#009688">审核中</span>
{elseif condition="($detail.invoice_status == 2)"}
<span style="color:#1E9FFF">审核通过</span>
{elseif condition="($detail.invoice_status == 3)"}
<span style="color:#009688">待开具</span>
{elseif condition="($detail.invoice_status == 4)"}
<span style="color:#1E9FFF">已开具</span>
{elseif condition="($detail.invoice_status == 5)"}
<span style="color:#009688">部分到账</span>
{elseif condition="($detail.invoice_status == 5)"}
<span style="color:#1E9FFF">全部到账</span>
{elseif condition="($detail.invoice_status == 10)"}
<span style="color:#FF5722">已作废</span>
{/if}
</td>
</tr>
<tr>
@ -101,10 +115,10 @@
function init(layui) {
$('.body-content').on('click', '[lay-event="checkok"]', function () {
var id=$('#id').val();
layer.confirm('确定审核通过该报销申请?', {icon: 3, title:'提示'}, function(index){
layer.confirm('确定审核通过该发票申请?', {icon: 3, title:'提示'}, function(index){
$.ajax({
url:"{:url('home/expense/check')}",
data:{id:id,check_status:2},
url:"{:url('home/invoice/check')}",
data:{id:id,invoice_status:2},
success:function(res){
layer.msg(res.msg);
if(res.code==0){
@ -120,15 +134,15 @@ function init(layui) {
$('.body-content').on('click', '[lay-event="checkno"]', function () {
var id=$('#id').val();
layer.confirm('确定拒绝该提现申请?', {icon: 3, title:'提示'}, function(index){
layer.confirm('确定拒绝该发票申请?', {icon: 3, title:'提示'}, function(index){
layer.prompt({title: '拒绝的理由', formType: 3,value :''}, function(text, index){
if(text ==''){
layer.msg('请输入拒绝的理由');
return false;
}
$.ajax({
url:"{:url('home/expense/check')}",
data:{id:id,check_status:0,check_remark:text},
url:"{:url('home/invoice/check')}",
data:{id:id,invoice_status:0,check_remark:text},
success:function(res){
layer.msg(res.msg);
if(res.code==0){
@ -145,10 +159,10 @@ function init(layui) {
$('.body-content').on('click', '[lay-event="payed"]', function () {
var id=$('#id').val();
layer.confirm('确定已经打款?', {icon: 3, title:'提示'}, function(index){
layer.confirm('确定已经开具发票?', {icon: 3, title:'提示'}, function(index){
$.ajax({
url:"{:url('home/expense/check')}",
data:{id:id,check_status:3},
url:"{:url('home/invoice/check')}",
data:{id:id,invoice_status:3},
success:function(res){
layer.msg(res.msg);
if(res.code==0){