Versions Compared

Key

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

...

-Added a check for the Stage action buttons to confirm the PDF is downloaded prior to the web form being submitted.

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

...

2020/04/08

-Added form storage for uploading signed and initialed PDFs

-updated email notifications to include PDFs

-updated instructions for modified process

-Added additional logic to prevent unfinished PDF downloads or form submission


2020/07/14

-Project now includes two new fields: Project Manager Name and Project Manager Email.

-The project manager email is sent a notification when a payment status report is submitted for a particular project.

-added project manager name and email to the Payment Status form.

2020/10/14

Update code so that contractor can select their own name for 'Sub-Tier To' (Payer) field in table.

Contractor will not be able to add their own name into Sub-Tier.

User will not be able to add a Non-SMBE company into the Sub-Tier field.

Below would be needed, but is commented out, if in case a non-smbe would be added into the Sub-Tier field.

Balance Adjustment will only and calculate when contractor is an SMBE and not a non-SMBE.

   - This is to avoid UConn double dipping with payments to SMBEs, as they are paid through other system.

RE_ UCONN Supplier Diversity Program (USDP) On-Line Reporting - Answers To Questions You May Have.msg

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

...

24Page Numbers #1 and #2**generated from Process**


25Initials**physically filled by person submitting form**



----------------------------------------------------------------------------

...

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

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


}


//load external css
dojo.require("dojo.NodeList-manipulate");
dojo.ready(function(){
dojo.query("head").append('<link href="https://media.feb.uconn.edu/base/uconn-leap-style-92.min.css" rel="stylesheet" type="text/css">');
});

//load uconn cookie js
dojo.require("dojo.io.script");
dojo.ready(function() {
dojo.io.script.get({
url: "https://scripts-universityofconn.netdna-ssl.com/cookie-notification.js"
})
});

app.getSharedData().showOkDialogBox = function(title,content) {
require(["dijit/Dialog", "dijit/form/Button", "dojo/domReady!"], function (Dialog,Button) {
var okButton = new Button({ label: "OK" });
okButton.setAttribute('style', 'margin-left:370px;margin-top:10px;');
okButton.setAttribute('tabindex', '1');
okButton.startup();
genDialog = new Dialog({
title : title,
content : content,
style : "width: 470px;font-size:11pt;"
});
okButton.placeAt(genDialog);
okButton.on("click", function(event) {
genDialog.hide();
});
});
genDialog.show();
}

app.getSharedData().restUrls = {
"baseInfo": {"protocol":window.location.protocol,"host":window.location.host,"format":"json","appId":app.getUID(),"contextRoot":app.getSharedData().RegionUtils.contextRoot()},
"addCertifiedCompany": function(params) {
var template = "{protocol}//{host}/{contextRoot}/secure/org/data/{appId}/F_CertifiedCompany?format=application/{format}&freedomIdentifyKey={freedomIdentifyKey}";
return app.getSharedData().StringUtils.stringFormat(template, $.extend(params,this.baseInfo));
}
}

app.getSharedData().getDasCodeByDasText = function(dasText) {
var tVal = dasText.replace(/\s+/g,"");
if (tVal === "MBE" || tVal === "MBENone") return "MBE";
if (tVal === "SBE" || tVal === "SBENone") return "SBE";
var map = {
"AmericanIndian":"N",
"AmericanIndianDisabled":"DN",
"AmericanIndianWoman":"NW",
"AmericanIndianWomanDisabled":"DNW",
"AsianPacificAmericanandPacificIslander":"A",
"AsianPacificAmericanandPacificIslanderDisabled":"DA",
"AsianPacificAmericanandPacificIslanderWoman":"AW",
"AsianPacificAmericanandPacificIslanderWomanDisabled":"DAW",
"BlackAmerican":"B",
"BlackAmericanDisabled":"DB",
"BlackAmericanWoman":"BW",
"BlackAmericanWomanDisabled":"DBW",
"HispanicAmerican":"H",
"HispanicAmericanDisabled":"DH",
"HispanicAmericanWoman":"HW",
"HispanicAmericanWomanDisabled":"DHW",
"IberianPeninsula":"I",
"IberianPeninsulaDisabled":"DI",
"IberianPeninsulaWoman":"IW",
"IberianPeninsulaWomanDisabled":"DIW",
"Disabled":"D",
"Woman":"W",
"WomanAsian":"AW",
"WomanDisabled":"DW"
}
var value = map[tVal.substring(3)];
if (value !== "") return value;
if (value === "") return "?";
};

app.getSharedData().createYearSelectOptions = function(year,floor,ceil,isDesc=0) {
var options = [];
for (var i = year - floor; i <= year + ceil; i++) {
options.push({title:i,value:i});
}
if (isDesc) {
options.sort(function(a,b) {
return a.title + b.title;
})
}
return options;
}


/* onClick of Button for PDF download */

BO.F_CheckBox1.setValue(true);

app.getSharedData().downloadPdfConfirm();

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 smbeTableAsText = BO.F_SmbeTableAsText.getValue();

//errors with these 2 rows
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(newRow);

}
*/