...
PDF Field Name | var | Leap var (use var column instead) | Leap Field ID | Leap Field Title | |
1 | Month Ending | monthEnding | monthEndCalYear | F_MonthEndCalYear | Combined Month Ending and Calendar Year |
2 | Contractor Name | companyName | contractorName | F_ContractorName | General Contractor Name |
3 | Project Name | projectName | projectName | F_ProjectName | Project Name |
4 | Awarding Agency Name | awardingAgencyName | contractAwardAgency | F_ContractAwardAgency | F_ContractAwardAgency |
5 | Project Number | projectNumber | projectNumber | F_ProjectNumber | Project Number |
6 | Is Contractor an S/MBE? What is DAS Class? | smbe | vendorCertClass | F_VendorCertClass | Certification Class |
7 | Actual Project Mobilization Date | mobilizationDate | mobilizationDate | F_MobilizationDate | Actual Project Mobilization Date |
8 | Project Value | projectValue | projectValue | F_ProjectValue | Project Value |
9 | Percent Completed to Date | percentComplete | percentCompleteToDate | F_PercentCompleteToDate | Percent Completed To Date |
10 | Is this a FINAL Report? | finalReport | isFinalReport | F_IsFinalReport | Is This a Final Report? |
11 | Estimated Completion Date | completionDate | estCompletionDate | F_EstCompletionDate | Estimated Completion Date |
12 | Report Entry Date | reportEntryDate | reportEntryDate | F_ReportEntryDate | Report Entry Date |
13 | Printed Name and Printed Title of Person Signing | printedAuthorizedSignature | signerName | F_SignerName | Signer Name & Title |
14 | Month Ending | Same as above | monthEndCalYearBottom | F_MonthEndCalYear | Combined Month Ending and Calendar Year |
15 | Contractor Name | Same as above | contractorNameBottom | F_ContractorName | General Contractor Name |
16 | Project Name | Same as above | projectNameBottom | F_ProjectName | Project Name |
17 | Project Number | Same as above | projectNumberBottom | F_ProjectNumber | Project Number |
18 | S/MBE Contractor Textbox | TBD | smbeTableAsText | F_SmbeTableAsText | SMBE Table As Text |
19 | S/MBE Contractor Name | contractorName | F_SubtierCompany | Sub-Tier Company | |
20 | DAS Class | dasClass | F_SubtierDasClass | DAS Class | |
21 | Total Contract Amount | totalContractAmount | F_TotalContractAmount | Total Contract Amount | |
22 | Total Payment this Month | totalPaymentThisMonth | F_TotalMonthlyPayment | Total Payment this Month | |
23 | Total Payment to Date | totalPaymentToDate | F_TotalPaymentToDate | Total Payment to Date |
app.getSharedData().FillPdfUrl = '';-Added syntax for call to new service that fills PDF
-Modified PDF formatting for border and alignment of SBME box along with other misc changes
-Added Date, Number/Currency, and Percent formatting for PDF printing.
-Commented out the alert for the beanJSON(for the new dialogue box window)
-Cleaned up syntax overall syntax
-Updated name of PDF downloaded to format: "PaymentStatusReport" + "_" + obj.companyName + "_" + obj.monthEnding +".pdf"
-Added a dialogue box for confirming the download
-Added instructions to the page and confirm dialogue box
----------------------------------------------------------------------------
//Confirm dialogue box after clicking button to create and return PDF
app.getSharedData().FillPdf downloadPdfConfirm = function() {
var ajaxResult = '';
var beanJSON;
var obj = {};
obj.monthEnding = '';
obj.companyName = '';
obj.projectName = '';
obj.awardingAgencyName = '';
obj.projectNumber = '';
obj.smbe = '';
obj.mobilizationDate = '';
obj.projectValue = '';
obj.percentComplete = '';
obj.finalReport = '';
obj.completionDate = '';
obj.reportEntryDate = '';
obj.printedAuthorizedSignature = '';
obj.monthEndingBottom = '';
obj.companyNameBottom = '';
obj.projectNameBottom = '';
obj.projectNumberBottom = '';
obj.smbeTableAsText = '';
if (!app.getSharedData().isEmpty(monthEnding)) {
obj.monthEnding = monthEnding;
}
if (!app.getSharedData().isEmpty(companyName)) {
obj.companyName = companyName;
}
if (!app.getSharedData().isEmpty(projectName)) {
obj.projectName = projectName;
}
if (!app.getSharedData().isEmpty(awardingAgencyName)) {
obj.awardingAgencyName = awardingAgencyName;
}
if (!app.getSharedData().isEmpty(projectNumber)) {
obj.projectNumber = projectNumber;
}
if (!app.getSharedData().isEmpty(smbe)) {
obj.smbe = smbe;
}
if (!app.getSharedData().isEmpty(mobilizationDate)) {
obj.mobilizationDate = mobilizationDate;
}
if (!app.getSharedData().isEmpty(projectValue)) {
obj.projectValue = projectValue;
}
if (!app.getSharedData().isEmpty(percentComplete)) {
obj.percentComplete = percentComplete;
}
if (!app.getSharedData().isEmpty(finalReport)) {
obj.finalReport = finalReport;
}
if (!app.getSharedData().isEmpty(completionDate)) {
obj.completionDate = completionDate;
}
if (!app.getSharedData().isEmpty(reportEntryDate)) {
obj.reportEntryDate = reportEntryDate;
}
if (!app.getSharedData().isEmpty(printedAuthorizedSignature)) {
obj.printedAuthorizedSignature = printedAuthorizedSignature;
}
if (!app.getSharedData().isEmpty(monthEndingBottom)) {
obj.monthEndingBottom = monthEndingBottom;
}
if (!app.getSharedData().isEmpty(companyNameBottom)) {
obj.companyNameBottom = companyNameBottom;
}
if (!app.getSharedData().isEmpty(projectNameBottom)) {
obj.projectNameBottom = projectNameBottom;
}
if (!app.getSharedData().isEmpty(projectNumberBottom)) {
obj.projectNumberBottom = projectNumberBottom;
}
if (!app.getSharedData().isEmpty(smbeTableAsText)) {
obj.smbeTableAsText = smbeTableAsText;
}
beanJSON = JSON.stringify(obj);
var url = app.getSharedData().ldapSearchByCriteriaUrl;
$.ajax({
contentType: "application/json",
dataType : 'json',
url : url,
type : 'POST',
data: beanJSON,
async: false,
headers: { 'Access-Control-Allow-Origin' : '*'},
success : function(data) {
var json_text = JSON.stringify(data);
var json_obj = JSON.parse(json_text);
ajaxResult = json_text;
},
error : function(xhr, errorType, exception) {
var responseText;
try {
responseText = jQuery.parseJSON(xhr.responseText);
alert("error posting form fields " + responseText.ExceptionType + " " + responseText.StackTrace + " " + responseText.Message);
} catch (e) {
alert("error posting form fields xhr:" + xhr.responseText + " errortype: " + errorType + " exception: " + exception);
}
}
});
return ajaxResult;
}
//Used to check if a string is empty
app.getSharedData().isEmpty = function(str) {
return (!str || 0 === str.length);
}
//end of ajax
/* onClick of Button */
var netid = BO.F_NetIDTest.getValue();
var firstName = BO.F_FirstNameTest.getValue();
var lastName = BO.F_lastnametest.getValue();
var monthEnding = BO.F_monthEndCalYear.getValue();
var companyName = BO.F_contractorName.getValue();
var projectName = BO.F_ProjectName.getValue();
var awardingAgencyName = BO.F_contractAwardAgency.getValue();
var projectNumber = BO.F_ProjectNumber.getValue();
var smbe = BO.F_vendorCertClass.getValue();
var mobilizationDate = BO.F_MobilizationDate.getValue();
var projectValue = BO.F_ProjectValue.getValue();
var percentComplete = BO.F_percentCompleteToDate.getValue();
var finalReport = BO.F_isFinalReport.getValue();
var completionDate = BO.F_estCompletionDate.getValue();
var reportEntryDate = BO.F_ReportEntryDate.getValue();
var printedAuthorizedSignature = BO.F_signerName.getValue();
var monthEndingBottom = BO.F_monthEndCalYear.getValue();
var companyNameBottom = BO.F_contractorName.getValue();
var projectNameBottom = BO.F_ProjectName.getValue();
var projectNumberBottom = BO.F_ProjectNumber.getValue();
var smbeTableAsText = BO.F_SmbeTableAsText.getValue();
var result = app.getSharedData().FillPdf();
var json_obj = JSON.parse(result);
//From returning LDAP search, not sure if parts of this need to be used
var tbl = BO.F_firstlastsrchresults;
tbl.setValue(new Array()); //clear table
for (var i = 0; i < json_obj.length; i++){
var row = json_obj[i];
var person = app.getSharedData().LdapSearchByCriteriaResult();
person.initializeData(row);
var newRow = tbl.createNew();
// var newCols = newRow.getChildren();
get(newRow, 'F_srchfirstname').setValue(person.firstName);
get(newRow, 'F_SrchLastname').setValue(person.lastName);
get(newRow, 'F_Srchtblenetid').setValue(person.netId);
get(newRow, 'F_srchtblorg').setValue(person.deptName);
get(newRow, 'F_srchtblemail').setValue(person.email);
get(newRow, 'F_srchtblphone').setValue(person.phoneNumber);
//newCols.get(0).setValue(person.firstName);
//newCols.get(1).setValue(person.lastName);
//newCols.get(2).setValue(person.netId);
//newCols.get(3).setValue(person.deptName);
//newCols.get(4).setValue(person.email);
//newCols.get(5).setValue(person.phoneNumber);
tbl.add(newRowapp.setSuppressWarning(true);
require(["dijit/Dialog", "dijit/form/Button", "dojo/domReady!"], function (Dialog,Button) {
var button = new Button({ label: "OK" });
button.setAttribute('style', 'margin-left:300px;margin-top:10px;');
button.setAttribute('class', 'lfFormActionSubmitBtn');
button.setAttribute('tabindex', '-1');
button.startup();
waitDialog = new Dialog({
title : "USDP Status Report PDF Download",
content : "Your Status Report PDF is now being generated. You should receive it within a few seconds through your browser. <br><br> After successfully downloading the PDF, click the Submit Status Report button at the bottom of the web page to finalize the web form.",
style : "width: 400px;font-size:11pt;"
});
button.placeAt(waitDialog);
button.on("click", function(event) {
waitDialog.hide();
// location.replace("https://financialapps.its.uconn.edu/");
});
});
waitDialog.show();
jQuery(".dijitDialogCloseIcon").css("display", "none");
}
//Syntax for generating PDF
app.getSharedData().FillPdfUrl = 'https://dev.api.finance.uconn.edu/webapi/generatePaymentReport';
//create function for mapping fields within object and array for textbox
app.getSharedData().FillPdf = function() {
var form = app.getForm('F_StatusReport');
var theBO = form.getBO();
var ajaxResult = '';
var beanJSON;
var obj = {};
obj.monthEnding = theBO.F_MonthEndCalYear.getValue();
obj.companyName = theBO.F_ContractorName.getValue();
obj.projectName = theBO.F_ProjectName.getValue();
obj.awardingAgencyName = theBO.F_ContractAwardAgency.getValue();
obj.projectNumber = theBO.F_ProjectNumber.getValue();
obj.smbe = theBO.F_VendorCertClass.getValue();
if(theBO.F_MobilizationDate.getValue() !== ""){
obj.mobilizationDate = theBO.F_MobilizationDate.getValue().toISOString().substring(0, 10)};
if(theBO.F_ProjectValue.getValue() !== ""){
obj.projectValue = '$' + theBO.F_ProjectValue.getValue().toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,')};
// obj.percentComplete = Number(theBO.F_PercentCompleteToDate.getValue()/100).toLocaleString(undefined,{style: 'percent', minimumFractionDigits:2});
if(theBO.F_PercentCompleteToDate.getValue() !== ""){
obj.percentComplete = theBO.F_PercentCompleteToDate.getValue().toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,') + '%'};
obj.finalReport = theBO.F_IsFinalReport.getValue();
if(theBO.F_EstCompletionDate.getValue() !== ""){
obj.completionDate = theBO.F_EstCompletionDate.getValue().toISOString().substring(0, 10)};
if(theBO.F_ReportEntryDate.getValue() !== ""){
obj.reportEntryDate = theBO.F_ReportEntryDate.getValue().toISOString().substring(0, 10)};
obj.printedAuthorizedSignature = theBO.F_SignerName.getValue();
var table = app.getForm('F_StatusReport').getBO().F_SMBECTable;
//set textbox values with array
var paymentDetails = [];
var p;
var tblRow = null;
for(var i = 0; i < table.getLength(); i++) {
tblRow = table.get(i);
var company = get(tblRow , 'F_SubtierCompany').getValue();
var dasCode = get(tblRow , 'F_SubtierDasClass').getValue();
var contractAmount = get(tblRow , 'F_TotalContractAmount').getValue().toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,');
var monthlyPayment = get(tblRow , 'F_TotalMonthlyPayment').getValue().toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,');
var paymentToDate = get(tblRow , 'F_TotalPaymentToDate').getValue().toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,');
// var contractAmount = get(tblRow , 'F_TotalContractAmount').getValue().toFixed(2).replace(/\d(?=(\d{3})+\.)/g, '$&,');
// var monthlyPayment = get(tblRow , 'F_TotalMonthlyPayment').getValue().toFixed(2).replace(/\d(?=(\d{3})+\.)/g, '$&,');
// var paymentToDate = get(tblRow , 'F_TotalPaymentToDate').getValue().toFixed(2).replace(/\d(?=(\d{3})+\.)/g, '$&,');
paymentDetails.push({
"contractorName" : company ,
"dasClass" : dasCode,
"totalContractAmount" : contractAmount,
"totalPaymentThisMonth" : monthlyPayment,
"totalPaymentToDate" : paymentToDate
});
}
obj.paymentDetails = paymentDetails;
beanJSON = JSON.stringify(obj);
//alert(beanJSON);
//attempt call without ajax. Ajax can have issues with binary returns.
var req = new XMLHttpRequest();
req.open("POST", app.getSharedData().FillPdfUrl, true);
req.responseType = "blob";
req.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
req.onload = function (event) {
var blob = req.response;
var link=document.createElement('a');
link.href=window.URL.createObjectURL(blob);
link.download= "PaymentStatusReport" + "_" + obj.companyName + "_" + obj.monthEnding +".pdf";
link.click();
}
req.send(beanJSON);
}