Project Daily Activities

This commit is contained in:
Sedat Öztürk 2025-11-28 01:00:37 +03:00
parent ba78863509
commit 43a8e20eb0
17 changed files with 1260 additions and 146 deletions

View file

@ -9613,6 +9613,12 @@
"tr": "Görev Türleri", "tr": "Görev Türleri",
"en": "Task Types" "en": "Task Types"
}, },
{
"resourceName": "Platform",
"key": "App.Project.WorkType",
"tr": "İş Türleri",
"en": "Work Types"
},
{ {
"resourceName": "Platform", "resourceName": "Platform",
"key": "App.Project.Projects", "key": "App.Project.Projects",
@ -9651,9 +9657,9 @@
}, },
{ {
"resourceName": "Platform", "resourceName": "Platform",
"key": "App.Project.Activity", "key": "App.Project.ProjectTaskDaily",
"tr": "Aktiviteler", "tr": "Günlük Aktiviteler",
"en": "Activities" "en": "Daily Activities"
}, },
{ {
"resourceName": "Platform", "resourceName": "Platform",

View file

@ -661,6 +661,129 @@ public class ListFormSeeder_Project : IDataSeedContributor, ITransientDependency
} }
#endregion #endregion
#region Work Type
listFormName = AppCodes.Project.WorkType;
if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName))
{
var listForm = await _listFormRepository.InsertAsync(
new ListForm()
{
ListFormType = ListFormTypeEnum.List,
IsSubForm = false,
ShowNote = true,
LayoutJson = DefaultLayoutJson,
CultureName = LanguageCodes.En,
ListFormCode = listFormName,
Name = listFormName,
Title = listFormName,
DataSourceCode = SeedConsts.DataSources.DefaultCode,
IsTenant = true,
IsBranch = false,
IsOrganizationUnit = false,
Description = listFormName,
SelectCommandType = SelectCommandTypeEnum.Table,
SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.WorkType)),
KeyFieldName = "Id",
KeyFieldDbSourceType = DbType.Guid,
DefaultFilter = DefaultFilterJson,
SortMode = GridOptions.SortModeSingle,
FilterRowJson = DefaultFilterRowJson,
HeaderFilterJson = DefaultHeaderFilterJson,
SearchPanelJson = DefaultSearchPanelJson,
GroupPanelJson = DefaultGroupPanelJson,
SelectionJson = DefaultSelectionSingleJson,
ColumnOptionJson = DefaultColumnOptionJson,
PermissionJson = DefaultPermissionJson(listFormName),
DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.WorkType)),
DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson,
PagerOptionJson = DefaultPagerOptionJson,
EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 300, true, true, true, true, false),
InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson,
EditingFormJson = JsonSerializer.Serialize(new List<EditingFormDto>()
{
new() {
Order=1, ColCount=1, ColSpan=1, ItemType="group", Items =[
new EditingFormItemDto { Order = 1, DataField="Name", ColSpan = 1, IsRequired =true, EditorType2 = EditorTypes.dxTextBox },
new EditingFormItemDto { Order = 2, DataField="Description", ColSpan = 1, EditorType2 = EditorTypes.dxTextArea },
new EditingFormItemDto { Order = 3, DataField="IsActive", ColSpan = 1, EditorType2 = EditorTypes.dxCheckBox },
]}
}),
FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] {
new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value }
}),
}
);
#region Project Work Type Fields
await _listFormFieldRepository.InsertManyAsync([
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Guid,
FieldName = "Id",
Width = 100,
ListOrderNo = 1,
Visible = false,
IsActive = true,
IsDeleted = false,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.String,
FieldName = "Name",
Width = 300,
ListOrderNo = 2,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
SortIndex = 1,
SortDirection = GridColumnOptions.SortOrderAsc,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.String,
FieldName = "Description",
Width = 500,
ListOrderNo = 3,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Boolean,
FieldName = "IsActive",
Width = 100,
ListOrderNo = 4,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
]);
#endregion
}
#endregion
#region Projects #region Projects
listFormName = AppCodes.Project.Projects; listFormName = AppCodes.Project.Projects;
if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName))
@ -1936,6 +2059,251 @@ public class ListFormSeeder_Project : IDataSeedContributor, ITransientDependency
} }
#endregion #endregion
#region Project Task Daily
listFormName = AppCodes.Project.ProjectTaskDaily;
if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName))
{
var listForm = await _listFormRepository.InsertAsync(
new ListForm()
{
ListFormType = ListFormTypeEnum.List,
IsSubForm = false,
ShowNote = true,
LayoutJson = DefaultLayoutJson,
CultureName = LanguageCodes.En,
ListFormCode = listFormName,
Name = listFormName,
Title = listFormName,
DataSourceCode = SeedConsts.DataSources.DefaultCode,
IsTenant = true,
IsBranch = false,
IsOrganizationUnit = false,
Description = listFormName,
SelectCommandType = SelectCommandTypeEnum.Table,
SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.ProjectTaskDaily)),
KeyFieldName = "Id",
KeyFieldDbSourceType = DbType.Guid,
DefaultFilter = DefaultFilterJson,
SortMode = GridOptions.SortModeSingle,
FilterRowJson = DefaultFilterRowJson,
HeaderFilterJson = DefaultHeaderFilterJson,
SearchPanelJson = DefaultSearchPanelJson,
GroupPanelJson = DefaultGroupPanelJson,
SelectionJson = DefaultSelectionSingleJson,
ColumnOptionJson = DefaultColumnOptionJson,
PermissionJson = DefaultPermissionJson(listFormName),
DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.ProjectTaskDaily)),
DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson,
PagerOptionJson = DefaultPagerOptionJson,
EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 500, true, true, true, true, false),
InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson,
EditingFormJson = JsonSerializer.Serialize(new List<EditingFormDto>()
{
new() {
Order=1, ColCount=1, ColSpan=1, ItemType="group", Items =[
new EditingFormItemDto { Order = 1, DataField="EmployeeId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
new EditingFormItemDto { Order = 2, DataField="TaskId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
new EditingFormItemDto { Order = 3, DataField="Date", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxDateBox },
new EditingFormItemDto { Order = 4, DataField="WorkedTypeId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
new EditingFormItemDto { Order = 5, DataField="HoursWorked", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox },
new EditingFormItemDto { Order = 6, DataField="Progress", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSlider },
new EditingFormItemDto { Order = 7, DataField="Description", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxTextArea },
new EditingFormItemDto { Order = 8, DataField="Challenges", ColSpan = 1, EditorType2 = EditorTypes.dxTextArea },
new EditingFormItemDto { Order = 9, DataField="NextSteps", ColSpan = 1, EditorType2 = EditorTypes.dxTextArea },
new EditingFormItemDto { Order = 10, DataField="StatusId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
]}
}),
FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] {
new() { FieldName = "Date", FieldDbType = DbType.Date, Value = "@DATE", CustomValueType = FieldCustomValueTypeEnum.CustomKey },
new() { FieldName = "HoursWorked", FieldDbType = DbType.Int32, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value },
new() { FieldName = "Progress", FieldDbType = DbType.Int32, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value }
}),
}
);
#region Project Task Daily Fields
await _listFormFieldRepository.InsertManyAsync([
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Guid,
FieldName = "Id",
Width = 100,
ListOrderNo = 1,
Visible = false,
IsActive = true,
IsDeleted = false,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Guid,
FieldName = "EmployeeId",
Width = 100,
ListOrderNo = 2,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Employee), "Id", "FullName"),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Guid,
FieldName = "TaskId",
Width = 200,
ListOrderNo = 3,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.ProjectTask), "Id", "Name"),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Date,
FieldName = "Date",
Width = 100,
ListOrderNo = 4,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Guid,
FieldName = "WorkedTypeId",
Width = 100,
ListOrderNo = 5,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.WorkType), "Id", "Name"),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Int32,
FieldName = "HoursWorked",
Width = 100,
ListOrderNo = 6,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Int32,
FieldName = "Progress",
Width = 100,
ListOrderNo = 7,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.String,
FieldName = "Description",
Width = 200,
ListOrderNo = 8,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.String,
FieldName = "Challenges",
Width = 200,
ListOrderNo = 9,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.String,
FieldName = "NextSteps",
Width = 200,
ListOrderNo = 10,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Guid,
FieldName = "StatusId",
Width = 100,
ListOrderNo = 10,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Status), "Id", "Name"),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
]);
#endregion
}
#endregion
} }
} }

View file

@ -152,14 +152,18 @@
"path": "/admin/menuManager", "path": "/admin/menuManager",
"componentPath": "@/views/menu/MenuManager", "componentPath": "@/views/menu/MenuManager",
"routeType": "protected", "routeType": "protected",
"authority": ["App.Menus.Manager"] "authority": [
"App.Menus.Manager"
]
}, },
{ {
"key": "admin.listFormManagement.wizard", "key": "admin.listFormManagement.wizard",
"path": "/admin/listform/wizard", "path": "/admin/listform/wizard",
"componentPath": "@/views/admin/listForm/Wizard", "componentPath": "@/views/admin/listForm/Wizard",
"routeType": "protected", "routeType": "protected",
"authority": ["App.Listforms.Wizard"] "authority": [
"App.Listforms.Wizard"
]
}, },
{ {
"key": "admin.listFormManagement.edit", "key": "admin.listFormManagement.edit",
@ -173,14 +177,18 @@
"path": "/admin/forumManagement", "path": "/admin/forumManagement",
"componentPath": "@/views/forum/Management", "componentPath": "@/views/forum/Management",
"routeType": "protected", "routeType": "protected",
"authority": ["App.ForumManagement"] "authority": [
"App.ForumManagement"
]
}, },
{ {
"key": "admin.ai", "key": "admin.ai",
"path": "/admin/ai", "path": "/admin/ai",
"componentPath": "@/views/ai/Assistant", "componentPath": "@/views/ai/Assistant",
"routeType": "protected", "routeType": "protected",
"authority": ["Abp.Identity.Ai"] "authority": [
"Abp.Identity.Ai"
]
}, },
{ {
"key": "admin.profile.general", "key": "admin.profile.general",
@ -222,28 +230,36 @@
"path": "/admin/settings", "path": "/admin/settings",
"componentPath": "@/views/settings/Settings", "componentPath": "@/views/settings/Settings",
"routeType": "protected", "routeType": "protected",
"authority": ["App.Setting"] "authority": [
"App.Setting"
]
}, },
{ {
"key": "admin.identity.user.detail", "key": "admin.identity.user.detail",
"path": "/admin/users/detail/:userId", "path": "/admin/users/detail/:userId",
"componentPath": "@/views/admin/user-management/Details", "componentPath": "@/views/admin/user-management/Details",
"routeType": "protected", "routeType": "protected",
"authority": ["AbpIdentity.Users.Update"] "authority": [
"AbpIdentity.Users.Update"
]
}, },
{ {
"key": "admin.identity.ous", "key": "admin.identity.ous",
"path": "/admin/ous", "path": "/admin/ous",
"componentPath": "@/views/admin/organization-unit/OrganizationUnits", "componentPath": "@/views/admin/organization-unit/OrganizationUnits",
"routeType": "protected", "routeType": "protected",
"authority": ["Abp.Identity.OrganizationUnits"] "authority": [
"Abp.Identity.OrganizationUnits"
]
}, },
{ {
"key": "admin.forum", "key": "admin.forum",
"path": "/admin/forum", "path": "/admin/forum",
"componentPath": "@/views/forum/Forum", "componentPath": "@/views/forum/Forum",
"routeType": "protected", "routeType": "protected",
"authority": ["App.ForumManagement.Publish"] "authority": [
"App.ForumManagement.Publish"
]
}, },
{ {
"key": "admin.list", "key": "admin.list",
@ -285,168 +301,216 @@
"path": "/admin/developerkit", "path": "/admin/developerkit",
"componentPath": "@/views/developerKit/DashboardPage", "componentPath": "@/views/developerKit/DashboardPage",
"routeType": "protected", "routeType": "protected",
"authority": ["App.DeveloperKit"] "authority": [
"App.DeveloperKit"
]
}, },
{ {
"key": "admin.developerkit.entities", "key": "admin.developerkit.entities",
"path": "/admin/developerkit/entities", "path": "/admin/developerkit/entities",
"componentPath": "@/views/developerKit/EntityPage", "componentPath": "@/views/developerKit/EntityPage",
"routeType": "protected", "routeType": "protected",
"authority": ["App.DeveloperKit.Entity"] "authority": [
"App.DeveloperKit.Entity"
]
}, },
{ {
"key": "admin.developerkit.entities.new", "key": "admin.developerkit.entities.new",
"path": "/admin/developerkit/entities/new", "path": "/admin/developerkit/entities/new",
"componentPath": "@/views/developerKit/EntityDetailPage", "componentPath": "@/views/developerKit/EntityDetailPage",
"routeType": "protected", "routeType": "protected",
"authority": ["App.DeveloperKit.Entity"] "authority": [
"App.DeveloperKit.Entity"
]
}, },
{ {
"key": "admin.developerkit.entities.edit", "key": "admin.developerkit.entities.edit",
"path": "/admin/developerkit/entities/edit/:id", "path": "/admin/developerkit/entities/edit/:id",
"componentPath": "@/views/developerKit/EntityDetailPage", "componentPath": "@/views/developerKit/EntityDetailPage",
"routeType": "protected", "routeType": "protected",
"authority": ["App.DeveloperKit.Entity"] "authority": [
"App.DeveloperKit.Entity"
]
}, },
{ {
"key": "admin.developerkit.migrations", "key": "admin.developerkit.migrations",
"path": "/admin/developerkit/migrations", "path": "/admin/developerkit/migrations",
"componentPath": "@/views/developerKit/MigrationPage", "componentPath": "@/views/developerKit/MigrationPage",
"routeType": "protected", "routeType": "protected",
"authority": ["App.DeveloperKit.Migrations"] "authority": [
"App.DeveloperKit.Migrations"
]
}, },
{ {
"key": "admin.developerkit.endpoints", "key": "admin.developerkit.endpoints",
"path": "/admin/developerkit/endpoints", "path": "/admin/developerkit/endpoints",
"componentPath": "@/views/developerKit/CrudEndpointPage", "componentPath": "@/views/developerKit/CrudEndpointPage",
"routeType": "protected", "routeType": "protected",
"authority": ["App.DeveloperKit.CrudEndpoints"] "authority": [
"App.DeveloperKit.CrudEndpoints"
]
}, },
{ {
"key": "admin.developerkit.dynamic-services", "key": "admin.developerkit.dynamic-services",
"path": "/admin/developerkit/dynamic-services", "path": "/admin/developerkit/dynamic-services",
"componentPath": "@/views/developerKit/DynamicServicePage", "componentPath": "@/views/developerKit/DynamicServicePage",
"routeType": "protected", "routeType": "protected",
"authority": ["App.DeveloperKit.DynamicServices"] "authority": [
"App.DeveloperKit.DynamicServices"
]
}, },
{ {
"key": "admin.developerkit.components", "key": "admin.developerkit.components",
"path": "/admin/developerkit/components", "path": "/admin/developerkit/components",
"componentPath": "@/views/developerKit/ComponentPage", "componentPath": "@/views/developerKit/ComponentPage",
"routeType": "protected", "routeType": "protected",
"authority": ["App.DeveloperKit.Components"] "authority": [
"App.DeveloperKit.Components"
]
}, },
{ {
"key": "admin.developerkit.components.new", "key": "admin.developerkit.components.new",
"path": "/admin/developerkit/components/new", "path": "/admin/developerkit/components/new",
"componentPath": "@/views/developerKit/ComponentDetailPage", "componentPath": "@/views/developerKit/ComponentDetailPage",
"routeType": "protected", "routeType": "protected",
"authority": ["App.DeveloperKit.Components"] "authority": [
"App.DeveloperKit.Components"
]
}, },
{ {
"key": "admin.developerkit.components.view", "key": "admin.developerkit.components.view",
"path": "/admin/developerkit/components/view/:id", "path": "/admin/developerkit/components/view/:id",
"componentPath": "@/views/developerKit/ComponentDetailPage", "componentPath": "@/views/developerKit/ComponentDetailPage",
"routeType": "protected", "routeType": "protected",
"authority": ["App.DeveloperKit.Components"] "authority": [
"App.DeveloperKit.Components"
]
}, },
{ {
"key": "admin.developerkit.components.edit", "key": "admin.developerkit.components.edit",
"path": "/admin/developerkit/components/edit/:id", "path": "/admin/developerkit/components/edit/:id",
"componentPath": "@/views/developerKit/CodePage", "componentPath": "@/views/developerKit/CodePage",
"routeType": "protected", "routeType": "protected",
"authority": ["App.DeveloperKit.Components"] "authority": [
"App.DeveloperKit.Components"
]
}, },
{ {
"key": "admin.reportManagement", "key": "admin.reportManagement",
"path": "/admin/reports/management", "path": "/admin/reports/management",
"componentPath": "@/views/report/DashboardPage", "componentPath": "@/views/report/DashboardPage",
"routeType": "protected", "routeType": "protected",
"authority": ["App.Reports.Management"] "authority": [
"App.Reports.Management"
]
}, },
{ {
"key": "admin.reports.view", "key": "admin.reports.view",
"path": "/admin/reports/:id", "path": "/admin/reports/:id",
"componentPath": "@/views/report/ReportViewerPage", "componentPath": "@/views/report/ReportViewerPage",
"routeType": "protected", "routeType": "protected",
"authority": ["App.Reports.Categories"] "authority": [
"App.Reports.Categories"
]
}, },
{ {
"key": "admin.fileManagement", "key": "admin.fileManagement",
"path": "/admin/files", "path": "/admin/files",
"componentPath": "@/views/admin/files/FileManager", "componentPath": "@/views/admin/files/FileManager",
"routeType": "protected", "routeType": "protected",
"authority": ["App.Files"] "authority": [
"App.Files"
]
}, },
{ {
"key": "admin.coordinator.classroom.dashboard", "key": "admin.coordinator.classroom.dashboard",
"path": "/admin/coordinator/classroom/dashboard", "path": "/admin/coordinator/classroom/dashboard",
"componentPath": "@/views/coordinator/Classroom/Dashboard", "componentPath": "@/views/coordinator/Classroom/Dashboard",
"routeType": "protected", "routeType": "protected",
"authority": ["App.Coordinator.Classroom.Dashboard"] "authority": [
"App.Coordinator.Classroom.Dashboard"
]
}, },
{ {
"key": "admin.coordinator.classroom.classes", "key": "admin.coordinator.classroom.classes",
"path": "/admin/coordinator/classroom/classes", "path": "/admin/coordinator/classroom/classes",
"componentPath": "@/views/coordinator/Classroom/ClassList", "componentPath": "@/views/coordinator/Classroom/ClassList",
"routeType": "protected", "routeType": "protected",
"authority": ["App.Coordinator.Classroom.List"] "authority": [
"App.Coordinator.Classroom.List"
]
}, },
{ {
"key": "admin.coordinator.classroom.classroom", "key": "admin.coordinator.classroom.classroom",
"path": "/admin/coordinator/classroom/room/:id", "path": "/admin/coordinator/classroom/room/:id",
"componentPath": "@/views/coordinator/Classroom/RoomDetail", "componentPath": "@/views/coordinator/Classroom/RoomDetail",
"routeType": "protected", "routeType": "protected",
"authority": ["App.Coordinator.Classroom.RoomDetail"] "authority": [
"App.Coordinator.Classroom.RoomDetail"
]
}, },
{ {
"key": "admin.coordinator.classroom.planning", "key": "admin.coordinator.classroom.planning",
"path": "/admin/coordinator/classroom/planning/:id", "path": "/admin/coordinator/classroom/planning/:id",
"componentPath": "@/views/coordinator/Classroom/PlanningPage", "componentPath": "@/views/coordinator/Classroom/PlanningPage",
"routeType": "protected", "routeType": "protected",
"authority": ["App.Coordinator.Classroom.Planning"] "authority": [
"App.Coordinator.Classroom.Planning"
]
}, },
{ {
"key": "admin.coordinator.exams", "key": "admin.coordinator.exams",
"path": "/admin/coordinator/exams", "path": "/admin/coordinator/exams",
"componentPath": "@/views/coordinator/Exams", "componentPath": "@/views/coordinator/Exams",
"routeType": "protected", "routeType": "protected",
"authority": ["App.Coordinator.Exams"] "authority": [
"App.Coordinator.Exams"
]
}, },
{ {
"key": "admin.coordinator.examDetail", "key": "admin.coordinator.examDetail",
"path": "/admin/coordinator/exam/:id", "path": "/admin/coordinator/exam/:id",
"componentPath": "@/views/coordinator/ExamInterface/ExamInterface", "componentPath": "@/views/coordinator/ExamInterface/ExamInterface",
"routeType": "protected", "routeType": "protected",
"authority": ["App.Coordinator.Exams"] "authority": [
"App.Coordinator.Exams"
]
}, },
{ {
"key": "admin.coordinator.assignments", "key": "admin.coordinator.assignments",
"path": "/admin/coordinator/assignments", "path": "/admin/coordinator/assignments",
"componentPath": "@/views/coordinator/Assignments", "componentPath": "@/views/coordinator/Assignments",
"routeType": "protected", "routeType": "protected",
"authority": ["App.Coordinator.Assignments"] "authority": [
"App.Coordinator.Assignments"
]
}, },
{ {
"key": "admin.coordinator.assignmentDetail", "key": "admin.coordinator.assignmentDetail",
"path": "/admin/coordinator/assignment/:id", "path": "/admin/coordinator/assignment/:id",
"componentPath": "@/views/coordinator/ExamInterface/ExamInterface", "componentPath": "@/views/coordinator/ExamInterface/ExamInterface",
"routeType": "protected", "routeType": "protected",
"authority": ["App.Coordinator.Assignments"] "authority": [
"App.Coordinator.Assignments"
]
}, },
{ {
"key": "admin.coordinator.tests", "key": "admin.coordinator.tests",
"path": "/admin/coordinator/tests", "path": "/admin/coordinator/tests",
"componentPath": "@/views/coordinator/Tests", "componentPath": "@/views/coordinator/Tests",
"routeType": "protected", "routeType": "protected",
"authority": ["App.Coordinator.Tests"] "authority": [
"App.Coordinator.Tests"
]
}, },
{ {
"key": "admin.coordinator.testDetail", "key": "admin.coordinator.testDetail",
"path": "/admin/coordinator/test/:id", "path": "/admin/coordinator/test/:id",
"componentPath": "@/views/coordinator/ExamInterface/PDFTestInterface", "componentPath": "@/views/coordinator/ExamInterface/PDFTestInterface",
"routeType": "protected", "routeType": "protected",
"authority": ["App.Coordinator.Tests"] "authority": [
"App.Coordinator.Tests"
]
}, },
{ {
"key": "admin.supplychain.requests", "key": "admin.supplychain.requests",
@ -2630,10 +2694,20 @@
"DisplayName": "App.Project.TaskType", "DisplayName": "App.Project.TaskType",
"Order": 5, "Order": 5,
"Url": "/admin/list/App.Project.TaskType", "Url": "/admin/list/App.Project.TaskType",
"Icon": "FcPlanner", "Icon": "FcMindMap",
"RequiredPermissionName": "App.Project.TaskType", "RequiredPermissionName": "App.Project.TaskType",
"IsDisabled": false "IsDisabled": false
}, },
{
"ParentCode": "App.Project.Definitions",
"Code": "App.Project.WorkType",
"DisplayName": "App.Project.WorkType",
"Order": 6,
"Url": "/admin/list/App.Project.WorkType",
"Icon": "FcPlanner",
"RequiredPermissionName": "App.Project.WorkType",
"IsDisabled": false
},
{ {
"ParentCode": "App.Project", "ParentCode": "App.Project",
"Code": "App.Project.Projects", "Code": "App.Project.Projects",
@ -2664,6 +2738,16 @@
"RequiredPermissionName": "App.Project.ProjectTask", "RequiredPermissionName": "App.Project.ProjectTask",
"IsDisabled": false "IsDisabled": false
}, },
{
"ParentCode": "App.Project",
"Code": "App.Project.ProjectTaskDaily",
"DisplayName": "App.Project.ProjectTaskDaily",
"Order": 6,
"Url": "/admin/list/App.Project.ProjectTaskDaily",
"Icon": "FcConferenceCall",
"RequiredPermissionName": "App.Project.ProjectTaskDaily",
"IsDisabled": false
},
{ {
"ParentCode": "App.Project", "ParentCode": "App.Project",
"Code": "App.Project.Workload", "Code": "App.Project.Workload",
@ -2684,16 +2768,6 @@
"RequiredPermissionName": "App.Project.CostTracking", "RequiredPermissionName": "App.Project.CostTracking",
"IsDisabled": false "IsDisabled": false
}, },
{
"ParentCode": "App.Project",
"Code": "App.Project.DailyUpdates",
"DisplayName": "App.Project.DailyUpdates",
"Order": 9,
"Url": "/admin/projects/daily-updates",
"Icon": "FcConferenceCall",
"RequiredPermissionName": "App.Project.DailyUpdates",
"IsDisabled": false
},
{ {
"ParentCode": null, "ParentCode": null,
"Code": "App.Hr", "Code": "App.Hr",
@ -3045,4 +3119,4 @@
"IsDisabled": false "IsDisabled": false
} }
] ]
} }

View file

@ -8140,7 +8140,6 @@
"MultiTenancySide": 3, "MultiTenancySide": 3,
"MenuGroup": "Erp" "MenuGroup": "Erp"
}, },
{ {
"GroupName": "App.Project", "GroupName": "App.Project",
"Name": "App.Project.Category", "Name": "App.Project.Category",
@ -8204,7 +8203,6 @@
"MultiTenancySide": 3, "MultiTenancySide": 3,
"MenuGroup": "Erp" "MenuGroup": "Erp"
}, },
{ {
"GroupName": "App.Project", "GroupName": "App.Project",
"Name": "App.Project.Risk", "Name": "App.Project.Risk",
@ -8331,7 +8329,69 @@
"MultiTenancySide": 3, "MultiTenancySide": 3,
"MenuGroup": "Erp" "MenuGroup": "Erp"
}, },
{
"GroupName": "App.Project",
"Name": "App.Project.WorkType",
"ParentName": null,
"DisplayName": "App.Project.WorkType",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.WorkType.Create",
"ParentName": "App.Project.WorkType",
"DisplayName": "Create",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.WorkType.Update",
"ParentName": "App.Project.WorkType",
"DisplayName": "Update",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.WorkType.Delete",
"ParentName": "App.Project.WorkType",
"DisplayName": "Delete",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.WorkType.Export",
"ParentName": "App.Project.WorkType",
"DisplayName": "Export",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.WorkType.Import",
"ParentName": "App.Project.WorkType",
"DisplayName": "Import",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.WorkType.Note",
"ParentName": "App.Project.WorkType",
"DisplayName": "Note",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{ {
"GroupName": "App.Project", "GroupName": "App.Project",
"Name": "App.Project.Projects", "Name": "App.Project.Projects",
@ -8458,7 +8518,6 @@
"MultiTenancySide": 3, "MultiTenancySide": 3,
"MenuGroup": "Erp" "MenuGroup": "Erp"
}, },
{ {
"GroupName": "App.Project", "GroupName": "App.Project",
"Name": "App.Project.ProjectRisk", "Name": "App.Project.ProjectRisk",
@ -8522,7 +8581,6 @@
"MultiTenancySide": 3, "MultiTenancySide": 3,
"MenuGroup": "Erp" "MenuGroup": "Erp"
}, },
{ {
"GroupName": "App.Project", "GroupName": "App.Project",
"Name": "App.Project.ProjectTeam", "Name": "App.Project.ProjectTeam",
@ -8586,7 +8644,6 @@
"MultiTenancySide": 3, "MultiTenancySide": 3,
"MenuGroup": "Erp" "MenuGroup": "Erp"
}, },
{ {
"GroupName": "App.Project", "GroupName": "App.Project",
"Name": "App.Project.ProjectTask", "Name": "App.Project.ProjectTask",
@ -8659,20 +8716,19 @@
"MultiTenancySide": 3, "MultiTenancySide": 3,
"MenuGroup": "Erp" "MenuGroup": "Erp"
}, },
{ {
"GroupName": "App.Project", "GroupName": "App.Project",
"Name": "App.Project.Activity", "Name": "App.Project.ProjectTaskDaily",
"ParentName": null, "ParentName": null,
"DisplayName": "App.Project.Activity", "DisplayName": "App.Project.ProjectTaskDaily",
"IsEnabled": true, "IsEnabled": true,
"MultiTenancySide": 3, "MultiTenancySide": 3,
"MenuGroup": "Erp" "MenuGroup": "Erp"
}, },
{ {
"GroupName": "App.Project", "GroupName": "App.Project",
"Name": "App.Project.Activity.Create", "Name": "App.Project.ProjectTaskDaily.Create",
"ParentName": "App.Project.Activity", "ParentName": "App.Project.ProjectTaskDaily",
"DisplayName": "Create", "DisplayName": "Create",
"IsEnabled": true, "IsEnabled": true,
"MultiTenancySide": 3, "MultiTenancySide": 3,
@ -8680,8 +8736,8 @@
}, },
{ {
"GroupName": "App.Project", "GroupName": "App.Project",
"Name": "App.Project.Activity.Update", "Name": "App.Project.ProjectTaskDaily.Update",
"ParentName": "App.Project.Activity", "ParentName": "App.Project.ProjectTaskDaily",
"DisplayName": "Update", "DisplayName": "Update",
"IsEnabled": true, "IsEnabled": true,
"MultiTenancySide": 3, "MultiTenancySide": 3,
@ -8689,8 +8745,8 @@
}, },
{ {
"GroupName": "App.Project", "GroupName": "App.Project",
"Name": "App.Project.Activity.Delete", "Name": "App.Project.ProjectTaskDaily.Delete",
"ParentName": "App.Project.Activity", "ParentName": "App.Project.ProjectTaskDaily",
"DisplayName": "Delete", "DisplayName": "Delete",
"IsEnabled": true, "IsEnabled": true,
"MultiTenancySide": 3, "MultiTenancySide": 3,
@ -8698,8 +8754,8 @@
}, },
{ {
"GroupName": "App.Project", "GroupName": "App.Project",
"Name": "App.Project.Activity.Export", "Name": "App.Project.ProjectTaskDaily.Export",
"ParentName": "App.Project.Activity", "ParentName": "App.Project.ProjectTaskDaily",
"DisplayName": "Export", "DisplayName": "Export",
"IsEnabled": true, "IsEnabled": true,
"MultiTenancySide": 3, "MultiTenancySide": 3,
@ -8707,8 +8763,8 @@
}, },
{ {
"GroupName": "App.Project", "GroupName": "App.Project",
"Name": "App.Project.Activity.Import", "Name": "App.Project.ProjectTaskDaily.Import",
"ParentName": "App.Project.Activity", "ParentName": "App.Project.ProjectTaskDaily",
"DisplayName": "Import", "DisplayName": "Import",
"IsEnabled": true, "IsEnabled": true,
"MultiTenancySide": 3, "MultiTenancySide": 3,
@ -8716,8 +8772,8 @@
}, },
{ {
"GroupName": "App.Project", "GroupName": "App.Project",
"Name": "App.Project.Activity.Note", "Name": "App.Project.ProjectTaskDaily.Note",
"ParentName": "App.Project.Activity", "ParentName": "App.Project.ProjectTaskDaily",
"DisplayName": "Note", "DisplayName": "Note",
"IsEnabled": true, "IsEnabled": true,
"MultiTenancySide": 3, "MultiTenancySide": 3,
@ -8849,69 +8905,6 @@
"MultiTenancySide": 3, "MultiTenancySide": 3,
"MenuGroup": "Erp" "MenuGroup": "Erp"
}, },
{
"GroupName": "App.Project",
"Name": "App.Project.DailyUpdates",
"ParentName": null,
"DisplayName": "App.Project.DailyUpdates",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.DailyUpdates.Create",
"ParentName": "App.Project.DailyUpdates",
"DisplayName": "Create",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.DailyUpdates.Update",
"ParentName": "App.Project.DailyUpdates",
"DisplayName": "Update",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.DailyUpdates.Delete",
"ParentName": "App.Project.DailyUpdates",
"DisplayName": "Delete",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.DailyUpdates.Export",
"ParentName": "App.Project.DailyUpdates",
"DisplayName": "Export",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.DailyUpdates.Import",
"ParentName": "App.Project.DailyUpdates",
"DisplayName": "Import",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.DailyUpdates.Note",
"ParentName": "App.Project.DailyUpdates",
"DisplayName": "Note",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{ {
"GroupName": "App.Hr", "GroupName": "App.Hr",
"Name": "App.Hr.Employee", "Name": "App.Hr.Employee",
@ -12873,4 +12866,4 @@
"MenuGroup": "Erp" "MenuGroup": "Erp"
} }
] ]
} }

View file

@ -193,9 +193,11 @@ public enum TableNameEnum
Risk, Risk,
Category, Category,
TaskType, TaskType,
WorkType,
Projects, Projects,
ProjectRisk, ProjectRisk,
ProjectTeam, ProjectTeam,
ProjectPhase, ProjectPhase,
ProjectTask, ProjectTask,
ProjectTaskDaily
} }

View file

@ -232,11 +232,13 @@ public static class TableNameResolver
{ nameof(TableNameEnum.Risk), (TablePrefix.TenantByName, MenuPrefix.Project) }, { nameof(TableNameEnum.Risk), (TablePrefix.TenantByName, MenuPrefix.Project) },
{ nameof(TableNameEnum.Category), (TablePrefix.TenantByName, MenuPrefix.Project) }, { nameof(TableNameEnum.Category), (TablePrefix.TenantByName, MenuPrefix.Project) },
{ nameof(TableNameEnum.TaskType), (TablePrefix.TenantByName, MenuPrefix.Project) }, { nameof(TableNameEnum.TaskType), (TablePrefix.TenantByName, MenuPrefix.Project) },
{ nameof(TableNameEnum.WorkType), (TablePrefix.TenantByName, MenuPrefix.Project) },
{ nameof(TableNameEnum.Projects), (TablePrefix.TenantByName, MenuPrefix.Project) }, { nameof(TableNameEnum.Projects), (TablePrefix.TenantByName, MenuPrefix.Project) },
{ nameof(TableNameEnum.ProjectRisk), (TablePrefix.TenantByName, MenuPrefix.Project) }, { nameof(TableNameEnum.ProjectRisk), (TablePrefix.TenantByName, MenuPrefix.Project) },
{ nameof(TableNameEnum.ProjectTeam), (TablePrefix.TenantByName, MenuPrefix.Project) }, { nameof(TableNameEnum.ProjectTeam), (TablePrefix.TenantByName, MenuPrefix.Project) },
{ nameof(TableNameEnum.ProjectPhase), (TablePrefix.TenantByName, MenuPrefix.Project) }, { nameof(TableNameEnum.ProjectPhase), (TablePrefix.TenantByName, MenuPrefix.Project) },
{ nameof(TableNameEnum.ProjectTask), (TablePrefix.TenantByName, MenuPrefix.Project) }, { nameof(TableNameEnum.ProjectTask), (TablePrefix.TenantByName, MenuPrefix.Project) },
{ nameof(TableNameEnum.ProjectTaskDaily), (TablePrefix.TenantByName, MenuPrefix.Project) },
}; };
public static string GetFullTableName(string tableName) public static string GetFullTableName(string tableName)

View file

@ -567,11 +567,13 @@ public static class SeedConsts
public const string Risk = Default + ".Risk"; public const string Risk = Default + ".Risk";
public const string Category = Default + ".Category"; public const string Category = Default + ".Category";
public const string TaskType = Default + ".TaskType"; public const string TaskType = Default + ".TaskType";
public const string WorkType = Default + ".WorkType";
public const string Projects = Default + ".Projects"; public const string Projects = Default + ".Projects";
public const string ProjectPhase = Default + ".ProjectPhase"; public const string ProjectPhase = Default + ".ProjectPhase";
public const string ProjectRisk = Default + ".ProjectRisk"; public const string ProjectRisk = Default + ".ProjectRisk";
public const string ProjectTeam = Default + ".ProjectTeam"; public const string ProjectTeam = Default + ".ProjectTeam";
public const string ProjectTask = Default + ".ProjectTask"; public const string ProjectTask = Default + ".ProjectTask";
public const string ProjectTaskDaily = Default + ".ProjectTaskDaily";
} }
public static class Mrp public static class Mrp

View file

@ -1,4 +1,6 @@
using System; using System;
using System.Collections;
using System.Collections.Generic;
using Volo.Abp.Domain.Entities.Auditing; using Volo.Abp.Domain.Entities.Auditing;
using Volo.Abp.MultiTenancy; using Volo.Abp.MultiTenancy;
@ -31,6 +33,7 @@ public class ProjectTask : FullAuditedEntity<Guid>, IMultiTenant
public DateTime EndDate { get; set; } public DateTime EndDate { get; set; }
public int Progress { get; set; } public int Progress { get; set; }
public bool IsActive { get; set; } public bool IsActive { get; set; }
public ICollection<ProjectTaskDaily> DailyLogs { get; set; }
} }

View file

@ -0,0 +1,31 @@
using System;
using Volo.Abp.Domain.Entities.Auditing;
using Volo.Abp.MultiTenancy;
namespace Erp.Platform.Entities;
public class ProjectTaskDaily : FullAuditedEntity<Guid>, IMultiTenant
{
public Guid? TenantId { get; set; }
public Guid EmployeeId { get; set; }
public Employee Employee { get; set; }
public Guid TaskId { get; set; }
public ProjectTask Task { get; set; }
public DateTime Date { get; set; }
public Guid WorkedTypeId { get; set; }
public WorkType WorkedType { get; set; }
public int HoursWorked { get; set; } //Çalışılan Saat
public int Progress { get; set; }
public Guid StatusId { get; set; }
public Status Status { get; set; }
public string Description { get; set; }
public string Challenges { get; set; }
public string NextSteps { get; set; }
}

View file

@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using Volo.Abp.Domain.Entities.Auditing;
using Volo.Abp.MultiTenancy;
namespace Erp.Platform.Entities;
public class WorkType : FullAuditedEntity<Guid>, IMultiTenant
{
public Guid? TenantId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public bool IsActive { get; set; }
// public ICollection<ProjectTask> ProjectTasks { get; set; }
}

View file

@ -271,6 +271,7 @@ public class PlatformDbContext :
public DbSet<Entities.Type> Types { get; set; } public DbSet<Entities.Type> Types { get; set; }
public DbSet<Status> Statuses { get; set; } public DbSet<Status> Statuses { get; set; }
public DbSet<TaskType> TaskTypes { get; set; } public DbSet<TaskType> TaskTypes { get; set; }
public DbSet<WorkType> WorkTypes { get; set; }
public DbSet<Category> Categories { get; set; } public DbSet<Category> Categories { get; set; }
public DbSet<Risk> Risks { get; set; } public DbSet<Risk> Risks { get; set; }
public DbSet<Project> Projects { get; set; } public DbSet<Project> Projects { get; set; }
@ -278,6 +279,7 @@ public class PlatformDbContext :
public DbSet<ProjectTeam> ProjectTeams { get; set; } public DbSet<ProjectTeam> ProjectTeams { get; set; }
public DbSet<ProjectPhase> ProjectPhases { get; set; } public DbSet<ProjectPhase> ProjectPhases { get; set; }
public DbSet<ProjectTask> ProjectTasks { get; set; } public DbSet<ProjectTask> ProjectTasks { get; set; }
public DbSet<ProjectTaskDaily> ProjectTaskDailies { get; set; }
#endregion #endregion
public PlatformDbContext(DbContextOptions<PlatformDbContext> options) public PlatformDbContext(DbContextOptions<PlatformDbContext> options)
@ -3268,6 +3270,16 @@ public class PlatformDbContext :
b.Property(x => x.IsActive).HasDefaultValue(true); b.Property(x => x.IsActive).HasDefaultValue(true);
}); });
builder.Entity<WorkType>(b =>
{
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.WorkType)), Prefix.DbSchema);
b.ConfigureByConvention();
b.Property(x => x.Name).IsRequired().HasMaxLength(50);
b.Property(x => x.Description).HasMaxLength(500);
b.Property(x => x.IsActive).HasDefaultValue(true);
});
builder.Entity<Project>(b => builder.Entity<Project>(b =>
{ {
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.Projects)), Prefix.DbSchema); b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.Projects)), Prefix.DbSchema);
@ -3364,6 +3376,29 @@ public class PlatformDbContext :
.OnDelete(DeleteBehavior.Restrict); .OnDelete(DeleteBehavior.Restrict);
}); });
builder.Entity<ProjectTaskDaily>(b =>
{
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.ProjectTaskDaily)), Prefix.DbSchema);
b.ConfigureByConvention();
b.Property(x => x.EmployeeId).IsRequired();
b.Property(x => x.TaskId).IsRequired();
b.Property(x => x.Date).IsRequired();
b.Property(x => x.WorkedTypeId).IsRequired();
b.Property(x => x.HoursWorked).HasDefaultValue(0);
b.Property(x => x.Progress).HasDefaultValue(0);
b.Property(x => x.StatusId).IsRequired();
b.Property(x => x.Description).HasMaxLength(500);
b.Property(x => x.Challenges).HasMaxLength(500);
b.Property(x => x.NextSteps).HasMaxLength(500);
b.HasOne(x => x.Task)
.WithMany(x => x.DailyLogs)
.HasForeignKey(x => x.TaskId)
.OnDelete(DeleteBehavior.Restrict);
});
builder.Entity<ProjectRisk>(b => builder.Entity<ProjectRisk>(b =>
{ {
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.ProjectRisk)), Prefix.DbSchema); b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.ProjectRisk)), Prefix.DbSchema);

View file

@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore;
namespace Erp.Platform.Migrations namespace Erp.Platform.Migrations
{ {
[DbContext(typeof(PlatformDbContext))] [DbContext(typeof(PlatformDbContext))]
[Migration("20251127201919_Initial")] [Migration("20251127214637_Initial")]
partial class Initial partial class Initial
{ {
/// <inheritdoc /> /// <inheritdoc />
@ -10191,7 +10191,7 @@ namespace Erp.Platform.Migrations
b.Property<Guid>("StatusId") b.Property<Guid>("StatusId")
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
b.Property<Guid>("TaskTypeId") b.Property<Guid?>("TaskTypeId")
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
b.Property<Guid?>("TenantId") b.Property<Guid?>("TenantId")
@ -10213,6 +10213,95 @@ namespace Erp.Platform.Migrations
b.ToTable("Prj_T_ProjectTask", (string)null); b.ToTable("Prj_T_ProjectTask", (string)null);
}); });
modelBuilder.Entity("Erp.Platform.Entities.ProjectTaskDaily", b =>
{
b.Property<Guid>("Id")
.HasColumnType("uniqueidentifier");
b.Property<string>("Challenges")
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.Property<DateTime>("CreationTime")
.HasColumnType("datetime2")
.HasColumnName("CreationTime");
b.Property<Guid?>("CreatorId")
.HasColumnType("uniqueidentifier")
.HasColumnName("CreatorId");
b.Property<DateTime>("Date")
.HasColumnType("datetime2");
b.Property<Guid?>("DeleterId")
.HasColumnType("uniqueidentifier")
.HasColumnName("DeleterId");
b.Property<DateTime?>("DeletionTime")
.HasColumnType("datetime2")
.HasColumnName("DeletionTime");
b.Property<string>("Description")
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.Property<Guid>("EmployeeId")
.HasColumnType("uniqueidentifier");
b.Property<int>("HoursWorked")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasDefaultValue(0);
b.Property<bool>("IsDeleted")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(false)
.HasColumnName("IsDeleted");
b.Property<DateTime?>("LastModificationTime")
.HasColumnType("datetime2")
.HasColumnName("LastModificationTime");
b.Property<Guid?>("LastModifierId")
.HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId");
b.Property<string>("NextSteps")
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.Property<int>("Progress")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasDefaultValue(0);
b.Property<Guid>("StatusId")
.HasColumnType("uniqueidentifier");
b.Property<Guid>("TaskId")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("TenantId")
.HasColumnType("uniqueidentifier")
.HasColumnName("TenantId");
b.Property<Guid>("WorkedTypeId")
.HasColumnType("uniqueidentifier");
b.HasKey("Id");
b.HasIndex("EmployeeId");
b.HasIndex("StatusId");
b.HasIndex("TaskId");
b.HasIndex("WorkedTypeId");
b.ToTable("Prj_T_ProjectTaskDaily", (string)null);
});
modelBuilder.Entity("Erp.Platform.Entities.ProjectTeam", b => modelBuilder.Entity("Erp.Platform.Entities.ProjectTeam", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")
@ -13960,6 +14049,64 @@ namespace Erp.Platform.Migrations
b.ToTable("Adm_T_WorkHour", (string)null); b.ToTable("Adm_T_WorkHour", (string)null);
}); });
modelBuilder.Entity("Erp.Platform.Entities.WorkType", b =>
{
b.Property<Guid>("Id")
.HasColumnType("uniqueidentifier");
b.Property<DateTime>("CreationTime")
.HasColumnType("datetime2")
.HasColumnName("CreationTime");
b.Property<Guid?>("CreatorId")
.HasColumnType("uniqueidentifier")
.HasColumnName("CreatorId");
b.Property<Guid?>("DeleterId")
.HasColumnType("uniqueidentifier")
.HasColumnName("DeleterId");
b.Property<DateTime?>("DeletionTime")
.HasColumnType("datetime2")
.HasColumnName("DeletionTime");
b.Property<string>("Description")
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.Property<bool>("IsActive")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(true);
b.Property<bool>("IsDeleted")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(false)
.HasColumnName("IsDeleted");
b.Property<DateTime?>("LastModificationTime")
.HasColumnType("datetime2")
.HasColumnName("LastModificationTime");
b.Property<Guid?>("LastModifierId")
.HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<Guid?>("TenantId")
.HasColumnType("uniqueidentifier")
.HasColumnName("TenantId");
b.HasKey("Id");
b.ToTable("Prj_T_WorkType", (string)null);
});
modelBuilder.Entity("Erp.Platform.Entities.Workcenter", b => modelBuilder.Entity("Erp.Platform.Entities.Workcenter", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")
@ -17742,9 +17889,7 @@ namespace Erp.Platform.Migrations
b.HasOne("Erp.Platform.Entities.TaskType", "TaskType") b.HasOne("Erp.Platform.Entities.TaskType", "TaskType")
.WithMany() .WithMany()
.HasForeignKey("TaskTypeId") .HasForeignKey("TaskTypeId");
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Employee"); b.Navigation("Employee");
@ -17757,6 +17902,41 @@ namespace Erp.Platform.Migrations
b.Navigation("TaskType"); b.Navigation("TaskType");
}); });
modelBuilder.Entity("Erp.Platform.Entities.ProjectTaskDaily", b =>
{
b.HasOne("Erp.Platform.Entities.Employee", "Employee")
.WithMany()
.HasForeignKey("EmployeeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Erp.Platform.Entities.Status", "Status")
.WithMany()
.HasForeignKey("StatusId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Erp.Platform.Entities.ProjectTask", "Task")
.WithMany("DailyLogs")
.HasForeignKey("TaskId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("Erp.Platform.Entities.WorkType", "WorkedType")
.WithMany()
.HasForeignKey("WorkedTypeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Employee");
b.Navigation("Status");
b.Navigation("Task");
b.Navigation("WorkedType");
});
modelBuilder.Entity("Erp.Platform.Entities.ProjectTeam", b => modelBuilder.Entity("Erp.Platform.Entities.ProjectTeam", b =>
{ {
b.HasOne("Erp.Platform.Entities.Employee", "Employee") b.HasOne("Erp.Platform.Entities.Employee", "Employee")
@ -18680,6 +18860,11 @@ namespace Erp.Platform.Migrations
b.Navigation("Projects"); b.Navigation("Projects");
}); });
modelBuilder.Entity("Erp.Platform.Entities.ProjectTask", b =>
{
b.Navigation("DailyLogs");
});
modelBuilder.Entity("Erp.Platform.Entities.Putaway", b => modelBuilder.Entity("Erp.Platform.Entities.Putaway", b =>
{ {
b.Navigation("Conditions"); b.Navigation("Conditions");

View file

@ -1933,6 +1933,28 @@ namespace Erp.Platform.Migrations
table.PrimaryKey("PK_Prj_T_Type", x => x.Id); table.PrimaryKey("PK_Prj_T_Type", x => x.Id);
}); });
migrationBuilder.CreateTable(
name: "Prj_T_WorkType",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
Name = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false),
Description = table.Column<string>(type: "nvarchar(500)", maxLength: 500, nullable: true),
IsActive = table.Column<bool>(type: "bit", nullable: false, defaultValue: true),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
IsDeleted = table.Column<bool>(type: "bit", nullable: false, defaultValue: false),
DeleterId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
DeletionTime = table.Column<DateTime>(type: "datetime2", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Prj_T_WorkType", x => x.Id);
});
migrationBuilder.CreateTable( migrationBuilder.CreateTable(
name: "Prt_T_Interesting", name: "Prt_T_Interesting",
columns: table => new columns: table => new
@ -6929,7 +6951,7 @@ namespace Erp.Platform.Migrations
PhaseId = table.Column<Guid>(type: "uniqueidentifier", nullable: false), PhaseId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
Name = table.Column<string>(type: "nvarchar(200)", maxLength: 200, nullable: false), Name = table.Column<string>(type: "nvarchar(200)", maxLength: 200, nullable: false),
Description = table.Column<string>(type: "nvarchar(500)", maxLength: 500, nullable: true), Description = table.Column<string>(type: "nvarchar(500)", maxLength: 500, nullable: true),
TaskTypeId = table.Column<Guid>(type: "uniqueidentifier", nullable: false), TaskTypeId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
Priority = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false), Priority = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false),
StatusId = table.Column<Guid>(type: "uniqueidentifier", nullable: false), StatusId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
EmployeeId = table.Column<Guid>(type: "uniqueidentifier", nullable: false), EmployeeId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
@ -6976,8 +6998,7 @@ namespace Erp.Platform.Migrations
name: "FK_Prj_T_ProjectTask_Prj_T_TaskType_TaskTypeId", name: "FK_Prj_T_ProjectTask_Prj_T_TaskType_TaskTypeId",
column: x => x.TaskTypeId, column: x => x.TaskTypeId,
principalTable: "Prj_T_TaskType", principalTable: "Prj_T_TaskType",
principalColumn: "Id", principalColumn: "Id");
onDelete: ReferentialAction.Cascade);
}); });
migrationBuilder.CreateTable( migrationBuilder.CreateTable(
@ -7019,6 +7040,59 @@ namespace Erp.Platform.Migrations
onDelete: ReferentialAction.Restrict); onDelete: ReferentialAction.Restrict);
}); });
migrationBuilder.CreateTable(
name: "Prj_T_ProjectTaskDaily",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
EmployeeId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
TaskId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
Date = table.Column<DateTime>(type: "datetime2", nullable: false),
WorkedTypeId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
HoursWorked = table.Column<int>(type: "int", nullable: false, defaultValue: 0),
Progress = table.Column<int>(type: "int", nullable: false, defaultValue: 0),
StatusId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
Description = table.Column<string>(type: "nvarchar(500)", maxLength: 500, nullable: true),
Challenges = table.Column<string>(type: "nvarchar(500)", maxLength: 500, nullable: true),
NextSteps = table.Column<string>(type: "nvarchar(500)", maxLength: 500, nullable: true),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
IsDeleted = table.Column<bool>(type: "bit", nullable: false, defaultValue: false),
DeleterId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
DeletionTime = table.Column<DateTime>(type: "datetime2", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Prj_T_ProjectTaskDaily", x => x.Id);
table.ForeignKey(
name: "FK_Prj_T_ProjectTaskDaily_Hr_T_Employee_EmployeeId",
column: x => x.EmployeeId,
principalTable: "Hr_T_Employee",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_Prj_T_ProjectTaskDaily_Prj_T_ProjectTask_TaskId",
column: x => x.TaskId,
principalTable: "Prj_T_ProjectTask",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
table.ForeignKey(
name: "FK_Prj_T_ProjectTaskDaily_Prj_T_Status_StatusId",
column: x => x.StatusId,
principalTable: "Prj_T_Status",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_Prj_T_ProjectTaskDaily_Prj_T_WorkType_WorkedTypeId",
column: x => x.WorkedTypeId,
principalTable: "Prj_T_WorkType",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex( migrationBuilder.CreateIndex(
name: "IX_AbpAuditLogActions_AuditLogId", name: "IX_AbpAuditLogActions_AuditLogId",
table: "AbpAuditLogActions", table: "AbpAuditLogActions",
@ -8013,6 +8087,26 @@ namespace Erp.Platform.Migrations
table: "Prj_T_ProjectTask", table: "Prj_T_ProjectTask",
column: "TaskTypeId"); column: "TaskTypeId");
migrationBuilder.CreateIndex(
name: "IX_Prj_T_ProjectTaskDaily_EmployeeId",
table: "Prj_T_ProjectTaskDaily",
column: "EmployeeId");
migrationBuilder.CreateIndex(
name: "IX_Prj_T_ProjectTaskDaily_StatusId",
table: "Prj_T_ProjectTaskDaily",
column: "StatusId");
migrationBuilder.CreateIndex(
name: "IX_Prj_T_ProjectTaskDaily_TaskId",
table: "Prj_T_ProjectTaskDaily",
column: "TaskId");
migrationBuilder.CreateIndex(
name: "IX_Prj_T_ProjectTaskDaily_WorkedTypeId",
table: "Prj_T_ProjectTaskDaily",
column: "WorkedTypeId");
migrationBuilder.CreateIndex( migrationBuilder.CreateIndex(
name: "IX_Prj_T_ProjectTeam_EmployeeId", name: "IX_Prj_T_ProjectTeam_EmployeeId",
table: "Prj_T_ProjectTeam", table: "Prj_T_ProjectTeam",
@ -8704,7 +8798,7 @@ namespace Erp.Platform.Migrations
name: "Prj_T_ProjectRisk"); name: "Prj_T_ProjectRisk");
migrationBuilder.DropTable( migrationBuilder.DropTable(
name: "Prj_T_ProjectTask"); name: "Prj_T_ProjectTaskDaily");
migrationBuilder.DropTable( migrationBuilder.DropTable(
name: "Prj_T_ProjectTeam"); name: "Prj_T_ProjectTeam");
@ -8898,6 +8992,12 @@ namespace Erp.Platform.Migrations
migrationBuilder.DropTable( migrationBuilder.DropTable(
name: "Plat_H_NotificationRule"); name: "Plat_H_NotificationRule");
migrationBuilder.DropTable(
name: "Prj_T_ProjectTask");
migrationBuilder.DropTable(
name: "Prj_T_WorkType");
migrationBuilder.DropTable( migrationBuilder.DropTable(
name: "Sas_H_City"); name: "Sas_H_City");

View file

@ -10188,7 +10188,7 @@ namespace Erp.Platform.Migrations
b.Property<Guid>("StatusId") b.Property<Guid>("StatusId")
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
b.Property<Guid>("TaskTypeId") b.Property<Guid?>("TaskTypeId")
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
b.Property<Guid?>("TenantId") b.Property<Guid?>("TenantId")
@ -10210,6 +10210,95 @@ namespace Erp.Platform.Migrations
b.ToTable("Prj_T_ProjectTask", (string)null); b.ToTable("Prj_T_ProjectTask", (string)null);
}); });
modelBuilder.Entity("Erp.Platform.Entities.ProjectTaskDaily", b =>
{
b.Property<Guid>("Id")
.HasColumnType("uniqueidentifier");
b.Property<string>("Challenges")
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.Property<DateTime>("CreationTime")
.HasColumnType("datetime2")
.HasColumnName("CreationTime");
b.Property<Guid?>("CreatorId")
.HasColumnType("uniqueidentifier")
.HasColumnName("CreatorId");
b.Property<DateTime>("Date")
.HasColumnType("datetime2");
b.Property<Guid?>("DeleterId")
.HasColumnType("uniqueidentifier")
.HasColumnName("DeleterId");
b.Property<DateTime?>("DeletionTime")
.HasColumnType("datetime2")
.HasColumnName("DeletionTime");
b.Property<string>("Description")
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.Property<Guid>("EmployeeId")
.HasColumnType("uniqueidentifier");
b.Property<int>("HoursWorked")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasDefaultValue(0);
b.Property<bool>("IsDeleted")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(false)
.HasColumnName("IsDeleted");
b.Property<DateTime?>("LastModificationTime")
.HasColumnType("datetime2")
.HasColumnName("LastModificationTime");
b.Property<Guid?>("LastModifierId")
.HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId");
b.Property<string>("NextSteps")
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.Property<int>("Progress")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasDefaultValue(0);
b.Property<Guid>("StatusId")
.HasColumnType("uniqueidentifier");
b.Property<Guid>("TaskId")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("TenantId")
.HasColumnType("uniqueidentifier")
.HasColumnName("TenantId");
b.Property<Guid>("WorkedTypeId")
.HasColumnType("uniqueidentifier");
b.HasKey("Id");
b.HasIndex("EmployeeId");
b.HasIndex("StatusId");
b.HasIndex("TaskId");
b.HasIndex("WorkedTypeId");
b.ToTable("Prj_T_ProjectTaskDaily", (string)null);
});
modelBuilder.Entity("Erp.Platform.Entities.ProjectTeam", b => modelBuilder.Entity("Erp.Platform.Entities.ProjectTeam", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")
@ -13957,6 +14046,64 @@ namespace Erp.Platform.Migrations
b.ToTable("Adm_T_WorkHour", (string)null); b.ToTable("Adm_T_WorkHour", (string)null);
}); });
modelBuilder.Entity("Erp.Platform.Entities.WorkType", b =>
{
b.Property<Guid>("Id")
.HasColumnType("uniqueidentifier");
b.Property<DateTime>("CreationTime")
.HasColumnType("datetime2")
.HasColumnName("CreationTime");
b.Property<Guid?>("CreatorId")
.HasColumnType("uniqueidentifier")
.HasColumnName("CreatorId");
b.Property<Guid?>("DeleterId")
.HasColumnType("uniqueidentifier")
.HasColumnName("DeleterId");
b.Property<DateTime?>("DeletionTime")
.HasColumnType("datetime2")
.HasColumnName("DeletionTime");
b.Property<string>("Description")
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.Property<bool>("IsActive")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(true);
b.Property<bool>("IsDeleted")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(false)
.HasColumnName("IsDeleted");
b.Property<DateTime?>("LastModificationTime")
.HasColumnType("datetime2")
.HasColumnName("LastModificationTime");
b.Property<Guid?>("LastModifierId")
.HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<Guid?>("TenantId")
.HasColumnType("uniqueidentifier")
.HasColumnName("TenantId");
b.HasKey("Id");
b.ToTable("Prj_T_WorkType", (string)null);
});
modelBuilder.Entity("Erp.Platform.Entities.Workcenter", b => modelBuilder.Entity("Erp.Platform.Entities.Workcenter", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")
@ -17739,9 +17886,7 @@ namespace Erp.Platform.Migrations
b.HasOne("Erp.Platform.Entities.TaskType", "TaskType") b.HasOne("Erp.Platform.Entities.TaskType", "TaskType")
.WithMany() .WithMany()
.HasForeignKey("TaskTypeId") .HasForeignKey("TaskTypeId");
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Employee"); b.Navigation("Employee");
@ -17754,6 +17899,41 @@ namespace Erp.Platform.Migrations
b.Navigation("TaskType"); b.Navigation("TaskType");
}); });
modelBuilder.Entity("Erp.Platform.Entities.ProjectTaskDaily", b =>
{
b.HasOne("Erp.Platform.Entities.Employee", "Employee")
.WithMany()
.HasForeignKey("EmployeeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Erp.Platform.Entities.Status", "Status")
.WithMany()
.HasForeignKey("StatusId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Erp.Platform.Entities.ProjectTask", "Task")
.WithMany("DailyLogs")
.HasForeignKey("TaskId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("Erp.Platform.Entities.WorkType", "WorkedType")
.WithMany()
.HasForeignKey("WorkedTypeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Employee");
b.Navigation("Status");
b.Navigation("Task");
b.Navigation("WorkedType");
});
modelBuilder.Entity("Erp.Platform.Entities.ProjectTeam", b => modelBuilder.Entity("Erp.Platform.Entities.ProjectTeam", b =>
{ {
b.HasOne("Erp.Platform.Entities.Employee", "Employee") b.HasOne("Erp.Platform.Entities.Employee", "Employee")
@ -18677,6 +18857,11 @@ namespace Erp.Platform.Migrations
b.Navigation("Projects"); b.Navigation("Projects");
}); });
modelBuilder.Entity("Erp.Platform.Entities.ProjectTask", b =>
{
b.Navigation("DailyLogs");
});
modelBuilder.Entity("Erp.Platform.Entities.Putaway", b => modelBuilder.Entity("Erp.Platform.Entities.Putaway", b =>
{ {
b.Navigation("Conditions"); b.Navigation("Conditions");

View file

@ -5871,6 +5871,26 @@
"name": "İptal Edildi", "name": "İptal Edildi",
"description": "Projenin iptal edildiğini ifade eder", "description": "Projenin iptal edildiğini ifade eder",
"isActive": true "isActive": true
},
{
"name": "Taslak",
"description": "Projenin taslak aşamasında olduğunu ifade eder",
"isActive": true
},
{
"name": "Gönderildi",
"description": "Projenin onaylandığını ifade eder",
"isActive": true
},
{
"name": "Onaylandı",
"description": "Projenin onaylandığını ifade eder",
"isActive": true
},
{
"name": "Reddedildi",
"description": "Projenin reddildiğini ifade eder",
"isActive": true
} }
], ],
"Projects": [ "Projects": [
@ -6231,5 +6251,55 @@
"progress": 0, "progress": 0,
"isActive": true "isActive": true
} }
],
"ProjectWorkTypes": [
{
"name": "Geliştirme",
"description": "Geliştirme için kullanılan iş türü",
"isActive": true
},
{
"name": "Test",
"description": "Test için kullanılan iş türü",
"isActive": true
},
{
"name": "Tasarım",
"description": "Tasarım için kullanılan iş türü",
"isActive": true
},
{
"name": "Dokümantasyon",
"description": "Dokümantasyon için kullanılan iş türü",
"isActive": true
},
{
"name": "Toplantı",
"description": "Toplantı için kullanılan iş türü",
"isActive": true
},
{
"name": "Araştırma",
"description": "Araştırma için kullanılan iş türü",
"isActive": true
},
{
"name": "Hata Ayıklama",
"description": "Hata ayıklama için kullanılan iş türü",
"isActive": true
},
{
"name": "İnceleme",
"description": "İnceleme için kullanılan iş türü",
"isActive": true
},
{
"name": "Diğer",
"description": "Diğer iş türleri için kullanılan iş türü",
"isActive": true
}
],
"ProjectTaskDailies" : [
] ]
} }

View file

@ -133,6 +133,7 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency
private readonly IRepository<Category, Guid> _projectCategoryRepository; private readonly IRepository<Category, Guid> _projectCategoryRepository;
private readonly IRepository<Risk, Guid> _projectRiskRepository; private readonly IRepository<Risk, Guid> _projectRiskRepository;
private readonly IRepository<TaskType, Guid> _projectTaskTypeRepository; private readonly IRepository<TaskType, Guid> _projectTaskTypeRepository;
private readonly IRepository<WorkType, Guid> _projectWorkTypeRepository;
private readonly IRepository<Project, Guid> _projectRepository; private readonly IRepository<Project, Guid> _projectRepository;
private readonly IRepository<ProjectPhase, Guid> _projectPhaseRepository; private readonly IRepository<ProjectPhase, Guid> _projectPhaseRepository;
private readonly IRepository<ProjectTask, Guid> _projectTaskRepository; private readonly IRepository<ProjectTask, Guid> _projectTaskRepository;
@ -251,6 +252,7 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency
IRepository<Status, Guid> projectStatusRepository, IRepository<Status, Guid> projectStatusRepository,
IRepository<Risk, Guid> projectRiskRepository, IRepository<Risk, Guid> projectRiskRepository,
IRepository<Category, Guid> projectCategoryRepository, IRepository<Category, Guid> projectCategoryRepository,
IRepository<WorkType, Guid> projectWorkTypeRepository,
IRepository<TaskType, Guid> projectTaskTypeRepository, IRepository<TaskType, Guid> projectTaskTypeRepository,
IRepository<Project, Guid> projectRepository, IRepository<Project, Guid> projectRepository,
IRepository<ProjectPhase, Guid> projectPhaseRepository, IRepository<ProjectPhase, Guid> projectPhaseRepository,
@ -372,6 +374,7 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency
_projectCategoryRepository = projectCategoryRepository; _projectCategoryRepository = projectCategoryRepository;
_projectRiskRepository = projectRiskRepository; _projectRiskRepository = projectRiskRepository;
_projectTaskTypeRepository = projectTaskTypeRepository; _projectTaskTypeRepository = projectTaskTypeRepository;
_projectWorkTypeRepository = projectWorkTypeRepository;
_projectRepository = projectRepository; _projectRepository = projectRepository;
_projectPhaseRepository = projectPhaseRepository; _projectPhaseRepository = projectPhaseRepository;
_projectTaskRepository = projectTaskRepository; _projectTaskRepository = projectTaskRepository;
@ -2633,6 +2636,20 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency
IsActive = item.IsActive IsActive = item.IsActive
}, autoSave: true); }, autoSave: true);
} }
foreach (var item in items.ProjectWorkTypes)
{
var exists = await _projectWorkTypeRepository.AnyAsync(x => x.Name == item.Name);
if (exists)
continue;
await _projectWorkTypeRepository.InsertAsync(new WorkType
{
Name = item.Name,
Description = item.Description,
IsActive = item.IsActive
}, autoSave: true);
}
} }
} }

View file

@ -134,8 +134,31 @@ public class TenantSeederDto
public List<ProjectRiskSeedDto> ProjectRisks { get; set; } public List<ProjectRiskSeedDto> ProjectRisks { get; set; }
public List<ProjectCategorySeedDto> ProjectCategories { get; set; } public List<ProjectCategorySeedDto> ProjectCategories { get; set; }
public List<ProjectTaskTypeSeedDto> ProjectTaskTypes { get; set; } public List<ProjectTaskTypeSeedDto> ProjectTaskTypes { get; set; }
public List<ProjectWorkTypeSeedDto> ProjectWorkTypes { get; set; }
public List<ProjectPhaseSeedDto> ProjectPhases { get; set; } public List<ProjectPhaseSeedDto> ProjectPhases { get; set; }
public List<ProjectTaskSeedDto> ProjectTasks { get; set; } public List<ProjectTaskSeedDto> ProjectTasks { get; set; }
public List<ProjectTaskDailySeedDto> ProjectTaskDailies { get; set; }
}
public class ProjectTaskDailySeedDto
{
public string EmployeeCode { get; set; }
public string TaskCode { get; set; }
public DateTime Date { get; set; }
public string WorkedTypeCode { get; set; }
public int HoursWorked { get; set; } //Çalışılan Saat
public int Progress { get; set; }
public string StatusCode { get; set; }
public string Description { get; set; }
public string Challenges { get; set; }
public string NextSteps { get; set; }
}
public class ProjectWorkTypeSeedDto
{
public string Name { get; set; }
public string Description { get; set; }
public bool IsActive { get; set; }
} }
public class ProjectTaskSeedDto public class ProjectTaskSeedDto