diff --git a/src/uncategorized/costsBudget.js b/src/uncategorized/costsBudget.js index 7f1b25099f3e4900882d55f3e6ed1a2e0cc6b3b6..8d57739e1ac74b97f49eadc3932f679002161faa 100644 --- a/src/uncategorized/costsBudget.js +++ b/src/uncategorized/costsBudget.js @@ -528,10 +528,10 @@ App.UI.Budget.Cost = function() { */ // Set up object to track calculated displays var F = {}; - const income = "lastWeeksCashIncome"; - const expenses = "lastWeeksCashExpenses"; - const profits = "lastWeeksCashProfits"; - + let income = "lastWeeksCashIncome"; + let expenses = "lastWeeksCashExpenses"; + let profits = "lastWeeksCashProfits"; + // HEADER let header = table.createTHead(); let row = header.insertRow(0); @@ -560,8 +560,7 @@ App.UI.Budget.Cost = function() { createSectionHeader("Facilities"); // PENTHOUSE - generateRowShowTotal("Penthouse", "PENTHOUSE"); - generateRowTracking("Rest", "slaveAssignmentRest", "PENTHOUSE"); + generateRowTracking("Rest", "slaveAssignmentRest", "rest", "PENTHOUSE"); generateRowTracking("RestVign", "slaveAssignmentRestVign", "restVign", "PENTHOUSE"); generateRowTracking("Fucktoy", "slaveAssignmentFucktoy", "fucktoy", "PENTHOUSE"); generateRowTracking("Classes", "slaveAssignmentClasses", "classes", "PENTHOUSE"); @@ -578,146 +577,147 @@ App.UI.Budget.Cost = function() { generateRowTracking("ExtraMilkVign", "slaveAssignmentExtraMilkVign", "extraMilkVignVign", "PENTHOUSE"); generateRowTracking("Gloryhole", "slaveAssignmentGloryhole", "gloryhole", "PENTHOUSE"); generateRowTracking("Confinement", "slaveAssignmentConfinement", "confinement", "PENTHOUSE"); + generateRowShowTotal("Penthouse", "PENTHOUSE"); // LEADERSHIP ROLES // HEAD GIRL // find passage name for HGSuite - generateRowShowTotal(V.HGSuiteNameCaps, "HEADGIRLSUITE", V.HGSuite, null, V.HGSuiteiIDs.length); generateRowTracking("Head Girl", "slaveAssignmentHeadgirl", "manager", "HEADGIRLSUITE"); generateRowTracking("Head Girl Fucktoys", "slaveAssignmentHeadgirlsuite", "slaves", "HEADGIRLSUITE"); + generateRowShowTotal(V.HGSuiteNameCaps, "HEADGIRLSUITE", V.HGSuite, null, V.HGSuiteiIDs.length); // RECRUITER - generateRowShowTotal("Recruiter", "RECRUITER"); generateRowTracking("Recruiter", "slaveAssignmentRecruiter", "manager", "RECRUITER"); + generateRowShowTotal("Recruiter", "RECRUITER"); // BODYGUARD // find passage name for Armory - generateRowShowTotal("Armory", "DOJO", V.dojo, null, null); generateRowTracking("Bodyguard", "slaveAssignmentBodyguard", "manager", "DOJO"); + generateRowShowTotal("Armory", "DOJO", V.dojo, null, null); // CONCUBINE - generateRowShowTotal("Master Suite", "MASTERSUITE", V.masterSuite, "Master Suite", V.MastSiIDs.length); generateRowTracking("Master Suite Maintenance", "masterSuite", "maintenance", "MASTERSUITE"); generateRowTracking("Master Suite Concubine", "slaveAssignmentConcubine", "manager", "MASTERSUITE"); generateRowTracking("Master Suite Fucktoys", "slaveAssignmentMastersuite", "slaves", "MASTERSUITE"); + generateRowShowTotal("Master Suite", "MASTERSUITE", V.masterSuite, "Master Suite", V.MastSiIDs.length); // ARCADE - generateRowShowTotal(V.arcadeNameCaps, "ARCADE", V.arcade, "Arcade", V.ArcadeiIDs.length); generateRowTracking("Arcade Maintenance", "arcade", "maintenance", "ARCADE"); generateRowTracking("Arcade Fuckdolls", "slaveAssignmentArcade", "slaves", "ARCADE"); + generateRowShowTotal(V.arcadeNameCaps, "ARCADE", V.arcade, "Arcade", V.ArcadeiIDs.length); // BROTHEL - generateRowShowTotal(V.brothelNameCaps, "BROTHEL", V.brothel, "Brothel", V.BrothiIDs.length); generateRowTracking("Brothel Maintenance", "brothel", "maintenance", "BROTHEL"); generateRowTracking("Brothel Madam", "slaveAssignmentMadam", "manager", "BROTHEL"); generateRowTracking("Brothel MadamVign", "slaveAssignmentMadamVign", "managerVign", "BROTHEL"); generateRowTracking("Brothel Whore", "slaveAssignmentBrothel", "slaves", "BROTHEL"); generateRowTracking("Brothel WhoreVign", "slaveAssignmentBrothelVign", "slavesVign", "BROTHEL"); generateRowTracking("Brothel Ads", "brothelAds", "ads", "BROTHEL"); + generateRowShowTotal(V.brothelNameCaps, "BROTHEL", V.brothel, "Brothel", V.BrothiIDs.length); // CELLBLOCK - generateRowShowTotal(V.cellblockNameCaps, "CELLBLOCK", V.cellblock, "Cellblock", V.CellBiIDs.length); generateRowTracking("Cellblock Maintenance", "cellblock", "maintenance", "CELLBLOCK"); generateRowTracking("Cellblock Warden", "slaveAssignmentWarden", "manager", "CELLBLOCK"); generateRowTracking("Cellblock Slaves", "slaveAssignmentJail", "slaves", "CELLBLOCK"); + generateRowShowTotal(V.cellblockNameCaps, "CELLBLOCK", V.cellblock, "Cellblock", V.CellBiIDs.length); // CLUB - generateRowShowTotal(V.clubNameCaps, "CLUB", V.club, "Club", V.ClubiIDs.length); generateRowTracking("Club Maintenance", "club", "maintenance", "CLUB"); generateRowTracking("Club DJ", "slaveAssignmentDj", "manager", "CLUB"); generateRowTracking("Club Public", "slaveAssignmentClub", "slaves", "CLUB"); generateRowTracking("Club PublicVign", "slaveAssignmentClubVign", "slavesVign", "CLUB"); generateRowTracking("Club Ads", "clubAds", "ads", "CLUB"); + generateRowShowTotal(V.clubNameCaps, "CLUB", V.club, "Club", V.ClubiIDs.length); // CLINIC - generateRowShowTotal(V.clinicNameCaps, "CLINIC", V.club, "Club", V.ClubiIDs.length); generateRowTracking("Clinic Maintenance", "clinic", "maintenance", "CLINIC"); generateRowTracking("Clinic Nurse", "slaveAssignmentNurse", "manager", "CLINIC"); generateRowTracking("Clinic Slaves", "slaveAssignmentClinic", "slaves", "CLINIC"); + generateRowShowTotal(V.clinicNameCaps, "CLINIC", V.club, "Club", V.ClubiIDs.length); // DAIRY - generateRowShowTotal(V.dairyNameCaps, "DAIRY", V.dairy, "Dairy", V.DairyiIDs.length); generateRowTracking("Dairy Maintenance", "dairy", "maintenance", "DAIRY"); generateRowTracking("Dairy Milkmaid", "slaveAssignmentMilkmaid", "manager", "DAIRY"); generateRowTracking("Dairy Cows", "slaveAssignmentDairy", "slaves", "DAIRY"); generateRowTracking("Dairy Cows", "slaveAssignmentDairyVign", "slavesVign", "DAIRY"); + generateRowShowTotal(V.dairyNameCaps, "DAIRY", V.dairy, "Dairy", V.DairyiIDs.length); // FARMYARD - generateRowShowTotal(V.farmyardNameCaps, "FARMYARD", V.farmyard, "Farmyard", V.FarmyardiIDs.length); generateRowTracking("Farmyard Maintenance", "farmyard", "maintenance", "FARMYARD"); generateRowTracking("Farmyard Farmer", "slaveAssignmentFarmer", "manager", "FARMYARD"); generateRowTracking("Farmyard Farmhands", "slaveAssignmentFarmyard", "slaves", "FARMYARD"); generateRowTracking("Farmyard FarmhandsVign", "slaveAssignmentFarmyardVign", "slavesVign", "FARMYARD"); + generateRowShowTotal(V.farmyardNameCaps, "FARMYARD", V.farmyard, "Farmyard", V.FarmyardiIDs.length); // INCUBATOR // TODO: Differentiate between standard upkeep, and slaves in incubator cost. - generateRowShowTotal(V.incubatorNameCaps, "INCUBATOR", V.incubator, "Incubator", V.incubatorSlaves); generateRowTracking("Incubator Maintenance", "incubator", "maintenance", "INCUBATOR"); + generateRowShowTotal(V.incubatorNameCaps, "INCUBATOR", V.incubator, "Incubator", V.incubatorSlaves); // NURSERY - generateRowShowTotal(V.nurseryNameCaps, "NURSERY", V.nursery, "Nursery", V.NurseryiIDs.length); generateRowTracking("Nursery Maintenance", "nursery", "maintenance", "NURSERY"); generateRowTracking("Nursery Matron", "slaveAssignmentMatron", "manager", "NURSERY"); generateRowTracking("Nursery Nannies", "slaveAssignmentNanny", "slaves", "NURSERY"); generateRowTracking("Nursery NanniesVign", "slaveAssignmentNannyVign", "slavesVign", "NURSERY"); + generateRowShowTotal(V.nurseryNameCaps, "NURSERY", V.nursery, "Nursery", V.NurseryiIDs.length); // PIT + generateRowTracking("Pit Maintenance", "pit", "maintenance", "PIT"); generateRowShowTotal(V.pitNameCaps, "PIT", V.pit, "Pit", V.fighterIDs.length); - generateRowShowTotal("Pit Maintenance", "pit", "pit", "maintenance", "PIT"); // PROSTHETIC LAB // TODO: Differentiate between type of staff and associated income. - generateRowShowTotal("Prosthetic Lab", "PROSTHETICLAB", V.researchLab.level, "Prosthetic Lab", null); generateRowTracking("Prosthetic Lab Maintenance", "lab", "maintenance", "PROSTHETICLAB"); + generateRowShowTotal("Prosthetic Lab", "PROSTHETICLAB", V.researchLab.level, "Prosthetic Lab", null); // SCHOOLROOM - generateRowShowTotal(V.schoolroomNameCaps, "SCHOOLROOM", V.schoolroom, "Schoolroom", V.SchlRiIDs.length); generateRowTracking("Schoolroom Maintenance", "school", "maintenance", "SCHOOLROOM"); generateRowTracking("Schoolroom Teacher", "slaveAssignmentTeacher", "manager", "SCHOOLROOM"); generateRowTracking("Schoolroom Students", "slaveAssignmentSchool", "slaves", "SCHOOLROOM"); + generateRowShowTotal(V.schoolroomNameCaps, "SCHOOLROOM", V.schoolroom, "Schoolroom", V.SchlRiIDs.length); // SERVANTS' QUARTERS - generateRowShowTotal(V.servantsQuartersNameCaps, "SERVANTSQUARTERS", V.servantsQuarters, "Servants' Quarters", V.ServQiIDs.length); generateRowTracking("Servants' Quarters Maintenance", "servantsQuarters", "maintenance", "SERVANTSQUARTERS"); generateRowTracking("Servants' Quarters Steward", "slaveAssignmentSteward", "manager", "SERVANTSQUARTERS"); generateRowTracking("Servants' Quarters Servants", "slaveAssignmentQuarter", "slaves", "SERVANTSQUARTERS"); generateRowTracking("Servants' Quarters ServantsVign", "slaveAssignmentQuarterVign", "slavesVign", "SERVANTSQUARTERS"); + generateRowShowTotal(V.servantsQuartersNameCaps, "SERVANTSQUARTERS", V.servantsQuarters, "Servants' Quarters", V.ServQiIDs.length); // SPA - generateRowShowTotal(V.spaNameCaps, "SPA", V.spa, "Spa", V.SpaiIDs.length); generateRowTracking("Spa Maintenance", "spa", "maintenance", "SPA"); generateRowTracking("Spa Attendant", "slaveAssignmentAttendant", "manager", "SPA"); generateRowTracking("Spa Slaves", "slaveAssignmentSpa", "slaves", "SPA"); + generateRowShowTotal(V.spaNameCaps, "SPA", V.spa, "Spa", V.SpaiIDs.length); // HEADER: ARCOLOGY createSectionHeader("Arcology"); // SLAVES - generateRowShowTotal("Miscellaneous Slave Income and Expenses", "SLAVES"); generateRowTracking("Slave Porn", "porn", "porn", "SLAVES"); generateRowTracking("Slave Modifcations", "slaveMod", "mod", "SLAVES"); generateRowTracking("Slave Surgery", "slaveSurgery", "surgery", "SLAVES"); generateRowTracking("Slave Birhting", "birth", "birth", "SLAVES"); + generateRowShowTotal("Miscellaneous Slave Income and Expenses", "SLAVES"); // MENIAL LABOR // TODO: Differentiate between selling and weekly income for menial slaves. - generateRowShowTotal("Menial Labor", "LABOR"); generateRowTracking("Menials: Slaves", "menialTrades", "menials", "LABOR"); generateRowTracking("Menials: Fuckdolls", "fuckdolls", "fuckdolls", "LABOR"); generateRowTracking("Menials: Bioreactors", "menialBioreactors", "bioreactors", "LABOR"); + generateRowShowTotal("Menial Labor", "LABOR"); // FLIPPING - generateRowShowTotal("Flipping", "FLIPPING"); generateRowTracking("Slave Transfer", "slaveTransfer", "slaves", "FLIPPING"); generateRowTracking("Assistant: Menials", "menialTransfer", "menials", "FLIPPING"); generateRowTracking("Assistant: Fuckdolls", "fuckdollsTransfer", "fuckdolls", "FLIPPING"); generateRowTracking("Assistant: Bioreactors", "menialBioreactorsTransfer", "bioreactors", "FLIPPING"); generateRowTracking("Slave Babies", "babyTransfer", "babies", "FLIPPING"); + generateRowShowTotal("Flipping", "FLIPPING"); // FINANCIALS - generateRowShowTotal("Financials", "FINANCIALS"); generateRowTracking("Weather", "weather", "weather", "FINANCIALS"); + generateRowShowTotal("Financials", "FINANCIALS"); // BUDGET REPORT createSectionHeader("Budget Report"); @@ -798,7 +798,7 @@ App.UI.Budget.Cost = function() { } function generateRowTracking(node, category, internalCategory, facility) { - let row; + V[profits][category] = V[income][category] + V[expenses][category]; statisticsGathering(category, internalCategory, facility); if (category === "") { @@ -810,6 +810,7 @@ App.UI.Budget.Cost = function() { flipColors(row); return; } + if (V[income][category] || V[expenses][category] || V.showAllEntries.costsBudget) { row = table.insertRow(); let cell = row.insertCell(); @@ -822,42 +823,35 @@ App.UI.Budget.Cost = function() { cell = row.insertCell(); cell.append(cashFormatColorDOM(V[profits][category])); } - return F; } function statisticsGathering(category, internalCategory, facility) { - V[profits][category] = V[income][category] + V[expenses][category]; if (!F.hasOwnProperty(facility)) { - F[facility] = {}; - F[facility].income = 0; - F[facility].expenses = 0; - F[facility].profits = 0; + F[facility] = {income: 0, expenses: 0, profits: 0} } if (internalCategory && !F.hasOwnProperty(internalCategory)) { - Object.defineProperty(F[facility], internalCategory, { value: profits }); + Object.defineProperty(F[facility], internalCategory, { value: V[profits][category] }); } - F[facility]['income'] += V[income][category]; - F[facility]['expenses'] += V[expenses][category]; - F[facility]['profits'] += V[profits][category]; - return F; + F[facility].income += V[income][category]; + F[facility].expenses += V[expenses][category]; + F[facility].profits += V[profits][category]; } -// F undefined, do I make it a global? Or how can I make it so that I can use it here? + function generateRowShowTotal(title, facility, structure, passage, occupancy) { - let row; - //if (F[facility['income'] || F[facility]['expenses'] || V.showAllEntries.costsBudget) { + if (F[facility].income || F[facility].expenses || V.showAllEntries.costsBudget) { row = table.insertRow(); cell = row.insertCell(); let headline = document.createElement('h3'); headline.textContent = title; cell.append(headline); cell = row.insertCell(); - //cell.append(cashFormatColorDOM(F[facility]['income'])); + cell.append(cashFormatColorDOM(F[facility].income)); cell = row.insertCell(); - //cell.append(cashFormatColorDOM(F[facility]['expenses'])); + cell.append(cashFormatColorDOM(F[facility].expenses)); cell = row.insertCell(); - //cell.append(cashFormatColorDOM(F[facility]['profits'])); - //} + cell.append(cashFormatColorDOM(F[facility].profits)); + } } function cashFormatColorDOM(s, invert = false) {