Initiated Class and functions to query Google Sheets. Fetches financial data and prints values
This commit is contained in:
commit
e0f7eaffbc
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
access_token.json
|
||||||
|
sheet_data.json
|
||||||
111
fetch_finance_data.js
Normal file
111
fetch_finance_data.js
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
const { google } = require('googleapis');
|
||||||
|
const privatekey = require('./access_token.json');
|
||||||
|
const sheet_data = require('./sheet_data.json');
|
||||||
|
|
||||||
|
class RanchiMallData {
|
||||||
|
constructor() {
|
||||||
|
this.productionCost = 0;
|
||||||
|
this.consumptionCost = 0;
|
||||||
|
this.productionValuation = 0;
|
||||||
|
this.consumptionValuation = 0;
|
||||||
|
this.spreadsheetId = sheet_data.spreadsheetId;
|
||||||
|
}
|
||||||
|
|
||||||
|
async fetchProductionData() {
|
||||||
|
const auth = new google.auth.JWT(
|
||||||
|
privatekey.client_email,
|
||||||
|
null,
|
||||||
|
privatekey.private_key,
|
||||||
|
['https://www.googleapis.com/auth/spreadsheets']
|
||||||
|
);
|
||||||
|
|
||||||
|
const sheets = google.sheets({ version: 'v4', auth });
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
const response = await sheets.spreadsheets.values.get({
|
||||||
|
spreadsheetId: this.spreadsheetId,
|
||||||
|
range: sheet_data.TR_Expenses_range, // Assuming consumption data is in column B, starting from row 7
|
||||||
|
valueRenderOption: 'FORMULA' // Fetch the formula values instead of the displayed values
|
||||||
|
});
|
||||||
|
|
||||||
|
const consumptionData = response.data.values;
|
||||||
|
if (consumptionData) {
|
||||||
|
let sum = 0;
|
||||||
|
for (const row of consumptionData) {
|
||||||
|
const value = parseFloat(row[0]);
|
||||||
|
if (!isNaN(value)) {
|
||||||
|
sum += value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.productionCost = sum;
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Error fetching production data:', error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async fetchConsumptionData() {
|
||||||
|
const auth = new google.auth.JWT(
|
||||||
|
privatekey.client_email,
|
||||||
|
null,
|
||||||
|
privatekey.private_key,
|
||||||
|
['https://www.googleapis.com/auth/spreadsheets']
|
||||||
|
);
|
||||||
|
|
||||||
|
const sheets = google.sheets({ version: 'v4', auth });
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
const response = await sheets.spreadsheets.values.get({
|
||||||
|
spreadsheetId: this.spreadsheetId,
|
||||||
|
range: sheet_data.TR_Expenses_range, // Assuming consumption data is in column B, starting from row 7
|
||||||
|
valueRenderOption: 'FORMULA' // Fetch the formula values instead of the displayed values
|
||||||
|
});
|
||||||
|
|
||||||
|
const consumptionData = response.data.values;
|
||||||
|
if (consumptionData) {
|
||||||
|
let sum = 0;
|
||||||
|
for (const row of consumptionData) {
|
||||||
|
const value = parseFloat(row[0]);
|
||||||
|
if (!isNaN(value)) {
|
||||||
|
sum += value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.consumptionCost = sum
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Error fetching consumption data:', error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
calculateConsumptionValuation() {
|
||||||
|
this.consumptionValuation = this.consumptionCost * 0.8;
|
||||||
|
return this.consumptionValuation;
|
||||||
|
}
|
||||||
|
|
||||||
|
calculateProductionValuation() {
|
||||||
|
this.productionValuation = this.productionCost * 1.2;
|
||||||
|
return this.productionValuation;
|
||||||
|
}
|
||||||
|
|
||||||
|
calculateSystemValuation() {
|
||||||
|
return Math.max(this.productionValuation, this.consumptionValuation);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Example usage
|
||||||
|
async function fetchDataFromGoogleSheet() {
|
||||||
|
const ranchiMallData = new RanchiMallData();
|
||||||
|
|
||||||
|
await ranchiMallData.fetchProductionData();
|
||||||
|
await ranchiMallData.fetchConsumptionData();
|
||||||
|
|
||||||
|
console.log('Total production cost for RanchiMall:', ranchiMallData.productionCost);
|
||||||
|
console.log('Total consumption cost by users:', ranchiMallData.consumptionCost);
|
||||||
|
console.log('Total pxpense valuation of RanchiMall:', ranchiMallData.calculateProductionValuation());
|
||||||
|
console.log('Total consumption valuation of users:', ranchiMallData.calculateConsumptionValuation());
|
||||||
|
console.log('System valuation:', ranchiMallData.calculateSystemValuation());
|
||||||
|
}
|
||||||
|
|
||||||
|
fetchDataFromGoogleSheet();
|
||||||
Loading…
Reference in New Issue
Block a user