//-----------------------------List of functions in this file-------------------------------------- //EvaluateAxFunction(depFldname, changedFldName, currentRowNo) -Function to evaluate the expressio of a field and set its value. //GetFldNamesIndx(fldName) -Function to get the fields index from the ExpFldNames array. //GetExpressionType(expFldName, indx) -Function to get the type of expression defined for a field. //GetFieldGridType(fieldName) -Function which returns the type of the fields dc. //Assignfldval(fldName, fval) -Function to assign the value to the field after evaluating the expression. //CallFileUploadAction(actionName, Title, ftype, confirmmsg) -Function to call file upload action. //CallAfterFileUploadAction() -Function which executes after the file upload. //CallAction(actionName, fileup, confirmmsg) -Function to call action webservice. //SuccessCallbackAction(result, eventArgs) -callback function from the callaction webservice. //AssignLoadValues(resultJson, calledFrom) -Function which fills the values from result json into the fields. //ExecAttachments(attJsonObj) -Function to execute the attachments node in the json result . //ExecWorkflow(wfJsonObj) -Function to execute the workflow node in the json result. //ExecMessage(messageJsonObj) -Function to execute the message node in the json result. //ExecFormControl(formControlJsonObj) -Function to execute the formcontrol node in the json result. //ConstructParams(params, values) -Function to construct the parameter string from the json parameters. //ExecCommand(cmdJsonObj) -Function which executes the commands in the result json. //SetRows(dcNo, rowCount, calledFrom) -Function which adds or deletes the rows to the given dc to make it equal to the rowCount. //SetRowsInDc(dcNo, rowCount) -Function to clear and add rows in the grid with the given rowcount. //ClearRowsInGrid(gridDcNo) -Function to clear all rows except the first row in the Grid. //ConstructFieldName(fldName, dcNo, dbRowNo) -Function which returns the component name of the field. //GetFirstRow(dcNo) -Function which returns the first row in the dc. //CopyFromMasterRow(fldName, dcNo) -Function which copies the items to the field from the field in the first row of the given dcno. //DoFormControlPrivilege(result) -Function to apply partial disabling of the grid rows. //AttachFiles() -Function to attach the attachments to the tstruct. //ConstructAttachments() -Function to display the attachments attached to the tstruct. //RemoveNewFiles(filename) -Function to remove the files which is uploaded attachments. //RemoveFile(fname, rid) -Function to call the webservice to remove the uploaded attachments. //SuccessRemAttFile(result, eventArgs) -Callback function for RemoveAttachedFiles. //RemoveArrVal(flname, arrayname) -Function to remove the file from the array , once removed from the path. //OpenAttachment(a, b) -Function to call the service to view the attachments. //SuccChoicesOpenAtt(result, eventArgs) -Callback function for viewAttachXML service call. //OpenNewFile(openFileName) -Function to open a file which is attached newly. //ClearInputFile() -Function to clear the value from the html file control. //FindDuplicate(fileupld) -Function to find the duplicate attachment. //------------------------------------------------------------------------------------------------- var arrExpFunctions = ["getstockvalue", "getcostrate", "getclosingstock", "checkstock", "domrp"], saveActRecSuccess = false, AxActionSave = false, iViewRefresh = false; WrkflFlag = false; var axFramReload = false; var isMobile = isMobileDevice(); function CheckExpFunctions(expr) { var isExpFunc = false; for (var i = 0; i < arrExpFunctions.length; i++) { if (expr.indexOf(arrExpFunctions[i].toLowerCase()) != -1) { isExpFunc = true; break; } } return isExpFunc; } //Function to evaluate the expressio of a field and set its value. function EvaluateAxFunction(depFldname, changedFldName, currentRowNo) { //local variables for storing the global active variables. var activeRow = AxActiveRowNo; var activePRow = AxActivePRow; var activeDc = AxActiveDc; var activeParDC = AxActivePDc; var activeFldOldVal = FldOldValue; var depFldIndx = GetFldNamesIndx(depFldname) var depFldType = ""; var expression = ""; if (depFldIndx != -1) { depFldType = GetExpressionType(depFldname, depFldIndx); expression = Expressions[depFldIndx].toString(); } //For evaluate GetCostRate expression if (CheckExpFunctions(expression.toLowerCase())) { GetDependents(changedFldName, ""); return; } var changedFldType = GetFieldGridType(changedFldName); var exprFldName = depFldname; var depFrameNo = GetDcNo(exprFldName); if (depFldIndx != -1 && expression != "") { var result = ""; if (depFldType == "NG" && changedFldType == "NG") { if (exprFldName == "axpattachmentpath") { exprFldName = exprFldName + "000F" + depFrameNo; result = expression.substring(1, expression.length - 1); if ((result != "username") || (result != "usergroup") || (result != undefined) || (result.toString() != "undefined")) { Assignfldval(exprFldName, result); } } else { exprFldName = exprFldName + "000F" + depFrameNo; result = EvalPrepared(exprFldName, "000", expression, "expr"); if ((result != "username") || (result != "usergroup") || (result != undefined) || (result.toString() != "undefined")) { Assignfldval(exprFldName, result); } } } else if (depFldType == "NG" && changedFldType == "GR") { var clientRowNo = GetClientRowNo(AxActiveRowNo, depFrameNo); exprFldName = exprFldName + clientRowNo + "F" + depFrameNo; result = EvalPrepared(exprFldName, clientRowNo, expression, "expr"); if ((result != "username") || (result != "usergroup") || (result != undefined) || (result.toString() != "undefined")) { Assignfldval(exprFldName, result); } } else if ((depFldType == "GR" || depFldType == "PG") && changedFldType == "NG") { var rowCnt = 0; rowCnt = parseInt(GetDcRowCount(depFrameNo), 10); for (var i = 1; i <= rowCnt; i++) { var rowNo = GetRowNoHelper(i); AxActiveRowNo = GetDbRowNo(rowNo, depFrameNo); //Here the exprFldName was getting appended with new row as it was not cleared, also check line no 116 var tmpFldId = exprFldName + rowNo + "F" + depFrameNo; isEvalGrid=false; result =Evaluate(tmpFldId, rowNo, expression, "expr");// EvalPrepared(tmpFldId, rowNo, expression, "expr"); if ((result != "username") || (result != "usergroup") || (result != undefined) || (result.toString() != "undefined")) { Assignfldval(tmpFldId, result); } if (isEvalGrid) { var rvarFldList=""; try{ let rvFld= regVarFldExp.filter(word => word.startsWith(exprFldName.toLowerCase()+"♦")); if(rvFld.length>0) { let rvFldExp=rvFld[0].split("♦")[1]; if(rvFldExp!=-1) rvarFldList=rvFldExp; }else{ let rvrFldList = FNames.filter(word => word.toLowerCase()=="rvar_"+exprFldName.toLowerCase()); if(rvrFldList!=""){ let rvlFldIndx = GetFldNamesIndx(rvrFldList) let rvlExpression = Expressions[rvlFldIndx].toString(); regVarFldExp.push(exprFldName+"♦"+rvrFldList+"♠"+rvlExpression); rvarFldList=rvrFldList+"♠"+rvlExpression; }else regVarFldExp.push(exprFldName+"♦-1"); } }catch(ex){} isEvalGrid = false; if(rvarFldList!="") { try{ let rvarFldName= rvarFldList.split("♠"); let tmprvlFldId = rvarFldName[0] + rowNo + "F" + depFrameNo; Evaluate(tmprvlFldId, rowNo, rvarFldName[1], "expr"); }catch(ex){} } } } } else if (depFldType == "GR" && changedFldType == "GR") { var clientRowNo = GetClientRowNo(AxActiveRowNo, AxActiveDc); var depDcNo = GetDcNo(exprFldName); if (AxActiveDc != depDcNo) { var rowCnt = 0; rowCnt = parseInt(GetDcRowCount(depDcNo), 10); for (var i = 1; i <= rowCnt; i++) { var rowNo = GetClientRowNo(i, depDcNo); AxActiveRowNo = GetDbRowNo(rowNo, depDcNo); var tmpFldId = exprFldName + rowNo + "F" + depDcNo; result = Evaluate(tmpFldId, rowNo, expression, "expr"); if ((result != "username") || (result != "usergroup") || (result != undefined) || (result.toString() != "undefined")) { Assignfldval(tmpFldId, result); } } } else { var fldExprFldName = exprFldName; exprFldName = exprFldName + clientRowNo + "F" + AxActiveDc; isEvalGrid=false; if (exprFldName.indexOf("_referimages") > -1 || exprFldName.indexOf("dc" + depDcNo + "_image") > -1 || exprFldName.indexOf("dc" + depDcNo + "_imagepath") > -1) result = GetReferExpr(exprFldName, clientRowNo, expression); else result = Evaluate(exprFldName, clientRowNo, expression, "expr"); if ((result != "username") || (result != "usergroup") || (result != undefined) || (result.toString() != "undefined")) { Assignfldval(exprFldName, result); } if (AxActiveDc == depDcNo && (isSumTillGrid || isEvalGrid)) {//Refer: HEA000101 isSumTillGrid = false; var rvarFldList=""; if(isEvalGrid){ try{ let rvFld= regVarFldExp.filter(word => word.startsWith(fldExprFldName.toLowerCase()+"♦")); if(rvFld.length>0) { let rvFldExp=rvFld[0].split("♦")[1]; if(rvFldExp!=-1) rvarFldList=rvFldExp; }else{ let rvrFldList = FNames.filter(word => word.toLowerCase()=="rvar_"+fldExprFldName.toLowerCase()); if(rvrFldList!=""){ let rvlFldIndx = GetFldNamesIndx(rvrFldList) let rvlExpression = Expressions[rvlFldIndx].toString(); regVarFldExp.push(fldExprFldName+"♦"+rvrFldList+"♠"+rvlExpression); rvarFldList=rvrFldList+"♠"+rvlExpression; }else regVarFldExp.push(fldExprFldName+"♦-1"); } }catch(ex){} } isEvalGrid = false; //var curRowNum = parseInt(AxActiveRowNo) + 1; var curRowNum = 1; var rowCnt = 0; rowCnt = parseInt(GetDcRowCount(depDcNo), 10); for (var i = curRowNum; i <= rowCnt; i++) { var rowNo = GetClientRowNo(i, depDcNo); AxActiveRowNo = GetDbRowNo(rowNo, depDcNo); var tmpFldId = fldExprFldName + rowNo + "F" + depDcNo; result = Evaluate(tmpFldId, rowNo, expression, "expr"); if ((result != "username") || (result != "usergroup") || (result != undefined) || (result.toString() != "undefined")) { Assignfldval(tmpFldId, result); if(rvarFldList!="") { try{ let rvarFldName= rvarFldList.split("♠"); let tmprvlFldId = rvarFldName[0] + rowNo + "F" + depDcNo; Evaluate(tmprvlFldId, rowNo, rvarFldName[1], "expr"); }catch(ex){} } } } isEvalGrid = false; } } } else if (depFldType == "PG" && changedFldType == "PG") { var clientRowNo = GetClientRowNo(AxActiveRowNo, AxActiveDc); exprFldName = exprFldName + clientRowNo + "F" + AxActiveDc; result = EvalPrepared(exprFldName, clientRowNo, expression, "expr"); if ((result != "username") || (result != "usergroup") || (result != undefined) || (result.toString() != "undefined")) { Assignfldval(exprFldName, result); } } else if (depFldType == "PG" && changedFldType == "GR") { var cDcNo = GetFieldsDcNo(changedFldName); AxActivePRow = AxActiveRowNo; AxActiveDc = depFrameNo; AxActivePDc = cDcNo; var clientActRow = GetClientRowNo(AxActivePRow, AxActivePDc); var popRowsStr = GetPopRows(AxActivePDc, clientActRow, AxActiveDc); var popRows = popRowsStr.split(","); var fldName = exprFldName; for (var i = 0; i < popRows.length; i++) { if (popRows[0] != "") { AxActiveRowNo = GetDbRowNo(popRows[i], AxActiveDc); exprFldName = fldName + popRows[i] + "F" + depFrameNo; result = EvalPrepared(exprFldName, popRows[i].toString(), expression, "expr"); if ((result != "username") || (result != "usergroup") || (result != undefined) || (result.toString() != "undefined")) { Assignfldval(exprFldName, result); } } } } else if (depFldType == "GR" && changedFldType == "PG") { var cDcNo = GetFieldsDcNo(changedFldName); if (depFrameNo != cDcNo) { AxActiveRowNo = AxActivePRow; AxActiveDc = depFrameNo; } var clientRow = GetClientRowNo(AxActiveRowNo, AxActiveDc); exprFldName = exprFldName + clientRow + "F" + AxActiveDc; result = EvalPrepared(exprFldName, clientRow, expression, "expr"); if ((result != "username") || (result != "usergroup") || (result != undefined) || (result.toString() != "undefined")) { Assignfldval(exprFldName, result); } } if (isSumTillGrid != undefined) isSumTillGrid = false; //Restore the global variables with the local variables. AxActiveRowNo = activeRow; AxActivePRow = activePRow; AxActiveDc = activeDc; AxActivePDc = activeParDC; FldOldValue = activeFldOldVal; } } function EvaluateAxFunctionPerf(depFldname, changedFldName, currentRowNo) { //local variables for storing the global active variables. var activeRow = AxActiveRowNo; var activePRow = AxActivePRow; var activeDc = AxActiveDc; var activeParDC = AxActivePDc; var activeFldOldVal = FldOldValue; var depFldIndx = GetFldNamesIndx(depFldname) var depFldType = ""; var expression = ""; if (depFldIndx != -1) { depFldType = GetExpressionType(depFldname, depFldIndx); expression = Expressions[depFldIndx].toString(); } //For evaluate GetCostRate expression if (CheckExpFunctions(expression.toLowerCase())) { GetDependents(changedFldName, ""); return; } var changedFldType = GetFieldGridType(changedFldName); var exprFldName = depFldname; var depFrameNo = GetDcNo(exprFldName); if (depFldIndx != -1 && expression != "") { var result = ""; if (depFldType == "NG" && changedFldType == "NG") { if (exprFldName == "axpattachmentpath") { exprFldName = exprFldName + "000F" + depFrameNo; result = expression.substring(1, expression.length - 1); if ((result != "username") || (result != "usergroup") || (result != undefined) || (result.toString() != "undefined")) { AssignfldvalPerf(exprFldName, result); } } else { exprFldName = exprFldName + "000F" + depFrameNo; result = EvalPrepared(exprFldName, "000", expression, "expr"); if ((result != "username") || (result != "usergroup") || (result != undefined) || (result.toString() != "undefined")) { AssignfldvalPerf(exprFldName, result); } } } else if (depFldType == "NG" && changedFldType == "GR") { var clientRowNo = GetClientRowNo(AxActiveRowNo, depFrameNo); exprFldName = exprFldName + clientRowNo + "F" + depFrameNo; result = EvalPrepared(exprFldName, clientRowNo, expression, "expr"); if ((result != "username") || (result != "usergroup") || (result != undefined) || (result.toString() != "undefined")) { AssignfldvalPerf(exprFldName, result); } } else if ((depFldType == "GR" || depFldType == "PG") && changedFldType == "NG") { var rowCnt = 0; rowCnt = parseInt(GetDcRowCount(depFrameNo), 10); for (var i = 1; i <= rowCnt; i++) { var rowNo = GetRowNoHelper(i); AxActiveRowNo = GetDbRowNo(rowNo, depFrameNo); //Here the exprFldName was getting appended with new row as it was not cleared, also check line no 116 var tmpFldId = exprFldName + rowNo + "F" + depFrameNo; result = EvalPrepared(tmpFldId, rowNo, expression, "expr"); if ((result != "username") || (result != "usergroup") || (result != undefined) || (result.toString() != "undefined")) { AssignfldvalPerf(tmpFldId, result); } } } else if (depFldType == "GR" && changedFldType == "GR") { var clientRowNo = GetClientRowNo(AxActiveRowNo, AxActiveDc); var depDcNo = GetDcNo(exprFldName); if (AxActiveDc != depDcNo) { var rowCnt = 0; rowCnt = parseInt(GetDcRowCount(depDcNo), 10); for (var i = 1; i <= rowCnt; i++) { var rowNo = GetClientRowNo(i, depDcNo); AxActiveRowNo = GetDbRowNo(rowNo, depDcNo); var tmpFldId = exprFldName + rowNo + "F" + depDcNo; result = Evaluate(tmpFldId, rowNo, expression, "expr"); if ((result != "username") || (result != "usergroup") || (result != undefined) || (result.toString() != "undefined")) { AssignfldvalPerf(tmpFldId, result); } } } else { var fldExprFldName = exprFldName; exprFldName = exprFldName + clientRowNo + "F" + AxActiveDc; if (exprFldName.indexOf("_referimages") > -1 || exprFldName.indexOf("dc" + depDcNo + "_image") > -1 || exprFldName.indexOf("dc" + depDcNo + "_imagepath") > -1) result = GetReferExpr(exprFldName, clientRowNo, expression); else result = Evaluate(exprFldName, clientRowNo, expression, "expr"); if ((result != "username") || (result != "usergroup") || (result != undefined) || (result.toString() != "undefined")) { AssignfldvalPerf(exprFldName, result); } if (AxActiveDc == depDcNo && isSumTillGrid) {//Refer: HEA000101 isSumTillGrid = false; var curRowNum = parseInt(AxActiveRowNo) + 1; var rowCnt = 0; rowCnt = parseInt(GetDcRowCount(depDcNo), 10); for (var i = curRowNum; i <= rowCnt; i++) { var rowNo = GetClientRowNo(i, depDcNo); AxActiveRowNo = GetDbRowNo(rowNo, depDcNo); var tmpFldId = fldExprFldName + rowNo + "F" + depDcNo; result = Evaluate(tmpFldId, rowNo, expression, "expr"); if ((result != "username") || (result != "usergroup") || (result != undefined) || (result.toString() != "undefined")) { AssignfldvalPerf(tmpFldId, result); } } } } } else if (depFldType == "PG" && changedFldType == "PG") { var clientRowNo = GetClientRowNo(AxActiveRowNo, AxActiveDc); exprFldName = exprFldName + clientRowNo + "F" + AxActiveDc; result = EvalPrepared(exprFldName, clientRowNo, expression, "expr"); if ((result != "username") || (result != "usergroup") || (result != undefined) || (result.toString() != "undefined")) { AssignfldvalPerf(exprFldName, result); } } else if (depFldType == "PG" && changedFldType == "GR") { var cDcNo = GetFieldsDcNo(changedFldName); AxActivePRow = AxActiveRowNo; AxActiveDc = depFrameNo; AxActivePDc = cDcNo; var clientActRow = GetClientRowNo(AxActivePRow, AxActivePDc); var popRowsStr = GetPopRows(AxActivePDc, clientActRow, AxActiveDc); var popRows = popRowsStr.split(","); var fldName = exprFldName; for (var i = 0; i < popRows.length; i++) { if (popRows[0] != "") { AxActiveRowNo = GetDbRowNo(popRows[i], AxActiveDc); exprFldName = fldName + popRows[i] + "F" + depFrameNo; result = EvalPrepared(exprFldName, popRows[i].toString(), expression, "expr"); if ((result != "username") || (result != "usergroup") || (result != undefined) || (result.toString() != "undefined")) { AssignfldvalPerf(exprFldName, result); } } } } else if (depFldType == "GR" && changedFldType == "PG") { var cDcNo = GetFieldsDcNo(changedFldName); if (depFrameNo != cDcNo) { AxActiveRowNo = AxActivePRow; AxActiveDc = depFrameNo; } var clientRow = GetClientRowNo(AxActiveRowNo, AxActiveDc); exprFldName = exprFldName + clientRow + "F" + AxActiveDc; result = EvalPrepared(exprFldName, clientRow, expression, "expr"); if ((result != "username") || (result != "usergroup") || (result != undefined) || (result.toString() != "undefined")) { AssignfldvalPerf(exprFldName, result); } } if (isSumTillGrid != undefined) isSumTillGrid = false; //Restore the global variables with the local variables. AxActiveRowNo = activeRow; AxActivePRow = activePRow; AxActiveDc = activeDc; AxActivePDc = activeParDC; FldOldValue = activeFldOldVal; } } //Function to get the fields index from the ExpFldNames array. function GetFldNamesIndx(fldName) { var indx = -1; for (var i = 0; i < ExpFldNames.length; i++) { var exprStr = ExpFldNames[i].split("."); if (exprStr[1] == fldName) { indx = i; break; } } return indx; } //Function to get the type of expression defined for a field. function GetExpressionType(expFldName, indx) { var fldProps; var type = ""; fldProps = ExpFldNames[indx].split('.'); var dcNo = fldProps[2].substring(1); if (IsDcPopGrid(dcNo)) type = "PG"; else if (IsDcGrid(dcNo)) type = "GR"; else type = "NG"; return type; } //Function which returns the type of the fields dc. function GetFieldGridType(fieldName) { var type = ""; var dcNo = GetFieldsDcNo(fieldName); if (IsDcPopGrid(dcNo)) type = "PG"; else if (IsDcGrid(dcNo)) type = "GR"; else type = "NG"; return type; } //Function to assign the value to the field after evaluating the expression. function Assignfldval(fldName, fval) { if (fval != "MessageSetAxFont") { //FldOldValue = GetFieldValue(fldName); var datatype = ""; var fld = $j("#" + fldName); if (fld.length > 0) // if field exists { var CurValue = fld[0].value; if (CurValue == "***") return; var pickListFld = "img~" + fldName; if ($j("#" + pickListFld).length > 0) //img~PartNo001F2" { isFocusFrmPickList = true; } var fName = GetFieldsName(fldName); var fRowNo = GetFieldsRowNo(fldName); var dcNo = GetFieldsDcNo(fldName); var fldDbRow = GetDbRowNo(fRowNo, dcNo); if (TstructHasPop) { if (IsParentField(fName, dcNo)) { UpdatePopUpParents(fldName); } } // fix for datetype field returning 0 var decNo = 0; for (var z = 0; z < FNames.length; z++) { if (FNames[z] == fName) { decNo = FDecimal[z]; datatype = FDataType[z]; break; } } if (datatype.toLowerCase() == "numeric") { fval = fixit(fval, decNo); UpdateFieldArray(fldName, fldDbRow, fval, "parent", ""); fval = CommaFormatted(fixit(fval, decNo)); CallSetFieldValue(fldName, fval); } else if ((fld[0].type == "text") || (fld[0].type == "hidden")) { if (fval == "''") fval = ""; if (!fval) fval = ""; if (datatype == "Date/Time") { var upfval = fval; if (fval == 0) { fval = ""; upfval = ""; } else if (upfval != "") { var glCulture = callParentNew('glCulture');// eval(callParent('glCulture')); if (glCulture != undefined && glCulture == "en-us") upfval = GetDateStr(upfval, "mm/dd/yyyy", "dd/mm/yyyy"); } UpdateFieldArray(fldName, fldDbRow, upfval, "parent", ""); CallSetFieldValue(fldName, fval); } else { if (fval != "") { var upfval = fval; try { var dtlenth = fval.split('/'); if (dtlenth[0].length == 2 && (typeof dtlenth[1] != "undefined" && dtlenth[1].length == 2) && (typeof dtlenth[2] != "undefined" && dtlenth[2].length == 4)) { var glCulture = callParentNew('glCulture');//eval(callParent('glCulture')); if (glCulture != undefined && glCulture == "en-us") upfval = GetDateStr(upfval, "mm/dd/yyyy", "dd/mm/yyyy"); } } catch (ex) { } UpdateFieldArray(fldName, fldDbRow, upfval, "parent", ""); CallSetFieldValue(fldName, fval); } else { UpdateFieldArray(fldName, fldDbRow, fval, "parent", ""); CallSetFieldValue(fldName, fval); } } } else { //convert the value to string if the field type is character(by default it is taking it as numeric value) if (datatype.toLowerCase() == "character") fval = fval.toString(); UpdateFieldArray(fldName, fldDbRow, fval, "parent", ""); CallSetFieldValue(fldName, fval); } if (fName.indexOf("axpvalid") != -1) { DoFormControlPrivilege(fldName, fval); } if (fldName.indexOf("axpcurrencydec") != -1) { UpdateAxpCurrDec(fval, "GetDep"); } } } } function AssignfldvalPerf(fldName, fval) { if (fval != "MessageSetAxFont") { var datatype = ""; var fName = GetFieldsName(fldName); var fRowNo = GetFieldsRowNo(fldName); var dcNo = GetFieldsDcNo(fldName); var fldDbRow = GetDbRowNo(fRowNo, dcNo); if (TstructHasPop) { if (IsParentField(fName, dcNo)) { UpdatePopUpParents(fldName); } } // fix for datetype field returning 0 var decNo = 0; for (var z = 0; z < FNames.length; z++) { if (FNames[z] == fName) { decNo = FDecimal[z]; datatype = FDataType[z]; break; } } if (datatype.toLowerCase() == "numeric") { fval = fixit(fval, decNo); UpdateFieldArray(fldName, fldDbRow, fval, "parent", ""); fval = CommaFormatted(fixit(fval, decNo)); CallSetFieldValue(fldName, fval); } else if (datatype == "Date/Time") { if (fval == 0) fval = ""; UpdateFieldArray(fldName, fldDbRow, fval, "parent", ""); CallSetFieldValue(fldName, fval); } else { //convert the value to string if the field type is character(by default it is taking it as numeric value) if (datatype.toLowerCase() == "character") fval = fval.toString(); UpdateFieldArray(fldName, fldDbRow, fval, "parent", ""); CallSetFieldValue(fldName, fval); } if (fName.indexOf("axpvalid") != -1) { DoFormControlPrivilege(fldName, fval); } if (fldName.indexOf("axpcurrencydec") != -1) { UpdateAxpCurrDec(fval, "GetDep"); } } } //Function to call file upload action. function CallFileUploadAction(actionName, Title, ftype, confirmmsg) { if (confirmmsg && confirmmsg != "") { var glType = eval(callParent('gllangType')); var isRTL = false; if (glType == "ar") isRTL = true; else isRTL = false; var CallFileUploadActionCB = $.confirm({ theme: 'modern', title: eval(callParent('lcm[155]')), onContentReady: function () { disableBackDrop('bind'); }, backgroundDismiss: 'false', rtl: isRTL, escapeKey: 'buttonB', content: confirmmsg, buttons: { buttonA: { text: eval(callParent('lcm[164]')), btnClass: 'btn btn-primary', action: function () { CallFileUploadActionCB.close(); CallFileUploadActionAfterConfirm(); } }, buttonB: { text: eval(callParent('lcm[192]')), btnClass: 'btn btn-bg-light btn-color-danger btn-active-light-danger', action: function () { disableBackDrop('destroy'); return; } } } }); } function CallFileUploadActionAfterConfirm() { Title = "File Upload"; gActionname = actionName; gConfirmmsg = confirmmsg; displayBootstrapModalDialog("File Upload", "xs", "147px", true, "./fileupload.aspx?act=upload"); } if (CallFileUploadActionCB === undefined) { CallFileUploadActionAfterConfirm(); } } //Function which executes after the file upload. function CallAfterFileUploadAction() { var updFilename = $j("#cb_sactbu").val(); CallAction(gActionname, updFilename, gConfirmmsg); } function GetCancelRemarks(actionName, fileup, manRemarks) { ShowPrompt(actionName, fileup, manRemarks, true); } function ShowPrompt(actionName, fileup, manRemarks, isRemarksEntered) { var msgStatus = true; var i = 0; try { var AxHeader = AxBeforeShowPrompt(); } catch (ex) { actionCallbackFlag = actionCallFlag; $("#icons,#btnSaveTst,.BottomToolbarBar a,.wizardNextPrevWrapper").css({ "pointer-events": "auto" }); } var cutMsg = eval(callParent('lcm[38]')); var cutMsgEnter = eval(callParent('lcm[39]')); var cutMsgChar = eval(callParent('lcm[40]')); $j.msgBox({ type: "prompt", title: "Remarks", inputs: [ isRemarksEntered == false ? { header: cutMsg, type: "label", name: "" } : {}, AxHeader == undefined ? { header: cutMsgEnter, type: "textarea", name: "remark" } : { header: AxHeader, type: "textarea", name: "remark" }, { header: cutMsgChar, type: "readonly", value: "150" }], buttons: [ { value: "Ok" }, { value: "Close" }], afterClose: function () { if (!msgStatus) ShowPrompt(actionName, fileup, manRemarks, false); }, success: function (result, values) { if (result == "Ok") { if (values[0].value == "" && manRemarks == "y") { msgStatus = false; } else { CallActionExt(actionName, fileup, values[0].value); msgStatus = true; } } else { actionCallbackFlag = actionCallFlag; $("#icons,#btnSaveTst,.BottomToolbarBar a,.wizardNextPrevWrapper").css({ "pointer-events": "auto" }); EnableToolBarBtns(); } } }); if (isWizardTstruct) { $j(".msgBox").css("z-index", "999"); } ShowDimmer(false); } function EnableToolBarBtns() { if ($j("#icons").length > 0 && $j("#icons").prop("disabled")) $j("#icons").prop("disabled", false); } function CheckDisabledActionBtn(actionName) { var isBtnDisabled = false; //$j(".action,.AxpTstBtn").each(function() { $j(".action").each(function () { var actFunction = $j(this).html().toLowerCase(); var idx = actFunction.substring(actFunction.indexOf("callaction") + 11).indexOf(""" + actionName + """); if (idx == -1) idx = actFunction.substring(actFunction.indexOf("callaction") + 11).indexOf('"' + actionName + '"'); if (idx != -1 && $j(this).attr("disabled") == "disabled") { isBtnDisabled = true; return false; } }); return isBtnDisabled; } //Function to call action webservice. function CallAction(actionName, fileup, confirmmsg, remarks, manRemarks, dsignaction, isScript) { if (actionCallFlag == actionCallbackFlag) { actionCallFlag = Math.random(); $("#icons,#btnSaveTst,.BottomToolbarBar a").css({ "pointer-events": "auto" }); } else { //showAlertDialog("error", 2023, "client"); $("#icons,#btnSaveTst,.BottomToolbarBar a").css({ "pointer-events": "none" }); return; } try{ clickedButtonCaption=this.event.currentTarget.text; }catch(ex){} $j("#hdnActionName").val(actionName); if (dsignaction == undefined) dsignaction = ''; AxActiveAction = actionName; if (CheckDisabledActionBtn(actionName) || AxIsTstructLocked) { actionCallbackFlag = actionCallFlag; $("#icons,#btnSaveTst,.BottomToolbarBar a,.wizardNextPrevWrapper").css({ "pointer-events": "auto" }); return; } ShowDimmer(true); if (currentCK != "") { ShowdivContentCK($("#" + currentCK), false); } var proceed = true; try { proceed = AxBeforeCallAction(actionName); } catch (ex) { } if (proceed == undefined) proceed = true; if (proceed) { try{ let actInd=$j.inArray(actionName, tstActionName); if(typeof actSaveTask!="undefined" && actSaveTask[actInd]=="save"){ if (!ValidateBeforeSubmit()) { ShowDimmer(false); AxWaitCursor(false); actionCallbackFlag = actionCallFlag; $("#icons,#btnSaveTst,.BottomToolbarBar a,.wizardNextPrevWrapper").css({ "pointer-events": "auto" }); GetProcessTime(); GetTotalElapsTime(); return; } } if (actInd > -1 && typeof actScriptTask != "undefined" && (actScriptTask[actInd].startsWith("loadform♠") || actScriptTask[actInd].startsWith("loadformanddata♠") || actScriptTask[actInd].startsWith("loadiview♠") || actScriptTask[actInd].startsWith("loadpage♠") || actScriptTask[actInd].startsWith("openpage♠"))) { let scriptTaskNode = actScriptTask[actInd]; scriptTaskNode = scriptTaskNode.split("♠")[1]; EvaluateScriptFormControl(scriptTaskNode); return; } let fcScriptInd = $j.inArray(actionName, SFCActionName); if (fcScriptInd>-1 && typeof SFormControls != "undefined" && typeof SFormControls[fcScriptInd] != "undefined" && (SFormControls[fcScriptInd].toLowerCase().startsWith("loadform(") || SFormControls[fcScriptInd].toLowerCase().startsWith("loadformanddata(") || SFormControls[fcScriptInd].toLowerCase().startsWith("loadiview(") || SFormControls[fcScriptInd].toLowerCase().startsWith("loadpage(") || SFormControls[fcScriptInd].toLowerCase().startsWith("openpage("))) { EvaluateScriptFormControl(SFormControls[fcScriptInd]); return; } }catch(ex){} if (remarks == "y") { var rid = $j("#recordid000F0").val(); if (rid == "0") { showAlertDialog("warning", 2009, "client"); actionCallbackFlag = actionCallFlag; $("#icons,#btnSaveTst,.BottomToolbarBar a,.wizardNextPrevWrapper").css({ "pointer-events": "auto" }); ShowDimmer(false); return; } if (tstructCancelled.toLowerCase() == "cancelled") { showAlertDialog("error", 2024, "client"); actionCallbackFlag = actionCallFlag; $("#icons,#btnSaveTst,.BottomToolbarBar a,.wizardNextPrevWrapper").css({ "pointer-events": "auto" }); ShowDimmer(false); return; } if (!AxAllowCancel) { actionCallbackFlag = actionCallFlag; $("#icons,#btnSaveTst,.BottomToolbarBar a,.wizardNextPrevWrapper").css({ "pointer-events": "auto" }); ShowDimmer(false); return showAlertDialog("error", 2025, "client"); } } if ($j("#icons").length > 0 && $j("#icons").prop("disabled")) { actionCallbackFlag = actionCallFlag; $("#icons,#btnSaveTst,.BottomToolbarBar a,.wizardNextPrevWrapper").css({ "pointer-events": "auto" }); return; } if ($j("#icons").length > 0) $j("#icons").prop("disabled", true); if (confirmmsg == undefined) confirmmsg = ""; if ((confirmmsg != "") && (!confrm)) { if (!confirm(confirmmsg)) { EnableToolBarBtns(); actionCallbackFlag = actionCallFlag; ShowDimmer(false); AxWaitCursor(false); $("#icons,#btnSaveTst,.BottomToolbarBar a,.wizardNextPrevWrapper").css({ "pointer-events": "auto" }); return; } } if (remarks == "y") { //if remarks entered by user and clicked on ok then call w/s else return GetCancelRemarks(actionName, fileup, manRemarks); ShowDimmer(false); } else { CallActionExt(actionName, fileup, '', dsignaction, isScript); } } } function CallActionExt(actionName, fileup, remarks, dsignaction, isScript) { GetCurrentTime("Tstruct load on Action button click(ws call)"); var rid = $j("#recordid000F0").val(); ArrActionLog = "CallAction-" + actionName + "Recordid-" + rid; AxWaitCursor(true); var fup = ""; if ((fileup != "") && (fileup != undefined)) { if (fileup.substring(0, 1) == ":") { var uploadFieldname = ""; var uploadFieldVal = ""; // for fileupload with fieldname as param var fupfld = fileup.substring(1, fileup.length); var isgridfld = IsGridField(fupfld); if (isgridfld == true) { var rownum = ""; } else { uploadFieldname = fupfld + "000F0"; uploadFieldVal = $j("#" + uploadFieldname).val(); fup = uploadFieldVal; } } else { fup = fileup.toString(); } } var tid = transid; var txt = ''; var tem = 1; var rid = $j("#recordid000F0").val(); var startIndex; var actionId; var dcNo = 0; var activerow = 0; var fullFldName = actionName; if (actionName.indexOf("_") != -1) { //if (actionName.indexOf("onfocus") != -1) { if ($j.inArray(GetFieldsName(actionName), FNames) != -1) { startIndex = actionName.lastIndexOf("_"); actionName = actionName.substring(startIndex + 1); } if (actionName.indexOf("F") != -1) { activerow = parseInt(GetActiveRow(fullFldName), 10) + 1; var fIndx = actionName.lastIndexOf("F"); dcNo = parseInt(actionName.toString().substring(fIndx + 1)); actionName = actionName.substring(0, fIndx - 3); } // } } // for all else condion defualt value of 0 will go. var trace = traceSplitStr + "Action-" + actionName + traceSplitChar; var fileName = ""; if (fup != "") { fileName = fup; var index = fileName.lastIndexOf('\\'); if (index != -1) { fileName = fileName.substring(index + 1); } } var visDcname = GetOpenTabDcs(); var files = UploadFiles(); var delRows = GetDeletedRows(); var chngRows = GetChangedRows(); var remStr = ""; if (remarks != undefined) { remarks = CheckSpecialCharsInXml(remarks); remStr = '' + remarks + ''; } txt = txt + '' + remStr + ''; if (typeof isScript == 'undefined') isScript = false; try { callBackFunDtls = "CallActionExt♠" + actionName + "♠" + fileup + "♠" + remarks + "♠" + dsignaction; GetProcessTime(); ASB.WebService.CallActionWS(ChangedFields, ChangedFieldDbRowNo, ChangedFieldValues, DeletedDCRows, DeletedFieldValue, ArrActionLog, visDcname, txt, fup, "t", delRows, chngRows, tstDataId, files, isScript, SuccessCallbackAction, OnException); } catch (exp) { actionCallbackFlag = actionCallFlag; $("#icons,#btnSaveTst,.BottomToolbarBar a,.wizardNextPrevWrapper").css({ "pointer-events": "auto" }); AxWaitCursor(false); var execMess = exp.name + "^♠^" + exp.message; showAlertDialog("error", 2030, "client", execMess); UpdateExceptionMessageInET("ActionWS exception : "+exp.message); GetProcessTime(); GetTotalElapsTime(); } } //callback function from the callaction webservice. function SuccessCallbackAction(result, eventArgs) { if (result != "") { var serverprocesstime = result.split("*♠*")[0]; var requestProcess_logtime = result.split("*♠*")[1]; result = result.split("*♠*")[2]; WireElapsTime(serverprocesstime, requestProcess_logtime); } if (result!=""){// && result.toLowerCase().indexOf("access violation") === -1) { actionCallbackFlag = actionCallFlag; $("#icons,#btnSaveTst,.BottomToolbarBar a,.wizardNextPrevWrapper").css({ "pointer-events": "auto" }); ArrActionLog = ""; if (CheckSessionTimeout(result)) { return; } var clrCacheKeys = result.split("*#*")[1]; if (typeof clrCacheKeys != "undefined" && clrCacheKeys != "") { console.log("Clearing cache in action"); ClearRedisKeys(clrCacheKeys); } if (result.indexOf("*#*") > -1) result = result.substring(0, result.indexOf("*#*")); ChangedFields.length = 0; ChangedFieldDbRowNo.length = 0; ChangedFieldValues.length = 0; DeletedDCRows.length = 0; DeletedFieldValue.length = 0; EnableToolBarBtns(); try { var AfterAction = AxAftertstCallAction(result); // result = AxModifyActionResult(result); if (AfterAction) { SetFormDirty(false); AxWaitCursor(false); ShowDimmer(false); return; } } catch (ex) { } ParseServiceResult(result, "Action"); try { AxAfterCallAction(); } catch (ex) { } if (AxActionSave == true && parent.axMainPageReload == transid)// TO Reload mainnew page for cloud application. { parent.doPageUnload = "false"; parent.window.location.href = "../aspx/mainnew.aspx"; } SetFormDirty(false); AxWaitCursor(false); ShowDimmer(false); //if(AxActionSave) //{ // //ShowDimmer(true); // disableBtnBeforeReload(); //} } else { if(window.document.location.href.indexOf("tstruct.aspx")>-1) { DataReloadDuringActionError(); }else{ $("#dvlayout").hide(); AxWaitCursor(false); ShowDimmer(false); $("#reloaddiv").show(); } } } function DataReloadDuringActionError() { if(typeof clickedButtonCaption=="undefined" || clickedButtonCaption=="") clickedButtonCaption="Task"; var glType = eval(callParent('gllangType')); var isRTL = false; if (glType == "ar") isRTL = true; else isRTL = false; var CallAvActionCB = $.confirm({ closeIcon: false, title: eval(callParent('lcm[155]')), rtl: isRTL, onContentReady: function () { disableBackDrop('bind'); }, content: clickedButtonCaption +" not completed due to an unexpected error.", buttons: { buttonA: { text: "Retry", btnClass: 'hotbtn', action: function () { CallAvActionCB.close(); clickedButtonCaption=""; actionCallbackFlag = actionCallFlag; $("#icons,#btnSaveTst,.BottomToolbarBar a,.wizardNextPrevWrapper").css({ "pointer-events": "auto" }); ArrActionLog = ""; AxWaitCursor(false); ShowDimmer(false); } }, buttonB: { text: "Abort", btnClass: 'coldbtn', action: function () { clickedButtonCaption=""; window.location.href = window.location.href; } } } }); } function EvaluateRapidExpressions(rapidExprFlds) { var expFlds = rapidExprFlds.split(','); var expFldName; var depFldName = ""; var i = 0; for (i = 0; i < expFlds.length; i++) { EvaluateAxFunction(GetFieldsName(expFlds[i]), expFlds[i]); } } var AxFormLoadSkipped = false; //Function which fills the values from result json into the fields. function AssignLoadValues(resultJson, calledFrom, actnName, navigationURL) { actnName = typeof actnName != "undefined" ? actnName : ""; if (resultJson == "This proces taking time is more than expected. You will get a notification once completed") { showAlertDialog("info", appGlobalVarsObject.lcm[491]); return; } var resval = resultJson.split("*$*"); for (var ind = 0; ind < resval.length; ind++) { if (resval[ind] == "FDCache") { AxFormLoadSkipped = true; continue; } //TODO:We need to Review the below line. var strSingleLineText = resval[ind].toString().replace(new RegExp("\\n", "g"), ""); strSingleLineText = strSingleLineText.replace(new RegExp("\\t", "g"), " "); strSingleLineText = strSingleLineText.replace(/\\/g, ";bkslh"); //Adding this line of code for strSingleLineText = strSingleLineText.replace(new RegExp("<", "g"), "<"); strSingleLineText = strSingleLineText.replace(new RegExp(">", "g"), ">"); if (strSingleLineText == "") continue; try { var myJSONObject = $j.parseJSON(strSingleLineText); } catch (ex) { continue; } if (myJSONObject.error) { ExecErrorMsg(myJSONObject.error, calledFrom); } else if (myJSONObject.data && calledFrom != "Iview") { //Note : If the data node is returned by action from iview, then it gives error hence above condition ExecData(myJSONObject.data, calledFrom); } else if (myJSONObject.evalexpr) { //{\"EvalExpr\":\"true\", \"flds\":\"" + rapidFormLoadExpFlds + "\"} EvaluateRapidExpressions(myJSONObject.flds); } else if (myJSONObject.fastdata) { ExecData(myJSONObject.fastdata, calledFrom); } else if (myJSONObject.pickdata) { ExecPickData(myJSONObject.pickdata, calledFrom); } else if (myJSONObject.command) { ExecCommand(myJSONObject.command, actnName, navigationURL); } else if (myJSONObject.formcontrol) { try { ExecFormControl(myJSONObject.formcontrol, calledFrom); } catch (ex) { console.log(ex.message); } } else if (myJSONObject.message) { if (typeof pickListRowCount == "undefined" || pickListRowCount > 0 || pickListRowCount == -1) { if (iViewRefresh != true) ExecMessage(myJSONObject.message, calledFrom); else eval(callParent('ivCmdRefresh') + "= '" + myJSONObject.message[0].msg + "'"); } } else if (myJSONObject.wfnode) { if (typeof tstructCancelled != "undefined") { if (tstructCancelled.toLowerCase() != "cancelled") ExecWorkflow(myJSONObject.wfnode); } } else if (myJSONObject.attachment && calledFrom != "Iview" && document.title.toLowerCase() != "iview") { ExecAttachments(myJSONObject.attachment); } else if (myJSONObject.memvar) { ExecMemVars(myJSONObject.memvar, calledFrom); } else if (myJSONObject.timetaken) { ExecTimetaken(myJSONObject.timetaken); } else if(myJSONObject.result && calledFrom != "Iview" && document.title.toLowerCase() != "iview") { if(myJSONObject.result[0].action){ DataReloadDuringActionError(); break; } } else if (myJSONObject.rowrefresh && myJSONObject.rowrefresh == "true" && myJSONObject.row && document.title.toLowerCase() == "iview") { ExecRefreshIviewRows(myJSONObject.row); } else if (resultJson.indexOf("dsignresult") > -1) { if (myJSONObject.dsignresult) { Execdsignresult(myJSONObject.dsignresult); break; } else { continue; } } else if (resultJson.indexOf("dsignmsg") > -1) { if (myJSONObject.dsignmsg) { ExecDsignMsg(myJSONObject.dsignmsg); break; } else { continue; } } if ((typeof (GridDispHead) != "undefined") && GridDispHead) { if (grDisObj != undefined) displayGfirstcol(grDisObj, grDisname); grDisObj = ""; grDisname = ""; } } try { AxAfterFormLoad(calledFrom); } catch (ex) { } AxWaitCursor(false); if (!WrkflFlag) ShowDimmer(false); myJSONObject = null; } function AssignWsPerfExprValues(calledFrom) { if (typeof formParamFlds != "undefined" && formParamFlds != "") { var fldCount = 0; formParamFlds.forEach(function (currField) { if (currField != "" && currField != "transid") { GetActualFieldName(currField).split(',').forEach(function (currFieldID) { if (currFieldID != "") { try { var exFldVale = ReplaceUrlSpecialChars(formParamVals[fldCount]); SetFieldValue(currFieldID, exFldVale); var fieldRowNo = GetFieldsRowNo(currFieldID); var fldDcNo = GetFieldsDcNo(currFieldID); var fldDbRowNo = GetDbRowNo(fieldRowNo, fldDcNo); UpdateFieldArray(currFieldID, fldDbRowNo, exFldVale, "parent"); } catch (ex) { } } }); } fldCount++; }); } if (typeof wsPerfEvalExpClient != "undefined" && wsPerfEvalExpClient != "") { wsPerfEvalExpClient.forEach(function (currField) { if (currField != "") { GetActualFieldName(currField).split(',').forEach(function (currFieldID) { if (currFieldID != "") { EvaluateAxFunction(currField, currFieldID); } }); } }); } } //Function to assign the 'Load Values' for Design Mode function AssignLoadValuesDesignMode(resultJson, calledFrom) { var resval = resultJson.split("*$*"); for (var ind = 0; ind < resval.length; ind++) { var strSingleLineText = resval[ind].toString().replace(new RegExp("\\n", "g"), ""); strSingleLineText = strSingleLineText.replace(new RegExp("\\t", "g"), " "); strSingleLineText = strSingleLineText.replace(/\\/g, ";bkslh"); if (strSingleLineText == "") continue; try { var myJSONObject = $j.parseJSON(strSingleLineText); } catch (ex) { continue; } //Only the Form Control values has to be assigned for Design Mode if (myJSONObject.formcontrol) { try { ExecFormControlDesignMode(myJSONObject.formcontrol, calledFrom); } catch (ex) { console.log(ex.message); } } myJSONObject = null; } } //function for digitial signature starts //function to parse dsignobject if record already sent for digital signature function Execdsignresult(dsignresult) { var documentname = ""; var users = ""; for (var i = 0; i < dsignresult.length; i++) { documentname = documentname + "," + dsignresult[i].docname; users = users + "," + dsignresult[i].docuser; } dsignconfirmation(documentname, users); } function dsignconfirmation(documentname, users) { var cutMsg = eval(callParent('lcm[41]')); var cutMsgWd = eval(callParent('lcm[42]')); var cutMsgOw = eval(callParent('lcm[43]')); var msg = "Document(" + documentname + ") " + cutMsg + "
"; msg += "now pending with " + users + "
"; msg += "" + cutMsgWd + "

"; msg += "" + cutMsgOw + "
"; $j.msgBox({ content: msg, type: "info" }, 100); } function CallActionForDsign(type) { var actionName = $j("#hdnActionName").val(); CallAction(actionName, '', '', '', '', type); } function ExecDsignMsg(dsignmsg) { showAlertDialog("info", dsignmsg.msg); } //function for digitial signature ends ///Function to parse the timetaken node for logging the timetaken. function ExecTimetaken(timetakenNode) { ASBDbTime = ""; ASBTotal = ""; for (var i = 0; i < timetakenNode.length; i++) { if (timetakenNode[i].total) { ASBTotal = timetakenNode[i].total; } if (timetakenNode[i].dbtime) { ASBDbTime = timetakenNode[i].dbtime; } } } function ExecRefreshIviewRows(rowData) { var refreshRowData = { apply() { if (ivirDataTableApi) { if (_this.getRows().length == _this.rowData.length) { _this.rows.forEach((rowno, ind) => { var selectedRow = parseInt(rowno || "1"); ivDatas[selectedRow - 1] = _this.rowData[ind]; ivDatas[selectedRow - 1][getPropertyAccess("rowno")] = selectedRow.toString(); refreshRow(ivirDataTableApi.row(selectedRow - 1), ivDatas[selectedRow - 1]); }); } } }, getRows() { _this.rows = $j("#hdnSRows").val().split("♣").filter((val) => val); if (_this.rows.length == 0) { _this.rows = ["1"]; } switch (_this.getActionEvent()) { case "Current Row": case "": _this.rows = [_this.rows[0]]; break; case "Each Selected Rows": _this.rows = [_this.rows[_this.rows.length - 1]]; break; case "All Selected Rows": default: break; case "All Rows": _this.rows = ivDatas.map((val) => val[getPropertyAccess("rowno")]) break; } return _this.rows; }, getActionEvent() { _this.event = ((eventObj = (ivActions[$j("#hdnAct").val().substr(4)] || ivScripts[$j("#hdnAct").val().substr(4)])) && eventObj["@apply"]) || "Current Row"; return _this.event; }, process(rowData) { _this = this; _this.rowData = rowData; _this.apply(); } }.process(rowData); } function CheckSpCharsInFldValue(fldValue) { var index = fldValue.indexOf("^^dq"); while (index != -1) { fldValue = fldValue.replace("^^dq", '"'); index = fldValue.indexOf("^^dq"); } if (fldValue.indexOf(";bkslh") != -1) { fldValue = fldValue.replace(new RegExp(";bkslh", "g"), "\\"); } fldValue = fldValue.replace(new RegExp("
", "g"), "\n"); return fldValue; } ///Function to parse the mem vars and register them in the Global variables array. function ExecMemVars(memVarJsonObj, calledFrom) { var varName = ""; var varValue = ""; for (var i = 0; i < memVarJsonObj.length; i++) { varName = ""; varValue = ""; if (memVarJsonObj[i].n) { varName = memVarJsonObj[i].n; } if (memVarJsonObj[i].v) { varValue = memVarJsonObj[i].v; } var idx = -1; for (var ind = 0; ind < Parameters.length; ind++) { var strParams = Parameters[ind].split("~"); if (strParams[0].toString().toLowerCase() == varName.toLowerCase()) { idx = ind; break; } } if (idx != -1) Parameters[idx] = varName + "~" + varValue; else Parameters[Parameters.length] = varName + "~" + varValue; } } function ExecPickData(dataJsonObj, calledFrom) { var fldName = ""; var rCnt = 0; var fldValue = ""; var idUpdate = "no"; for (var i = 0; i < dataJsonObj.length; i++) { if (dataJsonObj[i].rcount) { rCnt = dataJsonObj[i].rcount; } else if (dataJsonObj[i].idupdate) { idUpdate = dataJsonObj[i].idupdate; } else if (dataJsonObj[i].fname) { fldName = dataJsonObj[i].fname; } else if (dataJsonObj[i].fvalue) { fldValue = dataJsonObj[i].fvalue; } } if (idUpdate == "yes" && rCnt == "1" && fldName != "" && fldValue != "") { var fIndx = AxActDepFld.lastIndexOf("F"); var tmpFldName = AxActDepFld.substring(0, fIndx - 3); var tmpRowNo = AxActDepFld.substring(fIndx - 3, fIndx); var tmpDcNo = AxActDepFld.substring(fIndx + 1); tmpRowNo = GetDbRowNo(tmpRowNo, tmpDcNo); //Hack: if the webservice returns multiple values for the record, then always take the first one. if (fldValue.indexOf("~") != -1) { var strItems = fldValue.split("~"); fldValue = strItems[0]; } fldValue = CheckSpCharsInFldValue(fldValue); fldValue = fldValue.replace("^", "¿"); isPKItemSelected = true; if (tmpFldName == fldName) { UpdateFieldArray(AxActDepFld, tmpRowNo, fldValue, "parent"); //Below code will update the proper value if improper case was entered by the user. //If the fld has sourcekey true, then value will contain id also, hence checking for "¿" var fldTextVal = fldValue; if (fldValue.indexOf("¿") != -1) { fldTextVal = fldValue.substring(fldValue.indexOf("¿") + 1); } if (GetFieldValue(AxActDepFld) != fldTextVal) { SetFieldValue(AxActDepFld, fldTextVal); } } } else { //fldValue = CheckSpCharsInFldValue(fldValue); //var pickDataArray = ""; //if (fldName != "" && fldValue != "") { // pickDataArray += rCnt + "♣"; // var pickFldValues = fldValue.split('~'); // for (var j = 0; j < pickFldValues.length; j++) { // if (j == 0) // pickDataArray += pickFldValues[j].toString(); // else // pickDataArray += "¿" + pickFldValues[j].toString(); // } //} //AxFromAssociated = true; ////If the picklist field is a required field and on clearing the value, ////if the service returns the message that the 'field cannot be left empty',then do not show the picklist ////Here if the field value is empty, do not show the picklist. ////the same fix is there in mainfocus also. //if ($j("#" + AxActDepFld).val() == "" && AxActDepFldVal == "") { // HidePLDiv(false); //} //else { // $j("#hdnPickFldId").val("img~" + AxActDepFld); // AxPickResult = pickDataArray; // if (pickDataArray != "") // currentPickList = AxActDepFld; // SuccGetSearchResult(pickDataArray); //} } } //Code to clear the checklist which dint recieve any items from ASB in Get Dependents, and add a default disabled item //Disabled item is added since all the field items are cleared the field will not be there in the document //if on uncheck if the select all is checked then that should be unchecked function ClearChecklistOnGetDep(comboFld) { var chkFldHint = ClearSqlChkList(comboFld); if (IsDcGrid(GetDcNo(GetFieldsName(comboFld)))) { var chkHtml = " "; var chkSpanObj; $j(".multiChkSpan").each(function () { if ($j(this).attr("name") == comboFld) { chkSpanObj = $j(this); return false; } }); var chkAllId = "#chkAll_" + comboFld; var chkAllObj = $j(chkAllId); if (chkAllObj.prop("checked")) { chkAllObj.removeAttr("checked"); chkAllObj.prop("checked", false); } chkAllObj.attr("disabled", "disabled"); chkSpanObj.append(chkHtml); } } function ExecData(dataJsonObj, calledFrom, isExcelImp = false) { FillGridFillRows = 0; FillGridCurrentDC = 0; var dcNo = "0"; var fldName = ""; var fldValue = ""; var fldType = ""; var fldDbRowNo = ""; var masterRow = 0; var delRows = ""; var tmpActiveRow = ""; var tmpActiveDc = ""; var isDcFormatGrid = false; var formatGridIdx = -1; var dcKeyColumn = ""; var fName = ""; var rid = $j("#recordid000F0").val(); var axActiveDc = AxActiveDc; var prevFldType = ""; var expDepArray = new Array(); if (calledFrom == "GetDep" && IsDcGrid(AxActiveDc)) { var dcIdx = $j.inArray(AxActiveDc, DCFrameNo); expDepArray = DCExpDeps[dcIdx].toString().split(","); } //Varibles for storing the combo details. var comboFld = ""; var comboVal = ""; var comboRowNo = ""; var depFlds = ""; var idCol = ""; var isPopGrid = false; var curRowNo = ""; var dcOldHasData = ""; var dcOldRowCount = 0; var isChkCleared = false; for (var i = 0; i < dataJsonObj.length; i++) { fldName = dataJsonObj[i].n; fldValue = dataJsonObj[i].v; fldType = dataJsonObj[i].t; fldDbRowNo = dataJsonObj[i].r; masterRow = dataJsonObj[i].mr; fldValue = CheckSpCharsInFldValue(fldValue); if (dataJsonObj[i].idcol) idCol = dataJsonObj[i].idcol; if (dataJsonObj[i].cr) delRows = dataJsonObj[i].cr; else delRows = ""; if (fldType == "dc") { var dcHasRows = ""; dcHasRows = dataJsonObj[i].hasdatarows; dcNo = fldName.substring(2); var dcCaption = ""; dcCaption = dataJsonObj[i].c; var fgName = ""; if (dataJsonObj[i].fg) fgName = dataJsonObj[i].fg; else fgName = ""; if (dcCaption != "") SetDcCaption(dcNo, dcCaption); formatGridIdx = GetFormatGridIndex(dcNo); if (formatGridIdx != -1) { isDcFormatGrid = true; dcKeyColumn = DcKeyColumns[formatGridIdx]; } else { isDcFormatGrid = false; dcKeyColumn = ""; } if (IsDcPopGrid(dcNo)) isPopGrid = true; else isPopGrid = false; if (calledFrom == "GetDep" && isPopGrid && IsParentDc(axActiveDc)) { //Delete thr rows that were sent to the webservice from AxSubGridRows //The format is popdc1~row1,row2,row3¿popdc2~row1,row2 DeletePopRowsAfterGetDep(); AxSubWsRows = new Array(); AxSubDsRows = new Array(); } if (IsDcGrid(dcNo)) { var dcIdx = $j.inArray(dcNo, DCFrameNo); dcOldHasData = DCHasDataRows[dcIdx]; if (dcHasRows != "") { if (dcHasRows == "yes") { DCHasDataRows[dcIdx] = "True"; if (dcOldHasData == "False") delRows = "d*," + delRows; } else if (dcHasRows == "no") {//Refer Bug: AXP000122-- If service give hasdata=no this array needs to be updated with new value. DCHasDataRows[dcIdx] = "False"; } } } if (IsDcGrid(dcNo) && IsDcVisible(dcNo)) { if (calledFrom == "LoadData") { if (recordid != "0" && isDcFormatGrid) continue; UpdateDcRowArrays(dcNo, "001", "Add"); } //This condition is if getdep sends new rows for fillgrid, and existing rows have to be deleted. //The same condition is also handled in JsonToArray in server side. var ind = 0; if (fgName == "") ind = $j.inArray("dc" + dcNo, FillParamDCs); else ind = $j.inArray(fgName, FillGridName); if (ind != -1 && delRows != "") { var fillCond = FillCondition[ind]; if (fillCond == "INIT" || fillCond == "AOWE") { if (delRows.indexOf("d*") == -1) delRows = "d*," + delRows; if ($("#gridHd" + dcNo + " tbody tr").length == 0 && calledFrom == "GetDep" && dcHasRows == "no") delRows = "d*"; } else if (fillCond == "APPEND") { var existingRec = $("#gridHd" + dcNo + " tbody tr").length; //if grid has existing rows for Fillgrid with APPEND prop then store record count in table 'data-fg-append-rec' prop if (existingRec > 0) $("#gridHd" + dcNo).data("fg-append-rec", existingRec); else if (existingRec == 0 && calledFrom == "Action" && delRows.indexOf("d*") == -1) { delRows = "d*," + delRows; $("#gridHd" + dcNo).removeData("fg-append-rec"); } else $("#gridHd" + dcNo).removeData("fg-append-rec"); } } tmpActiveRow = AxActiveRowNo; tmpActiveDc = AxActiveDc; AxDepRows = new Array(); if (calledFrom == "GetDep" && isPopGrid && IsParentDc(axActiveDc)) { dcOldRowCount = GetDcRowCount(dcNo); continue; } if (calledFrom != "CallAdd") { SetRows(dcNo, fldValue, delRows, calledFrom, dcOldHasData, dcHasRows); if (calledFrom == "LoadData")//On loaddat need to hide column which are hided in designmode. fillgridColOptVisibility(dcNo); } AxActiveRowNo = tmpActiveRow; AxActiveDc = tmpActiveDc; } if (dcHasRows == 'yes') SetHdnRowCount(dcNo, calledFrom); } else { // below condition is for autogenerated fields , and dependence of auto generated field// displayAutoGenVal if (rid == 0 && fldName != undefined) { //if ((fldName == AxAutoGenFld) || ($j.inArray(fldName, AxAutoGenDeps) != -1)) { if (fldName == AxAutoGenFld) {//Refer Bug: HEA000077, Should not set auto value to autogen dependency fields. //Autogenerate field value. var hdnAutogenerateFld = $j("#hdnShowAutoGenFldValue").val(); if (hdnAutogenerateFld.toLowerCase() == "true") { } else { fldValue = "Auto"; } } } //Refer Bug: HEA000052, service should give proper values for non grid expression fields as well.. ////If the get dependents is called on a grid field, ignore the non grid expression dependent field returned by the service. //if (calledFrom == "GetDep" && IsDcGrid(AxActiveDc) && !IsDcPopGrid(dcNo)) { // var idx = $j.inArray(fldName, expDepArray); // if (idx != -1) { // NonGridExpDepFlds.push(expDepArray[idx]);//To evaluate non grid expression dependent field returned by the service // continue; // } //} //Code to clear the checklist which dint recieve any items from ASB in Get Dependents, and add a default disabled item //Disabled item is added since all the field items are cleared the field will not be there in teh document if (calledFrom == "GetDep" && (prevFldType == "cl" && fldType != "dv" && comboFld != "")) { ClearChecklistOnGetDep(comboFld); comboFld = ""; comboVal = ""; } if (fldType == "dv") { fldName = comboFld; } else { if (fldName.toLowerCase() == "axpcurrencydec") UpdateAxpCurrDec(fldValue, calledFrom); if (calledFrom == "PopGridCombos" && AxPopRowNo != "") fldDbRowNo = AxPopRowNo if (calledFrom == "GetDep" && IsDcPopGrid(dcNo) && IsParentDc(axActiveDc)) { var wsRowNo = fldDbRowNo; var sIdx = -1; if (dcOldHasData == "True" || wsRowNo != "1") { sIdx = $j.inArray(wsRowNo, AxSubWsRows); fldDbRowNo = GetSubDsRowNo(fldDbRowNo, dcNo); } if (sIdx == -1) { AxActiveDc = dcNo; AddRowAfterGetDep(fldDbRowNo, dcNo, dcOldHasData); curRowNo = fldDbRowNo; } } if (dcNo == "0") dcNo = GetDcNo(fldName); fillParamId = $j.inArray("dc" + dcNo, FillParamDCs); if (fillParamId != "-1") { fillCond = FillCondition[fillParamId]; if (fillCond == "APPEND") { var recCount = $("#gridHd" + dcNo).data("fg-append-rec"); //if Fillgrid property is APPEND and grid has existing rows then increase fldDbRowNo by existing record count if (recCount != undefined && calledFrom != "LoadData" && calledFrom != "Action" && calledFrom != "GetDep") fldDbRowNo = parseInt(fldDbRowNo) + recCount; } } fldName = ConstructFieldName(fldName, dcNo, fldDbRowNo); RedrawField(comboFld, calledFrom, isPopGrid); //Code to set the default value to the dropdown for fields with autoselect as true comboFld = ""; } if (fldName == "") { continue; } var fld = $j("#" + fldName); var fName = GetFieldsName(fldName); if ((typeof AutosaveDraft != "undefined" && AutosaveDraft == "true" && checkIsdraft == "false") || (typeof AutosaveDraft != "undefined" && (AutosaveDraft == "" || AutosaveDraft == "false") && checkIsdraft == "false")) { if (fName.indexOf("axp_gridattach_") != -1 || (fName.toLowerCase() == "dc" + dcNo + "_image") || fName.startsWith("axp_nga_") || fName.toLowerCase().startsWith("axpfile_")) { if (!fName.startsWith("axp_nga_") && !fName.toLowerCase().startsWith("axpfile_")) SetGridAttValue(fldName, fldValue); if (!fldName.toLowerCase().startsWith("axpfile_")) ConstructAttachHTML(fldValue, fldName); else ConstructAxpAttachHTML(fldValue, fldName); showAttachmentPopover(); //on data load if any grid attachments exists then display all attachments in label count & clicking on it will displays list of files in popover } if ((fldName.toLowerCase().indexOf("dc" + dcNo + "_referimages") != -1)) { SetGridRefValue(fldName, fldValue); } } if (calledFrom == "LoadData" && isDcFormatGrid) { var fIndx = fldName.lastIndexOf("F"); // var fName = GetFieldsName(fldName); var fRNo = GetFieldsRowNo(fldName); if (dcKeyColumn == fName) { if (recordid == "0") { var oldKeyVal = $j("#" + fldName).val(); CallSetFieldValue(fldName, oldKeyVal); continue; } else { continue; } } } if (fld.length > 0) { var fArrayIdx = -1; fArrayIdx = $j.inArray(GetFieldsName(fldName), FNames); if (fldType == "m") { CallSetFieldValue(fldName, fldValue); } else if (fldType == "cl" || fldType == "rg") { comboFld = fldName; comboVal = fldValue; isChkCleared = false; CallSetFieldValue(fldName, fldValue); //If this checklist is the last field in the json then it needs to be cleared here if (calledFrom == "GetDep" && (i + 1) == dataJsonObj.length) { ClearChecklistOnGetDep(comboFld); comboFld = ""; comboVal = ""; } else if (calledFrom == "GetDep") $("#" + comboFld).removeData("valuelist"); } else if (fldType == "i") { if (fldValue != "") { if (fldValue.indexOf("//") != -1) { $j("#" + fldName).attr("src", fldValue); } else { var fileName = fldValue.split("\\\\");//.split("\\"); var hdnScriptsUrlPath = $j("#hdnScriptsUrlpath"); var fldValuePath = ""; if (fileName.length > 1) { if (hdnScriptsUrlPath[0] != undefined) fldValuePath = hdnScriptsUrlPath.val() + "axpert/" + sid + "/" + fileName[fileName.length - 2] + "/" + fileName[fileName.length - 1]; else fldValuePath = "../scripts/axpert/" + sid + "/" + fileName[fileName.length - 2] + "/" + fileName[fileName.length - 1]; } else { if (hdnScriptsUrlPath[0] != undefined) fldValuePath = hdnScriptsUrlPath.val() + "axpert/" + sid + "/" + fileName[fileName.length - 1]; else fldValuePath = "../scripts/axpert/" + sid + "/" + fileName[fileName.length - 1]; } GetDateTime(); $j("#" + fldName).attr("src", fldValuePath + "?" + imageSuffix); $j("#" + fldName).parents(".image-input").find(".imageFileUpload").addClass("d-none"); $j("#" + fldName).parents(".image-input").find(".profile-pic").removeClass("d-none"); } } else { $j("#" + fldName).hasClass("signaturePad") ? $j("#" + fldName).attr("src", "../AxpImages/signature.png") : $j("#" + fldName).parents(".image-input").find(".imageFileUpload").addClass("d-none"), $j("#" + fldName).parents(".image-input").find(".profile-pic").removeClass("d-none");//$j("#" + fldName).attr("src", "../AxpImages/upload.png"); } } else if (fldType == "b") { if (fldName.indexOf("axpbutton") != -1) { var fIndx = fldName.lastIndexOf("F"); var uIndx = fldName.lastIndexOf("_"); fld.val(fldName.substring(uIndx + 1, fIndx - 3)); } } else if (fldType == "c") { if (fld.attr("type") == "hidden") { CallSetFieldValue(fldName, fldValue); comboFld = ""; } else if (fld.attr("type") == "checkbox") { comboFld = ""; if (fldValue.toLowerCase() == "yes") { fld.prop("checked", true); fld.attr("checked", true); } else { fld.prop("checked", false); fld.attr("checked", false); } } else { comboFld = fldName; comboVal = fldValue; var fIndx = fldName.lastIndexOf("F"); var fName = GetFieldsName(fldName); var fldIsAutoComp = false; if ($j("#" + fldName).hasClass("fldFromSelect")) fldIsAutoComp = true; var fldIsMultiSelect = false; if ($j("#" + fldName).hasClass("fldmultiSelect")) fldIsMultiSelect = true; if (!fldIsAutoComp && !fldIsMultiSelect) ClearComboBox(fld, fName, fldValue); if (dataJsonObj[i].dpm) { var depFldsStr = dataJsonObj[i].dpm; depFlds = depFldsStr.split(","); } if (masterRow != undefined && masterRow != 0) { if (fldDbRowNo != "1" && calledFrom != "PopGridCombos") { if (!fldIsAutoComp && !fldIsMultiSelect) CopyFromMasterRow(fldName, dcNo, masterRow, calledFrom, isPopGrid); } MasterRow.push(fName); CallSetFieldValue(fldName, fldValue); } else if (fldIsAutoComp || fldIsMultiSelect) CallSetFieldValue(fldName, fldValue); //Update the field in the assignedFld array, as the combo may not have items. UpdateAssignedFld(comboFld); comboFld = ""; } } else if (fldType == "dv") { if (comboFld != "") { var comboField = $j("#" + comboFld); if (comboField != undefined) { if (comboField.prop("type") == "select-one") { var comboItems = fldValue.split("~"); var depValue = fldValue; var fldIdVal = ""; if (idCol == "yes") { fldIdVal = comboItems[0]; fldValue = comboItems[1]; } else fldValue = comboItems[0]; var optHtml = ""; var htmlFldVal = fldValue.replace(/ /g, " "); var tmpVal = fldValue.replace(/ /g, String.fromCharCode(160)); var comboFldnm = GetFieldsName(comboFld); if (fldValue == comboVal || comboVal == tmpVal) { optHtml = ""; //UpdateAssignedFld(comboFld); comboField.append(optHtml); CallSetFieldValue(comboFld, fldValue, false, calledFrom); if (GetFieldsRowNo(comboFld) == "001" && calledFrom == "LoadData" && rid != "0" && $j.inArray(comboFldnm, MasterRow) > -1) { SetEditRowComboValues(comboFld, optHtml.replace('selected', ''), dcNo, comboFldnm); } } else { optHtml = ""; comboField.append(optHtml); if (GetFieldsRowNo(comboFld) == "001" && calledFrom == "LoadData" && rid != "0" && $j.inArray(comboFldnm, MasterRow) > -1) { SetEditRowComboValues(comboFld, optHtml, dcNo, comboFldnm); } } if (dataJsonObj[i].dp != null) { var dependentValues = dataJsonObj[i].dp.toString().split("¿"); var tmpCmoboFld = GetFieldsName(comboFld); for (var cnt = 0; cnt < dependentValues.length; cnt++) { var strDepVals = dependentValues[cnt].split("~"); for (var depInd = 0; depInd < strDepVals.length; depInd++) { ComboParentField.push(tmpCmoboFld); ComboParentValue.push(fldValue); ComboDepField.push(depFlds[depInd]); ComboDepValue.push(strDepVals[depInd]); } } } } else if ((comboField.attr("type") == "checkbox" || comboField.data("type") == "checkbox" || comboField.attr("type") == "radio") && (typeof IsObjCustomHtml == "undefined" || IsObjCustomHtml == "False")) { var spanClass = ""; var align = ""; var strChecked = ""; var fldClass = ""; var fldHint = ""; var IsChkList = comboField.attr("type") == "checkbox" || comboField.data("type") == "checkbox"; if (IsChkList) { spanClass = ".multiChkSpan"; align = "
"; var chkValSep = GetChkSeparator(GetFieldsName(comboFld)); var arrChkItems = comboVal.split(chkValSep); if ($j.inArray(fldValue, arrChkItems) != -1) strChecked = "checked=checked"; if (isChkCleared == false) { if (!comboField.hasClass("multiFldChk")) { fldHint = ClearSqlChkList(comboFld); isChkCleared = true; } } fldClass = "type=checkbox class='multiFldChk'"; } else { spanClass = ".multiRgrpSpan,.multiFldRdg"; align = "    "; if (FldAlignType[fArrayIdx].toLowerCase() == "v") align = "
"; if (comboVal == fldValue) strChecked = "checked=checked"; if (isChkCleared == false) { fldHint = ClearRadioGrp(comboFld); isChkCleared = true; } fldClass = "type=radio class='form-check-input h-40px w-40px multiFldRdg'"; } var tmpFld; var tmpID = ""; try { tmpFld = $j(spanClass + "[name=" + comboFld + "]") tmpID = tmpFld.attr("name"); } catch (ex) { } let radioDisabled = ""; if (tmpFld != undefined && tmpFld.hasClass("flddis")) { fldClass = fldClass + " disabled"; radioDisabled = " disabled=disabled"; } var chkId = tmpID; fldValue = CheckSpecialCharsInStr(fldValue); if (fldValue != "") { fldValue = fldValue.replace(/&/g, "&"); fldValue = fldValue.replace("/'/g", "'") } var fldclText = "", fldclValue = ""; if (idCol == "yes") { fldclValue = fldValue.split('~')[0]; fldclText = fldValue.split('~')[1]; } else { fldclValue = fldValue; fldclText = fldValue; } var chkHtml = ""; if (IsChkList) chkHtml = "" + fldclText + align + ""; else chkHtml = "
"; if (IsDcGrid(dcNo) || comboField.attr("type") == "radio") { //tmpFld.append(chkHtml); } else { var tokenData = $("#" + tmpID).data("valuelist"); var tokens = []; if (typeof tokenData == "object") { tokens = tokenData; } else { tokens = $("#" + tmpID).data("valuelist").split($("#" + tmpID).data("separator")).map(function (data) { return { value: data, label: data } }).filter(function (data) { return data.value && data.label }); } tokens.push({ value: fldclValue, label: fldclText }); //tokens.push(fldclValue + "♣~♣" + fldclText); //debugger; tokens = [...new Set(tokens)]; //$("#" + tmpID).data("valuelist", tokens.join($("#" + tmpID).data("separator"))); $("#" + tmpID).data("valuelist", tokens); try { $("#" + tmpID).data('bs.tokenfield').$input.autocomplete({ source: tokens }); } catch (ex) { } } if (IsChkList) { var chkAllObj = $j("#chkAll_" + chkId); if (!chkAllObj.hasClass("flddis")) chkAllObj.removeAttr("disabled"); var hideAllObj = $j("#hideAll_" + chkId); hideAllObj.removeAttr("disabled"); //if any of the item in cheklist is unchecked, uncheck the select all Or Set the Select all as checked if (chkAllObj.length > 0) { var itemLength = $j("input[name='" + chkId + "']").length; if (arrChkItems.length < itemLength) { chkAllObj.removeAttr("checked"); chkAllObj.prop("checked", false); } else if (comboVal != "" && arrChkItems.length == itemLength) { chkAllObj.attr("checked", "checked"); chkAllObj.prop("checked", true); } } } else { $j("div[id*='" + fName + "']").find("input[data-dummyradio=true]").remove(); if (comboField.attr("type") == "radio") $j("#dv" + fName).find(".input-group").append(chkHtml); else $j("#dv" + fName).append(chkHtml); } } } } } if (fldType != "dc" && fldType != "dv") { try { if (fldName.toLowerCase().startsWith("axpfilepath_")) { let prevafpval = GetFieldValue(fldName); if (prevafpval != "") axpfilepathold = GetFieldValue(fldName); } } catch (ex) { } if (fldType == "s" || fldType == "m" || fldType == "cb" || fldType == "rg") { CallSetFieldValue(fldName, fldValue, false, calledFrom); let dwbfieldName = GetFieldsName(fldName); let dwbfldInd = GetFieldIndex(dwbfieldName); var fldDType = GetDWBFieldType(fldName, dwbfldInd); if (fldName.startsWith("axptm_") || fldName.startsWith("axpdbtm_") || (fldDType != "" && fldDType.toLowerCase() == "time")) { var glType = eval(callParent('gllangType')); var dtpkrRTL = false; if (glType == "ar") dtpkrRTL = true; else dtpkrRTL = false; var dvId = $("#" + fldName).parents("[id^='divDc']").attr("id"); TimePickerEvent("#" + dvId, dtpkrRTL); } } if (calledFrom == "PopGridCombos" || calledFrom == "Action" || calledFrom == "GetDep" || (typeof isExcelImp != "undefined" && isExcelImp == true)) UpdateFieldArray(fldName, fldDbRowNo, fldValue, "parent"); var glCulture = eval(callParent('glCulture')); if (glCulture != undefined && glCulture == "en-us") { var fdName = GetFieldsName(fldName); var fldDIndex = $j.inArray(fdName, FNames); var fldDType = GetFieldType(fdName, fldDIndex); if (fldDType != undefined && fldDType.toLowerCase() == "date/time") { var fldDValue = DateDisplayFormat(fldValue); CallSetFieldValue(fldName, fldDValue, false, calledFrom); } } if (fldName.toLowerCase().startsWith("axpfilepath_")) { AxpFilePathChange(fldName); } } } var grfdName = GetFieldsName(fldName); if (!axInlineGridEdit && AxpGridForm == "form" && IsGridField(grfdName)) { formGridRowBlur($("#" + fldName)); } } if (fldName.indexOf("axpvalid") != -1) { DoFormControlPrivilege(fldName, fldValue); } if (fldType != "dc" && fldType != "dv") UpdateOldValues(fldName, fldValue); prevFldType = fldType; } if (calledFrom == "LoadData" && recordid == "0" && AxAutoGenFld != undefined) {//Refer Bug: HEA000077,If Autogenerate field node is not there in the formload result needs to be set auto value the fielld. s SetAutoGenerateValue(calledFrom); } if ((calledFrom == "LoadData" && recordid != "0") || IsDraftLoad == true) { UpdatePopGridInfo(); GetHtmlForFormatGrids(); } else if (calledFrom != "LoadData") { if (calledFrom == "GetDep") { AxActiveDc = axActiveDc; } AssignPopGridRows(); ArrPopNewDcs = new Array(); ArrPopNewRows = new Array(); } if (calledFrom == "LoadData" && recordid != "0" && isGridFileUploadOnLoad == true) { isGridFileUploadOnLoad = false; for (var i = 0; i < DCName.length; i++) { let dvId = DCName[i]; let dvDcNo = dvId.substr(2); if (IsDcGrid(dvDcNo)) { DropzoneInit("#divDc" + dvDcNo); } } } CallEvalExpOnFormSkip(); //ReAssignEvents(); } function SetAutoGenerateValue(calledFrom) { var autoGendcNo = GetDcNo(AxAutoGenFld); var autoGenfldName = ""; if (!IsDcGrid(autoGendcNo)) autoGenfldName = ConstructFieldName(AxAutoGenFld, autoGendcNo, "000"); else autoGenfldName = ConstructFieldName(AxAutoGenFld, autoGendcNo, "001"); var hdnAutogenerateFld = $j("#hdnShowAutoGenFldValue").val(); if (hdnAutogenerateFld.toLowerCase() == "false") { CallSetFieldValue(autoGenfldName, "Auto", false, calledFrom); } } function CallEvalExpOnFormSkip() { if (AxFormLoadSkipped) { AxFormLoadSkipped = false; for (var i = 0; i < FNames.length; i++) { var depFldIndx = GetFldNamesIndx(FNames[i]) var expression = ""; if (depFldIndx != -1) { expression = Expressions[depFldIndx].toString(); } if (expression != "") { var fldId = ""; if (IsGridField(FNames[i])) fldId = FNames[i] + "001F" + FldFrameNo[i]; else fldId = FNames[i] + "000F" + FldFrameNo[i]; EvaluateAxFunction(FNames[i], fldId); UpdateFieldArray(fldId, 1, GetFieldValue(fldId), "parent", "FormLoad"); } } } } //If the record is loaded and has gris, then rowcount should be incremneted by 1 as edit mode also will have a row function SetHdnRowCount(dcNo, calledFrom) { if (calledFrom == "GetTabData") { if ($j("#hdnRCntDc" + dcNo).length > 0) { var newRcnt = parseInt($j("#hdnRCntDc" + dcNo).val(), 10) + 1; $j("#hdnRCntDc" + dcNo).val(newRcnt); UpdateDcRowArrays(dcNo, GetRowNoHelper(newRcnt), "Add"); } } } //Function to load the combo values in the edit mode of the grid when a record is loaded from listview for select fields with sql function SetEditRowComboValues(combofld, optHtml, dcNo, fldNm) { var dcRCnt = GetDcRowCount(dcNo); var editRowNo = GetRowNoHelper(dcRCnt); var editFldId = "#" + fldNm + editRowNo + "F" + dcNo; $j(editFldId).append(optHtml); } function CallMainBlur(obj) { var objId = obj.id; MainBlur($j("#" + objId)); } //Function to reassign events to the checkboxes and radio buttons that have been added dynamically. //function ReAssignEvents() { // for (var i = 0; i < AxDynamicFlds.length; i++) { // var fldName = AxDynamicFlds[i].toString(); // var fldValue = AxDynamicFldVal[i].toString(); // $j("input:checkbox.multiFldChk").each(function () { // if ($j(this).attr("id") == fldName && $j(this).val().toLowerCase() == fldValue) { // $j(this).change(function () { // MainBlur($j(this)); // }); // } // }); // $j("input:radio.multiFldRdg").each(function () { // if ($j(this).attr("id") == fldName && $j(this).val().toLowerCase() == fldValue) { // $j(this).change(function () { // MainBlur($j(this)); // }); // } // }); // } //} function RedrawField(fld, calledFrom, isPopGrid) { if (fld != "") { var ua = window.navigator.userAgent; var msie = ua.indexOf("MSIE "); if (msie > 0) { // If Internet Explorer, return version number $j("#" + fld).css('background-color', 'white'); $j("#" + fld).focus(); } else $j("#" + fld).hide().show(); if (calledFrom == "LoadData" && !IsDraftLoad && $j("#" + fld).length > 0) { if (isPopGrid) return; $j("#" + fld).width($j("#" + fld).width() + 2); } } } function GetHtmlForFormatGrids() { var result = $j("#dvFormatDc").html(); $j("#dvFormatDc").html(""); AssignHTML(result, "LoadData", ""); } //Function to store the old values of fields in the arrays. function UpdateOldValues(fieldName, fldValue) { var indx = $j.inArray(FldLoadedFields, fieldName); if (indx == -1) { FldLoadedFields.push(fieldName); FldLoadedValues.push(fldValue); } else { FldLoadedValues[indx] = fldValue; } } //Function to add newly added pop up grid rows from the service result. function UpdateNewPopInfo(dcNo, rowNo) { var idx = $j.inArray(dcNo, ArrPopNewDcs); if (idx != -1) { if (ArrPopNewRows[idx] != "") { var pIdx = -1; pIdx = ArrPopNewRows[idx].indexOf(rowNo); if (pIdx == -1) ArrPopNewRows[idx] += "," + rowNo; } else ArrPopNewRows[idx] = ArrPopNewRows[idx]; } else { ArrPopNewDcs.push(dcNo); ArrPopNewRows.push(rowNo); } } function AssignPopGridRows() { if (TstructHasPop) { //rowno ~ dcno for (var i = 0; i < ArrPopNewDcs.length; i++) { var popIdx = $j.inArray(ArrPopNewDcs[i], PopGridDCs); var dcNo = PopGridDCs[popIdx].toString(); var parDcNo = PopParentDCs[popIdx].toString(); var dcIdx = $j.inArray(parDcNo, DCFrameNo); //If the parent grid does not have rows, then do not assign sub grid rows. if (DCHasDataRows[dcIdx].toString().toLowerCase() == "false") continue; dcIdx = $j.inArray(ArrPopNewDcs[i], DCFrameNo); //If the sub grid does not have rows, then do not assign rows in arrays. if (DCHasDataRows[dcIdx].toString().toLowerCase() == "false") continue; var popNewRows = ArrPopNewRows[i].split(","); //PopParentFlds,PopParentDCs for (var j = 0; j < popNewRows.length; j++) { //var clientRowNo = GetClientRowNo(popNewRows[j], dcNo); var clientRowNo = popNewRows[j]; var parFlds = PopParentFlds[popIdx].split(','); var parentStr = ""; for (ind = 0; ind < parFlds.length; ind++) { var parentFld = GetSubFieldId("sub" + dcNo + "_" + parFlds[ind], clientRowNo, dcNo); var tmpParVal = GetFieldValue(parentFld); if (tmpParVal.indexOf(",") != -1) tmpParVal = removeCommas(tmpParVal); if (parentStr == "") parentStr = tmpParVal; else parentStr += "¿" + tmpParVal; } UpdateParentStr(parDcNo, dcNo, parentStr, clientRowNo); } } } } function ClearPopRowsArray() { for (var i = 0; i < PopRows.length; i++) { PopRows[i] = ""; } } function UpdatePopGridInfo() { if (TstructHasPop) { ClearPopRowsArray(); for (var i = 0; i < PopGridDCs.length; i++) { var dcNo = PopGridDCs[i].toString(); var rowCnt = GetDcRowCount(dcNo); var parDcNo = PopParentDCs[i].toString(); var parFlds = PopParentFlds[i].split(','); //PopParentFlds,PopParentDCs var dcIdx = $j.inArray(parDcNo, DCFrameNo); //If the parent grid does not have rows, then do not assign sub grid rows. if (DCHasDataRows[dcIdx].toString().toLowerCase() == "false") continue; dcIdx = $j.inArray(dcNo, DCFrameNo); //If the sub grid does not have rows, then do not assign rows in arrays. if (DCHasDataRows[dcIdx].toString().toLowerCase() == "false") continue; for (var j = 1; j <= rowCnt; j++) { var clientRowNo = GetClientRowNo(j, dcNo); var parentStr = ""; for (ind = 0; ind < parFlds.length; ind++) { var parentFld = GetSubFieldId("sub" + dcNo + "_" + parFlds[ind], clientRowNo, dcNo); var tmpParVal = GetFieldValue(parentFld); if (parentStr == "") parentStr = tmpParVal; else parentStr += "¿" + tmpParVal; } UpdateParentStr(parDcNo, dcNo, parentStr, clientRowNo); } } } } function UpdateParentStr(parDcNo, popDcNo, parentStr, popRowNo) { for (var i = 0; i < ParentDcNo.length; i++) { var tmpParStr = PopParentsStr[i].toLowerCase(); var tmpPopParStr = parentStr.toLowerCase(); tmpParStr = ReplaceCharsInParStr(tmpParStr); tmpPopParStr = ReplaceCharsInParStr(tmpPopParStr); if (ParentDcNo[i] == parDcNo && PopGridDcNo[i] == popDcNo && tmpParStr == tmpPopParStr) { var popRows = PopRows[i].toString(); if (popRows == "") { popRows = popRowNo; } else { var arrStr = popRows.split(","); var idx = $j.inArray(popRowNo, arrStr); if (idx == -1) popRows += "," + popRowNo; } PopRows[i] = popRows; break; } } } //Function to replace the special characters in the parent string in the subgrid parent fields function ReplaceCharsInParStr(parStr) { parStr = parStr.replace(/,/g, ""); parStr = parStr.replace(/\./g, ''); return parStr; } //Function to execute the attachments node in the json result . function ExecAttachments(attJsonObj) { for (var i = 0; i < attJsonObj.length; i++) { var attach = attJsonObj[i].att; attach = attach.split(","); var responsemsgFlds = attach.length; var rid = $j("#recordid000F0").val(); var hdnattachcount = ""; for (var mm = 0; mm < responsemsgFlds; mm++) { if (fileonloadarray.indexOf(attach[mm].toString()) == -1) { fileonloadarray.push(attach[mm].toString()); } } if (fileonloadarray.length > 0) $j("#attachment-overlay").removeClass("d-none"); } } //Function to execute the workflow node in the json result. function ExecWorkflow(wfJsonObj) { var isBtnDis = false; var htmlwf = ""; var maxLevels = ""; getComntWf(false); for (var i = 0; i < wfJsonObj.length; i++) { $j("#workflowoverlay").removeClass("d-none"); if (wfJsonObj[i].btn) { var btn = wfJsonObj[i].btn; var btnarr = new Array(); if (btn != "") { btnarr = btn.split("~"); ReadonlyWfButtons(); for (var k = 0; k < btnarr.length; k++) { if (btnarr[k] == "a") { $j("#btntabapprove").prop("disabled", false); $j("#btntabapprove").removeClass("disablewfbuttons").addClass("enablewfbuttons"); $j("#selectbox").append(""); } else if (btnarr[k] == "r") { $j("#btntabreject").prop("disabled", false); $j("#btntabreject").removeClass("disablewfbuttons").addClass("enablewfbuttons"); $j("#selectbox").append(""); } else if (btnarr[k] == "t") { $j("#btntabreturn").prop("disabled", false); $j("#btntabreturn").removeClass("disablewfbuttons").addClass("enablewfbuttons"); $j("#selectbox").append(""); } else if (btnarr[k] == "v") { $j("#btntabreview").prop("disabled", false); $j("#btntabreview").removeClass("disablewfbuttons").addClass("enablewfbuttons"); $j("#selectbox").append(""); } isBtnDis = true; } } else { $("#selectbox").attr("disabled", "disabled"); $(".wrkflwinline").addClass("hide"); ReadonlyWfButtons(); } } else { if (isBtnDis == false) { $("#selectbox").attr("disabled", "disabled"); $(".wrkflwinline").addClass("hide"); ReadonlyWfButtons(); } else { var txtCom = $j("#txtCommentWF"); if (txtCom.length > 0) txtCom.prop("disabled", false); } } if (wfJsonObj[i].status) { $j("#lblStatus").text(wfJsonObj[i].status); } if (wfJsonObj[i].lno) { $j("#hdnWfLno").val(wfJsonObj[i].lno); } if (wfJsonObj[i].elno) { $j("#hdnWfELno").val(wfJsonObj[i].elno); var elno = wfJsonObj[i].elno; } if (wfJsonObj[i].appstatus) { appstatus = wfJsonObj[i].appstatus; if ((appstatus == "Approved" && AxOnApproveDisable == true) || (appstatus == "Rejected" && AxOnRejectDisable == true)) Readonlyform(); } if (wfJsonObj[i].readonlyform) { if (wfJsonObj[i].readonlyform == "true") { //AxOnApproveDisable = true; Readonlyform(); } } if (wfJsonObj[i].allowcancel) { AxAllowCancel = wfJsonObj[i].allowcancel.toString().toLowerCase() == 'true'; } if (wfJsonObj[i].maxlevel) { maxLevels = wfJsonObj[i].maxlevel; } if (wfJsonObj[i].pdcomments) { tstWFpdcomments = wfJsonObj[i].pdcomments; } if (wfJsonObj[i].wkid) { tstWorkFlowId = wfJsonObj[i].wkid; } if (wfJsonObj[i].levels) { var usernames = getWfUsrName(maxLevels, wfJsonObj[i].levels); var statusWrk = getWfStatus(maxLevels, wfJsonObj[i].levels); var lno = wfJsonObj[i].levels[0].lno; if ($.inArray("", usernames) == -1) { htmlwf = constructWrkHtml(maxLevels, usernames, statusWrk, elno, wfJsonObj[i].levels); $(htmlwf).insertAfter($(".icobtn")); $("#stratWrkf").after($(".workflowMsg").detach()); if ($("#workflowdropdown").length != 0) { $("#workflowdropdown").append($("#selectbox").detach()); $("#selectbox").removeClass("initialized"); if ($(".wfselectbox").hasClass("d-none")) $(".wfselectbox").removeClass("d-none"); else $(".wfselectbox").addClass("d-none"); } else $(".icobtn").append($(".dropbox").detach()); popoverWrkFl(); } else { getWfLevelUSsrs($.inArray("", usernames), maxLevels, usernames, statusWrk, elno, wfJsonObj[i].levels); if ($("#workflowdropdown").length != 0) { $("#workflowdropdown").append($("#selectbox").detach()); $("#selectbox").removeClass("initialized"); } if ($(".wfselectbox").hasClass("d-none")) $(".wfselectbox").removeClass("d-none"); else $(".wfselectbox").addClass("d-none"); } KTMenu?.init(); } } if (elno > 0) { $(".wrkflwPending").addClass("wrkflwPendingCls"); $(".downArr").addClass("workflowdropdownCls"); $(".icobtn").addClass("iconbtnCls"); } // adjustwin("100", window); //disable workflow status dropdown if tstruct is locked if (AxIsTstructLocked == "true") { $("#selectbox").attr("disabled", "disabled"); $(".wrkflwinline").addClass("hide"); } } //Function to execute the message node in the json result. function ExecMessage(messageJsonObj, calledFrom) { for (var i = 0; i < messageJsonObj.length; i++) { var msgs = messageJsonObj[i].msg; if ((typeof $j("#middle1", parent.document).attr("src") != "undefined" && $j("#middle1", parent.document).attr("src").indexOf("tstruct.aspx") === 0) && (document.title.toLowerCase() != "iview" && IsPickListField(AxActDepFld)) && msgs.indexOf("Invalid selection") > -1 && calledFrom == "GetDep") { continue; } if (msgs.indexOf("recordid") > -1) { var msgsArray = msgs.split(','); msgs = ""; for (var x = 0; x < msgsArray.length; x++) { if (msgsArray[x].indexOf("recordid=") == -1) { if (x == msgsArray.length - 1) msgs += msgsArray[x]; else msgs += msgsArray[x] + ","; } } } //msgs = msgs.substring(0, msgs.lastIndexOf(",") - 1); if (msgs.indexOf("errfld") > -1) msgs = msgs.substring(0, msgs.lastIndexOf("errfld") - 2); msgs = msgs.split(","); var responsemsgFlds = msgs.length; var msg = ""; for (var mm = 0; mm < responsemsgFlds; mm++) { msg += msgs[mm] + ","; var stPos = msg.indexOf("["); var endPos = msg.indexOf("]"); var errFld = msg.substring(stPos + 1, endPos); if (errFld != "") { var nerr = msg.substring(stPos, endPos + 2); msg = msg.replace(nerr, ""); alertType = "error"; } var index = msg.indexOf("^^dq"); while (index != -1) { msg = msg.replace("^^dq", '"'); index = msg.indexOf("^^dq"); } } if (msg != "") { if (calledFrom == "Action" && msg.indexOf("recordid") > 0) msg = msg.substr(0, msg.indexOf("recordid")); if (saveActRecSuccess == true) { alertType = "success"; saveActRecSuccess = false; } if (msg == "Transaction has been canceled") { msg = eval(callParent('lcm[44]')); //msg = "Transaction has been cancelled"; alertType = "error"; } else if ((calledFrom == "Action" || calledFrom == "Iview") && msg.indexOf("`") != -1) { var alType = msg.split("`")[0].toLowerCase(); if (alType.indexOf(",") > -1) { alType = alType.split(",")[1]; } if (alType == "simple" || alType == "") alertType = "info"; else if (alType == "warning") alertType = "warning"; else if (alType == "confirmation") alertType = "success"; else if (alType == "exceptions") alertType = "error"; msg = msg.split("`")[1].slice(0, -1); } else if (msg.toLowerCase().indexOf("invalid") != -1 || msg.indexOf("cannot be left empty") != -1) { alertType = "error"; } else if (msg.toLowerCase().indexOf("is completed") != -1 || msg.toLowerCase().indexOf("saved successfully") != -1) { alertType = "success"; } else { alertType = "info"; } if (msg.indexOf("cannot be left empty") != -1) { var cutMsg = eval(callParent('lcm[45]')); msg = msg.replace('cannot be left empty', cutMsg); } blurDisabled = true; if (calledFrom == "GetDep" && IsPickListField(AxActDepFld) == true) { if (msg != "" && AxPickResult == "") { AxActionSave ? (showAlertDialog(alertType, msg, "", "", "function~redirectOnSaveAction()"), disableBtnBeforeReload()) : showAlertDialog(alertType, msg); errFrompickfld = msg; if (AxActDepFld != "") { var rowNo = GetClientRowNo(AxActiveRowNo, AxActiveDc); var fldName = AxActDepFld + rowNo + "F" + AxActiveDc; var focusFld = $j("#" + fldName); if (focusFld.length > 0) { focusFld.focus(); } } } else { currentPickList = AxActDepFld; SuccGetSearchResult(AxPickResult); } } else { AxActionSave ? AxActiveAction == "New" ? showAlertDialog(alertType, msg) : (showAlertDialog(alertType, msg, "", "", "function~redirectOnSaveAction()"), disableBtnBeforeReload()) : showAlertDialog(alertType, msg); errFrompickfld = msg; if (AxActiveField != "") { var rowNo = GetClientRowNo(AxActiveRowNo, AxActiveDc); var fldName = AxActiveField + rowNo + "F" + AxActiveDc; var focusFld = $j("#" + fldName); if (focusFld.length > 0) { focusFld.focus(); } } } } } let curFrame = $(window.frameElement); if (curFrame.attr("id") === "axpiframe" && axFramReload == false) { ReloadMiddleIframe(); } if (axFramReload != false) axFramReload = false; } //Function to execute the formcontrol node in the json result. function ExecFormControl(formControlJsonObj, calledFrom) { var frmlength = formControlJsonObj.length; // begin for formcontrol for (var m = 0; m < frmlength; m++) { if (formControlJsonObj[m].dc) { var dcName = ""; var dcVal = ""; dcName = formControlJsonObj[m].dc; dcVal = formControlJsonObj[m].dcact; var dcNo = parseInt(dcName.substr(2, dcName.length)); if (dcVal == "hide") { if (typeof isWizardTstruct != "undefined" && isWizardTstruct) ToggleWizardDc(dcNo, "hide"); else ShowingDc(dcNo, "hide"); var hideDcInd = $.inArray(dcNo.toString(), VisibleDCs); if (hideDcInd != -1) VisibleDCs.splice(hideDcInd, 1); } else if (dcVal == "show") { if (typeof isWizardTstruct != "undefined" && isWizardTstruct) ToggleWizardDc(dcNo, "show"); else ShowingDc(dcNo, "show"); var showDcInd = $.inArray(dcNo.toString(), VisibleDCs); if (showDcInd == -1) VisibleDCs.push(dcNo.toString()); } else if (dcVal == "disable") { ShowingDc(dcNo, "Disable", calledFrom); } else { ShowingDc(dcNo, "Enable"); } } if (formControlJsonObj[m].readonlytrans) { var readonly = formControlJsonObj[m].readonlytrans; if (readonly != "no") { var breadcrumb = document.getElementById("breadcrumb"); if (breadcrumb) { var brcrumbVal = breadcrumb.innerHTML; brcrumbVal = brcrumbVal.substring(0, brcrumbVal.length - 11); breadcrumb.innerHTML = brcrumbVal + " - Read Only"; } tstReadOnly = true; Readonlyform(); } } if (formControlJsonObj[m].btnname) { var btnName = ""; var btnVal = ""; btnName = formControlJsonObj[m].btnname; btnVal = formControlJsonObj[m].btnact; var newBtnName = GetExactFieldName(btnName); var isobject = false; fld = null; if (btnName.indexOf(".") != -1) btnName.replace(".", "\\."); if (btnName.toLowerCase() == "remove") btnName = "delete"; else if (btnName.toLowerCase() == "list view") btnName = "listview"; else if (btnName.toLowerCase() == "new") btnName = "add"; $j(":button").each(function () { if ($j(this).attr("id") == btnName || $j(this).attr("value") == btnName) { isobject = true; fld = $j(this); } }); if (!isobject) { $j(".action img").each(function () { if ($j(this).attr("id") == btnName) { fld = $j(this); isobject = true; return false; } }); } if (!isobject) { $j(".axpBtn").each(function () { if ($j(this).attr("id") == btnName) { fld = $j(this); isobject = true; return false; } }); } if (!isobject) { $j(".axpBtnCustom").each(function () { if ($j(this).attr("id") == btnName) { fld = $j(this); isobject = true; return false; } }); } if (!isobject) { $j("#icons").find("a").each(function () { if ($j(this).attr("class") == btnName.toLowerCase() || (typeof btnName !== 'undefined' && $j(this).text() == btnName)) { fld = $j(this); isobject = true; } }); } //condition to check prev and next button in list view header if (!isobject) { $j("#nextprevicons").find("a").each(function () { if ($j(this).attr("class") == btnName.toLowerCase()) { fld = $j(this); isobject = true; } }); } if (btnVal == "disable") CallProcessFormControl(btnName, "", "2", ""); else if (btnVal == "enable") CallProcessFormControl(btnName, "", "1", ""); else { if (fld != null && fld.length > 0) { isobject = true; } else if ($j("#" + btnName.toLowerCase()).length > 0) { isobject = true; fld = $j("#" + btnName.toLowerCase()); } else if (btnName == "Save") { if ($j("#imgSaveTst")) { isobject = true; fld = $j("#imgSaveTst"); } } else { fld = btnName + "000F0"; if ($j("#" + fld).length > 0) { isobject = true; fld = $j("#" + fld); } } if (isobject && fld.length > 0) { if (btnVal == "hide") { if (fld.parent()[0].tagName.toLowerCase() == "li") { //fld.parent().hide(); fld.parent().css({ "display": "none" }); } if (btnName == "add") { if ($j("#New").length > 0) //$j("#New").hide(); $j("#New").css({ "display": "none" }); } else if ((btnName.toLowerCase() == "reject" || btnName.toLowerCase() == "approve") && $j("#icons").find("a#actbtn_" + btnName).length > 0) { $j("#icons").find("a#actbtn_" + btnName).parent().css({ "display": "none" }); } //fld.hide(); fld.css({ "display": "none" }); } else if (btnVal == "show") { if (fld.parent()[0].tagName.toLowerCase() == "li") { //fld.parent().hide(); fld.parent().css({ "display": "inline-block" }); } if (btnName == "add") { if ($j("#New").length > 0) //$j("#New").hide(); $j("#New").css({ "display": "inline-block" }); } //fld.hide(); fld.css({ "display": "block" }); } else if (btnVal == "disable") { FadeImage(fld.attr("id"), 1); fld.attr("disabled", "disabled"); fld.addClass('btndis'); SetAutoCompAccess("disabled", fld); } else if (btnVal == "enable") { fld.prop("disabled", false); SetAutoCompAccess("enabled", fld); } isobject = false; } } } if (formControlJsonObj[m].fldname) { //TODO:need clarification on how to get the fieldID of the field on which formcontrol should be executed. //Construct the fieldname with the row no attribute in the new json. var fldName = ""; var fldVal = ""; var setCap = ""; fldName = formControlJsonObj[m].fldname; fldVal = formControlJsonObj[m].fldact; setCap = formControlJsonObj[m].setcaption; var flens = 0; var poss = 0; var rFrameNo = GetFieldsRowFrameNo(fldName); var fName = GetFieldsName(fldName); var frmNo = rFrameNo.substring(4); if (rFrameNo == "000F0") fldName = fldName.substring(0, fldName.length - 1) + "1"; if (setCap != undefined && rFrameNo == fldName) { var setFldDc = GetDcNo(fldName); if (!IsDcGrid(setFldDc)) fldName = fldName + "000F" + setFldDc; else fldName = fldName + "001F" + setFldDc; } var fld = $j("#" + fldName); var isGridFld = false; if (setCap != undefined || fldVal != undefined) { if (setCap != undefined) { var idx = $j.inArray(GetDcNo(GetFieldsName(fldName)) + "~" + GetFieldsName(fldName) + "~" + setCap, AxFormContSetCapFldsGrid); if (idx == -1) AxFormContSetCapFldsGrid.push(GetDcNo(GetFieldsName(fldName)) + "~" + GetFieldsName(fldName) + "~" + setCap); SetCaptionFormControl(fldName, setCap); } if (fldVal == "setfocus") { var idx = $j.inArray(GetDcNo(fldName) + "~" + fldName + "~" + fldVal, AxFormContFldSetFocus); if (idx == -1) AxFormContFldSetFocus.push(GetDcNo(fldName) + "~" + fldName + "~" + fldVal) } else if (fldVal != undefined) { var idx = $j.inArray(GetDcNo(GetFieldsName(fldName)) + "~" + GetFieldsName(fldName) + "~" + fldVal, AxFormContSetFldActGrid); if (idx == -1) AxFormContSetFldActGrid.push(GetDcNo(GetFieldsName(fldName)) + "~" + GetFieldsName(fldName) + "~" + fldVal) } } else if (fld.length > 0) { if (IsDcGrid(frmNo)) isGridFld = true; if (fldVal == "hide") { if (isGridFld) { $j("#th-" + fName).hide(); fld.hide(); fld.parent().hide(); } else { fld.css("visibility", "hidden"); var fldNewName = GetFieldsName(fldName); $j("#dv" + fldNewName).hide(); } } else { if (isGridFld) { $j("#th-" + fName).show(); fld.show(); fld.parent().show(); } else { fld.css("visibility", "visible"); } } if (fldVal == "disable") ProcessFormControl(fldName, "2", ""); else ProcessFormControl(fldName, "1", ""); } else { if (fldVal == "hide" || fldVal == "show") { var idx = $j.inArray(fName + "~" + fldVal, AxFormContHiddenFlds); if (idx == -1) AxFormContHiddenFlds.push(fName + "~" + fldVal); } else if (setCap != undefined) { var idx = $j.inArray(fldName + "~" + setCap, AxFormContSetCapFlds); if (idx == -1) AxFormContSetCapFlds.push(fldName + "~" + setCap); } } } } SetFormContFldActGrid(""); // if (typeof isWizardTstruct != "undefined" && isWizardTstruct) // CheckWizardSaveButton(); } //Function to execute the form control for Design Mode. function ExecFormControlDesignMode(formControlJsonObj, calledFrom) { var frmlength = formControlJsonObj.length; for (var m = 0; m < frmlength; m++) { if (formControlJsonObj[m].fldname) { var fldName = ""; var setCap = ""; fldName = formControlJsonObj[m].fldname; setCap = formControlJsonObj[m].setcaption; //Only Set Caption has to be executed in case of Design Mode. if (setCap != undefined) { var rFrameNo = GetFieldsRowFrameNo(fldName); if (rFrameNo == "000F0") fldName = fldName.substring(0, fldName.length - 1) + "1"; if (setCap != undefined && rFrameNo == fldName) { var setFldDc = GetDcNo(fldName); if (!IsDcGrid(setFldDc)) fldName = fldName + "000F" + setFldDc; else fldName = fldName + "001F" + setFldDc; } var idx = $j.inArray(GetDcNo(GetFieldsName(fldName)) + "~" + GetFieldsName(fldName) + "~" + setCap, AxFormContSetCapFldsGrid); if (idx == -1) AxFormContSetCapFldsGrid.push(GetDcNo(GetFieldsName(fldName)) + "~" + GetFieldsName(fldName) + "~" + setCap); SetCaptionFormControl(fldName, setCap); } } } } //Function to construct the parameter string from the json parameters. function ConstructParams(params, values) { if (params.indexOf("###") != -1) params = params.replace(/###/g, "¿"); if (values.indexOf("###") != -1) values = values.replace(/###/g, "¿"); var params = params.split("¿"); var pvals = values.split("¿"); var paramsStr = ""; var responseparamsFlds = params.length; if (responseparamsFlds != 0) { var paraName = ""; var paraVal = ""; var fres = ""; for (var cmp = 0; cmp < responseparamsFlds; cmp++) { paraName = params[cmp]; paraVal = pvals[cmp]; paraVal = CheckUrlSpecialChars(paraVal); fres = paraName + "=" + paraVal; // fres = fres.replace(/&/g, "--.--"); fres = fres.replace(/%26/g, "--.--"); paramsStr = paramsStr + "&" + fres; } } return paramsStr; } function CheckUrlSpecialChars(value) { value = value.replace(/%/g, "%25"); value = value.replace(/#/g, "%23"); value = value.replace(/&/g, "%26"); value = value.replace(/'/g, "%27"); value = value.replace(/"/g, "%22"); value = value.replace("+", "%2b"); value = value.replace(/ /g, "%20"); value = value.replace(/\\/g, "%5C"); value = value.replace(//g, "%3E"); return value; } function ReplaceUrlSpecialChars(value) { value = value.replace(/%25/g, "%"); value = value.replace(/%26/g, "&"); value = value.replace(/%27/g, "'"); value = value.replace(/%23/g, "#"); value = value.replace(/%22/g, "\""); value = value.replace(/%2b/g, "+"); value = value.replace(/%20/g, " "); value = value.replace(/%5C/g, "\\"); value = value.replace(/%3C/g, "<"); value = value.replace(/%3E/g, ">"); return value; } function closeRemodalwindow() { if ($j("#popupIframeRemodal", parent.document).attr("src") != undefined) { $j('.remodal-close', parent.document).click(); } } //Function which executes the commands in the result json. function ExecCommand(cmdJsonObj, actnName, axpConfigNavType) { actnName = typeof actnName != "undefined" ? actnName : ""; var popup = ""; var pgname = ""; var cmdName = ""; var cmdVal = ""; var multipleDocs; var saveAction = false; var lockedBy = ""; var parFrm = $j("#axpiframe", parent.document); var curFrame = $(window.frameElement); // cmdJsonObj = _.uniqWith(cmdJsonObj, _.isEqual); var openIviewCmdIndex = cmdJsonObj.reduce((arr, cmd, index) => { cmd.cmd == 'openiview' ? arr.push(index) : ""; return arr; }, []); var saveAndPopupExist = false; for (var i = 0; i < cmdJsonObj.length; i++) { try { saveAndPopupExist = cmdJsonObj[i].cmd == "action" && cmdJsonObj[i].cmdval == "save" && cmdJsonObj.findIndex(val => val.showin == "pop") > -1; if (saveAndPopupExist) { eval(callParent('isSuccessAlertInPopUp') + "= true"); } } catch (ex) { } if ((cmdJsonObj[i].cmd == "printfile" && cmdName != "" && cmdVal != "" && cmdName == cmdJsonObj[i].cmd && cmdVal == cmdJsonObj[i].cmdval) || (cmdJsonObj[i].cmd == "openiview" && openIviewCmdIndex.length > 0 && openIviewCmdIndex[0] != i) || saveAndPopupExist) { continue; } cmdName = cmdJsonObj[i].cmd; cmdVal = cmdJsonObj[i].cmdval; multipleDocs = cmdJsonObj[i].multiprintdocs; if (cmdJsonObj[i].lockedby) lockedBy = cmdJsonObj[i].lockedby; if (cmdName == "openfile" || cmdName == "printfile") { UpdateExceptionMessageInET("Action printfile/openfile result. Command name:"+cmdName+" Command Val:"+cmdVal); var docID; var fldPath; var filepath = ""; var compressValue = ""; var dirName = ""; cmdVal = CheckUrlSpecialChars(cmdVal); var fldPrintDirective = GetFieldValue("axp_printdirective000F1"); if (fldPrintDirective != "") { fldPath = fldPrintDirective.split('~'); compressValue = fldPath[0].toString(); //If fldPath[1] is empty what happens docID = GetFieldValue(fldPath[1] + "000F1"); if (docID = undefined) docID = ""; if (fldPath.length > 2) { filepath = fldPath[2].toString(); } } var left = (screen.width / 2) - 200; var top = (screen.height / 2) - 100; if(saveAction && (typeof cmdVal=="undefined" || cmdVal=="")) { setTimeout(function () { showAlertDialog("warning","Transaction saved successfully and there is an error while print. kindly load record from listview and print again."); },10); continue; } if (multipleDocs == "yes") { dirName = cmdJsonObj[i].directory; var na = "./OpenFiles.aspx?fpath=" + cmdVal + "&compress=" + compressValue + "&path=" + filepath + "&docid=" + docID + "&dirName=" + dirName; try { try { /** * @description : Customize Tstruct Print Url(if returns string url) Or Customization for Javascript Print Operartion(if return true) * @author Prashik * @date 2020-06-30 * @param {object} url : export url object * @return {[string/bool]}: * If returns string(custom url: na) then it will be considered an updated url * If returns true then next operations will be stopped and it will be considered that export operation is already completed in the given function */ var tempUrl = axSetTstructPrint({ obj: cmdJsonObj[i], url: na, multipleDocs, fileName: cmdVal, compressValue, filepath, docID, dirName, isAttPDF }) || na; if (tempUrl === true) { continue; } else { na = tempUrl; } } catch (ex) { } var windobj = window.open(na, "_blank"); windobj.focus(); windobj.close(); } catch (ex) { UpdateExceptionMessageInET("openfile exception : "+ex.message); showAlertDialog("warning", eval(callParent('lcm[356]'))); } } else { try{ if (cmdVal.toLowerCase().indexOf("pdf") > -1) { dirName = "PDF"; compressValue = compressValue || ""; var isAttPDF = "F"; isAttPDF = cmdJsonObj[i].isatt; if (compressValue.toLowerCase() == "true") { var na = "./openfile.aspx?fpath=" + cmdVal + "&compress=" + compressValue + "&path=" + filepath + "&docid=" + docID + "&dirName=" + dirName; try { try { /** * @description : Customize Tstruct Print Url(if returns string url) Or Customization for Javascript Print Operartion(if return true) * @author Prashik * @date 2020-06-30 * @param {object} url : export url object * @return {[string/bool]}: * If returns string(custom url: na) then it will be considered an updated url * If returns true then next operations will be stopped and it will be considered that export operation is already completed in the given function */ var tempUrl = axSetTstructPrint({ obj: cmdJsonObj[i], url: na, multipleDocs, fileName: cmdVal, compressValue, filepath, docID, dirName, isAttPDF }) || na; if (tempUrl === true) { continue; } else { na = tempUrl; } } catch (ex) { } var windobj = window.open(na, "_blank"); windobj.focus(); } catch (ex) { UpdateExceptionMessageInET("openfile exception : "+ex.message); showAlertDialog("warning", eval(callParent('lcm[356]'))); } } else if (isAttPDF == "T") { isSelfOpened = true; cmdVal == undefined ? cmdVal = "" : cmdVal; compressValue == undefined ? compressValue = "" : compressValue; filepath == undefined ? filepath = "" : filepath; docID == undefined ? docID = "" : docID; dirName == undefined ? dirName = "" : dirName; var na = "./openfile.aspx?fpath=" + cmdVal + "&compress=" + compressValue + "&path=" + filepath + "&docid=" + docID + "&dirName=" + dirName + "&Imp=t"; var curWin; try { try { /** * @description : Customize Tstruct Print Url(if returns string url) Or Customization for Javascript Print Operartion(if return true) * @author Prashik * @date 2020-06-30 * @param {object} url : export url object * @return {[string/bool]}: * If returns string(custom url: na) then it will be considered an updated url * If returns true then next operations will be stopped and it will be considered that export operation is already completed in the given function */ var tempUrl = axSetTstructPrint({ obj: cmdJsonObj[i], url: na, multipleDocs, fileName: cmdVal, compressValue, filepath, docID, dirName, isAttPDF }) || na; if (tempUrl === true) { continue; } else { na = tempUrl; } } catch (ex) { } if (typeof fixUnloadOnWindowSelfDownloads == "function") { fixUnloadOnWindowSelfDownloads(window); } curWin = window.open(na, "_self"); } catch (ex) { UpdateExceptionMessageInET("openfile exception : "+ex.message); if (typeof BeforeWindowClose == "function") { window.onbeforeunload = BeforeWindowClose; } } } else if (cmdJsonObj.length == 1) { if (iframeindex > -1 && iframeindex != null) { var na = "./openfile.aspx?fpath=" + cmdVal + "&compress=" + compressValue + "&path=" + filepath + "&docid=" + docID + "&dirName=" + dirName; try { try { /** * @description : Customize Tstruct Print Url(if returns string url) Or Customization for Javascript Print Operartion(if return true) * @author Prashik * @date 2020-06-30 * @param {object} url : export url object * @return {[string/bool]}: * If returns string(custom url: na) then it will be considered an updated url * If returns true then next operations will be stopped and it will be considered that export operation is already completed in the given function */ var tempUrl = axSetTstructPrint({ obj: cmdJsonObj[i], url: na, multipleDocs, fileName: cmdVal, compressValue, filepath, docID, dirName, isAttPDF }) || na; if (tempUrl === true) { continue; } else { na = tempUrl; } } catch (ex) { } var windobj = window.open(na, "axpiframe"); windobj.focus(); window.parent.closeFrame(); } catch (ex) { UpdateExceptionMessageInET("openfile exception : "+ex.message); window.parent.closeFrame(); showAlertDialog("warning", eval(callParent("lcm[356]"))); } } else if (cmdJsonObj[0].cmd == "printfile") OpenPdfFile(cmdVal, filepath, docID, dirName, saveAction); else { var na = "./openfile.aspx?fpath=" + cmdVal + "&compress=" + compressValue + "&path=" + filepath + "&docid=" + docID + "&dirName=" + dirName; try { var params = [ 'height=' + screen.height, 'width=' + screen.width, 'fullscreen=yes', // only works in IE 'scrollbars=yes', 'resizable=yes' ].join(','); var winobj = window.open(na, "", params); winobj.moveTo(0, 0); winobj.focus(); } catch (ex) { UpdateExceptionMessageInET("openfile exception : "+ex.message); showAlertDialog("warning", eval(callParent('lcm[356]'))); } } } else if (cmdJsonObj.filter(function (itm) { return itm.cmd === 'printfile' }).length > 0) { OpenPdfFile(cmdVal, filepath, docID, dirName, saveAction); } else if (cmdJsonObj.length == 3 && cmdJsonObj[0].cmd == "action" && cmdJsonObj[2].cmd == "openfile") { OpenPdfFile(cmdVal, filepath, docID, dirName, saveAction); } else { var na = "./openfile.aspx?fpath=" + cmdVal + "&compress=" + compressValue + "&path=" + filepath + "&docid=" + docID + "&dirName=" + dirName; try { try { /** * @description : Customize Tstruct Print Url(if returns string url) Or Customization for Javascript Print Operartion(if return true) * @author Prashik * @date 2020-06-30 * @param {object} url : export url object * @return {[string/bool]}: * If returns string(custom url: na) then it will be considered an updated url * If returns true then next operations will be stopped and it will be considered that export operation is already completed in the given function */ var tempUrl = axSetTstructPrint({ obj: cmdJsonObj[i], url: na, multipleDocs, fileName: cmdVal, compressValue, filepath, docID, dirName, isAttPDF }) || na; if (tempUrl === true) { continue; } else { na = tempUrl; } } catch (ex) { } var params = [ 'height=' + screen.height, 'width=' + screen.width, 'fullscreen=yes', // only works in IE 'scrollbars=yes', 'resizable=yes' ].join(','); var winobj = window.open(na, "", params); winobj.moveTo(0, 0); winobj.focus(); } catch (ex) { UpdateExceptionMessageInET("openfile exception : "+ex.message); showAlertDialog("warning", eval(callParent('lcm[356]'))); } } } else { isSelfOpened = true; cmdVal == undefined ? cmdVal = "" : cmdVal; compressValue == undefined ? compressValue = "" : compressValue; filepath == undefined ? filepath = "" : filepath; docID == undefined ? docID = "" : docID; dirName == undefined ? dirName = "" : dirName; var na = "./openfile.aspx?fpath=" + cmdVal + "&compress=" + compressValue + "&path=" + filepath + "&docid=" + docID + "&dirName=" + dirName + "&Imp=t"; //var windobj = window.open(na, "_self"); //if (windobj != null) // windobj.focus(); var curWin; try { try { /** * @description : Customize Tstruct Print Url(if returns string url) Or Customization for Javascript Print Operartion(if return true) * @author Prashik * @date 2020-06-30 * @param {object} url : export url object * @return {[string/bool]}: * If returns string(custom url: na) then it will be considered an updated url * If returns true then next operations will be stopped and it will be considered that export operation is already completed in the given function */ var tempUrl = axSetTstructPrint({ obj: cmdJsonObj[i], url: na, multipleDocs, fileName: cmdVal, compressValue, filepath, docID, dirName, isAttPDF }) || na; if (tempUrl === true) { continue; } else { na = tempUrl; } } catch (ex) { } if (typeof fixUnloadOnWindowSelfDownloads == "function") { fixUnloadOnWindowSelfDownloads(window); } curWin = window.open(na, "_self"); } catch (ex) { UpdateExceptionMessageInET("openfile exception : "+ex.message); if (typeof BeforeWindowClose == "function") { window.onbeforeunload = BeforeWindowClose; } } } }catch(ex) { UpdateExceptionMessageInET("openfile/printfile outer exception : "+ex.message); if (saveAction == true) showAlertDialog("warning","Transaction saved successfully and there is an error while print. kindly load record from listview and print again."+ex.message ); else showAlertDialog("warning",ex.message ); continue; } } } else if (cmdName == "recordlocked") { AxIsTstructLocked = cmdVal; var cutMsg = eval(callParent('lcm[46]')); ShowInfoDialog(cutMsg + " - " + lockedBy); //if a user already opened a transaction and if admin opened the same transaction then admin can forcefully unlock the transaction if (user == "admin") $("#dvMessage table tr").append('Unlock').find("td").width("100%"); } else if (cmdName == "done") { showAlertDialog("success", 2026, "client"); } else if (cmdName == "new") { try{ UpdateExceptionMessageInET("Action new result. Command name:"+cmdName+" Command Val:"+cmdVal); AxActiveAction = "New"; GetFldSetCarryValue(); if (SetCarryFlds.length > 0) { var querySCFld = ""; SetCarryFlds.forEach(function (qscFld) { let qscFldName = qscFld.split("♠")[0]; qscFldName = qscFldName.substring(0, qscFldName.lastIndexOf("F") - 3); let qscFldVal = qscFld.split("♠")[1]; querySCFld += "&" + qscFldName + "=" + qscFldVal; }); querySCFld += "&act=open"; AvoidPostBackAfterSave("tstruct.aspx?transid=" + transid + querySCFld); } else AvoidPostBackAfterSave("tstruct.aspx?transid=" + transid); //window.document.location.href = 'tstruct.aspx?transid=' + transid; }catch(ex) { UpdateExceptionMessageInET("Command new exception : "+ex.message); } } else if (cmdName == "close") { closeRemodalwindow(); } else if (cmdName == "refreshpage") { try { var url = "./tstruct.aspx?&transid=" + tst; window.document.location.href = url; if (curFrame.attr("id") === "axpiframe") { axFramReload = true; ReloadMiddleIframe(); } } catch (ex) { window.document.location.href = window.document.location.href; } } else if (cmdName == "refreshparent") { window.opener.location.reload(); } else if (cmdName == "refresh") { SetSession({ key: "IsFromChildWindow", val: "true" }) iViewRefresh = true; var localIviewName = findGetParameter("ivname", window.document.location.href); if (localIviewName != null) { try { var historyIviewLink = callParentNew("appLinkHistory")[callParentNew("curPageIndex")]; var historyIviewName = findGetParameter("ivname", historyIviewLink); if (historyIviewName != null && historyIviewName == localIviewName) { window.document.location.href = historyIviewLink; } else { window.document.location.href = window.document.location.href; } } catch (ex) { window.document.location.href = window.document.location.href; } } else { window.document.location.href = window.document.location.href; } } else if (cmdName == "canceled") { if (cmdVal != "no") { var canReason = cmdJsonObj[i].reason; ShowInfoDialog(cancelMsg + " " + canReason); tstructCancelled = "Cancelled"; Readonlyform(); var imgSave = $j("#imgSaveTst"); if (imgSave.length > 0) { imgSave.prop("disabled", true); imgSave.attr("disabled", "disabled"); imgSave.css("cursor", "default"); } var btnSave = $j("#btnSaveTst"); if (btnSave.length > 0) btnSave.attr("disabled", "disabled"); } } else if (cmdName == "opentstruct" || cmdName == "clear") { var tstid = cmdVal; if (cmdName == "clear") { tstid = transid; } var popname = "openPop" + tstid; popup = cmdJsonObj[i].showin; var tparams = ""; if (cmdJsonObj[i].pname) { tparams = ConstructParams(cmdJsonObj[i].pname, cmdJsonObj[i].pvalue); } //if (tparams != "") // tparams = tparams + "&IsFrmAct=true"; var designParam = ""; if (actnName.startsWith("axpdesign_")) { designParam = "&theMode=design"; } if ((axpConfigNavType == undefined || axpConfigNavType == "") && parFrm.hasClass("frameSplited")) popup = "split"; else if (axpConfigNavType && axpConfigNavType != "") { if (axpConfigNavType == "split") { popup = "split"; } else if (axpConfigNavType == "popup") { popup = "pop"; } else if (axpConfigNavType == "newpage") { popup = "newpage" } else popup = ""; } if (popup == "pop") { tparams = tparams + "&AxPop=true"; //var openpopup = window.open('tstruct.aspx?act=open&transid=' + tstid + tparams, popname, 'width=800,height=500,scrollbars=yes,resizable=yes'); var openpopup = 'tstruct.aspx?act=open&transid=' + tstid + tparams + designParam; createPopup(openpopup); } else if (popup == "newpage") { popupFullPage("tstruct.aspx?act=open&transid=" + tstid + tparams + designParam); } else if (popup != "split") { var redirectionLink = "tstruct.aspx?act=open&transid=" + tstid + tparams + designParam; var customCalled = false; try { customCalled = loadInMiddle1(redirectionLink); } catch (ex) { } if (!customCalled) window.document.location.href = redirectionLink; } else if (popup == "split") { callParentNew(`OpenOnPropertyBase(${"tstruct.aspx?act=open&transid=" + tstid + tparams + designParam})`, 'function'); } } else if (cmdName == "loadtstruct") { var tstid = cmdVal; var popname = "loadPop" + tstid; popup = cmdJsonObj[i].showin; var tparams = ""; if (cmdJsonObj[i].pname) { tparams = ConstructParams(cmdJsonObj[i].pname, cmdJsonObj[i].pvalue); } if ((axpConfigNavType == undefined || axpConfigNavType == "") && parFrm.hasClass("frameSplited")) popup = "split"; else if (axpConfigNavType && axpConfigNavType != "") { if (axpConfigNavType == "split") { popup = "split"; } else if (axpConfigNavType == "popup") { popup = "pop"; } else if (axpConfigNavType == "newpage") { popup = "newpage" } else popup = ""; } if (popup == "pop") { tparams = tparams + "&AxPop=true"; //var loadpopup = window.open('tstruct.aspx?act=load&transid=' + tstid + tparams, popname, 'width=900,height=500,scrollbars=yes,resizable=yes'); var loadpopup = 'tstruct.aspx?act=load&transid=' + tstid + tparams; createPopup(loadpopup); } else if (popup == "newpage") { popupFullPage("tstruct.aspx?act=load&transid=" + tstid + tparams); } else if (popup != "split") { window.document.location.href = "tstruct.aspx?act=load&transid=" + tstid + tparams; } else if (popup == "split") { callParentNew(`OpenOnPropertyBase(${"tstruct.aspx?act=load&transid=" + tstid + tparams})`, 'function'); } } else if (cmdName == "openiview") { var ivn = cmdJsonObj[i].cmdval; var popname = "ivewPop" + ivn; popup = cmdJsonObj[i].showin; var tparams = ""; if (cmdJsonObj[i].pname) { try { tparams = ConstructParams(cmdJsonObj[i].pname, cmdJsonObj[i].pvalue); } catch (ex) { } if (document.title != "Iview") { //tparams = "AxOpenIvAction=true"; tparams += (tparams ? "&" : "") + "AxIvNav=true"; } } if ($j("#axp_ivname000F1").length > 0) ivn = $j("#axp_ivname000F1").val(); if ((axpConfigNavType == undefined || axpConfigNavType == "") && parFrm.hasClass("frameSplited")) popup = "split"; else if (axpConfigNavType && axpConfigNavType != "") { if (axpConfigNavType == "split") { popup = "split"; } else if (axpConfigNavType == "popup") { popup = "pop"; } else if (axpConfigNavType == "newpage") { popup = "newpage" } else popup = ""; } if (popup == "pop") { var pop = "true"; tparams = tparams + "&AxIsPop=true"; var loadpopup = 'ivtoivload.aspx?ivname=' + ivn + "&" + tparams, popname; createPopup(loadpopup); } else if (popup == "newpage") { popupFullPage("ivtoivload.aspx?ivname=" + ivn + "&" + tparams); } else if (popup != "split") { var loadMiddle1URL = "ivtoivload.aspx?ivname=" + ivn + "&" + tparams; try { if (window.frameElement.id == "middle1") { callParentNew("middle1URL=", loadMiddle1URL); } } catch (ex) { } // callParentNew("updateAppLinkObj(" + loadMiddle1URL + ",1)", "function"); var srcUrl = "ivtoivload.aspx?ivname=" + ivn + "&AxIvNav=true"; var linkParams = tparams; linkParams = linkParams.replace(/~/g, "="); linkParams = linkParams.replace(/¿/g, "&"); linkParams = ReplaceUrlSpecialChars(linkParams); if (linkParams != "") { setIviewNavigationData(linkParams, ivn); callParentNew("updateAppLinkObj(" + srcUrl + ",1)", "function"); } window.document.location.href = srcUrl; } else if (popup == "split") { callParentNew(`OpenOnPropertyBase(${"ivtoivload.aspx?ivname=" + ivn + "&" + tparams})`, 'function'); } } else if (cmdName == "openpage") { pgname = cmdVal; var tparams = ""; if (cmdJsonObj[i].pname) { tparams = ConstructParams(cmdJsonObj[i].pname, cmdJsonObj[i].pvalue); } //window.document.location.href = "Actionpage.aspx?hltype=open&name=" + pgname + tparams; if (pgname != "" && pgname.toLowerCase().startsWith("pagets")) { pgname = pgname.substring(6); window.document.location.href = "tstruct.aspx?act=open&transid=" + pgname + tparams; } else if (pgname != "" && pgname.toLowerCase().startsWith("pageiv")) { pgname = pgname.substring(6); window.document.location.href = "ivtoivload.aspx?ivname=" + pgname + "&" + tparams; } } else if (cmdName == "openpdf") { var pdfpath = cmdVal; var len = pdfpath.length; var filepos = InStrPath(pdfpath) + 1; pdfpath = pdfpath.substring(filepos, len); window.location.href = "../" + pdfpath; } else if (cmdName == "pageload" || cmdName == "loadpage") { pgname = cmdVal; var tparams = ""; if (cmdJsonObj[i].pname) { tparams = ConstructParams(cmdJsonObj[i].pname, cmdJsonObj[i].pvalue); } //window.document.location.href = "Actionpage.aspx?hltype=load&name=" + pgname + tparams; if (pgname != "" && pgname.toLowerCase().startsWith("pagets")) { pgname = pgname.substring(6); window.document.location.href = "tstruct.aspx?act=load&transid=" + pgname + tparams; } else if (pgname != "" && pgname.toLowerCase().startsWith("pageiv")) { pgname = pgname.substring(6); window.document.location.href = "ivtoivload.aspx?ivname=" + pgname + "&" + tparams; } } else if (cmdName == "action" && cmdVal == "save") { saveAction = true; AxActionSave = true;//To know that save action happened we need to reload the page after every action is done } else if (cmdName == "recid") { if (saveAction == true) { UpdateExceptionMessageInET("Action save result. Command Val:save RecordId:"+cmdVal); $j("#recordid000F0").val(cmdVal); var recIdVal = $j("#recordid000F0").val(); if (recIdVal != "0") { saveActRecSuccess = true; eval(callParent('isSuccessAlertInPopUp') + "= true"); if (curFrame.attr("id") === "axpiframe") { axFramReload = true; ReloadMiddleIframe(); } } } } else if (cmdName == "newtrans") { $j("#recordid000F0").val("0"); recordid = "0"; } else if (cmdName == "filepath") { try { var curWin; try { if (typeof fixUnloadOnWindowSelfDownloads == "function") { fixUnloadOnWindowSelfDownloads(window); } curWin = window.open('download.aspx', '_self', 'width=400,height=300,scrollbars=yes,resizable=yes'); } catch (ex) { if (typeof BeforeWindowClose == "function") { window.onbeforeunload = BeforeWindowClose; } } } catch (ex) { showAlertDialog("warning", eval(callParent('lcm[356]'))); } } else if (cmdName == "copytrans") { if (cmdVal == "true") { $j("#recordid000F0").val("0") recordid = "0"; } } } } //to unlock a locked transaction forcefully by admin function forceUnlockTstruct() { var rid = $j("#recordid000F0").val(); if (rid != "0" && AxIsTstructLocked && callParentNew("isLockOnRead")) { try { ASB.WebService.UnlockTStructRecord(tst, rid, true, successUnlockTstruct); } catch (ex) { } function successUnlockTstruct(result, eventArgs) { location.reload(); } } } //If two tasks are defined on one button then we need to redirect after doing all the tasks for this we moved the function outside function redirectOnSaveAction() { var recIdVal = $j("#recordid000F0").val(); let axpframe = callParentNew("axpiframe", "id"); var axSplit = ""; if (typeof axpframe != "undefined") axSplit = "&AxSplit=true"; if (recIdVal == "" || recIdVal == "0") { GetProcessTime(); window.location.href = "tstruct.aspx?act=load&transid=" + tst + axSplit + "&hdnbElapsTime=" + callParentNew("browserElapsTime"); } else if (transid == "axcal") { callParentNew('isSuccessAlertInPopUp=', true); callParentNew("closeModalDialog()", "function"); } else { saveActRecSuccess = true; if (AxIsTstructCached) { SaveInCache(recIdVal, "SaveAction"); } else { GetProcessTime(); window.location.href = "tstruct.aspx?act=load&transid=" + tst + "&recordid=" + recIdVal + axSplit + "&hdnbElapsTime=" + callParentNew("browserElapsTime"); } } } //Function which adds or deletes the rows to the given dc to make it equal to the rowCount. function SetRows(dcNo, rowCount, delRows, calledFrom, oldHasData, dcHasRows) { var noNewRow = false; AxActiveDc = dcNo; var currentRowCnt = GetDcRowCount(dcNo); rowCount = parseInt(rowCount, 10); var rCntBfrDeleteAll = $j(".wrapperForGridData" + dcNo + " tbody tr").length; var dcIsPop = false; if (TstructHasPop) { dcIsPop = IsDcPopGrid(dcNo); if (dcIsPop && calledFrom == "GetDep") { //Get the parent row on which the get dependents was called //Then get the sub grid rows for the given parent row, and delete the respective row var popRows = GetPopRows(AxActivePDc, GetClientRowNo(AxActivePRow, AxActivePDc), dcNo); var strRows = popRows.split(","); var arrRows = new Array(); for (var j = 0; j < strRows.length; j++) { arrRows.push(strRows[j]); } arrRows.sort(); } } if (delRows != "") { var strDelRows; strDelRows = delRows.split(","); for (var i = 0; i < strDelRows.length; i++) { //noNewRow = false; var firstChar = strDelRows[i].substring(0, 1); var rowNo = strDelRows[i].substring(1); if (firstChar == "d") { if (rowNo == "*") { var dcRowCnt = GetDcRowCount(dcNo); if (dcHasRows != "no") SetRowsInDc(dcNo, currentRowCnt, calledFrom); } else { DeleteDbRow(dcNo, rowNo, calledFrom); } } else { if (TstructHasPop) { //GetDep will always return the sub grid rows starting from "1" for the active parent row. //For e.g the cr attribute will always have "i1,i2...." Hence just adding at the end. //if (strDelRows[i].toString() != "i1" || (dcIsPop && calledFrom == "GetDep" && GetDcRowCount(dcNo) > 1)) { var dcIdx = $j.inArray(dcNo, DCFrameNo); if ((calledFrom == "LoadData" || (calledFrom == "GetDep" && rCntBfrDeleteAll == 0)) && ($j("#recordid000F0").val() != "0" || DCHasDataRows[dcIdx] == "True")) { if (dcHasRows != "no") { if (axInlineGridEdit) addNewInlineGridRow(dcNo, calledFrom); else AddNewRowInDc(dcNo, calledFrom); } } else if (strDelRows[i].toString() != "i1" || (dcIsPop && calledFrom == "GetDep" && oldHasData == "True")) { AddRow(dcNo, calledFrom); AxDepRows.push(rowNo + "~" + GetDcRowCount(dcNo)); } else { //if dc is pop grid or parent grid update the pop rows array AxDepRows.push(rowNo + "~" + "1"); if (dcIsPop == true) { if (calledFrom != "LoadData") { $j("#sp" + dcNo + "R" + "001" + "F" + dcNo).show(); UpdateNewPopInfo(dcNo, "001"); UpdatePopUpArrays(dcNo, "001", true, "Add"); UpdateDcRowArrays(dcNo, "001", "Add"); } } else { UpdatePopUpArrays(dcNo, "001", false, "Add"); UpdateDcRowArrays(dcNo, "001", "Add"); } } } else { var dcIdx = $j.inArray(dcNo, DCFrameNo); //if (delRows.indexOf("d*") != -1 && $j("#hdnRCntDc" + dcNo).length > 0 && (parseInt(currentRowCnt, 10) - 1) > 0) { // noNewRow = true; //} if ((calledFrom == "LoadData" || (calledFrom == "GetDep" && rCntBfrDeleteAll == 0)) && ($j("#recordid000F0").val() != "0" || DCHasDataRows[dcIdx] == "True")) { if (calledFrom == "GetDep" && strDelRows[i].toString() == "i1" && delRows.indexOf("i2") == -1 && DCHasDataRows[dcIdx] == "False") { //do nothing } else { if (dcHasRows != "no") { if (axInlineGridEdit) addNewInlineGridRow(dcNo, calledFrom); else if (!axInlineGridEdit && AxpGridForm == "form") AddNewFormRowInDc(dcNo, calledFrom); else AddNewRowInDc(dcNo, calledFrom); } } } else { if ((strDelRows[i].toString() != "i1" && strDelRows[i].toString() != "") || (strDelRows[i].toString() == "i1" && delRows.indexOf("i2") != -1)) { //AddRow(dcNo, calledFrom); if (axInlineGridEdit) addNewInlineGridRow(dcNo, calledFrom); else if (!axInlineGridEdit && AxpGridForm == "form") AddNewFormRowInDc(dcNo, calledFrom); else AddNewRowInDc(dcNo, calledFrom); }//In case of Getdep- if the cr attribute has "d*,i1" it was not adding the row else if ((calledFrom == "GetDep" || calledFrom == "Action") && strDelRows[i].toString() == "i1" && delRows.indexOf("i2") == -1 && delRows.indexOf("d*") != -1 && dcHasRows == "yes") { if (axInlineGridEdit) addNewInlineGridRow(dcNo, calledFrom); else if (!axInlineGridEdit && AxpGridForm == "form") AddNewFormRowInDc(dcNo, calledFrom); else AddNewRowInDc(dcNo, calledFrom); if (gridDummyRowVal.length > 0) { gridDummyRowVal.map(function (v) { if (v.split("~")[0] == dcNo) gridDummyRowVal.splice($.inArray(v, gridDummyRowVal), 1); }); } } } } } } ResetSerialNo(dcNo, "000F" + dcNo, rowCount, true); swicthCompressMode("#divDc" + dcNo); } } //Function to remove the row from the poprows array when the service is returning the row in cr attribute. function DeletePopRows(dcNo, rowNo) { for (var i = 0; i < PopGridDcNo.length; i++) { if (PopGridDcNo[i] == dcNo) { var strRows = PopRows[i].toString().split(","); var newStr = ""; for (var j = 0; j < strRows.length; j++) { if (strRows[j] != rowNo) { if (newStr == "") newStr = strRows[j]; else newStr += "," + strRows[j]; } } PopRows[i] = newStr; } } } function DeleteDbRow(dcNo, dbRowNo, calledFrom) { var clientRowNo = GetClientRowNo(dbRowNo, dcNo); var onlyRow = IsSingleRow(dcNo); if (!onlyRow) { UpdateChangedDbRow(dcNo, dbRowNo, "Delete"); DeleteRowHtml(dcNo, clientRowNo); if (TstructHasPop) { var dcIsPop = IsDcPopGrid(dcNo); if (dcIsPop == true) { DeletePopRows(dcNo, clientRowNo); if (dbRowNo == "1") UpdatePopUpArrays(dcNo, "001", true, "Delete"); } } var dcRowCount = GetDcRowCount(dcNo); dcRowCount = parseInt(dcRowCount, 10) - 1; SetRowCount(dcNo, dcRowCount); //ResetSerialNo(dcNo, clientRowNo + "F" + dcNo, dcRowCount); var slNo = GetSerialNoCnt(dcNo); slNo = parseInt(slNo, 10) - 1; SetSerialNoCnt(dcNo, slNo); } else { if (calledFrom != "LoadData") ClearDeletedFields(dcNo, clientRowNo); } } function UpdateChangedDbRow(dcNo, dbRowNo, action, rowNo) { var found = false; var indx = -1; for (var i = 0; i < RowDcNo.length; i++) { if (RowDcNo[i] == dcNo && DbRowNo[i] == dbRowNo) { indx = i; found = true; break; } } if (action == "Delete") { if (found && indx != -1) { RowDcNo.splice(indx, 1); DbRowNo.splice(indx, 1); ClientRowNo.splice(indx, 1); ResetDbRowNo(dcNo, dbRowNo, action); } } else { if (found && indx != -1) { RowDcNo.insert(indx, dcNo); DbRowNo.insert(indx, dbRowNo); ClientRowNo.insert(indx, rowNo); ResetDbRowNo(dcNo, dbRowNo, action); } } } function DeleteRowHtml(dcNo, rowNo) { var rowId = "#sp" + dcNo + "R" + rowNo + "F" + dcNo; $j(rowId).remove(); } //function SetRowsForFirmBind(dcNo, rowCount) { // var popRows = GetPopRows(AxActivePDc, AxActivePRow, dcNo); //} //Function to clear and add rows in the grid with the given rowcount. function SetRowsInDc(dcNo, rowCount, calledFrom) { if ($j("#hdnRCntDc" + dcNo).length > 0) { //Rows sent by the service minus 1 because after clearing the rows there will be only one row in the grid. //AGI003505 - not reducing rowcount for inline grid var addRows = 0; if (calledFrom == "LoadData" && rowCount > 0) addRows = parseInt(rowCount, 10); else addRows = axInlineGridEdit ? rowCount : parseInt(rowCount, 10) - 1; if (addRows > 0) { ClearRowsInGrid(dcNo, calledFrom); // return true; } else { var clientRowNo = GetClientRowNo("1", dcNo); ClearDeletedFields(dcNo, clientRowNo, "", true); // return false; } } else { // return false; } } //Function to clear all rows except the first row in the Grid. function ClearRowsInGrid(gridDcNo, calledFrom) { var spanDc = document.getElementById("Frame" + gridDcNo); var rCount = 0; rCount = GetDcRowCount(gridDcNo); rCount = parseInt(rCount, 10); if (calledFrom == "LoadData") rCount = rCount + 1; else rCount = axInlineGridEdit ? rCount + 1 : rCount; if (rCount >= 1) { //If there are more than 1 row in the grid, add the extra rowno to DeletedDCRows. //Remove the entry of the fields in the extra rows from the field arrays. for (var i = rCount - 1; i >= 1; i--) { var rowNo = GetClientRowNo(i, gridDcNo); var rowFrmNo = rowNo + "F" + gridDcNo; var a = "sp" + gridDcNo + "R" + rowNo + "F" + gridDcNo; if ($j("tr#" + a).length > 0) { if ($j("tr#" + a).hasClass('inEditMode')) $j("#editCancelButton" + gridDcNo).click(); $j("tr#" + a).remove(); } else if ($j("div#" + a).hasClass("editWrapTr")) { //changeEditLayoutIds(rowNo, gridDcNo, "d*"); } UpdateDcRowArrays(gridDcNo, rowNo, "Delete"); //The below loop will replace the edit row in the dc arrays to 001 row after delete all rows for (var ind = 0; ind < RowDcNo.length; ind++) { if (RowDcNo[ind] == gridDcNo && parseInt(ClientRowNo[ind], 10) == (i + 1)) { if (i == rCount - 1 && IsRowDupInDcArray(gridDcNo, "001")) { ClientRowNo[ind] = "001"; UpdateDcRowArrays(gridDcNo, ClientRowNo[ind], "Delete"); } else if (i == rCount - 1) ClientRowNo[ind] = "001"; } } var flds = GetGridFields(gridDcNo); for (var j = 0; j < flds.length; j++) { var fld = flds[j] + rowFrmNo; RemoveDeletedFields(fld); } } //Below code is added to delete the wrapper row and add new as 001, some cases it was 004 and causing problem when further rows were added. //Refer bug no AGI003506 var lastRowNo = GetClientRowNo("1", gridDcNo); UpdateDcRowArrays(gridDcNo, lastRowNo, "Delete"); UpdateDcRowArrays(gridDcNo, "001", "Add"); //clear the last row item fields var fields = GetGridFields(gridDcNo); for (var i = 0; i < fields.length; i++) { var fld = fields[i] + "001F" + gridDcNo; CallSetFieldValue(fld, ""); } } changeEditLayoutIds(0, gridDcNo); SetRowCount(gridDcNo, "1", undefined, calledFrom); SetSerialNoCnt(gridDcNo, "1"); } function IsRowDupInDcArray(dcNo, rowNo) { var cnt = 0; for (var ind = 0; ind < RowDcNo.length; ind++) { if (RowDcNo[ind] == dcNo && ClientRowNo[ind] == rowNo) { cnt++; } } if (cnt > 1) return true; else return false; } //Function which returns the component name of the field. function ConstructFieldName(fldName, dcNo, dbRowNo) { var clientRowNo = GetClientRowNo(dbRowNo, dcNo); var fieldName = fldName + clientRowNo + "F" + dcNo; return fieldName; } //Function which returns the first row in the dc. function GetFirstRow(dcNo) { var firstRow = ""; var rows = new Array(); rows = GetDcClientRows(dcNo); firstRow = rows.getMinVal(); return firstRow; } //Function which copies the items to the field from the field in the first row of the given dcno. function CopyFromMasterRow(fldId, dcNo, masterRow, calledFrom, keyColValue, isPopGrid) { var fldName = GetFieldsName(fldId); var srcFldName = ""; if (IsDcGrid(dcNo)) { var rowNo = 0; var formatGridIdx = GetFormatGridIndex(dcNo); if (formatGridIdx != -1) { if (keyColValue && keyColValue != "") { var tableName = "gridDc" + dcNo; var hdrRowIndx = GetFormatRowIndex(tableName, dcNo, keyColValue, "header"); var newRowId = $j('#' + tableName + ' tbody>tr:eq(' + (hdrRowIndx + 1) + ')').attr("id"); var fIdx = newRowId.lastIndexOf("F"); masterRow = newRowId.substring(fIdx - 3, fIdx); //sp3R036F3 } } else { masterRow = GetFirstRow(dcNo); } rowNo = GetRowNoHelper(masterRow); srcFldName = fldName + rowNo + "F" + dcNo; var cFld = $j("#" + fldId); if (cFld.attr("type") == "select-one" || cFld.prop("type") == "select-one") { if ($j("#" + fldId + " option").length > 0) { $j("#" + fldId + " option").remove(); } $j("#" + srcFldName + " option").each(function () { var newOption = $j(this); $j("#" + fldId).append($j('