@things-factory/accounting 8.0.40 → 9.0.0-9.0.0-beta.59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/dist-client/pages/accounting-category/accounting-category-tree-page.js +1 -1
  2. package/dist-client/pages/accounting-category/accounting-category-tree-page.js.map +1 -1
  3. package/dist-client/pages/bank/bank-importer.d.ts +23 -0
  4. package/dist-client/pages/bank/bank-importer.js +93 -0
  5. package/dist-client/pages/bank/bank-importer.js.map +1 -0
  6. package/dist-client/pages/bank/bank-list-page.d.ts +66 -0
  7. package/dist-client/pages/bank/bank-list-page.js +370 -0
  8. package/dist-client/pages/bank/bank-list-page.js.map +1 -0
  9. package/dist-client/pages/bank-account/bank-account-importer.d.ts +23 -0
  10. package/dist-client/pages/bank-account/bank-account-importer.js +93 -0
  11. package/dist-client/pages/bank-account/bank-account-importer.js.map +1 -0
  12. package/dist-client/pages/bank-account/bank-account-list-page.d.ts +66 -0
  13. package/dist-client/pages/bank-account/bank-account-list-page.js +370 -0
  14. package/dist-client/pages/bank-account/bank-account-list-page.js.map +1 -0
  15. package/dist-client/pages/financial-institution/financial-institution-importer.d.ts +23 -0
  16. package/dist-client/pages/financial-institution/financial-institution-importer.js +93 -0
  17. package/dist-client/pages/financial-institution/financial-institution-importer.js.map +1 -0
  18. package/dist-client/pages/financial-institution/financial-institution-list-page.d.ts +66 -0
  19. package/dist-client/pages/financial-institution/financial-institution-list-page.js +370 -0
  20. package/dist-client/pages/financial-institution/financial-institution-list-page.js.map +1 -0
  21. package/dist-client/tsconfig.tsbuildinfo +1 -1
  22. package/dist-server/migrations/1725201567284-seed-country-codes.d.ts +5 -0
  23. package/dist-server/migrations/1725201567284-seed-country-codes.js +248 -0
  24. package/dist-server/migrations/1725201567284-seed-country-codes.js.map +1 -0
  25. package/dist-server/migrations/1725201667385-seed-financial-institutions.d.ts +5 -0
  26. package/dist-server/migrations/1725201667385-seed-financial-institutions.js +348 -0
  27. package/dist-server/migrations/1725201667385-seed-financial-institutions.js.map +1 -0
  28. package/dist-server/service/bank-account/bank-account-history.d.ts +34 -0
  29. package/dist-server/service/bank-account/bank-account-history.js +172 -0
  30. package/dist-server/service/bank-account/bank-account-history.js.map +1 -0
  31. package/dist-server/service/bank-account/bank-account-mutation.d.ts +10 -0
  32. package/dist-server/service/bank-account/bank-account-mutation.js +128 -0
  33. package/dist-server/service/bank-account/bank-account-mutation.js.map +1 -0
  34. package/dist-server/service/bank-account/bank-account-query.d.ts +11 -0
  35. package/dist-server/service/bank-account/bank-account-query.js +79 -0
  36. package/dist-server/service/bank-account/bank-account-query.js.map +1 -0
  37. package/dist-server/service/bank-account/bank-account-type.d.ts +39 -0
  38. package/dist-server/service/bank-account/bank-account-type.js +153 -0
  39. package/dist-server/service/bank-account/bank-account-type.js.map +1 -0
  40. package/dist-server/service/bank-account/bank-account.d.ts +38 -0
  41. package/dist-server/service/bank-account/bank-account.js +164 -0
  42. package/dist-server/service/bank-account/bank-account.js.map +1 -0
  43. package/dist-server/service/bank-account/event-subscriber.d.ts +7 -0
  44. package/dist-server/service/bank-account/event-subscriber.js +21 -0
  45. package/dist-server/service/bank-account/event-subscriber.js.map +1 -0
  46. package/dist-server/service/bank-account/index.d.ts +7 -0
  47. package/dist-server/service/bank-account/index.js +12 -0
  48. package/dist-server/service/bank-account/index.js.map +1 -0
  49. package/dist-server/service/financial-institution/financial-institution-mutation.d.ts +10 -0
  50. package/dist-server/service/financial-institution/financial-institution-mutation.js +169 -0
  51. package/dist-server/service/financial-institution/financial-institution-mutation.js.map +1 -0
  52. package/dist-server/service/financial-institution/financial-institution-query.d.ts +12 -0
  53. package/dist-server/service/financial-institution/financial-institution-query.js +97 -0
  54. package/dist-server/service/financial-institution/financial-institution-query.js.map +1 -0
  55. package/dist-server/service/financial-institution/financial-institution-type.d.ts +32 -0
  56. package/dist-server/service/financial-institution/financial-institution-type.js +126 -0
  57. package/dist-server/service/financial-institution/financial-institution-type.js.map +1 -0
  58. package/dist-server/service/financial-institution/financial-institution.d.ts +34 -0
  59. package/dist-server/service/financial-institution/financial-institution.js +137 -0
  60. package/dist-server/service/financial-institution/financial-institution.js.map +1 -0
  61. package/dist-server/service/financial-institution/index.d.ts +6 -0
  62. package/dist-server/service/financial-institution/index.js +10 -0
  63. package/dist-server/service/financial-institution/index.js.map +1 -0
  64. package/dist-server/service/index.d.ts +3 -2
  65. package/dist-server/service/index.js +5 -0
  66. package/dist-server/service/index.js.map +1 -1
  67. package/dist-server/service/payment/index.d.ts +1 -2
  68. package/dist-server/service/payment/payment-history.d.ts +8 -1
  69. package/dist-server/service/payment/payment-history.js +41 -10
  70. package/dist-server/service/payment/payment-history.js.map +1 -1
  71. package/dist-server/service/payment/payment-type.d.ts +7 -1
  72. package/dist-server/service/payment/payment-type.js +24 -0
  73. package/dist-server/service/payment/payment-type.js.map +1 -1
  74. package/dist-server/service/payment/payment.d.ts +12 -0
  75. package/dist-server/service/payment/payment.js +36 -1
  76. package/dist-server/service/payment/payment.js.map +1 -1
  77. package/dist-server/tsconfig.tsbuildinfo +1 -1
  78. package/helps/accounting/bank-account.md +160 -0
  79. package/helps/accounting/bank.md +160 -0
  80. package/helps/accounting/financial-institution.md +160 -0
  81. package/package.json +7 -7
  82. package/client/activities/activity-book-edit.ts +0 -88
  83. package/client/activities/activity-book-view.ts +0 -88
  84. package/client/activities/activity-expense-edit.ts +0 -88
  85. package/client/activities/activity-expense-view.ts +0 -88
  86. package/client/bootstrap.ts +0 -10
  87. package/client/components/accounting-category-selector.ts +0 -136
  88. package/client/components/accounting-category-view.ts +0 -75
  89. package/client/grist-editors/grist-editor-accounting-category-object.ts +0 -83
  90. package/client/grist-editors/grist-renderer-accounting-category-object.ts +0 -13
  91. package/client/index.ts +0 -0
  92. package/client/pages/account/account-importer.ts +0 -97
  93. package/client/pages/account/account-list-page.ts +0 -364
  94. package/client/pages/accounting-category/accounting-category-importer.ts +0 -97
  95. package/client/pages/accounting-category/accounting-category-list-page.ts +0 -368
  96. package/client/pages/accounting-category/accounting-category-tree-page.ts +0 -338
  97. package/client/pages/accounting-document/accounting-document-importer.ts +0 -90
  98. package/client/pages/accounting-document/accounting-document-list-page.ts +0 -398
  99. package/client/pages/financial-statement/financial-statement-importer.ts +0 -97
  100. package/client/pages/financial-statement/financial-statement-list-page.ts +0 -338
  101. package/client/pages/fiscal-month/fiscal-month-importer.ts +0 -90
  102. package/client/pages/fiscal-month/fiscal-month-list-page.ts +0 -398
  103. package/client/pages/fiscal-quarter/fiscal-quarter-importer.ts +0 -90
  104. package/client/pages/fiscal-quarter/fiscal-quarter-list-page.ts +0 -398
  105. package/client/pages/fiscal-year/fiscal-year-importer.ts +0 -90
  106. package/client/pages/fiscal-year/fiscal-year-list-page.ts +0 -398
  107. package/client/pages/income-statement/income-statement-importer.ts +0 -97
  108. package/client/pages/income-statement/income-statement-list-page.ts +0 -338
  109. package/client/pages/payment/payment-importer.ts +0 -90
  110. package/client/pages/payment/payment-list-page.ts +0 -398
  111. package/client/pages/transaction/transaction-importer.ts +0 -97
  112. package/client/pages/transaction/transaction-list-page.ts +0 -338
  113. package/client/route.ts +0 -35
  114. package/client/tsconfig.json +0 -13
  115. package/client/types/accounting-category.ts +0 -23
  116. package/client/types/index.ts +0 -1
  117. package/server/activities/activity-book.ts +0 -172
  118. package/server/activities/activity-expense.ts +0 -149
  119. package/server/activities/index.ts +0 -18
  120. package/server/controllers/index.ts +0 -1
  121. package/server/controllers/summary-statements.ts +0 -166
  122. package/server/index.ts +0 -6
  123. package/server/middlewares/index.ts +0 -3
  124. package/server/migrations/1725200507196-seed-fiscal-entities.ts +0 -106
  125. package/server/migrations/1725201467183-seed-accounts.ts +0 -339
  126. package/server/migrations/index.ts +0 -9
  127. package/server/routes.ts +0 -26
  128. package/server/service/account/account-history.ts +0 -117
  129. package/server/service/account/account-mutation.ts +0 -140
  130. package/server/service/account/account-query.ts +0 -51
  131. package/server/service/account/account-type.ts +0 -44
  132. package/server/service/account/account.ts +0 -97
  133. package/server/service/account/event-subscriber.ts +0 -17
  134. package/server/service/account/index.ts +0 -9
  135. package/server/service/accounting-category/accounting-category-history.ts +0 -129
  136. package/server/service/accounting-category/accounting-category-mutation.ts +0 -148
  137. package/server/service/accounting-category/accounting-category-query.ts +0 -74
  138. package/server/service/accounting-category/accounting-category-type.ts +0 -48
  139. package/server/service/accounting-category/accounting-category.ts +0 -100
  140. package/server/service/accounting-category/event-subscriber.ts +0 -20
  141. package/server/service/accounting-category/index.ts +0 -9
  142. package/server/service/accounting-document/accounting-document-history.ts +0 -123
  143. package/server/service/accounting-document/accounting-document-mutation.ts +0 -137
  144. package/server/service/accounting-document/accounting-document-query.ts +0 -48
  145. package/server/service/accounting-document/accounting-document-type.ts +0 -52
  146. package/server/service/accounting-document/accounting-document.ts +0 -93
  147. package/server/service/accounting-document/event-subscriber.ts +0 -17
  148. package/server/service/accounting-document/index.ts +0 -9
  149. package/server/service/common-type.ts +0 -12
  150. package/server/service/financial-statement/event-subscriber.ts +0 -17
  151. package/server/service/financial-statement/financial-statement-history.ts +0 -129
  152. package/server/service/financial-statement/financial-statement-line-item.ts +0 -82
  153. package/server/service/financial-statement/financial-statement-mutation.ts +0 -148
  154. package/server/service/financial-statement/financial-statement-query.ts +0 -53
  155. package/server/service/financial-statement/financial-statement-type.ts +0 -51
  156. package/server/service/financial-statement/financial-statement.ts +0 -116
  157. package/server/service/financial-statement/index.ts +0 -10
  158. package/server/service/fiscal-month/fiscal-month-mutation.ts +0 -145
  159. package/server/service/fiscal-month/fiscal-month-query.ts +0 -58
  160. package/server/service/fiscal-month/fiscal-month-type.ts +0 -66
  161. package/server/service/fiscal-month/fiscal-month.ts +0 -84
  162. package/server/service/fiscal-month/index.ts +0 -7
  163. package/server/service/fiscal-quarter/fiscal-quarter-mutation.ts +0 -148
  164. package/server/service/fiscal-quarter/fiscal-quarter-query.ts +0 -60
  165. package/server/service/fiscal-quarter/fiscal-quarter-type.ts +0 -60
  166. package/server/service/fiscal-quarter/fiscal-quarter.ts +0 -80
  167. package/server/service/fiscal-quarter/index.ts +0 -7
  168. package/server/service/fiscal-year/fiscal-year-mutation.ts +0 -145
  169. package/server/service/fiscal-year/fiscal-year-query.ts +0 -53
  170. package/server/service/fiscal-year/fiscal-year-type.ts +0 -54
  171. package/server/service/fiscal-year/fiscal-year.ts +0 -76
  172. package/server/service/fiscal-year/index.ts +0 -7
  173. package/server/service/income-statement/event-subscriber.ts +0 -17
  174. package/server/service/income-statement/income-statement-history.ts +0 -133
  175. package/server/service/income-statement/income-statement-line-item.ts +0 -84
  176. package/server/service/income-statement/income-statement-mutation.ts +0 -147
  177. package/server/service/income-statement/income-statement-query.ts +0 -50
  178. package/server/service/income-statement/income-statement-type.ts +0 -51
  179. package/server/service/income-statement/income-statement.ts +0 -120
  180. package/server/service/income-statement/index.ts +0 -10
  181. package/server/service/index.ts +0 -108
  182. package/server/service/payment/event-subscriber.ts +0 -17
  183. package/server/service/payment/index.ts +0 -9
  184. package/server/service/payment/payment-history.ts +0 -132
  185. package/server/service/payment/payment-mutation.ts +0 -139
  186. package/server/service/payment/payment-query.ts +0 -50
  187. package/server/service/payment/payment-type.ts +0 -64
  188. package/server/service/payment/payment.ts +0 -123
  189. package/server/service/transaction/event-subscriber.ts +0 -17
  190. package/server/service/transaction/index.ts +0 -9
  191. package/server/service/transaction/transaction-history.ts +0 -161
  192. package/server/service/transaction/transaction-mutation.ts +0 -146
  193. package/server/service/transaction/transaction-query.ts +0 -50
  194. package/server/service/transaction/transaction-type.ts +0 -48
  195. package/server/service/transaction/transaction.ts +0 -230
  196. package/server/tsconfig.json +0 -10
@@ -1,9 +0,0 @@
1
- import { AccountingCategory } from './accounting-category'
2
- import { AccountingCategoryQuery } from './accounting-category-query'
3
- import { AccountingCategoryMutation } from './accounting-category-mutation'
4
- import { AccountingCategoryHistory } from './accounting-category-history'
5
- import { AccountingCategoryHistoryEntitySubscriber } from './event-subscriber'
6
-
7
- export const entities = [AccountingCategory, AccountingCategoryHistory]
8
- export const resolvers = [AccountingCategoryQuery, AccountingCategoryMutation]
9
- export const subscribers = [AccountingCategoryHistoryEntitySubscriber]
@@ -1,123 +0,0 @@
1
- import { Field, ID, ObjectType } from 'type-graphql'
2
- import { Column, Entity, Index, ManyToOne, PrimaryGeneratedColumn, RelationId } from 'typeorm'
3
-
4
- import {
5
- HistoryActionColumn,
6
- HistoryActionType,
7
- HistoryEntityInterface,
8
- HistoryOriginalIdColumn
9
- } from '@operato/typeorm-history'
10
- import { Role, User } from '@things-factory/auth-base'
11
- import { config } from '@things-factory/env'
12
- import { Domain } from '@things-factory/shell'
13
-
14
- import { Transaction } from '../transaction/transaction'
15
- import { AccountingDocument } from './accounting-document'
16
-
17
- const ORMCONFIG = config.get('ormconfig', {})
18
- const DATABASE_TYPE = ORMCONFIG.type
19
-
20
- @Entity()
21
- @Index(
22
- 'ix_accounting-document_history_0',
23
- (accountingDocumentHistory: AccountingDocumentHistory) => [
24
- accountingDocumentHistory.originalId,
25
- accountingDocumentHistory.version
26
- ],
27
- { unique: true }
28
- )
29
- @Index(
30
- 'ix_accounting-document_history_1',
31
- (accountingDocumentHistory: AccountingDocumentHistory) => [
32
- accountingDocumentHistory.domain,
33
- accountingDocumentHistory.originalId,
34
- accountingDocumentHistory.version
35
- ],
36
- { unique: true }
37
- )
38
- @ObjectType({ description: 'History Entity of AccountingDocument' })
39
- export class AccountingDocumentHistory implements HistoryEntityInterface<AccountingDocument> {
40
- @PrimaryGeneratedColumn('uuid')
41
- @Field(type => ID)
42
- readonly id: string
43
-
44
- @Column({ nullable: true, default: 1 })
45
- @Field({ nullable: true })
46
- version?: number = 1
47
-
48
- @ManyToOne(type => Domain)
49
- @Field({ nullable: true })
50
- domain?: Domain
51
-
52
- @RelationId((accountingDocument: AccountingDocument) => accountingDocument.domain)
53
- domainId?: string
54
-
55
- @ManyToOne(type => Transaction, transaction => transaction.documents)
56
- @Field(type => Transaction)
57
- transaction: Transaction
58
-
59
- @RelationId((accountingDocument: AccountingDocument) => accountingDocument.transaction)
60
- transactionId: string
61
-
62
- @Column()
63
- @Field({ nullable: false })
64
- documentType: string // 문서의 유형 (예: 계약서, 인보이스 등)
65
-
66
- @Column()
67
- @Field({ nullable: false })
68
- documentUrl: string // 문서의 URL 또는 파일 경로
69
-
70
- @Column({ nullable: true })
71
- @Field({ nullable: true })
72
- description?: string // 문서에 대한 설명
73
-
74
- @Column({ nullable: true })
75
- @Field({ nullable: true })
76
- createdAt?: Date
77
-
78
- @Column({ nullable: true })
79
- @Field({ nullable: true })
80
- updatedAt?: Date
81
-
82
- @Column({ nullable: true })
83
- @Field({ nullable: true })
84
- deletedAt?: Date
85
-
86
- @ManyToOne(type => User, { nullable: true })
87
- @Field(type => User, { nullable: true })
88
- creator?: User
89
-
90
- @RelationId((accountingDocument: AccountingDocument) => accountingDocument.creator)
91
- creatorId?: string
92
-
93
- @ManyToOne(type => User, { nullable: true })
94
- @Field(type => User, { nullable: true })
95
- updater?: User
96
-
97
- @RelationId((accountingDocument: AccountingDocument) => accountingDocument.updater)
98
- updaterId?: string
99
-
100
- @Field(type => String, { nullable: true })
101
- thumbnail?: string
102
-
103
- @HistoryOriginalIdColumn()
104
- public originalId!: string
105
-
106
- @HistoryActionColumn({
107
- nullable: false,
108
- type:
109
- DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'
110
- ? 'enum'
111
- : DATABASE_TYPE == 'oracle'
112
- ? 'varchar2'
113
- : DATABASE_TYPE == 'mssql'
114
- ? 'nvarchar'
115
- : 'varchar',
116
- enum:
117
- DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'
118
- ? HistoryActionType
119
- : undefined,
120
- length: DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb' ? undefined : 10
121
- })
122
- public action!: HistoryActionType
123
- }
@@ -1,137 +0,0 @@
1
- import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'
2
- import { In } from 'typeorm'
3
- import { getRepository } from '@things-factory/shell'
4
-
5
- import { AccountingDocument } from './accounting-document'
6
- import { NewAccountingDocument, AccountingDocumentPatch } from './accounting-document-type'
7
-
8
- @Resolver(AccountingDocument)
9
- export class AccountingDocumentMutation {
10
- @Directive('@transaction')
11
- @Mutation(returns => AccountingDocument, { description: 'To create new AccountingDocument' })
12
- async createAccountingDocument(@Arg('accountingDocument') accountingDocument: NewAccountingDocument, @Ctx() context: ResolverContext): Promise<AccountingDocument> {
13
- const { domain, user, tx } = context.state
14
-
15
- const result = await getRepository(AccountingDocument, tx).save({
16
- ...accountingDocument,
17
- domain,
18
- creator: user,
19
- updater: user
20
- })
21
-
22
- return result
23
- }
24
-
25
- @Directive('@transaction')
26
- @Mutation(returns => AccountingDocument, { description: 'To modify AccountingDocument information' })
27
- async updateAccountingDocument(
28
- @Arg('id') id: string,
29
- @Arg('patch') patch: AccountingDocumentPatch,
30
- @Ctx() context: ResolverContext
31
- ): Promise<AccountingDocument> {
32
- const { domain, user, tx } = context.state
33
-
34
- const repository = getRepository(AccountingDocument, tx)
35
- const accountingDocument = await repository.findOne({
36
- where: { domain: { id: domain.id }, id }
37
- })
38
-
39
- const result = await repository.save({
40
- ...accountingDocument,
41
- ...patch,
42
- updater: user
43
- })
44
-
45
- return result
46
- }
47
-
48
- @Directive('@transaction')
49
- @Mutation(returns => [AccountingDocument], { description: "To modify multiple AccountingDocuments' information" })
50
- async updateMultipleAccountingDocument(
51
- @Arg('patches', type => [AccountingDocumentPatch]) patches: AccountingDocumentPatch[],
52
- @Ctx() context: ResolverContext
53
- ): Promise<AccountingDocument[]> {
54
- const { domain, user, tx } = context.state
55
-
56
- let results = []
57
- const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')
58
- const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')
59
- const accountingDocumentRepo = getRepository(AccountingDocument, tx)
60
-
61
- if (_createRecords.length > 0) {
62
- for (let i = 0; i < _createRecords.length; i++) {
63
- const newRecord = _createRecords[i]
64
-
65
- const result = await accountingDocumentRepo.save({
66
- ...newRecord,
67
- domain,
68
- creator: user,
69
- updater: user
70
- })
71
-
72
- results.push({ ...result, cuFlag: '+' })
73
- }
74
- }
75
-
76
- if (_updateRecords.length > 0) {
77
- for (let i = 0; i < _updateRecords.length; i++) {
78
- const updateRecord = _updateRecords[i]
79
- const accountingDocument = await accountingDocumentRepo.findOneBy({ id: updateRecord.id })
80
-
81
- const result = await accountingDocumentRepo.save({
82
- ...accountingDocument,
83
- ...updateRecord,
84
- updater: user
85
- })
86
-
87
- results.push({ ...result, cuFlag: 'M' })
88
- }
89
- }
90
-
91
- return results
92
- }
93
-
94
- @Directive('@transaction')
95
- @Mutation(returns => Boolean, { description: 'To delete AccountingDocument' })
96
- async deleteAccountingDocument(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {
97
- const { domain, tx } = context.state
98
-
99
- await getRepository(AccountingDocument, tx).delete({ domain: { id: domain.id }, id })
100
-
101
- return true
102
- }
103
-
104
- @Directive('@transaction')
105
- @Mutation(returns => Boolean, { description: 'To delete multiple AccountingDocuments' })
106
- async deleteAccountingDocuments(
107
- @Arg('ids', type => [String]) ids: string[],
108
- @Ctx() context: ResolverContext
109
- ): Promise<boolean> {
110
- const { domain, tx } = context.state
111
-
112
- await getRepository(AccountingDocument, tx).delete({
113
- domain: { id: domain.id },
114
- id: In(ids)
115
- })
116
-
117
-
118
- return true
119
- }
120
-
121
- @Directive('@transaction')
122
- @Mutation(returns => Boolean, { description: 'To import multiple AccountingDocuments' })
123
- async importAccountingDocuments(
124
- @Arg('accountingDocuments', type => [AccountingDocumentPatch]) accountingDocuments: AccountingDocumentPatch[],
125
- @Ctx() context: ResolverContext
126
- ): Promise<boolean> {
127
- const { domain, tx } = context.state
128
-
129
- await Promise.all(
130
- accountingDocuments.map(async (accountingDocument: AccountingDocumentPatch) => {
131
- const createdAccountingDocument: AccountingDocument = await getRepository(AccountingDocument, tx).save({ domain, ...accountingDocument })
132
- })
133
- )
134
-
135
- return true
136
- }
137
- }
@@ -1,48 +0,0 @@
1
- import { Resolver, Query, FieldResolver, Root, Args, Arg, Ctx, Directive } from 'type-graphql'
2
- import { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'
3
- import { User } from '@things-factory/auth-base'
4
- import { AccountingDocument } from './accounting-document'
5
- import { AccountingDocumentList } from './accounting-document-type'
6
-
7
- @Resolver(AccountingDocument)
8
- export class AccountingDocumentQuery {
9
- @Query(returns => AccountingDocument!, { nullable: true, description: 'To fetch a AccountingDocument' })
10
- async accountingDocument(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<AccountingDocument> {
11
- const { domain } = context.state
12
-
13
- return await getRepository(AccountingDocument).findOne({
14
- where: { domain: { id: domain.id }, id }
15
- })
16
- }
17
-
18
- @Query(returns => AccountingDocumentList, { description: 'To fetch multiple AccountingDocuments' })
19
- async accountingDocuments(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<AccountingDocumentList> {
20
- const { domain } = context.state
21
-
22
- const queryBuilder = getQueryBuilderFromListParams({
23
- domain,
24
- params,
25
- repository: await getRepository(AccountingDocument),
26
- searchables: ['name', 'description']
27
- })
28
-
29
- const [items, total] = await queryBuilder.getManyAndCount()
30
-
31
- return { items, total }
32
- }
33
-
34
- @FieldResolver(type => Domain)
35
- async domain(@Root() accountingDocument: AccountingDocument): Promise<Domain> {
36
- return accountingDocument.domainId && (await getRepository(Domain).findOneBy({ id: accountingDocument.domainId }))
37
- }
38
-
39
- @FieldResolver(type => User)
40
- async updater(@Root() accountingDocument: AccountingDocument): Promise<User> {
41
- return accountingDocument.updaterId && (await getRepository(User).findOneBy({ id: accountingDocument.updaterId }))
42
- }
43
-
44
- @FieldResolver(type => User)
45
- async creator(@Root() accountingDocument: AccountingDocument): Promise<User> {
46
- return accountingDocument.creatorId && (await getRepository(User).findOneBy({ id: accountingDocument.creatorId }))
47
- }
48
- }
@@ -1,52 +0,0 @@
1
- import type { FileUpload } from 'graphql-upload/GraphQLUpload.js'
2
- import GraphQLUpload from 'graphql-upload/GraphQLUpload.js'
3
- import { ObjectType, Field, InputType, Int, ID, registerEnumType } from 'type-graphql'
4
-
5
- import { ObjectRef, ScalarObject } from '@things-factory/shell'
6
-
7
- import { AccountingDocument } from './accounting-document'
8
-
9
- @InputType()
10
- export class NewAccountingDocument {
11
- @Field(type => ObjectRef)
12
- transaction: ObjectRef
13
-
14
- @Field({ nullable: false })
15
- documentType: string // 문서의 유형 (예: 계약서, 인보이스 등)
16
-
17
- @Field({ nullable: false })
18
- documentUrl: string // 문서의 URL 또는 파일 경로
19
-
20
- @Field({ nullable: true })
21
- description?: string // 문서에 대한 설명
22
- }
23
-
24
- @InputType()
25
- export class AccountingDocumentPatch {
26
- @Field(type => ID, { nullable: true })
27
- id?: string
28
-
29
- @Field(type => ObjectRef)
30
- transaction: ObjectRef
31
-
32
- @Field({ nullable: false })
33
- documentType: string // 문서의 유형 (예: 계약서, 인보이스 등)
34
-
35
- @Field({ nullable: false })
36
- documentUrl: string // 문서의 URL 또는 파일 경로
37
-
38
- @Field({ nullable: true })
39
- description?: string // 문서에 대한 설명
40
-
41
- @Field({ nullable: true })
42
- cuFlag?: string
43
- }
44
-
45
- @ObjectType()
46
- export class AccountingDocumentList {
47
- @Field(type => [AccountingDocument])
48
- items: AccountingDocument[]
49
-
50
- @Field(type => Int)
51
- total: number
52
- }
@@ -1,93 +0,0 @@
1
- import {
2
- CreateDateColumn,
3
- UpdateDateColumn,
4
- DeleteDateColumn,
5
- Entity,
6
- Index,
7
- Column,
8
- ManyToOne,
9
- PrimaryGeneratedColumn,
10
- RelationId,
11
- VersionColumn
12
- } from 'typeorm'
13
- import { ObjectType, Field, ID } from 'type-graphql'
14
-
15
- import { Domain } from '@things-factory/shell'
16
- import { User } from '@things-factory/auth-base'
17
- import { Transaction } from '../transaction/transaction'
18
-
19
- @ObjectType({ description: 'Entity for AccountingDocument' })
20
- @Entity()
21
- @Index(
22
- 'ix_accounting_document_0',
23
- (accountingDocument: AccountingDocument) => [
24
- accountingDocument.domain,
25
- accountingDocument.transaction,
26
- accountingDocument.createdAt
27
- ],
28
- {
29
- unique: false,
30
- where: '"deleted_at" IS NULL'
31
- }
32
- )
33
- export class AccountingDocument {
34
- @PrimaryGeneratedColumn('uuid')
35
- @Field(type => ID)
36
- readonly id: string
37
-
38
- @VersionColumn()
39
- @Field({ nullable: true })
40
- version?: number = 1
41
-
42
- @ManyToOne(type => Domain)
43
- @Field({ nullable: true })
44
- domain?: Domain
45
-
46
- @RelationId((accountingDocument: AccountingDocument) => accountingDocument.domain)
47
- domainId?: string
48
-
49
- @ManyToOne(type => Transaction, transaction => transaction.documents)
50
- @Field(type => Transaction)
51
- transaction: Transaction
52
-
53
- @RelationId((accountingDocument: AccountingDocument) => accountingDocument.transaction)
54
- transactionId: string
55
-
56
- @Column()
57
- @Field({ nullable: false })
58
- documentType: string // 문서의 유형 (예: 계약서, 인보이스 등)
59
-
60
- @Column()
61
- @Field({ nullable: false })
62
- documentUrl: string // 문서의 URL 또는 파일 경로
63
-
64
- @Column({ nullable: true })
65
- @Field({ nullable: true })
66
- description?: string // 문서에 대한 설명
67
-
68
- @CreateDateColumn()
69
- @Field({ nullable: true })
70
- createdAt?: Date
71
-
72
- @UpdateDateColumn()
73
- @Field({ nullable: true })
74
- updatedAt?: Date
75
-
76
- @DeleteDateColumn()
77
- @Field({ nullable: true })
78
- deletedAt?: Date
79
-
80
- @ManyToOne(type => User, { nullable: true })
81
- @Field(type => User, { nullable: true })
82
- creator?: User
83
-
84
- @RelationId((accountingDocument: AccountingDocument) => accountingDocument.creator)
85
- creatorId?: string
86
-
87
- @ManyToOne(type => User, { nullable: true })
88
- @Field(type => User, { nullable: true })
89
- updater?: User
90
-
91
- @RelationId((accountingDocument: AccountingDocument) => accountingDocument.updater)
92
- updaterId?: string
93
- }
@@ -1,17 +0,0 @@
1
- import { EventSubscriber } from 'typeorm'
2
-
3
- import { HistoryEntitySubscriber } from '@operato/typeorm-history'
4
-
5
- import { AccountingDocument } from './accounting-document'
6
- import { AccountingDocumentHistory } from './accounting-document-history'
7
-
8
- @EventSubscriber()
9
- export class AccountingDocumentHistoryEntitySubscriber extends HistoryEntitySubscriber<AccountingDocument, AccountingDocumentHistory> {
10
- public get entity() {
11
- return AccountingDocument
12
- }
13
-
14
- public get historyEntity() {
15
- return AccountingDocumentHistory
16
- }
17
- }
@@ -1,9 +0,0 @@
1
- import { AccountingDocument } from './accounting-document'
2
- import { AccountingDocumentHistory } from './accounting-document-history'
3
- import { AccountingDocumentHistoryEntitySubscriber } from './event-subscriber'
4
- import { AccountingDocumentQuery } from './accounting-document-query'
5
- import { AccountingDocumentMutation } from './accounting-document-mutation'
6
-
7
- export const entities = [AccountingDocument, AccountingDocumentHistory]
8
- export const resolvers = [AccountingDocumentQuery, AccountingDocumentMutation]
9
- export const subscribers = [AccountingDocumentHistoryEntitySubscriber]
@@ -1,12 +0,0 @@
1
- import { registerEnumType } from 'type-graphql'
2
-
3
- export enum FiscalStatus {
4
- OPEN = 'OPEN',
5
- CLOSED = 'CLOSED',
6
- FINALIZED = 'FINALIZED'
7
- }
8
-
9
- registerEnumType(FiscalStatus, {
10
- name: 'FiscalStatus',
11
- description: 'The status of a fiscal period (OPEN, CLOSED, FINALIZED)'
12
- })
@@ -1,17 +0,0 @@
1
- import { EventSubscriber } from 'typeorm'
2
-
3
- import { HistoryEntitySubscriber } from '@operato/typeorm-history'
4
-
5
- import { FinancialStatement } from './financial-statement'
6
- import { FinancialStatementHistory } from './financial-statement-history'
7
-
8
- @EventSubscriber()
9
- export class FinancialStatementHistoryEntitySubscriber extends HistoryEntitySubscriber<FinancialStatement, FinancialStatementHistory> {
10
- public get entity() {
11
- return FinancialStatement
12
- }
13
-
14
- public get historyEntity() {
15
- return FinancialStatementHistory
16
- }
17
- }
@@ -1,129 +0,0 @@
1
- import { Field, ID, ObjectType } from 'type-graphql'
2
- import { Column, Entity, Index, ManyToOne, OneToMany, PrimaryGeneratedColumn, RelationId } from 'typeorm'
3
-
4
- import {
5
- HistoryActionColumn,
6
- HistoryActionType,
7
- HistoryEntityInterface,
8
- HistoryOriginalIdColumn
9
- } from '@operato/typeorm-history'
10
- import { Role, User } from '@things-factory/auth-base'
11
- import { config } from '@things-factory/env'
12
- import { Domain } from '@things-factory/shell'
13
-
14
- import { FinancialStatement } from './financial-statement'
15
- import { FinancialStatementLineItem } from './financial-statement-line-item'
16
-
17
- const ORMCONFIG = config.get('ormconfig', {})
18
- const DATABASE_TYPE = ORMCONFIG.type
19
-
20
- @Entity()
21
- @Index(
22
- 'ix_financial-statement_history_0',
23
- (financialStatementHistory: FinancialStatementHistory) => [
24
- financialStatementHistory.originalId,
25
- financialStatementHistory.version
26
- ],
27
- { unique: true }
28
- )
29
- @Index(
30
- 'ix_financial-statement_history_1',
31
- (financialStatementHistory: FinancialStatementHistory) => [
32
- financialStatementHistory.domain,
33
- financialStatementHistory.originalId,
34
- financialStatementHistory.version
35
- ],
36
- { unique: true }
37
- )
38
- @ObjectType({ description: 'History Entity of FinancialStatement' })
39
- export class FinancialStatementHistory implements HistoryEntityInterface<FinancialStatement> {
40
- @PrimaryGeneratedColumn('uuid')
41
- @Field(type => ID)
42
- readonly id: string
43
-
44
- @Column({ nullable: true, default: 1 })
45
- @Field({ nullable: true })
46
- version?: number = 1
47
-
48
- @ManyToOne(type => Domain)
49
- @Field({ nullable: true })
50
- domain?: Domain
51
-
52
- @RelationId((financialStatementHistory: FinancialStatementHistory) => financialStatementHistory.domain)
53
- domainId?: string
54
-
55
- @Column({ nullable: true })
56
- @Field({ nullable: true, description: 'Fiscal year of the financial statement' })
57
- year?: number // 회계 연도
58
-
59
- @Column({ nullable: true })
60
- @Field({ nullable: true, description: 'Fiscal quarter of the financial statement' })
61
- quarter?: number // 회계 분기
62
-
63
- @Column({ nullable: true })
64
- @Field({ nullable: true, description: 'Fiscal month of the financial statement' })
65
- month?: number // 회계 월
66
-
67
- @Column({ nullable: true })
68
- @Field({ nullable: true, description: 'Total assets recorded in the financial statement' })
69
- asset?: number // 재무제표에 기록된 총자산
70
-
71
- @Column({ nullable: true })
72
- @Field({ nullable: true, description: 'Total liabilities recorded in the financial statement' })
73
- liability?: number // 재무제표에 기록된 총부채
74
-
75
- @Column({ nullable: true })
76
- @Field({ nullable: true, description: 'Total equity recorded in the financial statement' })
77
- equity?: number // 재무제표에 기록된 총자본
78
-
79
- @OneToMany(type => FinancialStatementLineItem, lineItem => lineItem.statement)
80
- @Field(type => [FinancialStatementLineItem], { nullable: true })
81
- lineItems?: FinancialStatementLineItem[] // 계정별 브레이크다운
82
-
83
- @Column({ nullable: true })
84
- @Field({ nullable: true })
85
- createdAt?: Date
86
-
87
- @Column({ nullable: true })
88
- @Field({ nullable: true })
89
- updatedAt?: Date
90
-
91
- @Column({ nullable: true })
92
- @Field({ nullable: true })
93
- deletedAt?: Date
94
-
95
- @ManyToOne(type => User, { nullable: true })
96
- @Field({ nullable: true })
97
- creator?: User
98
-
99
- @RelationId((financialStatementHistory: FinancialStatementHistory) => financialStatementHistory.creator)
100
- creatorId?: string
101
-
102
- @ManyToOne(type => User, { nullable: true })
103
- @Field({ nullable: true })
104
- updater?: User
105
-
106
- @RelationId((financialStatementHistory: FinancialStatementHistory) => financialStatementHistory.updater)
107
- updaterId?: string
108
-
109
- @HistoryOriginalIdColumn()
110
- public originalId!: string
111
-
112
- @HistoryActionColumn({
113
- nullable: false,
114
- type:
115
- DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'
116
- ? 'enum'
117
- : DATABASE_TYPE == 'oracle'
118
- ? 'varchar2'
119
- : DATABASE_TYPE == 'mssql'
120
- ? 'nvarchar'
121
- : 'varchar',
122
- enum:
123
- DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'
124
- ? HistoryActionType
125
- : undefined,
126
- length: DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb' ? undefined : 10
127
- })
128
- public action!: HistoryActionType
129
- }