@dhyasama/totem-models 9.105.0 → 9.107.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/Organization.js +107 -131
- package/package.json +1 -1
package/lib/Organization.js
CHANGED
|
@@ -567,81 +567,6 @@ module.exports = function(mongoose, config) {
|
|
|
567
567
|
// Properties that are not persisted to the database
|
|
568
568
|
///////////////////////////////////////////////////////////////////////////////////////
|
|
569
569
|
|
|
570
|
-
Organization.virtual('acquired.amount').get(function () {
|
|
571
|
-
|
|
572
|
-
const self = this;
|
|
573
|
-
const publicData = self.operating.acquired.public || {};
|
|
574
|
-
const privateData = self.operating.acquired.private || [];
|
|
575
|
-
|
|
576
|
-
if (publicData.amount) return publicData.amount;
|
|
577
|
-
else if (privateData.length >= 1) {
|
|
578
|
-
if (privateData[0].amount) return privateData[0].amount;
|
|
579
|
-
else return 0;
|
|
580
|
-
}
|
|
581
|
-
else return 0;
|
|
582
|
-
|
|
583
|
-
});
|
|
584
|
-
|
|
585
|
-
Organization.virtual('acquired.by').get(function () {
|
|
586
|
-
|
|
587
|
-
const self = this;
|
|
588
|
-
const publicData = self.operating.acquired.public || {};
|
|
589
|
-
const privateData = self.operating.acquired.private || [];
|
|
590
|
-
|
|
591
|
-
if (publicData.by) return publicData.by;
|
|
592
|
-
else if (privateData.length >= 1) {
|
|
593
|
-
if (privateData[0].by) return privateData[0].by;
|
|
594
|
-
else return null;
|
|
595
|
-
}
|
|
596
|
-
else return null;
|
|
597
|
-
|
|
598
|
-
});
|
|
599
|
-
|
|
600
|
-
Organization.virtual('acquired.on').get(function () {
|
|
601
|
-
|
|
602
|
-
const self = this;
|
|
603
|
-
const publicData = self.operating.acquired.public || {};
|
|
604
|
-
const privateData = self.operating.acquired.private || [];
|
|
605
|
-
|
|
606
|
-
if (publicData.acquiredOn) return publicData.acquiredOn;
|
|
607
|
-
else if (privateData.length >= 1) {
|
|
608
|
-
if (privateData[0].acquiredOn) return privateData[0].acquiredOn;
|
|
609
|
-
else return null;
|
|
610
|
-
}
|
|
611
|
-
else return null;
|
|
612
|
-
|
|
613
|
-
});
|
|
614
|
-
|
|
615
|
-
Organization.virtual('merged.with').get(function () {
|
|
616
|
-
|
|
617
|
-
const self = this;
|
|
618
|
-
const publicData = self.operating.merged.public || {};
|
|
619
|
-
const privateData = self.operating.merged.private || [];
|
|
620
|
-
|
|
621
|
-
if (publicData.with) return publicData.with;
|
|
622
|
-
else if (privateData.length >= 1) {
|
|
623
|
-
if (privateData[0].with) return privateData[0].with;
|
|
624
|
-
else return null;
|
|
625
|
-
}
|
|
626
|
-
else return null;
|
|
627
|
-
|
|
628
|
-
});
|
|
629
|
-
|
|
630
|
-
Organization.virtual('merged.on').get(function () {
|
|
631
|
-
|
|
632
|
-
const self = this;
|
|
633
|
-
const publicData = self.operating.merged.public || {};
|
|
634
|
-
const privateData = self.operating.merged.private || [];
|
|
635
|
-
|
|
636
|
-
if (publicData.mergedOn) return publicData.mergedOn;
|
|
637
|
-
else if (privateData.length >= 1) {
|
|
638
|
-
if (privateData[0].mergedOn) return privateData[0].mergedOn;
|
|
639
|
-
else return null;
|
|
640
|
-
}
|
|
641
|
-
else return null;
|
|
642
|
-
|
|
643
|
-
});
|
|
644
|
-
|
|
645
570
|
Organization.virtual('address.primary').get(function () {
|
|
646
571
|
var primary = _.find(this.contact.address, function(address) {
|
|
647
572
|
return address.primary;
|
|
@@ -779,19 +704,6 @@ module.exports = function(mongoose, config) {
|
|
|
779
704
|
|
|
780
705
|
});
|
|
781
706
|
|
|
782
|
-
Organization.virtual('inactive').get(function () {
|
|
783
|
-
|
|
784
|
-
var self = this;
|
|
785
|
-
var privateData = self.operating.closed.private || [];
|
|
786
|
-
|
|
787
|
-
if (privateData.length == 1) {
|
|
788
|
-
if (privateData[0].hasZeroUnrealizedValue) return true;
|
|
789
|
-
else return false;
|
|
790
|
-
}
|
|
791
|
-
else return false;
|
|
792
|
-
|
|
793
|
-
});
|
|
794
|
-
|
|
795
707
|
Organization.virtual('leaders.all').get(function () {
|
|
796
708
|
|
|
797
709
|
var self = this;
|
|
@@ -846,18 +758,108 @@ module.exports = function(mongoose, config) {
|
|
|
846
758
|
|
|
847
759
|
});
|
|
848
760
|
|
|
849
|
-
Organization.virtual('
|
|
761
|
+
Organization.virtual('operating.closed.on').get(function () {
|
|
850
762
|
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
763
|
+
const self = this;
|
|
764
|
+
const publicData = self.operating.closed.public || {};
|
|
765
|
+
const privateData = self.operating.closed.private || [];
|
|
854
766
|
|
|
855
|
-
if (publicData.closedOn) return
|
|
856
|
-
else if (privateData.length
|
|
857
|
-
if (privateData[0].closedOn) return
|
|
858
|
-
else return
|
|
767
|
+
if (publicData.closedOn) return publicData.closedOn;
|
|
768
|
+
else if (privateData.length >= 1) {
|
|
769
|
+
if (privateData[0].closedOn) return privateData[0].closedOn;
|
|
770
|
+
else return null;
|
|
859
771
|
}
|
|
860
|
-
else return
|
|
772
|
+
else return null;
|
|
773
|
+
|
|
774
|
+
});
|
|
775
|
+
|
|
776
|
+
Organization.virtual('operating.closed.hasZeroUnrealizedValue').get(function () {
|
|
777
|
+
|
|
778
|
+
const self = this;
|
|
779
|
+
const publicData = self.operating.closed.public || {};
|
|
780
|
+
const privateData = self.operating.closed.private || [];
|
|
781
|
+
|
|
782
|
+
if (publicData.closedOn) return false;
|
|
783
|
+
else if (privateData.length >= 1) {
|
|
784
|
+
if (privateData[0].hasZeroUnrealizedValue) return privateData[0].hasZeroUnrealizedValue;
|
|
785
|
+
else return null;
|
|
786
|
+
}
|
|
787
|
+
else return null;
|
|
788
|
+
|
|
789
|
+
});
|
|
790
|
+
|
|
791
|
+
Organization.virtual('operating.acquired.amount').get(function () {
|
|
792
|
+
|
|
793
|
+
const self = this;
|
|
794
|
+
const publicData = self.operating.acquired.public || {};
|
|
795
|
+
const privateData = self.operating.acquired.private || [];
|
|
796
|
+
|
|
797
|
+
if (publicData.amount) return publicData.amount;
|
|
798
|
+
else if (privateData.length >= 1) {
|
|
799
|
+
if (privateData[0].amount) return privateData[0].amount;
|
|
800
|
+
else return 0;
|
|
801
|
+
}
|
|
802
|
+
else return 0;
|
|
803
|
+
|
|
804
|
+
});
|
|
805
|
+
|
|
806
|
+
Organization.virtual('operating.acquired.by').get(function () {
|
|
807
|
+
|
|
808
|
+
const self = this;
|
|
809
|
+
const publicData = self.operating.acquired.public || {};
|
|
810
|
+
const privateData = self.operating.acquired.private || [];
|
|
811
|
+
|
|
812
|
+
if (publicData.by) return publicData.by;
|
|
813
|
+
else if (privateData.length >= 1) {
|
|
814
|
+
if (privateData[0].by) return privateData[0].by;
|
|
815
|
+
else return null;
|
|
816
|
+
}
|
|
817
|
+
else return null;
|
|
818
|
+
|
|
819
|
+
});
|
|
820
|
+
|
|
821
|
+
Organization.virtual('operating.acquired.on').get(function () {
|
|
822
|
+
|
|
823
|
+
const self = this;
|
|
824
|
+
const publicData = self.operating.acquired.public || {};
|
|
825
|
+
const privateData = self.operating.acquired.private || [];
|
|
826
|
+
|
|
827
|
+
if (publicData.acquiredOn) return publicData.acquiredOn;
|
|
828
|
+
else if (privateData.length >= 1) {
|
|
829
|
+
if (privateData[0].acquiredOn) return privateData[0].acquiredOn;
|
|
830
|
+
else return null;
|
|
831
|
+
}
|
|
832
|
+
else return null;
|
|
833
|
+
|
|
834
|
+
});
|
|
835
|
+
|
|
836
|
+
Organization.virtual('operating.merged.with').get(function () {
|
|
837
|
+
|
|
838
|
+
const self = this;
|
|
839
|
+
const publicData = self.operating.merged.public || {};
|
|
840
|
+
const privateData = self.operating.merged.private || [];
|
|
841
|
+
|
|
842
|
+
if (publicData.with) return publicData.with;
|
|
843
|
+
else if (privateData.length >= 1) {
|
|
844
|
+
if (privateData[0].with) return privateData[0].with;
|
|
845
|
+
else return null;
|
|
846
|
+
}
|
|
847
|
+
else return null;
|
|
848
|
+
|
|
849
|
+
});
|
|
850
|
+
|
|
851
|
+
Organization.virtual('operating.merged.on').get(function () {
|
|
852
|
+
|
|
853
|
+
const self = this;
|
|
854
|
+
const publicData = self.operating.merged.public || {};
|
|
855
|
+
const privateData = self.operating.merged.private || [];
|
|
856
|
+
|
|
857
|
+
if (publicData.mergedOn) return publicData.mergedOn;
|
|
858
|
+
else if (privateData.length >= 1) {
|
|
859
|
+
if (privateData[0].mergedOn) return privateData[0].mergedOn;
|
|
860
|
+
else return null;
|
|
861
|
+
}
|
|
862
|
+
else return null;
|
|
861
863
|
|
|
862
864
|
});
|
|
863
865
|
|
|
@@ -865,11 +867,13 @@ module.exports = function(mongoose, config) {
|
|
|
865
867
|
|
|
866
868
|
const self = this;
|
|
867
869
|
|
|
870
|
+
if(self.operating && self.operating.closed && self.operating.closed.on) console.log(self.operating.closed.toString());
|
|
871
|
+
|
|
868
872
|
if (self.ipo && self.ipo.ticker) return 'IPO';
|
|
869
|
-
else if (self.acquired && (self.acquired.by || self.acquired.on)) return 'Acquired';
|
|
870
|
-
else if (self.merged && (self.merged.with || self.merged.on)) return 'Merged';
|
|
871
|
-
else if (self.
|
|
872
|
-
else if (self.
|
|
873
|
+
else if (self.operating && self.operating.acquired && (self.operating.acquired.by || self.operating.acquired.on)) return 'Acquired';
|
|
874
|
+
else if (self.operating && self.operating.merged && (self.operating.merged.with || self.operating.merged.on)) return 'Merged';
|
|
875
|
+
else if (self.operating && self.operating.closed && (self.operating.closed.on && !self.operating.closed.hasZeroUnrealizedValue)) return 'Shutdown';
|
|
876
|
+
else if (self.operating && self.operating.closed && (!self.operating.closed.on && self.operating.closed.hasZeroUnrealizedValue)) return 'Inactive';
|
|
873
877
|
else return 'Active';
|
|
874
878
|
|
|
875
879
|
});
|
|
@@ -1357,6 +1361,8 @@ module.exports = function(mongoose, config) {
|
|
|
1357
1361
|
query.populate('funds', 'name shortName hexColorCode abbreviation closeDate');
|
|
1358
1362
|
query.populate('operating.acquired.public.by', 'name logoUrl');
|
|
1359
1363
|
query.populate('operating.acquired.private.by', 'name logoUrl');
|
|
1364
|
+
query.populate('operating.merged.public.with', 'name logoUrl');
|
|
1365
|
+
query.populate('operating.merged.private.with', 'name logoUrl');
|
|
1360
1366
|
query.populate(dealPopulateOptions);
|
|
1361
1367
|
|
|
1362
1368
|
if (options.role !== 'none') {
|
|
@@ -2002,29 +2008,6 @@ module.exports = function(mongoose, config) {
|
|
|
2002
2008
|
|
|
2003
2009
|
Organization.post('init', function(doc, next) {
|
|
2004
2010
|
|
|
2005
|
-
// Protect private data
|
|
2006
|
-
// Merge public and private data
|
|
2007
|
-
|
|
2008
|
-
// const CUSTOMER_ID = this[CUSTOMER_ID];
|
|
2009
|
-
// let err;
|
|
2010
|
-
//
|
|
2011
|
-
// if (!CUSTOMER_ID) {
|
|
2012
|
-
// err = new Error('Missing CUSTOMER_ID');
|
|
2013
|
-
// if (next) { return next(err); }
|
|
2014
|
-
// else { throw err; }
|
|
2015
|
-
// }
|
|
2016
|
-
//
|
|
2017
|
-
// else if (CUSTOMER_ID === 'GLOBAL_PROCESS' && next) { return next(); }
|
|
2018
|
-
//
|
|
2019
|
-
// else if (!mongoose.Types.ObjectId.isValid(CUSTOMER_ID)) {
|
|
2020
|
-
// err = new Error('CUSTOMER_ID is not a valid ObjectId');
|
|
2021
|
-
// if (next) { return next(err); }
|
|
2022
|
-
// else { throw err; }
|
|
2023
|
-
// }
|
|
2024
|
-
|
|
2025
|
-
// remove customer details if not viewing self
|
|
2026
|
-
//if (doc._id.toString() !== CUSTOMER_ID) { doc.customer = {}; }
|
|
2027
|
-
|
|
2028
2011
|
// Website is stored in aliases to facilitate enforcing uniqueness
|
|
2029
2012
|
// Remove it here to make it easier for consumers to provide a good ux
|
|
2030
2013
|
// It will get added back in during pre save hook
|
|
@@ -2032,13 +2015,6 @@ module.exports = function(mongoose, config) {
|
|
|
2032
2015
|
doc.websiteAliases = _.reject(doc.websiteAliases, function(alias) { return alias === doc.website; });
|
|
2033
2016
|
}
|
|
2034
2017
|
|
|
2035
|
-
// doc.lps = _.reject(doc.lps, function(item) { return !item.customer || item.customer.toString() !== CUSTOMER_ID; });
|
|
2036
|
-
// doc.filters = _.reject(doc.filters, function(item) { return !item.customer || item.customer.toString() !== CUSTOMER_ID; });
|
|
2037
|
-
// doc.valuations = _.reject(doc.valuations, function(item) { return !item.customer || item.customer.toString() !== CUSTOMER_ID; });
|
|
2038
|
-
// doc.chairs = _.reject(doc.chairs, function(item) { return !item.customer || item.customer.toString() !== CUSTOMER_ID; });
|
|
2039
|
-
// doc.operating.acquired.private = _.find(doc.operating.acquired.private, function(item) { return !item.customer || item.customer.toString() === CUSTOMER_ID; });
|
|
2040
|
-
// doc.operating.closed.private = _.find(doc.operating.closed.private, function(item) { return !item.customer || item.customer.toString() === CUSTOMER_ID; });
|
|
2041
|
-
|
|
2042
2018
|
// people
|
|
2043
2019
|
_.each(doc.people, function(person) {
|
|
2044
2020
|
|