top of page

CAP Solar Billing

PJM REC Data

GATS
Location
Gen
Last Month
This Month
Date Read
Gen Date

Heading 1

Quickbooks Data

Invoice
Customer
Inv Date
Due Date
Gen
Rate
Total

I'm a paragraph. Click here to add your own text and edit me. It's easy.

import wixData from 'wix-data';import { post_generateFile } from 'backend/download';import wixLocation from 'wix-location';$w.onReady(function () { console.log("Page is ready"); const today = new Date(); const monthNames = ["jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"]; const currentMonthIndex = today.getMonth(); const currentMonth = monthNames[currentMonthIndex]; const previousMonthIndex = (currentMonthIndex + 11) % 12; const previousMonth = monthNames[previousMonthIndex]; const currentYear = today.getFullYear(); const previousYear = currentMonthIndex === 0 ? currentYear - 1 : currentYear; console.log("Current Month: ", currentMonth); console.log("Previous Month: ", previousMonth); console.log("Current Year: ", currentYear); console.log("Previous Year: ", previousYear); $w('#billmonthDDLB').options = monthNames.map((month, index) => ({ label: month.charAt(0).toUpperCase() + month.slice(1), value: month })); $w('#billmonthDDLB').value = currentMonth; fetchAndDisplayData(previousMonth, currentMonth, previousYear, currentYear); $w('#billmonthDDLB').onChange(() => { console.log("Dropdown value changed"); const selectedMonth = $w('#billmonthDDLB').value; console.log("Selected Month: ", selectedMonth); const selectedIndex = monthNames.indexOf(selectedMonth); const newPreviousMonthIndex = (selectedIndex + 11) % 12; const newPreviousMonth = monthNames[newPreviousMonthIndex]; const newCurrentYear = today.getFullYear(); const newPreviousYear = selectedMonth === "jan" ? newCurrentYear - 1 : newCurrentYear; console.log("New Previous Month: ", newPreviousMonth); console.log("New Current Year: ", newCurrentYear); console.log("New Previous Year: ", newPreviousYear); fetchAndDisplayData(newPreviousMonth, selectedMonth, newPreviousYear, newCurrentYear); }); $w('#exportButton').onClick(() => { console.log("Export button clicked"); exportToTextFile(); });});function fetchAndDisplayData(previousMonth, currentMonth, previousYear, currentYear) { console.log("Fetching and displaying data"); wixData.query("Import120") .find() .then(import120Results => { console.log("Import120 Results: ", import120Results); const import120Data = import120Results.items.filter(item => item.unitId); wixData.query("Import207") .find() .then(import207Results => { console.log("Import207 Results: ", import207Results); const import207Data = import207Results.items; const tableData = import120Data.map(item => { const unitId = item.unitId || "Unknown Unit ID"; const facility = item.facility || "Unknown Facility"; let rawValue = item[previousMonth]; const value = rawValue ? parseFloat(rawValue.toString().replace(/,/g, '')) : 0; console.log(`Unit ID: ${unitId}, Value for ${previousMonth}: ${value}`); const matchingRecord = import207Data.find(record => record.unitId === unitId); const rawLastMeterRead = matchingRecord?.lastMeterReadKWhBtu || "0"; const lastMeterRead = parseFloat(rawLastMeterRead.toString().replace(/,/g, '')) || 0; console.log(`Matching Record for Unit ID ${unitId}: `, matchingRecord); console.log(`Last Meter Read: ${lastMeterRead}`); const meterRead = `${currentMonth.toUpperCase()}/1/${currentYear}`; const meterGen = `${previousMonth.charAt(0).toUpperCase() + previousMonth.slice(1)}-${previousYear.toString().slice(-2)}`; const thisMonthGen = Math.round(lastMeterRead + value); console.log(`Meter Read: ${meterRead}, Meter Gen: ${meterGen}, This Month Gen: ${thisMonthGen}`); return { unitId, facility, value: Math.round(value), lastMeterRead: Math.round(lastMeterRead), meterRead, meterGen, thisMonthGen }; }); console.log("Table Data: ", tableData); $w('#RECTable').rows = tableData; }); });}async function exportToTextFile() { try { console.log("Exporting to text file"); const rows = $w('#RECTable').rows; console.log("Table Rows: ", rows); const textData = rows.map(row => { const unitID = row.unitId || ""; const thisMonthGen = row.thisMonthGen || ""; const blank = ""; const meterRead = row.meterRead || ""; const meterGen = row.meterGen || ""; return `${unitID},${thisMonthGen},${blank},${meterRead},${meterGen}`; }).join("\n"); console.log("Text Data: ", textData); const today = new Date(); const monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; const fileName = `${monthNames[today.getMonth()]} ${today.getFullYear()} PJM Upload.txt`; console.log("File Name: ", fileName); // Call the backend function to generate the file const response = await post_generateFile({ fileName: fileName, content: textData, }); console.log("Response from post_generateFile:", response); if (response && response.url) { console.log("Redirecting to download URL: ", response.url); // Use wixLocation to redirect the browser to the download URL wixLocation.to(response.url); } else { console.error("No URL found in response"); } } catch (error) { console.error("Error exporting file:", error.message); }}

bottom of page