diff --git a/app/adminapi/lists/project/ProjectSettlementLists.php b/app/adminapi/lists/project/ProjectSettlementLists.php index 6f985cbea..e53e0bd3e 100644 --- a/app/adminapi/lists/project/ProjectSettlementLists.php +++ b/app/adminapi/lists/project/ProjectSettlementLists.php @@ -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; diff --git a/app/adminapi/logic/project/ProjectSettlementLogic.php b/app/adminapi/logic/project/ProjectSettlementLogic.php index 85fdc60ef..eb6f8f514 100644 --- a/app/adminapi/logic/project/ProjectSettlementLogic.php +++ b/app/adminapi/logic/project/ProjectSettlementLogic.php @@ -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; } diff --git a/app/adminapi/validate/project/ProjectSettlementValidate.php b/app/adminapi/validate/project/ProjectSettlementValidate.php index 8337df4f9..b8699235f 100644 --- a/app/adminapi/validate/project/ProjectSettlementValidate.php +++ b/app/adminapi/validate/project/ProjectSettlementValidate.php @@ -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']); - } + {} /**