Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...


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);


}