Review vtiger crm version 6 ตอน 1

ณ ปัจจุบัน ตอนนี้ vtiger ได้พัฒนามาถึง version 5.4 แล้วครับ และใกล้ๆ นี้ Version 6 ก็กำลังจะออกมา ผมก็เลย แอบเอามา Review ให้ดูก่อนครับ เรียกน้ำย่อย ซึ่ง ความเปลี่ยนแปลง ก็ถือว่า เปลี่ยนแปงพอสมควรเลยครับ โดยเฉพาะ Interface ที่แวกแนวออกไปเลย ซึ่ง Version 6 จะดู Professional มากขึ้นเยอะเลยครับ ดูแล้วน่าใช้มากขึ้นครับ เวลาถ้าเรา Login เข้าระบบมา ก็จะเป็นหน้าตาแบบนี้ครับ

home

เห็นไหมครับ น่าตาเปลี่ยนไปเลย (ดูดีขึ้น) ไม่รก จะเป็น Widget ที่น่าใช้ และเมนูข้างบน เราสามารถกำหนดได้ว่าให้แสดงเมนูอะไรบ้างครับ ซึ่งไม่เหมือนแต่ก่อน จะแยกเป็น Feature ซึงอาจจทำให้สับสน แต่สังเกตเห็น ชื่อ Modules จะเปลี่ยนอยู่ 2 Modules หลักๆ ซึ่งชื่อ Modules จะเปลี่ยนตั้งแต่ Version 5.4 แล้วหล่ะครับ ก็คือ

  • Module Accounts เปลี่ยนเป็น Organization
  • Module Potentials เปลียนเป็น Opportunities

ครับ ก็อย่าได้งงแล้วกันครับ มาดูในส่วนของ Modules กันบ้างครับ หน้า List view แสดงรายการต่างๆ ก็เปลี่ยนแปลงเช่นเดียวกันครับ ตรงส่วนหัวก็จะแยกสีชัดเจน ดูแล้วน่าใช้ครับ ส่วน ลบ แก้ไข หรือว่า Mass Edit และ duplicate ก็จะอยู่ใน ปุ่ม Actions ครับ

lead_list

เวลาเรากดเข้ามาดู Detail ข้างในแตละรายการ ก็สังเกตถึงความเปลี่ยนแปลง มันคล้ายๆ Timeline บน Facebook เลยครับ และรายการอื่นๆ ก็ย้ายมาอยู่ด้านขวามือซึ่งง่ายต่อการหา และจัดเป็นระเบียบมากครับ และมีการ Comment แต่รายการด้วยครับ อย่าเผลอตาลายมองเป็น หน้า Facebook หล่ะครับ อิอิ

lead_detail

ดูหน้า Advance Search ซึ่งรายก็เหมือนเดิมเปลี่ยนแปลงเฉพาะ Interface ครับ

leadsearc

มาดูในส่วนของ Create และ Edit ครับ ก็ทำให้น่ากรอกข้อมูลเพิ่มขึ้นครับ

lead_add

แต่สำหรับ ที่ผมชอบมากที่สุดก็ในส่วนของ Calendar จะแบ่งตาม Activity Type ซึ่งคล้ายๆ  Google calendar ครับ

calendar

ครับ สำหรับ User Interface ของ Vtiger version 6 ผมให้คะแนนเต็ม 10 เลยครับ และครั้งหน้าผมจะมา Review ในส่วนของ Tools Admin  นะครับ

มาเขียน Invoke Custom Function บน Vtiger กันครับ

หลังจากไม่ค่อยมีเวลาในการเขียน Blog แล้วเว็บ ก็ถูก Hack ไปด้วย อาจจเป็นเพราะใช้ WordPress version เดิมก็ได้ครับ วันนี้ผมจะมาแนะนำในการเขียน Invoke function บน Vtiger CRM ซึ่ง บางคนอาจจไม่เข้าใจว่า Invoke function คืออะไร

สำหรับ Invoke Custom function คือ ส่วนหนึ่งใน Module Workflow บน Vtiger CRM ที่เราสามารถเขียน Coding เพื่อให้ Workflow บน Vtiger เรียกใช้งานครับ ปัจจุบัน vtiger version ปัจจุบันคือ 5.4 มี Task การใช้งานดังนี้

  • Send Email
  • Invoke Custom Function
  • Create Todo
  • Create Event
  • Update Fields

มาเริ่มต้นกันเลยแล้วกันครับ สำหรับขั้นตอนในการไม่ยากเท่าไหร่ครับ

  1. สร้างไฟล์ PHP ที่เราไว้เขียน Function ไว้ที่ Folder include ครับ ผมสร้างเป็นไฟล์ commmissionHandler.php ทำ Function เกียวกับการ Update ค่า Commission โดยเขียน Code ดังนี้
<?php  
functionupdateCommission($entity){  
  global$log, $adb;  
  $entityArray= get_object_vars($entity);      
  $invoice_id= vtws_getIdComponents($entity--->getId());
  $invoice_id= $invoice_id[1];
  $log->debug("Entering into function updateRebate(".$invoice_id.").");
  $products= $adb->pquery("SELECT productid, quantity from vtiger_inventoryproductrel WHERE id=?", array($invoice_id));
  $numrows= $adb->num_rows($products);
  $rebate= 0;
  for($index= 0;$indexquery_result($products,$index,'productid');
    $quantity= $adb->query_result($products,$index,'quantity');
    $commission_info= $adb->pquery("SELECT unit_price, commissionrate from vtiger_products WHERE productid=?", array($productid));
    $commission_rate= $adb->query_result($commission_info, 0, 'commissionrate');
    $price= $adb->query_result($commission_info, 0, 'unit_price');
    $rebate= $rebate+ ($quantity* ($price* $commission_rate/ 100));
  }
  $adb->pquery("UPDATE vtiger_invoice SET salescommission=$rebate WHERE invoiceid=?", array($invoice_id));
}
?>
     2. จากนั้นทำการ Register function ที่เขียนขึ้นมาให้ Workflow รู้จัก โดยสร้างไฟล์ใหม่ขึ้น แล้วเขียน Code ดังนี้
<?php
require_once'include/utils/utils.php';
require'modules/com_vtiger_workflow/VTEntityMethodManager.inc';
$ob= newVTEntityMethodManager($adb);
#addEntityMethod("Module", "LABEL", "FILENAME", "FUNCTION_NAME");
$ob--->addEntityMethod("Invoice", "Update Commission", "include/CommissionHandler.php", "updateCommission");
?>
เมื่อสร้างไฟล์ขึ้น ก็ Run ไฟล์ โดยเปิดไฟล์ผ่าน Browser เลยครับ ถ้าสำเร็จก็จะเป็นหน้าเปล่าๆ ครับ สังเกต Code นะครับ ที่ Function addEntityMethod ค่าพารามิเตอร์ จะเป็น Module,ชื่อ Label, File name,Function name ที่เราเขียนครับ
    3. ต่อไปเป็นการเรียกใช้งาน Invoke Custom Function ที่เราเขียนขึ้นมากันครับ
  • เข้าไปที่ setting แล้วเข้า Workflows
  • เลือก New Workflow แล้วเลือก Module เป็น Invoice เพราะผมได้ regsiter ใช้งานกับ module invoice ครับ จากนั้นกด Create
  • ทำการตั้งชื่อ Workflow แล้วเลือกว่าจะให้ workflow ทำงานตอนไหน แล้วกำหนด condition จากนั้นให้เราบันทึกรอบหนึ่งก่อน
  • เมื่อบันทึกเสร็จแล้ว เราจะเห็น Task ให้เรากด New task จากนั้นก็จะขึ้นมาให้เลือก Type ของ Task ให้เราเลือก Invoke Custom Function แล้วกด Create
  • แล้วจะให้เราตั้งชื่อ Task แล้วก็จะเห็น Function ที่เราสร้างขึ้นมาให้เลือกครับ จากนั้นก็กด Save ครับ ซึ่ง Workflow ก็จะเรียกใช้งาน function ที่เราขึ้นมาแล้วครับ

task