GithubHelp home page GithubHelp logo

oca / l10n-thailand Goto Github PK

View Code? Open in Web Editor NEW
50.0 41.0 65.0 8.37 MB

Thai localization

License: GNU Affero General Public License v3.0

Python 47.80% HTML 48.76% CSS 0.52% JavaScript 1.54% SCSS 1.38%

l10n-thailand's Introduction

Runboat Build Status codecov Translation Status

l10n-thailand

TODO: add repo description.

Available addons

addon version maintainers summary
l10n_th_account_asset_management 14.0.1.0.0 ps-tubtim Thai Localization - Assets Management
l10n_th_amount_to_text 14.0.1.0.0 Saran440 Convert Amount Text to Thai
l10n_th_base_location 14.0.1.0.0 Thai Localization - Base Location
l10n_th_company_novat 14.0.1.1.0 kittiu Thai Localization - Comapny/Partner, VAT/NOVAT setup
l10n_th_expense_tax_invoice 14.0.1.0.1 kittiu Thai Localization - Expense Tax Invoice
l10n_th_expense_withholding_tax 14.0.1.0.0 Saran440 Thai Localization - Expense Withholding Tax
l10n_th_fonts 14.0.1.0.2 Saran440 Collection of all fonts thai
l10n_th_gov_purchase_agreement 14.0.1.0.0 newtratip Thai Localization - Government Purchase Agreement
l10n_th_gov_purchase_guarantee 14.0.1.0.0 Thai Localization - Government Purchase Guarantee
l10n_th_gov_purchase_request 14.0.1.0.0 kittiu Thai Localization - Government Purchase Request
l10n_th_gov_work_acceptance 14.0.1.0.0 kittiu Thai Localization - Government Work Acceptance
l10n_th_partner 14.0.2.2.0 kittiu Thai Localization - Partner
l10n_th_promptpay 14.0.1.0.0 Use PromptPay QR code with transfer acquirer.
l10n_th_sequence_be 14.0.1.0.1 Thai Localization - Sequence with Buddhist Era Year
l10n_th_sequence_branch 14.0.1.0.0 Thai Localization - Sequence with Company Branch
l10n_th_sequence_preview 14.0.1.0.0 Sequence Preview
l10n_th_sequence_qoy 14.0.1.0.1 Thai Localization - Sequence with Quarter
l10n_th_sequence_range_end 14.0.1.0.0 Sequence - Range End
l10n_th_sequence_refactored 14.0.1.0.1 Base Sequence
l10n_th_tax_invoice 14.0.1.0.3 kittiu Thai Localization - Account Tax Invoice
l10n_th_tax_report 14.0.1.0.0 Thailand Localization - TAX Reports
l10n_th_withholding_tax 14.0.1.0.3 kittiu Thai Localization - Withholding Tax
l10n_th_withholding_tax_cert 14.0.1.0.1 kittiu Thai Localization - Withholding Tax Certificate
l10n_th_withholding_tax_cert_form 14.0.1.0.1 Thai Localization - Withholding Tax Certificate Form
l10n_th_withholding_tax_report 14.0.1.0.0 Thailand Localization - Withholding Tax Report

Licenses

This repository is licensed under AGPL-3.0.

However, each module can have a totally different license, as long as they adhere to Odoo Community Association (OCA) policy. Consult each module's __manifest__.py file, which contains a license key that explains its license.


OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

l10n-thailand's People

Contributors

amincheloh avatar kittiu avatar komsan-s avatar kongrattapong avatar kranokporn avatar newtratip avatar oca-git-bot avatar oca-transbot avatar oca-travis avatar poonlap avatar ps-tubtim avatar sansirit avatar saran440 avatar sbidoul avatar weblate avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

l10n-thailand's Issues

Runbot Icon

@pedrobaeza do you know how to enable the Runbot icon? I try to imitate from here. but what is the repo_id? Thanks!
Runbot Status

base_location_thailand ไฟล์ข้อมูล zip หายไป

image

ผมลองทดสอบโมดูล https://github.com/OCA/l10n-thailand/tree/13.0/base_location_thailand
พบว่าไฟล์ ZIP หาย repo ของ ecosoft หายไปครับ. เข้าใจว่าน่าจะต้องแก้โค้ดให้ชี้มาที่ OCA

แต่ผมลองเข้าไปดูที่
https://github.com/OCA/l10n-thailand/tree/13.0/base_location_thailand/data
ก็ไม่มี ZIP เช่นกันครับ

Thai Localization as discussed with Odoo for v13

Points of discussion

  • Vendor Tax Invoice

    • New fields tax_invoice_number and tax_invoice_date in account.move.line
    • VAT -- Ability to input it directly in Supplier Invoice window.
    • Undue VAT -- Cash basis journal should not post before + ability to input it directly in Payment window.
    • VAT Report -- Use new 2 new fields in tax report (Vendor Tax only)
  • WHT Cert

    • Multiple deduction on Payment window.
    • New WHT Cert window
    • New menu WHT Cert Line for reporting purpose.
  • Account Billing

    • Use follow up report in Odoo Enterprise
  • Bank In Transit

    • Use Journal with option "Post at Bank Reconcilation
    • Then, use Bank Statement to reconcile to bank, it will be posted.
    • Note: not really what we expect, it is just not yet posted, not that there is real in-transit account.

Migration to version 13.0

Todo

https://github.com/OCA/maintainer-tools/wiki/Migration-to-version-13.0

Modules to migrate

  • account_create_tax_cash_basis_entry_hook (not required)
  • l10n_th_account_report (removed) (removed)
  • l10n_th_partner #52
  • l10n_th_tax_report #66 (addon name changed)
  • l10n_th_vendor_tax_invoice #55
  • l10n_th_withholding_tax_cert #51
  • l10n_th_withholding_tax_cert_form #53
  • l10n_th_withholding_tax_report #81

Missing module? Check https://github.com/OCA/maintainer-tools/wiki/%5BFAQ%5D-Missing-modules-in-migration-issue-list

[13.0][TODO] Closing Year End

วิธีที่ถูกต้อง หรือโมดูลที่ใช้ในการปิดปัญชี
(Odoo ปัจจุบัน ใช้การรันรายงานในการปิดบัญชี แต่รับไม่ได้ ต้องใช้การยกยอด)

OCA-130320: Asset Registration Report

เคนนี้น่าเอามาทำเหมือนกัน ถ้ามีใครมีตัวอย่างที่ถูกต้องแบบที่เราใช้กันลองแนบมานะครับ

Note: อีกทาง ลองไปถามที่ OCA ด้วย -- OCA/account-financial-tools#948

Withholding Tax เกิด ERROR ตอนปริ้น

image

Wkhtmltopdf failed (error code: -6). Message: b"terminate called after throwing an instance of 'std::bad_alloc'\n what(): std::bad_alloc\n"

ผมไม่แน่ใจสาเหตุอยู่ที่ใดครับ รบกวนผู้รู้ด้วยครับ

Thai Module TODO (Jan2020)

Issue นี้ใช้รวบรวมรายการสิ่งที่จะทำจากการประชุมวันที่ 17/01/2020 แต่ละเรื่องจะถูกเปิดเป็น Issue แยกกัน

สำหรับคนที่สนใจในแต่ละ Issue สามารถแสดงตัวและเริ่มทำงานได้โดยการ post comment ใน issue ครับ

  1. ภาษีซื้อ/ภาษีขายไม่ถึงกำหนดชำระ + Report #68
  2. Withholding Tax + Cert + Report #69
  3. Address Thai #70
  4. Tax ID Validation & Get or check Tax ID with RD/DBD website #71
  5. เงินมัดจำ -- จ่าย 100%, จ่ายก่อน 30% ทีหลังจ่าย 70% รวมถึงเงินรับประกันผลงาน Odoo มีเงินมัดจำแต่ไม่ครบ #72
  6. ออกใบเสร็จรับเงินทั้งๆที่ยังไม่ได้รับเงิน ยังต้องคุยต่อว่าต้องบันทึกหรือไม่บันทึกบัญชี #73
  7. การบริหารจัดการ Cheque ทั้ง Cheque รับ และ Cheque จ่าย รวมถึงกรณีเช็คลงวันที่ล่วงหน้า Post date cheque #74
  8. แยก RFQ / Purchase Order ออกจากกัน เพื่อให้มี Sequence แยกด้วย (ต.ย. ที่ sale_isolated_quotation) #75
  9. Approve Level สำหรับ RfQ/Purchase Order (ต.ย. base_tier_validation) #76
  10. Lock Date by Journal (ต.ย. Lock date by Acsone) #77
  11. Bank Transfer เพื่อโอนย้ายเงินระหว่างธนาคารหรือนำเงินสดฝาก/ถอนจากธนาคาร โดยไม่ต้องบันทึก Journal ตรง #78
  12. Closing Year End - Odoo ใช้การรันรายงานในการปิดบัญชี แต่รับไม่ได้ ต้องใช้การยกยอด #79

Some issues in l10n_th_address

@kittiu some issues I noticed in l10n_th_address:

  • the version number must have five parts (10.0.1.0.0)
  • in the data and csv files there are ids with base. or bas. as a prefix. Is that intended? If you look at the travis log, it warns about it

In general, even if you are working alone it's better to do pull requests so you can check travis outcome before merging.

[13.0] Tax Report ขึ้น erro ตอนเรียก view report

เทสโดย ค่า ตามนี้ครับ
image

image

Error:
Odoo Server Error

Traceback (most recent call last):
  File "/odoo/odoo-server/odoo/api.py", line 753, in get
    value = self._data[field][record._ids[0]]
KeyError: 11

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/odoo/odoo-server/odoo/fields.py", line 978, in __get__
    value = env.cache.get(record, self)
  File "/odoo/odoo-server/odoo/api.py", line 759, in get
    raise CacheMiss(record, field)
odoo.exceptions.CacheMiss: ('report.tax.report(11,).results', None)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/odoo/odoo-server/odoo/addons/base/models/qweb.py", line 332, in _compiled_fn
    return compiled(self, append, new, options, log)
  File "<template>", line 1, in template_l10n_th_tax_report_report_tax_report_base_1916
  File "/odoo/odoo-server/odoo/fields.py", line 2228, in __get__
    return super().__get__(records, owner)
  File "/odoo/odoo-server/odoo/fields.py", line 1002, in __get__
    self.compute_value(recs)
  File "/odoo/odoo-server/odoo/fields.py", line 1087, in compute_value
    records._compute_field_value(self)
  File "/odoo/odoo-server/odoo/models.py", line 3905, in _compute_field_value
    getattr(self, field.compute)()
  File "/odoo/custom/addons/l10n_th_tax_report/reports/tax_report.py", line 71, in _compute_results
    self.company_id.id,
  File "/odoo/odoo-server/odoo/sql_db.py", line 163, in wrapper
    return f(self, *args, **kwargs)
  File "/odoo/odoo-server/odoo/sql_db.py", line 240, in execute
    res = self._obj.execute(query, params)
psycopg2.ProgrammingError: column t.tax_base_amount does not exist
LINE 8:                 then t.tax_base_amount else 0.0 end as tax_b...
                             ^
HINT:  Perhaps you meant to reference the column "ml.tax_base_amount".


During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/odoo/odoo-server/odoo/api.py", line 753, in get
    value = self._data[field][record._ids[0]]
KeyError: 2

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/odoo/odoo-server/odoo/fields.py", line 978, in __get__
    value = env.cache.get(record, self)
  File "/odoo/odoo-server/odoo/api.py", line 759, in get
    raise CacheMiss(record, field)
odoo.exceptions.CacheMiss: ('res.users(2,).company_id', None)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/odoo/odoo-server/odoo/addons/base/models/qweb.py", line 358, in get_template
    document = options.get('load', self.load)(template, options)
  File "/odoo/odoo-server/odoo/addons/base/models/ir_qweb.py", line 116, in load
    lang = options.get('lang', get_lang(self.env).code)
  File "/odoo/odoo-server/odoo/tools/misc.py", line 1176, in get_lang
    for code in [lang_code, env.context.get('lang'), env.user.company_id.partner_id.lang, langs[0]]:
  File "/odoo/odoo-server/odoo/fields.py", line 2228, in __get__
    return super().__get__(records, owner)
  File "/odoo/odoo-server/odoo/fields.py", line 985, in __get__
    recs._fetch_field(self)
  File "/odoo/odoo-server/odoo/models.py", line 2938, in _fetch_field
    self._read(fnames)
  File "/odoo/odoo-server/odoo/addons/base/models/res_users.py", line 378, in _read
    super(Users, self)._read(fields)
  File "/odoo/odoo-server/odoo/models.py", line 3009, in _read
    cr.execute(query_str, params)
  File "/odoo/odoo-server/odoo/sql_db.py", line 163, in wrapper
    return f(self, *args, **kwargs)
  File "/odoo/odoo-server/odoo/sql_db.py", line 240, in execute
    res = self._obj.execute(query, params)
psycopg2.InternalError: current transaction is aborted, commands ignored until end of transaction block


During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/odoo/odoo-server/odoo/http.py", line 619, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/odoo/odoo-server/odoo/http.py", line 309, in _handle_exception
    raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
  File "/odoo/odoo-server/odoo/tools/pycompat.py", line 14, in reraise
    raise value
  File "/odoo/odoo-server/odoo/http.py", line 664, in dispatch
    result = self._call_function(**self.params)
  File "/odoo/odoo-server/odoo/http.py", line 345, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/odoo/odoo-server/odoo/service/model.py", line 93, in wrapper
    return f(dbname, *args, **kwargs)
  File "/odoo/odoo-server/odoo/http.py", line 338, in checked_call
    result = self.endpoint(*a, **kw)
  File "/odoo/odoo-server/odoo/http.py", line 909, in __call__
    return self.method(*args, **kw)
  File "/odoo/odoo-server/odoo/http.py", line 510, in response_wrap
    response = f(*args, **kw)
  File "/odoo/odoo-server/addons/web/controllers/main.py", line 1320, in call_kw
    return self._call_kw(model, method, args, kwargs)
  File "/odoo/odoo-server/addons/web/controllers/main.py", line 1312, in _call_kw
    return call_kw(request.env[model], method, args, kwargs)
  File "/odoo/odoo-server/odoo/api.py", line 391, in call_kw
    result = _call_kw_model(method, model, args, kwargs)
  File "/odoo/odoo-server/odoo/api.py", line 364, in _call_kw_model
    result = method(recs, *args, **kwargs)
  File "/odoo/custom/addons/l10n_th_tax_report/reports/tax_report.py", line 103, in get_html
    return self.with_context(given_context)._get_html()
  File "/odoo/custom/addons/l10n_th_tax_report/reports/tax_report.py", line 98, in _get_html
    ).render(rcontext)
  File "/odoo/odoo-server/addons/web_editor/models/ir_ui_view.py", line 25, in render
    return super(IrUiView, self).render(values=values, engine=engine, minimal_qcontext=minimal_qcontext)
  File "/odoo/odoo-server/odoo/addons/base/models/ir_ui_view.py", line 1162, in render
    return self.env[engine].render(self.id, qcontext)
  File "/odoo/odoo-server/odoo/addons/base/models/ir_qweb.py", line 58, in render
    result = super(IrQWeb, self).render(id_or_xml_id, values=values, **context)
  File "/odoo/odoo-server/odoo/addons/base/models/qweb.py", line 260, in render
    self.compile(template, options)(self, body.append, values or {})
  File "/odoo/odoo-server/odoo/addons/base/models/qweb.py", line 334, in _compiled_fn
    raise e
  File "/odoo/odoo-server/odoo/addons/base/models/qweb.py", line 332, in _compiled_fn
    return compiled(self, append, new, options, log)
  File "<template>", line 1, in template_l10n_th_tax_report_report_tax_report_html_1900
  File "/odoo/odoo-server/odoo/addons/base/models/qweb.py", line 337, in _compiled_fn
    element, document = self.get_template(template, options)
  File "/odoo/odoo-server/odoo/addons/base/models/qweb.py", line 364, in get_template
    raise QWebException("load could not load template", e, path, name=template)
odoo.addons.base.models.qweb.QWebException: current transaction is aborted, commands ignored until end of transaction block

Traceback (most recent call last):
  File "/odoo/odoo-server/odoo/api.py", line 753, in get
    value = self._data[field][record._ids[0]]
KeyError: 11

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/odoo/odoo-server/odoo/fields.py", line 978, in __get__
    value = env.cache.get(record, self)
  File "/odoo/odoo-server/odoo/api.py", line 759, in get
    raise CacheMiss(record, field)
odoo.exceptions.CacheMiss: ('report.tax.report(11,).results', None)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/odoo/odoo-server/odoo/addons/base/models/qweb.py", line 332, in _compiled_fn
    return compiled(self, append, new, options, log)
  File "<template>", line 1, in template_l10n_th_tax_report_report_tax_report_base_1916
  File "/odoo/odoo-server/odoo/fields.py", line 2228, in __get__
    return super().__get__(records, owner)
  File "/odoo/odoo-server/odoo/fields.py", line 1002, in __get__
    self.compute_value(recs)
  File "/odoo/odoo-server/odoo/fields.py", line 1087, in compute_value
    records._compute_field_value(self)
  File "/odoo/odoo-server/odoo/models.py", line 3905, in _compute_field_value
    getattr(self, field.compute)()
  File "/odoo/custom/addons/l10n_th_tax_report/reports/tax_report.py", line 71, in _compute_results
    self.company_id.id,
  File "/odoo/odoo-server/odoo/sql_db.py", line 163, in wrapper
    return f(self, *args, **kwargs)
  File "/odoo/odoo-server/odoo/sql_db.py", line 240, in execute
    res = self._obj.execute(query, params)
psycopg2.ProgrammingError: column t.tax_base_amount does not exist
LINE 8:                 then t.tax_base_amount else 0.0 end as tax_b...
                             ^
HINT:  Perhaps you meant to reference the column "ml.tax_base_amount".


During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/odoo/odoo-server/odoo/api.py", line 753, in get
    value = self._data[field][record._ids[0]]
KeyError: 2

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/odoo/odoo-server/odoo/fields.py", line 978, in __get__
    value = env.cache.get(record, self)
  File "/odoo/odoo-server/odoo/api.py", line 759, in get
    raise CacheMiss(record, field)
odoo.exceptions.CacheMiss: ('res.users(2,).company_id', None)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/odoo/odoo-server/odoo/addons/base/models/qweb.py", line 358, in get_template
    document = options.get('load', self.load)(template, options)
  File "/odoo/odoo-server/odoo/addons/base/models/ir_qweb.py", line 116, in load
    lang = options.get('lang', get_lang(self.env).code)
  File "/odoo/odoo-server/odoo/tools/misc.py", line 1176, in get_lang
    for code in [lang_code, env.context.get('lang'), env.user.company_id.partner_id.lang, langs[0]]:
  File "/odoo/odoo-server/odoo/fields.py", line 2228, in __get__
    return super().__get__(records, owner)
  File "/odoo/odoo-server/odoo/fields.py", line 985, in __get__
    recs._fetch_field(self)
  File "/odoo/odoo-server/odoo/models.py", line 2938, in _fetch_field
    self._read(fnames)
  File "/odoo/odoo-server/odoo/addons/base/models/res_users.py", line 378, in _read
    super(Users, self)._read(fields)
  File "/odoo/odoo-server/odoo/models.py", line 3009, in _read
    cr.execute(query_str, params)
  File "/odoo/odoo-server/odoo/sql_db.py", line 163, in wrapper
    return f(self, *args, **kwargs)
  File "/odoo/odoo-server/odoo/sql_db.py", line 240, in execute
    res = self._obj.execute(query, params)
psycopg2.InternalError: current transaction is aborted, commands ignored until end of transaction block


load could not load template
InternalError: current transaction is aborted, commands ignored until end of transaction block

Template: 1440
Path: /t/div/t[2]

การแปลภาษาไทยสำหรับ Localization Addons

Odoo แปลภาษาด้วย Weblate แต่ปัจจุบันยังไม่มีการทำงานในส่วนนี้ คนที่สนใจสามารถเริ่มได้จาก

https://translation.odoo-community.org

สำหรับ Thailand

[13.0][TODO] ภาษีซื้อ/ภาษีขายไม่ถึงกำหนดชำระ + Report

เคสนี้ได้มีการทำไว้บ้างแล้ว

อาจเริ่มต้นด้วยการช่วยทดสอบและบอกเคสที่ยังไม่ครอบคลุม หรือ หากมี Module ที่ดีกว่านี้สามารถทำ PR ขึ้นมาเสนอแนะได้

Discussion / Design on Localized Tax system (thailand)

Based on many trials and errors, we though we developed complete understanding and addons for Thailand in v8. But since, v9+, the structure of accounting is changed (especially the remove of account_voucher), it is not straight forward to update it to v10.

I have explained what we did in v8 here --> https://docs.google.com/document/d/1CtEsZfyY8UxjA9FUiE8GcHYP7xH7CfW85Zp8gDS4xlE/edit#

Questions,

  • Do you think the concept of Undue VAT and Withholding Tax I explined in the document can be generic enough to be out of Thai Localization.
  • We have some difficulties with v10 accounting. Anyone has experiences with it or ways to overcome?
    1. No more Customer/Supplier Payment window to track the payment of multiple invoice lines separately.
    2. Odoo tend to record account.move in summary, rather than in detailed.

รับชำระเงินจากลูกค้ามากกว่า 1 Invoice และต้องออกใบเสร็จรับเงิน/ใบกำกับภาษีใบเดียว ข้อมูลใบกำกับภาษีไม่เป็นไปตามกรมสรรพากรกำหนด

Requirement: รายการที่ต้องมีในใบกำกับภาษีเต็มรูป ต้องแสดง ชื่อ ชนิด ประเภท ปริมาณ และมูลค่าของสินค้าหรือบริการ
Case: ใบแจ้งหนี้หลายใบ รวบจ่ายครั้งเดียว และในแต่ละใบแจ้งหนี้มีรายการมากกว่าหนึ่งบรรทัด
ตัวอย่าง:

  • ใบแจ้งหนี้ เลขที่ 001 มี 2 รายการ (110+7.70 = 117.70 บาท)
    • บริการ A จำนวน 10 หน่วย ราคาหน่วยละ 10 บาท รวม 100 บาท
    • บริการ B จำนวน 5 หน่วย ราคาหน่วยละ 2 บาท รวม 10 บาท
  • ใบแจ้งหนี้ เลขที่ 002 มี 1 รายการ (100+7 = 107.00 บาท)
    ** บริการ B จำนวน 50 หน่วย ราคาหน่วยละ 2 บาท รวม 100 บาท

ปรึกษา: ใบเสร็จรับเงิน/ใบกำกับภาษี จ่ายรวม (224.70 บาท) ระบบ Odoo ทำงานได้ แต่ออกรายงานใบเสร็จรับเงิน/ใบกำกับภาษี ให้ลูกค้าอย่างไร

Selection_551
http://www.rd.go.th/publish/fileadmin/user_upload/ebook/taxinvoice.pdf

First name for Thai localization

ระบบของ Odoo ตาม default ไม่ได้แยกชื่อเป็นหลายช่อง ซึ่งก็เป็นทั้งข้อดีและข้อเสีย
ขัดดีคือระบบง่าย
ข้อเสียคือ ผู้ใช้ในเมืองไทย คุ้ยเคยกับระบบที่มีการแยกชื่อเป็นหลายช่อง อีกทั้งการเชื่อมต่อข้อมูลไปยังระบบอื่น โดยเฉพาะระบบภาครัฐของประเทศไทย มักจะถูกกำหนดให้แยกชื่อเป็นหลายช่อง คือ คำนำหน้าชื่อ (prefix) ชื่อ (first name) และนามสกุล (surname)

ทั้งนี้ระบบมาตรฐานของ Odoo ใน res.partner มี res.title เป็นคำนำหน้าชื่ออยู่แล้ว แต่ไม่ได้แยกข้อมูล ชื่อ ออกจากนามสกุล

อย่างไรก็ตาม OCA ก็มี module ที่เพิ่ม feature นี้อยู่แล้วคือ partner_firstname
ที่แยก firstname กับ lastname ออกจากช่อง name แล้วเปลี่ยน name ให้เป็น computed field ไปเพื่อให้ compatible กับ module อื่นๆ

ผมคิดว่าสำหรับ Thai localization อาจจะรวม module partner_firstname เข้ามาเป็น dependency ของ l10n_th

[13.0][TODO] Bank Transfer

เพื่อโอนย้ายเงินระหว่างธนาคารหรือนำเงินสดฝาก/ถอนจากธนาคาร โดยไม่ต้องบันทึก Journal ตรง

Problem on V10 enterprise when going to accounting module after installation

Hello,

We just installed this plugin to our system and on the contacts or

When we go to accounting we get the following traceback.

Traceback (most recent call last):
File "/opt/bdeltest/bdeltest-server/odoo/http.py", line 640, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/opt/bdeltest/bdeltest-server/odoo/http.py", line 677, in dispatch
result = self._call_function(**self.params)
File "/opt/bdeltest/bdeltest-server/odoo/http.py", line 333, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/opt/bdeltest/bdeltest-server/odoo/service/model.py", line 101, in wrapper
return f(dbname, *args, **kwargs)
File "/opt/bdeltest/bdeltest-server/odoo/http.py", line 326, in checked_call
result = self.endpoint(*a, **kw)
File "/opt/bdeltest/bdeltest-server/odoo/http.py", line 935, in call
return self.method(*args, **kw)
File "/opt/bdeltest/bdeltest-server/odoo/http.py", line 506, in response_wrap
response = f(*args, **kw)
File "/opt/bdeltest/bdeltest-server/addons/web/controllers/main.py", line 890, in call_kw
return self._call_kw(model, method, args, kwargs)
File "/opt/bdeltest/bdeltest-server/addons/web/controllers/main.py", line 882, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/opt/bdeltest/bdeltest-server/odoo/api.py", line 687, in call_kw
return call_kw_model(method, model, args, kwargs)
File "/opt/bdeltest/bdeltest-server/odoo/api.py", line 672, in call_kw_model
result = method(recs, *args, **kwargs)
File "/opt/bdeltest/bdeltest-server/addons/web_planner/models/web_planner.py", line 47, in render
return self.env['ir.ui.view'].browse(template_id).render(values=values)
File "/opt/bdeltest/bdeltest-server/addons/web_editor/models/ir_ui_view.py", line 26, in render
return super(IrUiView, self).render(values=values, engine=engine)
File "/opt/bdeltest/bdeltest-server/odoo/addons/base/ir/ir_ui_view.py", line 1063, in render
return self.env[engine].render(self.id, qcontext)
File "/opt/bdeltest/bdeltest-server/odoo/addons/base/ir/ir_qweb/ir_qweb.py", line 53, in render
return super(IrQWeb, self).render(id_or_xml_id, values=values, **context)
File "/opt/bdeltest/bdeltest-server/odoo/addons/base/ir/ir_qweb/qweb.py", line 248, in render
self.compile(template, options)(self, body.append, values or {})
File "/opt/bdeltest/bdeltest-server/odoo/addons/base/ir/ir_qweb/qweb.py", line 322, in _compiled_fn
raise QWebException("Error to render compiling AST", e, path, node and etree.tostring(node[0]), name)
QWebException: _display_address() takes at least 2 arguments (2 given)
Traceback (most recent call last):
File "/opt/bdeltest/bdeltest-server/odoo/addons/base/ir/ir_qweb/qweb.py", line 315, in _compiled_fn
return compiled(self, append, values, options, log)
File "", line 1, in template_447_83
File "", line 3, in body_call_content_82
File "", line 38, in body_call_content_33
File "", line 41, in body_call_content_19
File "/opt/bdeltest/bdeltest-server/odoo/addons/base/ir/ir_qweb/ir_qweb.py", line 269, in _get_field
content = converter.record_to_html(record, field_name, field_options)
File "/opt/bdeltest/bdeltest-server/odoo/addons/base/ir/ir_qweb/fields.py", line 103, in record_to_html
return False if value is False else record.env[self._name].value_to_html(value, options=options)
File "/opt/bdeltest/bdeltest-server/odoo/addons/base/ir/ir_qweb/fields.py", line 436, in value_to_html
name_get = value.name_get()[0][1]
File "/opt/bdeltest/bdeltest-server/odoo/addons/base/res/res_partner.py", line 590, in name_get
name = name + "\n" + partner._display_address(without_company=True)
TypeError: _display_address() takes at least 2 arguments (2 given)

Error to render compiling AST
TypeError: _display_address() takes at least 2 arguments (2 given)
Template: 447
Path: /templates/t/t/t[2]/t[3]/table/tr[3]/td[1]/span
Node:

Localization Roadmap (ecosoft)

Financial Statement

  • TB (1,2,3,4,5,...)
  • BS (1 = 2+3) - @Saran440 (mis_builder + l10n_th as CoA)
  • PL (4 – 5+6+...) - @Saran440 (mis_builder + l10n_th as CoA)
    • CC
    • PC
    • Project
  • Change in Equity (3 = Captial + (R/E or Deficit)
  • NTF (open items helps to NTF and BS detail)
  • Cashflow statement (for listed company and Public company)
  • GL
  • Bank statement - @Saran440 (discuss with Bow)
  • Partner ledger
  • Ratio report

Stock

VAT

WHT

  • PND 3, 53 (cover + attachment) - @kongrattapong
  • PND 1,2 (HR – payroll)
  • PND 51 (mid-year Tax return – P/L)
  • PND 50 (Annaul Tax return – BS and PL)

Error installing.

Error:
Odoo Server Error

Traceback (most recent call last):
File "C:\Odoo12\runtime\server\odoo\tools\cache.py", line 88, in lookup
r = d[key]
File "C:\Odoo12\runtime\server\odoo\tools\func.py", line 69, in wrapper
return func(self, *args, **kwargs)
File "C:\Odoo12\runtime\server\odoo\tools\lru.py", line 44, in getitem
a = self.d[obj].me
KeyError: ('ir.model.data', <function IrModelData.xmlid_lookup at 0x0453B738>, 'sales_team.menu_localisation')

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:\Odoo12\runtime\server\odoo\tools\convert.py", line 757, in parse
self._tags[rec.tag](rec, de, mode=mode)
File "C:\Odoo12\runtime\server\odoo\tools\convert.py", line 454, in _tag_menuitem
menu_parent_id = self.id_get(rec.get('parent',''))
File "C:\Odoo12\runtime\server\odoo\tools\convert.py", line 740, in id_get
res = self.model_id_get(id_str, raise_if_not_found)
File "C:\Odoo12\runtime\server\odoo\tools\convert.py", line 746, in model_id_get
return self.env['ir.model.data'].xmlid_to_res_model_res_id(id_str, raise_if_not_found=raise_if_not_found)
File "c:\odoo12\runtime\server\odoo\addons\base\models\ir_model.py", line 1380, in xmlid_to_res_model_res_id
return self.xmlid_lookup(xmlid)[1:3]
File "", line 2, in xmlid_lookup
File "C:\Odoo12\runtime\server\odoo\tools\cache.py", line 93, in lookup
value = d[key] = self.method(*args, **kwargs)
File "c:\odoo12\runtime\server\odoo\addons\base\models\ir_model.py", line 1369, in xmlid_lookup
raise ValueError('External ID not found in the system: %s' % xmlid)
ValueError: External ID not found in the system: sales_team.menu_localisation

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:\Odoo12\runtime\server\odoo\http.py", line 654, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "C:\Odoo12\runtime\server\odoo\http.py", line 312, in _handle_exception
raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
File "C:\Odoo12\runtime\server\odoo\tools\pycompat.py", line 87, in reraise
raise value
File "C:\Odoo12\runtime\server\odoo\http.py", line 696, in dispatch
result = self._call_function(**self.params)
File "C:\Odoo12\runtime\server\odoo\http.py", line 344, in _call_function
return checked_call(self.db, *args, **kwargs)
File "C:\Odoo12\runtime\server\odoo\service\model.py", line 97, in wrapper
return f(dbname, *args, **kwargs)
File "C:\Odoo12\runtime\server\odoo\http.py", line 337, in checked_call
result = self.endpoint(*a, **kw)
File "C:\Odoo12\runtime\server\odoo\http.py", line 939, in call
return self.method(*args, **kw)
File "C:\Odoo12\runtime\server\odoo\http.py", line 517, in response_wrap
response = f(*args, **kw)
File "c:\odoo12\runtime\server\odoo\addons\web\controllers\main.py", line 966, in call_button
action = self._call_kw(model, method, args, {})
File "c:\odoo12\runtime\server\odoo\addons\web\controllers\main.py", line 954, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "C:\Odoo12\runtime\server\odoo\api.py", line 749, in call_kw
return _call_kw_multi(method, model, args, kwargs)
File "C:\Odoo12\runtime\server\odoo\api.py", line 736, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "", line 2, in button_immediate_install
File "c:\odoo12\runtime\server\odoo\addons\base\models\ir_module.py", line 73, in check_and_log
return method(self, *args, **kwargs)
File "c:\odoo12\runtime\server\odoo\addons\base\models\ir_module.py", line 444, in button_immediate_install
return self._button_immediate_function(type(self).button_install)
File "c:\odoo12\runtime\server\odoo\addons\base\models\ir_module.py", line 552, in _button_immediate_function
modules.registry.Registry.new(self._cr.dbname, update_module=True)
File "C:\Odoo12\runtime\server\odoo\modules\registry.py", line 86, in new
odoo.modules.load_modules(registry._db, force_demo, status, update_module)
File "C:\Odoo12\runtime\server\odoo\modules\loading.py", line 421, in load_modules
loaded_modules, update_module, models_to_check)
File "C:\Odoo12\runtime\server\odoo\modules\loading.py", line 313, in load_marked_modules
perform_checks=perform_checks, models_to_check=models_to_check
File "C:\Odoo12\runtime\server\odoo\modules\loading.py", line 222, in load_module_graph
load_data(cr, idref, mode, kind='data', package=package, report=report)
File "C:\Odoo12\runtime\server\odoo\modules\loading.py", line 68, in load_data
tools.convert_file(cr, package.name, filename, idref, mode, noupdate, kind, report)
File "C:\Odoo12\runtime\server\odoo\tools\convert.py", line 801, in convert_file
convert_xml_import(cr, module, fp, idref, mode, noupdate, report)
File "C:\Odoo12\runtime\server\odoo\tools\convert.py", line 864, in convert_xml_import
obj.parse(doc.getroot(), mode=mode)
File "C:\Odoo12\runtime\server\odoo\tools\convert.py", line 754, in parse
self.parse(rec, mode)
File "C:\Odoo12\runtime\server\odoo\tools\convert.py", line 763, in parse
exc_info[2]
File "C:\Odoo12\runtime\server\odoo\tools\pycompat.py", line 86, in reraise
raise value.with_traceback(tb)
File "C:\Odoo12\runtime\server\odoo\tools\convert.py", line 757, in parse
self._tags[rec.tag](rec, de, mode=mode)
File "C:\Odoo12\runtime\server\odoo\tools\convert.py", line 454, in _tag_menuitem
menu_parent_id = self.id_get(rec.get('parent',''))
File "C:\Odoo12\runtime\server\odoo\tools\convert.py", line 740, in id_get
res = self.model_id_get(id_str, raise_if_not_found)
File "C:\Odoo12\runtime\server\odoo\tools\convert.py", line 746, in model_id_get
return self.env['ir.model.data'].xmlid_to_res_model_res_id(id_str, raise_if_not_found=raise_if_not_found)
File "c:\odoo12\runtime\server\odoo\addons\base\models\ir_model.py", line 1380, in xmlid_to_res_model_res_id
return self.xmlid_lookup(xmlid)[1:3]
File "", line 2, in xmlid_lookup
File "C:\Odoo12\runtime\server\odoo\tools\cache.py", line 93, in lookup
value = d[key] = self.method(*args, **kwargs)
File "c:\odoo12\runtime\server\odoo\addons\base\models\ir_model.py", line 1369, in xmlid_lookup
raise ValueError('External ID not found in the system: %s' % xmlid)
odoo.tools.convert.ParseError: "External ID not found in the system: sales_team.menu_localisation" while parsing file:/c:/odoo12/runtime/server_addons/community/l10n_th_address/views/res_country_view.xml:42, near

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.