diff --git a/api/src/Kurs.Platform.DbMigrator/Seeds/HostData.json b/api/src/Kurs.Platform.DbMigrator/Seeds/HostData.json index f4e70d7f..eb8f9098 100644 --- a/api/src/Kurs.Platform.DbMigrator/Seeds/HostData.json +++ b/api/src/Kurs.Platform.DbMigrator/Seeds/HostData.json @@ -1178,21 +1178,21 @@ }, { "resourceName": "Platform", - "key": "App.HR", + "key": "App.Hr", "en": "HR", "tr": "İK" }, { "resourceName": "Platform", - "key": "App.CRM", - "en": "CRM", - "tr": "CRM" + "key": "App.Crm", + "en": "Crm", + "tr": "Crm" }, { "resourceName": "Platform", - "key": "App.MRP", - "en": "MRP", - "tr": "MRP" + "key": "App.Mrp", + "en": "Mrp", + "tr": "Mrp" }, { "resourceName": "Platform", @@ -5188,25 +5188,25 @@ { "resourceName": "Platform", "key": "ListForms.ListFormEdit.DatabaseSelectOperations", - "en": "Select Operations", + "en": "Select Operation", "tr": "Select Operasyonları" }, { "resourceName": "Platform", "key": "ListForms.ListFormEdit.DatabaseInsertOperations", - "en": "Insert Operations", + "en": "Insert Operation", "tr": "Insert Operasyonları" }, { "resourceName": "Platform", "key": "ListForms.ListFormEdit.DatabaseUpdateOperations", - "en": "Update Operations", + "en": "Update Operation", "tr": "Update Operasyonları" }, { "resourceName": "Platform", "key": "ListForms.ListFormEdit.DatabaseDeleteOperations", - "en": "Delete Operations", + "en": "Delete Operation", "tr": "Delete Operasyonları" }, { @@ -8818,8 +8818,8 @@ { "resourceName": "Platform", "key": "Public.products.crm.title", - "tr": "CRM Sistemi", - "en": "CRM System" + "tr": "Crm Sistemi", + "en": "Crm System" }, { "resourceName": "Platform", @@ -11919,9 +11919,9 @@ }, { "resourceName": "Platform", - "key": "App.Maintenance.Workcenters", + "key": "App.Maintenance.Workcenter", "tr": "İş Merkezleri", - "en": "Workcenters" + "en": "Workcenter" }, { "resourceName": "Platform", @@ -12051,183 +12051,183 @@ }, { "resourceName": "Platform", - "key": "App.HR.Employees", + "key": "App.Hr.Employee", "tr": "Çalışanlar", - "en": "Employees" + "en": "Employee" }, { "resourceName": "Platform", - "key": "App.HR.Departments", + "key": "App.Hr.Department", "tr": "Departmanlar", - "en": "Departments" + "en": "Department" }, { "resourceName": "Platform", - "key": "App.HR.JobPositions", + "key": "App.Hr.JobPosition", "tr": "İş Pozisyonları", "en": "Job Positions" }, { "resourceName": "Platform", - "key": "App.HR.EmploymentTypes", + "key": "App.Hr.EmploymentType", "tr": "İstihdam Türleri", "en": "Employment Types" }, { "resourceName": "Platform", - "key": "App.HR.Organization", + "key": "App.Hr.Organization", "tr": "Organizasyon Şeması", "en": "Organization Chart" }, { "resourceName": "Platform", - "key": "App.HR.Badges", + "key": "App.Hr.Badge", "tr": "Rozetler", - "en": "Badges" + "en": "Badge" }, { "resourceName": "Platform", - "key": "App.HR.LeaveManagement", + "key": "App.Hr.Leave", "tr": "İzin Yönetimi", "en": "Leave Management" }, { "resourceName": "Platform", - "key": "App.HR.Overtimes", + "key": "App.Hr.Overtime", "tr": "Mesai Yönetimi", "en": "Overtime Management" }, { "resourceName": "Platform", - "key": "App.HR.Payroll", + "key": "App.Hr.Payroll", "tr": "Bordro", "en": "Payroll" }, { "resourceName": "Platform", - "key": "App.HR.CostCenters", + "key": "App.Hr.CostCenter", "tr": "Maliyet Merkezleri", "en": "Cost Centers" }, { "resourceName": "Platform", - "key": "App.HR.EvaluationTemplates", + "key": "App.Hr.EvaluationTemplate", "tr": "360° Şablonları", "en": "360° Templates" }, { "resourceName": "Platform", - "key": "App.HR.Evaluation", + "key": "App.Hr.Evaluation", "tr": "360° Değerlendirme", "en": "360° Evaluation" }, { "resourceName": "Platform", - "key": "App.CRM.Customers", + "key": "App.Crm.Customer", "tr": "Müşteriler", - "en": "Customers" + "en": "Customer" }, { "resourceName": "Platform", - "key": "App.CRM.SalesTeams", + "key": "App.Crm.SalesTeam", "tr": "Satış Ekipleri", "en": "Sales Teams" }, { "resourceName": "Platform", - "key": "App.CRM.LossReasons", + "key": "App.Crm.LossReason", "tr": "Kayıp Nedenleri", "en": "Loss Reasons" }, { "resourceName": "Platform", - "key": "App.CRM.Opportunities", + "key": "App.Crm.Opportunity", "tr": "Fırsatlar", - "en": "Opportunities" + "en": "Opportunity" }, { "resourceName": "Platform", - "key": "App.CRM.Activities", + "key": "App.Crm.Activities", "tr": "Aktiviteler", "en": "Activities" }, { "resourceName": "Platform", - "key": "App.CRM.SalesOrders", + "key": "App.Crm.SalesOrder", "tr": "Satış Siparişleri", "en": "Sales Orders" }, { "resourceName": "Platform", - "key": "App.MRP.OperationTypes", + "key": "App.Mrp.OperationType", "tr": "Operasyon Türleri", "en": "Operation Types" }, { "resourceName": "Platform", - "key": "App.MRP.Workcenters", + "key": "App.Mrp.Workcenter", "tr": "İş Merkezleri", - "en": "Workcenters" + "en": "Workcenter" }, { "resourceName": "Platform", - "key": "App.MRP.Operations", + "key": "App.Mrp.Operation", "tr": "Operasyonlar", - "en": "Operations" + "en": "Operation" }, { "resourceName": "Platform", - "key": "App.MRP.Bom", + "key": "App.Mrp.Bom", "tr": "Ürün Ağaçları", "en": "BOM" }, { "resourceName": "Platform", - "key": "App.MRP.ProductionOrders", + "key": "App.Mrp.ProductionOrder", "tr": "Üretim Emirleri", "en": "Production Orders" }, { "resourceName": "Platform", - "key": "App.MRP.WorkOrders", + "key": "App.Mrp.WorkOrder", "tr": "İş Emirleri", "en": "Work Orders" }, { "resourceName": "Platform", - "key": "App.MRP.DemandPlanning", + "key": "App.Mrp.DemandPlanning", "tr": "Talep Planlama", "en": "Demand Planning" }, { "resourceName": "Platform", - "key": "App.MRP.MaterialRequirements", + "key": "App.Mrp.MaterialRequirement", "tr": "Malzeme İhtiyaçları", "en": "Material Requirements" }, { "resourceName": "Platform", - "key": "App.MRP.PlanningGantt", + "key": "App.Mrp.PlanningGantt", "tr": "Planlama Gantt", "en": "Planning Gantt" }, { "resourceName": "Platform", - "key": "App.Accounting.CurrentAccounts", + "key": "App.Accounting.CurrentAccount", "tr": "Cari Hesaplar", "en": "Current Accounts" }, { "resourceName": "Platform", - "key": "App.Accounting.Waybills", + "key": "App.Accounting.Waybill", "tr": "İrsaliyeler", - "en": "Waybills" + "en": "Waybill" }, { "resourceName": "Platform", - "key": "App.Accounting.Invoices", + "key": "App.Accounting.Invoice", "tr": "Faturalar", - "en": "Invoices" + "en": "Invoice" }, { "resourceName": "Platform", @@ -14515,8 +14515,8 @@ { "ParentCode": null, - "Code": "App.CRM", - "DisplayName": "App.CRM", + "Code": "App.Crm", + "DisplayName": "App.Crm", "Order": 600, "Url": null, "Icon": "FcContacts", @@ -14524,63 +14524,63 @@ "IsDisabled": false }, { - "ParentCode": "App.CRM", - "Code": "App.CRM.Customers", - "DisplayName": "App.CRM.Customers", + "ParentCode": "App.Crm", + "Code": "App.Crm.Customer", + "DisplayName": "App.Crm.Customer", "Order": 2, "Url": "/admin/crm/customers", "Icon": "FcBusinessman", - "RequiredPermissionName": "App.CRM.Customers", + "RequiredPermissionName": "App.Crm.Customer", "IsDisabled": false }, { - "ParentCode": "App.CRM", - "Code": "App.CRM.SalesTeams", - "DisplayName": "App.CRM.SalesTeams", + "ParentCode": "App.Crm", + "Code": "App.Crm.SalesTeam", + "DisplayName": "App.Crm.SalesTeam", "Order": 3, "Url": "/admin/crm/sales-teams", "Icon": "FcCollaboration", - "RequiredPermissionName": "App.CRM.SalesTeams", + "RequiredPermissionName": "App.Crm.SalesTeam", "IsDisabled": false }, { - "ParentCode": "App.CRM", - "Code": "App.CRM.LossReasons", - "DisplayName": "App.CRM.LossReasons", + "ParentCode": "App.Crm", + "Code": "App.Crm.LossReason", + "DisplayName": "App.Crm.LossReason", "Order": 4, "Url": "/admin/crm/loss-reasons", "Icon": "FcHighPriority", - "RequiredPermissionName": "App.CRM.LossReasons", + "RequiredPermissionName": "App.Crm.LossReason", "IsDisabled": false }, { - "ParentCode": "App.CRM", - "Code": "App.CRM.Opportunities", - "DisplayName": "App.CRM.Opportunities", + "ParentCode": "App.Crm", + "Code": "App.Crm.Opportunity", + "DisplayName": "App.Crm.Opportunity", "Order": 5, "Url": "/admin/crm/opportunities", "Icon": "FcIdea", - "RequiredPermissionName": "App.CRM.Opportunities", + "RequiredPermissionName": "App.Crm.Opportunity", "IsDisabled": false }, { - "ParentCode": "App.CRM", - "Code": "App.CRM.Activities", - "DisplayName": "App.CRM.Activities", + "ParentCode": "App.Crm", + "Code": "App.Crm.Activities", + "DisplayName": "App.Crm.Activities", "Order": 6, "Url": "/admin/crm/activities", "Icon": "FcCalendar", - "RequiredPermissionName": "App.CRM.Activities", + "RequiredPermissionName": "App.Crm.Activities", "IsDisabled": false }, { - "ParentCode": "App.CRM", - "Code": "App.CRM.SalesOrders", - "DisplayName": "App.CRM.SalesOrders", + "ParentCode": "App.Crm", + "Code": "App.Crm.SalesOrder", + "DisplayName": "App.Crm.SalesOrder", "Order": 7, "Url": "/admin/crm/sales-orders", "Icon": "FcShop", - "RequiredPermissionName": "App.CRM.SalesOrders", + "RequiredPermissionName": "App.Crm.SalesOrder", "IsDisabled": false }, { @@ -14695,12 +14695,12 @@ }, { "ParentCode": "App.Maintenance", - "Code": "App.Maintenance.Workcenters", - "DisplayName": "App.Maintenance.Workcenters", + "Code": "App.Maintenance.Workcenter", + "DisplayName": "App.Maintenance.Workcenter", "Order": 2, "Url": "/admin/maintenance/workcenters", "Icon": "FcWorkflow", - "RequiredPermissionName": "App.Maintenance.Workcenters", + "RequiredPermissionName": "App.Maintenance.Workcenter", "IsDisabled": false }, { @@ -14935,8 +14935,8 @@ }, { "ParentCode": null, - "Code": "App.HR", - "DisplayName": "App.HR", + "Code": "App.Hr", + "DisplayName": "App.Hr", "Order": 1100, "Url": null, "Icon": "FcManager", @@ -14944,129 +14944,129 @@ "IsDisabled": false }, { - "ParentCode": "App.HR", - "Code": "App.HR.Employees", - "DisplayName": "App.HR.Employees", + "ParentCode": "App.Hr", + "Code": "App.Hr.EmploymentType", + "DisplayName": "App.Hr.EmploymentType", "Order": 1, - "Url": "/admin/hr/employees", - "Icon": "FcConferenceCall", - "RequiredPermissionName": "App.HR.Employees", - "IsDisabled": false - }, - { - "ParentCode": "App.HR", - "Code": "App.HR.Departments", - "DisplayName": "App.HR.Departments", - "Order": 2, - "Url": "/admin/hr/departments", - "Icon": "FcDepartment", - "RequiredPermissionName": "App.HR.Departments", - "IsDisabled": false - }, - { - "ParentCode": "App.HR", - "Code": "App.HR.JobPositions", - "DisplayName": "App.HR.JobPositions", - "Order": 3, - "Url": "/admin/hr/job-positions", - "Icon": "FcCollaboration", - "RequiredPermissionName": "App.HR.JobPositions", - "IsDisabled": false - }, - { - "ParentCode": "App.HR", - "Code": "App.HR.EmploymentTypes", - "DisplayName": "App.HR.EmploymentTypes", - "Order": 4, - "Url": "/admin/hr/employment-types", + "Url": "/admin/list/list-employmenttype", "Icon": "FcBriefcase", - "RequiredPermissionName": "App.HR.EmploymentTypes", + "RequiredPermissionName": "App.Hr.EmploymentType", "IsDisabled": false }, { - "ParentCode": "App.HR", - "Code": "App.HR.Organization", - "DisplayName": "App.HR.Organization", - "Order": 5, - "Url": "/admin/hr/organization", - "Icon": "FcTreeStructure", - "RequiredPermissionName": "App.HR.Organization", + "ParentCode": "App.Hr", + "Code": "App.Hr.JobPosition", + "DisplayName": "App.Hr.JobPosition", + "Order": 2, + "Url": "/admin/list/list-jobposition", + "Icon": "FcCollaboration", + "RequiredPermissionName": "App.Hr.JobPosition", "IsDisabled": false }, { - "ParentCode": "App.HR", - "Code": "App.HR.Badges", - "DisplayName": "App.HR.Badges", - "Order": 6, - "Url": "/admin/hr/badges", + "ParentCode": "App.Hr", + "Code": "App.Hr.Department", + "DisplayName": "App.Hr.Department", + "Order": 3, + "Url": "/admin/list/list-department", + "Icon": "FcDepartment", + "RequiredPermissionName": "App.Hr.Department", + "IsDisabled": false + }, + { + "ParentCode": "App.Hr", + "Code": "App.Hr.Badge", + "DisplayName": "App.Hr.Badge", + "Order": 4, + "Url": "/admin/list/list-badge", "Icon": "FcLike", - "RequiredPermissionName": "App.HR.Badges", + "RequiredPermissionName": "App.Hr.Badge", "IsDisabled": false }, { - "ParentCode": "App.HR", - "Code": "App.HR.LeaveManagement", - "DisplayName": "App.HR.LeaveManagement", - "Order": 7, - "Url": "/admin/hr/leave-management", - "Icon": "FcCalendar", - "RequiredPermissionName": "App.HR.LeaveManagement", - "IsDisabled": false - }, - { - "ParentCode": "App.HR", - "Code": "App.HR.Overtimes", - "DisplayName": "App.HR.Overtimes", - "Order": 8, - "Url": "/admin/hr/overtimes-management", - "Icon": "FcClock", - "RequiredPermissionName": "App.HR.Overtimes", - "IsDisabled": false - }, - { - "ParentCode": "App.HR", - "Code": "App.HR.Payroll", - "DisplayName": "App.HR.Payroll", - "Order": 9, - "Url": "/admin/hr/payroll", - "Icon": "FcMoneyTransfer", - "RequiredPermissionName": "App.HR.Payroll", - "IsDisabled": false - }, - { - "ParentCode": "App.HR", - "Code": "App.HR.CostCenters", - "DisplayName": "App.HR.CostCenters", - "Order": 10, + "ParentCode": "App.Hr", + "Code": "App.Hr.CostCenter", + "DisplayName": "App.Hr.CostCenter", + "Order": 5, "Url": "/admin/hr/cost-centers", "Icon": "FcSalesPerformance", - "RequiredPermissionName": "App.HR.CostCenters", + "RequiredPermissionName": "App.Hr.CostCenter", "IsDisabled": false }, { - "ParentCode": "App.HR", - "Code": "App.HR.EvaluationTemplates", - "DisplayName": "App.HR.EvaluationTemplates", + "ParentCode": "App.Hr", + "Code": "App.Hr.Employee", + "DisplayName": "App.Hr.Employee", + "Order": 6, + "Url": "/admin/hr/employees", + "Icon": "FcConferenceCall", + "RequiredPermissionName": "App.Hr.Employee", + "IsDisabled": false + }, + { + "ParentCode": "App.Hr", + "Code": "App.Hr.Organization", + "DisplayName": "App.Hr.Organization", + "Order": 7, + "Url": "/admin/hr/organization", + "Icon": "FcTreeStructure", + "RequiredPermissionName": "App.Hr.Organization", + "IsDisabled": false + }, + { + "ParentCode": "App.Hr", + "Code": "App.Hr.Leave", + "DisplayName": "App.Hr.Leave", + "Order": 8, + "Url": "/admin/hr/leave-management", + "Icon": "FcCalendar", + "RequiredPermissionName": "App.Hr.Leave", + "IsDisabled": false + }, + { + "ParentCode": "App.Hr", + "Code": "App.Hr.Overtime", + "DisplayName": "App.Hr.Overtime", + "Order": 9, + "Url": "/admin/hr/overtimes-management", + "Icon": "FcClock", + "RequiredPermissionName": "App.Hr.Overtime", + "IsDisabled": false + }, + { + "ParentCode": "App.Hr", + "Code": "App.Hr.Payroll", + "DisplayName": "App.Hr.Payroll", + "Order": 10, + "Url": "/admin/hr/payroll", + "Icon": "FcMoneyTransfer", + "RequiredPermissionName": "App.Hr.Payroll", + "IsDisabled": false + }, + { + "ParentCode": "App.Hr", + "Code": "App.Hr.EvaluationTemplate", + "DisplayName": "App.Hr.EvaluationTemplate", "Order": 11, "Url": "/admin/hr/360-templates", "Icon": "FcInspection", - "RequiredPermissionName": "App.HR.EvaluationTemplates", + "RequiredPermissionName": "App.Hr.EvaluationTemplate", "IsDisabled": false }, { - "ParentCode": "App.HR", - "Code": "App.HR.Evaluation", - "DisplayName": "App.HR.Evaluation", + "ParentCode": "App.Hr", + "Code": "App.Hr.Evaluation", + "DisplayName": "App.Hr.Evaluation", "Order": 12, "Url": "/admin/hr/360-evaluation", "Icon": "FcSurvey", - "RequiredPermissionName": "App.HR.Evaluation", + "RequiredPermissionName": "App.Hr.Evaluation", "IsDisabled": false }, { "ParentCode": null, - "Code": "App.MRP", - "DisplayName": "App.MRP", + "Code": "App.Mrp", + "DisplayName": "App.Mrp", "Order": 1200, "Url": null, "Icon": "FcServices", @@ -15074,93 +15074,93 @@ "IsDisabled": false }, { - "ParentCode": "App.MRP", - "Code": "App.MRP.OperationTypes", - "DisplayName": "App.MRP.OperationTypes", + "ParentCode": "App.Mrp", + "Code": "App.Mrp.OperationType", + "DisplayName": "App.Mrp.OperationType", "Order": 1, "Url": "/admin/mrp/operation-types", "Icon": "FcEngineering", - "RequiredPermissionName": "App.MRP.OperationTypes", + "RequiredPermissionName": "App.Mrp.OperationType", "IsDisabled": false }, { - "ParentCode": "App.MRP", - "Code": "App.MRP.Workcenters", - "DisplayName": "App.MRP.Workcenters", + "ParentCode": "App.Mrp", + "Code": "App.Mrp.Workcenter", + "DisplayName": "App.Mrp.Workcenter", "Order": 2, "Url": "/admin/mrp/workcenters", "Icon": "FcWorkflow", - "RequiredPermissionName": "App.MRP.Workcenters", + "RequiredPermissionName": "App.Mrp.Workcenter", "IsDisabled": false }, { - "ParentCode": "App.MRP", - "Code": "App.MRP.Operations", - "DisplayName": "App.MRP.Operations", + "ParentCode": "App.Mrp", + "Code": "App.Mrp.Operation", + "DisplayName": "App.Mrp.Operation", "Order": 3, "Url": "/admin/mrp/operations", "Icon": "FcFlashOn", - "RequiredPermissionName": "App.MRP.Operations", + "RequiredPermissionName": "App.Mrp.Operation", "IsDisabled": false }, { - "ParentCode": "App.MRP", - "Code": "App.MRP.Bom", - "DisplayName": "App.MRP.Bom", + "ParentCode": "App.Mrp", + "Code": "App.Mrp.Bom", + "DisplayName": "App.Mrp.Bom", "Order": 4, "Url": "/admin/mrp/bom", "Icon": "FcFlowChart", - "RequiredPermissionName": "App.MRP.Bom", + "RequiredPermissionName": "App.Mrp.Bom", "IsDisabled": false }, { - "ParentCode": "App.MRP", - "Code": "App.MRP.ProductionOrders", - "DisplayName": "App.MRP.ProductionOrders", + "ParentCode": "App.Mrp", + "Code": "App.Mrp.ProductionOrder", + "DisplayName": "App.Mrp.ProductionOrder", "Order": 5, "Url": "/admin/mrp/production-orders", "Icon": "FcFactory", - "RequiredPermissionName": "App.MRP.ProductionOrders", + "RequiredPermissionName": "App.Mrp.ProductionOrder", "IsDisabled": false }, { - "ParentCode": "App.MRP", - "Code": "App.MRP.WorkOrders", - "DisplayName": "App.MRP.WorkOrders", + "ParentCode": "App.Mrp", + "Code": "App.Mrp.WorkOrder", + "DisplayName": "App.Mrp.WorkOrder", "Order": 6, "Url": "/admin/mrp/work-orders", "Icon": "FcList", - "RequiredPermissionName": "App.MRP.WorkOrders", + "RequiredPermissionName": "App.Mrp.WorkOrder", "IsDisabled": false }, { - "ParentCode": "App.MRP", - "Code": "App.MRP.DemandPlanning", - "DisplayName": "App.MRP.DemandPlanning", + "ParentCode": "App.Mrp", + "Code": "App.Mrp.DemandPlanning", + "DisplayName": "App.Mrp.DemandPlanning", "Order": 7, "Url": "/admin/mrp/demand-planning", "Icon": "FcPlanner", - "RequiredPermissionName": "App.MRP.DemandPlanning", + "RequiredPermissionName": "App.Mrp.DemandPlanning", "IsDisabled": false }, { - "ParentCode": "App.MRP", - "Code": "App.MRP.MaterialRequirements", - "DisplayName": "App.MRP.MaterialRequirements", + "ParentCode": "App.Mrp", + "Code": "App.Mrp.MaterialRequirement", + "DisplayName": "App.Mrp.MaterialRequirement", "Order": 8, "Url": "/admin/mrp/material-requirements", "Icon": "FcDataSheet", - "RequiredPermissionName": "App.MRP.MaterialRequirements", + "RequiredPermissionName": "App.Mrp.MaterialRequirement", "IsDisabled": false }, { - "ParentCode": "App.MRP", - "Code": "App.MRP.PlanningGantt", - "DisplayName": "App.MRP.PlanningGantt", + "ParentCode": "App.Mrp", + "Code": "App.Mrp.PlanningGantt", + "DisplayName": "App.Mrp.PlanningGantt", "Order": 9, "Url": "/admin/mrp/planning-gantt", "Icon": "FcTimeline", - "RequiredPermissionName": "App.MRP.PlanningGantt", + "RequiredPermissionName": "App.Mrp.PlanningGantt", "IsDisabled": false }, { @@ -15185,32 +15185,32 @@ }, { "ParentCode": "App.Accounting", - "Code": "App.Accounting.CurrentAccounts", - "DisplayName": "App.Accounting.CurrentAccounts", + "Code": "App.Accounting.CurrentAccount", + "DisplayName": "App.Accounting.CurrentAccount", "Order": 2, "Url": "/admin/accounting/current-accounts", "Icon": "FcDebt", - "RequiredPermissionName": "App.Accounting.CurrentAccounts", + "RequiredPermissionName": "App.Accounting.CurrentAccount", "IsDisabled": false }, { "ParentCode": "App.Accounting", - "Code": "App.Accounting.Waybills", - "DisplayName": "App.Accounting.Waybills", + "Code": "App.Accounting.Waybill", + "DisplayName": "App.Accounting.Waybill", "Order": 3, "Url": "/admin/accounting/waybills", "Icon": "FcSurvey", - "RequiredPermissionName": "App.Accounting.Waybills", + "RequiredPermissionName": "App.Accounting.Waybill", "IsDisabled": false }, { "ParentCode": "App.Accounting", - "Code": "App.Accounting.Invoices", - "DisplayName": "App.Accounting.Invoices", + "Code": "App.Accounting.Invoice", + "DisplayName": "App.Accounting.Invoice", "Order": 4, "Url": "/admin/accounting/invoices", "Icon": "FcSalesPerformance", - "RequiredPermissionName": "App.Accounting.Invoices", + "RequiredPermissionName": "App.Accounting.Invoice", "IsDisabled": false }, { @@ -16517,8 +16517,8 @@ "DisplayName": "App.Coordinator" }, { - "Name": "App.CRM", - "DisplayName": "App.CRM" + "Name": "App.Crm", + "DisplayName": "App.Crm" }, { "Name": "App.SupplyChain", @@ -16537,12 +16537,12 @@ "DisplayName": "App.Projects" }, { - "Name": "App.HR", - "DisplayName": "App.HR" + "Name": "App.Hr", + "DisplayName": "App.Hr" }, { - "Name": "App.MRP", - "DisplayName": "App.MRP" + "Name": "App.Mrp", + "DisplayName": "App.Mrp" }, { "Name": "App.Accounting", @@ -22621,17 +22621,17 @@ }, { "GroupName": "App.Maintenance", - "Name": "App.Maintenance.Workcenters", + "Name": "App.Maintenance.Workcenter", "ParentName": null, - "DisplayName": "App.Maintenance.Workcenters", + "DisplayName": "App.Maintenance.Workcenter", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { "GroupName": "App.Maintenance", - "Name": "App.Maintenance.Workcenters.Create", - "ParentName": "App.Maintenance.Workcenters", + "Name": "App.Maintenance.Workcenter.Create", + "ParentName": "App.Maintenance.Workcenter", "DisplayName": "Create", "IsEnabled": true, "MultiTenancySide": 3, @@ -22639,8 +22639,8 @@ }, { "GroupName": "App.Maintenance", - "Name": "App.Maintenance.Workcenters.Update", - "ParentName": "App.Maintenance.Workcenters", + "Name": "App.Maintenance.Workcenter.Update", + "ParentName": "App.Maintenance.Workcenter", "DisplayName": "Update", "IsEnabled": true, "MultiTenancySide": 3, @@ -22648,8 +22648,8 @@ }, { "GroupName": "App.Maintenance", - "Name": "App.Maintenance.Workcenters.Delete", - "ParentName": "App.Maintenance.Workcenters", + "Name": "App.Maintenance.Workcenter.Delete", + "ParentName": "App.Maintenance.Workcenter", "DisplayName": "Delete", "IsEnabled": true, "MultiTenancySide": 3, @@ -22657,8 +22657,8 @@ }, { "GroupName": "App.Maintenance", - "Name": "App.Maintenance.Workcenters.Export", - "ParentName": "App.Maintenance.Workcenters", + "Name": "App.Maintenance.Workcenter.Export", + "ParentName": "App.Maintenance.Workcenter", "DisplayName": "Export", "IsEnabled": true, "MultiTenancySide": 3, @@ -22666,8 +22666,8 @@ }, { "GroupName": "App.Maintenance", - "Name": "App.Maintenance.Workcenters.Import", - "ParentName": "App.Maintenance.Workcenters", + "Name": "App.Maintenance.Workcenter.Import", + "ParentName": "App.Maintenance.Workcenter", "DisplayName": "Import", "IsEnabled": true, "MultiTenancySide": 3, @@ -22675,8 +22675,8 @@ }, { "GroupName": "App.Maintenance", - "Name": "App.Maintenance.Workcenters.Activity", - "ParentName": "App.Maintenance.Workcenters", + "Name": "App.Maintenance.Workcenter.Activity", + "ParentName": "App.Maintenance.Workcenter", "DisplayName": "Activity", "IsEnabled": true, "MultiTenancySide": 3, @@ -24006,1701 +24006,1701 @@ "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Employees", + "GroupName": "App.Hr", + "Name": "App.Hr.Employee", "ParentName": null, - "DisplayName": "App.HR.Employees", + "DisplayName": "App.Hr.Employee", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Employees.Create", - "ParentName": "App.HR.Employees", + "GroupName": "App.Hr", + "Name": "App.Hr.Employee.Create", + "ParentName": "App.Hr.Employee", "DisplayName": "Create", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Employees.Update", - "ParentName": "App.HR.Employees", + "GroupName": "App.Hr", + "Name": "App.Hr.Employee.Update", + "ParentName": "App.Hr.Employee", "DisplayName": "Update", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Employees.Delete", - "ParentName": "App.HR.Employees", + "GroupName": "App.Hr", + "Name": "App.Hr.Employee.Delete", + "ParentName": "App.Hr.Employee", "DisplayName": "Delete", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Employees.Export", - "ParentName": "App.HR.Employees", + "GroupName": "App.Hr", + "Name": "App.Hr.Employee.Export", + "ParentName": "App.Hr.Employee", "DisplayName": "Export", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Employees.Import", - "ParentName": "App.HR.Employees", + "GroupName": "App.Hr", + "Name": "App.Hr.Employee.Import", + "ParentName": "App.Hr.Employee", "DisplayName": "Import", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Employees.Activity", - "ParentName": "App.HR.Employees", + "GroupName": "App.Hr", + "Name": "App.Hr.Employee.Activity", + "ParentName": "App.Hr.Employee", "DisplayName": "Activity", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Departments", + "GroupName": "App.Hr", + "Name": "App.Hr.Department", "ParentName": null, - "DisplayName": "App.HR.Departments", + "DisplayName": "App.Hr.Department", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Departments.Create", - "ParentName": "App.HR.Departments", + "GroupName": "App.Hr", + "Name": "App.Hr.Department.Create", + "ParentName": "App.Hr.Department", "DisplayName": "Create", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Departments.Update", - "ParentName": "App.HR.Departments", + "GroupName": "App.Hr", + "Name": "App.Hr.Department.Update", + "ParentName": "App.Hr.Department", "DisplayName": "Update", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Departments.Delete", - "ParentName": "App.HR.Departments", + "GroupName": "App.Hr", + "Name": "App.Hr.Department.Delete", + "ParentName": "App.Hr.Department", "DisplayName": "Delete", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Departments.Export", - "ParentName": "App.HR.Departments", + "GroupName": "App.Hr", + "Name": "App.Hr.Department.Export", + "ParentName": "App.Hr.Department", "DisplayName": "Export", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Departments.Import", - "ParentName": "App.HR.Departments", + "GroupName": "App.Hr", + "Name": "App.Hr.Department.Import", + "ParentName": "App.Hr.Department", "DisplayName": "Import", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Departments.Activity", - "ParentName": "App.HR.Departments", + "GroupName": "App.Hr", + "Name": "App.Hr.Department.Activity", + "ParentName": "App.Hr.Department", "DisplayName": "Activity", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.JobPositions", + "GroupName": "App.Hr", + "Name": "App.Hr.JobPosition", "ParentName": null, - "DisplayName": "App.HR.JobPositions", + "DisplayName": "App.Hr.JobPosition", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.JobPositions.Create", - "ParentName": "App.HR.JobPositions", + "GroupName": "App.Hr", + "Name": "App.Hr.JobPosition.Create", + "ParentName": "App.Hr.JobPosition", "DisplayName": "Create", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.JobPositions.Update", - "ParentName": "App.HR.JobPositions", + "GroupName": "App.Hr", + "Name": "App.Hr.JobPosition.Update", + "ParentName": "App.Hr.JobPosition", "DisplayName": "Update", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.JobPositions.Delete", - "ParentName": "App.HR.JobPositions", + "GroupName": "App.Hr", + "Name": "App.Hr.JobPosition.Delete", + "ParentName": "App.Hr.JobPosition", "DisplayName": "Delete", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.JobPositions.Export", - "ParentName": "App.HR.JobPositions", + "GroupName": "App.Hr", + "Name": "App.Hr.JobPosition.Export", + "ParentName": "App.Hr.JobPosition", "DisplayName": "Export", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.JobPositions.Import", - "ParentName": "App.HR.JobPositions", + "GroupName": "App.Hr", + "Name": "App.Hr.JobPosition.Import", + "ParentName": "App.Hr.JobPosition", "DisplayName": "Import", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.JobPositions.Activity", - "ParentName": "App.HR.JobPositions", + "GroupName": "App.Hr", + "Name": "App.Hr.JobPosition.Activity", + "ParentName": "App.Hr.JobPosition", "DisplayName": "Activity", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.EmploymentTypes", + "GroupName": "App.Hr", + "Name": "App.Hr.EmploymentType", "ParentName": null, - "DisplayName": "App.HR.EmploymentTypes", + "DisplayName": "App.Hr.EmploymentType", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.EmploymentTypes.Create", - "ParentName": "App.HR.EmploymentTypes", + "GroupName": "App.Hr", + "Name": "App.Hr.EmploymentType.Create", + "ParentName": "App.Hr.EmploymentType", "DisplayName": "Create", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.EmploymentTypes.Update", - "ParentName": "App.HR.EmploymentTypes", + "GroupName": "App.Hr", + "Name": "App.Hr.EmploymentType.Update", + "ParentName": "App.Hr.EmploymentType", "DisplayName": "Update", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.EmploymentTypes.Delete", - "ParentName": "App.HR.EmploymentTypes", + "GroupName": "App.Hr", + "Name": "App.Hr.EmploymentType.Delete", + "ParentName": "App.Hr.EmploymentType", "DisplayName": "Delete", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.EmploymentTypes.Export", - "ParentName": "App.HR.EmploymentTypes", + "GroupName": "App.Hr", + "Name": "App.Hr.EmploymentType.Export", + "ParentName": "App.Hr.EmploymentType", "DisplayName": "Export", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.EmploymentTypes.Import", - "ParentName": "App.HR.EmploymentTypes", + "GroupName": "App.Hr", + "Name": "App.Hr.EmploymentType.Import", + "ParentName": "App.Hr.EmploymentType", "DisplayName": "Import", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.EmploymentTypes.Activity", - "ParentName": "App.HR.EmploymentTypes", + "GroupName": "App.Hr", + "Name": "App.Hr.EmploymentType.Activity", + "ParentName": "App.Hr.EmploymentType", "DisplayName": "Activity", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Organization", + "GroupName": "App.Hr", + "Name": "App.Hr.Organization", "ParentName": null, - "DisplayName": "App.HR.Organization", + "DisplayName": "App.Hr.Organization", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Organization.Create", - "ParentName": "App.HR.Organization", + "GroupName": "App.Hr", + "Name": "App.Hr.Organization.Create", + "ParentName": "App.Hr.Organization", "DisplayName": "Create", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Organization.Update", - "ParentName": "App.HR.Organization", + "GroupName": "App.Hr", + "Name": "App.Hr.Organization.Update", + "ParentName": "App.Hr.Organization", "DisplayName": "Update", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Organization.Delete", - "ParentName": "App.HR.Organization", + "GroupName": "App.Hr", + "Name": "App.Hr.Organization.Delete", + "ParentName": "App.Hr.Organization", "DisplayName": "Delete", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Organization.Export", - "ParentName": "App.HR.Organization", + "GroupName": "App.Hr", + "Name": "App.Hr.Organization.Export", + "ParentName": "App.Hr.Organization", "DisplayName": "Export", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Organization.Import", - "ParentName": "App.HR.Organization", + "GroupName": "App.Hr", + "Name": "App.Hr.Organization.Import", + "ParentName": "App.Hr.Organization", "DisplayName": "Import", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Organization.Activity", - "ParentName": "App.HR.Organization", + "GroupName": "App.Hr", + "Name": "App.Hr.Organization.Activity", + "ParentName": "App.Hr.Organization", "DisplayName": "Activity", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Badges", + "GroupName": "App.Hr", + "Name": "App.Hr.Badge", "ParentName": null, - "DisplayName": "App.HR.Badges", + "DisplayName": "App.Hr.Badge", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Badges.Create", - "ParentName": "App.HR.Badges", + "GroupName": "App.Hr", + "Name": "App.Hr.Badge.Create", + "ParentName": "App.Hr.Badge", "DisplayName": "Create", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Badges.Update", - "ParentName": "App.HR.Badges", + "GroupName": "App.Hr", + "Name": "App.Hr.Badge.Update", + "ParentName": "App.Hr.Badge", "DisplayName": "Update", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Badges.Delete", - "ParentName": "App.HR.Badges", + "GroupName": "App.Hr", + "Name": "App.Hr.Badge.Delete", + "ParentName": "App.Hr.Badge", "DisplayName": "Delete", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Badges.Export", - "ParentName": "App.HR.Badges", + "GroupName": "App.Hr", + "Name": "App.Hr.Badge.Export", + "ParentName": "App.Hr.Badge", "DisplayName": "Export", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Badges.Import", - "ParentName": "App.HR.Badges", + "GroupName": "App.Hr", + "Name": "App.Hr.Badge.Import", + "ParentName": "App.Hr.Badge", "DisplayName": "Import", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Badges.Activity", - "ParentName": "App.HR.Badges", + "GroupName": "App.Hr", + "Name": "App.Hr.Badge.Activity", + "ParentName": "App.Hr.Badge", "DisplayName": "Activity", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.LeaveManagement", + "GroupName": "App.Hr", + "Name": "App.Hr.Leave", "ParentName": null, - "DisplayName": "App.HR.LeaveManagement", + "DisplayName": "App.Hr.Leave", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.LeaveManagement.Create", - "ParentName": "App.HR.LeaveManagement", + "GroupName": "App.Hr", + "Name": "App.Hr.Leave.Create", + "ParentName": "App.Hr.Leave", "DisplayName": "Create", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.LeaveManagement.Update", - "ParentName": "App.HR.LeaveManagement", + "GroupName": "App.Hr", + "Name": "App.Hr.Leave.Update", + "ParentName": "App.Hr.Leave", "DisplayName": "Update", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.LeaveManagement.Delete", - "ParentName": "App.HR.LeaveManagement", + "GroupName": "App.Hr", + "Name": "App.Hr.Leave.Delete", + "ParentName": "App.Hr.Leave", "DisplayName": "Delete", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.LeaveManagement.Export", - "ParentName": "App.HR.LeaveManagement", + "GroupName": "App.Hr", + "Name": "App.Hr.Leave.Export", + "ParentName": "App.Hr.Leave", "DisplayName": "Export", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.LeaveManagement.Import", - "ParentName": "App.HR.LeaveManagement", + "GroupName": "App.Hr", + "Name": "App.Hr.Leave.Import", + "ParentName": "App.Hr.Leave", "DisplayName": "Import", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.LeaveManagement.Activity", - "ParentName": "App.HR.LeaveManagement", + "GroupName": "App.Hr", + "Name": "App.Hr.Leave.Activity", + "ParentName": "App.Hr.Leave", "DisplayName": "Activity", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Overtimes", + "GroupName": "App.Hr", + "Name": "App.Hr.Overtime", "ParentName": null, - "DisplayName": "App.HR.Overtimes", + "DisplayName": "App.Hr.Overtime", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Overtimes.Create", - "ParentName": "App.HR.Overtimes", + "GroupName": "App.Hr", + "Name": "App.Hr.Overtime.Create", + "ParentName": "App.Hr.Overtime", "DisplayName": "Create", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Overtimes.Update", - "ParentName": "App.HR.Overtimes", + "GroupName": "App.Hr", + "Name": "App.Hr.Overtime.Update", + "ParentName": "App.Hr.Overtime", "DisplayName": "Update", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Overtimes.Delete", - "ParentName": "App.HR.Overtimes", + "GroupName": "App.Hr", + "Name": "App.Hr.Overtime.Delete", + "ParentName": "App.Hr.Overtime", "DisplayName": "Delete", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Overtimes.Export", - "ParentName": "App.HR.Overtimes", + "GroupName": "App.Hr", + "Name": "App.Hr.Overtime.Export", + "ParentName": "App.Hr.Overtime", "DisplayName": "Export", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Overtimes.Import", - "ParentName": "App.HR.Overtimes", + "GroupName": "App.Hr", + "Name": "App.Hr.Overtime.Import", + "ParentName": "App.Hr.Overtime", "DisplayName": "Import", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Overtimes.Activity", - "ParentName": "App.HR.Overtimes", + "GroupName": "App.Hr", + "Name": "App.Hr.Overtime.Activity", + "ParentName": "App.Hr.Overtime", "DisplayName": "Activity", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Payroll", + "GroupName": "App.Hr", + "Name": "App.Hr.Payroll", "ParentName": null, - "DisplayName": "App.HR.Payroll", + "DisplayName": "App.Hr.Payroll", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Payroll.Create", - "ParentName": "App.HR.Payroll", + "GroupName": "App.Hr", + "Name": "App.Hr.Payroll.Create", + "ParentName": "App.Hr.Payroll", "DisplayName": "Create", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Payroll.Update", - "ParentName": "App.HR.Payroll", + "GroupName": "App.Hr", + "Name": "App.Hr.Payroll.Update", + "ParentName": "App.Hr.Payroll", "DisplayName": "Update", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Payroll.Delete", - "ParentName": "App.HR.Payroll", + "GroupName": "App.Hr", + "Name": "App.Hr.Payroll.Delete", + "ParentName": "App.Hr.Payroll", "DisplayName": "Delete", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Payroll.Export", - "ParentName": "App.HR.Payroll", + "GroupName": "App.Hr", + "Name": "App.Hr.Payroll.Export", + "ParentName": "App.Hr.Payroll", "DisplayName": "Export", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Payroll.Import", - "ParentName": "App.HR.Payroll", + "GroupName": "App.Hr", + "Name": "App.Hr.Payroll.Import", + "ParentName": "App.Hr.Payroll", "DisplayName": "Import", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Payroll.Activity", - "ParentName": "App.HR.Payroll", + "GroupName": "App.Hr", + "Name": "App.Hr.Payroll.Activity", + "ParentName": "App.Hr.Payroll", "DisplayName": "Activity", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.CostCenters", + "GroupName": "App.Hr", + "Name": "App.Hr.CostCenter", "ParentName": null, - "DisplayName": "App.HR.CostCenters", + "DisplayName": "App.Hr.CostCenter", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.CostCenters.Create", - "ParentName": "App.HR.CostCenters", + "GroupName": "App.Hr", + "Name": "App.Hr.CostCenter.Create", + "ParentName": "App.Hr.CostCenter", "DisplayName": "Create", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.CostCenters.Update", - "ParentName": "App.HR.CostCenters", + "GroupName": "App.Hr", + "Name": "App.Hr.CostCenter.Update", + "ParentName": "App.Hr.CostCenter", "DisplayName": "Update", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.CostCenters.Delete", - "ParentName": "App.HR.CostCenters", + "GroupName": "App.Hr", + "Name": "App.Hr.CostCenter.Delete", + "ParentName": "App.Hr.CostCenter", "DisplayName": "Delete", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.CostCenters.Export", - "ParentName": "App.HR.CostCenters", + "GroupName": "App.Hr", + "Name": "App.Hr.CostCenter.Export", + "ParentName": "App.Hr.CostCenter", "DisplayName": "Export", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.CostCenters.Import", - "ParentName": "App.HR.CostCenters", + "GroupName": "App.Hr", + "Name": "App.Hr.CostCenter.Import", + "ParentName": "App.Hr.CostCenter", "DisplayName": "Import", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.CostCenters.Activity", - "ParentName": "App.HR.CostCenters", + "GroupName": "App.Hr", + "Name": "App.Hr.CostCenter.Activity", + "ParentName": "App.Hr.CostCenter", "DisplayName": "Activity", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.EvaluationTemplates", + "GroupName": "App.Hr", + "Name": "App.Hr.EvaluationTemplate", "ParentName": null, - "DisplayName": "App.HR.EvaluationTemplates", + "DisplayName": "App.Hr.EvaluationTemplate", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.EvaluationTemplates.Create", - "ParentName": "App.HR.EvaluationTemplates", + "GroupName": "App.Hr", + "Name": "App.Hr.EvaluationTemplate.Create", + "ParentName": "App.Hr.EvaluationTemplate", "DisplayName": "Create", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.EvaluationTemplates.Update", - "ParentName": "App.HR.EvaluationTemplates", + "GroupName": "App.Hr", + "Name": "App.Hr.EvaluationTemplate.Update", + "ParentName": "App.Hr.EvaluationTemplate", "DisplayName": "Update", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.EvaluationTemplates.Delete", - "ParentName": "App.HR.EvaluationTemplates", + "GroupName": "App.Hr", + "Name": "App.Hr.EvaluationTemplate.Delete", + "ParentName": "App.Hr.EvaluationTemplate", "DisplayName": "Delete", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.EvaluationTemplates.Export", - "ParentName": "App.HR.EvaluationTemplates", + "GroupName": "App.Hr", + "Name": "App.Hr.EvaluationTemplate.Export", + "ParentName": "App.Hr.EvaluationTemplate", "DisplayName": "Export", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.EvaluationTemplates.Import", - "ParentName": "App.HR.EvaluationTemplates", + "GroupName": "App.Hr", + "Name": "App.Hr.EvaluationTemplate.Import", + "ParentName": "App.Hr.EvaluationTemplate", "DisplayName": "Import", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.EvaluationTemplates.Activity", - "ParentName": "App.HR.EvaluationTemplates", + "GroupName": "App.Hr", + "Name": "App.Hr.EvaluationTemplate.Activity", + "ParentName": "App.Hr.EvaluationTemplate", "DisplayName": "Activity", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Evaluation", + "GroupName": "App.Hr", + "Name": "App.Hr.Evaluation", "ParentName": null, - "DisplayName": "App.HR.Evaluation", + "DisplayName": "App.Hr.Evaluation", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Evaluation.Create", - "ParentName": "App.HR.Evaluation", + "GroupName": "App.Hr", + "Name": "App.Hr.Evaluation.Create", + "ParentName": "App.Hr.Evaluation", "DisplayName": "Create", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Evaluation.Update", - "ParentName": "App.HR.Evaluation", + "GroupName": "App.Hr", + "Name": "App.Hr.Evaluation.Update", + "ParentName": "App.Hr.Evaluation", "DisplayName": "Update", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Evaluation.Delete", - "ParentName": "App.HR.Evaluation", + "GroupName": "App.Hr", + "Name": "App.Hr.Evaluation.Delete", + "ParentName": "App.Hr.Evaluation", "DisplayName": "Delete", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Evaluation.Export", - "ParentName": "App.HR.Evaluation", + "GroupName": "App.Hr", + "Name": "App.Hr.Evaluation.Export", + "ParentName": "App.Hr.Evaluation", "DisplayName": "Export", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Evaluation.Import", - "ParentName": "App.HR.Evaluation", + "GroupName": "App.Hr", + "Name": "App.Hr.Evaluation.Import", + "ParentName": "App.Hr.Evaluation", "DisplayName": "Import", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.HR", - "Name": "App.HR.Evaluation.Activity", - "ParentName": "App.HR.Evaluation", + "GroupName": "App.Hr", + "Name": "App.Hr.Evaluation.Activity", + "ParentName": "App.Hr.Evaluation", "DisplayName": "Activity", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.Customers", + "GroupName": "App.Crm", + "Name": "App.Crm.Customer", "ParentName": null, - "DisplayName": "App.CRM.Customers", + "DisplayName": "App.Crm.Customer", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.Customers.Create", - "ParentName": "App.CRM.Customers", + "GroupName": "App.Crm", + "Name": "App.Crm.Customer.Create", + "ParentName": "App.Crm.Customer", "DisplayName": "Create", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.Customers.Update", - "ParentName": "App.CRM.Customers", + "GroupName": "App.Crm", + "Name": "App.Crm.Customer.Update", + "ParentName": "App.Crm.Customer", "DisplayName": "Update", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.Customers.Delete", - "ParentName": "App.CRM.Customers", + "GroupName": "App.Crm", + "Name": "App.Crm.Customer.Delete", + "ParentName": "App.Crm.Customer", "DisplayName": "Delete", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.Customers.Export", - "ParentName": "App.CRM.Customers", + "GroupName": "App.Crm", + "Name": "App.Crm.Customer.Export", + "ParentName": "App.Crm.Customer", "DisplayName": "Export", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.Customers.Import", - "ParentName": "App.CRM.Customers", + "GroupName": "App.Crm", + "Name": "App.Crm.Customer.Import", + "ParentName": "App.Crm.Customer", "DisplayName": "Import", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.Customers.Activity", - "ParentName": "App.CRM.Customers", + "GroupName": "App.Crm", + "Name": "App.Crm.Customer.Activity", + "ParentName": "App.Crm.Customer", "DisplayName": "Activity", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.SalesTeams", + "GroupName": "App.Crm", + "Name": "App.Crm.SalesTeam", "ParentName": null, - "DisplayName": "App.CRM.SalesTeams", + "DisplayName": "App.Crm.SalesTeam", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.SalesTeams.Create", - "ParentName": "App.CRM.SalesTeams", + "GroupName": "App.Crm", + "Name": "App.Crm.SalesTeam.Create", + "ParentName": "App.Crm.SalesTeam", "DisplayName": "Create", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.SalesTeams.Update", - "ParentName": "App.CRM.SalesTeams", + "GroupName": "App.Crm", + "Name": "App.Crm.SalesTeam.Update", + "ParentName": "App.Crm.SalesTeam", "DisplayName": "Update", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.SalesTeams.Delete", - "ParentName": "App.CRM.SalesTeams", + "GroupName": "App.Crm", + "Name": "App.Crm.SalesTeam.Delete", + "ParentName": "App.Crm.SalesTeam", "DisplayName": "Delete", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.SalesTeams.Export", - "ParentName": "App.CRM.SalesTeams", + "GroupName": "App.Crm", + "Name": "App.Crm.SalesTeam.Export", + "ParentName": "App.Crm.SalesTeam", "DisplayName": "Export", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.SalesTeams.Import", - "ParentName": "App.CRM.SalesTeams", + "GroupName": "App.Crm", + "Name": "App.Crm.SalesTeam.Import", + "ParentName": "App.Crm.SalesTeam", "DisplayName": "Import", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.SalesTeams.Activity", - "ParentName": "App.CRM.SalesTeams", + "GroupName": "App.Crm", + "Name": "App.Crm.SalesTeam.Activity", + "ParentName": "App.Crm.SalesTeam", "DisplayName": "Activity", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.LossReasons", + "GroupName": "App.Crm", + "Name": "App.Crm.LossReason", "ParentName": null, - "DisplayName": "App.CRM.LossReasons", + "DisplayName": "App.Crm.LossReason", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.LossReasons.Create", - "ParentName": "App.CRM.LossReasons", + "GroupName": "App.Crm", + "Name": "App.Crm.LossReason.Create", + "ParentName": "App.Crm.LossReason", "DisplayName": "Create", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.LossReasons.Update", - "ParentName": "App.CRM.LossReasons", + "GroupName": "App.Crm", + "Name": "App.Crm.LossReason.Update", + "ParentName": "App.Crm.LossReason", "DisplayName": "Update", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.LossReasons.Delete", - "ParentName": "App.CRM.LossReasons", + "GroupName": "App.Crm", + "Name": "App.Crm.LossReason.Delete", + "ParentName": "App.Crm.LossReason", "DisplayName": "Delete", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.LossReasons.Export", - "ParentName": "App.CRM.LossReasons", + "GroupName": "App.Crm", + "Name": "App.Crm.LossReason.Export", + "ParentName": "App.Crm.LossReason", "DisplayName": "Export", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.LossReasons.Import", - "ParentName": "App.CRM.LossReasons", + "GroupName": "App.Crm", + "Name": "App.Crm.LossReason.Import", + "ParentName": "App.Crm.LossReason", "DisplayName": "Import", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.LossReasons.Activity", - "ParentName": "App.CRM.LossReasons", + "GroupName": "App.Crm", + "Name": "App.Crm.LossReason.Activity", + "ParentName": "App.Crm.LossReason", "DisplayName": "Activity", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.Opportunities", + "GroupName": "App.Crm", + "Name": "App.Crm.Opportunity", "ParentName": null, - "DisplayName": "App.CRM.Opportunities", + "DisplayName": "App.Crm.Opportunity", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.Opportunities.Create", - "ParentName": "App.CRM.Opportunities", + "GroupName": "App.Crm", + "Name": "App.Crm.Opportunity.Create", + "ParentName": "App.Crm.Opportunity", "DisplayName": "Create", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.Opportunities.Update", - "ParentName": "App.CRM.Opportunities", + "GroupName": "App.Crm", + "Name": "App.Crm.Opportunity.Update", + "ParentName": "App.Crm.Opportunity", "DisplayName": "Update", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.Opportunities.Delete", - "ParentName": "App.CRM.Opportunities", + "GroupName": "App.Crm", + "Name": "App.Crm.Opportunity.Delete", + "ParentName": "App.Crm.Opportunity", "DisplayName": "Delete", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.Opportunities.Export", - "ParentName": "App.CRM.Opportunities", + "GroupName": "App.Crm", + "Name": "App.Crm.Opportunity.Export", + "ParentName": "App.Crm.Opportunity", "DisplayName": "Export", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.Opportunities.Import", - "ParentName": "App.CRM.Opportunities", + "GroupName": "App.Crm", + "Name": "App.Crm.Opportunity.Import", + "ParentName": "App.Crm.Opportunity", "DisplayName": "Import", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.Opportunities.Activity", - "ParentName": "App.CRM.Opportunities", + "GroupName": "App.Crm", + "Name": "App.Crm.Opportunity.Activity", + "ParentName": "App.Crm.Opportunity", "DisplayName": "Activity", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.Activities", + "GroupName": "App.Crm", + "Name": "App.Crm.Activities", "ParentName": null, - "DisplayName": "App.CRM.Activities", + "DisplayName": "App.Crm.Activities", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.Activities.Create", - "ParentName": "App.CRM.Activities", + "GroupName": "App.Crm", + "Name": "App.Crm.Activities.Create", + "ParentName": "App.Crm.Activities", "DisplayName": "Create", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.Activities.Update", - "ParentName": "App.CRM.Activities", + "GroupName": "App.Crm", + "Name": "App.Crm.Activities.Update", + "ParentName": "App.Crm.Activities", "DisplayName": "Update", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.Activities.Delete", - "ParentName": "App.CRM.Activities", + "GroupName": "App.Crm", + "Name": "App.Crm.Activities.Delete", + "ParentName": "App.Crm.Activities", "DisplayName": "Delete", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.Activities.Export", - "ParentName": "App.CRM.Activities", + "GroupName": "App.Crm", + "Name": "App.Crm.Activities.Export", + "ParentName": "App.Crm.Activities", "DisplayName": "Export", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.Activities.Import", - "ParentName": "App.CRM.Activities", + "GroupName": "App.Crm", + "Name": "App.Crm.Activities.Import", + "ParentName": "App.Crm.Activities", "DisplayName": "Import", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.Activities.Activity", - "ParentName": "App.CRM.Activities", + "GroupName": "App.Crm", + "Name": "App.Crm.Activities.Activity", + "ParentName": "App.Crm.Activities", "DisplayName": "Activity", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.SalesOrders", + "GroupName": "App.Crm", + "Name": "App.Crm.SalesOrder", "ParentName": null, - "DisplayName": "App.CRM.SalesOrders", + "DisplayName": "App.Crm.SalesOrder", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.SalesOrders.Create", - "ParentName": "App.CRM.SalesOrders", + "GroupName": "App.Crm", + "Name": "App.Crm.SalesOrder.Create", + "ParentName": "App.Crm.SalesOrder", "DisplayName": "Create", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.SalesOrders.Update", - "ParentName": "App.CRM.SalesOrders", + "GroupName": "App.Crm", + "Name": "App.Crm.SalesOrder.Update", + "ParentName": "App.Crm.SalesOrder", "DisplayName": "Update", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.SalesOrders.Delete", - "ParentName": "App.CRM.SalesOrders", + "GroupName": "App.Crm", + "Name": "App.Crm.SalesOrder.Delete", + "ParentName": "App.Crm.SalesOrder", "DisplayName": "Delete", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.SalesOrders.Export", - "ParentName": "App.CRM.SalesOrders", + "GroupName": "App.Crm", + "Name": "App.Crm.SalesOrder.Export", + "ParentName": "App.Crm.SalesOrder", "DisplayName": "Export", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.SalesOrders.Import", - "ParentName": "App.CRM.SalesOrders", + "GroupName": "App.Crm", + "Name": "App.Crm.SalesOrder.Import", + "ParentName": "App.Crm.SalesOrder", "DisplayName": "Import", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.CRM", - "Name": "App.CRM.SalesOrders.Activity", - "ParentName": "App.CRM.SalesOrders", + "GroupName": "App.Crm", + "Name": "App.Crm.SalesOrder.Activity", + "ParentName": "App.Crm.SalesOrder", "DisplayName": "Activity", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.OperationTypes", + "GroupName": "App.Mrp", + "Name": "App.Mrp.OperationType", "ParentName": null, - "DisplayName": "App.MRP.OperationTypes", + "DisplayName": "App.Mrp.OperationType", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.OperationTypes.Create", - "ParentName": "App.MRP.OperationTypes", + "GroupName": "App.Mrp", + "Name": "App.Mrp.OperationType.Create", + "ParentName": "App.Mrp.OperationType", "DisplayName": "Create", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.OperationTypes.Update", - "ParentName": "App.MRP.OperationTypes", + "GroupName": "App.Mrp", + "Name": "App.Mrp.OperationType.Update", + "ParentName": "App.Mrp.OperationType", "DisplayName": "Update", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.OperationTypes.Delete", - "ParentName": "App.MRP.OperationTypes", + "GroupName": "App.Mrp", + "Name": "App.Mrp.OperationType.Delete", + "ParentName": "App.Mrp.OperationType", "DisplayName": "Delete", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.OperationTypes.Export", - "ParentName": "App.MRP.OperationTypes", + "GroupName": "App.Mrp", + "Name": "App.Mrp.OperationType.Export", + "ParentName": "App.Mrp.OperationType", "DisplayName": "Export", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.OperationTypes.Import", - "ParentName": "App.MRP.OperationTypes", + "GroupName": "App.Mrp", + "Name": "App.Mrp.OperationType.Import", + "ParentName": "App.Mrp.OperationType", "DisplayName": "Import", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.OperationTypes.Activity", - "ParentName": "App.MRP.OperationTypes", + "GroupName": "App.Mrp", + "Name": "App.Mrp.OperationType.Activity", + "ParentName": "App.Mrp.OperationType", "DisplayName": "Activity", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.Workcenters", + "GroupName": "App.Mrp", + "Name": "App.Mrp.Workcenter", "ParentName": null, - "DisplayName": "App.MRP.Workcenters", + "DisplayName": "App.Mrp.Workcenter", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.Workcenters.Create", - "ParentName": "App.MRP.Workcenters", + "GroupName": "App.Mrp", + "Name": "App.Mrp.Workcenter.Create", + "ParentName": "App.Mrp.Workcenter", "DisplayName": "Create", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.Workcenters.Update", - "ParentName": "App.MRP.Workcenters", + "GroupName": "App.Mrp", + "Name": "App.Mrp.Workcenter.Update", + "ParentName": "App.Mrp.Workcenter", "DisplayName": "Update", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.Workcenters.Delete", - "ParentName": "App.MRP.Workcenters", + "GroupName": "App.Mrp", + "Name": "App.Mrp.Workcenter.Delete", + "ParentName": "App.Mrp.Workcenter", "DisplayName": "Delete", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.Workcenters.Export", - "ParentName": "App.MRP.Workcenters", + "GroupName": "App.Mrp", + "Name": "App.Mrp.Workcenter.Export", + "ParentName": "App.Mrp.Workcenter", "DisplayName": "Export", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.Workcenters.Import", - "ParentName": "App.MRP.Workcenters", + "GroupName": "App.Mrp", + "Name": "App.Mrp.Workcenter.Import", + "ParentName": "App.Mrp.Workcenter", "DisplayName": "Import", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.Workcenters.Activity", - "ParentName": "App.MRP.Workcenters", + "GroupName": "App.Mrp", + "Name": "App.Mrp.Workcenter.Activity", + "ParentName": "App.Mrp.Workcenter", "DisplayName": "Activity", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.Operations", + "GroupName": "App.Mrp", + "Name": "App.Mrp.Operation", "ParentName": null, - "DisplayName": "App.MRP.Operations", + "DisplayName": "App.Mrp.Operation", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.Operations.Create", - "ParentName": "App.MRP.Operations", + "GroupName": "App.Mrp", + "Name": "App.Mrp.Operation.Create", + "ParentName": "App.Mrp.Operation", "DisplayName": "Create", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.Operations.Update", - "ParentName": "App.MRP.Operations", + "GroupName": "App.Mrp", + "Name": "App.Mrp.Operation.Update", + "ParentName": "App.Mrp.Operation", "DisplayName": "Update", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.Operations.Delete", - "ParentName": "App.MRP.Operations", + "GroupName": "App.Mrp", + "Name": "App.Mrp.Operation.Delete", + "ParentName": "App.Mrp.Operation", "DisplayName": "Delete", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.Operations.Export", - "ParentName": "App.MRP.Operations", + "GroupName": "App.Mrp", + "Name": "App.Mrp.Operation.Export", + "ParentName": "App.Mrp.Operation", "DisplayName": "Export", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.Operations.Import", - "ParentName": "App.MRP.Operations", + "GroupName": "App.Mrp", + "Name": "App.Mrp.Operation.Import", + "ParentName": "App.Mrp.Operation", "DisplayName": "Import", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.Operations.Activity", - "ParentName": "App.MRP.Operations", + "GroupName": "App.Mrp", + "Name": "App.Mrp.Operation.Activity", + "ParentName": "App.Mrp.Operation", "DisplayName": "Activity", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.Bom", + "GroupName": "App.Mrp", + "Name": "App.Mrp.Bom", "ParentName": null, - "DisplayName": "App.MRP.Bom", + "DisplayName": "App.Mrp.Bom", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.Bom.Create", - "ParentName": "App.MRP.Bom", + "GroupName": "App.Mrp", + "Name": "App.Mrp.Bom.Create", + "ParentName": "App.Mrp.Bom", "DisplayName": "Create", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.Bom.Update", - "ParentName": "App.MRP.Bom", + "GroupName": "App.Mrp", + "Name": "App.Mrp.Bom.Update", + "ParentName": "App.Mrp.Bom", "DisplayName": "Update", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.Bom.Delete", - "ParentName": "App.MRP.Bom", + "GroupName": "App.Mrp", + "Name": "App.Mrp.Bom.Delete", + "ParentName": "App.Mrp.Bom", "DisplayName": "Delete", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.Bom.Export", - "ParentName": "App.MRP.Bom", + "GroupName": "App.Mrp", + "Name": "App.Mrp.Bom.Export", + "ParentName": "App.Mrp.Bom", "DisplayName": "Export", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.Bom.Import", - "ParentName": "App.MRP.Bom", + "GroupName": "App.Mrp", + "Name": "App.Mrp.Bom.Import", + "ParentName": "App.Mrp.Bom", "DisplayName": "Import", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.Bom.Activity", - "ParentName": "App.MRP.Bom", + "GroupName": "App.Mrp", + "Name": "App.Mrp.Bom.Activity", + "ParentName": "App.Mrp.Bom", "DisplayName": "Activity", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.ProductionOrders", + "GroupName": "App.Mrp", + "Name": "App.Mrp.ProductionOrder", "ParentName": null, - "DisplayName": "App.MRP.ProductionOrders", + "DisplayName": "App.Mrp.ProductionOrder", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.ProductionOrders.Create", - "ParentName": "App.MRP.ProductionOrders", + "GroupName": "App.Mrp", + "Name": "App.Mrp.ProductionOrder.Create", + "ParentName": "App.Mrp.ProductionOrder", "DisplayName": "Create", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.ProductionOrders.Update", - "ParentName": "App.MRP.ProductionOrders", + "GroupName": "App.Mrp", + "Name": "App.Mrp.ProductionOrder.Update", + "ParentName": "App.Mrp.ProductionOrder", "DisplayName": "Update", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.ProductionOrders.Delete", - "ParentName": "App.MRP.ProductionOrders", + "GroupName": "App.Mrp", + "Name": "App.Mrp.ProductionOrder.Delete", + "ParentName": "App.Mrp.ProductionOrder", "DisplayName": "Delete", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.ProductionOrders.Export", - "ParentName": "App.MRP.ProductionOrders", + "GroupName": "App.Mrp", + "Name": "App.Mrp.ProductionOrder.Export", + "ParentName": "App.Mrp.ProductionOrder", "DisplayName": "Export", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.ProductionOrders.Import", - "ParentName": "App.MRP.ProductionOrders", + "GroupName": "App.Mrp", + "Name": "App.Mrp.ProductionOrder.Import", + "ParentName": "App.Mrp.ProductionOrder", "DisplayName": "Import", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.ProductionOrders.Activity", - "ParentName": "App.MRP.ProductionOrders", + "GroupName": "App.Mrp", + "Name": "App.Mrp.ProductionOrder.Activity", + "ParentName": "App.Mrp.ProductionOrder", "DisplayName": "Activity", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.WorkOrders", + "GroupName": "App.Mrp", + "Name": "App.Mrp.WorkOrder", "ParentName": null, - "DisplayName": "App.MRP.WorkOrders", + "DisplayName": "App.Mrp.WorkOrder", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.WorkOrders.Create", - "ParentName": "App.MRP.WorkOrders", + "GroupName": "App.Mrp", + "Name": "App.Mrp.WorkOrder.Create", + "ParentName": "App.Mrp.WorkOrder", "DisplayName": "Create", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.WorkOrders.Update", - "ParentName": "App.MRP.WorkOrders", + "GroupName": "App.Mrp", + "Name": "App.Mrp.WorkOrder.Update", + "ParentName": "App.Mrp.WorkOrder", "DisplayName": "Update", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.WorkOrders.Delete", - "ParentName": "App.MRP.WorkOrders", + "GroupName": "App.Mrp", + "Name": "App.Mrp.WorkOrder.Delete", + "ParentName": "App.Mrp.WorkOrder", "DisplayName": "Delete", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.WorkOrders.Export", - "ParentName": "App.MRP.WorkOrders", + "GroupName": "App.Mrp", + "Name": "App.Mrp.WorkOrder.Export", + "ParentName": "App.Mrp.WorkOrder", "DisplayName": "Export", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.WorkOrders.Import", - "ParentName": "App.MRP.WorkOrders", + "GroupName": "App.Mrp", + "Name": "App.Mrp.WorkOrder.Import", + "ParentName": "App.Mrp.WorkOrder", "DisplayName": "Import", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.WorkOrders.Activity", - "ParentName": "App.MRP.WorkOrders", + "GroupName": "App.Mrp", + "Name": "App.Mrp.WorkOrder.Activity", + "ParentName": "App.Mrp.WorkOrder", "DisplayName": "Activity", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.DemandPlanning", + "GroupName": "App.Mrp", + "Name": "App.Mrp.DemandPlanning", "ParentName": null, - "DisplayName": "App.MRP.DemandPlanning", + "DisplayName": "App.Mrp.DemandPlanning", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.DemandPlanning.Create", - "ParentName": "App.MRP.DemandPlanning", + "GroupName": "App.Mrp", + "Name": "App.Mrp.DemandPlanning.Create", + "ParentName": "App.Mrp.DemandPlanning", "DisplayName": "Create", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.DemandPlanning.Update", - "ParentName": "App.MRP.DemandPlanning", + "GroupName": "App.Mrp", + "Name": "App.Mrp.DemandPlanning.Update", + "ParentName": "App.Mrp.DemandPlanning", "DisplayName": "Update", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.DemandPlanning.Delete", - "ParentName": "App.MRP.DemandPlanning", + "GroupName": "App.Mrp", + "Name": "App.Mrp.DemandPlanning.Delete", + "ParentName": "App.Mrp.DemandPlanning", "DisplayName": "Delete", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.DemandPlanning.Export", - "ParentName": "App.MRP.DemandPlanning", + "GroupName": "App.Mrp", + "Name": "App.Mrp.DemandPlanning.Export", + "ParentName": "App.Mrp.DemandPlanning", "DisplayName": "Export", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.DemandPlanning.Import", - "ParentName": "App.MRP.DemandPlanning", + "GroupName": "App.Mrp", + "Name": "App.Mrp.DemandPlanning.Import", + "ParentName": "App.Mrp.DemandPlanning", "DisplayName": "Import", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.DemandPlanning.Activity", - "ParentName": "App.MRP.DemandPlanning", + "GroupName": "App.Mrp", + "Name": "App.Mrp.DemandPlanning.Activity", + "ParentName": "App.Mrp.DemandPlanning", "DisplayName": "Activity", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.MaterialRequirements", + "GroupName": "App.Mrp", + "Name": "App.Mrp.MaterialRequirement", "ParentName": null, - "DisplayName": "App.MRP.MaterialRequirements", + "DisplayName": "App.Mrp.MaterialRequirement", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.MaterialRequirements.Create", - "ParentName": "App.MRP.MaterialRequirements", + "GroupName": "App.Mrp", + "Name": "App.Mrp.MaterialRequirement.Create", + "ParentName": "App.Mrp.MaterialRequirement", "DisplayName": "Create", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.MaterialRequirements.Update", - "ParentName": "App.MRP.MaterialRequirements", + "GroupName": "App.Mrp", + "Name": "App.Mrp.MaterialRequirement.Update", + "ParentName": "App.Mrp.MaterialRequirement", "DisplayName": "Update", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.MaterialRequirements.Delete", - "ParentName": "App.MRP.MaterialRequirements", + "GroupName": "App.Mrp", + "Name": "App.Mrp.MaterialRequirement.Delete", + "ParentName": "App.Mrp.MaterialRequirement", "DisplayName": "Delete", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.MaterialRequirements.Export", - "ParentName": "App.MRP.MaterialRequirements", + "GroupName": "App.Mrp", + "Name": "App.Mrp.MaterialRequirement.Export", + "ParentName": "App.Mrp.MaterialRequirement", "DisplayName": "Export", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.MaterialRequirements.Import", - "ParentName": "App.MRP.MaterialRequirements", + "GroupName": "App.Mrp", + "Name": "App.Mrp.MaterialRequirement.Import", + "ParentName": "App.Mrp.MaterialRequirement", "DisplayName": "Import", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.MaterialRequirements.Activity", - "ParentName": "App.MRP.MaterialRequirements", + "GroupName": "App.Mrp", + "Name": "App.Mrp.MaterialRequirement.Activity", + "ParentName": "App.Mrp.MaterialRequirement", "DisplayName": "Activity", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.PlanningGantt", + "GroupName": "App.Mrp", + "Name": "App.Mrp.PlanningGantt", "ParentName": null, - "DisplayName": "App.MRP.PlanningGantt", + "DisplayName": "App.Mrp.PlanningGantt", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.PlanningGantt.Create", - "ParentName": "App.MRP.PlanningGantt", + "GroupName": "App.Mrp", + "Name": "App.Mrp.PlanningGantt.Create", + "ParentName": "App.Mrp.PlanningGantt", "DisplayName": "Create", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.PlanningGantt.Update", - "ParentName": "App.MRP.PlanningGantt", + "GroupName": "App.Mrp", + "Name": "App.Mrp.PlanningGantt.Update", + "ParentName": "App.Mrp.PlanningGantt", "DisplayName": "Update", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.PlanningGantt.Delete", - "ParentName": "App.MRP.PlanningGantt", + "GroupName": "App.Mrp", + "Name": "App.Mrp.PlanningGantt.Delete", + "ParentName": "App.Mrp.PlanningGantt", "DisplayName": "Delete", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.PlanningGantt.Export", - "ParentName": "App.MRP.PlanningGantt", + "GroupName": "App.Mrp", + "Name": "App.Mrp.PlanningGantt.Export", + "ParentName": "App.Mrp.PlanningGantt", "DisplayName": "Export", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.PlanningGantt.Import", - "ParentName": "App.MRP.PlanningGantt", + "GroupName": "App.Mrp", + "Name": "App.Mrp.PlanningGantt.Import", + "ParentName": "App.Mrp.PlanningGantt", "DisplayName": "Import", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { - "GroupName": "App.MRP", - "Name": "App.MRP.PlanningGantt.Activity", - "ParentName": "App.MRP.PlanningGantt", + "GroupName": "App.Mrp", + "Name": "App.Mrp.PlanningGantt.Activity", + "ParentName": "App.Mrp.PlanningGantt", "DisplayName": "Activity", "IsEnabled": true, "MultiTenancySide": 3, @@ -25708,17 +25708,17 @@ }, { "GroupName": "App.Accounting", - "Name": "App.Accounting.CurrentAccounts", + "Name": "App.Accounting.CurrentAccount", "ParentName": null, - "DisplayName": "App.Accounting.CurrentAccounts", + "DisplayName": "App.Accounting.CurrentAccount", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { "GroupName": "App.Accounting", - "Name": "App.Accounting.CurrentAccounts.Create", - "ParentName": "App.Accounting.CurrentAccounts", + "Name": "App.Accounting.CurrentAccount.Create", + "ParentName": "App.Accounting.CurrentAccount", "DisplayName": "Create", "IsEnabled": true, "MultiTenancySide": 3, @@ -25726,8 +25726,8 @@ }, { "GroupName": "App.Accounting", - "Name": "App.Accounting.CurrentAccounts.Update", - "ParentName": "App.Accounting.CurrentAccounts", + "Name": "App.Accounting.CurrentAccount.Update", + "ParentName": "App.Accounting.CurrentAccount", "DisplayName": "Update", "IsEnabled": true, "MultiTenancySide": 3, @@ -25735,8 +25735,8 @@ }, { "GroupName": "App.Accounting", - "Name": "App.Accounting.CurrentAccounts.Delete", - "ParentName": "App.Accounting.CurrentAccounts", + "Name": "App.Accounting.CurrentAccount.Delete", + "ParentName": "App.Accounting.CurrentAccount", "DisplayName": "Delete", "IsEnabled": true, "MultiTenancySide": 3, @@ -25744,8 +25744,8 @@ }, { "GroupName": "App.Accounting", - "Name": "App.Accounting.CurrentAccounts.Export", - "ParentName": "App.Accounting.CurrentAccounts", + "Name": "App.Accounting.CurrentAccount.Export", + "ParentName": "App.Accounting.CurrentAccount", "DisplayName": "Export", "IsEnabled": true, "MultiTenancySide": 3, @@ -25753,8 +25753,8 @@ }, { "GroupName": "App.Accounting", - "Name": "App.Accounting.CurrentAccounts.Import", - "ParentName": "App.Accounting.CurrentAccounts", + "Name": "App.Accounting.CurrentAccount.Import", + "ParentName": "App.Accounting.CurrentAccount", "DisplayName": "Import", "IsEnabled": true, "MultiTenancySide": 3, @@ -25762,8 +25762,8 @@ }, { "GroupName": "App.Accounting", - "Name": "App.Accounting.CurrentAccounts.Activity", - "ParentName": "App.Accounting.CurrentAccounts", + "Name": "App.Accounting.CurrentAccount.Activity", + "ParentName": "App.Accounting.CurrentAccount", "DisplayName": "Activity", "IsEnabled": true, "MultiTenancySide": 3, @@ -25771,17 +25771,17 @@ }, { "GroupName": "App.Accounting", - "Name": "App.Accounting.Waybills", + "Name": "App.Accounting.Waybill", "ParentName": null, - "DisplayName": "App.Accounting.Waybills", + "DisplayName": "App.Accounting.Waybill", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { "GroupName": "App.Accounting", - "Name": "App.Accounting.Waybills.Create", - "ParentName": "App.Accounting.Waybills", + "Name": "App.Accounting.Waybill.Create", + "ParentName": "App.Accounting.Waybill", "DisplayName": "Create", "IsEnabled": true, "MultiTenancySide": 3, @@ -25789,8 +25789,8 @@ }, { "GroupName": "App.Accounting", - "Name": "App.Accounting.Waybills.Update", - "ParentName": "App.Accounting.Waybills", + "Name": "App.Accounting.Waybill.Update", + "ParentName": "App.Accounting.Waybill", "DisplayName": "Update", "IsEnabled": true, "MultiTenancySide": 3, @@ -25798,8 +25798,8 @@ }, { "GroupName": "App.Accounting", - "Name": "App.Accounting.Waybills.Delete", - "ParentName": "App.Accounting.Waybills", + "Name": "App.Accounting.Waybill.Delete", + "ParentName": "App.Accounting.Waybill", "DisplayName": "Delete", "IsEnabled": true, "MultiTenancySide": 3, @@ -25807,8 +25807,8 @@ }, { "GroupName": "App.Accounting", - "Name": "App.Accounting.Waybills.Export", - "ParentName": "App.Accounting.Waybills", + "Name": "App.Accounting.Waybill.Export", + "ParentName": "App.Accounting.Waybill", "DisplayName": "Export", "IsEnabled": true, "MultiTenancySide": 3, @@ -25816,8 +25816,8 @@ }, { "GroupName": "App.Accounting", - "Name": "App.Accounting.Waybills.Import", - "ParentName": "App.Accounting.Waybills", + "Name": "App.Accounting.Waybill.Import", + "ParentName": "App.Accounting.Waybill", "DisplayName": "Import", "IsEnabled": true, "MultiTenancySide": 3, @@ -25825,8 +25825,8 @@ }, { "GroupName": "App.Accounting", - "Name": "App.Accounting.Waybills.Activity", - "ParentName": "App.Accounting.Waybills", + "Name": "App.Accounting.Waybill.Activity", + "ParentName": "App.Accounting.Waybill", "DisplayName": "Activity", "IsEnabled": true, "MultiTenancySide": 3, @@ -25834,17 +25834,17 @@ }, { "GroupName": "App.Accounting", - "Name": "App.Accounting.Invoices", + "Name": "App.Accounting.Invoice", "ParentName": null, - "DisplayName": "App.Accounting.Invoices", + "DisplayName": "App.Accounting.Invoice", "IsEnabled": true, "MultiTenancySide": 3, "MenuGroup": "Erp" }, { "GroupName": "App.Accounting", - "Name": "App.Accounting.Invoices.Create", - "ParentName": "App.Accounting.Invoices", + "Name": "App.Accounting.Invoice.Create", + "ParentName": "App.Accounting.Invoice", "DisplayName": "Create", "IsEnabled": true, "MultiTenancySide": 3, @@ -25852,8 +25852,8 @@ }, { "GroupName": "App.Accounting", - "Name": "App.Accounting.Invoices.Update", - "ParentName": "App.Accounting.Invoices", + "Name": "App.Accounting.Invoice.Update", + "ParentName": "App.Accounting.Invoice", "DisplayName": "Update", "IsEnabled": true, "MultiTenancySide": 3, @@ -25861,8 +25861,8 @@ }, { "GroupName": "App.Accounting", - "Name": "App.Accounting.Invoices.Delete", - "ParentName": "App.Accounting.Invoices", + "Name": "App.Accounting.Invoice.Delete", + "ParentName": "App.Accounting.Invoice", "DisplayName": "Delete", "IsEnabled": true, "MultiTenancySide": 3, @@ -25870,8 +25870,8 @@ }, { "GroupName": "App.Accounting", - "Name": "App.Accounting.Invoices.Export", - "ParentName": "App.Accounting.Invoices", + "Name": "App.Accounting.Invoice.Export", + "ParentName": "App.Accounting.Invoice", "DisplayName": "Export", "IsEnabled": true, "MultiTenancySide": 3, @@ -25879,8 +25879,8 @@ }, { "GroupName": "App.Accounting", - "Name": "App.Accounting.Invoices.Import", - "ParentName": "App.Accounting.Invoices", + "Name": "App.Accounting.Invoice.Import", + "ParentName": "App.Accounting.Invoice", "DisplayName": "Import", "IsEnabled": true, "MultiTenancySide": 3, @@ -25888,8 +25888,8 @@ }, { "GroupName": "App.Accounting", - "Name": "App.Accounting.Invoices.Activity", - "ParentName": "App.Accounting.Invoices", + "Name": "App.Accounting.Invoice.Activity", + "ParentName": "App.Accounting.Invoice", "DisplayName": "Activity", "IsEnabled": true, "MultiTenancySide": 3, diff --git a/api/src/Kurs.Platform.DbMigrator/Seeds/ListFormsSeeder.cs b/api/src/Kurs.Platform.DbMigrator/Seeds/ListFormsSeeder.cs index d239f81c..26004199 100644 --- a/api/src/Kurs.Platform.DbMigrator/Seeds/ListFormsSeeder.cs +++ b/api/src/Kurs.Platform.DbMigrator/Seeds/ListFormsSeeder.cs @@ -31461,6 +31461,1892 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency } #endregion + //Hr + #region EmploymentType + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == ListFormCodes.Lists.EmploymentType)) + { + var listFormEmploymentType = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + IsSubForm = true, + LayoutJson = JsonSerializer.Serialize(new LayoutDto() + { + Grid = true, + Card = true, + Pivot = true, + Chart = true, + DefaultLayout = "grid", + CardLayoutColumn = 3 + }), + CultureName = LanguageCodes.En, + ListFormCode = ListFormCodes.Lists.EmploymentType, + Name = AppCodes.Hr.EmploymentType, + Title = AppCodes.Hr.EmploymentType, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = AppCodes.Hr.EmploymentType, + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.EmploymentType)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = "\"IsDeleted\" = 'false'", + SortMode = GridOptions.SortModeSingle, + FilterRowJson = JsonSerializer.Serialize(new GridFilterRowDto { Visible = true }), + HeaderFilterJson = JsonSerializer.Serialize(new { Visible = true }), + SearchPanelJson = JsonSerializer.Serialize(new { Visible = true }), + GroupPanelJson = JsonSerializer.Serialize(new { Visible = true }), + SelectionJson = JsonSerializer.Serialize(new SelectionDto + { + Mode = GridOptions.SelectionModeSingle, + AllowSelectAll = false + }), + ColumnOptionJson = JsonSerializer.Serialize(new + { + ColumnFixingEnabled = true, + ColumnAutoWidth = true, + ColumnChooserEnabled = true, + AllowColumnResizing = true, + AllowColumnReordering = true, + ColumnResizingMode = "widget", + }), + PermissionJson = JsonSerializer.Serialize(new PermissionCrudDto + { + C = AppCodes.Hr.EmploymentType + ".Create", + R = AppCodes.Hr.EmploymentType, + U = AppCodes.Hr.EmploymentType + ".Update", + D = AppCodes.Hr.EmploymentType + ".Delete", + E = AppCodes.Hr.EmploymentType + ".Export", + I = AppCodes.Hr.EmploymentType + ".Import", + A = AppCodes.Hr.EmploymentType + ".Activity", + }), + DeleteCommand = $"UPDATE \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.EmploymentType))}\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id", + DeleteFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { + FieldName = "DeleterId", + FieldDbType = DbType.Guid, + Value = "@USERID", + CustomValueType = FieldCustomValueTypeEnum.CustomKey }, + new() { + FieldName = "Id", + FieldDbType = DbType.Guid, + Value = "@ID", + CustomValueType = FieldCustomValueTypeEnum.CustomKey } + }), + PagerOptionJson = JsonSerializer.Serialize(new GridPagerOptionDto + { + Visible = true, + AllowedPageSizes = "10,20,50,100", + ShowPageSizeSelector = true, + ShowNavigationButtons = true, + ShowInfo = false, + InfoText = "Page {0} of {1} ({2} items)", + DisplayMode = GridColumnOptions.PagerDisplayModeAdaptive, + ScrollingMode = GridColumnOptions.ScrollingModeStandard, + LoadPanelEnabled = "auto", + LoadPanelText = "Loading..." + }), + EditingOptionJson = JsonSerializer.Serialize(new GridEditingDto + { + Popup = new GridEditingPopupDto() + { + Title = "Employment Type Form", + Width = 500, + Height = 200 + }, + AllowDeleting = true, + AllowAdding = true, + AllowUpdating = true, + SendOnlyChangedFormValuesUpdate = false, + }), + InsertFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { + FieldName = "CreationTime", + FieldDbType = DbType.DateTime, + Value = "@NOW", + CustomValueType = FieldCustomValueTypeEnum.CustomKey }, + new() { + FieldName = "CreatorId", + FieldDbType = DbType.Guid, + Value = "@USERID", + CustomValueType = FieldCustomValueTypeEnum.CustomKey }, + new() { + FieldName = "IsDeleted", + FieldDbType = DbType.Boolean, + Value = "false", + CustomValueType = FieldCustomValueTypeEnum.Value } + }), + EditingFormJson = JsonSerializer.Serialize(new List() + { + new() { + Order=1, ColCount=1, ColSpan=2, ItemType="group", Items = + [ + new EditingFormItemDto { Order = 1, DataField="Name", ColSpan = 2, IsRequired =true, EditorType2 = EditorTypes.dxTextBox }, + ] + } + }), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { + FieldName = "IsActive", + FieldDbType = DbType.Boolean, + Value = "true", + CustomValueType = FieldCustomValueTypeEnum.Value } + }), + CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] { + new CommandColumnDto() { + Hint = "Personel Listesi", + Text ="Personel Listesi", + UrlTarget="_blank", + AuthName = AppCodes.Hr.Employee, + Url="/admin/list/list-employees/@Id" + }, + }), + } + ); + + #region Employment Type Fields + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listFormEmploymentType.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + Width = 100, + ListOrderNo = 1, + Visible = false, + IsActive = true, + IsDeleted = false, + SortIndex = 0, + ValidationRuleJson = JsonSerializer.Serialize(new ValidationRuleDto[] { + new ValidationRuleDto() { Type = Enum.GetName(UiColumnValidationRuleTypeEnum.required) } + }), + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.EmploymentType + ".Create", + R = AppCodes.Hr.EmploymentType, + U = AppCodes.Hr.EmploymentType + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + new() { + ListFormCode = listFormEmploymentType.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + Width = 200, + ListOrderNo = 3, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ValidationRuleJson = JsonSerializer.Serialize(new ValidationRuleDto[] { + new ValidationRuleDto() { Type = Enum.GetName(UiColumnValidationRuleTypeEnum.required) } + }), + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.EmploymentType + ".Create", + R = AppCodes.Hr.EmploymentType, + U = AppCodes.Hr.EmploymentType + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + ]); + #endregion + } + #endregion + + #region Badge + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == ListFormCodes.Lists.Badge)) + { + var listFormBadge = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + IsSubForm = true, + LayoutJson = JsonSerializer.Serialize(new LayoutDto() + { + Grid = true, + Card = true, + Pivot = true, + Chart = true, + DefaultLayout = "grid", + CardLayoutColumn = 3 + }), + CultureName = LanguageCodes.En, + ListFormCode = ListFormCodes.Lists.Badge, + Name = AppCodes.Hr.Badge, + Title = AppCodes.Hr.Badge, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = AppCodes.Hr.Badge, + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Badge)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = "\"IsDeleted\" = 'false'", + SortMode = GridOptions.SortModeSingle, + FilterRowJson = JsonSerializer.Serialize(new GridFilterRowDto { Visible = true }), + HeaderFilterJson = JsonSerializer.Serialize(new { Visible = true }), + SearchPanelJson = JsonSerializer.Serialize(new { Visible = true }), + GroupPanelJson = JsonSerializer.Serialize(new { Visible = true }), + SelectionJson = JsonSerializer.Serialize(new SelectionDto + { + Mode = GridOptions.SelectionModeSingle, + AllowSelectAll = false + }), + ColumnOptionJson = JsonSerializer.Serialize(new + { + ColumnFixingEnabled = true, + ColumnAutoWidth = true, + ColumnChooserEnabled = true, + AllowColumnResizing = true, + AllowColumnReordering = true, + ColumnResizingMode = "widget", + }), + PermissionJson = JsonSerializer.Serialize(new PermissionCrudDto + { + C = AppCodes.Hr.Badge + ".Create", + R = AppCodes.Hr.Badge, + U = AppCodes.Hr.Badge + ".Update", + D = AppCodes.Hr.Badge + ".Delete", + E = AppCodes.Hr.Badge + ".Export", + I = AppCodes.Hr.Badge + ".Import", + A = AppCodes.Hr.Badge + ".Activity", + }), + DeleteCommand = $"UPDATE \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.Badge))}\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id", + DeleteFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { + FieldName = "DeleterId", + FieldDbType = DbType.Guid, + Value = "@USERID", + CustomValueType = FieldCustomValueTypeEnum.CustomKey }, + new() { + FieldName = "Id", + FieldDbType = DbType.Guid, + Value = "@ID", + CustomValueType = FieldCustomValueTypeEnum.CustomKey } + }), + PagerOptionJson = JsonSerializer.Serialize(new GridPagerOptionDto + { + Visible = true, + AllowedPageSizes = "10,20,50,100", + ShowPageSizeSelector = true, + ShowNavigationButtons = true, + ShowInfo = false, + InfoText = "Page {0} of {1} ({2} items)", + DisplayMode = GridColumnOptions.PagerDisplayModeAdaptive, + ScrollingMode = GridColumnOptions.ScrollingModeStandard, + LoadPanelEnabled = "auto", + LoadPanelText = "Loading..." + }), + EditingOptionJson = JsonSerializer.Serialize(new GridEditingDto + { + Popup = new GridEditingPopupDto() + { + Title = "Badge Form", + Width = 500, + Height = 520 + }, + AllowDeleting = true, + AllowAdding = true, + AllowUpdating = true, + SendOnlyChangedFormValuesUpdate = false, + }), + InsertFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { + FieldName = "CreationTime", + FieldDbType = DbType.DateTime, + Value = "@NOW", + CustomValueType = FieldCustomValueTypeEnum.CustomKey }, + new() { + FieldName = "CreatorId", + FieldDbType = DbType.Guid, + Value = "@USERID", + CustomValueType = FieldCustomValueTypeEnum.CustomKey }, + new() { + FieldName = "IsDeleted", + FieldDbType = DbType.Boolean, + Value = "false", + CustomValueType = FieldCustomValueTypeEnum.Value } + }), + EditingFormJson = JsonSerializer.Serialize(new List() + { + new() { + Order=1, ColCount=1, ColSpan=2, ItemType="group", Items = + [ + new EditingFormItemDto { Order = 1, DataField="Code", ColSpan = 2, IsRequired =true, EditorType2 = EditorTypes.dxTextBox }, + new EditingFormItemDto { Order = 2, DataField="Name", ColSpan = 2, IsRequired =true, EditorType2 = EditorTypes.dxTextBox }, + new EditingFormItemDto { Order = 3, DataField="Description", ColSpan = 2, EditorType2 = EditorTypes.dxTextArea }, + new EditingFormItemDto { Order = 4, DataField="Icon", ColSpan = 2, EditorType2 = EditorTypes.dxSelectBox }, + new EditingFormItemDto { Order = 5, DataField="Color", ColSpan = 2, EditorType2 = EditorTypes.dxColorBox }, + new EditingFormItemDto { Order = 6, DataField="BackgroundColor", ColSpan = 2, EditorType2 = EditorTypes.dxColorBox }, + new EditingFormItemDto { Order = 7, DataField="Category", ColSpan = 2, IsRequired =true, EditorType2 = EditorTypes.dxSelectBox }, + new EditingFormItemDto { Order = 8, DataField="Criteria", ColSpan = 2, EditorType2 = EditorTypes.dxTextArea }, + new EditingFormItemDto { Order = 9, DataField="Points", ColSpan = 2, EditorType2 = EditorTypes.dxNumberBox }, + new EditingFormItemDto { Order = 10, DataField="Rarity", ColSpan = 2, EditorType2 = EditorTypes.dxSelectBox }, + new EditingFormItemDto { Order = 11, DataField="IsActive", ColSpan = 2, EditorType2 = EditorTypes.dxCheckBox }, + ] + } + }), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { + FieldName = "IsActive", + FieldDbType = DbType.Boolean, + Value = "true", + CustomValueType = FieldCustomValueTypeEnum.Value } + }), + } + ); + + #region Badge Fields + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listFormBadge.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + Width = 100, + ListOrderNo = 1, + Visible = false, + IsActive = true, + IsDeleted = false, + SortIndex = 0, + ValidationRuleJson = JsonSerializer.Serialize(new ValidationRuleDto[] { + new ValidationRuleDto() { Type = Enum.GetName(UiColumnValidationRuleTypeEnum.required) } + }), + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.Badge + ".Create", + R = AppCodes.Hr.Badge, + U = AppCodes.Hr.Badge + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + new() { + ListFormCode = listFormBadge.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Code", + Width = 100, + ListOrderNo = 3, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ValidationRuleJson = JsonSerializer.Serialize(new ValidationRuleDto[] { + new ValidationRuleDto() { Type = Enum.GetName(UiColumnValidationRuleTypeEnum.required) } + }), + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.Badge + ".Create", + R = AppCodes.Hr.Badge, + U = AppCodes.Hr.Badge + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + new() { + ListFormCode = listFormBadge.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + Width = 100, + ListOrderNo = 3, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ValidationRuleJson = JsonSerializer.Serialize(new ValidationRuleDto[] { + new ValidationRuleDto() { Type = Enum.GetName(UiColumnValidationRuleTypeEnum.required) } + }), + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.Badge + ".Create", + R = AppCodes.Hr.Badge, + U = AppCodes.Hr.Badge + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + new() { + ListFormCode = listFormBadge.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Description", + Width = 200, + ListOrderNo = 4, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.Badge + ".Create", + R = AppCodes.Hr.Badge, + U = AppCodes.Hr.Badge + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + new() { + ListFormCode = listFormBadge.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Icon", + Width = 100, + ListOrderNo = 5, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new () { Key= "⭐", Name= "⭐ Yıldız" }, + new () { Key= "🏆", Name= "🏆 Kupa" }, + new () { Key= "🥇", Name= "🥇 Altın Madalya" }, + new () { Key= "🥈", Name= "🥈 Gümüş Madalya" }, + new () { Key= "🥉", Name= "🥉 Bronz Madalya" }, + new () { Key= "👑", Name= "👑 Taç" }, + new () { Key= "💎", Name= "💎 Elmas" }, + new () { Key= "💡", Name= "💡 Ampul" }, + new () { Key= "🔥", Name= "🔥 Ateş" }, + new () { Key= "⚡", Name= "⚡ Şimşek" }, + new () { Key= "🎯", Name= "🎯 Hedef" }, + new () { Key= "📈", Name= "📈 Grafik" }, + new () { Key= "🚀", Name= "🚀 Roket" }, + new () { Key= "💪", Name= "💪 Güç" }, + new () { Key= "❤️", Name= "❤️ Kalp" } + }), + }), + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.Badge + ".Create", + R = AppCodes.Hr.Badge, + U = AppCodes.Hr.Badge + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + new() { + ListFormCode = listFormBadge.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Color", + Width = 100, + ListOrderNo = 6, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.Badge + ".Create", + R = AppCodes.Hr.Badge, + U = AppCodes.Hr.Badge + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + new() { + ListFormCode = listFormBadge.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "BackgroundColor", + Width = 100, + ListOrderNo = 7, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.Badge + ".Create", + R = AppCodes.Hr.Badge, + U = AppCodes.Hr.Badge + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + new() { + ListFormCode = listFormBadge.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Category", + Width = 100, + ListOrderNo = 8, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new () { Key= "Performance", Name= "PERFORMANCE" }, + new () { Key= "Leadership", Name= "LEADERSHIP" }, + new () { Key= "Innovation", Name= "INNOVATION" }, + new () { Key= "Teamwork", Name= "TEAMWORK" }, + new () { Key= "Customer", Name= "CUSTOMER" }, + new () { Key= "Safety", Name= "SAFETY" }, + new () { Key= "Attendance", Name= "ATTENDANCE" }, + new () { Key= "Training", Name= "TRAINING" }, + new () { Key= "Project", Name= "PROJECT" }, + new () { Key= "Special", Name= "SPECIAL" }, + }), + }), + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.Badge + ".Create", + R = AppCodes.Hr.Badge, + U = AppCodes.Hr.Badge + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + new() { + ListFormCode = listFormBadge.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Criteria", + Width = 100, + ListOrderNo = 8, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.Badge + ".Create", + R = AppCodes.Hr.Badge, + U = AppCodes.Hr.Badge + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + new() { + ListFormCode = listFormBadge.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Decimal, + FieldName = "Points", + Width = 100, + ListOrderNo = 9, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.Badge + ".Create", + R = AppCodes.Hr.Badge, + U = AppCodes.Hr.Badge + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + new() { + ListFormCode = listFormBadge.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Rarity", + Width = 100, + ListOrderNo = 10, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new () { Key= "Common", Name= "COMMON" }, + new () { Key= "Uncommon", Name= "UNCOMMON" }, + new () { Key= "Rare", Name= "RARE" }, + new () { Key= "Epic", Name= "EPIC" }, + new () { Key= "Legendary", Name= "LEGENDARY" }, + }), + }), + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.Badge + ".Create", + R = AppCodes.Hr.Badge, + U = AppCodes.Hr.Badge + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + new() { + ListFormCode = listFormBadge.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsActive", + Width = 100, + ListOrderNo = 11, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.Badge + ".Create", + R = AppCodes.Hr.Badge, + U = AppCodes.Hr.Badge + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + ]); + #endregion + } + #endregion + + #region JobPosition + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == ListFormCodes.Lists.JobPosition)) + { + var listFormJobPosition = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + IsSubForm = true, + LayoutJson = JsonSerializer.Serialize(new LayoutDto() + { + Grid = true, + Card = true, + Pivot = true, + Chart = true, + DefaultLayout = "grid", + CardLayoutColumn = 3 + }), + CultureName = LanguageCodes.En, + ListFormCode = ListFormCodes.Lists.JobPosition, + Name = AppCodes.Hr.JobPosition, + Title = AppCodes.Hr.JobPosition, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = AppCodes.Hr.JobPosition, + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.JobPosition)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = "\"IsDeleted\" = 'false'", + SortMode = GridOptions.SortModeSingle, + FilterRowJson = JsonSerializer.Serialize(new GridFilterRowDto { Visible = true }), + HeaderFilterJson = JsonSerializer.Serialize(new { Visible = true }), + SearchPanelJson = JsonSerializer.Serialize(new { Visible = true }), + GroupPanelJson = JsonSerializer.Serialize(new { Visible = true }), + SelectionJson = JsonSerializer.Serialize(new SelectionDto + { + Mode = GridOptions.SelectionModeSingle, + AllowSelectAll = false + }), + ColumnOptionJson = JsonSerializer.Serialize(new + { + ColumnFixingEnabled = true, + ColumnAutoWidth = true, + ColumnChooserEnabled = true, + AllowColumnResizing = true, + AllowColumnReordering = true, + ColumnResizingMode = "widget", + }), + PermissionJson = JsonSerializer.Serialize(new PermissionCrudDto + { + C = AppCodes.Hr.JobPosition + ".Create", + R = AppCodes.Hr.JobPosition, + U = AppCodes.Hr.JobPosition + ".Update", + D = AppCodes.Hr.JobPosition + ".Delete", + E = AppCodes.Hr.JobPosition + ".Export", + I = AppCodes.Hr.JobPosition + ".Import", + A = AppCodes.Hr.JobPosition + ".Activity", + }), + DeleteCommand = $"UPDATE \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.JobPosition))}\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id", + DeleteFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { + FieldName = "DeleterId", + FieldDbType = DbType.Guid, + Value = "@USERID", + CustomValueType = FieldCustomValueTypeEnum.CustomKey }, + new() { + FieldName = "Id", + FieldDbType = DbType.Guid, + Value = "@ID", + CustomValueType = FieldCustomValueTypeEnum.CustomKey } + }), + PagerOptionJson = JsonSerializer.Serialize(new GridPagerOptionDto + { + Visible = true, + AllowedPageSizes = "10,20,50,100", + ShowPageSizeSelector = true, + ShowNavigationButtons = true, + ShowInfo = false, + InfoText = "Page {0} of {1} ({2} items)", + DisplayMode = GridColumnOptions.PagerDisplayModeAdaptive, + ScrollingMode = GridColumnOptions.ScrollingModeStandard, + LoadPanelEnabled = "auto", + LoadPanelText = "Loading..." + }), + EditingOptionJson = JsonSerializer.Serialize(new GridEditingDto + { + Popup = new GridEditingPopupDto() + { + Title = "Job Position Form", + Width = 500, + Height = 600 + }, + AllowDeleting = true, + AllowAdding = true, + AllowUpdating = true, + SendOnlyChangedFormValuesUpdate = false, + }), + InsertFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { + FieldName = "CreationTime", + FieldDbType = DbType.DateTime, + Value = "@NOW", + CustomValueType = FieldCustomValueTypeEnum.CustomKey }, + new() { + FieldName = "CreatorId", + FieldDbType = DbType.Guid, + Value = "@USERID", + CustomValueType = FieldCustomValueTypeEnum.CustomKey }, + new() { + FieldName = "IsDeleted", + FieldDbType = DbType.Boolean, + Value = "false", + CustomValueType = FieldCustomValueTypeEnum.Value } + }), + EditingFormJson = JsonSerializer.Serialize(new List() + { + new() { + Order=1, ColCount=1, ColSpan=2, ItemType="group", Items = + [ + new EditingFormItemDto { Order = 1, DataField="Code", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxTextBox }, + new EditingFormItemDto { Order = 2, DataField="Name", ColSpan = 2, IsRequired =true, EditorType2 = EditorTypes.dxTextBox }, + new EditingFormItemDto { Order = 3, DataField="Description", ColSpan = 2, EditorType2 = EditorTypes.dxTextArea }, + new EditingFormItemDto { Order = 4, DataField="DepartmentId", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox }, + new EditingFormItemDto { Order = 5, DataField="Level", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox }, + new EditingFormItemDto { Order = 6, DataField="MinSalary", ColSpan = 2, EditorType2 = EditorTypes.dxNumberBox }, + new EditingFormItemDto { Order = 7, DataField="MaxSalary", ColSpan = 2, EditorType2 = EditorTypes.dxNumberBox }, + new EditingFormItemDto { Order = 8, DataField="CurrencyId", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox }, + new EditingFormItemDto { Order = 9, DataField="RequiredSkills", ColSpan = 2, EditorType2 = EditorTypes.dxTextArea }, + new EditingFormItemDto { Order = 10, DataField="Responsibilities", ColSpan = 2, EditorType2 = EditorTypes.dxTextArea }, + new EditingFormItemDto { Order = 11, DataField="Qualifications", ColSpan = 2, EditorType2 = EditorTypes.dxTextArea }, + new EditingFormItemDto { Order = 12, DataField="IsActive", ColSpan = 2, EditorType2 = EditorTypes.dxCheckBox} + ] + } + }), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { + FieldName = "IsActive", + FieldDbType = DbType.Boolean, + Value = "true", + CustomValueType = FieldCustomValueTypeEnum.Value } + }), + CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] { + new CommandColumnDto() { + Hint = "Personel Listesi", + Text ="Personel Listesi", + UrlTarget="_blank", + AuthName = AppCodes.Hr.Employee, + Url="/admin/list/list-employees/@Id" + }, + }), + } + ); + + #region Job Position Fields + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listFormJobPosition.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + Width = 100, + ListOrderNo = 1, + Visible = false, + IsActive = true, + IsDeleted = false, + SortIndex = 0, + ValidationRuleJson = JsonSerializer.Serialize(new ValidationRuleDto[] { + new ValidationRuleDto() { Type = Enum.GetName(UiColumnValidationRuleTypeEnum.required) } + }), + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.JobPosition + ".Create", + R = AppCodes.Hr.JobPosition, + U = AppCodes.Hr.JobPosition + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + new() { + ListFormCode = listFormJobPosition.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Code", + Width = 100, + ListOrderNo = 2, + Visible = true, + IsActive = true, + IsDeleted = false, + SortIndex = 0, + ValidationRuleJson = JsonSerializer.Serialize(new ValidationRuleDto[] { + new ValidationRuleDto() { Type = Enum.GetName(UiColumnValidationRuleTypeEnum.required) } + }), + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.JobPosition + ".Create", + R = AppCodes.Hr.JobPosition, + U = AppCodes.Hr.JobPosition + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + new() { + ListFormCode = listFormJobPosition.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + Width = 200, + ListOrderNo = 3, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ValidationRuleJson = JsonSerializer.Serialize(new ValidationRuleDto[] { + new ValidationRuleDto() { Type = Enum.GetName(UiColumnValidationRuleTypeEnum.required) } + }), + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.JobPosition + ".Create", + R = AppCodes.Hr.JobPosition, + U = AppCodes.Hr.JobPosition + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + new() { + ListFormCode = listFormJobPosition.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Description", + Width = 300, + ListOrderNo = 4, + Visible = true, + IsActive = true, + IsDeleted = false, + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.JobPosition + ".Create", + R = AppCodes.Hr.JobPosition, + U = AppCodes.Hr.JobPosition + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + new() { + ListFormCode = listFormJobPosition.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "DepartmentId", + Width = 200, + ListOrderNo = 5, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = LookUpQueryValues.DepartmentValues + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.JobPosition + ".Create", + R = AppCodes.Hr.JobPosition, + U = AppCodes.Hr.JobPosition + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + new() { + ListFormCode = listFormJobPosition.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Level", + Width = 100, + ListOrderNo = 6, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ValidationRuleJson = JsonSerializer.Serialize(new ValidationRuleDto[] { + new ValidationRuleDto() { Type = Enum.GetName(UiColumnValidationRuleTypeEnum.required) } + }), + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new () { Key= "Entry", Name= "ENTRY" }, + new () { Key= "Junior", Name= "JUNIOR" }, + new () { Key= "Mid", Name= "MID"}, + new () { Key= "Senior", Name= "SENIOR" }, + new () { Key= "Lead", Name= "LEAD" }, + new () { Key= "Manager", Name= "MANAGER" }, + new () { Key= "Director", Name= "DIRECTOR" }, + new () { Key= "Executive", Name= "EXECUTIVE" }, + }), + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.JobPosition + ".Create", + R = AppCodes.Hr.JobPosition, + U = AppCodes.Hr.JobPosition + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + new() { + ListFormCode = listFormJobPosition.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Decimal, + FieldName = "MinSalary", + Width = 200, + ListOrderNo = 7, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.JobPosition + ".Create", + R = AppCodes.Hr.JobPosition, + U = AppCodes.Hr.JobPosition + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + new() { + ListFormCode = listFormJobPosition.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Decimal, + FieldName = "MaxSalary", + Width = 100, + ListOrderNo = 8, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.JobPosition + ".Create", + R = AppCodes.Hr.JobPosition, + U = AppCodes.Hr.JobPosition + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + new() { + ListFormCode = listFormJobPosition.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "CurrencyId", + Width = 100, + ListOrderNo = 9, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = LookUpQueryValues.CurrencyValues + }), + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.JobPosition + ".Create", + R = AppCodes.Hr.JobPosition, + U = AppCodes.Hr.JobPosition + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + new() { + ListFormCode = listFormJobPosition.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "RequiredSkills", + Width = 100, + ListOrderNo = 10, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.JobPosition + ".Create", + R = AppCodes.Hr.JobPosition, + U = AppCodes.Hr.JobPosition + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + new() { + ListFormCode = listFormJobPosition.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Responsibilities", + Width = 100, + ListOrderNo = 11, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.JobPosition + ".Create", + R = AppCodes.Hr.JobPosition, + U = AppCodes.Hr.JobPosition + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + new() { + ListFormCode = listFormJobPosition.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Qualifications", + Width = 100, + ListOrderNo = 12, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.JobPosition + ".Create", + R = AppCodes.Hr.JobPosition, + U = AppCodes.Hr.JobPosition + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + new() { + ListFormCode = listFormJobPosition.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsActive", + Width = 100, + ListOrderNo = 13, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.JobPosition + ".Create", + R = AppCodes.Hr.JobPosition, + U = AppCodes.Hr.JobPosition + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + ]); + #endregion + } + #endregion + + #region Department + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == ListFormCodes.Lists.Department)) + { + var listFormDepartment = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + IsSubForm = true, + LayoutJson = JsonSerializer.Serialize(new LayoutDto() + { + Grid = true, + Card = true, + Pivot = true, + Chart = true, + DefaultLayout = "grid", + CardLayoutColumn = 3 + }), + CultureName = LanguageCodes.En, + ListFormCode = ListFormCodes.Lists.Department, + Name = AppCodes.Hr.Department, + Title = AppCodes.Hr.Department, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = AppCodes.Hr.Department, + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Department)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = "\"IsDeleted\" = 'false'", + SortMode = GridOptions.SortModeSingle, + FilterRowJson = JsonSerializer.Serialize(new GridFilterRowDto { Visible = true }), + HeaderFilterJson = JsonSerializer.Serialize(new { Visible = true }), + SearchPanelJson = JsonSerializer.Serialize(new { Visible = true }), + GroupPanelJson = JsonSerializer.Serialize(new { Visible = true }), + SelectionJson = JsonSerializer.Serialize(new SelectionDto + { + Mode = GridOptions.SelectionModeSingle, + AllowSelectAll = false + }), + ColumnOptionJson = JsonSerializer.Serialize(new + { + ColumnFixingEnabled = true, + ColumnAutoWidth = true, + ColumnChooserEnabled = true, + AllowColumnResizing = true, + AllowColumnReordering = true, + ColumnResizingMode = "widget", + }), + PermissionJson = JsonSerializer.Serialize(new PermissionCrudDto + { + C = AppCodes.Hr.Department + ".Create", + R = AppCodes.Hr.Department, + U = AppCodes.Hr.Department + ".Update", + D = AppCodes.Hr.Department + ".Delete", + E = AppCodes.Hr.Department + ".Export", + I = AppCodes.Hr.Department + ".Import", + A = AppCodes.Hr.Department + ".Activity", + }), + DeleteCommand = $"UPDATE \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.Department))}\" SET \"DeleterId\"=@DeleterId, \"DeletionTime\"=CURRENT_TIMESTAMP, \"IsDeleted\"='true' WHERE \"Id\"=@Id", + DeleteFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { + FieldName = "DeleterId", + FieldDbType = DbType.Guid, + Value = "@USERID", + CustomValueType = FieldCustomValueTypeEnum.CustomKey }, + new() { + FieldName = "Id", + FieldDbType = DbType.Guid, + Value = "@ID", + CustomValueType = FieldCustomValueTypeEnum.CustomKey } + }), + PagerOptionJson = JsonSerializer.Serialize(new GridPagerOptionDto + { + Visible = true, + AllowedPageSizes = "10,20,50,100", + ShowPageSizeSelector = true, + ShowNavigationButtons = true, + ShowInfo = false, + InfoText = "Page {0} of {1} ({2} items)", + DisplayMode = GridColumnOptions.PagerDisplayModeAdaptive, + ScrollingMode = GridColumnOptions.ScrollingModeStandard, + LoadPanelEnabled = "auto", + LoadPanelText = "Loading..." + }), + EditingOptionJson = JsonSerializer.Serialize(new GridEditingDto + { + Popup = new GridEditingPopupDto() + { + Title = "Department Form", + Width = 500, + Height = 520 + }, + AllowDeleting = true, + AllowAdding = true, + AllowUpdating = true, + SendOnlyChangedFormValuesUpdate = false, + }), + InsertFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { + FieldName = "CreationTime", + FieldDbType = DbType.DateTime, + Value = "@NOW", + CustomValueType = FieldCustomValueTypeEnum.CustomKey }, + new() { + FieldName = "CreatorId", + FieldDbType = DbType.Guid, + Value = "@USERID", + CustomValueType = FieldCustomValueTypeEnum.CustomKey }, + new() { + FieldName = "IsDeleted", + FieldDbType = DbType.Boolean, + Value = "false", + CustomValueType = FieldCustomValueTypeEnum.Value } + }), + EditingFormJson = JsonSerializer.Serialize(new List() + { + new() { + Order=1, ColCount=1, ColSpan=2, ItemType="group", Items = + [ + new EditingFormItemDto { Order = 1, DataField="Code", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxTextBox }, + new EditingFormItemDto { Order = 2, DataField="Name", ColSpan = 2, IsRequired =true, EditorType2 = EditorTypes.dxTextBox }, + new EditingFormItemDto { Order = 3, DataField="Description", ColSpan = 2, EditorType2 = EditorTypes.dxTextArea }, + new EditingFormItemDto { Order = 4, DataField="ParentDepartmentId", ColSpan = 2, EditorType2 = EditorTypes.dxSelectBox }, + new EditingFormItemDto { Order = 5, DataField="ManagerId", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox }, + new EditingFormItemDto { Order = 6, DataField="CostCenterId", ColSpan = 2, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox }, + new EditingFormItemDto { Order = 7, DataField="Budget", ColSpan = 2, EditorType2 = EditorTypes.dxNumberBox }, + new EditingFormItemDto { Order = 8, DataField="IsActive", ColSpan = 2, EditorType2 = EditorTypes.dxCheckBox} + ] + } + }), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { + FieldName = "IsActive", + FieldDbType = DbType.Boolean, + Value = "true", + CustomValueType = FieldCustomValueTypeEnum.Value } + }), + CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] { + new CommandColumnDto() { + Hint = "Personel Listesi", + Text ="Personel Listesi", + UrlTarget="_blank", + AuthName = AppCodes.Hr.Employee, + Url="/admin/list/list-employees/@Id" + }, + }), + } + ); + + #region Department Fields + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listFormDepartment.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "Id", + Width = 100, + ListOrderNo = 1, + Visible = false, + IsActive = true, + IsDeleted = false, + SortIndex = 0, + ValidationRuleJson = JsonSerializer.Serialize(new ValidationRuleDto[] { + new ValidationRuleDto() { Type = Enum.GetName(UiColumnValidationRuleTypeEnum.required) } + }), + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.Department + ".Create", + R = AppCodes.Hr.Department, + U = AppCodes.Hr.Department + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + new() { + ListFormCode = listFormDepartment.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Code", + Width = 100, + ListOrderNo = 2, + Visible = true, + IsActive = true, + IsDeleted = false, + SortIndex = 0, + ValidationRuleJson = JsonSerializer.Serialize(new ValidationRuleDto[] { + new ValidationRuleDto() { Type = Enum.GetName(UiColumnValidationRuleTypeEnum.required) } + }), + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.Department + ".Create", + R = AppCodes.Hr.Department, + U = AppCodes.Hr.Department + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + new() { + ListFormCode = listFormDepartment.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + Width = 200, + ListOrderNo = 3, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ValidationRuleJson = JsonSerializer.Serialize(new ValidationRuleDto[] { + new ValidationRuleDto() { Type = Enum.GetName(UiColumnValidationRuleTypeEnum.required) } + }), + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.Department + ".Create", + R = AppCodes.Hr.Department, + U = AppCodes.Hr.Department + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + new() { + ListFormCode = listFormDepartment.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Description", + Width = 300, + ListOrderNo = 4, + Visible = true, + IsActive = true, + IsDeleted = false, + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.Department + ".Create", + R = AppCodes.Hr.Department, + U = AppCodes.Hr.Department + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + new() { + ListFormCode = listFormDepartment.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "ParentDepartmentId", + Width = 200, + ListOrderNo = 5, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = LookUpQueryValues.DepartmentValues + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.Department + ".Create", + R = AppCodes.Hr.Department, + U = AppCodes.Hr.Department + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + new() { + ListFormCode = listFormDepartment.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "ManagerId", + Width = 200, + ListOrderNo = 6, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ValidationRuleJson = JsonSerializer.Serialize(new ValidationRuleDto[] { + new ValidationRuleDto() { Type = Enum.GetName(UiColumnValidationRuleTypeEnum.required) } + }), + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = LookUpQueryValues.BankValues + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.Department + ".Create", + R = AppCodes.Hr.Department, + U = AppCodes.Hr.Department + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + new() { + ListFormCode = listFormDepartment.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "CostCenterId", + Width = 200, + ListOrderNo = 7, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ValidationRuleJson = JsonSerializer.Serialize(new ValidationRuleDto[] { + new ValidationRuleDto() { Type = Enum.GetName(UiColumnValidationRuleTypeEnum.required) } + }), + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = LookUpQueryValues.BankValues + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.Department + ".Create", + R = AppCodes.Hr.Department, + U = AppCodes.Hr.Department + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + new() { + ListFormCode = listFormDepartment.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Decimal, + FieldName = "Budget", + Width = 100, + ListOrderNo = 8, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.Department + ".Create", + R = AppCodes.Hr.Department, + U = AppCodes.Hr.Department + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + new() { + ListFormCode = listFormDepartment.ListFormCode, + RoleId = null, + UserId = null, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsActive", + Width = 100, + ListOrderNo = 9, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ColumnCustomizationJson = JsonSerializer.Serialize(new ColumnCustomizationDto + { + AllowReordering = true, + }), + PermissionJson = JsonSerializer.Serialize(new ListFormFieldPermissionDto + { + C = AppCodes.Hr.Department + ".Create", + R = AppCodes.Hr.Department, + U = AppCodes.Hr.Department + ".Update", + E = true, + I = true, + Deny = false + }), + PivotSettingsJson = JsonSerializer.Serialize(new ListFormFieldPivotSettingsDto + { + IsPivot = true + }) + }, + ]); + #endregion + } + #endregion + + #endregion } } diff --git a/api/src/Kurs.Platform.Domain.Shared/Enums/LookUpQueryValues.cs b/api/src/Kurs.Platform.Domain.Shared/Enums/LookUpQueryValues.cs index d508b901..33f25319 100644 --- a/api/src/Kurs.Platform.Domain.Shared/Enums/LookUpQueryValues.cs +++ b/api/src/Kurs.Platform.Domain.Shared/Enums/LookUpQueryValues.cs @@ -131,12 +131,12 @@ public static class LookUpQueryValues $"\"Name\" AS \"Name\" " + $"FROM \"KURS\".\"dbo\".\"{FullNameTable(TableNameEnum.Branch)}\" " + $"WHERE " + - $"\"TenantId\" = @TENANTID " + + $"\"TenantId\" = '@TENANTID' " + // 🔹 Bu form doğru — Replace hedefi bu. $"AND \"IsDeleted\" = 'false' " + $"AND \"Id\" IN ( " + $"SELECT \"BranchId\" " + $"FROM \"{FullNameTable(TableNameEnum.BranchUsers)}\" " + - $"WHERE \"UserId\" = @USERID " + + $"WHERE \"UserId\" = '@USERID' " + // 🔹 Bu da doğru. $") " + $"ORDER BY \"Name\";"; @@ -232,4 +232,12 @@ public static class LookUpQueryValues $"\"Name\" AS \"Name\" " + $"FROM \"{FullNameTable(TableNameEnum.Currency)}\" " + $"WHERE \"IsDeleted\" = 'false' "; + + public static string DepartmentValues = + $"SELECT " + + $"\"Id\" AS \"Key\", " + + $"\"Name\" AS \"Name\" " + + $"FROM \"{FullNameTable(TableNameEnum.Department)}\" " + + $"WHERE \"IsDeleted\" = 'false' " + + $"ORDER BY \"Name\";"; } \ No newline at end of file diff --git a/api/src/Kurs.Platform.Domain.Shared/Enums/TableNameEnum.cs b/api/src/Kurs.Platform.Domain.Shared/Enums/TableNameEnum.cs index aea2bda2..89c59a82 100644 --- a/api/src/Kurs.Platform.Domain.Shared/Enums/TableNameEnum.cs +++ b/api/src/Kurs.Platform.Domain.Shared/Enums/TableNameEnum.cs @@ -104,5 +104,11 @@ public enum TableNameEnum QuestionTag, QuestionPool, Question, - QuestionOption + QuestionOption, + EmploymentType, + JobPosition, + Department, + Badge, + CostCenter, + Employee } \ No newline at end of file diff --git a/api/src/Kurs.Platform.Domain.Shared/PlatformConsts.cs b/api/src/Kurs.Platform.Domain.Shared/PlatformConsts.cs index 8158c596..6558303b 100644 --- a/api/src/Kurs.Platform.Domain.Shared/PlatformConsts.cs +++ b/api/src/Kurs.Platform.Domain.Shared/PlatformConsts.cs @@ -497,6 +497,13 @@ public static class PlatformConsts public const string QuestionTag = "list-questiontag"; public const string QuestionPool = "list-questionpool"; public const string Question = "list-question"; + + //Hr + public const string EmploymentType = "list-employmenttype"; + public const string JobPosition = "list-jobposition"; + public const string Department = "list-department"; + public const string Employee = "list-employee"; + public const string Badge = "list-badge"; } } diff --git a/api/src/Kurs.Platform.Domain.Shared/TableNameResolver.cs b/api/src/Kurs.Platform.Domain.Shared/TableNameResolver.cs index ae65d3ee..0be9e7d4 100644 --- a/api/src/Kurs.Platform.Domain.Shared/TableNameResolver.cs +++ b/api/src/Kurs.Platform.Domain.Shared/TableNameResolver.cs @@ -121,6 +121,14 @@ public static class TableNameResolver { nameof(TableNameEnum.Question), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Coordinator) }, { nameof(TableNameEnum.QuestionOption), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Coordinator) }, + // 🔹 HR + { nameof(TableNameEnum.Department), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Hr) }, + { nameof(TableNameEnum.EmploymentType), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Hr) }, + { nameof(TableNameEnum.JobPosition), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Hr) }, + { nameof(TableNameEnum.Badge), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Hr) }, + { nameof(TableNameEnum.CostCenter), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Hr) }, + { nameof(TableNameEnum.Employee), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Hr) }, + // 🔹 ACCOUNTING { nameof(TableNameEnum.Bank), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Accounting) }, { nameof(TableNameEnum.BankAccount), (PlatformConsts.TablePrefix.TenantByName, MenuPrefix.Accounting) }, diff --git a/api/src/Kurs.Platform.Domain/Data/SeedConsts.cs b/api/src/Kurs.Platform.Domain/Data/SeedConsts.cs index 268daf60..230f9176 100644 --- a/api/src/Kurs.Platform.Domain/Data/SeedConsts.cs +++ b/api/src/Kurs.Platform.Domain/Data/SeedConsts.cs @@ -448,6 +448,16 @@ public static class SeedConsts public const string Default = Prefix.App + ".Classroom"; } + public static class Hr + { + public const string Default = Prefix.App + ".Hr"; + public const string Department = Default + ".Department"; + public const string Employee = Default + ".Employee"; + public const string JobPosition = Default + ".JobPosition"; + public const string EmploymentType = Default + ".EmploymentType"; + public const string Badge = Default + ".Badge"; + } + public static class Accounting { public const string Default = Prefix.App + ".Accounting"; diff --git a/api/src/Kurs.Platform.Domain/Entities/Tenant/Hr/Badge.cs b/api/src/Kurs.Platform.Domain/Entities/Tenant/Hr/Badge.cs new file mode 100644 index 00000000..4b1cc7a5 --- /dev/null +++ b/api/src/Kurs.Platform.Domain/Entities/Tenant/Hr/Badge.cs @@ -0,0 +1,22 @@ +using System; +using Volo.Abp.Domain.Entities.Auditing; +using Volo.Abp.MultiTenancy; + +namespace Kurs.Platform.Entities; + +public class Badge : FullAuditedEntity, IMultiTenant +{ + public Guid? TenantId { get; set; } + + public string Code { get; set; } + public string Name { get; set; } + public string Description { get; set; } + public string Icon { get; set; } + public string Color { get; set; } + public string BackgroundColor { get; set; } + public string Category { get; set; } + public string Criteria { get; set; } + public int Points { get; set; } + public string Rarity { get; set; } + public bool IsActive { get; set; } +} diff --git a/api/src/Kurs.Platform.Domain/Entities/Tenant/Hr/Department.cs b/api/src/Kurs.Platform.Domain/Entities/Tenant/Hr/Department.cs new file mode 100644 index 00000000..54012525 --- /dev/null +++ b/api/src/Kurs.Platform.Domain/Entities/Tenant/Hr/Department.cs @@ -0,0 +1,34 @@ +// Domain/Entities/HrDepartment.cs +using System; +using System.Collections.Generic; +using Volo.Abp.Domain.Entities.Auditing; +using Volo.Abp.MultiTenancy; + +namespace Kurs.Platform.Entities; + +public class Department : FullAuditedEntity, IMultiTenant +{ + public Guid? TenantId { get; set; } + + public string Code { get; set; } + public string Name { get; set; } + public string Description { get; set; } + + public Guid? ParentDepartmentId { get; set; } + public Department ParentDepartment { get; set; } + public ICollection SubDepartments { get; set; } + + public Guid? ManagerId { get; set; } + //public HrEmployee Manager { get; set; } + + public Guid? CostCenterId { get; set; } + //public HrCostCenter CostCenter { get; set; } + + public int Budget { get; set; } + public bool IsActive { get; set; } + + public Department() + { + SubDepartments = []; + } +} diff --git a/api/src/Kurs.Platform.Domain/Entities/Tenant/Hr/EmployeeType.cs b/api/src/Kurs.Platform.Domain/Entities/Tenant/Hr/EmployeeType.cs new file mode 100644 index 00000000..75e44fa9 --- /dev/null +++ b/api/src/Kurs.Platform.Domain/Entities/Tenant/Hr/EmployeeType.cs @@ -0,0 +1,12 @@ +using System; +using Volo.Abp.Domain.Entities.Auditing; +using Volo.Abp.MultiTenancy; + +namespace Kurs.Platform.Entities; + +public class EmploymentType : FullAuditedEntity, IMultiTenant +{ + public Guid? TenantId { get; set; } + + public string Name { get; set; } +} diff --git a/api/src/Kurs.Platform.Domain/Entities/Tenant/Hr/JobPosition.cs b/api/src/Kurs.Platform.Domain/Entities/Tenant/Hr/JobPosition.cs new file mode 100644 index 00000000..8c865f4a --- /dev/null +++ b/api/src/Kurs.Platform.Domain/Entities/Tenant/Hr/JobPosition.cs @@ -0,0 +1,23 @@ +using System; +using Volo.Abp.Domain.Entities.Auditing; +using Volo.Abp.MultiTenancy; + +namespace Kurs.Platform.Entities; + +public class JobPosition : FullAuditedEntity, IMultiTenant +{ + public Guid? TenantId { get; set; } + + public string Code { get; set; } + public string Name { get; set; } + public string Description { get; set; } + public Guid DepartmentId { get; set; } + public string Level { get; set; } + public int MinSalary { get; set; } + public int MaxSalary { get; set; } + public Guid CurrencyId { get; set; } + public string RequiredSkills { get; set; } + public string Responsibilities { get; set; } + public string Qualifications { get; set; } + public bool IsActive { get; set; } +} diff --git a/api/src/Kurs.Platform.Domain/Queries/DefaultValueHelper.cs b/api/src/Kurs.Platform.Domain/Queries/DefaultValueHelper.cs index 122427e1..d8bdfef6 100644 --- a/api/src/Kurs.Platform.Domain/Queries/DefaultValueHelper.cs +++ b/api/src/Kurs.Platform.Domain/Queries/DefaultValueHelper.cs @@ -20,35 +20,36 @@ public class DefaultValueHelper : ITransientDependency } public string GetDefaultValue(string strValue) - { - if (string.IsNullOrEmpty(strValue)) - return strValue; +{ + if (string.IsNullOrEmpty(strValue)) + return strValue; - // 🔹 TenantId değişimi özel ele alınacak - var result = strValue - .Replace(PlatformConsts.DefaultValues.UserId, _currentUser.Id?.ToString() ?? Guid.Empty.ToString()) - .Replace(PlatformConsts.DefaultValues.UserName, _currentUser.UserName ?? string.Empty) - .Replace(PlatformConsts.DefaultValues.Roles, string.Join("','", _currentUser.Roles ?? Array.Empty())) - .Replace(PlatformConsts.DefaultValues.Now, DateTime.UtcNow.ToString("o", CultureInfo.InvariantCulture)); + var result = strValue + .Replace(PlatformConsts.DefaultValues.UserId, _currentUser.Id?.ToString() ?? Guid.Empty.ToString()) + .Replace(PlatformConsts.DefaultValues.UserName, _currentUser.UserName ?? string.Empty) + .Replace(PlatformConsts.DefaultValues.Roles, string.Join("','", _currentUser.Roles ?? Array.Empty())) + .Replace(PlatformConsts.DefaultValues.Now, DateTime.UtcNow.ToString("o", CultureInfo.InvariantCulture)); // 🔹 TenantId özel durumu: NULL => IS NULL, varsa => = 'GUID' - if (result.Contains(PlatformConsts.DefaultValues.TenantId)) + if (_currentTenant?.Id.HasValue == true) { - if (_currentTenant.Id.HasValue) - { - result = result.Replace( - $"= '{PlatformConsts.DefaultValues.TenantId}'", - $"= '{_currentTenant.Id}'" - ); - } - else - { - // Boşsa: TenantId IS NULL yaz - result = result.Replace( - $"= '{PlatformConsts.DefaultValues.TenantId}'", - "IS NULL" - ); - } + result = result.Replace( + $"= '{PlatformConsts.DefaultValues.TenantId}'", + $"= '{_currentTenant.Id}'" + ).Replace( + PlatformConsts.DefaultValues.TenantId, + _currentTenant.Id.ToString() + ); + } + else + { + result = result.Replace( + $"= '{PlatformConsts.DefaultValues.TenantId}'", + "IS NULL" + ).Replace( + PlatformConsts.DefaultValues.TenantId, + "NULL" + ); } return result; diff --git a/api/src/Kurs.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformDbContext.cs b/api/src/Kurs.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformDbContext.cs index 222f4aa6..c5030022 100644 --- a/api/src/Kurs.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformDbContext.cs +++ b/api/src/Kurs.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformDbContext.cs @@ -1633,5 +1633,72 @@ public class PlatformDbContext : .HasForeignKey(x => x.CurrencyId) .OnDelete(DeleteBehavior.Restrict); }); + + builder.Entity(b => + { + b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.EmploymentType)), Prefix.DbSchema); + b.ConfigureByConvention(); + + b.Property(x => x.Name).IsRequired().HasMaxLength(100); + }); + + builder.Entity(b => + { + b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.JobPosition)), Prefix.DbSchema); + b.ConfigureByConvention(); + + b.Property(x => x.Code).IsRequired().HasMaxLength(50); + b.Property(x => x.Name).IsRequired().HasMaxLength(150); + b.Property(x => x.Description).HasMaxLength(500); + b.Property(x => x.Level).HasMaxLength(50); + b.Property(x => x.RequiredSkills).HasColumnType("text"); + b.Property(x => x.Responsibilities).HasColumnType("text"); + b.Property(x => x.Qualifications).HasColumnType("text"); + b.Property(x => x.IsActive).HasDefaultValue(true); + }); + + builder.Entity(b => + { + b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.Badge)), Prefix.DbSchema); + b.ConfigureByConvention(); + + b.Property(x => x.Code).IsRequired().HasMaxLength(50); + b.Property(x => x.Name).IsRequired().HasMaxLength(150); + b.Property(x => x.Description).HasMaxLength(500); + b.Property(x => x.Icon).HasMaxLength(10); + b.Property(x => x.Color).HasMaxLength(20); + b.Property(x => x.BackgroundColor).HasMaxLength(20); + b.Property(x => x.Category).HasMaxLength(100); + b.Property(x => x.Criteria).HasMaxLength(500); + b.Property(x => x.Rarity).HasMaxLength(50); + b.Property(x => x.IsActive).HasDefaultValue(true); + }); + + builder.Entity(b => + { + b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.Department)), Prefix.DbSchema); + b.ConfigureByConvention(); + + b.Property(x => x.Code).IsRequired().HasMaxLength(20); + b.Property(x => x.Name).IsRequired().HasMaxLength(100); + b.Property(x => x.Description).HasMaxLength(500); + b.Property(x => x.Budget).HasDefaultValue(0); + b.Property(x => x.IsActive).HasDefaultValue(true); + + b.HasOne(x => x.ParentDepartment) + .WithMany(x => x.SubDepartments) + .HasForeignKey(x => x.ParentDepartmentId) + .OnDelete(DeleteBehavior.Restrict); + + // b.HasOne(x => x.Manager) + // .WithMany() + // .HasForeignKey(x => x.ManagerId) + // .OnDelete(DeleteBehavior.Restrict); + + // b.HasOne(x => x.CostCenter) + // .WithMany() + // .HasForeignKey(x => x.CostCenterId) + // .OnDelete(DeleteBehavior.Restrict); + }); } } diff --git a/api/src/Kurs.Platform.EntityFrameworkCore/Migrations/20251020201144_Initial.Designer.cs b/api/src/Kurs.Platform.EntityFrameworkCore/Migrations/20251021111101_Initial.Designer.cs similarity index 96% rename from api/src/Kurs.Platform.EntityFrameworkCore/Migrations/20251020201144_Initial.Designer.cs rename to api/src/Kurs.Platform.EntityFrameworkCore/Migrations/20251021111101_Initial.Designer.cs index fca1213b..941bb68e 100644 --- a/api/src/Kurs.Platform.EntityFrameworkCore/Migrations/20251020201144_Initial.Designer.cs +++ b/api/src/Kurs.Platform.EntityFrameworkCore/Migrations/20251021111101_Initial.Designer.cs @@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore; namespace Kurs.Platform.Migrations { [DbContext(typeof(PlatformDbContext))] - [Migration("20251020201144_Initial")] + [Migration("20251021111101_Initial")] partial class Initial { /// @@ -2831,6 +2831,86 @@ namespace Kurs.Platform.Migrations b.ToTable("T_Adm_Demo", (string)null); }); + modelBuilder.Entity("Kurs.Platform.Entities.Department", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Budget") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasDefaultValue(0); + + b.Property("Code") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("CostCenterId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("Description") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("IsActive") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(true); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("ManagerId") + .HasColumnType("uniqueidentifier"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("ParentDepartmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.HasIndex("ParentDepartmentId"); + + b.ToTable("T_Hr_Department", (string)null); + }); + modelBuilder.Entity("Kurs.Platform.Entities.Disease", b => { b.Property("Id") @@ -3056,6 +3136,56 @@ namespace Kurs.Platform.Migrations b.ToTable("T_Adm_EducationStatus", (string)null); }); + modelBuilder.Entity("Kurs.Platform.Entities.EmploymentType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.ToTable("T_Hr_EmploymentType", (string)null); + }); + modelBuilder.Entity("Kurs.Platform.Entities.Event", b => { b.Property("Id") @@ -3391,6 +3521,97 @@ namespace Kurs.Platform.Migrations b.ToTable("T_Sas_GlobalSearch", (string)null); }); + modelBuilder.Entity("Kurs.Platform.Entities.HrBadge", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("BackgroundColor") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("Category") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Color") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("Criteria") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("Description") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("Icon") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IsActive") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(true); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("Points") + .HasColumnType("int"); + + b.Property("Rarity") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.ToTable("T_Hr_Badge", (string)null); + }); + modelBuilder.Entity("Kurs.Platform.Entities.InstallmentOption", b => { b.Property("Id") @@ -3558,6 +3779,95 @@ namespace Kurs.Platform.Migrations b.ToTable("T_Sas_IpRestriction", (string)null); }); + modelBuilder.Entity("Kurs.Platform.Entities.JobPosition", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("CurrencyId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("DepartmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("IsActive") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(true); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Level") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("MaxSalary") + .HasColumnType("int"); + + b.Property("MinSalary") + .HasColumnType("int"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("Qualifications") + .HasColumnType("text"); + + b.Property("RequiredSkills") + .HasColumnType("text"); + + b.Property("Responsibilities") + .HasColumnType("text"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.ToTable("T_Hr_JobPosition", (string)null); + }); + modelBuilder.Entity("Kurs.Platform.Entities.Lawyer", b => { b.Property("Id") @@ -9216,6 +9526,16 @@ namespace Kurs.Platform.Migrations b.Navigation("Entity"); }); + modelBuilder.Entity("Kurs.Platform.Entities.Department", b => + { + b.HasOne("Kurs.Platform.Entities.Department", "ParentDepartment") + .WithMany("SubDepartments") + .HasForeignKey("ParentDepartmentId") + .OnDelete(DeleteBehavior.Restrict); + + b.Navigation("ParentDepartment"); + }); + modelBuilder.Entity("Kurs.Platform.Entities.District", b => { b.HasOne("Kurs.Platform.Entities.City", null) @@ -9661,6 +9981,11 @@ namespace Kurs.Platform.Migrations b.Navigation("Fields"); }); + modelBuilder.Entity("Kurs.Platform.Entities.Department", b => + { + b.Navigation("SubDepartments"); + }); + modelBuilder.Entity("Kurs.Platform.Entities.Event", b => { b.Navigation("Comments"); diff --git a/api/src/Kurs.Platform.EntityFrameworkCore/Migrations/20251020201144_Initial.cs b/api/src/Kurs.Platform.EntityFrameworkCore/Migrations/20251021111101_Initial.cs similarity index 97% rename from api/src/Kurs.Platform.EntityFrameworkCore/Migrations/20251020201144_Initial.cs rename to api/src/Kurs.Platform.EntityFrameworkCore/Migrations/20251021111101_Initial.cs index e14bde1e..19d58121 100644 --- a/api/src/Kurs.Platform.EntityFrameworkCore/Migrations/20251020201144_Initial.cs +++ b/api/src/Kurs.Platform.EntityFrameworkCore/Migrations/20251021111101_Initial.cs @@ -1748,6 +1748,120 @@ namespace Kurs.Platform.Migrations table.PrimaryKey("PK_T_Crd_QuestionTag", x => x.Id); }); + migrationBuilder.CreateTable( + name: "T_Hr_Badge", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + Code = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: false), + Name = table.Column(type: "nvarchar(150)", maxLength: 150, nullable: false), + Description = table.Column(type: "nvarchar(500)", maxLength: 500, nullable: true), + Icon = table.Column(type: "nvarchar(10)", maxLength: 10, nullable: true), + Color = table.Column(type: "nvarchar(20)", maxLength: 20, nullable: true), + BackgroundColor = table.Column(type: "nvarchar(20)", maxLength: 20, nullable: true), + Category = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: true), + Criteria = table.Column(type: "nvarchar(500)", maxLength: 500, nullable: true), + Points = table.Column(type: "int", nullable: false), + Rarity = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), + IsActive = table.Column(type: "bit", nullable: false, defaultValue: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_T_Hr_Badge", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "T_Hr_Department", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + Code = table.Column(type: "nvarchar(20)", maxLength: 20, nullable: false), + Name = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: false), + Description = table.Column(type: "nvarchar(500)", maxLength: 500, nullable: true), + ParentDepartmentId = table.Column(type: "uniqueidentifier", nullable: true), + ManagerId = table.Column(type: "uniqueidentifier", nullable: true), + CostCenterId = table.Column(type: "uniqueidentifier", nullable: true), + Budget = table.Column(type: "int", nullable: false, defaultValue: 0), + IsActive = table.Column(type: "bit", nullable: false, defaultValue: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_T_Hr_Department", x => x.Id); + table.ForeignKey( + name: "FK_T_Hr_Department_T_Hr_Department_ParentDepartmentId", + column: x => x.ParentDepartmentId, + principalTable: "T_Hr_Department", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + }); + + migrationBuilder.CreateTable( + name: "T_Hr_EmploymentType", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + Name = table.Column(type: "nvarchar(100)", maxLength: 100, nullable: false), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_T_Hr_EmploymentType", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "T_Hr_JobPosition", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), + Code = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: false), + Name = table.Column(type: "nvarchar(150)", maxLength: 150, nullable: false), + Description = table.Column(type: "nvarchar(500)", maxLength: 500, nullable: true), + DepartmentId = table.Column(type: "uniqueidentifier", nullable: false), + Level = table.Column(type: "nvarchar(50)", maxLength: 50, nullable: true), + MinSalary = table.Column(type: "int", nullable: false), + MaxSalary = table.Column(type: "int", nullable: false), + CurrencyId = table.Column(type: "uniqueidentifier", nullable: false), + RequiredSkills = table.Column(type: "text", nullable: true), + Responsibilities = table.Column(type: "text", nullable: true), + Qualifications = table.Column(type: "text", nullable: true), + IsActive = table.Column(type: "bit", nullable: false, defaultValue: true), + CreationTime = table.Column(type: "datetime2", nullable: false), + CreatorId = table.Column(type: "uniqueidentifier", nullable: true), + LastModificationTime = table.Column(type: "datetime2", nullable: true), + LastModifierId = table.Column(type: "uniqueidentifier", nullable: true), + IsDeleted = table.Column(type: "bit", nullable: false, defaultValue: false), + DeleterId = table.Column(type: "uniqueidentifier", nullable: true), + DeletionTime = table.Column(type: "datetime2", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_T_Hr_JobPosition", x => x.Id); + }); + migrationBuilder.CreateTable( name: "T_P_Activity", columns: table => new @@ -4225,6 +4339,11 @@ namespace Kurs.Platform.Migrations table: "T_Crd_QuestionOption", column: "QuestionId"); + migrationBuilder.CreateIndex( + name: "IX_T_Hr_Department_ParentDepartmentId", + table: "T_Hr_Department", + column: "ParentDepartmentId"); + migrationBuilder.CreateIndex( name: "IX_T_Sas_ApiEndpoint_EntityId", table: "T_Sas_ApiEndpoint", @@ -4496,6 +4615,18 @@ namespace Kurs.Platform.Migrations migrationBuilder.DropTable( name: "T_Crd_QuestionTag"); + migrationBuilder.DropTable( + name: "T_Hr_Badge"); + + migrationBuilder.DropTable( + name: "T_Hr_Department"); + + migrationBuilder.DropTable( + name: "T_Hr_EmploymentType"); + + migrationBuilder.DropTable( + name: "T_Hr_JobPosition"); + migrationBuilder.DropTable( name: "T_P_Activity"); diff --git a/api/src/Kurs.Platform.EntityFrameworkCore/Migrations/PlatformDbContextModelSnapshot.cs b/api/src/Kurs.Platform.EntityFrameworkCore/Migrations/PlatformDbContextModelSnapshot.cs index 14dd6f30..f04810e0 100644 --- a/api/src/Kurs.Platform.EntityFrameworkCore/Migrations/PlatformDbContextModelSnapshot.cs +++ b/api/src/Kurs.Platform.EntityFrameworkCore/Migrations/PlatformDbContextModelSnapshot.cs @@ -2828,6 +2828,86 @@ namespace Kurs.Platform.Migrations b.ToTable("T_Adm_Demo", (string)null); }); + modelBuilder.Entity("Kurs.Platform.Entities.Department", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Budget") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasDefaultValue(0); + + b.Property("Code") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("CostCenterId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("Description") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("IsActive") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(true); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("ManagerId") + .HasColumnType("uniqueidentifier"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("ParentDepartmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.HasIndex("ParentDepartmentId"); + + b.ToTable("T_Hr_Department", (string)null); + }); + modelBuilder.Entity("Kurs.Platform.Entities.Disease", b => { b.Property("Id") @@ -3053,6 +3133,56 @@ namespace Kurs.Platform.Migrations b.ToTable("T_Adm_EducationStatus", (string)null); }); + modelBuilder.Entity("Kurs.Platform.Entities.EmploymentType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.ToTable("T_Hr_EmploymentType", (string)null); + }); + modelBuilder.Entity("Kurs.Platform.Entities.Event", b => { b.Property("Id") @@ -3388,6 +3518,97 @@ namespace Kurs.Platform.Migrations b.ToTable("T_Sas_GlobalSearch", (string)null); }); + modelBuilder.Entity("Kurs.Platform.Entities.HrBadge", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("BackgroundColor") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("Category") + .HasMaxLength(100) + .HasColumnType("nvarchar(100)"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("Color") + .HasMaxLength(20) + .HasColumnType("nvarchar(20)"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("Criteria") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("Description") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("Icon") + .HasMaxLength(10) + .HasColumnType("nvarchar(10)"); + + b.Property("IsActive") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(true); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("Points") + .HasColumnType("int"); + + b.Property("Rarity") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.ToTable("T_Hr_Badge", (string)null); + }); + modelBuilder.Entity("Kurs.Platform.Entities.InstallmentOption", b => { b.Property("Id") @@ -3555,6 +3776,95 @@ namespace Kurs.Platform.Migrations b.ToTable("T_Sas_IpRestriction", (string)null); }); + modelBuilder.Entity("Kurs.Platform.Entities.JobPosition", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("CreationTime") + .HasColumnType("datetime2") + .HasColumnName("CreationTime"); + + b.Property("CreatorId") + .HasColumnType("uniqueidentifier") + .HasColumnName("CreatorId"); + + b.Property("CurrencyId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleterId") + .HasColumnType("uniqueidentifier") + .HasColumnName("DeleterId"); + + b.Property("DeletionTime") + .HasColumnType("datetime2") + .HasColumnName("DeletionTime"); + + b.Property("DepartmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .HasMaxLength(500) + .HasColumnType("nvarchar(500)"); + + b.Property("IsActive") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(true); + + b.Property("IsDeleted") + .ValueGeneratedOnAdd() + .HasColumnType("bit") + .HasDefaultValue(false) + .HasColumnName("IsDeleted"); + + b.Property("LastModificationTime") + .HasColumnType("datetime2") + .HasColumnName("LastModificationTime"); + + b.Property("LastModifierId") + .HasColumnType("uniqueidentifier") + .HasColumnName("LastModifierId"); + + b.Property("Level") + .HasMaxLength(50) + .HasColumnType("nvarchar(50)"); + + b.Property("MaxSalary") + .HasColumnType("int"); + + b.Property("MinSalary") + .HasColumnType("int"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("nvarchar(150)"); + + b.Property("Qualifications") + .HasColumnType("text"); + + b.Property("RequiredSkills") + .HasColumnType("text"); + + b.Property("Responsibilities") + .HasColumnType("text"); + + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + + b.HasKey("Id"); + + b.ToTable("T_Hr_JobPosition", (string)null); + }); + modelBuilder.Entity("Kurs.Platform.Entities.Lawyer", b => { b.Property("Id") @@ -9213,6 +9523,16 @@ namespace Kurs.Platform.Migrations b.Navigation("Entity"); }); + modelBuilder.Entity("Kurs.Platform.Entities.Department", b => + { + b.HasOne("Kurs.Platform.Entities.Department", "ParentDepartment") + .WithMany("SubDepartments") + .HasForeignKey("ParentDepartmentId") + .OnDelete(DeleteBehavior.Restrict); + + b.Navigation("ParentDepartment"); + }); + modelBuilder.Entity("Kurs.Platform.Entities.District", b => { b.HasOne("Kurs.Platform.Entities.City", null) @@ -9658,6 +9978,11 @@ namespace Kurs.Platform.Migrations b.Navigation("Fields"); }); + modelBuilder.Entity("Kurs.Platform.Entities.Department", b => + { + b.Navigation("SubDepartments"); + }); + modelBuilder.Entity("Kurs.Platform.Entities.Event", b => { b.Navigation("Comments");