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"}