feat: campos de usuario por su definición en SAP (valores válidos y tabla de usuario enlazada): endpoint sapdb/user-fields y campo udfField en cabeceras de documentos y maestros
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
3caf94609d
commit
0629ce4068
17 files changed
+517
-11
No files matched your search
@@ -1,5 +1,5 @@
|
||||
import { ChangeDetectionStrategy, Component, computed, input, output } from '@angular/core';
|
||||
import { CheckboxField, DateField, LookupField, NumberField, SelectField, TextField, TextareaField } from '../../shared/form';
|
||||
import { CheckboxField, DateField, LookupField, NumberField, SelectField, TextField, TextareaField, UdfField } from '../../shared/form';
|
||||
import { WAREHOUSE_LOOKUP } from '../documents/document-layouts';
|
||||
import type { VhLookup } from '../../shared/value-help/value-help.types';
|
||||
import type { HeaderField } from '../documents/document-layouts';
|
||||
@@ -13,7 +13,7 @@ const text = (v: unknown): string => (v === null || v === undefined ? '' : Strin
|
||||
@Component({
|
||||
selector: 'sbo-master-field',
|
||||
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||
imports: [CheckboxField, DateField, LookupField, NumberField, SelectField, TextField, TextareaField],
|
||||
imports: [CheckboxField, DateField, LookupField, NumberField, SelectField, TextField, TextareaField, UdfField],
|
||||
template: `
|
||||
@switch (field().type) {
|
||||
@case ('checkbox') {
|
||||
@@ -46,6 +46,16 @@ const text = (v: unknown): string => (v === null || v === undefined ? '' : Strin
|
||||
resolveOnLeave
|
||||
/>
|
||||
}
|
||||
@case ('udf') {
|
||||
<sbo-udf-field
|
||||
[label]="field().label" [dbName]="dbName()"
|
||||
[table]="udf().table" [alias]="udf().alias"
|
||||
[required]="required()"
|
||||
[readonly]="readOnly() || !!ro()"
|
||||
[value]="value()"
|
||||
(valueChange)="changed.emit($any($event))"
|
||||
/>
|
||||
}
|
||||
@case ('select') {
|
||||
<sbo-select-field
|
||||
[label]="field().label" [dbName]="dbName()"
|
||||
@@ -94,6 +104,12 @@ export class MasterField {
|
||||
readonly saved = input(false);
|
||||
readonly changed = output<string | number>();
|
||||
|
||||
protected readonly udf = computed(() => {
|
||||
const f = this.field();
|
||||
if (f.type !== 'udf') throw new Error('campo sin definición de usuario');
|
||||
return f;
|
||||
});
|
||||
|
||||
protected readonly warehouse: VhLookup = { ...WAREHOUSE_LOOKUP, nameKey: 'WarehouseName' };
|
||||
|
||||
/** Un código numérico de SAP (grupo, lista de precios) se guarda como número. */
|
||||
|
||||
Reference in new issue
Block a user