@mj-biz-apps/orders-server 5.15.0 → 5.17.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/dist/__tests__/invoice-as-of-date.test.d.ts +2 -0
- package/dist/__tests__/invoice-as-of-date.test.d.ts.map +1 -0
- package/dist/__tests__/invoice-as-of-date.test.js +50 -0
- package/dist/__tests__/invoice-as-of-date.test.js.map +1 -0
- package/dist/__tests__/spawn-renewals-as-of-date.test.d.ts +2 -0
- package/dist/__tests__/spawn-renewals-as-of-date.test.d.ts.map +1 -0
- package/dist/__tests__/spawn-renewals-as-of-date.test.js +42 -0
- package/dist/__tests__/spawn-renewals-as-of-date.test.js.map +1 -0
- package/dist/custom/spawn-renewals.action.d.ts.map +1 -1
- package/dist/custom/spawn-renewals.action.js +9 -1
- package/dist/custom/spawn-renewals.action.js.map +1 -1
- package/dist/generated/graphql-schemas/__mj_BizAppsOrders.d.ts +12 -0
- package/dist/generated/graphql-schemas/__mj_BizAppsOrders.d.ts.map +1 -1
- package/dist/generated/graphql-schemas/__mj_BizAppsOrders.js +48 -0
- package/dist/generated/graphql-schemas/__mj_BizAppsOrders.js.map +1 -1
- package/dist/services/invoice-renderer.d.ts +1 -1
- package/dist/services/invoice-renderer.d.ts.map +1 -1
- package/dist/services/invoice-renderer.js +20 -2
- package/dist/services/invoice-renderer.js.map +1 -1
- package/package.json +4 -4
|
@@ -56,7 +56,7 @@ export interface RenderInvoiceOptions {
|
|
|
56
56
|
ShowDiagnostics?: boolean;
|
|
57
57
|
}
|
|
58
58
|
/** A refusal carries a code so the caller can map it to an action result without parsing prose. */
|
|
59
|
-
export type RenderFailureCode = 'ORDER_NOT_FOUND' | 'NOT_INVOICEABLE' | 'TEMPLATE_NOT_FOUND' | 'RENDER_FAILED';
|
|
59
|
+
export type RenderFailureCode = 'ORDER_NOT_FOUND' | 'NOT_INVOICEABLE' | 'TEMPLATE_NOT_FOUND' | 'RENDER_FAILED' | 'INVALID_AS_OF_DATE';
|
|
60
60
|
/**
|
|
61
61
|
* A flat result rather than a discriminated union, matching `RefundPaymentOutput` and the driver
|
|
62
62
|
* results throughout this app. The repo's tsconfig does not enable `strict`, so a boolean-literal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoice-renderer.d.ts","sourceRoot":"","sources":["../../src/services/invoice-renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,
|
|
1
|
+
{"version":3,"file":"invoice-renderer.d.ts","sourceRoot":"","sources":["../../src/services/invoice-renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAA2E,KAAK,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAIxJ,6DAA6D;AAC7D,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AAEnE,6BAA6B;AAC7B,MAAM,WAAW,eAAe;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,qFAAqF;IACrF,IAAI,EAAE,cAAc,CAAC;IACrB,wFAAwF;IACxF,KAAK,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACjC,+FAA+F;IAC/F,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,0FAA0F;IAC1F,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,yGAAyG;IACzG,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,mGAAmG;AACnG,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,oBAAoB,GAAG,eAAe,GAAG,oBAAoB,CAAC;AAEtI;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,wBAAwB;IACxB,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,mCAAmC;IACnC,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CACxC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,QAAQ,EACd,OAAO,GAAE,oBAAyB,GACnC,OAAO,CAAC,mBAAmB,CAAC,CAqF9B"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { BuildInvoiceDocuments, DecorateInvoice } from '@mj-biz-apps/orders-core-entities-server';
|
|
1
|
+
import { BuildInvoiceDocuments, CalendarDayOrToday, DecorateInvoice, RequireDate } from '@mj-biz-apps/orders-core-entities-server';
|
|
2
|
+
import { ToISODate } from '@mj-biz-apps/orders-entities';
|
|
2
3
|
import { TemplateEngineServer } from '@memberjunction/templates';
|
|
3
4
|
/** The template rendered when a caller does not name one. */
|
|
4
5
|
export const DEFAULT_INVOICE_TEMPLATE = 'Orders: Standard Invoice';
|
|
@@ -10,7 +11,22 @@ export const DEFAULT_INVOICE_TEMPLATE = 'Orders: Standard Invoice';
|
|
|
10
11
|
* not treat the first element as the whole bill.
|
|
11
12
|
*/
|
|
12
13
|
export async function RenderInvoiceDocuments(orderID, provider, user, options = {}) {
|
|
14
|
+
// A day the caller named is caller input, and everything below it normalises rather than
|
|
15
|
+
// refuses: `AsDateValue` answers `null` for `2026-02-30`, so an invoice asked for an impossible
|
|
16
|
+
// day would be dated TODAY — on the document, and in the days-until-due countdown — with
|
|
17
|
+
// nothing to tell the caller their date never existed. Refused here rather than there, because
|
|
18
|
+
// this is the boundary both actions (`Orders.GenerateInvoice`, `Orders.SendDocument`) come
|
|
19
|
+
// through. `AsOfDate` is `string | null` here, so unlike the operations' `Date | string` inputs
|
|
20
|
+
// there is no non-textual case to skip.
|
|
13
21
|
const asOf = options.AsOfDate ?? null;
|
|
22
|
+
if (asOf) {
|
|
23
|
+
try {
|
|
24
|
+
RequireDate(asOf, 'AsOfDate');
|
|
25
|
+
}
|
|
26
|
+
catch (e) {
|
|
27
|
+
return { Success: false, Documents: [], Code: 'INVALID_AS_OF_DATE', Message: String(e.message) };
|
|
28
|
+
}
|
|
29
|
+
}
|
|
14
30
|
const built = await BuildInvoiceDocuments(orderID, provider, user, {
|
|
15
31
|
AsOf: asOf,
|
|
16
32
|
OnlyCompanyID: options.CompanyID ?? null,
|
|
@@ -28,7 +44,9 @@ export async function RenderInvoiceDocuments(orderID, provider, user, options =
|
|
|
28
44
|
}
|
|
29
45
|
const format = options.Format ?? 'HTML';
|
|
30
46
|
const locale = options.Locale ?? 'en-US';
|
|
31
|
-
|
|
47
|
+
// The BUSINESS day (#209): the UTC day is already tomorrow for the whole American evening,
|
|
48
|
+
// and this is the date printed on the document.
|
|
49
|
+
const generatedOn = ToISODate(await CalendarDayOrToday(asOf, provider, user));
|
|
32
50
|
const templateName = options.TemplateName ?? DEFAULT_INVOICE_TEMPLATE;
|
|
33
51
|
let render = null;
|
|
34
52
|
if (format === 'HTML') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoice-renderer.js","sourceRoot":"","sources":["../../src/services/invoice-renderer.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAuB,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"invoice-renderer.js","sourceRoot":"","sources":["../../src/services/invoice-renderer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mj-biz-apps/orders-server",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "5.
|
|
4
|
+
"version": "5.17.0",
|
|
5
5
|
"description": "BizApps Orders server bootstrap - GraphQL resolvers and class registrations for the unified order-management Open App",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -37,9 +37,9 @@
|
|
|
37
37
|
"typescript": "^5.9.3"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@mj-biz-apps/orders-actions": "5.
|
|
41
|
-
"@mj-biz-apps/orders-core-entities-server": "5.
|
|
42
|
-
"@mj-biz-apps/orders-entities": "5.
|
|
40
|
+
"@mj-biz-apps/orders-actions": "5.17.0",
|
|
41
|
+
"@mj-biz-apps/orders-core-entities-server": "5.17.0",
|
|
42
|
+
"@mj-biz-apps/orders-entities": "5.17.0",
|
|
43
43
|
"body-parser": "^2.2.0",
|
|
44
44
|
"class-validator": "^0.14.3"
|
|
45
45
|
},
|