{"version":3,"sources":["util.js","store/payment.js","store/extrawork.js","store/fo.js","store/work-order.js","store/meur.js","store/unit-price.js","store/facility.js","store/vendor.js","store/spread.js","store/recycle.js","store/workflow.js","store/user.js","store/close-delay.js","store/field-order.js","api_endpoints.js","store/apiActions.js","store/contract.js","store/set-aside.js","authentication.js","store/extraworkwip.js","store/general.js","store/fieldorderwip.js","store/goals.js","store/category.js","store/ethnicity.js","polyfill.js","mock/pacclist.js","store/changeorder.js","store/api.js","store/index.js","App.js","serviceWorker.js","index.js"],"names":["lockWIP","contractCutOffDate","undefined","today","Date","currentMonth","getMonth","currentYear","getFullYear","nextMonth","nextMonthDate","cutoff","hyphenatedToSlashDate","dateStr","components","substring","split","length","yearStr","monthStr","dayStr","hypenatedToSlashDate1","formatHyphenatedDate","date1","indexOf","date","isNaN","toISOString","substr","formatHyphenatedDate1","toString","formatHyphenatedDate2","t","result","dateDiffDays","date2","res","Math","round","formatTwoDigitLeadingZero","number","Number","hyphenatedDateFromObj","getDate","year","isoDateStrToHyphenated","datetimeStr","hyphenatedDateStrToIso","str","addDaysToDate","days","_tmpdate","setDate","dateGreaterThanToday","formatAmount","value","includeDollarSign","num","commaDelimitedNumber","toLocaleString","minimumFractionDigits","maximumFractionDigits","formatAmountTo2Decimal","parseFloat","isoToSlashDate","dateObj","month","day","formatTrimmedText","trimmedStr","trim","generatePatchObjs","inputObj","Object","keys","map","fieldName","op","path","formatPercentage","getReplacePatchObj","editableValues","valueName","filterNonCharSpacePeriod","newStrChars","i","charCode","charCodeAt","push","join","filterNonNumeric","formatHyphenatedPhoneNum","parseInt","intStr","stateAbbreviations","convertType","TypeStr","convertPinType","_TypeStr","OrigType","OrigTypeStr","desiType","OrigTypeCO","desiTypeCO","convertTypePin","convertTypeFin","desiTypeFI","convertFinTypePAFI","OrigTypePAFI","desiTypePAFI","desiTypeClfd","convertTypeClfd","convertAuditType","paymentSlice","createSlice","name","initialState","payments","selectedPayment","selectedRecentlyUpdated","addPaymentStatus","addPaymentError","classifiedPayments","classifiedEntries","lumpsumPayments","lumpsumEntries","performbondPayments","performbondEntries","fieldorderPayments","fieldorderEntries","netcostPayments","netcostEntries","supplementalPayments","supplementalEntries","changeorderPayments","changeorderEntries","workorderPayments","reducers","gotPayments","state","action","payload","gotSelectedPayment","addedSelectedPayment","clearSelectedPayment","clearSelectedRecentlyUpdated","clearAllPaymentData","gotClassifiedPaymentInfo","chargecodeEntries","clearClassifiedPaymentInfo","gotUnclassifiedPaymentInfo","clearUnclassifiedPaymentInfo","gotPerformbondPaymentInfo","clearPerformbondPaymentInfo","gotFieldorderPaymentInfo","clearFieldorderPaymentInfo","gotNetcostPaymentInfo","clearNetcostPaymentInfo","gotSupplementalPaymentInfo","clearSupplementalPaymentInfo","gotChangeorderPaymentInfo","clearChangeorderPaymentInfo","addedClassifiedPayment","newClassifiedPayment","Array","isArray","updatedClassifiedPayment","changedClassifiedPayment","foundIndex","findIndex","classifiedPaymentId","gotWorkorderPayments","clearWorkorderPayments","addedWorkOrderPayment","newWorkOrderPayment","workOrderPayments","updatedWorkOrderPayment","changedWorkOrderPayment","workorderDetailPaymentId","addedUnclassifiedPayment","newUnclassifiedPayment","unclassifiedPayments","updatedUnclassifiedPayment","changedUnclassifiedPayment","lumpsumPaymentId","addedPerformbondPayment","newPerformbondPayment","updatedPerformbondPayment","changedPerformbondPayment","performbondPaymentId","addedNetcostPayment","newNetcostPayment","updatedNetcostPayment","changedNetcostPayment","netcostPaymentId","addedChangeorderPayment","newChangeorderPayment","updatedChangeorderPayment","changedChangeorderPayment","changeorderPaymentId","addedFieldorderPayment","newFieldorderPayment","updatedFieldorderPayment","changedFieldorderPayment","fieldorderPaymentId","addedSupplementalPayment","newSupplementalPayment","updatedSupplementalPayment","changedSupplementalPayment","supplementPaymentId","updatedRetainage","updatedFinancialHistory","associatedContract","setAddPaymentError","clearAddPaymentStatus","setAddPaymentInProgress","actions","reducer","getPayments","contractId","dispatch","a","fetchWithToken","getPaymentsByContractIdUrl","response","json","data","getSelectedPayment","paymentId","getPaymentByPaymentIdUrl","addPayment","dto","addPaymentUrl","method","body","JSON","stringify","headers","status","text","message","editPayment","editPaymentByPaymentIdUrl","postPayment","postPaymentByPaymentIdUrl","finalizePayment","finalizePaymentByPaymentIdUrl","UnpostPayment","unpostPaymentByPaymentIdUrl","editPaymentBondChargeCode","editPaymentBondChargeCodeByPaymentIdUrl","addClassifiedPayment","addClassifiedPaymentUrl","editClassifiedPayment","editClassifiedPaymentUrl","addWorkOrderPayment","addWorkOrderPaymentUrl","editWorkOrderPayment","workOrderPaymentId","editWorkOrderPaymentUrl","addUnclassifiedPayment","addUnclassifiedPaymentUrl","editUnclassifiedPayment","unclassifiedPaymentId","editUnclassifiedPaymentUrl","addPerformbondPayment","addPerformbondPaymentUrl","editPerformbondPayment","editPerformbondPaymentUrl","addNetcostPayment","addNetcostPaymentUrl","getSingleContract","editNetcostPayment","editNetcostPaymentUrl","addChangeorderPayment","addChangeorderPaymentUrl","editChangeorderPayment","editChangeorderPaymentUrl","addFieldorderPayment","addFieldorderPaymentUrl","editFieldorderPayment","editFieldorderPaymentUrl","addSupplementalPayment","addSupplementalPaymentUrl","editSupplementalPayment","supplementalPaymentId","editSupplementalPaymentUrl","updateRetainage","updateRetainageUrl","updateFinancialHistory","updateFinancialHistoryUrl","updatedValues","sbcmplt","fnlrem1","fnlrem2","fnlrem3","updatedContractFinancialHistory","getClassifiedPaymentInfo","getClassifiedPaymentInfoUrl","getUnclassifiedPaymentInfo","getUnclassifiedPaymentInfoUrl","getPerformbondPaymentInfo","getPerformbondPaymentInfoUrl","getFieldorderPaymentInfo","getFieldorderPaymentInfoUrl","getNetcostPaymentInfo","getNetcostPaymentInfoUrl","getSupplementalPaymentInfo","getSupplementalPaymentInfoUrl","getChangeorderPaymentInfo","getChangeorderPaymentInfoUrl","getWorkorderPayments","getWorkorderPaymentsUrl","GOT_PINS","GOT_SELECTED_PINS","GOT_SINGLE_PIN","GOT_PIN_DETAIL","GOT_PACC","GOT_SELECTED_PACC","GOT_SINGLE_PACC","GOT_CHANGEORDER","GOT_SINGLE_CHANGEORDER","GOT_CHANGEORDER_DETAIL","GOT_CHANGEORDER_DETAIL_WO","GOT_CHANGEORDER_PAYMENT","GOT_CHANGEORDER_PAYMENT_WO","GOT_CHANGEORDER_PAYMENT_CONTRACT","GOT_CHANGEORDER_DETAIL_ADJUST","GOT_PACC_DETAIL","GOT_PACC_DETAIL_WO","GOT_PACC_PAYMENT","getPins","acquireTokenPopupAndCallAPI","token","fetch","API_ROOT","pins","Authorization","gotPins","console","error","getPinsByPacc","paccId","paccpins","gotSelectedPins","getSinglePin","pinId","pin","singlePin","gotSinglePin","Pins","type","selectedPins","getPinDetails","pinDetails","pindetails","gotPinDetails","PinDetails","bulkEditPinDetails","additions","edits","additionReqs","entry","pinDetail","editReqs","editObj","pinDetailId","patchObj","Promise","all","addPin","pinObj","editableFields","editPin","getPacc","paccs","pacc","gotPacc","getPaccByChangeorder","changeorderId","changeorderpacc","gotSelectedPacc","getSinglePacc","singlePacc","gotSinglePacc","Pacc","selectedPacc","addPacc","paccObj","AdditionFields","newpacc","editPacc","getChangeorder","changeorders","changeorder","gotChangeorder","getSingleChangeorder","singleChangeorder","gotSingleChangeorder","Changeorder","addChangeorder","changeorderObj","newco","editChangeorder","getChangeorderPayments","changeorderPayment","changeorderpayments","gotChangeorderPayments","ChangeorderPayments","getChangeorderPaymentsbyWo","classifiedWoId","changeorderPaymentByClassifiedWo","changeorderpaymentswo","gotChangeorderPaymentsWo","changeorderPaymentsWo","getChangeorderPaymentsbyContractId","ContractId","changeorderPaymentByContractId","changeorderpaymentscontract","gotChangeorderPaymentsContract","changeorderPaymentsContract","getChangeorderDetails","changeorderDetails","changeorderdetails","gotChangeorderDetails","getAdjustmentByChangeorderAndChargecode","ChargecodeId","AdjustmentByChargecode","changeorderdetailsadjustmnet","gotChangeorderDetailsAdjust","ChangeorderDetailsAdjust","ChangeorderDetails","getChangeorderDetailsWO","id","changeorderDetailWO","ChangeorderDetailsWO","gotChangeorderDetailsWO","bulkEditChangeorderDetails","changeorderDetail","changeorderDetailId","PaccByChangeorder","PaccDetails","PaccDetailsWO","PaccPayments","getPaccDetails","paccDetails","paccdetails","gotPaccDetails","bulkEditPaccDetails","paccDetail","paccDetailId","test","GOT_FINS","GOT_SELECTED_FINS","GOT_SINGLE_FIN","GOT_PAFI","GOT_SELECTED_PAFI","GOT_SINGLE_PAFI","GOT_FIELDORDER","GOT_SINGLE_FIELDORDER","GOT_FIELDORDER_DETAIL","GOT_FIELDORDER_DETAIL_WO","GOT_FIELDORDER_PAYMENT","GOT_FIELDORDER_PAYMENT_WO","GOT_FIELDORDER_PAYMENT_CONTRACT","GOT_PAFI_DETAIL","GOT_PAFI_DETAIL_WO","GOT_PAFI_PAYMENT","getFins","fins","gotFins","getFinsByPafi","pafiId","pafifins","gotSelectedFins","getSingleFin","finId","fin","singleFin","gotSingleFin","Fins","selectedFins","addFin","finObj","editFin","getPafi","pafis","pafi","gotPafi","getPafiByFieldorder","fieldorderId","fieldorderpafi","gotSelectedPafi","getSinglePafi","singlePafi","gotSinglePafi","Pafi","selectedPafi","addPafi","pafiObj","newpafi","editPafi","getFieldorder","fieldorders","fieldorder","gotFieldorder","getSingleFieldorder","singleFieldorder","gotSingleFieldorder","Fieldorder","addFieldorder","fieldorderObj","editFieldorder","getFieldorderPayments","fieldorderPayment","fieldorderpayments","gotFieldorderPayments","FieldorderPayments","getFieldorderPaymentsbyWo","fieldorderPaymentByClassifiedWo","fieldorderpaymentswo","gotFieldorderPaymentsWo","fieldorderPaymentsWo","getFieldorderPaymentsbyContractId","fieldorderPaymentByContractId","fieldorderPaymentsContract","gotFieldorderPaymentsContract","getFieldorderDetails","fieldorderDetails","fieldorderdetails","gotFieldorderDetails","FieldorderDetails","getFieldorderDetailsWO","fieldorderDetailWO","FieldorderDetailsWO","gotFieldorderDetailsWO","bulkEditFieldorderDetails","fieldorderDetail","fieldorderDetailId","PafiByFieldorder","PafiDetails","PafiDetailsWO","PafiPayments","getPafiDetails","pafiDetails","pafidetails","gotPafiDetails","bulkEditPafiDetails","pafiDetail","pafiDetailId","GOT_WORK_ORDERS","GOT_SINGLE_WORK_ORDER","GOT_SINGLE_WORK_ORDER_PAID","GOT_ACTVITY_TASKS","GOT_SINGLE_ACTIVITY_TASK","GOT_SINGLE_ACTIVITY_TASK_ERROR","CLEAR_SINGLE_ACTIVITY_TASK_ERROR","CLEAR_ACTIVITY_TASKS","gotWorkOrders","workOrders","gotSingleWorkOrder","singleWorkOrder","gotSingleWorkOrderPaid","singleWorkOrderPaid","gotActivityTasks","activityTasks","gotSingleActivityTask","singleActivityTask","gotSingleActivityTaskError","clearSingleActivityTaskError","clearActivityTasks","getWorkOrders","sort","getSingleWorkOrder","workOrderId","getSingleWorkOrderPaid","WorkOrderDetailsPaid","editWorkOrder","getActivityTasks","getSingleActivityTask","activityTaskId","editActivityTask","taskId","errorMsg","addWorkOrder","workOrderObj","newWorkOrder","addActivityTask","activityTaskObj","singleActivityTaskError","slice","list","template","referenceList","classList","itemsLoaded","entity","c","title","description","ext1","itemUpdated","index","itemDeleted","filter","itemAdded","unshift","loadItems","apiRequestStarted","url","onSuccess","saveItem","onSuccessCallback","onSuccessMessage","deleteItem","addItem","getItemById","createSelector","meurs","getReferenceList","getClassificationList","getContractId","contract","singleContractMain","main","getIsArchived","org","getUserRoles","user","me","roles","getReferenceLabel","reference","getItems","m","trade","class","period","formateDate","todateMonority","getMonorityPercentage","todateFemale","getFemalePercentage","getUtilization","skilled","filtered","totalHours","reduce","p","maleHour","femaleHour","totalFemaleHours","totalMinorityHours","getMonorityHours","minorityPercentage","feMalePercentage","toFixed","getLoading","singleContractLoading","loading","jsonDate","toLocaleDateString","item","total","allEmployee","getRows","r","group","key1","key2","getMonorityHoursByCategory","isMale","label","isSummary","float","GOT_TIME_MATERIAL_ENTRIES","GOT_UNIT_PRICE_ENTRIES","GOT_SINGLE_UNIT_PRICE_ENTRY","GOT_SINGLE_UNIT_PRICE_DETAIL_ENTRY","GOT_UNIT_PRICE_DETAIL_ENTRIES","GOT_CHANGED_UNIT_PRICE_ENTRY","CLEAR_CHANGED_UNIT_PRICE_ENTRY","GOT_SINGLE_UNIT_PRICE_DETAIL_ENTRY_ERROR","CLEAR_SINGLE_UNIT_PRICE_DETAIL_ENTRY_ERROR","SET_UNIT_PRICE_DETAIL_API_STATUS","gotTimeMaterialEntries","timeMaterialEntries","gotUnitPriceEntries","unitPriceEntries","gotSingleUnitPriceEntry","singleUnitPriceEntry","gotSingleUnitPriceDetailEntry","singleUnitPriceDetailEntry","gotUnitPriceDetailEntries","unitPriceDetailEntries","gotChangedUnitPriceEntry","changedUnitPriceEntry","gotSingleUnitPriceDetailEntryError","clearSingleUnitPriceDetailEntryError","clearChangedUnitPriceEntry","setUnitPriceDetailApiStatus","getTimeMaterialEntries","workOrderDetailId","unitPriceByCategory","addUnitPriceDetailEntry","entryObj","code","unitPrice","errorMessage","unitPriceDetailObj","editUnitPriceDetailEntry","unitPriceItemId","getUnitPriceEntries","unitPriceByWorkOrderDetail","getSingleUnitPriceEntry","unitPriceById","getUnitPriceDetailEntriesByUnitPrice","unitPriceDetailsByUnitPriceId","addUnitPrice","bodyObj","newEntryObj","editUnitPrice","getSingleUnitPriceDetailEntry","unitPriceDetailById","singleUnitPriceDetailEntryError","unitPriceDetailApiStatus","GOT_FACILITIES","gotFacilities","facilities","GOT_FACILITIESADDRESSES","gotFacilitiesAddresses","facilitiesAddresses","getFacilities","facility","b","getFacilityDetail","Facility","facilityDetail","log","getAllFacilitiesList","allFacility","getAllFacilitiesAddresses","referenceDataByCategory","addFacility","facilityObj","editFacility","facilityId","GOT_VENDORS","GOT_SINGLE_VENDOR","GOT_CONTRACT_VENDOR_ADDRESSES","GOT_SINGLE_PRIME_VENDOR_ADDRESS","getSingleVendor","vendorId","vendors","singleVendor","gotSingleVendor","getSingleVendorByContract","getSinglePrimeVendorAddressByContract","singlePrimeVendorAddress","gotSinglePrimeVendorAddress","getContractVendorAddresses","getVendorAddressesForContractUrl","contractVendorAddresses","subVendorAddresses","GOT_SPREADS","GOT_SPREAD_DETAILS","GOT_SPREAD_WIPCCLINE","GOT_SPREAD_WOCCMAPPING","getSpreads","spreads","gotSpreads","Spreads","addSpread","SpreadObj","spread","newspread","addSpreadForYear","moyr","editSpread","SpreadId","getSpreadDetails","spreaddetails","gotSpreadDetails","SpreadDetails","getCutOffDateByContract","spreadCutoffDate","addSpreadDetail","SpreadDetailObj","spreaddetail","getSpreadWIPCCLine","getSpreadWOCCMapping","editSpreadDetail","spreadwipcclineitems","SpreadWIPCCLine","gotSpreadWIPCCLine","spreadwoccmapping","SpreadWOCCMapping","gotSpreadWOCCMapping","GOT_RECYCLES","GOT_RECYCLEPLANS","getRecycles","recycles","Recycles","addRecycle","RecycleObj","recycle","editRecycle","RecycleId","getRecyclePlans","recyclePlans","recycleplans","RecyclePlans","addRecyclePlan","RecyclePlanObj","recyclePlan","editRecyclePlan","RecyclePlanId","assignments","drafts","management","sarForm","loadDraft","then","deleteDraft","workflowId","initialSARForm","formData","jsonRes","ok","window","location","href","saveSARForm","secondsToGo","modal","Modal","success","content","centered","timer","setInterval","setTimeout","clearInterval","destroy","ShowSuccessInfo","actionSARForm","actionname","concat","obj","GOT_ME","GOT_REPORT_SERVER_URL","gotMe","aggregatedPermissions","adminUserRole","adminUserFacility","adacountId","fullName","permissions","permissionObj","permissionItemID","highestPrivilege","rolesObj","role","roleId","roleName","facilitiesObj","gotReportServerUrl","getMe","meObj","getReportServerUrl","getReportServerUrlUrl","reportServerUrl","GOT_CODES","gotCodes","codes","getCodes","GOT_FIELD_ORDERS","GOT_SINGLE_FIELD_ORDER","gotFieldOrders","fieldOrders","getFieldOrders","fieldOrderId","singleFieldOrder","financialSummary","reauthorizations","editContractStatus","pdpsstaffcostactualbudget","milestones","audits","captrakIds","chargeCodes","chargeCodesByContract","PaymentAccruals","classified","classifieds","classifiedPaymentByClassifiedWo","classifiedPaymentByContractId","classifiedDetail","classifiedDetails","classifiedDetailWO","classifiedWO","classifiedWOs","classifiedWOByNetCost","unclassified","unclassifieds","unclassifiedPaymentByContractId","unclassifiedDeductions","performbondPaymentByContractId","contractvendor","contractvendors","contractvendorpayment","contractvendorpayments","netcost","netcosts","schedule","schedules","netcostPaymentByClassifiedWo","netcostPaymentByContractId","netcostDetail","netcostDetails","closeDelayCodes","unitPriceByUpNo","unitPriceByActivityTask","referenceData","decryptedEINByVendorId","category","paccDetailWO","pafiDetailWO","potentialdelay","potentialdelays","rcpotentialdelays","extraworkwip","extraworkwips","fieldorderwip","fieldorderwips","azureupload","azureBlobList","reportServerSetting","azureDownload","pipeSeparatedPath","azureBlobDelete","azureFileStorageCreateLib","unitCost","setTracked","hyphenatedDate","prefix","searchVendorByName","nameSubstr","einSubstr","encodeURIComponent","searchVendorAddressByVendorName","userExists","supplementalByContractId","msGraphUsersByAdId","aDId","supplementalById","supplemental","singleVendorById","vendorAddressesByVendorId","singleVendorAddress","vendorAddresses","vendorMatrix","addVendorWithAddress","goals","vendorExists","ein","makeVendorAddressPrimary","setAsideVendor","searchSetAsides","isActive","setAsideById","setAsideSetActive","String","getEditPerfBondUrl","getVendorAddressesAndEvalForContractUrl","getEvaluationByContractIdAndVendorAddressIdUrl","vendorAddressId","getEvaluationById","evaluationBaseUrl","getApproveEvaluationUrl","interim","paymentClassifiedBalanceUrl","classifiedId","chargeCodeId","classifiedWOItemId","paymentWorkOrderBalanceUrl","paymentUnclassifiedBalanceUrl","unclassifiedId","paymentPerformbondBalanceUrl","paymentNetcostBalanceUrl","netcostId","paymentChangeorderBalanceUrl","paymentFieldorderBalanceUrl","paymentSupplementalBalanceUrl","supplementalId","finalEvalExistsUrl","contractVendorByContractAndVendorAddressIdsUrl","createAction","apiRequestSuccess","apiRequestFailed","GOT_SINGLE_CONTRACT","GOT_CONTRACTS","GOT_SINGLE_CONTRACT_CONTRACTVENDOR_PAYMENTS","GOT_SINGLE_CONTRACT_CLASSIFIED_DETAILS","GOT_SINGLE_CONTRACT_CLASSIFIED_DETAILWO","GOT_SINGLE_CONTRACT_CLASSIFIEDWO_NETCOST","GOT_FINANCIAL_SUMMARY","GOT_NETCOST_DETAILS","START_GET_SINGLE_CONTRACT","UPDATED_PERF_BOND","UPDATED_CONTRACT_FINANCIAL_HISTORY","GOT_NETCOST_PAYMENT_WO","GOT_CLASSIFIED_PAYMENT_WO","GOT_NETCOST_PAYMENT","GOT_CLASSIFIED_PAYMENT","GOT_UNCLASSIFIED_PAYMENT","gotContracts","contracts","gotSingleContractContractVendorPayments","singleContractContractVendorPayments","gotSingleContractClassifiedDetails","singleContractClassifiedDetails","gotSingleContractClassifiedDetailWO","singleContractClassifiedDetailWO","gotSingleContractClassifiedWONetCost","singleContractClassifiedWONetCost","gotSingleContractNetcostDetails","singleContractNetcostDetails","updatedPerfBond","values","mainResPromise","summaryResPromise","contractvendorsResPromise","classifiedsResPromise","unclassifiedsResPromise","classifiedwosResPromise","netcostsResPromise","chargeCodesResPromise","potentialdelayResPromise","rcpotentialdelayResPromise","pdpsstaffcostactualbudgetResPromise","schedulesResPromise","cutOffDateResPromise","responses","mainObj","summaryObj","contractvendorsObj","classifiedsObj","unclassifiedsObj","classifiedswoObj","netcostObj","chargeCodesObj","potentialdelayObj","rcpotentialdelayObj","pdpsstaffcostactualbudgetObj","scheduleObj","cutOffDateObj","singleContractSummary","singleContractContractVendors","singleContractClassifieds","singleContractUnclassifieds","singleContractClassifiedWOs","singleContractNetcosts","singleContractChargeCode","singleContractPotentialDelay","singleContractRCPotentialDelay","singleContractPDPSStaffCostActualBudget","singleContractSchedules","singleContractCutOffDate","getContracts","contractNo","getContractVendorPayments","getClassifiedDetails","getClassifiedDetailWO","getClassifiedWONetCost","getNetcostDetails","getNetcostPaymentsbyWo","netcostpaymentswo","gotNetcostPaymentsWo","netcostPaymentsWo","getClassifiedPaymentsbyWo","classifiedpaymentswo","gotClassifiedPaymentsWo","classifiedPaymentsWo","getNetcostPaymentsbyContractId","netcostpayments","gotNetcostPayments","getClassifiedPaymentsContractId","classifiedpayments","gotClassifiedPayments","getUnclassifiedPaymentsContractId","unclassifiedpayments","gotUnclassifiedPayments","addAuthorizations","authObj","editAuthorizations","deleteAuthorization","addContract","contractObj","addedContractObj","addFileStorageLibrary","editContract","capTrakEntries","chargeCodeEntries","editContractReq","requestPromiseList","capTrakAdditionReqs","capTrakEditReqs","capTrakDeletionReqs","deletions","captrakId","chargeCodeAdditionReqs","chargeCodeEditReqs","chargeCodeDeletionReqs","bulkEditMilestones","deletionReqs","milestoneId","bulkEditAudits","auditId","bulkEditCaptrakIds","bulkEditChargeCodes","bulkEditUnclassified","editContractVendorItem","contractVendorId","addContractVendorItem","editClassifiedItem","addClassifiedItem","editClassifiedWOItem","addClassifiedWOItem","editUnclassifiedItem","lumpsumId","addUnclassifiedItem","addContractVendorItemRecords","editContractVendorItemRecords","contractVendorPaymentId","editClassifiedItemRecords","classifiedDetailId","editNetcostItem","addNetcostItem","addClassifiedItemRecords","addNetcostDetailItem","editNetcostDetailItem","netcostDetailId","getFinancialSummary","financialSummaryObj","updatePerfBond","bulkEditPotentialDelay","deletePotentialDelay","potentialdelayId","getUnclassifiedDeductions","lumpsumDeductions","editScheduleItem","scheduleId","addScheduleItem","bondamt","bondate","origFinancialSummary","newFinancialSummary","newSingleContractMain","START_GETTING_SET_ASIDE_ENTRIES","STOP_GETTING_SET_ASIDE_ENTRIES","GOT_SET_ASIDE_ENTRIES","RESET_SET_ASIDE_ENTRIES","stopGettingSetAsideEntries","resetSetAsideEntries","getSetAsideEntries","active","jsonDecodedData","entries","prevSearchTerms","gettingEntries","loginScopes","scopes","WINTRAK_SCOPE","DIRECTORY_SCOPE","myMSALObj","Msal","auth","clientId","authority","cache","cacheLocation","storeAuthStateInCookie","requiresInteraction","errorCode","apiCallWithTokenFnAsync","accounts","getAllAccounts","account","requestWithAccount","acquireTokenSilent","tokenResponse","acquireTokenPopup","accessToken","acquireToken","input","init","request","Request","append","fetchGraphWithToken","GOT_EXTRAWORKWIPS","getExtraWorkWIPs","ExtraWorkWIPs","addExtraWorkWIP","ExtraWorkWIPObj","editExtraWorkWIP","ExtraWorkWIPId","teams","teamsLoaded","loadTeams","callback","saveTeams","getUserOpitons","items","trimVal","officeNumber","faxNumber","val","GOT_FIELDORDERWIPS","getFieldOrderWIPs","FieldOrderWIPs","addFieldOrderWIP","FieldOrderWIPObj","editFieldOrderWIP","FieldOrderWIPId","GOT_CONTRACT_GOALS","getGoals","Goals","editGoals","GOT_CATEGORIES","gotCategories","categories","getCategories","GOT_ETHNICITIES","gotEthnicities","ethnicities","getEthnicities","CustomEvent","event","params","bubbles","cancelable","detail","evt","document","createEvent","initCustomEvent","prototype","Event","Mock","mock","ID","ItemNo","ItemName","COPay","Type","Orig","PaccDate","Forecast","Status","Pinn","CO","api","next","apiActions","onPrepare","successPayload","onError","axios","handleError","toast","combineReducers","vendor","closeDelay","workOrder","setAside","extrawork","workflow","fo","meur","general","fieldOrder","payment","ethnicity","middleware","composeWithDevTools","applyMiddleware","thunkMiddleware","store","createStore","DefaultLayout","React","lazy","App","Suspense","fallback","className","render","props","Component","Boolean","hostname","match","ReactDOM","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.92d9e98d.chunk.js","sourcesContent":["export const lockWIP = (contractCutOffDate) => {\r\n if (contractCutOffDate === null || contractCutOffDate === undefined || contractCutOffDate === '1900-01-01T00:00:00') {\r\n return false;\r\n }\r\n const today = new Date(); // Get today's date\r\n const currentMonth = today.getMonth(); // Get the current month (0-indexed)\r\n const currentYear = today.getFullYear();\r\n const nextMonth = (currentMonth < 11 ? currentMonth : -1) + 1 // In case where currentMonth is Dec, When +1 is added to get nextMonth, output should be 1 (January) not 13.\r\n const nextMonthDate = new Date(today.getFullYear(), nextMonth, 1); // 1st of next month\r\n\r\n const cutoff = new Date(contractCutOffDate); // Convert CutOffDate to Date object if it's not already\r\n\r\n if (cutoff.getMonth() === currentMonth && cutoff.getFullYear() === currentYear) {\r\n return cutoff < today && cutoff < nextMonthDate; //Check if CutOffDate is after today and less than the 1st of next month\r\n }\r\n else {\r\n return false;\r\n }\r\n}\r\n\r\nexport const hyphenatedToSlashDate = (dateStr) => {\r\n if (dateStr === null) {\r\n return '--';\r\n }\r\n const components = dateStr.substring(0, 10).split('-');\r\n if (components.length !== 3) {\r\n return '--';\r\n }\r\n const [yearStr, monthStr, dayStr] = components;\r\n return `${monthStr}/${dayStr}/${yearStr}`;\r\n}\r\n\r\n//formaerly 'hypenatedToSlashDate' from CO util\r\nexport const hypenatedToSlashDate1 = dateStr => {\r\n if (dateStr === null || dateStr === \"\" || dateStr === undefined) {\r\n return \"\";\r\n }\r\n const components = dateStr.substring(0, 10).split(\"-\");\r\n if (components.length !== 3) {\r\n return \"\";\r\n }\r\n const [yearStr, monthStr, dayStr] = components;\r\n if (yearStr === \"1899\") {\r\n return \"\";\r\n } else {\r\n return `${monthStr}/${dayStr}/${yearStr}`;\r\n }\r\n};\r\n\r\nexport const formatHyphenatedDate = function (date1) {\r\n if (date1 === null || date1 === \"\" || date1 === undefined) {\r\n return '';\r\n }\r\n if (date1.indexOf(\"T00:00:00\") === -1) {\r\n date1 = date1 + \"T00:00:00\";\r\n }\r\n var date = new Date(date1)\r\n /**\r\n const month = date.getMonth() + 1;\r\n const monthStr = formatTwoDigitLeadingZero(month);\r\n const day = date.getDate() ;\r\n const dayStr = formatTwoDigitLeadingZero(day);\r\n const year = formatFourDigitLeadingZero(date.getFullYear());\r\n **/\r\n if (date instanceof Date && !isNaN(date)) {\r\n return date.toISOString().substr(0, 10);\r\n }\r\n}\r\n\r\nexport const formatHyphenatedDate1 = function (date1) {\r\n if (date1 === null || date1 === \"\" || date1 === undefined) {\r\n return '';\r\n }\r\n if (date1.toString().indexOf(\"T00:00:00\") === -1) {\r\n date1 = date1 + \"T00:00:00\";\r\n }\r\n var date = new Date(date1)\r\n if (date instanceof Date && !isNaN(date)) {\r\n return date.toISOString().substr(0, 10);\r\n }\r\n}\r\n\r\nexport const formatHyphenatedDate2 = function (date1) {\r\n if (date1 === null || date1 === \"\" || date1 === undefined) {\r\n return '';\r\n }\r\n\r\n var t = date1.toString().indexOf(\"T\");\r\n var result = date1.toString().substring(0, t);\r\n date1 = result + \"T00:00:00\";\r\n\r\n var date = new Date(date1)\r\n if (date instanceof Date && !isNaN(date)) {\r\n return date.toISOString().substr(0, 10);\r\n }\r\n}\r\n\r\nexport const dateDiffDays = (date1, date2) => {\r\n if (date1 === null || date2 === null) {\r\n return '';\r\n }\r\n date1 = new Date(date1);\r\n date2 = new Date(date2);\r\n //var res = Math.abs(date1 - date2) / 1000;\r\n var res = (date1 - date2) / 1000;\r\n var days = Math.round(res / 86400);\r\n return days;\r\n}\r\n\r\nexport function formatTwoDigitLeadingZero(number) {\r\n return number < 10\r\n ? `0${number}`\r\n : Number(number).toString();\r\n}\r\n\r\nexport function hyphenatedDateFromObj(date) {\r\n const month = date.getMonth() + 1;\r\n const monthStr = formatTwoDigitLeadingZero(month);\r\n const day = date.getDate();\r\n const dayStr = formatTwoDigitLeadingZero(day);\r\n const year = date.getFullYear();\r\n return `${year}-${monthStr}-${dayStr}`;\r\n}\r\n\r\nexport function isoDateStrToHyphenated(datetimeStr) {\r\n if (datetimeStr === null) {\r\n return '';\r\n }\r\n\r\n const date = new Date(datetimeStr);\r\n return hyphenatedDateFromObj(date);\r\n}\r\n\r\nexport function hyphenatedDateStrToIso(str) {\r\n if (str.length > 0) {\r\n return (new Date(str)).toISOString();\r\n }\r\n return null;\r\n}\r\n\r\nexport const addDaysToDate = (date1, days) => {\r\n var _tmpdate = new Date(date1);\r\n _tmpdate.setDate(_tmpdate.getDate() + days);\r\n return _tmpdate.getMonth() + 1 + '/' + _tmpdate.getDate() + \"/\" + _tmpdate.getFullYear();\r\n\r\n}\r\n\r\nexport const dateGreaterThanToday = (dateStr) => {\r\n let istrue = false;\r\n if (dateStr === null) {\r\n return '';\r\n }\r\n var today = new Date();\r\n dateStr = new Date(dateStr);\r\n if (dateStr > today) {\r\n return !istrue;\r\n } else {\r\n return istrue\r\n }\r\n}\r\n\r\nexport const formatAmount = (value, includeDollarSign) => {\r\n let num = value;\r\n if (num === null || num === undefined) {\r\n num = 0;\r\n }\r\n let commaDelimitedNumber = num.toLocaleString('en-US', {\r\n minimumFractionDigits: 2,\r\n maximumFractionDigits: 2,\r\n });\r\n if (commaDelimitedNumber === \"-0.00\") {\r\n commaDelimitedNumber = \"0.00\"\r\n }\r\n if (includeDollarSign) {\r\n return '$' + commaDelimitedNumber;\r\n }\r\n else {\r\n return commaDelimitedNumber;\r\n }\r\n}\r\n\r\nexport const formatAmountTo2Decimal = (value) => {\r\n let num = value;\r\n if (num === null || num === undefined) {\r\n num = 0;\r\n }\r\n let Decimal2Fixed = Number(Math.round(parseFloat(num + 'e' + 2)) + 'e-' + 2)\r\n\r\n return Decimal2Fixed;\r\n}\r\n\r\n\r\nexport const isoToSlashDate = (dateStr) => {\r\n if (dateStr === null) {\r\n return '--';\r\n }\r\n const dateObj = new Date(dateStr);\r\n const month = dateObj.getMonth() + 1;\r\n const day = dateObj.getDate();\r\n const year = dateObj.getFullYear();\r\n return `${month}/${day}/${year}`;\r\n}\r\n\r\nexport const formatTrimmedText = (str) => {\r\n if (str === null || str === undefined || str === '') {\r\n return '--';\r\n }\r\n const trimmedStr = str.trim();\r\n if (trimmedStr === '') {\r\n return '--';\r\n }\r\n return trimmedStr;\r\n}\r\n\r\nexport const generatePatchObjs = (inputObj) => (\r\n Object.keys(inputObj).map((fieldName) => ({\r\n op: 'replace',\r\n path: `/${fieldName}`,\r\n value: inputObj[fieldName],\r\n }))\r\n);\r\n\r\nexport const formatPercentage = (num) => {\r\n if (Number.isNaN(num)) {\r\n return '--';\r\n }\r\n return num.toLocaleString('en-US', {\r\n maximumFractionDigits: 2\r\n });\r\n}\r\n\r\nexport const getReplacePatchObj = (editableValues) => (\r\n Object.keys(editableValues).map(valueName => ({\r\n op: \"replace\",\r\n path: `/${valueName}`,\r\n value:\r\n editableValues[valueName] !== undefined\r\n ? editableValues[valueName]\r\n : null\r\n }))\r\n)\r\n\r\nexport const filterNonCharSpacePeriod = (str) => {\r\n const newStrChars = [];\r\n for (let i = 0; i < str.length; i++) {\r\n const charCode = str.charCodeAt(i);\r\n if (\r\n charCode === 32 || charCode === 46 ||\r\n (charCode >= 48 && charCode <= 57) ||\r\n (charCode >= 65 && charCode <= 90) ||\r\n (charCode >= 97 && charCode <= 122)\r\n ) {\r\n newStrChars.push(str[i]);\r\n }\r\n }\r\n return newStrChars.join('');\r\n};\r\n\r\nexport const filterNonChar = (str) => {\r\n const newStrChars = [];\r\n for (let i = 0; i < str.length; i++) {\r\n const charCode = str.charCodeAt(i);\r\n if (\r\n (charCode >= 48 && charCode <= 57) ||\r\n (charCode >= 65 && charCode <= 90) ||\r\n (charCode >= 97 && charCode <= 122)\r\n ) {\r\n newStrChars.push(str[i]);\r\n }\r\n }\r\n return newStrChars.join('');\r\n};\r\n\r\nexport const formatTextToNumber = (str) => {\r\n if (str === null || str === '') {\r\n return 0;\r\n }\r\n let trimmedStr = str.toString().trim();\r\n if (trimmedStr === '') {\r\n return 0;\r\n }\r\n trimmedStr = trimmedStr.replace(/^[, ]+|[, ]+$|[, ]+/g, \"\");\r\n return Number(trimmedStr);\r\n}\r\n\r\nexport const TrimText = (str) => {\r\n if (str === null || str === '') {\r\n return \"\";\r\n }\r\n const trimmedStr = str.trim();\r\n if (trimmedStr === '') {\r\n return \"\";\r\n }\r\n return trimmedStr;\r\n}\r\n\r\nexport const filterNonNumeric = (str) => {\r\n const newStrChars = [];\r\n for (let i = 0; i < str.length; i++) {\r\n const charCode = str.charCodeAt(i);\r\n if (charCode >= 48 && charCode <= 57) {\r\n newStrChars.push(str[i]);\r\n }\r\n }\r\n return newStrChars.join('');\r\n}\r\n\r\nexport const formatHyphenatedPhoneNum = (str) => {\r\n const num = Number.parseInt(str);\r\n if (Number.isNaN(num)) {\r\n return '';\r\n }\r\n const intStr = num.toString();\r\n const newStrChars = [];\r\n for (let i = 0; i < 3 && i < intStr.length; i++) {\r\n newStrChars.push(intStr[i]);\r\n }\r\n if (intStr.length > 3) {\r\n newStrChars.push('-');\r\n }\r\n for (let i = 3; i < 6 && i < intStr.length; i++) {\r\n newStrChars.push(intStr[i]);\r\n }\r\n if (intStr.length > 6) {\r\n newStrChars.push('-');\r\n }\r\n for (let i = 6; i < intStr.length; i++) {\r\n newStrChars.push(intStr[i]);\r\n }\r\n return newStrChars.join('');\r\n}\r\n\r\nexport const stateAbbreviations = {\r\n 'AL': 'Alabama',\r\n 'AK': 'Alaska',\r\n 'AZ': 'Arizona',\r\n 'AR': 'Arkansas',\r\n 'CA': 'California',\r\n 'CO': 'Colorado',\r\n 'CT': 'Connecticut',\r\n 'DE': 'Delaware',\r\n 'FL': 'Florida',\r\n 'GA': 'Georgia',\r\n 'HI': 'Hawaii',\r\n 'ID': 'Idaho',\r\n 'IL': 'Illinois',\r\n 'IN': 'Indiana',\r\n 'IA': 'Iowa',\r\n 'KS': 'Kansas',\r\n 'KY': 'Kentucky',\r\n 'LA': 'Louisiana',\r\n 'ME': 'Maine',\r\n 'MD': 'Maryland',\r\n 'MA': 'Massachusetts',\r\n 'MI': 'Michigan',\r\n 'MN': 'Minnesota',\r\n 'MS': 'Mississippi',\r\n 'MO': 'Missouri',\r\n 'MT': 'Montana',\r\n 'NE': 'Nebraska',\r\n 'NV': 'Nevada',\r\n 'NH': 'New Hampshire',\r\n 'NJ': 'New Jersey',\r\n 'NM': 'New Mexico',\r\n 'NY': 'New York',\r\n 'NC': 'North Carolina',\r\n 'ND': 'North Dakota',\r\n 'OH': 'Ohio',\r\n 'OK': 'Oklahoma',\r\n 'OR': 'Oregon',\r\n 'PA': 'Pennsylvania',\r\n 'QC': 'Quebec, Canada',\r\n 'RI': 'Rhode Island',\r\n 'SC': 'South Carolina',\r\n 'SD': 'South Dakota',\r\n 'TN': 'Tennessee',\r\n 'TX': 'Texas',\r\n 'UT': 'Utah',\r\n 'VT': 'Vermont',\r\n 'VA': 'Virginia',\r\n 'WA': 'Washington',\r\n 'WV': 'West Virginia',\r\n 'WI': 'Wisconsin',\r\n 'WY': 'Wyoming',\r\n 'DC': 'District of Columbia',\r\n 'AS': 'American Samoa',\r\n 'GU': 'Guam',\r\n 'MP': 'Northern Mariana Islands',\r\n 'PR': 'Puerto Rico',\r\n 'UM': 'United States Minor Outlying Islands',\r\n 'VI': 'U.S. Virgin Islands'\r\n};\r\n\r\nexport const convertType = TypeStr => {\r\n if (TypeStr.trim() === \"N\") {\r\n return \"Net Cost\";\r\n } else if (TypeStr.trim() === \"NC\") {\r\n return \"Clause\";\r\n } else {\r\n return TypeStr;\r\n }\r\n};\r\n\r\n//Legacy named as 'convertType' from PACC util\r\nexport const convertPaccType = TypeStr => {\r\n if (TypeStr.trim() === \"J\") {\r\n return \"Adjustment PACC\";\r\n } else if (TypeStr.trim() === \"C\") {\r\n return \"Field Change\";\r\n } else if (TypeStr.trim() === \"C1\") {\r\n return \"Field Conditions - Relocation of unidentified utilities\";\r\n } else if (TypeStr.trim() === \"C2\") {\r\n return \"Field Conditions - Removal of unidentified utilities\";\r\n } else if (TypeStr.trim() === \"C3\") {\r\n return \"Field Conditions - Geotechnical Impacts\";\r\n } else if (TypeStr.trim() === \"C4\") {\r\n return \"Field Conditions - Other\";\r\n\r\n\r\n } else if (TypeStr.trim() === \"DC\") {\r\n return \"Design Change\";\r\n } else if (TypeStr.trim() === \"DO\") {\r\n return \"Design Omit\";\r\n } else if (TypeStr.trim() === \"DE\") {\r\n return \"Design Error\";\r\n } else if (TypeStr.trim() === \"L1\") {\r\n return \"Executive Director\";\r\n } else if (TypeStr.trim() === \"L2\") {\r\n return \"Line Director\";\r\n } else if (TypeStr.trim() === \"L3\") {\r\n return \"Facility Manager\";\r\n } else if (TypeStr.trim() === \"L4\") {\r\n return \"Tenant\";\r\n } else if (TypeStr.trim() === \"L5\") {\r\n return \"Outside Stakeholder\";\r\n } else if (TypeStr.trim() === \"L6\") {\r\n return \"Facility Operations\";\r\n } else if (TypeStr.trim() === \"L7\") {\r\n return \"Public Events\";\r\n } else if (TypeStr.trim() === \"L\") {\r\n return \"Line\";\r\n } else if (TypeStr.trim() === \"F\") {\r\n return \"Disputed Exwk\";\r\n }\r\n // else {\r\n // return \"PACC\";\r\n // }\r\n};\r\n\r\nexport const convertPinType = TypeStr => {\r\n let _TypeStr = TypeStr === null || TypeStr === \"\" || TypeStr === undefined ? \"\" : TypeStr.toString();\r\n if (_TypeStr.trim() === \"L\") {\r\n return \"Line\";\r\n } else if (_TypeStr.trim() === \"C\") {\r\n return \"Field Change\";\r\n } else if (_TypeStr.trim() === \"C1\") {\r\n return \"Field Conditions - Relocation of unidentified utilities\";\r\n } else if (_TypeStr.trim() === \"C2\") {\r\n return \"Field Conditions - Removal of unidentified utilities\";\r\n } else if (_TypeStr.trim() === \"C3\") {\r\n return \"Field Conditions - Geotechnical Impacts\";\r\n } else if (_TypeStr.trim() === \"C4\") {\r\n return \"Field Conditions - Other\";\r\n } else if (_TypeStr.trim() === \"DC\") {\r\n return \"Design Change\";\r\n } else if (_TypeStr.trim() === \"DO\") {\r\n return \"Design Omit\";\r\n } else if (_TypeStr.trim() === \"DE\") {\r\n return \"Design Error\";\r\n } else if (_TypeStr.trim() === \"L1\") {\r\n return \"Executive Director\";\r\n } else if (_TypeStr.trim() === \"L2\") {\r\n return \"Line Director\";\r\n } else if (_TypeStr.trim() === \"L3\") {\r\n return \"Facility Manager\";\r\n } else if (_TypeStr.trim() === \"L4\") {\r\n return \"Tenant\";\r\n } else if (_TypeStr.trim() === \"L5\") {\r\n return \"Outside Stakeholder\";\r\n } else if (_TypeStr.trim() === \"L6\") {\r\n return \"Facility Operations\";\r\n } else if (_TypeStr.trim() === \"L7\") {\r\n return \"Public Events\";\r\n } else if (_TypeStr.trim() === \"F\") {\r\n return \"Disputed Exwk\";\r\n } else {\r\n return _TypeStr;\r\n }\r\n};\r\n\r\nexport const OrigType = OrigTypeStr => {\r\n if (OrigTypeStr.trim() === \"C\") {\r\n return \"Construction\";\r\n } else if (OrigTypeStr.trim() === \"D\") {\r\n return \"Design\";\r\n } else if (OrigTypeStr.trim() === \"L\") {\r\n return \"Line Department\";\r\n } else {\r\n return OrigTypeStr;\r\n }\r\n};\r\n\r\nexport const desiType = TypeStr => {\r\n if (TypeStr.trim() === \"A\") {\r\n return \"Lump Sum\";\r\n } else if (TypeStr.trim() === \"B\") {\r\n return \"Time & Material\";\r\n } else if (TypeStr.trim() === \"C\") {\r\n return \"Unit Price\";\r\n } else if (TypeStr.trim() === \"CR\") {\r\n return \"Credit\";\r\n } else if (TypeStr.trim() === \"D\") {\r\n return \"Lump Sum, Time & Material\";\r\n } else if (TypeStr.trim() === \"E\") {\r\n return \"Lump Sum, Unit Price\";\r\n } else if (TypeStr.trim() === \"F\") {\r\n return \"Time & Material, Unit Price\";\r\n } else if (TypeStr.trim() === \"G\") {\r\n return \"Lump Sum, Time & Material, Unit Price\";\r\n } else if (TypeStr.trim() === \"I\") {\r\n return \"Lump Sum and Unit Price\";\r\n } else if (TypeStr.trim() === \"H\") {\r\n return \"No Cost\";\r\n } else {\r\n return TypeStr;\r\n }\r\n};\r\n\r\n//OrigType from CO util\r\nexport const OrigTypeCO = OrigTypeStr => {\r\n if (OrigTypeStr.trim() === \"C\") {\r\n return \"Construction\";\r\n } else if (OrigTypeStr.trim() === \"C1\") {\r\n return \"Field Conditions - Relocation of unidentified utilities\";\r\n } else if (OrigTypeStr.trim() === \"C2\") {\r\n return \"Field Conditions - Removal of unidentified utilities\";\r\n } else if (OrigTypeStr.trim() === \"C3\") {\r\n return \"Field Conditions - Geotechnical Impacts\";\r\n } else if (OrigTypeStr.trim() === \"C4\") {\r\n return \"Field Conditions - Other\";\r\n } else if (OrigTypeStr.trim() === \"DC\") {\r\n return \"Design Change\";\r\n } else if (OrigTypeStr.trim() === \"DO\") {\r\n return \"Design Omit\";\r\n } else if (OrigTypeStr.trim() === \"DE\") {\r\n return \"Design Error\";\r\n } else if (OrigTypeStr.trim() === \"L1\") {\r\n return \"Executive Director\";\r\n } else if (OrigTypeStr.trim() === \"L2\") {\r\n return \"Line Director\";\r\n } else if (OrigTypeStr.trim() === \"L3\") {\r\n return \"Facility Manager\";\r\n } else if (OrigTypeStr.trim() === \"L4\") {\r\n return \"Tenant\";\r\n } else if (OrigTypeStr.trim() === \"L5\") {\r\n return \"Outside Stakeholder\";\r\n } else if (OrigTypeStr.trim() === \"L6\") {\r\n return \"Facility Operations\";\r\n } else if (OrigTypeStr.trim() === \"L7\") {\r\n return \"Public Events\";\r\n } else if (OrigTypeStr.trim() === \"L\") {\r\n return \"Line Department\";\r\n } else {\r\n return OrigTypeStr;\r\n }\r\n};\r\n\r\n//desiType from CO util\r\nexport const desiTypeCO = TypeStr => {\r\n if (TypeStr.trim() === \"A\") {\r\n return \"Lump Sum\";\r\n } else if (TypeStr.trim() === \"B\") {\r\n return \"Time & Material\";\r\n } else if (TypeStr.trim() === \"C\") {\r\n return \"Unit Price\";\r\n } else if (TypeStr.trim() === \"CR\") {\r\n return \"Credit\";\r\n } else if (TypeStr.trim() === \"D\") {\r\n return \"Lump Sum, Time & Material\";\r\n } else if (TypeStr.trim() === \"E\") {\r\n return \"Lump Sum, Unit Price\";\r\n } else if (TypeStr.trim() === \"F\") {\r\n return \"Time & Material, Unit Price\";\r\n } else if (TypeStr.trim() === \"I\") {\r\n return \"Lump Sum and Unit Price\";\r\n } else if (TypeStr.trim() === \"G\") {\r\n return \"Lump Sum, Time & Material, Unit Price\";\r\n } else if (TypeStr.trim() === \"H\") {\r\n return \"No Cost\";\r\n } else {\r\n return TypeStr;\r\n }\r\n};\r\n//convertType from pin util\r\nexport const convertTypePin = TypeStr => {\r\n if (TypeStr.trim() === \"L\") {\r\n return \"Line\";\r\n } else if (TypeStr.trim() === \"C\") {\r\n return \"Field Change\";\r\n } else if (TypeStr.trim() === \"C1\") {\r\n return \"Field Conditions - Relocation of unidentified utilities\";\r\n } else if (TypeStr.trim() === \"C2\") {\r\n return \"Field Conditions - Removal of unidentified utilities\";\r\n } else if (TypeStr.trim() === \"C3\") {\r\n return \"Field Conditions - Geotechnical Impacts\";\r\n } else if (TypeStr.trim() === \"C4\") {\r\n return \"Field Conditions - Other\";\r\n } else if (TypeStr.trim() === \"DC\") {\r\n return \"Design Change\";\r\n } else if (TypeStr.trim() === \"DO\") {\r\n return \"Design Omit\";\r\n } else if (TypeStr.trim() === \"DE\") {\r\n return \"Design Error\";\r\n } else if (TypeStr.trim() === \"L1\") {\r\n return \"Executive Director\";\r\n } else if (TypeStr.trim() === \"L2\") {\r\n return \"Line Director\";\r\n } else if (TypeStr.trim() === \"L3\") {\r\n return \"Facility Manager\";\r\n } else if (TypeStr.trim() === \"L4\") {\r\n return \"Tenant\";\r\n } else if (TypeStr.trim() === \"L5\") {\r\n return \"Outside Stakeholder\";\r\n } else if (TypeStr.trim() === \"L6\") {\r\n return \"Facility Operations\";\r\n } else if (TypeStr.trim() === \"L7\") {\r\n return \"Public Events\";\r\n } else if (TypeStr.trim() === \"F\") {\r\n return \"Disputed Exwk\";\r\n } else {\r\n return TypeStr;\r\n }\r\n};\r\n//convertType from fin util\r\nexport const convertTypeFin = TypeStr => {\r\n if (TypeStr.trim() === \"D\") {\r\n return \"Design\";\r\n } else if (TypeStr.trim() === \"L\") {\r\n return \"Line\";\r\n } else if (TypeStr.trim() === \"L1\") {\r\n return \"Executive Director\";\r\n } else if (TypeStr.trim() === \"L2\") {\r\n return \"Line Director\";\r\n } else if (TypeStr.trim() === \"L3\") {\r\n return \"Facility Manager\";\r\n } else if (TypeStr.trim() === \"L4\") {\r\n return \"Tenant\";\r\n } else if (TypeStr.trim() === \"L5\") {\r\n return \"Outside Stakeholder\";\r\n } else if (TypeStr.trim() === \"L6\") {\r\n return \"Facility Operations\";\r\n } else if (TypeStr.trim() === \"L7\") {\r\n return \"Public Events\";\r\n } else if (TypeStr.trim() === \"C\") {\r\n return \"Field Change\";\r\n } else if (TypeStr.trim() === \"C1\") {\r\n return \"Field Conditions - Relocation of unidentified utilities\";\r\n } else if (TypeStr.trim() === \"C2\") {\r\n return \"Field Conditions - Removal of unidentified utilities\";\r\n } else if (TypeStr.trim() === \"C3\") {\r\n return \"Field Conditions - Geotechnical Impacts\";\r\n } else if (TypeStr.trim() === \"C4\") {\r\n return \"Field Conditions - Other\";\r\n } else if (TypeStr.trim() === \"DO\") {\r\n return \"Design Omit\";\r\n } else if (TypeStr.trim() === \"F\") {\r\n return \"Disputed Exwk\";\r\n } else if (TypeStr.trim() === \"DE\") {\r\n return \"Design Error\";\r\n } else {\r\n return TypeStr;\r\n }\r\n};\r\n//From FI util\r\nexport const convertTypeFI = TypeStr => {\r\n if (TypeStr.trim() === \"J\") {\r\n return \"Adjustment PAFI\";\r\n } else {\r\n return \"PAFI\";\r\n }\r\n};\r\n//From FI util\r\nexport const OrigTypeFI = OrigTypeStr => {\r\n if (OrigTypeStr.trim() === \"C\") {\r\n return \"Construction\";\r\n } else if (OrigTypeStr.trim() === \"C1\") {\r\n return \"Field Conditions - Relocation of unidentified utilities\";\r\n } else if (OrigTypeStr.trim() === \"C2\") {\r\n return \"Field Conditions - Removal of unidentified utilities\";\r\n } else if (OrigTypeStr.trim() === \"C3\") {\r\n return \"Field Conditions - Geotechnical Impacts\";\r\n } else if (OrigTypeStr.trim() === \"C4\") {\r\n return \"Field Conditions - Other\";\r\n } else if (OrigTypeStr.trim() === \"D\") {\r\n return \"Design\";\r\n } else if (OrigTypeStr.trim() === \"DO\") {\r\n return \"Design Omit\";\r\n } else if (OrigTypeStr.trim() === \"DE\") {\r\n return \"Design Error\";\r\n } else if (OrigTypeStr.trim() === \"L1\") {\r\n return \"Executive Director\";\r\n } else if (OrigTypeStr.trim() === \"L2\") {\r\n return \"Line Director\";\r\n } else if (OrigTypeStr.trim() === \"L3\") {\r\n return \"Facility Manager\";\r\n } else if (OrigTypeStr.trim() === \"L4\") {\r\n return \"Tenant\";\r\n } else if (OrigTypeStr.trim() === \"L5\") {\r\n return \"Outside Stakeholder\";\r\n } else if (OrigTypeStr.trim() === \"L6\") {\r\n return \"Facility Operations\";\r\n } else if (OrigTypeStr.trim() === \"L7\") {\r\n return \"Public Events\";\r\n } else if (OrigTypeStr.trim() === \"L\") {\r\n return \"Line Department\";\r\n } else {\r\n return OrigTypeStr;\r\n }\r\n};\r\n//From FI util\r\nexport const desiTypeFI = TypeStr => {\r\n if (TypeStr.trim() === \"A\") {\r\n return \"Lump Sum\";\r\n } else if (TypeStr.trim() === \"B\") {\r\n return \"Time & Material\";\r\n } else if (TypeStr.trim() === \"C\") {\r\n return \"Unit Price\";\r\n } else if (TypeStr.trim() === \"CR\") {\r\n return \"Credit\";\r\n } else if (TypeStr.trim() === \"D\") {\r\n return \"Lump Sum, Time & Material\";\r\n } else if (TypeStr.trim() === \"E\") {\r\n return \"Lump Sum, Unit Price\";\r\n } else if (TypeStr.trim() === \"F\") {\r\n return \"Time & Material, Unit Price\";\r\n } else if (TypeStr.trim() === \"G\") {\r\n return \"Lump Sum, Time & Material, Unit Price\";\r\n } else if (TypeStr.trim() === \"I\") {\r\n return \"Lump Sum and Unit Price\";\r\n } else if (TypeStr.trim() === \"H\") {\r\n return \"No Cost\";\r\n } else {\r\n return TypeStr;\r\n }\r\n};\r\n//PAFI util\r\nexport const convertFinTypePAFI = TypeStr => {\r\n let _TypeStr = TypeStr === null || TypeStr === \"\" || TypeStr === undefined ? \"\" : TypeStr.toString();\r\n if (_TypeStr.trim() === \"D\") {\r\n return \"Design\";\r\n } else if (_TypeStr.trim() === \"C1\") {\r\n return \"Field Conditions - Relocation of unidentified utilities\";\r\n } else if (_TypeStr.trim() === \"C2\") {\r\n return \"Field Conditions - Removal of unidentified utilities\";\r\n } else if (_TypeStr.trim() === \"C3\") {\r\n return \"Field Conditions - Geotechnical Impacts\";\r\n } else if (_TypeStr.trim() === \"C4\") {\r\n return \"Field Conditions - Other\";\r\n } else if (_TypeStr.trim() === \"L\") {\r\n return \"Line\";\r\n } else if (_TypeStr.trim() === \"L1\") {\r\n return \"Executive Director\";\r\n } else if (_TypeStr.trim() === \"L2\") {\r\n return \"Line Director\";\r\n } else if (_TypeStr.trim() === \"L3\") {\r\n return \"Facility Manager\";\r\n } else if (_TypeStr.trim() === \"L4\") {\r\n return \"Tenant\";\r\n } else if (_TypeStr.trim() === \"L5\") {\r\n return \"Outside Stakeholder\";\r\n } else if (_TypeStr.trim() === \"L6\") {\r\n return \"Facility Operations\";\r\n } else if (_TypeStr.trim() === \"L7\") {\r\n return \"Public Events\";\r\n } else if (_TypeStr.trim() === \"C\") {\r\n return \"Field Change\";\r\n } else if (_TypeStr.trim() === \"DO\") {\r\n return \"Design Omit\";\r\n } else if (_TypeStr.trim() === \"F\") {\r\n return \"Disputed Exwk\";\r\n } else if (_TypeStr.trim() === \"DE\") {\r\n return \"Design Error\";\r\n } else {\r\n return _TypeStr;\r\n }\r\n};\r\n//PAFI util\r\nexport const OrigTypePAFI = OrigTypeStr => {\r\n if (OrigTypeStr.trim() === \"C\") {\r\n return \"Construction\";\r\n } else if (OrigTypeStr.trim() === \"D\") {\r\n return \"Design\";\r\n } else if (OrigTypeStr.trim() === \"L\") {\r\n return \"Line Department\";\r\n } else {\r\n return OrigTypeStr;\r\n }\r\n};\r\n//PAFI util\r\nexport const desiTypePAFI = TypeStr => {\r\n if (TypeStr.trim() === \"A\") {\r\n return \"Lump Sum\";\r\n } else if (TypeStr.trim() === \"B\") {\r\n return \"Time & Material\";\r\n } else if (TypeStr.trim() === \"C\") {\r\n return \"Unit Price\";\r\n } else if (TypeStr.trim() === \"CR\") {\r\n return \"Credit\";\r\n } else if (TypeStr.trim() === \"D\") {\r\n return \"Lump Sum, Time & Material\";\r\n } else if (TypeStr.trim() === \"E\") {\r\n return \"Lump Sum, Unit Price\";\r\n } else if (TypeStr.trim() === \"F\") {\r\n return \"Time & Material, Unit Price\";\r\n } else if (TypeStr.trim() === \"G\") {\r\n return \"Lump Sum, Time & Material, Unit Price\";\r\n } else if (TypeStr.trim() === \"I\") {\r\n return \"Lump Sum and Unit Price\";\r\n } else if (TypeStr.trim() === \"H\") {\r\n return \"No Cost\";\r\n } else {\r\n return TypeStr;\r\n }\r\n};\r\n//Classified\r\nexport const desiTypeClfd = TypeStr => {\r\n if (TypeStr.trim() === \"A\") {\r\n return \"Lump Sum\";\r\n } else if (TypeStr.trim() === \"B\") {\r\n return \"Time & Material\";\r\n } else if (TypeStr.trim() === \"C\") {\r\n return \"Unit Price\";\r\n } else if (TypeStr.trim() === \"CR\") {\r\n return \"Credit\";\r\n } else if (TypeStr.trim() === \"D\") {\r\n return \"Lump Sum, Time & Material\";\r\n } else if (TypeStr.trim() === \"E\") {\r\n return \"Lump Sum, Unit Price\";\r\n } else if (TypeStr.trim() === \"F\") {\r\n return \"Time & Material, Unit Price\";\r\n } else if (TypeStr.trim() === \"I\") {\r\n return \"Lump Sum and Unit Price\";\r\n } else if (TypeStr.trim() === \"G\") {\r\n return \"Lump Sum, Time & Material, Unit Price\";\r\n } else if (TypeStr.trim() === \"H\") {\r\n return \"No Cost\";\r\n } else {\r\n return TypeStr;\r\n }\r\n};\r\n//Classified\r\nexport const OrigTypeClfd = OrigTypeStr => {\r\n if (OrigTypeStr.trim() === \"C\") {\r\n return \"Construction\";\r\n } else if (OrigTypeStr.trim() === \"D\") {\r\n return \"Design\";\r\n } else if (OrigTypeStr.trim() === \"L\") {\r\n return \"Line Department\";\r\n } else {\r\n return OrigTypeStr;\r\n }\r\n};\r\n//Classified\r\nexport const convertTypeClfd = TypeStr => {\r\n if (TypeStr.trim() === \"N\") {\r\n return \"Net Cost\";\r\n } else if (TypeStr.trim() === \"NC\") {\r\n return \"Clause\";\r\n } else {\r\n return TypeStr;\r\n }\r\n};\r\n//Audit\r\nexport const convertAuditType = TypeStr => {\r\n let _TypeStr = TypeStr === null || TypeStr === \"\" || TypeStr === undefined ? \"\" : TypeStr.toString();\r\n if (_TypeStr.trim() === \"I\") {\r\n return \"INTERIM\";\r\n } else if (_TypeStr.trim() === \"F\") {\r\n return \"FINAL\";\r\n } else {\r\n return _TypeStr;\r\n }\r\n};\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport { fetchWithToken } from '../authentication';\r\nimport {\r\n getPaymentsByContractIdUrl,\r\n getPaymentByPaymentIdUrl,\r\n addPaymentUrl,\r\n editPaymentByPaymentIdUrl,\r\n postPaymentByPaymentIdUrl,\r\n finalizePaymentByPaymentIdUrl,\r\n editPaymentBondChargeCodeByPaymentIdUrl,\r\n addClassifiedPaymentUrl,\r\n editClassifiedPaymentUrl,\r\n addWorkOrderPaymentUrl,\r\n editWorkOrderPaymentUrl,\r\n addUnclassifiedPaymentUrl,\r\n editUnclassifiedPaymentUrl,\r\n addPerformbondPaymentUrl,\r\n editPerformbondPaymentUrl,\r\n addNetcostPaymentUrl,\r\n editNetcostPaymentUrl,\r\n addChangeorderPaymentUrl,\r\n editChangeorderPaymentUrl,\r\n addFieldorderPaymentUrl,\r\n editFieldorderPaymentUrl,\r\n addSupplementalPaymentUrl,\r\n editSupplementalPaymentUrl,\r\n updateRetainageUrl,\r\n updateFinancialHistoryUrl,\r\n getClassifiedPaymentInfoUrl,\r\n getUnclassifiedPaymentInfoUrl,\r\n getPerformbondPaymentInfoUrl,\r\n getFieldorderPaymentInfoUrl,\r\n getNetcostPaymentInfoUrl,\r\n getSupplementalPaymentInfoUrl,\r\n getChangeorderPaymentInfoUrl,\r\n getWorkorderPaymentsUrl,\r\n unpostPaymentByPaymentIdUrl\r\n} from '../api_endpoints';\r\nimport { updatedContractFinancialHistory, getSingleContract} from './contract';\r\n\r\nconst paymentSlice = createSlice({\r\n name: 'payments',\r\n initialState: {\r\n payments: [],\r\n selectedPayment: null,\r\n selectedRecentlyUpdated: false, // selectedPayment recently changed and route may need to be synchronized\r\n addPaymentStatus: 'IDLE',\r\n addPaymentError: null,\r\n classifiedPayments: [],\r\n classifiedEntries: [],\r\n lumpsumPayments: [],\r\n lumpsumEntries: [],\r\n performbondPayments: [],\r\n performbondEntries: [],\r\n fieldorderPayments: [],\r\n fieldorderEntries: [],\r\n netcostPayments: [],\r\n netcostEntries: [],\r\n supplementalPayments: [],\r\n supplementalEntries: [],\r\n changeorderPayments: [],\r\n changeorderEntries: [],\r\n workorderPayments: []\r\n },\r\n reducers: {\r\n gotPayments(state, action) {\r\n state.payments = action.payload;\r\n },\r\n gotSelectedPayment(state, action) {\r\n state.selectedPayment = action.payload;\r\n },\r\n addedSelectedPayment(state, action) {\r\n state.addPaymentStatus = 'SUCCESS';\r\n state.addPaymentError = null;\r\n state.selectedPayment = action.payload;\r\n state.selectedRecentlyUpdated = true;\r\n },\r\n clearSelectedPayment(state) {\r\n state.selectedPayment = null;\r\n },\r\n clearSelectedRecentlyUpdated(state) {\r\n state.selectedRecentlyUpdated = false;\r\n },\r\n clearAllPaymentData(state) {\r\n state.payments = [];\r\n state.selectedPayment = null;\r\n state.selectedRecentlyUpdated = false;\r\n state.addPaymentStatus = 'IDLE';\r\n state.addPaymentError = null;\r\n },\r\n gotClassifiedPaymentInfo(state, action) {\r\n const { classifiedPayments, classifiedEntries, chargecodeEntries} = action.payload;\r\n state.classifiedPayments = classifiedPayments;\r\n state.classifiedEntries = classifiedEntries;\r\n state.chargecodeEntries = chargecodeEntries;\r\n },\r\n clearClassifiedPaymentInfo(state) {\r\n state.classifiedPayments = [];\r\n state.classifiedEntries = [];\r\n },\r\n gotUnclassifiedPaymentInfo(state, action) {\r\n const { lumpsumPayments, lumpsumEntries } = action.payload;\r\n state.lumpsumPayments = lumpsumPayments;\r\n state.lumpsumEntries = lumpsumEntries;\r\n },\r\n clearUnclassifiedPaymentInfo(state) {\r\n state.lumpsumPayments = [];\r\n state.lumpsumEntries = [];\r\n },\r\n gotPerformbondPaymentInfo(state, action) {\r\n const { performbondPayments, performbondEntries } = action.payload;\r\n state.performbondPayments = performbondPayments;\r\n state.performbondEntries = performbondEntries;\r\n },\r\n clearPerformbondPaymentInfo(state) {\r\n state.performbondPayments = [];\r\n state.performbondEntries = [];\r\n },\r\n gotFieldorderPaymentInfo(state, action) {\r\n const { fieldorderPayments, fieldorderEntries } = action.payload;\r\n state.fieldorderPayments = fieldorderPayments;\r\n state.fieldorderEntries = fieldorderEntries;\r\n },\r\n clearFieldorderPaymentInfo(state) {\r\n state.fieldorderPayments = [];\r\n state.fieldorderEntries = [];\r\n },\r\n gotNetcostPaymentInfo(state, action) {\r\n const { netcostPayments, netcostEntries } = action.payload;\r\n state.netcostPayments = netcostPayments;\r\n state.netcostEntries = netcostEntries;\r\n },\r\n clearNetcostPaymentInfo(state) {\r\n state.netcostPayments = [];\r\n state.netcostEntries = [];\r\n },\r\n gotSupplementalPaymentInfo(state, action) {\r\n const { supplementalPayments, supplementalEntries } = action.payload;\r\n state.supplementalPayments = supplementalPayments;\r\n state.supplementalEntries = supplementalEntries;\r\n },\r\n clearSupplementalPaymentInfo(state) {\r\n state.supplementalPayments = [];\r\n state.supplementalEntries = [];\r\n },\r\n gotChangeorderPaymentInfo(state, action) {\r\n const { changeorderPayments, changeorderEntries } = action.payload;\r\n state.changeorderPayments = changeorderPayments;\r\n state.changeorderEntries = changeorderEntries;\r\n },\r\n clearChangeorderPaymentInfo(state) {\r\n state.changeorderPayments = [];\r\n state.changeorderEntries = [];\r\n },\r\n addedClassifiedPayment(state, action) {\r\n const newClassifiedPayment = action.payload;\r\n const classifiedPayments = state.classifiedPayments;\r\n if (Array.isArray(classifiedPayments)) {\r\n classifiedPayments.push(newClassifiedPayment);\r\n }\r\n },\r\n updatedClassifiedPayment(state, action) {\r\n const changedClassifiedPayment = action.payload;\r\n const classifiedPayments = state.classifiedPayments;\r\n if (Array.isArray(classifiedPayments)) {\r\n const foundIndex = classifiedPayments.findIndex(({ classifiedPaymentId }) => (\r\n classifiedPaymentId === changedClassifiedPayment.classifiedPaymentId\r\n ));\r\n if (foundIndex >= 0) {\r\n classifiedPayments[foundIndex] = changedClassifiedPayment;\r\n }\r\n }\r\n },\r\n gotWorkorderPayments(state, action) {\r\n state.workorderPayments = action.payload;\r\n },\r\n clearWorkorderPayments(state) {\r\n state.workorderPayments = [];\r\n },\r\n addedWorkOrderPayment(state, action) {\r\n const newWorkOrderPayment = action.payload;\r\n const workOrderPayments = state.workorderPayments;\r\n if (Array.isArray(workOrderPayments)) {\r\n workOrderPayments.push(newWorkOrderPayment);\r\n }\r\n },\r\n updatedWorkOrderPayment(state, action) {\r\n const changedWorkOrderPayment = action.payload;\r\n const workOrderPayments = state.workorderPayments;\r\n if (Array.isArray(workOrderPayments)) {\r\n const foundIndex = workOrderPayments.findIndex(({ workorderDetailPaymentId }) => (\r\n workorderDetailPaymentId === changedWorkOrderPayment.workorderDetailPaymentId\r\n ));\r\n if (foundIndex >= 0) {\r\n workOrderPayments[foundIndex] = changedWorkOrderPayment;\r\n }\r\n }\r\n },\r\n addedUnclassifiedPayment(state, action) {\r\n const newUnclassifiedPayment = action.payload;\r\n const unclassifiedPayments = state.lumpsumPayments;\r\n if (Array.isArray(unclassifiedPayments)) {\r\n unclassifiedPayments.push(newUnclassifiedPayment);\r\n }\r\n },\r\n updatedUnclassifiedPayment(state, action) {\r\n const changedUnclassifiedPayment = action.payload;\r\n const unclassifiedPayments = state.lumpsumPayments;\r\n if (Array.isArray(unclassifiedPayments)) {\r\n const foundIndex = unclassifiedPayments.findIndex(({ lumpsumPaymentId }) => (\r\n lumpsumPaymentId === changedUnclassifiedPayment.lumpsumPaymentId\r\n ));\r\n if (foundIndex >= 0) {\r\n unclassifiedPayments[foundIndex] = changedUnclassifiedPayment;\r\n }\r\n }\r\n },\r\n addedPerformbondPayment(state, action) {\r\n const newPerformbondPayment = action.payload;\r\n const performbondPayments = state.performbondPayments;\r\n if (Array.isArray(performbondPayments)) {\r\n performbondPayments.push(newPerformbondPayment);\r\n }\r\n },\r\n updatedPerformbondPayment(state, action) {\r\n const changedPerformbondPayment = action.payload;\r\n const performbondPayments = state.performbondPayments;\r\n if (Array.isArray(performbondPayments)) {\r\n const foundIndex = performbondPayments.findIndex(({ performbondPaymentId }) => (\r\n performbondPaymentId === changedPerformbondPayment.performbondPaymentId\r\n ));\r\n if (foundIndex >= 0) {\r\n performbondPayments[foundIndex] = changedPerformbondPayment;\r\n }\r\n }\r\n },\r\n addedNetcostPayment(state, action) {\r\n const newNetcostPayment = action.payload;\r\n const netcostPayments = state.netcostPayments;\r\n if (Array.isArray(netcostPayments)) {\r\n netcostPayments.push(newNetcostPayment);\r\n }\r\n },\r\n updatedNetcostPayment(state, action) {\r\n const changedNetcostPayment = action.payload;\r\n const netcostPayments = state.netcostPayments;\r\n if (Array.isArray(netcostPayments)) {\r\n const foundIndex = netcostPayments.findIndex(({ netcostPaymentId }) => (\r\n netcostPaymentId === changedNetcostPayment.netcostPaymentId\r\n ));\r\n if (foundIndex >= 0) {\r\n netcostPayments[foundIndex] = changedNetcostPayment;\r\n }\r\n }\r\n },\r\n addedChangeorderPayment(state, action) {\r\n const newChangeorderPayment = action.payload;\r\n const changeorderPayments = state.changeorderPayments;\r\n if (Array.isArray(changeorderPayments)) {\r\n changeorderPayments.push(newChangeorderPayment);\r\n }\r\n },\r\n updatedChangeorderPayment(state, action) {\r\n const changedChangeorderPayment = action.payload;\r\n const changeorderPayments = state.changeorderPayments;\r\n if (Array.isArray(changeorderPayments)) {\r\n const foundIndex = changeorderPayments.findIndex(({ changeorderPaymentId }) => (\r\n changeorderPaymentId === changedChangeorderPayment.changeorderPaymentId\r\n ));\r\n if (foundIndex >= 0) {\r\n changeorderPayments[foundIndex] = changedChangeorderPayment;\r\n }\r\n }\r\n },\r\n addedFieldorderPayment(state, action) {\r\n const newFieldorderPayment = action.payload;\r\n const fieldorderPayments = state.fieldorderPayments;\r\n if (Array.isArray(fieldorderPayments)) {\r\n fieldorderPayments.push(newFieldorderPayment);\r\n }\r\n },\r\n updatedFieldorderPayment(state, action) {\r\n const changedFieldorderPayment = action.payload;\r\n const fieldorderPayments = state.fieldorderPayments;\r\n if (Array.isArray(fieldorderPayments)) {\r\n const foundIndex = fieldorderPayments.findIndex(({ fieldorderPaymentId }) => (\r\n fieldorderPaymentId === changedFieldorderPayment.fieldorderPaymentId\r\n ));\r\n if (foundIndex >= 0) {\r\n fieldorderPayments[foundIndex] = changedFieldorderPayment;\r\n }\r\n }\r\n },\r\n addedSupplementalPayment(state, action) {\r\n const newSupplementalPayment = action.payload;\r\n const supplementalPayments = state.supplementalPayments;\r\n if (Array.isArray(supplementalPayments)) {\r\n supplementalPayments.push(newSupplementalPayment);\r\n }\r\n },\r\n updatedSupplementalPayment(state, action) {\r\n const changedSupplementalPayment = action.payload;\r\n const supplementalPayments = state.supplementalPayments;\r\n if (Array.isArray(supplementalPayments)) {\r\n const foundIndex = supplementalPayments.findIndex(({ supplementPaymentId }) => (\r\n supplementPaymentId === changedSupplementalPayment.supplementPaymentId\r\n ));\r\n if (foundIndex >= 0) {\r\n supplementalPayments[foundIndex] = changedSupplementalPayment;\r\n }\r\n }\r\n },\r\n updatedRetainage(state, action) {\r\n state.selectedPayment = action.payload;\r\n },\r\n updatedFinancialHistory(state, action) {\r\n state.selectedPayment.associatedContract = action.payload;\r\n },\r\n setAddPaymentError(state, action) {\r\n state.addPaymentStatus = 'FAILURE';\r\n state.addPaymentError = action.payload;\r\n },\r\n clearAddPaymentStatus(state) {\r\n state.addPaymentStatus = 'IDLE';\r\n state.addPaymentError = null;\r\n },\r\n setAddPaymentInProgress(state) {\r\n state.addPaymentStatus = 'IN_PROGRESS';\r\n state.addPaymentError = null;\r\n }\r\n }\r\n});\r\n\r\nconst { actions, reducer } = paymentSlice;\r\n\r\nexport const getPayments = (contractId) => async (dispatch) => {\r\n const response = await fetchWithToken(getPaymentsByContractIdUrl(contractId));\r\n const data = await response.json();\r\n dispatch(actions.gotPayments(data));\r\n}\r\n\r\nexport const getSelectedPayment = (paymentId) => async (dispatch) => {\r\n const response = await fetchWithToken(getPaymentByPaymentIdUrl(paymentId));\r\n const data = await response.json();\r\n dispatch(actions.gotSelectedPayment(data));\r\n}\r\n\r\nexport const addPayment = (dto) => async (dispatch) => {\r\n dispatch(actions.setAddPaymentInProgress());\r\n const response = await fetchWithToken(\r\n addPaymentUrl,\r\n {\r\n method: 'POST',\r\n body: JSON.stringify(dto),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n );\r\n\r\n if (response.status === 400) {\r\n const message = await response.text();\r\n dispatch(actions.setAddPaymentError(message));\r\n return;\r\n }\r\n\r\n const data = await response.json();\r\n dispatch(actions.addedSelectedPayment(data));\r\n}\r\n\r\nexport const editPayment = (paymentId, dto) => async (dispatch) => {\r\n const response = await fetchWithToken(\r\n editPaymentByPaymentIdUrl(paymentId),\r\n {\r\n method: 'PATCH',\r\n body: JSON.stringify(dto),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n dispatch(actions.gotSelectedPayment(data));\r\n}\r\n\r\nexport const postPayment = (paymentId, dto) => async (dispatch) => {\r\n const response = await fetchWithToken(\r\n postPaymentByPaymentIdUrl(paymentId),\r\n {\r\n method: 'PATCH',\r\n body: JSON.stringify(dto),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n dispatch(actions.gotSelectedPayment(data));\r\n}\r\n\r\nexport const finalizePayment = (paymentId) => async (dispatch) => {\r\n const response = await fetchWithToken(\r\n finalizePaymentByPaymentIdUrl(paymentId),\r\n {\r\n method: 'PATCH'\r\n }\r\n );\r\n const data = await response.json();\r\n dispatch(actions.gotSelectedPayment(data));\r\n}\r\n\r\nexport const UnpostPayment = (paymentId) => async (dispatch) => {\r\n const response = await fetchWithToken(\r\n unpostPaymentByPaymentIdUrl(paymentId),\r\n {\r\n method: 'PATCH'\r\n }\r\n );\r\n const data = await response.json();\r\n dispatch(actions.gotSelectedPayment(data));\r\n}\r\n\r\nexport const editPaymentBondChargeCode = (paymentId, dto) => async (dispatch) => {\r\n const response = await fetchWithToken(\r\n editPaymentBondChargeCodeByPaymentIdUrl(paymentId),\r\n {\r\n method: 'PATCH',\r\n body: JSON.stringify(dto),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n dispatch(actions.gotSelectedPayment(data));\r\n}\r\n\r\nexport const addClassifiedPayment = (dto) => async (dispatch) => {\r\n const response = await fetchWithToken(\r\n addClassifiedPaymentUrl,\r\n {\r\n method: 'POST',\r\n body: JSON.stringify(dto),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n dispatch(actions.addedClassifiedPayment(data));\r\n}\r\n\r\nexport const editClassifiedPayment = (dto, classifiedPaymentId) => async (dispatch) => {\r\n const response = await fetchWithToken(\r\n editClassifiedPaymentUrl(classifiedPaymentId),\r\n {\r\n method: 'PATCH',\r\n body: JSON.stringify(dto),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n dispatch(actions.updatedClassifiedPayment(data));\r\n}\r\n\r\nexport const addWorkOrderPayment = (dto) => async (dispatch) => {\r\n const response = await fetchWithToken(\r\n addWorkOrderPaymentUrl,\r\n {\r\n method: 'POST',\r\n body: JSON.stringify(dto),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n dispatch(actions.addedWorkOrderPayment(data));\r\n}\r\n\r\nexport const editWorkOrderPayment = (dto, workOrderPaymentId) => async (dispatch) => {\r\n const response = await fetchWithToken(\r\n editWorkOrderPaymentUrl(workOrderPaymentId),\r\n {\r\n method: 'PATCH',\r\n body: JSON.stringify(dto),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n dispatch(actions.updatedWorkOrderPayment(data));\r\n}\r\n\r\nexport const addUnclassifiedPayment = (dto) => async (dispatch) => {\r\n const response = await fetchWithToken(\r\n addUnclassifiedPaymentUrl,\r\n {\r\n method: 'POST',\r\n body: JSON.stringify(dto),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n dispatch(actions.addedUnclassifiedPayment(data));\r\n}\r\n\r\nexport const editUnclassifiedPayment = (dto, unclassifiedPaymentId) => async (dispatch) => {\r\n const response = await fetchWithToken(\r\n editUnclassifiedPaymentUrl(unclassifiedPaymentId),\r\n {\r\n method: 'PATCH',\r\n body: JSON.stringify(dto),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n dispatch(actions.updatedUnclassifiedPayment(data));\r\n}\r\n\r\nexport const addPerformbondPayment = (dto) => async (dispatch) => {\r\n const response = await fetchWithToken(\r\n addPerformbondPaymentUrl,\r\n {\r\n method: 'POST',\r\n body: JSON.stringify(dto),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n dispatch(actions.addedPerformbondPayment(data));\r\n}\r\n\r\nexport const editPerformbondPayment = (dto, performbondPaymentId) => async (dispatch) => {\r\n const response = await fetchWithToken(\r\n editPerformbondPaymentUrl(performbondPaymentId),\r\n {\r\n method: 'PATCH',\r\n body: JSON.stringify(dto),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n dispatch(actions.updatedPerformbondPayment(data));\r\n}\r\n\r\nexport const addNetcostPayment = (dto, contractId) => async (dispatch) => {\r\n const response = await fetchWithToken(\r\n addNetcostPaymentUrl,\r\n {\r\n method: 'POST',\r\n body: JSON.stringify(dto),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n dispatch(actions.addedNetcostPayment(data));\r\n dispatch(getSingleContract(contractId));\r\n}\r\n\r\nexport const editNetcostPayment = (dto, netcostPaymentId, contractId) => async (dispatch) => {\r\n const response = await fetchWithToken(\r\n editNetcostPaymentUrl(netcostPaymentId),\r\n {\r\n method: 'PATCH',\r\n body: JSON.stringify(dto),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n dispatch(actions.updatedNetcostPayment(data));\r\n dispatch(getSingleContract(contractId));\r\n}\r\n\r\nexport const addChangeorderPayment = (dto) => async (dispatch) => {\r\n const response = await fetchWithToken(\r\n addChangeorderPaymentUrl,\r\n {\r\n method: 'POST',\r\n body: JSON.stringify(dto),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n dispatch(actions.addedChangeorderPayment(data));\r\n}\r\n\r\nexport const editChangeorderPayment = (dto, changeorderPaymentId) => async (dispatch) => {\r\n const response = await fetchWithToken(\r\n editChangeorderPaymentUrl(changeorderPaymentId),\r\n {\r\n method: 'PATCH',\r\n body: JSON.stringify(dto),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n dispatch(actions.updatedChangeorderPayment(data));\r\n}\r\n\r\nexport const addFieldorderPayment = (dto) => async (dispatch) => {\r\n const response = await fetchWithToken(\r\n addFieldorderPaymentUrl,\r\n {\r\n method: 'POST',\r\n body: JSON.stringify(dto),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n dispatch(actions.addedFieldorderPayment(data));\r\n}\r\n\r\nexport const editFieldorderPayment = (dto, fieldorderPaymentId) => async (dispatch) => {\r\n const response = await fetchWithToken(\r\n editFieldorderPaymentUrl(fieldorderPaymentId),\r\n {\r\n method: 'PATCH',\r\n body: JSON.stringify(dto),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n dispatch(actions.updatedFieldorderPayment(data));\r\n}\r\n\r\nexport const addSupplementalPayment = (dto) => async (dispatch) => {\r\n const response = await fetchWithToken(\r\n addSupplementalPaymentUrl,\r\n {\r\n method: 'POST',\r\n body: JSON.stringify(dto),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n dispatch(actions.addedSupplementalPayment(data));\r\n}\r\n\r\nexport const editSupplementalPayment = (dto, supplementalPaymentId) => async (dispatch) => {\r\n const response = await fetchWithToken(\r\n editSupplementalPaymentUrl(supplementalPaymentId),\r\n {\r\n method: 'PATCH',\r\n body: JSON.stringify(dto),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n dispatch(actions.updatedSupplementalPayment(data));\r\n}\r\n\r\nexport const updateRetainage = (dto, paymentId) => async (dispatch) => {\r\n const response = await fetchWithToken(\r\n updateRetainageUrl(paymentId),\r\n {\r\n method: 'PATCH',\r\n body: JSON.stringify(dto),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n dispatch(actions.updatedRetainage(data));\r\n}\r\n\r\nexport const updateFinancialHistory = (dto, contractId) => async (dispatch) => {\r\n const response = await fetchWithToken(\r\n updateFinancialHistoryUrl(contractId),\r\n {\r\n method: 'PATCH',\r\n body: JSON.stringify(dto),\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n }\r\n );\r\n const data = await response.json();\r\n dispatch(actions.updatedFinancialHistory(data));\r\n const updatedValues = {\r\n sbcmplt: data.sbcmplt,\r\n fnlrem1: data.fnlrem1,\r\n fnlrem2: data.fnlrem2,\r\n fnlrem3: data.fnlrem3\r\n };\r\n dispatch(updatedContractFinancialHistory(contractId, updatedValues));\r\n}\r\n\r\nexport const getClassifiedPaymentInfo = paymentId => async (dispatch) => {\r\n const response = await fetchWithToken(getClassifiedPaymentInfoUrl(paymentId));\r\n const data = await response.json();\r\n dispatch(actions.gotClassifiedPaymentInfo(data));\r\n}\r\n\r\nexport const getUnclassifiedPaymentInfo = paymentId => async (dispatch) => {\r\n const response = await fetchWithToken(getUnclassifiedPaymentInfoUrl(paymentId));\r\n const data = await response.json();\r\n dispatch(actions.gotUnclassifiedPaymentInfo(data));\r\n}\r\n\r\nexport const getPerformbondPaymentInfo = paymentId => async (dispatch) => {\r\n const response = await fetchWithToken(getPerformbondPaymentInfoUrl(paymentId));\r\n const data = await response.json();\r\n dispatch(actions.gotPerformbondPaymentInfo(data));\r\n}\r\n\r\nexport const getFieldorderPaymentInfo = paymentId => async (dispatch) => {\r\n const response = await fetchWithToken(getFieldorderPaymentInfoUrl(paymentId));\r\n const data = await response.json();\r\n dispatch(actions.gotFieldorderPaymentInfo(data));\r\n}\r\n\r\nexport const getNetcostPaymentInfo = paymentId => async (dispatch) => {\r\n const response = await fetchWithToken(getNetcostPaymentInfoUrl(paymentId));\r\n const data = await response.json();\r\n dispatch(actions.gotNetcostPaymentInfo(data));\r\n}\r\n\r\nexport const getSupplementalPaymentInfo = paymentId => async (dispatch) => {\r\n const response = await fetchWithToken(getSupplementalPaymentInfoUrl(paymentId));\r\n const data = await response.json();\r\n dispatch(actions.gotSupplementalPaymentInfo(data));\r\n}\r\n\r\nexport const getChangeorderPaymentInfo = paymentId => async (dispatch) => {\r\n const response = await fetchWithToken(getChangeorderPaymentInfoUrl(paymentId));\r\n const data = await response.json();\r\n dispatch(actions.gotChangeorderPaymentInfo(data));\r\n}\r\n\r\nexport const getWorkorderPayments = paymentId => async (dispatch) => {\r\n const response = await fetchWithToken(getWorkorderPaymentsUrl(paymentId));\r\n const data = await response.json();\r\n dispatch(actions.gotWorkorderPayments(data));\r\n}\r\n\r\nexport const {\r\n clearSelectedPayment, clearSelectedRecentlyUpdated, clearAddPaymentStatus, clearAllPaymentData,\r\n clearClassifiedPaymentInfo, clearUnclassifiedPaymentInfo, clearPerformbondPaymentInfo, clearFieldorderPaymentInfo, clearNetcostPaymentInfo,\r\n clearSupplementalPaymentInfo, clearChangeorderPaymentInfo, clearWorkorderPayments\r\n} = actions;\r\n\r\nexport default reducer;\r\n","import { API_ROOT } from \"../api_endpoints\";\r\nimport { acquireTokenPopupAndCallAPI } from \"../authentication\";\r\n\r\nconst GOT_PINS = \"GOT_PINS\";\r\nconst GOT_SELECTED_PINS = \"GOT_SELECTED_PINS\";\r\nconst GOT_SINGLE_PIN = \"GOT_SINGLE_PIN\";\r\nconst GOT_PIN_DETAIL = \"GOT_PIN_DETAIL\";\r\nconst GOT_PACC = \"GOT_PACC\";\r\nconst GOT_SELECTED_PACC = \"GOT_SELECTED_PACC\";\r\nconst GOT_SINGLE_PACC = \"GOT_SINGLE_PACC\";\r\nconst GOT_CHANGEORDER = \"GOT_CHANGEORDER\";\r\nconst GOT_SINGLE_CHANGEORDER = \"GOT_SINGLE_CHANGEORDER\";\r\nconst GOT_CHANGEORDER_DETAIL = \"GOT_CHANGEORDER_DETAIL\";\r\nconst GOT_CHANGEORDER_DETAIL_WO = \"GOT_CHANGEORDER_DETAIL_WO\";\r\nconst GOT_CHANGEORDER_PAYMENT = \"GOT_CHANGEORDER_PAYMENT\";\r\nconst GOT_CHANGEORDER_PAYMENT_WO = \"GOT_CHANGEORDER_PAYMENT_WO\";\r\nconst GOT_CHANGEORDER_PAYMENT_CONTRACT = \"GOT_CHANGEORDER_PAYMENT_CONTRACT\";\r\n//const GOT_ADJUSTMENT_BY_CHARGECODE = \"GOT_ADJUSTMENT_BY_CHARGECODE\";\r\nconst GOT_CHANGEORDER_DETAIL_ADJUST = \"GOT_CHANGEORDER_DETAIL_ADJUST\";\r\nconst GOT_PACC_DETAIL = \"GOT_PACC_DETAIL\";\r\nconst GOT_PACC_DETAIL_WO = \"GOT_PACC_DETAIL_WO\";\r\nconst GOT_PACC_PAYMENT = \"GOT_PACC_PAYMENT\";\r\n\r\nexport const getPins = contractId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.pins}/${contractId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const pins = await response.json();\r\n\r\n dispatch(gotPins(pins));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const getPinsByPacc = paccId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.paccpins}/${paccId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const pins = await response.json();\r\n\r\n dispatch(gotSelectedPins(pins));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const getSinglePin = pinId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.pin}/${pinId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const singlePin = await response.json();\r\n dispatch(gotSinglePin(singlePin));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst gotPins = Pins => ({\r\n type: GOT_PINS,\r\n Pins\r\n});\r\n\r\nconst gotSelectedPins = selectedPins => ({\r\n type: GOT_SELECTED_PINS,\r\n selectedPins\r\n});\r\n\r\nconst gotSinglePin = singlePin => ({\r\n type: GOT_SINGLE_PIN,\r\n singlePin\r\n});\r\n\r\n//Pin Details section\r\nexport const getPinDetails = (pinId) => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.pinDetails}/${pinId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const pindetails = await response.json();\r\n dispatch(gotPinDetails(pindetails));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst gotPinDetails = PinDetails => ({\r\n type: GOT_PIN_DETAIL,\r\n PinDetails\r\n});\r\n\r\n\r\nexport const bulkEditPinDetails = (contractId, additions, edits,) => async dispatch => {\r\n await acquireTokenPopupAndCallAPI(async (token) => {\r\n const additionReqs = additions.map(entry =>\r\n fetch(`${API_ROOT.pinDetail}`, {\r\n method: \"POST\",\r\n body: JSON.stringify(entry),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n }\r\n })\r\n );\r\n const editReqs = edits.map(editObj =>\r\n fetch(`${API_ROOT.pinDetail}/?id=${editObj.pinDetailId}`, {\r\n method: \"PATCH\",\r\n body: JSON.stringify(editObj.patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`,\r\n }\r\n })\r\n );\r\n try {\r\n await Promise.all([Promise.all(additionReqs), Promise.all(editReqs)]);\r\n dispatch(getPins(contractId));\r\n //dispatch(getPinDetails(pinId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n};\r\n\r\nexport const addPin = (contractId, pinObj) => async dispatch => {\r\n pinObj.contractId = contractId;\r\n\r\n try {\r\n await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.pin}`, {\r\n method: \"POST\",\r\n body: JSON.stringify(pinObj.editableFields),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n dispatch(getPins(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const editPin = (contractId, pinId, patchObj) => async dispatch => {\r\n try {\r\n await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.pin}/?id=${pinId}`, {\r\n method: \"PATCH\",\r\n body: JSON.stringify(patchObj.patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n //dispatch(getSinglePin(pinId));\r\n dispatch(getPins(contractId));\r\n dispatch(getPacc(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\n// pacc section\r\nexport const getPacc = contractId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.paccs}/${contractId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const pacc = await response.json();\r\n\r\n dispatch(gotPacc(pacc));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const getPaccByChangeorder = changeorderId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.changeorderpacc}/${changeorderId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const pacc = await response.json();\r\n\r\n dispatch(gotSelectedPacc(pacc));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const getSinglePacc = paccId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.pacc}/${paccId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const singlePacc = await response.json();\r\n dispatch(gotSinglePacc(singlePacc));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst gotPacc = Pacc => ({\r\n type: GOT_PACC,\r\n Pacc\r\n});\r\n\r\nconst gotSelectedPacc = selectedPacc => ({\r\n type: GOT_SELECTED_PACC,\r\n selectedPacc\r\n});\r\n\r\nconst gotSinglePacc = singlePacc => ({\r\n type: GOT_SINGLE_PACC,\r\n singlePacc\r\n});\r\n\r\nexport const addPacc = (contractId, paccObj) => async dispatch => {\r\n paccObj.contractId = contractId;\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n //await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.pacc}`, {\r\n method: \"POST\",\r\n body: JSON.stringify(paccObj.AdditionFields),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const newpacc = await response.json();\r\n return (newpacc);\r\n //dispatch(getPacc(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const editPacc = (contractId, paccId, patchObj) => async dispatch => {\r\n try {\r\n await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.pacc}/?id=${paccId}`, {\r\n method: \"PATCH\",\r\n body: JSON.stringify(patchObj.patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n //dispatch(getSinglePacc(paccId));\r\n dispatch(getPacc(contractId));\r\n dispatch(getChangeorder(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\n//end pacc section\r\n\r\n//Changeorder section\r\nexport const getChangeorder = contractId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.changeorders}/${contractId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const changeorder = await response.json();\r\n dispatch(gotChangeorder(changeorder));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const getSingleChangeorder = changeorderId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.changeorder}/${changeorderId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const singleChangeorder = await response.json();\r\n dispatch(gotSingleChangeorder(singleChangeorder));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst gotChangeorder = Changeorder => ({\r\n type: GOT_CHANGEORDER,\r\n Changeorder\r\n});\r\n\r\nconst gotSingleChangeorder = singleChangeorder => ({\r\n type: GOT_SINGLE_CHANGEORDER,\r\n singleChangeorder\r\n});\r\n\r\nexport const addChangeorder = (contractId, changeorderObj) => async dispatch => {\r\n changeorderObj.contractId = contractId;\r\n\r\n try {\r\n //await acquireTokenPopupAndCallAPI(token =>\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.changeorder}`, {\r\n method: \"POST\",\r\n body: JSON.stringify(changeorderObj.editableFields),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n //dispatch(getChangeorder(contractId));\r\n const newco = await response.json();\r\n return (newco);\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const editChangeorder = (contractId, changeorderId, patchObj) => async dispatch => {\r\n try {\r\n await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.changeorder}/?id=${changeorderId}`, {\r\n method: \"PATCH\",\r\n body: JSON.stringify(patchObj.patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n //dispatch(getSingleChangeorder(changeorderId));\r\n dispatch(getChangeorder(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n//end changeorder section\r\n\r\n//get change order payments \r\nexport const getChangeorderPayments = (changeorderId) => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.changeorderPayment}/${changeorderId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const changeorderpayments = await response.json();\r\n dispatch(gotChangeorderPayments(changeorderpayments));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst gotChangeorderPayments = ChangeorderPayments => ({\r\n type: GOT_CHANGEORDER_PAYMENT,\r\n ChangeorderPayments\r\n});\r\n//\r\n\r\n//get change order payments by WO\r\nexport const getChangeorderPaymentsbyWo = (classifiedWoId) => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.changeorderPaymentByClassifiedWo}/${classifiedWoId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const changeorderpaymentswo = await response.json();\r\n dispatch(gotChangeorderPaymentsWo(changeorderpaymentswo));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst gotChangeorderPaymentsWo = changeorderPaymentsWo => ({\r\n type: GOT_CHANGEORDER_PAYMENT_WO,\r\n changeorderPaymentsWo\r\n});\r\n//\r\n\r\n//get change order payments by ContractId\r\nexport const getChangeorderPaymentsbyContractId = (ContractId) => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.changeorderPaymentByContractId}/${ContractId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const changeorderpaymentscontract = await response.json();\r\n dispatch(gotChangeorderPaymentsContract(changeorderpaymentscontract));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst gotChangeorderPaymentsContract = changeorderPaymentsContract => ({\r\n type: GOT_CHANGEORDER_PAYMENT_CONTRACT,\r\n changeorderPaymentsContract\r\n});\r\n//\r\n\r\n//Changeorder Details section\r\nexport const getChangeorderDetails = (changeorderId) => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.changeorderDetails}/${changeorderId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const changeorderdetails = await response.json();\r\n dispatch(gotChangeorderDetails(changeorderdetails));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\n\r\n//Adjustment By Change order and Chargecode\r\nexport const getAdjustmentByChangeorderAndChargecode = (changeorderId, ChargecodeId) => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.AdjustmentByChargecode}/?ChangeorderId=${changeorderId}&&ChargecodeId=${ChargecodeId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const changeorderdetailsadjustmnet = await response.json();\r\n dispatch(gotChangeorderDetailsAdjust(changeorderdetailsadjustmnet));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst gotChangeorderDetailsAdjust = ChangeorderDetailsAdjust => ({\r\n type: GOT_CHANGEORDER_DETAIL_ADJUST,\r\n ChangeorderDetailsAdjust\r\n});\r\n\r\n\r\nconst gotChangeorderDetails = ChangeorderDetails => ({\r\n type: GOT_CHANGEORDER_DETAIL,\r\n ChangeorderDetails\r\n});\r\n\r\nexport const getChangeorderDetailsWO = (id) => async (dispatch) => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) =>\r\n fetch(`${API_ROOT.changeorderDetailWO}/${id}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n const ChangeorderDetailsWO = await response.json();\r\n dispatch(\r\n gotChangeorderDetailsWO(ChangeorderDetailsWO)\r\n );\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst gotChangeorderDetailsWO = ChangeorderDetailsWO => ({\r\n type: GOT_CHANGEORDER_DETAIL_WO,\r\n ChangeorderDetailsWO\r\n});\r\n\r\nexport const addChangeorderDetail = (contractId, changeorderId, changeorderObj) => async dispatch => {\r\n changeorderObj.contractId = contractId;\r\n changeorderObj.changeorderId = changeorderId;\r\n\r\n try {\r\n await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.changeorderDetail}`, {\r\n method: \"POST\",\r\n body: JSON.stringify(changeorderObj.editableFields),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n dispatch(getChangeorder(contractId));\r\n dispatch(getChangeorderDetails(changeorderId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const editChangeorderDetail = (contractId, changeorderId, changeorderdetailId, patchObj) => async dispatch => {\r\n try {\r\n await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.changeorderDetail}/?id=${changeorderdetailId}`, {\r\n method: \"PATCH\",\r\n body: JSON.stringify(patchObj.patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n //dispatch(getSingleChangeorder(changeorderId));\r\n dispatch(getChangeorder(contractId));\r\n dispatch(getChangeorderDetails(changeorderId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\n\r\nexport const bulkEditChangeorderDetails = (contractId, additions, edits,) => async dispatch => {\r\n await acquireTokenPopupAndCallAPI(async (token) => {\r\n const additionReqs = additions.map(entry =>\r\n fetch(`${API_ROOT.changeorderDetail}`, {\r\n method: \"POST\",\r\n body: JSON.stringify(entry),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n }\r\n })\r\n );\r\n const editReqs = edits.map(editObj =>\r\n fetch(`${API_ROOT.changeorderDetail}/?id=${editObj.changeorderDetailId}`, {\r\n method: \"PATCH\",\r\n body: JSON.stringify(editObj.patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`,\r\n }\r\n })\r\n );\r\n try {\r\n await Promise.all([Promise.all(additionReqs), Promise.all(editReqs)]);\r\n dispatch(getChangeorder(contractId));\r\n //dispatch(getChangeorderDetails(changeorderId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n};\r\n//end changeorder Details section\r\n\r\nconst initialState = {\r\n Pins: [], \r\n PinDetails: [],\r\n Pacc: [],\r\n Changeorder: [],\r\n ChangeorderDetails: [],\r\n ChangeorderDetailsAdjust: [],\r\n PaccByChangeorder: [],\r\n singlePacc: null,\r\n singleChangeorder: null,\r\n\r\n PaccDetails: [], \r\n changeorderPaymentsWo: [],\r\n changeorderPaymentsContract: [],\r\n};\r\n\r\nexport default function reducer(state = initialState, action) {\r\n switch (action.type) {\r\n case GOT_PINS:\r\n const { Pins } = action;\r\n return { ...state, Pins };\r\n case GOT_SINGLE_PIN:\r\n const { singlePin } = action;\r\n return { ...state, singlePin };\r\n \r\n case GOT_PIN_DETAIL:\r\n const { PinDetails } = action;\r\n return { ...state, PinDetails };\r\n\r\n case GOT_PACC:\r\n const { Pacc } = action;\r\n return { ...state, Pacc };\r\n case GOT_SINGLE_PACC:\r\n const { singlePacc } = action;\r\n return { ...state, singlePacc };\r\n case GOT_SELECTED_PINS:\r\n const { selectedPins } = action;\r\n return { ...state, selectedPins };\r\n case GOT_SELECTED_PACC:\r\n const { selectedPacc } = action;\r\n return { ...state, selectedPacc };\r\n case GOT_CHANGEORDER:\r\n const { Changeorder } = action;\r\n return { ...state, Changeorder };\r\n case GOT_SINGLE_CHANGEORDER:\r\n const { singleChangeorder } = action;\r\n return { ...state, singleChangeorder };\r\n case GOT_CHANGEORDER_DETAIL:\r\n const { ChangeorderDetails } = action;\r\n return { ...state, ChangeorderDetails };\r\n case GOT_CHANGEORDER_DETAIL_WO:\r\n const { ChangeorderDetailsWO } = action;\r\n return { ...state, ChangeorderDetailsWO };\r\n\r\n\r\n\r\n case GOT_CHANGEORDER_PAYMENT:\r\n const { ChangeorderPayments } = action;\r\n return { ...state, ChangeorderPayments };\r\n\r\n case GOT_CHANGEORDER_DETAIL_ADJUST:\r\n const { ChangeorderDetailsAdjust } = action;\r\n return { ...state, ChangeorderDetailsAdjust };\r\n\r\n\r\n\r\n case GOT_PACC_DETAIL:\r\n const { PaccDetails } = action;\r\n return { ...state, PaccDetails };\r\n case GOT_PACC_DETAIL_WO:\r\n const { PaccDetailsWO } = action;\r\n return { ...state, PaccDetailsWO };\r\n case GOT_PACC_PAYMENT:\r\n const { PaccPayments } = action;\r\n return { ...state, PaccPayments };\r\n \r\n case GOT_CHANGEORDER_PAYMENT_WO:\r\n const { changeorderPaymentsWo } = action;\r\n return { ...state, changeorderPaymentsWo };\r\n case GOT_CHANGEORDER_PAYMENT_CONTRACT:\r\n const { changeorderPaymentsContract } = action;\r\n return { ...state, changeorderPaymentsContract };\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\n\r\n\r\n//get pacc payments \r\nexport const getPaccPayments = (paccId) => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.paccPayment}/${paccId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const paccpayments = await response.json();\r\n dispatch(gotPaccPayments(paccpayments));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst gotPaccPayments = PaccPayments => ({\r\n type: GOT_PACC_PAYMENT,\r\n PaccPayments\r\n});\r\n//\r\n\r\n//Pacc Details section\r\nexport const getPaccDetails = (paccId) => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.paccDetails}/${paccId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const paccdetails = await response.json();\r\n dispatch(gotPaccDetails(paccdetails));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst gotPaccDetails = PaccDetails => ({\r\n type: GOT_PACC_DETAIL,\r\n PaccDetails\r\n});\r\n\r\nexport const getPaccDetailsWO = (id) => async (dispatch) => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) =>\r\n fetch(`${API_ROOT.paccDetailWO}/${id}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n const PaccDetailsWO = await response.json();\r\n dispatch(\r\n gotPaccDetailsWO(PaccDetailsWO)\r\n );\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst gotPaccDetailsWO = PaccDetailsWO => ({\r\n type: GOT_PACC_DETAIL_WO,\r\n PaccDetailsWO\r\n});\r\n\r\nexport const addPaccDetail = (contractId, paccId, paccObj) => async dispatch => {\r\n paccObj.contractId = contractId;\r\n paccObj.paccId = paccId;\r\n\r\n try {\r\n await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.paccDetail}`, {\r\n method: \"POST\",\r\n body: JSON.stringify(paccObj.editableFields),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n dispatch(getPacc(contractId));\r\n dispatch(getPaccDetails(paccId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const editPaccDetail = (contractId, paccId, paccdetailId, patchObj) => async dispatch => {\r\n try {\r\n await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.paccDetail}/?id=${paccdetailId}`, {\r\n method: \"PATCH\",\r\n body: JSON.stringify(patchObj.patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n\r\n dispatch(getPacc(contractId));\r\n dispatch(getPaccDetails(paccId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\n\r\nexport const bulkEditPaccDetails = (contractId, paccId, additions, edits,) => async dispatch => {\r\n await acquireTokenPopupAndCallAPI(async (token) => {\r\n const additionReqs = additions.map(entry =>\r\n fetch(`${API_ROOT.paccDetail}`, {\r\n method: \"POST\",\r\n body: JSON.stringify(entry),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n }\r\n })\r\n );\r\n const editReqs = edits.map(editObj =>\r\n fetch(`${API_ROOT.paccDetail}/?id=${editObj.paccDetailId}`, {\r\n method: \"PATCH\",\r\n body: JSON.stringify(editObj.patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`,\r\n }\r\n })\r\n );\r\n try {\r\n const test = await Promise.all([Promise.all(additionReqs), Promise.all(editReqs)]);\r\n \r\n dispatch(getPacc(contractId));\r\n dispatch(getPaccDetails(paccId));\r\n return test.length;\r\n\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n};\r\n//end pacc Details section\r\n\r\n","import { API_ROOT } from \"../api_endpoints\";\r\nimport { acquireTokenPopupAndCallAPI } from \"../authentication\";\r\n\r\nconst GOT_FINS = \"GOT_FINS\";\r\nconst GOT_SELECTED_FINS = \"GOT_SELECTED_FINS\";\r\nconst GOT_SINGLE_FIN = \"GOT_SINGLE_FIN\";\r\nconst GOT_PAFI = \"GOT_PAFI\";\r\nconst GOT_SELECTED_PAFI = \"GOT_SELECTED_PAFI\";\r\nconst GOT_SINGLE_PAFI = \"GOT_SINGLE_PAFI\";\r\nconst GOT_FIELDORDER = \"GOT_FIELDORDER\";\r\nconst GOT_SINGLE_FIELDORDER = \"GOT_SINGLE_FIELDORDER\";\r\nconst GOT_FIELDORDER_DETAIL = \"GOT_FIELDORDER_DETAIL\";\r\nconst GOT_FIELDORDER_DETAIL_WO = \"GOT_CHANGEORDER_DETAIL_WO\";\r\nconst GOT_FIELDORDER_PAYMENT = \"GOT_FIELDORDER_PAYMENT\";\r\nconst GOT_FIELDORDER_PAYMENT_WO = \"GOT_FIELDORDER_PAYMENT_WO\";\r\nconst GOT_FIELDORDER_PAYMENT_CONTRACT = \"GOT_FIELDORDER_PAYMENT_CONTRACT\";\r\n\r\nconst GOT_PAFI_DETAIL = \"GOT_PAFI_DETAIL\";\r\nconst GOT_PAFI_DETAIL_WO = \"GOT_PAFI_DETAIL_WO\";\r\nconst GOT_PAFI_PAYMENT = \"GOT_PAFI_PAYMENT\";\r\n\r\nexport const getFins = contractId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.fins}/${contractId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const fins = await response.json();\r\n\r\n dispatch(gotFins(fins));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const getFinsByPafi = pafiId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.pafifins}/${pafiId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const fins = await response.json();\r\n\r\n dispatch(gotSelectedFins(fins));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const getSingleFin = finId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.fin}/${finId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const singleFin = await response.json();\r\n dispatch(gotSingleFin(singleFin));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst gotFins = Fins => ({\r\n type: GOT_FINS,\r\n Fins\r\n});\r\n\r\nconst gotSelectedFins = selectedFins => ({\r\n type: GOT_SELECTED_FINS,\r\n selectedFins\r\n});\r\n\r\nconst gotSingleFin = singleFin => ({\r\n type: GOT_SINGLE_FIN,\r\n singleFin\r\n});\r\n\r\nexport const addFin = (contractId, finObj) => async dispatch => {\r\n finObj.contractId = contractId;\r\n\r\n try {\r\n await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.fin}`, {\r\n method: \"POST\",\r\n body: JSON.stringify(finObj.editableFields),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n dispatch(getFins(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const editFin = (contractId, finId, patchObj) => async dispatch => {\r\n try {\r\n await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.fin}/?id=${finId}`, {\r\n method: \"PATCH\",\r\n body: JSON.stringify(patchObj.patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n //dispatch(getSingleFin(finId));\r\n dispatch(getFins(contractId));\r\n dispatch(getPafi(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\n// pafi section\r\nexport const getPafi = contractId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.pafis}/${contractId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const pafi = await response.json();\r\n\r\n dispatch(gotPafi(pafi));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const getPafiByFieldorder = fieldorderId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.fieldorderpafi}/${fieldorderId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const pafi = await response.json();\r\n\r\n dispatch(gotSelectedPafi(pafi));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const getSinglePafi = pafiId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.pafi}/${pafiId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const singlePafi = await response.json();\r\n dispatch(gotSinglePafi(singlePafi));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst gotPafi = Pafi => ({\r\n type: GOT_PAFI,\r\n Pafi\r\n});\r\n\r\nconst gotSelectedPafi = selectedPafi => ({\r\n type: GOT_SELECTED_PAFI,\r\n selectedPafi\r\n});\r\n\r\nconst gotSinglePafi = singlePafi => ({\r\n type: GOT_SINGLE_PAFI,\r\n singlePafi\r\n});\r\n\r\nexport const addPafi = (contractId, pafiObj) => async dispatch => {\r\n pafiObj.contractId = contractId;\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.pafi}`, {\r\n method: \"POST\",\r\n body: JSON.stringify(pafiObj.AdditionFields),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const newpafi = await response.json();\r\n return (newpafi);\r\n //dispatch(getPafi(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const editPafi = (contractId, pafiId, patchObj) => async dispatch => {\r\n try {\r\n await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.pafi}/?id=${pafiId}`, {\r\n method: \"PATCH\",\r\n body: JSON.stringify(patchObj.patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n //dispatch(getSinglePafi(pafiId));\r\n dispatch(getPafi(contractId));\r\n dispatch(getFieldorder(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\n//end pafi section\r\n\r\n//Fieldorder section\r\nexport const getFieldorder = contractId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.fieldorders}/${contractId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const fieldorder = await response.json();\r\n dispatch(gotFieldorder(fieldorder));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const getSingleFieldorder = fieldorderId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.fieldorder}/${fieldorderId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const singleFieldorder = await response.json();\r\n dispatch(gotSingleFieldorder(singleFieldorder));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst gotFieldorder = Fieldorder => ({\r\n type: GOT_FIELDORDER,\r\n Fieldorder\r\n});\r\n\r\nconst gotSingleFieldorder = singleFieldorder => ({\r\n type: GOT_SINGLE_FIELDORDER,\r\n singleFieldorder\r\n});\r\n\r\nexport const addFieldorder = (contractId, fieldorderObj) => async dispatch => {\r\n fieldorderObj.contractId = contractId;\r\n\r\n try {\r\n //await acquireTokenPopupAndCallAPI(token =>\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.fieldorder}`, {\r\n method: \"POST\",\r\n body: JSON.stringify(fieldorderObj.editableFields),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const newco = await response.json();\r\n return (newco);\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const editFieldorder = (contractId, fieldorderId, patchObj) => async dispatch => {\r\n try {\r\n await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.fieldorder}/?id=${fieldorderId}`, {\r\n method: \"PATCH\",\r\n body: JSON.stringify(patchObj.patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n //dispatch(getSingleFieldorder(fieldorderId));\r\n dispatch(getFieldorder(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n//end fieldorder section\r\n\r\n\r\n//get change order payments \r\nexport const getFieldorderPayments = (fieldorderId) => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.fieldorderPayment}/${fieldorderId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const fieldorderpayments = await response.json();\r\n dispatch(gotFieldorderPayments(fieldorderpayments));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst gotFieldorderPayments = FieldorderPayments => ({\r\n type: GOT_FIELDORDER_PAYMENT,\r\n FieldorderPayments\r\n});\r\n//\r\n\r\n\r\n//get Field order payments by WO\r\nexport const getFieldorderPaymentsbyWo = (classifiedWoId) => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.fieldorderPaymentByClassifiedWo}/${classifiedWoId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const fieldorderpaymentswo = await response.json();\r\n dispatch(gotFieldorderPaymentsWo(fieldorderpaymentswo));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst gotFieldorderPaymentsWo = fieldorderPaymentsWo => ({\r\n type: GOT_FIELDORDER_PAYMENT_WO,\r\n fieldorderPaymentsWo\r\n});\r\n//\r\n\r\n\r\n//get field order payments by ContractId\r\nexport const getFieldorderPaymentsbyContractId = (ContractId) => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.fieldorderPaymentByContractId}/${ContractId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const fieldorderPaymentsContract = await response.json();\r\n dispatch(gotFieldorderPaymentsContract(fieldorderPaymentsContract));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst gotFieldorderPaymentsContract = fieldorderPaymentsContract => ({\r\n type: GOT_FIELDORDER_PAYMENT_CONTRACT,\r\n fieldorderPaymentsContract\r\n});\r\n//\r\n\r\n//Fieldorder Details section\r\nexport const getFieldorderDetails = (fieldorderId) => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.fieldorderDetails}/${fieldorderId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const fieldorderdetails = await response.json();\r\n dispatch(gotFieldorderDetails(fieldorderdetails));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst gotFieldorderDetails = FieldorderDetails => ({\r\n type: GOT_FIELDORDER_DETAIL,\r\n FieldorderDetails\r\n});\r\n\r\nexport const getFieldorderDetailsWO = (id) => async (dispatch) => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) =>\r\n fetch(`${API_ROOT.fieldorderDetailWO}/${id}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n const FieldorderDetailsWO = await response.json();\r\n dispatch(\r\n gotFieldorderDetailsWO(FieldorderDetailsWO)\r\n );\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst gotFieldorderDetailsWO = FieldorderDetailsWO => ({\r\n type: GOT_FIELDORDER_DETAIL_WO,\r\n FieldorderDetailsWO\r\n});\r\n\r\nexport const addFieldorderDetail = (contractId, fieldorderId, fieldorderObj) => async dispatch => {\r\n fieldorderObj.contractId = contractId;\r\n fieldorderObj.fieldorderId = fieldorderId;\r\n\r\n try {\r\n await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.fieldorderDetail}`, {\r\n method: \"POST\",\r\n body: JSON.stringify(fieldorderObj.editableFields),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n dispatch(getFieldorder(contractId));\r\n dispatch(getFieldorderDetails(fieldorderId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const editFieldorderDetail = (contractId, fieldorderId, fieldorderdetailId, patchObj) => async dispatch => {\r\n try {\r\n await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.fieldorderDetail}/?id=${fieldorderdetailId}`, {\r\n method: \"PATCH\",\r\n body: JSON.stringify(patchObj.patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n //dispatch(getSingleFieldorder(fieldorderId));\r\n dispatch(getFieldorder(contractId));\r\n dispatch(getFieldorderDetails(fieldorderId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\n\r\nexport const bulkEditFieldorderDetails = (contractId, additions, edits,) => async dispatch => {\r\n await acquireTokenPopupAndCallAPI(async (token) => {\r\n const additionReqs = additions.map(entry =>\r\n fetch(`${API_ROOT.fieldorderDetail}`, {\r\n method: \"POST\",\r\n body: JSON.stringify(entry),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n }\r\n })\r\n );\r\n const editReqs = edits.map(editObj =>\r\n fetch(`${API_ROOT.fieldorderDetail}/?id=${editObj.fieldorderDetailId}`, {\r\n method: \"PATCH\",\r\n body: JSON.stringify(editObj.patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`,\r\n }\r\n })\r\n );\r\n try {\r\n await Promise.all([Promise.all(additionReqs), Promise.all(editReqs)]);\r\n dispatch(getFieldorder(contractId));\r\n //dispatch(getFieldorderDetails(fieldorderId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n};\r\n//end fieldorder Details section\r\n\r\nconst initialState = {\r\n Fins: [],\r\n Pafi: [],\r\n Fieldorder: [],\r\n FieldorderDetails: [],\r\n PafiByFieldorder: [],\r\n singlePafi: null,\r\n singleFieldorder: null,\r\n PafiDetails: [],\r\n fieldorderPaymentsWo: [],\r\n fieldorderPaymentsContract: [],\r\n};\r\n\r\nexport default function reducer(state = initialState, action) {\r\n switch (action.type) {\r\n case GOT_FINS:\r\n const { Fins } = action;\r\n return { ...state, Fins };\r\n case GOT_SINGLE_FIN:\r\n const { singleFin } = action;\r\n return { ...state, singleFin };\r\n case GOT_PAFI:\r\n const { Pafi } = action;\r\n return { ...state, Pafi };\r\n case GOT_SINGLE_PAFI:\r\n const { singlePafi } = action;\r\n return { ...state, singlePafi };\r\n case GOT_SELECTED_FINS:\r\n const { selectedFins } = action;\r\n return { ...state, selectedFins };\r\n case GOT_SELECTED_PAFI:\r\n const { selectedPafi } = action;\r\n return { ...state, selectedPafi };\r\n case GOT_FIELDORDER:\r\n const { Fieldorder } = action;\r\n return { ...state, Fieldorder };\r\n case GOT_SINGLE_FIELDORDER:\r\n const { singleFieldorder } = action;\r\n return { ...state, singleFieldorder };\r\n case GOT_FIELDORDER_DETAIL:\r\n const { FieldorderDetails } = action;\r\n return { ...state, FieldorderDetails };\r\n case GOT_FIELDORDER_DETAIL_WO:\r\n const { FieldorderDetailsWO } = action;\r\n return { ...state, FieldorderDetailsWO };\r\n case GOT_FIELDORDER_PAYMENT:\r\n const { FieldorderPayments } = action;\r\n return { ...state, FieldorderPayments };\r\n\r\n case GOT_PAFI_DETAIL:\r\n const { PafiDetails } = action;\r\n return { ...state, PafiDetails };\r\n case GOT_PAFI_DETAIL_WO:\r\n const { PafiDetailsWO } = action;\r\n return { ...state, PafiDetailsWO };\r\n case GOT_PAFI_PAYMENT:\r\n const { PafiPayments } = action;\r\n return { ...state, PafiPayments };\r\n case GOT_FIELDORDER_PAYMENT_WO:\r\n const { fieldorderPaymentsWo } = action;\r\n return { ...state, fieldorderPaymentsWo };\r\n case GOT_FIELDORDER_PAYMENT_CONTRACT:\r\n const { fieldorderPaymentsContract } = action;\r\n return { ...state, fieldorderPaymentsContract };\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\n\r\n//get pafi payments \r\nexport const getPafiPayments = (pafiId) => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.pafiPayment}/${pafiId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const pafipayments = await response.json();\r\n dispatch(gotPafiPayments(pafipayments));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst gotPafiPayments = PafiPayments => ({\r\n type: GOT_PAFI_PAYMENT,\r\n PafiPayments\r\n});\r\n//\r\n\r\n//Pafi Details section\r\nexport const getPafiDetails = (pafiId) => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.pafiDetails}/${pafiId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const pafidetails = await response.json();\r\n dispatch(gotPafiDetails(pafidetails));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst gotPafiDetails = PafiDetails => ({\r\n type: GOT_PAFI_DETAIL,\r\n PafiDetails\r\n});\r\n\r\nexport const getPafiDetailsWO = (id) => async (dispatch) => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) =>\r\n fetch(`${API_ROOT.pafiDetailWO}/${id}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n const PafiDetailsWO = await response.json();\r\n dispatch(\r\n gotPafiDetailsWO(PafiDetailsWO)\r\n );\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst gotPafiDetailsWO = PafiDetailsWO => ({\r\n type: GOT_PAFI_DETAIL_WO,\r\n PafiDetailsWO\r\n});\r\n\r\nexport const addPafiDetail = (contractId, pafiId, pafiObj) => async dispatch => {\r\n pafiObj.contractId = contractId;\r\n pafiObj.pafiId = pafiId;\r\n\r\n try {\r\n await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.pafiDetail}`, {\r\n method: \"POST\",\r\n body: JSON.stringify(pafiObj.editableFields),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n dispatch(getPafi(contractId));\r\n dispatch(getPafiDetails(pafiId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const editPafiDetail = (contractId, pafiId, pafidetailId, patchObj) => async dispatch => {\r\n try {\r\n await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.pafiDetail}/?id=${pafidetailId}`, {\r\n method: \"PATCH\",\r\n body: JSON.stringify(patchObj.patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n\r\n dispatch(getPafi(contractId));\r\n dispatch(getPafiDetails(pafiId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\n\r\nexport const bulkEditPafiDetails = (contractId, additions, edits,) => async dispatch => {\r\n await acquireTokenPopupAndCallAPI(async (token) => {\r\n const additionReqs = additions.map(entry =>\r\n fetch(`${API_ROOT.pafiDetail}`, {\r\n method: \"POST\",\r\n body: JSON.stringify(entry),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n }\r\n })\r\n );\r\n const editReqs = edits.map(editObj =>\r\n fetch(`${API_ROOT.pafiDetail}/?id=${editObj.pafiDetailId}`, {\r\n method: \"PATCH\",\r\n body: JSON.stringify(editObj.patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`,\r\n }\r\n })\r\n );\r\n try {\r\n await Promise.all([Promise.all(additionReqs), Promise.all(editReqs)]);\r\n dispatch(getPafi(contractId));\r\n\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n};\r\n//end pafi Details section\r\n","import { API_ROOT } from '../api_endpoints';\r\nimport { acquireTokenPopupAndCallAPI } from '../authentication';\r\n\r\nconst GOT_WORK_ORDERS = 'GOT_WORK_ORDERS';\r\nconst GOT_SINGLE_WORK_ORDER = 'GOT_SINGLE_WORK_ORDER';\r\nconst GOT_SINGLE_WORK_ORDER_PAID = 'GOT_SINGLE_WORK_ORDER_PAID';\r\nconst GOT_ACTVITY_TASKS = 'GOT_ACTVITY_TASKS';\r\nconst GOT_SINGLE_ACTIVITY_TASK = 'GOT_SINGLE_ACTIVITY_TASK';\r\nconst GOT_SINGLE_ACTIVITY_TASK_ERROR = 'GOT_SINGLE_ACTIVITY_TASK_ERROR';\r\nconst CLEAR_SINGLE_ACTIVITY_TASK_ERROR = 'CLEAR_SINGLE_ACTIVITY_TASK_ERROR';\r\nconst CLEAR_ACTIVITY_TASKS = 'CLEAR_ACTIVITY_TASKS';\r\n\r\nconst gotWorkOrders = workOrders => ({\r\n type: GOT_WORK_ORDERS,\r\n workOrders\r\n});\r\n\r\nconst gotSingleWorkOrder = singleWorkOrder => ({\r\n type: GOT_SINGLE_WORK_ORDER,\r\n singleWorkOrder\r\n});\r\n\r\nconst gotSingleWorkOrderPaid = singleWorkOrderPaid => ({\r\n type: GOT_SINGLE_WORK_ORDER_PAID,\r\n singleWorkOrderPaid\r\n});\r\n\r\nconst gotActivityTasks = activityTasks => ({\r\n type: GOT_ACTVITY_TASKS,\r\n activityTasks\r\n});\r\n\r\nconst gotSingleActivityTask = singleActivityTask => ({\r\n type: GOT_SINGLE_ACTIVITY_TASK,\r\n singleActivityTask\r\n});\r\n\r\nconst gotSingleActivityTaskError = (message) => ({\r\n type: GOT_SINGLE_ACTIVITY_TASK_ERROR,\r\n message,\r\n});\r\n\r\nexport const clearSingleActivityTaskError = () => ({\r\n type: CLEAR_SINGLE_ACTIVITY_TASK_ERROR,\r\n})\r\n\r\nexport const clearActivityTasks = () => ({\r\n type: CLEAR_ACTIVITY_TASKS\r\n});\r\n\r\nexport const getWorkOrders = contractId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) => (\r\n fetch(\r\n `${API_ROOT.workOrders}/ByContract/${contractId}`,\r\n {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n )\r\n ));\r\n const workOrders = await response.json();\r\n dispatch(gotWorkOrders(workOrders.sort()));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const getSingleWorkOrder = workOrderId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) => (\r\n fetch(`${API_ROOT.workOrders}/${workOrderId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n ))\r\n const singleWorkOrder = await response.json();\r\n dispatch(gotSingleWorkOrder(singleWorkOrder));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const getSingleWorkOrderPaid = workOrderId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) => (\r\n fetch(`${API_ROOT.WorkOrderDetailsPaid}/${workOrderId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n ))\r\n const singleWorkOrderPaid = await response.json();\r\n dispatch(gotSingleWorkOrderPaid(singleWorkOrderPaid));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const editWorkOrder = (workOrderId, patchObj) => async dispatch => {\r\n try {\r\n await acquireTokenPopupAndCallAPI((token) => (\r\n fetch(`${API_ROOT.workOrders}/?id=${workOrderId}`, {\r\n method: \"PATCH\",\r\n body: JSON.stringify(patchObj),\r\n headers: {\r\n 'Content-Type': 'application/json-patch+json',\r\n Authorization: `Bearer ${token}`,\r\n }\r\n })\r\n ));\r\n dispatch(getSingleWorkOrder(workOrderId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const getActivityTasks = workOrderId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) => (\r\n fetch(\r\n `${API_ROOT.activityTasks}/ByWorkorder/${workOrderId}`,\r\n {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n )\r\n ));\r\n const activityTasks = await response.json();\r\n dispatch(gotActivityTasks(activityTasks));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const getSingleActivityTask = activityTaskId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) => (\r\n fetch(\r\n `${API_ROOT.activityTasks}/${activityTaskId}`,\r\n {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n )\r\n ));\r\n const singleActivityTask = await response.json();\r\n dispatch(gotSingleActivityTask(singleActivityTask));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const editActivityTask = (taskId, patchObj) => async dispatch => {\r\n try {\r\n dispatch(clearSingleActivityTaskError());\r\n const response = await acquireTokenPopupAndCallAPI((token) => (\r\n fetch(`${API_ROOT.activityTasks}/?id=${taskId}`, {\r\n method: 'PATCH',\r\n body: JSON.stringify(patchObj),\r\n headers: {\r\n 'Content-Type': 'application/json-patch+json',\r\n Authorization: `Bearer ${token}`,\r\n }\r\n })\r\n ));\r\n const { status } = response;\r\n if (status === 400) {\r\n const errorMsg = await response.text();\r\n dispatch(gotSingleActivityTaskError(errorMsg));\r\n }\r\n else {\r\n dispatch(getSingleActivityTask(taskId));\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const addWorkOrder = (contractId, workOrderObj) => async dispatch => {\r\n workOrderObj.contractId = contractId;\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) => (\r\n fetch(`${API_ROOT.workOrders}`, {\r\n method: 'POST',\r\n body: JSON.stringify(workOrderObj),\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Authorization: `Bearer ${token}`,\r\n }\r\n })\r\n ));\r\n \r\n dispatch(getWorkOrders(contractId));\r\n const newWorkOrder = await response.json();//For 1776\r\n return (newWorkOrder); \r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const addActivityTask = (\r\n workOrderId,\r\n activityTaskObj\r\n) => async dispatch => {\r\n activityTaskObj.workOrderId = workOrderId;\r\n try {\r\n dispatch(clearSingleActivityTaskError());\r\n const response = await acquireTokenPopupAndCallAPI((token) => (\r\n fetch(`${API_ROOT.activityTasks}`, {\r\n method: \"POST\",\r\n body: JSON.stringify(activityTaskObj),\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Authorization: `Bearer ${token}`,\r\n }\r\n })\r\n ));\r\n const { status } = response;\r\n if (status === 400) {\r\n const errorMsg = await response.text();\r\n dispatch(gotSingleActivityTaskError(errorMsg));\r\n }\r\n else {\r\n dispatch(getActivityTasks(workOrderId));\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst initialState = {\r\n workOrders: [],\r\n singleWorkOrder: null,\r\n singleWorkOrderPaid: null,\r\n activityTasks: [],\r\n singleActivityTask: null,\r\n singleActivityTaskError: null,\r\n};\r\n\r\nexport default function reducer(state = initialState, action) {\r\n switch (action.type) {\r\n case GOT_WORK_ORDERS: {\r\n const { workOrders } = action;\r\n return { ...state, workOrders };\r\n }\r\n case GOT_SINGLE_WORK_ORDER: {\r\n const { singleWorkOrder } = action;\r\n return { ...state, singleWorkOrder };\r\n }\r\n case GOT_SINGLE_WORK_ORDER_PAID: {\r\n const { singleWorkOrderPaid } = action;\r\n return { ...state, singleWorkOrderPaid };\r\n }\r\n case GOT_ACTVITY_TASKS: {\r\n const { activityTasks } = action;\r\n return { ...state, activityTasks };\r\n }\r\n case GOT_SINGLE_ACTIVITY_TASK: {\r\n const { singleActivityTask } = action;\r\n return { ...state, singleActivityTask };\r\n }\r\n case GOT_SINGLE_ACTIVITY_TASK_ERROR: {\r\n const { message } = action;\r\n return { ...state, singleActivityTaskError: message };\r\n }\r\n case CLEAR_SINGLE_ACTIVITY_TASK_ERROR: {\r\n return { ...state, singleActivityTaskError: null };\r\n }\r\n case CLEAR_ACTIVITY_TASKS: {\r\n return { ...state, activityTasks: [] };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { createSelector, createSlice } from \"@reduxjs/toolkit\";\r\nimport { apiRequestStarted } from \"./apiActions\";\r\n\r\nconst slice = createSlice({\r\n name: \"meur\",\r\n initialState: {\r\n list: [],\r\n template: {},\r\n referenceList: [],\r\n classList: [],\r\n },\r\n reducers: {\r\n itemsLoaded: (\r\n state,\r\n { payload: { list, entity, referenceList, classList } }\r\n ) => {\r\n state.list.length = 0;\r\n state.list.push(...list);\r\n state.template = entity;\r\n state.referenceList = referenceList;\r\n state.classList = classList.map((c) => ({\r\n id: parseInt(c.title),\r\n description: c.ext1,\r\n }));\r\n },\r\n\r\n itemUpdated: ({ list }, { payload }) => {\r\n const index = list.findIndex((a) => a.id === payload.id);\r\n if (index >= 0) {\r\n list[index] = payload;\r\n }\r\n },\r\n\r\n itemDeleted: (state, { payload }) => {\r\n state.list = state.list.filter((a) => a.id !== payload.id);\r\n },\r\n\r\n itemAdded: (state, { payload }) => {\r\n state.list.unshift(payload);\r\n },\r\n },\r\n});\r\n\r\nexport default slice.reducer;\r\n\r\nconst { itemsLoaded, itemUpdated, itemAdded, itemDeleted } = slice.actions;\r\n\r\nexport const loadItems = (contractId) =>\r\n apiRequestStarted({\r\n url: \"/api/meur/\" + contractId,\r\n onSuccess: itemsLoaded.type,\r\n });\r\n\r\nexport const saveItem = ({ data, onSuccessCallback, onSuccessMessage }) =>\r\n apiRequestStarted({\r\n url: \"/api/meur/\" + data.id,\r\n method: \"patch\",\r\n data,\r\n onSuccess: itemUpdated.type,\r\n onSuccessCallback,\r\n onSuccessMessage,\r\n });\r\n\r\nexport const deleteItem = (id) =>\r\n apiRequestStarted({\r\n url: \"/api/meur/\" + id,\r\n method: \"delete\",\r\n onSuccess: itemDeleted.type,\r\n });\r\n\r\nexport const addItem = ({ data, onSuccessCallback, onSuccessMessage }) =>\r\n apiRequestStarted({\r\n url: \"/api/meur/\",\r\n method: \"post\",\r\n data,\r\n onSuccess: itemAdded.type,\r\n onSuccessCallback,\r\n onSuccessMessage,\r\n });\r\n\r\nexport const getItemById = (id) =>\r\n createSelector(\r\n (state) => state.meurs,\r\n ({ list, template }) => {\r\n if (id > 0 && list.length > 0) {\r\n return list.filter((a) => a.id === id)[0];\r\n }\r\n return template;\r\n }\r\n );\r\n\r\nexport const getReferenceList = createSelector(\r\n (state) => state.meurs,\r\n ({ referenceList }) => referenceList\r\n);\r\n\r\nexport const getClassificationList = createSelector(\r\n (state) => state.meurs,\r\n ({ classList }) => classList\r\n);\r\n\r\nexport const getContractId = createSelector(\r\n (state) => state.contract.singleContractMain,\r\n (main) => (main ? main.id : 0)\r\n);\r\n\r\nexport const getIsArchived = createSelector(\r\n (state) => state.contract.singleContractMain,\r\n (main) => (main ? main.org === \"D\" : true)\r\n);\r\n\r\nexport const getUserRoles = createSelector(\r\n (state) => state.user.me,\r\n (me) => (me && me.roles ? me.roles : {})\r\n);\r\n\r\nconst getReferenceLabel = (referenceList, id) => {\r\n if (id) {\r\n const reference = referenceList.filter((a) => a.id === id)[0];\r\n\r\n if (reference) {\r\n return reference.id + \" \" + reference.description;\r\n }\r\n }\r\n};\r\n\r\nexport const getItems = createSelector(\r\n (state) => state.meurs,\r\n ({ list: meurs, referenceList, classList }) => {\r\n return meurs.map((m) => {\r\n return {\r\n ...m,\r\n trade: getReferenceLabel(referenceList, m.trade),\r\n class: getReferenceLabel(classList, m.class),\r\n period: formateDate(m.period),\r\n todateMonority: getMonorityPercentage(m),\r\n todateFemale: getFemalePercentage(m),\r\n };\r\n });\r\n }\r\n);\r\n\r\nexport const getUtilization = (skilled) =>\r\n createSelector(\r\n (state) => state.meurs,\r\n ({ list }) => {\r\n const filtered = list.filter((a) => a.skilled === skilled);\r\n const totalHours = filtered.reduce(\r\n (p, c) => c.maleHour + c.femaleHour + p,\r\n 0\r\n );\r\n\r\n const totalFemaleHours = filtered.reduce((p, c) => c.femaleHour + p, 0);\r\n\r\n const totalMinorityHours = filtered.reduce(\r\n (p, c) => getMonorityHours(c) + p,\r\n 0\r\n );\r\n\r\n let minorityPercentage = 0;\r\n if (totalHours > 0) {\r\n minorityPercentage = (totalMinorityHours / totalHours) * 100;\r\n }\r\n\r\n minorityPercentage = minorityPercentage.toFixed(2);\r\n let feMalePercentage = 0;\r\n\r\n if (totalHours > 0) {\r\n feMalePercentage = (totalFemaleHours / totalHours) * 100;\r\n }\r\n\r\n feMalePercentage = feMalePercentage.toFixed(2);\r\n\r\n return {\r\n totalHours,\r\n totalMinorityHours,\r\n minorityPercentage,\r\n totalFemaleHours,\r\n feMalePercentage,\r\n };\r\n }\r\n );\r\n\r\nexport const getLoading = createSelector(\r\n (state) => state.contract.singleContractLoading,\r\n (loading) => loading\r\n);\r\n\r\nexport const formateDate = (jsonDate) => {\r\n if (jsonDate != null && jsonDate.length > 0) {\r\n let dValue = new Date(jsonDate);\r\n return dValue.toLocaleDateString();\r\n } else {\r\n return \"\";\r\n }\r\n};\r\n\r\nexport const getMonorityPercentage = (item) => {\r\n const total = getMonorityHours(item);\r\n\r\n const allEmployee = parseFloat(item.maleHour) + parseFloat(item.femaleHour);\r\n if (allEmployee > 0) {\r\n return ((total / allEmployee) * 100).toFixed(2);\r\n }\r\n};\r\n\r\nconst getMonorityHours = (item) => {\r\n const rows = getRows().filter((r) => r.group);\r\n\r\n const total = rows.reduce(\r\n (p, c) => parseFloat(item[c.key1]) + parseFloat(item[c.key2]) + p,\r\n 0\r\n );\r\n\r\n return total;\r\n};\r\n\r\nexport const getFemalePercentage = (item) => {\r\n const allEmployee = parseFloat(item.maleHour) + parseFloat(item.femaleHour);\r\n\r\n if (allEmployee > 0) {\r\n return ((parseFloat(item.femaleHour) / allEmployee) * 100).toFixed(2);\r\n }\r\n};\r\n\r\nexport const getMonorityHoursByCategory = (item, isMale) => {\r\n const rows = getRows().filter((r) => r.group);\r\n\r\n return rows.reduce(\r\n (p, c) =>\r\n isMale ? parseFloat(item[c.key1]) + p : parseFloat(item[c.key2]) + p,\r\n 0\r\n );\r\n};\r\n\r\nexport const getRows = () => {\r\n return [\r\n {\r\n label: \"Hours/All Employees\",\r\n key1: \"maleHour\",\r\n key2: \"femaleHour\",\r\n },\r\n {\r\n label: \"Black\",\r\n key1: \"blackMaleHour\",\r\n key2: \"blackFemaleHour\",\r\n group: \"m\",\r\n },\r\n {\r\n label: \"Hispanic\",\r\n key1: \"hispanicMaleHour\",\r\n key2: \"hispanicFemaleHour\",\r\n group: \"m\",\r\n },\r\n {\r\n label: \"Asian\",\r\n key1: \"asianMaleHour\",\r\n key2: \"asianFemaleHour\",\r\n group: \"m\",\r\n },\r\n {\r\n label: \"Native American\",\r\n key1: \"nativeMaleHour\",\r\n key2: \"nativeFemaleHour\",\r\n group: \"m\",\r\n },\r\n\r\n {\r\n label: \"Total Minority Hours\",\r\n key1: \"totalMinorityHour\",\r\n key2: \"totalMinorityFemaleHour\",\r\n isSummary: true,\r\n },\r\n {\r\n label: \"Total Employees\",\r\n key1: \"totalMaleHour\",\r\n key2: \"totalFemaleHour\",\r\n float: 0,\r\n },\r\n {\r\n label: \"Minority Employees\",\r\n key1: \"maleMinor\",\r\n key2: \"femaleMinor\",\r\n float: 0,\r\n },\r\n ];\r\n};\r\n","import { API_ROOT } from '../api_endpoints';\r\nimport { getReplacePatchObj } from '../util';\r\nimport { acquireTokenPopupAndCallAPI } from '../authentication';\r\n\r\nconst GOT_TIME_MATERIAL_ENTRIES = 'GOT_TIME_MATERIAL_ENTRIES';\r\nconst GOT_UNIT_PRICE_ENTRIES = 'GOT_UNIT_PRICE_ENTRIES';\r\nconst GOT_SINGLE_UNIT_PRICE_ENTRY = 'GOT_SINGLE_UNIT_PRICE_ENTRY';\r\nconst GOT_SINGLE_UNIT_PRICE_DETAIL_ENTRY = 'GOT_SINGLE_UNIT_PRICE_DETAIL_ENTRY';\r\nconst GOT_UNIT_PRICE_DETAIL_ENTRIES = 'GOT_UNIT_PRICE_DETAIL_ENTRIES';\r\nconst GOT_CHANGED_UNIT_PRICE_ENTRY = 'GOT_CHANGED_UNIT_PRICE_ENTRY';\r\nconst CLEAR_CHANGED_UNIT_PRICE_ENTRY = 'CLEAR_CHANGED_UNIT_PRICE_ENTRY';\r\nconst GOT_SINGLE_UNIT_PRICE_DETAIL_ENTRY_ERROR = 'GOT_SINGLE_UNIT_PRICE_DETAIL_ENTRY_ERROR';\r\nconst CLEAR_SINGLE_UNIT_PRICE_DETAIL_ENTRY_ERROR = 'CLEAR_SINGLE_UNIT_PRICE_DETAIL_ENTRY_ERROR';\r\nconst SET_UNIT_PRICE_DETAIL_API_STATUS = 'SET_UNIT_PRICE_DETAIL_API_STATUS';\r\n\r\nconst gotTimeMaterialEntries = (timeMaterialEntries) => ({\r\n timeMaterialEntries,\r\n type: GOT_TIME_MATERIAL_ENTRIES,\r\n});\r\n\r\nconst gotUnitPriceEntries = (unitPriceEntries) => ({\r\n unitPriceEntries,\r\n type: GOT_UNIT_PRICE_ENTRIES,\r\n});\r\n\r\nconst gotSingleUnitPriceEntry = (singleUnitPriceEntry) => ({\r\n singleUnitPriceEntry,\r\n type: GOT_SINGLE_UNIT_PRICE_ENTRY,\r\n});\r\n\r\nconst gotSingleUnitPriceDetailEntry = (singleUnitPriceDetailEntry) => ({\r\n singleUnitPriceDetailEntry,\r\n type: GOT_SINGLE_UNIT_PRICE_DETAIL_ENTRY,\r\n})\r\n\r\nconst gotUnitPriceDetailEntries = (unitPriceDetailEntries) => ({\r\n unitPriceDetailEntries,\r\n type: GOT_UNIT_PRICE_DETAIL_ENTRIES,\r\n});\r\n\r\nconst gotChangedUnitPriceEntry = (changedUnitPriceEntry) => ({\r\n changedUnitPriceEntry,\r\n type: GOT_CHANGED_UNIT_PRICE_ENTRY,\r\n});\r\n\r\nconst gotSingleUnitPriceDetailEntryError = (message) => ({\r\n type: GOT_SINGLE_UNIT_PRICE_DETAIL_ENTRY_ERROR,\r\n message,\r\n});\r\n\r\nexport const clearSingleUnitPriceDetailEntryError = () => ({\r\n type: CLEAR_SINGLE_UNIT_PRICE_DETAIL_ENTRY_ERROR,\r\n});\r\n\r\nexport const clearChangedUnitPriceEntry = () => ({\r\n type: CLEAR_CHANGED_UNIT_PRICE_ENTRY,\r\n});\r\n\r\nexport const setUnitPriceDetailApiStatus = (status) => ({\r\n type: SET_UNIT_PRICE_DETAIL_API_STATUS,\r\n status\r\n});\r\n\r\nexport const getTimeMaterialEntries = (workOrderDetailId) => async (dispatch) => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) => (\r\n fetch(\r\n `${API_ROOT.unitPriceByCategory}?code=CO&id=${workOrderDetailId}`,\r\n {\r\n method: 'GET',\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n },\r\n )\r\n ));\r\n const timeMaterialEntries = await response.json();\r\n dispatch(gotTimeMaterialEntries(timeMaterialEntries));\r\n }\r\n catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const addUnitPriceDetailEntry = (entryObj, workOrderDetailId, code) => (\r\n async (dispatch) => {\r\n try {\r\n dispatch(clearChangedUnitPriceEntry());\r\n dispatch(setUnitPriceDetailApiStatus('PENDING'));\r\n const response = await acquireTokenPopupAndCallAPI((token) => (\r\n fetch(\r\n `${API_ROOT.unitPrice}`,\r\n {\r\n method: 'POST',\r\n body: JSON.stringify(entryObj),\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n )\r\n ));\r\n const { status } = response;\r\n if (status === 400) {\r\n const errorMessage = await response.text();\r\n dispatch(gotSingleUnitPriceDetailEntryError(errorMessage));\r\n dispatch(setUnitPriceDetailApiStatus('ERROR'));\r\n }\r\n else {\r\n if (code === 'UC'){\r\n const unitPriceDetailObj = await response.json();\r\n dispatch(gotSingleUnitPriceDetailEntry(unitPriceDetailObj));\r\n }\r\n else {\r\n dispatch(getTimeMaterialEntries(workOrderDetailId));\r\n }\r\n dispatch(setUnitPriceDetailApiStatus('SUCCESS'));\r\n }\r\n }\r\n catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n);\r\n\r\nexport const editUnitPriceDetailEntry = (\r\n entryObj, unitPriceItemId, workOrderDetailId, code,\r\n) => (\r\n async (dispatch) => {\r\n const patchObj = getReplacePatchObj(entryObj);\r\n try {\r\n dispatch(clearChangedUnitPriceEntry());\r\n dispatch(setUnitPriceDetailApiStatus('PENDING'));\r\n const response = await acquireTokenPopupAndCallAPI((token) => (\r\n fetch(\r\n `${API_ROOT.unitPrice}/?id=${unitPriceItemId}`,\r\n {\r\n method: \"PATCH\",\r\n body: JSON.stringify(patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`,\r\n }\r\n },\r\n )\r\n ));\r\n const { status } = response;\r\n if (status === 400) {\r\n const errorMessage = await response.text();\r\n dispatch(gotSingleUnitPriceDetailEntryError(errorMessage));\r\n dispatch(setUnitPriceDetailApiStatus('ERROR'));\r\n }\r\n else {\r\n if (code === 'UC'){\r\n const unitPriceDetailObj = await response.json();\r\n dispatch(gotSingleUnitPriceDetailEntry(unitPriceDetailObj));\r\n }\r\n else {\r\n dispatch(getTimeMaterialEntries(workOrderDetailId));\r\n }\r\n dispatch(setUnitPriceDetailApiStatus('SUCCESS'));\r\n }\r\n }\r\n catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n);\r\n\r\nexport const getUnitPriceEntries = (workOrderDetailId) => async (dispatch) => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) => (\r\n fetch(\r\n API_ROOT.unitPriceByWorkOrderDetail(workOrderDetailId),\r\n {\r\n method: 'GET',\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n },\r\n )\r\n ));\r\n const unitPriceEntries = await response.json();\r\n dispatch(gotUnitPriceEntries(unitPriceEntries));\r\n }\r\n catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const getSingleUnitPriceEntry = (id) => async (dispatch) => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) => (\r\n fetch(\r\n API_ROOT.unitPriceById(id),\r\n {\r\n method: 'GET',\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n },\r\n )\r\n ));\r\n const singleUnitPriceEntry = await response.json();\r\n dispatch(gotSingleUnitPriceEntry(singleUnitPriceEntry));\r\n }\r\n catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const getUnitPriceDetailEntriesByUnitPrice = (id) => async (dispatch) => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) => (\r\n fetch(\r\n API_ROOT.unitPriceDetailsByUnitPriceId(id),\r\n {\r\n method: 'GET',\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n },\r\n )\r\n ));\r\n const unitPriceDetailEntries = await response.json();\r\n dispatch(gotUnitPriceDetailEntries(unitPriceDetailEntries));\r\n }\r\n catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const addUnitPrice = (bodyObj) => async (dispatch) => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) => (\r\n fetch(\r\n API_ROOT.addUnitPrice,\r\n {\r\n method: 'POST',\r\n body: JSON.stringify(bodyObj),\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n )\r\n ));\r\n const newEntryObj = await response.json();\r\n dispatch(gotChangedUnitPriceEntry(newEntryObj));\r\n }\r\n catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const editUnitPrice = (patchObj, id) => async (dispatch) => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) => (\r\n fetch(\r\n API_ROOT.editUnitPrice(id),\r\n {\r\n method: 'PATCH',\r\n body: JSON.stringify(patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n )\r\n ));\r\n const newEntryObj = await response.json();\r\n dispatch(gotChangedUnitPriceEntry(newEntryObj));\r\n }\r\n catch (error) {\r\n console.error(error);\r\n }\r\n}\r\n\r\nexport const getSingleUnitPriceDetailEntry = (id) => async (dispatch) => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) => (\r\n fetch(\r\n API_ROOT.unitPriceDetailById(id),\r\n {\r\n method: 'GET',\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n },\r\n )\r\n ));\r\n const singleUnitPriceDetailEntry = await response.json();\r\n dispatch(gotSingleUnitPriceDetailEntry(singleUnitPriceDetailEntry));\r\n }\r\n catch (error) {\r\n console.error(error);\r\n }\r\n}\r\n\r\nconst initialState = {\r\n timeMaterialEntries: [],\r\n unitPriceEntries: [],\r\n singleUnitPriceEntry: null,\r\n unitPriceDetailEntries: [],\r\n singleUnitPriceDetailEntry: null,\r\n changedUnitPriceEntry: null,\r\n singleUnitPriceDetailEntryError: null,\r\n unitPriceDetailApiStatus: 'IDLE'\r\n};\r\n\r\nexport default function reducer(state = initialState, action) {\r\n switch (action.type) {\r\n case GOT_TIME_MATERIAL_ENTRIES: {\r\n const { timeMaterialEntries } = action;\r\n return { ...state, timeMaterialEntries };\r\n }\r\n case GOT_UNIT_PRICE_ENTRIES: {\r\n const { unitPriceEntries } = action;\r\n return { ...state, unitPriceEntries };\r\n }\r\n case GOT_SINGLE_UNIT_PRICE_ENTRY: {\r\n const { singleUnitPriceEntry } = action;\r\n return { ...state, singleUnitPriceEntry };\r\n }\r\n case GOT_UNIT_PRICE_DETAIL_ENTRIES: {\r\n const { unitPriceDetailEntries } = action;\r\n return { ...state, unitPriceDetailEntries };\r\n }\r\n case GOT_SINGLE_UNIT_PRICE_DETAIL_ENTRY: {\r\n const { singleUnitPriceDetailEntry } = action;\r\n return { ...state, singleUnitPriceDetailEntry };\r\n }\r\n case GOT_CHANGED_UNIT_PRICE_ENTRY: {\r\n const { changedUnitPriceEntry } = action;\r\n return { ...state, changedUnitPriceEntry };\r\n }\r\n case CLEAR_CHANGED_UNIT_PRICE_ENTRY: {\r\n return { ...state, changedUnitPriceEntry: null };\r\n }\r\n case GOT_SINGLE_UNIT_PRICE_DETAIL_ENTRY_ERROR: {\r\n const { message } = action;\r\n return { ...state, singleUnitPriceDetailEntryError: message };\r\n }\r\n case CLEAR_SINGLE_UNIT_PRICE_DETAIL_ENTRY_ERROR: {\r\n return { ...state, singleUnitPriceDetailEntryError: null };\r\n }\r\n case SET_UNIT_PRICE_DETAIL_API_STATUS: {\r\n const { status } = action;\r\n return { ...state, unitPriceDetailApiStatus: status };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { API_ROOT, referenceDataByCategory } from \"../api_endpoints\";\r\nimport { acquireTokenPopupAndCallAPI } from \"../authentication\";\r\n\r\nconst GOT_FACILITIES = \"GOT_FACILITIES\";\r\n\r\nconst gotFacilities = (facilities) => ({\r\n type: GOT_FACILITIES,\r\n facilities,\r\n});\r\n\r\nconst GOT_FACILITIESADDRESSES = \"GOT_FACILITIESADDRESSES\";\r\n\r\nconst gotFacilitiesAddresses = (facilitiesAddresses) => ({\r\n type: GOT_FACILITIESADDRESSES,\r\n facilitiesAddresses,\r\n});\r\n\r\nconst initialState = {\r\n facilities: [],\r\n facilitiesAddresses:[]\r\n};\r\n\r\nexport const getFacilities = () => async (dispatch) => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) =>\r\n fetch(API_ROOT.facility, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n const facilities = await response.json();\r\n facilities.sort((a, b) => (a.name > b.name) ? 1 : -1)\r\n dispatch(gotFacilities(facilities));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const getFacilityDetail = (id) => async (dispatch) => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) =>\r\n fetch(`${API_ROOT.Facility}/${id}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n const facilityDetail = await response.json();\r\n //dispatch(gotFacilityDetail(facilityDetail));\r\n console.log(\"facility.js facility: \", facilityDetail);\r\n return facilityDetail;\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const getFacilitiesList = () => async (dispatch) => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) =>\r\n fetch(API_ROOT.facility, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n const facilities = await response.json();\r\n return facilities;\r\n //dispatch(gotFacilities(facilities));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const getAllFacilitiesList = () => async (dispatch) => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) =>\r\n fetch(API_ROOT.allFacility, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n const facilities = await response.json();\r\n return facilities;\r\n //dispatch(gotFacilities(facilities));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const getAllFacilitiesAddresses = () => async (dispatch) => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) =>\r\n fetch(referenceDataByCategory('Facility Address'), {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n const facilitiesAddresses = await response.json();\r\n dispatch(gotFacilitiesAddresses(facilitiesAddresses));\r\n return facilitiesAddresses;\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const addFacility = (facilityObj) => async (dispatch) => {\r\n try {\r\n await acquireTokenPopupAndCallAPI((token) =>\r\n fetch(API_ROOT.facility, {\r\n method: \"POST\",\r\n body: JSON.stringify(facilityObj.editableFields),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n dispatch(getFacilities());\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const editFacility = (facilityId, edits) => async (dispatch) => {\r\n await acquireTokenPopupAndCallAPI(async (token) => {\r\n const editReqs = fetch(`${API_ROOT.facility}/?id=${edits.id}`, {\r\n method: \"PATCH\",\r\n body: JSON.stringify(edits.patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n try {\r\n await Promise.all([editReqs]);\r\n //dispatch(getSingleContract(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n};\r\n\r\nexport default function reducer(state = initialState, action) {\r\n switch (action.type) {\r\n case GOT_FACILITIES: {\r\n const { facilities } = action;\r\n return { ...state, facilities };\r\n }\r\n case GOT_FACILITIESADDRESSES: {\r\n const { facilitiesAddresses } = action;\r\n return { ...state, facilitiesAddresses };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { API_ROOT, getVendorAddressesForContractUrl } from '../api_endpoints';\r\nimport { acquireTokenPopupAndCallAPI, fetchWithToken } from '../authentication';\r\n\r\nconst GOT_VENDORS = 'GOT_VENDORS';\r\nconst GOT_SINGLE_VENDOR = \"GOT_SINGLE_VENDOR\";\r\nconst GOT_CONTRACT_VENDOR_ADDRESSES = 'GOT_CONTRACT_VENDOR_ADDRESSES';\r\nconst GOT_SINGLE_PRIME_VENDOR_ADDRESS = 'GOT_SINGLE_PRIME_VENDOR_ADDRESS';\r\n\r\nexport const getVendors = () => async (dispatch) => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) => (\r\n fetch(\r\n API_ROOT.vendors,\r\n {\r\n method: 'GET',\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n },\r\n )\r\n ));\r\n const vendors = await response.json();\r\n dispatch(gotVendors(vendors));\r\n }\r\n catch (error) {\r\n console.error(error);\r\n }\r\n}\r\n\r\nconst gotVendors = (vendors) => ({\r\n type: GOT_VENDORS,\r\n vendors,\r\n});\r\n\r\nexport const getSingleVendor = vendorId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) => (\r\n fetch(\r\n `${API_ROOT.vendors}/${vendorId}`,\r\n {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n )\r\n ));\r\n const singleVendor = await response.json();\r\n dispatch(\r\n gotSingleVendor(singleVendor)\r\n );\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const getSingleVendorByContract = contractId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) => (\r\n fetch(\r\n `${API_ROOT.vendors}/ByContract/${contractId}`,\r\n {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n )\r\n ));\r\n const singleVendor = await response.json();\r\n dispatch(\r\n gotSingleVendor(singleVendor)\r\n );\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst gotSingleVendor = singleVendor => ({\r\n type: GOT_SINGLE_VENDOR,\r\n singleVendor\r\n});\r\n\r\nexport const getSinglePrimeVendorAddressByContract = contractId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) => (\r\n fetch(\r\n `${API_ROOT.vendors}/VendorAddress/ByContract/${contractId}`,\r\n {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n )\r\n ));\r\n const singlePrimeVendorAddress = await response.json();\r\n dispatch(\r\n gotSinglePrimeVendorAddress(singlePrimeVendorAddress)\r\n );\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst gotSinglePrimeVendorAddress = singlePrimeVendorAddress => ({\r\n type: GOT_SINGLE_PRIME_VENDOR_ADDRESS,\r\n singlePrimeVendorAddress\r\n});\r\n\r\nconst gotContractVendorAddresses = contractVendorAddresses => ({\r\n type: GOT_CONTRACT_VENDOR_ADDRESSES,\r\n contractVendorAddresses\r\n});\r\n\r\nexport const getContractVendorAddresses = contractId => async dispatch => {\r\n try {\r\n const response = await fetchWithToken(getVendorAddressesForContractUrl(contractId));\r\n const data = await response.json();\r\n dispatch(gotContractVendorAddresses(data.subVendorAddresses));\r\n }\r\n catch (error) {\r\n console.error(error);\r\n }\r\n}\r\n\r\nconst initialState = {\r\n vendors: [],\r\n singleVendor: null,\r\n singlePrimeVendorAddress: null,\r\n contractVendorAddresses: []\r\n}\r\n\r\nexport default function reducer(state = initialState, action) {\r\n switch (action.type) {\r\n case GOT_VENDORS:\r\n return { vendors: action.vendors };\r\n case GOT_SINGLE_VENDOR: {\r\n const { singleVendor } = action;\r\n return { ...state, singleVendor };\r\n }\r\n case GOT_SINGLE_PRIME_VENDOR_ADDRESS: {\r\n const { singlePrimeVendorAddress } = action;\r\n return { ...state, singlePrimeVendorAddress };\r\n }\r\n case GOT_CONTRACT_VENDOR_ADDRESSES: {\r\n const { contractVendorAddresses } = action;\r\n return { ...state, contractVendorAddresses };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { API_ROOT } from \"../api_endpoints\";\r\nimport { acquireTokenPopupAndCallAPI } from \"../authentication\";\r\n\r\nconst GOT_SPREADS = \"GOT_SPREADS\";\r\nconst GOT_SPREAD_DETAILS = \"GOT_SPREADS_DETAILS\";\r\nconst GOT_SPREAD_WIPCCLINE = \"GOT_SPREAD_WIPCCLINE\";\r\nconst GOT_SPREAD_WOCCMAPPING = \"GOT_SPREAD_WOCCMAPPING\";\r\n\r\nexport const getSpreads = contractId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.spreads}/${contractId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const spreads = await response.json();\r\n\r\n dispatch(gotSpreads(spreads));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst gotSpreads = Spreads => ({\r\n type: GOT_SPREADS,\r\n Spreads\r\n});\r\n\r\nexport const addSpread = (SpreadObj) => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.spread}`, {\r\n method: \"POST\",\r\n body: JSON.stringify(SpreadObj),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n \r\n const newspread = await response.json();\r\n dispatch(getSpreads(SpreadObj.contractId));\r\n return (newspread);\r\n //dispatch(getSpreads(SpreadObj.contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const addSpreadForYear = (SpreadObj, moyr) => async dispatch => {\r\n try {\r\n SpreadObj.moyr = moyr;\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.spread}`, {\r\n method: \"POST\",\r\n body: JSON.stringify(SpreadObj),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n \r\n const newspread = await response.json();\r\n dispatch(getSpreads(SpreadObj.contractId));\r\n return (newspread);\r\n //dispatch(getSpreads(SpreadObj.contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const editSpread = (SpreadId, patchObj) => async dispatch => {\r\n try {\r\n await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.spread}`, {\r\n method: \"PUT\",\r\n body: JSON.stringify(patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n dispatch(getSpreads(patchObj.contractId));\r\n dispatch(getSpreadDetails(patchObj.contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const getSpreadDetails = contractId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.spreaddetails}/${contractId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const spreaddetails = await response.json();\r\n\r\n dispatch(gotSpreadDetails(spreaddetails)); \r\n dispatch(getSpreads(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst gotSpreadDetails = SpreadDetails => ({\r\n type: GOT_SPREAD_DETAILS,\r\n SpreadDetails\r\n});\r\n\r\nexport const getCutOffDateByContract = (id) => async (dispatch) => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) =>\r\n fetch(`${API_ROOT.spreadCutoffDate}/${id}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n const result = await response.json();\r\n return result;\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const addSpreadDetail = (SpreadDetailObj, contractId) => async dispatch => {\r\n try {\r\n await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.spreaddetail}`, {\r\n method: \"POST\",\r\n body: JSON.stringify(SpreadDetailObj),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n dispatch(getSpreads(contractId));\r\n dispatch(getSpreadDetails(contractId)); \r\n dispatch(getSpreadWIPCCLine(contractId)); \r\n dispatch(getSpreadWOCCMapping(contractId)); \r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const editSpreadDetail = (patchObj, contractId) => async dispatch => {\r\n try {\r\n await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.spreaddetail}`, {\r\n method: \"PUT\",\r\n body: JSON.stringify(patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n dispatch(getSpreads(contractId));\r\n dispatch(getSpreadDetails(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\n// export const bulkEditSpreadDetail = (edits) => async (dispatch) => {\r\n// await acquireTokenPopupAndCallAPI(async (token) => {\r\n\r\n// const editReqs = edits.map((editObj) =>\r\n// fetch(`${API_ROOT.spreaddetail}`, {\r\n// method: \"PATCH\",\r\n// body: JSON.stringify(editObj.patchObj),\r\n// headers: {\r\n// \"Content-Type\": \"application/json-patch+json\",\r\n// Authorization: `Bearer ${token}`,\r\n// },\r\n// })\r\n// );\r\n// try {\r\n// await Promise.all([Promise.all(editReqs)]);\r\n\r\n// dispatch(getSpreadDetails(patchObj.contractId));\r\n// dispatch(getSpreads(patchObj.contractId));\r\n// } catch (error) {\r\n// console.error(error);\r\n// }\r\n// });\r\n// };\r\n\r\nexport const getSpreadWIPCCLine = contractId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.spreadwipcclineitems}/${contractId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const SpreadWIPCCLine = await response.json();\r\n\r\n dispatch(gotSpreadWIPCCLine(SpreadWIPCCLine)); \r\n dispatch(getSpreads(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst gotSpreadWIPCCLine = SpreadWIPCCLine => ({\r\n type: GOT_SPREAD_WIPCCLINE,\r\n SpreadWIPCCLine\r\n});\r\n\r\nexport const getSpreadWOCCMapping = contractId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.spreadwoccmapping}/${contractId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const SpreadWOCCMapping = await response.json();\r\n\r\n dispatch(gotSpreadWOCCMapping(SpreadWOCCMapping));\r\n dispatch(getSpreads(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst gotSpreadWOCCMapping = SpreadWOCCMapping => ({\r\n type: GOT_SPREAD_WOCCMAPPING,\r\n SpreadWOCCMapping\r\n});\r\n\r\nconst initialState = {\r\n Spreads: [],\r\n SpreadDetails: [],\r\n SpreadWIPCCLine: [],\r\n SpreadWOCCMapping: [],\r\n};\r\n\r\nexport default function reducer(state = initialState, action) {\r\n switch (action.type) {\r\n case GOT_SPREADS:\r\n const { Spreads } = action;\r\n return { ...state, Spreads };\r\n case GOT_SPREAD_DETAILS:\r\n const { SpreadDetails } = action;\r\n return { ...state, SpreadDetails };\r\n case GOT_SPREAD_WIPCCLINE:\r\n const { SpreadWIPCCLine } = action;\r\n return { ...state, SpreadWIPCCLine };\r\n case GOT_SPREAD_WOCCMAPPING:\r\n const { SpreadWOCCMapping } = action;\r\n return { ...state, SpreadWOCCMapping };\r\n\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { API_ROOT } from \"../api_endpoints\";\r\nimport { acquireTokenPopupAndCallAPI } from \"../authentication\";\r\n\r\nconst GOT_RECYCLES = \"GOT_RECYCLES\";\r\nconst GOT_RECYCLEPLANS = \"GOT_RECYCLEPLANS\";\r\n\r\nconst gotRecycles = Recycles => ({\r\n type: GOT_RECYCLES,\r\n Recycles\r\n});\r\n\r\nexport const getRecycles = contractId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.recycles}/${contractId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const recycles = await response.json();\r\n\r\n dispatch(gotRecycles(recycles));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const addRecycle = (RecycleObj) => async dispatch => {\r\n try {\r\n await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.recycle}`, {\r\n method: \"POST\",\r\n body: JSON.stringify(RecycleObj),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n dispatch(getRecycles(RecycleObj.contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const editRecycle = (RecycleId, patchObj) => async dispatch => {\r\n try {\r\n await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.recycle}`, {\r\n method: \"PUT\",\r\n body: JSON.stringify(patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n dispatch(getRecycles(patchObj.contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst gotRecyclePlans = RecyclePlans => ({\r\n type: GOT_RECYCLEPLANS,\r\n RecyclePlans\r\n});\r\n\r\nexport const getRecyclePlans = contractId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.recyclePlans}/${contractId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const recycleplans = await response.json();\r\n\r\n dispatch(gotRecyclePlans(recycleplans));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const addRecyclePlan = (RecyclePlanObj) => async dispatch => {\r\n try {\r\n await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.recyclePlan}`, {\r\n method: \"POST\",\r\n body: JSON.stringify(RecyclePlanObj),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n dispatch(getRecyclePlans(RecyclePlanObj.contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const editRecyclePlan = (RecyclePlanId, patchObj) => async dispatch => {\r\n try {\r\n await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.recyclePlan}`, {\r\n method: \"PUT\",\r\n body: JSON.stringify(patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n dispatch(getRecyclePlans(patchObj.contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst initialState = {\r\n Recycles: [],\r\n RecyclePlans: [],\r\n};\r\n\r\nexport default function reducer(state = initialState, action) {\r\n switch (action.type) {\r\n case GOT_RECYCLES:\r\n const { Recycles } = action;\r\n return { ...state, Recycles };\r\n case GOT_RECYCLEPLANS:\r\n const { RecyclePlans } = action;\r\n return { ...state, RecyclePlans };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { acquireTokenPopupAndCallAPI } from \"../authentication\";\r\n\r\nimport { Modal } from 'antd';\r\nconst initialState = {\r\n assignments: [],\r\n drafts:[],\r\n management:[],\r\n sarForm:{},\r\n};\r\n\r\n\r\n\r\n\r\n\r\nexport const loadDraft = () => dispatch => {\r\n acquireTokenPopupAndCallAPI(token => {\r\n fetch('/api/workflow/drafts', {\r\n method: 'GET',\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }).then(res => {\r\n let jsonData = res.json();\r\n return jsonData;\r\n }).then(res => {\r\n dispatch({\r\n type: 'loadDrafts',\r\n payload: res.data,\r\n });\r\n\r\n });\r\n });\r\n}\r\n\r\nexport const loadManagement = () => dispatch => {\r\n acquireTokenPopupAndCallAPI(token => {\r\n fetch('/api/workflow/management', {\r\n method: 'GET',\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }).then(res => {\r\n let jsonData = res.json();\r\n return jsonData;\r\n }).then(res => {\r\n dispatch({\r\n type: 'loadManagement',\r\n payload: res.data,\r\n });\r\n\r\n });\r\n });\r\n}\r\n\r\nexport const deleteDraft = (workflowId) => dispatch => {\r\n acquireTokenPopupAndCallAPI(token => {\r\n fetch(`/api/workflow/${workflowId}`, {\r\n method: 'DELETE',\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }).then(res => {\r\n dispatch({\r\n type: 'deleteDraft',\r\n payload: workflowId,\r\n });\r\n\r\n });\r\n });\r\n}\r\n\r\n\r\nexport const loadSARForm = (workflowId) => dispatch => {\r\n acquireTokenPopupAndCallAPI(token => {\r\n fetch(`/api/sarworkflow/load/${workflowId}`, {\r\n method: 'GET',\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }).then(res => {\r\n let jsonData = res.json();\r\n return jsonData;\r\n }).then(res => {\r\n dispatch({\r\n type: 'loadSAR',\r\n payload: res.data,\r\n });\r\n\r\n });\r\n });\r\n}\r\n\r\nexport const initialSARForm = (formData,workflowId) => dispatch => {\r\n acquireTokenPopupAndCallAPI(token => {\r\n fetch(`/api/SARWorkflow/initial/${workflowId}`, {\r\n method: 'POST',\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n body:JSON.stringify(formData),\r\n }).then(res => {\r\n let jsonData = res.json();\r\n return jsonData;\r\n }).then(jsonRes=>{\r\n if (jsonRes.ok)\r\n {\r\n window.location.href=`#/workflow/success/${jsonRes.data}`;\r\n }\r\n else\r\n {\r\n window.location.href=`#/workflow/fail/000`\r\n }\r\n });\r\n});\r\n}\r\n\r\nconst ShowSuccessInfo=()=> {\r\n let secondsToGo = 2;\r\n const modal = Modal.success({\r\n title: 'Submission Success',\r\n content: 'Workflow draft is saved successfully!',\r\n centered:true,\r\n });\r\n const timer = setInterval(() => {\r\n secondsToGo -= 1;\r\n\r\n }, 1000);\r\n setTimeout(() => {\r\n clearInterval(timer);\r\n modal.destroy();\r\n }, secondsToGo * 1000);\r\n}\r\n\r\nexport const saveSARForm = (formData,workflowId) => dispatch => {\r\n acquireTokenPopupAndCallAPI(token => {\r\n fetch(`/api/SARWorkflow/savedraft/${workflowId}`, {\r\n method: 'POST',\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n body:JSON.stringify(formData),\r\n }).then(res => {\r\n let jsonData = res.json();\r\n return jsonData;\r\n }).then(jsonRes=>{\r\n if (jsonRes.ok)\r\n {\r\n ShowSuccessInfo();\r\n }\r\n\r\n });\r\n});\r\n}\r\n\r\n\r\n\r\n\r\nexport const actionSARForm = (formData,workflowId,actionname) => dispatch => {\r\n acquireTokenPopupAndCallAPI(token => {\r\n fetch(`/api/SARWorkflow/${actionname}/${workflowId}`, {\r\n method: 'POST',\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n body:JSON.stringify(formData),\r\n }).then(res => {\r\n return res.json();\r\n }).then(jsonRes=>{\r\n if (jsonRes.ok)\r\n {\r\n window.location.href=`#/workflow/success/${workflowId}`;\r\n }\r\n else\r\n {\r\n window.location.href=`#/workflow/fail/000`\r\n }\r\n });\r\n });\r\n}\r\n\r\nexport default function reducer(state = initialState, action) {\r\n const { payload } = action;\r\n switch (action.type) {\r\n case 'addItems': {\r\n return {\r\n ...state,\r\n assignments: state.assignments.concat(payload),\r\n }\r\n }\r\n case 'loadItems':{\r\n return {\r\n ...state,\r\n assignments: payload,\r\n }\r\n }\r\n case 'loadDrafts':{\r\n return {\r\n ...state,\r\n drafts: payload,\r\n }\r\n }\r\n\r\n case 'loadManagement':{\r\n return {\r\n ...state,\r\n management: payload,\r\n }\r\n }\r\n\r\n case 'deleteDraft':{\r\n return {\r\n ...state,\r\n drafts: state.drafts.filter(obj => obj.workflowId!==payload),\r\n }\r\n }\r\n\r\n case 'loadSAR':{\r\n return {\r\n ...state,\r\n sarForm: payload,\r\n }\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { API_ROOT } from '../api_endpoints';\r\nimport { acquireTokenPopupAndCallAPI, fetchWithToken } from '../authentication';\r\nimport { getReportServerUrlUrl } from '../api_endpoints';\r\n\r\nconst GOT_ME = 'GOT_ME';\r\nconst GOT_REPORT_SERVER_URL = 'GOT_REPORT_SERVER_URL';\r\n\r\nconst gotMe = (data) => {\r\n if (data === null || typeof data === 'string') {\r\n return {\r\n type: GOT_ME,\r\n me: data\r\n };\r\n }\r\n const {\r\n aggregatedPermissions, adminUserRole, adminUserFacility,\r\n adacountId, fullName,\r\n } = data;\r\n const permissions = aggregatedPermissions.reduce(\r\n (permissionObj, { permissionItemID, highestPrivilege }) => {\r\n permissionObj[permissionItemID] = highestPrivilege;\r\n return permissionObj;\r\n },\r\n {},\r\n );\r\n const roles = adminUserRole.reduce(\r\n (rolesObj, { role }) => {\r\n const { roleId, roleName } = role;\r\n rolesObj[roleId] = roleName;\r\n return rolesObj;\r\n },\r\n {},\r\n );\r\n const facilities = adminUserFacility.reduce(\r\n (facilitiesObj, { facility }) => {\r\n const { id, name } = facility;\r\n facilitiesObj[id] = name;\r\n return facilitiesObj;\r\n },\r\n {},\r\n )\r\n return {\r\n type: GOT_ME,\r\n me: {\r\n adacountId,\r\n fullName,\r\n permissions,\r\n roles,\r\n facilities,\r\n },\r\n };\r\n};\r\n\r\nconst gotReportServerUrl = (url) => ({\r\n type: GOT_REPORT_SERVER_URL,\r\n url\r\n});\r\n\r\nexport const getMe = () => async (dispatch) => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) => (\r\n fetch(\r\n API_ROOT.me,\r\n {\r\n method: 'GET',\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n )\r\n ));\r\n if (response.ok) {\r\n const meObj = await response.json();\r\n dispatch(gotMe(meObj));\r\n }\r\n else if (response.status === 404) {\r\n dispatch(gotMe('NO_ACCOUNT'));\r\n }\r\n else {\r\n dispatch(gotMe('ERROR'));\r\n }\r\n }\r\n catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const getReportServerUrl = () => async (dispatch) => {\r\n const response = await fetchWithToken(getReportServerUrlUrl);\r\n const data = await response.json();\r\n const url = data['ReportServerURL'] + '?/' + data['ReportFolder'] + '/';\r\n dispatch(gotReportServerUrl(url));\r\n}\r\n\r\nconst initialState = {\r\n me: null,\r\n reportServerUrl: ''\r\n};\r\n\r\nexport default function reducer(state = initialState, action) {\r\n switch (action.type) {\r\n case GOT_ME: {\r\n const { me } = action;\r\n return { ...state, me }\r\n }\r\n case GOT_REPORT_SERVER_URL: {\r\n const { url } = action;\r\n return { ...state, reportServerUrl: url }\r\n }\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { referenceDataByCategory } from '../api_endpoints';\r\nimport { acquireTokenPopupAndCallAPI } from '../authentication';\r\n\r\nconst GOT_CODES = 'GOT_CODES';\r\n\r\nconst gotCodes = (codes) => ({\r\n type: GOT_CODES,\r\n codes\r\n});\r\n\r\nexport const getCodes = () => async (dispatch) => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) => (\r\n fetch(\r\n `${referenceDataByCategory('Close & Delay Code')}`,\r\n {\r\n method: 'GET',\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n },\r\n )\r\n ));\r\n const codes = await response.json();\r\n dispatch(gotCodes(codes));\r\n }\r\n catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\n\r\nconst initialState = {\r\n codes: [],\r\n};\r\n\r\nexport default function reducer(state = initialState, action) {\r\n switch (action.type) {\r\n case GOT_CODES: {\r\n const { codes } = action;\r\n return { ...state, codes };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { API_ROOT } from \"../api_endpoints\";\r\nimport { acquireTokenPopupAndCallAPI } from '../authentication';\r\n\r\nconst GOT_FIELD_ORDERS = \"GOT_FIELD_ORDERS\";\r\nconst GOT_SINGLE_FIELD_ORDER = \"GOT_SINGLE_FIELD_ORDER\";\r\nconst GOT_ACTVITY_TASKS = \"GOT_ACTVITY_TASKS\";\r\nconst GOT_SINGLE_ACTIVITY_TASK = \"GOT_SINGLE_ACTIVITY_TASK\";\r\nconst GOT_SINGLE_ACTIVITY_TASK_ERROR = 'GOT_SINGLE_ACTIVITY_TASK_ERROR';\r\nconst CLEAR_SINGLE_ACTIVITY_TASK_ERROR = 'CLEAR_SINGLE_ACTIVITY_TASK_ERROR';\r\n\r\nconst gotFieldOrders = fieldOrders => ({\r\n type: GOT_FIELD_ORDERS,\r\n fieldOrders\r\n});\r\n\r\nconst gotSingleFieldOrder = singleFieldOrder => ({\r\n type: GOT_SINGLE_FIELD_ORDER,\r\n singleFieldOrder\r\n});\r\n\r\nconst gotActivityTasks = activityTasks => ({\r\n type: GOT_ACTVITY_TASKS,\r\n activityTasks\r\n});\r\n\r\nconst gotSingleActivityTask = singleActivityTask => ({\r\n type: GOT_SINGLE_ACTIVITY_TASK,\r\n singleActivityTask\r\n});\r\n\r\nconst gotSingleActivityTaskError = (message) => ({\r\n type: GOT_SINGLE_ACTIVITY_TASK_ERROR,\r\n message,\r\n});\r\n\r\nexport const clearSingleActivityTaskError = () => ({\r\n type: CLEAR_SINGLE_ACTIVITY_TASK_ERROR,\r\n})\r\n\r\nexport const getFieldOrders = contractId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) => (\r\n fetch(\r\n `${API_ROOT.fieldorder}/ByContract/${contractId}`,\r\n {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n )\r\n ));\r\n const fieldOrders = await response.json();\r\n dispatch(gotFieldOrders(fieldOrders));\r\n } catch (error) {\r\n console.log(\"error getting field order\");\r\n console.log(contractId);\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const getSingleFieldOrder = fieldOrderId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) => (\r\n fetch(`${API_ROOT.fieldOrders}/${fieldOrderId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n ))\r\n const singleFieldOrder = await response.json();\r\n dispatch(gotSingleFieldOrder(singleFieldOrder));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const editFieldOrder = (fieldOrderId, patchObj) => async dispatch => {\r\n try {\r\n await acquireTokenPopupAndCallAPI((token) => (\r\n fetch(`${API_ROOT.fieldOrders}/?id=${fieldOrderId}`, {\r\n method: \"PATCH\",\r\n body: JSON.stringify(patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`,\r\n }\r\n })\r\n ));\r\n dispatch(getSingleFieldOrder(fieldOrderId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const getActivityTasks = fieldOrderId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) => (\r\n fetch(\r\n `${API_ROOT.activityTasks}/ByFieldorder/${fieldOrderId}`,\r\n {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n )\r\n ));\r\n const activityTasks = await response.json();\r\n dispatch(gotActivityTasks(activityTasks));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const getSingleActivityTask = activityTaskId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) => (\r\n fetch(\r\n `${API_ROOT.activityTasks}/${activityTaskId}`,\r\n {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n )\r\n ));\r\n const singleActivityTask = await response.json();\r\n dispatch(gotSingleActivityTask(singleActivityTask));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const editActivityTask = (taskId, patchObj) => async dispatch => {\r\n try {\r\n dispatch(clearSingleActivityTaskError());\r\n const response = await acquireTokenPopupAndCallAPI((token) => (\r\n fetch(`${API_ROOT.activityTasks}/?id=${taskId}`, {\r\n method: \"PATCH\",\r\n body: JSON.stringify(patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`,\r\n }\r\n })\r\n ));\r\n const { status } = response;\r\n if (status === 400) {\r\n const errorMsg = await response.text();\r\n dispatch(gotSingleActivityTaskError(errorMsg));\r\n }\r\n else {\r\n dispatch(getSingleActivityTask(taskId));\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const addFieldOrder = (contractId, fieldOrderObj) => async dispatch => {\r\n fieldOrderObj.contractId = contractId;\r\n try {\r\n await acquireTokenPopupAndCallAPI((token) => (\r\n fetch(`${API_ROOT.fieldOrders}`, {\r\n method: \"POST\",\r\n body: JSON.stringify(fieldOrderObj),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n }\r\n })\r\n ));\r\n dispatch(getFieldOrders(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const addActivityTask = (\r\n fieldOrderId,\r\n activityTaskObj\r\n) => async dispatch => {\r\n activityTaskObj.fieldOrderId = fieldOrderId;\r\n try {\r\n dispatch(clearSingleActivityTaskError());\r\n const response = await acquireTokenPopupAndCallAPI((token) => (\r\n fetch(`${API_ROOT.activityTasks}`, {\r\n method: \"POST\",\r\n body: JSON.stringify(activityTaskObj),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n }\r\n })\r\n ));\r\n const { status } = response;\r\n if (status === 400) {\r\n const errorMsg = await response.text();\r\n dispatch(gotSingleActivityTaskError(errorMsg));\r\n }\r\n else {\r\n dispatch(getActivityTasks(fieldOrderId));\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\n\r\nconst initialState = {\r\n fieldOrders: [],\r\n singleFieldOrder: null,\r\n activityTasks: [],\r\n singleActivityTask: null,\r\n singleActivityTaskError: null,\r\n};\r\n\r\nexport default function(state = initialState, action) {\r\n switch (action.type) {\r\n case GOT_FIELD_ORDERS: {\r\n const { fieldOrders } = action;\r\n return { ...state, fieldOrders };\r\n }\r\n case GOT_SINGLE_FIELD_ORDER: {\r\n const { singleFieldOrder } = action;\r\n return { ...state, singleFieldOrder };\r\n }\r\n case GOT_ACTVITY_TASKS: {\r\n const { activityTasks } = action;\r\n return { ...state, activityTasks };\r\n }\r\n case GOT_SINGLE_ACTIVITY_TASK: {\r\n const { singleActivityTask } = action;\r\n return { ...state, singleActivityTask };\r\n }\r\n case GOT_SINGLE_ACTIVITY_TASK_ERROR: {\r\n const { message } = action;\r\n return { ...state, singleActivityTaskError: message }\r\n }\r\n case CLEAR_SINGLE_ACTIVITY_TASK_ERROR: {\r\n return { ...state, singleActivityTaskError: null }\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n","export const API_ROOT = {\r\n contract: \"api/Contracts\",\r\n facility: \"api/Facility\",\r\n allFacility: \"api/Facility/all\",\r\n user: \"api/UserInfo\",\r\n role: \"api/Role\",\r\n financialSummary: \"api/Contracts/FinancialSummary\",\r\n reauthorizations: \"api/Contracts/Reauthorizations\",\r\n editContractStatus: \"api/Contracts\",\r\n pdpsstaffcostactualbudget: \"api/PDPSStaffCostActualBudget\",\r\n vendors: \"api/vendors\",\r\n milestones: \"api/MileStones\",\r\n audits: \"api/AuditInfo\",\r\n captrakIds: \"api/CapTraks\",\r\n chargeCodes: \"api/ChargeCodes\",\r\n chargeCodesByContract: \"api/ChargeCodes/ByContract\",\r\n //adjustmentByChargecode: \"api/ChangeorderDetails/AdjustmentByChargecode\",\r\n AdjustmentByChargecode: \"api/ChangeorderDetails/AdjustmentByChargecode\",\r\n\r\n PaymentAccruals: \"api/ChargeCodes/PendingPaymentAccrualsByChargeCode\",\r\n WorkOrderDetailsPaid: \"api/WorkorderDetails/WorkorderDetailsPaymentPaid\",\r\n\r\n classified: \"api/Classified\",\r\n classifieds: \"api/Classified/ByContract\",\r\n classifiedPaymentByClassifiedWo: \"api/Classified/Payment/ByClassifiedWo\",\r\n classifiedPaymentByContractId: \"api/Classified/Payment/ByContractId\",\r\n classifiedDetail: \"api/ClassifiedDetails\",\r\n classifiedDetails: \"api/ClassifiedDetails/ByClassified\",\r\n classifiedDetailWO: \"api/ClassifiedDetails/ByClassifiedWO\",\r\n classifiedWO: \"api/ClassifiedWO\",\r\n classifiedWOs: \"api/ClassifiedWO/ByContract\",\r\n classifiedWOByNetCost: \"api/ClassifiedWO/ByNetCost\",\r\n unclassified: \"api/Lumpsums\",\r\n unclassifieds: \"api/Lumpsums/ByContract\",\r\n unclassifiedPaymentByContractId: \"api/Lumpsums/Payment/ByContractId\", \r\n unclassifiedDeductions: \"api/Lumpsums/Deductions\",\r\n performbondPaymentByContractId: \"api/Performbond/Payment/ByContractId\", // does not exit. check if needs to be used.\r\n contractvendor: \"api/ContractVendor\",\r\n contractvendors: \"api/ContractVendor/ByContract\",\r\n contractvendorpayment: \"api/ContractVendorPayments\",\r\n contractvendorpayments: \"api/ContractVendorPayments/ByContractVendor\",\r\n netcost: \"api/Netcosts\",\r\n netcosts: \"api/Netcosts/ByContract\", \r\n schedule: \"api/Schedule\",\r\n schedules: \"api/Schedule/ByContract\",\r\n netcostPaymentByClassifiedWo: \"api/Netcosts/Payment/ByClassifiedWo\",\r\n netcostPaymentByContractId: \"api/Netcosts/Payment/ByContractId\",\r\n netcostDetail: \"api/NetcostDetails\",\r\n netcostDetails: \"api/NetcostDetails/ByNetcost\",\r\n closeDelayCodes: \"api/DelayCodes\",\r\n workOrders: \"api/Workorders\",\r\n activityTasks: \"api/WorkorderDetails\",\r\n unitPriceByCategory: \"api/WOunitpriceitemDetails/ByParm\",\r\n unitPriceByUpNo: \"api/WOunitpriceitemDetails/ByWorkOrderDetailandUpno\",\r\n unitPrice: \"api/WOunitpriceitemDetails\",\r\n unitPriceByActivityTask: \"api/WOunitpriceitemDetails/ByWorkOrderDetail\",\r\n referenceData: \"/api/ReferenceData\",\r\n \r\n decryptedEINByVendorId: \"api/vendors/DEIN/ByVendor/\",\r\n // decryptedEINByVendorId: (id) => `api/vendors/DEIN/ByVendor/${id}`,\r\n \r\n referenceDataByCategory: (category) =>\r\n `api/ReferenceData/ByCategory/${category}`,\r\n pins: \"api/Pins/ByContract\",\r\n paccpins: \"api/Pins/ByPacc\",\r\n pin: \"api/Pins\",\r\n pinDetail: \"api/PinDetails\",\r\n pinDetails: \"api/PinDetails/ByPin\",\r\n paccs: \"api/Pacc/ByContract\",\r\n changeorderpacc: \"api/Pacc/ByChangeorder\",\r\n pacc: \"api/Pacc\",\r\n paccDetail: \"api/PaccDetails\",\r\n paccDetails: \"api/PaccDetails/ByPacc\",\r\n paccDetailWO: \"api/PaccDetails/ByClassifiedWO\",\r\n changeorder: \"api/Changeorder\",\r\n changeorders: \"api/Changeorder/ByContract\",\r\n changeorderPayment: \"api/Changeorder/Payment/ByChangeorder\",\r\n changeorderPaymentByClassifiedWo: \"api/Changeorder/Payment/ByClassifiedWo\",\r\n changeorderPaymentByContractId: \"api/Changeorder/Payment/ByContractId\",\r\n changeorderDetail: \"api/ChangeorderDetails\",\r\n changeorderDetails: \"api/ChangeorderDetails/ByChangeorder\",\r\n changeorderDetailWO: \"api/ChangeorderDetails/ByClassifiedWO\",\r\n fins: \"api/Fins/ByContract\",\r\n pafifins: \"api/Fins/ByPafi\",\r\n fin: \"api/Fins\",\r\n pafis: \"api/Pafi/ByContract\",\r\n fieldorderpafi: \"api/Pafi/ByFieldorder\",\r\n pafi: \"api/Pafi\",\r\n\r\n pafiDetail: \"api/PafiDetails\",\r\n pafiDetails: \"api/PafiDetails/ByPafi\",\r\n pafiDetailWO: \"api/PafiDetails/ByClassifiedWO\",\r\n\r\n fieldorder: \"api/Fieldorder\",\r\n fieldorders: \"api/Fieldorder/ByContract\",\r\n fieldorderPayment: \"api/Fieldorder/Payment/ByFieldorder\",\r\n fieldorderPaymentByClassifiedWo: \"api/Fieldorder/Payment/ByClassifiedWo\",\r\n fieldorderPaymentByContractId: \"api/Fieldorder/Payment/ByContractId\",\r\n fieldorderDetail: \"api/FieldorderDetails\",\r\n fieldorderDetails: \"api/FieldorderDetails/ByFieldorder\",\r\n fieldorderDetailWO: \"api/FieldorderDetails/ByClassifiedWO\",\r\n potentialdelay: \"api/PotentialDelay\",\r\n potentialdelays: \"api/PotentialDelay/ByContract\",\r\n rcpotentialdelays: \"api/PotentialDelay/RC/ByContract\",\r\n spread: \"api/Spread\",\r\n spreads: \"api/Spread/ByContract\",\r\n spreadCutoffDate: \"api/Spread/ByContract/CutOffDate\",\r\n spreaddetail: \"api/SpreadDetail\",\r\n spreaddetails: \"api/SpreadDetail/ByContract\", \r\n spreadwipcclineitems: \"api/SpreadDetail/SpreadWIPCCAndLineByContract\",\r\n spreadwoccmapping: \"api/SpreadDetail/SpreadWOAndCCMappingByContract\",\r\n extraworkwip: \"api/ExtraWorkWIP\",\r\n extraworkwips: \"api/ExtraWorkWIP/ByContract\",\r\n fieldorderwip: \"api/FieldOrderWIP\",\r\n fieldorderwips: \"api/FieldOrderWIP/ByContract\",\r\n recycle: \"api/Recycle\",\r\n recycles: \"api/Recycle/ByContract\",\r\n recyclePlan: \"api/RecyclePlan\",\r\n recyclePlans: \"api/RecyclePlan/ByContract\",\r\n azureupload: \"api/AzureUpload\",\r\n azureBlobList: \"api/AzureUpload/ListContainerBlob/\",\r\n reportServerSetting: \"api/Reports/getReportServerURL\",\r\n azureDownload: (pipeSeparatedPath) =>\r\n `api/AzureUpload/DownloadBlob/${pipeSeparatedPath}`,\r\n azureBlobDelete: (pipeSeparatedPath) =>\r\n `api/AzureUpload/DeleteBlob/${pipeSeparatedPath}`,\r\n\r\n azureFileStorageCreateLib: \"api/AzureFSUpload/CreateFileStorage\",\r\n //azureFileStorageCreateLib: (contractNo) => `api/AzureFSUpload/CreateFileStorage/${contractNo}`,\r\n unitCost: \"api/UnitCost\",\r\n setTracked: (contractId, hyphenatedDate) =>\r\n `api/contracts/${contractId}/settracked?date=${hyphenatedDate}`,\r\n unitPriceByWorkOrderDetail: (workOrderDetailId) => {\r\n const prefix = \"api/WorkOrderUnitPrice\";\r\n if (workOrderDetailId) {\r\n return `${prefix}?workOrderDetailId=${workOrderDetailId}`;\r\n }\r\n return prefix;\r\n },\r\n unitPriceById: (id) => `api/WorkOrderUnitPrice/${id}`,\r\n unitPriceDetailsByUnitPriceId: (id) => `api/WorkOrderUnitPrice/${id}/details`,\r\n addUnitPrice: \"api/WorkOrderUnitPrice\",\r\n editUnitPrice: (id) => `api/WorkOrderUnitPrice/${id}`,\r\n unitPriceDetailById: (id) => `api/WOunitpriceitemDetails/${id}`,\r\n me: \"api/userinfo/me\",\r\n searchVendorByName: (nameSubstr = \"\", einSubstr = \"\") =>\r\n `api/vendors?name=${encodeURIComponent(nameSubstr)}&ein=${einSubstr}`,\r\n searchVendorAddressByVendorName: (nameSubstr = \"\") =>\r\n `api/vendors/VendorAddress?name=${encodeURIComponent(nameSubstr)}`,\r\n userExists: \"api/userinfo/exists\",\r\n supplementalByContractId: (contractId) =>\r\n `api/supplemental?contractId=${contractId}`,\r\n msGraphUsersByAdId: (aDId) =>\r\n `https://graph.microsoft.com/v1.0/users/${aDId}@panynj.gov`,\r\n supplementalById: (id) => `api/supplemental/${id}`,\r\n supplemental: \"api/Supplemental\",\r\n singleVendorById: (id) => `api/vendors/${id}`,\r\n vendorAddressesByVendorId: (vendorId) =>\r\n `api/vendoraddresses?vendorId=${vendorId}`,\r\n singleVendorAddress: (id) => `api/vendoraddresses/${id}`,\r\n vendorAddresses: \"api/vendoraddresses\",\r\n vendorMatrix: (id) => `api/ContractVendor/VendorMatrix/${id}`,\r\n addVendorWithAddress: \"api/vendors/withaddress\",\r\n goals: \"api/Goals/ByContract\",\r\n \r\n};\r\n\r\nexport const vendorExists = (ein) => `api/vendors?ein=${ein}`;\r\nexport const makeVendorAddressPrimary = (id) =>\r\n `api/vendoraddresses/${id}/makeprimary`;\r\nexport const referenceDataByCategory = (category) =>\r\n `api/ReferenceData/ByCategory/${category}`;\r\nexport const setAsideVendor = (id) => `api/vendors/${id}/setaside`;\r\nexport const searchSetAsides = (nameSubstr, einSubstr, isActive) => {\r\n let url = `api/vendorsetasides?name=${encodeURIComponent(nameSubstr)}&ein=${einSubstr}`;\r\n if (isActive !== null) {\r\n url += `&active=${isActive}`;\r\n }\r\n return url;\r\n};\r\nexport const setAsideById = (id) => `api/VendorSetasides/${id}`;\r\nexport const setAsideSetActive = (isActive, id) =>\r\n `api/VendorSetasides/${id}/SetActive?active=${String(isActive)}`;\r\nexport const searchVendorByName = (nameSubstr = \"\", einSubstr = \"\") =>\r\n `api/vendors?name=${encodeURIComponent(nameSubstr)}&ein=${einSubstr}`;\r\nexport const searchVendorAddressByVendorName = (nameSubstr = \"\") =>\r\n `api/vendors/VendorAddress?name=${encodeURIComponent(nameSubstr)}`;\r\nexport const getEditPerfBondUrl = (id) => `api/Contracts/${id}/PerfBond`;\r\nexport const getVendorAddressesForContractUrl = (contractId) =>\r\n `api/Contracts/${contractId}/VendorAddresses`;\r\nexport const getVendorAddressesAndEvalForContractUrl = (contractId) =>\r\n `api/Contracts/${contractId}/VendorAddressesWithEvaluations`;\r\nexport const getEvaluationByContractIdAndVendorAddressIdUrl = (\r\n contractId,\r\n vendorAddressId\r\n) =>\r\n `api/VendorEvaluations/ByContractIdAndVendorAddressId?contractId=${contractId}&vendorAddressId=${vendorAddressId}`;\r\nexport const getEvaluationById = (id) => `api/VendorEvaluations/${id}`;\r\nexport const evaluationBaseUrl = \"api/VendorEvaluations\";\r\nexport const getSingleVendorAddressUrl = (id) => `api/vendoraddresses/${id}`;\r\nexport const getApproveEvaluationUrl = (id, interim) =>\r\n `api/VendorEvaluations/${id}/approve?interim=${String(interim)}`;\r\nexport const getPaymentsByContractIdUrl = (contractId) =>\r\n `api/payments?contractId=${contractId}`;\r\nexport const getPaymentByPaymentIdUrl = (paymentId) =>\r\n `api/payments/${paymentId}`;\r\nexport const addPaymentUrl = \"api/payments\";\r\nexport const editPaymentByPaymentIdUrl = (paymentId) =>\r\n `api/payments/${paymentId}`;\r\nexport const postPaymentByPaymentIdUrl = (paymentId) =>\r\n `api/payments/${paymentId}/post`;\r\nexport const unpostPaymentByPaymentIdUrl = (paymentId) =>\r\n `api/payments/${paymentId}/unpost`;\r\nexport const finalizePaymentByPaymentIdUrl = (paymentId) =>\r\n `api/payments/${paymentId}/finalize`;\r\nexport const editPaymentBondChargeCodeByPaymentIdUrl = (paymentId) =>\r\n `api/payments/${paymentId}/bondchargecode`;\r\nexport const paymentClassifiedBalanceUrl = (classifiedId, chargeCodeId, classifiedWOItemId, paymentId) =>\r\n `api/payments/classified/balance?classifiedId=${classifiedId}&chargeCodeId=${chargeCodeId}&classifiedWOItemId=${classifiedWOItemId}&paymentId=${paymentId}`;\r\nexport const addClassifiedPaymentUrl = \"api/payments/classified\";\r\nexport const editClassifiedPaymentUrl = (classifiedPaymentId) =>\r\n `api/payments/classified/${classifiedPaymentId}`;\r\nexport const addWorkOrderPaymentUrl = \"api/payments/workOrder\";\r\nexport const editWorkOrderPaymentUrl = (workOrderPaymentId) =>\r\n `api/payments/workOrder/${workOrderPaymentId}`;\r\nexport const paymentWorkOrderBalanceUrl = (workOrderDetailId) =>\r\n `api/payments/workOrder/balance?workOrderDetailId=${workOrderDetailId}`;\r\nexport const paymentUnclassifiedBalanceUrl = (unclassifiedId, chargeCodeId) =>\r\n `api/payments/unclassified/balance?unclassifiedId=${unclassifiedId}&chargeCodeId=${chargeCodeId}`;\r\nexport const addUnclassifiedPaymentUrl = \"api/payments/unclassified\";\r\nexport const editUnclassifiedPaymentUrl = (unclassifiedPaymentId) =>\r\n `api/payments/unclassified/${unclassifiedPaymentId}`;\r\nexport const paymentPerformbondBalanceUrl = (contractId, chargeCodeId) =>\r\n `api/payments/performbond/balance?contractId=${contractId}&chargeCodeId=${chargeCodeId}`;\r\nexport const addPerformbondPaymentUrl = \"api/payments/performbond\";\r\nexport const editPerformbondPaymentUrl = (performbondPaymentId) =>\r\n `api/payments/performbond/${performbondPaymentId}`;\r\nexport const paymentNetcostBalanceUrl = (netcostId, chargeCodeId) =>\r\n `api/payments/netcost/balance?netcostId=${netcostId}&chargeCodeId=${chargeCodeId}`;\r\nexport const addNetcostPaymentUrl = \"api/payments/netcost\";\r\nexport const editNetcostPaymentUrl = (netcostPaymentId) =>\r\n `api/payments/netcost/${netcostPaymentId}`;\r\nexport const paymentChangeorderBalanceUrl = (changeorderId, chargeCodeId) =>\r\n `api/payments/changeorder/balance?changeorderId=${changeorderId}&chargeCodeId=${chargeCodeId}`;\r\nexport const addChangeorderPaymentUrl = \"api/payments/changeorder\";\r\nexport const editChangeorderPaymentUrl = (changeorderPaymentId) =>\r\n `api/payments/changeorder/${changeorderPaymentId}`;\r\nexport const paymentFieldorderBalanceUrl = (fieldorderId, chargeCodeId) =>\r\n `api/payments/fieldorder/balance?fieldorderId=${fieldorderId}&chargeCodeId=${chargeCodeId}`;\r\nexport const addFieldorderPaymentUrl = \"api/payments/fieldorder\";\r\nexport const editFieldorderPaymentUrl = (fieldorderPaymentId) =>\r\n `api/payments/fieldorder/${fieldorderPaymentId}`;\r\nexport const addSupplementalPaymentUrl = \"api/payments/supplemental\";\r\nexport const editSupplementalPaymentUrl = (supplementalPaymentId) =>\r\n `api/payments/supplemental/${supplementalPaymentId}`;\r\nexport const paymentSupplementalBalanceUrl = (supplementalId) =>\r\n `api/payments/supplemental/balance?supplementalId=${supplementalId}`;\r\nexport const updateRetainageUrl = (paymentId) => `api/Payments/${paymentId}/Retainage`;\r\nexport const updateFinancialHistoryUrl = (contractId) => `api/Contracts/${contractId}/FinancialHistory`;\r\nexport const getReportServerUrlUrl = '/api/Reports/getReportServerURL';\r\nexport const getCYF_Year = '/api/Reports/getCYF_Year';\r\nexport const finalEvalExistsUrl = (contractId, vendorAddressId) =>\r\n `api/VendorEvaluations/FinalExists?contractId=${contractId}&vendorAddressId=${vendorAddressId}`;\r\nexport const contractVendorByContractAndVendorAddressIdsUrl = (contractId, vendorAddressId) =>\r\n `api/ContractVendors/ByContractAndVendorAddressIds?contractId=${contractId}&vendorAddressId=${vendorAddressId}`\r\nexport const getClassifiedPaymentInfoUrl = (paymentId) => `api/payments/${paymentId}/classified`;\r\nexport const getUnclassifiedPaymentInfoUrl = (paymentId) => `api/payments/${paymentId}/unclassified`;\r\nexport const getPerformbondPaymentInfoUrl = (paymentId) => `api/payments/${paymentId}/performbond`;\r\nexport const getFieldorderPaymentInfoUrl = (paymentId) => `api/payments/${paymentId}/fieldorder`;\r\nexport const getNetcostPaymentInfoUrl = (paymentId) => `api/payments/${paymentId}/netcost`;\r\nexport const getSupplementalPaymentInfoUrl = (paymentId) => `api/payments/${paymentId}/supplemental`;\r\nexport const getChangeorderPaymentInfoUrl = (paymentId) => `api/payments/${paymentId}/changeorder`;\r\nexport const getWorkorderPaymentsUrl = (paymentId) => `api/payments/${paymentId}/workorder`;\r\n//export const getChangeorderPaymentByChangeOrder = (changeorderId ) => `api/payments/changeorder/ByChangeorder/${changeorderId}`;\r\n","import { createAction } from \"@reduxjs/toolkit\";\r\n\r\nexport const apiRequestStarted = createAction(\"api/requestStarted\");\r\nexport const apiRequestSuccess = createAction(\"api/requestSuccess\");\r\nexport const apiRequestFailed = createAction(\"api/requestFailed\");\r\n","import { API_ROOT, getEditPerfBondUrl } from \"../api_endpoints\";\r\nimport { acquireTokenPopupAndCallAPI, fetchWithToken } from \"../authentication\";\r\n\r\nconst GOT_SINGLE_CONTRACT = \"GOT_SINGLE_CONTRACT\";\r\nconst GOT_CONTRACTS = \"GOT_CONTRACTS\";\r\nconst GOT_SINGLE_CONTRACT_CONTRACTVENDOR_PAYMENTS =\r\n \"GOT_SINGLE_CONTRACT_CONTRACTVENDOR_PAYMENTS\";\r\nconst GOT_SINGLE_CONTRACT_CLASSIFIED_DETAILS =\r\n \"GOT_SINGLE_CONTRACT_CLASSIFIED_DETAILS\";\r\nconst GOT_SINGLE_CONTRACT_CLASSIFIED_DETAILWO =\r\n \"GOT_SINGLE_CONTRACT_CLASSIFIED_DETAILWO\";\r\nconst GOT_SINGLE_CONTRACT_CLASSIFIEDWO_NETCOST =\r\n \"GOT_SINGLE_CONTRACT_CLASSIFIEDWO_NETCOST\";\r\nconst GOT_FINANCIAL_SUMMARY = \"GOT_FINANCIAL_SUMMARY\";\r\nconst GOT_NETCOST_DETAILS = \"GOT_NETCOST_DETAILS\";\r\nconst START_GET_SINGLE_CONTRACT = \"START_GET_SINGLE_CONTRACT\";\r\nconst UNEXPECTED_STOP_GET_SINGLE_CONTRACT =\r\n \"UNEXPECTED_STOP_GET_SINGLE_CONTRACT\";\r\nconst UPDATED_PERF_BOND = \"UPDATED_PERF_BOND\";\r\nconst UPDATED_CONTRACT_FINANCIAL_HISTORY = \"UPDATED_CONTRACT_FINANCIAL_HISTORY\";\r\n\r\nconst GOT_NETCOST_PAYMENT_WO = \"GOT_NETCOST_PAYMENT_WO\";\r\nconst GOT_CLASSIFIED_PAYMENT_WO = \"GOT_CLASSIFIED_PAYMENT_WO\";\r\nconst GOT_NETCOST_PAYMENT = \"GOT_NETCOST_PAYMENT\";\r\nconst GOT_CLASSIFIED_PAYMENT = \"GOT_CLASSIFIED_PAYMENT\";\r\nconst GOT_UNCLASSIFIED_PAYMENT = \"GOT_UNCLASSIFIED_PAYMENT\";\r\n\r\nconst gotSingleContract = (\r\n singleContractMain,\r\n singleContractSummary,\r\n singleContractContractVendors,\r\n singleContractClassifieds,\r\n singleContractUnclassifieds,\r\n singleContractClassifiedWOs,\r\n singleContractNetcosts,\r\n singleContractChargeCode,\r\n singleContractPotentialDelay,\r\n singleContractRCPotentialDelay,\r\n singleContractPDPSStaffCostActualBudget,\t\t\t\t\r\n singleContractSchedules,\t\r\n singleContractCutOffDate,\r\n) => ({\r\n type: GOT_SINGLE_CONTRACT,\r\n singleContractMain,\r\n singleContractSummary,\r\n singleContractContractVendors,\r\n singleContractClassifieds,\r\n singleContractUnclassifieds,\r\n singleContractClassifiedWOs,\r\n singleContractNetcosts,\r\n singleContractChargeCode,\r\n singleContractPotentialDelay,\r\n singleContractRCPotentialDelay,\t\t\t\t\t\t\t\t\r\n singleContractPDPSStaffCostActualBudget, \r\n singleContractSchedules,\r\n singleContractCutOffDate,\r\n singleContractLoading: false,\r\n});\r\n\r\nconst gotContracts = (contracts) => ({\r\n type: GOT_CONTRACTS,\r\n contracts,\r\n});\r\n\r\nconst gotSingleContractContractVendorPayments = (\r\n singleContractContractVendorPayments\r\n) => ({\r\n type: GOT_SINGLE_CONTRACT_CONTRACTVENDOR_PAYMENTS,\r\n singleContractContractVendorPayments,\r\n});\r\nconst gotSingleContractClassifiedDetails = (\r\n singleContractClassifiedDetails\r\n) => ({\r\n type: GOT_SINGLE_CONTRACT_CLASSIFIED_DETAILS,\r\n singleContractClassifiedDetails,\r\n});\r\nconst gotSingleContractClassifiedDetailWO = (\r\n singleContractClassifiedDetailWO\r\n) => ({\r\n type: GOT_SINGLE_CONTRACT_CLASSIFIED_DETAILWO,\r\n singleContractClassifiedDetailWO,\r\n});\r\nconst gotSingleContractClassifiedWONetCost = (\r\n singleContractClassifiedWONetCost\r\n) => ({\r\n type: GOT_SINGLE_CONTRACT_CLASSIFIEDWO_NETCOST,\r\n singleContractClassifiedWONetCost,\r\n});\r\nconst gotSingleContractNetcostDetails = (singleContractNetcostDetails) => ({\r\n type: GOT_NETCOST_DETAILS,\r\n singleContractNetcostDetails,\r\n});\r\n\r\nconst gotFinancialSummary = (financialSummary) => ({\r\n type: GOT_FINANCIAL_SUMMARY,\r\n financialSummary,\r\n});\r\n\r\nconst startGetSingleContract = () => ({\r\n type: START_GET_SINGLE_CONTRACT,\r\n singleContractLoading: true,\r\n});\r\n\r\nconst unexpectedStopGetSingleContract = () => ({\r\n type: UNEXPECTED_STOP_GET_SINGLE_CONTRACT,\r\n singleContractLoading: false,\r\n});\r\n\r\nconst updatedPerfBond = (id, values) => ({\r\n type: UPDATED_PERF_BOND,\r\n id,\r\n values,\r\n});\r\n\r\nexport const updatedContractFinancialHistory = (contractId, values) => ({\r\n type: UPDATED_CONTRACT_FINANCIAL_HISTORY,\r\n contractId,\r\n values\r\n});\r\n\r\nexport const getSingleContract = (id) => async (dispatch) => {\r\n try {\r\n const responses = await acquireTokenPopupAndCallAPI(async (token) => {\r\n const mainResPromise = fetch(`${API_ROOT.contract}/${id}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n const summaryResPromise = fetch(`${API_ROOT.financialSummary}/${id}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n const contractvendorsResPromise = fetch(\r\n `${API_ROOT.contractvendors}/${id}`,\r\n {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n );\r\n const classifiedsResPromise = fetch(`${API_ROOT.classifieds}/${id}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n const unclassifiedsResPromise = fetch(`${API_ROOT.unclassifieds}/${id}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n const classifiedwosResPromise = fetch(`${API_ROOT.classifiedWOs}/${id}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n const netcostsResPromise = fetch(`${API_ROOT.netcosts}/${id}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n const chargeCodesResPromise = fetch(\r\n `${API_ROOT.chargeCodesByContract}/${id}`,\r\n {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n );\r\n const potentialdelayResPromise = fetch(\r\n `${API_ROOT.potentialdelays}/${id}`,\r\n {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n );\r\n const rcpotentialdelayResPromise = fetch(\r\n `${API_ROOT.rcpotentialdelays}/${id}`,\r\n {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n );\r\n const pdpsstaffcostactualbudgetResPromise = fetch(\r\n `${API_ROOT.pdpsstaffcostactualbudget}/${id}`,\r\n {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n ); \r\n const schedulesResPromise = fetch(`${API_ROOT.schedules}/${id}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n const cutOffDateResPromise = fetch(\r\n `${API_ROOT.spreadCutoffDate}/${id}`,\r\n {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n ); \r\n dispatch(startGetSingleContract());\r\n return Promise.all([\r\n mainResPromise,\r\n summaryResPromise,\r\n contractvendorsResPromise,\r\n classifiedsResPromise,\r\n unclassifiedsResPromise,\r\n classifiedwosResPromise,\r\n netcostsResPromise,\r\n chargeCodesResPromise,\r\n potentialdelayResPromise,\r\n rcpotentialdelayResPromise,\t\t\t\t\r\n pdpsstaffcostactualbudgetResPromise,\t\r\n schedulesResPromise,\t\t\t\r\n cutOffDateResPromise, \r\n ]);\r\n });\r\n const [\r\n mainObj,\r\n summaryObj,\r\n contractvendorsObj,\r\n classifiedsObj,\r\n unclassifiedsObj,\r\n classifiedswoObj,\r\n netcostObj,\r\n chargeCodesObj,\r\n potentialdelayObj,\r\n rcpotentialdelayObj,\t\t\r\n pdpsstaffcostactualbudgetObj,\t\t\r\n scheduleObj,\t\t\r\n cutOffDateObj \r\n ] = await Promise.all(responses.map((res) => res.json()));\r\n dispatch(\r\n gotSingleContract(\r\n mainObj,\r\n summaryObj,\r\n contractvendorsObj,\r\n classifiedsObj,\r\n unclassifiedsObj,\r\n classifiedswoObj,\r\n netcostObj,\r\n chargeCodesObj,\r\n potentialdelayObj,\r\n rcpotentialdelayObj,\r\n pdpsstaffcostactualbudgetObj,\t\t \r\n scheduleObj,\r\n cutOffDateObj,\r\n )\r\n );\r\n } catch (error) {\r\n dispatch(unexpectedStopGetSingleContract());\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const getContracts = () => async (dispatch) => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) =>\r\n fetch(API_ROOT.contract, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n const contracts = await response.json();\r\n contracts.sort((a, b) => (a.contractNo > b.contractNo) ? 1 : -1)\r\n dispatch(gotContracts(contracts));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const getContractVendorPayments = (id) => async (dispatch) => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) =>\r\n fetch(`${API_ROOT.contractvendorpayments}/${id}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n const singleContractContractVendorPayments = await response.json();\r\n dispatch(\r\n gotSingleContractContractVendorPayments(\r\n singleContractContractVendorPayments\r\n )\r\n );\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const getClassifiedDetails = (id) => async (dispatch) => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) =>\r\n fetch(`${API_ROOT.classifiedDetails}/${id}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n const singleContractClassifiedDetails = await response.json();\r\n dispatch(\r\n gotSingleContractClassifiedDetails(singleContractClassifiedDetails)\r\n );\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const getClassifiedDetailWO = (id) => async (dispatch) => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) =>\r\n fetch(`${API_ROOT.classifiedDetailWO}/${id}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n const singleContractClassifiedDetailWO = await response.json();\r\n dispatch(\r\n gotSingleContractClassifiedDetailWO(singleContractClassifiedDetailWO)\r\n );\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const getClassifiedWONetCost = (id) => async (dispatch) => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) =>\r\n fetch(`${API_ROOT.classifiedWOByNetCost}/${id}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n const singleContractClassifiedWONetCost = await response.json();\r\n dispatch(\r\n gotSingleContractClassifiedWONetCost(singleContractClassifiedWONetCost)\r\n );\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const getNetcostDetails = (id) => async (dispatch) => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) =>\r\n fetch(`${API_ROOT.netcostDetails}/${id}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n const singleContractNetcostDetails = await response.json();\r\n dispatch(gotSingleContractNetcostDetails(singleContractNetcostDetails));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\n//get net cost payments by WO\r\nexport const getNetcostPaymentsbyWo = (classifiedWoId) => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.netcostPaymentByClassifiedWo}/${classifiedWoId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const netcostpaymentswo = await response.json();\r\n dispatch(gotNetcostPaymentsWo(netcostpaymentswo));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst gotNetcostPaymentsWo = netcostPaymentsWo => ({\r\n type: GOT_NETCOST_PAYMENT_WO,\r\n netcostPaymentsWo\r\n});\r\n//\r\n\r\n//get classified payments by WO\r\nexport const getClassifiedPaymentsbyWo = (classifiedWoId) => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.classifiedPaymentByClassifiedWo}/${classifiedWoId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const classifiedpaymentswo = await response.json();\r\n dispatch(gotClassifiedPaymentsWo(classifiedpaymentswo));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst gotClassifiedPaymentsWo = classifiedPaymentsWo => ({\r\n type: GOT_CLASSIFIED_PAYMENT_WO,\r\n classifiedPaymentsWo\r\n});\r\n//\r\n//get net cost payments by contractId\r\nexport const getNetcostPaymentsbyContractId = (contractId) => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.netcostPaymentByContractId}/${contractId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const netcostpayments = await response.json();\r\n dispatch(gotNetcostPayments(netcostpayments));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst gotNetcostPayments = netcostPayments => ({\r\n type: GOT_NETCOST_PAYMENT,\r\n netcostPayments\r\n});\r\n//\r\n\r\n//get classified payments by contractId\r\nexport const getClassifiedPaymentsContractId = (contractId) => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.classifiedPaymentByClassifiedWo}/${contractId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const classifiedpayments = await response.json();\r\n dispatch(gotClassifiedPayments(classifiedpayments));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst gotClassifiedPayments = classifiedPayments => ({\r\n type: GOT_CLASSIFIED_PAYMENT,\r\n classifiedPayments\r\n});\r\n//\r\n\r\n\r\n//get unclassified payments by contractId\r\nexport const getUnclassifiedPaymentsContractId = (contractId) => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.unclassifiedPaymentByContractId}/${contractId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const unclassifiedpayments = await response.json();\r\n dispatch(gotUnclassifiedPayments(unclassifiedpayments));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst gotUnclassifiedPayments = unclassifiedPayments => ({\r\n type: GOT_UNCLASSIFIED_PAYMENT,\r\n unclassifiedPayments\r\n});\r\n//\r\n/*\r\n Shape of auth obj:\r\n {\r\n id, authClass, authExwk, authNc,\r\n authSupplement, authWo,\r\n }\r\n authUnclass and authRisk are categories that exist\r\n in the database but should not be used because\r\n of business logic.\r\n*/\r\nexport const addAuthorizations = (authObj, contractId) => async (dispatch) => {\r\n try {\r\n await acquireTokenPopupAndCallAPI((token) =>\r\n fetch(API_ROOT.reauthorizations, {\r\n method: \"POST\",\r\n body: JSON.stringify(authObj),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n dispatch(getSingleContract(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\n\r\nexport const editAuthorizations = (authObj, contractId, id, type) => async (dispatch) => {\r\n try {\r\n await acquireTokenPopupAndCallAPI((token) =>\r\n //fetch(`${API_ROOT.reauthorizations/?id=${id}`,{\r\n fetch(`${API_ROOT.reauthorizations}/${type}/?contractId=${contractId}&&id=${id}`, { \r\n method: \"PATCH\",\r\n body: JSON.stringify(authObj),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n dispatch(getSingleContract(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const deleteAuthorization = (contractId, id, type) => async (dispatch) => { // Delete by Type\r\n try {\r\n await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.reauthorizations}/${type}/?contractId=${contractId}&&id=${id}`, {\r\n method: \"DELETE\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n dispatch(getSingleContract(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const addContract = (contractObj) => async (dispatch) => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) =>\r\n fetch(API_ROOT.contract, {\r\n method: \"POST\",\r\n body: JSON.stringify(contractObj),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n const addedContractObj = await response.json();\r\n dispatch(getSingleContract(addedContractObj.id));\r\n dispatch(getContracts());\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const addFileStorageLibrary = (contractNo, facilityId) => async (dispatch) => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) => (\r\n fetch(\r\n `${API_ROOT.azureFileStorageCreateLib}/?contractNo=${contractNo}&facilityId=${facilityId}`,\r\n {\r\n method: 'POST',\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n }\r\n }\r\n )\r\n ));\r\n const addedContractObj = await response.json();\r\n //dispatch(getSingleContract(addedContractObj.id));\r\n //dispatch(getContracts());\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const editContract =\r\n (contractObj, id, capTrakEntries, chargeCodeEntries) => async (dispatch) => {\r\n await acquireTokenPopupAndCallAPI(async (token) => {\r\n const editContractReq = fetch(\r\n `${API_ROOT.editContractStatus}/?id=${id}`,\r\n {\r\n method: \"PATCH\",\r\n body: JSON.stringify(contractObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n );\r\n const requestPromiseList = [editContractReq];\r\n if (capTrakEntries !== undefined) {\r\n const capTrakAdditionReqs = capTrakEntries.additions.map((entry) =>\r\n fetch(API_ROOT.captrakIds, {\r\n method: \"POST\",\r\n body: JSON.stringify(entry),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n const capTrakEditReqs = capTrakEntries.edits.map((editObj) =>\r\n fetch(`${API_ROOT.captrakIds}/?id=${editObj.id}`, {\r\n method: \"PATCH\",\r\n body: JSON.stringify(editObj.patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n const capTrakDeletionReqs = capTrakEntries.deletions.map((captrakId) =>\r\n fetch(`${API_ROOT.captrakIds}/${captrakId}`, {\r\n method: \"DELETE\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n requestPromiseList.push(\r\n Promise.all(capTrakAdditionReqs),\r\n Promise.all(capTrakEditReqs),\r\n Promise.all(capTrakDeletionReqs)\r\n );\r\n }\r\n if (chargeCodeEntries !== undefined) {\r\n const chargeCodeAdditionReqs = chargeCodeEntries.additions.map(\r\n (entry) =>\r\n fetch(API_ROOT.chargeCodes, {\r\n method: \"POST\",\r\n body: JSON.stringify(entry),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n const chargeCodeEditReqs = chargeCodeEntries.edits.map((editObj) =>\r\n fetch(`${API_ROOT.chargeCodes}/?id=${editObj.id}`, {\r\n method: \"PATCH\",\r\n body: JSON.stringify(editObj.patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n const chargeCodeDeletionReqs = chargeCodeEntries.deletions.map(\r\n (chargeCodeId) =>\r\n fetch(`${API_ROOT.chargeCodes}/${chargeCodeId}`, {\r\n method: \"DELETE\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n requestPromiseList.push(\r\n Promise.all(chargeCodeAdditionReqs),\r\n Promise.all(chargeCodeEditReqs),\r\n Promise.all(chargeCodeDeletionReqs)\r\n );\r\n }\r\n try {\r\n await Promise.all(requestPromiseList);\r\n dispatch(getSingleContract(id));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n };\r\n\r\nexport const bulkEditMilestones =\r\n (contractId, additions, edits, deletions) => async (dispatch) => {\r\n await acquireTokenPopupAndCallAPI(async (token) => {\r\n const additionReqs = additions.map((entry) =>\r\n fetch(API_ROOT.milestones, {\r\n method: \"POST\",\r\n body: JSON.stringify(entry),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n const editReqs = edits.map((editObj) =>\r\n fetch(`${API_ROOT.milestones}/?id=${editObj.id}`, {\r\n method: \"PATCH\",\r\n body: JSON.stringify(editObj.patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n const deletionReqs = deletions.map((milestoneId) =>\r\n fetch(`${API_ROOT.milestones}/${milestoneId}`, {\r\n method: \"DELETE\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n try {\r\n await Promise.all([\r\n Promise.all(additionReqs),\r\n Promise.all(editReqs),\r\n Promise.all(deletionReqs),\r\n ]);\r\n dispatch(getSingleContract(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n };\r\n\r\n export const bulkEditAudits =\r\n (contractId, additions, edits, deletions) => async (dispatch) => {\r\n await acquireTokenPopupAndCallAPI(async (token) => {\r\n const additionReqs = additions.map((entry) =>\r\n fetch(API_ROOT.audits, {\r\n method: \"POST\",\r\n body: JSON.stringify(entry),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n const editReqs = edits.map((editObj) =>\r\n fetch(`${API_ROOT.audits}/?id=${editObj.id}`, {\r\n method: \"PATCH\",\r\n body: JSON.stringify(editObj.patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n const deletionReqs = deletions.map((auditId) =>\r\n fetch(`${API_ROOT.audits}/${auditId}`, {\r\n method: \"DELETE\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n try {\r\n await Promise.all([\r\n Promise.all(additionReqs),\r\n Promise.all(editReqs),\r\n Promise.all(deletionReqs),\r\n ]);\r\n dispatch(getSingleContract(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n };\r\n\r\nexport const bulkEditCaptrakIds =\r\n (contractId, additions, edits, deletions) => async (dispatch) => {\r\n await acquireTokenPopupAndCallAPI(async (token) => {\r\n const additionReqs = additions.map((entry) =>\r\n fetch(API_ROOT.captrakIds, {\r\n method: \"POST\",\r\n body: JSON.stringify(entry),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n const editReqs = edits.map((editObj) =>\r\n fetch(`${API_ROOT.captrakIds}/?id=${editObj.id}`, {\r\n method: \"PATCH\",\r\n body: JSON.stringify(editObj.patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n const deletionReqs = deletions.map((captrakId) =>\r\n fetch(`${API_ROOT.captrakIds}/${captrakId}`, {\r\n method: \"DELETE\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n try {\r\n await Promise.all([\r\n Promise.all(additionReqs),\r\n Promise.all(editReqs),\r\n Promise.all(deletionReqs),\r\n ]);\r\n dispatch(getSingleContract(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n };\r\n\r\nexport const bulkEditChargeCodes =\r\n (contractId, additions, edits, deletions) => async (dispatch) => {\r\n await acquireTokenPopupAndCallAPI(async (token) => {\r\n const additionReqs = additions.map((entry) =>\r\n fetch(API_ROOT.chargeCodes, {\r\n method: \"POST\",\r\n body: JSON.stringify(entry),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n const editReqs = edits.map((editObj) =>\r\n fetch(`${API_ROOT.chargeCodes}/?id=${editObj.id}`, {\r\n method: \"PATCH\",\r\n body: JSON.stringify(editObj.patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n const deletionReqs = deletions.map((chargeCodeId) =>\r\n fetch(`${API_ROOT.chargeCodes}/${chargeCodeId}`, {\r\n method: \"DELETE\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n try {\r\n await Promise.all([\r\n Promise.all(additionReqs),\r\n Promise.all(editReqs),\r\n Promise.all(deletionReqs),\r\n ]);\r\n //dispatch(getSingleContract(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n };\r\n\r\nexport const bulkEditUnclassified =\r\n (contractId, additions, edits) => async (dispatch) => {\r\n await acquireTokenPopupAndCallAPI(async (token) => {\r\n const additionReqs = additions.map((entry) =>\r\n fetch(API_ROOT.unclassified, {\r\n method: \"POST\",\r\n body: JSON.stringify(entry),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n const editReqs = edits.map((editObj) =>\r\n fetch(`${API_ROOT.unclassified}/?id=${editObj.id}`, {\r\n method: \"PATCH\",\r\n body: JSON.stringify(editObj.patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n try {\r\n await Promise.all([Promise.all(additionReqs), Promise.all(editReqs)]);\r\n dispatch(getSingleContract(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n };\r\n\r\nexport const editContractVendorItem =\r\n (contractId, edits) => async (dispatch) => {\r\n await acquireTokenPopupAndCallAPI(async (token) => {\r\n const editReqs = fetch(\r\n `${API_ROOT.contractvendor}/?id=${edits.contractVendorId}`,\r\n {\r\n method: \"PATCH\",\r\n body: JSON.stringify(edits.patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n );\r\n try {\r\n await Promise.all([editReqs]);\r\n dispatch(getSingleContract(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n };\r\n\r\nexport const addContractVendorItem =\r\n (contractId, additions) => async (dispatch) => {\r\n await acquireTokenPopupAndCallAPI(async (token) => {\r\n const additionReqs = fetch(API_ROOT.contractvendor, {\r\n method: \"POST\",\r\n body: JSON.stringify(additions.editableFields),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n try {\r\n await Promise.all([additionReqs]);\r\n dispatch(getSingleContract(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n };\r\n\r\nexport const editClassifiedItem = (contractId, edits) => async (dispatch) => {\r\n await acquireTokenPopupAndCallAPI(async (token) => {\r\n const editReqs = fetch(`${API_ROOT.classified}/?id=${edits.classifiedId}`, {\r\n method: \"PATCH\",\r\n body: JSON.stringify(edits.patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n try {\r\n await Promise.all([editReqs]);\r\n dispatch(getSingleContract(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n};\r\n\r\nexport const addClassifiedItem =\r\n (contractId, additions) => async (dispatch) => {\r\n await acquireTokenPopupAndCallAPI(async (token) => {\r\n const additionReqs = fetch(API_ROOT.classified, {\r\n method: \"POST\",\r\n body: JSON.stringify(additions.editableFields),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n try {\r\n await Promise.all([additionReqs]);\r\n dispatch(getSingleContract(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n };\r\n\r\nexport const editClassifiedWOItem = (contractId, edits) => async (dispatch) => {\r\n await acquireTokenPopupAndCallAPI(async (token) => {\r\n const editReqs = fetch(\r\n `${API_ROOT.classifiedWO}/?id=${edits.classifiedWoId}`,\r\n {\r\n method: \"PATCH\",\r\n body: JSON.stringify(edits.patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n );\r\n try {\r\n await Promise.all([editReqs]);\r\n dispatch(getSingleContract(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n};\r\n\r\nexport const addClassifiedWOItem =\r\n (contractId, additions) => async (dispatch) => {\r\n await acquireTokenPopupAndCallAPI(async (token) => {\r\n const additionReqs = fetch(API_ROOT.classifiedWO, {\r\n method: \"POST\",\r\n body: JSON.stringify(additions.editableFields),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n try {\r\n await Promise.all([additionReqs]);\r\n dispatch(getSingleContract(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n };\r\n\r\nexport const editUnclassifiedItem = (contractId, edits) => async (dispatch) => {\r\n await acquireTokenPopupAndCallAPI(async (token) => {\r\n const editReqs = fetch(`${API_ROOT.unclassified}/?id=${edits.lumpsumId}`, {\r\n method: \"PATCH\",\r\n body: JSON.stringify(edits.patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n try {\r\n await Promise.all([editReqs]);\r\n dispatch(getSingleContract(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n};\r\n\r\nexport const addUnclassifiedItem =\r\n (contractId, additions) => async (dispatch) => {\r\n await acquireTokenPopupAndCallAPI(async (token) => {\r\n const additionReqs = fetch(API_ROOT.unclassified, {\r\n method: \"POST\",\r\n body: JSON.stringify(additions.editableFields),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n try {\r\n await Promise.all([additionReqs]);\r\n dispatch(getSingleContract(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n };\r\n\r\nexport const addContractVendorItemRecords =\r\n (contractId, additions) => async (dispatch) => {\r\n await acquireTokenPopupAndCallAPI(async (token) => {\r\n const additionReqs = fetch(API_ROOT.contractvendorpayment, {\r\n method: \"POST\",\r\n body: JSON.stringify(additions.editableFields),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n try {\r\n await Promise.all([additionReqs]);\r\n dispatch(getSingleContract(contractId));\r\n dispatch(\r\n getContractVendorPayments(additions.editableFields.contractVendorId)\r\n );\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n };\r\n\r\nexport const editContractVendorItemRecords =\r\n (contractId, edits) => async (dispatch) => {\r\n await acquireTokenPopupAndCallAPI(async (token) => {\r\n const editReqs = fetch(\r\n `${API_ROOT.contractvendorpayment}/?id=${edits.contractVendorPaymentId}`,\r\n {\r\n method: \"PATCH\",\r\n body: JSON.stringify(edits.patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n );\r\n try {\r\n await Promise.all([editReqs]);\r\n dispatch(getSingleContract(contractId));\r\n dispatch(getContractVendorPayments(edits.contractVendorId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n };\r\n\r\nexport const editClassifiedItemRecords =\r\n (contractId, edits) => async (dispatch) => {\r\n await acquireTokenPopupAndCallAPI(async (token) => {\r\n const editReqs = fetch(\r\n `${API_ROOT.classifiedDetail}/?id=${edits.classifiedDetailId}`,\r\n {\r\n method: \"PATCH\",\r\n body: JSON.stringify(edits.patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n );\r\n try {\r\n await Promise.all([editReqs]);\r\n dispatch(getSingleContract(contractId));\r\n dispatch(getClassifiedDetails(edits.classifiedId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n };\r\n\r\nexport const editNetcostItem = (contractId, edits) => async (dispatch) => {\r\n await acquireTokenPopupAndCallAPI(async (token) => {\r\n const editReqs = fetch(`${API_ROOT.netcost}/?id=${edits.netcostId}`, {\r\n method: \"PATCH\",\r\n body: JSON.stringify(edits.patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n try {\r\n await Promise.all([editReqs]);\r\n dispatch(getSingleContract(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n};\r\n\r\nexport const addNetcostItem = (contractId, additions) => async (dispatch) => {\r\n await acquireTokenPopupAndCallAPI(async (token) => {\r\n const additionReqs = fetch(API_ROOT.netcost, {\r\n method: \"POST\",\r\n body: JSON.stringify(additions.editableFields),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n try {\r\n await Promise.all([additionReqs]);\r\n dispatch(getSingleContract(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n};\r\n\r\nexport const addClassifiedItemRecords =\r\n (contractId, additions) => async (dispatch) => {\r\n await acquireTokenPopupAndCallAPI(async (token) => {\r\n const additionReqs = fetch(API_ROOT.classifiedDetail, {\r\n method: \"POST\",\r\n body: JSON.stringify(additions.editableFields),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n try {\r\n await Promise.all([additionReqs]);\r\n dispatch(getSingleContract(contractId));\r\n dispatch(getClassifiedDetails(additions.editableFields.classifiedId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n };\r\n\r\nexport const addNetcostDetailItem =\r\n (contractId, additions) => async (dispatch) => {\r\n await acquireTokenPopupAndCallAPI(async (token) => {\r\n const additionReqs = fetch(API_ROOT.netcostDetail, {\r\n method: \"POST\",\r\n body: JSON.stringify(additions.editableFields),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n try {\r\n await Promise.all([additionReqs]);\r\n dispatch(getSingleContract(contractId));\r\n dispatch(getNetcostDetails(additions.editableFields.netcostId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n };\r\n\r\nexport const editNetcostDetailItem =\r\n (contractId, edits) => async (dispatch) => {\r\n await acquireTokenPopupAndCallAPI(async (token) => {\r\n const editReqs = fetch(\r\n `${API_ROOT.netcostDetail}/?id=${edits.netcostDetailId}`,\r\n {\r\n method: \"PATCH\",\r\n body: JSON.stringify(edits.patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n );\r\n try {\r\n await Promise.all([editReqs]);\r\n dispatch(getSingleContract(contractId));\r\n dispatch(getNetcostDetails(edits.netcostId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n };\r\n\r\nexport const getFinancialSummary = (id) => async (dispatch) => {\r\n const response = await acquireTokenPopupAndCallAPI((token) =>\r\n fetch(`${API_ROOT.financialSummary}/${id}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n const financialSummaryObj = await response.json();\r\n dispatch(gotFinancialSummary(financialSummaryObj));\r\n};\r\n\r\nexport const updatePerfBond = (id, values) => async (dispatch) => {\r\n const response = await fetchWithToken(getEditPerfBondUrl(id), {\r\n method: \"PATCH\",\r\n body: JSON.stringify(values),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n });\r\n const updatedValues = await response.json();\r\n dispatch(updatedPerfBond(id, updatedValues));\r\n};\r\n\r\nexport const bulkEditPotentialDelay =\r\n (contractId, additions, edits) => async (dispatch) => {\r\n await acquireTokenPopupAndCallAPI(async (token) => {\r\n const additionReqs = additions.map((entry) =>\r\n fetch(API_ROOT.potentialdelay, {\r\n method: \"POST\",\r\n body: JSON.stringify(entry),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n const editReqs = edits.map((editObj) =>\r\n fetch(`${API_ROOT.potentialdelay}/?id=${editObj.id}`, {\r\n method: \"PATCH\",\r\n body: JSON.stringify(editObj.patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n try {\r\n await Promise.all([Promise.all(additionReqs), Promise.all(editReqs)]);\r\n dispatch(getSingleContract(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n };\r\n\r\nexport const editPotentialDelay = (contractId, edits) => async (dispatch) => {\r\n await acquireTokenPopupAndCallAPI(async (token) => {\r\n const editReqs = fetch(\r\n `${API_ROOT.potentialdelay}/?id=${edits.potentialdelayId}`,\r\n {\r\n method: \"PATCH\",\r\n body: JSON.stringify(edits.patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n );\r\n try {\r\n await Promise.all([editReqs]);\r\n dispatch(getSingleContract(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n};\r\n\r\nexport const addPotentialDelay =\r\n (contractId, additions) => async (dispatch) => {\r\n await acquireTokenPopupAndCallAPI(async (token) => {\r\n const additionReqs = fetch(API_ROOT.potentialdelay, {\r\n method: \"POST\",\r\n body: JSON.stringify(additions.editableFields),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n try {\r\n await Promise.all([additionReqs]);\r\n dispatch(getSingleContract(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n };\r\n\r\n export const deletePotentialDelay = (contractId, potentialdelayId) => async dispatch => {\r\n try {\r\n await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.potentialdelay}/${potentialdelayId}`, {\r\n method: \"DELETE\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n dispatch(getSingleContract(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n };\r\n \r\n export const getUnclassifiedDeductions = (id) => async (dispatch) => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) =>\r\n fetch(`${API_ROOT.unclassifiedDeductions}/${id}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n })\r\n );\r\n const lumpsumDeductions = await response.json();\r\n //dispatch(gotFacilityDetail(facilityDetail));\r\n return lumpsumDeductions;\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n };\r\n\r\n export const editScheduleItem = (contractId, edits) => async (dispatch) => {\r\n await acquireTokenPopupAndCallAPI(async (token) => {\r\n const editReqs = fetch(`${API_ROOT.schedule}/?id=${edits.scheduleId}`, {\r\n method: \"PATCH\",\r\n body: JSON.stringify(edits.patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n try {\r\n await Promise.all([editReqs]);\r\n dispatch(getSingleContract(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n };\r\n \r\n export const addScheduleItem = (contractId, additions) => async (dispatch) => {\r\n await acquireTokenPopupAndCallAPI(async (token) => {\r\n const additionReqs = fetch(API_ROOT.schedule, {\r\n method: \"POST\",\r\n body: JSON.stringify(additions.editableFields),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n try {\r\n await Promise.all([additionReqs]);\r\n dispatch(getSingleContract(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n };\r\n\r\nconst initialState = {\r\n singleContractLoading: false,\r\n singleContractMain: null,\r\n singleContractSummary: null,\r\n singleContractContractVendors: null,\r\n singleContractClassifieds: null,\r\n singleContractUnclassifieds: null,\r\n singleContractClassifiedWOs: null,\r\n singleContractChargeCode: null,\r\n singleContractContractVendorPayments: [],\r\n singleContractClassifiedDetails: [],\r\n singleContractClassifiedDetailWO: [],\r\n singleContractClassifiedWONetCost: [],\r\n singleContractNetcosts: null,\r\n singleContractPotentialDelay: null,\r\n singleContractRCPotentialDelay: null,\t\r\n singleContractPDPSStaffCostActualBudget: null,\t\t \r\n singleContractSchedules: null,\t\r\n singleContractCutOffDate: null,\t\t\t\t\t \r\n contracts: [],\r\n netcostPaymentsWo: [],\r\n classifiedPaymentsWo: [],\r\n netcostPayments: [],\r\n classifiedPayments: [],\r\n unclassifiedPayments: [],\r\n};\r\n\r\nexport default function reducer(state = initialState, action) {\r\n switch (action.type) {\r\n case GOT_CONTRACTS: {\r\n const { contracts } = action;\r\n return { ...state, contracts };\r\n }\r\n case START_GET_SINGLE_CONTRACT: {\r\n const { singleContractLoading } = action;\r\n return {\r\n ...state,\r\n singleContractLoading,\r\n };\r\n }\r\n case GOT_SINGLE_CONTRACT: {\r\n const {\r\n singleContractLoading,\r\n singleContractMain,\r\n singleContractSummary,\r\n singleContractContractVendors,\r\n singleContractClassifieds,\r\n singleContractClassifiedWOs,\r\n singleContractNetcosts,\r\n singleContractUnclassifieds,\r\n singleContractChargeCode,\r\n singleContractPotentialDelay, \r\n singleContractRCPotentialDelay,\t\r\n singleContractPDPSStaffCostActualBudget,\r\n singleContractSchedules,\r\n singleContractCutOffDate,\r\n } = action;\r\n return {\r\n ...state,\r\n singleContractLoading,\r\n singleContractMain,\r\n singleContractSummary,\r\n singleContractContractVendors,\r\n singleContractClassifieds,\r\n singleContractClassifiedWOs,\r\n singleContractUnclassifieds,\r\n singleContractNetcosts,\r\n singleContractChargeCode,\r\n singleContractPotentialDelay, \r\n singleContractRCPotentialDelay,\r\n singleContractPDPSStaffCostActualBudget,\r\n singleContractSchedules,\r\n singleContractCutOffDate,\r\n };\r\n }\r\n case GOT_SINGLE_CONTRACT_CONTRACTVENDOR_PAYMENTS: {\r\n const { singleContractContractVendorPayments } = action;\r\n return { ...state, singleContractContractVendorPayments };\r\n }\r\n case GOT_SINGLE_CONTRACT_CLASSIFIED_DETAILS: {\r\n const { singleContractClassifiedDetails } = action;\r\n return { ...state, singleContractClassifiedDetails };\r\n }\r\n case GOT_SINGLE_CONTRACT_CLASSIFIED_DETAILWO: {\r\n const { singleContractClassifiedDetailWO } = action;\r\n return { ...state, singleContractClassifiedDetailWO };\r\n }\r\n case GOT_SINGLE_CONTRACT_CLASSIFIEDWO_NETCOST: {\r\n const { singleContractClassifiedWONetCost } = action;\r\n return { ...state, singleContractClassifiedWONetCost };\r\n }\r\n case GOT_NETCOST_DETAILS: {\r\n const { singleContractNetcostDetails } = action;\r\n return { ...state, singleContractNetcostDetails };\r\n }\r\n case GOT_FINANCIAL_SUMMARY: {\r\n const { financialSummary } = action;\r\n return { ...state, singleContractSummary: financialSummary };\r\n }\r\n case UPDATED_PERF_BOND: {\r\n const { bondamt, bondate } = action.values;\r\n const origFinancialSummary = state.singleContractSummary;\r\n if (\r\n origFinancialSummary === null ||\r\n action.id !== String(origFinancialSummary.id)\r\n ) {\r\n // Double-checking id here because it is unlikely but possible for a different contract to be selected in the\r\n // time that it takes for the performance bond information to be updated.\r\n return state;\r\n }\r\n const newFinancialSummary = { ...origFinancialSummary, bondamt, bondate };\r\n return { ...state, singleContractSummary: newFinancialSummary };\r\n }\r\n case UPDATED_CONTRACT_FINANCIAL_HISTORY: {\r\n const { singleContractMain } = state;\r\n if (singleContractMain === null) {\r\n return state;\r\n }\r\n const { contractId, values } = action;\r\n if (singleContractMain.id !== contractId) {\r\n return state;\r\n }\r\n const newSingleContractMain = { ...singleContractMain, ...values };\r\n return { ...state, singleContractMain: newSingleContractMain }\r\n } \r\n case GOT_NETCOST_PAYMENT_WO:\r\n const { netcostPaymentsWo } = action;\r\n return { ...state, netcostPaymentsWo }; \r\n case GOT_CLASSIFIED_PAYMENT_WO:\r\n const { classifiedPaymentsWo } = action;\r\n return { ...state, classifiedPaymentsWo };\r\n\r\n case GOT_NETCOST_PAYMENT:\r\n const { netcostPayments } = action;\r\n return { ...state, netcostPayments }; \r\n case GOT_CLASSIFIED_PAYMENT:\r\n const { classifiedPayments } = action;\r\n return { ...state, classifiedPayments }; \r\n case GOT_UNCLASSIFIED_PAYMENT:\r\n const { unclassifiedPayments } = action;\r\n return { ...state, unclassifiedPayments };\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { fetchWithToken } from '../authentication';\r\nimport { searchSetAsides } from '../api_endpoints';\r\n\r\nconst START_GETTING_SET_ASIDE_ENTRIES = 'START_GETTING_SET_ASIDE_ENTRIES';\r\nconst STOP_GETTING_SET_ASIDE_ENTRIES = 'STOP_GETTING_SET_ASIDE_ENTRIES';\r\nconst GOT_SET_ASIDE_ENTRIES = 'GOT_SET_ASIDE_ENTRIES';\r\nconst RESET_SET_ASIDE_ENTRIES = 'RESET_SET_ASIDE_ENTRIES';\r\n\r\nconst startGettingSetAsideEntries = () => ({\r\n type: START_GETTING_SET_ASIDE_ENTRIES\r\n});\r\n\r\nconst stopGettingSetAsideEntries = () => ({\r\n type: STOP_GETTING_SET_ASIDE_ENTRIES\r\n});\r\n\r\nconst gotSetAsideEntries = (entries, prevSearchTerms) => ({\r\n type: GOT_SET_ASIDE_ENTRIES,\r\n entries,\r\n prevSearchTerms\r\n});\r\n\r\nexport const resetSetAsideEntries = () => ({\r\n type: RESET_SET_ASIDE_ENTRIES\r\n});\r\n\r\nexport const getSetAsideEntries = (name, ein, active) => async (dispatch) => {\r\n let response = null;\r\n try {\r\n dispatch(startGettingSetAsideEntries());\r\n response = await fetchWithToken(searchSetAsides(name, ein, active));\r\n }\r\n catch (e) {\r\n console.error(`Network error during API call to search for Set Aside vendors: \"${e.message}\"`);\r\n dispatch(stopGettingSetAsideEntries());\r\n return;\r\n }\r\n if (!response.ok) {\r\n console.error(`Server reports failure in response to API call to search for Set Aside vendors.`);\r\n dispatch(stopGettingSetAsideEntries());\r\n return;\r\n }\r\n let jsonDecodedData = null;\r\n try {\r\n jsonDecodedData = await response.json();\r\n }\r\n catch (e) {\r\n console.error(`Failed to deserialize vendor Set Aside data returned from API: \"${e.message}\"`);\r\n dispatch(stopGettingSetAsideEntries());\r\n return;\r\n }\r\n dispatch(gotSetAsideEntries(jsonDecodedData, {\r\n name,\r\n ein,\r\n active\r\n }));\r\n dispatch(stopGettingSetAsideEntries());\r\n};\r\n\r\nconst initialState = {\r\n gettingEntries: false,\r\n prevSearchTerms: null,\r\n entries: []\r\n};\r\n\r\nexport default function reducer(state = initialState, action) {\r\n switch (action.type) {\r\n case START_GETTING_SET_ASIDE_ENTRIES:\r\n return { ...state, gettingEntries: true };\r\n case STOP_GETTING_SET_ASIDE_ENTRIES:\r\n return { ...state, gettingEntries: false };\r\n case GOT_SET_ASIDE_ENTRIES: {\r\n const { entries, prevSearchTerms } = action;\r\n return { ...state, entries, prevSearchTerms };\r\n }\r\n case RESET_SET_ASIDE_ENTRIES:\r\n return { ...state, entries: [], prevSearchTerms: null };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as Msal from '@azure/msal-browser';\r\n\r\nconst msalConfig = {\r\n auth: {\r\n clientId: 'e53b162d-f309-4f9f-a108-49a7fdf95f6e', //This is your client ID\r\n authority: \"https://login.microsoftonline.com/c4484a25-d0d8-4ad0-916a-a889b6aa7a02\", //This is your tenant info\r\n },\r\n cache: {\r\n cacheLocation: \"localStorage\",\r\n storeAuthStateInCookie: true\r\n }\r\n};\r\n\r\nexport const loginScopes = {\r\n scopes: [\"api://44712413-cec5-405e-959e-798e50e6bcf6/Data.All\", \"User.Read\", \"Directory.Read.All\"]\r\n};\r\n\r\nconst WINTRAK_SCOPE = \"api://44712413-cec5-405e-959e-798e50e6bcf6/Data.All\";\r\nconst DIRECTORY_SCOPE = \"Directory.Read.All\";\r\n\r\nconst myMSALObj = new Msal.PublicClientApplication(msalConfig);\r\nexport default myMSALObj;\r\n\r\nfunction requiresInteraction(errorCode) {\r\n if (!errorCode || !errorCode.length) {\r\n return false;\r\n }\r\n return (\r\n errorCode === \"consent_required\" ||\r\n errorCode === \"interaction_required\" ||\r\n errorCode === \"login_required\"\r\n );\r\n}\r\n\r\n// Deprecated, older function for wrapping token refresh logic for use\r\n// when calling an API. The function fetchWithToken may be easier to use.\r\nexport async function acquireTokenPopupAndCallAPI(apiCallWithTokenFnAsync) {\r\n const accounts = myMSALObj.getAllAccounts();\r\n if (accounts.length === 0) {\r\n return null;\r\n }\r\n const account = accounts[0];\r\n const requestWithAccount = { scopes: [WINTRAK_SCOPE], account };\r\n let tokenResponse;\r\n try {\r\n // try and get the token silently in the background\r\n tokenResponse = await myMSALObj.acquireTokenSilent(requestWithAccount);\r\n } catch (error) {\r\n console.error(error);\r\n // if the silent request failed, it might be because the user\r\n // needs to request one interactively via a pop-up or redirect\r\n if (requiresInteraction(error.errorCode)) {\r\n try {\r\n // try and get the token with an interactive pop-up window\r\n tokenResponse = await myMSALObj.acquireTokenPopup(requestWithAccount);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n }\r\n }\r\n try {\r\n const token = tokenResponse.accessToken;\r\n return await apiCallWithTokenFnAsync(token);\r\n }\r\n catch (error) {\r\n console.error(error);\r\n }\r\n}\r\n\r\n/**\r\n * Acquires a bearer token using MSAL.\r\n * @returns {Promise} A Promise with the token or null if\r\n * the token could not be obtained.\r\n */\r\nexport async function acquireToken(scopes) {\r\n const accounts = myMSALObj.getAllAccounts();\r\n if (accounts.length === 0) {\r\n return null;\r\n }\r\n const account = accounts[0];\r\n const requestWithAccount = { scopes: scopes || [WINTRAK_SCOPE], account };\r\n let tokenResponse;\r\n try {\r\n // try and get the token silently in the background\r\n tokenResponse = await myMSALObj.acquireTokenSilent(requestWithAccount);\r\n } catch (error) {\r\n console.error(error);\r\n // if the silent request failed, it might be because the user\r\n // needs to request one interactively via a pop-up or redirect\r\n if (requiresInteraction(error.errorCode)) {\r\n try {\r\n // try and get the token with an interactive pop-up window\r\n tokenResponse = await myMSALObj.acquireTokenPopup(requestWithAccount);\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n }\r\n }\r\n return tokenResponse.accessToken;\r\n}\r\n\r\n/**\r\n * Acquires a bearer token using MSAL and makes a Fetch API call using the token.\r\n * @param input The Request object.\r\n * @param init\r\n * @returns {Promise} A Promise with the Response object from the Fetch API.\r\n */\r\nexport async function fetchWithToken(input, init) {\r\n const token = await acquireToken();\r\n const request = new Request(input, init);\r\n request.headers.append('Authorization', `Bearer ${token}`);\r\n return fetch(request);\r\n}\r\n\r\n// Same purpose as fetchWithToken, but specifically for use with MS Graph APIs for reading\r\n// Azure AD information\r\nexport async function fetchGraphWithToken(input, init) {\r\n const token = await acquireToken([DIRECTORY_SCOPE]);\r\n const request = new Request(input, init);\r\n request.headers.append('Authorization', `Bearer ${token}`);\r\n return fetch(request);\r\n}\r\n","import { API_ROOT } from \"../api_endpoints\";\r\nimport { acquireTokenPopupAndCallAPI } from \"../authentication\";\r\nimport { getSingleContract } from \"./contract\";\r\n\r\nconst GOT_EXTRAWORKWIPS = \"GOT_EXTRAWORKWIPS\";\r\n\r\nconst gotExtraWorkWIPs = ExtraWorkWIPs => ({\r\n type: GOT_EXTRAWORKWIPS,\r\n ExtraWorkWIPs\r\n});\r\n\r\nexport const getExtraWorkWIPs = contractId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.extraworkwips}/${contractId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const extraworkwips = await response.json();\r\n\r\n dispatch(gotExtraWorkWIPs(extraworkwips));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const addExtraWorkWIP = (ExtraWorkWIPObj) => async dispatch => {\r\n try {\r\n await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.extraworkwip}`, {\r\n method: \"POST\",\r\n body: JSON.stringify(ExtraWorkWIPObj),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n dispatch(getExtraWorkWIPs(ExtraWorkWIPObj.contractId));\r\n dispatch(getSingleContract(ExtraWorkWIPObj.contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const editExtraWorkWIP = (ExtraWorkWIPId, patchObj) => async dispatch => {\r\n try {\r\n await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.extraworkwip}`, {\r\n method: \"PUT\",\r\n body: JSON.stringify(patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n dispatch(getExtraWorkWIPs(patchObj.contractId));\r\n dispatch(getSingleContract(patchObj.contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst initialState = {\r\n ExtraWorkWIPs: [],\r\n};\r\n\r\nexport default function reducer(state = initialState, action) {\r\n switch (action.type) {\r\n case GOT_EXTRAWORKWIPS:\r\n const { ExtraWorkWIPs } = action;\r\n return { ...state, ExtraWorkWIPs };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { createSlice, createSelector } from \"@reduxjs/toolkit\";\r\n\r\nimport { apiRequestStarted } from \"./apiActions\";\r\n\r\nconst slice = createSlice({\r\n name: \"general\",\r\n initialState: {\r\n teams: [],\r\n },\r\n reducers: {\r\n teamsLoaded: (state, { payload }) => {\r\n state.teams = payload;\r\n },\r\n },\r\n});\r\n\r\nconst { teamsLoaded } = slice.actions;\r\n\r\nexport const loadTeams = (contractId, callback) =>\r\n apiRequestStarted({\r\n url: `/api/contracts/team/${contractId}`,\r\n onSuccessCallback: callback,\r\n onSuccess: teamsLoaded.type,\r\n });\r\n\r\nexport const saveTeams = (contractId, data, callback) =>\r\n apiRequestStarted({\r\n url: `/api/contracts/saveteam/${contractId}`,\r\n method: \"post\",\r\n data,\r\n onSuccessCallback: callback,\r\n });\r\n\r\nexport const getUserOpitons = (callback) =>\r\n apiRequestStarted({\r\n url: `/api/userinfo/users`,\r\n onSuccessCallback: callback,\r\n });\r\n\r\nexport const getItems = (items) =>\r\n items.map((a) => ({\r\n ...a,\r\n name: trimVal(a.name),\r\n officeNumber: trimVal(a.officeNumber),\r\n faxNumber: trimVal(a.faxNumber),\r\n }));\r\n\r\nconst trimVal = (val) => (val ? val.trim() : val);\r\n\r\nexport default slice.reducer;\r\n","import { API_ROOT } from \"../api_endpoints\";\r\nimport { acquireTokenPopupAndCallAPI } from \"../authentication\";\r\nimport { getSingleContract } from \"./contract\";\r\n\r\nconst GOT_FIELDORDERWIPS = \"GOT_FIELDORDERWIPS\";\r\n\r\nconst gotFieldOrderWIPs = FieldOrderWIPs => ({\r\n type: GOT_FIELDORDERWIPS,\r\n FieldOrderWIPs\r\n});\r\n\r\nexport const getFieldOrderWIPs = contractId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.fieldorderwips}/${contractId}`, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const fieldorderwips = await response.json();\r\n\r\n dispatch(gotFieldOrderWIPs(fieldorderwips));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const addFieldOrderWIP = (FieldOrderWIPObj) => async dispatch => {\r\n try {\r\n await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.fieldorderwip}`, {\r\n method: \"POST\",\r\n body: JSON.stringify(FieldOrderWIPObj),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n dispatch(getFieldOrderWIPs(FieldOrderWIPObj.contractId));\r\n dispatch(getSingleContract(FieldOrderWIPObj.contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const editFieldOrderWIP = (FieldOrderWIPId, patchObj) => async dispatch => {\r\n try {\r\n await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.fieldorderwip}`, {\r\n method: \"PUT\",\r\n body: JSON.stringify(patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n dispatch(getFieldOrderWIPs(patchObj.contractId));\r\n dispatch(getSingleContract(patchObj.contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst initialState = {\r\n FieldOrderWIPs: [],\r\n};\r\n\r\nexport default function reducer(state = initialState, action) {\r\n switch (action.type) {\r\n case GOT_FIELDORDERWIPS:\r\n const { FieldOrderWIPs } = action;\r\n return { ...state, FieldOrderWIPs };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { API_ROOT } from \"../api_endpoints\";\r\nimport { acquireTokenPopupAndCallAPI } from \"../authentication\";\r\n\r\nconst GOT_CONTRACT_GOALS = \"GOT_CONTRACT_GOALS\";\r\n\r\nconst gotGoals = Goals => ({\r\n type: GOT_CONTRACT_GOALS,\r\n Goals\r\n});\r\n\r\nexport const getGoals = contractId => async dispatch => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.goals}/${contractId}`, {\r\n\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n const goals = await response.json();\r\n\r\n dispatch(gotGoals(goals));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nexport const editGoals = (contractId, patchObj) => async dispatch => {\r\n try {\r\n await acquireTokenPopupAndCallAPI(token =>\r\n fetch(`${API_ROOT.goals}/${contractId}`, {\r\n method: \"PATCH\",\r\n body: JSON.stringify(patchObj.patchObj),\r\n headers: {\r\n \"Content-Type\": \"application/json-patch+json\",\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n );\r\n dispatch(getGoals(contractId));\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\nconst initialState = {\r\n Goals: [],\r\n};\r\n\r\nexport default function reducer(state = initialState, action) {\r\n switch (action.type) {\r\n case GOT_CONTRACT_GOALS: {\r\n const { Goals } = action;\r\n return { ...state, Goals };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { referenceDataByCategory } from '../api_endpoints';\r\nimport { acquireTokenPopupAndCallAPI } from '../authentication';\r\n\r\nconst GOT_CATEGORIES = 'GOT_CATEGORIES';\r\n\r\nconst gotCategories = (categories) => ({\r\n type: GOT_CATEGORIES,\r\n categories\r\n});\r\n\r\nexport const getCategories = () => async (dispatch) => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) => (\r\n fetch(\r\n `${referenceDataByCategory('Work Category')}`,\r\n {\r\n method: 'GET',\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n },\r\n )\r\n ));\r\n const categories = await response.json();\r\n dispatch(gotCategories(categories));\r\n }\r\n catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\n\r\nconst initialState = {\r\n categories: [],\r\n};\r\n\r\nexport default function reducer(state = initialState, action) {\r\n switch (action.type) {\r\n case GOT_CATEGORIES: {\r\n const { categories } = action;\r\n return { ...state, categories };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { referenceDataByCategory } from '../api_endpoints';\r\nimport { acquireTokenPopupAndCallAPI } from '../authentication';\r\n\r\nconst GOT_ETHNICITIES = 'GOT_ETHNICITIES';\r\n\r\nconst gotEthnicities = (ethnicities) => ({\r\n type: GOT_ETHNICITIES,\r\n ethnicities\r\n});\r\n\r\nexport const getEthnicities = () => async (dispatch) => {\r\n try {\r\n const response = await acquireTokenPopupAndCallAPI((token) => (\r\n fetch(\r\n `${referenceDataByCategory('Ethnicity')}`,\r\n {\r\n method: 'GET',\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n },\r\n )\r\n ));\r\n const ethnicities = await response.json();\r\n dispatch(gotEthnicities(ethnicities));\r\n }\r\n catch (error) {\r\n console.error(error);\r\n }\r\n};\r\n\r\n\r\nconst initialState = {\r\n ethnicities: [],\r\n};\r\n\r\nexport default function reducer(state = initialState, action) {\r\n switch (action.type) {\r\n case GOT_ETHNICITIES: {\r\n const { ethnicities } = action;\r\n return { ...state, ethnicities };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","/*\r\n* required polyfills\r\n*/\r\nimport \"core-js\";\r\nimport 'core-js/features/set/map';\r\n\r\n/** IE9, IE10 and IE11 requires all of the following polyfills. **/\r\n// import 'core-js/es6/symbol'\r\n// import 'core-js/es6/object'\r\n// import 'core-js/es6/function'\r\n// import 'core-js/es6/parse-int'\r\n// import 'core-js/es6/parse-float'\r\n// import 'core-js/es6/number'\r\n// import 'core-js/es6/math'\r\n// import 'core-js/es6/string'\r\n// import 'core-js/es6/date'\r\n// import 'core-js/es6/array'\r\n// import 'core-js/es6/regexp'\r\n// import 'core-js/es6/map'\r\n// import 'core-js/es6/weak-map'\r\n// import 'core-js/es6/set'\r\n// import 'core-js/es7/object'\r\n\r\n/** IE10 and IE11 requires the following for the Reflect API. */\r\n// import 'core-js/es6/reflect'\r\n\r\n/** Evergreen browsers require these. **/\r\n// Used for reflect-metadata in JIT. If you use AOT (and only Angular decorators), you can remove.\r\n// import 'core-js/es7/reflect'\r\n\r\n// CustomEvent() constructor functionality in IE9, IE10, IE11\r\n(function () {\r\n\r\n if ( typeof window.CustomEvent === \"function\" ) return false\r\n\r\n function CustomEvent ( event, params ) {\r\n params = params || { bubbles: false, cancelable: false, detail: undefined }\r\n var evt = document.createEvent( 'CustomEvent' )\r\n evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail )\r\n return evt\r\n }\r\n\r\n CustomEvent.prototype = window.Event.prototype\r\n\r\n window.CustomEvent = CustomEvent\r\n})()\r\n","import Mock from 'mockjs';\r\n\r\nexport default Mock.mock('/api/PACCList', 'get', {\r\n success: true,\r\n items: getItemList(),\r\n})\r\n\r\n\r\n\r\n\r\nfunction getItemList(){\r\n return [\r\n {\r\n ID: 1,\r\n ItemNo: '00001',\r\n ItemName: 'D - ELECTRICAL CHANGES',\r\n COPay: 'Lump Sum',\r\n Type: 'Design',\r\n Orig: 'Design',\r\n PaccDate: '09/17/2014',\r\n Forecast: '90,000.00',\r\n Status: 'Closed 04/19/2016',\r\n Pinn: '00001',\r\n CO: '00013',\r\n },\r\n {\r\n ID: 2,\r\n ItemNo: '00002',\r\n ItemName: 'A - ELECTRICAL CHANGES',\r\n COPay: 'Lump Sum',\r\n Type: 'Design',\r\n Orig: 'Design',\r\n PaccDate: '09/17/2014',\r\n Forecast: '90,000.00',\r\n Status: 'Closed 04/19/2016',\r\n Pinn: '00001',\r\n CO: '00013',\r\n },\r\n {\r\n \"ID\": \"3\",\r\n \"ItemNo\": \"00003\",\r\n \"ItemName\": \"D - ELECTRICAL CHANGES\",\r\n \"COPay\": \"Lump Sum\",\r\n \"Type\": \"Design\",\r\n \"Orig\": \"Design\",\r\n \"PaccDate\": \"9/17/2014\",\r\n \"Forecast\": \"90,000.00\",\r\n \"Status\": \"Closed 04/19/2016\",\r\n \"Pinn\": \"00001\",\r\n \"CO\": \"00013\"\r\n },\r\n {\r\n \"ID\": \"4\",\r\n \"ItemNo\": \"00004\",\r\n \"ItemName\": \"D - ELECTRICAL CHANGES\",\r\n \"COPay\": \"Lump Sum\",\r\n \"Type\": \"Design\",\r\n \"Orig\": \"Design\",\r\n \"PaccDate\": \"9/18/2014\",\r\n \"Forecast\": \"90,001.00\",\r\n \"Status\": \"Closed 04/19/2017\",\r\n \"Pinn\": \"00002\",\r\n \"CO\": \"00014\"\r\n },\r\n {\r\n \"ID\": \"5\",\r\n \"ItemNo\": \"00005\",\r\n \"ItemName\": \"D - ELECTRICAL CHANGES\",\r\n \"COPay\": \"Lump Sum\",\r\n \"Type\": \"Design\",\r\n \"Orig\": \"Design\",\r\n \"PaccDate\": \"9/19/2014\",\r\n \"Forecast\": \"90,002.00\",\r\n \"Status\": \"Closed 04/19/2018\",\r\n \"Pinn\": \"00003\",\r\n \"CO\": \"00015\"\r\n },\r\n {\r\n \"ID\": \"6\",\r\n \"ItemNo\": \"00006\",\r\n \"ItemName\": \"D - ELECTRICAL CHANGES\",\r\n \"COPay\": \"Lump Sum\",\r\n \"Type\": \"Design\",\r\n \"Orig\": \"Design\",\r\n \"PaccDate\": \"9/22/2014\",\r\n \"Forecast\": \"90,003.00\",\r\n \"Status\": \"Closed 04/19/2019\",\r\n \"Pinn\": \"00004\",\r\n \"CO\": \"00016\"\r\n },\r\n {\r\n \"ID\": \"7\",\r\n \"ItemNo\": \"00007\",\r\n \"ItemName\": \"D - ELECTRICAL CHANGES\",\r\n \"COPay\": \"Lump Sum\",\r\n \"Type\": \"Design\",\r\n \"Orig\": \"Design\",\r\n \"PaccDate\": \"9/23/2014\",\r\n \"Forecast\": \"90,004.00\",\r\n \"Status\": \"Closed 04/19/2020\",\r\n \"Pinn\": \"00005\",\r\n \"CO\": \"00017\"\r\n },\r\n {\r\n \"ID\": \"8\",\r\n \"ItemNo\": \"00008\",\r\n \"ItemName\": \"D - ELECTRICAL CHANGES\",\r\n \"COPay\": \"Lump Sum\",\r\n \"Type\": \"Design\",\r\n \"Orig\": \"Design\",\r\n \"PaccDate\": \"9/24/2014\",\r\n \"Forecast\": \"90,005.00\",\r\n \"Status\": \"Closed 04/19/2021\",\r\n \"Pinn\": \"00006\",\r\n \"CO\": \"00018\"\r\n },\r\n {\r\n \"ID\": \"9\",\r\n \"ItemNo\": \"00009\",\r\n \"ItemName\": \"D - ELECTRICAL CHANGES\",\r\n \"COPay\": \"Lump Sum\",\r\n \"Type\": \"Design\",\r\n \"Orig\": \"Design\",\r\n \"PaccDate\": \"9/25/2014\",\r\n \"Forecast\": \"90,006.00\",\r\n \"Status\": \"Closed 04/19/2022\",\r\n \"Pinn\": \"00007\",\r\n \"CO\": \"00019\"\r\n },\r\n {\r\n \"ID\": \"10\",\r\n \"ItemNo\": \"00010\",\r\n \"ItemName\": \"D - ELECTRICAL CHANGES\",\r\n \"COPay\": \"Lump Sum\",\r\n \"Type\": \"Design\",\r\n \"Orig\": \"Design\",\r\n \"PaccDate\": \"9/26/2014\",\r\n \"Forecast\": \"90,007.00\",\r\n \"Status\": \"Closed 04/19/2023\",\r\n \"Pinn\": \"00008\",\r\n \"CO\": \"00020\"\r\n },\r\n {\r\n \"ID\": \"11\",\r\n \"ItemNo\": \"00011\",\r\n \"ItemName\": \"D - ELECTRICAL CHANGES\",\r\n \"COPay\": \"Lump Sum\",\r\n \"Type\": \"Design\",\r\n \"Orig\": \"Design\",\r\n \"PaccDate\": \"9/29/2014\",\r\n \"Forecast\": \"90,008.00\",\r\n \"Status\": \"Closed 04/19/2024\",\r\n \"Pinn\": \"00009\",\r\n \"CO\": \"00021\"\r\n },\r\n {\r\n \"ID\": \"12\",\r\n \"ItemNo\": \"00012\",\r\n \"ItemName\": \"D - ELECTRICAL CHANGES\",\r\n \"COPay\": \"Lump Sum\",\r\n \"Type\": \"Design\",\r\n \"Orig\": \"Design\",\r\n \"PaccDate\": \"9/30/2014\",\r\n \"Forecast\": \"90,009.00\",\r\n \"Status\": \"Closed 04/19/2025\",\r\n \"Pinn\": \"00010\",\r\n \"CO\": \"00022\"\r\n },\r\n {\r\n \"ID\": \"13\",\r\n \"ItemNo\": \"00013\",\r\n \"ItemName\": \"D - ELECTRICAL CHANGES\",\r\n \"COPay\": \"Lump Sum\",\r\n \"Type\": \"Design\",\r\n \"Orig\": \"Design\",\r\n \"PaccDate\": \"10/1/2014\",\r\n \"Forecast\": \"90,010.00\",\r\n \"Status\": \"Closed 04/19/2026\",\r\n \"Pinn\": \"00011\",\r\n \"CO\": \"00023\"\r\n },\r\n {\r\n \"ID\": \"14\",\r\n \"ItemNo\": \"00014\",\r\n \"ItemName\": \"D - ELECTRICAL CHANGES\",\r\n \"COPay\": \"Lump Sum\",\r\n \"Type\": \"Design\",\r\n \"Orig\": \"Design\",\r\n \"PaccDate\": \"10/2/2014\",\r\n \"Forecast\": \"90,011.00\",\r\n \"Status\": \"Closed 04/19/2027\",\r\n \"Pinn\": \"00012\",\r\n \"CO\": \"00024\"\r\n },\r\n {\r\n \"ID\": \"15\",\r\n \"ItemNo\": \"00015\",\r\n \"ItemName\": \"D - ELECTRICAL CHANGES\",\r\n \"COPay\": \"Lump Sum\",\r\n \"Type\": \"Design\",\r\n \"Orig\": \"Design\",\r\n \"PaccDate\": \"10/3/2014\",\r\n \"Forecast\": \"90,012.00\",\r\n \"Status\": \"Closed 04/19/2028\",\r\n \"Pinn\": \"00013\",\r\n \"CO\": \"00025\"\r\n },\r\n {\r\n \"ID\": \"16\",\r\n \"ItemNo\": \"00016\",\r\n \"ItemName\": \"D - ELECTRICAL CHANGES\",\r\n \"COPay\": \"Lump Sum\",\r\n \"Type\": \"Design\",\r\n \"Orig\": \"Design\",\r\n \"PaccDate\": \"10/6/2014\",\r\n \"Forecast\": \"90,013.00\",\r\n \"Status\": \"Closed 04/19/2029\",\r\n \"Pinn\": \"00014\",\r\n \"CO\": \"00026\"\r\n },\r\n {\r\n \"ID\": \"17\",\r\n \"ItemNo\": \"00017\",\r\n \"ItemName\": \"D - ELECTRICAL CHANGES\",\r\n \"COPay\": \"Lump Sum\",\r\n \"Type\": \"Design\",\r\n \"Orig\": \"Design\",\r\n \"PaccDate\": \"10/7/2014\",\r\n \"Forecast\": \"90,014.00\",\r\n \"Status\": \"Closed 04/19/2030\",\r\n \"Pinn\": \"00015\",\r\n \"CO\": \"00027\"\r\n },\r\n {\r\n \"ID\": \"18\",\r\n \"ItemNo\": \"00018\",\r\n \"ItemName\": \"D - ELECTRICAL CHANGES\",\r\n \"COPay\": \"Lump Sum\",\r\n \"Type\": \"Design\",\r\n \"Orig\": \"Design\",\r\n \"PaccDate\": \"10/8/2014\",\r\n \"Forecast\": \"90,015.00\",\r\n \"Status\": \"Closed 04/19/2031\",\r\n \"Pinn\": \"00016\",\r\n \"CO\": \"00028\"\r\n },\r\n {\r\n \"ID\": \"19\",\r\n \"ItemNo\": \"00019\",\r\n \"ItemName\": \"D - ELECTRICAL CHANGES\",\r\n \"COPay\": \"Lump Sum\",\r\n \"Type\": \"Design\",\r\n \"Orig\": \"Design\",\r\n \"PaccDate\": \"10/9/2014\",\r\n \"Forecast\": \"90,016.00\",\r\n \"Status\": \"Closed 04/19/2032\",\r\n \"Pinn\": \"00017\",\r\n \"CO\": \"00029\"\r\n },\r\n {\r\n \"ID\": \"20\",\r\n \"ItemNo\": \"00020\",\r\n \"ItemName\": \"D - ELECTRICAL CHANGES\",\r\n \"COPay\": \"Lump Sum\",\r\n \"Type\": \"Design\",\r\n \"Orig\": \"Design\",\r\n \"PaccDate\": \"10/10/2014\",\r\n \"Forecast\": \"90,017.00\",\r\n \"Status\": \"Closed 04/19/2033\",\r\n \"Pinn\": \"00018\",\r\n \"CO\": \"00030\"\r\n },\r\n {\r\n \"ID\": \"21\",\r\n \"ItemNo\": \"00021\",\r\n \"ItemName\": \"D - ELECTRICAL CHANGES\",\r\n \"COPay\": \"Lump Sum\",\r\n \"Type\": \"Design\",\r\n \"Orig\": \"Design\",\r\n \"PaccDate\": \"10/13/2014\",\r\n \"Forecast\": \"90,018.00\",\r\n \"Status\": \"Closed 04/19/2034\",\r\n \"Pinn\": \"00019\",\r\n \"CO\": \"00031\"\r\n },\r\n {\r\n \"ID\": \"22\",\r\n \"ItemNo\": \"00022\",\r\n \"ItemName\": \"D - ELECTRICAL CHANGES\",\r\n \"COPay\": \"Lump Sum\",\r\n \"Type\": \"Design\",\r\n \"Orig\": \"Design\",\r\n \"PaccDate\": \"10/14/2014\",\r\n \"Forecast\": \"90,019.00\",\r\n \"Status\": \"Closed 04/19/2035\",\r\n \"Pinn\": \"00020\",\r\n \"CO\": \"00032\"\r\n },\r\n {\r\n \"ID\": \"23\",\r\n \"ItemNo\": \"00023\",\r\n \"ItemName\": \"D - ELECTRICAL CHANGES\",\r\n \"COPay\": \"Lump Sum\",\r\n \"Type\": \"Design\",\r\n \"Orig\": \"Design\",\r\n \"PaccDate\": \"10/15/2014\",\r\n \"Forecast\": \"90,020.00\",\r\n \"Status\": \"Closed 04/19/2036\",\r\n \"Pinn\": \"00021\",\r\n \"CO\": \"00033\"\r\n },\r\n {\r\n \"ID\": \"24\",\r\n \"ItemNo\": \"00024\",\r\n \"ItemName\": \"D - ELECTRICAL CHANGES\",\r\n \"COPay\": \"Lump Sum\",\r\n \"Type\": \"Design\",\r\n \"Orig\": \"Design\",\r\n \"PaccDate\": \"10/16/2014\",\r\n \"Forecast\": \"90,021.00\",\r\n \"Status\": \"Closed 04/19/2037\",\r\n \"Pinn\": \"00022\",\r\n \"CO\": \"00034\"\r\n },\r\n {\r\n \"ID\": \"25\",\r\n \"ItemNo\": \"00025\",\r\n \"ItemName\": \"D - ELECTRICAL CHANGES\",\r\n \"COPay\": \"Lump Sum\",\r\n \"Type\": \"Design\",\r\n \"Orig\": \"Design\",\r\n \"PaccDate\": \"10/17/2014\",\r\n \"Forecast\": \"90,022.00\",\r\n \"Status\": \"Closed 04/19/2038\",\r\n \"Pinn\": \"00023\",\r\n \"CO\": \"00035\"\r\n },\r\n {\r\n \"ID\": \"26\",\r\n \"ItemNo\": \"00026\",\r\n \"ItemName\": \"D - ELECTRICAL CHANGES\",\r\n \"COPay\": \"Lump Sum\",\r\n \"Type\": \"Design\",\r\n \"Orig\": \"Design\",\r\n \"PaccDate\": \"10/20/2014\",\r\n \"Forecast\": \"90,023.00\",\r\n \"Status\": \"Closed 04/19/2039\",\r\n \"Pinn\": \"00024\",\r\n \"CO\": \"00036\"\r\n },\r\n {\r\n \"ID\": \"27\",\r\n \"ItemNo\": \"00027\",\r\n \"ItemName\": \"D - ELECTRICAL CHANGES\",\r\n \"COPay\": \"Lump Sum\",\r\n \"Type\": \"Design\",\r\n \"Orig\": \"Design\",\r\n \"PaccDate\": \"10/21/2014\",\r\n \"Forecast\": \"90,024.00\",\r\n \"Status\": \"Closed 04/19/2040\",\r\n \"Pinn\": \"00025\",\r\n \"CO\": \"00037\"\r\n },\r\n {\r\n \"ID\": \"28\",\r\n \"ItemNo\": \"00028\",\r\n \"ItemName\": \"D - ELECTRICAL CHANGES\",\r\n \"COPay\": \"Lump Sum\",\r\n \"Type\": \"Design\",\r\n \"Orig\": \"Design\",\r\n \"PaccDate\": \"10/22/2014\",\r\n \"Forecast\": \"90,025.00\",\r\n \"Status\": \"Closed 04/19/2041\",\r\n \"Pinn\": \"00026\",\r\n \"CO\": \"00038\"\r\n },\r\n {\r\n \"ID\": \"29\",\r\n \"ItemNo\": \"00029\",\r\n \"ItemName\": \"D - ELECTRICAL CHANGES\",\r\n \"COPay\": \"Lump Sum\",\r\n \"Type\": \"Design\",\r\n \"Orig\": \"Design\",\r\n \"PaccDate\": \"10/23/2014\",\r\n \"Forecast\": \"90,026.00\",\r\n \"Status\": \"Closed 04/19/2042\",\r\n \"Pinn\": \"00027\",\r\n \"CO\": \"00039\"\r\n },\r\n {\r\n \"ID\": \"30\",\r\n \"ItemNo\": \"00030\",\r\n \"ItemName\": \"D - ELECTRICAL CHANGES\",\r\n \"COPay\": \"Lump Sum\",\r\n \"Type\": \"Design\",\r\n \"Orig\": \"Design\",\r\n \"PaccDate\": \"10/24/2014\",\r\n \"Forecast\": \"90,027.00\",\r\n \"Status\": \"Closed 04/19/2043\",\r\n \"Pinn\": \"00028\",\r\n \"CO\": \"00040\"\r\n },\r\n {\r\n \"ID\": \"31\",\r\n \"ItemNo\": \"00031\",\r\n \"ItemName\": \"D - ELECTRICAL CHANGES\",\r\n \"COPay\": \"Lump Sum\",\r\n \"Type\": \"Design\",\r\n \"Orig\": \"Design\",\r\n \"PaccDate\": \"10/27/2014\",\r\n \"Forecast\": \"90,028.00\",\r\n \"Status\": \"Closed 04/19/2044\",\r\n \"Pinn\": \"00029\",\r\n \"CO\": \"00041\"\r\n },\r\n {\r\n \"ID\": \"32\",\r\n \"ItemNo\": \"00032\",\r\n \"ItemName\": \"D - ELECTRICAL CHANGES\",\r\n \"COPay\": \"Lump Sum\",\r\n \"Type\": \"Design\",\r\n \"Orig\": \"Design\",\r\n \"PaccDate\": \"10/28/2014\",\r\n \"Forecast\": \"90,029.00\",\r\n \"Status\": \"Closed 04/19/2045\",\r\n \"Pinn\": \"00030\",\r\n \"CO\": \"00042\"\r\n },\r\n {\r\n \"ID\": \"33\",\r\n \"ItemNo\": \"00033\",\r\n \"ItemName\": \"D - ELECTRICAL CHANGES\",\r\n \"COPay\": \"Lump Sum\",\r\n \"Type\": \"Design\",\r\n \"Orig\": \"Design\",\r\n \"PaccDate\": \"10/29/2014\",\r\n \"Forecast\": \"90,030.00\",\r\n \"Status\": \"Closed 04/19/2046\",\r\n \"Pinn\": \"00031\",\r\n \"CO\": \"00043\"\r\n },\r\n {\r\n \"ID\": \"34\",\r\n \"ItemNo\": \"00034\",\r\n \"ItemName\": \"D - ELECTRICAL CHANGES\",\r\n \"COPay\": \"Lump Sum\",\r\n \"Type\": \"Design\",\r\n \"Orig\": \"Design\",\r\n \"PaccDate\": \"10/30/2014\",\r\n \"Forecast\": \"90,031.00\",\r\n \"Status\": \"Closed 04/19/2047\",\r\n \"Pinn\": \"00032\",\r\n \"CO\": \"00044\"\r\n },\r\n {\r\n \"ID\": \"35\",\r\n \"ItemNo\": \"00035\",\r\n \"ItemName\": \"D - ELECTRICAL CHANGES\",\r\n \"COPay\": \"Lump Sum\",\r\n \"Type\": \"Design\",\r\n \"Orig\": \"Design\",\r\n \"PaccDate\": \"10/31/2014\",\r\n \"Forecast\": \"90,032.00\",\r\n \"Status\": \"Closed 04/19/2048\",\r\n \"Pinn\": \"00033\",\r\n \"CO\": \"00045\"\r\n },\r\n {\r\n \"ID\": \"36\",\r\n \"ItemNo\": \"00036\",\r\n \"ItemName\": \"D - ELECTRICAL CHANGES\",\r\n \"COPay\": \"Lump Sum\",\r\n \"Type\": \"Design\",\r\n \"Orig\": \"Design\",\r\n \"PaccDate\": \"11/3/2014\",\r\n \"Forecast\": \"90,033.00\",\r\n \"Status\": \"Closed 04/19/2049\",\r\n \"Pinn\": \"00034\",\r\n \"CO\": \"00046\"\r\n },\r\n {\r\n \"ID\": \"37\",\r\n \"ItemNo\": \"00037\",\r\n \"ItemName\": \"D - ELECTRICAL CHANGES\",\r\n \"COPay\": \"Lump Sum\",\r\n \"Type\": \"Design\",\r\n \"Orig\": \"Design\",\r\n \"PaccDate\": \"11/4/2014\",\r\n \"Forecast\": \"90,034.00\",\r\n \"Status\": \"Closed 04/19/2050\",\r\n \"Pinn\": \"00035\",\r\n \"CO\": \"00047\"\r\n }\r\n]\r\n\r\n}\r\n\r\n","import \"../mock/pacclist.js\";\r\n//import axios from 'axios';\r\n\r\nconst initialState = {\r\n label: \"Change Order\",\r\n changeorders: [\r\n {\r\n ID: 1111,\r\n ItemName: \"CO1\"\r\n },\r\n {\r\n ID: 2222,\r\n ItemName: \"CO2\"\r\n }\r\n ]\r\n};\r\n\r\nexport const addNew = payload => dispatch => {\r\n /* axios.get('/api/PACCList').then((res)=>{ */\r\n /* console.log(res);\r\n dispatch({\r\n type:'AddNew',\r\n payload:res.data.items,\r\n });\r\n }); */\r\n};\r\n\r\nexport default function reducer(state = initialState, action) {\r\n switch (action.type) {\r\n case \"AddNew\": {\r\n const { payload } = action;\r\n //console.log(state.changeorders);\r\n return {\r\n ...state,\r\n changeorders: state.changeorders.concat(payload)\r\n };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as apiActions from \"../store/apiActions\";\r\nimport axios from \"axios\";\r\nimport { acquireTokenPopupAndCallAPI } from \"../authentication\";\r\nimport { toast } from \"react-toastify\";\r\nconst api =\r\n ({ dispatch }) =>\r\n (next) =>\r\n (action) => {\r\n next(action);\r\n const { type, payload } = action;\r\n if (type === apiActions.apiRequestStarted.type) {\r\n const {\r\n url,\r\n data: item,\r\n method,\r\n onSuccess,\r\n onSuccessCallback,\r\n onSuccessMessage,\r\n onPrepare,\r\n successPayload,\r\n onError,\r\n } = payload;\r\n\r\n if (onPrepare) {\r\n dispatch({ type: onPrepare });\r\n }\r\n acquireTokenPopupAndCallAPI(async (token) => {\r\n try {\r\n const { data } = await axios.request({\r\n url,\r\n data: item,\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n method,\r\n });\r\n\r\n // console.log(data);\r\n\r\n if (\"ok\" in data && !data.ok) {\r\n const { errorMessage } = data;\r\n handleError(errorMessage, onError);\r\n return;\r\n }\r\n\r\n dispatch(apiActions.apiRequestSuccess(data));\r\n\r\n if (onSuccessCallback) {\r\n onSuccessCallback(data);\r\n }\r\n\r\n if (onSuccess) {\r\n dispatch({\r\n type: onSuccess,\r\n payload: successPayload ? successPayload : data,\r\n });\r\n }\r\n\r\n //if (onSuccessMessage) toast.success(onSuccessMessage);\r\n } catch (error) {\r\n const { message } = error;\r\n handleError(message, onError);\r\n }\r\n });\r\n }\r\n\r\n const handleError = (message, onError) => {\r\n dispatch(apiActions.apiRequestFailed(message));\r\n toast.error(message);\r\n if (onError) {\r\n dispatch({\r\n type: onError,\r\n payload: message,\r\n });\r\n }\r\n };\r\n };\r\n\r\nexport default api;\r\n","import { createStore, combineReducers, applyMiddleware } from \"redux\";\r\nimport thunkMiddleware from \"redux-thunk\";\r\nimport { composeWithDevTools } from \"redux-devtools-extension\";\r\n\r\nimport contract from \"./contract\";\r\nimport facility from \"./facility\";\r\nimport vendor from \"./vendor\";\r\nimport closeDelay from \"./close-delay\";\r\nimport workOrder from \"./work-order\";\r\nimport unitPrice from \"./unit-price\";\r\nimport changeorder from \"./changeorder\";\r\nimport setAside from \"./set-aside\";\r\nimport extrawork from \"./extrawork\";\r\nimport extraworkwip from \"./extraworkwip\";\r\nimport spread from \"./spread\";\r\nimport recycle from \"./recycle\";\r\nimport workflow from \"./workflow\";\r\nimport user from \"./user\";\r\nimport fo from \"./fo\";\r\nimport meur from \"./meur\";\r\nimport general from \"./general\";\r\nimport api from \"./api\";\r\nimport fieldOrder from \"./field-order\";\r\nimport fieldorderwip from \"./fieldorderwip\";\r\nimport payment from \"./payment\";\r\nimport goals from \"./goals\";\r\nimport category from \"./category\";\r\nimport ethnicity from \"./ethnicity\";\r\n\r\nconst reducer = combineReducers({\r\n contract,\r\n facility,\r\n vendor,\r\n closeDelay,\r\n workOrder,\r\n unitPrice,\r\n changeorder,\r\n setAside,\r\n extrawork,\r\n extraworkwip,\r\n spread,\r\n recycle,\r\n workflow,\r\n user,\r\n fo,\r\n meurs: meur,\r\n general,\r\n fieldOrder,\r\n fieldorderwip,\r\n payment,\r\n goals,\r\n category,\r\n ethnicity\r\n});\r\nconst middleware = composeWithDevTools(applyMiddleware(thunkMiddleware, api));\r\nconst store = createStore(reducer, middleware);\r\n\r\nexport default store;\r\n","import React, { Component } from \"react\";\r\nimport { HashRouter, Route, Switch } from \"react-router-dom\";\r\nimport { Provider } from \"react-redux\";\r\nimport { ToastContainer } from \"react-toastify\";\r\n\r\nimport \"react-toastify/dist/ReactToastify.css\";\r\nimport \"./App.scss\";\r\nimport store from \"./store\";\r\nimport 'react-bootstrap-table2-paginator/dist/react-bootstrap-table2-paginator.min.css';\r\n\r\nconst loading = () => (\r\n
Loading...
\r\n);\r\n\r\n// Containers\r\nconst DefaultLayout = React.lazy(() => import(\"./containers/DefaultLayout\"));\r\n\r\nclass App extends Component {\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n }\r\n />\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default App;\r\n","// In production, we register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://goo.gl/SC7cgQ'\r\n );\r\n });\r\n } else {\r\n // Is not local host. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the old content will have been purged and\r\n // the fresh content will have been added to the cache.\r\n // It's the perfect time to display a \"New content is\r\n // available; please refresh.\" message in your web app.\r\n console.log('New content is available; please refresh.');\r\n\r\n // Execute callback\r\n if (config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n if (\r\n response.status === 404 ||\r\n response.headers.get('content-type').indexOf('javascript') === -1\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import 'react-app-polyfill/ie9'; // For IE 9-11 support\r\nimport 'react-app-polyfill/stable';\r\n// import 'react-app-polyfill/ie11'; // For IE 11 support\r\nimport './polyfill'\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport App from './App';\r\nimport * as serviceWorker from './serviceWorker';\r\n\r\nReactDOM.render(, document.getElementById('root'));\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: http://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n"],"sourceRoot":""}