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

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

Để thêm một sự lựa chọn 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 đều 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 & __openerp__.py trong 1 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 Các dòng code sau:

tham khảo thêm 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 đề này được thừa kế trong hai module: nó lan rộng ra tin tức Doanh Nghiệp bằng sự việc thêm một logo tại đoạn header & nó lan rộng hóa đơn để thay đổi việc hiển thị & lấy dữ liệu để khởi tạo báo cáo. File XML chỉ thêm 1 chọn lựa để 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 & xác lập nhân tố 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 đặc thù của nút: báo cáo nào sẽ tiến hành tạo & kiểu cách của chính nó. chúng ta cũng có thể thấy tên của chính nó là “Sale Invoice Report” & 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 mã sản phẩm này.

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


 

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

điều đó về căn bản xác minh rằng hóa đơn của tất cả 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 có trong hóa đơn đó sẽ gây ra một biến “pDate ‘ để lưu trữ ngày Bây Giờ. để ý rằng nó sử dụng o như một hình thức ngắn cho đối tượng người sử dụng (doc_id trong phần trước), được cho phép bởi Qweb. từ nay chúng ta cũng có thể sử dụng tài liệu trong hóa đơn bằng cách tìm hiểu thêm Các đối tượng o.

hiện nay chúng ta cần phải xác lập Những tiêu đề. bạn cũng có thể viết nó phía 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 chiến lược sau vì tiêu đề có thể được chia sẻ với các dữ 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ổ sung thêm nhiều classes và styles được dùng y hệt như bất kể phần tử html khác. tại đây tôi sẽ giải thích dễ dàng nắm bắt nhất để chúng ta 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 một số từ 1 đến 12. Qweb chia chiều rộng trang thành 12 cột & col-xs-## xác lập có bao nhiêu cột. lưu ý rằng Những Tấm hình trước đó đã thực hiện 6 cột, vì vậy chỉ từ 6 cột chuẩn bị sẵn sàng được sẻ chia trong các phần tử div. (Bên ngoài div bạn cũng có thể tái sử dụng Các thủ thuật tương đương để sắp đặt Các layour)

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

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

sau lúc định nghĩa tiêu đề, bạn cũng có thể đơn giản gồm có 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:

lúc này nếu như khách hàng in hóa đơn của bạn, chúng ta cũng có thể nhìn thấy trên đỉnh tài liệu ví dụ như thế này:

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