update
This commit is contained in:
parent
80202c29f6
commit
91d1ed8686
@ -1,282 +1,287 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace app\adminapi\controller;
|
namespace app\adminapi\controller;
|
||||||
|
|
||||||
use app\common\model\auth\Admin;
|
use app\common\model\auth\Admin;
|
||||||
use app\common\model\cost_project\CostApprovedProject;
|
use app\common\model\cost_project\CostProject;
|
||||||
use app\common\model\cost_project\CostProject;
|
use app\common\model\cost_project\CostProjectPerson;
|
||||||
use app\common\model\cost_project\CostProjectPerson;
|
use app\common\model\DataReception;
|
||||||
use app\common\model\DataReception;
|
use app\common\model\dept\Dept;
|
||||||
use app\common\model\dept\Dept;
|
use app\common\model\GeoCity;
|
||||||
use app\common\model\GeoCity;
|
use app\common\model\GeoProvince;
|
||||||
use app\common\model\GeoProvince;
|
use app\common\model\marketing\MarketingContract;
|
||||||
use app\common\model\project_process_management\JianliProjectProgressReport;
|
use app\common\model\project_process_management\JianliProjectProgressReport;
|
||||||
use app\common\model\ProjectCommission;
|
use app\common\model\ProjectCommission;
|
||||||
use app\common\model\ProjectCommissionDetail;
|
use app\common\model\ProjectCommissionDetail;
|
||||||
use app\common\model\task\TaskAllocation;
|
use app\common\model\task\TaskAllocation;
|
||||||
use app\common\model\TaskHandlingThreeLevelReview;
|
use app\common\model\TaskHandlingThreeLevelReview;
|
||||||
use app\common\model\zjzx_finance\ZjzxInvoice;
|
use app\common\model\zjzx_finance\ZjzxInvoice;
|
||||||
use app\common\model\zjzx_finance\ZjzxRefund;
|
use app\common\model\zjzx_finance\ZjzxRefund;
|
||||||
use app\common\model\zjzx_finance\ZjzxSettlement;
|
use app\common\model\zjzx_finance\ZjzxSettlement;
|
||||||
use think\facade\Db;
|
|
||||||
|
|
||||||
class CostConsultationReportController extends BaseAdminController
|
class CostConsultationReportController extends BaseAdminController
|
||||||
{
|
{
|
||||||
// 造价报表控制器
|
// 造价报表控制器
|
||||||
|
|
||||||
// 造价合同台账
|
// 造价合同台账
|
||||||
public function cost_approved_project_list()
|
public function cost_approved_project_list()
|
||||||
{
|
{
|
||||||
$params = $this->request->get();
|
$params = $this->request->get();
|
||||||
$page_no = !empty($params['page_no']) ? $params['page_no'] : 1;
|
$page_no = !empty($params['page_no']) ? $params['page_no'] : 1;
|
||||||
$page_size = !empty($params['page_size']) ? $params['page_size'] : 15;
|
$page_size = !empty($params['page_size']) ? $params['page_size'] : 15;
|
||||||
$where = [];
|
$where = [];
|
||||||
if(!empty($params['contract_name'])){
|
if (!empty($params['contract_name'])) {
|
||||||
$contract_ids1 = CostApprovedProject::where('contract_name','like','%'.$params['contract_name'].'%')->column('id');
|
$contract_ids1 = MarketingContract::where('contract_name', 'like', '%' . $params['contract_name'] . '%')->column('id');
|
||||||
$where[] = ['contract_id','in',$contract_ids1];
|
$where[] = ['contract_id', 'in', $contract_ids1];
|
||||||
}
|
}
|
||||||
if(!empty($params['contract_num'])){
|
if (!empty($params['contract_num'])) {
|
||||||
$contract_ids2 = CostApprovedProject::where('contract_num','like','%'.$params['contract_num'].'%')->column('id');
|
$contract_ids2 = MarketingContract::where('contract_code', 'like', '%' . $params['contract_num'] . '%')->column('id');
|
||||||
$where[] = ['contract_id','in',$contract_ids2];
|
$where[] = ['contract_id', 'in', $contract_ids2];
|
||||||
}
|
}
|
||||||
if(!empty($params['part_a'])){
|
if (!empty($params['part_a'])) {
|
||||||
$contract_ids3 = CostApprovedProject::where('part_a','like','%'.$params['part_a'].'%')->column('id');
|
$contract_ids3 = MarketingContract::where('part_a', 'like', '%' . $params['part_a'] . '%')->column('id');
|
||||||
$where[] = ['contract_id','in',$contract_ids3];
|
$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){
|
$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')
|
$contract = MarketingContract::field('contract_name,contract_code,contract_type,part_a,part_b,create_time,start_date,end_date,project_money,signed_amount')
|
||||||
->where('id',$data['contract_id'])->findOrEmpty();
|
->where('id', $data['contract_id'])->findOrEmpty();
|
||||||
$data['contract_name'] = $contract['contract_name'];
|
$admin = Admin::field('name')->where('id', $contract['part_a'])->findOrEmpty();
|
||||||
$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'));
|
|
||||||
}
|
|
||||||
|
|
||||||
// 造价项目信息汇总
|
|
||||||
public function cost_project_report()
|
|
||||||
{
|
|
||||||
$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['project_name'])){
|
|
||||||
$where[] = ['project_name','like','%'.$params['project_name'].'%'];
|
|
||||||
}
|
|
||||||
$lists = CostProject::field('id,contract_id,project_num,project_name,starting,endtime,types,invest')
|
|
||||||
->where($where)->page($page_no, $page_size)->order('id desc')->select()->each(function($data){
|
|
||||||
$contract = CostApprovedProject::field('contract_name')->where('id',$data['contract_id'])->findOrEmpty();
|
|
||||||
$data['contract_name'] = $contract['contract_name'];
|
|
||||||
$data['types'] = $data->types_text;
|
|
||||||
//开票金额
|
|
||||||
$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_commission_amount'] = ProjectCommission::where('project_id',$data['id'])->sum('bczfze');
|
|
||||||
})->toArray();
|
|
||||||
$count = CostProject::where($where)->count();
|
|
||||||
return $this->success('成功', compact('count', 'lists', 'page_no', 'page_size'));
|
|
||||||
}
|
|
||||||
|
|
||||||
// 项目全过程跟踪表
|
|
||||||
public function project_trace()
|
|
||||||
{
|
|
||||||
$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['project_name'])){
|
|
||||||
$where[] = ['project_name','like','%'.$params['project_name'].'%'];
|
|
||||||
}
|
|
||||||
$lists = CostProject::field('id,contract_id,project_num,project_name,depar')
|
|
||||||
->where($where)->page($page_no, $page_size)->order('id desc')->select()->each(function($data){
|
|
||||||
$contract = CostApprovedProject::field('contract_name,project_director')->where('id',$data['contract_id'])->findOrEmpty();
|
|
||||||
$dept = Dept::field('name')->where('id', $data['depar'])->findOrEmpty();
|
|
||||||
$data['contract_name'] = $contract['contract_name'];
|
|
||||||
$data['project_director'] = $contract['project_director'];
|
|
||||||
$data['dept_name'] = $dept['name'];
|
|
||||||
//任务分配状态
|
|
||||||
$task_allocation_status = TaskAllocation::where('cost_project_id', $data['id'])->count();
|
|
||||||
$data['task_allocation_status'] = $task_allocation_status > 0 ? 1 : 0;
|
|
||||||
//任务办理状态
|
|
||||||
$task_handling_three_level_review_status = TaskHandlingThreeLevelReview::where('project_id', $data['id'])->count();
|
|
||||||
$data['task_handling_three_level_review_status'] = $task_handling_three_level_review_status > 0 ? 1 : 0;
|
|
||||||
//资料归档状态
|
|
||||||
$data_reception_status = DataReception::where('project_id', $data['id'])->count();
|
|
||||||
$data['data_reception_status'] = $data_reception_status > 0 ? 1 : 0;
|
|
||||||
//开票金额
|
|
||||||
$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_commission_amount'] = ProjectCommission::where('project_id',$data['id'])->sum('bczfze');
|
|
||||||
})->toArray();
|
|
||||||
$count = CostProject::where($where)->count();
|
|
||||||
return $this->success('成功', compact('count', 'lists', 'page_no', 'page_size'));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 项目开票收款汇总表
|
|
||||||
*/
|
|
||||||
public function project_invoice_receipt()
|
|
||||||
{
|
|
||||||
$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['project_name'])){
|
|
||||||
$where[] = ['project_name','like','%'.$params['project_name'].'%'];
|
|
||||||
}
|
|
||||||
$lists = CostProject::field('id,contract_id,project_num,project_name,depar')
|
|
||||||
->where($where)->page($page_no, $page_size)->order('id desc')->select()->each(function($data){
|
|
||||||
$contract = CostApprovedProject::field('contract_name,project_director')->where('id',$data['contract_id'])->findOrEmpty();
|
|
||||||
$dept = Dept::field('name')->where('id', $data['depar'])->findOrEmpty();
|
|
||||||
$data['contract_name'] = $contract['contract_name'];
|
|
||||||
$data['project_director'] = $contract['project_director'];
|
|
||||||
$data['dept_name'] = $dept['name'];
|
|
||||||
//开票金额
|
|
||||||
$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');
|
|
||||||
})->toArray();
|
|
||||||
$count = CostProject::where($where)->count();
|
|
||||||
return $this->success('成功', compact('count', 'lists', 'page_no', 'page_size'));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 项目部门分布
|
|
||||||
*/
|
|
||||||
public function distribution_project_departments()
|
|
||||||
{
|
|
||||||
$page_no = $this->request->param('page_no', 1);
|
|
||||||
$page_size = $this->request->param('page_size', 15);
|
|
||||||
$query = (new CostProject);
|
|
||||||
$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']);
|
|
||||||
if ($item['depar'] > 0) {
|
|
||||||
$item['depar'] = Dept::where('id', $item['depar'])->value('name');
|
|
||||||
}
|
|
||||||
return $item;
|
|
||||||
});
|
|
||||||
return $this->success('成功', compact('count', 'lists', 'page_no', 'page_size'));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 项目人员分布
|
|
||||||
*/
|
|
||||||
public function distribution_project_personnel()
|
|
||||||
{
|
|
||||||
$page_no = $this->request->param('page_no', 1);
|
|
||||||
$page_size = $this->request->param('page_size', 15);
|
|
||||||
$query = (new CostProjectPerson);
|
|
||||||
$count = $query->count();
|
|
||||||
$lists = $query->page($page_no, $page_size)->select()->each(function ($item) {
|
|
||||||
$CostProject = (new CostProject)->where('id', $item['cost_project_id'])->field('depar,project_name')->find();
|
|
||||||
$item['project_name'] = $CostProject['project_name'];
|
|
||||||
$item['name'] = (new Admin)->where('id', $item['uid'])->value('name');
|
|
||||||
|
|
||||||
if ($CostProject['depar'] > 0) {
|
|
||||||
$item['depar'] = Dept::where('id', $CostProject['depar'])->value('name');
|
|
||||||
}
|
|
||||||
|
|
||||||
return $item;
|
|
||||||
});
|
|
||||||
return $this->success('成功', compact('count', 'lists', 'page_no', 'page_size'));
|
|
||||||
}
|
|
||||||
|
|
||||||
//项目提成统计
|
|
||||||
public function project_commission_statistics(){
|
|
||||||
$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['project_name'])){
|
|
||||||
$where[] = ['project_name','like','%'.$params['project_name'].'%'];
|
|
||||||
}
|
|
||||||
if(!empty($params['date'])){
|
|
||||||
$date = explode(',',$params['date']);
|
|
||||||
$where[] = ['apptime','between',[strtotime($date[0].' 00:00:00'),strtotime($date[1].' 23:59:59')]];
|
|
||||||
}
|
|
||||||
$lists = ProjectCommission::field('id,project_id,apptime')->where($where)->page($page_no, $page_size)->order('id desc')->select()->each(function($data){
|
|
||||||
$project = CostProject::field('project_name,project_num,contract_id')->where('id',$data['project_id'])->findOrEmpty();
|
|
||||||
$contract = CostApprovedProject::field('contract_name')->where('id',$project['contract_id'])->findOrEmpty();
|
|
||||||
$data['project_num'] = $project['project_num'];
|
|
||||||
$data['project_name'] = $project['project_name'];
|
|
||||||
$data['contract_name'] = $contract['contract_name'];
|
|
||||||
$data['children'] = ProjectCommissionDetail::withoutField('engineer_id,remark,create_time,update_time,delete_time')
|
|
||||||
->where('project_commission_id',$data['id'])->select()->each(function($data){
|
|
||||||
$data['task_type'] = $data->task_type_text;
|
|
||||||
$data['professional_type'] = $data->professional_type_text;
|
|
||||||
})->toArray();
|
|
||||||
})->toArray();
|
|
||||||
$count = ProjectCommission::where($where)->count();
|
|
||||||
return $this->success('成功', compact('count', 'lists', 'page_no', 'page_size'));
|
|
||||||
}
|
|
||||||
|
|
||||||
//项目进度统计
|
|
||||||
public function project_schedule_statistics(){
|
|
||||||
$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['project_name'])){
|
|
||||||
$where[] = ['project_name','like','%'.$params['project_name'].'%'];
|
|
||||||
}
|
|
||||||
$lists = CostProject::field('id,contract_id,project_num,project_name,types,aunit,province,city,starting,endtime,jhgq')
|
|
||||||
->where($where)->page($page_no, $page_size)->order('id desc')->select()->each(function($data){
|
|
||||||
$contract = CostApprovedProject::field('contract_name,industry_nature,project_director')->where('id',$data['contract_id'])->findOrEmpty();
|
|
||||||
$province = GeoProvince::field('province_name')->where('province_code',$data['province'])->findOrEmpty();
|
|
||||||
$city = GeoCity::field('city_name')->where('city_code',$data['city'])->findOrEmpty();
|
|
||||||
$schedule = JianliProjectProgressReport::field('start_date,end_date,duration,done_progress')->where('project_id',$data['id'])->findOrEmpty();
|
|
||||||
$data['contract_name'] = $contract['contract_name'];
|
$data['contract_name'] = $contract['contract_name'];
|
||||||
$data['project_director'] = $contract['project_director'];
|
$data['contract_num'] = $contract['contract_code'];
|
||||||
$data['types'] = $data->types_text;
|
$data['contract_type'] = !$contract->isEmpty() ? $contract->contract_type_text : '';
|
||||||
$data['industry_nature'] = $contract->industry_nature_text;
|
$data['part_a'] = $admin['name'];
|
||||||
$data['project_director'] = $contract['project_director'];
|
$data['part_b'] = $contract['part_b'];
|
||||||
$data['province'] = $province['province_name'];
|
$data['create_time'] = $contract['create_time'];
|
||||||
$data['city'] = $city['city_name'];
|
$data['start_date'] = $contract['start_date'];
|
||||||
$data['actual_starting'] = $schedule['start_date'];
|
$data['end_date'] = $contract['end_date'];
|
||||||
$data['actual_endtime'] = $schedule['end_date'];
|
$data['project_money'] = $contract['project_money'];
|
||||||
$data['duration'] = $schedule['duration'];
|
$data['sign_money'] = $contract['signed_amount'];
|
||||||
$data['done_progress'] = $schedule['done_progress'];
|
//开票金额
|
||||||
|
$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();
|
})->toArray();
|
||||||
$count = CostProject::where($where)->count();
|
$count = CostProject::where($where)->count();
|
||||||
return $this->success('成功', compact('count', 'lists', 'page_no', 'page_size'));
|
return $this->success('成功', compact('count', 'lists', 'page_no', 'page_size'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 造价项目信息汇总
|
||||||
|
public function cost_project_report()
|
||||||
|
{
|
||||||
|
$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 = MarketingContract::where('contract_name', 'like', '%' . $params['contract_name'] . '%')->column('id');
|
||||||
|
$where[] = ['contract_id', 'in', $contract_ids1];
|
||||||
|
}
|
||||||
|
if (!empty($params['project_name'])) {
|
||||||
|
$where[] = ['project_name', 'like', '%' . $params['project_name'] . '%'];
|
||||||
|
}
|
||||||
|
$lists = CostProject::field('id,contract_id,project_num,project_name,starting,endtime,types,invest')
|
||||||
|
->where($where)->page($page_no, $page_size)->order('id desc')->select()->each(function ($data) {
|
||||||
|
$contract = MarketingContract::field('contract_name')->where('id', $data['contract_id'])->findOrEmpty();
|
||||||
|
$data['contract_name'] = $contract['contract_name'];
|
||||||
|
$data['types'] = $data->types_text;
|
||||||
|
//开票金额
|
||||||
|
$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_commission_amount'] = ProjectCommission::where('project_id', $data['id'])->sum('bczfze');
|
||||||
|
})->toArray();
|
||||||
|
$count = CostProject::where($where)->count();
|
||||||
|
return $this->success('成功', compact('count', 'lists', 'page_no', 'page_size'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 项目全过程跟踪表
|
||||||
|
public function project_trace()
|
||||||
|
{
|
||||||
|
$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 = MarketingContract::where('contract_name', 'like', '%' . $params['contract_name'] . '%')->column('id');
|
||||||
|
$where[] = ['contract_id', 'in', $contract_ids1];
|
||||||
|
}
|
||||||
|
if (!empty($params['project_name'])) {
|
||||||
|
$where[] = ['project_name', 'like', '%' . $params['project_name'] . '%'];
|
||||||
|
}
|
||||||
|
$lists = CostProject::field('id,contract_id,project_num,project_name,depar')
|
||||||
|
->where($where)->page($page_no, $page_size)->order('id desc')->select()->each(function ($data) {
|
||||||
|
$contract = MarketingContract::field('contract_name,project_manager')->where('id', $data['contract_id'])->findOrEmpty();
|
||||||
|
$dept = Dept::field('name')->where('id', $data['depar'])->findOrEmpty();
|
||||||
|
$admin = Admin::field('name')->where('id', $contract['project_manager'])->findOrEmpty();
|
||||||
|
$data['contract_name'] = $contract['contract_name'];
|
||||||
|
$data['project_director'] = $admin['name'];
|
||||||
|
$data['dept_name'] = $dept['name'];
|
||||||
|
//任务分配状态
|
||||||
|
$task_allocation_status = TaskAllocation::where('cost_project_id', $data['id'])->count();
|
||||||
|
$data['task_allocation_status'] = $task_allocation_status > 0 ? 1 : 0;
|
||||||
|
//任务办理状态
|
||||||
|
$task_handling_three_level_review_status = TaskHandlingThreeLevelReview::where('project_id', $data['id'])->count();
|
||||||
|
$data['task_handling_three_level_review_status'] = $task_handling_three_level_review_status > 0 ? 1 : 0;
|
||||||
|
//资料归档状态
|
||||||
|
$data_reception_status = DataReception::where('project_id', $data['id'])->count();
|
||||||
|
$data['data_reception_status'] = $data_reception_status > 0 ? 1 : 0;
|
||||||
|
//开票金额
|
||||||
|
$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_commission_amount'] = ProjectCommission::where('project_id', $data['id'])->sum('bczfze');
|
||||||
|
})->toArray();
|
||||||
|
$count = CostProject::where($where)->count();
|
||||||
|
return $this->success('成功', compact('count', 'lists', 'page_no', 'page_size'));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目开票收款汇总表
|
||||||
|
*/
|
||||||
|
public function project_invoice_receipt()
|
||||||
|
{
|
||||||
|
$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 = MarketingContract::where('contract_name', 'like', '%' . $params['contract_name'] . '%')->column('id');
|
||||||
|
$where[] = ['contract_id', 'in', $contract_ids1];
|
||||||
|
}
|
||||||
|
if (!empty($params['project_name'])) {
|
||||||
|
$where[] = ['project_name', 'like', '%' . $params['project_name'] . '%'];
|
||||||
|
}
|
||||||
|
$lists = CostProject::field('id,contract_id,project_num,project_name,depar')
|
||||||
|
->where($where)->page($page_no, $page_size)->order('id desc')->select()->each(function ($data) {
|
||||||
|
$contract = MarketingContract::field('contract_name,project_manager')->where('id', $data['contract_id'])->findOrEmpty();
|
||||||
|
$dept = Dept::field('name')->where('id', $data['depar'])->findOrEmpty();
|
||||||
|
$admin = Admin::field('name')->where('id', $contract['project_manager'])->findOrEmpty();
|
||||||
|
$data['contract_name'] = $contract['contract_name'];
|
||||||
|
$data['project_director'] = $admin['name'];
|
||||||
|
$data['dept_name'] = $dept['name'];
|
||||||
|
//开票金额
|
||||||
|
$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');
|
||||||
|
})->toArray();
|
||||||
|
$count = CostProject::where($where)->count();
|
||||||
|
return $this->success('成功', compact('count', 'lists', 'page_no', 'page_size'));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目部门分布
|
||||||
|
*/
|
||||||
|
public function distribution_project_departments()
|
||||||
|
{
|
||||||
|
$page_no = $this->request->param('page_no', 1);
|
||||||
|
$page_size = $this->request->param('page_size', 15);
|
||||||
|
$query = (new CostProject);
|
||||||
|
$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']);
|
||||||
|
if ($item['depar'] > 0) {
|
||||||
|
$item['depar'] = Dept::where('id', $item['depar'])->value('name');
|
||||||
|
}
|
||||||
|
return $item;
|
||||||
|
});
|
||||||
|
return $this->success('成功', compact('count', 'lists', 'page_no', 'page_size'));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目人员分布
|
||||||
|
*/
|
||||||
|
public function distribution_project_personnel()
|
||||||
|
{
|
||||||
|
$page_no = $this->request->param('page_no', 1);
|
||||||
|
$page_size = $this->request->param('page_size', 15);
|
||||||
|
$query = (new CostProjectPerson);
|
||||||
|
$count = $query->count();
|
||||||
|
$lists = $query->page($page_no, $page_size)->select()->each(function ($item) {
|
||||||
|
$CostProject = (new CostProject)->where('id', $item['cost_project_id'])->field('depar,project_name')->find();
|
||||||
|
$item['project_name'] = $CostProject['project_name'];
|
||||||
|
$item['name'] = (new Admin)->where('id', $item['uid'])->value('name');
|
||||||
|
|
||||||
|
if ($CostProject['depar'] > 0) {
|
||||||
|
$item['depar'] = Dept::where('id', $CostProject['depar'])->value('name');
|
||||||
|
}
|
||||||
|
|
||||||
|
return $item;
|
||||||
|
});
|
||||||
|
return $this->success('成功', compact('count', 'lists', 'page_no', 'page_size'));
|
||||||
|
}
|
||||||
|
|
||||||
|
//项目提成统计
|
||||||
|
public function project_commission_statistics()
|
||||||
|
{
|
||||||
|
$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['project_name'])) {
|
||||||
|
$where[] = ['project_name', 'like', '%' . $params['project_name'] . '%'];
|
||||||
|
}
|
||||||
|
if (!empty($params['date'])) {
|
||||||
|
$date = explode(',', $params['date']);
|
||||||
|
$where[] = ['apptime', 'between', [strtotime($date[0] . ' 00:00:00'), strtotime($date[1] . ' 23:59:59')]];
|
||||||
|
}
|
||||||
|
$lists = ProjectCommission::field('id,project_id,apptime')->where($where)->page($page_no, $page_size)->order('id desc')->select()->each(function ($data) {
|
||||||
|
$project = CostProject::field('project_name,project_num,contract_id')->where('id', $data['project_id'])->findOrEmpty();
|
||||||
|
$contract = MarketingContract::field('contract_name')->where('id', $project['contract_id'])->findOrEmpty();
|
||||||
|
$data['project_num'] = $project['project_num'];
|
||||||
|
$data['project_name'] = $project['project_name'];
|
||||||
|
$data['contract_name'] = $contract['contract_name'];
|
||||||
|
$data['children'] = ProjectCommissionDetail::withoutField('engineer_id,remark,create_time,update_time,delete_time')
|
||||||
|
->where('project_commission_id', $data['id'])->select()->each(function ($data) {
|
||||||
|
$data['task_type'] = $data->task_type_text;
|
||||||
|
$data['professional_type'] = $data->professional_type_text;
|
||||||
|
})->toArray();
|
||||||
|
})->toArray();
|
||||||
|
$count = ProjectCommission::where($where)->count();
|
||||||
|
return $this->success('成功', compact('count', 'lists', 'page_no', 'page_size'));
|
||||||
|
}
|
||||||
|
|
||||||
|
//项目进度统计
|
||||||
|
public function project_schedule_statistics()
|
||||||
|
{
|
||||||
|
$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 = MarketingContract::where('contract_name', 'like', '%' . $params['contract_name'] . '%')->column('id');
|
||||||
|
$where[] = ['contract_id', 'in', $contract_ids1];
|
||||||
|
}
|
||||||
|
if (!empty($params['project_name'])) {
|
||||||
|
$where[] = ['project_name', 'like', '%' . $params['project_name'] . '%'];
|
||||||
|
}
|
||||||
|
$lists = CostProject::field('id,contract_id,project_num,project_name,types,aunit,province,city,starting,endtime,jhgq')
|
||||||
|
->where($where)->page($page_no, $page_size)->order('id desc')->select()->each(function ($data) {
|
||||||
|
$contract = MarketingContract::field('contract_name,industry_nature,project_manager')->where('id', $data['contract_id'])->findOrEmpty();
|
||||||
|
$province = GeoProvince::field('province_name')->where('province_code', $data['province'])->findOrEmpty();
|
||||||
|
$city = GeoCity::field('city_name')->where('city_code', $data['city'])->findOrEmpty();
|
||||||
|
$schedule = JianliProjectProgressReport::field('start_date,end_date,duration,done_progress')->where('project_id', $data['id'])->findOrEmpty();
|
||||||
|
$admin = Admin::field('name')->where('id', $contract['project_manager'])->findOrEmpty();
|
||||||
|
$data['contract_name'] = $contract['contract_name'];
|
||||||
|
$data['project_director'] = $contract['project_director'];
|
||||||
|
$data['types'] = $data->types_text;
|
||||||
|
$data['industry_nature'] = $contract->industry_nature_text;
|
||||||
|
$data['project_director'] = $admin['name'];
|
||||||
|
$data['province'] = $province['province_name'];
|
||||||
|
$data['city'] = $city['city_name'];
|
||||||
|
$data['actual_starting'] = $schedule['start_date'];
|
||||||
|
$data['actual_endtime'] = $schedule['end_date'];
|
||||||
|
$data['duration'] = $schedule['duration'];
|
||||||
|
$data['done_progress'] = $schedule['done_progress'];
|
||||||
|
})->toArray();
|
||||||
|
$count = CostProject::where($where)->count();
|
||||||
|
return $this->success('成功', compact('count', 'lists', 'page_no', 'page_size'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -12,116 +12,114 @@
|
|||||||
// | author: likeadminTeam
|
// | author: likeadminTeam
|
||||||
// +----------------------------------------------------------------------
|
// +----------------------------------------------------------------------
|
||||||
|
|
||||||
namespace app\adminapi\lists;
|
namespace app\adminapi\lists;
|
||||||
|
|
||||||
|
|
||||||
use app\adminapi\lists\BaseAdminDataLists;
|
use app\common\lists\ListsExcelInterface;
|
||||||
use app\common\lists\ListsExcelInterface;
|
use app\common\lists\ListsSearchInterface;
|
||||||
use app\common\model\cost_project\CostApprovedProject;
|
use app\common\model\cost_project\CostProject;
|
||||||
use app\common\model\cost_project\CostProject;
|
use app\common\model\marketing\MarketingContract;
|
||||||
use app\common\model\ProjectCommission;
|
use app\common\model\ProjectCommission;
|
||||||
use app\common\lists\ListsSearchInterface;
|
use app\common\model\ProjectCommissionDetail;
|
||||||
use app\common\model\ProjectCommissionDetail;
|
use app\common\model\zjzx_finance\ZjzxRefund;
|
||||||
use app\common\model\zjzx_finance\ZjzxRefund;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ProjectCommission列表
|
* ProjectCommission列表
|
||||||
* Class ProjectCommissionLists
|
* Class ProjectCommissionLists
|
||||||
* @package app\adminapi\lists
|
* @package app\adminapi\lists
|
||||||
*/
|
*/
|
||||||
class ProjectCommissionLists extends BaseAdminDataLists implements ListsSearchInterface,ListsExcelInterface
|
class ProjectCommissionLists extends BaseAdminDataLists implements ListsSearchInterface, ListsExcelInterface
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 设置搜索条件
|
* @notes 设置搜索条件
|
||||||
* @return \string[][]
|
* @return \string[][]
|
||||||
* @author likeadmin
|
* @author likeadmin
|
||||||
* @date 2024/02/23 09:37
|
* @date 2024/02/23 09:37
|
||||||
*/
|
*/
|
||||||
public function setSearch(): array
|
public function setSearch(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'=' => ['project_id'],
|
'=' => ['project_id'],
|
||||||
'%like%' => ['num']
|
'%like%' => ['num']
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 获取列表
|
* @notes 获取列表
|
||||||
* @return array
|
* @return array
|
||||||
* @throws \think\db\exception\DataNotFoundException
|
* @throws \think\db\exception\DataNotFoundException
|
||||||
* @throws \think\db\exception\DbException
|
* @throws \think\db\exception\DbException
|
||||||
* @throws \think\db\exception\ModelNotFoundException
|
* @throws \think\db\exception\ModelNotFoundException
|
||||||
* @author likeadmin
|
* @author likeadmin
|
||||||
* @date 2024/02/23 09:37
|
* @date 2024/02/23 09:37
|
||||||
*/
|
*/
|
||||||
public function lists(): array
|
public function lists(): array
|
||||||
{
|
{
|
||||||
return ProjectCommission::withoutField('create_time,update_time,delete_time')->where($this->searchWhere)
|
return ProjectCommission::withoutField('create_time,update_time,delete_time')->where($this->searchWhere)
|
||||||
->limit($this->limitOffset, $this->limitLength)
|
->limit($this->limitOffset, $this->limitLength)
|
||||||
->order(['id' => 'desc'])
|
->order(['id' => 'desc'])
|
||||||
->select()->each(function($data){
|
->select()->each(function ($data) {
|
||||||
$project = CostProject::field('project_name,project_num,contract_id')->where('id',$data['project_id'])->findOrEmpty();
|
$project = CostProject::field('project_name,project_num,contract_id')->where('id', $data['project_id'])->findOrEmpty();
|
||||||
$contract = CostApprovedProject::field('contract_name,project_director,industry_nature')->where('id',$project['contract_id'])->findOrEmpty();
|
$contract = MarketingContract::field('contract_name,industry_nature')->where('id', $project['contract_id'])->findOrEmpty();
|
||||||
$data['project_name'] = $project['project_name'];
|
$data['project_name'] = $project['project_name'];
|
||||||
$data['project_num'] = $project['project_num'];
|
$data['project_num'] = $project['project_num'];
|
||||||
$data['contract_name'] = $contract['contract_name'];
|
$data['contract_name'] = $contract['contract_name'];
|
||||||
$data['project_director'] = $contract['project_director'];
|
$data['industry_nature'] = $contract->industry_nature_text;
|
||||||
$data['industry_nature'] = $contract->industry_nature_text;
|
//到账金额
|
||||||
//到账金额
|
$data['total_refund_amount'] = ZjzxRefund::where('project_id', $data['project_id'])->sum('amount');
|
||||||
$data['total_refund_amount'] = ZjzxRefund::where('project_id',$data['project_id'])->sum('amount');
|
//已支付总额
|
||||||
//已支付总额
|
$data['total_pay_amount'] = ProjectCommission::where('project_id', $data['project_id'])->sum('bczfze');
|
||||||
$data['total_pay_amount'] = ProjectCommission::where('project_id',$data['project_id'])->sum('bczfze');
|
//应提成总金额
|
||||||
//应提成总金额
|
$data['total_commission_amount'] = $data['total_refund_amount'] * ($data['rate'] / 100);
|
||||||
$data['total_commission_amount'] = $data['total_refund_amount'] * ($data['rate'] / 100);
|
$data['children'] = ProjectCommissionDetail::field('id,engineer,task_name,task_type,professional_type,zj_amount,sk_amount,tc_rate,tc_amount,pay_amount,other_fee')->where('project_commission_id', $data['id'])->select()->toArray();
|
||||||
$data['children'] = ProjectCommissionDetail::field('id,engineer,task_name,task_type,professional_type,zj_amount,sk_amount,tc_rate,tc_amount,pay_amount,other_fee')->where('project_commission_id', $data['id'])->select()->toArray();
|
})
|
||||||
})
|
->toArray();
|
||||||
->toArray();
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 获取数量
|
* @notes 获取数量
|
||||||
* @return int
|
* @return int
|
||||||
* @author likeadmin
|
* @author likeadmin
|
||||||
* @date 2024/02/23 09:37
|
* @date 2024/02/23 09:37
|
||||||
*/
|
*/
|
||||||
public function count(): int
|
public function count(): int
|
||||||
{
|
{
|
||||||
return ProjectCommission::where($this->searchWhere)->count();
|
return ProjectCommission::where($this->searchWhere)->count();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setFileName(): string
|
public function setFileName(): string
|
||||||
{
|
{
|
||||||
return '项目提成';
|
return '项目提成';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 导出字段
|
* @notes 导出字段
|
||||||
* @return string[]
|
* @return string[]
|
||||||
* @author 段誉
|
* @author 段誉
|
||||||
* @date 2022/11/24 16:17
|
* @date 2022/11/24 16:17
|
||||||
*/
|
*/
|
||||||
public function setExcelFields(): array
|
public function setExcelFields(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'id' => 'id',
|
'id' => 'id',
|
||||||
'num' => '单据编号',
|
'num' => '单据编号',
|
||||||
'project_id' => '项目id',
|
'project_id' => '项目id',
|
||||||
'affcontract' => '关联合同',
|
'affcontract' => '关联合同',
|
||||||
'industry' => '行业',
|
'industry' => '行业',
|
||||||
'hk' => '项目回款总额',
|
'hk' => '项目回款总额',
|
||||||
'rate' => '提成比例(%)',
|
'rate' => '提成比例(%)',
|
||||||
'ticheng' => '应提成总金额',
|
'ticheng' => '应提成总金额',
|
||||||
'paid_amount' => '已支付总额',
|
'paid_amount' => '已支付总额',
|
||||||
'bczfze' => '本次支付总额',
|
'bczfze' => '本次支付总额',
|
||||||
'djr' => '登记人',
|
'djr' => '登记人',
|
||||||
'apptime' => '登记日期',
|
'apptime' => '登记日期',
|
||||||
'remark' => '备注',
|
'remark' => '备注',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -12,146 +12,144 @@
|
|||||||
// | author: likeadminTeam
|
// | author: likeadminTeam
|
||||||
// +----------------------------------------------------------------------
|
// +----------------------------------------------------------------------
|
||||||
|
|
||||||
namespace app\adminapi\lists\cost_project;
|
namespace app\adminapi\lists\cost_project;
|
||||||
|
|
||||||
|
|
||||||
use app\adminapi\lists\BaseAdminDataLists;
|
use app\adminapi\lists\BaseAdminDataLists;
|
||||||
use app\common\lists\ListsExcelInterface;
|
use app\common\lists\ListsExcelInterface;
|
||||||
use app\common\model\cost_project\CostProject;
|
use app\common\lists\ListsSearchInterface;
|
||||||
use app\common\lists\ListsSearchInterface;
|
use app\common\model\cost_project\CostProject;
|
||||||
use app\common\model\ProjectCommission;
|
use app\common\model\ProjectCommission;
|
||||||
use app\common\model\zjzx_finance\ZjzxInvoice;
|
use app\common\model\zjzx_finance\ZjzxInvoice;
|
||||||
use app\common\model\zjzx_finance\ZjzxRefund;
|
use app\common\model\zjzx_finance\ZjzxRefund;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 造价项目台账列表
|
* 造价项目台账列表
|
||||||
* Class CostProjectLists
|
* Class CostProjectLists
|
||||||
* @package app\adminapi\listscost_project
|
* @package app\adminapi\listscost_project
|
||||||
*/
|
*/
|
||||||
class CostProjectLists extends BaseAdminDataLists implements ListsSearchInterface,ListsExcelInterface
|
class CostProjectLists extends BaseAdminDataLists implements ListsSearchInterface, ListsExcelInterface
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 设置搜索条件
|
* @notes 设置搜索条件
|
||||||
* @return \string[][]
|
* @return \string[][]
|
||||||
* @author likeadmin
|
* @author likeadmin
|
||||||
* @date 2024/02/21 09:23
|
* @date 2024/02/21 09:23
|
||||||
*/
|
*/
|
||||||
public function setSearch(): array
|
public function setSearch(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'=' => ['cost_project_id','types','industry'],
|
'=' => ['cost_project_id', 'types', 'industry'],
|
||||||
'%like%' => ['project_num', 'project_name'],
|
'%like%' => ['project_num', 'project_name'],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 获取造价项目台账列表
|
* @notes 获取造价项目台账列表
|
||||||
* @return array
|
* @return array
|
||||||
* @throws \think\db\exception\DataNotFoundException
|
* @throws \think\db\exception\DataNotFoundException
|
||||||
* @throws \think\db\exception\DbException
|
* @throws \think\db\exception\DbException
|
||||||
* @throws \think\db\exception\ModelNotFoundException
|
* @throws \think\db\exception\ModelNotFoundException
|
||||||
* @author likeadmin
|
* @author likeadmin
|
||||||
* @date 2024/02/21 09:23
|
* @date 2024/02/21 09:23
|
||||||
*/
|
*/
|
||||||
public function lists(): array
|
public function lists(): array
|
||||||
{
|
{
|
||||||
$task_allocation = $this->request->param('task_allocation', 0);
|
$task_allocation = $this->request->param('task_allocation', 0);
|
||||||
// 筛选出关联了任务类别的项目
|
// 筛选出关联了任务类别的项目
|
||||||
if ($task_allocation == 1) {
|
if ($task_allocation == 1) {
|
||||||
return CostProject::alias('p')
|
return CostProject::alias('p')
|
||||||
->join('task_type t', 'p.id=t.cost_project_id')
|
->join('task_type t', 'p.id=t.cost_project_id')
|
||||||
->where($this->searchWhere)
|
->where($this->searchWhere)
|
||||||
->field('p.*')
|
->field('p.*')
|
||||||
->limit($this->limitOffset, $this->limitLength)
|
->limit($this->limitOffset, $this->limitLength)
|
||||||
->with(['contract'])
|
->with(['contract'])
|
||||||
->order(['id' => 'desc'])
|
->order(['id' => 'desc'])
|
||||||
->select()
|
->select()
|
||||||
->each(function($item){
|
->each(function ($item) {
|
||||||
$item['person_text'] = $item->person_text;
|
$item['person_text'] = $item->person_text;
|
||||||
$item['contract']['contract_type_text'] = $item['contract']->contract_type_text;
|
$item['total_invoice_amount'] = ZjzxInvoice::where('project_id', $item['id'])->sum('apply_amount');
|
||||||
$item['total_invoice_amount'] = ZjzxInvoice::where('project_id',$item['id'])->sum('apply_amount');
|
$item['total_refund_amount'] = ZjzxRefund::where('project_id', $item['id'])->sum('amount');
|
||||||
$item['total_refund_amount'] = ZjzxRefund::where('project_id',$item['id'])->sum('amount');
|
$item['total_pay_amount'] = ProjectCommission::where('project_id', $item['id'])->sum('bczfze');
|
||||||
$item['total_pay_amount'] = ProjectCommission::where('project_id',$item['id'])->sum('bczfze');
|
})
|
||||||
})
|
->toArray();
|
||||||
->toArray();
|
}
|
||||||
}
|
return CostProject::where($this->searchWhere)
|
||||||
return CostProject::where($this->searchWhere)
|
->limit($this->limitOffset, $this->limitLength)
|
||||||
->limit($this->limitOffset, $this->limitLength)
|
->with(['contract'])
|
||||||
->with(['contract'])
|
->order(['id' => 'desc'])
|
||||||
->order(['id' => 'desc'])
|
->select()
|
||||||
->select()
|
->each(function ($item) {
|
||||||
->each(function($item){
|
$item['person_text'] = $item->person_text;
|
||||||
$item['person_text'] = $item->person_text;
|
$item['total_invoice_amount'] = ZjzxInvoice::where('project_id', $item['id'])->sum('apply_amount');
|
||||||
$item['contract']['contract_type_text'] = $item['contract']->contract_type_text;
|
$item['total_refund_amount'] = ZjzxRefund::where('project_id', $item['id'])->sum('amount');
|
||||||
$item['total_invoice_amount'] = ZjzxInvoice::where('project_id',$item['id'])->sum('apply_amount');
|
$item['total_pay_amount'] = ProjectCommission::where('project_id', $item['id'])->sum('bczfze');
|
||||||
$item['total_refund_amount'] = ZjzxRefund::where('project_id',$item['id'])->sum('amount');
|
})
|
||||||
$item['total_pay_amount'] = ProjectCommission::where('project_id',$item['id'])->sum('bczfze');
|
->toArray();
|
||||||
})
|
|
||||||
->toArray();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 获取造价项目台账数量
|
* @notes 获取造价项目台账数量
|
||||||
* @return int
|
* @return int
|
||||||
* @author likeadmin
|
* @author likeadmin
|
||||||
* @date 2024/02/21 09:23
|
* @date 2024/02/21 09:23
|
||||||
*/
|
*/
|
||||||
public function count(): int
|
public function count(): int
|
||||||
{
|
{
|
||||||
$task_allocation = $this->request->param('task_allocation', 0);
|
$task_allocation = $this->request->param('task_allocation', 0);
|
||||||
// 筛选出关联了任务类别的项目
|
// 筛选出关联了任务类别的项目
|
||||||
if ($task_allocation == 1) {
|
if ($task_allocation == 1) {
|
||||||
return CostProject::alias('p')->join('task_type t', 'p.id=t.cost_project_id')->where($this->searchWhere)->count();
|
return CostProject::alias('p')->join('task_type t', 'p.id=t.cost_project_id')->where($this->searchWhere)->count();
|
||||||
}
|
}
|
||||||
return CostProject::where($this->searchWhere)->count();
|
return CostProject::where($this->searchWhere)->count();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setFileName(): string
|
public function setFileName(): string
|
||||||
{
|
{
|
||||||
return '造价项目';
|
return '造价项目';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 导出字段
|
* @notes 导出字段
|
||||||
* @return string[]
|
* @return string[]
|
||||||
* @author 段誉
|
* @author 段誉
|
||||||
* @date 2022/11/24 16:17
|
* @date 2022/11/24 16:17
|
||||||
*/
|
*/
|
||||||
public function setExcelFields(): array
|
public function setExcelFields(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'id' => 'id',
|
'id' => 'id',
|
||||||
'project_num' => '项目编号',
|
'project_num' => '项目编号',
|
||||||
'project_name' => '项目名称',
|
'project_name' => '项目名称',
|
||||||
'contract_id' => '关联合同',
|
'contract_id' => '关联合同',
|
||||||
'types' => '咨询类型',
|
'types' => '咨询类型',
|
||||||
'industry' => '行业',
|
'industry' => '行业',
|
||||||
'province' => '所在省份',
|
'province' => '所在省份',
|
||||||
'city' => '所在市区',
|
'city' => '所在市区',
|
||||||
'address' => '具体地址',
|
'address' => '具体地址',
|
||||||
'starting' => '计划开始日期',
|
'starting' => '计划开始日期',
|
||||||
'endtime' => '计划结束日期',
|
'endtime' => '计划结束日期',
|
||||||
'jhgq' => '计划工期(天)',
|
'jhgq' => '计划工期(天)',
|
||||||
'org_id' => '组织id',
|
'org_id' => '组织id',
|
||||||
'depar' => '项目所属部门',
|
'depar' => '项目所属部门',
|
||||||
'principal' => '项目负责人',
|
'principal' => '项目负责人',
|
||||||
'person' => '项目相关人员',
|
'person' => '项目相关人员',
|
||||||
'invest' => '项目总投资(万元)',
|
'invest' => '项目总投资(万元)',
|
||||||
'budget' => '预算造价(万元)',
|
'budget' => '预算造价(万元)',
|
||||||
'cost' => '送审造价(万元)',
|
'cost' => '送审造价(万元)',
|
||||||
'approval' => '审定造价(万元)',
|
'approval' => '审定造价(万元)',
|
||||||
'aunit' => '委托单位',
|
'aunit' => '委托单位',
|
||||||
'Acontact' => '委托方联系人',
|
'Acontact' => '委托方联系人',
|
||||||
'acontactnum' => '联系电话',
|
'acontactnum' => '联系电话',
|
||||||
'generalize' => '登记日期',
|
'generalize' => '登记日期',
|
||||||
'note' => '项目规模及概括',
|
'note' => '项目规模及概括',
|
||||||
'remark' => '注意事项'
|
'remark' => '注意事项'
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -12,110 +12,106 @@
|
|||||||
// | author: likeadminTeam
|
// | author: likeadminTeam
|
||||||
// +----------------------------------------------------------------------
|
// +----------------------------------------------------------------------
|
||||||
|
|
||||||
namespace app\adminapi\lists\project_process_management;
|
namespace app\adminapi\lists\project_process_management;
|
||||||
|
|
||||||
|
|
||||||
use app\adminapi\lists\BaseAdminDataLists;
|
use app\adminapi\lists\BaseAdminDataLists;
|
||||||
use app\common\lists\ListsExcelInterface;
|
use app\common\lists\ListsExcelInterface;
|
||||||
use app\common\model\cost_project\CostApprovedProject;
|
use app\common\lists\ListsSearchInterface;
|
||||||
use app\common\model\project_process_management\ApplyWithSeal;
|
use app\common\model\project_process_management\ApplyWithSeal;
|
||||||
use app\common\lists\ListsSearchInterface;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ApplyWithSeal列表
|
* ApplyWithSeal列表
|
||||||
* Class ApplyWithSealLists
|
* Class ApplyWithSealLists
|
||||||
* @package app\adminapi\listsproject_process_management
|
* @package app\adminapi\listsproject_process_management
|
||||||
*/
|
*/
|
||||||
class ApplyWithSealLists extends BaseAdminDataLists implements ListsSearchInterface,ListsExcelInterface
|
class ApplyWithSealLists extends BaseAdminDataLists implements ListsSearchInterface, ListsExcelInterface
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 设置搜索条件
|
* @notes 设置搜索条件
|
||||||
* @return \string[][]
|
* @return \string[][]
|
||||||
* @author likeadmin
|
* @author likeadmin
|
||||||
* @date 2024/02/23 15:05
|
* @date 2024/02/23 15:05
|
||||||
*/
|
*/
|
||||||
public function setSearch(): array
|
public function setSearch(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'=' => ['project_id'],
|
'=' => ['project_id'],
|
||||||
'%like%' => ['num','stampman','applicant']
|
'%like%' => ['num', 'stampman', 'applicant']
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 获取列表
|
* @notes 获取列表
|
||||||
* @return array
|
* @return array
|
||||||
* @throws \think\db\exception\DataNotFoundException
|
* @throws \think\db\exception\DataNotFoundException
|
||||||
* @throws \think\db\exception\DbException
|
* @throws \think\db\exception\DbException
|
||||||
* @throws \think\db\exception\ModelNotFoundException
|
* @throws \think\db\exception\ModelNotFoundException
|
||||||
* @author likeadmin
|
* @author likeadmin
|
||||||
* @date 2024/02/23 15:05
|
* @date 2024/02/23 15:05
|
||||||
*/
|
*/
|
||||||
public function lists(): array
|
public function lists(): array
|
||||||
{
|
{
|
||||||
return ApplyWithSeal::with(['projectInfo', 'dept'])->where($this->searchWhere)
|
return ApplyWithSeal::with(['projectInfo', 'dept'])->where($this->searchWhere)
|
||||||
->limit($this->limitOffset, $this->limitLength)
|
->limit($this->limitOffset, $this->limitLength)
|
||||||
->order(['id' => 'desc'])
|
->order(['id' => 'desc'])
|
||||||
->select()->each(function($data){
|
->select()
|
||||||
$contract = CostApprovedProject::field('project_director')->where('id',$data['projectInfo']['contract_id'])->findOrEmpty();
|
->toArray();
|
||||||
$data['project_director'] = $contract['project_director'];
|
}
|
||||||
})
|
|
||||||
->toArray();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 获取数量
|
* @notes 获取数量
|
||||||
* @return int
|
* @return int
|
||||||
* @author likeadmin
|
* @author likeadmin
|
||||||
* @date 2024/02/23 15:05
|
* @date 2024/02/23 15:05
|
||||||
*/
|
*/
|
||||||
public function count(): int
|
public function count(): int
|
||||||
{
|
{
|
||||||
return ApplyWithSeal::where($this->searchWhere)->count();
|
return ApplyWithSeal::where($this->searchWhere)->count();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setFileName(): string
|
public function setFileName(): string
|
||||||
{
|
{
|
||||||
return '用章申请';
|
return '用章申请';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 导出字段
|
* @notes 导出字段
|
||||||
* @return string[]
|
* @return string[]
|
||||||
* @author 段誉
|
* @author 段誉
|
||||||
* @date 2022/11/24 16:17
|
* @date 2022/11/24 16:17
|
||||||
*/
|
*/
|
||||||
public function setExcelFields(): array
|
public function setExcelFields(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'id' => 'id',
|
'id' => 'id',
|
||||||
'num' => '单据编号',
|
'num' => '单据编号',
|
||||||
'project_id' => '项目id',
|
'project_id' => '项目id',
|
||||||
'types' => '登记人',
|
'types' => '登记人',
|
||||||
'filetype' => '登记人',
|
'filetype' => '登记人',
|
||||||
'ridingseam' => '进度申报造价合计',
|
'ridingseam' => '进度申报造价合计',
|
||||||
'name' => '进度审核造价合计',
|
'name' => '进度审核造价合计',
|
||||||
'frequency' => '累计应付工程款合计',
|
'frequency' => '累计应付工程款合计',
|
||||||
'limit' => '累计应付工程款合计',
|
'limit' => '累计应付工程款合计',
|
||||||
'org_id' => '累计应付工程款合计',
|
'org_id' => '累计应付工程款合计',
|
||||||
'depar' => '累计应付工程款合计',
|
'depar' => '累计应付工程款合计',
|
||||||
'stampman' => '累计应付工程款合计',
|
'stampman' => '累计应付工程款合计',
|
||||||
'content' => '累计应付工程款合计',
|
'content' => '累计应付工程款合计',
|
||||||
'loan' => '累计应付工程款合计',
|
'loan' => '累计应付工程款合计',
|
||||||
'borrow' => '累计应付工程款合计',
|
'borrow' => '累计应付工程款合计',
|
||||||
'returndate' => '累计应付工程款合计',
|
'returndate' => '累计应付工程款合计',
|
||||||
'applicant' => '累计应付工程款合计',
|
'applicant' => '累计应付工程款合计',
|
||||||
'date' => '累计应付工程款合计',
|
'date' => '累计应付工程款合计',
|
||||||
'sjborrow' => '累计应付工程款合计',
|
'sjborrow' => '累计应付工程款合计',
|
||||||
'sjborrower' => '累计应付工程款合计',
|
'sjborrower' => '累计应付工程款合计',
|
||||||
'sjreturn' => '累计应付工程款合计',
|
'sjreturn' => '累计应付工程款合计',
|
||||||
'returnee' => '累计应付工程款合计'
|
'returnee' => '累计应付工程款合计'
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -1,82 +1,85 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace app\adminapi\lists\zjzx_finance;
|
|
||||||
|
|
||||||
use app\adminapi\lists\BaseAdminDataLists;
|
namespace app\adminapi\lists\zjzx_finance;
|
||||||
use app\common\model\cost_project\CostApprovedProject;
|
|
||||||
use app\common\model\cost_project\CostProject;
|
use app\adminapi\lists\BaseAdminDataLists;
|
||||||
use app\common\model\zjzx_finance\ZjzxInvoice;
|
use app\common\lists\ListsSearchInterface;
|
||||||
use app\common\lists\ListsSearchInterface;
|
use app\common\model\cost_project\CostProject;
|
||||||
use app\common\model\zjzx_finance\ZjzxRefund;
|
use app\common\model\marketing\MarketingContract;
|
||||||
|
use app\common\model\marketing\MarketingCustom;
|
||||||
|
use app\common\model\zjzx_finance\ZjzxInvoice;
|
||||||
|
use app\common\model\zjzx_finance\ZjzxRefund;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 造价咨询--开票台账列表
|
* 造价咨询--开票台账列表
|
||||||
* Class ZjzxInvoiceLists
|
* Class ZjzxInvoiceLists
|
||||||
* @package app\adminapi\listszjzx_finance
|
* @package app\adminapi\listszjzx_finance
|
||||||
*/
|
*/
|
||||||
class ZjzxInvoiceLists extends BaseAdminDataLists implements ListsSearchInterface
|
class ZjzxInvoiceLists extends BaseAdminDataLists implements ListsSearchInterface
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 设置搜索条件
|
* @notes 设置搜索条件
|
||||||
* @return \string[][]
|
* @return \string[][]
|
||||||
* @author likeadmin
|
* @author likeadmin
|
||||||
* @date 2024/03/15 17:05
|
* @date 2024/03/15 17:05
|
||||||
*/
|
*/
|
||||||
public function setSearch(): array
|
public function setSearch(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'=' => ['project_id', 'invoice_type'],
|
'=' => ['project_id', 'invoice_type'],
|
||||||
'%like%' => ['invoice_code', 'apply_company'],
|
'%like%' => ['invoice_code', 'apply_company'],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 获取造价咨询--开票台账列表
|
* @notes 获取造价咨询--开票台账列表
|
||||||
* @return array
|
* @return array
|
||||||
* @throws \think\db\exception\DataNotFoundException
|
* @throws \think\db\exception\DataNotFoundException
|
||||||
* @throws \think\db\exception\DbException
|
* @throws \think\db\exception\DbException
|
||||||
* @throws \think\db\exception\ModelNotFoundException
|
* @throws \think\db\exception\ModelNotFoundException
|
||||||
* @author likeadmin
|
* @author likeadmin
|
||||||
* @date 2024/03/15 17:05
|
* @date 2024/03/15 17:05
|
||||||
*/
|
*/
|
||||||
public function lists(): array
|
public function lists(): array
|
||||||
{
|
{
|
||||||
return ZjzxInvoice::where($this->searchWhere)
|
return ZjzxInvoice::where($this->searchWhere)
|
||||||
->field(['id', 'project_id', 'invoice_code', 'invoice_type', 'apply_amount', 'create_user', 'create_time'])
|
->field(['id', 'project_id', 'invoice_code', 'invoice_type', 'apply_amount', 'create_user', 'create_time'])
|
||||||
->limit($this->limitOffset, $this->limitLength)
|
->limit($this->limitOffset, $this->limitLength)
|
||||||
->order(['id' => 'desc'])
|
->order(['id' => 'desc'])
|
||||||
->select()->each(function($data){
|
->select()->each(function ($data) {
|
||||||
$project = CostProject::field('project_num,project_name,contract_id')->where('id',$data['project_id'])->findOrEmpty();
|
$project = CostProject::field('project_num,project_name,contract_id')->where('id', $data['project_id'])->findOrEmpty();
|
||||||
$contract = CostApprovedProject::field('contract_name,contract_type,part_a,part_b,money,create_time')->where('id',$project['contract_id'])->findOrEmpty();
|
$contract = MarketingContract::field('contract_name,contract_type,part_a,part_b,signed_amount,create_time')->where('id', $project['contract_id'])->findOrEmpty();
|
||||||
$data['project_num'] = $project['project_num'];
|
$part_a = MarketingCustom::field('name')->where('id', $contract['part_a'])->findOrEmpty();
|
||||||
$data['project_name'] = $project['project_name'];
|
$data['project_num'] = $project['project_num'];
|
||||||
$data['contract_name'] = $contract['contract_name'];
|
$data['project_name'] = $project['project_name'];
|
||||||
$data['contract_type'] = $contract->contract_type_text;
|
$data['contract_name'] = $contract['contract_name'];
|
||||||
$data['part_a'] = $contract['part_a'];
|
$data['contract_type'] = !$contract->isEmpty() ? $contract->contract_type_text : '';
|
||||||
$data['part_b'] = $contract['part_b'];
|
$data['part_a'] = $part_a['name'];
|
||||||
$data['sign_money'] = $contract['money'];
|
$data['part_b'] = $contract['part_b'];
|
||||||
$data['sign_time'] = $contract['create_time'];
|
$data['sign_money'] = $contract['signed_amount'];
|
||||||
$data['invoice_type_text'] = $data->invoice_type_text;
|
$data['sign_time'] = $contract['create_time'];
|
||||||
$refund = ZjzxRefund::where('invoice_id',$data['id'])->findOrEmpty();
|
$data['invoice_type_text'] = $data->invoice_type_text;
|
||||||
$data['is_refund'] = !$refund->isEmpty() ? '已到账' : '未到账';
|
$refund = ZjzxRefund::where('invoice_id', $data['id'])->findOrEmpty();
|
||||||
$data['refund_amount'] = !$refund->isEmpty() ? ZjzxRefund::where('invoice_id',$data['id'])->sum('amount') : 0.00;
|
$data['is_refund'] = !$refund->isEmpty() ? '已到账' : '未到账';
|
||||||
})
|
$data['refund_amount'] = !$refund->isEmpty() ? ZjzxRefund::where('invoice_id', $data['id'])->sum('amount') : 0.00;
|
||||||
->toArray();
|
})
|
||||||
}
|
->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 获取造价咨询--开票台账数量
|
* @notes 获取造价咨询--开票台账数量
|
||||||
* @return int
|
* @return int
|
||||||
* @author likeadmin
|
* @author likeadmin
|
||||||
* @date 2024/03/15 17:05
|
* @date 2024/03/15 17:05
|
||||||
*/
|
*/
|
||||||
public function count(): int
|
public function count(): int
|
||||||
{
|
{
|
||||||
return ZjzxInvoice::where($this->searchWhere)->count();
|
return ZjzxInvoice::where($this->searchWhere)->count();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -1,79 +1,82 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace app\adminapi\lists\zjzx_finance;
|
|
||||||
|
|
||||||
use app\adminapi\lists\BaseAdminDataLists;
|
namespace app\adminapi\lists\zjzx_finance;
|
||||||
use app\common\model\cost_project\CostApprovedProject;
|
|
||||||
use app\common\model\cost_project\CostProject;
|
use app\adminapi\lists\BaseAdminDataLists;
|
||||||
use app\common\model\zjzx_finance\ZjzxInvoice;
|
use app\common\lists\ListsSearchInterface;
|
||||||
use app\common\model\zjzx_finance\ZjzxRefund;
|
use app\common\model\cost_project\CostProject;
|
||||||
use app\common\lists\ListsSearchInterface;
|
use app\common\model\marketing\MarketingContract;
|
||||||
|
use app\common\model\marketing\MarketingCustom;
|
||||||
|
use app\common\model\zjzx_finance\ZjzxInvoice;
|
||||||
|
use app\common\model\zjzx_finance\ZjzxRefund;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 造价咨询--到账台账列表
|
* 造价咨询--到账台账列表
|
||||||
* Class ZjzxRefundLists
|
* Class ZjzxRefundLists
|
||||||
* @package app\adminapi\listszjzx_finance
|
* @package app\adminapi\listszjzx_finance
|
||||||
*/
|
*/
|
||||||
class ZjzxRefundLists extends BaseAdminDataLists implements ListsSearchInterface
|
class ZjzxRefundLists extends BaseAdminDataLists implements ListsSearchInterface
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 设置搜索条件
|
* @notes 设置搜索条件
|
||||||
* @return \string[][]
|
* @return \string[][]
|
||||||
* @author likeadmin
|
* @author likeadmin
|
||||||
* @date 2024/03/15 17:05
|
* @date 2024/03/15 17:05
|
||||||
*/
|
*/
|
||||||
public function setSearch(): array
|
public function setSearch(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'=' => ['project_id', 'invoice_id'],
|
'=' => ['project_id', 'invoice_id'],
|
||||||
'%like%' => ['create_user'],
|
'%like%' => ['create_user'],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 获取造价咨询--到账台账列表
|
* @notes 获取造价咨询--到账台账列表
|
||||||
* @return array
|
* @return array
|
||||||
* @throws \think\db\exception\DataNotFoundException
|
* @throws \think\db\exception\DataNotFoundException
|
||||||
* @throws \think\db\exception\DbException
|
* @throws \think\db\exception\DbException
|
||||||
* @throws \think\db\exception\ModelNotFoundException
|
* @throws \think\db\exception\ModelNotFoundException
|
||||||
* @author likeadmin
|
* @author likeadmin
|
||||||
* @date 2024/03/15 17:05
|
* @date 2024/03/15 17:05
|
||||||
*/
|
*/
|
||||||
public function lists(): array
|
public function lists(): array
|
||||||
{
|
{
|
||||||
return ZjzxRefund::where($this->searchWhere)
|
return ZjzxRefund::where($this->searchWhere)
|
||||||
->field(['id', 'project_id', 'invoice_id', 'amount', 'date'])
|
->field(['id', 'project_id', 'invoice_id', 'amount', 'date'])
|
||||||
->limit($this->limitOffset, $this->limitLength)
|
->limit($this->limitOffset, $this->limitLength)
|
||||||
->order(['id' => 'desc'])
|
->order(['id' => 'desc'])
|
||||||
->select()->each(function($data){
|
->select()->each(function ($data) {
|
||||||
$project = CostProject::field('project_num,project_name,contract_id')->where('id',$data['project_id'])->findOrEmpty();
|
$project = CostProject::field('project_num,project_name,contract_id')->where('id', $data['project_id'])->findOrEmpty();
|
||||||
$contract = CostApprovedProject::field('contract_name,contract_type,part_a,part_b')->where('id',$project['contract_id'])->findOrEmpty();
|
$contract = MarketingContract::field('contract_name,contract_type,part_a,part_b')->where('id', $project['contract_id'])->findOrEmpty();
|
||||||
$invoice = ZjzxInvoice::field('invoice_code,apply_amount')->where('id',$data['invoice_id'])->findOrEmpty();
|
$invoice = ZjzxInvoice::field('invoice_code,apply_amount')->where('id', $data['invoice_id'])->findOrEmpty();
|
||||||
$data['project_num'] = $project['project_num'];
|
$part_a = MarketingCustom::field('name')->where('id', $contract['part_a'])->findOrEmpty();
|
||||||
$data['project_name'] = $project['project_name'];
|
$data['project_num'] = $project['project_num'];
|
||||||
$data['contract_name'] = $contract['contract_name'];
|
$data['project_name'] = $project['project_name'];
|
||||||
$data['contract_type'] = $contract->contract_type_text;
|
$data['contract_name'] = $contract['contract_name'];
|
||||||
$data['part_a'] = $contract['part_a'];
|
$data['contract_type'] = !$contract->isEmpty() ? $contract->contract_type_text : '';
|
||||||
$data['part_b'] = $contract['part_b'];
|
$data['part_a'] = $part_a['name'];
|
||||||
$data['invoice_code'] = $invoice['invoice_code'];
|
$data['part_b'] = $contract['part_b'];
|
||||||
$data['apply_amount'] = $invoice['apply_amount'];
|
$data['invoice_code'] = $invoice['invoice_code'];
|
||||||
})
|
$data['apply_amount'] = $invoice['apply_amount'];
|
||||||
->toArray();
|
})
|
||||||
}
|
->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 获取造价咨询--到账台账数量
|
* @notes 获取造价咨询--到账台账数量
|
||||||
* @return int
|
* @return int
|
||||||
* @author likeadmin
|
* @author likeadmin
|
||||||
* @date 2024/03/15 17:05
|
* @date 2024/03/15 17:05
|
||||||
*/
|
*/
|
||||||
public function count(): int
|
public function count(): int
|
||||||
{
|
{
|
||||||
return ZjzxRefund::where($this->searchWhere)->count();
|
return ZjzxRefund::where($this->searchWhere)->count();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -1,81 +1,84 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace app\adminapi\lists\zjzx_finance;
|
|
||||||
|
|
||||||
use app\adminapi\lists\BaseAdminDataLists;
|
namespace app\adminapi\lists\zjzx_finance;
|
||||||
use app\common\model\cost_project\CostApprovedProject;
|
|
||||||
use app\common\model\cost_project\CostProject;
|
use app\adminapi\lists\BaseAdminDataLists;
|
||||||
use app\common\model\zjzx_finance\ZjzxInvoice;
|
use app\common\lists\ListsSearchInterface;
|
||||||
use app\common\model\zjzx_finance\ZjzxRefund;
|
use app\common\model\cost_project\CostProject;
|
||||||
use app\common\model\zjzx_finance\ZjzxSettlement;
|
use app\common\model\marketing\MarketingContract;
|
||||||
use app\common\lists\ListsSearchInterface;
|
use app\common\model\marketing\MarketingCustom;
|
||||||
|
use app\common\model\zjzx_finance\ZjzxInvoice;
|
||||||
|
use app\common\model\zjzx_finance\ZjzxRefund;
|
||||||
|
use app\common\model\zjzx_finance\ZjzxSettlement;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 造价咨询--项目结算列表
|
* 造价咨询--项目结算列表
|
||||||
* Class ZjzxSettlementLists
|
* Class ZjzxSettlementLists
|
||||||
* @package app\adminapi\listszjzx_finance
|
* @package app\adminapi\listszjzx_finance
|
||||||
*/
|
*/
|
||||||
class ZjzxSettlementLists extends BaseAdminDataLists implements ListsSearchInterface
|
class ZjzxSettlementLists extends BaseAdminDataLists implements ListsSearchInterface
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 设置搜索条件
|
* @notes 设置搜索条件
|
||||||
* @return \string[][]
|
* @return \string[][]
|
||||||
* @author likeadmin
|
* @author likeadmin
|
||||||
* @date 2024/03/15 17:05
|
* @date 2024/03/15 17:05
|
||||||
*/
|
*/
|
||||||
public function setSearch(): array
|
public function setSearch(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'=' => ['project_id', 'date'],
|
'=' => ['project_id', 'date'],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 获取造价咨询--项目结算列表
|
* @notes 获取造价咨询--项目结算列表
|
||||||
* @return array
|
* @return array
|
||||||
* @throws \think\db\exception\DataNotFoundException
|
* @throws \think\db\exception\DataNotFoundException
|
||||||
* @throws \think\db\exception\DbException
|
* @throws \think\db\exception\DbException
|
||||||
* @throws \think\db\exception\ModelNotFoundException
|
* @throws \think\db\exception\ModelNotFoundException
|
||||||
* @author likeadmin
|
* @author likeadmin
|
||||||
* @date 2024/03/15 17:05
|
* @date 2024/03/15 17:05
|
||||||
*/
|
*/
|
||||||
public function lists(): array
|
public function lists(): array
|
||||||
{
|
{
|
||||||
return ZjzxSettlement::where($this->searchWhere)
|
return ZjzxSettlement::where($this->searchWhere)
|
||||||
->field(['id', 'project_id', 'amount', 'date'])
|
->field(['id', 'project_id', 'amount', 'date'])
|
||||||
->limit($this->limitOffset, $this->limitLength)
|
->limit($this->limitOffset, $this->limitLength)
|
||||||
->order(['id' => 'desc'])
|
->order(['id' => 'desc'])
|
||||||
->select()->each(function($data){
|
->select()->each(function ($data) {
|
||||||
$project = CostProject::field('project_num,project_name,contract_id')->where('id',$data['project_id'])->findOrEmpty();
|
$project = CostProject::field('project_num,project_name,contract_id')->where('id', $data['project_id'])->findOrEmpty();
|
||||||
$contract = CostApprovedProject::field('contract_name,contract_type,part_a,part_b,money,create_time')->where('id',$project['contract_id'])->findOrEmpty();
|
$contract = MarketingContract::field('contract_name,contract_type,part_a,part_b,signed_amount,create_time')->where('id', $project['contract_id'])->findOrEmpty();
|
||||||
$data['invoice_type_text'] = $data->invoice_type_text;
|
$part_a = MarketingCustom::field('name')->where('id', $contract['part_a'])->findOrEmpty();
|
||||||
$data['project_num'] = $project['project_num'];
|
$data['invoice_type_text'] = $data->invoice_type_text;
|
||||||
$data['project_name'] = $project['project_name'];
|
$data['project_num'] = $project['project_num'];
|
||||||
$data['contract_name'] = $contract['contract_name'];
|
$data['project_name'] = $project['project_name'];
|
||||||
$data['contract_type'] = $contract->contract_type_text;
|
$data['contract_name'] = $contract['contract_name'];
|
||||||
$data['part_a'] = $contract['part_a'];
|
$data['contract_type'] = $contract->contract_type_text;
|
||||||
$data['part_b'] = $contract['part_b'];
|
$data['part_a'] = $part_a['name'];
|
||||||
$data['sign_money'] = $contract['money'];
|
$data['part_b'] = $contract['part_b'];
|
||||||
$data['sign_time'] = $contract['create_time'];
|
$data['sign_money'] = $contract['signed_amount'];
|
||||||
$data['total_invoice_amount'] = ZjzxInvoice::where('project_id',$data['project_id'])->sum('apply_amount');
|
$data['sign_time'] = $contract['create_time'];
|
||||||
$data['total_refund_amount'] = ZjzxRefund::where('project_id',$data['project_id'])->sum('amount');
|
$data['total_invoice_amount'] = ZjzxInvoice::where('project_id', $data['project_id'])->sum('apply_amount');
|
||||||
})
|
$data['total_refund_amount'] = ZjzxRefund::where('project_id', $data['project_id'])->sum('amount');
|
||||||
->toArray();
|
})
|
||||||
}
|
->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 获取造价咨询--项目结算数量
|
* @notes 获取造价咨询--项目结算数量
|
||||||
* @return int
|
* @return int
|
||||||
* @author likeadmin
|
* @author likeadmin
|
||||||
* @date 2024/03/15 17:05
|
* @date 2024/03/15 17:05
|
||||||
*/
|
*/
|
||||||
public function count(): int
|
public function count(): int
|
||||||
{
|
{
|
||||||
return ZjzxSettlement::where($this->searchWhere)->count();
|
return ZjzxSettlement::where($this->searchWhere)->count();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -12,151 +12,145 @@
|
|||||||
// | author: likeadminTeam
|
// | author: likeadminTeam
|
||||||
// +----------------------------------------------------------------------
|
// +----------------------------------------------------------------------
|
||||||
|
|
||||||
namespace app\adminapi\logic\project_process_management;
|
namespace app\adminapi\logic\project_process_management;
|
||||||
|
|
||||||
|
|
||||||
use app\common\model\cost_project\CostApprovedProject;
|
use app\common\logic\BaseLogic;
|
||||||
use app\common\model\dept\Dept;
|
use app\common\model\dept\Dept;
|
||||||
use app\common\model\dept\Orgs;
|
use app\common\model\project_process_management\ApplyWithSeal;
|
||||||
use app\common\model\project_process_management\ApplyWithSeal;
|
use think\facade\Db;
|
||||||
use app\common\logic\BaseLogic;
|
|
||||||
use think\facade\Db;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ApplyWithSeal逻辑
|
* ApplyWithSeal逻辑
|
||||||
* Class ApplyWithSealLogic
|
* Class ApplyWithSealLogic
|
||||||
* @package app\adminapi\logic\project_process_management
|
* @package app\adminapi\logic\project_process_management
|
||||||
*/
|
*/
|
||||||
class ApplyWithSealLogic extends BaseLogic
|
class ApplyWithSealLogic extends BaseLogic
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 添加
|
* @notes 添加
|
||||||
* @param array $params
|
* @param array $params
|
||||||
* @return bool
|
* @return bool
|
||||||
* @author likeadmin
|
* @author likeadmin
|
||||||
* @date 2024/02/23 15:05
|
* @date 2024/02/23 15:05
|
||||||
*/
|
*/
|
||||||
public static function add(array $params): bool
|
public static function add(array $params): bool
|
||||||
{
|
{
|
||||||
Db::startTrans();
|
Db::startTrans();
|
||||||
try {
|
try {
|
||||||
ApplyWithSeal::create([
|
ApplyWithSeal::create([
|
||||||
'dataid' => generate_sn(ApplyWithSeal::class, 'dataid'),
|
'dataid' => generate_sn(ApplyWithSeal::class, 'dataid'),
|
||||||
'num' => generate_sn(ApplyWithSeal::class, 'num'),
|
'num' => generate_sn(ApplyWithSeal::class, 'num'),
|
||||||
'types' => $params['types'],
|
'types' => $params['types'],
|
||||||
'filetype' => $params['filetype'],
|
'filetype' => $params['filetype'],
|
||||||
'ridingseam' => $params['ridingseam'],
|
'ridingseam' => $params['ridingseam'],
|
||||||
'name' => $params['name'],
|
'name' => $params['name'],
|
||||||
'frequency' => $params['frequency'],
|
'frequency' => $params['frequency'],
|
||||||
'limit' => $params['limit'],
|
'limit' => $params['limit'],
|
||||||
'org_id' => $params['org_id'],
|
'org_id' => $params['org_id'],
|
||||||
'depar' => $params['depar'],
|
'depar' => $params['depar'],
|
||||||
'stampman' => $params['stampman'],
|
'stampman' => $params['stampman'],
|
||||||
'project_id' => $params['project_id'],
|
'project_id' => $params['project_id'],
|
||||||
'content' => $params['content'],
|
'content' => $params['content'],
|
||||||
'loan' => $params['loan'],
|
'loan' => $params['loan'],
|
||||||
'borrow' => $params['borrow'],
|
'borrow' => $params['borrow'],
|
||||||
'returndate' => $params['returndate'],
|
'returndate' => $params['returndate'],
|
||||||
'applicant' => $params['applicant'],
|
'applicant' => $params['applicant'],
|
||||||
'date' => $params['date'],
|
'date' => $params['date'],
|
||||||
'sjborrow' => $params['sjborrow'],
|
'sjborrow' => $params['sjborrow'],
|
||||||
'sjborrower' => $params['sjborrower'],
|
'sjborrower' => $params['sjborrower'],
|
||||||
'sjreturn' => $params['sjreturn'],
|
'sjreturn' => $params['sjreturn'],
|
||||||
'returnee' => $params['returnee'],
|
'returnee' => $params['returnee'],
|
||||||
'annex' => $params['annex'] ? json_encode($params['annex']) : null,
|
'annex' => $params['annex'] ? json_encode($params['annex']) : null,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
Db::commit();
|
Db::commit();
|
||||||
return true;
|
return true;
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
Db::rollback();
|
Db::rollback();
|
||||||
self::setError($e->getMessage());
|
self::setError($e->getMessage());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 编辑
|
* @notes 编辑
|
||||||
* @param array $params
|
* @param array $params
|
||||||
* @return bool
|
* @return bool
|
||||||
* @author likeadmin
|
* @author likeadmin
|
||||||
* @date 2024/02/23 15:05
|
* @date 2024/02/23 15:05
|
||||||
*/
|
*/
|
||||||
public static function edit(array $params): bool
|
public static function edit(array $params): bool
|
||||||
{
|
{
|
||||||
Db::startTrans();
|
Db::startTrans();
|
||||||
try {
|
try {
|
||||||
ApplyWithSeal::where('id', $params['id'])->update([
|
ApplyWithSeal::where('id', $params['id'])->update([
|
||||||
'types' => $params['types'],
|
'types' => $params['types'],
|
||||||
'filetype' => $params['filetype'],
|
'filetype' => $params['filetype'],
|
||||||
'ridingseam' => $params['ridingseam'],
|
'ridingseam' => $params['ridingseam'],
|
||||||
'name' => $params['name'],
|
'name' => $params['name'],
|
||||||
'frequency' => $params['frequency'],
|
'frequency' => $params['frequency'],
|
||||||
'limit' => $params['limit'],
|
'limit' => $params['limit'],
|
||||||
'org_id' => $params['org_id'],
|
'org_id' => $params['org_id'],
|
||||||
'depar' => $params['depar'],
|
'depar' => $params['depar'],
|
||||||
'stampman' => $params['stampman'],
|
'stampman' => $params['stampman'],
|
||||||
'project_id' => $params['project_id'],
|
'project_id' => $params['project_id'],
|
||||||
'content' => $params['content'],
|
'content' => $params['content'],
|
||||||
'loan' => $params['loan'],
|
'loan' => $params['loan'],
|
||||||
'borrow' => $params['borrow'],
|
'borrow' => $params['borrow'],
|
||||||
'returndate' => $params['returndate'],
|
'returndate' => $params['returndate'],
|
||||||
'applicant' => $params['applicant'],
|
'applicant' => $params['applicant'],
|
||||||
'date' => $params['date'],
|
'date' => $params['date'],
|
||||||
'sjborrow' => $params['sjborrow'],
|
'sjborrow' => $params['sjborrow'],
|
||||||
'sjborrower' => $params['sjborrower'],
|
'sjborrower' => $params['sjborrower'],
|
||||||
'sjreturn' => $params['sjreturn'],
|
'sjreturn' => $params['sjreturn'],
|
||||||
'returnee' => $params['returnee'],
|
'returnee' => $params['returnee'],
|
||||||
'annex' => $params['annex'] ? json_encode($params['annex']) : null,
|
'annex' => $params['annex'] ? json_encode($params['annex']) : null,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
Db::commit();
|
Db::commit();
|
||||||
return true;
|
return true;
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
Db::rollback();
|
Db::rollback();
|
||||||
self::setError($e->getMessage());
|
self::setError($e->getMessage());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 删除
|
* @notes 删除
|
||||||
* @param array $params
|
* @param array $params
|
||||||
* @return bool
|
* @return bool
|
||||||
* @author likeadmin
|
* @author likeadmin
|
||||||
* @date 2024/02/23 15:05
|
* @date 2024/02/23 15:05
|
||||||
*/
|
*/
|
||||||
public static function delete(array $params): bool
|
public static function delete(array $params): bool
|
||||||
{
|
{
|
||||||
return ApplyWithSeal::destroy($params['id']);
|
return ApplyWithSeal::destroy($params['id']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 获取详情
|
* @notes 获取详情
|
||||||
* @param $params
|
* @param $params
|
||||||
* @return array
|
* @return array
|
||||||
* @author likeadmin
|
* @author likeadmin
|
||||||
* @date 2024/02/23 15:05
|
* @date 2024/02/23 15:05
|
||||||
*/
|
*/
|
||||||
public static function detail($params): array
|
public static function detail($params): array
|
||||||
{
|
{
|
||||||
$data = ApplyWithSeal::with(['projectInfo'])->findOrEmpty($params['id']);
|
$data = ApplyWithSeal::with(['projectInfo'])->findOrEmpty($params['id']);
|
||||||
$contract = CostApprovedProject::field('project_director')->where('id',$data['projectInfo']['contract_id'])->findOrEmpty();
|
$dept = Dept::field('name')->where('id', $data['depar'])->findOrEmpty();
|
||||||
$org = Orgs::field('name')->where('id',$data['org_id'])->findOrEmpty();
|
$data['dept_name'] = $dept['name'];
|
||||||
$dept = Dept::field('name')->where('id',$data['depar'])->findOrEmpty();
|
$data['types_text'] = $data->types_text;
|
||||||
$data['project_director'] = $contract['project_director'];
|
$data['ridingseam_text'] = $data->ridingseam_text;
|
||||||
$data['org_name'] = $org['name'];
|
$data['filetype_text'] = $data->filetype_text;
|
||||||
$data['dept_name'] = $dept['name'];
|
$data['loan_text'] = $data->loan_text;
|
||||||
$data['types_text'] = $data->types_text;
|
return $data->toArray();
|
||||||
$data['ridingseam_text'] = $data->ridingseam_text;
|
}
|
||||||
$data['filetype_text'] = $data->filetype_text;
|
}
|
||||||
$data['loan_text'] = $data->loan_text;
|
|
||||||
return $data->toArray();
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,144 +1,147 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace app\adminapi\logic\zjzx_finance;
|
|
||||||
|
|
||||||
use app\common\model\cost_project\CostApprovedProject;
|
namespace app\adminapi\logic\zjzx_finance;
|
||||||
use app\common\model\cost_project\CostProject;
|
|
||||||
use app\common\model\zjzx_finance\ZjzxInvoice;
|
use app\common\logic\BaseLogic;
|
||||||
use app\common\logic\BaseLogic;
|
use app\common\model\cost_project\CostProject;
|
||||||
use app\common\model\zjzx_finance\ZjzxRefund;
|
use app\common\model\marketing\MarketingContract;
|
||||||
use think\facade\Db;
|
use app\common\model\marketing\MarketingCustom;
|
||||||
|
use app\common\model\zjzx_finance\ZjzxInvoice;
|
||||||
|
use app\common\model\zjzx_finance\ZjzxRefund;
|
||||||
|
use think\facade\Db;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 造价咨询--开票台账逻辑
|
* 造价咨询--开票台账逻辑
|
||||||
* Class ZjzxInvoiceLogic
|
* Class ZjzxInvoiceLogic
|
||||||
* @package app\adminapi\logic\zjzx_finance
|
* @package app\adminapi\logic\zjzx_finance
|
||||||
*/
|
*/
|
||||||
class ZjzxInvoiceLogic extends BaseLogic
|
class ZjzxInvoiceLogic extends BaseLogic
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @notes 添加造价咨询--开票台账
|
|
||||||
* @param array $params
|
|
||||||
* @return bool
|
|
||||||
* @author likeadmin
|
|
||||||
* @date 2024/03/15 17:05
|
|
||||||
*/
|
|
||||||
public static function add(array $params): bool
|
|
||||||
{
|
|
||||||
Db::startTrans();
|
|
||||||
try {
|
|
||||||
ZjzxInvoice::create([
|
|
||||||
'project_id' => $params['project_id'],
|
|
||||||
'invoice_code' => data_unique_code('XMKP'),
|
|
||||||
'invoice_type' => $params['invoice_type'],
|
|
||||||
'apply_amount' => $params['apply_amount'],
|
|
||||||
'apply_company' => $params['apply_company'],
|
|
||||||
'apply_company_number' => $params['apply_company_number'],
|
|
||||||
'apply_company_address' => $params['apply_company_address'] ?? '',
|
|
||||||
'apply_company_telephone' => $params['apply_company_telephone'] ?? '',
|
|
||||||
'apply_company_bank' => $params['apply_company_bank'] ?? '',
|
|
||||||
'apply_company_account' => $params['apply_company_account'] ?? '',
|
|
||||||
'apply_contact' => $params['apply_contact'] ?? '',
|
|
||||||
'apply_email' => $params['apply_email'] ?? '',
|
|
||||||
'pay_type' => $params['pay_type'] ?? '',
|
|
||||||
'invoice_content' => $params['invoice_content'] ?? '',
|
|
||||||
'create_user' => $params['create_user'],
|
|
||||||
'create_time' => !empty($params['create_time']) ? strtotime($params['create_time']) : time()
|
|
||||||
]);
|
|
||||||
Db::commit();
|
|
||||||
return true;
|
|
||||||
} catch (\Exception $e) {
|
|
||||||
Db::rollback();
|
|
||||||
self::setError($e->getMessage());
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @notes 编辑造价咨询--开票台账
|
|
||||||
* @param array $params
|
|
||||||
* @return bool
|
|
||||||
* @author likeadmin
|
|
||||||
* @date 2024/03/15 17:05
|
|
||||||
*/
|
|
||||||
public static function edit(array $params): bool
|
|
||||||
{
|
|
||||||
Db::startTrans();
|
|
||||||
try {
|
|
||||||
ZjzxInvoice::where('id', $params['id'])->update([
|
|
||||||
'project_id' => $params['project_id'],
|
|
||||||
'invoice_type' => $params['invoice_type'],
|
|
||||||
'apply_amount' => $params['apply_amount'],
|
|
||||||
'apply_company' => $params['apply_company'],
|
|
||||||
'apply_company_number' => $params['apply_company_number'],
|
|
||||||
'apply_company_address' => $params['apply_company_address'] ?? '',
|
|
||||||
'apply_company_telephone' => $params['apply_company_telephone'] ?? '',
|
|
||||||
'apply_company_bank' => $params['apply_company_bank'] ?? '',
|
|
||||||
'apply_company_account' => $params['apply_company_account'] ?? '',
|
|
||||||
'apply_contact' => $params['apply_contact'] ?? '',
|
|
||||||
'apply_email' => $params['apply_email'] ?? '',
|
|
||||||
'pay_type' => $params['pay_type'] ?? '',
|
|
||||||
'invoice_content' => $params['invoice_content'] ?? '',
|
|
||||||
'create_user' => $params['create_user'],
|
|
||||||
'create_time' => !empty($params['create_time']) ? strtotime($params['create_time']) : time(),
|
|
||||||
'update_time' => time()
|
|
||||||
]);
|
|
||||||
Db::commit();
|
|
||||||
return true;
|
|
||||||
} catch (\Exception $e) {
|
|
||||||
Db::rollback();
|
|
||||||
self::setError($e->getMessage());
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @notes 删除造价咨询--开票台账
|
|
||||||
* @param array $params
|
|
||||||
* @return bool
|
|
||||||
* @author likeadmin
|
|
||||||
* @date 2024/03/15 17:05
|
|
||||||
*/
|
|
||||||
public static function delete(array $params): bool
|
|
||||||
{
|
|
||||||
return ZjzxInvoice::destroy($params['id']);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @notes 获取造价咨询--开票台账详情
|
|
||||||
* @param $params
|
|
||||||
* @return array
|
|
||||||
* @author likeadmin
|
|
||||||
* @date 2024/03/15 17:05
|
|
||||||
*/
|
|
||||||
public static function detail($params): array
|
|
||||||
{
|
|
||||||
$data = ZjzxInvoice::withoutField('update_time,delete_time')->findOrEmpty($params['id']);
|
|
||||||
$project = CostProject::field('project_num,project_name,contract_id')->where('id',$data['project_id'])->findOrEmpty();
|
|
||||||
$contract = CostApprovedProject::field('contract_name,contract_type,part_a,part_b,money,create_time')->where('id',$project['contract_id'])->findOrEmpty();
|
|
||||||
$data['invoice_type_text'] = $data->invoice_type_text;
|
|
||||||
$data['project_num'] = $project['project_num'];
|
|
||||||
$data['project_name'] = $project['project_name'];
|
|
||||||
$data['contract_name'] = $contract['contract_name'];
|
|
||||||
$data['contract_type'] = $contract->contract_type_text;
|
|
||||||
$data['part_a'] = $contract['part_a'];
|
|
||||||
$data['part_b'] = $contract['part_b'];
|
|
||||||
$data['sign_money'] = $contract['money'];
|
|
||||||
$data['sign_time'] = $contract['create_time'];
|
|
||||||
$data['total_invoice_amount'] = ZjzxInvoice::where('project_id',$data['project_id'])->sum('apply_amount');
|
|
||||||
$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();
|
/**
|
||||||
|
* @notes 添加造价咨询--开票台账
|
||||||
|
* @param array $params
|
||||||
|
* @return bool
|
||||||
|
* @author likeadmin
|
||||||
|
* @date 2024/03/15 17:05
|
||||||
|
*/
|
||||||
|
public static function add(array $params): bool
|
||||||
|
{
|
||||||
|
Db::startTrans();
|
||||||
|
try {
|
||||||
|
ZjzxInvoice::create([
|
||||||
|
'project_id' => $params['project_id'],
|
||||||
|
'invoice_code' => data_unique_code('XMKP'),
|
||||||
|
'invoice_type' => $params['invoice_type'],
|
||||||
|
'apply_amount' => $params['apply_amount'],
|
||||||
|
'apply_company' => $params['apply_company'],
|
||||||
|
'apply_company_number' => $params['apply_company_number'],
|
||||||
|
'apply_company_address' => $params['apply_company_address'] ?? '',
|
||||||
|
'apply_company_telephone' => $params['apply_company_telephone'] ?? '',
|
||||||
|
'apply_company_bank' => $params['apply_company_bank'] ?? '',
|
||||||
|
'apply_company_account' => $params['apply_company_account'] ?? '',
|
||||||
|
'apply_contact' => $params['apply_contact'] ?? '',
|
||||||
|
'apply_email' => $params['apply_email'] ?? '',
|
||||||
|
'pay_type' => $params['pay_type'] ?? '',
|
||||||
|
'invoice_content' => $params['invoice_content'] ?? '',
|
||||||
|
'create_user' => $params['create_user'],
|
||||||
|
'create_time' => !empty($params['create_time']) ? strtotime($params['create_time']) : time()
|
||||||
|
]);
|
||||||
|
Db::commit();
|
||||||
|
return true;
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
Db::rollback();
|
||||||
|
self::setError($e->getMessage());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @notes 编辑造价咨询--开票台账
|
||||||
|
* @param array $params
|
||||||
|
* @return bool
|
||||||
|
* @author likeadmin
|
||||||
|
* @date 2024/03/15 17:05
|
||||||
|
*/
|
||||||
|
public static function edit(array $params): bool
|
||||||
|
{
|
||||||
|
Db::startTrans();
|
||||||
|
try {
|
||||||
|
ZjzxInvoice::where('id', $params['id'])->update([
|
||||||
|
'project_id' => $params['project_id'],
|
||||||
|
'invoice_type' => $params['invoice_type'],
|
||||||
|
'apply_amount' => $params['apply_amount'],
|
||||||
|
'apply_company' => $params['apply_company'],
|
||||||
|
'apply_company_number' => $params['apply_company_number'],
|
||||||
|
'apply_company_address' => $params['apply_company_address'] ?? '',
|
||||||
|
'apply_company_telephone' => $params['apply_company_telephone'] ?? '',
|
||||||
|
'apply_company_bank' => $params['apply_company_bank'] ?? '',
|
||||||
|
'apply_company_account' => $params['apply_company_account'] ?? '',
|
||||||
|
'apply_contact' => $params['apply_contact'] ?? '',
|
||||||
|
'apply_email' => $params['apply_email'] ?? '',
|
||||||
|
'pay_type' => $params['pay_type'] ?? '',
|
||||||
|
'invoice_content' => $params['invoice_content'] ?? '',
|
||||||
|
'create_user' => $params['create_user'],
|
||||||
|
'create_time' => !empty($params['create_time']) ? strtotime($params['create_time']) : time(),
|
||||||
|
'update_time' => time()
|
||||||
|
]);
|
||||||
|
Db::commit();
|
||||||
|
return true;
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
Db::rollback();
|
||||||
|
self::setError($e->getMessage());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @notes 删除造价咨询--开票台账
|
||||||
|
* @param array $params
|
||||||
|
* @return bool
|
||||||
|
* @author likeadmin
|
||||||
|
* @date 2024/03/15 17:05
|
||||||
|
*/
|
||||||
|
public static function delete(array $params): bool
|
||||||
|
{
|
||||||
|
return ZjzxInvoice::destroy($params['id']);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @notes 获取造价咨询--开票台账详情
|
||||||
|
* @param $params
|
||||||
|
* @return array
|
||||||
|
* @author likeadmin
|
||||||
|
* @date 2024/03/15 17:05
|
||||||
|
*/
|
||||||
|
public static function detail($params): array
|
||||||
|
{
|
||||||
|
$data = ZjzxInvoice::withoutField('update_time,delete_time')->findOrEmpty($params['id']);
|
||||||
|
$project = CostProject::field('project_num,project_name,contract_id')->where('id', $data['project_id'])->findOrEmpty();
|
||||||
|
$contract = MarketingContract::field('contract_name,contract_type,part_a,part_b,signed_amount,create_time')->where('id', $project['contract_id'])->findOrEmpty();
|
||||||
|
$part_a = MarketingCustom::field('name')->where('id', $contract['part_a'])->findOrEmpty();
|
||||||
|
$data['invoice_type_text'] = $data->invoice_type_text;
|
||||||
|
$data['project_num'] = $project['project_num'];
|
||||||
|
$data['project_name'] = $project['project_name'];
|
||||||
|
$data['contract_name'] = $contract['contract_name'];
|
||||||
|
$data['contract_type'] = !$contract->isEmpty() ? $contract->contract_type_text : '';
|
||||||
|
$data['part_a'] = $part_a['name'];
|
||||||
|
$data['part_b'] = $contract['part_b'];
|
||||||
|
$data['sign_money'] = $contract['signed_amount'];
|
||||||
|
$data['sign_time'] = $contract['create_time'];
|
||||||
|
$data['total_invoice_amount'] = ZjzxInvoice::where('project_id', $data['project_id'])->sum('apply_amount');
|
||||||
|
$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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
@ -1,122 +1,125 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace app\adminapi\logic\zjzx_finance;
|
|
||||||
|
|
||||||
use app\common\model\cost_project\CostApprovedProject;
|
namespace app\adminapi\logic\zjzx_finance;
|
||||||
use app\common\model\cost_project\CostProject;
|
|
||||||
use app\common\model\zjzx_finance\ZjzxInvoice;
|
use app\common\logic\BaseLogic;
|
||||||
use app\common\model\zjzx_finance\ZjzxRefund;
|
use app\common\model\cost_project\CostApprovedProject;
|
||||||
use app\common\logic\BaseLogic;
|
use app\common\model\cost_project\CostProject;
|
||||||
use think\facade\Db;
|
use app\common\model\marketing\MarketingCustom;
|
||||||
|
use app\common\model\zjzx_finance\ZjzxInvoice;
|
||||||
|
use app\common\model\zjzx_finance\ZjzxRefund;
|
||||||
|
use think\facade\Db;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 造价咨询--到账台账逻辑
|
* 造价咨询--到账台账逻辑
|
||||||
* Class ZjzxRefundLogic
|
* Class ZjzxRefundLogic
|
||||||
* @package app\adminapi\logic\zjzx_finance
|
* @package app\adminapi\logic\zjzx_finance
|
||||||
*/
|
*/
|
||||||
class ZjzxRefundLogic extends BaseLogic
|
class ZjzxRefundLogic extends BaseLogic
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 添加造价咨询--到账台账
|
* @notes 添加造价咨询--到账台账
|
||||||
* @param array $params
|
* @param array $params
|
||||||
* @return bool
|
* @return bool
|
||||||
* @author likeadmin
|
* @author likeadmin
|
||||||
* @date 2024/03/15 17:05
|
* @date 2024/03/15 17:05
|
||||||
*/
|
*/
|
||||||
public static function add(array $params): bool
|
public static function add(array $params): bool
|
||||||
{
|
{
|
||||||
Db::startTrans();
|
Db::startTrans();
|
||||||
try {
|
try {
|
||||||
ZjzxRefund::create([
|
ZjzxRefund::create([
|
||||||
'project_id' => $params['project_id'],
|
'project_id' => $params['project_id'],
|
||||||
'invoice_id' => $params['invoice_id'],
|
'invoice_id' => $params['invoice_id'],
|
||||||
'amount' => $params['amount'],
|
'amount' => $params['amount'],
|
||||||
'date' => !empty($params['date']) ? strtotime($params['date']) : 0,
|
'date' => !empty($params['date']) ? strtotime($params['date']) : 0,
|
||||||
'remark' => $params['remark'] ?? '',
|
'remark' => $params['remark'] ?? '',
|
||||||
'create_user' => $params['create_user'],
|
'create_user' => $params['create_user'],
|
||||||
'create_time' => !empty($params['create_time']) ? strtotime($params['create_time']) : time(),
|
'create_time' => !empty($params['create_time']) ? strtotime($params['create_time']) : time(),
|
||||||
]);
|
]);
|
||||||
Db::commit();
|
Db::commit();
|
||||||
return true;
|
return true;
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
Db::rollback();
|
Db::rollback();
|
||||||
self::setError($e->getMessage());
|
self::setError($e->getMessage());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 编辑造价咨询--到账台账
|
* @notes 编辑造价咨询--到账台账
|
||||||
* @param array $params
|
* @param array $params
|
||||||
* @return bool
|
* @return bool
|
||||||
* @author likeadmin
|
* @author likeadmin
|
||||||
* @date 2024/03/15 17:05
|
* @date 2024/03/15 17:05
|
||||||
*/
|
*/
|
||||||
public static function edit(array $params): bool
|
public static function edit(array $params): bool
|
||||||
{
|
{
|
||||||
Db::startTrans();
|
Db::startTrans();
|
||||||
try {
|
try {
|
||||||
ZjzxRefund::where('id', $params['id'])->update([
|
ZjzxRefund::where('id', $params['id'])->update([
|
||||||
'project_id' => $params['project_id'],
|
'project_id' => $params['project_id'],
|
||||||
'invoice_id' => $params['invoice_id'],
|
'invoice_id' => $params['invoice_id'],
|
||||||
'amount' => $params['amount'],
|
'amount' => $params['amount'],
|
||||||
'date' => !empty($params['date']) ? strtotime($params['date']) : 0,
|
'date' => !empty($params['date']) ? strtotime($params['date']) : 0,
|
||||||
'remark' => $params['remark'] ?? '',
|
'remark' => $params['remark'] ?? '',
|
||||||
'create_user' => $params['create_user'],
|
'create_user' => $params['create_user'],
|
||||||
'create_time' => !empty($params['create_time']) ? strtotime($params['create_time']) : time(),
|
'create_time' => !empty($params['create_time']) ? strtotime($params['create_time']) : time(),
|
||||||
'update_time' => time()
|
'update_time' => time()
|
||||||
]);
|
]);
|
||||||
Db::commit();
|
Db::commit();
|
||||||
return true;
|
return true;
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
Db::rollback();
|
Db::rollback();
|
||||||
self::setError($e->getMessage());
|
self::setError($e->getMessage());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 删除造价咨询--到账台账
|
* @notes 删除造价咨询--到账台账
|
||||||
* @param array $params
|
* @param array $params
|
||||||
* @return bool
|
* @return bool
|
||||||
* @author likeadmin
|
* @author likeadmin
|
||||||
* @date 2024/03/15 17:05
|
* @date 2024/03/15 17:05
|
||||||
*/
|
*/
|
||||||
public static function delete(array $params): bool
|
public static function delete(array $params): bool
|
||||||
{
|
{
|
||||||
return ZjzxRefund::destroy($params['id']);
|
return ZjzxRefund::destroy($params['id']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 获取造价咨询--到账台账详情
|
* @notes 获取造价咨询--到账台账详情
|
||||||
* @param $params
|
* @param $params
|
||||||
* @return array
|
* @return array
|
||||||
* @author likeadmin
|
* @author likeadmin
|
||||||
* @date 2024/03/15 17:05
|
* @date 2024/03/15 17:05
|
||||||
*/
|
*/
|
||||||
public static function detail($params): array
|
public static function detail($params): array
|
||||||
{
|
{
|
||||||
$data = ZjzxRefund::withoutField('update_time,delete_time')->findOrEmpty($params['id']);
|
$data = ZjzxRefund::withoutField('update_time,delete_time')->findOrEmpty($params['id']);
|
||||||
$project = CostProject::field('project_num,project_name,contract_id')->where('id',$data['project_id'])->findOrEmpty();
|
$project = CostProject::field('project_num,project_name,contract_id')->where('id', $data['project_id'])->findOrEmpty();
|
||||||
$contract = CostApprovedProject::field('contract_name,contract_type,part_a,part_b,money,create_time')->where('id',$project['contract_id'])->findOrEmpty();
|
$contract = CostApprovedProject::field('contract_name,contract_type,part_a,part_b,signed_amount,create_time')->where('id', $project['contract_id'])->findOrEmpty();
|
||||||
$invoice = ZjzxInvoice::field('invoice_code,apply_amount')->where('id',$data['invoice_id'])->findOrEmpty();
|
$invoice = ZjzxInvoice::field('invoice_code,apply_amount')->where('id', $data['invoice_id'])->findOrEmpty();
|
||||||
$data['project_num'] = $project['project_num'];
|
$part_a = MarketingCustom::field('name')->where('id', $contract['part_a'])->findOrEmpty();
|
||||||
$data['project_name'] = $project['project_name'];
|
$data['project_num'] = $project['project_num'];
|
||||||
$data['contract_name'] = $contract['contract_name'];
|
$data['project_name'] = $project['project_name'];
|
||||||
$data['contract_type'] = $contract->contract_type_text;
|
$data['contract_name'] = $contract['contract_name'];
|
||||||
$data['part_a'] = $contract['part_a'];
|
$data['contract_type'] = !$contract->isEmpty() ? $contract->contract_type_text : '';
|
||||||
$data['part_b'] = $contract['part_b'];
|
$data['part_a'] = $part_a['name'];
|
||||||
$data['sign_money'] = $contract['money'];
|
$data['part_b'] = $contract['part_b'];
|
||||||
$data['sign_time'] = $contract['create_time'];
|
$data['sign_money'] = $contract['signed_amount'];
|
||||||
$data['invoice_code'] = $invoice['invoice_code'];
|
$data['sign_time'] = $contract['create_time'];
|
||||||
$data['apply_amount'] = $invoice['apply_amount'];
|
$data['invoice_code'] = $invoice['invoice_code'];
|
||||||
$data['total_invoice_amount'] = ZjzxInvoice::where('project_id',$data['project_id'])->sum('apply_amount');//累计开票金额
|
$data['apply_amount'] = $invoice['apply_amount'];
|
||||||
$data['total_refund_amount'] = ZjzxRefund::where('project_id',$data['project_id'])->sum('amount');//累计到账金额
|
$data['total_invoice_amount'] = ZjzxInvoice::where('project_id', $data['project_id'])->sum('apply_amount');//累计开票金额
|
||||||
return $data->toArray();
|
$data['total_refund_amount'] = ZjzxRefund::where('project_id', $data['project_id'])->sum('amount');//累计到账金额
|
||||||
}
|
return $data->toArray();
|
||||||
}
|
}
|
||||||
|
}
|
@ -1,116 +1,119 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace app\adminapi\logic\zjzx_finance;
|
|
||||||
|
|
||||||
use app\common\model\cost_project\CostApprovedProject;
|
namespace app\adminapi\logic\zjzx_finance;
|
||||||
use app\common\model\cost_project\CostProject;
|
|
||||||
use app\common\model\zjzx_finance\ZjzxInvoice;
|
use app\common\logic\BaseLogic;
|
||||||
use app\common\model\zjzx_finance\ZjzxRefund;
|
use app\common\model\cost_project\CostApprovedProject;
|
||||||
use app\common\model\zjzx_finance\ZjzxSettlement;
|
use app\common\model\cost_project\CostProject;
|
||||||
use app\common\logic\BaseLogic;
|
use app\common\model\marketing\MarketingCustom;
|
||||||
use think\facade\Db;
|
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 ZjzxSettlementLogic
|
* Class ZjzxSettlementLogic
|
||||||
* @package app\adminapi\logic\zjzx_finance
|
* @package app\adminapi\logic\zjzx_finance
|
||||||
*/
|
*/
|
||||||
class ZjzxSettlementLogic extends BaseLogic
|
class ZjzxSettlementLogic extends BaseLogic
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 添加造价咨询--项目结算
|
* @notes 添加造价咨询--项目结算
|
||||||
* @param array $params
|
* @param array $params
|
||||||
* @return bool
|
* @return bool
|
||||||
* @author likeadmin
|
* @author likeadmin
|
||||||
* @date 2024/03/15 17:05
|
* @date 2024/03/15 17:05
|
||||||
*/
|
*/
|
||||||
public static function add(array $params): bool
|
public static function add(array $params): bool
|
||||||
{
|
{
|
||||||
Db::startTrans();
|
Db::startTrans();
|
||||||
try {
|
try {
|
||||||
ZjzxSettlement::create([
|
ZjzxSettlement::create([
|
||||||
'project_id' => $params['project_id'],
|
'project_id' => $params['project_id'],
|
||||||
'amount' => $params['amount'],
|
'amount' => $params['amount'],
|
||||||
'date' => !empty($params['date']) ? strtotime($params['date']) : 0,
|
'date' => !empty($params['date']) ? strtotime($params['date']) : 0,
|
||||||
'remark' => $params['remark'] ?? '',
|
'remark' => $params['remark'] ?? '',
|
||||||
'annex' => $params['annex'] ? json_encode($params['annex']) : null,
|
'annex' => $params['annex'] ? json_encode($params['annex']) : null,
|
||||||
]);
|
]);
|
||||||
Db::commit();
|
Db::commit();
|
||||||
return true;
|
return true;
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
Db::rollback();
|
Db::rollback();
|
||||||
self::setError($e->getMessage());
|
self::setError($e->getMessage());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 编辑造价咨询--项目结算
|
* @notes 编辑造价咨询--项目结算
|
||||||
* @param array $params
|
* @param array $params
|
||||||
* @return bool
|
* @return bool
|
||||||
* @author likeadmin
|
* @author likeadmin
|
||||||
* @date 2024/03/15 17:05
|
* @date 2024/03/15 17:05
|
||||||
*/
|
*/
|
||||||
public static function edit(array $params): bool
|
public static function edit(array $params): bool
|
||||||
{
|
{
|
||||||
Db::startTrans();
|
Db::startTrans();
|
||||||
try {
|
try {
|
||||||
ZjzxSettlement::where('id', $params['id'])->update([
|
ZjzxSettlement::where('id', $params['id'])->update([
|
||||||
'project_id' => $params['project_id'],
|
'project_id' => $params['project_id'],
|
||||||
'amount' => $params['amount'],
|
'amount' => $params['amount'],
|
||||||
'date' => !empty($params['date']) ? strtotime($params['date']) : 0,
|
'date' => !empty($params['date']) ? strtotime($params['date']) : 0,
|
||||||
'remark' => $params['remark'] ?? '',
|
'remark' => $params['remark'] ?? '',
|
||||||
'annex' => $params['annex'] ? json_encode($params['annex']) : null,
|
'annex' => $params['annex'] ? json_encode($params['annex']) : null,
|
||||||
]);
|
]);
|
||||||
Db::commit();
|
Db::commit();
|
||||||
return true;
|
return true;
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
Db::rollback();
|
Db::rollback();
|
||||||
self::setError($e->getMessage());
|
self::setError($e->getMessage());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 删除造价咨询--项目结算
|
* @notes 删除造价咨询--项目结算
|
||||||
* @param array $params
|
* @param array $params
|
||||||
* @return bool
|
* @return bool
|
||||||
* @author likeadmin
|
* @author likeadmin
|
||||||
* @date 2024/03/15 17:05
|
* @date 2024/03/15 17:05
|
||||||
*/
|
*/
|
||||||
public static function delete(array $params): bool
|
public static function delete(array $params): bool
|
||||||
{
|
{
|
||||||
return ZjzxSettlement::destroy($params['id']);
|
return ZjzxSettlement::destroy($params['id']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 获取造价咨询--项目结算详情
|
* @notes 获取造价咨询--项目结算详情
|
||||||
* @param $params
|
* @param $params
|
||||||
* @return array
|
* @return array
|
||||||
* @author likeadmin
|
* @author likeadmin
|
||||||
* @date 2024/03/15 17:05
|
* @date 2024/03/15 17:05
|
||||||
*/
|
*/
|
||||||
public static function detail($params): array
|
public static function detail($params): array
|
||||||
{
|
{
|
||||||
$data = ZjzxSettlement::withoutField('create_time,update_time,delete_time')->findOrEmpty($params['id']);
|
$data = ZjzxSettlement::withoutField('create_time,update_time,delete_time')->findOrEmpty($params['id']);
|
||||||
$project = CostProject::field('project_num,project_name,contract_id')->where('id',$data['project_id'])->findOrEmpty();
|
$project = CostProject::field('project_num,project_name,contract_id')->where('id', $data['project_id'])->findOrEmpty();
|
||||||
$contract = CostApprovedProject::field('contract_name,contract_type,part_a,part_b,money,create_time')->where('id',$project['contract_id'])->findOrEmpty();
|
$contract = CostApprovedProject::field('contract_name,contract_type,part_a,part_b,signed_amount,create_time')->where('id', $project['contract_id'])->findOrEmpty();
|
||||||
$data['invoice_type_text'] = $data->invoice_type_text;
|
$part_a = MarketingCustom::field('name')->where('id', $contract['part_a'])->findOrEmpty();
|
||||||
$data['project_num'] = $project['project_num'];
|
$data['invoice_type_text'] = $data->invoice_type_text;
|
||||||
$data['project_name'] = $project['project_name'];
|
$data['project_num'] = $project['project_num'];
|
||||||
$data['contract_name'] = $contract['contract_name'];
|
$data['project_name'] = $project['project_name'];
|
||||||
$data['contract_type'] = $contract->contract_type_text;
|
$data['contract_name'] = $contract['contract_name'];
|
||||||
$data['part_a'] = $contract['part_a'];
|
$data['contract_type'] = $contract->contract_type_text;
|
||||||
$data['part_b'] = $contract['part_b'];
|
$data['part_a'] = $part_a['name'];
|
||||||
$data['sign_money'] = $contract['money'];
|
$data['part_b'] = $contract['part_b'];
|
||||||
$data['sign_time'] = $contract['create_time'];
|
$data['sign_money'] = $contract['signed_amount'];
|
||||||
$data['total_invoice_amount'] = ZjzxInvoice::where('project_id',$data['project_id'])->sum('apply_amount');
|
$data['sign_time'] = $contract['create_time'];
|
||||||
$data['total_refund_amount'] = ZjzxRefund::where('project_id',$data['project_id'])->sum('amount');
|
$data['total_invoice_amount'] = ZjzxInvoice::where('project_id', $data['project_id'])->sum('apply_amount');
|
||||||
return $data->toArray();
|
$data['total_refund_amount'] = ZjzxRefund::where('project_id', $data['project_id'])->sum('amount');
|
||||||
}
|
return $data->toArray();
|
||||||
}
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user