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

, , Chức năng bình luận bị tắt ở Tùy biến bản in hóa đơn trong odoo

Bài này sẽ chỉ dẫn cách tùy thay đổ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à không làm ảnh hưởng tới tác dụng in hóa đơn Hiện tại.

Để thêm 1 sự lựa chọn khác trong trình đơn thả xuống chúng ta sẽ thừa kế 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 sản phẩm 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 & invoice_report_extension.xml. Thêm vào Các dòng code sau:

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

Bước 3: Tạo một nút lệnh trong menu in và xác lập nhân tố báo cáo. chúng ta sẽ gây nên 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ố văn bản báo cáo xác định đặc điểm của nút: văn bản báo cáo nào sẽ được tạo & phong thái của nó. chúng ta có thể thấy tên của chính nó là “Sale Invoice Report” & 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.

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


 

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

điều đó về căn bản khẳng định rằng hóa đơn của tất cả chúng ta sống sót & company_id của chính nó tồn tại. sau đó, nếu ngày không tồn tại trong hóa đơn đó sẽ gây nên một biến “pDate ‘ để tàng trữ ngày Lúc Này. xem xét 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), được chấp nhận bởi Qweb. từ bây giờ chúng ta có thể sử dụng dữ liệu trong hóa đơn bằng phương pháp xem thêm Những đối tượng người dùng o.

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

đọc thêm cài đặt odoo tại thị trường 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ổ trợ thêm nhiều classes & styles được sử dụng hệt như bất kể phần tử html khác. tại chỗ này tôi sẽ phân tích và lý giải dễ hiểu nhất để chúng ta 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 & col-xs-## xác định có bao nhiêu cột. chú ý rằng Những Bức Ảnh trước đó đã thực hiện 6 cột, vì vậy chỉ còn 6 cột chuẩn bị sẵn sàng được san sẻ trong những thành phần 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 tồn tại col-xs-offset-## xác lập khoảng cách nhất định giữa Những nhân tố, tiếp 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 tài liệu trong một cột trên cùng cực trái hoặc là phải.

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

sau lúc định nghĩa tiêu đề, bạn 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:

hiện nay nếu bạn in hóa đơn của bạn, bạn 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 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 nếu không bạn sẽ không có nhiều Thông tin. lúc này một bài tập nhỏ: trong tiêu đề ở trên có quá nhiều khoảng không giữa logo và tin tức Doanh Nghiệp. làm sao để bạn thay thế sửa chữa nó bằng phương pháp đổi thay cách bố trí?