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

Bài đó sẽ chỉ dẫn cách tùy đổi khác đơ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 công dụng in hóa đơn Bây Giờ.

Để thêm 1 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 có thể làm điều tương tự với bản in khác như bán sản phẩm hoặc đơn đặt hàng)

Bước 1: Định nghĩa __init__.py và __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:

bài viết liên quan odoo tại 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 hưởng trong hai module: nó lan rộng tin tức Doanh Nghiệp bằng việc thêm 1 logo tại vị trí header và nó lan rộng hóa đơn để đổi thay việc hiển thị và lấy dữ liệu để tạo văn bản báo cáo. File XML chỉ thêm một lựa chọn để sửa đổi cách hiển thị với sự được cho phép upload logo.

Bước 3: Tạo một nút lệnh trong menu in và xác lập 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’)”

/>

Các yếu tố văn bản báo cáo xác định đặc thù của nút: văn bản báo cáo nào sẽ tiến hành tạo và kiểu cách của chính nó. bạn có thể thấy tên của nó là “Sale Invoice Report” và REPORT_TYPE là “qweb-pdf”. model này là account.invoice, nút sẽ có mặt trong View của mã sản phẩm này.

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


 

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

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

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

tìm hiểu thêm odoo vietnam
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 và styles được dùng giống hệt như bất cứ thành phần html khác. ở đây tôi sẽ lý giải dễ dàng nắm bắt nhất để bạn có thể lời giải Các dòng lệnh:

Col-xs-## với # là viết tắt của một 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. lưu ý rằng Những Hình ảnh trước đó đã tiến hành 6 cột, bởi thế chỉ còn 6 cột chuẩn bị được sẻ chia trong những 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 các còn có col-xs-offset-## xác định 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 rất thích đưa dữ liệu trong một cột trên cùng cực trái hoặc phải.

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

sau lúc định nghĩa tiêu đề, chúng ta cũng có thể đơn thuầ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 bạn in hóa đơn của bạn, bạn 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 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òn nhiều Thông tin. hiện giờ một bài tập nhỏ: trong tiêu đề ở trên có vô số khoảng không giữa logo & tin tức Doanh Nghiệp. làm thế nào để bạn thay thế nó bằng cách thay đổi cách bố trí?