@things-factory/accounting 8.0.0 → 9.0.0-beta.3

Sign up to get free protection for your applications and to get access to all the features.
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,338 +0,0 @@
1
- import '@operato/data-grist'
2
-
3
- import { CommonButtonStyles, CommonGristStyles, ScrollbarStyles } from '@operato/styles'
4
- import { PageView, store } from '@operato/shell'
5
- import { css, html } from 'lit'
6
- import { customElement, property, query } from 'lit/decorators.js'
7
- import { ScopedElementsMixin } from '@open-wc/scoped-elements'
8
- import { ColumnConfig, DataGrist, FetchOption, SortersControl } from '@operato/data-grist'
9
- import { client } from '@operato/graphql'
10
- import { i18next, localize } from '@operato/i18n'
11
- import { notify, openPopup } from '@operato/layout'
12
- import { OxPopup } from '@operato/popup'
13
- import { isMobileDevice } from '@operato/utils'
14
-
15
- import { connect } from 'pwa-helpers/connect-mixin'
16
- import gql from 'graphql-tag'
17
-
18
- import { IncomeStatementImporter } from './income-statement-importer'
19
-
20
- @customElement('income-statement-list-page')
21
- export class IncomeStatementListPage extends connect(store)(localize(i18next)(ScopedElementsMixin(PageView))) {
22
- static styles = [
23
- ScrollbarStyles,
24
- CommonGristStyles,
25
- css`
26
- :host {
27
- display: flex;
28
-
29
- width: 100%;
30
-
31
- --grid-record-emphasized-background-color: #8b0000;
32
- --grid-record-emphasized-color: #ff6b6b;
33
- }
34
-
35
- ox-grist {
36
- overflow-y: auto;
37
- flex: 1;
38
- }
39
- `
40
- ]
41
-
42
- static get scopedElements() {
43
- return {
44
- 'income-statement-importer': IncomeStatementImporter
45
- }
46
- }
47
-
48
- @property({ type: Object }) gristConfig: any
49
- @property({ type: String }) mode: 'CARD' | 'GRID' | 'LIST' = isMobileDevice() ? 'CARD' : 'GRID'
50
-
51
- @query('ox-grist') private grist!: DataGrist
52
- @query('#sorter-control') private sortersControl!: OxPopup
53
-
54
- get context() {
55
- return {
56
- title: i18next.t('title.income-statement list'),
57
- search: {
58
- handler: (search: string) => {
59
- this.grist.searchText = search
60
- },
61
- value: this.grist?.searchText || '',
62
- autofocus: true
63
- },
64
- filter: {
65
- handler: () => {
66
- this.grist.toggleHeadroom()
67
- }
68
- },
69
- help: 'accounting/income-statement',
70
- actions: [
71
- {
72
- title: i18next.t('button.save'),
73
- action: this._updateIncomeStatement.bind(this),
74
- ...CommonButtonStyles.save
75
- },
76
- {
77
- title: i18next.t('button.delete'),
78
- action: this._deleteIncomeStatement.bind(this),
79
- ...CommonButtonStyles.delete
80
- }
81
- ],
82
- exportable: {
83
- name: i18next.t('title.income-statement list'),
84
- data: this.exportHandler.bind(this)
85
- },
86
- importable: {
87
- handler: this.importHandler.bind(this)
88
- }
89
- }
90
- }
91
-
92
- render() {
93
- const mode = this.mode || (isMobileDevice() ? 'CARD' : 'GRID')
94
-
95
- return html`
96
- <ox-grist .mode=${mode} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)}>
97
- <div slot="headroom">
98
- <div id="filters">
99
- <ox-filters-form autofocus></ox-filters-form>
100
- </div>
101
-
102
- <div id="sorters">
103
- Sort
104
- <mwc-icon
105
- @click=${e => {
106
- const target = e.currentTarget
107
- this.sortersControl.open({
108
- right: 0,
109
- top: target.offsetTop + target.offsetHeight
110
- })
111
- }}
112
- >expand_more</mwc-icon
113
- >
114
- <ox-popup id="sorter-control">
115
- <ox-sorters-control> </ox-sorters-control>
116
- </ox-popup>
117
- </div>
118
-
119
- <div id="modes">
120
- <mwc-icon @click=${() => (this.mode = 'GRID')} ?active=${mode == 'GRID'}>grid_on</mwc-icon>
121
- <mwc-icon @click=${() => (this.mode = 'LIST')} ?active=${mode == 'LIST'}>format_list_bulleted</mwc-icon>
122
- <mwc-icon @click=${() => (this.mode = 'CARD')} ?active=${mode == 'CARD'}>apps</mwc-icon>
123
- </div>
124
- </div>
125
- </ox-grist>
126
- `
127
- }
128
-
129
- async pageInitialized(lifecycle: any) {
130
- this.gristConfig = {
131
- list: {
132
- fields: ['name', 'description'],
133
- details: ['active', 'updatedAt']
134
- },
135
- columns: [
136
- { type: 'gutter', gutterName: 'sequence' },
137
- { type: 'gutter', gutterName: 'row-selector', multiple: true },
138
- {
139
- type: 'string',
140
- name: 'name',
141
- header: i18next.t('field.name'),
142
- record: {
143
- editable: true
144
- },
145
- filter: 'search',
146
- sortable: true,
147
- width: 150
148
- },
149
- {
150
- type: 'string',
151
- name: 'description',
152
- header: i18next.t('field.description'),
153
- record: {
154
- editable: true
155
- },
156
- filter: 'search',
157
- width: 200
158
- },
159
- {
160
- type: 'checkbox',
161
- name: 'active',
162
- label: true,
163
- header: i18next.t('field.active'),
164
- record: {
165
- editable: true
166
- },
167
- filter: true,
168
- sortable: true,
169
- width: 60
170
- },
171
- {
172
- type: 'resource-object',
173
- name: 'updater',
174
- header: i18next.t('field.updater'),
175
- record: {
176
- editable: false
177
- },
178
- sortable: true,
179
- width: 120
180
- },
181
- {
182
- type: 'datetime',
183
- name: 'updatedAt',
184
- header: i18next.t('field.updated_at'),
185
- record: {
186
- editable: false
187
- },
188
- sortable: true,
189
- width: 180
190
- }
191
- ],
192
- rows: {
193
- selectable: {
194
- multiple: true
195
- }
196
- },
197
- sorters: [
198
- {
199
- name: 'name'
200
- }
201
- ]
202
- }
203
- }
204
-
205
- async pageUpdated(changes: any, lifecycle: any) {
206
- if (this.active) {
207
- // do something here when this page just became as active
208
- }
209
- }
210
-
211
- async fetchHandler({ page = 1, limit = 100, sortings = [], filters = [] }: FetchOption) {
212
- const response = await client.query({
213
- query: gql`
214
- query ($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {
215
- responses: incomeStatements(filters: $filters, pagination: $pagination, sortings: $sortings) {
216
- items {
217
- id
218
- name
219
- description
220
- active
221
- updater {
222
- id
223
- name
224
- }
225
- updatedAt
226
- }
227
- total
228
- }
229
- }
230
- `,
231
- variables: {
232
- filters,
233
- pagination: { page, limit },
234
- sortings
235
- }
236
- })
237
-
238
- return {
239
- total: response.data.responses.total || 0,
240
- records: response.data.responses.items || []
241
- }
242
- }
243
-
244
- async _deleteIncomeStatement() {
245
- if (confirm(i18next.t('text.sure_to_x', { x: i18next.t('text.delete') }))) {
246
- const ids = this.grist.selected.map(record => record.id)
247
- if (ids && ids.length > 0) {
248
- const response = await client.mutate({
249
- mutation: gql`
250
- mutation ($ids: [String!]!) {
251
- deleteIncomeStatements(ids: $ids)
252
- }
253
- `,
254
- variables: {
255
- ids
256
- }
257
- })
258
-
259
- if (!response.errors) {
260
- this.grist.fetch()
261
- notify({
262
- message: i18next.t('text.info_x_successfully', { x: i18next.t('text.delete') })
263
- })
264
- }
265
- }
266
- }
267
- }
268
-
269
- async _updateIncomeStatement() {
270
- let patches = this.grist.dirtyRecords
271
- if (patches && patches.length) {
272
- patches = patches.map(patch => {
273
- let patchField: any = patch.id ? { id: patch.id } : {}
274
- const dirtyFields = patch.__dirtyfields__
275
- for (let key in dirtyFields) {
276
- patchField[key] = dirtyFields[key].after
277
- }
278
- patchField.cuFlag = patch.__dirty__
279
-
280
- return patchField
281
- })
282
-
283
- const response = await client.mutate({
284
- mutation: gql`
285
- mutation ($patches: [IncomeStatementPatch!]!) {
286
- updateMultipleIncomeStatement(patches: $patches) {
287
- name
288
- }
289
- }
290
- `,
291
- variables: {
292
- patches
293
- }
294
- })
295
-
296
- if (!response.errors) {
297
- this.grist.fetch()
298
- }
299
- }
300
- }
301
-
302
- async exportHandler() {
303
- const exportTargets = this.grist.selected.length ? this.grist.selected : this.grist.dirtyData.records
304
- const targetFieldSet = new Set(['id', 'name', 'description', 'active'])
305
-
306
- return exportTargets.map(incomeStatement => {
307
- let tempObj = {}
308
- for (const field of targetFieldSet) {
309
- tempObj[field] = incomeStatement[field]
310
- }
311
-
312
- return tempObj
313
- })
314
- }
315
-
316
- async importHandler(records) {
317
- const popup = openPopup(
318
- html`
319
- <income-statement-importer
320
- .incomeStatements=${records}
321
- @imported=${() => {
322
- history.back()
323
- this.grist.fetch()
324
- }}
325
- ></income-statement-importer>
326
- `,
327
- {
328
- backdrop: true,
329
- size: 'large',
330
- title: i18next.t('title.import income-statement')
331
- }
332
- )
333
-
334
- popup.onclosed = () => {
335
- this.grist.fetch()
336
- }
337
- }
338
- }
@@ -1,90 +0,0 @@
1
- import '@material/web/icon/icon.js'
2
- import '@operato/data-grist'
3
-
4
- import gql from 'graphql-tag'
5
- import { css, html, LitElement } from 'lit'
6
- import { property } from 'lit/decorators.js'
7
-
8
- import { client } from '@operato/graphql'
9
- import { i18next } from '@operato/i18n'
10
- import { isMobileDevice } from '@operato/utils'
11
- import { ButtonContainerStyles } from '@operato/styles'
12
-
13
- export class PaymentImporter extends LitElement {
14
- static styles = [
15
- ButtonContainerStyles,
16
- css`
17
- :host {
18
- display: flex;
19
- flex-direction: column;
20
-
21
- background-color: #fff;
22
- }
23
-
24
- ox-grist {
25
- flex: 1;
26
- }
27
- `
28
- ]
29
-
30
- @property({ type: Array }) payments: any[] = []
31
- @property({ type: Object }) columns = {
32
- list: { fields: ['name', 'description'] },
33
- pagination: { infinite: true },
34
- columns: [
35
- {
36
- type: 'string',
37
- name: 'name',
38
- header: i18next.t('field.name'),
39
- width: 150
40
- },
41
- {
42
- type: 'string',
43
- name: 'description',
44
- header: i18next.t('field.description'),
45
- width: 200
46
- },
47
- {
48
- type: 'checkbox',
49
- name: 'active',
50
- header: i18next.t('field.active'),
51
- width: 60
52
- }
53
- ]
54
- }
55
-
56
-
57
- render() {
58
- return html`
59
- <ox-grist
60
- .mode=${isMobileDevice() ? 'LIST' : 'GRID'}
61
- .config=${this.columns}
62
- .data=${
63
- {
64
- records: this.payments
65
- }
66
- }
67
- ></ox-grist>
68
-
69
- <div class="button-container">
70
- <button @click="${this.save.bind(this)}"><md-icon>save</md-icon>${i18next.t('button.save')}</button>
71
- </div>
72
- `
73
- }
74
-
75
- async save() {
76
- const response = await client.mutate({
77
- mutation: gql`
78
- mutation importPayments($payments: [PaymentPatch!]!) {
79
- importPayments(payments: $payments)
80
- }
81
- `,
82
- variables: { payments: this.payments }
83
- })
84
-
85
- if (response.errors?.length) return
86
-
87
- this.dispatchEvent(new CustomEvent('imported'))
88
- }
89
- }
90
-