Field Mapping for PDF
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 |
-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().downloadPdfConfirm = function() {
app.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);
}