@bisondesk/documents-sdk 1.0.405 → 1.0.407

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.
@@ -1 +1 @@
1
- {"version":3,"file":"documents.d.ts","sourceRoot":"/","sources":["apis/documents.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAE5E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEhF,eAAO,MAAM,kBAAkB,aACnB,MAAM,cACJ,MAAM,KACjB,OAAO,CAAC,UAAU,CAAC,eAAe,EAAE,aAAa,CAAC,GAAG,SAAS,CAuBhE,CAAC;AAEF,eAAO,MAAM,mBAAmB,aACpB,MAAM,cACJ,MAAM,KACjB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAgB5B,CAAC;AAEF,eAAO,MAAM,wBAAwB,aACzB,MAAM,cACJ,MAAM,KACjB,OAAO,CAAC,cAAc,GAAG,SAAS,CA2BpC,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAU,CAAC,SAAS,eAAe,8BACpD,MAAM,OACX,CAAC,KACL,OAAO,CAAC,CAAC,CAuBX,CAAC;AAEF,eAAO,MAAM,gBAAgB,aACjB,MAAM,cACJ,MAAM,KACjB,OAAO,CAAC,UAAU,CAAC,sBAAsB,EAAE,aAAa,CAAC,GAAG,SAAS,CAuBvE,CAAC;AAEF,eAAO,MAAM,cAAc,aACf,MAAM,OACX,sBAAsB,SACpB;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,KAC3B,OAAO,CAAC,sBAAsB,CA2BhC,CAAC;AAEF,eAAO,MAAM,oBAAoB,aACrB,MAAM,WACP,cAAc,KACtB,OAAO,CAAC,cAAc,CA0BxB,CAAC"}
1
+ {"version":3,"file":"documents.d.ts","sourceRoot":"/","sources":["apis/documents.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAE5E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEhF,eAAO,MAAM,kBAAkB,aACnB,MAAM,cACJ,MAAM,KACjB,OAAO,CAAC,UAAU,CAAC,eAAe,EAAE,aAAa,CAAC,GAAG,SAAS,CA2BhE,CAAC;AAEF,eAAO,MAAM,mBAAmB,aACpB,MAAM,cACJ,MAAM,KACjB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAgB5B,CAAC;AAEF,eAAO,MAAM,wBAAwB,aACzB,MAAM,cACJ,MAAM,KACjB,OAAO,CAAC,cAAc,GAAG,SAAS,CA2BpC,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAU,CAAC,SAAS,eAAe,8BACpD,MAAM,OACX,CAAC,KACL,OAAO,CAAC,CAAC,CAuBX,CAAC;AAEF,eAAO,MAAM,gBAAgB,aACjB,MAAM,cACJ,MAAM,KACjB,OAAO,CAAC,UAAU,CAAC,sBAAsB,EAAE,aAAa,CAAC,GAAG,SAAS,CAuBvE,CAAC;AAEF,eAAO,MAAM,cAAc,aACf,MAAM,OACX,sBAAsB,SACpB;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,KAC3B,OAAO,CAAC,sBAAsB,CA2BhC,CAAC;AAEF,eAAO,MAAM,oBAAoB,aACrB,MAAM,WACP,cAAc,KACtB,OAAO,CAAC,cAAc,CA0BxB,CAAC"}
@@ -13,6 +13,9 @@ export const getFinanceDocument = async (tenantId, documentId) => {
13
13
  if (response.status === 200) {
14
14
  return response.json();
15
15
  }
16
+ if (response.status === 204) {
17
+ return undefined;
18
+ }
16
19
  const body = await response.text();
17
20
  throw new XError('documents-sdk.get-finance-doc-fail', {
18
21
  tenantId,
@@ -1 +1 @@
1
- {"version":3,"file":"documents.js","sourceRoot":"/","sources":["apis/documents.ts"],"names":[],"mappings":"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","sourcesContent":["import { SERVICE_ID_ADMIN_HEADER, TENANT_ID_ADMIN_HEADER } from '@bisondesk/commons-sdk/constants';\nimport { XError } from '@bisondesk/commons-sdk/errors';\nimport { cleanHeaders, getAdminAuth } from '@bisondesk/commons-sdk/fetch';\nimport { DataRecord, ReferenceData } from '@bisondesk/core-sdk/types/utils';\nimport fetch, { Response } from 'node-fetch';\nimport { FinanceBooking } from '../types/booking.js';\nimport { AdministrativeDocument, FinanceDocument } from '../types/documents.js';\n\nexport const getFinanceDocument = async (\n tenantId: string,\n documentId: string\n): Promise<DataRecord<FinanceDocument, ReferenceData> | undefined> => {\n const auth = await getAdminAuth();\n const response: Response = await fetch(\n `${process.env.CORE_API_ORIGIN}/api/documents/finance/${documentId}`,\n {\n headers: {\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n },\n }\n );\n\n if (response.status === 200) {\n return response.json() as any;\n }\n\n const body = await response.text();\n throw new XError('documents-sdk.get-finance-doc-fail', {\n tenantId,\n documentId,\n response: body,\n status: response.status,\n });\n};\n\nexport const checkDocumentStatus = async (\n tenantId: string,\n documentId: string\n): Promise<{ status: number }> => {\n const auth = await getAdminAuth();\n const response: Response = await fetch(\n `${process.env.CORE_API_ORIGIN}/api/documents/finance/${documentId}`,\n {\n method: 'HEAD',\n headers: {\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n },\n }\n );\n\n return {\n status: response.status,\n };\n};\n\nexport const getFinanceBookingByDocId = async (\n tenantId: string,\n documentId: string\n): Promise<FinanceBooking | undefined> => {\n const auth = await getAdminAuth();\n const response: Response = await fetch(\n `${process.env.CORE_API_ORIGIN}/api/documents/finance/${documentId}/booking`,\n {\n headers: {\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n },\n }\n );\n\n if (response.status === 200) {\n return response.json() as any;\n }\n\n if (response.status === 204) {\n return undefined;\n }\n\n const body = await response.text();\n throw new XError('documents-sdk.get-finance-booking-fail', {\n tenantId,\n documentId,\n response: body,\n status: response.status,\n });\n};\n\nexport const upsertFinanceDoc = async <T extends FinanceDocument = FinanceDocument>(\n tenantId: string,\n doc: T\n): Promise<T> => {\n const auth = await getAdminAuth();\n const response: Response = await fetch(`${process.env.CORE_API_ORIGIN}/api/documents/finance`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n },\n body: JSON.stringify(doc),\n });\n\n if (response.status === 200) {\n return response.json() as any;\n }\n\n const body = await response.text();\n throw new XError('documents-sdk.upsert-finance-doc-fail', {\n tenantId,\n doc,\n response: body,\n status: response.status,\n });\n};\n\nexport const getAdminDocument = async (\n tenantId: string,\n documentId: string\n): Promise<DataRecord<AdministrativeDocument, ReferenceData> | undefined> => {\n const auth = await getAdminAuth();\n const response: Response = await fetch(\n `${process.env.CORE_API_ORIGIN}/api/documents/administrative/${documentId}`,\n {\n headers: {\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n },\n }\n );\n\n if (response.status === 200) {\n return response.json() as any;\n }\n\n const body = await response.text();\n throw new XError('documents-sdk.get-admin-doc-fail', {\n tenantId,\n documentId,\n response: body,\n status: response.status,\n });\n};\n\nexport const upsertAdminDoc = async (\n tenantId: string,\n doc: AdministrativeDocument,\n opts?: { serviceId: string }\n): Promise<AdministrativeDocument> => {\n const auth = await getAdminAuth();\n const response: Response = await fetch(\n `${process.env.CORE_API_ORIGIN}/api/documents/administrative`,\n {\n method: 'POST',\n headers: cleanHeaders({\n 'Content-Type': 'application/json',\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n [SERVICE_ID_ADMIN_HEADER]: opts?.serviceId,\n }),\n body: JSON.stringify(doc),\n }\n );\n\n if (response.status === 200) {\n return response.json() as any;\n }\n\n const body = await response.text();\n throw new XError('documents-sdk.upsert-admin-doc-fail', {\n tenantId,\n doc,\n response: body,\n status: response.status,\n });\n};\n\nexport const upsertFinanceBooking = async (\n tenantId: string,\n booking: FinanceBooking\n): Promise<FinanceBooking> => {\n const auth = await getAdminAuth();\n const response: Response = await fetch(\n `${process.env.CORE_API_ORIGIN}/api/documents/finance/booking`,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n },\n body: JSON.stringify(booking),\n }\n );\n\n if (response.status === 200) {\n return response.json() as any;\n }\n\n const body = await response.text();\n throw new XError('documents-sdk.upsert-finance-booking-fail', {\n tenantId,\n booking,\n response: body,\n status: response.status,\n });\n};\n"]}
1
+ {"version":3,"file":"documents.js","sourceRoot":"/","sources":["apis/documents.ts"],"names":[],"mappings":"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","sourcesContent":["import { SERVICE_ID_ADMIN_HEADER, TENANT_ID_ADMIN_HEADER } from '@bisondesk/commons-sdk/constants';\nimport { XError } from '@bisondesk/commons-sdk/errors';\nimport { cleanHeaders, getAdminAuth } from '@bisondesk/commons-sdk/fetch';\nimport { DataRecord, ReferenceData } from '@bisondesk/core-sdk/types/utils';\nimport fetch, { Response } from 'node-fetch';\nimport { FinanceBooking } from '../types/booking.js';\nimport { AdministrativeDocument, FinanceDocument } from '../types/documents.js';\n\nexport const getFinanceDocument = async (\n tenantId: string,\n documentId: string\n): Promise<DataRecord<FinanceDocument, ReferenceData> | undefined> => {\n const auth = await getAdminAuth();\n const response: Response = await fetch(\n `${process.env.CORE_API_ORIGIN}/api/documents/finance/${documentId}`,\n {\n headers: {\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n },\n }\n );\n\n if (response.status === 200) {\n return response.json() as any;\n }\n\n if (response.status === 204) {\n return undefined;\n }\n\n const body = await response.text();\n throw new XError('documents-sdk.get-finance-doc-fail', {\n tenantId,\n documentId,\n response: body,\n status: response.status,\n });\n};\n\nexport const checkDocumentStatus = async (\n tenantId: string,\n documentId: string\n): Promise<{ status: number }> => {\n const auth = await getAdminAuth();\n const response: Response = await fetch(\n `${process.env.CORE_API_ORIGIN}/api/documents/finance/${documentId}`,\n {\n method: 'HEAD',\n headers: {\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n },\n }\n );\n\n return {\n status: response.status,\n };\n};\n\nexport const getFinanceBookingByDocId = async (\n tenantId: string,\n documentId: string\n): Promise<FinanceBooking | undefined> => {\n const auth = await getAdminAuth();\n const response: Response = await fetch(\n `${process.env.CORE_API_ORIGIN}/api/documents/finance/${documentId}/booking`,\n {\n headers: {\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n },\n }\n );\n\n if (response.status === 200) {\n return response.json() as any;\n }\n\n if (response.status === 204) {\n return undefined;\n }\n\n const body = await response.text();\n throw new XError('documents-sdk.get-finance-booking-fail', {\n tenantId,\n documentId,\n response: body,\n status: response.status,\n });\n};\n\nexport const upsertFinanceDoc = async <T extends FinanceDocument = FinanceDocument>(\n tenantId: string,\n doc: T\n): Promise<T> => {\n const auth = await getAdminAuth();\n const response: Response = await fetch(`${process.env.CORE_API_ORIGIN}/api/documents/finance`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n },\n body: JSON.stringify(doc),\n });\n\n if (response.status === 200) {\n return response.json() as any;\n }\n\n const body = await response.text();\n throw new XError('documents-sdk.upsert-finance-doc-fail', {\n tenantId,\n doc,\n response: body,\n status: response.status,\n });\n};\n\nexport const getAdminDocument = async (\n tenantId: string,\n documentId: string\n): Promise<DataRecord<AdministrativeDocument, ReferenceData> | undefined> => {\n const auth = await getAdminAuth();\n const response: Response = await fetch(\n `${process.env.CORE_API_ORIGIN}/api/documents/administrative/${documentId}`,\n {\n headers: {\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n },\n }\n );\n\n if (response.status === 200) {\n return response.json() as any;\n }\n\n const body = await response.text();\n throw new XError('documents-sdk.get-admin-doc-fail', {\n tenantId,\n documentId,\n response: body,\n status: response.status,\n });\n};\n\nexport const upsertAdminDoc = async (\n tenantId: string,\n doc: AdministrativeDocument,\n opts?: { serviceId: string }\n): Promise<AdministrativeDocument> => {\n const auth = await getAdminAuth();\n const response: Response = await fetch(\n `${process.env.CORE_API_ORIGIN}/api/documents/administrative`,\n {\n method: 'POST',\n headers: cleanHeaders({\n 'Content-Type': 'application/json',\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n [SERVICE_ID_ADMIN_HEADER]: opts?.serviceId,\n }),\n body: JSON.stringify(doc),\n }\n );\n\n if (response.status === 200) {\n return response.json() as any;\n }\n\n const body = await response.text();\n throw new XError('documents-sdk.upsert-admin-doc-fail', {\n tenantId,\n doc,\n response: body,\n status: response.status,\n });\n};\n\nexport const upsertFinanceBooking = async (\n tenantId: string,\n booking: FinanceBooking\n): Promise<FinanceBooking> => {\n const auth = await getAdminAuth();\n const response: Response = await fetch(\n `${process.env.CORE_API_ORIGIN}/api/documents/finance/booking`,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: auth,\n [TENANT_ID_ADMIN_HEADER]: tenantId,\n },\n body: JSON.stringify(booking),\n }\n );\n\n if (response.status === 200) {\n return response.json() as any;\n }\n\n const body = await response.text();\n throw new XError('documents-sdk.upsert-finance-booking-fail', {\n tenantId,\n booking,\n response: body,\n status: response.status,\n });\n};\n"]}
@@ -1,4 +1,5 @@
1
1
  import { AppRoles } from '@bisondesk/commons-sdk/constants';
2
+ import { AttachmentValue } from '@bisondesk/commons-sdk/types';
2
3
  export declare const DOCUMENT_PROCESSING_SETTINGS_ID = "document-processing";
3
4
  export declare const PRIVATE_DOCUMENT_ROLES: AppRoles[];
4
5
  export declare const DEFAULT_DOCUMENT_ROLES: AppRoles[];
@@ -19,4 +20,5 @@ export declare const ENV_CONTRIBUTION_TYRES_LINE_CATEGORY_ID = "env_contribution
19
20
  export declare const STANDARD_VAT_CODE_ID = "standard";
20
21
  export declare const SALE_EU_INTRA_COMMUNITY_VAT_CODE_ID = "eu_ics_sale";
21
22
  export declare const SALE_EU_EXTRA_COMMUNITY_VAT_CODE_ID = "eu_ecs_sale";
23
+ export declare const GENERATING_PLACEHOLDER_ATTACHMENT: AttachmentValue;
22
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"/","sources":["constants/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAE5D,eAAO,MAAM,+BAA+B,wBAAwB,CAAC;AAErE,eAAO,MAAM,sBAAsB,YAIlC,CAAC;AACF,eAAO,MAAM,sBAAsB,YAQlC,CAAC;AAEF,eAAO,MAAM,kCAAkC,uBAAuB,CAAC;AACvE,eAAO,MAAM,iCAAiC,SAAS,CAAC;AAExD,eAAO,MAAM,iCAAiC,sBAAsB,CAAC;AACrE,eAAO,MAAM,gCAAgC,QAAQ,CAAC;AAEtD,eAAO,MAAM,2BAA2B,gBAAgB,CAAC;AACzD,eAAO,MAAM,0BAA0B,WAAW,CAAC;AAEnD,eAAO,MAAM,+BAA+B,mBAAmB,CAAC;AAChE,eAAO,MAAM,+BAA+B,mBAAmB,CAAC;AAChE,eAAO,MAAM,yBAAyB,aAAa,CAAC;AACpD,eAAO,MAAM,6BAA6B,iBAAiB,CAAC;AAC5D,eAAO,MAAM,2BAA2B,eAAe,CAAC;AACxD,eAAO,MAAM,+BAA+B,mBAAmB,CAAC;AAChE,eAAO,MAAM,yBAAyB,aAAa,CAAC;AACpD,eAAO,MAAM,uCAAuC,2BAA2B,CAAC;AAEhF,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAC/C,eAAO,MAAM,mCAAmC,gBAAgB,CAAC;AACjE,eAAO,MAAM,mCAAmC,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"/","sources":["constants/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAkB,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAG/D,eAAO,MAAM,+BAA+B,wBAAwB,CAAC;AAErE,eAAO,MAAM,sBAAsB,YAIlC,CAAC;AACF,eAAO,MAAM,sBAAsB,YAQlC,CAAC;AAEF,eAAO,MAAM,kCAAkC,uBAAuB,CAAC;AACvE,eAAO,MAAM,iCAAiC,SAAS,CAAC;AAExD,eAAO,MAAM,iCAAiC,sBAAsB,CAAC;AACrE,eAAO,MAAM,gCAAgC,QAAQ,CAAC;AAEtD,eAAO,MAAM,2BAA2B,gBAAgB,CAAC;AACzD,eAAO,MAAM,0BAA0B,WAAW,CAAC;AAEnD,eAAO,MAAM,+BAA+B,mBAAmB,CAAC;AAChE,eAAO,MAAM,+BAA+B,mBAAmB,CAAC;AAChE,eAAO,MAAM,yBAAyB,aAAa,CAAC;AACpD,eAAO,MAAM,6BAA6B,iBAAiB,CAAC;AAC5D,eAAO,MAAM,2BAA2B,eAAe,CAAC;AACxD,eAAO,MAAM,+BAA+B,mBAAmB,CAAC;AAChE,eAAO,MAAM,yBAAyB,aAAa,CAAC;AACpD,eAAO,MAAM,uCAAuC,2BAA2B,CAAC;AAEhF,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAC/C,eAAO,MAAM,mCAAmC,gBAAgB,CAAC;AACjE,eAAO,MAAM,mCAAmC,gBAAgB,CAAC;AAEjE,eAAO,MAAM,iCAAiC,EAAE,eAS/C,CAAC"}
@@ -1,4 +1,5 @@
1
- import { AppRoles } from '@bisondesk/commons-sdk/constants';
1
+ import { AppRoles, SYSTEM_USER_ID } from '@bisondesk/commons-sdk/constants';
2
+ import { getPdfPreviewSrc } from '../utils/previews.js';
2
3
  export const DOCUMENT_PROCESSING_SETTINGS_ID = 'document-processing';
3
4
  export const PRIVATE_DOCUMENT_ROLES = [
4
5
  AppRoles.Board,
@@ -31,4 +32,14 @@ export const ENV_CONTRIBUTION_TYRES_LINE_CATEGORY_ID = 'env_contribution_tyres';
31
32
  export const STANDARD_VAT_CODE_ID = 'standard';
32
33
  export const SALE_EU_INTRA_COMMUNITY_VAT_CODE_ID = 'eu_ics_sale';
33
34
  export const SALE_EU_EXTRA_COMMUNITY_VAT_CODE_ID = 'eu_ecs_sale';
35
+ export const GENERATING_PLACEHOLDER_ATTACHMENT = {
36
+ id: 'generating',
37
+ contentType: 'application/pdf',
38
+ fileName: 'generating.pdf',
39
+ uploadedBy: SYSTEM_USER_ID,
40
+ uploadedAt: '2024-04-08T14:51:55.785Z',
41
+ size: 95749,
42
+ url: '/storage/public/generating.pdf',
43
+ previewSrc: getPdfPreviewSrc('/storage/public/generating.pdf'),
44
+ };
34
45
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"/","sources":["constants/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAE5D,MAAM,CAAC,MAAM,+BAA+B,GAAG,qBAAqB,CAAC;AAErE,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,QAAQ,CAAC,KAAK;IACd,QAAQ,CAAC,cAAc;IACvB,QAAQ,CAAC,gBAAgB;CAC1B,CAAC;AACF,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,QAAQ,CAAC,UAAU;IACnB,QAAQ,CAAC,KAAK;IACd,QAAQ,CAAC,cAAc;IACvB,QAAQ,CAAC,KAAK;IACd,QAAQ,CAAC,cAAc;IACvB,QAAQ,CAAC,YAAY;IACrB,QAAQ,CAAC,gBAAgB;CAC1B,CAAC;AAEF,MAAM,CAAC,MAAM,kCAAkC,GAAG,oBAAoB,CAAC;AACvE,MAAM,CAAC,MAAM,iCAAiC,GAAG,MAAM,CAAC;AAExD,MAAM,CAAC,MAAM,iCAAiC,GAAG,mBAAmB,CAAC;AACrE,MAAM,CAAC,MAAM,gCAAgC,GAAG,KAAK,CAAC;AAEtD,MAAM,CAAC,MAAM,2BAA2B,GAAG,aAAa,CAAC;AACzD,MAAM,CAAC,MAAM,0BAA0B,GAAG,QAAQ,CAAC;AAEnD,MAAM,CAAC,MAAM,+BAA+B,GAAG,gBAAgB,CAAC;AAChE,MAAM,CAAC,MAAM,+BAA+B,GAAG,gBAAgB,CAAC;AAChE,MAAM,CAAC,MAAM,yBAAyB,GAAG,UAAU,CAAC;AACpD,MAAM,CAAC,MAAM,6BAA6B,GAAG,cAAc,CAAC;AAC5D,MAAM,CAAC,MAAM,2BAA2B,GAAG,YAAY,CAAC;AACxD,MAAM,CAAC,MAAM,+BAA+B,GAAG,gBAAgB,CAAC;AAChE,MAAM,CAAC,MAAM,yBAAyB,GAAG,UAAU,CAAC;AACpD,MAAM,CAAC,MAAM,uCAAuC,GAAG,wBAAwB,CAAC;AAEhF,MAAM,CAAC,MAAM,oBAAoB,GAAG,UAAU,CAAC;AAC/C,MAAM,CAAC,MAAM,mCAAmC,GAAG,aAAa,CAAC;AACjE,MAAM,CAAC,MAAM,mCAAmC,GAAG,aAAa,CAAC","sourcesContent":["import { AppRoles } from '@bisondesk/commons-sdk/constants';\n\nexport const DOCUMENT_PROCESSING_SETTINGS_ID = 'document-processing';\n\nexport const PRIVATE_DOCUMENT_ROLES = [\n AppRoles.Board,\n AppRoles.GeneralManager,\n AppRoles.SeniorAccountant,\n];\nexport const DEFAULT_DOCUMENT_ROLES = [\n AppRoles.Accountant,\n AppRoles.Admin,\n AppRoles.Administrative,\n AppRoles.Board,\n AppRoles.GeneralManager,\n AppRoles.SalesManager,\n AppRoles.SeniorAccountant,\n];\n\nexport const SALE_USED_VEHICLES_DOC_CATEGORY_ID = 'used_vehicles_sale';\nexport const SALE_USED_VEHICLES_COST_CENTER_ID = 'USED';\n\nexport const SALE_NEW_VEHICLES_DOC_CATEGORY_ID = 'new_vehicles_sale';\nexport const SALE_NEW_VEHICLES_COST_CENTER_ID = 'NEW';\n\nexport const SALE_OTHERS_DOC_CATEGORY_ID = 'others_sale';\nexport const SALE_OTHERS_COST_CENTER_ID = 'OTHERS';\n\nexport const HEAVY_VEHICLES_LINE_CATEGORY_ID = 'heavy_vehicles';\nexport const LIGHT_VEHICLES_LINE_CATEGORY_ID = 'light_vehicles';\nexport const ADMIN_IC_LINE_CATEGORY_ID = 'admin_ic';\nexport const ADMIN_NOT_IC_LINE_CATEGORY_ID = 'admin_not_ic';\nexport const DIVERSE_IC_LINE_CATEGORY_ID = 'diverse_ic';\nexport const DIVERSE_NOT_IC_LINE_CATEGORY_ID = 'diverse_not_ic';\nexport const OWN_WORK_LINE_CATEGORY_ID = 'own_work';\nexport const ENV_CONTRIBUTION_TYRES_LINE_CATEGORY_ID = 'env_contribution_tyres';\n\nexport const STANDARD_VAT_CODE_ID = 'standard';\nexport const SALE_EU_INTRA_COMMUNITY_VAT_CODE_ID = 'eu_ics_sale';\nexport const SALE_EU_EXTRA_COMMUNITY_VAT_CODE_ID = 'eu_ecs_sale';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["constants/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAE5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,CAAC,MAAM,+BAA+B,GAAG,qBAAqB,CAAC;AAErE,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,QAAQ,CAAC,KAAK;IACd,QAAQ,CAAC,cAAc;IACvB,QAAQ,CAAC,gBAAgB;CAC1B,CAAC;AACF,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,QAAQ,CAAC,UAAU;IACnB,QAAQ,CAAC,KAAK;IACd,QAAQ,CAAC,cAAc;IACvB,QAAQ,CAAC,KAAK;IACd,QAAQ,CAAC,cAAc;IACvB,QAAQ,CAAC,YAAY;IACrB,QAAQ,CAAC,gBAAgB;CAC1B,CAAC;AAEF,MAAM,CAAC,MAAM,kCAAkC,GAAG,oBAAoB,CAAC;AACvE,MAAM,CAAC,MAAM,iCAAiC,GAAG,MAAM,CAAC;AAExD,MAAM,CAAC,MAAM,iCAAiC,GAAG,mBAAmB,CAAC;AACrE,MAAM,CAAC,MAAM,gCAAgC,GAAG,KAAK,CAAC;AAEtD,MAAM,CAAC,MAAM,2BAA2B,GAAG,aAAa,CAAC;AACzD,MAAM,CAAC,MAAM,0BAA0B,GAAG,QAAQ,CAAC;AAEnD,MAAM,CAAC,MAAM,+BAA+B,GAAG,gBAAgB,CAAC;AAChE,MAAM,CAAC,MAAM,+BAA+B,GAAG,gBAAgB,CAAC;AAChE,MAAM,CAAC,MAAM,yBAAyB,GAAG,UAAU,CAAC;AACpD,MAAM,CAAC,MAAM,6BAA6B,GAAG,cAAc,CAAC;AAC5D,MAAM,CAAC,MAAM,2BAA2B,GAAG,YAAY,CAAC;AACxD,MAAM,CAAC,MAAM,+BAA+B,GAAG,gBAAgB,CAAC;AAChE,MAAM,CAAC,MAAM,yBAAyB,GAAG,UAAU,CAAC;AACpD,MAAM,CAAC,MAAM,uCAAuC,GAAG,wBAAwB,CAAC;AAEhF,MAAM,CAAC,MAAM,oBAAoB,GAAG,UAAU,CAAC;AAC/C,MAAM,CAAC,MAAM,mCAAmC,GAAG,aAAa,CAAC;AACjE,MAAM,CAAC,MAAM,mCAAmC,GAAG,aAAa,CAAC;AAEjE,MAAM,CAAC,MAAM,iCAAiC,GAAoB;IAChE,EAAE,EAAE,YAAY;IAChB,WAAW,EAAE,iBAAiB;IAC9B,QAAQ,EAAE,gBAAgB;IAC1B,UAAU,EAAE,cAAc;IAC1B,UAAU,EAAE,0BAA0B;IACtC,IAAI,EAAE,KAAK;IACX,GAAG,EAAE,gCAAgC;IACrC,UAAU,EAAE,gBAAgB,CAAC,gCAAgC,CAAC;CAC/D,CAAC","sourcesContent":["import { AppRoles, SYSTEM_USER_ID } from '@bisondesk/commons-sdk/constants';\nimport { AttachmentValue } from '@bisondesk/commons-sdk/types';\nimport { getPdfPreviewSrc } from '../utils/previews.js';\n\nexport const DOCUMENT_PROCESSING_SETTINGS_ID = 'document-processing';\n\nexport const PRIVATE_DOCUMENT_ROLES = [\n AppRoles.Board,\n AppRoles.GeneralManager,\n AppRoles.SeniorAccountant,\n];\nexport const DEFAULT_DOCUMENT_ROLES = [\n AppRoles.Accountant,\n AppRoles.Admin,\n AppRoles.Administrative,\n AppRoles.Board,\n AppRoles.GeneralManager,\n AppRoles.SalesManager,\n AppRoles.SeniorAccountant,\n];\n\nexport const SALE_USED_VEHICLES_DOC_CATEGORY_ID = 'used_vehicles_sale';\nexport const SALE_USED_VEHICLES_COST_CENTER_ID = 'USED';\n\nexport const SALE_NEW_VEHICLES_DOC_CATEGORY_ID = 'new_vehicles_sale';\nexport const SALE_NEW_VEHICLES_COST_CENTER_ID = 'NEW';\n\nexport const SALE_OTHERS_DOC_CATEGORY_ID = 'others_sale';\nexport const SALE_OTHERS_COST_CENTER_ID = 'OTHERS';\n\nexport const HEAVY_VEHICLES_LINE_CATEGORY_ID = 'heavy_vehicles';\nexport const LIGHT_VEHICLES_LINE_CATEGORY_ID = 'light_vehicles';\nexport const ADMIN_IC_LINE_CATEGORY_ID = 'admin_ic';\nexport const ADMIN_NOT_IC_LINE_CATEGORY_ID = 'admin_not_ic';\nexport const DIVERSE_IC_LINE_CATEGORY_ID = 'diverse_ic';\nexport const DIVERSE_NOT_IC_LINE_CATEGORY_ID = 'diverse_not_ic';\nexport const OWN_WORK_LINE_CATEGORY_ID = 'own_work';\nexport const ENV_CONTRIBUTION_TYRES_LINE_CATEGORY_ID = 'env_contribution_tyres';\n\nexport const STANDARD_VAT_CODE_ID = 'standard';\nexport const SALE_EU_INTRA_COMMUNITY_VAT_CODE_ID = 'eu_ics_sale';\nexport const SALE_EU_EXTRA_COMMUNITY_VAT_CODE_ID = 'eu_ecs_sale';\n\nexport const GENERATING_PLACEHOLDER_ATTACHMENT: AttachmentValue = {\n id: 'generating',\n contentType: 'application/pdf',\n fileName: 'generating.pdf',\n uploadedBy: SYSTEM_USER_ID,\n uploadedAt: '2024-04-08T14:51:55.785Z',\n size: 95749,\n url: '/storage/public/generating.pdf',\n previewSrc: getPdfPreviewSrc('/storage/public/generating.pdf'),\n};\n"]}
@@ -10,6 +10,10 @@ export type Association = {
10
10
  title: string;
11
11
  description: string;
12
12
  tags?: string[];
13
+ linkTo?: {
14
+ businessEntityId: BusinessEntityIds;
15
+ recordId: string;
16
+ };
13
17
  };
14
18
  export type FinanceDocumentLine = {
15
19
  id: string;
@@ -217,6 +221,11 @@ export type DocumentGenerateRequestEvent = {
217
221
  docId: string;
218
222
  request: FinanceDocumentGenerateRequest;
219
223
  };
224
+ export type FinanceDocumentGeneratePDFEvent = {
225
+ tenantId: string;
226
+ doc: FinanceDocumentV2;
227
+ request: FinanceDocumentGenerateRequest;
228
+ };
220
229
  export type FinanceDocumentSettings<M = {}> = {
221
230
  provider: string;
222
231
  meta: {
@@ -1 +1 @@
1
- {"version":3,"file":"documents.d.ts","sourceRoot":"/","sources":["types/documents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"documents.d.ts","sourceRoot":"/","sources":["types/documents.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"documents.js","sourceRoot":"/","sources":["types/documents.ts"],"names":[],"mappings":"AA8DA,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,uCAAqB,CAAA;IACrB,+CAA6B,CAAA;AAC/B,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAuED,MAAM,CAAN,IAAY,kBAOX;AAPD,WAAY,kBAAkB;IAC5B,yCAAmB,CAAA;IACnB,iDAA2B,CAAA;IAC3B,6CAAuB,CAAA;IACvB,qDAA+B,CAAA;IAC/B,yDAAmC,CAAA;IACnC,6CAAuB,CAAA;AACzB,CAAC,EAPW,kBAAkB,KAAlB,kBAAkB,QAO7B;AAED,MAAM,CAAN,IAAY,iBAOX;AAPD,WAAY,iBAAiB;IAC3B,kDAA6B,CAAA;IAC7B,8CAAyB,CAAA;IACzB,8DAAyC,CAAA;IACzC,kEAA6C,CAAA;IAC7C,0DAAqC,CAAA;IACrC,kCAAa,CAAA;AACf,CAAC,EAPW,iBAAiB,KAAjB,iBAAiB,QAO5B;AAqCD,MAAM,CAAN,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,4CAA4B,CAAA;IAC5B,0DAA0C,CAAA;AAC5C,CAAC,EAHW,YAAY,KAAZ,YAAY,QAGvB;AA6BD,MAAM,CAAN,IAAY,YAQX;AARD,WAAY,YAAY;IACtB,iCAAiB,CAAA;IACjB,qCAAqB,CAAA;IACrB,iCAAiB,CAAA;IACjB,4CAA4B,CAAA;IAC5B,iCAAiB,CAAA;IACjB,iEAAiD,CAAA;IACjD,qEAAqD,CAAA;AACvD,CAAC,EARW,YAAY,KAAZ,YAAY,QAQvB;AAYD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,GAA0C,EAChB,EAAE;IAC5B,OAAQ,GAAyB,CAAC,OAAO,IAAI,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,GAA0C,EAChB,EAAE;IAC5B,OAAQ,GAAyB,CAAC,OAAO,IAAI,IAAI,CAAC;AACpD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,GAAgG,EACxE,EAAE;IAC1B,OAAO,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC,QAAQ,CAAE,GAAuB,CAAC,IAAI,CAAC,CAAC;AACtF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAC3C,KAAuC,EACoD,EAAE,CAC7F,KAAK,CAAC,YAAY,KAAK,YAAY,CAAC,cAAc,CAAC;AAErD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,GAAqC,EAC0C,EAAE;IACjF,OAAO,GAAG,CAAC,YAAY,KAAK,YAAY,CAAC,OAAO,CAAC;AACnD,CAAC,CAAC;AA0DF,MAAM,CAAN,IAAY,sBAKX;AALD,WAAY,sBAAsB;IAChC,6CAAmB,CAAA;IACnB,oDAA0B,CAAA;IAC1B,+CAAqB,CAAA;IACrB,0DAAgC,CAAA;AAClC,CAAC,EALW,sBAAsB,KAAtB,sBAAsB,QAKjC;AAED,MAAM,CAAN,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAChC,uEAA6C,CAAA;IAC7C,6EAAmD,CAAA;AACrD,CAAC,EAHW,sBAAsB,KAAtB,sBAAsB,QAGjC;AAED,MAAM,CAAN,IAAY,6BAEX;AAFD,WAAY,6BAA6B;IACvC,2FAA0D,CAAA;AAC5D,CAAC,EAFW,6BAA6B,KAA7B,6BAA6B,QAExC","sourcesContent":["import { BusinessEntityIds } from '@bisondesk/commons-sdk/constants';\nimport { AttachmentValue, PhoneNumberValue } from '@bisondesk/commons-sdk/types';\nimport { BankAccountData } from './bank-accounts.js';\nimport { DocumentCategoryVisibility } from './document-categories.js';\nimport { FinanceDocumentV1 } from './legacy.js';\n\nexport type FinanceDocument = FinanceDocumentV1 | FinanceDocumentV2;\n\nexport type Association = {\n businessEntityId: BusinessEntityIds;\n recordId: string;\n title: string;\n description: string;\n tags?: string[];\n};\n\nexport type FinanceDocumentLine = {\n id: string;\n category: string; // abstraction used to map lines to GL accounts (e.g., deposit, insurance)\n amount: string;\n amountExcl: string; // quantity * unit price\n description: string;\n foreign?: {\n amount: string;\n amountExcl: string;\n unitPriceExcl: string;\n vatAmount: string;\n };\n invoiceLineId?: string; // used by credit notes\n quantity: string;\n associations?: Association[];\n unitPriceExcl: string;\n vatAmount: string;\n vatCode: string;\n vatPercentage: string;\n vatReason?: string;\n};\n\ntype OrgSummary = {\n id: string;\n code: number;\n name: string;\n vatNumber?: string;\n\n addressLine1?: string;\n addressLine2?: string;\n postcode?: string;\n city?: string;\n country: string;\n\n emails?: string[];\n phone?: PhoneNumberValue;\n\n // TODO person name?\n contact?: {\n name: string;\n username: string;\n };\n\n language: string; // needed?\n};\n\nexport enum FinanceDocType {\n Sale = 'Sale Finance',\n Purchase = 'Purchase Finance',\n}\n\ntype BaseDocument = {\n id: string;\n branchId: string;\n attachment: AttachmentValue;\n createdAt: string;\n createdBy: string;\n};\n\nexport type FinanceDocumentV2 = BaseDocument & {\n version: 2.0;\n reference: string;\n subtype: FinanceDocumentSubtype;\n type: FinanceDocType;\n category: string;\n visibility?: DocumentCategoryVisibility;\n organizationSummary: OrgSummary;\n\n dueDate?: string;\n transferDescription?: string; // we ask clients to put this as description of the transfer\n invoiceId?: string; // mandatory in credit notes but optional in invoices on invoices represents a reissued invoice\n issueDate: string;\n lines: FinanceDocumentLine[];\n accountingLines?: FinanceDocumentLine[];\n notes?: string;\n salesperson?: {\n name: string;\n username: string;\n };\n tags: string[]; // optional values used to improve document search\n total: {\n amountExcl: string;\n amount: string;\n currencyCode: string; // from the branch\n foreign?: {\n amount: string;\n amountExcl: string;\n vatAmount: string;\n currencyCode: string;\n exchangeRate: string;\n };\n vatAmount: string;\n };\n\n paidAt?: string; // ONLY for when accounting integration is not used. Otherwise ALWAYS look at the Finance Booking paidAt\n\n reportingPeriod?: string;\n reportingYear?: string;\n accountingDescription?: string;\n};\n\nexport type NewFinanceDocumentV2 = Omit<\n FinanceDocumentV2,\n 'id' | 'createdAt' | 'createdBy' | 'lines'\n> & {\n lines: Omit<FinanceDocumentLine, 'id'>[];\n};\n\nexport type AdministrativeDocument = BaseDocument & {\n tags?: string[];\n category: string;\n associations?: Association[];\n displayName?: string;\n};\n\nexport type NewAdministrativeDocument = Omit<\n AdministrativeDocument,\n 'id' | 'createdAt' | 'createdBy'\n>;\n\nexport enum DraftProcessStatus {\n Prefill = 'Prefill',\n Unprocessed = 'Unprocessed',\n Processed = 'Processed',\n BusinessValid = 'BusinessValid',\n AccountingValid = 'AccountingValid',\n Completed = 'Completed',\n}\n\nexport enum DraftProcessStage {\n AIProcessing = 'aiProcessing',\n Processing = 'processing',\n BusinessValidation = 'businessValidation',\n AccountingValidation = 'accountingValidation',\n DocumentCreation = 'documentCreation',\n Edit = 'edit',\n}\n\nexport type ValidationRulesResult = {\n failed?: string[];\n passed?: string[];\n skipped?: string[];\n};\n\nexport type DocumentValidationRulesResults = {\n [DraftProcessStatus.BusinessValid]: ValidationRulesResult | undefined;\n [DraftProcessStatus.AccountingValid]: ValidationRulesResult | undefined;\n};\n\nexport type NewDraftRemarks = {\n accounting?: string;\n business?: string;\n};\n\nexport type DraftRemarks = NewDraftRemarks & {\n at: string;\n by: string;\n};\n\ntype DraftProcessing = {\n status: DraftProcessStatus;\n documentType?: DocumentType;\n vatTotalCheck?: string;\n totalCheck?: string;\n rejectedAt?: string;\n rejectedBy?: string;\n rejectionReason?: string;\n lastCompletedAt?: string;\n\n validationRulesResult?: ValidationRulesResult;\n remarks?: DraftRemarks;\n};\n\nexport enum DocumentType {\n Finance = 'Finance Document',\n Administrative = 'Administrative Document',\n}\n\nexport type DocumentStatusLogEntry = {\n status: DraftProcessStatus;\n at: string;\n by: string;\n\n rejectionReason?: string;\n validationRulesResult?: ValidationRulesResult;\n};\n\nexport type DocumentStatusLogEntryWithDraft = DocumentStatusLogEntry & {\n draftData: DocumentDraft;\n};\n\ntype AssociationSuggestion = {\n businessEntityId: BusinessEntityIds;\n recordId: string;\n};\n\ntype BaseDocumentDraft = (BaseDocument & DraftProcessing) & {\n associationSuggestions?: AssociationSuggestion[];\n};\n\nexport type DocumentDraft<T = FinanceDocumentV2 | AdministrativeDocument> = Partial<T> &\n BaseDocumentDraft;\n\nexport type DocumentDraftListMeta = { status: DraftProcessStatus; count: number }[];\n\nexport enum DraftActions {\n Delete = 'delete',\n Validate = 'validate',\n Reject = 'reject',\n SaveChanges = 'save_changes',\n Submit = 'submit',\n ValidateBusinessRules = 'validate_business_rules',\n ValidateAccountingRules = 'validate_accounting_rules',\n}\n\nexport type RejectDraftRequest = {\n reason?: string;\n};\n\nexport type NewDocumentDraft<T = NewFinanceDocumentV2 | NewAdministrativeDocument> = Partial<T> &\n Omit<BaseDocumentDraft, 'id' | 'createdAt' | 'createdBy' | 'subtype'> & {\n subtype?: string;\n documentType?: DocumentType;\n };\n\nexport const isFinanceDocumentV2 = (\n arg: FinanceDocumentV2 | FinanceDocumentV1\n): arg is FinanceDocumentV2 => {\n return (arg as FinanceDocumentV2).version == 2;\n};\n\nexport const isFinanceDocumentV1 = (\n arg: FinanceDocumentV2 | FinanceDocumentV1\n): arg is FinanceDocumentV1 => {\n return (arg as FinanceDocumentV2).version == null;\n};\n\nexport const isFinanceDocument = (\n arg: FinanceDocument | AdministrativeDocument | NewAdministrativeDocument | NewFinanceDocumentV2\n): arg is FinanceDocument => {\n return ['Sale Finance', 'Purchase Finance'].includes((arg as FinanceDocument).type);\n};\n\nexport const isAdministrativeDocumentDraft = (\n draft: DocumentDraft | NewDocumentDraft\n): draft is DocumentDraft<AdministrativeDocument> | NewDocumentDraft<AdministrativeDocument> =>\n draft.documentType === DocumentType.Administrative;\n\nexport const isFinanceDocumentDraft = (\n arg: DocumentDraft | NewDocumentDraft\n): arg is DocumentDraft<FinanceDocumentV2> | NewDocumentDraft<FinanceDocumentV2> => {\n return arg.documentType === DocumentType.Finance;\n};\n\nexport type NewFinanceDocumentLine = Omit<FinanceDocumentLine, 'id'>;\n\nexport type FinanceDocumentGenerateRequest = Omit<\n FinanceDocumentV2,\n | 'id'\n | 'attachment'\n | 'createdAt'\n | 'createdBy'\n | 'version'\n | 'reference'\n | 'lines'\n | 'accountingLines'\n> & {\n lines: NewFinanceDocumentLine[];\n accountingLines?: NewFinanceDocumentLine[];\n bankAccounts: BankAccountData[];\n\n relatedContract?: {\n contractId: string;\n period: number;\n };\n};\n\nexport type DocumentGenerateRequestEvent = {\n tenantId: string;\n userId: string;\n docId: string;\n request: FinanceDocumentGenerateRequest;\n};\n\nexport type FinanceDocumentSettings<M = {}> = {\n provider: string;\n meta: {\n [key in FinanceDocumentSubtype]: {\n prefix: string;\n templateId: string;\n };\n };\n};\n\nexport type FinanceDocumentBisondeskSettings = {\n [FinanceDocumentSubtype.Invoice]: {\n prefix: string;\n templateId: string;\n };\n [FinanceDocumentSubtype.CreditNote]: {\n prefix: string;\n templateId: string;\n };\n};\n\nexport type FinanceDocumentPayment = { documentId: string } & (\n | { paid: true; paidAt: string }\n | { paid: false; paidAt?: undefined }\n);\n\nexport enum FinanceDocumentSubtype {\n Invoice = 'Invoice',\n CreditNote = 'Credit Note',\n Proforma = 'Proforma',\n PurchaseOrder = 'Purchase Order',\n}\n\nexport enum FinanceDocumentActions {\n PAY_FINANCE_DOCUMENT = 'pay_finance_document',\n DELETE_FINANCE_DOCUMENT = 'delete_finance_document',\n}\n\nexport enum AdministrativeDocumentActions {\n DELETE_ADMINISTRATIVE_DOCUMENT = 'delete_finance_document',\n}\n\nexport type AdministrativeUpdateOperation =\n | {\n doc: AdministrativeDocument;\n op: 'replace';\n }\n | {\n doc: NewAdministrativeDocument;\n op: 'add';\n }\n | {\n association: {\n businessEntityId: BusinessEntityIds;\n recordId: string;\n documentId: string;\n };\n op: 'remove-association';\n };\n"]}
1
+ {"version":3,"file":"documents.js","sourceRoot":"/","sources":["types/documents.ts"],"names":[],"mappings":"AAkEA,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,uCAAqB,CAAA;IACrB,+CAA6B,CAAA;AAC/B,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAuED,MAAM,CAAN,IAAY,kBAOX;AAPD,WAAY,kBAAkB;IAC5B,yCAAmB,CAAA;IACnB,iDAA2B,CAAA;IAC3B,6CAAuB,CAAA;IACvB,qDAA+B,CAAA;IAC/B,yDAAmC,CAAA;IACnC,6CAAuB,CAAA;AACzB,CAAC,EAPW,kBAAkB,KAAlB,kBAAkB,QAO7B;AAED,MAAM,CAAN,IAAY,iBAOX;AAPD,WAAY,iBAAiB;IAC3B,kDAA6B,CAAA;IAC7B,8CAAyB,CAAA;IACzB,8DAAyC,CAAA;IACzC,kEAA6C,CAAA;IAC7C,0DAAqC,CAAA;IACrC,kCAAa,CAAA;AACf,CAAC,EAPW,iBAAiB,KAAjB,iBAAiB,QAO5B;AAqCD,MAAM,CAAN,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,4CAA4B,CAAA;IAC5B,0DAA0C,CAAA;AAC5C,CAAC,EAHW,YAAY,KAAZ,YAAY,QAGvB;AA6BD,MAAM,CAAN,IAAY,YAQX;AARD,WAAY,YAAY;IACtB,iCAAiB,CAAA;IACjB,qCAAqB,CAAA;IACrB,iCAAiB,CAAA;IACjB,4CAA4B,CAAA;IAC5B,iCAAiB,CAAA;IACjB,iEAAiD,CAAA;IACjD,qEAAqD,CAAA;AACvD,CAAC,EARW,YAAY,KAAZ,YAAY,QAQvB;AAYD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,GAA0C,EAChB,EAAE;IAC5B,OAAQ,GAAyB,CAAC,OAAO,IAAI,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,GAA0C,EAChB,EAAE;IAC5B,OAAQ,GAAyB,CAAC,OAAO,IAAI,IAAI,CAAC;AACpD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,GAAgG,EACxE,EAAE;IAC1B,OAAO,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC,QAAQ,CAAE,GAAuB,CAAC,IAAI,CAAC,CAAC;AACtF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAC3C,KAAuC,EACoD,EAAE,CAC7F,KAAK,CAAC,YAAY,KAAK,YAAY,CAAC,cAAc,CAAC;AAErD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,GAAqC,EAC0C,EAAE;IACjF,OAAO,GAAG,CAAC,YAAY,KAAK,YAAY,CAAC,OAAO,CAAC;AACnD,CAAC,CAAC;AAgEF,MAAM,CAAN,IAAY,sBAKX;AALD,WAAY,sBAAsB;IAChC,6CAAmB,CAAA;IACnB,oDAA0B,CAAA;IAC1B,+CAAqB,CAAA;IACrB,0DAAgC,CAAA;AAClC,CAAC,EALW,sBAAsB,KAAtB,sBAAsB,QAKjC;AAED,MAAM,CAAN,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAChC,uEAA6C,CAAA;IAC7C,6EAAmD,CAAA;AACrD,CAAC,EAHW,sBAAsB,KAAtB,sBAAsB,QAGjC;AAED,MAAM,CAAN,IAAY,6BAEX;AAFD,WAAY,6BAA6B;IACvC,2FAA0D,CAAA;AAC5D,CAAC,EAFW,6BAA6B,KAA7B,6BAA6B,QAExC","sourcesContent":["import { BusinessEntityIds } from '@bisondesk/commons-sdk/constants';\nimport { AttachmentValue, PhoneNumberValue } from '@bisondesk/commons-sdk/types';\nimport { BankAccountData } from './bank-accounts.js';\nimport { DocumentCategoryVisibility } from './document-categories.js';\nimport { FinanceDocumentV1 } from './legacy.js';\n\nexport type FinanceDocument = FinanceDocumentV1 | FinanceDocumentV2;\n\nexport type Association = {\n businessEntityId: BusinessEntityIds;\n recordId: string;\n title: string;\n description: string;\n tags?: string[];\n linkTo?: {\n businessEntityId: BusinessEntityIds;\n recordId: string;\n };\n};\n\nexport type FinanceDocumentLine = {\n id: string;\n category: string; // abstraction used to map lines to GL accounts (e.g., deposit, insurance)\n amount: string;\n amountExcl: string; // quantity * unit price\n description: string;\n foreign?: {\n amount: string;\n amountExcl: string;\n unitPriceExcl: string;\n vatAmount: string;\n };\n invoiceLineId?: string; // used by credit notes\n quantity: string;\n associations?: Association[];\n unitPriceExcl: string;\n vatAmount: string;\n vatCode: string;\n vatPercentage: string;\n vatReason?: string;\n};\n\ntype OrgSummary = {\n id: string;\n code: number;\n name: string;\n vatNumber?: string;\n\n addressLine1?: string;\n addressLine2?: string;\n postcode?: string;\n city?: string;\n country: string;\n\n emails?: string[];\n phone?: PhoneNumberValue;\n\n // TODO person name?\n contact?: {\n name: string;\n username: string;\n };\n\n language: string; // needed?\n};\n\nexport enum FinanceDocType {\n Sale = 'Sale Finance',\n Purchase = 'Purchase Finance',\n}\n\ntype BaseDocument = {\n id: string;\n branchId: string;\n attachment: AttachmentValue;\n createdAt: string;\n createdBy: string;\n};\n\nexport type FinanceDocumentV2 = BaseDocument & {\n version: 2.0;\n reference: string;\n subtype: FinanceDocumentSubtype;\n type: FinanceDocType;\n category: string;\n visibility?: DocumentCategoryVisibility;\n organizationSummary: OrgSummary;\n\n dueDate?: string;\n transferDescription?: string; // we ask clients to put this as description of the transfer\n invoiceId?: string; // mandatory in credit notes but optional in invoices on invoices represents a reissued invoice\n issueDate: string;\n lines: FinanceDocumentLine[];\n accountingLines?: FinanceDocumentLine[];\n notes?: string;\n salesperson?: {\n name: string;\n username: string;\n };\n tags: string[]; // optional values used to improve document search\n total: {\n amountExcl: string;\n amount: string;\n currencyCode: string; // from the branch\n foreign?: {\n amount: string;\n amountExcl: string;\n vatAmount: string;\n currencyCode: string;\n exchangeRate: string;\n };\n vatAmount: string;\n };\n\n paidAt?: string; // ONLY for when accounting integration is not used. Otherwise ALWAYS look at the Finance Booking paidAt\n\n reportingPeriod?: string;\n reportingYear?: string;\n accountingDescription?: string;\n};\n\nexport type NewFinanceDocumentV2 = Omit<\n FinanceDocumentV2,\n 'id' | 'createdAt' | 'createdBy' | 'lines'\n> & {\n lines: Omit<FinanceDocumentLine, 'id'>[];\n};\n\nexport type AdministrativeDocument = BaseDocument & {\n tags?: string[];\n category: string;\n associations?: Association[];\n displayName?: string;\n};\n\nexport type NewAdministrativeDocument = Omit<\n AdministrativeDocument,\n 'id' | 'createdAt' | 'createdBy'\n>;\n\nexport enum DraftProcessStatus {\n Prefill = 'Prefill',\n Unprocessed = 'Unprocessed',\n Processed = 'Processed',\n BusinessValid = 'BusinessValid',\n AccountingValid = 'AccountingValid',\n Completed = 'Completed',\n}\n\nexport enum DraftProcessStage {\n AIProcessing = 'aiProcessing',\n Processing = 'processing',\n BusinessValidation = 'businessValidation',\n AccountingValidation = 'accountingValidation',\n DocumentCreation = 'documentCreation',\n Edit = 'edit',\n}\n\nexport type ValidationRulesResult = {\n failed?: string[];\n passed?: string[];\n skipped?: string[];\n};\n\nexport type DocumentValidationRulesResults = {\n [DraftProcessStatus.BusinessValid]: ValidationRulesResult | undefined;\n [DraftProcessStatus.AccountingValid]: ValidationRulesResult | undefined;\n};\n\nexport type NewDraftRemarks = {\n accounting?: string;\n business?: string;\n};\n\nexport type DraftRemarks = NewDraftRemarks & {\n at: string;\n by: string;\n};\n\ntype DraftProcessing = {\n status: DraftProcessStatus;\n documentType?: DocumentType;\n vatTotalCheck?: string;\n totalCheck?: string;\n rejectedAt?: string;\n rejectedBy?: string;\n rejectionReason?: string;\n lastCompletedAt?: string;\n\n validationRulesResult?: ValidationRulesResult;\n remarks?: DraftRemarks;\n};\n\nexport enum DocumentType {\n Finance = 'Finance Document',\n Administrative = 'Administrative Document',\n}\n\nexport type DocumentStatusLogEntry = {\n status: DraftProcessStatus;\n at: string;\n by: string;\n\n rejectionReason?: string;\n validationRulesResult?: ValidationRulesResult;\n};\n\nexport type DocumentStatusLogEntryWithDraft = DocumentStatusLogEntry & {\n draftData: DocumentDraft;\n};\n\ntype AssociationSuggestion = {\n businessEntityId: BusinessEntityIds;\n recordId: string;\n};\n\ntype BaseDocumentDraft = (BaseDocument & DraftProcessing) & {\n associationSuggestions?: AssociationSuggestion[];\n};\n\nexport type DocumentDraft<T = FinanceDocumentV2 | AdministrativeDocument> = Partial<T> &\n BaseDocumentDraft;\n\nexport type DocumentDraftListMeta = { status: DraftProcessStatus; count: number }[];\n\nexport enum DraftActions {\n Delete = 'delete',\n Validate = 'validate',\n Reject = 'reject',\n SaveChanges = 'save_changes',\n Submit = 'submit',\n ValidateBusinessRules = 'validate_business_rules',\n ValidateAccountingRules = 'validate_accounting_rules',\n}\n\nexport type RejectDraftRequest = {\n reason?: string;\n};\n\nexport type NewDocumentDraft<T = NewFinanceDocumentV2 | NewAdministrativeDocument> = Partial<T> &\n Omit<BaseDocumentDraft, 'id' | 'createdAt' | 'createdBy' | 'subtype'> & {\n subtype?: string;\n documentType?: DocumentType;\n };\n\nexport const isFinanceDocumentV2 = (\n arg: FinanceDocumentV2 | FinanceDocumentV1\n): arg is FinanceDocumentV2 => {\n return (arg as FinanceDocumentV2).version == 2;\n};\n\nexport const isFinanceDocumentV1 = (\n arg: FinanceDocumentV2 | FinanceDocumentV1\n): arg is FinanceDocumentV1 => {\n return (arg as FinanceDocumentV2).version == null;\n};\n\nexport const isFinanceDocument = (\n arg: FinanceDocument | AdministrativeDocument | NewAdministrativeDocument | NewFinanceDocumentV2\n): arg is FinanceDocument => {\n return ['Sale Finance', 'Purchase Finance'].includes((arg as FinanceDocument).type);\n};\n\nexport const isAdministrativeDocumentDraft = (\n draft: DocumentDraft | NewDocumentDraft\n): draft is DocumentDraft<AdministrativeDocument> | NewDocumentDraft<AdministrativeDocument> =>\n draft.documentType === DocumentType.Administrative;\n\nexport const isFinanceDocumentDraft = (\n arg: DocumentDraft | NewDocumentDraft\n): arg is DocumentDraft<FinanceDocumentV2> | NewDocumentDraft<FinanceDocumentV2> => {\n return arg.documentType === DocumentType.Finance;\n};\n\nexport type NewFinanceDocumentLine = Omit<FinanceDocumentLine, 'id'>;\n\nexport type FinanceDocumentGenerateRequest = Omit<\n FinanceDocumentV2,\n | 'id'\n | 'attachment'\n | 'createdAt'\n | 'createdBy'\n | 'version'\n | 'reference'\n | 'lines'\n | 'accountingLines'\n> & {\n lines: NewFinanceDocumentLine[];\n accountingLines?: NewFinanceDocumentLine[];\n bankAccounts: BankAccountData[];\n\n relatedContract?: {\n contractId: string;\n period: number;\n };\n};\n\nexport type DocumentGenerateRequestEvent = {\n tenantId: string;\n userId: string;\n docId: string;\n request: FinanceDocumentGenerateRequest;\n};\n\nexport type FinanceDocumentGeneratePDFEvent = {\n tenantId: string;\n doc: FinanceDocumentV2;\n request: FinanceDocumentGenerateRequest;\n};\n\nexport type FinanceDocumentSettings<M = {}> = {\n provider: string;\n meta: {\n [key in FinanceDocumentSubtype]: {\n prefix: string;\n templateId: string;\n };\n };\n};\n\nexport type FinanceDocumentBisondeskSettings = {\n [FinanceDocumentSubtype.Invoice]: {\n prefix: string;\n templateId: string;\n };\n [FinanceDocumentSubtype.CreditNote]: {\n prefix: string;\n templateId: string;\n };\n};\n\nexport type FinanceDocumentPayment = { documentId: string } & (\n | { paid: true; paidAt: string }\n | { paid: false; paidAt?: undefined }\n);\n\nexport enum FinanceDocumentSubtype {\n Invoice = 'Invoice',\n CreditNote = 'Credit Note',\n Proforma = 'Proforma',\n PurchaseOrder = 'Purchase Order',\n}\n\nexport enum FinanceDocumentActions {\n PAY_FINANCE_DOCUMENT = 'pay_finance_document',\n DELETE_FINANCE_DOCUMENT = 'delete_finance_document',\n}\n\nexport enum AdministrativeDocumentActions {\n DELETE_ADMINISTRATIVE_DOCUMENT = 'delete_finance_document',\n}\n\nexport type AdministrativeUpdateOperation =\n | {\n doc: AdministrativeDocument;\n op: 'replace';\n }\n | {\n doc: NewAdministrativeDocument;\n op: 'add';\n }\n | {\n association: {\n businessEntityId: BusinessEntityIds;\n recordId: string;\n documentId: string;\n };\n op: 'remove-association';\n };\n"]}
@@ -29,4 +29,5 @@ export declare const getLineAmounts: (unitPriceExcl: string, quantity: string, v
29
29
  unitPriceExcl: string;
30
30
  vatAmount: string;
31
31
  };
32
+ export declare const isGeneratingAttachment: (doc: FinanceDocument) => boolean;
32
33
  //# sourceMappingURL=finance.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"finance.d.ts","sourceRoot":"/","sources":["utils/finance.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAEL,aAAa,EACb,eAAe,EACf,8BAA8B,EAG9B,iBAAiB,EACjB,gBAAgB,EAEjB,MAAM,uBAAuB,CAAC;AAG/B,eAAO,MAAM,wBAAwB,QAC9B,iBAAiB,GAAG,aAAa,CAAC,iBAAiB,CAAC,GAAG,8BAA8B,KACzF,OAKF,CAAC;AAEF,eAAO,MAAM,wBAAwB,QAAS,iBAAiB,KAAG,MAoCjE,CAAC;AAyBF,eAAO,MAAM,iBAAiB,QAExB,eAAe,GACf,aAAa,CAAC,iBAAiB,CAAC,GAChC,gBAAgB,CAAC,iBAAiB,CAAC,GACnC,8BAA8B;;;;CA0BnC,CAAC;AAEF,eAAO,MAAM,uBAAuB,QAE9B,eAAe,GACf,aAAa,CAAC,iBAAiB,CAAC,GAChC,gBAAgB,CAAC,iBAAiB,CAAC,GACnC,8BAA8B,iBACnB,MAAM,oBACH;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;;;;;;;;;;;;CAuBF,CAAC;AAKF,eAAO,MAAM,cAAc,kBAAmB,MAAM,YAAY,MAAM,WAAW,MAAM;;;;;CAYtF,CAAC"}
1
+ {"version":3,"file":"finance.d.ts","sourceRoot":"/","sources":["utils/finance.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAGrC,OAAO,EAEL,aAAa,EACb,eAAe,EACf,8BAA8B,EAG9B,iBAAiB,EACjB,gBAAgB,EAEjB,MAAM,uBAAuB,CAAC;AAG/B,eAAO,MAAM,wBAAwB,QAC9B,iBAAiB,GAAG,aAAa,CAAC,iBAAiB,CAAC,GAAG,8BAA8B,KACzF,OAKF,CAAC;AAEF,eAAO,MAAM,wBAAwB,QAAS,iBAAiB,KAAG,MAoCjE,CAAC;AAyBF,eAAO,MAAM,iBAAiB,QAExB,eAAe,GACf,aAAa,CAAC,iBAAiB,CAAC,GAChC,gBAAgB,CAAC,iBAAiB,CAAC,GACnC,8BAA8B;;;;CA0BnC,CAAC;AAEF,eAAO,MAAM,uBAAuB,QAE9B,eAAe,GACf,aAAa,CAAC,iBAAiB,CAAC,GAChC,gBAAgB,CAAC,iBAAiB,CAAC,GACnC,8BAA8B,iBACnB,MAAM,oBACH;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;;;;;;;;;;;;CAuBF,CAAC;AAKF,eAAO,MAAM,cAAc,kBAAmB,MAAM,YAAY,MAAM,WAAW,MAAM;;;;;CAYtF,CAAC;AAEF,eAAO,MAAM,sBAAsB,QAAS,eAAe,YACC,CAAC"}
@@ -2,6 +2,7 @@ import { BusinessEntityIds } from '@bisondesk/commons-sdk/constants';
2
2
  import { roundMoney } from '@bisondesk/commons-sdk/money';
3
3
  import { Decimal } from 'decimal.js';
4
4
  import { uniqBy } from 'lodash-es';
5
+ import { GENERATING_PLACEHOLDER_ATTACHMENT } from '../constants/index.js';
5
6
  import { FinanceDocumentSubtype, isFinanceDocumentV1, } from '../types/documents.js';
6
7
  export const documentGoesToAccounting = (doc) => {
7
8
  return (!!doc.subtype &&
@@ -98,4 +99,5 @@ export const getLineAmounts = (unitPriceExcl, quantity, vatRate) => {
98
99
  vatAmount: vatAmount.toString(),
99
100
  };
100
101
  };
102
+ export const isGeneratingAttachment = (doc) => doc.attachment.id === GENERATING_PLACEHOLDER_ATTACHMENT.id;
101
103
  //# sourceMappingURL=finance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"finance.js","sourceRoot":"/","sources":["utils/finance.ts"],"names":[],"mappings":"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","sourcesContent":["import { BusinessEntityIds } from '@bisondesk/commons-sdk/constants';\nimport { roundMoney } from '@bisondesk/commons-sdk/money';\nimport { Decimal } from 'decimal.js';\nimport { uniqBy } from 'lodash-es';\nimport {\n Association,\n DocumentDraft,\n FinanceDocument,\n FinanceDocumentGenerateRequest,\n FinanceDocumentLine,\n FinanceDocumentSubtype,\n FinanceDocumentV2,\n NewDocumentDraft,\n isFinanceDocumentV1,\n} from '../types/documents.js';\nimport { FinanceDocumentV1, FinanceLineV1 } from '../types/legacy.js';\n\nexport const documentGoesToAccounting = (\n doc: FinanceDocumentV2 | DocumentDraft<FinanceDocumentV2> | FinanceDocumentGenerateRequest\n): boolean => {\n return (\n !!doc.subtype &&\n [FinanceDocumentSubtype.Invoice, FinanceDocumentSubtype.CreditNote].includes(doc.subtype)\n );\n};\n\nexport const getAccountingDescription = (doc: FinanceDocumentV2): string => {\n if (!!doc.accountingDescription) {\n return doc.accountingDescription;\n }\n\n const associations = doc.lines\n ?.flatMap((line) => line.associations ?? [])\n .filter(Boolean) as Association[];\n\n // In the UI the user can only select one vehicle associations\n const equivalentEntityIds = {\n [BusinessEntityIds.ExternalVehicleSale]: BusinessEntityIds.Vehicles,\n };\n\n const uniqueAssociations = uniqBy(\n associations,\n (a) => `${equivalentEntityIds[a.businessEntityId] ?? a.businessEntityId}_${a.recordId}`\n );\n\n if (uniqueAssociations.length !== 1) {\n return doc.reference;\n }\n\n const firstAssociation = associations[0];\n if (\n [\n BusinessEntityIds.Vehicles,\n BusinessEntityIds.Opportunities,\n BusinessEntityIds.ExternalVehicleSale,\n ].includes(firstAssociation.businessEntityId) &&\n firstAssociation.tags != null\n ) {\n return `${firstAssociation.tags?.slice(0, 3).join(' ')} ${doc.reference}`.trim();\n }\n\n return doc.reference;\n};\n\nconst getTotalExcl = <T extends FinanceDocument['lines']>(\n lines: T,\n unitPrice: (line: T[0]) => any\n) => {\n return lines.length === 0\n ? new Decimal(0)\n : Decimal.sum(...lines.map((line) => Decimal.mul(line.quantity, unitPrice(line))));\n};\n\nconst getTotalVat = <T extends FinanceDocument['lines'], L = T[0]>(\n lines: T,\n unitPrice: (doc: L) => any,\n vatCoefficient: (doc: L) => any\n) => {\n return lines.length === 0\n ? new Decimal(0)\n : Decimal.sum(\n ...lines.map((line) =>\n Decimal.mul(line.quantity, unitPrice(line)).mul(vatCoefficient(line))\n )\n );\n};\n\nexport const getDocumentTotals = (\n doc:\n | FinanceDocument\n | DocumentDraft<FinanceDocumentV2>\n | NewDocumentDraft<FinanceDocumentV2>\n | FinanceDocumentGenerateRequest\n) => {\n let totalVat: Decimal;\n let totalExcl: Decimal;\n\n if (isFinanceDocumentV1(doc as FinanceDocumentV1)) {\n const lines = (doc as FinanceDocumentV1).lines;\n const getUnitPriceExclusive = (line: FinanceLineV1) => line.unitPriceExclusive;\n\n totalVat = getTotalVat(lines, getUnitPriceExclusive, (line) => line.vatCoefficient);\n totalExcl = getTotalExcl(lines, getUnitPriceExclusive);\n } else {\n const lines = (doc as FinanceDocumentV2).lines ?? [];\n const getUnitPriceExcl = (line: FinanceDocumentLine) => line.unitPriceExcl;\n\n totalVat = getTotalVat(lines, getUnitPriceExcl, (line) =>\n new Decimal(line.vatPercentage).div(100)\n );\n totalExcl = getTotalExcl(lines, getUnitPriceExcl);\n }\n\n return {\n totalExcl,\n totalVat,\n subTotal: totalExcl.add(totalVat),\n };\n};\n\nexport const getRoundedDocumentTotal = (\n doc:\n | FinanceDocument\n | DocumentDraft<FinanceDocumentV2>\n | NewDocumentDraft<FinanceDocumentV2>\n | FinanceDocumentGenerateRequest,\n currencyCode?: string,\n foreignCurrency?: {\n currencyCode: string;\n exchangeRate: string;\n }\n) => {\n const { subTotal, totalExcl, totalVat } = getDocumentTotals(doc);\n const rate = foreignCurrency?.exchangeRate ?? '1';\n const subTotalForeign = subTotal.div(rate).toString();\n const totalExclForeign = totalExcl.div(rate).toString();\n const totalVatForeign = totalVat.div(rate).toString();\n\n return {\n amount: roundMoney(subTotal).toString(),\n amountExcl: roundMoney(totalExcl).toString(),\n vatAmount: roundMoney(totalVat).toString(),\n currencyCode: currencyCode ?? 'EUR',\n foreign: foreignCurrency\n ? {\n amount: roundMoney(subTotalForeign).toString(),\n amountExcl: roundMoney(totalExclForeign).toString(),\n vatAmount: roundMoney(totalVatForeign).toString(),\n currencyCode: foreignCurrency.currencyCode,\n exchangeRate: foreignCurrency.exchangeRate,\n }\n : undefined,\n };\n};\n\nconst getAmountExcl = (unitPriceExcl: string, quantity: string) =>\n new Decimal(unitPriceExcl).times(new Decimal(quantity));\n\nexport const getLineAmounts = (unitPriceExcl: string, quantity: string, vatRate: string) => {\n const amountExcl = getAmountExcl(unitPriceExcl, quantity);\n const vatAmount = new Decimal(quantity)\n .times(new Decimal(unitPriceExcl))\n .times(new Decimal(vatRate).div(100));\n\n return {\n amount: amountExcl.add(vatAmount).toString(),\n amountExcl: amountExcl.toString(),\n unitPriceExcl,\n vatAmount: vatAmount.toString(),\n };\n};\n"]}
1
+ {"version":3,"file":"finance.js","sourceRoot":"/","sources":["utils/finance.ts"],"names":[],"mappings":"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","sourcesContent":["import { BusinessEntityIds } from '@bisondesk/commons-sdk/constants';\nimport { roundMoney } from '@bisondesk/commons-sdk/money';\nimport { Decimal } from 'decimal.js';\nimport { uniqBy } from 'lodash-es';\nimport { GENERATING_PLACEHOLDER_ATTACHMENT } from '../constants/index.js';\nimport {\n Association,\n DocumentDraft,\n FinanceDocument,\n FinanceDocumentGenerateRequest,\n FinanceDocumentLine,\n FinanceDocumentSubtype,\n FinanceDocumentV2,\n NewDocumentDraft,\n isFinanceDocumentV1,\n} from '../types/documents.js';\nimport { FinanceDocumentV1, FinanceLineV1 } from '../types/legacy.js';\n\nexport const documentGoesToAccounting = (\n doc: FinanceDocumentV2 | DocumentDraft<FinanceDocumentV2> | FinanceDocumentGenerateRequest\n): boolean => {\n return (\n !!doc.subtype &&\n [FinanceDocumentSubtype.Invoice, FinanceDocumentSubtype.CreditNote].includes(doc.subtype)\n );\n};\n\nexport const getAccountingDescription = (doc: FinanceDocumentV2): string => {\n if (!!doc.accountingDescription) {\n return doc.accountingDescription;\n }\n\n const associations = doc.lines\n ?.flatMap((line) => line.associations ?? [])\n .filter(Boolean) as Association[];\n\n // In the UI the user can only select one vehicle associations\n const equivalentEntityIds = {\n [BusinessEntityIds.ExternalVehicleSale]: BusinessEntityIds.Vehicles,\n };\n\n const uniqueAssociations = uniqBy(\n associations,\n (a) => `${equivalentEntityIds[a.businessEntityId] ?? a.businessEntityId}_${a.recordId}`\n );\n\n if (uniqueAssociations.length !== 1) {\n return doc.reference;\n }\n\n const firstAssociation = associations[0];\n if (\n [\n BusinessEntityIds.Vehicles,\n BusinessEntityIds.Opportunities,\n BusinessEntityIds.ExternalVehicleSale,\n ].includes(firstAssociation.businessEntityId) &&\n firstAssociation.tags != null\n ) {\n return `${firstAssociation.tags?.slice(0, 3).join(' ')} ${doc.reference}`.trim();\n }\n\n return doc.reference;\n};\n\nconst getTotalExcl = <T extends FinanceDocument['lines']>(\n lines: T,\n unitPrice: (line: T[0]) => any\n) => {\n return lines.length === 0\n ? new Decimal(0)\n : Decimal.sum(...lines.map((line) => Decimal.mul(line.quantity, unitPrice(line))));\n};\n\nconst getTotalVat = <T extends FinanceDocument['lines'], L = T[0]>(\n lines: T,\n unitPrice: (doc: L) => any,\n vatCoefficient: (doc: L) => any\n) => {\n return lines.length === 0\n ? new Decimal(0)\n : Decimal.sum(\n ...lines.map((line) =>\n Decimal.mul(line.quantity, unitPrice(line)).mul(vatCoefficient(line))\n )\n );\n};\n\nexport const getDocumentTotals = (\n doc:\n | FinanceDocument\n | DocumentDraft<FinanceDocumentV2>\n | NewDocumentDraft<FinanceDocumentV2>\n | FinanceDocumentGenerateRequest\n) => {\n let totalVat: Decimal;\n let totalExcl: Decimal;\n\n if (isFinanceDocumentV1(doc as FinanceDocumentV1)) {\n const lines = (doc as FinanceDocumentV1).lines;\n const getUnitPriceExclusive = (line: FinanceLineV1) => line.unitPriceExclusive;\n\n totalVat = getTotalVat(lines, getUnitPriceExclusive, (line) => line.vatCoefficient);\n totalExcl = getTotalExcl(lines, getUnitPriceExclusive);\n } else {\n const lines = (doc as FinanceDocumentV2).lines ?? [];\n const getUnitPriceExcl = (line: FinanceDocumentLine) => line.unitPriceExcl;\n\n totalVat = getTotalVat(lines, getUnitPriceExcl, (line) =>\n new Decimal(line.vatPercentage).div(100)\n );\n totalExcl = getTotalExcl(lines, getUnitPriceExcl);\n }\n\n return {\n totalExcl,\n totalVat,\n subTotal: totalExcl.add(totalVat),\n };\n};\n\nexport const getRoundedDocumentTotal = (\n doc:\n | FinanceDocument\n | DocumentDraft<FinanceDocumentV2>\n | NewDocumentDraft<FinanceDocumentV2>\n | FinanceDocumentGenerateRequest,\n currencyCode?: string,\n foreignCurrency?: {\n currencyCode: string;\n exchangeRate: string;\n }\n) => {\n const { subTotal, totalExcl, totalVat } = getDocumentTotals(doc);\n const rate = foreignCurrency?.exchangeRate ?? '1';\n const subTotalForeign = subTotal.div(rate).toString();\n const totalExclForeign = totalExcl.div(rate).toString();\n const totalVatForeign = totalVat.div(rate).toString();\n\n return {\n amount: roundMoney(subTotal).toString(),\n amountExcl: roundMoney(totalExcl).toString(),\n vatAmount: roundMoney(totalVat).toString(),\n currencyCode: currencyCode ?? 'EUR',\n foreign: foreignCurrency\n ? {\n amount: roundMoney(subTotalForeign).toString(),\n amountExcl: roundMoney(totalExclForeign).toString(),\n vatAmount: roundMoney(totalVatForeign).toString(),\n currencyCode: foreignCurrency.currencyCode,\n exchangeRate: foreignCurrency.exchangeRate,\n }\n : undefined,\n };\n};\n\nconst getAmountExcl = (unitPriceExcl: string, quantity: string) =>\n new Decimal(unitPriceExcl).times(new Decimal(quantity));\n\nexport const getLineAmounts = (unitPriceExcl: string, quantity: string, vatRate: string) => {\n const amountExcl = getAmountExcl(unitPriceExcl, quantity);\n const vatAmount = new Decimal(quantity)\n .times(new Decimal(unitPriceExcl))\n .times(new Decimal(vatRate).div(100));\n\n return {\n amount: amountExcl.add(vatAmount).toString(),\n amountExcl: amountExcl.toString(),\n unitPriceExcl,\n vatAmount: vatAmount.toString(),\n };\n};\n\nexport const isGeneratingAttachment = (doc: FinanceDocument) =>\n doc.attachment.id === GENERATING_PLACEHOLDER_ATTACHMENT.id;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bisondesk/documents-sdk",
3
- "version": "1.0.405",
3
+ "version": "1.0.407",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -25,6 +25,10 @@ export const getFinanceDocument = async (
25
25
  return response.json() as any;
26
26
  }
27
27
 
28
+ if (response.status === 204) {
29
+ return undefined;
30
+ }
31
+
28
32
  const body = await response.text();
29
33
  throw new XError('documents-sdk.get-finance-doc-fail', {
30
34
  tenantId,
@@ -1,4 +1,6 @@
1
- import { AppRoles } from '@bisondesk/commons-sdk/constants';
1
+ import { AppRoles, SYSTEM_USER_ID } from '@bisondesk/commons-sdk/constants';
2
+ import { AttachmentValue } from '@bisondesk/commons-sdk/types';
3
+ import { getPdfPreviewSrc } from '../utils/previews.js';
2
4
 
3
5
  export const DOCUMENT_PROCESSING_SETTINGS_ID = 'document-processing';
4
6
 
@@ -38,3 +40,14 @@ export const ENV_CONTRIBUTION_TYRES_LINE_CATEGORY_ID = 'env_contribution_tyres';
38
40
  export const STANDARD_VAT_CODE_ID = 'standard';
39
41
  export const SALE_EU_INTRA_COMMUNITY_VAT_CODE_ID = 'eu_ics_sale';
40
42
  export const SALE_EU_EXTRA_COMMUNITY_VAT_CODE_ID = 'eu_ecs_sale';
43
+
44
+ export const GENERATING_PLACEHOLDER_ATTACHMENT: AttachmentValue = {
45
+ id: 'generating',
46
+ contentType: 'application/pdf',
47
+ fileName: 'generating.pdf',
48
+ uploadedBy: SYSTEM_USER_ID,
49
+ uploadedAt: '2024-04-08T14:51:55.785Z',
50
+ size: 95749,
51
+ url: '/storage/public/generating.pdf',
52
+ previewSrc: getPdfPreviewSrc('/storage/public/generating.pdf'),
53
+ };
@@ -12,6 +12,10 @@ export type Association = {
12
12
  title: string;
13
13
  description: string;
14
14
  tags?: string[];
15
+ linkTo?: {
16
+ businessEntityId: BusinessEntityIds;
17
+ recordId: string;
18
+ };
15
19
  };
16
20
 
17
21
  export type FinanceDocumentLine = {
@@ -298,6 +302,12 @@ export type DocumentGenerateRequestEvent = {
298
302
  request: FinanceDocumentGenerateRequest;
299
303
  };
300
304
 
305
+ export type FinanceDocumentGeneratePDFEvent = {
306
+ tenantId: string;
307
+ doc: FinanceDocumentV2;
308
+ request: FinanceDocumentGenerateRequest;
309
+ };
310
+
301
311
  export type FinanceDocumentSettings<M = {}> = {
302
312
  provider: string;
303
313
  meta: {
@@ -2,6 +2,7 @@ import { BusinessEntityIds } from '@bisondesk/commons-sdk/constants';
2
2
  import { roundMoney } from '@bisondesk/commons-sdk/money';
3
3
  import { Decimal } from 'decimal.js';
4
4
  import { uniqBy } from 'lodash-es';
5
+ import { GENERATING_PLACEHOLDER_ATTACHMENT } from '../constants/index.js';
5
6
  import {
6
7
  Association,
7
8
  DocumentDraft,
@@ -169,3 +170,6 @@ export const getLineAmounts = (unitPriceExcl: string, quantity: string, vatRate:
169
170
  vatAmount: vatAmount.toString(),
170
171
  };
171
172
  };
173
+
174
+ export const isGeneratingAttachment = (doc: FinanceDocument) =>
175
+ doc.attachment.id === GENERATING_PLACEHOLDER_ATTACHMENT.id;