新增合同变更

This commit is contained in:
yaooo 2023-12-12 16:06:33 +08:00
parent 044faabfe1
commit d5286325de
3 changed files with 58 additions and 4 deletions

View File

@ -16,6 +16,7 @@ namespace app\adminapi\logic\contract;
use app\common\model\contract\ProcurementContractChange; use app\common\model\contract\ProcurementContractChange;
use app\common\model\contract\ProcurementContractDetail;
use app\common\logic\BaseLogic; use app\common\logic\BaseLogic;
use think\facade\Db; use think\facade\Db;
@ -59,7 +60,19 @@ class ProcurementContractChangeLogic extends BaseLogic
'remark' => $params['remark'] ?? 0, 'remark' => $params['remark'] ?? 0,
'annex' => $params['annex'] ?? 0, 'annex' => $params['annex'] ?? 0,
]); ]);
ProcurementContractDetail::where('procurement_contract_id', $params['procurement_contract_id'])->update(['delete_time' =>time()]);
foreach ($params['material'] ?? [] as $item)
{
ProcurementContractDetail::create([
'procurement_contract_id' => $params['procurement_contract_id'],
'material_procurement_application_id' => $item['material_procurement_application_id'] ?? 0,
'num' => $item['num'] ?? 0,
'unit_price_including_tax' => $item['unit_price_including_tax'] ?? 0,
'tax_rate' => $item['tax_rate'] ?? 0,
'amount_excluding_tax' => $item['amount_excluding_tax'] ?? 0,
'amount_including_tax' => $item['amount_including_tax'] ?? 0,
]);
}
Db::commit(); Db::commit();
return true; return true;
} catch (\Exception $e) { } catch (\Exception $e) {
@ -100,7 +113,19 @@ class ProcurementContractChangeLogic extends BaseLogic
'remark' => $params['remark'] ?? 0, 'remark' => $params['remark'] ?? 0,
'annex' => $params['annex'] ?? 0, 'annex' => $params['annex'] ?? 0,
]); ]);
ProcurementContractDetail::where('procurement_contract_id', $params['procurement_contract_id'])->update(['delete_time' =>time()]);
foreach ($params['material'] ?? [] as $item)
{
ProcurementContractDetail::create([
'procurement_contract_id' =>$params['procurement_contract_id'],
'material_procurement_application_id' => $item['material_procurement_application_id'] ?? 0,
'num' => $item['num'] ?? 0,
'unit_price_including_tax' => $item['unit_price_including_tax'] ?? 0,
'tax_rate' => $item['tax_rate'] ?? 0,
'amount_excluding_tax' => $item['amount_excluding_tax'] ?? 0,
'amount_including_tax' => $item['amount_including_tax'] ?? 0,
]);
}
Db::commit(); Db::commit();
return true; return true;
} catch (\Exception $e) { } catch (\Exception $e) {
@ -134,8 +159,8 @@ class ProcurementContractChangeLogic extends BaseLogic
public static function detail($params): array public static function detail($params): array
{ {
$procurementContractChange = ProcurementContractChange::findOrEmpty($params['id']); $procurementContractChange = ProcurementContractChange::findOrEmpty($params['id']);
$procurementContractChange->contract = $procurementContractChange->contract;
$procurementContractChange->project = $procurementContractChange->project; $procurementContractChange->project = $procurementContractChange->project;
$procurementContractChange->material = $procurementContractChange->material;
return $procurementContractChange->toArray(); return $procurementContractChange->toArray();
} }
} }

View File

@ -36,7 +36,7 @@ class ProcurementContractChangeValidate extends BaseValidate
'supplier_id' => 'require', 'supplier_id' => 'require',
'approve_id' => 'require', 'approve_id' => 'require',
'project_id' => 'require', 'project_id' => 'require',
'contract_no' => 'require', 'material' => 'require|array|checkMaterial',
]; ];
@ -95,4 +95,28 @@ class ProcurementContractChangeValidate extends BaseValidate
return $this->only(['id']); return $this->only(['id']);
} }
public function checkMaterial($value, $rule, $data)
{
$firstData = $value[0] ?? [];
if (empty($firstData['material_procurement_application_id'])) {
return '材料采购申请id不能为空';
}
if (empty($firstData['num'])) {
return '材料数量不能为空!';
}
if (empty($firstData['unit_price_including_tax'])) {
return '材料含税单价不能为空!';
}
if (empty($firstData['tax_rate'])) {
return '材料税率不能为空!';
}
if (empty($firstData['amount_excluding_tax'])) {
return '材料不含税金额不能为空!';
}
if (empty($firstData['amount_including_tax'])) {
return '材料含税金额不能为空!';
}
return true;
}
} }

View File

@ -40,6 +40,11 @@ class ProcurementContractChange extends BaseModel
return $this->belongsTo(\app\common\model\contract\ProcurementContract::class, 'procurement_contract_id'); return $this->belongsTo(\app\common\model\contract\ProcurementContract::class, 'procurement_contract_id');
} }
public function material()
{
return $this->hasMany(\app\common\model\contract\ProcurementContractDetail::class, 'procurement_contract_id', 'procurement_contract_id');
}
public function getSigningDateAttr($value) public function getSigningDateAttr($value)
{ {
return empty($value) ? '' : date('Y-m-d H:i:s', $value); return empty($value) ? '' : date('Y-m-d H:i:s', $value);