@things-factory/accounting 8.0.39 → 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,66 +0,0 @@
1
- import { InputType, Field, Int, ID, ObjectType } from 'type-graphql'
2
- import { FiscalStatus } from '../common-type'
3
- import { FiscalMonth } from './fiscal-month'
4
-
5
- @InputType()
6
- export class NewFiscalMonth {
7
- @Field(type => Int)
8
- year: number // 회계연도 (예: 2023)
9
-
10
- @Field(type => Int)
11
- quarter: number // 1, 2, 3, 4 분기
12
-
13
- @Field(type => Int)
14
- month: number // 1 ~ 12월
15
-
16
- @Field(type => String, { description: 'The start date of the fiscal month in YYYY-MM-DD format' })
17
- startDate: string // 월의 시작일
18
-
19
- @Field(type => String, { description: 'The end date of the fiscal month in YYYY-MM-DD format' })
20
- endDate: string // 월의 종료일
21
-
22
- @Field(type => FiscalStatus, { nullable: true })
23
- status?: FiscalStatus // 월의 상태 (OPEN, CLOSED, FINALIZED)
24
-
25
- @Field({ nullable: true })
26
- notes?: string // 월에 대한 설명이나 주석
27
- }
28
-
29
- @InputType()
30
- export class FiscalMonthPatch {
31
- @Field(type => ID, { nullable: true })
32
- id?: string
33
-
34
- @Field(type => Int, { nullable: true })
35
- year?: number // 회계연도 (예: 2023)
36
-
37
- @Field(type => Int, { nullable: true })
38
- quarter?: number // 1, 2, 3, 4 분기
39
-
40
- @Field(type => Int, { nullable: true })
41
- month?: number // 1 ~ 12월
42
-
43
- @Field(type => String, { description: 'The start date of the fiscal month in YYYY-MM-DD format' })
44
- startDate: string // 월의 시작일
45
-
46
- @Field(type => String, { description: 'The end date of the fiscal month in YYYY-MM-DD format' })
47
- endDate: string // 월의 종료일
48
-
49
- @Field(type => FiscalStatus, { nullable: true })
50
- status?: FiscalStatus // 월의 상태 (OPEN, CLOSED, FINALIZED)
51
-
52
- @Field({ nullable: true })
53
- notes?: string // 월에 대한 설명이나 주석
54
-
55
- @Field({ nullable: true })
56
- cuFlag?: string // Create/Update Flag
57
- }
58
-
59
- @ObjectType()
60
- export class FiscalMonthList {
61
- @Field(type => [FiscalMonth])
62
- items: FiscalMonth[]
63
-
64
- @Field(type => Int)
65
- total: number
66
- }
@@ -1,84 +0,0 @@
1
- import {
2
- CreateDateColumn,
3
- DeleteDateColumn,
4
- UpdateDateColumn,
5
- Entity,
6
- Index,
7
- Column,
8
- ManyToOne,
9
- RelationId,
10
- PrimaryGeneratedColumn
11
- } from 'typeorm'
12
- import { ObjectType, Field, Int, ID } from 'type-graphql'
13
- import { Domain } from '@things-factory/shell'
14
- import { User } from '@things-factory/auth-base'
15
- import { FiscalStatus } from '../common-type'
16
-
17
- @ObjectType({ description: 'Entity representing a fiscal month' })
18
- @Entity()
19
- export class FiscalMonth {
20
- @PrimaryGeneratedColumn('uuid')
21
- @Field(type => ID)
22
- readonly id: string
23
-
24
- @ManyToOne(type => Domain)
25
- @Field({ nullable: true })
26
- domain?: Domain
27
-
28
- @RelationId((fiscalMonth: FiscalMonth) => fiscalMonth.domain)
29
- domainId?: string
30
-
31
- @Column()
32
- @Field(type => Int, { description: 'The fiscal year (e.g., 2023)' })
33
- year: number // 회계연도 (예: 2023)
34
-
35
- @Column()
36
- @Field(type => Int, { description: 'The quarter number (1, 2, 3, or 4)' })
37
- quarter: number // 1, 2, 3, 4 분기
38
-
39
- @Column()
40
- @Field(type => Int, { description: 'The month number (1 to 12)' })
41
- month: number // 1 ~ 12월
42
-
43
- @Column()
44
- @Field(type => String, { description: 'The start date of the fiscal month in YYYY-MM-DD format' })
45
- startDate: string // 월의 시작일
46
-
47
- @Column()
48
- @Field(type => String, { description: 'The end date of the fiscal month in YYYY-MM-DD format' })
49
- endDate: string // 월의 종료일
50
-
51
- @Column({ default: FiscalStatus.OPEN })
52
- @Field(type => FiscalStatus, { description: 'The status of the fiscal month (OPEN, CLOSED, FINALIZED)' })
53
- status: FiscalStatus // 월의 상태 (OPEN, CLOSED, FINALIZED)
54
-
55
- @Column({ nullable: true })
56
- @Field({ nullable: true, description: 'Notes or comments about the fiscal month' })
57
- notes?: string // 월에 대한 설명이나 주석
58
-
59
- @CreateDateColumn()
60
- @Field({ nullable: true })
61
- createdAt?: Date
62
-
63
- @UpdateDateColumn()
64
- @Field({ nullable: true })
65
- updatedAt?: Date
66
-
67
- @DeleteDateColumn()
68
- @Field({ nullable: true })
69
- deletedAt?: Date
70
-
71
- @ManyToOne(type => User, { nullable: true })
72
- @Field(type => User, { nullable: true })
73
- creator?: User
74
-
75
- @RelationId((fiscalMonth: FiscalMonth) => fiscalMonth.creator)
76
- creatorId?: string
77
-
78
- @ManyToOne(type => User, { nullable: true })
79
- @Field(type => User, { nullable: true })
80
- updater?: User
81
-
82
- @RelationId((fiscalMonth: FiscalMonth) => fiscalMonth.updater)
83
- updaterId?: string
84
- }
@@ -1,7 +0,0 @@
1
- import { FiscalMonth } from './fiscal-month'
2
- import { FiscalMonthQuery } from './fiscal-month-query'
3
- import { FiscalMonthMutation } from './fiscal-month-mutation'
4
-
5
- export const entities = [FiscalMonth]
6
- export const resolvers = [FiscalMonthQuery, FiscalMonthMutation]
7
- export const subscribers = []
@@ -1,148 +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 { FiscalQuarter } from './fiscal-quarter'
6
- import { NewFiscalQuarter, FiscalQuarterPatch } from './fiscal-quarter-type'
7
-
8
- @Resolver(FiscalQuarter)
9
- export class FiscalQuarterMutation {
10
- @Directive('@transaction')
11
- @Directive('@privilege(category: "accounting", privilege: "mutation")')
12
- @Mutation(returns => FiscalQuarter, { description: 'To create new FiscalQuarter' })
13
- async createFiscalQuarter(
14
- @Arg('fiscalQuarter') fiscalQuarter: NewFiscalQuarter,
15
- @Ctx() context: ResolverContext
16
- ): Promise<FiscalQuarter> {
17
- const { domain, user, tx } = context.state
18
-
19
- const result = await getRepository(FiscalQuarter, tx).save({
20
- ...fiscalQuarter,
21
- domain,
22
- creator: user,
23
- updater: user
24
- })
25
-
26
- return result
27
- }
28
-
29
- @Directive('@transaction')
30
- @Directive('@privilege(category: "accounting", privilege: "mutation")')
31
- @Mutation(returns => FiscalQuarter, { description: 'To modify FiscalQuarter information' })
32
- async updateFiscalQuarter(
33
- @Arg('id') id: string,
34
- @Arg('patch') patch: FiscalQuarterPatch,
35
- @Ctx() context: ResolverContext
36
- ): Promise<FiscalQuarter> {
37
- const { domain, user, tx } = context.state
38
-
39
- const repository = getRepository(FiscalQuarter, tx)
40
- const fiscalQuarter = await repository.findOne({
41
- where: { domain: { id: domain.id }, id }
42
- })
43
-
44
- const result = await repository.save({
45
- ...fiscalQuarter,
46
- ...patch,
47
- updater: user
48
- })
49
-
50
- return result
51
- }
52
-
53
- @Directive('@transaction')
54
- @Directive('@privilege(category: "accounting", privilege: "mutation")')
55
- @Mutation(returns => [FiscalQuarter], { description: "To modify multiple FiscalQuarters' information" })
56
- async updateMultipleFiscalQuarter(
57
- @Arg('patches', type => [FiscalQuarterPatch]) patches: FiscalQuarterPatch[],
58
- @Ctx() context: ResolverContext
59
- ): Promise<FiscalQuarter[]> {
60
- const { domain, user, tx } = context.state
61
-
62
- let results = []
63
- const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')
64
- const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')
65
- const fiscalQuarterRepo = getRepository(FiscalQuarter, tx)
66
-
67
- if (_createRecords.length > 0) {
68
- for (let i = 0; i < _createRecords.length; i++) {
69
- const newRecord = _createRecords[i]
70
-
71
- const result = await fiscalQuarterRepo.save({
72
- ...newRecord,
73
- domain,
74
- creator: user,
75
- updater: user
76
- })
77
-
78
- results.push({ ...result, cuFlag: '+' })
79
- }
80
- }
81
-
82
- if (_updateRecords.length > 0) {
83
- for (let i = 0; i < _updateRecords.length; i++) {
84
- const updateRecord = _updateRecords[i]
85
- const fiscalQuarter = await fiscalQuarterRepo.findOneBy({ id: updateRecord.id })
86
-
87
- const result = await fiscalQuarterRepo.save({
88
- ...fiscalQuarter,
89
- ...updateRecord,
90
- updater: user
91
- })
92
-
93
- results.push({ ...result, cuFlag: 'M' })
94
- }
95
- }
96
-
97
- return results
98
- }
99
-
100
- @Directive('@transaction')
101
- @Directive('@privilege(category: "accounting", privilege: "mutation")')
102
- @Mutation(returns => Boolean, { description: 'To delete FiscalQuarter' })
103
- async deleteFiscalQuarter(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {
104
- const { domain, tx } = context.state
105
-
106
- await getRepository(FiscalQuarter, tx).delete({ domain: { id: domain.id }, id })
107
-
108
- return true
109
- }
110
-
111
- @Directive('@transaction')
112
- @Directive('@privilege(category: "accounting", privilege: "mutation")')
113
- @Mutation(returns => Boolean, { description: 'To delete multiple FiscalQuarters' })
114
- async deleteFiscalQuarters(
115
- @Arg('ids', type => [String]) ids: string[],
116
- @Ctx() context: ResolverContext
117
- ): Promise<boolean> {
118
- const { domain, tx } = context.state
119
-
120
- await getRepository(FiscalQuarter, tx).delete({
121
- domain: { id: domain.id },
122
- id: In(ids)
123
- })
124
-
125
- return true
126
- }
127
-
128
- @Directive('@transaction')
129
- @Directive('@privilege(category: "accounting", privilege: "mutation")')
130
- @Mutation(returns => Boolean, { description: 'To import multiple FiscalQuarters' })
131
- async importFiscalQuarters(
132
- @Arg('fiscalQuarters', type => [FiscalQuarterPatch]) fiscalQuarters: FiscalQuarterPatch[],
133
- @Ctx() context: ResolverContext
134
- ): Promise<boolean> {
135
- const { domain, tx } = context.state
136
-
137
- await Promise.all(
138
- fiscalQuarters.map(async (fiscalQuarter: FiscalQuarterPatch) => {
139
- const createdFiscalQuarter: FiscalQuarter = await getRepository(FiscalQuarter, tx).save({
140
- domain,
141
- ...fiscalQuarter
142
- })
143
- })
144
- )
145
-
146
- return true
147
- }
148
- }
@@ -1,60 +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 { FiscalQuarter } from './fiscal-quarter'
5
- import { FiscalQuarterList } from './fiscal-quarter-type'
6
-
7
- @Resolver(FiscalQuarter)
8
- export class FiscalQuarterQuery {
9
- @Directive('@privilege(category: "accounting", privilege: "query")')
10
- @Query(returns => FiscalQuarter!, {
11
- nullable: true,
12
- description: 'To fetch a FiscalQuarter by year and quarter number'
13
- })
14
- async fiscalQuarter(
15
- @Arg('year') year: number,
16
- @Arg('quarter') quarter: number,
17
- @Ctx() context: ResolverContext
18
- ): Promise<FiscalQuarter | undefined> {
19
- const { domain } = context.state
20
-
21
- return await getRepository(FiscalQuarter).findOne({
22
- where: { domain: { id: domain.id }, year, quarter }
23
- })
24
- }
25
-
26
- @Directive('@privilege(category: "accounting", privilege: "query")')
27
- @Query(returns => FiscalQuarterList, { description: 'To fetch multiple FiscalQuarters' })
28
- async fiscalQuarters(
29
- @Args(type => ListParam) params: ListParam,
30
- @Ctx() context: ResolverContext
31
- ): Promise<FiscalQuarterList> {
32
- const { domain } = context.state
33
-
34
- const queryBuilder = getQueryBuilderFromListParams({
35
- domain,
36
- params,
37
- repository: await getRepository(FiscalQuarter),
38
- searchables: []
39
- })
40
-
41
- const [items, total] = await queryBuilder.getManyAndCount()
42
-
43
- return { items, total }
44
- }
45
-
46
- @FieldResolver(type => Domain)
47
- async domain(@Root() fiscalQuarter: FiscalQuarter): Promise<Domain> {
48
- return fiscalQuarter.domainId && (await getRepository(Domain).findOneBy({ id: fiscalQuarter.domainId }))
49
- }
50
-
51
- @FieldResolver(type => User)
52
- async updater(@Root() fiscalQuarter: FiscalQuarter): Promise<User> {
53
- return fiscalQuarter.updaterId && (await getRepository(User).findOneBy({ id: fiscalQuarter.updaterId }))
54
- }
55
-
56
- @FieldResolver(type => User)
57
- async creator(@Root() fiscalQuarter: FiscalQuarter): Promise<User> {
58
- return fiscalQuarter.creatorId && (await getRepository(User).findOneBy({ id: fiscalQuarter.creatorId }))
59
- }
60
- }
@@ -1,60 +0,0 @@
1
- import { InputType, Field, Int, ID, ObjectType } from 'type-graphql'
2
- import { FiscalStatus } from '../common-type'
3
- import { FiscalQuarter } from './fiscal-quarter'
4
-
5
- @InputType()
6
- export class NewFiscalQuarter {
7
- @Field(type => Int)
8
- year: number // 회계연도 (예: 2023)
9
-
10
- @Field(type => Int)
11
- quarter: number // 1, 2, 3, 4 분기
12
-
13
- @Field(type => String, { description: 'The start date of the fiscal month in YYYY-MM-DD format' })
14
- startDate: string // 월의 시작일
15
-
16
- @Field(type => String, { description: 'The end date of the fiscal month in YYYY-MM-DD format' })
17
- endDate: string // 월의 종료일
18
-
19
- @Field(type => FiscalStatus, { nullable: true })
20
- status?: FiscalStatus // 분기의 상태 (OPEN, CLOSED, FINALIZED)
21
-
22
- @Field({ nullable: true })
23
- notes?: string // 분기에 대한 설명이나 주석
24
- }
25
-
26
- @InputType()
27
- export class FiscalQuarterPatch {
28
- @Field(type => ID, { nullable: true })
29
- id?: string
30
-
31
- @Field(type => Int, { nullable: true })
32
- year?: number // 회계연도 (예: 2023)
33
-
34
- @Field(type => Int, { nullable: true })
35
- quarter?: number // 1, 2, 3, 4 분기
36
-
37
- @Field(type => String, { description: 'The start date of the fiscal month in YYYY-MM-DD format' })
38
- startDate: string // 월의 시작일
39
-
40
- @Field(type => String, { description: 'The end date of the fiscal month in YYYY-MM-DD format' })
41
- endDate: string // 월의 종료일
42
-
43
- @Field(type => FiscalStatus, { nullable: true })
44
- status?: FiscalStatus // 분기의 상태 (OPEN, CLOSED, FINALIZED)
45
-
46
- @Field({ nullable: true })
47
- notes?: string // 분기에 대한 설명이나 주석
48
-
49
- @Field({ nullable: true })
50
- cuFlag?: string // Create/Update Flag
51
- }
52
-
53
- @ObjectType()
54
- export class FiscalQuarterList {
55
- @Field(type => [FiscalQuarter])
56
- items: FiscalQuarter[]
57
-
58
- @Field(type => Int)
59
- total: number
60
- }
@@ -1,80 +0,0 @@
1
- import {
2
- CreateDateColumn,
3
- DeleteDateColumn,
4
- UpdateDateColumn,
5
- Entity,
6
- Index,
7
- Column,
8
- ManyToOne,
9
- RelationId,
10
- PrimaryGeneratedColumn
11
- } from 'typeorm'
12
- import { ObjectType, Field, Int, ID } from 'type-graphql'
13
- import { Domain } from '@things-factory/shell'
14
- import { User } from '@things-factory/auth-base'
15
- import { FiscalStatus } from '../common-type'
16
-
17
- @ObjectType({ description: 'Entity representing a fiscal quarter' })
18
- @Entity()
19
- export class FiscalQuarter {
20
- @PrimaryGeneratedColumn('uuid')
21
- @Field(type => ID)
22
- readonly id: string
23
-
24
- @ManyToOne(type => Domain)
25
- @Field({ nullable: true })
26
- domain?: Domain
27
-
28
- @RelationId((fiscalQuarter: FiscalQuarter) => fiscalQuarter.domain)
29
- domainId?: string
30
-
31
- @Column()
32
- @Field(type => Int, { description: 'The fiscal year (e.g., 2023)' })
33
- year: number // 회계연도 (예: 2023)
34
-
35
- @Column()
36
- @Field(type => Int, { description: 'The quarter number (1, 2, 3, or 4)' })
37
- quarter: number // 1, 2, 3, 4 분기
38
-
39
- @Column()
40
- @Field(type => String, { description: 'The start date of the fiscal quarter in YYYY-MM-DD format' })
41
- startDate: string // 분기 시작일
42
-
43
- @Column()
44
- @Field(type => String, { description: 'The end date of the fiscal quarter in YYYY-MM-DD format' })
45
- endDate: string // 분기 종료일
46
-
47
- @Column({ default: FiscalStatus.OPEN })
48
- @Field(type => FiscalStatus, { description: 'The status of the fiscal quarter (OPEN, CLOSED, FINALIZED)' })
49
- status: FiscalStatus // 분기의 상태 (OPEN, CLOSED, FINALIZED)
50
-
51
- @Column({ nullable: true })
52
- @Field({ nullable: true, description: 'Notes or comments about the fiscal quarter' })
53
- notes?: string // 분기에 대한 설명이나 주석
54
-
55
- @CreateDateColumn()
56
- @Field({ nullable: true })
57
- createdAt?: Date
58
-
59
- @UpdateDateColumn()
60
- @Field({ nullable: true })
61
- updatedAt?: Date
62
-
63
- @DeleteDateColumn()
64
- @Field({ nullable: true })
65
- deletedAt?: Date
66
-
67
- @ManyToOne(type => User, { nullable: true })
68
- @Field(type => User, { nullable: true })
69
- creator?: User
70
-
71
- @RelationId((fiscalQuarter: FiscalQuarter) => fiscalQuarter.creator)
72
- creatorId?: string
73
-
74
- @ManyToOne(type => User, { nullable: true })
75
- @Field(type => User, { nullable: true })
76
- updater?: User
77
-
78
- @RelationId((fiscalQuarter: FiscalQuarter) => fiscalQuarter.updater)
79
- updaterId?: string
80
- }
@@ -1,7 +0,0 @@
1
- import { FiscalQuarter } from './fiscal-quarter'
2
- import { FiscalQuarterQuery } from './fiscal-quarter-query'
3
- import { FiscalQuarterMutation } from './fiscal-quarter-mutation'
4
-
5
- export const entities = [FiscalQuarter]
6
- export const resolvers = [FiscalQuarterQuery, FiscalQuarterMutation]
7
- export const subscribers = []
@@ -1,145 +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 { FiscalYear } from './fiscal-year'
6
- import { NewFiscalYear, FiscalYearPatch } from './fiscal-year-type'
7
-
8
- @Resolver(FiscalYear)
9
- export class FiscalYearMutation {
10
- @Directive('@transaction')
11
- @Directive('@privilege(category: "accounting", privilege: "mutation")')
12
- @Mutation(returns => FiscalYear, { description: 'To create new FiscalYear' })
13
- async createFiscalYear(
14
- @Arg('fiscalYear') fiscalYear: NewFiscalYear,
15
- @Ctx() context: ResolverContext
16
- ): Promise<FiscalYear> {
17
- const { domain, user, tx } = context.state
18
-
19
- const result = await getRepository(FiscalYear, tx).save({
20
- ...fiscalYear,
21
- domain,
22
- creator: user,
23
- updater: user
24
- })
25
-
26
- return result
27
- }
28
-
29
- @Directive('@transaction')
30
- @Directive('@privilege(category: "accounting", privilege: "mutation")')
31
- @Mutation(returns => FiscalYear, { description: 'To modify FiscalYear information' })
32
- async updateFiscalYear(
33
- @Arg('id') id: string,
34
- @Arg('patch') patch: FiscalYearPatch,
35
- @Ctx() context: ResolverContext
36
- ): Promise<FiscalYear> {
37
- const { domain, user, tx } = context.state
38
-
39
- const repository = getRepository(FiscalYear, tx)
40
- const fiscalYear = await repository.findOne({
41
- where: { domain: { id: domain.id }, id }
42
- })
43
-
44
- const result = await repository.save({
45
- ...fiscalYear,
46
- ...patch,
47
- updater: user
48
- })
49
-
50
- return result
51
- }
52
-
53
- @Directive('@transaction')
54
- @Directive('@privilege(category: "accounting", privilege: "mutation")')
55
- @Mutation(returns => [FiscalYear], { description: "To modify multiple FiscalYears' information" })
56
- async updateMultipleFiscalYear(
57
- @Arg('patches', type => [FiscalYearPatch]) patches: FiscalYearPatch[],
58
- @Ctx() context: ResolverContext
59
- ): Promise<FiscalYear[]> {
60
- const { domain, user, tx } = context.state
61
-
62
- let results = []
63
- const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')
64
- const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')
65
- const fiscalYearRepo = getRepository(FiscalYear, tx)
66
-
67
- if (_createRecords.length > 0) {
68
- for (let i = 0; i < _createRecords.length; i++) {
69
- const newRecord = _createRecords[i]
70
-
71
- const result = await fiscalYearRepo.save({
72
- ...newRecord,
73
- domain,
74
- creator: user,
75
- updater: user
76
- })
77
-
78
- results.push({ ...result, cuFlag: '+' })
79
- }
80
- }
81
-
82
- if (_updateRecords.length > 0) {
83
- for (let i = 0; i < _updateRecords.length; i++) {
84
- const updateRecord = _updateRecords[i]
85
- const fiscalYear = await fiscalYearRepo.findOneBy({ id: updateRecord.id })
86
-
87
- const result = await fiscalYearRepo.save({
88
- ...fiscalYear,
89
- ...updateRecord,
90
- updater: user
91
- })
92
-
93
- results.push({ ...result, cuFlag: 'M' })
94
- }
95
- }
96
-
97
- return results
98
- }
99
-
100
- @Directive('@transaction')
101
- @Directive('@privilege(category: "accounting", privilege: "mutation")')
102
- @Mutation(returns => Boolean, { description: 'To delete FiscalYear' })
103
- async deleteFiscalYear(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {
104
- const { domain, tx } = context.state
105
-
106
- await getRepository(FiscalYear, tx).delete({ domain: { id: domain.id }, id })
107
-
108
- return true
109
- }
110
-
111
- @Directive('@transaction')
112
- @Directive('@privilege(category: "accounting", privilege: "mutation")')
113
- @Mutation(returns => Boolean, { description: 'To delete multiple FiscalYears' })
114
- async deleteFiscalYears(
115
- @Arg('ids', type => [String]) ids: string[],
116
- @Ctx() context: ResolverContext
117
- ): Promise<boolean> {
118
- const { domain, tx } = context.state
119
-
120
- await getRepository(FiscalYear, tx).delete({
121
- domain: { id: domain.id },
122
- id: In(ids)
123
- })
124
-
125
- return true
126
- }
127
-
128
- @Directive('@transaction')
129
- @Directive('@privilege(category: "accounting", privilege: "mutation")')
130
- @Mutation(returns => Boolean, { description: 'To import multiple FiscalYears' })
131
- async importFiscalYears(
132
- @Arg('fiscalYears', type => [FiscalYearPatch]) fiscalYears: FiscalYearPatch[],
133
- @Ctx() context: ResolverContext
134
- ): Promise<boolean> {
135
- const { domain, tx } = context.state
136
-
137
- await Promise.all(
138
- fiscalYears.map(async (fiscalYear: FiscalYearPatch) => {
139
- const createdFiscalYear: FiscalYear = await getRepository(FiscalYear, tx).save({ domain, ...fiscalYear })
140
- })
141
- )
142
-
143
- return true
144
- }
145
- }