Tùy biến bản in hóa đơn trong odoo

Bài này sẽ chỉ dẫn cách tùy chuyển đổi đơn trong odoo để sở hữu bản giống như ý bằng phương pháp thêm một nút tính năng mới mà hoàn toàn không làm tác động ảnh hưởng tới tác dụng in hóa đơn Lúc Này.

Để thêm 1 sự chọn lựa khác trong trình đơn thả xuống tất cả chúng ta sẽ kế thừa module kế toán: account.account (chúng ta cũng có thể có thể làm điều tương tự với bản in khác ví như bán hàng hoặc đơn đặt hàng)

Bước 1: Định nghĩa __init__.py & __openerp__.py trong một module mới, đặt vào report_customisation.

Bước 2: Tạo file invoice_report_extension.py và invoice_report_extension.xml. Thêm vào Những dòng code sau:

đọc thêm odoo viet nam

from openerp import models,api,fields

from openerp.tools import amount_to_text_en

class res_company(models.Model):

_inherit=‘res.company’

logo_report= fields.Binary(“Header Image”,

help=“This field holds the image used for the logo on the prints, limited to 1024x1024px”)

class account_invoive_extension(models.Model):

_inherit=‘account.invoice’

report.customisation.company.form

res.company

Giải thích: vấn đề đó được thừa hưởng trong hai module: nó lan rộng tin tức Doanh Nghiệp bằng việc thêm 1 logo ở phần header & nó lan rộng hóa đơn để thay đổi việc hiển thị & lấy dữ liệu để tạo báo cáo. File XML chỉ thêm 1 lựa chọn để sửa đổi cách hiển thị với việc được chấp nhận upload logo.

Bước 3: Tạo một nút lệnh trong menu in và xác định yếu tố văn bản báo cáo. chúng ta sẽ tạo ra một file xml mới tên report_sales_invoice.xml có nội dung như sau:

id=“report_sales_invoices”

model=“account.invoice”

string=“Sales Invoice Report”

report_type=“qweb-pdf”

name=“report_customisation.report_sales_invoice_template”

file=“report_customisation.report_sales_invoice_template”

attachment_use=“True”

attachment=“(object.state in (‘open’,’paid’)) and (‘INV’+(object.number or ”).replace(‘/’,”)+’.pdf’)”

/>

Những yếu tố báo cáo xác lập tính chất của nút: văn bản báo cáo nào sẽ được tạo & kiểu cách của nó. chúng ta có thể thấy tên của nó là “Sale Invoice Report” và REPORT_TYPE là “qweb-pdf”. mã sản phẩm này là account.invoice, nút sẽ xuất hiện trong View của model này.

Những mẫu là cầu nối quan trọng giữa giao diện web và logic căn bản. Dự kiến, sẽ chỉ bao gồm dòng này:
lúc này setup module (đừng quên để thêm Các file xml trong __openerp__.py ) và chúng ta sẽ rất có khả năng thấy nút xuất hiện trong menu giống như sau:


 

  • Nhưng thời điểm hiện tại nếu in nó sẽ chỉ cho 1 trang trống, chính vì chúng ta chưa code mẫu chính! lúc bấy giờ chúng ta hãy thay đổi điều này từng bước. tiên phong, gồm có Những dòng code sau trong mẫu tất cả chúng ta để trống ở trên:

vấn đề này về cơ bản xác minh rằng hóa đơn của chúng ta sống sót và company_id của chính nó sống sót. tiếp sau đó, nếu ngày không tồn tại trong hóa đơn này sẽ gây nên một biến “pDate ‘ để tàng trữ ngày Lúc Này. chú ý rằng nó sử dụng o như một hình thức ngắn cho đối tượng người dùng (doc_id trong phần trước), được cho phép bởi Qweb. từ nay chúng ta có thể sử dụng tài liệu trong hóa đơn bằng phương pháp tham khảo Các đối tượng người tiêu dùng o.

hiện giờ chúng ta rất cần phải xác định Các tiêu đề. bạn cũng có thể viết nó bên trong mẫu chính, hoặc một mẫu mới & gọi nó từ mẫu chính sử dụng t-call. chúng ta thực hiện kế hoạch sau vì tiêu đề có khả năng được san sẻ với các tài liệu khác!

xem thêm odoo việt nam
t-att-src=“‘data:image/png;base64,%s’ % “company.logo_report”

style=“max-height: 140px;” />
 Phone:
Fax:
Email:


Những Qweb đã bổ trợ thêm nhiều classes và styles được sử dụng giống hệt như bất kể thành phần html khác. tại chỗ này tôi sẽ giải thích dễ dàng nắm bắt nhất để bạn có thể giải mã Những dòng lệnh:

Col-xs-## với # là viết tắt của 1 số từ là một đến 12. Qweb chia chiều rộng trang thành 12 cột và col-xs-## xác định có bao nhiêu cột. để ý rằng Các Bức Ảnh trước đây đã triển khai 6 cột, bởi vậy chỉ từ 6 cột chuẩn bị được chia sẻ trong những phần tử div. (Bên ngoài div chúng ta có thể tái sử dụng Những mẹo nhỏ tương tự để sắp xếp Những layour)

ngoài các còn có col-xs-offset-## xác định khoảng cách nhất định giữa Các yếu tố, sau đó rất có khả năng kéo bên trái & kéo bên phải nếu bạn có nhu cầu muốn đưa dữ liệu trong một cột trên cùng cực trái hoặc phải.

đó là một trường tham chiếu thẳng trong đối tượng người dùng. Lưu bí danh được xác định trên? ở chỗ này chúng ta ghi tên của nó. Nếu Doanh Nghiệp của bạn được gọi là Goodyear, nó sẽ xuất hiện như Goodyear trong dữ liệu hoá đơn. nếu như bạn thay đổi Công Ty hoặc tên Công Ty, nó sẽ được tự động update ở chỗ này.

sau khi định nghĩa tiêu đề, chúng ta có thể đơn thuần bao gồm nó trong mẫu chính bằng cách sử dụng một t-call:

After defining the header, we can simply include it in the main template by using a t-call:

bây giờ nếu như khách hàng in hóa đơn của bạn, chúng ta có thể nhìn thấy trên đỉnh dữ liệu chẳng hạn như thế này:

tất yếu bạn cần phải nhập Thông tin chi tiết của Doanh Nghiệp bạn gồm có bạn logo, hoặc còn nếu như không bạn sẽ không có nhiều Thông tin. hiện giờ một bài tập nhỏ: trong tiêu đề ở trên có không ít khoảng không giữa logo & tin tức Công Ty. làm thế nào để bạn thay thế nó bằng phương pháp thay đổi cách bố trí?

 

Categories: Tin Tức Tổng Hợp