📝 Update and organize project documentation and assets

This commit is contained in:
2026-01-26 22:46:14 +00:00
parent 4194dcfeff
commit b20e2185b2
1433 changed files with 64484 additions and 0 deletions

View File

@@ -0,0 +1,4 @@
ReportsController.*getRevenuePayouts* = { *validateClaims*:{"Subscriptions":["Staff"]}, handler: function(req, res, next) { var connection = mysql.createConnection(config.*DATABASE*.CORE_READS("bmn_users")); connection.query( "SELECT\ mr.VenueUserGUID,\ a.user AS `User`,\ DATE_ADD(DATE_ADD(mr.DatePlayed, INTERVAL mr.LocalTimeOffset MINUTE), INTERVAL -5 HOUR) AS `DatePlayed`,\ COUNT(*) as `PaidPlays`,\ IFNULL(IF(COUNT(*) >= 75, COUNT(*) * 0.55*0.75*(mt.Price/mt.NumCredits), COUNT(*) * 0.55*0.50*(mt.Price/mt.NumCredits)),0) as `RevenuePayout`\ FROM bmn_users.mobile_requests mr\ JOIN bmn_users.mobile_credits mc\ ON mc.MobileRequestID = mr.ID\ JOIN bmn_users.mobile_transactions mt\ ON mt.ID = mc.MobilePaymentID\ JOIN bmn_users.accounts a\ ON a.UserGUID = mr.VenueUserGUID\ AND mr.DatePlayed IS NOT NULL\ AND DatePlayed >= DATE_SUB(DATE_ADD('2015-04-01:05:00:00', INTERVAL 5 HOUR), INTERVAL mr.LocalTimeOffset MINUTE)\ AND mt.Price > 0\ GROUP BY\ mr.VenueUserGUID,\ DATE_ADD(DATE_ADD(mr.DatePlayed, INTERVAL mr.LocalTimeOffset MINUTE), INTERVAL -5 HOUR)\ ORDER BY a.user, mr.DatePlayed ASC", function(err, results) { connection.end(); if (err) { return next(new restify.InternalServerError(err)); } var quarterlyPayouts = []; //Get the first venue guid in the list, since the results are grouped by venue guid, // we can process each record and discard it after use to avoid traversing the account list everytime *console*.log(results); for (var venueReportRecord = results[0]; venueReportRecord ; venueReportRecord = results[0]) { var startRange = moment("04-01-2015", "MM-DD-YYYY"); var endRange = moment(startRange).add(3, "months"); var now = moment(); var lastQuarterPayout = 0; while (startRange.isBefore(now)) { var quarterRecord = {}; quarterRecord.*VenueUserGUID* = venueReportRecord.*VenueUserGUID*; quarterRecord.*User* = venueReportRecord.*User*; var numPaidRequests = 0; var revenuePayout = 0; //If we made less than 50, then that carries over to the next quarter if (lastQuarterPayout < 50) { revenuePayout += lastQuarterPayout; } results.slice().forEach(function(record, index, array){ if (moment(record.DatePlayed).isSameOrAfter(startRange) && moment(record.DatePlayed).isBefore(endRange) && record.*VenueUserGUID* == venueReportRecord.*VenueUserGUID*) { revenuePayout += record.*RevenuePayout*; numPaidRequests += record.*PaidPlays*; results.splice(results.indexOf(record), 1); } }); quarterRecord.*NumPaidRequests* = numPaidRequests; quarterRecord.*QuarterStart* = startRange; quarterRecord.*RevenuePayout* = 0; //Only add revenue payout if they made 50 dollars or more that quarter if (revenuePayout >= 50) { quarterRecord.*RevenuePayout* = revenuePayout; } lastQuarterPayout = revenuePayout; startRange = moment(endRange); endRange.add(3,"months"); quarterlyPayouts.push(quarterRecord); } } res.send(quarterlyPayouts); return next(); }); }};
this.server.*get*("/reports/:id/profitshare", lumen.illuminate(ReportsController.*getProfitShare*));