Projects Type ve Status

This commit is contained in:
Sedat Öztürk 2025-11-27 00:17:01 +03:00
parent 0058a0180c
commit fc124830f4
19 changed files with 2007 additions and 378 deletions

View file

@ -171,7 +171,7 @@
},
{
"resourceName": "Platform",
"key": "App.Projects",
"key": "App.Project",
"en": "R&D",
"tr": "Ar-ge"
},
@ -9579,43 +9579,55 @@
},
{
"resourceName": "Platform",
"key": "App.Projects.List",
"key": "App.Project.ProjectType",
"tr": "Proje Türleri",
"en": "Project Types"
},
{
"resourceName": "Platform",
"key": "App.Project.ProjectStatus",
"tr": "Proje Durumları",
"en": "Project Statuses"
},
{
"resourceName": "Platform",
"key": "App.Project.Projects",
"tr": "Projeler",
"en": "Projects"
},
{
"resourceName": "Platform",
"key": "App.Projects.Tasks",
"key": "App.Project.Tasks",
"tr": "Görevler",
"en": "Tasks"
},
{
"resourceName": "Platform",
"key": "App.Projects.Phases",
"key": "App.Project.Phases",
"tr": "Aşamalar",
"en": "Phases"
},
{
"resourceName": "Platform",
"key": "App.Projects.Activities",
"key": "App.Project.Activities",
"tr": "Aktiviteler",
"en": "Activities"
},
{
"resourceName": "Platform",
"key": "App.Projects.Workload",
"key": "App.Project.Workload",
"tr": "İş Yükü",
"en": "Workload"
},
{
"resourceName": "Platform",
"key": "App.Projects.CostTracking",
"key": "App.Project.CostTracking",
"tr": "Maliyet Takibi",
"en": "Cost Tracking"
},
{
"resourceName": "Platform",
"key": "App.Projects.DailyUpdates",
"key": "App.Project.DailyUpdates",
"tr": "Günlük Güncellemeler",
"en": "Daily Updates"
},
@ -9866,4 +9878,4 @@
"en": "Check & Notes"
}
]
}
}

View file

@ -13,8 +13,6 @@ using Volo.Abp.Data;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.Identity;
using Volo.Abp.TenantManagement;
using AbpIdentity = Erp.Platform.Data.Seeds.SeedConsts.AbpIdentity;
using AppCodes = Erp.Platform.Data.Seeds.SeedConsts.AppCodes;
using static Erp.Platform.PlatformConsts;
using static Erp.Platform.PlatformSeeder.SeederDefaults;
@ -47,128 +45,648 @@ public class ListFormSeeder_Project : IDataSeedContributor, ITransientDependency
{
var listFormName = String.Empty;
// #region Workcenter Type
// listFormName = AppCodes.Maintenance.WorkcenterType;
// 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.WorkcenterType)),
// 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.WorkcenterType)),
// DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson,
// PagerOptionJson = DefaultPagerOptionJson,
// InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson,
// EditingOptionJson = DefaultEditingOptionJson(listFormName, 500, 250, true, true, true, true, false),
// EditingFormJson = JsonSerializer.Serialize(new List<EditingFormDto>() {
// new() {
// Order=1, ColCount=1, ColSpan=1, ItemType="group", Items= [
// new EditingFormItemDto { Order = 2, DataField = "Name", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxTextBox },
// new EditingFormItemDto { Order = 3, DataField = "Description", ColSpan = 1, EditorType2=EditorTypes.dxTextArea },
// new EditingFormItemDto { Order = 4, 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 Type
listFormName = AppCodes.Project.ProjectType;
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.ProjectType)),
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.ProjectType)),
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 WorkcenterType 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 = 350,
// ListOrderNo = 3,
// Visible = true,
// IsActive = true,
// IsDeleted = false,
// SortIndex = 1,
// SortDirection = GridColumnOptions.SortOrderAsc,
// AllowSearch = true,
// ValidationRuleJson = DefaultValidationRuleRequiredJson,
// ColumnCustomizationJson = DefaultColumnCustomizationJson,
// PermissionJson = DefaultFieldPermissionJson(listForm.Name),
// PivotSettingsJson = DefaultPivotSettingsJson
// },
// new() {
// ListFormCode = listForm.ListFormCode,
// CultureName = LanguageCodes.En,
// SourceDbType = DbType.String,
// FieldName = "Description",
// Width = 500,
// ListOrderNo = 4,
// Visible = true,
// IsActive = true,
// IsDeleted = false,
// AllowSearch = true,
// ColumnCustomizationJson = DefaultColumnCustomizationJson,
// PermissionJson = DefaultFieldPermissionJson(listForm.Name),
// PivotSettingsJson = DefaultPivotSettingsJson
// },
#region Project Type Fields
await _listFormFieldRepository.InsertManyAsync([
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Guid,
FieldName = "Id",
Width = 100,
ListOrderNo = 1,
Visible = false,
IsActive = true,
IsDeleted = false,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.String,
FieldName = "Name",
Width = 300,
ListOrderNo = 2,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
SortIndex = 1,
SortDirection = GridColumnOptions.SortOrderAsc,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.String,
FieldName = "Description",
Width = 500,
ListOrderNo = 3,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Boolean,
FieldName = "IsActive",
Width = 100,
ListOrderNo = 4,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
]);
#endregion
}
#endregion
// new() {
// ListFormCode = listForm.ListFormCode,
// CultureName = LanguageCodes.En,
// SourceDbType = DbType.Boolean,
// FieldName = "IsActive",
// Width = 100,
// ListOrderNo = 5,
// Visible = true,
// IsActive = true,
// IsDeleted = false,
// AllowSearch = true,
// ColumnCustomizationJson = DefaultColumnCustomizationJson,
// PermissionJson = DefaultFieldPermissionJson(listForm.Name),
// PivotSettingsJson = DefaultPivotSettingsJson
// }
// ]);
// #endregion
// }
// #endregion
#region Project Status
listFormName = AppCodes.Project.ProjectStatus;
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.ProjectStatus)),
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.ProjectStatus)),
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 Status Fields
await _listFormFieldRepository.InsertManyAsync([
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Guid,
FieldName = "Id",
Width = 100,
ListOrderNo = 1,
Visible = false,
IsActive = true,
IsDeleted = false,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.String,
FieldName = "Name",
Width = 300,
ListOrderNo = 2,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
SortIndex = 1,
SortDirection = GridColumnOptions.SortOrderAsc,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.String,
FieldName = "Description",
Width = 500,
ListOrderNo = 3,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Boolean,
FieldName = "IsActive",
Width = 100,
ListOrderNo = 4,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
]);
#endregion
}
#endregion
#region Projects
listFormName = AppCodes.Project.Projects;
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.ProjectStatus)),
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.ProjectStatus)),
DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson,
PagerOptionJson = DefaultPagerOptionJson,
EditingOptionJson = DefaultEditingOptionJson(listFormName, 900, 700, true, true, true, true, false),
InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson,
EditingFormJson = JsonSerializer.Serialize(new List<EditingFormDto>()
{
new() {
Order=1, ColCount=2, ColSpan=1, Caption="General", ItemType="group", Items =
[
new EditingFormItemDto { Order = 1, DataField="Code", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox },
new EditingFormItemDto { Order = 2, DataField="Name", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox },
new EditingFormItemDto { Order = 3, DataField="ProjectTypeId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
new EditingFormItemDto { Order = 4, DataField="StatusId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
new EditingFormItemDto { Order = 5, DataField="ManagerId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
new EditingFormItemDto { Order = 6, DataField="Priority", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
new EditingFormItemDto { Order = 7, DataField="Description", ColSpan = 2, EditorType2 = EditorTypes.dxTextArea },
]},
new() {
Order=2, ColCount=2, ColSpan=1, Caption="Planned", ItemType="group", Items =
[
new EditingFormItemDto { Order = 1, DataField="StartDate", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxDateBox },
new EditingFormItemDto { Order = 2, DataField="EndDate", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxDateBox },
new EditingFormItemDto { Order = 3, DataField="Budget", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox, EditorOptions = EditorOptionValues.NumberStandartFormat },
new EditingFormItemDto { Order = 4, DataField="Currency", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox },
]},
new() {
Order=3, ColCount=2, ColSpan=1, Caption="Actual", ItemType="group", Items =
[
new EditingFormItemDto { Order = 1, DataField="ActualStartDate", ColSpan = 1, EditorType2 = EditorTypes.dxDateBox },
new EditingFormItemDto { Order = 2, DataField="ActualEndDate", ColSpan = 1, EditorType2 = EditorTypes.dxDateBox },
new EditingFormItemDto { Order = 3, DataField="ActualCost", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox, EditorOptions = EditorOptionValues.NumberStandartFormat },
new EditingFormItemDto { Order = 4, DataField="CustomerId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox },
new EditingFormItemDto { Order = 5, DataField="Progress", ColSpan = 1, EditorType2 = EditorTypes.dxSlider, EditorOptions=EditorOptionValues.SliderOptions },
new EditingFormItemDto { Order = 6, DataField="IsActive", ColSpan = 1, EditorType2 = EditorTypes.dxCheckBox },
]}
}),
FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] {
new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value }
}),
}
);
#region Projects 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 = "Code",
Width = 100,
ListOrderNo = 2,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.String,
FieldName = "Name",
Width = 300,
ListOrderNo = 3,
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.Guid,
FieldName = "ProjectTypeId",
Width = 100,
ListOrderNo = 4,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.ProjectType), "Id", "Name"),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Guid,
FieldName = "StatusId",
Width = 100,
ListOrderNo = 5,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.ProjectStatus), "Id", "Name"),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Guid,
FieldName = "ManagerId",
Width = 100,
ListOrderNo = 6,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Employee), "Id", "Name"),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.String,
FieldName = "Priority",
Width = 100,
ListOrderNo = 7,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
LookupJson = JsonSerializer.Serialize(new LookupDto
{
DataSourceType = UiLookupDataSourceTypeEnum.StaticData,
DisplayExpr = "name",
ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key = "Low", Name = "Low" },
new () { Key = "Medium", Name = "Medium" },
new () { Key = "High", Name = "High" },
new () { Key = "Urgent", Name = "Urgent" },
}),
}),
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 = 8,
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.Date,
FieldName = "StartDate",
Width = 100,
ListOrderNo = 9,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Date,
FieldName = "EndDate",
Width = 100,
ListOrderNo = 10,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Decimal,
FieldName = "Budget",
Format = "fixedPoint",
Alignment = "right",
Width = 100,
ListOrderNo = 11,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.String,
FieldName = "Currency",
Width = 100,
ListOrderNo = 12,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Currency), "Code", "Name"),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Date,
FieldName = "ActualStartDate",
Width = 100,
ListOrderNo = 13,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Date,
FieldName = "ActualEndDate",
Width = 100,
ListOrderNo = 14,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Decimal,
FieldName = "ActualCost",
Format = "fixedPoint",
Alignment = "right",
Width = 100,
ListOrderNo = 15,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Guid,
FieldName = "CustomerId",
Width = 100,
ListOrderNo = 16,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
LookupJson = JsonSerializer.Serialize(new LookupDto
{
DataSourceType = UiLookupDataSourceTypeEnum.Query,
DisplayExpr = "Name",
ValueExpr = "Key",
LookupQuery = LookupQueryValues.CustomerValues,
}),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new() {
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Int32,
FieldName = "Progress",
Width = 150,
ListOrderNo = 17,
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 = 18,
Visible = true,
IsActive = true,
IsDeleted = false,
AllowSearch = true,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
]);
#endregion
}
#endregion
}
}

View file

@ -769,7 +769,6 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend
IsActive = true,
IsDeleted = false,
AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
@ -785,7 +784,6 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend
IsActive = true,
IsDeleted = false,
AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson

View file

@ -152,14 +152,18 @@
"path": "/admin/menuManager",
"componentPath": "@/views/menu/MenuManager",
"routeType": "protected",
"authority": ["App.Menus.Manager"]
"authority": [
"App.Menus.Manager"
]
},
{
"key": "admin.listFormManagement.wizard",
"path": "/admin/listform/wizard",
"componentPath": "@/views/admin/listForm/Wizard",
"routeType": "protected",
"authority": ["App.Listforms.Wizard"]
"authority": [
"App.Listforms.Wizard"
]
},
{
"key": "admin.listFormManagement.edit",
@ -173,14 +177,18 @@
"path": "/admin/forumManagement",
"componentPath": "@/views/forum/Management",
"routeType": "protected",
"authority": ["App.ForumManagement"]
"authority": [
"App.ForumManagement"
]
},
{
"key": "admin.ai",
"path": "/admin/ai",
"componentPath": "@/views/ai/Assistant",
"routeType": "protected",
"authority": ["Abp.Identity.Ai"]
"authority": [
"Abp.Identity.Ai"
]
},
{
"key": "admin.profile.general",
@ -222,28 +230,36 @@
"path": "/admin/settings",
"componentPath": "@/views/settings/Settings",
"routeType": "protected",
"authority": ["App.Setting"]
"authority": [
"App.Setting"
]
},
{
"key": "admin.identity.user.detail",
"path": "/admin/users/detail/:userId",
"componentPath": "@/views/admin/user-management/Details",
"routeType": "protected",
"authority": ["AbpIdentity.Users.Update"]
"authority": [
"AbpIdentity.Users.Update"
]
},
{
"key": "admin.identity.ous",
"path": "/admin/ous",
"componentPath": "@/views/admin/organization-unit/OrganizationUnits",
"routeType": "protected",
"authority": ["Abp.Identity.OrganizationUnits"]
"authority": [
"Abp.Identity.OrganizationUnits"
]
},
{
"key": "admin.forum",
"path": "/admin/forum",
"componentPath": "@/views/forum/Forum",
"routeType": "protected",
"authority": ["App.ForumManagement.Publish"]
"authority": [
"App.ForumManagement.Publish"
]
},
{
"key": "admin.list",
@ -285,168 +301,216 @@
"path": "/admin/developerkit",
"componentPath": "@/views/developerKit/DashboardPage",
"routeType": "protected",
"authority": ["App.DeveloperKit"]
"authority": [
"App.DeveloperKit"
]
},
{
"key": "admin.developerkit.entities",
"path": "/admin/developerkit/entities",
"componentPath": "@/views/developerKit/EntityPage",
"routeType": "protected",
"authority": ["App.DeveloperKit.Entity"]
"authority": [
"App.DeveloperKit.Entity"
]
},
{
"key": "admin.developerkit.entities.new",
"path": "/admin/developerkit/entities/new",
"componentPath": "@/views/developerKit/EntityDetailPage",
"routeType": "protected",
"authority": ["App.DeveloperKit.Entity"]
"authority": [
"App.DeveloperKit.Entity"
]
},
{
"key": "admin.developerkit.entities.edit",
"path": "/admin/developerkit/entities/edit/:id",
"componentPath": "@/views/developerKit/EntityDetailPage",
"routeType": "protected",
"authority": ["App.DeveloperKit.Entity"]
"authority": [
"App.DeveloperKit.Entity"
]
},
{
"key": "admin.developerkit.migrations",
"path": "/admin/developerkit/migrations",
"componentPath": "@/views/developerKit/MigrationPage",
"routeType": "protected",
"authority": ["App.DeveloperKit.Migrations"]
"authority": [
"App.DeveloperKit.Migrations"
]
},
{
"key": "admin.developerkit.endpoints",
"path": "/admin/developerkit/endpoints",
"componentPath": "@/views/developerKit/CrudEndpointPage",
"routeType": "protected",
"authority": ["App.DeveloperKit.CrudEndpoints"]
"authority": [
"App.DeveloperKit.CrudEndpoints"
]
},
{
"key": "admin.developerkit.dynamic-services",
"path": "/admin/developerkit/dynamic-services",
"componentPath": "@/views/developerKit/DynamicServicePage",
"routeType": "protected",
"authority": ["App.DeveloperKit.DynamicServices"]
"authority": [
"App.DeveloperKit.DynamicServices"
]
},
{
"key": "admin.developerkit.components",
"path": "/admin/developerkit/components",
"componentPath": "@/views/developerKit/ComponentPage",
"routeType": "protected",
"authority": ["App.DeveloperKit.Components"]
"authority": [
"App.DeveloperKit.Components"
]
},
{
"key": "admin.developerkit.components.new",
"path": "/admin/developerkit/components/new",
"componentPath": "@/views/developerKit/ComponentDetailPage",
"routeType": "protected",
"authority": ["App.DeveloperKit.Components"]
"authority": [
"App.DeveloperKit.Components"
]
},
{
"key": "admin.developerkit.components.view",
"path": "/admin/developerkit/components/view/:id",
"componentPath": "@/views/developerKit/ComponentDetailPage",
"routeType": "protected",
"authority": ["App.DeveloperKit.Components"]
"authority": [
"App.DeveloperKit.Components"
]
},
{
"key": "admin.developerkit.components.edit",
"path": "/admin/developerkit/components/edit/:id",
"componentPath": "@/views/developerKit/CodePage",
"routeType": "protected",
"authority": ["App.DeveloperKit.Components"]
"authority": [
"App.DeveloperKit.Components"
]
},
{
"key": "admin.reportManagement",
"path": "/admin/reports/management",
"componentPath": "@/views/report/DashboardPage",
"routeType": "protected",
"authority": ["App.Reports.Management"]
"authority": [
"App.Reports.Management"
]
},
{
"key": "admin.reports.view",
"path": "/admin/reports/:id",
"componentPath": "@/views/report/ReportViewerPage",
"routeType": "protected",
"authority": ["App.Reports.Categories"]
"authority": [
"App.Reports.Categories"
]
},
{
"key": "admin.fileManagement",
"path": "/admin/files",
"componentPath": "@/views/admin/files/FileManager",
"routeType": "protected",
"authority": ["App.Files"]
"authority": [
"App.Files"
]
},
{
"key": "admin.coordinator.classroom.dashboard",
"path": "/admin/coordinator/classroom/dashboard",
"componentPath": "@/views/coordinator/Classroom/Dashboard",
"routeType": "protected",
"authority": ["App.Coordinator.Classroom.Dashboard"]
"authority": [
"App.Coordinator.Classroom.Dashboard"
]
},
{
"key": "admin.coordinator.classroom.classes",
"path": "/admin/coordinator/classroom/classes",
"componentPath": "@/views/coordinator/Classroom/ClassList",
"routeType": "protected",
"authority": ["App.Coordinator.Classroom.List"]
"authority": [
"App.Coordinator.Classroom.List"
]
},
{
"key": "admin.coordinator.classroom.classroom",
"path": "/admin/coordinator/classroom/room/:id",
"componentPath": "@/views/coordinator/Classroom/RoomDetail",
"routeType": "protected",
"authority": ["App.Coordinator.Classroom.RoomDetail"]
"authority": [
"App.Coordinator.Classroom.RoomDetail"
]
},
{
"key": "admin.coordinator.classroom.planning",
"path": "/admin/coordinator/classroom/planning/:id",
"componentPath": "@/views/coordinator/Classroom/PlanningPage",
"routeType": "protected",
"authority": ["App.Coordinator.Classroom.Planning"]
"authority": [
"App.Coordinator.Classroom.Planning"
]
},
{
"key": "admin.coordinator.exams",
"path": "/admin/coordinator/exams",
"componentPath": "@/views/coordinator/Exams",
"routeType": "protected",
"authority": ["App.Coordinator.Exams"]
"authority": [
"App.Coordinator.Exams"
]
},
{
"key": "admin.coordinator.examDetail",
"path": "/admin/coordinator/exam/:id",
"componentPath": "@/views/coordinator/ExamInterface/ExamInterface",
"routeType": "protected",
"authority": ["App.Coordinator.Exams"]
"authority": [
"App.Coordinator.Exams"
]
},
{
"key": "admin.coordinator.assignments",
"path": "/admin/coordinator/assignments",
"componentPath": "@/views/coordinator/Assignments",
"routeType": "protected",
"authority": ["App.Coordinator.Assignments"]
"authority": [
"App.Coordinator.Assignments"
]
},
{
"key": "admin.coordinator.assignmentDetail",
"path": "/admin/coordinator/assignment/:id",
"componentPath": "@/views/coordinator/ExamInterface/ExamInterface",
"routeType": "protected",
"authority": ["App.Coordinator.Assignments"]
"authority": [
"App.Coordinator.Assignments"
]
},
{
"key": "admin.coordinator.tests",
"path": "/admin/coordinator/tests",
"componentPath": "@/views/coordinator/Tests",
"routeType": "protected",
"authority": ["App.Coordinator.Tests"]
"authority": [
"App.Coordinator.Tests"
]
},
{
"key": "admin.coordinator.testDetail",
"path": "/admin/coordinator/test/:id",
"componentPath": "@/views/coordinator/ExamInterface/PDFTestInterface",
"routeType": "protected",
"authority": ["App.Coordinator.Tests"]
"authority": [
"App.Coordinator.Tests"
]
},
{
"key": "admin.supplychain.requests",
@ -2566,8 +2630,8 @@
},
{
"ParentCode": null,
"Code": "App.Projects",
"DisplayName": "App.Projects",
"Code": "App.Project",
"DisplayName": "App.Project",
"Order": 1100,
"Url": null,
"Icon": "FcTimeline",
@ -2575,73 +2639,93 @@
"IsDisabled": false
},
{
"ParentCode": "App.Projects",
"Code": "App.Projects.List",
"DisplayName": "App.Projects.List",
"ParentCode": "App.Project",
"Code": "App.Project.ProjectType",
"DisplayName": "App.Project.ProjectType",
"Order": 1,
"Url": "/admin/list/App.Project.ProjectType",
"Icon": "FcWorkflow",
"RequiredPermissionName": "App.Project.ProjectType",
"IsDisabled": false
},
{
"ParentCode": "App.Project",
"Code": "App.Project.ProjectStatus",
"DisplayName": "App.Project.ProjectStatus",
"Order": 2,
"Url": "/admin/list/App.Project.ProjectStatus",
"Icon": "FcTimeline",
"RequiredPermissionName": "App.Project.ProjectStatus",
"IsDisabled": false
},
{
"ParentCode": "App.Project",
"Code": "App.Project.Projects",
"DisplayName": "App.Project.Projects",
"Order": 3,
"Url": "/admin/projects",
"Icon": "FcTodoList",
"RequiredPermissionName": "App.Projects.List",
"RequiredPermissionName": "App.Project.Projects",
"IsDisabled": false
},
{
"ParentCode": "App.Projects",
"Code": "App.Projects.Tasks",
"DisplayName": "App.Projects.Tasks",
"Order": 2,
"Url": "/admin/projects/tasks",
"Icon": "FcBullish",
"RequiredPermissionName": "App.Projects.Tasks",
"IsDisabled": false
},
{
"ParentCode": "App.Projects",
"Code": "App.Projects.Phases",
"DisplayName": "App.Projects.Phases",
"Order": 3,
"ParentCode": "App.Project",
"Code": "App.Project.Phases",
"DisplayName": "App.Project.Phases",
"Order": 4,
"Url": "/admin/projects/phases",
"Icon": "FcParallelTasks",
"RequiredPermissionName": "App.Projects.Phases",
"RequiredPermissionName": "App.Project.Phases",
"IsDisabled": false
},
{
"ParentCode": "App.Projects",
"Code": "App.Projects.Activities",
"DisplayName": "App.Projects.Activities",
"Order": 4,
"ParentCode": "App.Project",
"Code": "App.Project.Tasks",
"DisplayName": "App.Project.Tasks",
"Order": 5,
"Url": "/admin/projects/tasks",
"Icon": "FcBullish",
"RequiredPermissionName": "App.Project.Tasks",
"IsDisabled": false
},
{
"ParentCode": "App.Project",
"Code": "App.Project.Activities",
"DisplayName": "App.Project.Activities",
"Order": 6,
"Url": "/admin/projects/activities",
"Icon": "FcPlanner",
"RequiredPermissionName": "App.Projects.Activities",
"RequiredPermissionName": "App.Project.Activities",
"IsDisabled": false
},
{
"ParentCode": "App.Projects",
"Code": "App.Projects.Workload",
"DisplayName": "App.Projects.Workload",
"Order": 5,
"ParentCode": "App.Project",
"Code": "App.Project.Workload",
"DisplayName": "App.Project.Workload",
"Order": 7,
"Url": "/admin/projects/workload",
"Icon": "FcFlowChart",
"RequiredPermissionName": "App.Projects.Workload",
"RequiredPermissionName": "App.Project.Workload",
"IsDisabled": false
},
{
"ParentCode": "App.Projects",
"Code": "App.Projects.CostTracking",
"DisplayName": "App.Projects.CostTracking",
"Order": 6,
"ParentCode": "App.Project",
"Code": "App.Project.CostTracking",
"DisplayName": "App.Project.CostTracking",
"Order": 8,
"Url": "/admin/projects/cost-tracking",
"Icon": "FcMoneyTransfer",
"RequiredPermissionName": "App.Projects.CostTracking",
"RequiredPermissionName": "App.Project.CostTracking",
"IsDisabled": false
},
{
"ParentCode": "App.Projects",
"Code": "App.Projects.DailyUpdates",
"DisplayName": "App.Projects.DailyUpdates",
"Order": 7,
"ParentCode": "App.Project",
"Code": "App.Project.DailyUpdates",
"DisplayName": "App.Project.DailyUpdates",
"Order": 9,
"Url": "/admin/projects/daily-updates",
"Icon": "FcConferenceCall",
"RequiredPermissionName": "App.Projects.DailyUpdates",
"RequiredPermissionName": "App.Project.DailyUpdates",
"IsDisabled": false
},
{
@ -2995,4 +3079,4 @@
"IsDisabled": false
}
]
}
}

View file

@ -41,8 +41,8 @@
"DisplayName": "App.Store"
},
{
"Name": "App.Projects",
"DisplayName": "App.Projects"
"Name": "App.Project",
"DisplayName": "App.Project"
},
{
"Name": "App.Hr",
@ -7636,7 +7636,6 @@
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Store",
"Name": "App.Store.PutawayCondition",
@ -7700,7 +7699,6 @@
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Store",
"Name": "App.Store.Receipt",
@ -8017,450 +8015,576 @@
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.List",
"GroupName": "App.Project",
"Name": "App.Project.ProjectType",
"ParentName": null,
"DisplayName": "App.Projects.List",
"DisplayName": "App.Project.ProjectType",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.List.Create",
"ParentName": "App.Projects.List",
"GroupName": "App.Project",
"Name": "App.Project.ProjectType.Create",
"ParentName": "App.Project.ProjectType",
"DisplayName": "Create",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.List.Update",
"ParentName": "App.Projects.List",
"GroupName": "App.Project",
"Name": "App.Project.ProjectType.Update",
"ParentName": "App.Project.ProjectType",
"DisplayName": "Update",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.List.Delete",
"ParentName": "App.Projects.List",
"GroupName": "App.Project",
"Name": "App.Project.ProjectType.Delete",
"ParentName": "App.Project.ProjectType",
"DisplayName": "Delete",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.List.Export",
"ParentName": "App.Projects.List",
"GroupName": "App.Project",
"Name": "App.Project.ProjectType.Export",
"ParentName": "App.Project.ProjectType",
"DisplayName": "Export",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.List.Import",
"ParentName": "App.Projects.List",
"GroupName": "App.Project",
"Name": "App.Project.ProjectType.Import",
"ParentName": "App.Project.ProjectType",
"DisplayName": "Import",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.List.Note",
"ParentName": "App.Projects.List",
"GroupName": "App.Project",
"Name": "App.Project.ProjectType.Note",
"ParentName": "App.Project.ProjectType",
"DisplayName": "Note",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.Tasks",
"GroupName": "App.Project",
"Name": "App.Project.ProjectStatus",
"ParentName": null,
"DisplayName": "App.Projects.Tasks",
"DisplayName": "App.Project.ProjectStatus",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.Tasks.Create",
"ParentName": "App.Projects.Tasks",
"GroupName": "App.Project",
"Name": "App.Project.ProjectStatus.Create",
"ParentName": "App.Project.ProjectStatus",
"DisplayName": "Create",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.Tasks.Update",
"ParentName": "App.Projects.Tasks",
"GroupName": "App.Project",
"Name": "App.Project.ProjectStatus.Update",
"ParentName": "App.Project.ProjectStatus",
"DisplayName": "Update",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.Tasks.Delete",
"ParentName": "App.Projects.Tasks",
"GroupName": "App.Project",
"Name": "App.Project.ProjectStatus.Delete",
"ParentName": "App.Project.ProjectStatus",
"DisplayName": "Delete",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.Tasks.Export",
"ParentName": "App.Projects.Tasks",
"GroupName": "App.Project",
"Name": "App.Project.ProjectStatus.Export",
"ParentName": "App.Project.ProjectStatus",
"DisplayName": "Export",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.Tasks.Import",
"ParentName": "App.Projects.Tasks",
"GroupName": "App.Project",
"Name": "App.Project.ProjectStatus.Import",
"ParentName": "App.Project.ProjectStatus",
"DisplayName": "Import",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.Tasks.Note",
"ParentName": "App.Projects.Tasks",
"GroupName": "App.Project",
"Name": "App.Project.ProjectStatus.Note",
"ParentName": "App.Project.ProjectStatus",
"DisplayName": "Note",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.Tasks.Widget",
"ParentName": "App.Projects.Tasks",
"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.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",
"Name": "App.Project.Tasks.Widget",
"ParentName": "App.Project.Tasks",
"DisplayName": "Widget",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.Phases",
"GroupName": "App.Project",
"Name": "App.Project.Phases",
"ParentName": null,
"DisplayName": "App.Projects.Phases",
"DisplayName": "App.Project.Phases",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.Phases.Create",
"ParentName": "App.Projects.Phases",
"GroupName": "App.Project",
"Name": "App.Project.Phases.Create",
"ParentName": "App.Project.Phases",
"DisplayName": "Create",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.Phases.Update",
"ParentName": "App.Projects.Phases",
"GroupName": "App.Project",
"Name": "App.Project.Phases.Update",
"ParentName": "App.Project.Phases",
"DisplayName": "Update",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.Phases.Delete",
"ParentName": "App.Projects.Phases",
"GroupName": "App.Project",
"Name": "App.Project.Phases.Delete",
"ParentName": "App.Project.Phases",
"DisplayName": "Delete",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.Phases.Export",
"ParentName": "App.Projects.Phases",
"GroupName": "App.Project",
"Name": "App.Project.Phases.Export",
"ParentName": "App.Project.Phases",
"DisplayName": "Export",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.Phases.Import",
"ParentName": "App.Projects.Phases",
"GroupName": "App.Project",
"Name": "App.Project.Phases.Import",
"ParentName": "App.Project.Phases",
"DisplayName": "Import",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.Phases.Note",
"ParentName": "App.Projects.Phases",
"GroupName": "App.Project",
"Name": "App.Project.Phases.Note",
"ParentName": "App.Project.Phases",
"DisplayName": "Note",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.Activities",
"GroupName": "App.Project",
"Name": "App.Project.Activities",
"ParentName": null,
"DisplayName": "App.Projects.Activities",
"DisplayName": "App.Project.Activities",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.Activities.Create",
"ParentName": "App.Projects.Activities",
"GroupName": "App.Project",
"Name": "App.Project.Activities.Create",
"ParentName": "App.Project.Activities",
"DisplayName": "Create",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.Activities.Update",
"ParentName": "App.Projects.Activities",
"GroupName": "App.Project",
"Name": "App.Project.Activities.Update",
"ParentName": "App.Project.Activities",
"DisplayName": "Update",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.Activities.Delete",
"ParentName": "App.Projects.Activities",
"GroupName": "App.Project",
"Name": "App.Project.Activities.Delete",
"ParentName": "App.Project.Activities",
"DisplayName": "Delete",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.Activities.Export",
"ParentName": "App.Projects.Activities",
"GroupName": "App.Project",
"Name": "App.Project.Activities.Export",
"ParentName": "App.Project.Activities",
"DisplayName": "Export",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.Activities.Import",
"ParentName": "App.Projects.Activities",
"GroupName": "App.Project",
"Name": "App.Project.Activities.Import",
"ParentName": "App.Project.Activities",
"DisplayName": "Import",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.Activities.Note",
"ParentName": "App.Projects.Activities",
"GroupName": "App.Project",
"Name": "App.Project.Activities.Note",
"ParentName": "App.Project.Activities",
"DisplayName": "Note",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.Workload",
"GroupName": "App.Project",
"Name": "App.Project.Workload",
"ParentName": null,
"DisplayName": "App.Projects.Workload",
"DisplayName": "App.Project.Workload",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.Workload.Create",
"ParentName": "App.Projects.Workload",
"GroupName": "App.Project",
"Name": "App.Project.Workload.Create",
"ParentName": "App.Project.Workload",
"DisplayName": "Create",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.Workload.Update",
"ParentName": "App.Projects.Workload",
"GroupName": "App.Project",
"Name": "App.Project.Workload.Update",
"ParentName": "App.Project.Workload",
"DisplayName": "Update",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.Workload.Delete",
"ParentName": "App.Projects.Workload",
"GroupName": "App.Project",
"Name": "App.Project.Workload.Delete",
"ParentName": "App.Project.Workload",
"DisplayName": "Delete",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.Workload.Export",
"ParentName": "App.Projects.Workload",
"GroupName": "App.Project",
"Name": "App.Project.Workload.Export",
"ParentName": "App.Project.Workload",
"DisplayName": "Export",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.Workload.Import",
"ParentName": "App.Projects.Workload",
"GroupName": "App.Project",
"Name": "App.Project.Workload.Import",
"ParentName": "App.Project.Workload",
"DisplayName": "Import",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.Workload.Note",
"ParentName": "App.Projects.Workload",
"GroupName": "App.Project",
"Name": "App.Project.Workload.Note",
"ParentName": "App.Project.Workload",
"DisplayName": "Note",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.CostTracking",
"GroupName": "App.Project",
"Name": "App.Project.CostTracking",
"ParentName": null,
"DisplayName": "App.Projects.CostTracking",
"DisplayName": "App.Project.CostTracking",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.CostTracking.Create",
"ParentName": "App.Projects.CostTracking",
"GroupName": "App.Project",
"Name": "App.Project.CostTracking.Create",
"ParentName": "App.Project.CostTracking",
"DisplayName": "Create",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.CostTracking.Update",
"ParentName": "App.Projects.CostTracking",
"GroupName": "App.Project",
"Name": "App.Project.CostTracking.Update",
"ParentName": "App.Project.CostTracking",
"DisplayName": "Update",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.CostTracking.Delete",
"ParentName": "App.Projects.CostTracking",
"GroupName": "App.Project",
"Name": "App.Project.CostTracking.Delete",
"ParentName": "App.Project.CostTracking",
"DisplayName": "Delete",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.CostTracking.Export",
"ParentName": "App.Projects.CostTracking",
"GroupName": "App.Project",
"Name": "App.Project.CostTracking.Export",
"ParentName": "App.Project.CostTracking",
"DisplayName": "Export",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.CostTracking.Import",
"ParentName": "App.Projects.CostTracking",
"GroupName": "App.Project",
"Name": "App.Project.CostTracking.Import",
"ParentName": "App.Project.CostTracking",
"DisplayName": "Import",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.CostTracking.Note",
"ParentName": "App.Projects.CostTracking",
"GroupName": "App.Project",
"Name": "App.Project.CostTracking.Note",
"ParentName": "App.Project.CostTracking",
"DisplayName": "Note",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.DailyUpdates",
"GroupName": "App.Project",
"Name": "App.Project.DailyUpdates",
"ParentName": null,
"DisplayName": "App.Projects.DailyUpdates",
"DisplayName": "App.Project.DailyUpdates",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.DailyUpdates.Create",
"ParentName": "App.Projects.DailyUpdates",
"GroupName": "App.Project",
"Name": "App.Project.DailyUpdates.Create",
"ParentName": "App.Project.DailyUpdates",
"DisplayName": "Create",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.DailyUpdates.Update",
"ParentName": "App.Projects.DailyUpdates",
"GroupName": "App.Project",
"Name": "App.Project.DailyUpdates.Update",
"ParentName": "App.Project.DailyUpdates",
"DisplayName": "Update",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.DailyUpdates.Delete",
"ParentName": "App.Projects.DailyUpdates",
"GroupName": "App.Project",
"Name": "App.Project.DailyUpdates.Delete",
"ParentName": "App.Project.DailyUpdates",
"DisplayName": "Delete",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.DailyUpdates.Export",
"ParentName": "App.Projects.DailyUpdates",
"GroupName": "App.Project",
"Name": "App.Project.DailyUpdates.Export",
"ParentName": "App.Project.DailyUpdates",
"DisplayName": "Export",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.DailyUpdates.Import",
"ParentName": "App.Projects.DailyUpdates",
"GroupName": "App.Project",
"Name": "App.Project.DailyUpdates.Import",
"ParentName": "App.Project.DailyUpdates",
"DisplayName": "Import",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Projects",
"Name": "App.Projects.DailyUpdates.Note",
"ParentName": "App.Projects.DailyUpdates",
"GroupName": "App.Project",
"Name": "App.Project.DailyUpdates.Note",
"ParentName": "App.Project.DailyUpdates",
"DisplayName": "Note",
"IsEnabled": true,
"MultiTenancySide": 3,
@ -10914,7 +11038,6 @@
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Mrp",
"Name": "App.Mrp.OperationCategory",
@ -10978,7 +11101,6 @@
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Mrp",
"Name": "App.Mrp.OperationType",
@ -11042,7 +11164,6 @@
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Mrp",
"Name": "App.Mrp.WorkcenterType",
@ -11106,7 +11227,6 @@
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Mrp",
"Name": "App.Mrp.WorkcenterStatus",
@ -11170,7 +11290,6 @@
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Mrp",
"Name": "App.Mrp.Workcenter",
@ -11360,7 +11479,6 @@
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Mrp",
"Name": "App.Mrp.BomOperation",
@ -11424,7 +11542,6 @@
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Mrp",
"Name": "App.Mrp.BomComponent",
@ -11488,7 +11605,6 @@
"MultiTenancySide": 3,
"MenuGroup": "Erp"
},
{
"GroupName": "App.Mrp",
"Name": "App.Mrp.ProductionOrder",
@ -12435,4 +12551,4 @@
"MenuGroup": "Erp"
}
]
}
}

View file

@ -187,5 +187,8 @@ public enum TableNameEnum
BomType,
Bom,
BomOperation,
BomComponent
BomComponent,
Project,
ProjectType,
ProjectStatus
}

View file

@ -225,6 +225,11 @@ public static class TableNameResolver
{ nameof(TableNameEnum.Bom), (TablePrefix.TenantByName, MenuPrefix.Mrp) },
{ nameof(TableNameEnum.BomOperation), (TablePrefix.TenantByName, MenuPrefix.Mrp) },
{ nameof(TableNameEnum.BomComponent), (TablePrefix.TenantByName, MenuPrefix.Mrp) },
// 🔹 R&D
{ nameof(TableNameEnum.ProjectType), (TablePrefix.TenantByName, MenuPrefix.Project) },
{ nameof(TableNameEnum.ProjectStatus), (TablePrefix.TenantByName, MenuPrefix.Project) },
{ nameof(TableNameEnum.Project), (TablePrefix.TenantByName, MenuPrefix.Project) },
};
public static string GetFullTableName(string tableName)

View file

@ -559,6 +559,14 @@ public static class SeedConsts
public const string PutawayCondition = Default + ".PutawayCondition";
}
public static class Project
{
public const string Default = Prefix.App + ".Project";
public const string ProjectType = Default + ".ProjectType";
public const string ProjectStatus = Default + ".ProjectStatus";
public const string Projects = Default + ".Project";
}
public static class Mrp
{
public const string Default = Prefix.App + ".Mrp";

View file

@ -0,0 +1,42 @@
// Domain/Entities/PsProject.cs
using System;
using System.Collections.Generic;
using Volo.Abp.Domain.Entities.Auditing;
using Volo.Abp.MultiTenancy;
namespace Erp.Platform.Entities;
public class Project : FullAuditedEntity<Guid>, IMultiTenant
{
public Guid? TenantId { get; set; }
public string Code { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public Guid? ProjectTypeId { get; set; } //Dahili, Müşteri, Araştırma, Bakım, Geliştirme
public ProjectType ProjectType { get; set; }
public Guid? StatusId { get; set; } //Planlanıyor, Devam Ediyor, Tamamlandı, Beklemede, İptal Edildi
public ProjectStatus Status { get; set; }
public string Priority { get; set; } //Düşük, Orta, Yüksek, Kritik, Acil
public Guid ManagerId { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public DateTime? ActualStartDate { get; set; }
public DateTime? ActualEndDate { get; set; }
public Guid? CustomerId { get; set; }
public decimal Budget { get; set; }
public decimal ActualCost { get; set; }
public string Currency { get; set; }
public int Progress { get; set; }
public bool IsActive { get; set; }
// public ICollection<ProjectPhase> Phases { get; set; }
// public ICollection<ProjectTask> Tasks { get; set; }
// public ICollection<ProjectRisk> Risks { get; set; }
// public ICollection<ProjectDocument> Documents { get; set; }
}

View file

@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using Volo.Abp.Domain.Entities.Auditing;
using Volo.Abp.MultiTenancy;
namespace Erp.Platform.Entities;
public class ProjectStatus : 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; }
}

View file

@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using Volo.Abp.Domain.Entities.Auditing;
using Volo.Abp.MultiTenancy;
namespace Erp.Platform.Entities;
public class ProjectType : 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; }
}

View file

@ -267,6 +267,12 @@ public class PlatformDbContext :
public DbSet<BomComponent> BomComponents { get; set; }
#endregion
#region Rd
public DbSet<ProjectType> ProjectTypes { get; set; }
public DbSet<ProjectStatus> ProjectStatuses { get; set; }
public DbSet<Project> Projects { get; set; }
#endregion
public PlatformDbContext(DbContextOptions<PlatformDbContext> options)
: base(options)
{
@ -3199,5 +3205,56 @@ public class PlatformDbContext :
b.Property(x => x.Description).HasMaxLength(500);
b.Property(x => x.IsActive).HasDefaultValue(true);
});
builder.Entity<ProjectType>(b =>
{
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.ProjectType)), 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<ProjectStatus>(b =>
{
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.ProjectStatus)), Prefix.DbSchema);
b.ConfigureByConvention();
b.Property(x => x.Name).IsRequired().HasMaxLength(50);
b.Property(x => x.Description).HasMaxLength(500);
b.Property(x => x.IsActive).HasDefaultValue(true);
});
builder.Entity<Project>(b =>
{
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.Project)), Prefix.DbSchema);
b.ConfigureByConvention();
b.Property(x => x.Code).IsRequired().HasMaxLength(100);
b.Property(x => x.Name).IsRequired().HasMaxLength(200);
b.Property(x => x.Description).HasMaxLength(500);
b.Property(x => x.ProjectTypeId).IsRequired();
b.Property(x => x.StatusId).IsRequired();
b.Property(x => x.Priority).IsRequired().HasMaxLength(50);
b.Property(x => x.Currency).HasMaxLength(10);
b.Property(x => x.Budget).HasPrecision(18, 2).HasDefaultValue(0);
b.Property(x => x.ActualCost).HasPrecision(18, 2).HasDefaultValue(0);
b.Property(x => x.Progress).HasDefaultValue(0);
b.Property(x => x.IsActive).HasDefaultValue(true);
b.HasOne(x => x.ProjectType)
.WithMany(x => x.Projects)
.HasForeignKey(x => x.ProjectTypeId)
.OnDelete(DeleteBehavior.Restrict);
b.HasOne(x => x.Status)
.WithMany(x => x.Projects)
.HasForeignKey(x => x.StatusId)
.OnDelete(DeleteBehavior.Restrict);
});
}
}

View file

@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore;
namespace Erp.Platform.Migrations
{
[DbContext(typeof(PlatformDbContext))]
[Migration("20251126193252_Initial")]
[Migration("20251126210300_Initial")]
partial class Initial
{
/// <inheritdoc />
@ -9750,6 +9750,239 @@ namespace Erp.Platform.Migrations
b.ToTable("Crd_T_Program", (string)null);
});
modelBuilder.Entity("Erp.Platform.Entities.Project", b =>
{
b.Property<Guid>("Id")
.HasColumnType("uniqueidentifier");
b.Property<decimal>("ActualCost")
.ValueGeneratedOnAdd()
.HasPrecision(18, 2)
.HasColumnType("decimal(18,2)")
.HasDefaultValue(0m);
b.Property<DateTime?>("ActualEndDate")
.HasColumnType("datetime2");
b.Property<DateTime?>("ActualStartDate")
.HasColumnType("datetime2");
b.Property<decimal>("Budget")
.ValueGeneratedOnAdd()
.HasPrecision(18, 2)
.HasColumnType("decimal(18,2)")
.HasDefaultValue(0m);
b.Property<string>("Code")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<DateTime>("CreationTime")
.HasColumnType("datetime2")
.HasColumnName("CreationTime");
b.Property<Guid?>("CreatorId")
.HasColumnType("uniqueidentifier")
.HasColumnName("CreatorId");
b.Property<string>("Currency")
.HasMaxLength(10)
.HasColumnType("nvarchar(10)");
b.Property<Guid?>("CustomerId")
.HasColumnType("uniqueidentifier");
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<DateTime>("EndDate")
.HasColumnType("datetime2");
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<Guid>("ManagerId")
.HasColumnType("uniqueidentifier");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("nvarchar(200)");
b.Property<string>("Priority")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<int>("Progress")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasDefaultValue(0);
b.Property<Guid>("ProjectTypeId")
.HasColumnType("uniqueidentifier");
b.Property<DateTime>("StartDate")
.HasColumnType("datetime2");
b.Property<Guid>("StatusId")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("TenantId")
.HasColumnType("uniqueidentifier")
.HasColumnName("TenantId");
b.HasKey("Id");
b.HasIndex("ProjectTypeId");
b.HasIndex("StatusId");
b.ToTable("Prj_T_Project", (string)null);
});
modelBuilder.Entity("Erp.Platform.Entities.ProjectStatus", 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_ProjectStatus", (string)null);
});
modelBuilder.Entity("Erp.Platform.Entities.ProjectType", 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_ProjectType", (string)null);
});
modelBuilder.Entity("Erp.Platform.Entities.Psychologist", b =>
{
b.Property<Guid>("Id")
@ -16871,6 +17104,25 @@ namespace Erp.Platform.Migrations
b.Navigation("Template");
});
modelBuilder.Entity("Erp.Platform.Entities.Project", b =>
{
b.HasOne("Erp.Platform.Entities.ProjectType", "ProjectType")
.WithMany("Projects")
.HasForeignKey("ProjectTypeId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("Erp.Platform.Entities.ProjectStatus", "Status")
.WithMany("Projects")
.HasForeignKey("StatusId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("ProjectType");
b.Navigation("Status");
});
modelBuilder.Entity("Erp.Platform.Entities.PutawayCondition", b =>
{
b.HasOne("Erp.Platform.Entities.Putaway", "Rule")
@ -17748,6 +18000,16 @@ namespace Erp.Platform.Migrations
b.Navigation("Items");
});
modelBuilder.Entity("Erp.Platform.Entities.ProjectStatus", b =>
{
b.Navigation("Projects");
});
modelBuilder.Entity("Erp.Platform.Entities.ProjectType", b =>
{
b.Navigation("Projects");
});
modelBuilder.Entity("Erp.Platform.Entities.Putaway", b =>
{
b.Navigation("Conditions");

View file

@ -1823,6 +1823,50 @@ namespace Erp.Platform.Migrations
table.PrimaryKey("PK_Plat_H_SettingDefinition", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Prj_T_ProjectStatus",
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_ProjectStatus", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Prj_T_ProjectType",
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_ProjectType", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Prt_T_Interesting",
columns: table => new
@ -3482,6 +3526,54 @@ namespace Erp.Platform.Migrations
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "Prj_T_Project",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
Code = table.Column<string>(type: "nvarchar(100)", maxLength: 100, nullable: false),
Name = table.Column<string>(type: "nvarchar(200)", maxLength: 200, nullable: false),
Description = table.Column<string>(type: "nvarchar(500)", maxLength: 500, nullable: true),
ProjectTypeId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
StatusId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
Priority = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false),
ManagerId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
StartDate = table.Column<DateTime>(type: "datetime2", nullable: false),
EndDate = table.Column<DateTime>(type: "datetime2", nullable: false),
ActualStartDate = table.Column<DateTime>(type: "datetime2", nullable: true),
ActualEndDate = table.Column<DateTime>(type: "datetime2", nullable: true),
CustomerId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
Budget = table.Column<decimal>(type: "decimal(18,2)", precision: 18, scale: 2, nullable: false, defaultValue: 0m),
ActualCost = table.Column<decimal>(type: "decimal(18,2)", precision: 18, scale: 2, nullable: false, defaultValue: 0m),
Currency = table.Column<string>(type: "nvarchar(10)", maxLength: 10, nullable: true),
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_Project", x => x.Id);
table.ForeignKey(
name: "FK_Prj_T_Project_Prj_T_ProjectStatus_StatusId",
column: x => x.StatusId,
principalTable: "Prj_T_ProjectStatus",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
table.ForeignKey(
name: "FK_Prj_T_Project_Prj_T_ProjectType_ProjectTypeId",
column: x => x.ProjectTypeId,
principalTable: "Prj_T_ProjectType",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
});
migrationBuilder.CreateTable(
name: "Sas_H_Country",
columns: table => new
@ -7562,6 +7654,16 @@ namespace Erp.Platform.Migrations
table: "Plat_H_Notification",
column: "NotificationRuleId");
migrationBuilder.CreateIndex(
name: "IX_Prj_T_Project_ProjectTypeId",
table: "Prj_T_Project",
column: "ProjectTypeId");
migrationBuilder.CreateIndex(
name: "IX_Prj_T_Project_StatusId",
table: "Prj_T_Project",
column: "StatusId");
migrationBuilder.CreateIndex(
name: "IX_Sas_H_City_Country_Code",
table: "Sas_H_City",
@ -8210,6 +8312,9 @@ namespace Erp.Platform.Migrations
migrationBuilder.DropTable(
name: "Plat_H_SettingDefinition");
migrationBuilder.DropTable(
name: "Prj_T_Project");
migrationBuilder.DropTable(
name: "Prt_T_Interesting");
@ -8402,6 +8507,12 @@ namespace Erp.Platform.Migrations
migrationBuilder.DropTable(
name: "Plat_H_NotificationRule");
migrationBuilder.DropTable(
name: "Prj_T_ProjectStatus");
migrationBuilder.DropTable(
name: "Prj_T_ProjectType");
migrationBuilder.DropTable(
name: "Sas_H_City");

View file

@ -9747,6 +9747,239 @@ namespace Erp.Platform.Migrations
b.ToTable("Crd_T_Program", (string)null);
});
modelBuilder.Entity("Erp.Platform.Entities.Project", b =>
{
b.Property<Guid>("Id")
.HasColumnType("uniqueidentifier");
b.Property<decimal>("ActualCost")
.ValueGeneratedOnAdd()
.HasPrecision(18, 2)
.HasColumnType("decimal(18,2)")
.HasDefaultValue(0m);
b.Property<DateTime?>("ActualEndDate")
.HasColumnType("datetime2");
b.Property<DateTime?>("ActualStartDate")
.HasColumnType("datetime2");
b.Property<decimal>("Budget")
.ValueGeneratedOnAdd()
.HasPrecision(18, 2)
.HasColumnType("decimal(18,2)")
.HasDefaultValue(0m);
b.Property<string>("Code")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<DateTime>("CreationTime")
.HasColumnType("datetime2")
.HasColumnName("CreationTime");
b.Property<Guid?>("CreatorId")
.HasColumnType("uniqueidentifier")
.HasColumnName("CreatorId");
b.Property<string>("Currency")
.HasMaxLength(10)
.HasColumnType("nvarchar(10)");
b.Property<Guid?>("CustomerId")
.HasColumnType("uniqueidentifier");
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<DateTime>("EndDate")
.HasColumnType("datetime2");
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<Guid>("ManagerId")
.HasColumnType("uniqueidentifier");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("nvarchar(200)");
b.Property<string>("Priority")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<int>("Progress")
.ValueGeneratedOnAdd()
.HasColumnType("int")
.HasDefaultValue(0);
b.Property<Guid>("ProjectTypeId")
.HasColumnType("uniqueidentifier");
b.Property<DateTime>("StartDate")
.HasColumnType("datetime2");
b.Property<Guid>("StatusId")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("TenantId")
.HasColumnType("uniqueidentifier")
.HasColumnName("TenantId");
b.HasKey("Id");
b.HasIndex("ProjectTypeId");
b.HasIndex("StatusId");
b.ToTable("Prj_T_Project", (string)null);
});
modelBuilder.Entity("Erp.Platform.Entities.ProjectStatus", 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_ProjectStatus", (string)null);
});
modelBuilder.Entity("Erp.Platform.Entities.ProjectType", 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_ProjectType", (string)null);
});
modelBuilder.Entity("Erp.Platform.Entities.Psychologist", b =>
{
b.Property<Guid>("Id")
@ -16868,6 +17101,25 @@ namespace Erp.Platform.Migrations
b.Navigation("Template");
});
modelBuilder.Entity("Erp.Platform.Entities.Project", b =>
{
b.HasOne("Erp.Platform.Entities.ProjectType", "ProjectType")
.WithMany("Projects")
.HasForeignKey("ProjectTypeId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.HasOne("Erp.Platform.Entities.ProjectStatus", "Status")
.WithMany("Projects")
.HasForeignKey("StatusId")
.OnDelete(DeleteBehavior.Restrict)
.IsRequired();
b.Navigation("ProjectType");
b.Navigation("Status");
});
modelBuilder.Entity("Erp.Platform.Entities.PutawayCondition", b =>
{
b.HasOne("Erp.Platform.Entities.Putaway", "Rule")
@ -17745,6 +17997,16 @@ namespace Erp.Platform.Migrations
b.Navigation("Items");
});
modelBuilder.Entity("Erp.Platform.Entities.ProjectStatus", b =>
{
b.Navigation("Projects");
});
modelBuilder.Entity("Erp.Platform.Entities.ProjectType", b =>
{
b.Navigation("Projects");
});
modelBuilder.Entity("Erp.Platform.Entities.Putaway", b =>
{
b.Navigation("Conditions");

View file

@ -100,7 +100,9 @@
"props": null,
"description": null,
"isActive": true,
"dependencies": ["DynamicEntityComponent"]
"dependencies": [
"DynamicEntityComponent"
]
}
],
"ReportCategories": [
@ -2429,7 +2431,12 @@
"minSalary": 80000,
"maxSalary": 120000,
"currency": "USD",
"requiredSkills": ["JavaScript", "TypeScript", "React", "Node.js"],
"requiredSkills": [
"JavaScript",
"TypeScript",
"React",
"Node.js"
],
"responsibilities": [
"Develop frontend and backend applications",
"Write clean and maintainable code",
@ -4124,7 +4131,9 @@
{
"postContent": "CI/CD pipeline güncellememiz tamamlandı! Deployment süremiz %40 azaldı. Otomasyonun gücü 💪",
"type": "video",
"urls": ["https://www.w3schools.com/html/mov_bbb.mp4"]
"urls": [
"https://www.w3schools.com/html/mov_bbb.mp4"
]
}
],
"SocialPollOptions": [
@ -5806,5 +5815,59 @@
"isActive": true,
"isParallel": false
}
],
"ProjectTypes": [
{
"name": "Dahili",
"description": "Şirket içi projeler için kullanılan tür",
"isActive": true
},
{
"name": "Müşteri",
"description": "Müşteri projeleri için kullanılan tür",
"isActive": true
},
{
"name": "Araştırma",
"description": "Araştırma ve geliştirme projeleri için kullanılan tür",
"isActive": true
},
{
"name": "Bakım",
"description": "Bakım ve iyileştirme projeleri için kullanılan tür",
"isActive": true
},
{
"name": "Geliştirme",
"description": "Yeni ürün ve süreç geliştirme projeleri için kullanılan tür",
"isActive": true
}
],
"ProjectStatuses": [
{
"name": "Planlama",
"description": "Projenin planlama aşamasında olduğunu ifade eder",
"isActive": true
},
{
"name": "Aktif",
"description": "Projenin aktif olarak yürütüldüğünü ifade eder",
"isActive": true
},
{
"name": "Beklemede",
"description": "Projenin belirli nedenlerle geçici olarak durdurulduğunu ifade eder",
"isActive": true
},
{
"name": "Tamamlandı",
"description": "Projenin tüm çalışmalarının başarıyla tamamlandığını ifade eder",
"isActive": true
},
{
"name": "İptal Edildi",
"description": "Projenin iptal edildiğini ifade eder",
"isActive": true
}
]
}
}

View file

@ -128,6 +128,8 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency
private readonly IRepository<Bom, Guid> _bomRepository;
private readonly IRepository<BomComponent, Guid> _bomComponentRepository;
private readonly IRepository<BomOperation, Guid> _bomOperationRepository;
private readonly IRepository<ProjectType, Guid> _projectTypeRepository;
private readonly IRepository<ProjectStatus, Guid> _projectStatusRepository;
public TenantDataSeeder(
IClock clock,
@ -238,7 +240,9 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency
IRepository<BomType, Guid> bomTypeRepository,
IRepository<Bom, Guid> bomRepository,
IRepository<BomComponent, Guid> bomComponentRepository,
IRepository<BomOperation, Guid> bomOperationRepository
IRepository<BomOperation, Guid> bomOperationRepository,
IRepository<ProjectType, Guid> projectTypeRepository,
IRepository<ProjectStatus, Guid> projectStatusRepository
)
{
_clock = clock;
@ -351,6 +355,8 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency
_bomRepository = bomRepository;
_bomComponentRepository = bomComponentRepository;
_bomOperationRepository = bomOperationRepository;
_projectTypeRepository = projectTypeRepository;
_projectStatusRepository = projectStatusRepository;
}
private static IConfigurationRoot BuildConfiguration()
@ -2446,6 +2452,34 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency
IsParallel = item.IsParallel
}, autoSave: true);
}
foreach (var item in items.ProjectTypes)
{
var exists = await _projectTypeRepository.AnyAsync(x => x.Name == item.Name);
if (exists)
continue;
await _projectTypeRepository.InsertAsync(new ProjectType
{
Name = item.Name,
Description = item.Description,
IsActive = item.IsActive
}, autoSave: true);
}
foreach (var item in items.ProjectStatuses)
{
var exists = await _projectStatusRepository.AnyAsync(x => x.Name == item.Name);
if (exists)
continue;
await _projectStatusRepository.InsertAsync(new ProjectStatus
{
Name = item.Name,
Description = item.Description,
IsActive = item.IsActive
}, autoSave: true);
}
}
}

View file

@ -126,6 +126,24 @@ public class TenantSeederDto
public List<BomSeedDto> Boms { get; set; }
public List<BomComponentSeedDto> BomComponents { get; set; }
public List<BomOperationSeedDto> BomOperations { get; set; }
//Project
public List<ProjectTypeSeedDto> ProjectTypes { get; set; }
public List<ProjectStatusSeedDto> ProjectStatuses { get; set; }
}
public class ProjectStatusSeedDto
{
public string Name { get; set; }
public string Description { get; set; }
public bool IsActive { get; set; }
}
public class ProjectTypeSeedDto
{
public string Name { get; set; }
public string Description { get; set; }
public bool IsActive { get; set; }
}
public class BomOperationSeedDto

View file

@ -127,7 +127,7 @@ const IntranetDashboard: React.FC = () => {
permission: 'App.Intranet.Announcement.Widget',
column: 'right',
},
{ id: 'priority-tasks', permission: 'App.Projects.Tasks.Widget', column: 'right' },
{ id: 'priority-tasks', permission: 'App.Project.Tasks.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: 'leave-management', permission: 'App.Hr.Leave.Widget', column: 'right' },