diff --git a/app/home/controller/Department.php b/app/home/controller/Department.php index e6dca68..c68f625 100644 --- a/app/home/controller/Department.php +++ b/app/home/controller/Department.php @@ -24,7 +24,7 @@ class Department extends BaseController ->field('d.*,a.name as leader') ->alias('d') ->join('Admin a', 'a.id = d.leader_id', 'LEFT') - ->order('id asc') + ->order('d.id asc') ->select(); return to_assign(0, '', $list); } else { diff --git a/app/home/controller/Income.php b/app/home/controller/Income.php index 19d475e..35e657f 100644 --- a/app/home/controller/Income.php +++ b/app/home/controller/Income.php @@ -41,14 +41,26 @@ class Income extends BaseController if ($invoice) { $invoice['user'] = Db::name('Admin')->where(['id' => $invoice['admin_id']])->value('name'); $invoice['department'] = Db::name('Department')->where(['id' => $invoice['did']])->value('title'); - if ($invoice['check_admin_id'] > 0) { - $invoice['check_admin'] = Db::name('Admin')->where(['id' => $invoice['check_admin_id']])->value('name'); + $invoice['check_admin'] = Db::name('Admin')->where(['id' => $invoice['check_admin_id']])->value('name'); + $invoice['open_admin'] = Db::name('Admin')->where(['id' => $invoice['open_admin_id']])->value('name'); + if ($invoice['check_time'] > 0) { $invoice['check_time'] = empty($invoice['check_time']) ? '0' : date('Y-m-d H:i', $invoice['check_time']); } - if ($invoice['open_admin_id'] > 0) { - $invoice['open_name'] = Db::name('Admin')->where(['id' => $invoice['open_admin_id']])->value('name'); + if ($invoice['open_time'] > 0) { $invoice['open_time'] = empty($invoice['open_time']) ? '0' : date('Y-m-d H:i', $invoice['open_time']); } + else{ + $invoice['open_time'] = '-'; + } + $invoice['not_income'] = ($invoice['amount']*100 - $invoice['enter_amount']*100)/100; + //已到账的记录 + $invoice['income'] = Db::name('InvoiceIncome') + ->field('i.*,a.name as admin') + ->alias('i') + ->join('Admin a', 'a.id = i.admin_id', 'LEFT') + ->where(['i.inid'=>$id,'i.status'=>1]) + ->order('i.id asc') + ->select(); } return $invoice; } @@ -76,6 +88,105 @@ class Income extends BaseController } } + //查看 + public function add() + { + $param = get_params(); + if (request()->isAjax()) { + $inid = $param['inid']; + $admin_id = $this->uid; + //计算已到账的金额 + $hasIncome = Db::name('InvoiceIncome')->where(['inid'=>$inid,'status'=>1])->sum('amount'); + //查询发票金额 + $invoiceAmount = Db::name('Invoice')->where(['id'=>$inid])->value('amount'); + if($param['enter_type']==1){ //单个到账记录 + //相关内容多个数组 + $enterPriceData=isset($param['amount'])? $param['amount'] : ''; + $enterTimeData=isset($param['enter_time'])? $param['enter_time'] : ''; + $remarksData=isset($param['remarks'])? $param['remarks'] : ''; + + //把合同协议关联的单个内容的发票入账明细重新添加 + if($enterPriceData){ + $enter_price = 0; + $insert = []; + $time = time(); + foreach ($enterPriceData as $key => $value) { + if (!$value ) continue; + $insert[] = [ + 'inid' => $inid, + 'amount' => $value, + 'enter_time' => $enterTimeData[$key]? strtotime($enterTimeData[$key]) : 0, + 'remarks' => $remarksData[$key], + 'admin_id' => $admin_id, + 'create_time' => $time + ]; + $enter_price += $value*100; + } + if(($enter_price + $hasIncome*100)> $invoiceAmount*100){ + return to_assign(1,'到账金额大于发票金额,不允许保存'); + } + else{ + $res = Db::name('InvoiceIncome')->strict(false)->field(true)->insertAll($insert); + if($res!==false){ + if(($enter_price + $hasIncome*100) == $invoiceAmount*100){ + //发票全部到账 + Db::name('Invoice')->where(['id'=>$inid])->update(['is_cash'=>2,'enter_amount'=>$invoiceAmount,'enter_time'=>time()]); + } + else if(($enter_price + $hasIncome*100) < $invoiceAmount*100){ + $incomeTotal=($enter_price + $hasIncome*100)/100; + //发票部分到账 + Db::name('Invoice')->where(['id'=>$inid])->update(['is_cash'=>1,'enter_amount'=>$incomeTotal,'enter_time'=>time()]); + } + add_log('enter',$inid,$param); + return to_assign(); + } + else{ + return to_assign(1,'保存失败'); + } + } + } + else{ + return to_assign(1,'提交的到账数据异常,请核对再提交'); + } + } + else if($param['enter_type']==2){ //全部到账记录 + $enter_price = ($invoiceAmount*100-$hasIncome*100)/100; + $data = [ + 'inid' => $inid, + 'amount' => $enter_price, + 'enter_time' => isset($param['enter_time'])? strtotime($param['enter_time']) : 0, + 'remarks' => '一次性全部到账', + 'admin_id' => $admin_id, + 'create_time' => time() + ]; + $res = Db::name('InvoiceIncome')->strict(false)->field(true)->insertGetId($data); + if($res!==false){ + //设置发票全部到账 + Db::name('Invoice')->where(['id'=>$inid])->update(['is_cash'=>2,'enter_amount'=>$invoiceAmount,'enter_time'=>time()]); + add_log('enter',$inid,$param); + return to_assign(); + } + } + else if ($param['enter_type']==3) {//全部反账记录 + //作废初始化发票到账数据 + $res = Db::name('InvoiceIncome')->where(['inid'=>$inid])->update(['status'=>'6','update_time'=>time()]); + if($res!==false){ + //设置发票全部没到账 + Db::name('Invoice')->where(['id'=>$inid])->update(['is_cash'=>0,'enter_amount'=>0,'enter_time'=>0]); + add_log('del',$inid,$param); + return to_assign(); + } + } + } + else{ + $id = isset($param['id']) ? $param['id']: 0 ; + $detail = $this->detail($id); + View::assign('uid', $this->uid); + View::assign('id', $id); + View::assign('detail', $detail); + return view(); + } + } //查看 public function view() { @@ -86,25 +197,32 @@ class Income extends BaseController return view(); } - //设置 - public function check() + //删除到账记录 + public function delete() { $param = get_params(); if (request()->isAjax()) { - if ($param['invoice_status'] == 2 || $param['invoice_status'] == 0) { - $param['check_time'] = time(); - } - if ($param['check_status'] == 3) { - $param['open_time'] = time(); - } - if ($param['check_status'] == 10) { - $param['update_time'] = time(); - } - $res = InvoiceList::where('id', $param['id'])->strict(false)->field(true)->update($param); - if ($res !== false) { - return to_assign(); - } else { - return to_assign(1, "操作失败"); + //作废初始化发票到账数据 + $income = Db::name('InvoiceIncome')->where(['id'=>$param['id']])->find(); + $invoice = Db::name('Invoice')->where(['id'=>$income['inid']])->find(); + if($income){ + $res = Db::name('InvoiceIncome')->where(['id'=>$param['id']])->update(['status'=>'6','update_time'=>time()]); + if($res!==false){ + if($income['amount']*100 == $invoice['amount']*100){ + //发票全部反到账 + Db::name('Invoice')->where(['id'=>$income['inid']])->update(['is_cash'=>0,'enter_amount'=>0,'enter_time'=>0]); + } + else if($income['amount']*100 < $invoice['amount']*100){ + $incomeTotal=Db::name('InvoiceIncome')->where(['inid'=>$income['inid'],'status'=>1])->sum('amount'); + //发票部分到账 + Db::name('Invoice')->where(['id'=>$income['inid']])->update(['is_cash'=>1,'enter_amount'=>$incomeTotal,'enter_time'=>time()]); + } + add_log('enter',$income['inid'],$invoice); + return to_assign(); + } + else{ + return to_assign(1,'操作失败'); + } } } } diff --git a/app/home/view/expense/index.html b/app/home/view/expense/index.html index 7f27216..606c954 100644 --- a/app/home/view/expense/index.html +++ b/app/home/view/expense/index.html @@ -36,6 +36,7 @@ {block name="script"} +{include file="common/layui" base='base' extend="[]" callback="init" /} +{/block} + \ No newline at end of file diff --git a/app/home/view/income/index.html b/app/home/view/income/index.html index c3c924d..2438f83 100644 --- a/app/home/view/income/index.html +++ b/app/home/view/income/index.html @@ -30,6 +30,7 @@ {block name="script"} {include file="common/layui" base='base' extend="[]" callback="init" /} diff --git a/app/home/view/invoice/index.html b/app/home/view/invoice/index.html index 0a710d0..f1cb4da 100644 --- a/app/home/view/invoice/index.html +++ b/app/home/view/invoice/index.html @@ -37,6 +37,7 @@ {block name="script"}