Share ideas, ask questions, and get feedback about developing for ProcessMaker
Forum rules: Please post new questions under "Developing processes & programming" for ProcessMaker 2 or 3.
#785546
Hello friends, i have stuck in a problem. I made a simple form with designer and it works perfectly, but in case of pre-created forms when i request the dynaform data through Processmaker API it send bad json which is difficult to fix for me. kindly help me, how can i fix this.



I am getting this as a response for dynform
Code: Select all
{
  "dyn_uid": "95658942556156e89b53196030037899",
  "dyn_title": "Report Expense",
  "dyn_description": "",
  "dyn_type": "xmlform",
  "dyn_content": "{\"name\":\"Report Expense\",\"description\":\"\",\"items\":[{\"type\":\"form\",\"gridStore\":false,\"variable\":\"\",\"var_uid\":\"\",\"dataType\":\"\",\"id\":\"95658942556156e89b53196030037899\",\"name\":\"Report Expense\",\"description\":\"\",\"mode\":\"edit\",\"script\":{\"type\":\"js\",\"code\":\"// Validate Manager comments\\nvalidateComment();\\nfunction validateComment(){\\n  document.getElementById('form[commentsManager]').setAttribute('style','background-image:url(\"/plugin/bundleStyle/images/comments.png\");background-repeat:no-repeat;background-position:7px 3px;padding-left: 38px;margin-left: -3px;width: 97.7%;');\\n  var comments = document.getElementById('form[commentsManager]').value;\\n  if(comments != ''){\\n  \\t$('#subtitle0000000003').show();\\n    $('#commentsManager').show();\\n  }else{\\n    $('#subtitle0000000003').hide();\\n    $('#commentsManager').hide();\\n  }  \\n}\\n\\n// Validate Number, Only allows number \\n$(document).on('keyup', '.numeric-only', function(event) {\\n   var v = this.value;\\n   if($.isNumeric(v) === false) {\\n        //chop off the last char entered\\n        this.value = this.value.slice(0,-1);\\n   }\\n});\\n\\n\\n////////////////////////////////////////////////////////////////////////////////////////\\n$('#panelExpense2').hide();\\n$('#panelEnpense').hide();\\n\\n\\n// Disable date pickers\\ndisableDates();\\nfunction disableDates(){\\n\\tvar iniD = document.getElementById(\"form[startDate]\").value;\\n    var endD = document.getElementById(\"form[endDate]\").value;\\n    if(endD!='' && iniD!=''){\\n      \\tvar iniD2 = document.getElementById(\"form[startDate]\");\\n\\t\\tvar endD2 = document.getElementById(\"form[endDate]\");\\n      \\tiniD2.setAttribute(\"readonly\",\"readonly\");\\n      \\tendD2.setAttribute(\"readonly\",\"readonly\");\\n    }\\n}\\n\\n// Recreate table when it comes with information\\nrecreateExpenseTable();\\nfunction recreateExpenseTable(){\\n\\tvar array=$('#expenseData').getValue();\\n    var flag=0;\\n    if(array!=''){\\n      // Create rows in the table with id's\\n      var JSONObject2 = JSON.parse(array);\\n      var fieldName2;\\n      var fieldName;\\n      $.each(JSONObject2, function(key, value) {\\n        var keyDate = key;\\n        var idFields = keyDate.split(\"-\");\\n  \\t\\tfieldName = idFields[0]+'-'+idFields[1]+'-'+idFields[2];\\n        \\n        if(flag==0){\\n        \\t//alert(fieldName);\\n            createRow(fieldName);\\n           \\tflag=2;\\n          \\tfieldName2=fieldName;\\n          \\n        }else{\\n        \\tif(fieldName==fieldName2){\\n              var a=0;\\n            }else{\\n            \\tflag=0;\\n                fieldName2=fieldName;\\n            }\\n        \\n        }\\n        \\n      });\\n      // Show Expense Grid table\\n      showPanel();\\n      // Set the new date Row date\\n      var newDate = addDaysToDate(fieldName);\\n      $( \"#dateRow\" ).datepicker({\\n        dateFormat: 'yy-mm-dd',\\n        minDate: newDate\\n      });\\n\\n      // Load expense data\\n      expenseDataRead();\\n    }\\n\\n}\\n\\n\\n// Icons for fields\\naddIconsField();\\n\\nfunction addIconsField(){\\n  document.getElementById('form[companyName]').setAttribute('style','background-image:url(\"/plugin/bundleStyle/images/company.png\");background-repeat:no-repeat;background-position:10px;padding-left: 38px;');\\n  document.getElementById('form[employeeDepartment]').setAttribute('style','background-image:url(\"/plugin/bundleStyle/images/department.png\");background-repeat:no-repeat;background-position:10px;padding-left: 38px;');\\n  document.getElementById('form[employeeName]').setAttribute('style','background-image:url(\"/plugin/bundleStyle/images/name.png\");background-repeat:no-repeat;background-position:10px;padding-left: 38px;');\\n  document.getElementById('form[employeePhone]').setAttribute('style','background-image:url(\"/plugin/bundleStyle/images/phone.png\");background-repeat:no-repeat;background-position:10px;padding-left: 38px;');\\n  document.getElementById('form[employeeEmail]').setAttribute('style','background-image:url(\"/plugin/bundleStyle/images/email.png\");background-repeat:no-repeat;background-position:10px;padding-left: 38px;margin-left: -3px;width: 97.7%;');\\n}\\n\\n// Dates \\n//calculation();\\ndocument.getElementById(\"form[startDate]\").onchange = calculation;\\ndocument.getElementById(\"form[endDate]\").onchange = calculation;\\ndocument.getElementById(\"form[startDate]\").onblur = calculation;\\ndocument.getElementById(\"form[endDate]\").onblur = calculation;\\n\\n\\n\\nvar items2 = document.getElementsByClassName('input-group-addon');\\nfor (var i = 0; i < items2.length; i++){\\n  items2[i].onclick = eventsCalendar;\\n}\\n\\nfunction calculation(){\\n  //calculateDiffDays();\\n  setTimeout(function(){calculateDiffDays(); },500);\\n}\\n\\nfunction eventsCalendar(){\\n  var items = document.getElementsByClassName('day');\\n  for (var i = 0; i < items.length; i++){\\n    items[i].onclick = calculation;\\n  }\\n}\\n\\n\\nfunction calculateDiffDays(){\\n  var iniD = document.getElementById(\"form[startDate]\").value;\\n  var endD = document.getElementById(\"form[endDate]\").value;\\n  \\t\\n  if(endD!='' || iniD!=''){\\n    \\n    if(endD!=''){\\n      var startDate = new Date(iniD);\\n      var endDate = new Date(endD);\\n      if(iniD!=''){\\n\\n        if (endDate < startDate){\\n            alert('Start Date should be minor than End Date. Please verify'); \\n            document.getElementById(\"form[endDate]\").value='';\\n        }else{\\n          // Calculate days between dates\\n          var millisecondsPerDay = 86400 * 1000; // Day in milliseconds\\n          startDate.setHours(0,0,0,1);  // Start just after midnight\\n          endDate.setHours(23,59,59,999);  // End just before midnight\\n          var diff = endDate - startDate;  // Milliseconds between datetime objects    \\n          var days = Math.ceil(diff / millisecondsPerDay);\\n          createRowA(days);\\n        }\\n      }else{\\n        alert('Please, Start date is mandatory.');\\n        document.getElementById(\"form[startDate]\").focus();\\n        document.getElementById(\"form[endDate]\").value='';\\n        document.getElementById(\"form[startDate]\").value='';\\n      }  \\n  \\t}\\n  }  \\n\\t\\n}\\n\\n// Create row a\\nfunction createRowA(days){\\n  var iniD = document.getElementById(\"form[startDate]\").value;\\n  var endD = document.getElementById(\"form[endDate]\").value;\\n  \\n  var iniDate = iniD;\\n  var ini = iniDate.split(\"-\");\\n  \\n  var day = parseInt(ini[2]) + 0;\\n  if(day<10){day = '0'+day;}\\n  var dateIni = ini[0]+\"-\"+ini[1]+\"-\"+day;\\n  \\n  for(var i=1;i<=days;i++){\\n  \\tcreateRow(dateIni);\\n    dateIni=addDaysToDate(dateIni);\\n  }\\n  \\n  showPanel();\\n  \\n  // Set the new date Row date\\n  var endDay = document.getElementById(\"form[endDate]\").value;\\n  var newDate = addDaysToDate(endDay);\\n  $( \"#dateRow\" ).datepicker({\\n    dateFormat: 'yy-mm-dd',\\n    minDate: newDate\\n  });\\n  \\n  // Disable dates\\n  disableDates();\\n  // Load expense data\\n  //expenseDataRead();\\n}\\n\\n\\n// Add dates to a given date\\nfunction addDaysToDate(endD){\\n  \\n  if(endD!=''){\\n    var iniDate = endD;\\n    var ini = iniDate.split(\"-\");\\n\\n    var day = ini[2];\\n    var month = ini[1];\\n    month= month - parseInt(1);\\n    var year = ini[0];\\n    var d = new Date();\\n    d.setFullYear(year, month, day);\\n    d.setDate(d.getDate() + 1 );\\n    \\n    var year2 = d.getFullYear();\\n    var day2 = d.getDate();\\n    var month2 = d.getMonth();\\n    month2=parseInt(month2)+1;\\n    if(day2<10){day2 = '0'+day2;}\\n    var newDate = year2+'-'+month2+'-'+day2;\\n   \\n    return newDate;\\n    \\n  }\\n}\\n\\n// Create row\\nfunction createRow(dateIni) {\\n  \\n  var row = document.createElement('tr'); // create row node\\n  \\n  var dates = document.createElement('td');\\n  dates.setAttribute(\"id\", dateIni);\\n  \\n  var col = document.createElement('td'); // create column node\\n  var col2 = document.createElement('td'); // create second column node\\n  var col3 = document.createElement('td');\\n  var col4 = document.createElement('td');\\n  var col5 = document.createElement('td');\\n  var col6 = document.createElement('td');\\n  var col7 = document.createElement('td');\\n  var col8 = document.createElement('td');\\n  var col9 = document.createElement('td');\\n  var col10 = document.createElement('td');\\n  var col11 = document.createElement('td');\\n  var col12 = document.createElement('td');\\n  \\n  var inp = document.createElement('INPUT'); // create column node\\n  var inp2 = document.createElement('INPUT'); // create second column node\\n  var inp3 = document.createElement('INPUT');\\n  var inp4 = document.createElement('INPUT');\\n  var inp5 = document.createElement('INPUT');\\n  var inp6 = document.createElement('INPUT');\\n  var inp7 = document.createElement('INPUT');\\n  var inp8 = document.createElement('INPUT');\\n  var inp9 = document.createElement('INPUT');\\n  var inp10 = document.createElement('INPUT');\\n  var inp11 = document.createElement('INPUT');\\n  var inp12 = document.createElement('INPUT');\\n  \\n  inp.setAttribute(\"type\", \"text\"); inp.setAttribute(\"id\", dateIni+\"-breakfast\"); inp.setAttribute(\"onchange\", \"calculateExp(this);\");inp.setAttribute(\"class\", \"numeric-only\");\\n  inp2.setAttribute(\"type\", \"text\"); inp2.setAttribute(\"id\", dateIni+\"-lunch\"); inp2.setAttribute(\"onchange\", \"calculateExp(this);\");inp2.setAttribute(\"class\", \"numeric-only\");\\n  inp3.setAttribute(\"type\", \"text\"); inp3.setAttribute(\"id\", dateIni+\"-dinner\"); inp3.setAttribute(\"onchange\", \"calculateExp(this);\");inp3.setAttribute(\"class\", \"numeric-only\");\\n  inp4.setAttribute(\"type\", \"text\"); inp4.setAttribute(\"id\", dateIni+\"-totLodg\"); inp4.setAttribute(\"onchange\", \"calculateExp(this);\");inp4.setAttribute(\"class\", \"numeric-only\");\\n  inp5.setAttribute(\"type\", \"text\"); inp5.setAttribute(\"id\", dateIni+\"-totTravel\"); inp5.setAttribute(\"onchange\", \"calculateExp(this);\");inp5.setAttribute(\"class\", \"numeric-only\");\\n  inp6.setAttribute(\"type\", \"text\"); inp6.setAttribute(\"id\", dateIni+\"-localTrans\"); inp6.setAttribute(\"onchange\", \"calculateExp(this);\");inp6.setAttribute(\"class\", \"numeric-only\");\\n  inp7.setAttribute(\"type\", \"text\"); inp7.setAttribute(\"id\", dateIni+\"-phone\"); inp7.setAttribute(\"onchange\", \"calculateExp(this);\");inp7.setAttribute(\"class\", \"numeric-only\");\\n  inp8.setAttribute(\"type\", \"text\"); inp8.setAttribute(\"id\", dateIni+\"-autoMil\"); inp8.setAttribute(\"onchange\", \"calculateExp(this);\");inp8.setAttribute(\"class\", \"numeric-only\");\\n  inp9.setAttribute(\"type\", \"text\"); inp9.setAttribute(\"id\", dateIni+\"-rentCar\"); inp9.setAttribute(\"onchange\", \"calculateExp(this);\");inp9.setAttribute(\"class\", \"numeric-only\");\\n  inp10.setAttribute(\"type\", \"text\"); inp10.setAttribute(\"id\", dateIni+\"-fuel\"); inp10.setAttribute(\"onchange\", \"calculateExp(this);\");inp10.setAttribute(\"class\", \"numeric-only\");\\n  inp11.setAttribute(\"type\", \"text\"); inp11.setAttribute(\"id\", dateIni+\"-laundry\"); inp11.setAttribute(\"onchange\", \"calculateExp(this);\");inp11.setAttribute(\"class\", \"numeric-only\");\\n  inp12.setAttribute(\"type\", \"text\"); inp12.setAttribute(\"id\", dateIni+\"-other\"); inp12.setAttribute(\"onchange\", \"calculateExp(this);\");inp12.setAttribute(\"class\", \"numeric-only\");\\n  \\n  col.appendChild(inp); // put data in first column\\n  col2.appendChild(inp2);\\n  col3.appendChild(inp3);\\n  col4.appendChild(inp4);\\n  col5.appendChild(inp5);\\n  col6.appendChild(inp6);\\n  col7.appendChild(inp7);\\n  col8.appendChild(inp8);\\n  col9.appendChild(inp9);\\n  col10.appendChild(inp10);\\n  col11.appendChild(inp11);\\n  col12.appendChild(inp12);\\n  \\n  row.appendChild(dates);\\n  row.appendChild(col); // append first column to row\\n  row.appendChild(col2); // append second column to row\\n  row.appendChild(col3);\\n  row.appendChild(col4);\\n  row.appendChild(col5);\\n  row.appendChild(col6);\\n  row.appendChild(col7);\\n  row.appendChild(col8);\\n  row.appendChild(col9);\\n  row.appendChild(col10);\\n  row.appendChild(col11);\\n  row.appendChild(col12);\\n  \\n  dates.innerHTML = dateIni; // put data in second column\\n  var table = document.getElementById(\"tableToModify\"); // find table to append to\\n  table.appendChild(row); // append row to table\\n}\\n\\n// Upload Documents Show\\nfunction showUploadDoc(){\\n\\t$(\"#uploadDoc\").fadeIn(3000);\\n    //$(\"#addRowTable\").slideDown(3000);\\n    $('#uploadDoc').css(\"display\",\"block\");\\n}\\n\\n// Upload Documents Hide\\n//hideUploadDoc();\\nfunction hideUploadDoc(){\\n  $(\"#uploadDoc\").hide();\\n  $('#uploadDoc').css(\"display\",\"none\");\\n}\\n\\n// New Row on the table\\nfunction newRowTable(){\\n  \\n  $(\"#addRowTable\").fadeIn(3000);\\n  //$(\"#addRowTable\").slideDown(3000);\\n  $('#addRowTable').css(\"display\",\"block\");\\n\\n}\\n\\n// Close new Row on the table\\nfunction closeRowTable(){\\n  $(\"#addRowTable\").hide();\\n  $('#addRowTable').css(\"display\",\"none\");\\n}\\n\\n// calculate subtotal Expenses\\nfunction calculateExp(value){\\n  var idField = $(value).attr('id');\\n  var idFields = idField.split(\"-\");\\n  var fieldName = idFields[3];\\n  //alert(fieldName);\\n  var numRows = document.getElementById(\"tableToModify\").getElementsByTagName(\"tr\").length;\\n  var tdAmount;\\n  var tdValues; var totValues=0;\\n  var tdID; var tdIdFields; var tdFieldName; \\n  var tdID2;var tdInVal=0;\\n  for(var x=1;x<numRows;x++){\\n    tdAmount = $('#tableToModify').find('tr:eq('+x+')');\\n    \\n    for(var i=1;i<13;i++){\\n      tdID = $(tdAmount).find('td:eq('+i+')').find('input').attr('id');\\n      tdID2 = tdID;\\n      tdIdFields = tdID.split(\"-\");\\n  \\t  tdFieldName = tdIdFields[3];\\n      if(tdFieldName==fieldName){\\n      \\ttdInVal = $('#'+tdID2).val();\\n        if(tdInVal==''){tdInVal=0;}\\n        totValues = parseFloat(totValues) + parseFloat(tdInVal);\\n      }\\n            \\n    }\\n    \\n  }\\n  \\n  var totalsField = formatNumber(totValues);\\n  $('#tot-'+fieldName).html(totalsField);\\n    \\n  calculateTotExp();\\n}\\n\\n// calculate subtotal Expenses from Load Data\\nfunction calculateExpLoadData(value){\\n  //var idField = $(value).attr('id');\\n  //var idFields = idField.split(\"-\");\\n  //var fieldName = idFields[3];\\n  var fieldName = value;\\n  //alert(fieldName);\\n  var numRows = document.getElementById(\"tableToModify\").getElementsByTagName(\"tr\").length;\\n  var tdAmount;\\n  var tdValues; var totValues=0;\\n  var tdID; var tdIdFields; var tdFieldName; \\n  var tdID2;var tdInVal=0;\\n  for(var x=1;x<numRows;x++){\\n    tdAmount = $('#tableToModify').find('tr:eq('+x+')');\\n    \\n    for(var i=1;i<13;i++){\\n      tdID = $(tdAmount).find('td:eq('+i+')').find('input').attr('id');\\n      tdID2 = tdID;\\n      tdIdFields = tdID.split(\"-\");\\n  \\t  tdFieldName = tdIdFields[3];\\n      if(tdFieldName==fieldName){\\n      \\ttdInVal = $('#'+tdID2).val();\\n        if(tdInVal==''){tdInVal=0;}\\n        totValues = parseFloat(totValues) + parseFloat(tdInVal);\\n      }\\n            \\n    }\\n    \\n  }\\n  \\n  var totalsField = formatNumber(totValues);\\n  $('#tot-'+fieldName).html(totalsField);\\n    \\n  calculateTotExp();\\n}\\n\\n// calculate total expenses\\nfunction calculateTotExp(){\\n  \\n  var numRows = document.getElementById(\"tableToModify\").getElementsByTagName(\"tr\").length;\\n  var tdAmount;\\n  var tdValues; var totValues=0;\\n  for(var x=1;x<numRows;x++){\\n    tdAmount = $('#tableToModify').find('tr:eq('+x+')');\\n    for(var i=1;i<13;i++){\\n      tdValues = $(tdAmount).find('td:eq('+i+')').find('input').val();\\n      if(tdValues==''){tdValues=0;}\\n      totValues = parseFloat(totValues) + parseFloat(tdValues); \\n    }\\n  }\\n  \\n  totValues = formatNumber(totValues);\\n  $('#totalExp').html(totValues);\\n  \\n  //saveDataExpense();\\n}\\n\\n// Function add new row to the grid\\nfunction addNewRowTable(){\\n  var d = $(\"#dateRow\").val();\\n  if(d!=''){\\n  \\tcloseRowTable();\\n    createRow(d);\\n  }else{\\n  \\talert('Please add a date.');\\n  }\\n}\\n\\n// hidePanel\\nfunction hidePanel(){\\n//$('#panelEnpense').hide();\\n  $(\"#panelEnpense\").fadeOut();\\n}\\n\\n// showPanel\\nfunction showPanel(){\\n  $(\"#panelEnpense\").fadeIn(3000);\\n}\\n\\n//  Save data in json array\\nfunction saveDataExpense(){\\n  var numRows = document.getElementById(\"tableToModify\").getElementsByTagName(\"tr\").length;\\n  var tdAmount;\\n  var tdValues; var totValues=0;\\n  var tdID; var tdIdFields; var tdFieldName; \\n  var tdID2; var tdInVal=0;\\n  var expensesData = {};\\n \\n  for(var x=1;x<numRows;x++){\\n    tdAmount = $('#tableToModify').find('tr:eq('+x+')');\\n   \\n    for(var i=1;i<13;i++){\\n      var tdID;\\n      tdID = $(tdAmount).find('td:eq('+i+')').find('input').attr('id');\\n      expensesData[tdID]= $('#'+tdID).val();\\n      \\n    } \\n  }\\t\\n  \\n  var s = JSON.stringify(expensesData);\\n  //var c = JSON.parse(s);\\n  $('#expenseData').setValue(s);\\n // console.log(s);\\n \\n}\\n\\n// Function to load data\\nfunction expenseDataRead(){\\n  var array=$('#expenseData').getValue();\\n  \\n  if(array!=''){ \\n    // Load the table field\\n    var JSONObject = JSON.parse(array);\\n    var numRows = document.getElementById(\"tableToModify\").getElementsByTagName(\"tr\").length;\\n    var tdAmount;\\n    var tdValues; var totValues=0;\\n    var tdID;var tdID2;\\n    for(var x=1;x<numRows;x++){\\n      tdAmount = $('#tableToModify').find('tr:eq('+x+')');\\n      \\n      for(var i=1;i<13;i++){  \\n        tdID = $(tdAmount).find('td:eq('+i+')').find('input').attr('id');\\n        $.each(JSONObject, function(key, value) {\\n          if(key==tdID){\\n             $(tdAmount).find('td:eq('+i+')').find('input').val(value);\\n          \\t\\n             // tr id, Getting Id from each raw to calculate the total of raw\\n              tdID2 = $(tdAmount).find('td:eq('+i+')').find('input').attr('id');\\n              var idFields = tdID2.split(\"-\");\\n              var fieldName = idFields[3];\\n              calculateExpLoadData(fieldName);\\n          \\n          }\\n          \\n        });\\n      }\\n     \\n    }\\n    \\n    // calculate totals\\n    calculateTotExp();\\n  \\n  }\\n  \\n}\\n\\n\\n// Save data when submitting \\ndocument.forms[0].onsubmit = function() {\\n\\t//alert('hola');\\n  saveDataExpense();\\n  //return true;\\n  return true;\\n}\\n// format number\\nfunction formatNumber(number){\\n    number = number.toFixed(2) + '';\\n    x = number.split('.');\\n    x1 = x[0];\\n    x2 = x.length > 1 ? '.' + x[1] : '';\\n    var rgx = /(\\\\d+)(\\\\d{3})/;\\n    while (rgx.test(x1)) {\\n        x1 = x1.replace(rgx, '$1' + ',' + '$2');\\n    }\\n    return x1 + x2;\\n}\\n\\n\"},\"language\":\"en\",\"externalLibs\":\"../../../../plugin/bundleStyle/css/style.css,\\n../../../../plugin/bundleStyle/js/jquery-ui.css,\\n../../../../plugin/bundleStyle/js/jquery-ui.js,\\n../../../../plugin/bundleStyle/js/jquery.layout-latest.js,\\n../../../../plugin/bundleStyle/js/jquery-ui.multidatespicker.js,\\n../../../../plugin/bundleStyle/css/jquery-ui.css\",\"printable\":false,\"items\":[[{\"type\":\"title\",\"id\":\"title0000000001\",\"label\":\"Expense Report\",\"colSpan\":12}],[{\"type\":\"subtitle\",\"id\":\"subtitle0000000001\",\"label\":\"Reporter Info\",\"colSpan\":12}],[{\"type\":\"text\",\"variable\":\"companyName\",\"var_uid\":\"85536781056156f69c33948021591829\",\"dataType\":\"string\",\"id\":\"companyName\",\"name\":\"companyName\",\"label\":\"\",\"defaultValue\":\"\",\"placeholder\":\"Company Name\",\"hint\":\"\",\"required\":true,\"textTransform\":\"none\",\"validate\":\"\",\"validateMessage\":\"\",\"maxLength\":1000,\"formula\":\"\",\"mode\":\"disabled\",\"operation\":\"\",\"dbConnection\":\"workflow\",\"dbConnectionLabel\":\"PM Database\",\"sql\":\"\",\"var_name\":\"companyName\",\"colSpan\":6},{\"type\":\"text\",\"variable\":\"employeeDepartment\",\"var_uid\":\"26756922756156ff43c9a63072241573\",\"dataType\":\"string\",\"id\":\"employeeDepartment\",\"name\":\"employeeDepartment\",\"label\":\"\",\"defaultValue\":\"\",\"placeholder\":\"Department\",\"hint\":\"\",\"required\":false,\"textTransform\":\"none\",\"validate\":\"\",\"validateMessage\":\"\",\"maxLength\":1000,\"formula\":\"\",\"mode\":\"disabled\",\"operation\":\"\",\"dbConnection\":\"workflow\",\"dbConnectionLabel\":\"PM Database\",\"sql\":\"\",\"var_name\":\"employeeDepartment\",\"colSpan\":6}],[{\"type\":\"text\",\"variable\":\"employeeName\",\"var_uid\":\"89530360756156fd9afc0a5027165545\",\"dataType\":\"string\",\"id\":\"employeeName\",\"name\":\"employeeName\",\"label\":\"\",\"defaultValue\":\"\",\"placeholder\":\"Name\",\"hint\":\"\",\"required\":true,\"textTransform\":\"none\",\"validate\":\"\",\"validateMessage\":\"\",\"maxLength\":1000,\"formula\":\"\",\"mode\":\"disabled\",\"operation\":\"\",\"dbConnection\":\"workflow\",\"dbConnectionLabel\":\"PM Database\",\"sql\":\"\",\"var_name\":\"employeeName\",\"colSpan\":6},{\"type\":\"text\",\"variable\":\"employeePhone\",\"var_uid\":\"11894272656156fe4b920c7067742666\",\"dataType\":\"string\",\"id\":\"employeePhone\",\"name\":\"employeePhone\",\"label\":\"\",\"defaultValue\":\"\",\"placeholder\":\"Phone\",\"hint\":\"\",\"required\":false,\"textTransform\":\"none\",\"validate\":\"\",\"validateMessage\":\"\",\"maxLength\":1000,\"formula\":\"\",\"mode\":\"parent\",\"operation\":\"\",\"dbConnection\":\"workflow\",\"dbConnectionLabel\":\"PM Database\",\"sql\":\"\",\"var_name\":\"employeePhone\",\"colSpan\":6}],[{\"type\":\"text\",\"variable\":\"employeeEmail\",\"var_uid\":\"1084519335615708ce6c9b8073814180\",\"dataType\":\"string\",\"id\":\"employeeEmail\",\"name\":\"employeeEmail\",\"label\":\"\",\"defaultValue\":\"\",\"placeholder\":\"Email\",\"hint\":\"\",\"required\":true,\"textTransform\":\"none\",\"validate\":\"\",\"validateMessage\":\"\",\"maxLength\":1000,\"formula\":\"\",\"mode\":\"parent\",\"operation\":\"\",\"dbConnection\":\"workflow\",\"dbConnectionLabel\":\"PM Database\",\"sql\":\"\",\"var_name\":\"employeeEmail\",\"colSpan\":12}],[{\"type\":\"subtitle\",\"id\":\"subtitle0000000002\",\"label\":\"Expense Details\",\"colSpan\":12}],[{\"type\":\"datetime\",\"variable\":\"startDate\",\"var_uid\":\"5344962875615811644a687077838002\",\"dataType\":\"datetime\",\"id\":\"startDate\",\"name\":\"startDate\",\"label\":\"Start Date\",\"placeholder\":\"\",\"hint\":\"\",\"required\":true,\"mode\":\"parent\",\"format\":\"YYYY-MM-DD\",\"dayViewHeaderFormat\":\"MMMM YYYY\",\"extraFormats\":false,\"stepping\":1,\"minDate\":\"2015-10-07\",\"maxDate\":\"\",\"useCurrent\":\"true\",\"collapse\":true,\"locale\":\"\",\"defaultDate\":\"\",\"disabledDates\":false,\"enabledDates\":false,\"icons\":{\"time\":\"glyphicon glyphicon-time\",\"date\":\"glyphicon glyphicon-calendar\",\"up\":\"glyphicon glyphicon-chevron-up\",\"down\":\"glyphicon glyphicon-chevron-down\",\"previous\":\"glyphicon glyphicon-chevron-left\",\"next\":\"glyphicon glyphicon-chevron-right\",\"today\":\"glyphicon glyphicon-screenshot\",\"clear\":\"glyphicon glyphicon-trash\"},\"useStrict\":false,\"sideBySide\":false,\"daysOfWeekDisabled\":[],\"calendarWeeks\":false,\"viewMode\":\"days\",\"toolbarPlacement\":\"default\",\"showTodayButton\":false,\"showClear\":\"false\",\"widgetPositioning\":{\"horizontal\":\"auto\",\"vertical\":\"auto\"},\"widgetParent\":null,\"keepOpen\":false,\"var_name\":\"startDate\",\"colSpan\":6},{\"type\":\"datetime\",\"variable\":\"endDate\",\"var_uid\":\"9840549215615812675cc94087836112\",\"dataType\":\"datetime\",\"id\":\"endDate\",\"name\":\"endDate\",\"label\":\"End Date\",\"placeholder\":\"\",\"hint\":\"\",\"required\":true,\"mode\":\"parent\",\"format\":\"YYYY-MM-DD\",\"dayViewHeaderFormat\":\"MMMM YYYY\",\"extraFormats\":false,\"stepping\":1,\"minDate\":\"2015-10-07\",\"maxDate\":\"\",\"useCurrent\":\"true\",\"collapse\":true,\"locale\":\"\",\"defaultDate\":\"\",\"disabledDates\":false,\"enabledDates\":false,\"icons\":{\"time\":\"glyphicon glyphicon-time\",\"date\":\"glyphicon glyphicon-calendar\",\"up\":\"glyphicon glyphicon-chevron-up\",\"down\":\"glyphicon glyphicon-chevron-down\",\"previous\":\"glyphicon glyphicon-chevron-left\",\"next\":\"glyphicon glyphicon-chevron-right\",\"today\":\"glyphicon glyphicon-screenshot\",\"clear\":\"glyphicon glyphicon-trash\"},\"useStrict\":false,\"sideBySide\":false,\"daysOfWeekDisabled\":[],\"calendarWeeks\":false,\"viewMode\":\"days\",\"toolbarPlacement\":\"default\",\"showTodayButton\":false,\"showClear\":\"false\",\"widgetPositioning\":{\"horizontal\":\"auto\",\"vertical\":\"auto\"},\"widgetParent\":null,\"keepOpen\":false,\"var_name\":\"endDate\",\"colSpan\":6}],[{\"type\":\"panel\",\"id\":\"panelEnpense\",\"content\":\"\\n<div id=\"divContainer\">\\n  <table id=\"tableAdd\">\\n    <tr>\\n      <th><a href=\"javascript:void(0)\" data-modal-id=\"addRowTable\" style=\"padding-left:5px;\" onclick=\"newRowTable();\"><img src=\"/plugin/bundleStyle/images/addRow.png\" title=\"Add New Row\" /></a></th>\\n      <th colspan=\"11\"></th>\\n      <!--<th><a href=\"javascript:void(0)\" style=\"padding-right:5px;float:right;\" onclick=\"uploadDocs();\"><img src=\"/plugin/bundleStyle/images/uploadDoc.png\" title=\"Upload Document\" /></a></th>-->\\n    </tr>\\n  </table>\\n  \\n  <div id=\"addRowTable\">\\n    <a href=\"javascript:void(0)\" style=\"float:right;\" onclick=\"closeRowTable();\"><img src=\"/plugin/bundleStyle/images/close.png\" title=\"Close\" /></a>\\n    <br>\\n    <p>Please add a date.</p>\\n     <span>Date:</span><input type=\"text\" id=\"dateRow\" class=\"pmdynaform-control-text form-control\"/>\\n    <br>\\n    <a href=\"javascript:void(0)\" style=\"float:right;background: #44b6c8;border-radius: 2px;color: #ffffff;margin-top: 5px;padding: 2px;text-decoration: none; \" onclick=\"addNewRowTable();\">Add <img src=\"/plugin/bundleStyle/images/save2.png\" title=\"Add\" /></a>\\n    \\n  </div>\\n  <!--\\n  <div id=\"uploadDoc\">\\n    <a href=\"javascript:void(0)\" style=\"float:right;\" onclick=\"closeRowTable();\"><img src=\"/plugin/bundleStyle/images/close.png\" title=\"Close\" /></a>\\n    <br>\\n    \\n    <a href=\"javascript:void(0)\" style=\"float:right;background: #44b6c8;border-radius: 2px;color: #ffffff;margin-top: 5px;padding: 2px;text-decoration: none; \" onclick=\"addNewRowTable();\">Add <img src=\"/plugin/bundleStyle/images/save2.png\" title=\"Add\" /></a>\\n  </div>-->\\n  <table id=\"tableToModify\">\\n    <tr>\\n      <th>Date</th>\\n      <th>Breakfast including tip</th>\\n      <th>Lunch including tip</th>\\n      <th>Dinner including tip</th>\\n      <th>Total Lodging</th>\\n      <th>Total Travel Fare</th>\\n      <th>Local Trans., Parking, Tolls</th>\\n      <th>Telephone</th>\\n      <th>Auto Mileage</th>\\n      <th>Rental cars</th>\\n      <th>Fuel Rental Car / Company Car</th>\\n      <th>Laundry and Valet</th>\\n      <th>Other (Attach support file)</th>\\n    </tr>\\n  </table>\\n  <table id=\"tableToModify3\">\\n    <tr>\\n      <th>SUBTOTAL $us</th>\\n      <th id=\"tot-breakfast\">0.00</th>\\n      <th id=\"tot-lunch\">0.00</th>\\n      <th id=\"tot-dinner\">0.00</th>\\n      <th id=\"tot-totLodg\">0.00</th>\\n      <th id=\"tot-totTravel\">0.00</th>\\n      <th id=\"tot-localTrans\">0.00</th>\\n      <th id=\"tot-phone\">0.00</th>\\n      <th id=\"tot-autoMil\">0.00</th>\\n      <th id=\"tot-rentCar\">0.00</th>\\n      <th id=\"tot-fuel\">0.00</th>\\n      <th id=\"tot-laundry\">0.00</th>\\n      <th id=\"tot-other\">0.00</th>\\n    </tr>\\n    <tr>\\n      <th colspan=\"11\" style=\"background-color:#eaeaea;color:#657F8E;\">TOTAL $us</th>\\n      <th colspan=\"2\" id=\"totalExp\" style=\"background-color:#eaeaea;color:#657F8E;\">0.00</th>\\n    </tr>\\n  </table>\\n</div>\",\"border\":\"1px\",\"colSpan\":12}],[{\"type\":\"panel\",\"id\":\"panelExpense2\",\"content\":\"<style>\\n  .panel-body{\\n  \\t/*margin:0 auto !important;*/\\n    padding:0 !important;\\n    border:none !important;\\n    \\n    \\n  }\\n  \\n  #panelEnpense{\\n  \\t/*margin:0 auto !important;*/\\n    padding:0 !important;\\n    border:none !important;\\n  }\\n  \\n  #divContainer input[type=\"text\"] {\\n    width:100%;\\n    border:1px solid #eaeaea;\\n    font-weight:100;\\n    text-align:right;\\n  }\\n  \\n   #divContainer input[type=\"text\"]:hover {\\n    border-bottom:2px solid #44B6BA !important;\\n  }\\n  \\n  table#tableToModify2 th {\\n  \\tbackground-color:#44B8BF;\\n    color:#ffffff;\\n    text-align:center;\\n    font-size:11px !important;\\n  }\\n  \\n  table#tableToModify th {\\n  \\tbackground-color:#44B8BF;\\n    color:#ffffff;\\n    text-align:center;\\n    width:7.6% !important;\\n    font-size:11px !important;\\n    font-weight:100;\\n  }\\n  table#tableToModify3 th {\\n  \\tbackground-color:#859BA8;\\n    color:#ffffff;\\n    text-align:center;\\n    width:7.6% !important;\\n    font-size:11px !important;\\n    font-weight:100;\\n  }\\n  \\n  table#tableAdd th{\\n  \\tbackground-color:#eaeaea;\\n    color:#657F8E;\\n    /*text-align:center;*/\\n    width:7.6% !important;\\n    font-size:13px !important;\\n    font-weight:100;\\n  }\\n  \\n  table{\\n  \\twidth:100% !important;\\n  }\\n  \\n  .addRow(){\\n  \\tbackground-image:url('plugin/bundleStyle/images/addRow.png');\\n    background-repeat:no-repeat;\\n  }\\n  \\n  #addRowTable{\\n    width:100%;\\n    height:87%;\\n  \\tdisplay:none;\\n    position:absolute;\\n    border:1px solid #eaeaea;\\n    background-color:#FFFFFF;\\n    padding: 25px;\\n  }\\n  \\n  #uploadDoc{\\n    width:100%;\\n    height:87%;\\n  \\tdisplay:none;\\n    position:absolute;\\n    border:1px solid #eaeaea;\\n    background-color:#FFFFFF;\\n    padding: 25px;\\n  }\\n  \\n  #dateRow{\\n  \\twidth:50%;\\n  }\\n  \\n  #ui-datepicker-div{\\n  \\tz-index:3 !important;\\n  }\\n \\n</style>\\n\",\"border\":\"1px\",\"colSpan\":12}],[{\"type\":\"submit\",\"id\":\"submit0000000001\",\"name\":\"submit0000000001\",\"label\":\"Submit\",\"colSpan\":12}],[{\"type\":\"hidden\",\"variable\":\"expenseData\",\"var_uid\":\"37467298356409cc66377f9005014344\",\"dataType\":\"string\",\"id\":\"expenseData\",\"name\":\"expenseData\",\"defaultValue\":\"\",\"dbConnection\":\"workflow\",\"dbConnectionLabel\":\"PM Database\",\"sql\":\"\",\"var_name\":\"expenseData\",\"colSpan\":12}],[{\"type\":\"subtitle\",\"id\":\"subtitle0000000003\",\"label\":\"Manager Comments, please read and make sure all information is fine.\",\"colSpan\":12}],[{\"type\":\"textarea\",\"variable\":\"commentsManager\",\"var_uid\":\"606273049564e2650f24266027240037\",\"dataType\":\"string\",\"id\":\"commentsManager\",\"name\":\"commentsManager\",\"label\":\"\",\"defaultValue\":\"\",\"placeholder\":\"\",\"hint\":\"\",\"required\":false,\"validate\":\"\",\"validateMessage\":\"\",\"mode\":\"disabled\",\"dbConnection\":\"workflow\",\"dbConnectionLabel\":\"PM Database\",\"sql\":\"\",\"rows\":\"5\",\"var_name\":\"commentsManager\",\"colSpan\":12}]],\"variables\":[{\"var_uid\":\"85536781056156f69c33948021591829\",\"prj_uid\":\"600222708561569cbcdd755005416086\",\"var_name\":\"companyName\",\"var_field_type\":\"string\",\"var_field_size\":10,\"var_label\":\"string\",\"var_dbconnection\":\"workflow\",\"var_dbconnection_label\":\"PM Database\",\"var_sql\":\"\",\"var_null\":0,\"var_default\":\"\",\"var_accepted_values\":\"[]\"},{\"var_uid\":\"26756922756156ff43c9a63072241573\",\"prj_uid\":\"600222708561569cbcdd755005416086\",\"var_name\":\"employeeDepartment\",\"var_field_type\":\"string\",\"var_field_size\":10,\"var_label\":\"string\",\"var_dbconnection\":\"workflow\",\"var_dbconnection_label\":\"PM Database\",\"var_sql\":\"\",\"var_null\":0,\"var_default\":\"\",\"var_accepted_values\":\"[]\"},{\"var_uid\":\"89530360756156fd9afc0a5027165545\",\"prj_uid\":\"600222708561569cbcdd755005416086\",\"var_name\":\"employeeName\",\"var_field_type\":\"string\",\"var_field_size\":10,\"var_label\":\"string\",\"var_dbconnection\":\"workflow\",\"var_dbconnection_label\":\"PM Database\",\"var_sql\":\"\",\"var_null\":0,\"var_default\":\"\",\"var_accepted_values\":\"[]\"},{\"var_uid\":\"11894272656156fe4b920c7067742666\",\"prj_uid\":\"600222708561569cbcdd755005416086\",\"var_name\":\"employeePhone\",\"var_field_type\":\"string\",\"var_field_size\":10,\"var_label\":\"string\",\"var_dbconnection\":\"workflow\",\"var_dbconnection_label\":\"PM Database\",\"var_sql\":\"\",\"var_null\":0,\"var_default\":\"\",\"var_accepted_values\":\"[]\"},{\"var_uid\":\"1084519335615708ce6c9b8073814180\",\"prj_uid\":\"600222708561569cbcdd755005416086\",\"var_name\":\"employeeEmail\",\"var_field_type\":\"string\",\"var_field_size\":10,\"var_label\":\"string\",\"var_dbconnection\":\"workflow\",\"var_dbconnection_label\":\"PM Database\",\"var_sql\":\"\",\"var_null\":0,\"var_default\":\"\",\"var_accepted_values\":\"[]\"},{\"var_uid\":\"5344962875615811644a687077838002\",\"prj_uid\":\"600222708561569cbcdd755005416086\",\"var_name\":\"startDate\",\"var_field_type\":\"datetime\",\"var_field_size\":10,\"var_label\":\"string\",\"var_dbconnection\":\"workflow\",\"var_dbconnection_label\":\"PM Database\",\"var_sql\":\"\",\"var_null\":0,\"var_default\":\"\",\"var_accepted_values\":\"[]\"},{\"var_uid\":\"9840549215615812675cc94087836112\",\"prj_uid\":\"600222708561569cbcdd755005416086\",\"var_name\":\"endDate\",\"var_field_type\":\"datetime\",\"var_field_size\":10,\"var_label\":\"string\",\"var_dbconnection\":\"workflow\",\"var_dbconnection_label\":\"PM Database\",\"var_sql\":\"\",\"var_null\":0,\"var_default\":\"\",\"var_accepted_values\":\"[]\"},{\"var_uid\":\"37467298356409cc66377f9005014344\",\"prj_uid\":\"600222708561569cbcdd755005416086\",\"var_name\":\"expenseData\",\"var_field_type\":\"string\",\"var_field_size\":10,\"var_label\":\"string\",\"var_dbconnection\":\"workflow\",\"var_dbconnection_label\":\"PM Database\",\"var_sql\":\"\",\"var_null\":0,\"var_default\":\"\",\"var_accepted_values\":\"[]\"},{\"var_uid\":\"606273049564e2650f24266027240037\",\"prj_uid\":\"600222708561569cbcdd755005416086\",\"var_name\":\"commentsManager\",\"var_field_type\":\"string\",\"var_field_size\":10,\"var_label\":\"string\",\"var_dbconnection\":\"workflow\",\"var_dbconnection_label\":\"PM Database\",\"var_sql\":\"\",\"var_null\":0,\"var_default\":\"\",\"var_accepted_values\":\"[]\"}]}]}",
  "dyn_version": 2,
  "dyn_update_date": "2016-05-19 08:26:35"
}

A 1xBet clone script is a customizable software so[…]

A Bustabit clone script is a pre-made software sol[…]

Are you looking for ways to pay someone to write m[…]

BC.Game Clone

BC.game clone is a replica of the original BC.game[…]