From 8a89885779f36392507914898ee1265183b8ea64 Mon Sep 17 00:00:00 2001 From: hdm Date: Fri, 7 Oct 2022 00:35:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8F=91=E7=A5=A8=E5=85=B3?= =?UTF-8?q?=E8=81=94=E5=90=88=E5=90=8C=E5=8D=8F=E8=AE=AE=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/contract/controller/Api.php | 15 ++++++ app/finance/model/Invoice.php | 6 +++ app/finance/view/expense/add.html | 10 ++-- app/finance/view/invoice/add.html | 73 ++++++++++++++++++++++++++++-- app/finance/view/invoice/view.html | 6 +++ 5 files changed, 100 insertions(+), 10 deletions(-) diff --git a/app/contract/controller/Api.php b/app/contract/controller/Api.php index 0a8a0ef..580e8e6 100644 --- a/app/contract/controller/Api.php +++ b/app/contract/controller/Api.php @@ -19,15 +19,30 @@ class Api extends BaseController { $param = get_params(); $where = array(); + $whereOr = array(); if (!empty($param['keywords'])) { $where[] = ['id|name', 'like', '%' . $param['keywords'] . '%']; } $where[] = ['delete_time', '=', 0]; + $where[] = ['check_status', '=', 2]; + $uid = $this->uid; + $auth = isAuth($uid,'contract'); + if($auth==0){ + $whereOr[] =['admin_id|prepared_uid|sign_uid|keeper_uid', '=', $uid]; + $whereOr[] = ['', 'exp', Db::raw("FIND_IN_SET('{$uid}',share_ids)")]; + $dids = get_department_role($this->uid); + if(!empty($dids)){ + $whereOr[] =['sign_did', 'in', $dids]; + } + } $rows = empty($param['limit']) ? get_config('app.page_size') : $param['limit']; $list = Db::name('Contract') ->field('id,name,sign_uid,sign_time') ->order('end_time asc') ->where($where) + ->where(function ($query) use($whereOr) { + $query->whereOr($whereOr); + }) ->paginate($rows, false)->each(function($item, $key){ $item['sign_name'] = Db::name('Admin')->where('id',$item['sign_uid'])->value('name'); $item['sign_time'] = date('Y-m-d', $item['sign_time']); diff --git a/app/finance/model/Invoice.php b/app/finance/model/Invoice.php index dfd1aff..0a6d3a9 100644 --- a/app/finance/model/Invoice.php +++ b/app/finance/model/Invoice.php @@ -93,6 +93,12 @@ class Invoice extends Model $detail['open_time'] = '-'; $detail['open_admin'] = '-'; } + if ($detail['contract_id'] > 0) { + $detail['contract_name'] = Db::name('Contract')->where(['id' => $detail['contract_id']])->value('name'); + } + else{ + $detail['contract_name'] = ''; + } } return $detail; } diff --git a/app/finance/view/expense/add.html b/app/finance/view/expense/add.html index 54964c7..e5084f7 100644 --- a/app/finance/view/expense/add.html +++ b/app/finance/view/expense/add.html @@ -345,6 +345,11 @@ const moduleInit = ['tool','employeepicker']; , { field: 'title', title: '项目名称' } ]] }); + //项目搜索提交 + form.on('submit(search_form)', function (data) { + projectTable.reload({ where: { keywords: data.field.keywords }, page: { curr: 1 } }); + return false; + }); }, btn: ['确定'], yes: function () { @@ -362,11 +367,6 @@ const moduleInit = ['tool','employeepicker']; } }) } - //项目搜索提交 - form.on('submit(search_form)', function (data) { - projectTable.reload({ where: { keywords: data.field.keywords }, page: { curr: 1 } }); - return false; - }); //监听提交 form.on('submit(webform)', function(data){ diff --git a/app/finance/view/invoice/add.html b/app/finance/view/invoice/add.html index 7f9f358..46223ce 100644 --- a/app/finance/view/invoice/add.html +++ b/app/finance/view/invoice/add.html @@ -62,6 +62,13 @@ 地址 + + 关联合同 + + + + + 备注信息 @@ -149,6 +156,13 @@ 地址 + + 关联合同 + + + + + 备注信息 @@ -232,11 +246,7 @@ Array.prototype.remove = function (val) { const moduleInit = ['tool','employeepicker']; function gouguInit() { - var form = layui.form, - upload = layui.upload, - tool=layui.tool, - employeepicker = layui.employeepicker, - laydate = layui.laydate; + var form = layui.form,upload = layui.upload,tool=layui.tool,table=layui.table,employeepicker = layui.employeepicker,laydate = layui.laydate; //选择抬头类型 form.on('radio(type)', function (data) { @@ -248,6 +258,59 @@ function gouguInit() { } }); + //选择关联合同 + $('.contract-picker').on('click', function () { + contractProject(); + }); + var contractTable; + function contractProject() { + layer.open({ + title: '选择合同', + area: ['600px', '580px'], + type: 1, + content: '
\ +
\ +
\ + \ +
\ + \ +
\ +
', + success: function () { + contractTable = table.render({ + elem: '#contractTable' + , url: '/contract/api/get_contract' + , page: true //开启分页 + , limit: 10 + , cols: [[ + { type: 'radio', title: '选择' } + , { field: 'id', width: 100, title: '编号', align: 'center' } + , { field: 'name', title: '合同名称' } + ]] + }); + //项目搜索提交 + form.on('submit(search_form)', function (data) { + contractTable.reload({ where: { keywords: data.field.keywords }, page: { curr: 1 } }); + return false; + }); + }, + btn: ['确定'], + yes: function () { + var checkStatus = table.checkStatus(contractTable.config.id); + var data = checkStatus.data; + if (data.length > 0) { + $('[name="contract_name"]').val(data[0].name); + $('[name="contract_id"]').val(data[0].id); + layer.closeAll(); + } + else { + layer.msg('请先选择合同'); + return false; + } + } + }) + } + //监听提交 form.on('submit(webform)', function(data){ diff --git a/app/finance/view/invoice/view.html b/app/finance/view/invoice/view.html index 524b2f2..6c88a2b 100644 --- a/app/finance/view/invoice/view.html +++ b/app/finance/view/invoice/view.html @@ -101,6 +101,12 @@ 地址 {$detail.invoice_address} + {if condition="$detail.contract_id > 0"} + + 关联的合同 + {$detail.contract_name} + + {/if} {notempty name="$detail.remark"} 备注信息