@things-factory/accounting 10.1.187 → 10.1.191

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":"expenditure-request.js","sourceRoot":"","sources":["../../../server/service/expenditure-request/expenditure-request.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Column,\n CreateDateColumn,\n DeleteDateColumn,\n Entity,\n Index,\n ManyToOne,\n OneToMany,\n PrimaryGeneratedColumn,\n RelationId,\n UpdateDateColumn\n} from 'typeorm'\nimport { Field, Float, ID, ObjectType, registerEnumType } from 'type-graphql'\n\nimport { Domain, moneyColumn } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { Counterparty, CounterpartyBankAccount } from '@things-factory/biz-base'\nimport { Department } from '@things-factory/organization'\n\nimport { ExpenditureRequestItem } from './expenditure-request-item'\n\nexport enum ExpenditureKind {\n /** Paying a counterparty - a supplier's invoice, a service, a deposit. */\n VENDOR = 'VENDOR',\n /** Paying an employee back what they spent for the company (경비 청구). */\n REIMBURSEMENT = 'REIMBURSEMENT'\n}\n\nregisterEnumType(ExpenditureKind, {\n name: 'ExpenditureKind',\n description: 'Who an expenditure request pays - a counterparty, or the employee who spent their own money'\n})\n\nexport enum ExpenditureRequestStatus {\n DRAFT = 'DRAFT',\n SUBMITTED = 'SUBMITTED',\n APPROVED = 'APPROVED',\n REJECTED = 'REJECTED',\n WITHDRAWN = 'WITHDRAWN'\n}\n\nregisterEnumType(ExpenditureRequestStatus, {\n name: 'ExpenditureRequestStatus',\n description:\n 'Where a request stands with its approvers - being written, waiting, decided. Whether it was paid is read from the bank lines that paid it'\n})\n\n/**\n * 지출결의 - money the company is asked to pay out, put up for approval before it leaves (ADR-0135).\n *\n * Two kinds share it: paying a counterparty, and paying an employee back (경비 청구, one claim per employee and\n * month). The requester writes the lines and submits; approvers decide through the worklist approval the submission\n * raises. Once approved, finance pays it from the payment queue.\n *\n * Whether it was paid, and whether that payment was reconciled with the bank, is not stored: it is read from the\n * payments on it (§`expenditure-payment-state.ts`). The account approvers saw is written down at submission, and it\n * is the account paid.\n */\n@Entity()\n@Index('ix_expenditure_request_0', (request: ExpenditureRequest) => [request.domain, request.status])\n@Index('ix_expenditure_request_1', (request: ExpenditureRequest) => [request.domain, request.requester, request.month])\n@Index('ix_expenditure_request_2', (request: ExpenditureRequest) => [request.domain, request.dueDate])\n@ObjectType({ description: 'Money the company is asked to pay out, put up for approval before it leaves' })\nexport class ExpenditureRequest {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID, { description: 'Unique identifier' })\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain, { nullable: true, description: 'The domain it belongs to' })\n domain?: Domain\n\n @RelationId((request: ExpenditureRequest) => request.domain)\n domainId?: string\n\n @Column()\n @Field(type => ExpenditureKind, { description: 'Whom it pays - a counterparty, or the employee paid back' })\n kind: ExpenditureKind\n\n @ManyToOne(type => User, { nullable: false })\n @Field(type => User, { nullable: true, description: 'Who wrote it - for a reimbursement, also who is paid' })\n requester?: User\n\n @RelationId((request: ExpenditureRequest) => request.requester)\n requesterId?: string\n\n @ManyToOne(type => Department, { nullable: true })\n @Field(type => Department, { nullable: true, description: \"The requester's department when it was written\" })\n department?: Department\n\n @RelationId((request: ExpenditureRequest) => request.department)\n departmentId?: string\n\n @ManyToOne(type => Counterparty, { nullable: true })\n @Field(type => Counterparty, { nullable: true, description: 'Who is paid, for a counterparty payment' })\n counterparty?: Counterparty\n\n @RelationId((request: ExpenditureRequest) => request.counterparty)\n counterpartyId?: string\n\n @ManyToOne(type => CounterpartyBankAccount, { nullable: true })\n @Field(type => CounterpartyBankAccount, { nullable: true, description: \"The counterparty's account chosen to be paid into\" })\n payeeAccount?: CounterpartyBankAccount\n\n @RelationId((request: ExpenditureRequest) => request.payeeAccount)\n payeeAccountId?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'The bank of the account paid into, as approvers saw it' })\n payeeBankName?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'The account paid into, as approvers saw it - written at submission' })\n payeeAccountNumber?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'The holder of the account paid into, as approvers saw it' })\n payeeHolderName?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'YYYY-MM a reimbursement belongs to' })\n month?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'YYYY-MM-DD it is to be paid' })\n dueDate?: string\n\n @Column()\n @Field({ description: 'What it is, in a few words' })\n title: string\n\n @Column({ default: 'KRW' })\n @Field({ description: 'The currency it is asked in' })\n currency: string\n\n @Column({ default: ExpenditureRequestStatus.DRAFT })\n @Field(type => ExpenditureRequestStatus, { description: 'Where it stands with its approvers' })\n status: ExpenditureRequestStatus\n\n @Column(moneyColumn())\n @Field(type => Float, { description: 'Sum of the lines' })\n totalAmount: number\n\n @Column(moneyColumn())\n @Field(type => Float, { description: 'What the company is to pay - the lines not paid with the corporate card' })\n payableAmount: number\n\n @OneToMany(type => ExpenditureRequestItem, item => item.request)\n @Field(type => [ExpenditureRequestItem], { nullable: true, description: 'The lines' })\n items?: ExpenditureRequestItem[]\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'The worklist approval raised by the latest submission' })\n activityInstanceId?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'When it was last put up for approval' })\n submittedAt?: Date\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'When approvers last decided' })\n decidedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who made the last decision' })\n decidedBy?: User\n\n @RelationId((request: ExpenditureRequest) => request.decidedBy)\n decidedById?: string\n\n @Column({ type: 'text', nullable: true })\n @Field({ nullable: true, description: 'Notes' })\n notes?: string\n\n @CreateDateColumn()\n @Field({ nullable: true, description: 'When it was written' })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true, description: 'When it was last changed' })\n updatedAt?: Date\n\n @DeleteDateColumn()\n @Field({ nullable: true, description: 'When it was deleted - financial rows are kept, not erased' })\n deletedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who wrote it' })\n creator?: User\n\n @RelationId((request: ExpenditureRequest) => request.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who changed it last' })\n updater?: User\n\n @RelationId((request: ExpenditureRequest) => request.updater)\n updaterId?: string\n}\n"]}
1
+ {"version":3,"file":"expenditure-request.js","sourceRoot":"","sources":["../../../server/service/expenditure-request/expenditure-request.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Column,\n CreateDateColumn,\n DeleteDateColumn,\n Entity,\n Index,\n ManyToOne,\n OneToMany,\n PrimaryGeneratedColumn,\n RelationId,\n UpdateDateColumn\n} from 'typeorm'\nimport { Directive, Field, Float, ID, ObjectType, registerEnumType } from 'type-graphql'\n\nimport { Domain, moneyColumn } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { Counterparty, CounterpartyBankAccount } from '@things-factory/biz-base'\nimport { Department } from '@things-factory/organization'\n\nimport { ExpenditureRequestItem } from './expenditure-request-item'\n\nexport enum ExpenditureKind {\n /** Paying a counterparty - a supplier's invoice, a service, a deposit. */\n VENDOR = 'VENDOR',\n /** Paying an employee back what they spent for the company (경비 청구). */\n REIMBURSEMENT = 'REIMBURSEMENT'\n}\n\nregisterEnumType(ExpenditureKind, {\n name: 'ExpenditureKind',\n description: 'Who an expenditure request pays - a counterparty, or the employee who spent their own money'\n})\n\nexport enum ExpenditureRequestStatus {\n DRAFT = 'DRAFT',\n SUBMITTED = 'SUBMITTED',\n APPROVED = 'APPROVED',\n REJECTED = 'REJECTED',\n WITHDRAWN = 'WITHDRAWN'\n}\n\nregisterEnumType(ExpenditureRequestStatus, {\n name: 'ExpenditureRequestStatus',\n description:\n 'Where a request stands with its approvers - being written, waiting, decided. Whether it was paid is read from the bank lines that paid it'\n})\n\n/**\n * 지출결의 - money the company is asked to pay out, put up for approval before it leaves (ADR-0135).\n *\n * Two kinds share it: paying a counterparty, and paying an employee back (경비 청구, one claim per employee and\n * month). The requester writes the lines and submits; approvers decide through the worklist approval the submission\n * raises. Once approved, finance pays it from the payment queue.\n *\n * Whether it was paid, and whether that payment was reconciled with the bank, is not stored: it is read from the\n * payments on it (§`expenditure-payment-state.ts`). The account approvers saw is written down at submission, and it\n * is the account paid.\n */\n@Entity()\n@Index('ix_expenditure_request_0', (request: ExpenditureRequest) => [request.domain, request.status])\n@Index('ix_expenditure_request_1', (request: ExpenditureRequest) => [request.domain, request.requester, request.month])\n@Index('ix_expenditure_request_2', (request: ExpenditureRequest) => [request.domain, request.dueDate])\n@ObjectType({ description: 'Money the company is asked to pay out, put up for approval before it leaves' })\nexport class ExpenditureRequest {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID, { description: 'Unique identifier' })\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain, { nullable: true, description: 'The domain it belongs to' })\n domain?: Domain\n\n @RelationId((request: ExpenditureRequest) => request.domain)\n domainId?: string\n\n @Column()\n @Field(type => ExpenditureKind, { description: 'Whom it pays - a counterparty, or the employee paid back' })\n kind: ExpenditureKind\n\n @ManyToOne(type => User, { nullable: false })\n @Field(type => User, { nullable: true, description: 'Who wrote it - for a reimbursement, also who is paid' })\n requester?: User\n\n @RelationId((request: ExpenditureRequest) => request.requester)\n requesterId?: string\n\n @ManyToOne(type => Department, { nullable: true })\n @Field(type => Department, { nullable: true, description: \"The requester's department when it was written\" })\n department?: Department\n\n @RelationId((request: ExpenditureRequest) => request.department)\n departmentId?: string\n\n @ManyToOne(type => Counterparty, { nullable: true })\n @Field(type => Counterparty, { nullable: true, description: 'Who is paid, for a counterparty payment' })\n counterparty?: Counterparty\n\n @RelationId((request: ExpenditureRequest) => request.counterparty)\n counterpartyId?: string\n\n @ManyToOne(type => CounterpartyBankAccount, { nullable: true })\n @Field(type => CounterpartyBankAccount, { nullable: true, description: \"The counterparty's account chosen to be paid into\" })\n payeeAccount?: CounterpartyBankAccount\n\n @RelationId((request: ExpenditureRequest) => request.payeeAccount)\n payeeAccountId?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'The bank of the account paid into, as approvers saw it' })\n payeeBankName?: string\n\n /* The whole number and the holder are the bank book's (ADR-0139); everyone else sees the bank and `payeeAccountTail`. */\n @Column({ nullable: true })\n @Directive('@privilege(category: \"bank\", privilege: \"query\", domainOwnerGranted: false)')\n @Field({ nullable: true, description: 'The account paid into, as approvers saw it - written at submission' })\n payeeAccountNumber?: string\n\n @Column({ nullable: true })\n @Directive('@privilege(category: \"bank\", privilege: \"query\", domainOwnerGranted: false)')\n @Field({ nullable: true, description: 'The holder of the account paid into, as approvers saw it' })\n payeeHolderName?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'YYYY-MM a reimbursement belongs to' })\n month?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'YYYY-MM-DD it is to be paid' })\n dueDate?: string\n\n @Column()\n @Field({ description: 'What it is, in a few words' })\n title: string\n\n @Column({ default: 'KRW' })\n @Field({ description: 'The currency it is asked in' })\n currency: string\n\n @Column({ default: ExpenditureRequestStatus.DRAFT })\n @Field(type => ExpenditureRequestStatus, { description: 'Where it stands with its approvers' })\n status: ExpenditureRequestStatus\n\n @Column(moneyColumn())\n @Field(type => Float, { description: 'Sum of the lines' })\n totalAmount: number\n\n @Column(moneyColumn())\n @Field(type => Float, { description: 'What the company is to pay - the lines not paid with the corporate card' })\n payableAmount: number\n\n @OneToMany(type => ExpenditureRequestItem, item => item.request)\n @Field(type => [ExpenditureRequestItem], { nullable: true, description: 'The lines' })\n items?: ExpenditureRequestItem[]\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'The worklist approval raised by the latest submission' })\n activityInstanceId?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'When it was last put up for approval' })\n submittedAt?: Date\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'When approvers last decided' })\n decidedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who made the last decision' })\n decidedBy?: User\n\n @RelationId((request: ExpenditureRequest) => request.decidedBy)\n decidedById?: string\n\n @Column({ type: 'text', nullable: true })\n @Field({ nullable: true, description: 'Notes' })\n notes?: string\n\n @CreateDateColumn()\n @Field({ nullable: true, description: 'When it was written' })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true, description: 'When it was last changed' })\n updatedAt?: Date\n\n @DeleteDateColumn()\n @Field({ nullable: true, description: 'When it was deleted - financial rows are kept, not erased' })\n deletedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who wrote it' })\n creator?: User\n\n @RelationId((request: ExpenditureRequest) => request.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who changed it last' })\n updater?: User\n\n @RelationId((request: ExpenditureRequest) => request.updater)\n updaterId?: string\n}\n"]}
@@ -5,14 +5,14 @@ export interface ReceiptFacts {
5
5
  requesterId?: string;
6
6
  activityInstanceId?: string;
7
7
  } | undefined>;
8
- /** Whether the caller reads every request - finance (`accounting:query`). */
8
+ /** Whether the caller reads every request - the paying seat (`expenditure:query`). */
9
9
  readsEveryRequest(context: any): Promise<boolean>;
10
10
  /** Whether the caller takes part in the approval case. */
11
11
  takesPart(activityInstanceId: string, context: any): Promise<boolean>;
12
12
  }
13
13
  /**
14
14
  * Who may open a receipt by its path (ADR-0106 decision 2, ADR-0139): the employee who wrote the request, whoever
15
- * decides it in the worklist, and finance, which reads every request. attachment-base has already checked the
15
+ * decides it in the worklist, and the paying seat, which reads every request (`expenditure`). attachment-base has already checked the
16
16
  * attachment is of the request's domain.
17
17
  */
18
18
  export declare function receiptReader(attachment: {
@@ -9,7 +9,7 @@ const expenditure_request_item_1 = require("./expenditure-request-item");
9
9
  const expenditure_request_service_1 = require("./expenditure-request-service");
10
10
  /**
11
11
  * Who may open a receipt by its path (ADR-0106 decision 2, ADR-0139): the employee who wrote the request, whoever
12
- * decides it in the worklist, and finance, which reads every request. attachment-base has already checked the
12
+ * decides it in the worklist, and the paying seat, which reads every request (`expenditure`). attachment-base has already checked the
13
13
  * attachment is of the request's domain.
14
14
  */
15
15
  async function receiptReader(attachment, context, facts) {
@@ -32,7 +32,7 @@ const FACTS = {
32
32
  },
33
33
  async readsEveryRequest(context) {
34
34
  const { domain, user, unsafeIP, prohibitedPrivileges } = context.state;
35
- return !!(await (0, auth_base_1.checkPermission)({ category: 'accounting', privilege: 'query', owner: true }, user, domain, unsafeIP, prohibitedPrivileges));
35
+ return !!(await (0, auth_base_1.checkPermission)({ category: 'expenditure', privilege: 'query', owner: true }, user, domain, unsafeIP, prohibitedPrivileges));
36
36
  },
37
37
  async takesPart(activityInstanceId, context) {
38
38
  const instance = await (0, shell_1.getRepository)(worklist_1.ActivityInstance).findOne({ where: { id: activityInstanceId, domain: { id: context.state.domain.id } } });
@@ -1 +1 @@
1
- {"version":3,"file":"receipt-reader.js","sourceRoot":"","sources":["../../../server/service/expenditure-request/receipt-reader.ts"],"names":[],"mappings":";;AAuBA,sCAQC;AA/BD,qEAA0E;AAC1E,yDAA2D;AAC3D,iDAAqD;AACrD,uDAA4E;AAE5E,yEAAmE;AACnE,+EAAgE;AAYhE;;;;GAIG;AACI,KAAK,UAAU,aAAa,CAAC,UAA8B,EAAE,OAAY,EAAE,KAAmB;IACnG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,KAAK,IAAI,EAAE,CAAA;IAC7C,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK;QAAE,OAAO,KAAK,CAAA;IACvD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;IAClE,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAA;IAC1B,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC,EAAE;QAAE,OAAO,IAAI,CAAA;IAChD,IAAI,MAAM,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAA;IACvD,OAAO,CAAC,CAAC,OAAO,CAAC,kBAAkB,IAAI,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAA;AACrG,CAAC;AAED,MAAM,KAAK,GAAiB;IAC1B,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ;QAC9B,MAAM,IAAI,GAAG,MAAM,IAAA,qBAAa,EAAC,iDAAsB,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAS,EAAE,SAAS,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;QACpJ,OAAO,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IACnI,CAAC;IACD,KAAK,CAAC,iBAAiB,CAAC,OAAO;QAC7B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QACtE,OAAO,CAAC,CAAC,CAAC,MAAM,IAAA,2BAAe,EAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC,CAAA;IAC7I,CAAC;IACD,KAAK,CAAC,SAAS,CAAC,kBAAkB,EAAE,OAAO;QACzC,MAAM,QAAQ,GAAG,MAAM,IAAA,qBAAa,EAAC,2BAAgB,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,kBAAkB,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,EAAS,EAAE,CAAC,CAAA;QACrJ,OAAO,CAAC,CAAC,QAAQ,IAAI,CAAC,MAAM,IAAA,0BAAe,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAA;IACjE,CAAC;CACF,CAAA;AAED,IAAA,0CAAwB,EAAC,8CAAgB,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA","sourcesContent":["import { registerAttachmentReader } from '@things-factory/attachment-base'\nimport { checkPermission } from '@things-factory/auth-base'\nimport { getRepository } from '@things-factory/shell'\nimport { ActivityInstance, mayReadInstance } from '@things-factory/worklist'\n\nimport { ExpenditureRequestItem } from './expenditure-request-item'\nimport { RECEIPT_REF_TYPE } from './expenditure-request-service'\n\n/** What the reader asks of the world - passed in so the rule is tested without a database. */\nexport interface ReceiptFacts {\n /** The line's request: who wrote it, and the approval case it went up as. */\n requestOf(itemId: string, domainId: string): Promise<{ requesterId?: string; activityInstanceId?: string } | undefined>\n /** Whether the caller reads every request - finance (`accounting:query`). */\n readsEveryRequest(context: any): Promise<boolean>\n /** Whether the caller takes part in the approval case. */\n takesPart(activityInstanceId: string, context: any): Promise<boolean>\n}\n\n/**\n * Who may open a receipt by its path (ADR-0106 decision 2, ADR-0139): the employee who wrote the request, whoever\n * decides it in the worklist, and finance, which reads every request. attachment-base has already checked the\n * attachment is of the request's domain.\n */\nexport async function receiptReader(attachment: { refBy?: string }, context: any, facts: ReceiptFacts): Promise<boolean> {\n const { domain, user } = context?.state ?? {}\n if (!domain || !user || !attachment.refBy) return false\n const request = await facts.requestOf(attachment.refBy, domain.id)\n if (!request) return false\n if (request.requesterId === user.id) return true\n if (await facts.readsEveryRequest(context)) return true\n return !!request.activityInstanceId && (await facts.takesPart(request.activityInstanceId, context))\n}\n\nconst FACTS: ReceiptFacts = {\n async requestOf(itemId, domainId) {\n const item = await getRepository(ExpenditureRequestItem).findOne({ where: { id: itemId, domain: { id: domainId } } as any, relations: ['request'] })\n return item?.request ? { requesterId: item.request.requesterId, activityInstanceId: item.request.activityInstanceId } : undefined\n },\n async readsEveryRequest(context) {\n const { domain, user, unsafeIP, prohibitedPrivileges } = context.state\n return !!(await checkPermission({ category: 'accounting', privilege: 'query', owner: true }, user, domain, unsafeIP, prohibitedPrivileges))\n },\n async takesPart(activityInstanceId, context) {\n const instance = await getRepository(ActivityInstance).findOne({ where: { id: activityInstanceId, domain: { id: context.state.domain.id } } as any })\n return !!instance && (await mayReadInstance(instance, context))\n }\n}\n\nregisterAttachmentReader(RECEIPT_REF_TYPE, (attachment, context) => receiptReader(attachment, context, FACTS))\n"]}
1
+ {"version":3,"file":"receipt-reader.js","sourceRoot":"","sources":["../../../server/service/expenditure-request/receipt-reader.ts"],"names":[],"mappings":";;AAuBA,sCAQC;AA/BD,qEAA0E;AAC1E,yDAA2D;AAC3D,iDAAqD;AACrD,uDAA4E;AAE5E,yEAAmE;AACnE,+EAAgE;AAYhE;;;;GAIG;AACI,KAAK,UAAU,aAAa,CAAC,UAA8B,EAAE,OAAY,EAAE,KAAmB;IACnG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,KAAK,IAAI,EAAE,CAAA;IAC7C,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK;QAAE,OAAO,KAAK,CAAA;IACvD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;IAClE,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAA;IAC1B,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC,EAAE;QAAE,OAAO,IAAI,CAAA;IAChD,IAAI,MAAM,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAA;IACvD,OAAO,CAAC,CAAC,OAAO,CAAC,kBAAkB,IAAI,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAA;AACrG,CAAC;AAED,MAAM,KAAK,GAAiB;IAC1B,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ;QAC9B,MAAM,IAAI,GAAG,MAAM,IAAA,qBAAa,EAAC,iDAAsB,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAS,EAAE,SAAS,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;QACpJ,OAAO,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IACnI,CAAC;IACD,KAAK,CAAC,iBAAiB,CAAC,OAAO;QAC7B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QACtE,OAAO,CAAC,CAAC,CAAC,MAAM,IAAA,2BAAe,EAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC,CAAA;IAC9I,CAAC;IACD,KAAK,CAAC,SAAS,CAAC,kBAAkB,EAAE,OAAO;QACzC,MAAM,QAAQ,GAAG,MAAM,IAAA,qBAAa,EAAC,2BAAgB,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,kBAAkB,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,EAAS,EAAE,CAAC,CAAA;QACrJ,OAAO,CAAC,CAAC,QAAQ,IAAI,CAAC,MAAM,IAAA,0BAAe,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAA;IACjE,CAAC;CACF,CAAA;AAED,IAAA,0CAAwB,EAAC,8CAAgB,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA","sourcesContent":["import { registerAttachmentReader } from '@things-factory/attachment-base'\nimport { checkPermission } from '@things-factory/auth-base'\nimport { getRepository } from '@things-factory/shell'\nimport { ActivityInstance, mayReadInstance } from '@things-factory/worklist'\n\nimport { ExpenditureRequestItem } from './expenditure-request-item'\nimport { RECEIPT_REF_TYPE } from './expenditure-request-service'\n\n/** What the reader asks of the world - passed in so the rule is tested without a database. */\nexport interface ReceiptFacts {\n /** The line's request: who wrote it, and the approval case it went up as. */\n requestOf(itemId: string, domainId: string): Promise<{ requesterId?: string; activityInstanceId?: string } | undefined>\n /** Whether the caller reads every request - the paying seat (`expenditure:query`). */\n readsEveryRequest(context: any): Promise<boolean>\n /** Whether the caller takes part in the approval case. */\n takesPart(activityInstanceId: string, context: any): Promise<boolean>\n}\n\n/**\n * Who may open a receipt by its path (ADR-0106 decision 2, ADR-0139): the employee who wrote the request, whoever\n * decides it in the worklist, and the paying seat, which reads every request (`expenditure`). attachment-base has already checked the\n * attachment is of the request's domain.\n */\nexport async function receiptReader(attachment: { refBy?: string }, context: any, facts: ReceiptFacts): Promise<boolean> {\n const { domain, user } = context?.state ?? {}\n if (!domain || !user || !attachment.refBy) return false\n const request = await facts.requestOf(attachment.refBy, domain.id)\n if (!request) return false\n if (request.requesterId === user.id) return true\n if (await facts.readsEveryRequest(context)) return true\n return !!request.activityInstanceId && (await facts.takesPart(request.activityInstanceId, context))\n}\n\nconst FACTS: ReceiptFacts = {\n async requestOf(itemId, domainId) {\n const item = await getRepository(ExpenditureRequestItem).findOne({ where: { id: itemId, domain: { id: domainId } } as any, relations: ['request'] })\n return item?.request ? { requesterId: item.request.requesterId, activityInstanceId: item.request.activityInstanceId } : undefined\n },\n async readsEveryRequest(context) {\n const { domain, user, unsafeIP, prohibitedPrivileges } = context.state\n return !!(await checkPermission({ category: 'expenditure', privilege: 'query', owner: true }, user, domain, unsafeIP, prohibitedPrivileges))\n },\n async takesPart(activityInstanceId, context) {\n const instance = await getRepository(ActivityInstance).findOne({ where: { id: activityInstanceId, domain: { id: context.state.domain.id } } as any })\n return !!instance && (await mayReadInstance(instance, context))\n }\n}\n\nregisterAttachmentReader(RECEIPT_REF_TYPE, (attachment, context) => receiptReader(attachment, context, FACTS))\n"]}
@@ -27,6 +27,7 @@ export * from './recurring-cash-item/recurring-schedule';
27
27
  export * from './recurring-cash-item/recurring-cash-item-service';
28
28
  export * from './account/account-match';
29
29
  export * from './account/default-accounts';
30
+ export * from './account/account-choice';
30
31
  export * from './bank-statement/bank-source';
31
32
  export * from './bank-statement/bank-parser';
32
33
  export * from './bank-statement/bank-reconcile';
@@ -33,6 +33,7 @@ tslib_1.__exportStar(require("./recurring-cash-item/recurring-schedule"), export
33
33
  tslib_1.__exportStar(require("./recurring-cash-item/recurring-cash-item-service"), exports);
34
34
  tslib_1.__exportStar(require("./account/account-match"), exports);
35
35
  tslib_1.__exportStar(require("./account/default-accounts"), exports);
36
+ tslib_1.__exportStar(require("./account/account-choice"), exports);
36
37
  tslib_1.__exportStar(require("./bank-statement/bank-source"), exports);
37
38
  tslib_1.__exportStar(require("./bank-statement/bank-parser"), exports);
38
39
  tslib_1.__exportStar(require("./bank-statement/bank-reconcile"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/service/index.ts"],"names":[],"mappings":";;;;AAAA,yBAAyB;AACzB,2DAAgC;AAChC,oFAAyD;AACzD,oFAAyD;AACzD,oEAAyC;AACzC,sEAA2C;AAC3C,0EAA+C;AAC/C,4DAAiC;AACjC,4DAAiC;AACjC,oFAAyD;AACzD,oFAAyD;AACzD,wFAA6D;AAC7D,sEAA2C;AAC3C,0EAA+C;AAC/C,oEAAyC;AACzC,oFAAyD;AACzD,yFAA8D;AAE9D,qBAAqB;AACrB,2EAAgD;AAChD,4EAAiD;AACjD,8EAAmD;AACnD,oEAAyC;AACzC,oEAAyC;AACzC,qEAA0C;AAC1C,qEAA0C;AAC1C,yFAA8D;AAC9D,4FAAiE;AACjE,mFAAwD;AACxD,4FAAiE;AACjE,kEAAuC;AACvC,qEAA0C;AAC1C,uEAA4C;AAC5C,uEAA4C;AAC5C,0EAA+C;AAC/C,4EAAiD;AACjD,uEAA4C;AAC5C,4FAAiE;AACjE,8FAAmE;AACnE,0FAA+D;AAC/D,0FAA+D;AAC/D,4FAAiE;AAEjE,mCAAmC;AACnC,+DAI8B;AAC9B,+DAI8B;AAC9B,+CAIsB;AACtB,iDAIuB;AACvB,qDAIyB;AACzB,uCAIkB;AAClB,uCAIkB;AAClB,+DAI8B;AAC9B,+DAI8B;AAC9B,mEAIgC;AAChC,iDAIuB;AACvB,qDAIyB;AACzB,+CAIsB;AACtB,iEAI+B;AAC/B,+DAI8B;AAEjB,QAAA,QAAQ,GAAG;IACtB,GAAG,8BAA0B;IAC7B,GAAG,8BAA0B;IAC7B,GAAG,sBAAmB;IACtB,GAAG,uBAAmB;IACtB,GAAG,yBAAqB;IACxB,GAAG,kBAAe;IAClB,GAAG,kBAAe;IAClB,GAAG,8BAA0B;IAC7B,GAAG,8BAAyB;IAC5B,GAAG,gCAA4B;IAC/B,GAAG,uBAAmB;IACtB,GAAG,yBAAqB;IACxB,GAAG,sBAAkB;IACrB,GAAG,+BAA2B;IAC9B,GAAG,8BAA0B;CAC9B,CAAA;AAEY,QAAA,WAAW,GAAG;IACzB,GAAG,iCAA6B;IAChC,GAAG,iCAA6B;IAChC,GAAG,yBAAsB;IACzB,GAAG,0BAAsB;IACzB,GAAG,4BAAwB;IAC3B,GAAG,qBAAkB;IACrB,GAAG,qBAAkB;IACrB,GAAG,iCAA6B;IAChC,GAAG,iCAA4B;IAC/B,GAAG,mCAA+B;IAClC,GAAG,0BAAsB;IACzB,GAAG,4BAAwB;IAC3B,GAAG,yBAAqB;IACxB,GAAG,kCAA8B;IACjC,GAAG,iCAA6B;CACjC,CAAA;AAEY,QAAA,MAAM,GAAG;IACpB,eAAe,EAAE;QACf,GAAG,+BAA2B;QAC9B,GAAG,+BAA2B;QAC9B,GAAG,uBAAoB;QACvB,GAAG,wBAAoB;QACvB,GAAG,0BAAsB;QACzB,GAAG,mBAAgB;QACnB,GAAG,mBAAgB;QACnB,GAAG,+BAA2B;QAC9B,GAAG,+BAA0B;QAC7B,GAAG,iCAA6B;QAChC,GAAG,wBAAoB;QACvB,GAAG,0BAAsB;QACzB,GAAG,uBAAmB;QACtB,GAAG,gCAA4B;QAC/B,GAAG,+BAA2B;KAC/B;CACF,CAAA","sourcesContent":["/* EXPORT ENTITY TYPES */\nexport * from './cash-flow-type'\nexport * from './financial-statement/financial-statement'\nexport * from './accounting-category/accounting-category'\nexport * from './transaction/transaction'\nexport * from './bank-account/bank-account'\nexport * from './bank-statement/bank-statement'\nexport * from './payment/payment'\nexport * from './account/account'\nexport * from './accounting-document/accounting-document'\nexport * from './recurring-cash-item/recurring-cash-item'\nexport * from './financial-institution/financial-institution'\nexport * from './fiscal-month/fiscal-month'\nexport * from './fiscal-quarter/fiscal-quarter'\nexport * from './fiscal-year/fiscal-year'\nexport * from './expenditure-request/expenditure-request'\nexport * from './expenditure-request/expenditure-request-item'\n\n/* EXPORT SERVICES */\nexport * from './transaction/transaction-period'\nexport * from './transaction/transaction-service'\nexport * from './bank-account/bank-account-service'\nexport * from './payment/payment-targets'\nexport * from './payment/payment-service'\nexport * from './payment/payment-currency'\nexport * from './payment/document-targets'\nexport * from './financial-statement/financial-statement-line'\nexport * from './financial-statement/financial-statement-service'\nexport * from './recurring-cash-item/recurring-schedule'\nexport * from './recurring-cash-item/recurring-cash-item-service'\nexport * from './account/account-match'\nexport * from './account/default-accounts'\nexport * from './bank-statement/bank-source'\nexport * from './bank-statement/bank-parser'\nexport * from './bank-statement/bank-reconcile'\nexport * from './bank-statement/bank-import-type'\nexport * from './bank-statement/bank-import'\nexport * from './counterparty-account/counterparty-account-rules'\nexport * from './counterparty-account/counterparty-account-service'\nexport * from './expenditure-request/expenditure-request-rules'\nexport * from './expenditure-request/expenditure-payment-state'\nexport * from './expenditure-request/expenditure-request-service'\n\n/* IMPORT ENTITIES AND RESOLVERS */\nimport {\n entities as FinancialStatementEntities,\n resolvers as FinancialStatementResolvers,\n subscribers as FinancialStatementSubscribers\n} from './financial-statement'\nimport {\n entities as AccountingCategoryEntities,\n resolvers as AccountingCategoryResolvers,\n subscribers as AccountingCategorySubscribers\n} from './accounting-category'\nimport {\n entities as TransactionEntities,\n resolvers as TransactionResolvers,\n subscribers as TransactionSubscribers\n} from './transaction'\nimport {\n entities as BankAccountEntities,\n resolvers as BankAccountResolvers,\n subscribers as BankAccountSubscribers\n} from './bank-account'\nimport {\n entities as BankStatementEntities,\n resolvers as BankStatementResolvers,\n subscribers as BankStatementSubscribers\n} from './bank-statement'\nimport {\n entities as PaymentEntities,\n resolvers as PaymentResolvers,\n subscribers as PaymentSubscribers\n} from './payment'\nimport {\n entities as AccountEntities,\n resolvers as AccountResolvers,\n subscribers as AccountSubscribers\n} from './account'\nimport {\n entities as AccountingDocumentEntities,\n resolvers as AccountingDocumentResolvers,\n subscribers as AccountingDocumentSubscribers\n} from './accounting-document'\nimport {\n entities as RecurringCashItemEntities,\n resolvers as RecurringCashItemResolvers,\n subscribers as RecurringCashItemSubscribers\n} from './recurring-cash-item'\nimport {\n entities as FinancialInstitutionEntities,\n resolvers as FinancialInstitutionResolvers,\n subscribers as FinancialInstitutionSubscribers\n} from './financial-institution'\nimport {\n entities as FiscalMonthEntities,\n resolvers as FiscalMonthResolvers,\n subscribers as FiscalMonthSubscribers\n} from './fiscal-month'\nimport {\n entities as FiscalQuarterEntities,\n resolvers as FiscalQuarterResolvers,\n subscribers as FiscalQuarterSubscribers\n} from './fiscal-quarter'\nimport {\n entities as FiscalYearEntities,\n resolvers as FiscalYearResolvers,\n subscribers as FiscalYearSubscribers\n} from './fiscal-year'\nimport {\n entities as CounterpartyAccountEntities,\n resolvers as CounterpartyAccountResolvers,\n subscribers as CounterpartyAccountSubscribers\n} from './counterparty-account'\nimport {\n entities as ExpenditureRequestEntities,\n resolvers as ExpenditureRequestResolvers,\n subscribers as ExpenditureRequestSubscribers\n} from './expenditure-request'\n\nexport const entities = [\n ...FinancialStatementEntities,\n ...AccountingCategoryEntities,\n ...TransactionEntities,\n ...BankAccountEntities,\n ...BankStatementEntities,\n ...PaymentEntities,\n ...AccountEntities,\n ...AccountingDocumentEntities,\n ...RecurringCashItemEntities,\n ...FinancialInstitutionEntities,\n ...FiscalMonthEntities,\n ...FiscalQuarterEntities,\n ...FiscalYearEntities,\n ...CounterpartyAccountEntities,\n ...ExpenditureRequestEntities\n]\n\nexport const subscribers = [\n ...FinancialStatementSubscribers,\n ...AccountingCategorySubscribers,\n ...TransactionSubscribers,\n ...BankAccountSubscribers,\n ...BankStatementSubscribers,\n ...PaymentSubscribers,\n ...AccountSubscribers,\n ...AccountingDocumentSubscribers,\n ...RecurringCashItemSubscribers,\n ...FinancialInstitutionSubscribers,\n ...FiscalMonthSubscribers,\n ...FiscalQuarterSubscribers,\n ...FiscalYearSubscribers,\n ...CounterpartyAccountSubscribers,\n ...ExpenditureRequestSubscribers\n]\n\nexport const schema = {\n resolverClasses: [\n ...FinancialStatementResolvers,\n ...AccountingCategoryResolvers,\n ...TransactionResolvers,\n ...BankAccountResolvers,\n ...BankStatementResolvers,\n ...PaymentResolvers,\n ...AccountResolvers,\n ...AccountingDocumentResolvers,\n ...RecurringCashItemResolvers,\n ...FinancialInstitutionResolvers,\n ...FiscalMonthResolvers,\n ...FiscalQuarterResolvers,\n ...FiscalYearResolvers,\n ...CounterpartyAccountResolvers,\n ...ExpenditureRequestResolvers\n ]\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/service/index.ts"],"names":[],"mappings":";;;;AAAA,yBAAyB;AACzB,2DAAgC;AAChC,oFAAyD;AACzD,oFAAyD;AACzD,oEAAyC;AACzC,sEAA2C;AAC3C,0EAA+C;AAC/C,4DAAiC;AACjC,4DAAiC;AACjC,oFAAyD;AACzD,oFAAyD;AACzD,wFAA6D;AAC7D,sEAA2C;AAC3C,0EAA+C;AAC/C,oEAAyC;AACzC,oFAAyD;AACzD,yFAA8D;AAE9D,qBAAqB;AACrB,2EAAgD;AAChD,4EAAiD;AACjD,8EAAmD;AACnD,oEAAyC;AACzC,oEAAyC;AACzC,qEAA0C;AAC1C,qEAA0C;AAC1C,yFAA8D;AAC9D,4FAAiE;AACjE,mFAAwD;AACxD,4FAAiE;AACjE,kEAAuC;AACvC,qEAA0C;AAC1C,mEAAwC;AACxC,uEAA4C;AAC5C,uEAA4C;AAC5C,0EAA+C;AAC/C,4EAAiD;AACjD,uEAA4C;AAC5C,4FAAiE;AACjE,8FAAmE;AACnE,0FAA+D;AAC/D,0FAA+D;AAC/D,4FAAiE;AAEjE,mCAAmC;AACnC,+DAI8B;AAC9B,+DAI8B;AAC9B,+CAIsB;AACtB,iDAIuB;AACvB,qDAIyB;AACzB,uCAIkB;AAClB,uCAIkB;AAClB,+DAI8B;AAC9B,+DAI8B;AAC9B,mEAIgC;AAChC,iDAIuB;AACvB,qDAIyB;AACzB,+CAIsB;AACtB,iEAI+B;AAC/B,+DAI8B;AAEjB,QAAA,QAAQ,GAAG;IACtB,GAAG,8BAA0B;IAC7B,GAAG,8BAA0B;IAC7B,GAAG,sBAAmB;IACtB,GAAG,uBAAmB;IACtB,GAAG,yBAAqB;IACxB,GAAG,kBAAe;IAClB,GAAG,kBAAe;IAClB,GAAG,8BAA0B;IAC7B,GAAG,8BAAyB;IAC5B,GAAG,gCAA4B;IAC/B,GAAG,uBAAmB;IACtB,GAAG,yBAAqB;IACxB,GAAG,sBAAkB;IACrB,GAAG,+BAA2B;IAC9B,GAAG,8BAA0B;CAC9B,CAAA;AAEY,QAAA,WAAW,GAAG;IACzB,GAAG,iCAA6B;IAChC,GAAG,iCAA6B;IAChC,GAAG,yBAAsB;IACzB,GAAG,0BAAsB;IACzB,GAAG,4BAAwB;IAC3B,GAAG,qBAAkB;IACrB,GAAG,qBAAkB;IACrB,GAAG,iCAA6B;IAChC,GAAG,iCAA4B;IAC/B,GAAG,mCAA+B;IAClC,GAAG,0BAAsB;IACzB,GAAG,4BAAwB;IAC3B,GAAG,yBAAqB;IACxB,GAAG,kCAA8B;IACjC,GAAG,iCAA6B;CACjC,CAAA;AAEY,QAAA,MAAM,GAAG;IACpB,eAAe,EAAE;QACf,GAAG,+BAA2B;QAC9B,GAAG,+BAA2B;QAC9B,GAAG,uBAAoB;QACvB,GAAG,wBAAoB;QACvB,GAAG,0BAAsB;QACzB,GAAG,mBAAgB;QACnB,GAAG,mBAAgB;QACnB,GAAG,+BAA2B;QAC9B,GAAG,+BAA0B;QAC7B,GAAG,iCAA6B;QAChC,GAAG,wBAAoB;QACvB,GAAG,0BAAsB;QACzB,GAAG,uBAAmB;QACtB,GAAG,gCAA4B;QAC/B,GAAG,+BAA2B;KAC/B;CACF,CAAA","sourcesContent":["/* EXPORT ENTITY TYPES */\nexport * from './cash-flow-type'\nexport * from './financial-statement/financial-statement'\nexport * from './accounting-category/accounting-category'\nexport * from './transaction/transaction'\nexport * from './bank-account/bank-account'\nexport * from './bank-statement/bank-statement'\nexport * from './payment/payment'\nexport * from './account/account'\nexport * from './accounting-document/accounting-document'\nexport * from './recurring-cash-item/recurring-cash-item'\nexport * from './financial-institution/financial-institution'\nexport * from './fiscal-month/fiscal-month'\nexport * from './fiscal-quarter/fiscal-quarter'\nexport * from './fiscal-year/fiscal-year'\nexport * from './expenditure-request/expenditure-request'\nexport * from './expenditure-request/expenditure-request-item'\n\n/* EXPORT SERVICES */\nexport * from './transaction/transaction-period'\nexport * from './transaction/transaction-service'\nexport * from './bank-account/bank-account-service'\nexport * from './payment/payment-targets'\nexport * from './payment/payment-service'\nexport * from './payment/payment-currency'\nexport * from './payment/document-targets'\nexport * from './financial-statement/financial-statement-line'\nexport * from './financial-statement/financial-statement-service'\nexport * from './recurring-cash-item/recurring-schedule'\nexport * from './recurring-cash-item/recurring-cash-item-service'\nexport * from './account/account-match'\nexport * from './account/default-accounts'\nexport * from './account/account-choice'\nexport * from './bank-statement/bank-source'\nexport * from './bank-statement/bank-parser'\nexport * from './bank-statement/bank-reconcile'\nexport * from './bank-statement/bank-import-type'\nexport * from './bank-statement/bank-import'\nexport * from './counterparty-account/counterparty-account-rules'\nexport * from './counterparty-account/counterparty-account-service'\nexport * from './expenditure-request/expenditure-request-rules'\nexport * from './expenditure-request/expenditure-payment-state'\nexport * from './expenditure-request/expenditure-request-service'\n\n/* IMPORT ENTITIES AND RESOLVERS */\nimport {\n entities as FinancialStatementEntities,\n resolvers as FinancialStatementResolvers,\n subscribers as FinancialStatementSubscribers\n} from './financial-statement'\nimport {\n entities as AccountingCategoryEntities,\n resolvers as AccountingCategoryResolvers,\n subscribers as AccountingCategorySubscribers\n} from './accounting-category'\nimport {\n entities as TransactionEntities,\n resolvers as TransactionResolvers,\n subscribers as TransactionSubscribers\n} from './transaction'\nimport {\n entities as BankAccountEntities,\n resolvers as BankAccountResolvers,\n subscribers as BankAccountSubscribers\n} from './bank-account'\nimport {\n entities as BankStatementEntities,\n resolvers as BankStatementResolvers,\n subscribers as BankStatementSubscribers\n} from './bank-statement'\nimport {\n entities as PaymentEntities,\n resolvers as PaymentResolvers,\n subscribers as PaymentSubscribers\n} from './payment'\nimport {\n entities as AccountEntities,\n resolvers as AccountResolvers,\n subscribers as AccountSubscribers\n} from './account'\nimport {\n entities as AccountingDocumentEntities,\n resolvers as AccountingDocumentResolvers,\n subscribers as AccountingDocumentSubscribers\n} from './accounting-document'\nimport {\n entities as RecurringCashItemEntities,\n resolvers as RecurringCashItemResolvers,\n subscribers as RecurringCashItemSubscribers\n} from './recurring-cash-item'\nimport {\n entities as FinancialInstitutionEntities,\n resolvers as FinancialInstitutionResolvers,\n subscribers as FinancialInstitutionSubscribers\n} from './financial-institution'\nimport {\n entities as FiscalMonthEntities,\n resolvers as FiscalMonthResolvers,\n subscribers as FiscalMonthSubscribers\n} from './fiscal-month'\nimport {\n entities as FiscalQuarterEntities,\n resolvers as FiscalQuarterResolvers,\n subscribers as FiscalQuarterSubscribers\n} from './fiscal-quarter'\nimport {\n entities as FiscalYearEntities,\n resolvers as FiscalYearResolvers,\n subscribers as FiscalYearSubscribers\n} from './fiscal-year'\nimport {\n entities as CounterpartyAccountEntities,\n resolvers as CounterpartyAccountResolvers,\n subscribers as CounterpartyAccountSubscribers\n} from './counterparty-account'\nimport {\n entities as ExpenditureRequestEntities,\n resolvers as ExpenditureRequestResolvers,\n subscribers as ExpenditureRequestSubscribers\n} from './expenditure-request'\n\nexport const entities = [\n ...FinancialStatementEntities,\n ...AccountingCategoryEntities,\n ...TransactionEntities,\n ...BankAccountEntities,\n ...BankStatementEntities,\n ...PaymentEntities,\n ...AccountEntities,\n ...AccountingDocumentEntities,\n ...RecurringCashItemEntities,\n ...FinancialInstitutionEntities,\n ...FiscalMonthEntities,\n ...FiscalQuarterEntities,\n ...FiscalYearEntities,\n ...CounterpartyAccountEntities,\n ...ExpenditureRequestEntities\n]\n\nexport const subscribers = [\n ...FinancialStatementSubscribers,\n ...AccountingCategorySubscribers,\n ...TransactionSubscribers,\n ...BankAccountSubscribers,\n ...BankStatementSubscribers,\n ...PaymentSubscribers,\n ...AccountSubscribers,\n ...AccountingDocumentSubscribers,\n ...RecurringCashItemSubscribers,\n ...FinancialInstitutionSubscribers,\n ...FiscalMonthSubscribers,\n ...FiscalQuarterSubscribers,\n ...FiscalYearSubscribers,\n ...CounterpartyAccountSubscribers,\n ...ExpenditureRequestSubscribers\n]\n\nexport const schema = {\n resolverClasses: [\n ...FinancialStatementResolvers,\n ...AccountingCategoryResolvers,\n ...TransactionResolvers,\n ...BankAccountResolvers,\n ...BankStatementResolvers,\n ...PaymentResolvers,\n ...AccountResolvers,\n ...AccountingDocumentResolvers,\n ...RecurringCashItemResolvers,\n ...FinancialInstitutionResolvers,\n ...FiscalMonthResolvers,\n ...FiscalQuarterResolvers,\n ...FiscalYearResolvers,\n ...CounterpartyAccountResolvers,\n ...ExpenditureRequestResolvers\n ]\n}\n"]}