update
This commit is contained in:
parent
e70b862de0
commit
555a1166dd
@ -58,6 +58,22 @@ class ProcurementContractController extends BaseAdminController
|
|||||||
}
|
}
|
||||||
return $this->fail(ProcurementContractLogic::getError());
|
return $this->fail(ProcurementContractLogic::getError());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @notes 编辑采购合同
|
||||||
|
* @return \think\response\Json
|
||||||
|
* @author likeadmin
|
||||||
|
* @date 2023/12/02 17:19
|
||||||
|
*/
|
||||||
|
public function edit()
|
||||||
|
{
|
||||||
|
$params = (new ProcurementContractValidate())->post()->goCheck('edit');
|
||||||
|
$result = ProcurementContractLogic::edit($params);
|
||||||
|
if (true === $result) {
|
||||||
|
return $this->success('编辑成功', [], 1, 1);
|
||||||
|
}
|
||||||
|
return $this->fail(ProcurementContractLogic::getError());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 获取采购合同详情
|
* @notes 获取采购合同详情
|
||||||
|
@ -120,6 +120,117 @@ class ProcurementContractLogic extends BaseLogic
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @notes 编辑采购合同
|
||||||
|
* @param array $params
|
||||||
|
* @return bool
|
||||||
|
* @author likeadmin
|
||||||
|
* @date 2023/12/02 17:19
|
||||||
|
*/
|
||||||
|
public static function edit(array $params): bool
|
||||||
|
{
|
||||||
|
//采购合同明细
|
||||||
|
$procurement_contract_detail = json_decode($params['procurement_contract_detail'],true);
|
||||||
|
//付款计划
|
||||||
|
$payment_plan = json_decode($params['payment_plan'],true);
|
||||||
|
//税率字典值
|
||||||
|
$tax_rate_dict = DictData::where('type_value','tax_rate')->column('name','value');
|
||||||
|
//合同金额\不含税金额
|
||||||
|
$contract_amount = 0;
|
||||||
|
$amount_excluding_tax = 0;
|
||||||
|
foreach($procurement_contract_detail as $v){
|
||||||
|
$contract_amount += $v['price']*$v['num'];
|
||||||
|
$amount_excluding_tax += $v['num'] * $v['price'] * (1- $tax_rate_dict[$v['tax_rate']] / 100);
|
||||||
|
}
|
||||||
|
Db::startTrans();
|
||||||
|
try {
|
||||||
|
$procurementContract = ProcurementContract::where('id',$params['id'])->update([
|
||||||
|
'org_id' => $params['org_id'],
|
||||||
|
'dept_id' => $params['dept_id'],
|
||||||
|
'supplier_id' => $params['supplier_id'],
|
||||||
|
'project_id' => $params['project_id'],
|
||||||
|
'contract_no' => data_unique_code('CGHT'),
|
||||||
|
'contract_name' => $params['contract_name'],
|
||||||
|
'contract_type' => $params['contract_type'],
|
||||||
|
'signing_date' => strtotime($params['signing_date']),
|
||||||
|
'pay_type' => $params['pay_type'],
|
||||||
|
'account_period' => $params['account_period'],
|
||||||
|
//合同金额
|
||||||
|
'contract_amount' => $contract_amount,
|
||||||
|
//不含税金额
|
||||||
|
'amount_excluding_tax' => $amount_excluding_tax,
|
||||||
|
//质保金
|
||||||
|
'retention_money' => $contract_amount * ($params['retention_money_rate'] / 100),
|
||||||
|
//质保金比例
|
||||||
|
'retention_money_rate' => $params['retention_money_rate'],
|
||||||
|
'remark' => $params['remark'] ?? '',
|
||||||
|
'annex' => !empty($params['annex']) ? $params['annex'] : null
|
||||||
|
]);
|
||||||
|
foreach ($procurement_contract_detail as $v)
|
||||||
|
{
|
||||||
|
if(isset($v['id']) && $v != ''){
|
||||||
|
ProcurementContractDetail::where('id',$v['id'])->update([
|
||||||
|
'contract_id' => $params['id'],
|
||||||
|
'material_purchase_request_detail_id' => $v['material_purchase_request_detail_id'],
|
||||||
|
'num' => $v['num'],
|
||||||
|
'price' => $v['price'],
|
||||||
|
'tax_rate' => $v['tax_rate'],
|
||||||
|
//不含税金额
|
||||||
|
'amount_excluding_tax' => $v['num'] * $v['price'] * (1- $tax_rate_dict[$v['tax_rate']] / 100),
|
||||||
|
//含税金额
|
||||||
|
'amount_including_tax' => $v['num'] * $v['price'],
|
||||||
|
]);
|
||||||
|
}else{
|
||||||
|
ProcurementContractDetail::create([
|
||||||
|
'contract_id' => $params['id'],
|
||||||
|
'material_purchase_request_detail_id' => $v['material_purchase_request_detail_id'],
|
||||||
|
'num' => $v['num'],
|
||||||
|
'price' => $v['price'],
|
||||||
|
'tax_rate' => $v['tax_rate'],
|
||||||
|
//不含税金额
|
||||||
|
'amount_excluding_tax' => $v['num'] * $v['price'] * (1- $tax_rate_dict[$v['tax_rate']] / 100),
|
||||||
|
//含税金额
|
||||||
|
'amount_including_tax' => $v['num'] * $v['price'],
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach ($payment_plan as $v)
|
||||||
|
{
|
||||||
|
if(isset($v['id']) && $v != ''){
|
||||||
|
FinancePaymentPlan::where('id',$v['id'])->update([
|
||||||
|
'supplier_id' => $params['supplier_id'],
|
||||||
|
'project_id' => $params['project_id'],
|
||||||
|
'contract_id' => $params['id'],
|
||||||
|
'contract_type' => 1,
|
||||||
|
'period' => $v['period'],
|
||||||
|
'pay_date' => strtotime($v['pay_date']),
|
||||||
|
'amount' => $v['amount'],
|
||||||
|
'status' => 1,
|
||||||
|
'remark' => $v['remark'] ?? '',
|
||||||
|
]);
|
||||||
|
}else{
|
||||||
|
FinancePaymentPlan::create([
|
||||||
|
'supplier_id' => $params['supplier_id'],
|
||||||
|
'project_id' => $params['project_id'],
|
||||||
|
'contract_id' => $params['id'],
|
||||||
|
'contract_type' => 1,
|
||||||
|
'period' => $v['period'],
|
||||||
|
'pay_date' => strtotime($v['pay_date']),
|
||||||
|
'amount' => $v['amount'],
|
||||||
|
'status' => 1,
|
||||||
|
'remark' => $v['remark'] ?? '',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Db::commit();
|
||||||
|
return true;
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
Db::rollback();
|
||||||
|
self::setError($e->getMessage());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @notes 获取采购合同详情
|
* @notes 获取采购合同详情
|
||||||
|
@ -15,9 +15,11 @@
|
|||||||
namespace app\adminapi\validate\contract;
|
namespace app\adminapi\validate\contract;
|
||||||
|
|
||||||
|
|
||||||
|
use app\common\model\contract\ProcurementContractDetail;
|
||||||
use app\common\model\dept\Dept;
|
use app\common\model\dept\Dept;
|
||||||
use app\common\model\dept\Orgs;
|
use app\common\model\dept\Orgs;
|
||||||
use app\common\model\dict\DictData;
|
use app\common\model\dict\DictData;
|
||||||
|
use app\common\model\finance\FinancePaymentPlan;
|
||||||
use app\common\model\material\MaterialPurchaseRequestDetail;
|
use app\common\model\material\MaterialPurchaseRequestDetail;
|
||||||
use app\common\model\project\Project;
|
use app\common\model\project\Project;
|
||||||
use app\common\model\supplier\Supplier;
|
use app\common\model\supplier\Supplier;
|
||||||
@ -207,6 +209,12 @@ class ProcurementContractValidate extends BaseValidate
|
|||||||
return '采购合同明细数据格式错误';
|
return '采购合同明细数据格式错误';
|
||||||
}
|
}
|
||||||
foreach($detail as $v) {
|
foreach($detail as $v) {
|
||||||
|
if(isset($v['id']) && $v['id'] != ''){
|
||||||
|
$data_detail = ProcurementContractDetail::where('id',$v['id'])->findOrEmpty();
|
||||||
|
if($data_detail->isEmpty()){
|
||||||
|
return '采购合同明细信息不存在';
|
||||||
|
}
|
||||||
|
}
|
||||||
if(empty($v['material_purchase_request_detail_id'])){
|
if(empty($v['material_purchase_request_detail_id'])){
|
||||||
return '请选择采购申请明细信息';
|
return '请选择采购申请明细信息';
|
||||||
}else{
|
}else{
|
||||||
@ -248,6 +256,12 @@ class ProcurementContractValidate extends BaseValidate
|
|||||||
return '付款计划据格式错误';
|
return '付款计划据格式错误';
|
||||||
}
|
}
|
||||||
foreach($detail as $v) {
|
foreach($detail as $v) {
|
||||||
|
if(isset($v['id']) && $v['id'] != ''){
|
||||||
|
$data_detail = FinancePaymentPlan::where('id',$v['id'])->findOrEmpty();
|
||||||
|
if($data_detail->isEmpty()){
|
||||||
|
return '付款计划信息不存在';
|
||||||
|
}
|
||||||
|
}
|
||||||
if(empty($v['period'])){
|
if(empty($v['period'])){
|
||||||
return '请选择期次';
|
return '请选择期次';
|
||||||
}else{
|
}else{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user