Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion src/core/objects/supplier-bank-account.object.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@ import { ObjectSchema, Field } from '@objectstack/spec/data';
// 银行账户(02 §4.1,v0.2 M2)。采购侧新建后为「待核验」并锁定,应付会计经「核验银行账户」
// screen flow 置为有效(双人审批,04 §4.2);有效账户的关键字段只读,修改走信息变更单(v0.2 M4)。
// 收款与付款留在 ERP(ADR-0008),这里只保存账户主数据。
const locked = P`record.status == 'pending_verify' || record.status == 'active' || record.status == 'inactive'`;
// 新建表单里 status 已带默认值「待核验」,界面照样按 readonlyWhen 锁字段(服务端新建时不看 readonlyWhen),
// 所以先判断记录已保存(有 id),新建表单才能填写。临时绕法(objectstack#25584),平台修复后去掉 id 判断
const locked = P`has(record.id) && record.id != null && (record.status == 'pending_verify' || record.status == 'active' || record.status == 'inactive')`;

export const SupplierBankAccount = ObjectSchema.create({
name: 'srm_supplier_bank_account',
Expand Down
17 changes: 10 additions & 7 deletions src/core/objects/supplier-change-request.object.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,12 @@ import { ObjectSchema, Field } from '@objectstack/spec/data';
// 填写变更后的值;新建即进入审批(srm_change_approval),审批通过后由 flow 写回供应商、银行账户或联系人。
// 变更后的值放在本单的分类型字段里(表单可校验、退回后可修改),before_value / after_value 是 flow 写入的
// json 快照,供审计对照。银行账号不进快照(BR-20:本单对采购员可读,快照没有脱敏规则)。
// 供应商、类型和要改的对象只在新建时填写(readonlyWhen 不管新建;三个状态覆盖了所有已建记录)
const created = P`record.status == 'in_review' || record.status == 'applied' || record.status == 'rejected'`;
// 供应商、类型和要改的对象只在新建时填写(三个状态覆盖了所有已建记录)。服务端新建时不看 readonlyWhen,
// 新建表单却会按默认值(状态「审批中」、审批结论为空)把字段锁住,所以两条都先判断记录已保存(有 id)。
// 临时绕法(objectstack#25584),平台修复后去掉 id 判断
const created = P`has(record.id) && record.id != null && (record.status == 'in_review' || record.status == 'applied' || record.status == 'rejected')`;
// 变更内容只在新建时和被退回修改期间可改;审批中平台锁定记录,审结后只读
const proposal = P`record.approval_status != 'returned'`;
const proposal = P`has(record.id) && record.id != null && record.approval_status != 'returned'`;

export const SupplierChangeRequest = ObjectSchema.create({
name: 'srm_supplier_change_request',
Expand All @@ -22,10 +24,11 @@ export const SupplierChangeRequest = ObjectSchema.create({

fieldGroups: [
{ key: 'request', label: '变更申请', icon: 'file-pen' },
{ key: 'basic', label: '基本信息变更', icon: 'building' },
{ key: 'address', label: '地址变更', icon: 'map-pin' },
{ key: 'bank', label: '银行账户变更', icon: 'landmark' },
{ key: 'contact', label: '联系人变更', icon: 'contact' },
// 分组也按变更类型显示:详情页只按分组判断,字段上的 visibleWhen 拦不住带默认值的「新账户币种」
{ key: 'basic', label: '基本信息变更', icon: 'building', visibleWhen: P`record.change_type == 'basic'` },
{ key: 'address', label: '地址变更', icon: 'map-pin', visibleWhen: P`record.change_type == 'address'` },
{ key: 'bank', label: '银行账户变更', icon: 'landmark', visibleWhen: P`record.change_type == 'bank_account'` },
{ key: 'contact', label: '联系人变更', icon: 'contact', visibleWhen: P`record.change_type == 'contact'` },
{ key: 'review', label: '审批与写回', icon: 'shield-check' },
],

Expand Down
Loading