วันเสาร์ที่ 1 มีนาคม พ.ศ. 2557

OpenERP : การสร้าง Report ใน OpenERP ตอนที่ 1 (โครงสร้าง)

ในการสร้าง Report ใน OpenERP ผมเลือกใช้เครื่องมืออยู่ 2 อย่าง

1.PyDev + Eclipse (Python 2.7 + OpenERP Version 7.0)
2.OpenOffice + Plugin : base_report_designer (Download)


ในบทความนี้เราจะมาศึกษาโครงสร้างของ Report ใน OpenERP (ตัวอย่างมาจาก Module : eInvoice & Payment)

module/__openerp__.py                               #ข้อมูลทั่วไปของ module
module/report/account_print_invoice.rml       #ส่วนของ Report ที่เราสร้าง
module/report/account_print_invoice.py         #การตั้งค่า parser ของ report
module/report/__init__.py                            #การโหลด code
module/reports.xml                                     # ส่วนการ register report
module/__init__.py                                      # การโหลด code

__openerp__.py

อยู่ใน folder ตามภาพด้านล่าง




จากไฟล์ __openerp__.py จะเก็บข้อมูลทั่วไปเกี่ยวกับ module ที่เราจะสร้าง



 __init__.py


ไฟล์ __init__.py จะให้โหลด code ต่างๆ ที่อยู่ใต้ module : account


report.xml

ตาม path ด้านล่าง



xxxx.xml ใช้ในการ register report ที่เราสร้างขึ้น


report/__init__.py

อยู่ใน path : report


ใช้ในการโหลด code ภายใน folder : report


report/account_print_invoice.py

 อยู่ใน folder



ใน account_print_invoice.py จะเก็บ parser ของ report


report/account_print_invoice.rml

อยู่ใน folder


xxx.rml คือตัว report ที่เราสร้าง ซึ่งจะแปลงเป็น word,pdf ตามแต่เรากำหนด


สำหรับโครงสร้างของการสร้าง report ใน OpenERP ก็มีเท่านี้ ตอนที่ 2 เราจะมาทดลองสร้าง report เข้าไปใน account โดยใช้ชื่อ report ว่า account_print_invoice_all

วันศุกร์ที่ 28 กุมภาพันธ์ พ.ศ. 2557

OpenERP : การเชต Tax ใน eInvoicing & Payments

ในมุมมองของผมเวลาที่เราตั้งราคาสินค้านั้น เราควรคิด Tax เข้าไปด้วยเพื่อให้ง่ายต่อการคำนวณในธุรกิจเล็กๆ ไม่ได้ซับซ้อนอะไรมาก ผมก็หาอยู่ตั้งนานการเชต Tax ก็อยู่ใกล้ปลายจมูกนี้เอง

เข้าไปที่ Setting-->Invoice


จากนั้นไปที่ eInvoicing & Payments --> Customer --> Default sale tax (Supplier--> Default purchase tax) ลองเลือกซักตัวใน List แล้วคลิกที่ Edit (ลูกศร)


เราจะเจอหน้าจอ set up ต่างๆมากมาย ในตัวอย่างผมเลือกเป็น ITAX X ก็คือ Exempt (ไม่ต้องเสียภาษี) เพราะบางครั้งระบบให้ไม่ต้องการคิดภาษีเวลาออก Invoice หลังจากเราตั้งค่าแล้ว เราก็ไปทำการสร้าง Customer Invoice ลองดูนะครับ (ตอนสร้าง Customer Invoice ) ตรงช่อง Tax อย่างลืมเลือกเป็น ITAX X นะครับ


การออก Invoice โดยไม่ต้องเสียภาษีก็มีเท่านี้นะครับ

วันพุธที่ 26 กุมภาพันธ์ พ.ศ. 2557

OpenERP : การสร้าง User

ผมจำเป็นต้องแยกส่วนเมนูเพื่อให้ Employee เข้าถึงเมนูที่แตกต่างกัน แต่ก่อนถึงการสร้างเมนูแล้ว เราจำเป็นต้องสร้าง User ขึ้นมาก่อน ขั้นตอนการสร้าง User มีดังนี้

Login สิทธิ์ Administrator เข้าไปที่ Setting จากนั้นไปที่ Users


จากนั้นคลิกที่ปุ่ม Create แล้วทำการใส่ชื่อ Emp และ user name สำหรับ login


จากนั้นกด save  เราจะได้ username : emp2


จากนั้นให้ไปตั้งรหัสผ่านดังรูปด้านล่าง คลิกเลือกที่ Change Password


ใส่ Password แล้วกด Change Password



ทำการ Login โดยใช้ Username : emp2 และ Password : emp2


เสร็จสิ้นกระบวนการสร้าง User



***** Table ที่เกี่ยวข้อง ********

SELECT * FROM res_users WHERE login = '';
 
UPDATE res_users SET password = '' WHERE login = '';
 
UPDATE res_users SET active = TRUE WHERE login = '';  

OpenERP : PDF ไม่สามารถแสดงภาษาไทย

ผมงงอยู่ตั้งนานสุดท้ายไปได้วิธีของ

http://www.openerpthailand.org/viewtopic.php?f=2&t=338

แต่ถ้าเกิดว่าทำไม่ตรงกับที่ผู้เขียน เขียนไว้ในบอร์ดก็ไม่สามารถทำได้นะครับ ผมจะเขียนวิธีการอย่างละเอียดตามด้านล่างนะครับ เผื่อเป็นการเตือนความจำของผมไปด้วย


ขั้นตอนที่ 1 : ทำการกำหนด custom font ใน customfonts คลิกขวาแล้วเปิดใน Edit Plus


มองหา
CustomTTFonts = [
                                      XXXXXXXX,
                                      XXXXXXXX,
                          ]

แล้ว copy code ด้านล่างไปแทนที่ (ขอย้ำว่า copy แล้วเอาไปแทนที่เลยนะครับ จะสังเกตุว่าเราจะใช้แค่ angsa และ cordia นะครับ ชื่อ font อาจจะต่างกันแต่ไปเรียก cordia เหมือนกัน)

CustomTTFonts = [('Angsana',"Angsana New", "angsa.ttf", 'normal'),
        ('Angsana',"Angsana New Bold", "angsab.ttf", 'bold'),
        ('Angsana',"Angsana New Italic", "angsai.ttf", 'italic'),
        ('Angsana',"Angsana New BoldItalic", "angsaz.ttf", 'bolditalic'),
        ('Helvetica',"DejaVu Sans", "cordia.ttf", 'normal'),
        ('Helvetica',"DejaVu Sans Bold", "cordiab.ttf", 'bold'),
        ('Helvetica',"DejaVu Sans Oblique", "cordiai.ttf", 'italic'),
        ('Helvetica',"DejaVu Sans BoldOblique", "cordiaz.ttf", 'bolditalic'),
        ('Times',"Liberation Serif", "cordia.ttf", 'normal'),
        ('Times',"Liberation Serif Bold", "cordiab.ttf", 'bold'),
        ('Times',"Liberation Serif Italic", "cordiai.ttf", 'italic'),
        ('Times',"Liberation Serif BoldItalic", "cordiaz.ttf", 'bolditalic'),
        ('Times-Roman',"Liberation Serif", "cordia.ttf", 'normal'),
        ('Times-Roman',"Liberation Serif Bold", "cordiab.ttf", 'bold'),
        ('Times-Roman',"Liberation Serif Italic", "cordiai.ttf", 'italic'),
        ('Times-Roman',"Liberation Serif BoldItalic", "cordiaz.ttf", 'bolditalic'),
        ('Courier',"FreeMono", "cordia.ttf", 'normal'),
        ('Courier',"FreeMono Bold", "cordiab.ttf", 'bold'),
        ('Courier',"FreeMono Oblique", "cordiai.ttf", 'italic'),
        ('Courier',"FreeMono BoldOblique", "cordiaz.ttf", 'bolditalic'),
]

ตามรูปด้านล่างครับ



หลังจากนั้นให้ทำการ Save ครับ

ขั้นตอนที่ 2 : ทำการ Restart OpenERP Server โดยไปที่ start-->ในช่องว่างให้พิมพ์ services.msc แล้ว Enter


จากนั้นจะปรากฏหน้าจอ services ให้คลิกที่ Tab : Standard มองหา OpenERP Server



จากนั้นคลิกขวา แล้วกด Restart


ขั้นตอนที่ 3 : แก้ config ใน application ให้เรา login เข้าไปใน application จากนั้นไปที่ setting --> companies


จากนั้นคลิกที่ Your Company แล้วเลือก Edit-->ไปที่ Tab : Header/Footer


มองหา FontName แล้วให้แก้เป็น Angsana New ให้หมด ดังรูปด้านล่าง (ขอเน้นย้ำว่าต้องแก้ให้หมดนะครับ มันจะมีทั้งหมด 3 ส่วน คือ RML Header  RML Internal Header และ RML Internal Header for Landscape Reports)




 ขั้นตอนที่ 4 : แก้ Font Name ใน Report ตัวอย่างของผมคือใช้ Report : Invoice นะครับ path ในการเก็บ report ตัวนี้จะอยู่ที่


เราต้องแก้ไข Font ใน ไฟล์ .rml นะครับ คลิกขวาเปิดใน Edit Plus แล้วเลื่อนลงมาที่ จากนั้นมองหา Font ที่มีอยู่ก่อนแล้วทำการ Ctrl+F แล้วทำการ Replace All ด้วย Font : Ansana New นะครับ จากนั้นก็ Save



แล้วลองไปสร้าง report ดูจะพบว่ามันกลายไปภาษาไทยเรียบร้อย

 หลักของการทำคือ อย่าได้พลาดแม้กระทั้งขั้นตอนเดียว

ขั้นตอนที่ 1 : Copy Code ไปวางแทนเลยนะครับ
ขั้นตอนที่ 2 : ทำการ Restart เครื่องไปเลย
ขั้นตอนที่ 3 : ต้องตามแก้ Font เก่าให้หมดนะครับ ผมเคยแก้ไม่หมด มันไม่ทำงานเหมือนกัน
ขั้นตอนที่ 4 : ก็เช่นเดียวกับขั้นตอนที่ 3 ต้องตามแก้ให้หมด และต้องตามหา .rml ให้เจอนะครับ

ทำตามขั้นตอนทั้ง 4 แล้วทำการ Restart OpenERP Server อีกรอบเพื่อความมั่นใจ