2. Nội dung chính
1. Tìm hiểu nghiệp vụ sale cơ bản (partner, product, pricelist,
quotation, invoice)
2. Tạo mới một module
3. Tạo mới và chỉnh sửa menu.
4. Tạo mới các dạng hiển thị (Tree, Form, Kanban, Calendar,
Gantt, graph) Hợp đồng
a) Định nghĩa các field (ORM)
b) Định nghĩa các dạng hiển thị
5. Chỉnh sửa các dạng hiển thị (kế thừa)
6. Các phương thức trong ORM (Create, write, unlink, …)
7. Sử dụng các dạng action (window, wizard, client, …)
8. Tham khảo thêm: report, security, workflow, web service, …
3. ∗ Partner: địa chỉ, email, nhân viên kinh doanh, bảng giá, số
liệu kế toán, giao nhận, thanh toán, …
∗ Product: giá, danh mục, đơn vị tính, phân lô, đóng gói,
phương thức cung ứng, các khoản thuế
∗ Pricelist:
∗ Quotation: địa chỉ giao nhận hàng / hóa đơn, cửa hàng,
khách hàng, bảng giá áp dụng, phương thức thanh toán,
chứng từ gốc, dòng đơn hàng, giá trị đơn hàng, …
∗ Invoice: giá trị hóa đơn, chi tiết hóa đơn, khách hàng, đơn
vị tiền tệ, thanh toán, …
1. Nghiệp vụ sale cơ bản
5. ∗ __openerp__.py:
∗ 'name': Tên hiển thị của module
∗ ‘author’: Người xây dựng module
∗ ‘depends’: Các module liên quan
∗ ‘data’ : view, security, workflow, report, …
∗ ‘demo’: Các dữ liệu demo có sẵn
∗ Tham khảo thêm: __openerp__.py
2. Tạo mới một module
6. ∗ Tạo mới một menu
∗ Id: tên xác thực menu (duy nhất)
∗ Parent: menu cấp cao hơn (dùng tên xác thực)
∗ Name: tên hiển thị lên hệ thống (không có sẽ lấy tên action)
∗ Action: action tương ứng khi nhấn vào menu
∗ Group: thuộc nhóm người dùng nào (dùng để phân quyền)
∗ Sequence: thứ tự sắp xếp cho các menu cùng cấp
∗ Sửa lại cấu trúc menu
∗ Cùng module: dùng lại chính id của menu cũ
∗ Khác module: “tên module” + “.” + “id của menu cũ”
3. Tạo mới và chỉnh sửa menu
7. ∗ A. Các dạng Field:
∗ Các field cơ bản:
∗ Boolean
∗ Integer, float
∗ Date, datetime, time
∗ Ví dụ:
∗ ‘active’: fields.boolean(‘Active’),
∗ ‘nbr’: fields.integer(‘Number’),
∗ ‘date’: fields.datetime(‘Date’),
4. Tạo mới các dạng hiển thị
8. ∗ Char (string, size, translate=True/False)
∗ String: tên hiển thị lên hệ thống
∗ Translate: cho phép dịch sang ngôn ngữ khác
∗ Size: số kí tự nhập tối đa
∗ Ví dụ: ‘name’: fields.char(‘Name’, size=128, translate=True),
∗ Text (string, translate=True/False)
∗ Tương tự char với size không giới hạn
∗ Ví dụ: ‘dsc’: fields.text(‘Description’, translate=True),
A. Các dạng Field
9. ∗ Selection (value, string)
∗ Value: dạng mảng với các key và giá trị tương ứng
∗ String: tên hiển thị lên hệ thống
∗ Ví dụ: ‘type’: fields.selection([(‘fix’, ‘Fixed’),
∗ (‘var’, ‘Variable’)], ‘Measure Type’)
A. Các dạng Field
10. ∗ Binary(string, filters=None)
∗ String: tên hiển thị lên hệ thống
∗ Filters: lọc theo các định dạng cho trước
A. Các dạng Field
11. ∗ Many2one (obj, string)
∗ Obj: đối tượng tham chiếu đến để lấy name
∗ String: tên hiển thị lên hệ thống
∗ Ví dụ: ‘sale_man’: fields.many2one(‘res.users’, ‘Saleperson’)
A. Các dạng Field
12. ∗ One2many (obj, field_id, string)
∗ Obj: đối tượng tham chiếu đến để lấy giá trị cho field
∗ Field_id: tên field khóa ngoại để tham chiếu giữa hai object
∗ String: tên hiển thị lên hệ thống
∗ Ví dụ: ‘line_id’: fields.one2many(‘sale.order.line’, ‘order_id’,
‘Sale Order Line’),
A. Các dạng Field
13. ∗ Many2many (obj, rel, field1, field2)
∗ Obj: đối tượng tham chiếu đến để lấy giá trị cho field
∗ Rel: bảng trung gian chứa id của 2 bảng đang tham chiếu
∗ Field1: id của bảng hiện tại
∗ Field2: id của bảng tham chiếu còn lại
∗ Ví dụ: 'tax_id': fields.many2many('account.tax',
'sale_order_tax', 'order_line_id', 'tax_id', 'Taxes'),
A. Các dạng Field
14. ∗ Function (fnct, arg, fnct_inv, type, fnct_search, obj,
store, multi, …)
∗ Fnct: hàm dùng để truyền giá trị cho field này.
∗ Fnct_inv: hàm dùng để cập nhật giá trị field.
∗ Type: kiểu dữ liệu hiển thị lên field này.
∗ Fnct_search: hàm dùng để tìm giá trị của field này.
∗ Obj: đối tượng lấy giá trị từ cơ sở dữ liệu của field này
khi là một field quan hệ.
∗ Store, multi: các tính năng như lưu xuống dữ liệu và
dùng cho nhiều field function khác với cùng 1 hàm.
A. Các dạng Field
15. ∗ Related (f1, f2, …, type)
∗ F1, f2: một chuỗi các field trung gian dùng để lấy giá trị.
∗ Type: kiểu dữ liệu hiển thị lên field này.
∗ Property (obj, type, view_load, group_name, …)
∗ Thuộc tính thay đổi theo quyền truy xuất xác định
∗ Obj: đối tượng tham chiếu đến field này.
∗ Type: kiểu dữ liệu hiển thị lên field này.
A. Các dạng Field
16. ∗ Dạng list view (tree view)
B. Các dạng hiển thị
17. ∗ Dạng list view (tree view)
B. Các dạng hiển thị
18. ∗ Dạng Form view (biểu mẫu)
B. Các dạng hiển thị
19. ∗ Dạng Form view (biểu mẫu)
B. Các dạng hiển thị
26. ∗ Thiết lập môi trường Areoo report
∗ Tải các thư viện aeroolib và genshi về cài vào python
∗ Tải các module Aeroo cài vào OpenERP
∗ Có thể tham khảo thêm quá trình cài đặt tại đây
∗ Tạo một report đơn giản với Areoo report:
∗ File python xử lý đưa dữ liệu lên report
∗ File xml hiển thị report lên hệ thống
∗ File report với cấu trúc định sẵn để nhận dữ liệu và hiển thị
Areoo report