@dhyasama/totem-models 3.4.1 → 3.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/Financials.js +57 -52
- package/lib/Organization.js +7 -2
- package/package.json +3 -3
- package/.npmignore +0 -14
- package/package-lock.json +0 -1184
package/lib/Financials.js
CHANGED
|
@@ -20,58 +20,63 @@ module.exports = function(mongoose, config) {
|
|
|
20
20
|
customer: { type: Schema.ObjectId, ref: 'Organization', required: true, index: true },
|
|
21
21
|
|
|
22
22
|
asOfDate: { type: Date, required: true },
|
|
23
|
-
monthlyNetBurn: { type: Number, default: 0 },
|
|
24
|
-
monthsOfRunway: { type: Number, default: 0 },
|
|
25
|
-
totalCash: { type: Number, default: 0 },
|
|
26
|
-
totalDebt: { type: Number, default: 0 },
|
|
27
|
-
|
|
28
|
-
revenue: {
|
|
29
|
-
ytd: { type: Number, default: 0 },
|
|
30
|
-
projected: { type: Number, default: 0 },
|
|
31
|
-
past: [{
|
|
32
|
-
year: { type: Number, default: 0 },
|
|
33
|
-
amount: { type: Number, default: 0 }
|
|
34
|
-
}]
|
|
35
|
-
},
|
|
36
|
-
|
|
37
|
-
expenses: {
|
|
38
|
-
ytd: { type: Number, default: 0 },
|
|
39
|
-
projected: { type: Number, default: 0 },
|
|
40
|
-
past: [{
|
|
41
|
-
year: { type: Number, default: 0 },
|
|
42
|
-
amount: { type: Number, default: 0 }
|
|
43
|
-
}]
|
|
44
|
-
},
|
|
45
|
-
|
|
46
|
-
grossProfit: {
|
|
47
|
-
ytd: { type: Number, default: 0 },
|
|
48
|
-
projected: { type: Number, default: 0 },
|
|
49
|
-
past: [{
|
|
50
|
-
year: { type: Number, default: 0 },
|
|
51
|
-
amount: { type: Number, default: 0 }
|
|
52
|
-
}]
|
|
53
|
-
},
|
|
54
|
-
|
|
55
|
-
operatingIncome: {
|
|
56
|
-
ytd: { type: Number, default: 0 },
|
|
57
|
-
projected: { type: Number, default: 0 },
|
|
58
|
-
past: [{
|
|
59
|
-
year: { type: Number, default: 0 },
|
|
60
|
-
amount: { type: Number, default: 0 }
|
|
61
|
-
}]
|
|
62
|
-
},
|
|
63
23
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
24
|
+
currency: { type: String, required: true, default: 'USD' },
|
|
25
|
+
|
|
26
|
+
snapshots: [{
|
|
27
|
+
|
|
28
|
+
year: { type: Number, default: 0 },
|
|
29
|
+
quarter: { type: String, enum: ['all', 'q1', 'q2', 'q3', 'q4'] },
|
|
30
|
+
|
|
31
|
+
monthlyNetBurn: { type: Number, default: 0 },
|
|
32
|
+
monthsOfRunway: { type: Number, default: 0 },
|
|
33
|
+
totalCash: { type: Number, default: 0 },
|
|
34
|
+
totalDebt: { type: Number, default: 0 },
|
|
35
|
+
|
|
36
|
+
revenue: {
|
|
37
|
+
amount: { type: Number, default: 0 },
|
|
38
|
+
projected: { type: Number, default: 0 },
|
|
39
|
+
breakdown: [{
|
|
40
|
+
subcategory: { type: String, trim: true },
|
|
41
|
+
amount: { type: Number, default: 0 }
|
|
42
|
+
}]
|
|
43
|
+
},
|
|
44
|
+
operatingExpenses: {
|
|
45
|
+
amount: { type: Number, default: 0 },
|
|
46
|
+
projected: { type: Number, default: 0 },
|
|
47
|
+
breakdown: [{
|
|
48
|
+
subcategory: { type: String, trim: true },
|
|
49
|
+
amount: { type: Number, default: 0 }
|
|
50
|
+
}]
|
|
51
|
+
},
|
|
52
|
+
grossProfit: {
|
|
53
|
+
amount: { type: Number, default: 0 },
|
|
54
|
+
projected: { type: Number, default: 0 },
|
|
55
|
+
breakdown: [{
|
|
56
|
+
subcategory: { type: String, trim: true },
|
|
57
|
+
amount: { type: Number, default: 0 }
|
|
58
|
+
}]
|
|
59
|
+
},
|
|
60
|
+
operatingIncome: {
|
|
61
|
+
amount: { type: Number, default: 0 },
|
|
62
|
+
projected: { type: Number, default: 0 },
|
|
63
|
+
breakdown: [{
|
|
64
|
+
subcategory: { type: String, trim: true },
|
|
65
|
+
amount: { type: Number, default: 0 }
|
|
66
|
+
}]
|
|
67
|
+
},
|
|
68
|
+
|
|
69
|
+
// Catch-all for customer specific key-value pairs from sheet that aren't supported by our schema
|
|
70
|
+
details: [{
|
|
71
|
+
key: { type: String, trim: true },
|
|
72
|
+
value: { type: String, trim: true },
|
|
73
|
+
_id: false
|
|
74
|
+
}]
|
|
75
|
+
|
|
69
76
|
}],
|
|
70
77
|
|
|
71
78
|
});
|
|
72
79
|
|
|
73
|
-
|
|
74
|
-
|
|
75
80
|
///////////////////////////////////////////////////////////////////////////////////////
|
|
76
81
|
// VIRTUALS
|
|
77
82
|
// Properties that are not persisted to the database
|
|
@@ -133,12 +138,12 @@ module.exports = function(mongoose, config) {
|
|
|
133
138
|
|
|
134
139
|
Financials.post('init', function(doc, next) {
|
|
135
140
|
|
|
136
|
-
doc.revenue.past = _.sortBy(doc.revenue.past, '-year');
|
|
137
|
-
doc.expenses.past = _.sortBy(doc.expenses.past, '-year');
|
|
138
|
-
doc.grossProfit.past = _.sortBy(doc.grossProfit.past, '-year');
|
|
139
|
-
doc.operatingIncome.past = _.sortBy(doc.operatingIncome.past, '-year');
|
|
141
|
+
// doc.revenue.past = _.sortBy(doc.revenue.past, '-year');
|
|
142
|
+
// doc.expenses.past = _.sortBy(doc.expenses.past, '-year');
|
|
143
|
+
// doc.grossProfit.past = _.sortBy(doc.grossProfit.past, '-year');
|
|
144
|
+
// doc.operatingIncome.past = _.sortBy(doc.operatingIncome.past, '-year');
|
|
140
145
|
|
|
141
|
-
return next();
|
|
146
|
+
// return next();
|
|
142
147
|
|
|
143
148
|
});
|
|
144
149
|
|
package/lib/Organization.js
CHANGED
|
@@ -1333,12 +1333,17 @@ module.exports = function(mongoose, config) {
|
|
|
1333
1333
|
var cleanWebsites = function cleanWebsites() {
|
|
1334
1334
|
|
|
1335
1335
|
// Format website
|
|
1336
|
-
if (self.website)
|
|
1336
|
+
if (self.website) {
|
|
1337
|
+
self.website = utils.getDomain(self.website);
|
|
1338
|
+
self.website = self.website.replace('http://', '').replace('https://', '');
|
|
1339
|
+
}
|
|
1337
1340
|
|
|
1338
1341
|
// Format website aliases
|
|
1339
1342
|
if (self.websiteAliases && self.websiteAliases.length >= 1) {
|
|
1340
1343
|
self.websiteAliases = _.map(self.websiteAliases, function(alias) {
|
|
1341
|
-
|
|
1344
|
+
var website = utils.getDomain(alias);
|
|
1345
|
+
website = website.replace('http://', '').replace('https://', '');
|
|
1346
|
+
return utils.getDomain(website);
|
|
1342
1347
|
});
|
|
1343
1348
|
}
|
|
1344
1349
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dhyasama/totem-models",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.5.0",
|
|
4
4
|
"author": "Jason Reynolds",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"description": "Models for Totem platform",
|
|
@@ -15,13 +15,13 @@
|
|
|
15
15
|
"@dhyasama/ffvc-crypto": "^1.0.0",
|
|
16
16
|
"@dhyasama/ffvc-geoip": "^1.0.0",
|
|
17
17
|
"@dhyasama/ffvc-s3": "^1.0.0",
|
|
18
|
-
"@dhyasama/ffvc-utilities": "^2.
|
|
18
|
+
"@dhyasama/ffvc-utilities": "^2.4.0",
|
|
19
19
|
"async": "^2.6.1",
|
|
20
20
|
"awesome-phonenumber": "^1.0.14",
|
|
21
21
|
"bcrypt": "^0.8.0",
|
|
22
22
|
"bluebird": "^3.5.0",
|
|
23
23
|
"escape-string-regexp": "^1.0.5",
|
|
24
|
-
"moment": "^2.22.
|
|
24
|
+
"moment": "^2.22.2",
|
|
25
25
|
"mongoose-deep-populate": "^3.0.0",
|
|
26
26
|
"mongoose-filter-denormalize": "^0.2.1",
|
|
27
27
|
"mongoose-post-find": "0.0.2",
|