@asteby/metacore-runtime-react 49.0.0 → 49.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/dist/action-modal-dispatcher.d.ts +17 -1
- package/dist/action-modal-dispatcher.d.ts.map +1 -1
- package/dist/action-modal-dispatcher.js +32 -6
- package/dist/business/document-editor.d.ts.map +1 -1
- package/dist/business/document-editor.js +3 -2
- package/dist/calendar-date.d.ts +12 -0
- package/dist/calendar-date.d.ts.map +1 -1
- package/dist/calendar-date.js +36 -0
- package/dist/document-form-dialog.d.ts +23 -2
- package/dist/document-form-dialog.d.ts.map +1 -1
- package/dist/document-form-dialog.js +41 -5
- package/dist/dynamic-crud-page.d.ts +7 -0
- package/dist/dynamic-crud-page.d.ts.map +1 -1
- package/dist/dynamic-crud-page.js +5 -4
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/types.d.ts +7 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/document-form-create-model.test.tsx +143 -0
- package/src/__tests__/field-default-today.test.tsx +116 -0
- package/src/action-modal-dispatcher.tsx +44 -6
- package/src/business/document-editor.tsx +3 -2
- package/src/calendar-date.ts +36 -0
- package/src/document-form-dialog.tsx +59 -4
- package/src/dynamic-crud-page.tsx +20 -2
- package/src/index.ts +6 -0
- package/src/types.ts +7 -0
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
// @vitest-environment happy-dom
|
|
2
|
+
// Retest r4 Pitsline (06/10): Documentos fiscales → Facturas se quedó sin
|
|
3
|
+
// «Crear» (#1048 lo oculta: FiscalDocument no tiene formulario de factura). Un
|
|
4
|
+
// tipo con `create_model` delega el alta a otro modelo (customers.Invoice): el
|
|
5
|
+
// host abre esa página con su alta abierta.
|
|
6
|
+
import { afterEach, describe, expect, it, vi } from 'vitest'
|
|
7
|
+
import { cleanup, fireEvent, render, screen, waitFor } from '@testing-library/react'
|
|
8
|
+
|
|
9
|
+
vi.mock('@tanstack/react-router', () => ({ useNavigate: () => () => {} }))
|
|
10
|
+
vi.mock('react-i18next', () => {
|
|
11
|
+
const i18n = { language: 'es' }
|
|
12
|
+
const t = (k: string, o?: { defaultValue?: string }) => o?.defaultValue ?? k
|
|
13
|
+
const value = { t, i18n }
|
|
14
|
+
return { useTranslation: () => value }
|
|
15
|
+
})
|
|
16
|
+
|
|
17
|
+
import {
|
|
18
|
+
DocumentFormDialog,
|
|
19
|
+
delegatedCreate,
|
|
20
|
+
scopeDocumentFormsToFilter,
|
|
21
|
+
withoutDelegatedTypes,
|
|
22
|
+
} from '../document-form-dialog'
|
|
23
|
+
import { DynamicCRUDPage } from '../dynamic-crud-page'
|
|
24
|
+
import { useMetadataCache } from '../metadata-cache'
|
|
25
|
+
import { ApiProvider, type ApiClient } from '../api-context'
|
|
26
|
+
import type { DocumentFormsManifest } from '../types'
|
|
27
|
+
|
|
28
|
+
afterEach(cleanup)
|
|
29
|
+
|
|
30
|
+
// Forma de fiscal_mexico FiscalDocument: el REP se crea aquí, la factura en customers.
|
|
31
|
+
const fiscalForms: DocumentFormsManifest = {
|
|
32
|
+
type_field: 'document_type',
|
|
33
|
+
types: [
|
|
34
|
+
{
|
|
35
|
+
key: 'payment_complement',
|
|
36
|
+
label: 'Complemento de pago',
|
|
37
|
+
value: 'payment_complement',
|
|
38
|
+
fields: [{ key: 'amount', label: 'Monto', type: 'number', required: true }],
|
|
39
|
+
},
|
|
40
|
+
{ key: 'invoice', label: 'Factura', value: 'invoice', fields: [], create_model: 'customers.Invoice' },
|
|
41
|
+
],
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function client(): ApiClient {
|
|
45
|
+
return {
|
|
46
|
+
get: vi.fn().mockResolvedValue({ data: {} }),
|
|
47
|
+
post: vi.fn().mockResolvedValue({ data: { success: true } }),
|
|
48
|
+
put: vi.fn(),
|
|
49
|
+
delete: vi.fn(),
|
|
50
|
+
} as unknown as ApiClient
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
describe('create_model: alta delegada', () => {
|
|
54
|
+
it('la vista Facturas (filtro document_type=invoice) conserva el tipo delegado y no oculta Crear', () => {
|
|
55
|
+
const scoped = scopeDocumentFormsToFilter(fiscalForms, { document_type: 'eq:invoice' })
|
|
56
|
+
expect(scoped.hideCreate).toBe(false)
|
|
57
|
+
expect(delegatedCreate(scoped.forms)).toMatchObject({ model: 'customers.Invoice', type: { key: 'invoice' } })
|
|
58
|
+
// REP sigue igual: tipo con formulario propio, sin delegación.
|
|
59
|
+
expect(delegatedCreate(scopeDocumentFormsToFilter(fiscalForms, { document_type: 'payment_complement' }).forms)).toBeUndefined()
|
|
60
|
+
})
|
|
61
|
+
|
|
62
|
+
it('sin host que sepa navegar, el tipo delegado no se ofrece (vista acotada a él = sin Crear)', () => {
|
|
63
|
+
const forms = withoutDelegatedTypes(fiscalForms)
|
|
64
|
+
expect(forms?.types.map((x) => x.key)).toEqual(['payment_complement'])
|
|
65
|
+
expect(scopeDocumentFormsToFilter(forms, { document_type: 'invoice' }).hideCreate).toBe(true)
|
|
66
|
+
})
|
|
67
|
+
|
|
68
|
+
it('el diálogo con el tipo delegado no pinta formulario: llama al host y se cierra', async () => {
|
|
69
|
+
const onDelegateCreate = vi.fn()
|
|
70
|
+
const onOpenChange = vi.fn()
|
|
71
|
+
render(
|
|
72
|
+
<ApiProvider client={client()}>
|
|
73
|
+
<DocumentFormDialog
|
|
74
|
+
open
|
|
75
|
+
onOpenChange={onOpenChange}
|
|
76
|
+
model="fiscal_documents"
|
|
77
|
+
forms={fiscalForms}
|
|
78
|
+
initialType="invoice"
|
|
79
|
+
onDelegateCreate={onDelegateCreate}
|
|
80
|
+
/>
|
|
81
|
+
</ApiProvider>,
|
|
82
|
+
)
|
|
83
|
+
await waitFor(() => expect(onDelegateCreate).toHaveBeenCalledTimes(1))
|
|
84
|
+
expect(onDelegateCreate.mock.calls[0][0]).toMatchObject({ model: 'customers.Invoice', type: { key: 'invoice' } })
|
|
85
|
+
expect(onOpenChange).toHaveBeenCalledWith(false)
|
|
86
|
+
expect(document.querySelector('[data-slot="document-form-dialog"]')).toBeNull()
|
|
87
|
+
})
|
|
88
|
+
|
|
89
|
+
it('con varios tipos, elegir la tarjeta delegada navega; sin callback la tarjeta no aparece', async () => {
|
|
90
|
+
const onDelegateCreate = vi.fn()
|
|
91
|
+
render(
|
|
92
|
+
<ApiProvider client={client()}>
|
|
93
|
+
<DocumentFormDialog open onOpenChange={() => {}} model="fiscal_documents" forms={fiscalForms} onDelegateCreate={onDelegateCreate} />
|
|
94
|
+
</ApiProvider>,
|
|
95
|
+
)
|
|
96
|
+
fireEvent.click(screen.getByText('Factura'))
|
|
97
|
+
await waitFor(() => expect(onDelegateCreate).toHaveBeenCalled())
|
|
98
|
+
cleanup()
|
|
99
|
+
render(
|
|
100
|
+
<ApiProvider client={client()}>
|
|
101
|
+
<DocumentFormDialog open onOpenChange={() => {}} model="fiscal_documents" forms={fiscalForms} />
|
|
102
|
+
</ApiProvider>,
|
|
103
|
+
)
|
|
104
|
+
// Un solo tipo restante (REP): se salta el selector.
|
|
105
|
+
expect(screen.queryByText('Factura')).toBeNull()
|
|
106
|
+
expect(screen.getByText('Monto')).toBeTruthy()
|
|
107
|
+
})
|
|
108
|
+
|
|
109
|
+
it('DynamicCRUDPage: en Facturas «Crear» delega al host', async () => {
|
|
110
|
+
const m = {
|
|
111
|
+
title: 'Documentos fiscales',
|
|
112
|
+
endpoint: '/data/x',
|
|
113
|
+
columns: [],
|
|
114
|
+
actions: [],
|
|
115
|
+
perPageOptions: [10],
|
|
116
|
+
defaultPerPage: 10,
|
|
117
|
+
searchPlaceholder: 'Buscar',
|
|
118
|
+
enableCRUDActions: true,
|
|
119
|
+
hasActions: false,
|
|
120
|
+
canExport: false,
|
|
121
|
+
canImport: false,
|
|
122
|
+
document_forms: fiscalForms,
|
|
123
|
+
} as any
|
|
124
|
+
useMetadataCache.getState().setMetadata('fiscal_documents', m)
|
|
125
|
+
const api = {
|
|
126
|
+
get: vi.fn(async (url: string) =>
|
|
127
|
+
url.startsWith('/metadata/') ? { data: { success: true, data: m } } : { data: { success: true, data: [], meta: { total: 0 } } },
|
|
128
|
+
),
|
|
129
|
+
post: vi.fn(),
|
|
130
|
+
put: vi.fn(),
|
|
131
|
+
delete: vi.fn(),
|
|
132
|
+
} as unknown as ApiClient
|
|
133
|
+
const onDelegateCreate = vi.fn()
|
|
134
|
+
render(
|
|
135
|
+
<ApiProvider client={api}>
|
|
136
|
+
<DynamicCRUDPage model="fiscal_documents" filter={{ document_type: 'invoice' }} onDelegateCreate={onDelegateCreate} />
|
|
137
|
+
</ApiProvider>,
|
|
138
|
+
)
|
|
139
|
+
fireEvent.click((await screen.findByText(/New Documentos/)).closest('button')!)
|
|
140
|
+
await waitFor(() => expect(onDelegateCreate).toHaveBeenCalled())
|
|
141
|
+
expect(onDelegateCreate.mock.calls[0][0].model).toBe('customers.Invoice')
|
|
142
|
+
})
|
|
143
|
+
})
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
// @vitest-environment happy-dom
|
|
2
|
+
// Retest r4 Pitsline (06/10, FAC-00014): la factura del wizard se guardó con
|
|
3
|
+
// fecha 26/27 sep. `invoice_date` no tenía default: el campo nacía vacío, era
|
|
4
|
+
// obligatorio y el calendario abría en octubre con 27–30 sep en la primera fila
|
|
5
|
+
// (showOutsideDays). Un campo fecha puede declarar `default: "$today"` y nace
|
|
6
|
+
// con el día de HOY en la zona de la org, no la del navegador ni UTC.
|
|
7
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
|
8
|
+
import { cleanup, fireEvent, render, screen, waitFor } from '@testing-library/react'
|
|
9
|
+
|
|
10
|
+
vi.mock('@tanstack/react-router', () => ({ useNavigate: () => () => {} }))
|
|
11
|
+
vi.mock('react-i18next', () => {
|
|
12
|
+
const i18n = { language: 'es' }
|
|
13
|
+
const t = (k: string, o?: { defaultValue?: string }) => o?.defaultValue ?? k
|
|
14
|
+
const value = { t, i18n }
|
|
15
|
+
return { useTranslation: () => value }
|
|
16
|
+
})
|
|
17
|
+
|
|
18
|
+
import { buildFieldDefaults, resolveFieldDefault } from '../action-modal-dispatcher'
|
|
19
|
+
import { isTodayToken, todayInZone } from '../calendar-date'
|
|
20
|
+
import { DocumentFormDialog } from '../document-form-dialog'
|
|
21
|
+
import { ApiProvider, type ApiClient } from '../api-context'
|
|
22
|
+
import { OrgRuntimeProvider } from '../org-runtime-provider'
|
|
23
|
+
import type { ActionFieldDef, DocumentFormsManifest } from '../types'
|
|
24
|
+
|
|
25
|
+
// 20:00 del 6 de octubre en Ciudad de México = 02:00Z del 7.
|
|
26
|
+
const EVENING_MX = new Date('2026-10-07T02:00:00Z')
|
|
27
|
+
|
|
28
|
+
describe('todayInZone', () => {
|
|
29
|
+
it('es el día de la zona de la org, no el de UTC', () => {
|
|
30
|
+
expect(todayInZone('America/Mexico_City', EVENING_MX)).toBe('2026-10-06')
|
|
31
|
+
expect(todayInZone('UTC', EVENING_MX)).toBe('2026-10-07')
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
it('zona inválida → día del navegador (no revienta)', () => {
|
|
35
|
+
expect(todayInZone('Nope/Nowhere', EVENING_MX)).toMatch(/^\d{4}-\d{2}-\d{2}$/)
|
|
36
|
+
})
|
|
37
|
+
|
|
38
|
+
it('reconoce $today / today', () => {
|
|
39
|
+
expect(isTodayToken('$today')).toBe(true)
|
|
40
|
+
expect(isTodayToken(' TODAY ')).toBe(true)
|
|
41
|
+
expect(isTodayToken('2026-10-06')).toBe(false)
|
|
42
|
+
expect(isTodayToken(undefined)).toBe(false)
|
|
43
|
+
})
|
|
44
|
+
})
|
|
45
|
+
|
|
46
|
+
describe('buildFieldDefaults con default declarado', () => {
|
|
47
|
+
const ctx = { timeZone: 'America/Mexico_City', now: EVENING_MX }
|
|
48
|
+
|
|
49
|
+
it('un campo fecha con default "$today" nace con hoy en la zona de la org', () => {
|
|
50
|
+
const fields = [
|
|
51
|
+
{ key: 'invoice_date', label: 'Fecha de emisión', type: 'date', required: true, default: '$today' },
|
|
52
|
+
] as unknown as ActionFieldDef[]
|
|
53
|
+
expect(buildFieldDefaults(fields, undefined, undefined, ctx)).toEqual({ invoice_date: '2026-10-06' })
|
|
54
|
+
})
|
|
55
|
+
|
|
56
|
+
it('lee `default` (manifest) además de `defaultValue` (host)', () => {
|
|
57
|
+
const fields = [
|
|
58
|
+
{ key: 'metodo', label: 'Método', type: 'select', default: 'PUE' },
|
|
59
|
+
{ key: 'forma', label: 'Forma', type: 'select', defaultValue: '01' },
|
|
60
|
+
] as unknown as ActionFieldDef[]
|
|
61
|
+
expect(buildFieldDefaults(fields, undefined, undefined, ctx)).toEqual({ metodo: 'PUE', forma: '01' })
|
|
62
|
+
})
|
|
63
|
+
|
|
64
|
+
it('un $token desconocido nunca entra a un campo fecha; sin default sigue vacío', () => {
|
|
65
|
+
const unknown = { key: 'd', label: 'D', type: 'date', default: '$yesterday' } as unknown as ActionFieldDef
|
|
66
|
+
expect(resolveFieldDefault(unknown, ctx)).toBeUndefined()
|
|
67
|
+
const fields = [unknown, { key: 'notes', label: 'Notas', type: 'textarea' }] as unknown as ActionFieldDef[]
|
|
68
|
+
expect(buildFieldDefaults(fields, undefined, undefined, ctx)).toEqual({ d: '', notes: '' })
|
|
69
|
+
})
|
|
70
|
+
|
|
71
|
+
it('una fecha fija declarada se respeta tal cual', () => {
|
|
72
|
+
const f = { key: 'd', label: 'D', type: 'date', default: '2026-01-01' } as unknown as ActionFieldDef
|
|
73
|
+
expect(resolveFieldDefault(f, ctx)).toBe('2026-01-01')
|
|
74
|
+
})
|
|
75
|
+
})
|
|
76
|
+
|
|
77
|
+
describe('DocumentFormDialog — fecha de emisión por defecto', () => {
|
|
78
|
+
beforeEach(() => {
|
|
79
|
+
vi.useFakeTimers({ toFake: ['Date'] })
|
|
80
|
+
vi.setSystemTime(EVENING_MX)
|
|
81
|
+
})
|
|
82
|
+
afterEach(() => {
|
|
83
|
+
vi.useRealTimers()
|
|
84
|
+
cleanup()
|
|
85
|
+
})
|
|
86
|
+
|
|
87
|
+
const forms: DocumentFormsManifest = {
|
|
88
|
+
types: [
|
|
89
|
+
{
|
|
90
|
+
key: 'invoice',
|
|
91
|
+
label: 'Factura',
|
|
92
|
+
value: 'I',
|
|
93
|
+
fields: [
|
|
94
|
+
{ key: 'customer_name', label: 'Cliente', type: 'text', required: true },
|
|
95
|
+
{ key: 'invoice_date', label: 'Fecha de emisión', type: 'date', required: true, default: '$today' },
|
|
96
|
+
] as unknown as ActionFieldDef[],
|
|
97
|
+
},
|
|
98
|
+
],
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
it('sin tocar la fecha, el alta viaja con hoy en la zona de la org', async () => {
|
|
102
|
+
const post = vi.fn().mockResolvedValue({ data: { success: true, data: { id: '1' } } })
|
|
103
|
+
const client = { get: vi.fn().mockResolvedValue({ data: {} }), post, put: vi.fn(), delete: vi.fn() } as unknown as ApiClient
|
|
104
|
+
render(
|
|
105
|
+
<ApiProvider client={client}>
|
|
106
|
+
<OrgRuntimeProvider timeZone="America/Mexico_City">
|
|
107
|
+
<DocumentFormDialog open onOpenChange={() => {}} model="invoices" forms={forms} />
|
|
108
|
+
</OrgRuntimeProvider>
|
|
109
|
+
</ApiProvider>,
|
|
110
|
+
)
|
|
111
|
+
fireEvent.change(document.querySelectorAll('input')[0], { target: { value: 'ACME' } })
|
|
112
|
+
fireEvent.click(screen.getByRole('button', { name: 'Crear' }))
|
|
113
|
+
await waitFor(() => expect(post).toHaveBeenCalled())
|
|
114
|
+
expect(post.mock.calls[0][1]).toMatchObject({ customer_name: 'ACME', invoice_date: '2026-10-06' })
|
|
115
|
+
})
|
|
116
|
+
})
|
|
@@ -93,6 +93,8 @@ import { requestFederatedAction } from './federated-action-loader'
|
|
|
93
93
|
import { useInstalledAddons } from './installed-addons-context'
|
|
94
94
|
import { federatedModalComponent, resolveFederatedModal } from './primitives/contributions'
|
|
95
95
|
import { installedPredicate, useContributionsVersion } from './primitives/use-contributions'
|
|
96
|
+
import { isTodayToken, todayInZone } from './calendar-date'
|
|
97
|
+
import { useTimeZone } from './org-runtime-context'
|
|
96
98
|
|
|
97
99
|
export type { ActionMetadata, ActionModalProps }
|
|
98
100
|
|
|
@@ -1021,6 +1023,7 @@ function GenericActionModal({ open, onOpenChange, action, model, record, endpoin
|
|
|
1021
1023
|
const reasonPrompt = useReasonPrompt()
|
|
1022
1024
|
const supervisor = useSupervisor()
|
|
1023
1025
|
const branchGate = useBranchCreateGate()
|
|
1026
|
+
const orgTimeZone = useTimeZone()
|
|
1024
1027
|
const [formData, setFormData] = useState<Record<string, any>>({})
|
|
1025
1028
|
const [executing, setExecuting] = useState(false)
|
|
1026
1029
|
// Per-field validation errors (localized), shown inline under each input.
|
|
@@ -1058,11 +1061,11 @@ function GenericActionModal({ open, onOpenChange, action, model, record, endpoin
|
|
|
1058
1061
|
|
|
1059
1062
|
useEffect(() => {
|
|
1060
1063
|
if (open && action.fields) {
|
|
1061
|
-
setFormData(buildFieldDefaults(action.fields, record, model))
|
|
1064
|
+
setFormData(buildFieldDefaults(action.fields, record, model, { timeZone: orgTimeZone }))
|
|
1062
1065
|
setFieldErrors({})
|
|
1063
1066
|
setFormError(undefined)
|
|
1064
1067
|
}
|
|
1065
|
-
}, [open, action.fields, record, model])
|
|
1068
|
+
}, [open, action.fields, record, model, orgTimeZone])
|
|
1066
1069
|
|
|
1067
1070
|
// Lines the list row does not carry: load them from the declared relation
|
|
1068
1071
|
// (see prefillRelationRequests) and seed the line-items grid.
|
|
@@ -1353,10 +1356,44 @@ function GenericActionModal({ open, onOpenChange, action, model, record, endpoin
|
|
|
1353
1356
|
)
|
|
1354
1357
|
}
|
|
1355
1358
|
|
|
1359
|
+
/** Context a declared field default is resolved against. */
|
|
1360
|
+
export interface FieldDefaultContext {
|
|
1361
|
+
/** Org IANA timezone: `$today` is the org's day, not the browser's or UTC's. */
|
|
1362
|
+
timeZone?: string
|
|
1363
|
+
/** Clock (tests). */
|
|
1364
|
+
now?: Date
|
|
1365
|
+
}
|
|
1366
|
+
|
|
1367
|
+
const DATE_FIELD_TYPES = new Set(['date', 'datetime', 'timestamp', 'timestamptz'])
|
|
1368
|
+
|
|
1369
|
+
/**
|
|
1370
|
+
* The declared scalar default of a field, resolved: `defaultValue` (host
|
|
1371
|
+
* camelCase) or `default` (raw manifest, the kernel serves action/document-form
|
|
1372
|
+
* fields without renaming it). A date field may declare `$today` / `today` and
|
|
1373
|
+
* gets the org's calendar day. An unknown `$token` never lands in a date field
|
|
1374
|
+
* (undefined): a literal "$today" posted as invoice_date is a 422, an empty
|
|
1375
|
+
* field is just a required field to fill.
|
|
1376
|
+
*/
|
|
1377
|
+
export function resolveFieldDefault(field: ActionFieldDef, ctx: FieldDefaultContext = {}): unknown {
|
|
1378
|
+
const f = field as { defaultValue?: unknown; default?: unknown }
|
|
1379
|
+
const raw = f.defaultValue ?? f.default
|
|
1380
|
+
if (raw === undefined || raw === null) return undefined
|
|
1381
|
+
if (DATE_FIELD_TYPES.has(String(field.type ?? '').toLowerCase()) && typeof raw === 'string') {
|
|
1382
|
+
if (isTodayToken(raw)) return todayInZone(ctx.timeZone, ctx.now)
|
|
1383
|
+
if (raw.trim().startsWith('$')) return undefined
|
|
1384
|
+
}
|
|
1385
|
+
return raw
|
|
1386
|
+
}
|
|
1387
|
+
|
|
1356
1388
|
// buildFieldDefaults seeds formData for a set of action fields, honoring the
|
|
1357
1389
|
// same line-items prefill spec + boolean/empty rules GenericActionModal uses, so
|
|
1358
1390
|
// wizard steps and single-page forms initialize identically.
|
|
1359
|
-
export function buildFieldDefaults(
|
|
1391
|
+
export function buildFieldDefaults(
|
|
1392
|
+
fields: ActionFieldDef[],
|
|
1393
|
+
record: any,
|
|
1394
|
+
model?: string,
|
|
1395
|
+
ctx: FieldDefaultContext = {},
|
|
1396
|
+
): Record<string, any> {
|
|
1360
1397
|
const defaults: Record<string, any> = {}
|
|
1361
1398
|
for (const field of fields) {
|
|
1362
1399
|
if (isLineItemsField(field)) {
|
|
@@ -1373,7 +1410,7 @@ export function buildFieldDefaults(fields: ActionFieldDef[], record: any, model?
|
|
|
1373
1410
|
defaults[field.key] = fromRecord
|
|
1374
1411
|
continue
|
|
1375
1412
|
}
|
|
1376
|
-
defaults[field.key] = field
|
|
1413
|
+
defaults[field.key] = resolveFieldDefault(field, ctx) ?? (field.type === 'boolean' ? false : '')
|
|
1377
1414
|
}
|
|
1378
1415
|
return defaults
|
|
1379
1416
|
}
|
|
@@ -1404,6 +1441,7 @@ function WizardActionModal({ open, onOpenChange, action, model, record, endpoint
|
|
|
1404
1441
|
const api = useApi()
|
|
1405
1442
|
const reasonPrompt = useReasonPrompt()
|
|
1406
1443
|
const supervisor = useSupervisor()
|
|
1444
|
+
const orgTimeZone = useTimeZone()
|
|
1407
1445
|
const steps = action.steps ?? []
|
|
1408
1446
|
const [stepIndex, setStepIndex] = useState(0)
|
|
1409
1447
|
const [formData, setFormData] = useState<Record<string, any>>({})
|
|
@@ -1416,10 +1454,10 @@ function WizardActionModal({ open, onOpenChange, action, model, record, endpoint
|
|
|
1416
1454
|
useEffect(() => {
|
|
1417
1455
|
if (!open) return
|
|
1418
1456
|
const allFields = steps.flatMap((s) => s.fields ?? [])
|
|
1419
|
-
setFormData(buildFieldDefaults(allFields, record, model))
|
|
1457
|
+
setFormData(buildFieldDefaults(allFields, record, model, { timeZone: orgTimeZone }))
|
|
1420
1458
|
setStepIndex(0)
|
|
1421
1459
|
setFormError(undefined)
|
|
1422
|
-
}, [open, action.steps, record, model])
|
|
1460
|
+
}, [open, action.steps, record, model, orgTimeZone])
|
|
1423
1461
|
|
|
1424
1462
|
const updateField = (key: string, value: any) =>
|
|
1425
1463
|
setFormData((prev: Record<string, any>) => ({ ...prev, [key]: value }))
|
|
@@ -23,7 +23,7 @@ import { Button } from '@asteby/metacore-ui/primitives'
|
|
|
23
23
|
import { Loader2 } from 'lucide-react'
|
|
24
24
|
import { toast } from 'sonner'
|
|
25
25
|
import { useApi } from '../api-context'
|
|
26
|
-
import { useOrgTaxRate } from '../org-runtime-context'
|
|
26
|
+
import { useOrgTaxRate, useTimeZone } from '../org-runtime-context'
|
|
27
27
|
import { FieldCell, FieldGrid, FieldLabel } from '../field-grid'
|
|
28
28
|
import { FormErrorBanner } from './feedback'
|
|
29
29
|
import { DocumentLinesGrid, type DocumentLinesGridProps, type LineItemsColumn } from './line-items-editor'
|
|
@@ -114,6 +114,7 @@ export function DocumentEditor({
|
|
|
114
114
|
const fmt = useFormatter({ currency })
|
|
115
115
|
const installed = useInstalledAddons()
|
|
116
116
|
const orgTaxRate = useOrgTaxRate()
|
|
117
|
+
const orgTimeZone = useTimeZone()
|
|
117
118
|
const tl = useCallback((s: string) => t(s, { defaultValue: s }), [t])
|
|
118
119
|
|
|
119
120
|
const lineCfg = useMemo(() => editorLinesConfig(type, forms), [type, forms])
|
|
@@ -122,7 +123,7 @@ export function DocumentEditor({
|
|
|
122
123
|
const amountKey = isAllocation ? allocationAmountField(type.fields) : undefined
|
|
123
124
|
|
|
124
125
|
const [header, setHeader] = useState<Record<string, any>>(() => ({
|
|
125
|
-
...buildFieldDefaults(type.fields, record),
|
|
126
|
+
...buildFieldDefaults(type.fields, record, undefined, { timeZone: orgTimeZone, now: today }),
|
|
126
127
|
...(type.defaults ?? {}),
|
|
127
128
|
}))
|
|
128
129
|
const [lines, setLines] = useState<LineItem[]>([])
|
package/src/calendar-date.ts
CHANGED
|
@@ -26,3 +26,39 @@ export function isCalendarDayValue(v: unknown): boolean {
|
|
|
26
26
|
if (typeof v !== 'string') return false
|
|
27
27
|
return /^\d{4}-\d{2}-\d{2}(?:[T ]00:00:00(?:\.0+)?(?:Z|\+00:00)?)?$/.test(v.trim())
|
|
28
28
|
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Today's calendar day ("YYYY-MM-DD") in `timeZone` (IANA, e.g. the org's
|
|
32
|
+
* `America/Mexico_City`), or in the browser zone when absent/invalid. A form
|
|
33
|
+
* that seeds «hoy» must use the org's day, not UTC's: at 19:00 in Mexico City
|
|
34
|
+
* UTC is already tomorrow.
|
|
35
|
+
*/
|
|
36
|
+
export function todayInZone(timeZone?: string, now: Date = new Date()): string {
|
|
37
|
+
if (timeZone) {
|
|
38
|
+
try {
|
|
39
|
+
// en-CA formats as YYYY-MM-DD.
|
|
40
|
+
return new Intl.DateTimeFormat('en-CA', {
|
|
41
|
+
timeZone,
|
|
42
|
+
year: 'numeric',
|
|
43
|
+
month: '2-digit',
|
|
44
|
+
day: '2-digit',
|
|
45
|
+
}).format(now)
|
|
46
|
+
} catch {
|
|
47
|
+
/* unknown zone → browser day */
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
const y = now.getFullYear()
|
|
51
|
+
const m = String(now.getMonth() + 1).padStart(2, '0')
|
|
52
|
+
const d = String(now.getDate()).padStart(2, '0')
|
|
53
|
+
return `${y}-${m}-${d}`
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* A field default that names «today» instead of a fixed day: `$today` (the
|
|
58
|
+
* token flows already use) or `today`. Case-insensitive.
|
|
59
|
+
*/
|
|
60
|
+
export function isTodayToken(v: unknown): boolean {
|
|
61
|
+
if (typeof v !== 'string') return false
|
|
62
|
+
const s = v.trim().toLowerCase()
|
|
63
|
+
return s === '$today' || s === 'today'
|
|
64
|
+
}
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
import { Loader2 } from 'lucide-react'
|
|
24
24
|
import { toast } from 'sonner'
|
|
25
25
|
import { useApi } from './api-context'
|
|
26
|
-
import { useOrgTaxRate } from './org-runtime-context'
|
|
26
|
+
import { useOrgTaxRate, useTimeZone } from './org-runtime-context'
|
|
27
27
|
import { DynamicIcon } from './dynamic-icon'
|
|
28
28
|
import { FieldCell, FieldGrid, FieldLabel } from './field-grid'
|
|
29
29
|
import { FormErrorBanner } from './business/feedback'
|
|
@@ -48,6 +48,7 @@ import { DocumentEditor } from './business/document-editor'
|
|
|
48
48
|
import { editorLinesConfig, isEditorLayout } from './business/document-editor-model'
|
|
49
49
|
import type {
|
|
50
50
|
ActionFieldDef,
|
|
51
|
+
DocumentFormType,
|
|
51
52
|
DocumentFormsManifest,
|
|
52
53
|
TableMetadata,
|
|
53
54
|
} from './types'
|
|
@@ -82,6 +83,39 @@ export interface DocumentFormDialogProps {
|
|
|
82
83
|
record?: Record<string, any>
|
|
83
84
|
/** Documento origen a precargar en el DocumentEditor (`sources[].key` + id). */
|
|
84
85
|
initialSource?: { key: string; id: string }
|
|
86
|
+
/**
|
|
87
|
+
* Tipo con `create_model`: el alta vive en otro modelo. El host navega a la
|
|
88
|
+
* página de ese modelo con su alta abierta; el diálogo se cierra sin pintar
|
|
89
|
+
* formulario. Sin este callback un tipo delegado no se ofrece.
|
|
90
|
+
*/
|
|
91
|
+
onDelegateCreate?: (target: DelegatedCreate) => void
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/** Alta delegada a otro modelo (`document_forms.types[].create_model`). */
|
|
95
|
+
export interface DelegatedCreate {
|
|
96
|
+
/** Clave del modelo destino tal como la declara el manifest (`customers.Invoice`). */
|
|
97
|
+
model: string
|
|
98
|
+
/** Tipo que la declaró. */
|
|
99
|
+
type: DocumentFormType
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Si «Crear» de estos formularios es un alta delegada: un único tipo (p. ej.
|
|
104
|
+
* ya acotado por el filtro de la vista) con `create_model`. Con varios tipos el
|
|
105
|
+
* selector la ofrece como una tarjeta más.
|
|
106
|
+
*/
|
|
107
|
+
export function delegatedCreate(forms: DocumentFormsManifest | undefined): DelegatedCreate | undefined {
|
|
108
|
+
const only = forms?.types.length === 1 ? forms.types[0] : undefined
|
|
109
|
+
const model = only?.create_model?.trim()
|
|
110
|
+
return only && model ? { model, type: only } : undefined
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/** Quita los tipos delegados cuando el host no sabe navegar a otro modelo. */
|
|
114
|
+
export function withoutDelegatedTypes(forms: DocumentFormsManifest | undefined): DocumentFormsManifest | undefined {
|
|
115
|
+
if (!forms) return forms
|
|
116
|
+
const types = forms.types.filter((x) => !x.create_model?.trim())
|
|
117
|
+
if (types.length === forms.types.length) return forms
|
|
118
|
+
return types.length > 0 ? { ...forms, types } : undefined
|
|
85
119
|
}
|
|
86
120
|
|
|
87
121
|
/** Manifest efectivo: la prop gana sobre el metadata; sin tipos devuelve undefined. */
|
|
@@ -130,11 +164,17 @@ export function DocumentFormDialog({
|
|
|
130
164
|
currency,
|
|
131
165
|
record,
|
|
132
166
|
initialSource,
|
|
167
|
+
onDelegateCreate,
|
|
133
168
|
}: DocumentFormDialogProps) {
|
|
134
169
|
const { t, i18n } = useTranslation()
|
|
135
170
|
const api = useApi()
|
|
136
171
|
const orgTaxRate = useOrgTaxRate()
|
|
137
|
-
const
|
|
172
|
+
const orgTimeZone = useTimeZone()
|
|
173
|
+
// Sin onDelegateCreate el host no sabe abrir otro modelo: sus tipos no se ofrecen.
|
|
174
|
+
const types = useMemo(
|
|
175
|
+
() => (onDelegateCreate ? forms.types : forms.types.filter((x) => !x.create_model?.trim())),
|
|
176
|
+
[forms.types, onDelegateCreate],
|
|
177
|
+
)
|
|
138
178
|
const single = types.length === 1 ? types[0] : undefined
|
|
139
179
|
|
|
140
180
|
const [typeKey, setTypeKey] = useState<string | null>(initialType ?? single?.key ?? null)
|
|
@@ -147,6 +187,16 @@ export function DocumentFormDialog({
|
|
|
147
187
|
const [saving, setSaving] = useState(false)
|
|
148
188
|
|
|
149
189
|
const type = useMemo(() => types.find((x) => x.key === typeKey) ?? null, [types, typeKey])
|
|
190
|
+
const delegatedModel = type?.create_model?.trim() || undefined
|
|
191
|
+
|
|
192
|
+
// Tipo con alta en otro modelo: no hay formulario aquí; el host navega.
|
|
193
|
+
useEffect(() => {
|
|
194
|
+
if (!open || !type || !delegatedModel) return
|
|
195
|
+
onDelegateCreate?.({ model: delegatedModel, type })
|
|
196
|
+
onOpenChange(false)
|
|
197
|
+
// onDelegateCreate/onOpenChange: callbacks del host, no disparan de nuevo.
|
|
198
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
199
|
+
}, [open, type, delegatedModel])
|
|
150
200
|
// Sin buscador inyectado, el paso de renglones solo ofrecía «Renglón libre»
|
|
151
201
|
// y la línea entraba sin precio (DynamicCRUDPage no pasa searchProducts).
|
|
152
202
|
// Default: el catálogo de productos de la org. El buscador del host también
|
|
@@ -176,10 +226,13 @@ export function DocumentFormDialog({
|
|
|
176
226
|
// Seed field defaults for the chosen type.
|
|
177
227
|
useEffect(() => {
|
|
178
228
|
if (!type) return
|
|
179
|
-
setFormData({
|
|
229
|
+
setFormData({
|
|
230
|
+
...buildFieldDefaults(type.fields, record, undefined, { timeZone: orgTimeZone }),
|
|
231
|
+
...(type.defaults ?? {}),
|
|
232
|
+
})
|
|
180
233
|
setFieldErrors({})
|
|
181
234
|
setFormError(undefined)
|
|
182
|
-
}, [type, record])
|
|
235
|
+
}, [type, record, orgTimeZone])
|
|
183
236
|
|
|
184
237
|
const updateField = (key: string, value: any) => {
|
|
185
238
|
setFormData((prev) => ({ ...prev, [key]: value }))
|
|
@@ -280,6 +333,8 @@ export function DocumentFormDialog({
|
|
|
280
333
|
? t('documentForm.step_data', { defaultValue: 'Datos' })
|
|
281
334
|
: tl(lineCfg?.title ?? 'Renglones')
|
|
282
335
|
|
|
336
|
+
if (open && type && delegatedModel) return null
|
|
337
|
+
|
|
283
338
|
// layout "editor": una sola pantalla por secciones (DocumentEditor). Sin él
|
|
284
339
|
// sigue el wizard de siempre (retrocompatible).
|
|
285
340
|
if (open && type && step !== 'type' && (isEditorLayout(type) || !!initialSource)) {
|