This commit is contained in:
weiz 2024-03-16 14:36:22 +08:00
parent 77a292afcd
commit 59234160a5
3 changed files with 55 additions and 27 deletions

View File

@ -10,6 +10,9 @@ use app\common\model\DataReception;
use app\common\model\dept\Dept;
use app\common\model\task\TaskAllocation;
use app\common\model\TaskHandlingThreeLevelReview;
use app\common\model\zjzx_finance\ZjzxInvoice;
use app\common\model\zjzx_finance\ZjzxRefund;
use app\common\model\zjzx_finance\ZjzxSettlement;
use think\facade\Db;
class CostConsultationReportController extends BaseAdminController
@ -19,31 +22,46 @@ class CostConsultationReportController extends BaseAdminController
// 造价合同台账
public function cost_approved_project_list()
{
$page_no = $this->request->param('page_no', 1);
$page_size = $this->request->param('page_size', 15);
$params = $this->request->param();
$contract_name = $params['contract_name'] ?? '';
$contract_num = $params['contract_num'] ?? '';
$part_a = $params['part_a'] ?? '';
$query = Db::name('cost_approved_project')->where(function ($query) use ($contract_name, $contract_num, $part_a) {
if ($contract_name) {
$query->where('contract_name', 'like', '%' . $contract_name . '%');
}
if ($contract_num) {
$query->where('contract_num', 'like', '%'.$contract_num.'%');
}
if ($part_a) {
$query->where('part_a', 'like', '%' . $part_a . '%');
}
});
$count = $query->count();
$lists = $query->page($page_no, $page_size)->select()->each(function ($item) {
$item['start_date'] = date('Y-m-d', $item['start_date']);
$item['end_date'] = date('Y-m-d', $item['end_date']);
$item['due_time'] = date('Y-m-d', $item['due_time']);
$item['create_date'] = date('Y-m-d', $item['create_date']);
return $item;
});
$params = $this->request->get();
$page_no = !empty($params['page_no']) ? $params['page_no'] : 1;
$page_size = !empty($params['page_size']) ? $params['page_size'] : 15;
$where = [];
if(!empty($params['contract_name'])){
$contract_ids1 = CostApprovedProject::where('contract_name','like','%'.$params['contract_name'].'%')->column('id');
$where[] = ['contract_id','in',$contract_ids1];
}
if(!empty($params['contract_num'])){
$contract_ids2 = CostApprovedProject::where('contract_num','like','%'.$params['contract_num'].'%')->column('id');
$where[] = ['contract_id','in',$contract_ids2];
}
if(!empty($params['part_a'])){
$contract_ids3 = CostApprovedProject::where('part_a','like','%'.$params['part_a'].'%')->column('id');
$where[] = ['contract_id','in',$contract_ids3];
}
$lists = CostProject::field('id,contract_id')->where($where)->page($page_no, $page_size)->order('id desc')->select()->each(function($data){
$contract = CostApprovedProject::field('contract_name,contract_num,contract_type,part_a,part_b,create_time,start_date,end_date,project_money,money')
->where('id',$data['contract_id'])->findOrEmpty();
$data['contract_name'] = $contract['contract_name'];
$data['contract_num'] = $contract['contract_num'];
$data['contract_type'] = $contract->contract_type_text;
$data['part_a'] = $contract['part_a'];
$data['part_b'] = $contract['part_b'];
$data['create_time'] = $contract['create_time'];
$data['start_date'] = $contract['start_date'];
$data['end_date'] = $contract['end_date'];
$data['project_money'] = $contract['project_money'];
$data['sign_money'] = $contract['money'];
//开票金额
$data['total_invoice_amount'] = ZjzxInvoice::where('project_id',$data['id'])->sum('apply_amount');
//到账金额
$data['total_refund_amount'] = ZjzxRefund::where('project_id',$data['id'])->sum('amount');
//结算金额
$data['total_settlement_amount'] = ZjzxSettlement::where('project_id',$data['id'])->sum('amount');
//应收账款
$data['total_collection_amount'] = $contract['money'] - $data['total_refund_amount'];
unset($data['contract_id'],$data['id']);
})->toArray();
$count = CostProject::where($where)->count();
return $this->success('成功', compact('count', 'lists', 'page_no', 'page_size'));
}

View File

@ -88,6 +88,9 @@ class ZjzxInvoiceController extends BaseAdminController
$result = ZjzxInvoiceLogic::detail($params);
return $this->data($result);
}
public function datas()
{
return $this->data(ZjzxInvoiceLogic::datas());
}
}

View File

@ -134,4 +134,11 @@ class ZjzxInvoiceLogic extends BaseLogic
$data['total_refund_amount'] = ZjzxRefund::where('project_id',$data['project_id'])->sum('amount');
return $data->toArray();
}
public static function datas()
{
return ZjzxInvoice::field(['id','invoice_code'])->order(['id' => 'desc'])->select()->each(function($data){
$data['projectinfo'] = 'ID' . $data['id'] . ' / 编号:' . $data['invoice_code'];
})->toArray();
}
}