342 lines
11 KiB
JavaScript
342 lines
11 KiB
JavaScript
// declare variable
|
|
var obj_target
|
|
var obj_type_target
|
|
|
|
function changeColor(obj,bgcolor){
|
|
obj.style.backgroundColor = bgcolor;
|
|
}
|
|
|
|
function getComboValue (obj) {
|
|
return obj.options[obj.selectedIndex].value;
|
|
}
|
|
|
|
function chgAttr(elem) {
|
|
elem.disabled = false
|
|
}
|
|
|
|
function page_refresh(obj) {
|
|
obj.style.display='none';
|
|
location.reload(true);
|
|
}
|
|
|
|
function toUpper(field) {
|
|
field.value = field.value.toUpperCase()
|
|
}
|
|
|
|
function getCoordinates(event) {
|
|
xPos = event.clientX;
|
|
yPos = event.clientY;
|
|
}
|
|
|
|
function validateForm(frm) {
|
|
var retValidate = 1;
|
|
var fType;
|
|
var fAttrib;
|
|
var fValue;
|
|
var fNote;
|
|
var fName;
|
|
var dbname;
|
|
var fReadOnly;
|
|
var fDisplay;
|
|
var dAkhir;
|
|
for (i = 0; i < frm.elements.length; i++) {
|
|
dbname = frm.elements[i].dbname;
|
|
fDisplay = frm.elements[i].display;
|
|
//alert(fType + ' - '+ dbname + ' - '+ fDisplay);
|
|
if ( dbname.length > 0 && fDisplay == 'block' ) {
|
|
fName = frm.elements[i].name;
|
|
fType = frm.elements[i].type.toUpperCase();
|
|
fAttrib = frm.elements[i].ATTRIB;
|
|
fNote = frm.elements[i].note;
|
|
fValue = frm.elements[i].value;
|
|
//alert(fType + ' - ' + fName +' - '+dbname + ' - '+fDisplay + ' - ' + fNote + ' - ' + fAttrib);
|
|
if (fType == 'TEXT') {
|
|
fReadOnly = frm.elements[i].readOnly;
|
|
var dType = cekDataType(fAttrib.charAt(0), fValue);
|
|
//alert('fReadOnly ' + fReadOnly + 'dType ' + dType);
|
|
if (fAttrib.charAt(1) == 'M' && fValue.length == 0) {
|
|
alert(fNote + ' Mandatory !');
|
|
if (fReadOnly == false) {
|
|
frm.elements[i].focus();
|
|
}
|
|
retValidate = 0;
|
|
break;
|
|
}
|
|
if (fReadOnly == false || dType == 'D') {
|
|
switch (dType) {
|
|
case "N":
|
|
alert(fNote + ' Numerik !');
|
|
frm.elements[i].focus();
|
|
retValidate = 0;
|
|
break;
|
|
case "I":
|
|
alert(fNote + ' Integer !');
|
|
frm.elements[i].focus();
|
|
retValidate = 0;
|
|
break;
|
|
case "S":
|
|
alert(fNote + ' mengandung karakter tidak diijinkan !');
|
|
frm.elements[i].focus();
|
|
retValidate = 0;
|
|
break;
|
|
case "D":
|
|
if (dbname == 'TGL_AWAL') {
|
|
var checkTgl = check_range(frm.elements[i], document.getElementById("TGL_AKHIR"));
|
|
if (checkTgl == 0) {
|
|
frm.elements[i].focus();
|
|
retValidate = 0;
|
|
}
|
|
}
|
|
if (dbname == 'TGL_AKHIR') {
|
|
var checkTgl = check_range(document.getElementById("TGL_AWAL"), frm.elements[i]);
|
|
if (checkTgl == 0) {
|
|
frm.elements[i].focus();
|
|
retValidate = 0;
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
if (retValidate == 0) {
|
|
break;
|
|
}
|
|
if (fAttrib.charAt(2) == 'K') {
|
|
strRegExp = "[^A-Za-z0-9]";
|
|
charpos = fValue.search(strRegExp);
|
|
if (charpos >= 0) {
|
|
alert(fNote + ' hanya boleh Alfabet dan atau numerik !');
|
|
frm.elements[i].focus();
|
|
retValidate = 0;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
} else if (fType == 'TEXTAREA') {
|
|
if (fAttrib.charAt(1) == 'M' && fValue.length == 0) {
|
|
alert(fNote + ' Mandatory !');
|
|
frm.elements[i].focus();
|
|
retValidate = 0;
|
|
break;
|
|
}
|
|
dType = cekDataType('S', fValue);
|
|
if (dType == "S") {
|
|
alert(fNote + ' mengandung karakter tidak diijinkan !');
|
|
frm.elements[i].focus();
|
|
retValidate = 0;
|
|
break;
|
|
}
|
|
} else if (fType == 'HIDDEN') {
|
|
if (fAttrib.charAt(1) == 'M' && fValue.length == 0) {
|
|
alert(fNote + ' Mandatory !');
|
|
retValidate = 0;
|
|
break;
|
|
}
|
|
} else if (fType == 'SELECT-ONE') {
|
|
if (fAttrib.charAt(1) == 'M') {
|
|
var fSelect = frm.elements[i].options[frm.elements[i].selectedIndex].text;
|
|
//alert(fName + '-' + fType + '-' + fValue + '-' + fSelect);
|
|
if (fSelect.length == 0) {
|
|
alert(fNote + ' Mandatory !');
|
|
frm.elements[i].focus();
|
|
retValidate = 0;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return retValidate;
|
|
}
|
|
|
|
function cekDataType(type, value) {
|
|
var retVal = '1';
|
|
var strRegExp;
|
|
var charpos;
|
|
|
|
switch (type) {
|
|
case "N":
|
|
strRegExp = "[^0-9\.]";
|
|
charpos = value.search(strRegExp);
|
|
if (charpos >= 0) {
|
|
retVal = 'N';
|
|
}
|
|
break;
|
|
case "I":
|
|
strRegExp = "[^0-9]";
|
|
charpos = value.search(strRegExp);
|
|
if (charpos >= 0) {
|
|
retVal = 'I';
|
|
}
|
|
break;
|
|
case "S":
|
|
if (value.indexOf("^") >= 0) {
|
|
retVal = 'S';
|
|
break;
|
|
}
|
|
if (value.indexOf("*") >= 0) {
|
|
retVal = 'S';
|
|
break;
|
|
}
|
|
// if (value.indexOf("&") >= 0) {
|
|
// retVal = 'S';
|
|
// break;
|
|
// }
|
|
case "C":
|
|
strRegExp = "[^\.\,]";
|
|
charpos = value.search(strRegExp);
|
|
if (charpos >= 0) {
|
|
retVal = 'C';
|
|
}
|
|
break;
|
|
case "D":
|
|
retVal = 'D';
|
|
break;
|
|
}
|
|
return retVal;
|
|
}
|
|
|
|
function build_param(frm) {
|
|
var v_sep = "*";
|
|
var f_sep = "^";
|
|
var param = "";
|
|
//alert('build_param');
|
|
for (i = 0; i < frm.elements.length; i++) {
|
|
var fType = frm.elements[i].type.toUpperCase();
|
|
var dbname = frm.elements[i].dbname;
|
|
var fDisplay = frm.elements[i].display;
|
|
if ( dbname.length > 0 && fDisplay == 'block') {
|
|
//if ( fType != "BUTTON") {
|
|
var fValue = frm.elements[i].value;
|
|
var fName = frm.elements[i].name;
|
|
var dbname = frm.elements[i].dbname;
|
|
//alert(dbname+' - '+fType+' - '+fValue);
|
|
if (fValue.length > 0 && dbname.length > 0) {
|
|
param = param+fName+v_sep+fValue+f_sep;
|
|
}
|
|
}
|
|
}
|
|
return param;
|
|
}
|
|
|
|
function build_attr(frm) {
|
|
var v_sep = "*";
|
|
var f_sep = "^";
|
|
var param = "";
|
|
var fValue;
|
|
var fName;
|
|
var dType;
|
|
var fType;
|
|
|
|
//alert('build_attr');
|
|
for (i = 0; i < frm.elements.length; i++) {
|
|
var dbname = frm.elements[i].dbname;
|
|
var fDisplay = frm.elements[i].display;
|
|
if ( dbname.length > 0 && fDisplay == 'block') {
|
|
fName = frm.elements[i].dbname;
|
|
fAttrib = frm.elements[i].ATTRIB;
|
|
dType = fAttrib.charAt(0);
|
|
fValue = frm.elements[i].value;
|
|
fType = frm.elements[i].type.toUpperCase();
|
|
//alert(frm.elements[i].name + ' - ' + fType + ' - ' + fValue);
|
|
if (fType == 'CHECKBOX' && frm.elements[i].checked) {
|
|
fValue = '1';
|
|
}
|
|
if (dType == 'D') {
|
|
fValue = fValue.substr(6,4)+fValue.substr(3,2)+fValue.substr(0,2);
|
|
}
|
|
param = param+fName+v_sep+fValue+f_sep;
|
|
}
|
|
}
|
|
return param;
|
|
}
|
|
|
|
function check_range(obj1, obj2) {
|
|
var retValidate = 1;
|
|
var fAttrib1 = obj1.ATTRIB;
|
|
var fValue1 = obj1.value;
|
|
var fNote1 = obj1.note;
|
|
|
|
var fAttrib2 = obj2.ATTRIB;
|
|
var fValue2 = obj2.value;
|
|
var fNote2 = obj2.note;
|
|
|
|
if (fAttrib1.charAt(0) == fAttrib2.charAt(0)) {
|
|
if ((fValue1.length == 0 && fValue2.length != 0) || (fValue1.length != 0 && fValue2.length == 0)) {
|
|
alert('Kedua '+fNote1+' dan '+fNote2+' harus diisi atau tidak diisi semua');
|
|
retValidate = 0;
|
|
} else {
|
|
if (fAttrib1.charAt(0) == "D") {
|
|
fObj1Date = fValue1.substr(6,4)+fValue1.substr(3,2)+fValue1.substr(0,2);
|
|
fObj2Date = fValue2.substr(6,4)+fValue2.substr(3,2)+fValue2.substr(0,2);
|
|
if (fObj2Date < fObj1Date) {
|
|
alert(fNote1 + ' lebih besar dari ' +fNote2);
|
|
retValidate = 0;
|
|
}
|
|
} else {
|
|
if (fValue2 < fValue1) {
|
|
alert(fNote1 + ' lebih besar dari ' +fNote2);
|
|
retValidate = 0;
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
retValidate = 0;
|
|
}
|
|
return retValidate;
|
|
}
|
|
|
|
|
|
function GetDesc(obj_type, obj_name, tab, col_sel, val, col_val) {
|
|
obj_target = obj_name;
|
|
obj_type_target = obj_type;
|
|
var str = val.value;
|
|
if (obj_type_target == "SPAN" && str.length == 0) {
|
|
document.getElementById(obj_target).innerHTML = "";
|
|
return;
|
|
}
|
|
var data="action=DESC";
|
|
data=data+"&tab="+tab;
|
|
data=data+"&col_sel="+col_sel;
|
|
data=data+"&val="+str;
|
|
data=data+"&col_val="+col_val;
|
|
data=data+"&sid="+Math.random();
|
|
ajax.requestFile = 'ajax_lov.php?'+data;
|
|
ajax.onCompletion = descChanged;
|
|
ajax.runAJAX();
|
|
}
|
|
|
|
function descChanged(){
|
|
if (ajax.response == -1) {
|
|
alert("Data Tidak Ada !");
|
|
} else {
|
|
switch (obj_type_target) {
|
|
case "SPAN":
|
|
document.getElementById(obj_target).innerHTML=ajax.response;
|
|
break;
|
|
case "TEXT":
|
|
document.getElementById(obj_target).value=ajax.response;
|
|
break;
|
|
case "CHECK":
|
|
if (ajax.response == 'Y') {
|
|
document.getElementById(obj_target).checked=true;
|
|
document.getElementById(obj_target).value="1"
|
|
} else {
|
|
document.getElementById(obj_target).checked=false;
|
|
document.getElementById(obj_target).value="0"
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
function RefreshGroupDPK(obj, name) {
|
|
var text = obj.options[obj.selectedIndex].text;
|
|
var val = obj.options[obj.selectedIndex].value;
|
|
if (name == "JNS_DEPO" || name == "JNS_GIRO" || name == "JNS_TAB") {
|
|
if (val == "%") {
|
|
document.getElementById("GROUP_REP").disabled = false;
|
|
} else {
|
|
document.getElementById("GROUP_REP").selectedIndex = 1;
|
|
document.getElementById("GROUP_REP").disabled = true;
|
|
}
|
|
}
|
|
} |