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

Bài đó sẽ hướng dẫn cách tùy thay đổi đơn trong odoo để sở hữu bản in như ý bằng cách thêm một nút công dụng mới mà dường như không làm tác động tới tác dụng in hóa đơn Bây Giờ.

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

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

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

bài viết liên quan odoo việt 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 ra tin tức Công Ty bằng việc thêm 1 logo ở vị trí header và nó mở rộng hóa đơn để thay đổi việc hiển thị và lấy dữ liệu để khởi tạo báo cáo. File XML chỉ thêm một chọn lựa để chỉnh sửa 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 lập nhân tố văn bản báo cáo. tất cả 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 nhân 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ẽ tiến hành tạo và phong thái của nó. chúng ta cũng có thể thấy tên của chính nó là “Sale Invoice Report” và REPORT_TYPE là “qweb-pdf”. Model này là account.invoice, nút sẽ xuất hiện trong View của model này.

Các mẫu là cầu nối quan trọng giữa giao diện web & súc tích căn bản. Dự kiến, sẽ chỉ gồm có dòng này:
lúc bấy giờ cài đặt 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 có mặt trong menu in như sau:


 

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

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

lúc này tất cả chúng ta cần phải xác định Các tiêu đề. chúng ta có thể viết nó bên phía 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. tất cả chúng ta thực hiện chiến lược sau vì tiêu đề có thể được chia sẻ với các tài liệu khác!

xem thêm giải pháp odoo cho doanh nghiệp việt nam
t-att-src=“‘data:image/png;base64,%s’ % “company.logo_report”

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


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

Col-xs-## với # là viết tắt của 1 số từ một đến 12. Qweb chia chiều rộng trang thành 12 cột & col-xs-## xác định có bao nhiêu cột. xem xét rằng Các Tấm hình trước đó đã thực hiện 6 cột, vì thế chỉ từ 6 cột sẵn sàng chuẩn bị được chia sẻ trong các phần tử div. (Bên ngoài div bạn cũng có thể tái sử dụng Những mẹo nhỏ tương đương để sắp xếp Những layour)

ngoài các còn tồn tại col-xs-offset-## xác lập khoảng cách nhất định giữa Các nhân tố, sau đó có thể kéo bên trái & kéo bên phải nếu bạn có nhu cầu muốn đưa tài liệu trong 1 cột trên cùng cực trái hoặc là phải.

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

sau lúc định nghĩa tiêu đề, bạn có thể đơn giản bao gồm nó trong mẫu chính bằng phương pháp 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:

hiện nay nếu như bạn in hóa đơn của bạn, bạn có thể nhìn thấy trên đỉnh tài liệu ví dụ như thế này:

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

 

Post Author: dienlanh12