SuiteCRM에 수식 필드 추가

 

영업관리 서비스인 SuiteCRM은 사용자정의 기능을 사용해서 새로운 모듈(기능)을 추가할 수 있습니다.

예를 들면 자산, 자동차 운행 일지 등을 추가할 수 있습니다. 자동차 운행 일지(OBCon_CarDriving)를 추가한다면 거리(distince)와 단가(unit_price)에 따라 가격(price)이 변동될 수 있습니다. 가격 필드를 수식 필드로 설정하여 자동 계산 되도록 하여 봅시다.

 

가격 필드를 수식 필드로 설정

 

module/OBCon_CarDriving/ 폴더에서 아래와 같이 수정 합니다.

 

controller.php 파일 추가

<?php
class OBCon_CarDrivingController extends SugarController {
//— 데이터 저장시 pre_save(), action_save(), post_save() 함수가 실행 됩니다.
function pre_save() {                                                   //— 데이터 저장전에 실행되는 함수
parent::pre_save();

//— price를 계산 합니다.
$this->bean->price = $this->bean->distince * $this->bean->unit_price;
}
}
?>

 

vardefs.php 파일 수정

$vardefs[‘fields’][‘price’][‘readonly’] = true;

//— 아래 파일을 수정하여도 동일한 효과가 발생 합니다.
vi  custom/Extension/modules/OBCon_CarDriving/Ext/Vardefs/price.readonly.php
$dictionary[‘OBCon_CarDriving’][‘fields’][‘price’][‘readonly’] = true;

 

metadata/editviewdefs.php 파일 수정

$viewdefs [‘OBCon_CarDriving’][‘EditView’][‘templateMeta’][‘includes’] = array(array(‘file’ => ‘modules/OBCon_CarDriving/metadata/editviewdefs.js’),);

 

metadata/editviewdefs.js 파일 추가

function calPrice() {
$(“#price”).val(eval($(“#distince”).val() * $(“#unit_price”).val()));
}

$(function(jQuery) {
$(“#price”).attr(“readonly”, “true”);
$(“#price”).attr(“style”, “background-color: white;”);

$(“#distince”).attr(“onchange”, “javascript: calPrice();”);
$(“#unit_price”).attr(“onchange”, “javascript: calPrice();”);
});

 

필드를 배치하여 편집 화면을 표시하면 아래와 같습니다.

 

 

오비컨
2018.02.13 ~ 2018.02.13, ver 0.01

 

 

0 답글

댓글을 남겨주세요

토론에 참여하고 싶으세요?
마음껏 기여하세요!

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다