@things-factory/accounting 10.1.155 → 10.1.157

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 (85) hide show
  1. package/dist-client/tsconfig.tsbuildinfo +1 -1
  2. package/dist-server/activities/activity-expenditure.d.ts +186 -0
  3. package/dist-server/activities/activity-expenditure.js +122 -0
  4. package/dist-server/activities/activity-expenditure.js.map +1 -0
  5. package/dist-server/activities/expenditure-activity-names.d.ts +4 -0
  6. package/dist-server/activities/expenditure-activity-names.js +13 -0
  7. package/dist-server/activities/expenditure-activity-names.js.map +1 -0
  8. package/dist-server/activities/index.d.ts +2 -1
  9. package/dist-server/activities/index.js +19 -12
  10. package/dist-server/activities/index.js.map +1 -1
  11. package/dist-server/index.d.ts +1 -0
  12. package/dist-server/index.js +1 -0
  13. package/dist-server/index.js.map +1 -1
  14. package/dist-server/service/account/account-match.d.ts +5 -3
  15. package/dist-server/service/account/account-match.js +7 -3
  16. package/dist-server/service/account/account-match.js.map +1 -1
  17. package/dist-server/service/bank-statement/bank-import.js +9 -3
  18. package/dist-server/service/bank-statement/bank-import.js.map +1 -1
  19. package/dist-server/service/bank-statement/bank-source.js +2 -1
  20. package/dist-server/service/bank-statement/bank-source.js.map +1 -1
  21. package/dist-server/service/counterparty-account/counterparty-account-query.d.ts +6 -0
  22. package/dist-server/service/counterparty-account/counterparty-account-query.js +48 -0
  23. package/dist-server/service/counterparty-account/counterparty-account-query.js.map +1 -0
  24. package/dist-server/service/counterparty-account/counterparty-account-rules.d.ts +46 -0
  25. package/dist-server/service/counterparty-account/counterparty-account-rules.js +76 -0
  26. package/dist-server/service/counterparty-account/counterparty-account-rules.js.map +1 -0
  27. package/dist-server/service/counterparty-account/counterparty-account-service.d.ts +22 -0
  28. package/dist-server/service/counterparty-account/counterparty-account-service.js +66 -0
  29. package/dist-server/service/counterparty-account/counterparty-account-service.js.map +1 -0
  30. package/dist-server/service/counterparty-account/counterparty-account-type.d.ts +9 -0
  31. package/dist-server/service/counterparty-account/counterparty-account-type.js +40 -0
  32. package/dist-server/service/counterparty-account/counterparty-account-type.js.map +1 -0
  33. package/dist-server/service/counterparty-account/index.d.ts +4 -0
  34. package/dist-server/service/counterparty-account/index.js +8 -0
  35. package/dist-server/service/counterparty-account/index.js.map +1 -0
  36. package/dist-server/service/expenditure-request/expenditure-payment-state.d.ts +52 -0
  37. package/dist-server/service/expenditure-request/expenditure-payment-state.js +100 -0
  38. package/dist-server/service/expenditure-request/expenditure-payment-state.js.map +1 -0
  39. package/dist-server/service/expenditure-request/expenditure-request-item.d.ts +41 -0
  40. package/dist-server/service/expenditure-request/expenditure-request-item.js +149 -0
  41. package/dist-server/service/expenditure-request/expenditure-request-item.js.map +1 -0
  42. package/dist-server/service/expenditure-request/expenditure-request-mutation.d.ts +18 -0
  43. package/dist-server/service/expenditure-request/expenditure-request-mutation.js +140 -0
  44. package/dist-server/service/expenditure-request/expenditure-request-mutation.js.map +1 -0
  45. package/dist-server/service/expenditure-request/expenditure-request-query.d.ts +46 -0
  46. package/dist-server/service/expenditure-request/expenditure-request-query.js +365 -0
  47. package/dist-server/service/expenditure-request/expenditure-request-query.js.map +1 -0
  48. package/dist-server/service/expenditure-request/expenditure-request-rules.d.ts +128 -0
  49. package/dist-server/service/expenditure-request/expenditure-request-rules.js +183 -0
  50. package/dist-server/service/expenditure-request/expenditure-request-rules.js.map +1 -0
  51. package/dist-server/service/expenditure-request/expenditure-request-service.d.ts +92 -0
  52. package/dist-server/service/expenditure-request/expenditure-request-service.js +488 -0
  53. package/dist-server/service/expenditure-request/expenditure-request-service.js.map +1 -0
  54. package/dist-server/service/expenditure-request/expenditure-request-type.d.ts +85 -0
  55. package/dist-server/service/expenditure-request/expenditure-request-type.js +312 -0
  56. package/dist-server/service/expenditure-request/expenditure-request-type.js.map +1 -0
  57. package/dist-server/service/expenditure-request/expenditure-request.d.ts +67 -0
  58. package/dist-server/service/expenditure-request/expenditure-request.js +228 -0
  59. package/dist-server/service/expenditure-request/expenditure-request.js.map +1 -0
  60. package/dist-server/service/expenditure-request/expenditure-target.d.ts +1 -0
  61. package/dist-server/service/expenditure-request/expenditure-target.js +55 -0
  62. package/dist-server/service/expenditure-request/expenditure-target.js.map +1 -0
  63. package/dist-server/service/expenditure-request/index.d.ts +8 -0
  64. package/dist-server/service/expenditure-request/index.js +12 -0
  65. package/dist-server/service/expenditure-request/index.js.map +1 -0
  66. package/dist-server/service/index.d.ts +9 -2
  67. package/dist-server/service/index.js +18 -3
  68. package/dist-server/service/index.js.map +1 -1
  69. package/dist-server/tsconfig.tsbuildinfo +1 -1
  70. package/package.json +10 -9
  71. package/translations/en.json +58 -1
  72. package/translations/es.json +17 -1
  73. package/translations/ja.json +17 -1
  74. package/translations/ko.json +58 -1
  75. package/translations/ms.json +17 -1
  76. package/translations/zh.json +17 -1
  77. package/dist-client/activities/activity-expense-edit.d.ts +0 -14
  78. package/dist-client/activities/activity-expense-edit.js +0 -85
  79. package/dist-client/activities/activity-expense-edit.js.map +0 -1
  80. package/dist-client/activities/activity-expense-view.d.ts +0 -14
  81. package/dist-client/activities/activity-expense-view.js +0 -85
  82. package/dist-client/activities/activity-expense-view.js.map +0 -1
  83. package/dist-server/activities/activity-expense.d.ts +0 -58
  84. package/dist-server/activities/activity-expense.js +0 -150
  85. package/dist-server/activities/activity-expense.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/accounting",
3
- "version": "10.1.155",
3
+ "version": "10.1.157",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "dist-client/index.js",
6
6
  "things-factory": true,
@@ -32,16 +32,17 @@
32
32
  "@material/web": "^2.0.0",
33
33
  "@operato/graphql": "^10.0.0",
34
34
  "@operato/shell": "^10.0.0",
35
- "@things-factory/attachment-base": "^10.1.155",
36
- "@things-factory/auth-base": "^10.1.155",
37
- "@things-factory/biz-base": "^10.1.155",
38
- "@things-factory/invoice": "^10.1.155",
39
- "@things-factory/shell": "^10.1.155",
40
- "@things-factory/tax-invoice": "^10.1.155",
41
- "@things-factory/worklist": "^10.1.155",
35
+ "@things-factory/attachment-base": "^10.1.157",
36
+ "@things-factory/auth-base": "^10.1.157",
37
+ "@things-factory/biz-base": "^10.1.157",
38
+ "@things-factory/invoice": "^10.1.157",
39
+ "@things-factory/organization": "^10.1.157",
40
+ "@things-factory/shell": "^10.1.157",
41
+ "@things-factory/tax-invoice": "^10.1.157",
42
+ "@things-factory/worklist": "^10.1.157",
42
43
  "graphql-upload": "^15.0.2",
43
44
  "moment-timezone": "^0.5.43",
44
45
  "xlsx": "^0.18.5"
45
46
  },
46
- "gitHead": "0211c9c0764a26c10151fdc7d60094fc334905ff"
47
+ "gitHead": "bde810f804966549a7041457ad7ede40fcb78488"
47
48
  }
@@ -61,5 +61,62 @@
61
61
  "error.document-payment-amount-required": "When the currencies differ, record what was paid in the document currency ({currency}).",
62
62
  "error.document-payment-basis-required": "When the currencies differ, note the exchange rate or settlement basis.",
63
63
  "error.document-payment-precision": "An amount has more decimals than its currency.",
64
- "error.transaction-reference-not-found": "The {field} the transaction names was not found. Reload and try again."
64
+ "error.transaction-reference-not-found": "The {field} the transaction names was not found. Reload and try again.",
65
+ "error.expenditure-account-not-of-payee": "The account is not the counterparty's. Choose one of its registered accounts.",
66
+ "error.expenditure-approval-not-installed": "The approval '{form}' is not installed in this domain.",
67
+ "error.expenditure-cannot-delete": "A request that is $t(text.expenditure-status-{status}) cannot be deleted.",
68
+ "error.expenditure-due-date-invalid": "'{value}' is not a date. Use YYYY-MM-DD.",
69
+ "error.expenditure-due-date-missing": "Set the day it is to be paid.",
70
+ "error.expenditure-invoice-cited-twice": "Another request already pays this tax invoice ({issueDate}).",
71
+ "error.expenditure-invoice-not-purchase": "Choose a purchase tax invoice.",
72
+ "error.expenditure-invoice-on-reimbursement": "An expense claim takes receipts, not tax invoices.",
73
+ "error.expenditure-kind-fixed": "A request keeps the kind it was written as.",
74
+ "error.expenditure-kind-missing": "Say whether it pays a counterparty or pays an employee back.",
75
+ "error.expenditure-line-after-month": "A line is dated after {month}.",
76
+ "error.expenditure-line-amount-missing": "Every line needs an amount above zero.",
77
+ "error.expenditure-line-category-missing": "Every line needs a category or an account.",
78
+ "error.expenditure-line-day-invalid": "'{value}' is not a date. Use YYYY-MM-DD.",
79
+ "error.expenditure-line-day-missing": "Every line needs its date.",
80
+ "error.expenditure-line-gone": "The bank line was not found. Reload and choose again.",
81
+ "error.expenditure-line-method-invalid": "'{value}' is not a way to pay.",
82
+ "error.expenditure-line-not-found": "A line was not found. Reload and save again.",
83
+ "error.expenditure-line-over-invoice": "The line asks more than the tax invoice total ({total}).",
84
+ "error.expenditure-locked": "A request that is $t(text.expenditure-status-{status}) cannot be changed. Withdraw a request under approval first.",
85
+ "error.expenditure-month-invalid": "'{value}' is not a month. Use YYYY-MM.",
86
+ "error.expenditure-no-lines": "The request has no lines.",
87
+ "error.expenditure-not-approved": "Only approved requests are paid. Not approved: {title}",
88
+ "error.expenditure-not-found": "The expenditure request was not found. Reload.",
89
+ "error.expenditure-not-submitted": "Only a request under approval can be withdrawn.",
90
+ "error.expenditure-not-yours": "Only the person who wrote it can change this request.",
91
+ "error.expenditure-paid-already": "{title} has nothing left to pay.",
92
+ "error.expenditure-paid-by-withdrawal": "A request is paid by a withdrawal in {currency}.",
93
+ "error.expenditure-paid-date-missing": "Set the day the money went out.",
94
+ "error.expenditure-paid-over": "More is put on {title} than it asks. A line that cites a tax invoice is paid on that invoice.",
95
+ "error.expenditure-payee-account-missing": "Choose the account to pay into.",
96
+ "error.expenditure-payee-missing": "Choose the counterparty to pay.",
97
+ "error.expenditure-reference-not-found": "{field} was not found. Reload.",
98
+ "error.expenditure-reimbursement-pays-requester": "An expense claim pays the employee who wrote it.",
99
+ "error.expenditure-submitted-already": "A request that is $t(text.expenditure-status-{status}) cannot be submitted again.",
100
+ "text.expenditure-status-draft": "draft",
101
+ "text.expenditure-status-submitted": "under approval",
102
+ "text.expenditure-status-approved": "approved",
103
+ "text.expenditure-status-rejected": "rejected",
104
+ "text.expenditure-status-withdrawn": "withdrawn",
105
+ "field.payee": "payee",
106
+ "field.requester": "requester",
107
+ "field.month": "month",
108
+ "field.expenditure-lines": "lines",
109
+ "activity.expenditure-request.label": "expenditure request",
110
+ "activity.expenditure-request.guide.0": "Approval before the company pays a counterparty, into an account registered for that counterparty.",
111
+ "activity.expenditure-request.guide.1": "Approving puts it in the payment queue; finance pays it and reconciles the payment with the bank statement.",
112
+ "activity.expenditure-request.guide.2": "The account approvers see is the account paid; if it changes after approval, finance is told before paying.",
113
+ "activity.expenditure-request.guide.3": "A rejected request goes back to its writer, who can correct it and submit again.",
114
+ "activity.expenditure-request.guide.4": "With no approval line set, a request cannot be submitted.",
115
+ "activity.expense-claim.label": "expense claim",
116
+ "activity.expense-claim.guide.0": "An employee claims what they spent for the company - meals, travel, supplies.",
117
+ "activity.expense-claim.guide.1": "Approving puts it in the payment queue; finance pays the employee back and reconciles the payment with the bank statement.",
118
+ "activity.expense-claim.guide.2": "Corporate card lines are reviewed the same way, with nothing paid back.",
119
+ "activity.expense-claim.guide.3": "A rejected claim goes back to the employee, who can correct it and submit again.",
120
+ "activity.expense-claim.guide.4": "With no approval line set, a claim cannot be submitted.",
121
+ "error.expenditure-line-vat-over-amount": "The VAT is more than the amount."
65
122
  }
@@ -61,5 +61,21 @@
61
61
  "error.document-payment-amount-required": "Cuando las monedas difieren, registre lo pagado en la moneda del documento ({currency}).",
62
62
  "error.document-payment-basis-required": "Cuando las monedas difieren, anote el tipo de cambio o la base de liquidación.",
63
63
  "error.document-payment-precision": "Un importe tiene más decimales que su moneda.",
64
- "error.transaction-reference-not-found": "No se encontró el {field} que indica la transacción. Vuelva a cargar e inténtelo de nuevo."
64
+ "error.transaction-reference-not-found": "No se encontró el {field} que indica la transacción. Vuelva a cargar e inténtelo de nuevo.",
65
+ "activity.expenditure-request.label": "solicitud de gasto",
66
+ "activity.expenditure-request.guide.0": "Aprobación antes de pagar a un tercero, en una cuenta registrada para él.",
67
+ "activity.expenditure-request.guide.1": "Al aprobarla pasa a pagos pendientes; finanzas paga y concilia con el extracto bancario.",
68
+ "activity.expenditure-request.guide.2": "Se paga a la cuenta que vieron los aprobadores; si cambia tras la aprobación, se avisa antes de pagar.",
69
+ "activity.expenditure-request.guide.3": "Una solicitud rechazada vuelve a su autor, que puede corregirla y enviarla de nuevo.",
70
+ "activity.expenditure-request.guide.4": "Sin línea de aprobación no se puede enviar una solicitud.",
71
+ "activity.expense-claim.label": "reembolso de gastos",
72
+ "activity.expense-claim.guide.0": "Un empleado reclama lo que gastó para la empresa: comidas, viajes, material.",
73
+ "activity.expense-claim.guide.1": "Al aprobarlo pasa a pagos pendientes; finanzas reembolsa al empleado y concilia con el extracto.",
74
+ "activity.expense-claim.guide.2": "Las líneas de tarjeta corporativa se revisan igual, sin reembolso.",
75
+ "activity.expense-claim.guide.3": "Un reembolso rechazado vuelve al empleado, que puede corregirlo y enviarlo de nuevo.",
76
+ "activity.expense-claim.guide.4": "Sin línea de aprobación no se puede enviar un reembolso.",
77
+ "field.payee": "beneficiario",
78
+ "field.requester": "solicitante",
79
+ "field.month": "mes",
80
+ "field.expenditure-lines": "líneas"
65
81
  }
@@ -4,5 +4,21 @@
4
4
  "title.fiscal closing status": "財務決算状況",
5
5
  "title.financial statement list": "財務諸表一覧",
6
6
  "title.transaction list": "取引一覧",
7
- "title.income forecast": "収益予測"
7
+ "title.income forecast": "収益予測",
8
+ "activity.expenditure-request.label": "支出決議",
9
+ "activity.expenditure-request.guide.0": "取引先へ支払う前に決裁を受けます。受取口座はその取引先に登録された口座です。",
10
+ "activity.expenditure-request.guide.1": "承認すると支払待ちに入り、財務担当が支払った後に銀行明細と照合します。",
11
+ "activity.expenditure-request.guide.2": "決裁者が見た口座に支払います。承認後に口座が変われば支払前に知らせます。",
12
+ "activity.expenditure-request.guide.3": "差し戻された決議は作成者に戻り、修正して再度上申できます。",
13
+ "activity.expenditure-request.guide.4": "決裁ラインが未設定だと決議を上申できません。",
14
+ "activity.expense-claim.label": "経費精算",
15
+ "activity.expense-claim.guide.0": "社員が業務で使った経費(食費・交通費・消耗品費)を請求します。",
16
+ "activity.expense-claim.guide.1": "承認すると支払待ちに入り、財務担当が社員に支払った後に銀行明細と照合します。",
17
+ "activity.expense-claim.guide.2": "法人カードの利用分も同じく確認し、支払額はありません。",
18
+ "activity.expense-claim.guide.3": "差し戻された請求は請求者に戻り、修正して再度上申できます。",
19
+ "activity.expense-claim.guide.4": "決裁ラインが未設定だと請求を上申できません。",
20
+ "field.payee": "受取先",
21
+ "field.requester": "作成者",
22
+ "field.month": "月",
23
+ "field.expenditure-lines": "明細"
8
24
  }
@@ -61,5 +61,62 @@
61
61
  "error.document-payment-amount-required": "통화가 다르면 문서 통화({currency})로 얼마를 치렀는지 적으세요.",
62
62
  "error.document-payment-basis-required": "통화가 다르면 환율이나 정산 근거를 비고에 적으세요.",
63
63
  "error.document-payment-precision": "금액의 소수 자릿수를 통화에 맞추세요.",
64
- "error.transaction-reference-not-found": "거래가 가리키는 {field} 을(를) 찾을 수 없습니다. 다시 불러오세요."
64
+ "error.transaction-reference-not-found": "거래가 가리키는 {field} 을(를) 찾을 수 없습니다. 다시 불러오세요.",
65
+ "error.expenditure-account-not-of-payee": "고른 계좌는 그 거래처의 계좌가 아닙니다. 거래처에 등록된 계좌에서 고르세요.",
66
+ "error.expenditure-approval-not-installed": "이 도메인에 결재 양식 '{form}'이 설치되어 있지 않습니다.",
67
+ "error.expenditure-cannot-delete": "$t(text.expenditure-status-{status}) 상태인 결의는 지울 수 없습니다.",
68
+ "error.expenditure-due-date-invalid": "'{value}'은(는) 날짜가 아닙니다. YYYY-MM-DD 로 넣으세요.",
69
+ "error.expenditure-due-date-missing": "지급 예정일을 넣으세요.",
70
+ "error.expenditure-invoice-cited-twice": "이 세금계산서({issueDate})는 다른 결의가 이미 지급합니다.",
71
+ "error.expenditure-invoice-not-purchase": "매입 세금계산서를 고르세요.",
72
+ "error.expenditure-invoice-on-reimbursement": "경비 청구에는 세금계산서를 붙이지 않습니다. 영수증을 붙이세요.",
73
+ "error.expenditure-kind-fixed": "결의의 종류는 바꿀 수 없습니다.",
74
+ "error.expenditure-kind-missing": "거래처 지급인지 경비 청구인지 정하세요.",
75
+ "error.expenditure-line-after-month": "{month} 뒤의 날짜인 내역이 있습니다.",
76
+ "error.expenditure-line-amount-missing": "모든 내역에 0보다 큰 금액을 넣으세요.",
77
+ "error.expenditure-line-category-missing": "모든 내역에 항목이나 계정과목을 넣으세요.",
78
+ "error.expenditure-line-day-invalid": "'{value}'은(는) 날짜가 아닙니다. YYYY-MM-DD 로 넣으세요.",
79
+ "error.expenditure-line-day-missing": "모든 내역에 날짜를 넣으세요.",
80
+ "error.expenditure-line-gone": "출금 줄을 찾을 수 없습니다. 다시 불러온 뒤 고르세요.",
81
+ "error.expenditure-line-method-invalid": "'{value}'은(는) 결제 수단이 아닙니다.",
82
+ "error.expenditure-line-not-found": "내역을 찾을 수 없습니다. 다시 불러온 뒤 저장하세요.",
83
+ "error.expenditure-line-over-invoice": "내역 금액이 세금계산서 합계({total})보다 큽니다.",
84
+ "error.expenditure-locked": "$t(text.expenditure-status-{status}) 상태인 결의는 수정할 수 없습니다. 결재 중인 결의는 회수한 뒤 수정하세요.",
85
+ "error.expenditure-month-invalid": "'{value}'은(는) 월이 아닙니다. YYYY-MM 으로 넣으세요.",
86
+ "error.expenditure-no-lines": "결의에 내역이 없습니다.",
87
+ "error.expenditure-not-approved": "승인된 결의만 지급합니다. 승인되지 않은 결의: {title}",
88
+ "error.expenditure-not-found": "지출결의를 찾을 수 없습니다. 다시 불러오세요.",
89
+ "error.expenditure-not-submitted": "결재 중인 결의만 회수할 수 있습니다.",
90
+ "error.expenditure-not-yours": "작성한 사람만 이 결의를 수정할 수 있습니다.",
91
+ "error.expenditure-paid-already": "{title}은(는) 더 지급할 금액이 없습니다.",
92
+ "error.expenditure-paid-by-withdrawal": "결의는 {currency} 출금으로 지급합니다.",
93
+ "error.expenditure-paid-date-missing": "지급일을 넣으세요.",
94
+ "error.expenditure-paid-over": "{title}에 요청한 금액보다 많이 걸립니다. 세금계산서를 인용한 내역은 그 세금계산서에 지급합니다.",
95
+ "error.expenditure-payee-account-missing": "받는 계좌를 고르세요.",
96
+ "error.expenditure-payee-missing": "받는 거래처를 고르세요.",
97
+ "error.expenditure-reference-not-found": "{field}을(를) 찾을 수 없습니다. 다시 불러오세요.",
98
+ "error.expenditure-reimbursement-pays-requester": "경비 청구는 작성한 직원에게 지급합니다.",
99
+ "error.expenditure-submitted-already": "$t(text.expenditure-status-{status}) 상태인 결의는 다시 상신할 수 없습니다.",
100
+ "text.expenditure-status-draft": "작성 중",
101
+ "text.expenditure-status-submitted": "결재 중",
102
+ "text.expenditure-status-approved": "승인",
103
+ "text.expenditure-status-rejected": "반려",
104
+ "text.expenditure-status-withdrawn": "회수",
105
+ "field.payee": "받는 곳",
106
+ "field.requester": "작성자",
107
+ "field.month": "월",
108
+ "field.expenditure-lines": "내역",
109
+ "activity.expenditure-request.label": "지출결의",
110
+ "activity.expenditure-request.guide.0": "거래처에 돈을 지급하기 전에 결재를 받습니다. 받는 계좌는 그 거래처에 등록된 계좌입니다.",
111
+ "activity.expenditure-request.guide.1": "승인된 결의는 지급 대기에 오르며, 지급하면 출금으로 기록되고 은행 명세서와 대사합니다.",
112
+ "activity.expenditure-request.guide.2": "결재자가 본 계좌로 지급합니다. 승인 뒤 계좌가 바뀌면 지급 전에 알립니다.",
113
+ "activity.expenditure-request.guide.3": "반려된 결의는 작성자에게 반송되며, 수정 후 다시 상신할 수 있습니다.",
114
+ "activity.expenditure-request.guide.4": "결재선이 지정되지 않으면 결의를 상신할 수 없습니다.",
115
+ "activity.expense-claim.label": "경비 청구",
116
+ "activity.expense-claim.guide.0": "직원이 업무상 지출한 경비(식대·교통비·소모품비)를 청구합니다.",
117
+ "activity.expense-claim.guide.1": "승인된 청구는 지급 대기에 오르며, 지급하면 출금으로 기록되고 은행 명세서와 대사합니다.",
118
+ "activity.expense-claim.guide.2": "법인카드 사용 내역도 같은 방식으로 검토하며, 지급액은 없습니다.",
119
+ "activity.expense-claim.guide.3": "반려된 청구는 청구자에게 반송되며, 수정 후 다시 상신할 수 있습니다.",
120
+ "activity.expense-claim.guide.4": "결재선이 지정되지 않으면 청구를 상신할 수 없습니다.",
121
+ "error.expenditure-line-vat-over-amount": "부가세가 금액보다 큽니다."
65
122
  }
@@ -4,5 +4,21 @@
4
4
  "title.fiscal closing status": "status penutupan fiskal",
5
5
  "title.financial statement list": "senarai penyata kewangan",
6
6
  "title.transaction list": "senarai transaksi",
7
- "title.income forecast": "ramalan pendapatan"
7
+ "title.income forecast": "ramalan pendapatan",
8
+ "activity.expenditure-request.label": "permohonan perbelanjaan",
9
+ "activity.expenditure-request.guide.0": "Kelulusan sebelum syarikat membayar pihak lawan, ke akaun yang didaftarkan untuknya.",
10
+ "activity.expenditure-request.guide.1": "Kelulusan memasukkannya ke baris gilir bayaran; kewangan membayar dan menyesuaikan dengan penyata bank.",
11
+ "activity.expenditure-request.guide.2": "Akaun yang dilihat pelulus ialah akaun yang dibayar; jika berubah selepas kelulusan, kewangan dimaklumkan sebelum membayar.",
12
+ "activity.expenditure-request.guide.3": "Permohonan yang ditolak kembali kepada penulisnya untuk dibetulkan dan dihantar semula.",
13
+ "activity.expenditure-request.guide.4": "Tanpa barisan kelulusan, permohonan tidak boleh dihantar.",
14
+ "activity.expense-claim.label": "tuntutan perbelanjaan",
15
+ "activity.expense-claim.guide.0": "Pekerja menuntut perbelanjaan untuk syarikat - makan, perjalanan, bekalan.",
16
+ "activity.expense-claim.guide.1": "Kelulusan memasukkannya ke baris gilir bayaran; kewangan membayar balik pekerja dan menyesuaikan dengan penyata bank.",
17
+ "activity.expense-claim.guide.2": "Baris kad korporat disemak dengan cara sama, tanpa bayaran balik.",
18
+ "activity.expense-claim.guide.3": "Tuntutan yang ditolak kembali kepada pekerja untuk dibetulkan dan dihantar semula.",
19
+ "activity.expense-claim.guide.4": "Tanpa barisan kelulusan, tuntutan tidak boleh dihantar.",
20
+ "field.payee": "penerima",
21
+ "field.requester": "pemohon",
22
+ "field.month": "bulan",
23
+ "field.expenditure-lines": "butiran"
8
24
  }
@@ -4,5 +4,21 @@
4
4
  "title.fiscal closing status": "财务结算状态",
5
5
  "title.financial statement list": "财务报表列表",
6
6
  "title.transaction list": "交易列表",
7
- "title.income forecast": "收入预测"
7
+ "title.income forecast": "收入预测",
8
+ "activity.expenditure-request.label": "支出申请",
9
+ "activity.expenditure-request.guide.0": "向往来方付款前须经审批,收款账户为该往来方登记的账户。",
10
+ "activity.expenditure-request.guide.1": "审批后进入待付款,财务付款后与银行对账单对账。",
11
+ "activity.expenditure-request.guide.2": "按审批人看到的账户付款;审批后账户变更时,付款前会提示。",
12
+ "activity.expenditure-request.guide.3": "被驳回的申请退回申请人,修改后可重新提交。",
13
+ "activity.expenditure-request.guide.4": "未设置审批线时无法提交申请。",
14
+ "activity.expense-claim.label": "费用报销",
15
+ "activity.expense-claim.guide.0": "员工报销因公支出(餐费、交通费、耗材费)。",
16
+ "activity.expense-claim.guide.1": "审批后进入待付款,财务向员工付款后与银行对账单对账。",
17
+ "activity.expense-claim.guide.2": "公司卡消费同样审核,不予支付。",
18
+ "activity.expense-claim.guide.3": "被驳回的报销退回员工,修改后可重新提交。",
19
+ "activity.expense-claim.guide.4": "未设置审批线时无法提交报销。",
20
+ "field.payee": "收款方",
21
+ "field.requester": "申请人",
22
+ "field.month": "月份",
23
+ "field.expenditure-lines": "明细"
8
24
  }
@@ -1,14 +0,0 @@
1
- import '../components/expense-edit.js';
2
- import { LitElement } from 'lit';
3
- declare const ActivityExpenseView_base: (new (...args: any[]) => LitElement) & typeof LitElement;
4
- export declare class ActivityExpenseView extends ActivityExpenseView_base {
5
- static styles: import("lit").CSSResult[];
6
- input?: any;
7
- output?: any;
8
- expense?: any;
9
- render(): import("lit-html").TemplateResult<1>;
10
- onChange(): Promise<void>;
11
- updated(changes: any): void;
12
- fetchExpense(): Promise<void>;
13
- }
14
- export {};
@@ -1,85 +0,0 @@
1
- /*
2
- Add the following line to clinet/bootstrap.ts so that activity editor can be registered when loading a module.
3
- --
4
- import './activities/expense-edit.js' // refered by the activity template (activity-expense) on server
5
- */
6
- import { __decorate, __metadata } from "tslib";
7
- import '../components/expense-edit.js';
8
- import gql from 'graphql-tag';
9
- import { css, html, LitElement } from 'lit';
10
- import { customElement, property, state } from 'lit/decorators.js';
11
- import { client } from '@operato/graphql';
12
- import { i18next, localize } from '@operato/i18n';
13
- import { ScrollbarStyles } from '@operato/styles';
14
- // import { ExpenseView } from '../components/expense-edit.js'
15
- let ActivityExpenseView = class ActivityExpenseView extends localize(i18next)(LitElement) {
16
- static { this.styles = [
17
- ScrollbarStyles,
18
- css `
19
- :host {
20
- display: flex;
21
- flex-direction: column;
22
-
23
- background-color: #fff;
24
- }
25
-
26
- expense-edit {
27
- flex: 1;
28
- padding: 10px;
29
- overflow: auto;
30
- }
31
- `
32
- ]; }
33
- // @query('expense-edit') expenseView!: ExpenseView
34
- render() {
35
- return html ` <expense-edit .expense=${this.expense} .value=${this.output} @change=${this.onChange}></expense-edit> `;
36
- }
37
- async onChange() {
38
- // this.output = this.expenseView.value
39
- this.dispatchEvent(new CustomEvent('change', {
40
- detail: this.output
41
- }));
42
- }
43
- updated(changes) {
44
- if (changes.has('input')) {
45
- this.fetchExpense();
46
- }
47
- }
48
- async fetchExpense() {
49
- const id = this.input.expenseId;
50
- if (id) {
51
- const response = await client.query({
52
- query: gql `
53
- query ($id: String!) {
54
- expense(id: $id) {
55
- id
56
- name
57
- description
58
- }
59
- }
60
- `,
61
- variables: {
62
- id
63
- }
64
- });
65
- this.expense = response.data.expense;
66
- }
67
- }
68
- };
69
- __decorate([
70
- property({ type: Object }),
71
- __metadata("design:type", Object)
72
- ], ActivityExpenseView.prototype, "input", void 0);
73
- __decorate([
74
- property({ type: Object }),
75
- __metadata("design:type", Object)
76
- ], ActivityExpenseView.prototype, "output", void 0);
77
- __decorate([
78
- state(),
79
- __metadata("design:type", Object)
80
- ], ActivityExpenseView.prototype, "expense", void 0);
81
- ActivityExpenseView = __decorate([
82
- customElement('activity-expense-edit')
83
- ], ActivityExpenseView);
84
- export { ActivityExpenseView };
85
- //# sourceMappingURL=activity-expense-edit.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"activity-expense-edit.js","sourceRoot":"","sources":["../../client/activities/activity-expense-edit.ts"],"names":[],"mappings":"AAAA;;;;EAIE;;AAEF,OAAO,+BAA+B,CAAA;AAEtC,OAAO,GAAG,MAAM,aAAa,CAAA;AAC7B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAS,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEzE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEjD,8DAA8D;AAGvD,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,QAAQ,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC;aAC7D,WAAM,GAAG;QACd,eAAe;QACf,GAAG,CAAA;;;;;;;;;;;;;KAaF;KACF,AAhBY,CAgBZ;IAOD,mDAAmD;IAEnD,MAAM;QACJ,OAAO,IAAI,CAAA,2BAA2B,IAAI,CAAC,OAAO,WAAW,IAAI,CAAC,MAAM,YAAY,IAAI,CAAC,QAAQ,mBAAmB,CAAA;IACtH,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,uCAAuC;QAEvC,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,QAAQ,EAAE;YACxB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CACH,CAAA;IACH,CAAC;IAED,OAAO,CAAC,OAAO;QACb,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,YAAY,EAAE,CAAA;QACrB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAA;QAE/B,IAAI,EAAE,EAAE,CAAC;YACP,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;gBAClC,KAAK,EAAE,GAAG,CAAA;;;;;;;;SAQT;gBACD,SAAS,EAAE;oBACT,EAAE;iBACH;aACF,CAAC,CAAA;YAEF,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAA;QACtC,CAAC;IACH,CAAC;;AAhD2B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;kDAAY;AACX;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;mDAAa;AAE/B;IAAR,KAAK,EAAE;;oDAAc;AAtBX,mBAAmB;IAD/B,aAAa,CAAC,uBAAuB,CAAC;GAC1B,mBAAmB,CAoE/B","sourcesContent":["/* \nAdd the following line to clinet/bootstrap.ts so that activity editor can be registered when loading a module.\n--\nimport './activities/expense-edit.js' // refered by the activity template (activity-expense) on server\n*/\n\nimport '../components/expense-edit.js'\n\nimport gql from 'graphql-tag'\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\n\nimport { client } from '@operato/graphql'\nimport { i18next, localize } from '@operato/i18n'\nimport { ScrollbarStyles } from '@operato/styles'\n\n// import { ExpenseView } from '../components/expense-edit.js'\n\n@customElement('activity-expense-edit')\nexport class ActivityExpenseView extends localize(i18next)(LitElement) {\n static styles = [\n ScrollbarStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n\n background-color: #fff;\n }\n\n expense-edit {\n flex: 1;\n padding: 10px;\n overflow: auto;\n }\n `\n ]\n\n @property({ type: Object }) input?: any\n @property({ type: Object }) output?: any\n\n @state() expense?: any //Expense\n\n // @query('expense-edit') expenseView!: ExpenseView\n\n render() {\n return html` <expense-edit .expense=${this.expense} .value=${this.output} @change=${this.onChange}></expense-edit> `\n }\n\n async onChange() {\n // this.output = this.expenseView.value\n\n this.dispatchEvent(\n new CustomEvent('change', {\n detail: this.output\n })\n )\n }\n\n updated(changes) {\n if (changes.has('input')) {\n this.fetchExpense()\n }\n }\n\n async fetchExpense() {\n const id = this.input.expenseId\n\n if (id) {\n const response = await client.query({\n query: gql`\n query ($id: String!) {\n expense(id: $id) {\n id\n name\n description\n }\n }\n `,\n variables: {\n id\n }\n })\n\n this.expense = response.data.expense\n }\n }\n}\n"]}
@@ -1,14 +0,0 @@
1
- import '../components/expense-view.js';
2
- import { LitElement } from 'lit';
3
- declare const ActivityExpenseView_base: (new (...args: any[]) => LitElement) & typeof LitElement;
4
- export declare class ActivityExpenseView extends ActivityExpenseView_base {
5
- static styles: import("lit").CSSResult[];
6
- input?: any;
7
- output?: any;
8
- expense?: any;
9
- render(): import("lit-html").TemplateResult<1>;
10
- onChange(): Promise<void>;
11
- updated(changes: any): void;
12
- fetchExpense(): Promise<void>;
13
- }
14
- export {};
@@ -1,85 +0,0 @@
1
- /*
2
- Add the following line to clinet/bootstrap.ts so that activity view can be registered when loading a module.
3
- --
4
- import './activities/expense-view.js' // refered by the activity template (activity-data-collect) on server
5
- */
6
- import { __decorate, __metadata } from "tslib";
7
- import '../components/expense-view.js';
8
- import gql from 'graphql-tag';
9
- import { css, html, LitElement } from 'lit';
10
- import { customElement, property, state } from 'lit/decorators.js';
11
- import { client } from '@operato/graphql';
12
- import { i18next, localize } from '@operato/i18n';
13
- import { ScrollbarStyles } from '@operato/styles';
14
- // import { ExpenseView } from '../components/expense-view.js'
15
- let ActivityExpenseView = class ActivityExpenseView extends localize(i18next)(LitElement) {
16
- static { this.styles = [
17
- ScrollbarStyles,
18
- css `
19
- :host {
20
- display: flex;
21
- flex-direction: column;
22
-
23
- background-color: #fff;
24
- }
25
-
26
- expense-view {
27
- flex: 1;
28
- padding: 10px;
29
- overflow: auto;
30
- }
31
- `
32
- ]; }
33
- // @query('expense-view') expenseView!: ExpenseView
34
- render() {
35
- return html ` <expense-view .expense=${this.expense} .value=${this.output} @change=${this.onChange}></expense-view> `;
36
- }
37
- async onChange() {
38
- // this.output = this.expenseView.value
39
- this.dispatchEvent(new CustomEvent('change', {
40
- detail: this.output
41
- }));
42
- }
43
- updated(changes) {
44
- if (changes.has('input')) {
45
- this.fetchExpense();
46
- }
47
- }
48
- async fetchExpense() {
49
- const id = this.input.expenseId;
50
- if (id) {
51
- const response = await client.query({
52
- query: gql `
53
- query ($id: String!) {
54
- expense(id: $id) {
55
- id
56
- name
57
- description
58
- }
59
- }
60
- `,
61
- variables: {
62
- id
63
- }
64
- });
65
- this.expense = response.data.expense;
66
- }
67
- }
68
- };
69
- __decorate([
70
- property({ type: Object }),
71
- __metadata("design:type", Object)
72
- ], ActivityExpenseView.prototype, "input", void 0);
73
- __decorate([
74
- property({ type: Object }),
75
- __metadata("design:type", Object)
76
- ], ActivityExpenseView.prototype, "output", void 0);
77
- __decorate([
78
- state(),
79
- __metadata("design:type", Object)
80
- ], ActivityExpenseView.prototype, "expense", void 0);
81
- ActivityExpenseView = __decorate([
82
- customElement('activity-expense-view')
83
- ], ActivityExpenseView);
84
- export { ActivityExpenseView };
85
- //# sourceMappingURL=activity-expense-view.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"activity-expense-view.js","sourceRoot":"","sources":["../../client/activities/activity-expense-view.ts"],"names":[],"mappings":"AAAA;;;;EAIE;;AAEF,OAAO,+BAA+B,CAAA;AAEtC,OAAO,GAAG,MAAM,aAAa,CAAA;AAC7B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAS,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEzE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEjD,8DAA8D;AAGvD,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,QAAQ,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC;aAC7D,WAAM,GAAG;QACd,eAAe;QACf,GAAG,CAAA;;;;;;;;;;;;;KAaF;KACF,AAhBY,CAgBZ;IAOD,mDAAmD;IAEnD,MAAM;QACJ,OAAO,IAAI,CAAA,2BAA2B,IAAI,CAAC,OAAO,WAAW,IAAI,CAAC,MAAM,YAAY,IAAI,CAAC,QAAQ,mBAAmB,CAAA;IACtH,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,uCAAuC;QAEvC,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,QAAQ,EAAE;YACxB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CACH,CAAA;IACH,CAAC;IAED,OAAO,CAAC,OAAO;QACb,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,YAAY,EAAE,CAAA;QACrB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAA;QAE/B,IAAI,EAAE,EAAE,CAAC;YACP,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;gBAClC,KAAK,EAAE,GAAG,CAAA;;;;;;;;SAQT;gBACD,SAAS,EAAE;oBACT,EAAE;iBACH;aACF,CAAC,CAAA;YAEF,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAA;QACtC,CAAC;IACH,CAAC;;AAhD2B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;kDAAY;AACX;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;mDAAa;AAE/B;IAAR,KAAK,EAAE;;oDAAc;AAtBX,mBAAmB;IAD/B,aAAa,CAAC,uBAAuB,CAAC;GAC1B,mBAAmB,CAoE/B","sourcesContent":["/* \nAdd the following line to clinet/bootstrap.ts so that activity view can be registered when loading a module.\n--\nimport './activities/expense-view.js' // refered by the activity template (activity-data-collect) on server\n*/\n\nimport '../components/expense-view.js'\n\nimport gql from 'graphql-tag'\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\n\nimport { client } from '@operato/graphql'\nimport { i18next, localize } from '@operato/i18n'\nimport { ScrollbarStyles } from '@operato/styles'\n\n// import { ExpenseView } from '../components/expense-view.js'\n\n@customElement('activity-expense-view')\nexport class ActivityExpenseView extends localize(i18next)(LitElement) {\n static styles = [\n ScrollbarStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n\n background-color: #fff;\n }\n\n expense-view {\n flex: 1;\n padding: 10px;\n overflow: auto;\n }\n `\n ]\n\n @property({ type: Object }) input?: any\n @property({ type: Object }) output?: any\n\n @state() expense?: any //Expense\n\n // @query('expense-view') expenseView!: ExpenseView\n\n render() {\n return html` <expense-view .expense=${this.expense} .value=${this.output} @change=${this.onChange}></expense-view> `\n }\n\n async onChange() {\n // this.output = this.expenseView.value\n\n this.dispatchEvent(\n new CustomEvent('change', {\n detail: this.output\n })\n )\n }\n\n updated(changes) {\n if (changes.has('input')) {\n this.fetchExpense()\n }\n }\n\n async fetchExpense() {\n const id = this.input.expenseId\n\n if (id) {\n const response = await client.query({\n query: gql`\n query ($id: String!) {\n expense(id: $id) {\n id\n name\n description\n }\n }\n `,\n variables: {\n id\n }\n })\n\n this.expense = response.data.expense\n }\n }\n}\n"]}
@@ -1,58 +0,0 @@
1
- import { ActivityInstance } from '@things-factory/worklist';
2
- declare function callback(activityInstance: ActivityInstance, context: ResolverContext): Promise<void>;
3
- export declare const ActivityExpense: {
4
- name: string;
5
- description: string;
6
- release: string;
7
- provider: string;
8
- category: string;
9
- activityType: string;
10
- priority: number;
11
- searchKeys: {
12
- name: string;
13
- description: string;
14
- inputKey: string;
15
- tKey: string;
16
- }[];
17
- startable: boolean;
18
- startingType: string;
19
- multiple: any;
20
- model: ({
21
- name: string;
22
- description: string;
23
- tag: string;
24
- hidden: boolean;
25
- mandatory: boolean;
26
- inout: string;
27
- type: string;
28
- options: {
29
- options: string[];
30
- };
31
- unit: any;
32
- quantifier: number[];
33
- spec: {};
34
- } | {
35
- name: string;
36
- description: string;
37
- tag: string;
38
- hidden: boolean;
39
- mandatory: boolean;
40
- inout: string;
41
- type: string;
42
- options: {
43
- options?: undefined;
44
- };
45
- unit: any;
46
- quantifier: number[];
47
- spec: {};
48
- })[];
49
- uiType: string;
50
- uiSource: string;
51
- viewType: string;
52
- viewSource: string;
53
- reportType: string;
54
- reportSource: string;
55
- thumbnail: string;
56
- callback: typeof callback;
57
- };
58
- export {};