odoo-addon-request-document 15.0.2.0.0__py3-none-any.whl

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.
@@ -0,0 +1,60 @@
1
+ ================
2
+ Request Document
3
+ ================
4
+
5
+ ..
6
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
7
+ !! This file is generated by oca-gen-addon-readme !!
8
+ !! changes will be overwritten. !!
9
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10
+ !! source digest: sha256:b9804fee71a46020f42f466346573955191d225940d643647e1d2128ec058b57
11
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
12
+
13
+ .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
14
+ :target: https://odoo-community.org/page/development-status
15
+ :alt: Beta
16
+ .. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
17
+ :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
18
+ :alt: License: AGPL-3
19
+ .. |badge3| image:: https://img.shields.io/badge/github-ecosoft--odoo%2Fecosoft--addons-lightgray.png?logo=github
20
+ :target: https://github.com/ecosoft-odoo/ecosoft-addons/tree/15.0/request_document
21
+ :alt: ecosoft-odoo/ecosoft-addons
22
+
23
+ |badge1| |badge2| |badge3|
24
+
25
+ # TODO
26
+
27
+ **Table of contents**
28
+
29
+ .. contents::
30
+ :local:
31
+
32
+ Bug Tracker
33
+ ===========
34
+
35
+ Bugs are tracked on `GitHub Issues <https://github.com/ecosoft-odoo/ecosoft-addons/issues>`_.
36
+ In case of trouble, please check there if your issue has already been reported.
37
+ If you spotted it first, help us to smash it by providing a detailed and welcomed
38
+ `feedback <https://github.com/ecosoft-odoo/ecosoft-addons/issues/new?body=module:%20request_document%0Aversion:%2015.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
39
+
40
+ Do not contact contributors directly about support or help with technical issues.
41
+
42
+ Credits
43
+ =======
44
+
45
+ Authors
46
+ ~~~~~~~
47
+
48
+ * Ecosoft
49
+
50
+ Contributors
51
+ ~~~~~~~~~~~~
52
+
53
+ * Saran Lim. <saranl@ecosoft.co.th>
54
+
55
+ Maintainers
56
+ ~~~~~~~~~~~
57
+
58
+ This module is part of the `ecosoft-odoo/ecosoft-addons <https://github.com/ecosoft-odoo/ecosoft-addons/tree/15.0/request_document>`_ project on GitHub.
59
+
60
+ You are welcome to contribute.
@@ -0,0 +1,3 @@
1
+ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
2
+
3
+ from . import models
@@ -0,0 +1,22 @@
1
+ # Copyright 2024 Ecosoft Co., Ltd (https://ecosoft.co.th)
2
+ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
3
+
4
+ {
5
+ "name": "Request Document",
6
+ "version": "15.0.2.0.0",
7
+ "license": "AGPL-3",
8
+ "category": "Accounting & Finance",
9
+ "author": "Ecosoft, Odoo Community Association (OCA)",
10
+ "website": "https://github.com/ecosoft-odoo/ecosoft-addons",
11
+ "depends": ["base", "mail"],
12
+ "data": [
13
+ "security/ir.model.access.csv",
14
+ "security/request_order_security.xml",
15
+ "data/request_order_data.xml",
16
+ "views/request_menuitem.xml",
17
+ "views/res_config_settings_views.xml",
18
+ "views/request_order_view.xml",
19
+ "views/request_document_view.xml",
20
+ ],
21
+ "installable": True,
22
+ }
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="utf-8" ?>
2
+ <odoo noupdate="1">
3
+ <record id="seq_request" model="ir.sequence">
4
+ <field name="name">Request Sequence</field>
5
+ <field name="code">request.order</field>
6
+ <field name="padding" eval="5" />
7
+ <field name="prefix">RQ</field>
8
+ </record>
9
+ </odoo>
@@ -0,0 +1,395 @@
1
+ # Translation of Odoo Server.
2
+ # This file contains the translation of the following modules:
3
+ # * request_document
4
+ #
5
+ msgid ""
6
+ msgstr ""
7
+ "Project-Id-Version: Odoo Server 15.0\n"
8
+ "Report-Msgid-Bugs-To: \n"
9
+ "Last-Translator: \n"
10
+ "Language-Team: \n"
11
+ "MIME-Version: 1.0\n"
12
+ "Content-Type: text/plain; charset=UTF-8\n"
13
+ "Content-Transfer-Encoding: \n"
14
+ "Plural-Forms: \n"
15
+
16
+ #. module: request_document
17
+ #: model:ir.model.fields,field_description:request_document.field_request_order__message_needaction
18
+ msgid "Action Needed"
19
+ msgstr ""
20
+
21
+ #. module: request_document
22
+ #: model:ir.model.fields,field_description:request_document.field_request_order__activity_ids
23
+ msgid "Activities"
24
+ msgstr ""
25
+
26
+ #. module: request_document
27
+ #: model:ir.model.fields,field_description:request_document.field_request_order__activity_exception_decoration
28
+ msgid "Activity Exception Decoration"
29
+ msgstr ""
30
+
31
+ #. module: request_document
32
+ #: model:ir.model.fields,field_description:request_document.field_request_order__activity_state
33
+ msgid "Activity State"
34
+ msgstr ""
35
+
36
+ #. module: request_document
37
+ #: model:ir.model.fields,field_description:request_document.field_request_order__activity_type_icon
38
+ msgid "Activity Type Icon"
39
+ msgstr ""
40
+
41
+ #. module: request_document
42
+ #: model_terms:ir.ui.view,arch_db:request_document.view_request_order_form
43
+ msgid "Approve"
44
+ msgstr ""
45
+
46
+ #. module: request_document
47
+ #: model:ir.model.fields.selection,name:request_document.selection__request_order__state__approve
48
+ msgid "Approved"
49
+ msgstr ""
50
+
51
+ #. module: request_document
52
+ #: model:ir.model.fields,field_description:request_document.field_request_order__message_attachment_count
53
+ msgid "Attachment Count"
54
+ msgstr ""
55
+
56
+ #. module: request_document
57
+ #: model_terms:ir.ui.view,arch_db:request_document.view_request_order_form
58
+ msgid "Cancel"
59
+ msgstr ""
60
+
61
+ #. module: request_document
62
+ #: model:ir.model.fields.selection,name:request_document.selection__request_order__state__cancel
63
+ msgid "Cancelled"
64
+ msgstr ""
65
+
66
+ #. module: request_document
67
+ #: model:ir.model.fields,field_description:request_document.field_request_document__company_id
68
+ #: model:ir.model.fields,field_description:request_document.field_request_order__company_id
69
+ msgid "Company"
70
+ msgstr ""
71
+
72
+ #. module: request_document
73
+ #: model:ir.ui.menu,name:request_document.request_config_menu
74
+ msgid "Configurations"
75
+ msgstr ""
76
+
77
+ #. module: request_document
78
+ #: model_terms:ir.ui.view,arch_db:request_document.view_request_order_search
79
+ msgid "Created By"
80
+ msgstr ""
81
+
82
+ #. module: request_document
83
+ #: model:ir.model.fields,field_description:request_document.field_request_document__create_uid
84
+ #: model:ir.model.fields,field_description:request_document.field_request_order__create_uid
85
+ msgid "Created by"
86
+ msgstr ""
87
+
88
+ #. module: request_document
89
+ #: model:ir.model.fields,field_description:request_document.field_request_document__create_date
90
+ #: model:ir.model.fields,field_description:request_document.field_request_order__create_date
91
+ msgid "Created on"
92
+ msgstr ""
93
+
94
+ #. module: request_document
95
+ #: model:ir.model.fields,field_description:request_document.field_request_document__currency_id
96
+ #: model:ir.model.fields,field_description:request_document.field_request_order__currency_id
97
+ msgid "Currency"
98
+ msgstr ""
99
+
100
+ #. module: request_document
101
+ #: model:ir.model.fields,field_description:request_document.field_request_document__display_name
102
+ #: model:ir.model.fields,field_description:request_document.field_request_order__display_name
103
+ msgid "Display Name"
104
+ msgstr ""
105
+
106
+ #. module: request_document
107
+ #: model:ir.model.fields,field_description:request_document.field_request_document__name_document
108
+ #: model_terms:ir.ui.view,arch_db:request_document.view_request_order_form
109
+ msgid "Document"
110
+ msgstr ""
111
+
112
+ #. module: request_document
113
+ #: model:ir.model.fields.selection,name:request_document.selection__request_order__state__done
114
+ #: model_terms:ir.ui.view,arch_db:request_document.view_request_order_form
115
+ msgid "Done"
116
+ msgstr ""
117
+
118
+ #. module: request_document
119
+ #: model:ir.model.fields.selection,name:request_document.selection__request_order__state__draft
120
+ msgid "Draft"
121
+ msgstr ""
122
+
123
+ #. module: request_document
124
+ #: model:ir.model.fields,field_description:request_document.field_request_order__message_follower_ids
125
+ msgid "Followers"
126
+ msgstr ""
127
+
128
+ #. module: request_document
129
+ #: model:ir.model.fields,field_description:request_document.field_request_order__message_partner_ids
130
+ msgid "Followers (Partners)"
131
+ msgstr ""
132
+
133
+ #. module: request_document
134
+ #: model:ir.model.fields,help:request_document.field_request_order__activity_type_icon
135
+ msgid "Font awesome icon e.g. fa-tasks"
136
+ msgstr ""
137
+
138
+ #. module: request_document
139
+ #: model_terms:ir.ui.view,arch_db:request_document.view_request_order_search
140
+ msgid "Group By"
141
+ msgstr ""
142
+
143
+ #. module: request_document
144
+ #: model:ir.model.fields,field_description:request_document.field_request_order__has_message
145
+ msgid "Has Message"
146
+ msgstr ""
147
+
148
+ #. module: request_document
149
+ #: model:ir.model.fields,field_description:request_document.field_request_document__id
150
+ #: model:ir.model.fields,field_description:request_document.field_request_order__id
151
+ msgid "ID"
152
+ msgstr ""
153
+
154
+ #. module: request_document
155
+ #: model:ir.model.fields,field_description:request_document.field_request_order__activity_exception_icon
156
+ msgid "Icon"
157
+ msgstr ""
158
+
159
+ #. module: request_document
160
+ #: model:ir.model.fields,help:request_document.field_request_order__activity_exception_icon
161
+ msgid "Icon to indicate an exception activity."
162
+ msgstr ""
163
+
164
+ #. module: request_document
165
+ #: model:ir.model.fields,help:request_document.field_request_order__message_needaction
166
+ #: model:ir.model.fields,help:request_document.field_request_order__message_unread
167
+ msgid "If checked, new messages require your attention."
168
+ msgstr ""
169
+
170
+ #. module: request_document
171
+ #: model:ir.model.fields,help:request_document.field_request_order__message_has_error
172
+ msgid "If checked, some messages have a delivery error."
173
+ msgstr ""
174
+
175
+ #. module: request_document
176
+ #: model:ir.model.fields,field_description:request_document.field_request_order__message_is_follower
177
+ msgid "Is Follower"
178
+ msgstr ""
179
+
180
+ #. module: request_document
181
+ #: model:ir.model.fields,field_description:request_document.field_request_document____last_update
182
+ #: model:ir.model.fields,field_description:request_document.field_request_order____last_update
183
+ msgid "Last Modified on"
184
+ msgstr ""
185
+
186
+ #. module: request_document
187
+ #: model:ir.model.fields,field_description:request_document.field_request_document__write_uid
188
+ #: model:ir.model.fields,field_description:request_document.field_request_order__write_uid
189
+ msgid "Last Updated by"
190
+ msgstr ""
191
+
192
+ #. module: request_document
193
+ #: model:ir.model.fields,field_description:request_document.field_request_document__write_date
194
+ #: model:ir.model.fields,field_description:request_document.field_request_order__write_date
195
+ msgid "Last Updated on"
196
+ msgstr ""
197
+
198
+ #. module: request_document
199
+ #: model:ir.model.fields,field_description:request_document.field_request_order__line_ids
200
+ msgid "Line"
201
+ msgstr ""
202
+
203
+ #. module: request_document
204
+ #: model:ir.model.fields,field_description:request_document.field_request_order__message_main_attachment_id
205
+ msgid "Main Attachment"
206
+ msgstr ""
207
+
208
+ #. module: request_document
209
+ #: model:ir.model.fields,field_description:request_document.field_request_order__message_has_error
210
+ msgid "Message Delivery error"
211
+ msgstr ""
212
+
213
+ #. module: request_document
214
+ #: model:ir.model.fields,field_description:request_document.field_request_order__message_ids
215
+ msgid "Messages"
216
+ msgstr ""
217
+
218
+ #. module: request_document
219
+ #: model:ir.model.fields,field_description:request_document.field_request_order__my_activity_date_deadline
220
+ msgid "My Activity Deadline"
221
+ msgstr ""
222
+
223
+ #. module: request_document
224
+ #: model:ir.model.fields,field_description:request_document.field_request_order__name
225
+ msgid "Name"
226
+ msgstr ""
227
+
228
+ #. module: request_document
229
+ #: model:ir.model.fields,field_description:request_document.field_request_order__activity_date_deadline
230
+ msgid "Next Activity Deadline"
231
+ msgstr ""
232
+
233
+ #. module: request_document
234
+ #: model:ir.model.fields,field_description:request_document.field_request_order__activity_summary
235
+ msgid "Next Activity Summary"
236
+ msgstr ""
237
+
238
+ #. module: request_document
239
+ #: model:ir.model.fields,field_description:request_document.field_request_order__activity_type_id
240
+ msgid "Next Activity Type"
241
+ msgstr ""
242
+
243
+ #. module: request_document
244
+ #: model:ir.model.fields,field_description:request_document.field_request_order__message_needaction_counter
245
+ msgid "Number of Actions"
246
+ msgstr ""
247
+
248
+ #. module: request_document
249
+ #: model:ir.model.fields,field_description:request_document.field_request_order__message_has_error_counter
250
+ msgid "Number of errors"
251
+ msgstr ""
252
+
253
+ #. module: request_document
254
+ #: model:ir.model.fields,help:request_document.field_request_order__message_needaction_counter
255
+ msgid "Number of messages which requires an action"
256
+ msgstr ""
257
+
258
+ #. module: request_document
259
+ #: model:ir.model.fields,help:request_document.field_request_order__message_has_error_counter
260
+ msgid "Number of messages with delivery error"
261
+ msgstr ""
262
+
263
+ #. module: request_document
264
+ #: model:ir.model.fields,help:request_document.field_request_order__message_unread_counter
265
+ msgid "Number of unread messages"
266
+ msgstr ""
267
+
268
+ #. module: request_document
269
+ #: model_terms:ir.ui.view,arch_db:request_document.view_request_document_tree
270
+ msgid "Open Details"
271
+ msgstr ""
272
+
273
+ #. module: request_document
274
+ #: model:ir.model.fields,field_description:request_document.field_request_document__name
275
+ msgid "Reference"
276
+ msgstr ""
277
+
278
+ #. module: request_document
279
+ #: model:ir.model.fields,field_description:request_document.field_request_document__request_id
280
+ #: model:ir.ui.menu,name:request_document.request_menu
281
+ #: model_terms:ir.ui.view,arch_db:request_document.view_request_order_form
282
+ msgid "Request"
283
+ msgstr ""
284
+
285
+ #. module: request_document
286
+ #: model:ir.model,name:request_document.model_request_document
287
+ #: model_terms:ir.ui.view,arch_db:request_document.res_config_settings_view_form_request_document
288
+ msgid "Request Document"
289
+ msgstr ""
290
+
291
+ #. module: request_document
292
+ #: model:ir.actions.act_window,name:request_document.action_request_order
293
+ #: model:ir.model,name:request_document.model_request_order
294
+ #: model:ir.ui.menu,name:request_document.menu_request_order
295
+ msgid "Request Order"
296
+ msgstr ""
297
+
298
+ #. module: request_document
299
+ #: model:ir.model.fields,field_description:request_document.field_request_document__request_type
300
+ msgid "Request Type"
301
+ msgstr ""
302
+
303
+ #. module: request_document
304
+ #: model:ir.ui.menu,name:request_document.request_order_menu
305
+ msgid "Requests"
306
+ msgstr ""
307
+
308
+ #. module: request_document
309
+ #: model_terms:ir.ui.view,arch_db:request_document.view_request_order_form
310
+ msgid "Reset to Draft"
311
+ msgstr ""
312
+
313
+ #. module: request_document
314
+ #: model:ir.model.fields,field_description:request_document.field_request_order__activity_user_id
315
+ msgid "Responsible User"
316
+ msgstr ""
317
+
318
+ #. module: request_document
319
+ #: model:ir.actions.act_window,name:request_document.action_request_configuration
320
+ #: model:ir.ui.menu,name:request_document.request_settings_menu
321
+ msgid "Settings"
322
+ msgstr ""
323
+
324
+ #. module: request_document
325
+ #: model:ir.model.fields,field_description:request_document.field_request_document__state
326
+ #: model:ir.model.fields,field_description:request_document.field_request_order__state
327
+ #: model_terms:ir.ui.view,arch_db:request_document.view_request_order_search
328
+ msgid "State"
329
+ msgstr ""
330
+
331
+ #. module: request_document
332
+ #: model:ir.model.fields,help:request_document.field_request_order__activity_state
333
+ msgid ""
334
+ "Status based on activities\n"
335
+ "Overdue: Due date is already passed\n"
336
+ "Today: Activity date is today\n"
337
+ "Planned: Future activities."
338
+ msgstr ""
339
+
340
+ #. module: request_document
341
+ #: model_terms:ir.ui.view,arch_db:request_document.view_request_order_form
342
+ msgid "Submit"
343
+ msgstr ""
344
+
345
+ #. module: request_document
346
+ #: model:ir.model.fields.selection,name:request_document.selection__request_order__state__submit
347
+ msgid "Submitted"
348
+ msgstr ""
349
+
350
+ #. module: request_document
351
+ #: model:ir.model.fields,field_description:request_document.field_request_document__total_amount_document
352
+ #: model:ir.model.fields,field_description:request_document.field_request_order__total_amount_document
353
+ msgid "Total Amount Document"
354
+ msgstr ""
355
+
356
+ #. module: request_document
357
+ #: model:ir.model.fields,field_description:request_document.field_request_document__total_amount_request
358
+ #: model:ir.model.fields,field_description:request_document.field_request_order__total_amount_request
359
+ msgid "Total Amount Request"
360
+ msgstr ""
361
+
362
+ #. module: request_document
363
+ #: model:ir.model.fields,help:request_document.field_request_order__activity_exception_decoration
364
+ msgid "Type of the exception activity on record."
365
+ msgstr ""
366
+
367
+ #. module: request_document
368
+ #: model:ir.model.fields,field_description:request_document.field_request_order__message_unread
369
+ msgid "Unread Messages"
370
+ msgstr ""
371
+
372
+ #. module: request_document
373
+ #: model:ir.model.fields,field_description:request_document.field_request_order__message_unread_counter
374
+ msgid "Unread Messages Counter"
375
+ msgstr ""
376
+
377
+ #. module: request_document
378
+ #: model:ir.model.fields,field_description:request_document.field_request_order__website_message_ids
379
+ msgid "Website Messages"
380
+ msgstr ""
381
+
382
+ #. module: request_document
383
+ #: model:ir.model.fields,help:request_document.field_request_order__website_message_ids
384
+ msgid "Website communication history"
385
+ msgstr ""
386
+
387
+ #. module: request_document
388
+ #: model_terms:ir.ui.view,arch_db:request_document.view_request_document_tree
389
+ msgid "total_document"
390
+ msgstr ""
391
+
392
+ #. module: request_document
393
+ #: model_terms:ir.ui.view,arch_db:request_document.view_request_document_tree
394
+ msgid "total_request"
395
+ msgstr ""
@@ -0,0 +1,4 @@
1
+ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
2
+
3
+ from . import request_order
4
+ from . import request_document
@@ -0,0 +1,68 @@
1
+ # Copyright 2024 Ecosoft Co., Ltd. (http://ecosoft.co.th)
2
+ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
3
+
4
+ from odoo import api, fields, models
5
+
6
+
7
+ class RequestDocument(models.Model):
8
+ _name = "request.document"
9
+ _description = "Request Document"
10
+
11
+ request_id = fields.Many2one(
12
+ comodel_name="request.order",
13
+ index=True,
14
+ required=True,
15
+ ondelete="cascade",
16
+ )
17
+ name = fields.Char(
18
+ compute="_compute_name_document",
19
+ store=True,
20
+ string="Reference",
21
+ )
22
+ name_document = fields.Char(
23
+ string="Document",
24
+ compute="_compute_document",
25
+ store=True,
26
+ )
27
+ total_amount_request = fields.Monetary()
28
+ total_amount_document = fields.Monetary(
29
+ compute="_compute_document",
30
+ store=True,
31
+ )
32
+ request_type = fields.Selection(
33
+ selection=[],
34
+ required=True,
35
+ )
36
+ state = fields.Selection(
37
+ related="request_id.state",
38
+ store=True,
39
+ )
40
+ company_id = fields.Many2one(
41
+ related="request_id.company_id",
42
+ store=True,
43
+ )
44
+ currency_id = fields.Many2one(
45
+ comodel_name="res.currency",
46
+ compute="_compute_currency_id",
47
+ store=True,
48
+ readonly=False,
49
+ )
50
+
51
+ @api.depends("company_id")
52
+ def _compute_currency_id(self):
53
+ for rec in self:
54
+ rec.currency_id = rec.company_id.currency_id
55
+
56
+ @api.depends("request_id")
57
+ def _compute_name_document(self):
58
+ for rec in self:
59
+ if rec.id:
60
+ rec.name = f"{rec.request_id.name} - {rec.id}"
61
+
62
+ def open_request_document(self):
63
+ return
64
+
65
+ def _compute_document(self):
66
+ for rec in self:
67
+ rec.name_document = ""
68
+ rec.total_amount_document = 0.0
@@ -0,0 +1,99 @@
1
+ # Copyright 2024 Ecosoft Co., Ltd. (http://ecosoft.co.th)
2
+ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
3
+
4
+ from odoo import api, fields, models
5
+
6
+
7
+ class RequestOrder(models.Model):
8
+ _name = "request.order"
9
+ _inherit = ["mail.thread", "mail.activity.mixin"]
10
+ _description = "Request Order"
11
+ _check_company_auto = True
12
+ _order = "name desc"
13
+
14
+ name = fields.Char(
15
+ default="/",
16
+ readonly=True,
17
+ copy=False,
18
+ tracking=True,
19
+ )
20
+ company_id = fields.Many2one(
21
+ comodel_name="res.company",
22
+ required=True,
23
+ default=lambda self: self.env.company,
24
+ )
25
+ currency_id = fields.Many2one(
26
+ comodel_name="res.currency", related="company_id.currency_id"
27
+ )
28
+ line_ids = fields.One2many(
29
+ comodel_name="request.document",
30
+ inverse_name="request_id",
31
+ readonly=True,
32
+ states={"draft": [("readonly", False)]},
33
+ )
34
+ state = fields.Selection(
35
+ selection=[
36
+ ("draft", "Draft"),
37
+ ("submit", "Submitted"),
38
+ ("approve", "Approved"),
39
+ ("done", "Done"),
40
+ ("cancel", "Cancelled"),
41
+ ],
42
+ default="draft",
43
+ tracking=True,
44
+ )
45
+ total_amount_document = fields.Monetary(
46
+ compute="_compute_total_amount",
47
+ store=True,
48
+ tracking=True,
49
+ )
50
+ total_amount_request = fields.Monetary(
51
+ compute="_compute_total_amount",
52
+ store=True,
53
+ tracking=True,
54
+ )
55
+
56
+ @api.depends("line_ids.total_amount_document", "line_ids.total_amount_request")
57
+ def _compute_total_amount(self):
58
+ for rec in self:
59
+ request_document = rec.line_ids
60
+ rec.total_amount_document = sum(
61
+ request_document.mapped("total_amount_document")
62
+ )
63
+ rec.total_amount_request = sum(
64
+ request_document.mapped("total_amount_request")
65
+ )
66
+
67
+ @api.model_create_multi
68
+ def create(self, vals_list):
69
+ for vals in vals_list:
70
+ if vals.get("name", "/") == "/":
71
+ vals["name"] = (
72
+ self.env["ir.sequence"].next_by_code("request.order") or "/"
73
+ )
74
+ return super().create(vals_list)
75
+
76
+ def action_submit(self):
77
+ for rec in self:
78
+ for line in rec.line_ids:
79
+ line.total_amount_request = line.total_amount_document
80
+ return self.write({"state": "submit"})
81
+
82
+ def action_approve(self):
83
+ return self.write({"state": "approve"})
84
+
85
+ def action_done(self):
86
+ return self.write({"state": "done"})
87
+
88
+ def action_process_document(self):
89
+ """Hook method to process document"""
90
+ for rec in self:
91
+ for line in rec.line_ids:
92
+ getattr(line, "_create_%s" % line.request_type)()
93
+ return self.action_done()
94
+
95
+ def action_cancel(self):
96
+ return self.write({"state": "cancel"})
97
+
98
+ def action_draft(self):
99
+ return self.write({"state": "draft"})
@@ -0,0 +1 @@
1
+ * Saran Lim. <saranl@ecosoft.co.th>
@@ -0,0 +1 @@
1
+ # TODO
@@ -0,0 +1,3 @@
1
+ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
2
+ access_request_order,access_request_order,model_request_order,,1,1,1,1
3
+ access_request_document,access_request_document,model_request_document,,1,1,1,1
@@ -0,0 +1,10 @@
1
+ <?xml version="1.0" encoding="utf-8" ?>
2
+ <odoo noupdate="1">
3
+ <record id="request_order_rule" model="ir.rule">
4
+ <field name="name">Request multi-company</field>
5
+ <field name="model_id" ref="model_request_order" />
6
+ <field name="domain_force">
7
+ ['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]
8
+ </field>
9
+ </record>
10
+ </odoo>