This commit is contained in:
weiz 2024-01-29 10:36:34 +08:00
parent 54040e31f5
commit 1d1f915411
3 changed files with 15 additions and 15 deletions

View File

@ -18,6 +18,7 @@ namespace app\adminapi\lists\project;
use app\adminapi\lists\BaseAdminDataLists;
use app\common\model\auth\Admin;
use app\common\model\contract\Contract;
use app\common\model\contract\ContractNegotiation;
use app\common\model\project\Project;
use app\common\model\project\ProjectSettlement;
use app\common\lists\ListsSearchInterface;
@ -59,7 +60,7 @@ class ProjectSettlementLists extends BaseAdminDataLists implements ListsSearchIn
public function lists(): array
{
return ProjectSettlement::where($this->searchWhere)
->field(['id','settlement_code','project_id','contract_id','settlement_amount','remaining_amount','settlement_date','add_user'])
->field(['id','settlement_code','project_id','contract_id','settlement_amount','settlement_date','add_user'])
->limit($this->limitOffset, $this->limitLength)
->order(['id' => 'desc'])
->select()->each(function($item){
@ -69,7 +70,12 @@ class ProjectSettlementLists extends BaseAdminDataLists implements ListsSearchIn
$item['project_name'] = $project['name'];
$item['contract_name'] = $contract['contract_name'];
$item['contract_code'] = $contract['contract_code'];
//合同金额
$item['contract_amount'] = $contract['amount'];
//洽商金额
$item['negotiation_amount'] = ContractNegotiation::where('contract_id',$item['contract_id'])->sum('negotiation_amount');
//结算差异
$item['settlement_difference'] = bcsub(($item['contract_amount']+$item['negotiation_amount']),$item['settlement_amount']);
$item['add_user_name'] = $admin['name'];
unset($item['project_id'],$item['contract_id'],$item['add_user']);
return $item;

View File

@ -16,6 +16,7 @@ namespace app\adminapi\logic\project;
use app\common\model\contract\Contract;
use app\common\model\contract\ContractNegotiation;
use app\common\model\custom\Custom;
use app\common\model\project\Project;
use app\common\model\project\ProjectSettlement;
@ -48,8 +49,6 @@ class ProjectSettlementLogic extends BaseLogic
'project_id' => $params['project_id'],
'contract_id' => $params['contract_id'],
'settlement_amount' => $params['settlement_amount'],
'settlement_amount_uppercase' => $params['settlement_amount_uppercase'],
'remaining_amount' => $params['remaining_amount'],
'settlement_date' => strtotime($params['settlement_date']),
'remark' => $params['remark'],
'annex' => $params['annex']? json_encode($params['annex']) : null,
@ -80,8 +79,6 @@ class ProjectSettlementLogic extends BaseLogic
'project_id' => $params['project_id'],
'contract_id' => $params['contract_id'],
'settlement_amount' => $params['settlement_amount'],
'settlement_amount_uppercase' => $params['settlement_amount_uppercase'],
'remaining_amount' => $params['remaining_amount'],
'settlement_date' => strtotime($params['settlement_date']),
'remark' => $params['remark'],
'annex' => $params['annex']? json_encode($params['annex']) : null,
@ -119,7 +116,7 @@ class ProjectSettlementLogic extends BaseLogic
*/
public static function detail($params): array
{
$data = ProjectSettlement::field('id,settlement_code,project_id,contract_id,settlement_amount,settlement_amount_uppercase,remaining_amount,settlement_date,remark,annex')->findOrEmpty($params['id'])->toArray();
$data = ProjectSettlement::field('id,settlement_code,project_id,contract_id,settlement_amount,settlement_date,remark,annex')->findOrEmpty($params['id'])->toArray();
$project = Project::field('custom_id,name,project_code')->where('id',$data['project_id'])->findOrEmpty();
$contract = Contract::field('contract_name,contract_code,amount')->where('id',$data['contract_id'])->findOrEmpty();
$custom = Custom::field('name')->where('id',$project['custom_id'])->findOrEmpty();
@ -128,7 +125,12 @@ class ProjectSettlementLogic extends BaseLogic
$data['contract_name'] = $contract['contract_name'];
$data['contract_code'] = $contract['contract_code'];
$data['custom_name'] = $custom['name'];
//合同金额
$data['contract_amount'] = $contract['amount'];
//洽商金额
$data['negotiation_amount'] = ContractNegotiation::where('contract_id',$data['contract_id'])->sum('negotiation_amount');
//结算差异
$data['settlement_difference'] = bcsub(($data['contract_amount']+$data['negotiation_amount']),$data['settlement_amount']);
$data['contract_amount_uppercase'] = $contract['amount_daxie'];
return $data;
}

View File

@ -38,8 +38,6 @@ class ProjectSettlementValidate extends BaseValidate
'project_id' => 'require|checkProject',
'contract_id' => 'require|checkContract',
'settlement_amount' => 'require|float|egt:0',
'settlement_amount_uppercase' => 'require',
'remaining_amount' => 'require|float|egt:0',
'settlement_date' => 'require|dateFormat:Y-m-d',
'annex' => 'checkAnnex'
];
@ -51,10 +49,6 @@ class ProjectSettlementValidate extends BaseValidate
'settlement_amount.require' => '请填写结算金额',
'settlement_amount.float' => '结算金额值必须是数字',
'settlement_amount.egt' => '结算金额值必须大于等于0',
'settlement_amount_uppercase.require' => '请填写合同金额大写',
'remaining_amount.require' => '请填写结算差异',
'remaining_amount.float' => '结算差异值必须是数字',
'remaining_amount.egt' => '结算差异值必须大于等于0',
'settlement_date.require' => '请选择结算日期',
'settlement_date.dateFormat' => '结算日期格式错误',
];
@ -79,9 +73,7 @@ class ProjectSettlementValidate extends BaseValidate
* @date 2023/12/29 10:22
*/
public function sceneEdit()
{
return $this->only(['id','project_id','contract_id','settlement_amount','settlement_amount_uppercase','remaining_amount','settlement_date']);
}
{}
/**