Proje Task
This commit is contained in:
parent
58ab8661fb
commit
b11b5f2185
15 changed files with 486 additions and 13 deletions
|
|
@ -9616,6 +9616,12 @@
|
||||||
{
|
{
|
||||||
"resourceName": "Platform",
|
"resourceName": "Platform",
|
||||||
"key": "App.Project.Task",
|
"key": "App.Project.Task",
|
||||||
|
"tr": "Görev Tanımları",
|
||||||
|
"en": "Task Definitions"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resourceName": "Platform",
|
||||||
|
"key": "App.Project.Tasks",
|
||||||
"tr": "Görevler",
|
"tr": "Görevler",
|
||||||
"en": "Tasks"
|
"en": "Tasks"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -1286,6 +1286,129 @@ public class ListFormSeeder_Project : IDataSeedContributor, ITransientDependency
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region Project Task
|
||||||
|
listFormName = AppCodes.Project.Task;
|
||||||
|
if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName))
|
||||||
|
{
|
||||||
|
var listForm = await _listFormRepository.InsertAsync(
|
||||||
|
new ListForm()
|
||||||
|
{
|
||||||
|
ListFormType = ListFormTypeEnum.List,
|
||||||
|
IsSubForm = false,
|
||||||
|
ShowNote = true,
|
||||||
|
LayoutJson = DefaultLayoutJson,
|
||||||
|
CultureName = LanguageCodes.En,
|
||||||
|
ListFormCode = listFormName,
|
||||||
|
Name = listFormName,
|
||||||
|
Title = listFormName,
|
||||||
|
DataSourceCode = SeedConsts.DataSources.DefaultCode,
|
||||||
|
IsTenant = true,
|
||||||
|
IsBranch = false,
|
||||||
|
IsOrganizationUnit = false,
|
||||||
|
Description = listFormName,
|
||||||
|
SelectCommandType = SelectCommandTypeEnum.Table,
|
||||||
|
SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.ProjectTask)),
|
||||||
|
KeyFieldName = "Id",
|
||||||
|
KeyFieldDbSourceType = DbType.Guid,
|
||||||
|
DefaultFilter = DefaultFilterJson,
|
||||||
|
SortMode = GridOptions.SortModeSingle,
|
||||||
|
FilterRowJson = DefaultFilterRowJson,
|
||||||
|
HeaderFilterJson = DefaultHeaderFilterJson,
|
||||||
|
SearchPanelJson = DefaultSearchPanelJson,
|
||||||
|
GroupPanelJson = DefaultGroupPanelJson,
|
||||||
|
SelectionJson = DefaultSelectionSingleJson,
|
||||||
|
ColumnOptionJson = DefaultColumnOptionJson,
|
||||||
|
PermissionJson = DefaultPermissionJson(listFormName),
|
||||||
|
DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.ProjectTask)),
|
||||||
|
DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson,
|
||||||
|
PagerOptionJson = DefaultPagerOptionJson,
|
||||||
|
EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 300, true, true, true, true, false),
|
||||||
|
InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson,
|
||||||
|
EditingFormJson = JsonSerializer.Serialize(new List<EditingFormDto>()
|
||||||
|
{
|
||||||
|
new() {
|
||||||
|
Order=1, ColCount=1, ColSpan=1, ItemType="group", Items =[
|
||||||
|
new EditingFormItemDto { Order = 1, DataField="Name", ColSpan = 1, IsRequired =true, EditorType2 = EditorTypes.dxTextBox },
|
||||||
|
new EditingFormItemDto { Order = 2, DataField="Description", ColSpan = 1, EditorType2 = EditorTypes.dxTextArea },
|
||||||
|
new EditingFormItemDto { Order = 3, DataField="IsActive", ColSpan = 1, EditorType2 = EditorTypes.dxCheckBox },
|
||||||
|
]}
|
||||||
|
}),
|
||||||
|
FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] {
|
||||||
|
new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value }
|
||||||
|
}),
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
#region Project Task Fields
|
||||||
|
await _listFormFieldRepository.InsertManyAsync([
|
||||||
|
new() {
|
||||||
|
ListFormCode = listForm.ListFormCode,
|
||||||
|
CultureName = LanguageCodes.En,
|
||||||
|
SourceDbType = DbType.Guid,
|
||||||
|
FieldName = "Id",
|
||||||
|
Width = 100,
|
||||||
|
ListOrderNo = 1,
|
||||||
|
Visible = false,
|
||||||
|
IsActive = true,
|
||||||
|
IsDeleted = false,
|
||||||
|
ValidationRuleJson = DefaultValidationRuleRequiredJson,
|
||||||
|
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||||
|
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||||
|
PivotSettingsJson = DefaultPivotSettingsJson
|
||||||
|
},
|
||||||
|
new() {
|
||||||
|
ListFormCode = listForm.ListFormCode,
|
||||||
|
CultureName = LanguageCodes.En,
|
||||||
|
SourceDbType = DbType.String,
|
||||||
|
FieldName = "Name",
|
||||||
|
Width = 300,
|
||||||
|
ListOrderNo = 2,
|
||||||
|
Visible = true,
|
||||||
|
IsActive = true,
|
||||||
|
IsDeleted = false,
|
||||||
|
AllowSearch = true,
|
||||||
|
SortIndex = 1,
|
||||||
|
SortDirection = GridColumnOptions.SortOrderAsc,
|
||||||
|
ValidationRuleJson = DefaultValidationRuleRequiredJson,
|
||||||
|
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||||
|
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||||
|
PivotSettingsJson = DefaultPivotSettingsJson
|
||||||
|
},
|
||||||
|
new() {
|
||||||
|
ListFormCode = listForm.ListFormCode,
|
||||||
|
CultureName = LanguageCodes.En,
|
||||||
|
SourceDbType = DbType.String,
|
||||||
|
FieldName = "Description",
|
||||||
|
Width = 500,
|
||||||
|
ListOrderNo = 3,
|
||||||
|
Visible = true,
|
||||||
|
IsActive = true,
|
||||||
|
IsDeleted = false,
|
||||||
|
AllowSearch = true,
|
||||||
|
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||||
|
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||||
|
PivotSettingsJson = DefaultPivotSettingsJson
|
||||||
|
},
|
||||||
|
new() {
|
||||||
|
ListFormCode = listForm.ListFormCode,
|
||||||
|
CultureName = LanguageCodes.En,
|
||||||
|
SourceDbType = DbType.Boolean,
|
||||||
|
FieldName = "IsActive",
|
||||||
|
Width = 100,
|
||||||
|
ListOrderNo = 4,
|
||||||
|
Visible = true,
|
||||||
|
IsActive = true,
|
||||||
|
IsDeleted = false,
|
||||||
|
AllowSearch = true,
|
||||||
|
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||||
|
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||||
|
PivotSettingsJson = DefaultPivotSettingsJson
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2614,11 +2614,21 @@
|
||||||
"RequiredPermissionName": "App.Project.Risk",
|
"RequiredPermissionName": "App.Project.Risk",
|
||||||
"IsDisabled": false
|
"IsDisabled": false
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"ParentCode": "App.Project",
|
||||||
|
"Code": "App.Project.Task",
|
||||||
|
"DisplayName": "App.Project.Task",
|
||||||
|
"Order": 5,
|
||||||
|
"Url": "/admin/list/App.Project.Task",
|
||||||
|
"Icon": "FcPlanner",
|
||||||
|
"RequiredPermissionName": "App.Project.Task",
|
||||||
|
"IsDisabled": false
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"ParentCode": "App.Project",
|
"ParentCode": "App.Project",
|
||||||
"Code": "App.Project.Projects",
|
"Code": "App.Project.Projects",
|
||||||
"DisplayName": "App.Project.Projects",
|
"DisplayName": "App.Project.Projects",
|
||||||
"Order": 5,
|
"Order": 6,
|
||||||
"Url": "/admin/list/App.Project.Projects",
|
"Url": "/admin/list/App.Project.Projects",
|
||||||
"Icon": "FcTodoList",
|
"Icon": "FcTodoList",
|
||||||
"RequiredPermissionName": "App.Project.Projects",
|
"RequiredPermissionName": "App.Project.Projects",
|
||||||
|
|
@ -2628,7 +2638,7 @@
|
||||||
"ParentCode": "App.Project",
|
"ParentCode": "App.Project",
|
||||||
"Code": "App.Project.Phase",
|
"Code": "App.Project.Phase",
|
||||||
"DisplayName": "App.Project.Phase",
|
"DisplayName": "App.Project.Phase",
|
||||||
"Order": 6,
|
"Order": 7,
|
||||||
"Url": "/admin/list/App.Project.Phase",
|
"Url": "/admin/list/App.Project.Phase",
|
||||||
"Icon": "FcParallelTasks",
|
"Icon": "FcParallelTasks",
|
||||||
"RequiredPermissionName": "App.Project.Phase",
|
"RequiredPermissionName": "App.Project.Phase",
|
||||||
|
|
@ -2636,19 +2646,19 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ParentCode": "App.Project",
|
"ParentCode": "App.Project",
|
||||||
"Code": "App.Project.Task",
|
"Code": "App.Project.Tasks",
|
||||||
"DisplayName": "App.Project.Task",
|
"DisplayName": "App.Project.Tasks",
|
||||||
"Order": 7,
|
"Order": 8,
|
||||||
"Url": "/admin/projects/tasks",
|
"Url": "/admin/projects/tasks",
|
||||||
"Icon": "FcBullish",
|
"Icon": "FcBullish",
|
||||||
"RequiredPermissionName": "App.Project.Task",
|
"RequiredPermissionName": "App.Project.Tasks",
|
||||||
"IsDisabled": false
|
"IsDisabled": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ParentCode": "App.Project",
|
"ParentCode": "App.Project",
|
||||||
"Code": "App.Project.Activity",
|
"Code": "App.Project.Activity",
|
||||||
"DisplayName": "App.Project.Activity",
|
"DisplayName": "App.Project.Activity",
|
||||||
"Order": 8,
|
"Order": 9,
|
||||||
"Url": "/admin/projects/activities",
|
"Url": "/admin/projects/activities",
|
||||||
"Icon": "FcPlanner",
|
"Icon": "FcPlanner",
|
||||||
"RequiredPermissionName": "App.Project.Activity",
|
"RequiredPermissionName": "App.Project.Activity",
|
||||||
|
|
@ -2658,7 +2668,7 @@
|
||||||
"ParentCode": "App.Project",
|
"ParentCode": "App.Project",
|
||||||
"Code": "App.Project.Workload",
|
"Code": "App.Project.Workload",
|
||||||
"DisplayName": "App.Project.Workload",
|
"DisplayName": "App.Project.Workload",
|
||||||
"Order": 9,
|
"Order": 10,
|
||||||
"Url": "/admin/projects/workload",
|
"Url": "/admin/projects/workload",
|
||||||
"Icon": "FcFlowChart",
|
"Icon": "FcFlowChart",
|
||||||
"RequiredPermissionName": "App.Project.Workload",
|
"RequiredPermissionName": "App.Project.Workload",
|
||||||
|
|
@ -2668,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": 10,
|
"Order": 11,
|
||||||
"Url": "/admin/projects/cost-tracking",
|
"Url": "/admin/projects/cost-tracking",
|
||||||
"Icon": "FcMoneyTransfer",
|
"Icon": "FcMoneyTransfer",
|
||||||
"RequiredPermissionName": "App.Project.CostTracking",
|
"RequiredPermissionName": "App.Project.CostTracking",
|
||||||
|
|
@ -2678,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": 11,
|
"Order": 12,
|
||||||
"Url": "/admin/projects/daily-updates",
|
"Url": "/admin/projects/daily-updates",
|
||||||
"Icon": "FcConferenceCall",
|
"Icon": "FcConferenceCall",
|
||||||
"RequiredPermissionName": "App.Project.DailyUpdates",
|
"RequiredPermissionName": "App.Project.DailyUpdates",
|
||||||
|
|
|
||||||
|
|
@ -8467,6 +8467,71 @@
|
||||||
"MultiTenancySide": 3,
|
"MultiTenancySide": 3,
|
||||||
"MenuGroup": "Erp"
|
"MenuGroup": "Erp"
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"GroupName": "App.Project",
|
||||||
|
"Name": "App.Project.Tasks",
|
||||||
|
"ParentName": null,
|
||||||
|
"DisplayName": "App.Project.Tasks",
|
||||||
|
"IsEnabled": true,
|
||||||
|
"MultiTenancySide": 3,
|
||||||
|
"MenuGroup": "Erp"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"GroupName": "App.Project",
|
||||||
|
"Name": "App.Project.Tasks.Create",
|
||||||
|
"ParentName": "App.Project.Tasks",
|
||||||
|
"DisplayName": "Create",
|
||||||
|
"IsEnabled": true,
|
||||||
|
"MultiTenancySide": 3,
|
||||||
|
"MenuGroup": "Erp"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"GroupName": "App.Project",
|
||||||
|
"Name": "App.Project.Tasks.Update",
|
||||||
|
"ParentName": "App.Project.Tasks",
|
||||||
|
"DisplayName": "Update",
|
||||||
|
"IsEnabled": true,
|
||||||
|
"MultiTenancySide": 3,
|
||||||
|
"MenuGroup": "Erp"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"GroupName": "App.Project",
|
||||||
|
"Name": "App.Project.Tasks.Delete",
|
||||||
|
"ParentName": "App.Project.Tasks",
|
||||||
|
"DisplayName": "Delete",
|
||||||
|
"IsEnabled": true,
|
||||||
|
"MultiTenancySide": 3,
|
||||||
|
"MenuGroup": "Erp"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"GroupName": "App.Project",
|
||||||
|
"Name": "App.Project.Tasks.Export",
|
||||||
|
"ParentName": "App.Project.Tasks",
|
||||||
|
"DisplayName": "Export",
|
||||||
|
"IsEnabled": true,
|
||||||
|
"MultiTenancySide": 3,
|
||||||
|
"MenuGroup": "Erp"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"GroupName": "App.Project",
|
||||||
|
"Name": "App.Project.Tasks.Import",
|
||||||
|
"ParentName": "App.Project.Tasks",
|
||||||
|
"DisplayName": "Import",
|
||||||
|
"IsEnabled": true,
|
||||||
|
"MultiTenancySide": 3,
|
||||||
|
"MenuGroup": "Erp"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"GroupName": "App.Project",
|
||||||
|
"Name": "App.Project.Tasks.Note",
|
||||||
|
"ParentName": "App.Project.Tasks",
|
||||||
|
"DisplayName": "Note",
|
||||||
|
"IsEnabled": true,
|
||||||
|
"MultiTenancySide": 3,
|
||||||
|
"MenuGroup": "Erp"
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"GroupName": "App.Project",
|
"GroupName": "App.Project",
|
||||||
"Name": "App.Project.Activity",
|
"Name": "App.Project.Activity",
|
||||||
|
|
|
||||||
|
|
@ -193,5 +193,6 @@ public enum TableNameEnum
|
||||||
ProjectStatus,
|
ProjectStatus,
|
||||||
ProjectRisk,
|
ProjectRisk,
|
||||||
ProjectPhase,
|
ProjectPhase,
|
||||||
ProjectCategory
|
ProjectCategory,
|
||||||
|
ProjectTask
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -233,6 +233,7 @@ public static class TableNameResolver
|
||||||
{ nameof(TableNameEnum.ProjectCategory), (TablePrefix.TenantByName, MenuPrefix.Project) },
|
{ nameof(TableNameEnum.ProjectCategory), (TablePrefix.TenantByName, MenuPrefix.Project) },
|
||||||
{ nameof(TableNameEnum.ProjectPhase), (TablePrefix.TenantByName, MenuPrefix.Project) },
|
{ nameof(TableNameEnum.ProjectPhase), (TablePrefix.TenantByName, MenuPrefix.Project) },
|
||||||
{ nameof(TableNameEnum.Projects), (TablePrefix.TenantByName, MenuPrefix.Project) },
|
{ nameof(TableNameEnum.Projects), (TablePrefix.TenantByName, MenuPrefix.Project) },
|
||||||
|
{ nameof(TableNameEnum.ProjectTask), (TablePrefix.TenantByName, MenuPrefix.Project) },
|
||||||
};
|
};
|
||||||
|
|
||||||
public static string GetFullTableName(string tableName)
|
public static string GetFullTableName(string tableName)
|
||||||
|
|
|
||||||
|
|
@ -568,6 +568,7 @@ public static class SeedConsts
|
||||||
public const string Risk = Default + ".Risk";
|
public const string Risk = Default + ".Risk";
|
||||||
public const string Category = Default + ".Category";
|
public const string Category = Default + ".Category";
|
||||||
public const string Phase = Default + ".Phase";
|
public const string Phase = Default + ".Phase";
|
||||||
|
public const string Task = Default + ".Task";
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Mrp
|
public static class Mrp
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Volo.Abp.Domain.Entities.Auditing;
|
||||||
|
using Volo.Abp.MultiTenancy;
|
||||||
|
|
||||||
|
namespace Erp.Platform.Entities;
|
||||||
|
|
||||||
|
public class ProjectTask : 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<Project> Projects { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -274,6 +274,7 @@ public class PlatformDbContext :
|
||||||
public DbSet<ProjectRisk> ProjectRisks { get; set; }
|
public DbSet<ProjectRisk> ProjectRisks { get; set; }
|
||||||
public DbSet<ProjectCategory> ProjectCategories { get; set; }
|
public DbSet<ProjectCategory> ProjectCategories { get; set; }
|
||||||
public DbSet<ProjectPhase> ProjectPhases { get; set; }
|
public DbSet<ProjectPhase> ProjectPhases { get; set; }
|
||||||
|
public DbSet<ProjectTask> ProjectTasks { get; set; }
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
public PlatformDbContext(DbContextOptions<PlatformDbContext> options)
|
public PlatformDbContext(DbContextOptions<PlatformDbContext> options)
|
||||||
|
|
@ -3307,5 +3308,15 @@ public class PlatformDbContext :
|
||||||
|
|
||||||
b.Property(x => x.IsActive).HasDefaultValue(true);
|
b.Property(x => x.IsActive).HasDefaultValue(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
builder.Entity<ProjectTask>(b =>
|
||||||
|
{
|
||||||
|
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.ProjectTask)), 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);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore;
|
||||||
namespace Erp.Platform.Migrations
|
namespace Erp.Platform.Migrations
|
||||||
{
|
{
|
||||||
[DbContext(typeof(PlatformDbContext))]
|
[DbContext(typeof(PlatformDbContext))]
|
||||||
[Migration("20251127083732_Initial")]
|
[Migration("20251127105051_Initial")]
|
||||||
partial class Initial
|
partial class Initial
|
||||||
{
|
{
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
|
|
@ -9848,6 +9848,9 @@ namespace Erp.Platform.Migrations
|
||||||
b.Property<Guid?>("ProjectPhaseId")
|
b.Property<Guid?>("ProjectPhaseId")
|
||||||
.HasColumnType("uniqueidentifier");
|
.HasColumnType("uniqueidentifier");
|
||||||
|
|
||||||
|
b.Property<Guid?>("ProjectTaskId")
|
||||||
|
.HasColumnType("uniqueidentifier");
|
||||||
|
|
||||||
b.Property<Guid>("ProjectTypeId")
|
b.Property<Guid>("ProjectTypeId")
|
||||||
.HasColumnType("uniqueidentifier");
|
.HasColumnType("uniqueidentifier");
|
||||||
|
|
||||||
|
|
@ -9869,6 +9872,8 @@ namespace Erp.Platform.Migrations
|
||||||
|
|
||||||
b.HasIndex("ProjectPhaseId");
|
b.HasIndex("ProjectPhaseId");
|
||||||
|
|
||||||
|
b.HasIndex("ProjectTaskId");
|
||||||
|
|
||||||
b.HasIndex("ProjectTypeId");
|
b.HasIndex("ProjectTypeId");
|
||||||
|
|
||||||
b.HasIndex("StatusId");
|
b.HasIndex("StatusId");
|
||||||
|
|
@ -10171,6 +10176,64 @@ namespace Erp.Platform.Migrations
|
||||||
b.ToTable("Prj_T_ProjectStatus", (string)null);
|
b.ToTable("Prj_T_ProjectStatus", (string)null);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Erp.Platform.Entities.ProjectTask", 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_ProjectTask", (string)null);
|
||||||
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Erp.Platform.Entities.ProjectType", b =>
|
modelBuilder.Entity("Erp.Platform.Entities.ProjectType", b =>
|
||||||
{
|
{
|
||||||
b.Property<Guid>("Id")
|
b.Property<Guid>("Id")
|
||||||
|
|
@ -17364,6 +17427,10 @@ namespace Erp.Platform.Migrations
|
||||||
.WithMany("Projects")
|
.WithMany("Projects")
|
||||||
.HasForeignKey("ProjectPhaseId");
|
.HasForeignKey("ProjectPhaseId");
|
||||||
|
|
||||||
|
b.HasOne("Erp.Platform.Entities.ProjectTask", null)
|
||||||
|
.WithMany("Projects")
|
||||||
|
.HasForeignKey("ProjectTaskId");
|
||||||
|
|
||||||
b.HasOne("Erp.Platform.Entities.ProjectType", "ProjectType")
|
b.HasOne("Erp.Platform.Entities.ProjectType", "ProjectType")
|
||||||
.WithMany("Projects")
|
.WithMany("Projects")
|
||||||
.HasForeignKey("ProjectTypeId")
|
.HasForeignKey("ProjectTypeId")
|
||||||
|
|
@ -18313,6 +18380,11 @@ namespace Erp.Platform.Migrations
|
||||||
b.Navigation("Projects");
|
b.Navigation("Projects");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Erp.Platform.Entities.ProjectTask", b =>
|
||||||
|
{
|
||||||
|
b.Navigation("Projects");
|
||||||
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Erp.Platform.Entities.ProjectType", b =>
|
modelBuilder.Entity("Erp.Platform.Entities.ProjectType", b =>
|
||||||
{
|
{
|
||||||
b.Navigation("Projects");
|
b.Navigation("Projects");
|
||||||
|
|
@ -1889,6 +1889,28 @@ namespace Erp.Platform.Migrations
|
||||||
table.PrimaryKey("PK_Prj_T_ProjectStatus", x => x.Id);
|
table.PrimaryKey("PK_Prj_T_ProjectStatus", x => x.Id);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
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),
|
||||||
|
Name = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false),
|
||||||
|
Description = table.Column<string>(type: "nvarchar(500)", maxLength: 500, nullable: true),
|
||||||
|
IsActive = table.Column<bool>(type: "bit", nullable: false, defaultValue: true),
|
||||||
|
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
|
||||||
|
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||||
|
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
|
||||||
|
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||||
|
IsDeleted = table.Column<bool>(type: "bit", nullable: false, defaultValue: false),
|
||||||
|
DeleterId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||||
|
DeletionTime = table.Column<DateTime>(type: "datetime2", nullable: true)
|
||||||
|
},
|
||||||
|
constraints: table =>
|
||||||
|
{
|
||||||
|
table.PrimaryKey("PK_Prj_T_ProjectTask", x => x.Id);
|
||||||
|
});
|
||||||
|
|
||||||
migrationBuilder.CreateTable(
|
migrationBuilder.CreateTable(
|
||||||
name: "Prj_T_ProjectType",
|
name: "Prj_T_ProjectType",
|
||||||
columns: table => new
|
columns: table => new
|
||||||
|
|
@ -6818,6 +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),
|
||||||
|
ProjectTaskId = 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),
|
||||||
|
|
@ -6850,6 +6873,11 @@ namespace Erp.Platform.Migrations
|
||||||
principalTable: "Prj_T_ProjectStatus",
|
principalTable: "Prj_T_ProjectStatus",
|
||||||
principalColumn: "Id",
|
principalColumn: "Id",
|
||||||
onDelete: ReferentialAction.Restrict);
|
onDelete: ReferentialAction.Restrict);
|
||||||
|
table.ForeignKey(
|
||||||
|
name: "FK_Prj_T_Projects_Prj_T_ProjectTask_ProjectTaskId",
|
||||||
|
column: x => x.ProjectTaskId,
|
||||||
|
principalTable: "Prj_T_ProjectTask",
|
||||||
|
principalColumn: "Id");
|
||||||
table.ForeignKey(
|
table.ForeignKey(
|
||||||
name: "FK_Prj_T_Projects_Prj_T_ProjectType_ProjectTypeId",
|
name: "FK_Prj_T_Projects_Prj_T_ProjectType_ProjectTypeId",
|
||||||
column: x => x.ProjectTypeId,
|
column: x => x.ProjectTypeId,
|
||||||
|
|
@ -7802,6 +7830,11 @@ namespace Erp.Platform.Migrations
|
||||||
table: "Prj_T_Projects",
|
table: "Prj_T_Projects",
|
||||||
column: "ProjectPhaseId");
|
column: "ProjectPhaseId");
|
||||||
|
|
||||||
|
migrationBuilder.CreateIndex(
|
||||||
|
name: "IX_Prj_T_Projects_ProjectTaskId",
|
||||||
|
table: "Prj_T_Projects",
|
||||||
|
column: "ProjectTaskId");
|
||||||
|
|
||||||
migrationBuilder.CreateIndex(
|
migrationBuilder.CreateIndex(
|
||||||
name: "IX_Prj_T_Projects_ProjectTypeId",
|
name: "IX_Prj_T_Projects_ProjectTypeId",
|
||||||
table: "Prj_T_Projects",
|
table: "Prj_T_Projects",
|
||||||
|
|
@ -8877,6 +8910,9 @@ namespace Erp.Platform.Migrations
|
||||||
migrationBuilder.DropTable(
|
migrationBuilder.DropTable(
|
||||||
name: "Prj_T_ProjectPhase");
|
name: "Prj_T_ProjectPhase");
|
||||||
|
|
||||||
|
migrationBuilder.DropTable(
|
||||||
|
name: "Prj_T_ProjectTask");
|
||||||
|
|
||||||
migrationBuilder.DropTable(
|
migrationBuilder.DropTable(
|
||||||
name: "Prj_T_ProjectType");
|
name: "Prj_T_ProjectType");
|
||||||
}
|
}
|
||||||
|
|
@ -9845,6 +9845,9 @@ namespace Erp.Platform.Migrations
|
||||||
b.Property<Guid?>("ProjectPhaseId")
|
b.Property<Guid?>("ProjectPhaseId")
|
||||||
.HasColumnType("uniqueidentifier");
|
.HasColumnType("uniqueidentifier");
|
||||||
|
|
||||||
|
b.Property<Guid?>("ProjectTaskId")
|
||||||
|
.HasColumnType("uniqueidentifier");
|
||||||
|
|
||||||
b.Property<Guid>("ProjectTypeId")
|
b.Property<Guid>("ProjectTypeId")
|
||||||
.HasColumnType("uniqueidentifier");
|
.HasColumnType("uniqueidentifier");
|
||||||
|
|
||||||
|
|
@ -9866,6 +9869,8 @@ namespace Erp.Platform.Migrations
|
||||||
|
|
||||||
b.HasIndex("ProjectPhaseId");
|
b.HasIndex("ProjectPhaseId");
|
||||||
|
|
||||||
|
b.HasIndex("ProjectTaskId");
|
||||||
|
|
||||||
b.HasIndex("ProjectTypeId");
|
b.HasIndex("ProjectTypeId");
|
||||||
|
|
||||||
b.HasIndex("StatusId");
|
b.HasIndex("StatusId");
|
||||||
|
|
@ -10168,6 +10173,64 @@ namespace Erp.Platform.Migrations
|
||||||
b.ToTable("Prj_T_ProjectStatus", (string)null);
|
b.ToTable("Prj_T_ProjectStatus", (string)null);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Erp.Platform.Entities.ProjectTask", 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_ProjectTask", (string)null);
|
||||||
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Erp.Platform.Entities.ProjectType", b =>
|
modelBuilder.Entity("Erp.Platform.Entities.ProjectType", b =>
|
||||||
{
|
{
|
||||||
b.Property<Guid>("Id")
|
b.Property<Guid>("Id")
|
||||||
|
|
@ -17361,6 +17424,10 @@ namespace Erp.Platform.Migrations
|
||||||
.WithMany("Projects")
|
.WithMany("Projects")
|
||||||
.HasForeignKey("ProjectPhaseId");
|
.HasForeignKey("ProjectPhaseId");
|
||||||
|
|
||||||
|
b.HasOne("Erp.Platform.Entities.ProjectTask", null)
|
||||||
|
.WithMany("Projects")
|
||||||
|
.HasForeignKey("ProjectTaskId");
|
||||||
|
|
||||||
b.HasOne("Erp.Platform.Entities.ProjectType", "ProjectType")
|
b.HasOne("Erp.Platform.Entities.ProjectType", "ProjectType")
|
||||||
.WithMany("Projects")
|
.WithMany("Projects")
|
||||||
.HasForeignKey("ProjectTypeId")
|
.HasForeignKey("ProjectTypeId")
|
||||||
|
|
@ -18310,6 +18377,11 @@ namespace Erp.Platform.Migrations
|
||||||
b.Navigation("Projects");
|
b.Navigation("Projects");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
modelBuilder.Entity("Erp.Platform.Entities.ProjectTask", b =>
|
||||||
|
{
|
||||||
|
b.Navigation("Projects");
|
||||||
|
});
|
||||||
|
|
||||||
modelBuilder.Entity("Erp.Platform.Entities.ProjectType", b =>
|
modelBuilder.Entity("Erp.Platform.Entities.ProjectType", b =>
|
||||||
{
|
{
|
||||||
b.Navigation("Projects");
|
b.Navigation("Projects");
|
||||||
|
|
|
||||||
|
|
@ -6118,5 +6118,37 @@
|
||||||
"sequence": 0,
|
"sequence": 0,
|
||||||
"isActive": false
|
"isActive": false
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"ProjectTasks": [
|
||||||
|
{
|
||||||
|
"name": "Geliştirme",
|
||||||
|
"description": "Projenin planlama aşamasında olduğunu ifade eder",
|
||||||
|
"isActive": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Test",
|
||||||
|
"description": "Projenin aktif olarak yürütüldüğünü ifade eder",
|
||||||
|
"isActive": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Dokümantasyon",
|
||||||
|
"description": "Projenin belirli nedenlerle geçici olarak durdurulduğunu ifade eder",
|
||||||
|
"isActive": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "İnceleme",
|
||||||
|
"description": "Projenin tüm çalışmalarının başarıyla tamamlandığını ifade eder",
|
||||||
|
"isActive": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Dağıtım",
|
||||||
|
"description": "Projenin iptal edildiğini ifade eder",
|
||||||
|
"isActive": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Toplantı",
|
||||||
|
"description": "Projenin planlama aşamasında olduğunu ifade eder",
|
||||||
|
"isActive": true
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -134,6 +134,7 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency
|
||||||
private readonly IRepository<ProjectCategory, Guid> _projectCategoryRepository;
|
private readonly IRepository<ProjectCategory, Guid> _projectCategoryRepository;
|
||||||
private readonly IRepository<ProjectRisk, Guid> _projectRiskRepository;
|
private readonly IRepository<ProjectRisk, Guid> _projectRiskRepository;
|
||||||
private readonly IRepository<ProjectPhase, Guid> _projectPhaseRepository;
|
private readonly IRepository<ProjectPhase, Guid> _projectPhaseRepository;
|
||||||
|
private readonly IRepository<ProjectTask, Guid> _projectTaskRepository;
|
||||||
|
|
||||||
public TenantDataSeeder(
|
public TenantDataSeeder(
|
||||||
IClock clock,
|
IClock clock,
|
||||||
|
|
@ -250,7 +251,8 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency
|
||||||
IRepository<Project, Guid> projectRepository,
|
IRepository<Project, Guid> projectRepository,
|
||||||
IRepository<ProjectRisk, Guid> projectRiskRepository,
|
IRepository<ProjectRisk, Guid> projectRiskRepository,
|
||||||
IRepository<ProjectCategory, Guid> projectCategoryRepository,
|
IRepository<ProjectCategory, Guid> projectCategoryRepository,
|
||||||
IRepository<ProjectPhase, Guid> projectPhaseRepository
|
IRepository<ProjectPhase, Guid> projectPhaseRepository,
|
||||||
|
IRepository<ProjectTask, Guid> projectTaskRepository
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
_clock = clock;
|
_clock = clock;
|
||||||
|
|
@ -369,6 +371,7 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency
|
||||||
_projectCategoryRepository = projectCategoryRepository;
|
_projectCategoryRepository = projectCategoryRepository;
|
||||||
_projectRiskRepository = projectRiskRepository;
|
_projectRiskRepository = projectRiskRepository;
|
||||||
_projectPhaseRepository = projectPhaseRepository;
|
_projectPhaseRepository = projectPhaseRepository;
|
||||||
|
_projectTaskRepository = projectTaskRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static IConfigurationRoot BuildConfiguration()
|
private static IConfigurationRoot BuildConfiguration()
|
||||||
|
|
@ -2584,6 +2587,20 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency
|
||||||
IsActive = item.IsActive
|
IsActive = item.IsActive
|
||||||
}, autoSave: true);
|
}, autoSave: true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
foreach (var item in items.ProjectTasks)
|
||||||
|
{
|
||||||
|
var exists = await _projectTaskRepository.AnyAsync(x => x.Name == item.Name);
|
||||||
|
if (exists)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
await _projectTaskRepository.InsertAsync(new ProjectTask
|
||||||
|
{
|
||||||
|
Name = item.Name,
|
||||||
|
Description = item.Description,
|
||||||
|
IsActive = item.IsActive
|
||||||
|
}, autoSave: true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -134,6 +134,14 @@ public class TenantSeederDto
|
||||||
public List<ProjectRiskSeedDto> ProjectRisks { get; set; }
|
public List<ProjectRiskSeedDto> ProjectRisks { get; set; }
|
||||||
public List<ProjectCategorySeedDto> ProjectCategories { get; set; }
|
public List<ProjectCategorySeedDto> ProjectCategories { get; set; }
|
||||||
public List<ProjectPhaseSeedDto> ProjectPhases { get; set; }
|
public List<ProjectPhaseSeedDto> ProjectPhases { get; set; }
|
||||||
|
public List<ProjectTaskSeedDto> ProjectTasks { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ProjectTaskSeedDto
|
||||||
|
{
|
||||||
|
public string Name { get; set; }
|
||||||
|
public string Description { get; set; }
|
||||||
|
public bool IsActive { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ProjectPhaseSeedDto
|
public class ProjectPhaseSeedDto
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue