@things-factory/sales 0.0.0-stage → 10.1.176

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 (131) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/assets/images/hatiolab-logo.png +0 -0
  3. package/dist-client/bootstrap.d.ts +1 -0
  4. package/dist-client/bootstrap.js +5 -0
  5. package/dist-client/bootstrap.js.map +1 -0
  6. package/dist-client/entity360/opportunity-360.d.ts +12 -0
  7. package/dist-client/entity360/opportunity-360.js +114 -0
  8. package/dist-client/entity360/opportunity-360.js.map +1 -0
  9. package/dist-client/index.d.ts +4 -0
  10. package/dist-client/index.js +5 -0
  11. package/dist-client/index.js.map +1 -0
  12. package/dist-client/opportunity-attach.d.ts +17 -0
  13. package/dist-client/opportunity-attach.js +8 -0
  14. package/dist-client/opportunity-attach.js.map +1 -0
  15. package/dist-client/opportunity-words.d.ts +1 -0
  16. package/dist-client/opportunity-words.js +13 -0
  17. package/dist-client/opportunity-words.js.map +1 -0
  18. package/dist-client/pages/opportunity-editor.d.ts +81 -0
  19. package/dist-client/pages/opportunity-editor.js +482 -0
  20. package/dist-client/pages/opportunity-editor.js.map +1 -0
  21. package/dist-client/pages/opportunity-list.d.ts +40 -0
  22. package/dist-client/pages/opportunity-list.js +134 -0
  23. package/dist-client/pages/opportunity-list.js.map +1 -0
  24. package/dist-client/pages/quotation-editor.d.ts +44 -0
  25. package/dist-client/pages/quotation-editor.js +315 -0
  26. package/dist-client/pages/quotation-editor.js.map +1 -0
  27. package/dist-client/pages/quotation-list.d.ts +36 -0
  28. package/dist-client/pages/quotation-list.js +113 -0
  29. package/dist-client/pages/quotation-list.js.map +1 -0
  30. package/dist-client/quotation-attach.d.ts +16 -0
  31. package/dist-client/quotation-attach.js +8 -0
  32. package/dist-client/quotation-attach.js.map +1 -0
  33. package/dist-client/quotation-words.d.ts +1 -0
  34. package/dist-client/quotation-words.js +13 -0
  35. package/dist-client/quotation-words.js.map +1 -0
  36. package/dist-client/route.d.ts +1 -0
  37. package/dist-client/route.js +17 -0
  38. package/dist-client/route.js.map +1 -0
  39. package/dist-client/tsconfig.tsbuildinfo +1 -0
  40. package/dist-server/controllers/index.d.ts +0 -0
  41. package/dist-server/controllers/index.js +1 -0
  42. package/dist-server/controllers/index.js.map +1 -0
  43. package/dist-server/index.d.ts +4 -0
  44. package/dist-server/index.js +8 -0
  45. package/dist-server/index.js.map +1 -0
  46. package/dist-server/middlewares/index.d.ts +2 -0
  47. package/dist-server/middlewares/index.js +7 -0
  48. package/dist-server/middlewares/index.js.map +1 -0
  49. package/dist-server/migrations/index.d.ts +1 -0
  50. package/dist-server/migrations/index.js +12 -0
  51. package/dist-server/migrations/index.js.map +1 -0
  52. package/dist-server/routes.d.ts +0 -0
  53. package/dist-server/routes.js +24 -0
  54. package/dist-server/routes.js.map +1 -0
  55. package/dist-server/service/index.d.ts +16 -0
  56. package/dist-server/service/index.js +21 -0
  57. package/dist-server/service/index.js.map +1 -0
  58. package/dist-server/service/opportunity/index.d.ts +8 -0
  59. package/dist-server/service/opportunity/index.js +12 -0
  60. package/dist-server/service/opportunity/index.js.map +1 -0
  61. package/dist-server/service/opportunity/opportunity-event-query.d.ts +9 -0
  62. package/dist-server/service/opportunity/opportunity-event-query.js +55 -0
  63. package/dist-server/service/opportunity/opportunity-event-query.js.map +1 -0
  64. package/dist-server/service/opportunity/opportunity-event.d.ts +27 -0
  65. package/dist-server/service/opportunity/opportunity-event.js +115 -0
  66. package/dist-server/service/opportunity/opportunity-event.js.map +1 -0
  67. package/dist-server/service/opportunity/opportunity-mutation.d.ts +7 -0
  68. package/dist-server/service/opportunity/opportunity-mutation.js +64 -0
  69. package/dist-server/service/opportunity/opportunity-mutation.js.map +1 -0
  70. package/dist-server/service/opportunity/opportunity-query.d.ts +19 -0
  71. package/dist-server/service/opportunity/opportunity-query.js +144 -0
  72. package/dist-server/service/opportunity/opportunity-query.js.map +1 -0
  73. package/dist-server/service/opportunity/opportunity-rules.d.ts +22 -0
  74. package/dist-server/service/opportunity/opportunity-rules.js +59 -0
  75. package/dist-server/service/opportunity/opportunity-rules.js.map +1 -0
  76. package/dist-server/service/opportunity/opportunity-service.d.ts +19 -0
  77. package/dist-server/service/opportunity/opportunity-service.js +107 -0
  78. package/dist-server/service/opportunity/opportunity-service.js.map +1 -0
  79. package/dist-server/service/opportunity/opportunity-type.d.ts +23 -0
  80. package/dist-server/service/opportunity/opportunity-type.js +86 -0
  81. package/dist-server/service/opportunity/opportunity-type.js.map +1 -0
  82. package/dist-server/service/opportunity/opportunity.d.ts +35 -0
  83. package/dist-server/service/opportunity/opportunity.js +147 -0
  84. package/dist-server/service/opportunity/opportunity.js.map +1 -0
  85. package/dist-server/service/quotation/index.d.ts +10 -0
  86. package/dist-server/service/quotation/index.js +14 -0
  87. package/dist-server/service/quotation/index.js.map +1 -0
  88. package/dist-server/service/quotation/quotation-event-query.d.ts +9 -0
  89. package/dist-server/service/quotation/quotation-event-query.js +55 -0
  90. package/dist-server/service/quotation/quotation-event-query.js.map +1 -0
  91. package/dist-server/service/quotation/quotation-event.d.ts +22 -0
  92. package/dist-server/service/quotation/quotation-event.js +98 -0
  93. package/dist-server/service/quotation/quotation-event.js.map +1 -0
  94. package/dist-server/service/quotation/quotation-item-query.d.ts +8 -0
  95. package/dist-server/service/quotation/quotation-item-query.js +45 -0
  96. package/dist-server/service/quotation/quotation-item-query.js.map +1 -0
  97. package/dist-server/service/quotation/quotation-item.d.ts +18 -0
  98. package/dist-server/service/quotation/quotation-item.js +75 -0
  99. package/dist-server/service/quotation/quotation-item.js.map +1 -0
  100. package/dist-server/service/quotation/quotation-mutation.d.ts +11 -0
  101. package/dist-server/service/quotation/quotation-mutation.js +117 -0
  102. package/dist-server/service/quotation/quotation-mutation.js.map +1 -0
  103. package/dist-server/service/quotation/quotation-query.d.ts +17 -0
  104. package/dist-server/service/quotation/quotation-query.js +125 -0
  105. package/dist-server/service/quotation/quotation-query.js.map +1 -0
  106. package/dist-server/service/quotation/quotation-rules.d.ts +6 -0
  107. package/dist-server/service/quotation/quotation-rules.js +22 -0
  108. package/dist-server/service/quotation/quotation-rules.js.map +1 -0
  109. package/dist-server/service/quotation/quotation-service.d.ts +23 -0
  110. package/dist-server/service/quotation/quotation-service.js +115 -0
  111. package/dist-server/service/quotation/quotation-service.js.map +1 -0
  112. package/dist-server/service/quotation/quotation-type.d.ts +9 -0
  113. package/dist-server/service/quotation/quotation-type.js +32 -0
  114. package/dist-server/service/quotation/quotation-type.js.map +1 -0
  115. package/dist-server/service/quotation/quotation.d.ts +33 -0
  116. package/dist-server/service/quotation/quotation.js +109 -0
  117. package/dist-server/service/quotation/quotation.js.map +1 -0
  118. package/dist-server/service/sales-event.d.ts +15 -0
  119. package/dist-server/service/sales-event.js +12 -0
  120. package/dist-server/service/sales-event.js.map +1 -0
  121. package/dist-server/tsconfig.tsbuildinfo +1 -0
  122. package/helps/quotation/quotation.md +160 -0
  123. package/package.json +46 -4
  124. package/things-factory.config.js +13 -0
  125. package/translations/en.json +98 -0
  126. package/translations/es.json +98 -0
  127. package/translations/ja.json +98 -0
  128. package/translations/ko.json +98 -0
  129. package/translations/ms.json +98 -0
  130. package/translations/zh.json +98 -0
  131. package/README.md +0 -3
@@ -0,0 +1,160 @@
1
+ # Quotation
2
+
3
+ Paragraphs are separated by a blank line.
4
+
5
+ 2nd paragraph. _Italic_, **bold**, and `monospace`. Itemized lists
6
+ look like:
7
+
8
+ - this one
9
+ - that one
10
+ - the other one
11
+
12
+ Note that --- not considering the asterisk --- the actual text
13
+ content starts at 4-columns in.
14
+
15
+ > Block quotes are
16
+ > written like so.
17
+ >
18
+ > They can span multiple paragraphs,
19
+ > if you like.
20
+
21
+ Use 3 dashes for an em-dash. Use 2 dashes for ranges (ex., "it's all
22
+ in chapters 12--14"). Three dots ... will be converted to an ellipsis.
23
+ Unicode is supported. ☺
24
+
25
+ ## An h2 header
26
+
27
+ Here's a numbered list:
28
+
29
+ 1. first item
30
+ 2. second item
31
+ 3. third item
32
+
33
+ Note again how the actual text starts at 4 columns in (4 characters
34
+ from the left side). Here's a code sample:
35
+
36
+ # Let me re-iterate ...
37
+
38
+ for i in 1 .. 10 { do-something(i) }
39
+
40
+ As you probably guessed, indented 4 spaces. By the way, instead of
41
+ indenting the block, you can use delimited blocks, if you like:
42
+
43
+ ```
44
+ define foobar() {
45
+ print "Welcome to flavor country!";
46
+ }
47
+ ```
48
+
49
+ (which makes copying & pasting easier). You can optionally mark the
50
+ delimited block for Pandoc to syntax highlight it:
51
+
52
+ ```python
53
+ import time
54
+ # Quick, count to ten!
55
+ for i in range(10):
56
+ # (but not *too* quick)
57
+ time.sleep(0.5)
58
+ print(i)
59
+ ```
60
+
61
+ ### An h3 header
62
+
63
+ Now a nested list:
64
+
65
+ 1. First, get these ingredients:
66
+
67
+ - carrots
68
+ - celery
69
+ - lentils
70
+
71
+ 2. Boil some water.
72
+
73
+ 3. Dump everything in the pot and follow
74
+ this algorithm:
75
+
76
+ find wooden spoon
77
+ uncover pot
78
+ stir
79
+ cover pot
80
+ balance wooden spoon precariously on pot handle
81
+ wait 10 minutes
82
+ goto first step (or shut off burner when done)
83
+
84
+ Do not bump wooden spoon or it will fall.
85
+
86
+ Notice again how text always lines up on 4-space indents (including
87
+ that last line which continues item 3 above).
88
+
89
+ Here's a link to [a website](http://foo.bar), to a [local
90
+ doc](local-doc.html), and to a [section heading in the current
91
+ doc](#an-h2-header). Here's a footnote [^1].
92
+
93
+ [^1]: Some footnote text.
94
+
95
+ Tables can look like this:
96
+
97
+ Name Size Material Color
98
+
99
+ ---
100
+
101
+ All Business 9 leather brown
102
+ Roundabout 10 hemp canvas natural
103
+ Cinderella 11 glass transparent
104
+
105
+ Table: Shoes sizes, materials, and colors.
106
+
107
+ (The above is the caption for the table.) Pandoc also supports
108
+ multi-line tables:
109
+
110
+ ---
111
+
112
+ Keyword Text
113
+
114
+ ---
115
+
116
+ red Sunsets, apples, and
117
+ other red or reddish
118
+ things.
119
+
120
+ green Leaves, grass, frogs
121
+ and other things it's
122
+ not easy being.
123
+
124
+ ---
125
+
126
+ A horizontal rule follows.
127
+
128
+ ---
129
+
130
+ Here's a definition list:
131
+
132
+ apples
133
+ : Good for making applesauce.
134
+
135
+ oranges
136
+ : Citrus!
137
+
138
+ tomatoes
139
+ : There's no "e" in tomatoe.
140
+
141
+ Again, text is indented 4 spaces. (Put a blank line between each
142
+ term and its definition to spread things out more.)
143
+
144
+ Here's a "line block" (note how whitespace is honored):
145
+
146
+ | Line one
147
+ | Line too
148
+ | Line tree
149
+
150
+ and images can be specified like so:
151
+
152
+ ![example image](example-image.jpg 'An exemplary image')
153
+
154
+ Inline math equation: $\omega = d\phi / dt$. Display
155
+ math should get its own line like so:
156
+
157
+ $$I = \int \rho R^{2} dV$$
158
+
159
+ And note that you can backslash-escape any punctuation characters
160
+ which you wish to be displayed literally, ex.: \`foo\`, \*bar\*, etc.
package/package.json CHANGED
@@ -1,6 +1,48 @@
1
1
  {
2
2
  "name": "@things-factory/sales",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "10.1.176",
4
+ "main": "dist-server/index.js",
5
+ "browser": "dist-client/index.js",
6
+ "things-factory": true,
7
+ "license": "MIT",
8
+ "author": "heartyoh <heartyoh@hatiolab.com>",
9
+ "description": "Sales opportunities and quotations with revisions, on the commercial document of @things-factory/invoice",
10
+ "publishConfig": {
11
+ "access": "public",
12
+ "@things-factory:registry": "https://registry.npmjs.org"
13
+ },
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "git+https://github.com/hatiolab/things-factory.git",
17
+ "directory": "packages/sales"
18
+ },
19
+ "scripts": {
20
+ "build": "npm run build:server && npm run build:client",
21
+ "copy:files": "copyfiles -e \"./client/**/*.{ts,js,json}\" -u 1 \"./client/**/*\" dist-client",
22
+ "build:client": "npm run copy:files && npx tsc --p ./client/tsconfig.json",
23
+ "build:server": "npx tsc --p ./server/tsconfig.json",
24
+ "clean:client": "npx rimraf dist-client",
25
+ "clean:server": "npx rimraf dist-server",
26
+ "clean": "npm run clean:server && npm run clean:client",
27
+ "migration:create": "node ../../node_modules/typeorm/cli.js migration:create ./server/migrations/migration",
28
+ "test": "node --test test/*.test.mjs",
29
+ "pretest": "npm run build:server"
30
+ },
31
+ "dependencies": {
32
+ "@material/web": "^2.0.0",
33
+ "@operato/data-grist": "^10.0.0",
34
+ "@operato/graphql": "^10.0.0",
35
+ "@operato/i18n": "^10.0.0",
36
+ "@operato/layout": "^10.0.0",
37
+ "@operato/list-state": "^10.29.1",
38
+ "@operato/popup": "^10.0.0",
39
+ "@operato/shell": "^10.0.0",
40
+ "@operato/styles": "^10.29.1",
41
+ "@operato/utils": "^10.0.0",
42
+ "@things-factory/auth-base": "^10.1.176",
43
+ "@things-factory/biz-base": "^10.1.176",
44
+ "@things-factory/invoice": "^10.1.176",
45
+ "@things-factory/shell": "^10.1.165"
46
+ },
47
+ "gitHead": "24928f127d73de0e9946423bd4c3295f54cce03d"
48
+ }
@@ -0,0 +1,13 @@
1
+ import route from './dist-client/route'
2
+ import bootstrap from './dist-client/bootstrap'
3
+
4
+ export default {
5
+ route,
6
+ routes: [
7
+ { tagname: 'quotation-list', page: 'quotation-list' },
8
+ { tagname: 'quotation-editor', page: 'quotation-editor' },
9
+ { tagname: 'opportunity-list', page: 'opportunity-list' },
10
+ { tagname: 'opportunity-editor', page: 'opportunity-editor' }
11
+ ],
12
+ bootstrap
13
+ }
@@ -0,0 +1,98 @@
1
+ {
2
+ "button.quotation-accept": "Mark accepted",
3
+ "button.quotation-expire": "Mark expired",
4
+ "button.quotation-new": "New quotation",
5
+ "button.quotation-print": "Print",
6
+ "button.quotation-reject": "Mark declined",
7
+ "button.quotation-revise": "Revise",
8
+ "button.quotation-send": "Send",
9
+ "error.quotation-draft-required": "Revise a sent quotation to change it.",
10
+ "error.quotation-issue-date-required": "Enter the issue date before sending.",
11
+ "error.quotation-latest-required": "Revise the latest version.",
12
+ "error.quotation-not-found": "Quotation not found.",
13
+ "error.quotation-number-duplicate": "Quotation number already exists.",
14
+ "error.quotation-reason-required": "Say why the buyer declined.",
15
+ "error.quotation-revision-invalid": "Only a sent quotation nobody accepted can be revised.",
16
+ "error.quotation-revision-number": "A revision keeps its quotation number.",
17
+ "error.quotation-transition-invalid": "The quotation status or its last day does not allow this.",
18
+ "error.quotation-valid-until": "Enter the last day the offer holds.",
19
+ "field.quotation-outcome-reason": "Reason declined",
20
+ "field.quotation-valid-until": "Valid until",
21
+ "field.quotation-version": "Version",
22
+ "text.quotation-empty": "No quotations yet.",
23
+ "text.quotation-empty-description": "Create the first one with New quotation.",
24
+ "text.quotation-not-found": "Quotation not found.",
25
+ "text.quotation-section-decline": "Declined",
26
+ "text.quotation-status-accepted": "Accepted",
27
+ "text.quotation-status-draft": "Draft",
28
+ "text.quotation-status-expired": "Expired",
29
+ "text.quotation-status-rejected": "Declined",
30
+ "text.quotation-status-sent": "Sent",
31
+ "text.quotation-status-superseded": "Superseded",
32
+ "title.quotation": "Quotation",
33
+ "title.quotation-list": "Quotations",
34
+ "title.quotation-new": "New quotation",
35
+ "title.quotation-print": "QUOTATION",
36
+ "field.quotation-counterpart": "Counterparty",
37
+ "field.quotation-issue-date": "Issue date",
38
+ "field.quotation-number": "Number",
39
+ "field.quotation-status": "Status",
40
+ "field.quotation-total-amount": "Quoted amount",
41
+ "text.quotation-section-head": "Details",
42
+ "text.quotation-section-lines": "Lines",
43
+ "text.quotation-section-totals": "Amounts",
44
+ "button.opportunity-new": "New opportunity",
45
+ "button.opportunity-lose": "Mark as lost",
46
+ "button.opportunity-clear": "Clear",
47
+ "error.opportunity-not-found": "Opportunity not found.",
48
+ "error.opportunity-closed": "This opportunity is closed. Choose an open stage to reopen a lost one.",
49
+ "error.opportunity-stage-open-required": "Choose an open stage. Won and lost are closings.",
50
+ "error.opportunity-stage-move-invalid": "The opportunity cannot move to that stage.",
51
+ "error.opportunity-name-required": "Enter the opportunity name.",
52
+ "error.opportunity-amount-invalid": "The expected amount must be zero or more.",
53
+ "error.opportunity-close-month-invalid": "Enter the expected month.",
54
+ "error.opportunity-probability-invalid": "The probability is a whole number from 0 to 100.",
55
+ "error.opportunity-counterparty-required": "Choose the counterparty.",
56
+ "error.opportunity-end-customer-invalid": "Choose the end customer among the registered counterparties.",
57
+ "error.opportunity-owner-invalid": "Choose the owner among this company's users.",
58
+ "error.opportunity-reason-required": "Enter the reason it was lost.",
59
+ "error.opportunity-closed-on-invalid": "Enter the closing day as YYYY-MM-DD.",
60
+ "field.opportunity-name": "Name",
61
+ "field.opportunity-counterparty": "Counterparty",
62
+ "field.opportunity-end-customer": "End customer",
63
+ "field.opportunity-amount": "Expected amount",
64
+ "field.opportunity-currency": "Currency",
65
+ "field.opportunity-expected-close-month": "Expected month",
66
+ "field.opportunity-owner": "Owner",
67
+ "field.opportunity-description": "Notes",
68
+ "field.opportunity-stage": "Stage",
69
+ "field.opportunity-probability": "Probability",
70
+ "field.opportunity-closed-on": "Closed on",
71
+ "field.opportunity-lost-reason": "Lost reason",
72
+ "field.opportunity-event-at": "When",
73
+ "field.opportunity-event-actor": "By",
74
+ "field.opportunity-event-action": "What",
75
+ "text.opportunity-stage-lead": "Lead",
76
+ "text.opportunity-stage-proposal": "Proposal",
77
+ "text.opportunity-stage-quoted": "Quoted",
78
+ "text.opportunity-stage-negotiation": "Negotiation",
79
+ "text.opportunity-stage-won": "Won",
80
+ "text.opportunity-stage-lost": "Lost",
81
+ "text.opportunity-empty": "No opportunities.",
82
+ "text.opportunity-empty-description": "Create the first one with New opportunity.",
83
+ "text.opportunity-not-found": "Opportunity not found.",
84
+ "text.opportunity-section-head": "Details",
85
+ "text.opportunity-section-stage": "Stage",
86
+ "text.opportunity-section-lose": "Lost",
87
+ "text.opportunity-section-history": "History",
88
+ "text.opportunity-counterparty-search": "Counterparty name or business number",
89
+ "text.opportunity-owner-me": "Me",
90
+ "text.opportunity-event-created": "Created",
91
+ "text.opportunity-event-updated": "Changed",
92
+ "text.opportunity-event-staged": "Stage changed",
93
+ "text.opportunity-event-won": "Won",
94
+ "text.opportunity-event-lost": "Lost",
95
+ "title.opportunity": "Opportunity",
96
+ "title.opportunity-list": "Opportunities",
97
+ "title.opportunity-new": "New opportunity"
98
+ }
@@ -0,0 +1,98 @@
1
+ {
2
+ "button.quotation-accept": "Marcar como aceptada",
3
+ "button.quotation-expire": "Marcar como vencida",
4
+ "button.quotation-new": "Nueva cotización",
5
+ "button.quotation-print": "Imprimir",
6
+ "button.quotation-reject": "Marcar como rechazada",
7
+ "button.quotation-revise": "Revisar",
8
+ "button.quotation-send": "Enviar",
9
+ "error.quotation-draft-required": "Para modificar una cotización enviada, cree una revisión.",
10
+ "error.quotation-issue-date-required": "Introduzca la fecha de emisión antes de enviar.",
11
+ "error.quotation-latest-required": "Revise la versión más reciente.",
12
+ "error.quotation-not-found": "No se encontró la cotización.",
13
+ "error.quotation-number-duplicate": "El número de cotización ya existe.",
14
+ "error.quotation-reason-required": "Indique por qué el comprador la rechazó.",
15
+ "error.quotation-revision-invalid": "Solo se puede revisar una cotización enviada que nadie haya aceptado.",
16
+ "error.quotation-revision-number": "Una revisión conserva el número de cotización.",
17
+ "error.quotation-transition-invalid": "El estado de la cotización o su fecha de validez no lo permiten.",
18
+ "error.quotation-valid-until": "Introduzca el último día de validez de la oferta.",
19
+ "field.quotation-outcome-reason": "Motivo del rechazo",
20
+ "field.quotation-valid-until": "Válida hasta",
21
+ "field.quotation-version": "Versión",
22
+ "text.quotation-empty": "Todavía no hay cotizaciones.",
23
+ "text.quotation-empty-description": "Cree la primera con Nueva cotización.",
24
+ "text.quotation-not-found": "No se encontró la cotización.",
25
+ "text.quotation-section-decline": "Rechazada",
26
+ "text.quotation-status-accepted": "Aceptada",
27
+ "text.quotation-status-draft": "Borrador",
28
+ "text.quotation-status-expired": "Vencida",
29
+ "text.quotation-status-rejected": "Rechazada",
30
+ "text.quotation-status-sent": "Enviada",
31
+ "text.quotation-status-superseded": "Sustituida",
32
+ "title.quotation": "Cotización",
33
+ "title.quotation-list": "Cotizaciones",
34
+ "title.quotation-new": "Nueva cotización",
35
+ "title.quotation-print": "COTIZACIÓN",
36
+ "field.quotation-counterpart": "Contraparte",
37
+ "field.quotation-issue-date": "Fecha de emisión",
38
+ "field.quotation-number": "Número",
39
+ "field.quotation-status": "Estado",
40
+ "field.quotation-total-amount": "Importe cotizado",
41
+ "text.quotation-section-head": "Datos",
42
+ "text.quotation-section-lines": "Líneas",
43
+ "text.quotation-section-totals": "Importes",
44
+ "button.opportunity-new": "Nueva oportunidad",
45
+ "button.opportunity-lose": "Marcar como perdida",
46
+ "button.opportunity-clear": "Borrar",
47
+ "error.opportunity-not-found": "No se encontró la oportunidad.",
48
+ "error.opportunity-closed": "Esta oportunidad está cerrada. Elija una etapa abierta para reabrir una perdida.",
49
+ "error.opportunity-stage-open-required": "Elija una etapa abierta. Ganada y perdida son cierres.",
50
+ "error.opportunity-stage-move-invalid": "La oportunidad no puede pasar a esa etapa.",
51
+ "error.opportunity-name-required": "Introduzca el nombre de la oportunidad.",
52
+ "error.opportunity-amount-invalid": "El importe previsto debe ser cero o más.",
53
+ "error.opportunity-close-month-invalid": "Introduzca el mes previsto.",
54
+ "error.opportunity-probability-invalid": "La probabilidad es un número entero de 0 a 100.",
55
+ "error.opportunity-counterparty-required": "Elija la contraparte.",
56
+ "error.opportunity-end-customer-invalid": "Elija el cliente final entre las contrapartes registradas.",
57
+ "error.opportunity-owner-invalid": "Elija el responsable entre los usuarios de esta empresa.",
58
+ "error.opportunity-reason-required": "Indique por qué se perdió.",
59
+ "error.opportunity-closed-on-invalid": "Introduzca el día de cierre como AAAA-MM-DD.",
60
+ "field.opportunity-name": "Nombre",
61
+ "field.opportunity-counterparty": "Contraparte",
62
+ "field.opportunity-end-customer": "Cliente final",
63
+ "field.opportunity-amount": "Importe previsto",
64
+ "field.opportunity-currency": "Moneda",
65
+ "field.opportunity-expected-close-month": "Mes previsto",
66
+ "field.opportunity-owner": "Responsable",
67
+ "field.opportunity-description": "Notas",
68
+ "field.opportunity-stage": "Etapa",
69
+ "field.opportunity-probability": "Probabilidad",
70
+ "field.opportunity-closed-on": "Cerrada el",
71
+ "field.opportunity-lost-reason": "Motivo de pérdida",
72
+ "field.opportunity-event-at": "Cuándo",
73
+ "field.opportunity-event-actor": "Por",
74
+ "field.opportunity-event-action": "Qué",
75
+ "text.opportunity-stage-lead": "Prospecto",
76
+ "text.opportunity-stage-proposal": "Propuesta",
77
+ "text.opportunity-stage-quoted": "Cotizada",
78
+ "text.opportunity-stage-negotiation": "Negociación",
79
+ "text.opportunity-stage-won": "Ganada",
80
+ "text.opportunity-stage-lost": "Perdida",
81
+ "text.opportunity-empty": "No hay oportunidades.",
82
+ "text.opportunity-empty-description": "Cree la primera con Nueva oportunidad.",
83
+ "text.opportunity-not-found": "No se encontró la oportunidad.",
84
+ "text.opportunity-section-head": "Datos",
85
+ "text.opportunity-section-stage": "Etapa",
86
+ "text.opportunity-section-lose": "Perdida",
87
+ "text.opportunity-section-history": "Historial",
88
+ "text.opportunity-counterparty-search": "Nombre o número fiscal de la contraparte",
89
+ "text.opportunity-owner-me": "Yo",
90
+ "text.opportunity-event-created": "Creada",
91
+ "text.opportunity-event-updated": "Modificada",
92
+ "text.opportunity-event-staged": "Cambio de etapa",
93
+ "text.opportunity-event-won": "Ganada",
94
+ "text.opportunity-event-lost": "Perdida",
95
+ "title.opportunity": "Oportunidad",
96
+ "title.opportunity-list": "Oportunidades",
97
+ "title.opportunity-new": "Nueva oportunidad"
98
+ }
@@ -0,0 +1,98 @@
1
+ {
2
+ "button.quotation-accept": "受諾処理",
3
+ "button.quotation-expire": "期限切れ処理",
4
+ "button.quotation-new": "見積作成",
5
+ "button.quotation-print": "印刷",
6
+ "button.quotation-reject": "辞退処理",
7
+ "button.quotation-revise": "改訂",
8
+ "button.quotation-send": "送付",
9
+ "error.quotation-draft-required": "送付済みの見積は改訂して変更します。",
10
+ "error.quotation-issue-date-required": "送付する前に作成日を入力してください。",
11
+ "error.quotation-latest-required": "最新の版を改訂してください。",
12
+ "error.quotation-not-found": "見積が見つかりません。",
13
+ "error.quotation-number-duplicate": "既に使われている見積番号です。",
14
+ "error.quotation-reason-required": "辞退の理由を入力してください。",
15
+ "error.quotation-revision-invalid": "受諾されていない送付済みの見積だけ改訂できます。",
16
+ "error.quotation-revision-number": "改訂版は見積番号を変えられません。",
17
+ "error.quotation-transition-invalid": "見積の状態か有効期限のためできません。",
18
+ "error.quotation-valid-until": "有効期限を入力してください。",
19
+ "field.quotation-outcome-reason": "辞退理由",
20
+ "field.quotation-valid-until": "有効期限",
21
+ "field.quotation-version": "版",
22
+ "text.quotation-empty": "見積がありません。",
23
+ "text.quotation-empty-description": "見積作成で最初の見積を作ります。",
24
+ "text.quotation-not-found": "見積が見つかりません。",
25
+ "text.quotation-section-decline": "辞退",
26
+ "text.quotation-status-accepted": "受諾",
27
+ "text.quotation-status-draft": "作成中",
28
+ "text.quotation-status-expired": "期限切れ",
29
+ "text.quotation-status-rejected": "辞退",
30
+ "text.quotation-status-sent": "送付",
31
+ "text.quotation-status-superseded": "改訂済み",
32
+ "title.quotation": "見積",
33
+ "title.quotation-list": "見積",
34
+ "title.quotation-new": "新しい見積",
35
+ "title.quotation-print": "見積書",
36
+ "field.quotation-counterpart": "取引先",
37
+ "field.quotation-issue-date": "作成日",
38
+ "field.quotation-number": "見積番号",
39
+ "field.quotation-status": "状態",
40
+ "field.quotation-total-amount": "見積金額",
41
+ "text.quotation-section-head": "基本情報",
42
+ "text.quotation-section-lines": "品目",
43
+ "text.quotation-section-totals": "金額",
44
+ "button.opportunity-new": "商談登録",
45
+ "button.opportunity-lose": "失注にする",
46
+ "button.opportunity-clear": "クリア",
47
+ "error.opportunity-not-found": "商談が見つかりません。",
48
+ "error.opportunity-closed": "終了した商談です。失注した商談は進行中の段階を選ぶと再開します。",
49
+ "error.opportunity-stage-open-required": "進行中の段階を選んでください。受注と失注は終了処理で行います。",
50
+ "error.opportunity-stage-move-invalid": "その段階には移せません。",
51
+ "error.opportunity-name-required": "商談名を入力してください。",
52
+ "error.opportunity-amount-invalid": "見込金額は0以上にしてください。",
53
+ "error.opportunity-close-month-invalid": "受注見込月を入力してください。",
54
+ "error.opportunity-probability-invalid": "確度は0から100の整数です。",
55
+ "error.opportunity-counterparty-required": "取引先を選んでください。",
56
+ "error.opportunity-end-customer-invalid": "エンド顧客は登録済みの取引先から選んでください。",
57
+ "error.opportunity-owner-invalid": "担当者はこの会社のユーザーから選んでください。",
58
+ "error.opportunity-reason-required": "失注理由を入力してください。",
59
+ "error.opportunity-closed-on-invalid": "終了日をYYYY-MM-DD形式で入力してください。",
60
+ "field.opportunity-name": "商談名",
61
+ "field.opportunity-counterparty": "取引先",
62
+ "field.opportunity-end-customer": "エンド顧客",
63
+ "field.opportunity-amount": "見込金額",
64
+ "field.opportunity-currency": "通貨",
65
+ "field.opportunity-expected-close-month": "受注見込月",
66
+ "field.opportunity-owner": "担当者",
67
+ "field.opportunity-description": "メモ",
68
+ "field.opportunity-stage": "段階",
69
+ "field.opportunity-probability": "確度",
70
+ "field.opportunity-closed-on": "終了日",
71
+ "field.opportunity-lost-reason": "失注理由",
72
+ "field.opportunity-event-at": "日時",
73
+ "field.opportunity-event-actor": "処理者",
74
+ "field.opportunity-event-action": "内容",
75
+ "text.opportunity-stage-lead": "発掘",
76
+ "text.opportunity-stage-proposal": "提案",
77
+ "text.opportunity-stage-quoted": "見積",
78
+ "text.opportunity-stage-negotiation": "交渉",
79
+ "text.opportunity-stage-won": "受注",
80
+ "text.opportunity-stage-lost": "失注",
81
+ "text.opportunity-empty": "商談がありません。",
82
+ "text.opportunity-empty-description": "商談登録で最初の商談を作成します。",
83
+ "text.opportunity-not-found": "商談が見つかりません。",
84
+ "text.opportunity-section-head": "基本情報",
85
+ "text.opportunity-section-stage": "段階",
86
+ "text.opportunity-section-lose": "失注",
87
+ "text.opportunity-section-history": "履歴",
88
+ "text.opportunity-counterparty-search": "取引先名または事業者番号",
89
+ "text.opportunity-owner-me": "自分",
90
+ "text.opportunity-event-created": "登録",
91
+ "text.opportunity-event-updated": "変更",
92
+ "text.opportunity-event-staged": "段階変更",
93
+ "text.opportunity-event-won": "受注",
94
+ "text.opportunity-event-lost": "失注",
95
+ "title.opportunity": "商談",
96
+ "title.opportunity-list": "商談",
97
+ "title.opportunity-new": "新しい商談"
98
+ }
@@ -0,0 +1,98 @@
1
+ {
2
+ "button.quotation-accept": "수락 처리",
3
+ "button.quotation-expire": "만료 처리",
4
+ "button.quotation-new": "견적 작성",
5
+ "button.quotation-print": "인쇄",
6
+ "button.quotation-reject": "거절 처리",
7
+ "button.quotation-revise": "개정",
8
+ "button.quotation-send": "발송",
9
+ "error.quotation-draft-required": "발송한 견적을 수정하려면 개정본을 생성해 주세요.",
10
+ "error.quotation-issue-date-required": "보내기 전에 작성일을 입력하세요.",
11
+ "error.quotation-latest-required": "가장 최근 판을 개정하세요.",
12
+ "error.quotation-not-found": "견적을 찾을 수 없습니다.",
13
+ "error.quotation-number-duplicate": "이미 사용한 견적 번호입니다.",
14
+ "error.quotation-reason-required": "거절 사유를 입력하세요.",
15
+ "error.quotation-revision-invalid": "발송 후 아직 수락되지 않은 견적만 개정할 수 있습니다.",
16
+ "error.quotation-revision-number": "개정본은 견적 번호를 바꿀 수 없습니다.",
17
+ "error.quotation-transition-invalid": "견적 상태나 유효기한 때문에 할 수 없습니다.",
18
+ "error.quotation-valid-until": "유효기한을 입력하세요.",
19
+ "field.quotation-outcome-reason": "거절 사유",
20
+ "field.quotation-valid-until": "유효기한",
21
+ "field.quotation-version": "판",
22
+ "text.quotation-empty": "견적이 없습니다.",
23
+ "text.quotation-empty-description": "견적 작성으로 첫 견적을 만듭니다.",
24
+ "text.quotation-not-found": "견적을 찾을 수 없습니다.",
25
+ "text.quotation-section-decline": "거절",
26
+ "text.quotation-status-accepted": "수락",
27
+ "text.quotation-status-draft": "작성 중",
28
+ "text.quotation-status-expired": "기한 만료",
29
+ "text.quotation-status-rejected": "거절",
30
+ "text.quotation-status-sent": "발송",
31
+ "text.quotation-status-superseded": "개정됨",
32
+ "title.quotation": "견적",
33
+ "title.quotation-list": "견적",
34
+ "title.quotation-new": "새 견적",
35
+ "title.quotation-print": "견적서",
36
+ "field.quotation-counterpart": "거래처",
37
+ "field.quotation-issue-date": "작성일",
38
+ "field.quotation-number": "견적 번호",
39
+ "field.quotation-status": "상태",
40
+ "field.quotation-total-amount": "견적 금액",
41
+ "text.quotation-section-head": "기본 정보",
42
+ "text.quotation-section-lines": "품목",
43
+ "text.quotation-section-totals": "금액",
44
+ "button.opportunity-new": "영업 기회 등록",
45
+ "button.opportunity-lose": "실주 처리",
46
+ "button.opportunity-clear": "지우기",
47
+ "error.opportunity-not-found": "영업 기회를 찾을 수 없습니다.",
48
+ "error.opportunity-closed": "종료된 영업 기회입니다. 실주한 기회는 진행 단계를 골라 다시 엽니다.",
49
+ "error.opportunity-stage-open-required": "진행 단계를 고르세요. 수주와 실주는 종료 처리로 합니다.",
50
+ "error.opportunity-stage-move-invalid": "그 단계로 옮길 수 없습니다.",
51
+ "error.opportunity-name-required": "기회 이름을 입력하세요.",
52
+ "error.opportunity-amount-invalid": "예상 금액은 0 이상이어야 합니다.",
53
+ "error.opportunity-close-month-invalid": "예상 수주월을 입력하세요.",
54
+ "error.opportunity-probability-invalid": "확률은 0에서 100 사이의 정수입니다.",
55
+ "error.opportunity-counterparty-required": "거래처를 고르세요.",
56
+ "error.opportunity-end-customer-invalid": "최종 고객은 등록된 거래처에서 고르세요.",
57
+ "error.opportunity-owner-invalid": "담당자는 이 회사 사용자 중에서 고르세요.",
58
+ "error.opportunity-reason-required": "실주 사유를 입력하세요.",
59
+ "error.opportunity-closed-on-invalid": "종료일을 YYYY-MM-DD 형식으로 입력하세요.",
60
+ "field.opportunity-name": "기회 이름",
61
+ "field.opportunity-counterparty": "거래처",
62
+ "field.opportunity-end-customer": "최종 고객",
63
+ "field.opportunity-amount": "예상 금액",
64
+ "field.opportunity-currency": "통화",
65
+ "field.opportunity-expected-close-month": "예상 수주월",
66
+ "field.opportunity-owner": "담당자",
67
+ "field.opportunity-description": "메모",
68
+ "field.opportunity-stage": "단계",
69
+ "field.opportunity-probability": "확률",
70
+ "field.opportunity-closed-on": "종료일",
71
+ "field.opportunity-lost-reason": "실주 사유",
72
+ "field.opportunity-event-at": "일시",
73
+ "field.opportunity-event-actor": "처리자",
74
+ "field.opportunity-event-action": "내용",
75
+ "text.opportunity-stage-lead": "발굴",
76
+ "text.opportunity-stage-proposal": "제안",
77
+ "text.opportunity-stage-quoted": "견적",
78
+ "text.opportunity-stage-negotiation": "협상",
79
+ "text.opportunity-stage-won": "수주",
80
+ "text.opportunity-stage-lost": "실주",
81
+ "text.opportunity-empty": "영업 기회가 없습니다.",
82
+ "text.opportunity-empty-description": "영업 기회 등록으로 첫 기회를 만듭니다.",
83
+ "text.opportunity-not-found": "영업 기회를 찾을 수 없습니다.",
84
+ "text.opportunity-section-head": "기본 정보",
85
+ "text.opportunity-section-stage": "단계",
86
+ "text.opportunity-section-lose": "실주",
87
+ "text.opportunity-section-history": "이력",
88
+ "text.opportunity-counterparty-search": "거래처 이름 또는 사업자번호",
89
+ "text.opportunity-owner-me": "나",
90
+ "text.opportunity-event-created": "등록",
91
+ "text.opportunity-event-updated": "수정",
92
+ "text.opportunity-event-staged": "단계 변경",
93
+ "text.opportunity-event-won": "수주",
94
+ "text.opportunity-event-lost": "실주",
95
+ "title.opportunity": "영업 기회",
96
+ "title.opportunity-list": "영업 기회",
97
+ "title.opportunity-new": "새 영업 기회"
98
+ }