payservedb 4.8.7 → 4.8.8

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.
Files changed (101) hide show
  1. package/.env +2 -2
  2. package/index.js +170 -170
  3. package/package.json +17 -17
  4. package/src/models/account.js +35 -35
  5. package/src/models/analog_water_billing.js +58 -58
  6. package/src/models/apilog.js +18 -18
  7. package/src/models/approvalsWorkflows.js +49 -49
  8. package/src/models/archivedapilog.js +18 -18
  9. package/src/models/archivedauditlog.js +83 -83
  10. package/src/models/asset.js +34 -34
  11. package/src/models/auditlog.js +83 -83
  12. package/src/models/bankdetails.js +40 -40
  13. package/src/models/bookinganalytics.js +63 -63
  14. package/src/models/bookingconfig.js +45 -45
  15. package/src/models/bookingproperty.js +112 -112
  16. package/src/models/bookingreservation.js +192 -192
  17. package/src/models/bookingrevenuerecord.js +84 -84
  18. package/src/models/budget.js +33 -33
  19. package/src/models/budgetCategory.js +19 -19
  20. package/src/models/campaigns.js +72 -72
  21. package/src/models/cashpayment.js +262 -262
  22. package/src/models/combinedUnits.js +62 -62
  23. package/src/models/common_area_electricity.js +38 -38
  24. package/src/models/common_area_generator.js +38 -38
  25. package/src/models/common_area_utility_alert.js +37 -37
  26. package/src/models/common_area_water.js +39 -39
  27. package/src/models/company.js +53 -53
  28. package/src/models/country_tax.js +42 -42
  29. package/src/models/currency_settings.js +39 -39
  30. package/src/models/customer.js +200 -200
  31. package/src/models/default_payment_details.js +17 -17
  32. package/src/models/dutyroster.js +129 -129
  33. package/src/models/email.js +24 -24
  34. package/src/models/entry_exit.js +53 -53
  35. package/src/models/expense.js +55 -55
  36. package/src/models/facility.js +61 -61
  37. package/src/models/facility_payment_details.js +20 -20
  38. package/src/models/facilityasset.js +25 -25
  39. package/src/models/faq.js +18 -18
  40. package/src/models/gl_accounts.js +52 -52
  41. package/src/models/guard.js +47 -47
  42. package/src/models/handover.js +241 -241
  43. package/src/models/invoice.js +276 -276
  44. package/src/models/item_inspection.js +67 -67
  45. package/src/models/leaseagreement.js +168 -168
  46. package/src/models/leasetemplate.js +17 -17
  47. package/src/models/levy.js +84 -84
  48. package/src/models/levy_invoice_settings.js +26 -26
  49. package/src/models/levycontract.js +77 -77
  50. package/src/models/levytype.js +23 -23
  51. package/src/models/maintenance_service_vendor.js +38 -38
  52. package/src/models/maintenance_services.js +17 -17
  53. package/src/models/maintenancerequisition.js +31 -31
  54. package/src/models/message.js +38 -38
  55. package/src/models/module.js +21 -21
  56. package/src/models/notification.js +24 -24
  57. package/src/models/penalty.js +76 -76
  58. package/src/models/purchase_order.js +191 -191
  59. package/src/models/purchase_request.js +65 -65
  60. package/src/models/refresh_token.js +23 -23
  61. package/src/models/reminder.js +161 -161
  62. package/src/models/report.js +13 -13
  63. package/src/models/resident.js +121 -121
  64. package/src/models/rfq_details.js +87 -85
  65. package/src/models/rfq_response.js +109 -109
  66. package/src/models/service_charge_invoice_upload.js +42 -42
  67. package/src/models/service_charge_payments.js +27 -27
  68. package/src/models/servicerequest.js +55 -55
  69. package/src/models/settings.js +62 -62
  70. package/src/models/smart_meter_daily_consumption.js +44 -44
  71. package/src/models/sms_africastalking.js +20 -20
  72. package/src/models/sms_meliora.js +16 -16
  73. package/src/models/staff.js +36 -36
  74. package/src/models/stocksandspare.js +34 -34
  75. package/src/models/suppliers.js +68 -68
  76. package/src/models/tickets.js +109 -109
  77. package/src/models/unitasset.js +25 -25
  78. package/src/models/units.js +86 -86
  79. package/src/models/user.js +94 -94
  80. package/src/models/valueaddedservices.js +36 -36
  81. package/src/models/vas_invoices_upload.js +50 -50
  82. package/src/models/vas_payments.js +24 -24
  83. package/src/models/vasinvoice.js +159 -159
  84. package/src/models/vasvendor.js +57 -57
  85. package/src/models/visitLog.js +86 -86
  86. package/src/models/visitor.js +63 -63
  87. package/src/models/waitlist.js +45 -45
  88. package/src/models/water_invoice.js +192 -192
  89. package/src/models/water_meter_account.js +74 -74
  90. package/src/models/water_meter_communication.js +17 -17
  91. package/src/models/water_meter_concentrator.js +59 -59
  92. package/src/models/water_meter_daily_history.js +31 -31
  93. package/src/models/water_meter_iot_cards.js +34 -34
  94. package/src/models/water_meter_manufacturer.js +35 -35
  95. package/src/models/water_meter_monthly_history.js +37 -37
  96. package/src/models/water_meter_settings.js +88 -88
  97. package/src/models/water_meter_single_day_history.js +31 -31
  98. package/src/models/water_meter_size.js +15 -15
  99. package/src/models/water_meters.js +103 -103
  100. package/src/models/water_meters_delivery.js +76 -76
  101. package/src/models/workorder.js +49 -49
@@ -1,37 +1,37 @@
1
- const mongoose = require('mongoose');
2
-
3
- // Define the schema for ValueAddedServices
4
- const valueAddedServiceSchema = new mongoose.Schema({
5
- facilityId: {
6
- type: mongoose.Schema.Types.ObjectId,
7
- ref: 'Facility',
8
- required: true
9
- },
10
- serviceName: {
11
- type: String,
12
- required: true,
13
- trim: true
14
- },
15
- serviceType: {
16
- type: String,
17
- required: true,
18
- },
19
- appliesTo: {
20
- type: [String],
21
- default: []
22
- },
23
- applicableTaxes: [{
24
- taxId: {
25
- type: mongoose.Schema.Types.ObjectId,
26
- ref: 'CountryTaxRate'
27
- },
28
- taxName: String,
29
- taxRate: Number
30
- }]
31
- }, {
32
- timestamps: true
33
- });
34
-
35
- const ValueAddedService = mongoose.model('ValueAddedService', valueAddedServiceSchema);
36
-
1
+ const mongoose = require('mongoose');
2
+
3
+ // Define the schema for ValueAddedServices
4
+ const valueAddedServiceSchema = new mongoose.Schema({
5
+ facilityId: {
6
+ type: mongoose.Schema.Types.ObjectId,
7
+ ref: 'Facility',
8
+ required: true
9
+ },
10
+ serviceName: {
11
+ type: String,
12
+ required: true,
13
+ trim: true
14
+ },
15
+ serviceType: {
16
+ type: String,
17
+ required: true,
18
+ },
19
+ appliesTo: {
20
+ type: [String],
21
+ default: []
22
+ },
23
+ applicableTaxes: [{
24
+ taxId: {
25
+ type: mongoose.Schema.Types.ObjectId,
26
+ ref: 'CountryTaxRate'
27
+ },
28
+ taxName: String,
29
+ taxRate: Number
30
+ }]
31
+ }, {
32
+ timestamps: true
33
+ });
34
+
35
+ const ValueAddedService = mongoose.model('ValueAddedService', valueAddedServiceSchema);
36
+
37
37
  module.exports = ValueAddedService;
@@ -1,51 +1,51 @@
1
- const mongoose = require('mongoose');
2
-
3
- const VasInvoicesQuickBooksSchema = new mongoose.Schema({
4
- facilityId: {
5
- type: mongoose.Schema.Types.ObjectId,
6
- ref: 'Facility',
7
- required: true,
8
- },
9
- customerId: {
10
- type: String,
11
- required: true,
12
- },
13
- item: {
14
- type: String,
15
- required: true,
16
- },
17
- description: {
18
- type: String,
19
- required: true,
20
- },
21
- quantity: {
22
- type: Number,
23
- required: true,
24
- },
25
- rate: {
26
- type: Number,
27
- required: true,
28
- },
29
- ammount: {
30
- type: Number,
31
- required: true
32
- },
33
- vat: {
34
- type: Number,
35
- required: true,
36
- },
37
- account: {
38
- type: String,
39
- required: true,
40
- },
41
- classType: {
42
- type: String,
43
- required: true
44
- }
45
- })
46
-
47
- const VasInvoicesQuickBooks = mongoose.model(
48
- 'VasInvoicesQuickBooks',
49
- VasInvoicesQuickBooksSchema
50
- );
1
+ const mongoose = require('mongoose');
2
+
3
+ const VasInvoicesQuickBooksSchema = new mongoose.Schema({
4
+ facilityId: {
5
+ type: mongoose.Schema.Types.ObjectId,
6
+ ref: 'Facility',
7
+ required: true,
8
+ },
9
+ customerId: {
10
+ type: String,
11
+ required: true,
12
+ },
13
+ item: {
14
+ type: String,
15
+ required: true,
16
+ },
17
+ description: {
18
+ type: String,
19
+ required: true,
20
+ },
21
+ quantity: {
22
+ type: Number,
23
+ required: true,
24
+ },
25
+ rate: {
26
+ type: Number,
27
+ required: true,
28
+ },
29
+ ammount: {
30
+ type: Number,
31
+ required: true
32
+ },
33
+ vat: {
34
+ type: Number,
35
+ required: true,
36
+ },
37
+ account: {
38
+ type: String,
39
+ required: true,
40
+ },
41
+ classType: {
42
+ type: String,
43
+ required: true
44
+ }
45
+ })
46
+
47
+ const VasInvoicesQuickBooks = mongoose.model(
48
+ 'VasInvoicesQuickBooks',
49
+ VasInvoicesQuickBooksSchema
50
+ );
51
51
  module.exports = VasInvoicesQuickBooks
@@ -1,25 +1,25 @@
1
- const mongoose = require("mongoose");
2
-
3
- const VasPaymentSchema = new mongoose.Schema({
4
- facilityId: {
5
- type: mongoose.Schema.Types.ObjectId,
6
- ref: 'Facility',
7
- required: true,
8
- },
9
- customerId: {
10
- type: String,
11
- required: true,
12
- },
13
- amount: {
14
- type: Number,
15
- required: true,
16
- },
17
- account: {
18
- type: String,
19
- required: true,
20
- },
21
- });
22
-
23
- const VasPayment = mongoose.model("VasPayment", VasPaymentSchema);
24
-
1
+ const mongoose = require("mongoose");
2
+
3
+ const VasPaymentSchema = new mongoose.Schema({
4
+ facilityId: {
5
+ type: mongoose.Schema.Types.ObjectId,
6
+ ref: 'Facility',
7
+ required: true,
8
+ },
9
+ customerId: {
10
+ type: String,
11
+ required: true,
12
+ },
13
+ amount: {
14
+ type: Number,
15
+ required: true,
16
+ },
17
+ account: {
18
+ type: String,
19
+ required: true,
20
+ },
21
+ });
22
+
23
+ const VasPayment = mongoose.model("VasPayment", VasPaymentSchema);
24
+
25
25
  module.exports = VasPayment;
@@ -1,160 +1,160 @@
1
- const mongoose = require('mongoose');
2
-
3
- // Define the schema for VasInvoices
4
- const vasInvoiceSchema = new mongoose.Schema({
5
- invoiceNumber: {
6
- type: String,
7
- required: true,
8
- unique: true,
9
- },
10
- accountNumber: {
11
- type: String,
12
- required: true,
13
- unique: true
14
- },
15
- facilityId: {
16
- type: mongoose.Schema.Types.ObjectId,
17
- required: true
18
- },
19
- serviceId: {
20
- type: mongoose.Schema.Types.ObjectId,
21
- required: true
22
- },
23
- customerId: {
24
- type: mongoose.Schema.Types.ObjectId,
25
- required: true
26
- },
27
- dueDate: {
28
- type: Date,
29
- required: true,
30
- },
31
- invoiceNote: {
32
- type: String,
33
- default: "Payment is due within 30 days",
34
- },
35
- status: {
36
- type: String,
37
- required: true,
38
- enum: ['Pending', 'Paid', 'Partially Paid', 'Cancelled', 'Overdue', 'Unpaid'],
39
- default: 'Pending'
40
- },
41
- unit: {
42
- type: String,
43
- required: true
44
- },
45
- serviceName: {
46
- type: String,
47
- default: 'Service Fee'
48
- },
49
- amountPaid: {
50
- type: Number,
51
- default: 0
52
- },
53
- subTotal: {
54
- type: Number,
55
- required: true,
56
- },
57
- tax: {
58
- type: Number,
59
- default: 0
60
- },
61
- amount: {
62
- type: Number,
63
- required: true
64
- },
65
- currency: {
66
- id: {
67
- type: mongoose.Schema.Types.ObjectId
68
- },
69
- name: {
70
- type: String,
71
- default: 'Kenyan Shilling'
72
- },
73
- code: {
74
- type: String,
75
- default: 'KES'
76
- },
77
- symbol: {
78
- type: String,
79
- default: 'KSh'
80
- }
81
- },
82
- items: [{
83
- description: {
84
- type: String,
85
- required: true
86
- },
87
- quantity: {
88
- type: Number,
89
- default: 1
90
- },
91
- unitPrice: {
92
- type: Number,
93
- required: true
94
- }
95
- }],
96
- reconciliationHistory: [{
97
- date: {
98
- type: Date,
99
- default: Date.now
100
- },
101
- amount: {
102
- type: Number,
103
- required: true
104
- },
105
- type: {
106
- type: String,
107
- default: 'Manual'
108
- },
109
- paymentReference: String,
110
- paymentCompletion: {
111
- type: String,
112
- default: 'Completed'
113
- },
114
- sourceInvoice: String,
115
- destinationInvoice: String,
116
- notes: String,
117
- remainingBalance: Number
118
- }],
119
- customerInfo: {
120
- fullName: {
121
- type: String,
122
- default: 'Customer'
123
- }
124
- },
125
- paymentDetails: {
126
- paymentStatus: {
127
- type: String,
128
- enum: ['Pending', 'Completed', 'Failed', 'Partial'],
129
- default: 'Pending'
130
- },
131
- paymentMethod: String,
132
- paymentDate: Date,
133
- transactionId: String,
134
- mobilePayment: {
135
- type: Boolean,
136
- default: false
137
- }
138
- },
139
- overpay: {
140
- type: Number,
141
- default: 0
142
- }
143
- }, {
144
- timestamps: true
145
- });
146
-
147
- // Add pre-save middleware to check if invoice is overdue
148
- vasInvoiceSchema.pre('save', function (next) {
149
- if (this.isModified('dueDate') || this.isNew) {
150
- const today = new Date();
151
- if (this.dueDate < today && this.status === 'Pending') {
152
- this.status = 'Overdue';
153
- }
154
- }
155
- next();
156
- });
157
-
158
- const VasInvoice = mongoose.model('VasInvoice', vasInvoiceSchema);
159
-
1
+ const mongoose = require('mongoose');
2
+
3
+ // Define the schema for VasInvoices
4
+ const vasInvoiceSchema = new mongoose.Schema({
5
+ invoiceNumber: {
6
+ type: String,
7
+ required: true,
8
+ unique: true,
9
+ },
10
+ accountNumber: {
11
+ type: String,
12
+ required: true,
13
+ unique: true
14
+ },
15
+ facilityId: {
16
+ type: mongoose.Schema.Types.ObjectId,
17
+ required: true
18
+ },
19
+ serviceId: {
20
+ type: mongoose.Schema.Types.ObjectId,
21
+ required: true
22
+ },
23
+ customerId: {
24
+ type: mongoose.Schema.Types.ObjectId,
25
+ required: true
26
+ },
27
+ dueDate: {
28
+ type: Date,
29
+ required: true,
30
+ },
31
+ invoiceNote: {
32
+ type: String,
33
+ default: "Payment is due within 30 days",
34
+ },
35
+ status: {
36
+ type: String,
37
+ required: true,
38
+ enum: ['Pending', 'Paid', 'Partially Paid', 'Cancelled', 'Overdue', 'Unpaid'],
39
+ default: 'Pending'
40
+ },
41
+ unit: {
42
+ type: String,
43
+ required: true
44
+ },
45
+ serviceName: {
46
+ type: String,
47
+ default: 'Service Fee'
48
+ },
49
+ amountPaid: {
50
+ type: Number,
51
+ default: 0
52
+ },
53
+ subTotal: {
54
+ type: Number,
55
+ required: true,
56
+ },
57
+ tax: {
58
+ type: Number,
59
+ default: 0
60
+ },
61
+ amount: {
62
+ type: Number,
63
+ required: true
64
+ },
65
+ currency: {
66
+ id: {
67
+ type: mongoose.Schema.Types.ObjectId
68
+ },
69
+ name: {
70
+ type: String,
71
+ default: 'Kenyan Shilling'
72
+ },
73
+ code: {
74
+ type: String,
75
+ default: 'KES'
76
+ },
77
+ symbol: {
78
+ type: String,
79
+ default: 'KSh'
80
+ }
81
+ },
82
+ items: [{
83
+ description: {
84
+ type: String,
85
+ required: true
86
+ },
87
+ quantity: {
88
+ type: Number,
89
+ default: 1
90
+ },
91
+ unitPrice: {
92
+ type: Number,
93
+ required: true
94
+ }
95
+ }],
96
+ reconciliationHistory: [{
97
+ date: {
98
+ type: Date,
99
+ default: Date.now
100
+ },
101
+ amount: {
102
+ type: Number,
103
+ required: true
104
+ },
105
+ type: {
106
+ type: String,
107
+ default: 'Manual'
108
+ },
109
+ paymentReference: String,
110
+ paymentCompletion: {
111
+ type: String,
112
+ default: 'Completed'
113
+ },
114
+ sourceInvoice: String,
115
+ destinationInvoice: String,
116
+ notes: String,
117
+ remainingBalance: Number
118
+ }],
119
+ customerInfo: {
120
+ fullName: {
121
+ type: String,
122
+ default: 'Customer'
123
+ }
124
+ },
125
+ paymentDetails: {
126
+ paymentStatus: {
127
+ type: String,
128
+ enum: ['Pending', 'Completed', 'Failed', 'Partial'],
129
+ default: 'Pending'
130
+ },
131
+ paymentMethod: String,
132
+ paymentDate: Date,
133
+ transactionId: String,
134
+ mobilePayment: {
135
+ type: Boolean,
136
+ default: false
137
+ }
138
+ },
139
+ overpay: {
140
+ type: Number,
141
+ default: 0
142
+ }
143
+ }, {
144
+ timestamps: true
145
+ });
146
+
147
+ // Add pre-save middleware to check if invoice is overdue
148
+ vasInvoiceSchema.pre('save', function (next) {
149
+ if (this.isModified('dueDate') || this.isNew) {
150
+ const today = new Date();
151
+ if (this.dueDate < today && this.status === 'Pending') {
152
+ this.status = 'Overdue';
153
+ }
154
+ }
155
+ next();
156
+ });
157
+
158
+ const VasInvoice = mongoose.model('VasInvoice', vasInvoiceSchema);
159
+
160
160
  module.exports = VasInvoice;
@@ -1,58 +1,58 @@
1
- const mongoose = require('mongoose');
2
-
3
- // Define the schema for VasVendor
4
- const vasVendorSchema = new mongoose.Schema({
5
- facilityId: {
6
- type: mongoose.Schema.Types.ObjectId,
7
- ref: 'Facility',
8
- required: true,
9
- },
10
- name: {
11
- type: String,
12
- required: true,
13
- trim: true
14
- },
15
- location: {
16
- type: String,
17
- required: true,
18
- trim: true
19
- },
20
- jobDescription: {
21
- type: String,
22
- required: true,
23
- trim: true
24
- },
25
- offers: [{
26
- serviceId: {
27
- type: mongoose.Schema.Types.ObjectId,
28
- ref: 'Service', // Reference to the Service model
29
- required: true
30
- },
31
- amount: {
32
- type: Number,
33
- required: true,
34
- min: [0, 'Amount must be a positive number']
35
- }
36
- }],
37
- contactDetails: {
38
- name: {
39
- type: String,
40
- required: true
41
- },
42
- phone: {
43
- type: String,
44
- required: true
45
- },
46
- email: {
47
- type: String,
48
- required: true,
49
- match: [/.+\@.+\..+/, 'Please provide a valid email address']
50
- }
51
- }
52
- }, {
53
- timestamps: true // This will automatically add createdAt and updatedAt fields
54
- });
55
-
56
- const VasVendor = mongoose.model('VasVendor', vasVendorSchema);
57
-
1
+ const mongoose = require('mongoose');
2
+
3
+ // Define the schema for VasVendor
4
+ const vasVendorSchema = new mongoose.Schema({
5
+ facilityId: {
6
+ type: mongoose.Schema.Types.ObjectId,
7
+ ref: 'Facility',
8
+ required: true,
9
+ },
10
+ name: {
11
+ type: String,
12
+ required: true,
13
+ trim: true
14
+ },
15
+ location: {
16
+ type: String,
17
+ required: true,
18
+ trim: true
19
+ },
20
+ jobDescription: {
21
+ type: String,
22
+ required: true,
23
+ trim: true
24
+ },
25
+ offers: [{
26
+ serviceId: {
27
+ type: mongoose.Schema.Types.ObjectId,
28
+ ref: 'Service', // Reference to the Service model
29
+ required: true
30
+ },
31
+ amount: {
32
+ type: Number,
33
+ required: true,
34
+ min: [0, 'Amount must be a positive number']
35
+ }
36
+ }],
37
+ contactDetails: {
38
+ name: {
39
+ type: String,
40
+ required: true
41
+ },
42
+ phone: {
43
+ type: String,
44
+ required: true
45
+ },
46
+ email: {
47
+ type: String,
48
+ required: true,
49
+ match: [/.+\@.+\..+/, 'Please provide a valid email address']
50
+ }
51
+ }
52
+ }, {
53
+ timestamps: true // This will automatically add createdAt and updatedAt fields
54
+ });
55
+
56
+ const VasVendor = mongoose.model('VasVendor', vasVendorSchema);
57
+
58
58
  module.exports = VasVendor;