Project Tasks

This commit is contained in:
Sedat Öztürk 2025-11-28 00:00:02 +03:00
parent 8c5a141c8e
commit ba78863509
32 changed files with 2597 additions and 750 deletions

View file

@ -27,6 +27,31 @@ public static class LookupQueryValues
$"ORDER BY \"{DisplayExpr}\";" $"ORDER BY \"{DisplayExpr}\";"
}); });
public static string DefaultLookupQuery(
string TableName,
string ValueExpr,
string DisplayExpr,
bool isTable = true,
bool isDeleted = false)
{
return $"SELECT " +
$"\"{ValueExpr}\" AS \"Key\", " +
$"\"{DisplayExpr}\" AS \"Name\" " +
$"FROM \"{(isTable ? TableNameResolver.GetFullTableName($"{TableName}") : TableNameResolver.GetFullViewName($"{TableName}"))}\" " +
(!isDeleted ? "" : $"WHERE \"IsDeleted\" = 'false'") +
$"ORDER BY \"{DisplayExpr}\";";
}
public static string ProjectPhaseValues =
$"SELECT " +
$"\"Id\" AS \"Key\", " +
$"\"Name\" AS \"Name\" " +
$"FROM \"{FullNameTable(TableNameEnum.ProjectPhase)}\" " +
$"WHERE " +
$"(\"ProjectId\" = @param0 OR @param0 IS NULL) " +
$"AND \"IsDeleted\" = 'false' " +
$"ORDER BY \"Name\";";
public static string TechnicalSkillsValues = public static string TechnicalSkillsValues =
$"SELECT " + $"SELECT " +
$"\"Name\" AS \"Key\", " + $"\"Name\" AS \"Key\", " +

View file

@ -9577,29 +9577,41 @@
"tr": "Stok Hareketleri", "tr": "Stok Hareketleri",
"en": "Stock Movements" "en": "Stock Movements"
}, },
{
"resourceName": "Platform",
"key": "App.Project.Definitions",
"tr": "Tanımlamalar",
"en": "Definitions"
},
{ {
"resourceName": "Platform", "resourceName": "Platform",
"key": "App.Project.Type", "key": "App.Project.Type",
"tr": "Proje Türleri", "tr": "Türler",
"en": "Project Types" "en": "Types"
}, },
{ {
"resourceName": "Platform", "resourceName": "Platform",
"key": "App.Project.Status", "key": "App.Project.Status",
"tr": "Proje Durumları", "tr": "Durumlar",
"en": "Project Statuses" "en": "Statuses"
}, },
{ {
"resourceName": "Platform", "resourceName": "Platform",
"key": "App.Project.Category", "key": "App.Project.Category",
"tr": "Proje Kategorileri", "tr": "Kategoriler",
"en": "Project Categories" "en": "Categories"
}, },
{ {
"resourceName": "Platform", "resourceName": "Platform",
"key": "App.Project.Risk", "key": "App.Project.Risk",
"tr": "Proje Riskleri", "tr": "Riskler",
"en": "Project Risks" "en": "Risks"
},
{
"resourceName": "Platform",
"key": "App.Project.TaskType",
"tr": "Görev Türleri",
"en": "Task Types"
}, },
{ {
"resourceName": "Platform", "resourceName": "Platform",
@ -9609,15 +9621,27 @@
}, },
{ {
"resourceName": "Platform", "resourceName": "Platform",
"key": "App.Project.Phase", "key": "App.Project.ProjectPhase",
"tr": "Aşamalar", "tr": "Aşamalar",
"en": "Phases" "en": "Phases"
}, },
{ {
"resourceName": "Platform", "resourceName": "Platform",
"key": "App.Project.TaskType", "key": "App.Project.ProjectTask",
"tr": "Görev Türleri", "tr": "Görevler",
"en": "Task Types" "en": "Tasks"
},
{
"resourceName": "Platform",
"key": "App.Project.ProjectRisk",
"tr": "Proje Riskleri",
"en": "Project Risks"
},
{
"resourceName": "Platform",
"key": "App.Project.ProjectTeam",
"tr": "Proje Ekipleri",
"en": "Project Teams"
}, },
{ {
"resourceName": "Platform", "resourceName": "Platform",

View file

@ -1316,8 +1316,9 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
new EditingFormItemDto { Order = 8, DataField = "BaseSalary", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox, EditorOptions = EditorOptionValues.NumberStandartFormat }, new EditingFormItemDto { Order = 8, DataField = "BaseSalary", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox, EditorOptions = EditorOptionValues.NumberStandartFormat },
new EditingFormItemDto { Order = 9, DataField = "Currency", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, new EditingFormItemDto { Order = 9, DataField = "Currency", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
new EditingFormItemDto { Order = 10, DataField = "PayrollGroup", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, new EditingFormItemDto { Order = 10, DataField = "PayrollGroup", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
new EditingFormItemDto { Order = 11, DataField = "BankAccountId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, new EditingFormItemDto { Order = 11, DataField = "BankId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
new EditingFormItemDto { Order = 12, DataField = "BadgeId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, new EditingFormItemDto { Order = 12, DataField = "IbanNumber", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox },
new EditingFormItemDto { Order = 13, DataField = "BadgeId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
]}, ]},
new() { new() {
Order=4, Caption="Emergency", ColCount=1, ColSpan=1, ItemType="group", Items =[ Order=4, Caption="Emergency", ColCount=1, ColSpan=1, ItemType="group", Items =[
@ -1937,14 +1938,29 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
ListFormCode = listForm.ListFormCode, ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En, CultureName = LanguageCodes.En,
SourceDbType = DbType.Guid, SourceDbType = DbType.Guid,
FieldName = "BankAccountId", FieldName = "BankId",
Width = 100, Width = 100,
ListOrderNo = 33, ListOrderNo = 33,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
IsDeleted = false, IsDeleted = false,
AllowSearch = true, AllowSearch = true,
LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.BankAccount), "Id", "AccountNumber"), LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Bank), "Id", "Name"),
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.String,
FieldName = "IbanNumber",
Width = 100,
ListOrderNo = 34,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name), PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson PivotSettingsJson = DefaultPivotSettingsJson
@ -1955,7 +1971,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
SourceDbType = DbType.Guid, SourceDbType = DbType.Guid,
FieldName = "BadgeId", FieldName = "BadgeId",
Width = 100, Width = 100,
ListOrderNo = 34, ListOrderNo = 35,
Visible = true, Visible = true,
IsActive = true, IsActive = true,
IsDeleted = false, IsDeleted = false,

View file

@ -2576,6 +2576,16 @@
}, },
{ {
"ParentCode": "App.Project", "ParentCode": "App.Project",
"Code": "App.Project.Definitions",
"DisplayName": "App.Project.Definitions",
"Order": 1,
"Url": null,
"Icon": "FcFilingCabinet",
"RequiredPermissionName": null,
"IsDisabled": false
},
{
"ParentCode": "App.Project.Definitions",
"Code": "App.Project.Type", "Code": "App.Project.Type",
"DisplayName": "App.Project.Type", "DisplayName": "App.Project.Type",
"Order": 1, "Order": 1,
@ -2585,7 +2595,7 @@
"IsDisabled": false "IsDisabled": false
}, },
{ {
"ParentCode": "App.Project", "ParentCode": "App.Project.Definitions",
"Code": "App.Project.Status", "Code": "App.Project.Status",
"DisplayName": "App.Project.Status", "DisplayName": "App.Project.Status",
"Order": 2, "Order": 2,
@ -2595,7 +2605,7 @@
"IsDisabled": false "IsDisabled": false
}, },
{ {
"ParentCode": "App.Project", "ParentCode": "App.Project.Definitions",
"Code": "App.Project.Category", "Code": "App.Project.Category",
"DisplayName": "App.Project.Category", "DisplayName": "App.Project.Category",
"Order": 3, "Order": 3,
@ -2605,7 +2615,7 @@
"IsDisabled": false "IsDisabled": false
}, },
{ {
"ParentCode": "App.Project", "ParentCode": "App.Project.Definitions",
"Code": "App.Project.Risk", "Code": "App.Project.Risk",
"DisplayName": "App.Project.Risk", "DisplayName": "App.Project.Risk",
"Order": 4, "Order": 4,
@ -2615,7 +2625,7 @@
"IsDisabled": false "IsDisabled": false
}, },
{ {
"ParentCode": "App.Project", "ParentCode": "App.Project.Definitions",
"Code": "App.Project.TaskType", "Code": "App.Project.TaskType",
"DisplayName": "App.Project.TaskType", "DisplayName": "App.Project.TaskType",
"Order": 5, "Order": 5,
@ -2628,7 +2638,7 @@
"ParentCode": "App.Project", "ParentCode": "App.Project",
"Code": "App.Project.Projects", "Code": "App.Project.Projects",
"DisplayName": "App.Project.Projects", "DisplayName": "App.Project.Projects",
"Order": 6, "Order": 3,
"Url": "/admin/list/App.Project.Projects", "Url": "/admin/list/App.Project.Projects",
"Icon": "FcTodoList", "Icon": "FcTodoList",
"RequiredPermissionName": "App.Project.Projects", "RequiredPermissionName": "App.Project.Projects",
@ -2636,39 +2646,29 @@
}, },
{ {
"ParentCode": "App.Project", "ParentCode": "App.Project",
"Code": "App.Project.Phase", "Code": "App.Project.ProjectPhase",
"DisplayName": "App.Project.Phase", "DisplayName": "App.Project.ProjectPhase",
"Order": 7, "Order": 4,
"Url": "/admin/list/App.Project.Phase", "Url": "/admin/list/App.Project.ProjectPhase",
"Icon": "FcProcess", "Icon": "FcProcess",
"RequiredPermissionName": "App.Project.Phase", "RequiredPermissionName": "App.Project.ProjectPhase",
"IsDisabled": false "IsDisabled": false
}, },
{ {
"ParentCode": "App.Project", "ParentCode": "App.Project",
"Code": "App.Project.Task", "Code": "App.Project.ProjectTask",
"DisplayName": "App.Project.Task", "DisplayName": "App.Project.ProjectTask",
"Order": 8, "Order": 5,
"Url": "/admin/projects/tasks", "Url": "/admin/list/App.Project.ProjectTask",
"Icon": "FcInspection", "Icon": "FcInspection",
"RequiredPermissionName": "App.Project.Task", "RequiredPermissionName": "App.Project.ProjectTask",
"IsDisabled": false
},
{
"ParentCode": "App.Project",
"Code": "App.Project.Activity",
"DisplayName": "App.Project.Activity",
"Order": 9,
"Url": "/admin/projects/activities",
"Icon": "FcServices",
"RequiredPermissionName": "App.Project.Activity",
"IsDisabled": false "IsDisabled": false
}, },
{ {
"ParentCode": "App.Project", "ParentCode": "App.Project",
"Code": "App.Project.Workload", "Code": "App.Project.Workload",
"DisplayName": "App.Project.Workload", "DisplayName": "App.Project.Workload",
"Order": 10, "Order": 7,
"Url": "/admin/projects/workload", "Url": "/admin/projects/workload",
"Icon": "FcComboChart", "Icon": "FcComboChart",
"RequiredPermissionName": "App.Project.Workload", "RequiredPermissionName": "App.Project.Workload",
@ -2678,7 +2678,7 @@
"ParentCode": "App.Project", "ParentCode": "App.Project",
"Code": "App.Project.CostTracking", "Code": "App.Project.CostTracking",
"DisplayName": "App.Project.CostTracking", "DisplayName": "App.Project.CostTracking",
"Order": 11, "Order": 8,
"Url": "/admin/projects/cost-tracking", "Url": "/admin/projects/cost-tracking",
"Icon": "FcMoneyTransfer", "Icon": "FcMoneyTransfer",
"RequiredPermissionName": "App.Project.CostTracking", "RequiredPermissionName": "App.Project.CostTracking",
@ -2688,7 +2688,7 @@
"ParentCode": "App.Project", "ParentCode": "App.Project",
"Code": "App.Project.DailyUpdates", "Code": "App.Project.DailyUpdates",
"DisplayName": "App.Project.DailyUpdates", "DisplayName": "App.Project.DailyUpdates",
"Order": 12, "Order": 9,
"Url": "/admin/projects/daily-updates", "Url": "/admin/projects/daily-updates",
"Icon": "FcConferenceCall", "Icon": "FcConferenceCall",
"RequiredPermissionName": "App.Project.DailyUpdates", "RequiredPermissionName": "App.Project.DailyUpdates",

View file

@ -8268,133 +8268,6 @@
"MultiTenancySide": 3, "MultiTenancySide": 3,
"MenuGroup": "Erp" "MenuGroup": "Erp"
}, },
{
"GroupName": "App.Project",
"Name": "App.Project.Projects",
"ParentName": null,
"DisplayName": "App.Project.Projects",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.Projects.Create",
"ParentName": "App.Project.Projects",
"DisplayName": "Create",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.Projects.Update",
"ParentName": "App.Project.Projects",
"DisplayName": "Update",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.Projects.Delete",
"ParentName": "App.Project.Projects",
"DisplayName": "Delete",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.Projects.Export",
"ParentName": "App.Project.Projects",
"DisplayName": "Export",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.Projects.Import",
"ParentName": "App.Project.Projects",
"DisplayName": "Import",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.Projects.Note",
"ParentName": "App.Project.Projects",
"DisplayName": "Note",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.Phase",
"ParentName": null,
"DisplayName": "App.Project.Phase",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.Phase.Create",
"ParentName": "App.Project.Phase",
"DisplayName": "Create",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.Phase.Update",
"ParentName": "App.Project.Phase",
"DisplayName": "Update",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.Phase.Delete",
"ParentName": "App.Project.Phase",
"DisplayName": "Delete",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.Phase.Export",
"ParentName": "App.Project.Phase",
"DisplayName": "Export",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.Phase.Import",
"ParentName": "App.Project.Phase",
"DisplayName": "Import",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.Phase.Note",
"ParentName": "App.Project.Phase",
"DisplayName": "Note",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{ {
"GroupName": "App.Project", "GroupName": "App.Project",
"Name": "App.Project.TaskType", "Name": "App.Project.TaskType",
@ -8461,17 +8334,17 @@
{ {
"GroupName": "App.Project", "GroupName": "App.Project",
"Name": "App.Project.Task", "Name": "App.Project.Projects",
"ParentName": null, "ParentName": null,
"DisplayName": "App.Project.Task", "DisplayName": "App.Project.Projects",
"IsEnabled": true, "IsEnabled": true,
"MultiTenancySide": 3, "MultiTenancySide": 3,
"MenuGroup": "Erp" "MenuGroup": "Erp"
}, },
{ {
"GroupName": "App.Project", "GroupName": "App.Project",
"Name": "App.Project.Task.Create", "Name": "App.Project.Projects.Create",
"ParentName": "App.Project.Task", "ParentName": "App.Project.Projects",
"DisplayName": "Create", "DisplayName": "Create",
"IsEnabled": true, "IsEnabled": true,
"MultiTenancySide": 3, "MultiTenancySide": 3,
@ -8479,8 +8352,8 @@
}, },
{ {
"GroupName": "App.Project", "GroupName": "App.Project",
"Name": "App.Project.Task.Update", "Name": "App.Project.Projects.Update",
"ParentName": "App.Project.Task", "ParentName": "App.Project.Projects",
"DisplayName": "Update", "DisplayName": "Update",
"IsEnabled": true, "IsEnabled": true,
"MultiTenancySide": 3, "MultiTenancySide": 3,
@ -8488,8 +8361,8 @@
}, },
{ {
"GroupName": "App.Project", "GroupName": "App.Project",
"Name": "App.Project.Task.Delete", "Name": "App.Project.Projects.Delete",
"ParentName": "App.Project.Task", "ParentName": "App.Project.Projects",
"DisplayName": "Delete", "DisplayName": "Delete",
"IsEnabled": true, "IsEnabled": true,
"MultiTenancySide": 3, "MultiTenancySide": 3,
@ -8497,8 +8370,8 @@
}, },
{ {
"GroupName": "App.Project", "GroupName": "App.Project",
"Name": "App.Project.Task.Export", "Name": "App.Project.Projects.Export",
"ParentName": "App.Project.Task", "ParentName": "App.Project.Projects",
"DisplayName": "Export", "DisplayName": "Export",
"IsEnabled": true, "IsEnabled": true,
"MultiTenancySide": 3, "MultiTenancySide": 3,
@ -8506,8 +8379,8 @@
}, },
{ {
"GroupName": "App.Project", "GroupName": "App.Project",
"Name": "App.Project.Task.Import", "Name": "App.Project.Projects.Import",
"ParentName": "App.Project.Task", "ParentName": "App.Project.Projects",
"DisplayName": "Import", "DisplayName": "Import",
"IsEnabled": true, "IsEnabled": true,
"MultiTenancySide": 3, "MultiTenancySide": 3,
@ -8515,8 +8388,8 @@
}, },
{ {
"GroupName": "App.Project", "GroupName": "App.Project",
"Name": "App.Project.Task.Note", "Name": "App.Project.Projects.Note",
"ParentName": "App.Project.Task", "ParentName": "App.Project.Projects",
"DisplayName": "Note", "DisplayName": "Note",
"IsEnabled": true, "IsEnabled": true,
"MultiTenancySide": 3, "MultiTenancySide": 3,
@ -8524,8 +8397,263 @@
}, },
{ {
"GroupName": "App.Project", "GroupName": "App.Project",
"Name": "App.Project.Task.Widget", "Name": "App.Project.ProjectPhase",
"ParentName": "App.Project.Task", "ParentName": null,
"DisplayName": "App.Project.ProjectPhase",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.ProjectPhase.Create",
"ParentName": "App.Project.ProjectPhase",
"DisplayName": "Create",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.ProjectPhase.Update",
"ParentName": "App.Project.ProjectPhase",
"DisplayName": "Update",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.ProjectPhase.Delete",
"ParentName": "App.Project.ProjectPhase",
"DisplayName": "Delete",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.ProjectPhase.Export",
"ParentName": "App.Project.ProjectPhase",
"DisplayName": "Export",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.ProjectPhase.Import",
"ParentName": "App.Project.ProjectPhase",
"DisplayName": "Import",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.ProjectPhase.Note",
"ParentName": "App.Project.ProjectPhase",
"DisplayName": "Note",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.ProjectRisk",
"ParentName": null,
"DisplayName": "App.Project.ProjectRisk",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.ProjectRisk.Create",
"ParentName": "App.Project.ProjectRisk",
"DisplayName": "Create",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.ProjectRisk.Update",
"ParentName": "App.Project.ProjectRisk",
"DisplayName": "Update",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.ProjectRisk.Delete",
"ParentName": "App.Project.ProjectRisk",
"DisplayName": "Delete",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.ProjectRisk.Export",
"ParentName": "App.Project.ProjectRisk",
"DisplayName": "Export",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.ProjectRisk.Import",
"ParentName": "App.Project.ProjectRisk",
"DisplayName": "Import",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.ProjectRisk.Note",
"ParentName": "App.Project.ProjectRisk",
"DisplayName": "Note",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.ProjectTeam",
"ParentName": null,
"DisplayName": "App.Project.ProjectTeam",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.ProjectTeam.Create",
"ParentName": "App.Project.ProjectTeam",
"DisplayName": "Create",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.ProjectTeam.Update",
"ParentName": "App.Project.ProjectTeam",
"DisplayName": "Update",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.ProjectTeam.Delete",
"ParentName": "App.Project.ProjectTeam",
"DisplayName": "Delete",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.ProjectTeam.Export",
"ParentName": "App.Project.ProjectTeam",
"DisplayName": "Export",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.ProjectTeam.Import",
"ParentName": "App.Project.ProjectTeam",
"DisplayName": "Import",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.ProjectTeam.Note",
"ParentName": "App.Project.ProjectTeam",
"DisplayName": "Note",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.ProjectTask",
"ParentName": null,
"DisplayName": "App.Project.ProjectTask",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.ProjectTask.Create",
"ParentName": "App.Project.ProjectTask",
"DisplayName": "Create",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.ProjectTask.Update",
"ParentName": "App.Project.ProjectTask",
"DisplayName": "Update",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.ProjectTask.Delete",
"ParentName": "App.Project.ProjectTask",
"DisplayName": "Delete",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.ProjectTask.Export",
"ParentName": "App.Project.ProjectTask",
"DisplayName": "Export",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.ProjectTask.Import",
"ParentName": "App.Project.ProjectTask",
"DisplayName": "Import",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.ProjectTask.Note",
"ParentName": "App.Project.ProjectTask",
"DisplayName": "Note",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Project",
"Name": "App.Project.ProjectTask.Widget",
"ParentName": "App.Project.ProjectTask",
"DisplayName": "Widget", "DisplayName": "Widget",
"IsEnabled": true, "IsEnabled": true,
"MultiTenancySide": 3, "MultiTenancySide": 3,

View file

@ -36,6 +36,10 @@ public class SeederUtils
{ {
await SetSubFormsJsonAsync(cloneForm, subFormsJson); await SetSubFormsJsonAsync(cloneForm, subFormsJson);
} }
else
{
Console.WriteLine($"ListForm with code {listFormCode} not found!");
}
} }
public async Task<ListForm> CloneListFormWithFieldsAsync(string listFormCode, string newListFormCode, bool copyFormFields = true) public async Task<ListForm> CloneListFormWithFieldsAsync(string listFormCode, string newListFormCode, bool copyFormFields = true)
@ -43,6 +47,8 @@ public class SeederUtils
var listForm = await _listFormRepository.FirstOrDefaultAsync(f => f.ListFormCode == listFormCode); var listForm = await _listFormRepository.FirstOrDefaultAsync(f => f.ListFormCode == listFormCode);
if (listForm == null) if (listForm == null)
{ {
Console.WriteLine($"ListForm with code {listFormCode} not found!");
return null; return null;
} }

View file

@ -3,6 +3,7 @@
public static class ListFormTabTypeEnum public static class ListFormTabTypeEnum
{ {
public const string List = "List"; public const string List = "List";
public const string Tree = "Tree";
public const string Form = "Form"; public const string Form = "Form";
public const string Chart = "Chart"; public const string Chart = "Chart";
public const string Pivot = "Pivot"; public const string Pivot = "Pivot";

View file

@ -188,11 +188,14 @@ public enum TableNameEnum
Bom, Bom,
BomOperation, BomOperation,
BomComponent, BomComponent,
Type,
Status,
Risk,
Category,
TaskType,
Projects, Projects,
ProjectType,
ProjectStatus,
ProjectRisk, ProjectRisk,
ProjectTeam,
ProjectPhase, ProjectPhase,
ProjectCategory, ProjectTask,
ProjectTaskType
} }

View file

@ -227,13 +227,16 @@ public static class TableNameResolver
{ nameof(TableNameEnum.BomComponent), (TablePrefix.TenantByName, MenuPrefix.Mrp) }, { nameof(TableNameEnum.BomComponent), (TablePrefix.TenantByName, MenuPrefix.Mrp) },
// 🔹 R&D // 🔹 R&D
{ nameof(TableNameEnum.ProjectType), (TablePrefix.TenantByName, MenuPrefix.Project) }, { nameof(TableNameEnum.Type), (TablePrefix.TenantByName, MenuPrefix.Project) },
{ nameof(TableNameEnum.ProjectStatus), (TablePrefix.TenantByName, MenuPrefix.Project) }, { nameof(TableNameEnum.Status), (TablePrefix.TenantByName, MenuPrefix.Project) },
{ nameof(TableNameEnum.ProjectRisk), (TablePrefix.TenantByName, MenuPrefix.Project) }, { nameof(TableNameEnum.Risk), (TablePrefix.TenantByName, MenuPrefix.Project) },
{ nameof(TableNameEnum.ProjectCategory), (TablePrefix.TenantByName, MenuPrefix.Project) }, { nameof(TableNameEnum.Category), (TablePrefix.TenantByName, MenuPrefix.Project) },
{ nameof(TableNameEnum.ProjectPhase), (TablePrefix.TenantByName, MenuPrefix.Project) }, { nameof(TableNameEnum.TaskType), (TablePrefix.TenantByName, MenuPrefix.Project) },
{ nameof(TableNameEnum.Projects), (TablePrefix.TenantByName, MenuPrefix.Project) }, { nameof(TableNameEnum.Projects), (TablePrefix.TenantByName, MenuPrefix.Project) },
{ nameof(TableNameEnum.ProjectTaskType), (TablePrefix.TenantByName, MenuPrefix.Project) }, { nameof(TableNameEnum.ProjectRisk), (TablePrefix.TenantByName, MenuPrefix.Project) },
{ nameof(TableNameEnum.ProjectTeam), (TablePrefix.TenantByName, MenuPrefix.Project) },
{ nameof(TableNameEnum.ProjectPhase), (TablePrefix.TenantByName, MenuPrefix.Project) },
{ nameof(TableNameEnum.ProjectTask), (TablePrefix.TenantByName, MenuPrefix.Project) },
}; };
public static string GetFullTableName(string tableName) public static string GetFullTableName(string tableName)

View file

@ -564,11 +564,14 @@ public static class SeedConsts
public const string Default = Prefix.App + ".Project"; public const string Default = Prefix.App + ".Project";
public const string Type = Default + ".Type"; public const string Type = Default + ".Type";
public const string Status = Default + ".Status"; public const string Status = Default + ".Status";
public const string Projects = Default + ".Projects";
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 Phase = Default + ".Phase";
public const string TaskType = Default + ".TaskType"; public const string TaskType = Default + ".TaskType";
public const string Projects = Default + ".Projects";
public const string ProjectPhase = Default + ".ProjectPhase";
public const string ProjectRisk = Default + ".ProjectRisk";
public const string ProjectTeam = Default + ".ProjectTeam";
public const string ProjectTask = Default + ".ProjectTask";
} }
public static class Mrp public static class Mrp

View file

@ -5,7 +5,7 @@ using Volo.Abp.MultiTenancy;
namespace Erp.Platform.Entities; namespace Erp.Platform.Entities;
public class ProjectCategory : FullAuditedEntity<Guid>, IMultiTenant public class Category : FullAuditedEntity<Guid>, IMultiTenant
{ {
public Guid? TenantId { get; set; } public Guid? TenantId { get; set; }

View file

@ -15,9 +15,9 @@ public class Project : FullAuditedEntity<Guid>, IMultiTenant
public string Description { get; set; } public string Description { get; set; }
public Guid? ProjectTypeId { get; set; } //Dahili, Müşteri, Araştırma, Bakım, Geliştirme public Guid? ProjectTypeId { get; set; } //Dahili, Müşteri, Araştırma, Bakım, Geliştirme
public ProjectType ProjectType { get; set; } public Type ProjectType { get; set; }
public Guid? StatusId { get; set; } //Planlanıyor, Devam Ediyor, Tamamlandı, Beklemede, İptal Edildi public Guid? StatusId { get; set; } //Planlanıyor, Devam Ediyor, Tamamlandı, Beklemede, İptal Edildi
public ProjectStatus Status { get; set; } public Status Status { get; set; }
public string Priority { get; set; } //Düşük, Orta, Yüksek, Kritik, Acil public string Priority { get; set; } //Düşük, Orta, Yüksek, Kritik, Acil
public Guid? ManagerId { get; set; } public Guid? ManagerId { get; set; }
public Employee Manager { get; set; } public Employee Manager { get; set; }
@ -37,8 +37,8 @@ public class Project : FullAuditedEntity<Guid>, IMultiTenant
public bool IsActive { get; set; } public bool IsActive { get; set; }
// public ICollection<ProjectPhase> Phases { get; set; } public ICollection<ProjectPhase> Phases { get; set; }
// public ICollection<ProjectTask> Tasks { get; set; } public ICollection<ProjectTask> Tasks { get; set; }
// public ICollection<ProjectRisk> Risks { get; set; } public ICollection<ProjectRisk> Risks { get; set; }
// public ICollection<ProjectDocument> Documents { get; set; } public ICollection<ProjectTeam> Teams { get; set; }
} }

View file

@ -12,8 +12,8 @@ public class ProjectPhase : FullAuditedEntity<Guid>, IMultiTenant
public Guid? ProjectId { get; set; } public Guid? ProjectId { get; set; }
public Project? Project { get; set; } public Project? Project { get; set; }
public Guid? ProjectCategoryId { get; set; } public Guid? CategoryId { get; set; }
public ProjectCategory? ProjectCategory { get; set; } public Category? Category { get; set; }
public string Code { get; set; } public string Code { get; set; }
public string Name { get; set; } public string Name { get; set; }
@ -32,7 +32,7 @@ public class ProjectPhase : FullAuditedEntity<Guid>, IMultiTenant
public string Risks { get; set; } public string Risks { get; set; }
public Guid? StatusId { get; set; } public Guid? StatusId { get; set; }
public ProjectStatus? Status { get; set; } public Status? Status { get; set; }
public bool IsActive { get; set; } public bool IsActive { get; set; }

View file

@ -1,5 +1,4 @@
using System; using System;
using System.Collections.Generic;
using Volo.Abp.Domain.Entities.Auditing; using Volo.Abp.Domain.Entities.Auditing;
using Volo.Abp.MultiTenancy; using Volo.Abp.MultiTenancy;
@ -9,10 +8,9 @@ public class ProjectRisk : FullAuditedEntity<Guid>, IMultiTenant
{ {
public Guid? TenantId { get; set; } public Guid? TenantId { get; set; }
public string Name { get; set; } public Guid? ProjectId { get; set; }
public string Description { get; set; } public Project? Project { get; set; }
public bool IsActive { get; set; }
public ICollection<ProjectPhase> ProjectPhases { get; set; } public Guid? RiskId { get; set; }
public Risk? Risk { get; set; }
} }

View file

@ -0,0 +1,36 @@
using System;
using Volo.Abp.Domain.Entities.Auditing;
using Volo.Abp.MultiTenancy;
namespace Erp.Platform.Entities;
public class ProjectTask : FullAuditedEntity<Guid>, IMultiTenant
{
public Guid? TenantId { get; set; }
public Guid? ProjectId { get; set; }
public Project? Project { get; set; }
public Guid? PhaseId { get; set; }
public ProjectPhase? Phase { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public Guid? TaskTypeId { get; set; }
public TaskType? TaskType { get; set; }
public string Priority { get; set; }
public Guid? StatusId { get; set; }
public Status? Status { get; set; }
public Guid? EmployeeId { get; set; }
public Employee? Employee { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public int Progress { get; set; }
public bool IsActive { get; set; }
}

View file

@ -0,0 +1,19 @@
using System;
using Volo.Abp.Domain.Entities.Auditing;
using Volo.Abp.MultiTenancy;
namespace Erp.Platform.Entities;
public class ProjectTeam : FullAuditedEntity<Guid>, IMultiTenant
{
public Guid? TenantId { get; set; }
public Guid? ProjectId { get; set; }
public Project? Project { get; set; }
public Guid? EmployeeId { get; set; }
public Employee? Employee { get; set; }
public Guid? ManagerId { get; set; }
public Employee? Manager { get; set; }
}

View file

@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using Volo.Abp.Domain.Entities.Auditing;
using Volo.Abp.MultiTenancy;
namespace Erp.Platform.Entities;
public class Risk : 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<ProjectPhase> ProjectPhases { get; set; }
public ICollection<ProjectRisk> ProjectRisks { get; set; }
}

View file

@ -5,7 +5,7 @@ using Volo.Abp.MultiTenancy;
namespace Erp.Platform.Entities; namespace Erp.Platform.Entities;
public class ProjectTaskType : FullAuditedEntity<Guid>, IMultiTenant public class Status : FullAuditedEntity<Guid>, IMultiTenant
{ {
public Guid? TenantId { get; set; } public Guid? TenantId { get; set; }
@ -14,5 +14,7 @@ public class ProjectTaskType : FullAuditedEntity<Guid>, IMultiTenant
public bool IsActive { get; set; } public bool IsActive { get; set; }
public ICollection<Project> Projects { get; set; } public ICollection<Project> Projects { get; set; }
public ICollection<ProjectPhase> ProjectPhases { get; set; }
public ICollection<ProjectTask> ProjectTasks { get; set; }
} }

View file

@ -5,7 +5,7 @@ using Volo.Abp.MultiTenancy;
namespace Erp.Platform.Entities; namespace Erp.Platform.Entities;
public class ProjectType : FullAuditedEntity<Guid>, IMultiTenant public class TaskType : FullAuditedEntity<Guid>, IMultiTenant
{ {
public Guid? TenantId { get; set; } public Guid? TenantId { get; set; }

View file

@ -5,7 +5,7 @@ using Volo.Abp.MultiTenancy;
namespace Erp.Platform.Entities; namespace Erp.Platform.Entities;
public class ProjectStatus : FullAuditedEntity<Guid>, IMultiTenant public class Type : FullAuditedEntity<Guid>, IMultiTenant
{ {
public Guid? TenantId { get; set; } public Guid? TenantId { get; set; }

View file

@ -268,13 +268,16 @@ public class PlatformDbContext :
#endregion #endregion
#region Rd #region Rd
public DbSet<ProjectType> ProjectTypes { get; set; } public DbSet<Entities.Type> Types { get; set; }
public DbSet<ProjectStatus> ProjectStatuses { get; set; } public DbSet<Status> Statuses { get; set; }
public DbSet<TaskType> TaskTypes { get; set; }
public DbSet<Category> Categories { get; set; }
public DbSet<Risk> Risks { get; set; }
public DbSet<Project> Projects { get; set; } public DbSet<Project> Projects { get; set; }
public DbSet<ProjectRisk> ProjectRisks { get; set; } public DbSet<ProjectRisk> ProjectRisks { get; set; }
public DbSet<ProjectCategory> ProjectCategories { get; set; } public DbSet<ProjectTeam> ProjectTeams { get; set; }
public DbSet<ProjectPhase> ProjectPhases { get; set; } public DbSet<ProjectPhase> ProjectPhases { get; set; }
public DbSet<ProjectTaskType> ProjectTasks { get; set; } public DbSet<ProjectTask> ProjectTasks { get; set; }
#endregion #endregion
public PlatformDbContext(DbContextOptions<PlatformDbContext> options) public PlatformDbContext(DbContextOptions<PlatformDbContext> options)
@ -3215,9 +3218,9 @@ public class PlatformDbContext :
b.Property(x => x.IsActive).HasDefaultValue(true); b.Property(x => x.IsActive).HasDefaultValue(true);
}); });
builder.Entity<ProjectType>(b => builder.Entity<Entities.Type>(b =>
{ {
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.ProjectType)), Prefix.DbSchema); b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.Type)), Prefix.DbSchema);
b.ConfigureByConvention(); b.ConfigureByConvention();
b.Property(x => x.Name).IsRequired().HasMaxLength(50); b.Property(x => x.Name).IsRequired().HasMaxLength(50);
@ -3225,9 +3228,39 @@ public class PlatformDbContext :
b.Property(x => x.IsActive).HasDefaultValue(true); b.Property(x => x.IsActive).HasDefaultValue(true);
}); });
builder.Entity<ProjectStatus>(b => builder.Entity<Status>(b =>
{ {
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.ProjectStatus)), Prefix.DbSchema); b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.Status)), 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<TaskType>(b =>
{
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.TaskType)), 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<Risk>(b =>
{
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.Risk)), 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<Category>(b =>
{
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.Category)), Prefix.DbSchema);
b.ConfigureByConvention(); b.ConfigureByConvention();
b.Property(x => x.Name).IsRequired().HasMaxLength(50); b.Property(x => x.Name).IsRequired().HasMaxLength(50);
@ -3266,33 +3299,13 @@ public class PlatformDbContext :
.OnDelete(DeleteBehavior.Restrict); .OnDelete(DeleteBehavior.Restrict);
}); });
builder.Entity<ProjectRisk>(b =>
{
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.ProjectRisk)), 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<ProjectCategory>(b =>
{
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.ProjectCategory)), 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<ProjectPhase>(b => builder.Entity<ProjectPhase>(b =>
{ {
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.ProjectPhase)), Prefix.DbSchema); b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.ProjectPhase)), Prefix.DbSchema);
b.ConfigureByConvention(); b.ConfigureByConvention();
b.Property(x => x.ProjectId).IsRequired(); b.Property(x => x.ProjectId).IsRequired();
b.Property(x => x.ProjectCategoryId).IsRequired(); b.Property(x => x.CategoryId).IsRequired();
b.Property(x => x.Code).IsRequired().HasMaxLength(100); b.Property(x => x.Code).IsRequired().HasMaxLength(100);
b.Property(x => x.Name).IsRequired().HasMaxLength(200); b.Property(x => x.Name).IsRequired().HasMaxLength(200);
b.Property(x => x.Description).HasMaxLength(500); b.Property(x => x.Description).HasMaxLength(500);
@ -3307,16 +3320,76 @@ public class PlatformDbContext :
b.Property(x => x.StatusId).IsRequired(); b.Property(x => x.StatusId).IsRequired();
b.Property(x => x.IsActive).HasDefaultValue(true); b.Property(x => x.IsActive).HasDefaultValue(true);
b.HasOne(x => x.Status)
.WithMany(x => x.ProjectPhases)
.HasForeignKey(x => x.StatusId)
.OnDelete(DeleteBehavior.Restrict);
b.HasOne(x => x.Project)
.WithMany(x => x.Phases)
.HasForeignKey(x => x.ProjectId)
.OnDelete(DeleteBehavior.Restrict);
}); });
builder.Entity<ProjectTaskType>(b => builder.Entity<ProjectTask>(b =>
{ {
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.ProjectTaskType)), Prefix.DbSchema); b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.ProjectTask)), Prefix.DbSchema);
b.ConfigureByConvention(); b.ConfigureByConvention();
b.Property(x => x.Name).IsRequired().HasMaxLength(50); b.Property(x => x.ProjectId).IsRequired();
b.Property(x => x.PhaseId).IsRequired();
b.Property(x => x.Name).IsRequired().HasMaxLength(200);
b.Property(x => x.Description).HasMaxLength(500); b.Property(x => x.Description).HasMaxLength(500);
b.Property(x => x.Priority).IsRequired().HasMaxLength(50);
b.Property(x => x.StatusId).IsRequired();
b.Property(x => x.EmployeeId).IsRequired();
b.Property(x => x.StartDate).IsRequired();
b.Property(x => x.EndDate).IsRequired();
b.Property(x => x.Progress).HasDefaultValue(0);
b.Property(x => x.IsActive).HasDefaultValue(true); b.Property(x => x.IsActive).HasDefaultValue(true);
b.HasOne(x => x.Status)
.WithMany(x => x.ProjectTasks)
.HasForeignKey(x => x.StatusId)
.OnDelete(DeleteBehavior.Restrict);
b.HasOne(x => x.Project)
.WithMany(x => x.Tasks)
.HasForeignKey(x => x.ProjectId)
.OnDelete(DeleteBehavior.Restrict);
});
builder.Entity<ProjectRisk>(b =>
{
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.ProjectRisk)), Prefix.DbSchema);
b.ConfigureByConvention();
b.Property(x => x.ProjectId).IsRequired();
b.Property(x => x.RiskId).IsRequired();
b.HasOne(x => x.Project)
.WithMany(x => x.Risks)
.HasForeignKey(x => x.ProjectId)
.OnDelete(DeleteBehavior.Restrict);
});
builder.Entity<ProjectTeam>(b =>
{
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.ProjectTeam)), Prefix.DbSchema);
b.ConfigureByConvention();
b.Property(x => x.ProjectId).IsRequired();
b.Property(x => x.EmployeeId).IsRequired();
b.HasOne(x => x.Project)
.WithMany(x => x.Teams)
.HasForeignKey(x => x.ProjectId)
.OnDelete(DeleteBehavior.Restrict);
}); });
} }
} }

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("20251127112310_Initial")] [Migration("20251127201919_Initial")]
partial class Initial partial class Initial
{ {
/// <inheritdoc /> /// <inheritdoc />
@ -2067,6 +2067,64 @@ namespace Erp.Platform.Migrations
b.ToTable("Acc_T_Cash", (string)null); b.ToTable("Acc_T_Cash", (string)null);
}); });
modelBuilder.Entity("Erp.Platform.Entities.Category", 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_Category", (string)null);
});
modelBuilder.Entity("Erp.Platform.Entities.Certificate", b => modelBuilder.Entity("Erp.Platform.Entities.Certificate", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")
@ -9848,9 +9906,6 @@ namespace Erp.Platform.Migrations
b.Property<Guid?>("ProjectPhaseId") b.Property<Guid?>("ProjectPhaseId")
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
b.Property<Guid?>("ProjectTaskTypeId")
.HasColumnType("uniqueidentifier");
b.Property<Guid>("ProjectTypeId") b.Property<Guid>("ProjectTypeId")
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
@ -9860,6 +9915,9 @@ namespace Erp.Platform.Migrations
b.Property<Guid>("StatusId") b.Property<Guid>("StatusId")
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
b.Property<Guid?>("TaskTypeId")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("TenantId") b.Property<Guid?>("TenantId")
.HasColumnType("uniqueidentifier") .HasColumnType("uniqueidentifier")
.HasColumnName("TenantId"); .HasColumnName("TenantId");
@ -9872,73 +9930,15 @@ namespace Erp.Platform.Migrations
b.HasIndex("ProjectPhaseId"); b.HasIndex("ProjectPhaseId");
b.HasIndex("ProjectTaskTypeId");
b.HasIndex("ProjectTypeId"); b.HasIndex("ProjectTypeId");
b.HasIndex("StatusId"); b.HasIndex("StatusId");
b.HasIndex("TaskTypeId");
b.ToTable("Prj_T_Projects", (string)null); b.ToTable("Prj_T_Projects", (string)null);
}); });
modelBuilder.Entity("Erp.Platform.Entities.ProjectCategory", 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_ProjectCategory", (string)null);
});
modelBuilder.Entity("Erp.Platform.Entities.ProjectPhase", b => modelBuilder.Entity("Erp.Platform.Entities.ProjectPhase", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")
@ -9962,6 +9962,9 @@ namespace Erp.Platform.Migrations
.HasColumnType("decimal(18,2)") .HasColumnType("decimal(18,2)")
.HasDefaultValue(0m); .HasDefaultValue(0m);
b.Property<Guid>("CategoryId")
.HasColumnType("uniqueidentifier");
b.Property<string>("Code") b.Property<string>("Code")
.IsRequired() .IsRequired()
.HasMaxLength(100) .HasMaxLength(100)
@ -10019,13 +10022,10 @@ namespace Erp.Platform.Migrations
.HasColumnType("int") .HasColumnType("int")
.HasDefaultValue(0); .HasDefaultValue(0);
b.Property<Guid>("ProjectCategoryId")
.HasColumnType("uniqueidentifier");
b.Property<Guid>("ProjectId") b.Property<Guid>("ProjectId")
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
b.Property<Guid?>("ProjectRiskId") b.Property<Guid?>("RiskId")
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
b.Property<string>("Risks") b.Property<string>("Risks")
@ -10049,11 +10049,11 @@ namespace Erp.Platform.Migrations
b.HasKey("Id"); b.HasKey("Id");
b.HasIndex("ProjectCategoryId"); b.HasIndex("CategoryId");
b.HasIndex("ProjectId"); b.HasIndex("ProjectId");
b.HasIndex("ProjectRiskId"); b.HasIndex("RiskId");
b.HasIndex("StatusId"); b.HasIndex("StatusId");
@ -10081,15 +10081,6 @@ namespace Erp.Platform.Migrations
.HasColumnType("datetime2") .HasColumnType("datetime2")
.HasColumnName("DeletionTime"); .HasColumnName("DeletionTime");
b.Property<string>("Description")
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.Property<bool>("IsActive")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(true);
b.Property<bool>("IsDeleted") b.Property<bool>("IsDeleted")
.ValueGeneratedOnAdd() .ValueGeneratedOnAdd()
.HasColumnType("bit") .HasColumnType("bit")
@ -10104,10 +10095,11 @@ namespace Erp.Platform.Migrations
.HasColumnType("uniqueidentifier") .HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId"); .HasColumnName("LastModifierId");
b.Property<string>("Name") b.Property<Guid>("ProjectId")
.IsRequired() .HasColumnType("uniqueidentifier");
.HasMaxLength(50)
.HasColumnType("nvarchar(50)"); b.Property<Guid>("RiskId")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("TenantId") b.Property<Guid?>("TenantId")
.HasColumnType("uniqueidentifier") .HasColumnType("uniqueidentifier")
@ -10115,10 +10107,14 @@ namespace Erp.Platform.Migrations
b.HasKey("Id"); b.HasKey("Id");
b.HasIndex("ProjectId");
b.HasIndex("RiskId");
b.ToTable("Prj_T_ProjectRisk", (string)null); b.ToTable("Prj_T_ProjectRisk", (string)null);
}); });
modelBuilder.Entity("Erp.Platform.Entities.ProjectStatus", b => modelBuilder.Entity("Erp.Platform.Entities.ProjectTask", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
@ -10143,6 +10139,12 @@ namespace Erp.Platform.Migrations
.HasMaxLength(500) .HasMaxLength(500)
.HasColumnType("nvarchar(500)"); .HasColumnType("nvarchar(500)");
b.Property<Guid>("EmployeeId")
.HasColumnType("uniqueidentifier");
b.Property<DateTime>("EndDate")
.HasColumnType("datetime2");
b.Property<bool>("IsActive") b.Property<bool>("IsActive")
.ValueGeneratedOnAdd() .ValueGeneratedOnAdd()
.HasColumnType("bit") .HasColumnType("bit")
@ -10163,20 +10165,55 @@ namespace Erp.Platform.Migrations
.HasColumnName("LastModifierId"); .HasColumnName("LastModifierId");
b.Property<string>("Name") b.Property<string>("Name")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("nvarchar(200)");
b.Property<Guid>("PhaseId")
.HasColumnType("uniqueidentifier");
b.Property<string>("Priority")
.IsRequired() .IsRequired()
.HasMaxLength(50) .HasMaxLength(50)
.HasColumnType("nvarchar(50)"); .HasColumnType("nvarchar(50)");
b.Property<int>("Progress")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasDefaultValue(0);
b.Property<Guid>("ProjectId")
.HasColumnType("uniqueidentifier");
b.Property<DateTime>("StartDate")
.HasColumnType("datetime2");
b.Property<Guid>("StatusId")
.HasColumnType("uniqueidentifier");
b.Property<Guid>("TaskTypeId")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("TenantId") b.Property<Guid?>("TenantId")
.HasColumnType("uniqueidentifier") .HasColumnType("uniqueidentifier")
.HasColumnName("TenantId"); .HasColumnName("TenantId");
b.HasKey("Id"); b.HasKey("Id");
b.ToTable("Prj_T_ProjectStatus", (string)null); b.HasIndex("EmployeeId");
b.HasIndex("PhaseId");
b.HasIndex("ProjectId");
b.HasIndex("StatusId");
b.HasIndex("TaskTypeId");
b.ToTable("Prj_T_ProjectTask", (string)null);
}); });
modelBuilder.Entity("Erp.Platform.Entities.ProjectTaskType", b => modelBuilder.Entity("Erp.Platform.Entities.ProjectTeam", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
@ -10197,73 +10234,9 @@ namespace Erp.Platform.Migrations
.HasColumnType("datetime2") .HasColumnType("datetime2")
.HasColumnName("DeletionTime"); .HasColumnName("DeletionTime");
b.Property<string>("Description") b.Property<Guid>("EmployeeId")
.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_ProjectTaskType", (string)null);
});
modelBuilder.Entity("Erp.Platform.Entities.ProjectType", b =>
{
b.Property<Guid>("Id")
.HasColumnType("uniqueidentifier"); .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") b.Property<bool>("IsDeleted")
.ValueGeneratedOnAdd() .ValueGeneratedOnAdd()
.HasColumnType("bit") .HasColumnType("bit")
@ -10278,10 +10251,11 @@ namespace Erp.Platform.Migrations
.HasColumnType("uniqueidentifier") .HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId"); .HasColumnName("LastModifierId");
b.Property<string>("Name") b.Property<Guid?>("ManagerId")
.IsRequired() .HasColumnType("uniqueidentifier");
.HasMaxLength(50)
.HasColumnType("nvarchar(50)"); b.Property<Guid>("ProjectId")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("TenantId") b.Property<Guid?>("TenantId")
.HasColumnType("uniqueidentifier") .HasColumnType("uniqueidentifier")
@ -10289,7 +10263,13 @@ namespace Erp.Platform.Migrations
b.HasKey("Id"); b.HasKey("Id");
b.ToTable("Prj_T_ProjectType", (string)null); b.HasIndex("EmployeeId");
b.HasIndex("ManagerId");
b.HasIndex("ProjectId");
b.ToTable("Prj_T_ProjectTeam", (string)null);
}); });
modelBuilder.Entity("Erp.Platform.Entities.Psychologist", b => modelBuilder.Entity("Erp.Platform.Entities.Psychologist", b =>
@ -11461,6 +11441,64 @@ namespace Erp.Platform.Migrations
b.ToTable("Net_T_Reservation", (string)null); b.ToTable("Net_T_Reservation", (string)null);
}); });
modelBuilder.Entity("Erp.Platform.Entities.Risk", 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_Risk", (string)null);
});
modelBuilder.Entity("Erp.Platform.Entities.Route", b => modelBuilder.Entity("Erp.Platform.Entities.Route", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")
@ -12548,6 +12586,64 @@ namespace Erp.Platform.Migrations
b.ToTable("Prt_T_Source", (string)null); b.ToTable("Prt_T_Source", (string)null);
}); });
modelBuilder.Entity("Erp.Platform.Entities.Status", 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_Status", (string)null);
});
modelBuilder.Entity("Erp.Platform.Entities.SupplyCardType", b => modelBuilder.Entity("Erp.Platform.Entities.SupplyCardType", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")
@ -12975,6 +13071,64 @@ namespace Erp.Platform.Migrations
b.ToTable("Hr_T_SurveyResponse", (string)null); b.ToTable("Hr_T_SurveyResponse", (string)null);
}); });
modelBuilder.Entity("Erp.Platform.Entities.TaskType", 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_TaskType", (string)null);
});
modelBuilder.Entity("Erp.Platform.Entities.Template360", b => modelBuilder.Entity("Erp.Platform.Entities.Template360", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")
@ -13143,6 +13297,64 @@ namespace Erp.Platform.Migrations
b.ToTable("Net_T_Training", (string)null); b.ToTable("Net_T_Training", (string)null);
}); });
modelBuilder.Entity("Erp.Platform.Entities.Type", 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_Type", (string)null);
});
modelBuilder.Entity("Erp.Platform.Entities.Uom", b => modelBuilder.Entity("Erp.Platform.Entities.Uom", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")
@ -17427,22 +17639,22 @@ namespace Erp.Platform.Migrations
.WithMany("Projects") .WithMany("Projects")
.HasForeignKey("ProjectPhaseId"); .HasForeignKey("ProjectPhaseId");
b.HasOne("Erp.Platform.Entities.ProjectTaskType", null) b.HasOne("Erp.Platform.Entities.Type", "ProjectType")
.WithMany("Projects")
.HasForeignKey("ProjectTaskTypeId");
b.HasOne("Erp.Platform.Entities.ProjectType", "ProjectType")
.WithMany("Projects") .WithMany("Projects")
.HasForeignKey("ProjectTypeId") .HasForeignKey("ProjectTypeId")
.OnDelete(DeleteBehavior.Restrict) .OnDelete(DeleteBehavior.Restrict)
.IsRequired(); .IsRequired();
b.HasOne("Erp.Platform.Entities.ProjectStatus", "Status") b.HasOne("Erp.Platform.Entities.Status", "Status")
.WithMany("Projects") .WithMany("Projects")
.HasForeignKey("StatusId") .HasForeignKey("StatusId")
.OnDelete(DeleteBehavior.Restrict) .OnDelete(DeleteBehavior.Restrict)
.IsRequired(); .IsRequired();
b.HasOne("Erp.Platform.Entities.TaskType", null)
.WithMany("Projects")
.HasForeignKey("TaskTypeId");
b.Navigation("Customer"); b.Navigation("Customer");
b.Navigation("Manager"); b.Navigation("Manager");
@ -17454,33 +17666,120 @@ namespace Erp.Platform.Migrations
modelBuilder.Entity("Erp.Platform.Entities.ProjectPhase", b => modelBuilder.Entity("Erp.Platform.Entities.ProjectPhase", b =>
{ {
b.HasOne("Erp.Platform.Entities.ProjectCategory", "ProjectCategory") b.HasOne("Erp.Platform.Entities.Category", "Category")
.WithMany("ProjectPhases") .WithMany("ProjectPhases")
.HasForeignKey("ProjectCategoryId") .HasForeignKey("CategoryId")
.OnDelete(DeleteBehavior.Cascade) .OnDelete(DeleteBehavior.Cascade)
.IsRequired(); .IsRequired();
b.HasOne("Erp.Platform.Entities.Project", "Project") b.HasOne("Erp.Platform.Entities.Project", "Project")
.WithMany() .WithMany("Phases")
.HasForeignKey("ProjectId") .HasForeignKey("ProjectId")
.OnDelete(DeleteBehavior.Cascade) .OnDelete(DeleteBehavior.Restrict)
.IsRequired(); .IsRequired();
b.HasOne("Erp.Platform.Entities.ProjectRisk", null) b.HasOne("Erp.Platform.Entities.Risk", null)
.WithMany("ProjectPhases") .WithMany("ProjectPhases")
.HasForeignKey("ProjectRiskId"); .HasForeignKey("RiskId");
b.HasOne("Erp.Platform.Entities.ProjectStatus", "Status") b.HasOne("Erp.Platform.Entities.Status", "Status")
.WithMany() .WithMany("ProjectPhases")
.HasForeignKey("StatusId") .HasForeignKey("StatusId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("Category");
b.Navigation("Project");
b.Navigation("Status");
});
modelBuilder.Entity("Erp.Platform.Entities.ProjectRisk", b =>
{
b.HasOne("Erp.Platform.Entities.Project", "Project")
.WithMany("Risks")
.HasForeignKey("ProjectId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("Erp.Platform.Entities.Risk", "Risk")
.WithMany("ProjectRisks")
.HasForeignKey("RiskId")
.OnDelete(DeleteBehavior.Cascade) .OnDelete(DeleteBehavior.Cascade)
.IsRequired(); .IsRequired();
b.Navigation("Project"); b.Navigation("Project");
b.Navigation("ProjectCategory"); b.Navigation("Risk");
});
modelBuilder.Entity("Erp.Platform.Entities.ProjectTask", b =>
{
b.HasOne("Erp.Platform.Entities.Employee", "Employee")
.WithMany()
.HasForeignKey("EmployeeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Erp.Platform.Entities.ProjectPhase", "Phase")
.WithMany()
.HasForeignKey("PhaseId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Erp.Platform.Entities.Project", "Project")
.WithMany("Tasks")
.HasForeignKey("ProjectId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("Erp.Platform.Entities.Status", "Status")
.WithMany("ProjectTasks")
.HasForeignKey("StatusId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("Erp.Platform.Entities.TaskType", "TaskType")
.WithMany()
.HasForeignKey("TaskTypeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Employee");
b.Navigation("Phase");
b.Navigation("Project");
b.Navigation("Status"); b.Navigation("Status");
b.Navigation("TaskType");
});
modelBuilder.Entity("Erp.Platform.Entities.ProjectTeam", b =>
{
b.HasOne("Erp.Platform.Entities.Employee", "Employee")
.WithMany()
.HasForeignKey("EmployeeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Erp.Platform.Entities.Employee", "Manager")
.WithMany()
.HasForeignKey("ManagerId");
b.HasOne("Erp.Platform.Entities.Project", "Project")
.WithMany("Teams")
.HasForeignKey("ProjectId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("Employee");
b.Navigation("Manager");
b.Navigation("Project");
}); });
modelBuilder.Entity("Erp.Platform.Entities.PutawayCondition", b => modelBuilder.Entity("Erp.Platform.Entities.PutawayCondition", b =>
@ -18153,6 +18452,11 @@ namespace Erp.Platform.Migrations
b.Navigation("UserBranches"); b.Navigation("UserBranches");
}); });
modelBuilder.Entity("Erp.Platform.Entities.Category", b =>
{
b.Navigation("ProjectPhases");
});
modelBuilder.Entity("Erp.Platform.Entities.City", b => modelBuilder.Entity("Erp.Platform.Entities.City", b =>
{ {
b.Navigation("Districts"); b.Navigation("Districts");
@ -18360,9 +18664,15 @@ namespace Erp.Platform.Migrations
b.Navigation("Items"); b.Navigation("Items");
}); });
modelBuilder.Entity("Erp.Platform.Entities.ProjectCategory", b => modelBuilder.Entity("Erp.Platform.Entities.Project", b =>
{ {
b.Navigation("ProjectPhases"); b.Navigation("Phases");
b.Navigation("Risks");
b.Navigation("Tasks");
b.Navigation("Teams");
}); });
modelBuilder.Entity("Erp.Platform.Entities.ProjectPhase", b => modelBuilder.Entity("Erp.Platform.Entities.ProjectPhase", b =>
@ -18370,26 +18680,6 @@ namespace Erp.Platform.Migrations
b.Navigation("Projects"); b.Navigation("Projects");
}); });
modelBuilder.Entity("Erp.Platform.Entities.ProjectRisk", b =>
{
b.Navigation("ProjectPhases");
});
modelBuilder.Entity("Erp.Platform.Entities.ProjectStatus", b =>
{
b.Navigation("Projects");
});
modelBuilder.Entity("Erp.Platform.Entities.ProjectTaskType", b =>
{
b.Navigation("Projects");
});
modelBuilder.Entity("Erp.Platform.Entities.ProjectType", b =>
{
b.Navigation("Projects");
});
modelBuilder.Entity("Erp.Platform.Entities.Putaway", b => modelBuilder.Entity("Erp.Platform.Entities.Putaway", b =>
{ {
b.Navigation("Conditions"); b.Navigation("Conditions");
@ -18434,6 +18724,13 @@ namespace Erp.Platform.Migrations
b.Navigation("PurchaseRequests"); b.Navigation("PurchaseRequests");
}); });
modelBuilder.Entity("Erp.Platform.Entities.Risk", b =>
{
b.Navigation("ProjectPhases");
b.Navigation("ProjectRisks");
});
modelBuilder.Entity("Erp.Platform.Entities.Schedule", b => modelBuilder.Entity("Erp.Platform.Entities.Schedule", b =>
{ {
b.Navigation("Lessons"); b.Navigation("Lessons");
@ -18467,6 +18764,15 @@ namespace Erp.Platform.Migrations
b.Navigation("Opportunities"); b.Navigation("Opportunities");
}); });
modelBuilder.Entity("Erp.Platform.Entities.Status", b =>
{
b.Navigation("ProjectPhases");
b.Navigation("ProjectTasks");
b.Navigation("Projects");
});
modelBuilder.Entity("Erp.Platform.Entities.SupplyCardType", b => modelBuilder.Entity("Erp.Platform.Entities.SupplyCardType", b =>
{ {
b.Navigation("Partners"); b.Navigation("Partners");
@ -18494,6 +18800,11 @@ namespace Erp.Platform.Migrations
b.Navigation("Answers"); b.Navigation("Answers");
}); });
modelBuilder.Entity("Erp.Platform.Entities.TaskType", b =>
{
b.Navigation("Projects");
});
modelBuilder.Entity("Erp.Platform.Entities.Template360", b => modelBuilder.Entity("Erp.Platform.Entities.Template360", b =>
{ {
b.Navigation("Performans360s"); b.Navigation("Performans360s");
@ -18504,6 +18815,11 @@ namespace Erp.Platform.Migrations
b.Navigation("Certificates"); b.Navigation("Certificates");
}); });
modelBuilder.Entity("Erp.Platform.Entities.Type", b =>
{
b.Navigation("Projects");
});
modelBuilder.Entity("Erp.Platform.Entities.Uom", b => modelBuilder.Entity("Erp.Platform.Entities.Uom", b =>
{ {
b.Navigation("MaterialSpecifications"); b.Navigation("MaterialSpecifications");

View file

@ -1824,7 +1824,7 @@ namespace Erp.Platform.Migrations
}); });
migrationBuilder.CreateTable( migrationBuilder.CreateTable(
name: "Prj_T_ProjectCategory", name: "Prj_T_Category",
columns: table => new columns: table => new
{ {
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false), Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
@ -1842,11 +1842,11 @@ namespace Erp.Platform.Migrations
}, },
constraints: table => constraints: table =>
{ {
table.PrimaryKey("PK_Prj_T_ProjectCategory", x => x.Id); table.PrimaryKey("PK_Prj_T_Category", x => x.Id);
}); });
migrationBuilder.CreateTable( migrationBuilder.CreateTable(
name: "Prj_T_ProjectRisk", name: "Prj_T_Risk",
columns: table => new columns: table => new
{ {
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false), Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
@ -1864,11 +1864,11 @@ namespace Erp.Platform.Migrations
}, },
constraints: table => constraints: table =>
{ {
table.PrimaryKey("PK_Prj_T_ProjectRisk", x => x.Id); table.PrimaryKey("PK_Prj_T_Risk", x => x.Id);
}); });
migrationBuilder.CreateTable( migrationBuilder.CreateTable(
name: "Prj_T_ProjectStatus", name: "Prj_T_Status",
columns: table => new columns: table => new
{ {
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false), Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
@ -1886,11 +1886,11 @@ namespace Erp.Platform.Migrations
}, },
constraints: table => constraints: table =>
{ {
table.PrimaryKey("PK_Prj_T_ProjectStatus", x => x.Id); table.PrimaryKey("PK_Prj_T_Status", x => x.Id);
}); });
migrationBuilder.CreateTable( migrationBuilder.CreateTable(
name: "Prj_T_ProjectTaskType", name: "Prj_T_TaskType",
columns: table => new columns: table => new
{ {
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false), Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
@ -1908,11 +1908,11 @@ namespace Erp.Platform.Migrations
}, },
constraints: table => constraints: table =>
{ {
table.PrimaryKey("PK_Prj_T_ProjectTaskType", x => x.Id); table.PrimaryKey("PK_Prj_T_TaskType", x => x.Id);
}); });
migrationBuilder.CreateTable( migrationBuilder.CreateTable(
name: "Prj_T_ProjectType", name: "Prj_T_Type",
columns: table => new columns: table => new
{ {
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false), Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
@ -1930,7 +1930,7 @@ namespace Erp.Platform.Migrations
}, },
constraints: table => constraints: table =>
{ {
table.PrimaryKey("PK_Prj_T_ProjectType", x => x.Id); table.PrimaryKey("PK_Prj_T_Type", x => x.Id);
}); });
migrationBuilder.CreateTable( migrationBuilder.CreateTable(
@ -6770,7 +6770,7 @@ namespace Erp.Platform.Migrations
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false), Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
ProjectId = table.Column<Guid>(type: "uniqueidentifier", nullable: false), ProjectId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
ProjectCategoryId = table.Column<Guid>(type: "uniqueidentifier", nullable: false), CategoryId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
Code = table.Column<string>(type: "nvarchar(100)", maxLength: 100, nullable: false), Code = table.Column<string>(type: "nvarchar(100)", maxLength: 100, 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),
@ -6785,7 +6785,7 @@ namespace Erp.Platform.Migrations
Risks = table.Column<string>(type: "nvarchar(500)", maxLength: 500, nullable: true), Risks = table.Column<string>(type: "nvarchar(500)", maxLength: 500, nullable: true),
StatusId = table.Column<Guid>(type: "uniqueidentifier", nullable: false), StatusId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
IsActive = table.Column<bool>(type: "bit", nullable: false, defaultValue: true), IsActive = table.Column<bool>(type: "bit", nullable: false, defaultValue: true),
ProjectRiskId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), RiskId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false), CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true), LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
@ -6798,22 +6798,22 @@ namespace Erp.Platform.Migrations
{ {
table.PrimaryKey("PK_Prj_T_ProjectPhase", x => x.Id); table.PrimaryKey("PK_Prj_T_ProjectPhase", x => x.Id);
table.ForeignKey( table.ForeignKey(
name: "FK_Prj_T_ProjectPhase_Prj_T_ProjectCategory_ProjectCategoryId", name: "FK_Prj_T_ProjectPhase_Prj_T_Category_CategoryId",
column: x => x.ProjectCategoryId, column: x => x.CategoryId,
principalTable: "Prj_T_ProjectCategory", principalTable: "Prj_T_Category",
principalColumn: "Id", principalColumn: "Id",
onDelete: ReferentialAction.Cascade); onDelete: ReferentialAction.Cascade);
table.ForeignKey( table.ForeignKey(
name: "FK_Prj_T_ProjectPhase_Prj_T_ProjectRisk_ProjectRiskId", name: "FK_Prj_T_ProjectPhase_Prj_T_Risk_RiskId",
column: x => x.ProjectRiskId, column: x => x.RiskId,
principalTable: "Prj_T_ProjectRisk", principalTable: "Prj_T_Risk",
principalColumn: "Id"); principalColumn: "Id");
table.ForeignKey( table.ForeignKey(
name: "FK_Prj_T_ProjectPhase_Prj_T_ProjectStatus_StatusId", name: "FK_Prj_T_ProjectPhase_Prj_T_Status_StatusId",
column: x => x.StatusId, column: x => x.StatusId,
principalTable: "Prj_T_ProjectStatus", principalTable: "Prj_T_Status",
principalColumn: "Id", principalColumn: "Id",
onDelete: ReferentialAction.Cascade); onDelete: ReferentialAction.Restrict);
}); });
migrationBuilder.CreateTable( migrationBuilder.CreateTable(
@ -6840,7 +6840,7 @@ namespace Erp.Platform.Migrations
Progress = table.Column<int>(type: "int", nullable: false, defaultValue: 0), Progress = table.Column<int>(type: "int", nullable: false, defaultValue: 0),
IsActive = table.Column<bool>(type: "bit", nullable: false, defaultValue: true), IsActive = table.Column<bool>(type: "bit", nullable: false, defaultValue: true),
ProjectPhaseId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), ProjectPhaseId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
ProjectTaskTypeId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), TaskTypeId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false), CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true), CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true), LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
@ -6868,20 +6868,153 @@ namespace Erp.Platform.Migrations
principalTable: "Prj_T_ProjectPhase", principalTable: "Prj_T_ProjectPhase",
principalColumn: "Id"); principalColumn: "Id");
table.ForeignKey( table.ForeignKey(
name: "FK_Prj_T_Projects_Prj_T_ProjectStatus_StatusId", name: "FK_Prj_T_Projects_Prj_T_Status_StatusId",
column: x => x.StatusId, column: x => x.StatusId,
principalTable: "Prj_T_ProjectStatus", principalTable: "Prj_T_Status",
principalColumn: "Id", principalColumn: "Id",
onDelete: ReferentialAction.Restrict); onDelete: ReferentialAction.Restrict);
table.ForeignKey( table.ForeignKey(
name: "FK_Prj_T_Projects_Prj_T_ProjectTaskType_ProjectTaskTypeId", name: "FK_Prj_T_Projects_Prj_T_TaskType_TaskTypeId",
column: x => x.ProjectTaskTypeId, column: x => x.TaskTypeId,
principalTable: "Prj_T_ProjectTaskType", principalTable: "Prj_T_TaskType",
principalColumn: "Id"); principalColumn: "Id");
table.ForeignKey( table.ForeignKey(
name: "FK_Prj_T_Projects_Prj_T_ProjectType_ProjectTypeId", name: "FK_Prj_T_Projects_Prj_T_Type_ProjectTypeId",
column: x => x.ProjectTypeId, column: x => x.ProjectTypeId,
principalTable: "Prj_T_ProjectType", principalTable: "Prj_T_Type",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
});
migrationBuilder.CreateTable(
name: "Prj_T_ProjectRisk",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
ProjectId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
RiskId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
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_ProjectRisk", x => x.Id);
table.ForeignKey(
name: "FK_Prj_T_ProjectRisk_Prj_T_Projects_ProjectId",
column: x => x.ProjectId,
principalTable: "Prj_T_Projects",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
table.ForeignKey(
name: "FK_Prj_T_ProjectRisk_Prj_T_Risk_RiskId",
column: x => x.RiskId,
principalTable: "Prj_T_Risk",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "Prj_T_ProjectTask",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
ProjectId = 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),
Description = table.Column<string>(type: "nvarchar(500)", maxLength: 500, nullable: true),
TaskTypeId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
Priority = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false),
StatusId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
EmployeeId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
StartDate = table.Column<DateTime>(type: "datetime2", nullable: false),
EndDate = table.Column<DateTime>(type: "datetime2", nullable: false),
Progress = table.Column<int>(type: "int", nullable: false, defaultValue: 0),
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_ProjectTask", x => x.Id);
table.ForeignKey(
name: "FK_Prj_T_ProjectTask_Hr_T_Employee_EmployeeId",
column: x => x.EmployeeId,
principalTable: "Hr_T_Employee",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_Prj_T_ProjectTask_Prj_T_ProjectPhase_PhaseId",
column: x => x.PhaseId,
principalTable: "Prj_T_ProjectPhase",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_Prj_T_ProjectTask_Prj_T_Projects_ProjectId",
column: x => x.ProjectId,
principalTable: "Prj_T_Projects",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
table.ForeignKey(
name: "FK_Prj_T_ProjectTask_Prj_T_Status_StatusId",
column: x => x.StatusId,
principalTable: "Prj_T_Status",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
table.ForeignKey(
name: "FK_Prj_T_ProjectTask_Prj_T_TaskType_TaskTypeId",
column: x => x.TaskTypeId,
principalTable: "Prj_T_TaskType",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "Prj_T_ProjectTeam",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
ProjectId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
EmployeeId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
ManagerId = table.Column<Guid>(type: "uniqueidentifier", 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_ProjectTeam", x => x.Id);
table.ForeignKey(
name: "FK_Prj_T_ProjectTeam_Hr_T_Employee_EmployeeId",
column: x => x.EmployeeId,
principalTable: "Hr_T_Employee",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_Prj_T_ProjectTeam_Hr_T_Employee_ManagerId",
column: x => x.ManagerId,
principalTable: "Hr_T_Employee",
principalColumn: "Id");
table.ForeignKey(
name: "FK_Prj_T_ProjectTeam_Prj_T_Projects_ProjectId",
column: x => x.ProjectId,
principalTable: "Prj_T_Projects",
principalColumn: "Id", principalColumn: "Id",
onDelete: ReferentialAction.Restrict); onDelete: ReferentialAction.Restrict);
}); });
@ -7796,9 +7929,9 @@ namespace Erp.Platform.Migrations
column: "NotificationRuleId"); column: "NotificationRuleId");
migrationBuilder.CreateIndex( migrationBuilder.CreateIndex(
name: "IX_Prj_T_ProjectPhase_ProjectCategoryId", name: "IX_Prj_T_ProjectPhase_CategoryId",
table: "Prj_T_ProjectPhase", table: "Prj_T_ProjectPhase",
column: "ProjectCategoryId"); column: "CategoryId");
migrationBuilder.CreateIndex( migrationBuilder.CreateIndex(
name: "IX_Prj_T_ProjectPhase_ProjectId", name: "IX_Prj_T_ProjectPhase_ProjectId",
@ -7806,15 +7939,25 @@ namespace Erp.Platform.Migrations
column: "ProjectId"); column: "ProjectId");
migrationBuilder.CreateIndex( migrationBuilder.CreateIndex(
name: "IX_Prj_T_ProjectPhase_ProjectRiskId", name: "IX_Prj_T_ProjectPhase_RiskId",
table: "Prj_T_ProjectPhase", table: "Prj_T_ProjectPhase",
column: "ProjectRiskId"); column: "RiskId");
migrationBuilder.CreateIndex( migrationBuilder.CreateIndex(
name: "IX_Prj_T_ProjectPhase_StatusId", name: "IX_Prj_T_ProjectPhase_StatusId",
table: "Prj_T_ProjectPhase", table: "Prj_T_ProjectPhase",
column: "StatusId"); column: "StatusId");
migrationBuilder.CreateIndex(
name: "IX_Prj_T_ProjectRisk_ProjectId",
table: "Prj_T_ProjectRisk",
column: "ProjectId");
migrationBuilder.CreateIndex(
name: "IX_Prj_T_ProjectRisk_RiskId",
table: "Prj_T_ProjectRisk",
column: "RiskId");
migrationBuilder.CreateIndex( migrationBuilder.CreateIndex(
name: "IX_Prj_T_Projects_CustomerId", name: "IX_Prj_T_Projects_CustomerId",
table: "Prj_T_Projects", table: "Prj_T_Projects",
@ -7830,11 +7973,6 @@ namespace Erp.Platform.Migrations
table: "Prj_T_Projects", table: "Prj_T_Projects",
column: "ProjectPhaseId"); column: "ProjectPhaseId");
migrationBuilder.CreateIndex(
name: "IX_Prj_T_Projects_ProjectTaskTypeId",
table: "Prj_T_Projects",
column: "ProjectTaskTypeId");
migrationBuilder.CreateIndex( migrationBuilder.CreateIndex(
name: "IX_Prj_T_Projects_ProjectTypeId", name: "IX_Prj_T_Projects_ProjectTypeId",
table: "Prj_T_Projects", table: "Prj_T_Projects",
@ -7845,6 +7983,51 @@ namespace Erp.Platform.Migrations
table: "Prj_T_Projects", table: "Prj_T_Projects",
column: "StatusId"); column: "StatusId");
migrationBuilder.CreateIndex(
name: "IX_Prj_T_Projects_TaskTypeId",
table: "Prj_T_Projects",
column: "TaskTypeId");
migrationBuilder.CreateIndex(
name: "IX_Prj_T_ProjectTask_EmployeeId",
table: "Prj_T_ProjectTask",
column: "EmployeeId");
migrationBuilder.CreateIndex(
name: "IX_Prj_T_ProjectTask_PhaseId",
table: "Prj_T_ProjectTask",
column: "PhaseId");
migrationBuilder.CreateIndex(
name: "IX_Prj_T_ProjectTask_ProjectId",
table: "Prj_T_ProjectTask",
column: "ProjectId");
migrationBuilder.CreateIndex(
name: "IX_Prj_T_ProjectTask_StatusId",
table: "Prj_T_ProjectTask",
column: "StatusId");
migrationBuilder.CreateIndex(
name: "IX_Prj_T_ProjectTask_TaskTypeId",
table: "Prj_T_ProjectTask",
column: "TaskTypeId");
migrationBuilder.CreateIndex(
name: "IX_Prj_T_ProjectTeam_EmployeeId",
table: "Prj_T_ProjectTeam",
column: "EmployeeId");
migrationBuilder.CreateIndex(
name: "IX_Prj_T_ProjectTeam_ManagerId",
table: "Prj_T_ProjectTeam",
column: "ManagerId");
migrationBuilder.CreateIndex(
name: "IX_Prj_T_ProjectTeam_ProjectId",
table: "Prj_T_ProjectTeam",
column: "ProjectId");
migrationBuilder.CreateIndex( migrationBuilder.CreateIndex(
name: "IX_Sas_H_City_Country_Code", name: "IX_Sas_H_City_Country_Code",
table: "Sas_H_City", table: "Sas_H_City",
@ -8176,7 +8359,7 @@ namespace Erp.Platform.Migrations
column: "ProjectId", column: "ProjectId",
principalTable: "Prj_T_Projects", principalTable: "Prj_T_Projects",
principalColumn: "Id", principalColumn: "Id",
onDelete: ReferentialAction.Cascade); onDelete: ReferentialAction.Restrict);
} }
/// <inheritdoc /> /// <inheritdoc />
@ -8207,21 +8390,9 @@ namespace Erp.Platform.Migrations
table: "Hr_T_CostCenter"); table: "Hr_T_CostCenter");
migrationBuilder.DropForeignKey( migrationBuilder.DropForeignKey(
name: "FK_Prj_T_ProjectPhase_Prj_T_ProjectCategory_ProjectCategoryId", name: "FK_Prj_T_ProjectPhase_Prj_T_Category_CategoryId",
table: "Prj_T_ProjectPhase"); table: "Prj_T_ProjectPhase");
migrationBuilder.DropForeignKey(
name: "FK_Prj_T_ProjectPhase_Prj_T_ProjectRisk_ProjectRiskId",
table: "Prj_T_ProjectPhase");
migrationBuilder.DropForeignKey(
name: "FK_Prj_T_ProjectPhase_Prj_T_ProjectStatus_StatusId",
table: "Prj_T_ProjectPhase");
migrationBuilder.DropForeignKey(
name: "FK_Prj_T_Projects_Prj_T_ProjectStatus_StatusId",
table: "Prj_T_Projects");
migrationBuilder.DropForeignKey( migrationBuilder.DropForeignKey(
name: "FK_Prj_T_ProjectPhase_Prj_T_Projects_ProjectId", name: "FK_Prj_T_ProjectPhase_Prj_T_Projects_ProjectId",
table: "Prj_T_ProjectPhase"); table: "Prj_T_ProjectPhase");
@ -8529,6 +8700,15 @@ namespace Erp.Platform.Migrations
migrationBuilder.DropTable( migrationBuilder.DropTable(
name: "Plat_H_SettingDefinition"); name: "Plat_H_SettingDefinition");
migrationBuilder.DropTable(
name: "Prj_T_ProjectRisk");
migrationBuilder.DropTable(
name: "Prj_T_ProjectTask");
migrationBuilder.DropTable(
name: "Prj_T_ProjectTeam");
migrationBuilder.DropTable( migrationBuilder.DropTable(
name: "Prt_T_Interesting"); name: "Prt_T_Interesting");
@ -8896,13 +9076,7 @@ namespace Erp.Platform.Migrations
name: "Hr_T_CostCenter"); name: "Hr_T_CostCenter");
migrationBuilder.DropTable( migrationBuilder.DropTable(
name: "Prj_T_ProjectCategory"); name: "Prj_T_Category");
migrationBuilder.DropTable(
name: "Prj_T_ProjectRisk");
migrationBuilder.DropTable(
name: "Prj_T_ProjectStatus");
migrationBuilder.DropTable( migrationBuilder.DropTable(
name: "Prj_T_Projects"); name: "Prj_T_Projects");
@ -8911,10 +9085,16 @@ namespace Erp.Platform.Migrations
name: "Prj_T_ProjectPhase"); name: "Prj_T_ProjectPhase");
migrationBuilder.DropTable( migrationBuilder.DropTable(
name: "Prj_T_ProjectTaskType"); name: "Prj_T_TaskType");
migrationBuilder.DropTable( migrationBuilder.DropTable(
name: "Prj_T_ProjectType"); name: "Prj_T_Type");
migrationBuilder.DropTable(
name: "Prj_T_Risk");
migrationBuilder.DropTable(
name: "Prj_T_Status");
} }
} }
} }

View file

@ -2064,6 +2064,64 @@ namespace Erp.Platform.Migrations
b.ToTable("Acc_T_Cash", (string)null); b.ToTable("Acc_T_Cash", (string)null);
}); });
modelBuilder.Entity("Erp.Platform.Entities.Category", 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_Category", (string)null);
});
modelBuilder.Entity("Erp.Platform.Entities.Certificate", b => modelBuilder.Entity("Erp.Platform.Entities.Certificate", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")
@ -9845,9 +9903,6 @@ namespace Erp.Platform.Migrations
b.Property<Guid?>("ProjectPhaseId") b.Property<Guid?>("ProjectPhaseId")
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
b.Property<Guid?>("ProjectTaskTypeId")
.HasColumnType("uniqueidentifier");
b.Property<Guid>("ProjectTypeId") b.Property<Guid>("ProjectTypeId")
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
@ -9857,6 +9912,9 @@ namespace Erp.Platform.Migrations
b.Property<Guid>("StatusId") b.Property<Guid>("StatusId")
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
b.Property<Guid?>("TaskTypeId")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("TenantId") b.Property<Guid?>("TenantId")
.HasColumnType("uniqueidentifier") .HasColumnType("uniqueidentifier")
.HasColumnName("TenantId"); .HasColumnName("TenantId");
@ -9869,73 +9927,15 @@ namespace Erp.Platform.Migrations
b.HasIndex("ProjectPhaseId"); b.HasIndex("ProjectPhaseId");
b.HasIndex("ProjectTaskTypeId");
b.HasIndex("ProjectTypeId"); b.HasIndex("ProjectTypeId");
b.HasIndex("StatusId"); b.HasIndex("StatusId");
b.HasIndex("TaskTypeId");
b.ToTable("Prj_T_Projects", (string)null); b.ToTable("Prj_T_Projects", (string)null);
}); });
modelBuilder.Entity("Erp.Platform.Entities.ProjectCategory", 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_ProjectCategory", (string)null);
});
modelBuilder.Entity("Erp.Platform.Entities.ProjectPhase", b => modelBuilder.Entity("Erp.Platform.Entities.ProjectPhase", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")
@ -9959,6 +9959,9 @@ namespace Erp.Platform.Migrations
.HasColumnType("decimal(18,2)") .HasColumnType("decimal(18,2)")
.HasDefaultValue(0m); .HasDefaultValue(0m);
b.Property<Guid>("CategoryId")
.HasColumnType("uniqueidentifier");
b.Property<string>("Code") b.Property<string>("Code")
.IsRequired() .IsRequired()
.HasMaxLength(100) .HasMaxLength(100)
@ -10016,13 +10019,10 @@ namespace Erp.Platform.Migrations
.HasColumnType("int") .HasColumnType("int")
.HasDefaultValue(0); .HasDefaultValue(0);
b.Property<Guid>("ProjectCategoryId")
.HasColumnType("uniqueidentifier");
b.Property<Guid>("ProjectId") b.Property<Guid>("ProjectId")
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
b.Property<Guid?>("ProjectRiskId") b.Property<Guid?>("RiskId")
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
b.Property<string>("Risks") b.Property<string>("Risks")
@ -10046,11 +10046,11 @@ namespace Erp.Platform.Migrations
b.HasKey("Id"); b.HasKey("Id");
b.HasIndex("ProjectCategoryId"); b.HasIndex("CategoryId");
b.HasIndex("ProjectId"); b.HasIndex("ProjectId");
b.HasIndex("ProjectRiskId"); b.HasIndex("RiskId");
b.HasIndex("StatusId"); b.HasIndex("StatusId");
@ -10078,15 +10078,6 @@ namespace Erp.Platform.Migrations
.HasColumnType("datetime2") .HasColumnType("datetime2")
.HasColumnName("DeletionTime"); .HasColumnName("DeletionTime");
b.Property<string>("Description")
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.Property<bool>("IsActive")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(true);
b.Property<bool>("IsDeleted") b.Property<bool>("IsDeleted")
.ValueGeneratedOnAdd() .ValueGeneratedOnAdd()
.HasColumnType("bit") .HasColumnType("bit")
@ -10101,10 +10092,11 @@ namespace Erp.Platform.Migrations
.HasColumnType("uniqueidentifier") .HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId"); .HasColumnName("LastModifierId");
b.Property<string>("Name") b.Property<Guid>("ProjectId")
.IsRequired() .HasColumnType("uniqueidentifier");
.HasMaxLength(50)
.HasColumnType("nvarchar(50)"); b.Property<Guid>("RiskId")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("TenantId") b.Property<Guid?>("TenantId")
.HasColumnType("uniqueidentifier") .HasColumnType("uniqueidentifier")
@ -10112,10 +10104,14 @@ namespace Erp.Platform.Migrations
b.HasKey("Id"); b.HasKey("Id");
b.HasIndex("ProjectId");
b.HasIndex("RiskId");
b.ToTable("Prj_T_ProjectRisk", (string)null); b.ToTable("Prj_T_ProjectRisk", (string)null);
}); });
modelBuilder.Entity("Erp.Platform.Entities.ProjectStatus", b => modelBuilder.Entity("Erp.Platform.Entities.ProjectTask", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
@ -10140,6 +10136,12 @@ namespace Erp.Platform.Migrations
.HasMaxLength(500) .HasMaxLength(500)
.HasColumnType("nvarchar(500)"); .HasColumnType("nvarchar(500)");
b.Property<Guid>("EmployeeId")
.HasColumnType("uniqueidentifier");
b.Property<DateTime>("EndDate")
.HasColumnType("datetime2");
b.Property<bool>("IsActive") b.Property<bool>("IsActive")
.ValueGeneratedOnAdd() .ValueGeneratedOnAdd()
.HasColumnType("bit") .HasColumnType("bit")
@ -10160,20 +10162,55 @@ namespace Erp.Platform.Migrations
.HasColumnName("LastModifierId"); .HasColumnName("LastModifierId");
b.Property<string>("Name") b.Property<string>("Name")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("nvarchar(200)");
b.Property<Guid>("PhaseId")
.HasColumnType("uniqueidentifier");
b.Property<string>("Priority")
.IsRequired() .IsRequired()
.HasMaxLength(50) .HasMaxLength(50)
.HasColumnType("nvarchar(50)"); .HasColumnType("nvarchar(50)");
b.Property<int>("Progress")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasDefaultValue(0);
b.Property<Guid>("ProjectId")
.HasColumnType("uniqueidentifier");
b.Property<DateTime>("StartDate")
.HasColumnType("datetime2");
b.Property<Guid>("StatusId")
.HasColumnType("uniqueidentifier");
b.Property<Guid>("TaskTypeId")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("TenantId") b.Property<Guid?>("TenantId")
.HasColumnType("uniqueidentifier") .HasColumnType("uniqueidentifier")
.HasColumnName("TenantId"); .HasColumnName("TenantId");
b.HasKey("Id"); b.HasKey("Id");
b.ToTable("Prj_T_ProjectStatus", (string)null); b.HasIndex("EmployeeId");
b.HasIndex("PhaseId");
b.HasIndex("ProjectId");
b.HasIndex("StatusId");
b.HasIndex("TaskTypeId");
b.ToTable("Prj_T_ProjectTask", (string)null);
}); });
modelBuilder.Entity("Erp.Platform.Entities.ProjectTaskType", b => modelBuilder.Entity("Erp.Platform.Entities.ProjectTeam", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
@ -10194,73 +10231,9 @@ namespace Erp.Platform.Migrations
.HasColumnType("datetime2") .HasColumnType("datetime2")
.HasColumnName("DeletionTime"); .HasColumnName("DeletionTime");
b.Property<string>("Description") b.Property<Guid>("EmployeeId")
.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_ProjectTaskType", (string)null);
});
modelBuilder.Entity("Erp.Platform.Entities.ProjectType", b =>
{
b.Property<Guid>("Id")
.HasColumnType("uniqueidentifier"); .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") b.Property<bool>("IsDeleted")
.ValueGeneratedOnAdd() .ValueGeneratedOnAdd()
.HasColumnType("bit") .HasColumnType("bit")
@ -10275,10 +10248,11 @@ namespace Erp.Platform.Migrations
.HasColumnType("uniqueidentifier") .HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId"); .HasColumnName("LastModifierId");
b.Property<string>("Name") b.Property<Guid?>("ManagerId")
.IsRequired() .HasColumnType("uniqueidentifier");
.HasMaxLength(50)
.HasColumnType("nvarchar(50)"); b.Property<Guid>("ProjectId")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("TenantId") b.Property<Guid?>("TenantId")
.HasColumnType("uniqueidentifier") .HasColumnType("uniqueidentifier")
@ -10286,7 +10260,13 @@ namespace Erp.Platform.Migrations
b.HasKey("Id"); b.HasKey("Id");
b.ToTable("Prj_T_ProjectType", (string)null); b.HasIndex("EmployeeId");
b.HasIndex("ManagerId");
b.HasIndex("ProjectId");
b.ToTable("Prj_T_ProjectTeam", (string)null);
}); });
modelBuilder.Entity("Erp.Platform.Entities.Psychologist", b => modelBuilder.Entity("Erp.Platform.Entities.Psychologist", b =>
@ -11458,6 +11438,64 @@ namespace Erp.Platform.Migrations
b.ToTable("Net_T_Reservation", (string)null); b.ToTable("Net_T_Reservation", (string)null);
}); });
modelBuilder.Entity("Erp.Platform.Entities.Risk", 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_Risk", (string)null);
});
modelBuilder.Entity("Erp.Platform.Entities.Route", b => modelBuilder.Entity("Erp.Platform.Entities.Route", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")
@ -12545,6 +12583,64 @@ namespace Erp.Platform.Migrations
b.ToTable("Prt_T_Source", (string)null); b.ToTable("Prt_T_Source", (string)null);
}); });
modelBuilder.Entity("Erp.Platform.Entities.Status", 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_Status", (string)null);
});
modelBuilder.Entity("Erp.Platform.Entities.SupplyCardType", b => modelBuilder.Entity("Erp.Platform.Entities.SupplyCardType", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")
@ -12972,6 +13068,64 @@ namespace Erp.Platform.Migrations
b.ToTable("Hr_T_SurveyResponse", (string)null); b.ToTable("Hr_T_SurveyResponse", (string)null);
}); });
modelBuilder.Entity("Erp.Platform.Entities.TaskType", 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_TaskType", (string)null);
});
modelBuilder.Entity("Erp.Platform.Entities.Template360", b => modelBuilder.Entity("Erp.Platform.Entities.Template360", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")
@ -13140,6 +13294,64 @@ namespace Erp.Platform.Migrations
b.ToTable("Net_T_Training", (string)null); b.ToTable("Net_T_Training", (string)null);
}); });
modelBuilder.Entity("Erp.Platform.Entities.Type", 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_Type", (string)null);
});
modelBuilder.Entity("Erp.Platform.Entities.Uom", b => modelBuilder.Entity("Erp.Platform.Entities.Uom", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")
@ -17424,22 +17636,22 @@ namespace Erp.Platform.Migrations
.WithMany("Projects") .WithMany("Projects")
.HasForeignKey("ProjectPhaseId"); .HasForeignKey("ProjectPhaseId");
b.HasOne("Erp.Platform.Entities.ProjectTaskType", null) b.HasOne("Erp.Platform.Entities.Type", "ProjectType")
.WithMany("Projects")
.HasForeignKey("ProjectTaskTypeId");
b.HasOne("Erp.Platform.Entities.ProjectType", "ProjectType")
.WithMany("Projects") .WithMany("Projects")
.HasForeignKey("ProjectTypeId") .HasForeignKey("ProjectTypeId")
.OnDelete(DeleteBehavior.Restrict) .OnDelete(DeleteBehavior.Restrict)
.IsRequired(); .IsRequired();
b.HasOne("Erp.Platform.Entities.ProjectStatus", "Status") b.HasOne("Erp.Platform.Entities.Status", "Status")
.WithMany("Projects") .WithMany("Projects")
.HasForeignKey("StatusId") .HasForeignKey("StatusId")
.OnDelete(DeleteBehavior.Restrict) .OnDelete(DeleteBehavior.Restrict)
.IsRequired(); .IsRequired();
b.HasOne("Erp.Platform.Entities.TaskType", null)
.WithMany("Projects")
.HasForeignKey("TaskTypeId");
b.Navigation("Customer"); b.Navigation("Customer");
b.Navigation("Manager"); b.Navigation("Manager");
@ -17451,33 +17663,120 @@ namespace Erp.Platform.Migrations
modelBuilder.Entity("Erp.Platform.Entities.ProjectPhase", b => modelBuilder.Entity("Erp.Platform.Entities.ProjectPhase", b =>
{ {
b.HasOne("Erp.Platform.Entities.ProjectCategory", "ProjectCategory") b.HasOne("Erp.Platform.Entities.Category", "Category")
.WithMany("ProjectPhases") .WithMany("ProjectPhases")
.HasForeignKey("ProjectCategoryId") .HasForeignKey("CategoryId")
.OnDelete(DeleteBehavior.Cascade) .OnDelete(DeleteBehavior.Cascade)
.IsRequired(); .IsRequired();
b.HasOne("Erp.Platform.Entities.Project", "Project") b.HasOne("Erp.Platform.Entities.Project", "Project")
.WithMany() .WithMany("Phases")
.HasForeignKey("ProjectId") .HasForeignKey("ProjectId")
.OnDelete(DeleteBehavior.Cascade) .OnDelete(DeleteBehavior.Restrict)
.IsRequired(); .IsRequired();
b.HasOne("Erp.Platform.Entities.ProjectRisk", null) b.HasOne("Erp.Platform.Entities.Risk", null)
.WithMany("ProjectPhases") .WithMany("ProjectPhases")
.HasForeignKey("ProjectRiskId"); .HasForeignKey("RiskId");
b.HasOne("Erp.Platform.Entities.ProjectStatus", "Status") b.HasOne("Erp.Platform.Entities.Status", "Status")
.WithMany() .WithMany("ProjectPhases")
.HasForeignKey("StatusId") .HasForeignKey("StatusId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("Category");
b.Navigation("Project");
b.Navigation("Status");
});
modelBuilder.Entity("Erp.Platform.Entities.ProjectRisk", b =>
{
b.HasOne("Erp.Platform.Entities.Project", "Project")
.WithMany("Risks")
.HasForeignKey("ProjectId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("Erp.Platform.Entities.Risk", "Risk")
.WithMany("ProjectRisks")
.HasForeignKey("RiskId")
.OnDelete(DeleteBehavior.Cascade) .OnDelete(DeleteBehavior.Cascade)
.IsRequired(); .IsRequired();
b.Navigation("Project"); b.Navigation("Project");
b.Navigation("ProjectCategory"); b.Navigation("Risk");
});
modelBuilder.Entity("Erp.Platform.Entities.ProjectTask", b =>
{
b.HasOne("Erp.Platform.Entities.Employee", "Employee")
.WithMany()
.HasForeignKey("EmployeeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Erp.Platform.Entities.ProjectPhase", "Phase")
.WithMany()
.HasForeignKey("PhaseId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Erp.Platform.Entities.Project", "Project")
.WithMany("Tasks")
.HasForeignKey("ProjectId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("Erp.Platform.Entities.Status", "Status")
.WithMany("ProjectTasks")
.HasForeignKey("StatusId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("Erp.Platform.Entities.TaskType", "TaskType")
.WithMany()
.HasForeignKey("TaskTypeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Employee");
b.Navigation("Phase");
b.Navigation("Project");
b.Navigation("Status"); b.Navigation("Status");
b.Navigation("TaskType");
});
modelBuilder.Entity("Erp.Platform.Entities.ProjectTeam", b =>
{
b.HasOne("Erp.Platform.Entities.Employee", "Employee")
.WithMany()
.HasForeignKey("EmployeeId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("Erp.Platform.Entities.Employee", "Manager")
.WithMany()
.HasForeignKey("ManagerId");
b.HasOne("Erp.Platform.Entities.Project", "Project")
.WithMany("Teams")
.HasForeignKey("ProjectId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("Employee");
b.Navigation("Manager");
b.Navigation("Project");
}); });
modelBuilder.Entity("Erp.Platform.Entities.PutawayCondition", b => modelBuilder.Entity("Erp.Platform.Entities.PutawayCondition", b =>
@ -18150,6 +18449,11 @@ namespace Erp.Platform.Migrations
b.Navigation("UserBranches"); b.Navigation("UserBranches");
}); });
modelBuilder.Entity("Erp.Platform.Entities.Category", b =>
{
b.Navigation("ProjectPhases");
});
modelBuilder.Entity("Erp.Platform.Entities.City", b => modelBuilder.Entity("Erp.Platform.Entities.City", b =>
{ {
b.Navigation("Districts"); b.Navigation("Districts");
@ -18357,9 +18661,15 @@ namespace Erp.Platform.Migrations
b.Navigation("Items"); b.Navigation("Items");
}); });
modelBuilder.Entity("Erp.Platform.Entities.ProjectCategory", b => modelBuilder.Entity("Erp.Platform.Entities.Project", b =>
{ {
b.Navigation("ProjectPhases"); b.Navigation("Phases");
b.Navigation("Risks");
b.Navigation("Tasks");
b.Navigation("Teams");
}); });
modelBuilder.Entity("Erp.Platform.Entities.ProjectPhase", b => modelBuilder.Entity("Erp.Platform.Entities.ProjectPhase", b =>
@ -18367,26 +18677,6 @@ namespace Erp.Platform.Migrations
b.Navigation("Projects"); b.Navigation("Projects");
}); });
modelBuilder.Entity("Erp.Platform.Entities.ProjectRisk", b =>
{
b.Navigation("ProjectPhases");
});
modelBuilder.Entity("Erp.Platform.Entities.ProjectStatus", b =>
{
b.Navigation("Projects");
});
modelBuilder.Entity("Erp.Platform.Entities.ProjectTaskType", b =>
{
b.Navigation("Projects");
});
modelBuilder.Entity("Erp.Platform.Entities.ProjectType", b =>
{
b.Navigation("Projects");
});
modelBuilder.Entity("Erp.Platform.Entities.Putaway", b => modelBuilder.Entity("Erp.Platform.Entities.Putaway", b =>
{ {
b.Navigation("Conditions"); b.Navigation("Conditions");
@ -18431,6 +18721,13 @@ namespace Erp.Platform.Migrations
b.Navigation("PurchaseRequests"); b.Navigation("PurchaseRequests");
}); });
modelBuilder.Entity("Erp.Platform.Entities.Risk", b =>
{
b.Navigation("ProjectPhases");
b.Navigation("ProjectRisks");
});
modelBuilder.Entity("Erp.Platform.Entities.Schedule", b => modelBuilder.Entity("Erp.Platform.Entities.Schedule", b =>
{ {
b.Navigation("Lessons"); b.Navigation("Lessons");
@ -18464,6 +18761,15 @@ namespace Erp.Platform.Migrations
b.Navigation("Opportunities"); b.Navigation("Opportunities");
}); });
modelBuilder.Entity("Erp.Platform.Entities.Status", b =>
{
b.Navigation("ProjectPhases");
b.Navigation("ProjectTasks");
b.Navigation("Projects");
});
modelBuilder.Entity("Erp.Platform.Entities.SupplyCardType", b => modelBuilder.Entity("Erp.Platform.Entities.SupplyCardType", b =>
{ {
b.Navigation("Partners"); b.Navigation("Partners");
@ -18491,6 +18797,11 @@ namespace Erp.Platform.Migrations
b.Navigation("Answers"); b.Navigation("Answers");
}); });
modelBuilder.Entity("Erp.Platform.Entities.TaskType", b =>
{
b.Navigation("Projects");
});
modelBuilder.Entity("Erp.Platform.Entities.Template360", b => modelBuilder.Entity("Erp.Platform.Entities.Template360", b =>
{ {
b.Navigation("Performans360s"); b.Navigation("Performans360s");
@ -18501,6 +18812,11 @@ namespace Erp.Platform.Migrations
b.Navigation("Certificates"); b.Navigation("Certificates");
}); });
modelBuilder.Entity("Erp.Platform.Entities.Type", b =>
{
b.Navigation("Projects");
});
modelBuilder.Entity("Erp.Platform.Entities.Uom", b => modelBuilder.Entity("Erp.Platform.Entities.Uom", b =>
{ {
b.Navigation("MaterialSpecifications"); b.Navigation("MaterialSpecifications");

View file

@ -100,7 +100,9 @@
"props": null, "props": null,
"description": null, "description": null,
"isActive": true, "isActive": true,
"dependencies": ["DynamicEntityComponent"] "dependencies": [
"DynamicEntityComponent"
]
} }
], ],
"ReportCategories": [ "ReportCategories": [
@ -2429,7 +2431,12 @@
"minSalary": 80000, "minSalary": 80000,
"maxSalary": 120000, "maxSalary": 120000,
"currency": "USD", "currency": "USD",
"requiredSkills": ["JavaScript", "TypeScript", "React", "Node.js"], "requiredSkills": [
"JavaScript",
"TypeScript",
"React",
"Node.js"
],
"responsibilities": [ "responsibilities": [
"Develop frontend and backend applications", "Develop frontend and backend applications",
"Write clean and maintainable code", "Write clean and maintainable code",
@ -4124,7 +4131,9 @@
{ {
"postContent": "CI/CD pipeline güncellememiz tamamlandı! Deployment süremiz %40 azaldı. Otomasyonun gücü 💪", "postContent": "CI/CD pipeline güncellememiz tamamlandı! Deployment süremiz %40 azaldı. Otomasyonun gücü 💪",
"type": "video", "type": "video",
"urls": ["https://www.w3schools.com/html/mov_bbb.mp4"] "urls": [
"https://www.w3schools.com/html/mov_bbb.mp4"
]
} }
], ],
"SocialPollOptions": [ "SocialPollOptions": [
@ -6150,5 +6159,77 @@
"description": "Projenin planlama aşamasında olduğunu ifade eder", "description": "Projenin planlama aşamasında olduğunu ifade eder",
"isActive": true "isActive": true
} }
],
"ProjectTasks": [
{
"projectCode": "PRJ-2024-001",
"projectPhaseCode": "PH-001",
"name": "Veritabanı Tasarımı",
"description": "Erp sistemi için veritabanı şemasının tasarlanması",
"taskTypeName": "Geliştirme",
"statusName": "Planlama",
"priority": "High",
"employeeCode": "EMP-001",
"startDate": "2024-01-15T00:00:00.000Z",
"endDate": "2024-02-15T00:00:00.000Z",
"progress": 60,
"isActive": true
},
{
"projectCode": "PRJ-2024-001",
"projectPhaseCode": "PH-002",
"name": "API Dokümantasyonu",
"description": "REST API endpoints dokümantasyonunun hazırlanması",
"taskTypeName": "Dokümantasyon",
"statusName": "Planlama",
"priority": "Medium",
"employeeCode": "EMP-002",
"startDate": "2024-02-01T00:00:00.000Z",
"endDate": "2024-02-20T00:00:00.000Z",
"progress": 0,
"isActive": true
},
{
"projectCode": "PRJ-2024-001",
"projectPhaseCode": "PH-003",
"name": "Güvenlik Açığı Düzeltme",
"description": "Kritik güvenlik açığının acil olarak düzeltilmesi gerekiyor",
"taskTypeName": "Geliştirme",
"statusName": "Planlama",
"priority": "Urgent",
"employeeCode": "EMP-001",
"startDate": "2024-10-20T00:00:00.000Z",
"endDate": "2024-10-25T00:00:00.000Z",
"progress": 40,
"isActive": true
},
{
"projectCode": "PRJ-2024-002",
"projectPhaseCode": "PH-004",
"name": "Unit Test Yazımı",
"description": "Backend servisler için unit testlerin yazılması",
"taskTypeName": "Test",
"statusName": "Tamamlandı",
"priority": "High",
"employeeCode": "EMP-003",
"startDate": "2024-01-20T00:00:00.000Z",
"endDate": "2024-02-10T00:00:00.000Z",
"progress": 100,
"isActive": true
},
{
"projectCode": "PRJ-2024-002",
"projectPhaseCode": "PH-005",
"name": "Performans Optimizasyonu",
"description": "Uygulama performansının iyileştirilmesi",
"taskTypeName": "Geliştirme",
"statusName": "Planlama",
"priority": "High",
"employeeCode": "EMP-002",
"startDate": "2024-10-28T00:00:00.000Z",
"endDate": "2024-11-15T00:00:00.000Z",
"progress": 0,
"isActive": true
}
] ]
} }

View file

@ -128,13 +128,14 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency
private readonly IRepository<Bom, Guid> _bomRepository; private readonly IRepository<Bom, Guid> _bomRepository;
private readonly IRepository<BomComponent, Guid> _bomComponentRepository; private readonly IRepository<BomComponent, Guid> _bomComponentRepository;
private readonly IRepository<BomOperation, Guid> _bomOperationRepository; private readonly IRepository<BomOperation, Guid> _bomOperationRepository;
private readonly IRepository<ProjectType, Guid> _projectTypeRepository; private readonly IRepository<Entities.Type, Guid> _projectTypeRepository;
private readonly IRepository<ProjectStatus, Guid> _projectStatusRepository; private readonly IRepository<Status, Guid> _projectStatusRepository;
private readonly IRepository<Category, Guid> _projectCategoryRepository;
private readonly IRepository<Risk, Guid> _projectRiskRepository;
private readonly IRepository<TaskType, Guid> _projectTaskTypeRepository;
private readonly IRepository<Project, Guid> _projectRepository; private readonly IRepository<Project, Guid> _projectRepository;
private readonly IRepository<ProjectCategory, Guid> _projectCategoryRepository;
private readonly IRepository<ProjectRisk, Guid> _projectRiskRepository;
private readonly IRepository<ProjectPhase, Guid> _projectPhaseRepository; private readonly IRepository<ProjectPhase, Guid> _projectPhaseRepository;
private readonly IRepository<ProjectTaskType, Guid> _projectTaskRepository; private readonly IRepository<ProjectTask, Guid> _projectTaskRepository;
public TenantDataSeeder( public TenantDataSeeder(
IClock clock, IClock clock,
@ -246,13 +247,14 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency
IRepository<Bom, Guid> bomRepository, IRepository<Bom, Guid> bomRepository,
IRepository<BomComponent, Guid> bomComponentRepository, IRepository<BomComponent, Guid> bomComponentRepository,
IRepository<BomOperation, Guid> bomOperationRepository, IRepository<BomOperation, Guid> bomOperationRepository,
IRepository<ProjectType, Guid> projectTypeRepository, IRepository<Entities.Type, Guid> projectTypeRepository,
IRepository<ProjectStatus, Guid> projectStatusRepository, IRepository<Status, Guid> projectStatusRepository,
IRepository<Risk, Guid> projectRiskRepository,
IRepository<Category, Guid> projectCategoryRepository,
IRepository<TaskType, Guid> projectTaskTypeRepository,
IRepository<Project, Guid> projectRepository, IRepository<Project, Guid> projectRepository,
IRepository<ProjectRisk, Guid> projectRiskRepository,
IRepository<ProjectCategory, Guid> projectCategoryRepository,
IRepository<ProjectPhase, Guid> projectPhaseRepository, IRepository<ProjectPhase, Guid> projectPhaseRepository,
IRepository<ProjectTaskType, Guid> projectTaskRepository IRepository<ProjectTask, Guid> projectTaskRepository
) )
{ {
_clock = clock; _clock = clock;
@ -367,9 +369,10 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency
_bomOperationRepository = bomOperationRepository; _bomOperationRepository = bomOperationRepository;
_projectTypeRepository = projectTypeRepository; _projectTypeRepository = projectTypeRepository;
_projectStatusRepository = projectStatusRepository; _projectStatusRepository = projectStatusRepository;
_projectRepository = projectRepository;
_projectCategoryRepository = projectCategoryRepository; _projectCategoryRepository = projectCategoryRepository;
_projectRiskRepository = projectRiskRepository; _projectRiskRepository = projectRiskRepository;
_projectTaskTypeRepository = projectTaskTypeRepository;
_projectRepository = projectRepository;
_projectPhaseRepository = projectPhaseRepository; _projectPhaseRepository = projectPhaseRepository;
_projectTaskRepository = projectTaskRepository; _projectTaskRepository = projectTaskRepository;
} }
@ -2474,7 +2477,7 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency
if (exists) if (exists)
continue; continue;
await _projectTypeRepository.InsertAsync(new ProjectType await _projectTypeRepository.InsertAsync(new Entities.Type
{ {
Name = item.Name, Name = item.Name,
Description = item.Description, Description = item.Description,
@ -2488,7 +2491,7 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency
if (exists) if (exists)
continue; continue;
await _projectStatusRepository.InsertAsync(new ProjectStatus await _projectStatusRepository.InsertAsync(new Status
{ {
Name = item.Name, Name = item.Name,
Description = item.Description, Description = item.Description,
@ -2535,7 +2538,7 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency
if (exists) if (exists)
continue; continue;
await _projectRiskRepository.InsertAsync(new ProjectRisk await _projectRiskRepository.InsertAsync(new Risk
{ {
Name = item.Name, Name = item.Name,
Description = item.Description, Description = item.Description,
@ -2549,7 +2552,21 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency
if (exists) if (exists)
continue; continue;
await _projectCategoryRepository.InsertAsync(new ProjectCategory await _projectCategoryRepository.InsertAsync(new Category
{
Name = item.Name,
Description = item.Description,
IsActive = item.IsActive
}, autoSave: true);
}
foreach (var item in items.ProjectTaskTypes)
{
var exists = await _projectTaskTypeRepository.AnyAsync(x => x.Name == item.Name);
if (exists)
continue;
await _projectTaskTypeRepository.InsertAsync(new TaskType
{ {
Name = item.Name, Name = item.Name,
Description = item.Description, Description = item.Description,
@ -2564,17 +2581,17 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency
continue; continue;
var project = await _projectRepository.FirstOrDefaultAsync(x => x.Code == item.ProjectCode); var project = await _projectRepository.FirstOrDefaultAsync(x => x.Code == item.ProjectCode);
var projectCategory = await _projectCategoryRepository.FirstOrDefaultAsync(x => x.Name == item.CategoryName); var category = await _projectCategoryRepository.FirstOrDefaultAsync(x => x.Name == item.CategoryName);
var projectStatus = await _projectStatusRepository.FirstOrDefaultAsync(x => x.Name == item.StatusName); var status = await _projectStatusRepository.FirstOrDefaultAsync(x => x.Name == item.StatusName);
await _projectPhaseRepository.InsertAsync(new ProjectPhase await _projectPhaseRepository.InsertAsync(new ProjectPhase
{ {
ProjectId = project?.Id, ProjectId = project?.Id,
ProjectCategoryId = projectCategory?.Id, CategoryId = category?.Id,
Code = item.Code, Code = item.Code,
Name = item.Name, Name = item.Name,
Description = item.Description, Description = item.Description,
StatusId = projectStatus?.Id, StatusId = status?.Id,
Sequence = item.Sequence, Sequence = item.Sequence,
StartDate = item.StartDate, StartDate = item.StartDate,
EndDate = item.EndDate, EndDate = item.EndDate,
@ -2588,16 +2605,31 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency
}, autoSave: true); }, autoSave: true);
} }
foreach (var item in items.ProjectTaskTypes) foreach (var item in items.ProjectTasks)
{ {
var exists = await _projectTaskRepository.AnyAsync(x => x.Name == item.Name); var exists = await _projectTaskRepository.AnyAsync(x => x.Name == item.Name);
if (exists) if (exists)
continue; continue;
await _projectTaskRepository.InsertAsync(new ProjectTaskType var project = await _projectRepository.FirstOrDefaultAsync(x => x.Code == item.ProjectCode);
var projectPhase = await _projectPhaseRepository.FirstOrDefaultAsync(x => x.Code == item.ProjectPhaseCode);
var taskType = await _projectTaskTypeRepository.FirstOrDefaultAsync(x => x.Name == item.TaskTypeName);
var status = await _projectStatusRepository.FirstOrDefaultAsync(x => x.Name == item.StatusName);
var employee = await _employeeRepository.FirstOrDefaultAsync(x => x.Code == item.EmployeeCode);
await _projectTaskRepository.InsertAsync(new ProjectTask
{ {
ProjectId = project?.Id,
PhaseId = projectPhase?.Id,
Name = item.Name, Name = item.Name,
Description = item.Description, Description = item.Description,
TaskTypeId = taskType?.Id,
Priority = item.Priority,
StatusId = status?.Id,
EmployeeId = employee?.Id,
StartDate = item.StartDate,
EndDate = item.EndDate,
Progress = item.Progress,
IsActive = item.IsActive IsActive = item.IsActive
}, autoSave: true); }, autoSave: true);
} }

View file

@ -133,8 +133,30 @@ public class TenantSeederDto
public List<ProjectSeedDto> Projects { get; set; } public List<ProjectSeedDto> Projects { get; set; }
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<ProjectPhaseSeedDto> ProjectPhases { get; set; }
public List<ProjectTaskTypeSeedDto> ProjectTaskTypes { get; set; } public List<ProjectTaskTypeSeedDto> ProjectTaskTypes { get; set; }
public List<ProjectPhaseSeedDto> ProjectPhases { get; set; }
public List<ProjectTaskSeedDto> ProjectTasks { get; set; }
}
public class ProjectTaskSeedDto
{
public string ProjectCode { get; set; }
public string ProjectPhaseCode { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string TaskTypeName { get; set; }
public string Priority { get; set; }
public string StatusName { get; set; }
public string EmployeeCode { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public int Progress { get; set; }
public bool IsActive { get; set; }
} }
public class ProjectTaskTypeSeedDto public class ProjectTaskTypeSeedDto

View file

@ -748,6 +748,7 @@ export enum ColumnRowTypeListOptions {
export enum SubFormTabTypeEnum { export enum SubFormTabTypeEnum {
List = 'List', List = 'List',
Tree = 'Tree',
Form = 'Form', Form = 'Form',
Chart = 'Chart', Chart = 'Chart',
Pivot = 'Pivot', Pivot = 'Pivot',

View file

@ -203,6 +203,7 @@ export const columnEditorTypeListOptions = [
export const listFormTypeOptions = [ export const listFormTypeOptions = [
{ value: 'Form', label: 'Form' }, { value: 'Form', label: 'Form' },
{ value: 'List', label: 'List' }, { value: 'List', label: 'List' },
{ value: 'Tree', label: 'Tree' },
{ value: 'Chart', label: 'Chart' }, { value: 'Chart', label: 'Chart' },
] ]

View file

@ -12,6 +12,7 @@ import FormEdit from './FormEdit'
import FormNew from './FormNew' import FormNew from './FormNew'
import FormView from './FormView' import FormView from './FormView'
import { useLocalization } from '@/utils/hooks/useLocalization' import { useLocalization } from '@/utils/hooks/useLocalization'
import Tree from '../list/Tree'
const SubForms = (props: { const SubForms = (props: {
gridDto: GridDto gridDto: GridDto
@ -108,6 +109,15 @@ const SubForms = (props: {
refreshData={subForm.isRefresh ? refreshData : undefined} refreshData={subForm.isRefresh ? refreshData : undefined}
/> />
)} )}
{subForm.tabType == SubFormTabTypeEnum.Tree && (
<Tree
listFormCode={subForm.code}
searchParams={subForm.searchParams}
isSubForm={true}
level={level + 1}
refreshData={subForm.isRefresh ? refreshData : undefined}
/>
)}
{subForm.tabType == SubFormTabTypeEnum.Form && {subForm.tabType == SubFormTabTypeEnum.Form &&
(subForm.tabMode == 'edit' ? ( (subForm.tabMode == 'edit' ? (
<FormEdit <FormEdit

View file

@ -31,7 +31,12 @@ import AnnouncementDetailModal from './modals/AnnouncementDetailModal'
import SocialWall from './SocialWall' import SocialWall from './SocialWall'
import { Container } from '@/components/shared' import { Container } from '@/components/shared'
import { usePermission } from '@/utils/hooks/usePermission' import { usePermission } from '@/utils/hooks/usePermission'
import { AnnouncementDto, IntranetDashboardDto, SurveyAnswerDto, SurveyDto } from '@/proxy/intranet/models' import {
AnnouncementDto,
IntranetDashboardDto,
SurveyAnswerDto,
SurveyDto,
} from '@/proxy/intranet/models'
import { intranetService } from '@/services/intranet.service' import { intranetService } from '@/services/intranet.service'
import Announcements from './widgets/Announcements' import Announcements from './widgets/Announcements'
import ShuttleRoute from './widgets/ShuttleRoute' import ShuttleRoute from './widgets/ShuttleRoute'
@ -127,7 +132,7 @@ const IntranetDashboard: React.FC = () => {
permission: 'App.Intranet.Announcement.Widget', permission: 'App.Intranet.Announcement.Widget',
column: 'right', column: 'right',
}, },
{ id: 'priority-tasks', permission: 'App.Project.TaskType.Widget', column: 'right' }, { id: 'priority-tasks', permission: 'App.Project.ProjectTask.Widget', column: 'right' },
{ id: 'meal-weekly-menu', permission: 'App.Intranet.Meal.Widget', column: 'right' }, { id: 'meal-weekly-menu', permission: 'App.Intranet.Meal.Widget', column: 'right' },
{ id: 'shuttle-route', permission: 'App.Intranet.ShuttleRoute.Widget', column: 'right' }, { id: 'shuttle-route', permission: 'App.Intranet.ShuttleRoute.Widget', column: 'right' },
{ id: 'leave-management', permission: 'App.Hr.Leave.Widget', column: 'right' }, { id: 'leave-management', permission: 'App.Hr.Leave.Widget', column: 'right' },