Upload
openerp-vn
View
999
Download
2
Embed Size (px)
DESCRIPTION
Làm quen lập trình OpenERP qua module sale
Citation preview
LẬP TRÌNH CƠ BẢN OPENERP
DEMO VỚI MODULE SALE
Nội dung chính1. Tìm hiểu nghiệp vụ sale cơ bản (partner, product,
pricelist, quotation, invoice)2. Tạo mới một module3. 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 đồnga) Đị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, …
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
Cấu trúc của module
2. Tạo mới một module
__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
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
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ị
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
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
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
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
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
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
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
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
Dạng list view (tree view)
B. Các dạng hiển thị
Dạng list view (tree view)
B. Các dạng hiển thị
Dạng Form view (biểu mẫu)
B. Các dạng hiển thị
Dạng Form view (biểu mẫu)
B. Các dạng hiển thị
Dạng Kanban
B. Các dạng hiển thị
Dạng Kanban
B. Các dạng hiển thị
Dạng Calendar
B. Các dạng hiển thị
Dạng Calendar
B. Các dạng hiển thị
Dạng Graph
B. Các dạng hiển thị
Dạng Graph
B. Các dạng hiển thị
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