|
|
@@ -1,3 +1,4 @@
|
|
|
+const { Op } = require('sequelize')
|
|
|
const { controllers: C } = require('@alancnet/material-framework/server')
|
|
|
const { register } = C.auth.permissions
|
|
|
const terminals = [
|
|
|
@@ -19,7 +20,7 @@ const terminals = [
|
|
|
}
|
|
|
]
|
|
|
|
|
|
-const categories = [
|
|
|
+const laborCategories = [
|
|
|
{
|
|
|
name: 'Warehouse',
|
|
|
key: 'WAREHOUSE'
|
|
|
@@ -38,6 +39,25 @@ const categories = [
|
|
|
}
|
|
|
]
|
|
|
|
|
|
+const serviceCategories = [
|
|
|
+ {
|
|
|
+ name: 'Inbound',
|
|
|
+ key: 'INBOUND',
|
|
|
+ laborCategories: [
|
|
|
+ 'WAREHOUSE',
|
|
|
+ 'ADMIN',
|
|
|
+ 'OPS'
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'Delivery',
|
|
|
+ key: 'DELIVERY',
|
|
|
+ laborCategories: [
|
|
|
+ 'DELIVERY'
|
|
|
+ ]
|
|
|
+ }
|
|
|
+]
|
|
|
+
|
|
|
const roles = [
|
|
|
{
|
|
|
name: 'Management',
|
|
|
@@ -106,14 +126,16 @@ const roles = [
|
|
|
'CLIENT_READ',
|
|
|
'CLIENT_UNDELETE',
|
|
|
'CLIENT_UPDATE',
|
|
|
+ 'CLIENT_VIEW',
|
|
|
'STAFFING_AGENCY_READ',
|
|
|
'STAFF_MEMBER_CREATE',
|
|
|
'STAFF_MEMBER_DELETE',
|
|
|
'STAFF_MEMBER_READ',
|
|
|
'STAFF_MEMBER_UNDELETE',
|
|
|
- 'STAFF_MEMBER_UPDATE'
|
|
|
+ 'STAFF_MEMBER_UPDATE',
|
|
|
+ 'STAFF_MEMBER_VIEW'
|
|
|
]
|
|
|
- .concat(categories.map(x => x.key).filter(key => key !== 'ADMIN').map(key => `INCOME_${key}_VIEW`))
|
|
|
+ .concat(laborCategories.map(x => x.key).filter(key => key !== 'ADMIN').map(key => `INCOME_${key}_VIEW`))
|
|
|
.join(',')
|
|
|
},
|
|
|
{
|
|
|
@@ -134,7 +156,7 @@ const roles = [
|
|
|
'STAFF_MEMBER_UNDELETE',
|
|
|
'STAFF_MEMBER_UPDATE'
|
|
|
]
|
|
|
- .concat(categories.map(x => x.key).filter(key => key !== 'ADMIN').map(key => `INCOME_${key}_VIEW`))
|
|
|
+ .concat(laborCategories.map(x => x.key).filter(key => key !== 'ADMIN').map(key => `INCOME_${key}_VIEW`))
|
|
|
.join(',')
|
|
|
},
|
|
|
{
|
|
|
@@ -166,17 +188,34 @@ const initializeRoles = async db => {
|
|
|
}
|
|
|
|
|
|
const initializeLaborCategories = async db => {
|
|
|
- for (let category of categories) {
|
|
|
+ for (let category of laborCategories) {
|
|
|
const record = await db.upsert(db.LaborCategory, category)
|
|
|
register(`INCOME_${category.key}_VIEW`, `View ${category.name} Staff income.`)
|
|
|
console.log(`Upserted Labor Category ${category.name}: ${JSON.stringify(record)}`)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+const initializeServiceCategories = async db => {
|
|
|
+ for (let category of serviceCategories) {
|
|
|
+ const record = await db.upsert(db.ServiceCategory, category)
|
|
|
+ const laborCategories = await db.LaborCategory.findAll({
|
|
|
+ where: {
|
|
|
+ key: {
|
|
|
+ [Op.in]: category.laborCategories
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ await record.setLaborCategories(laborCategories)
|
|
|
+
|
|
|
+ console.log(`Upserted Service Category ${category.name}: ${JSON.stringify(record)}`)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
const init = async (db) => {
|
|
|
await initializeTerminals(db)
|
|
|
await initializeRoles(db)
|
|
|
await initializeLaborCategories(db)
|
|
|
+ await initializeServiceCategories(db)
|
|
|
}
|
|
|
|
|
|
module.exports = {
|