Mrp Workload
This commit is contained in:
parent
83165cbc9f
commit
adc45fad30
7 changed files with 297 additions and 38 deletions
|
|
@ -10179,9 +10179,9 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"resourceName": "Platform",
|
"resourceName": "Platform",
|
||||||
"key": "App.Mrp.PlanningGantt",
|
"key": "App.Mrp.Workload",
|
||||||
"tr": "Planlama Gantt",
|
"tr": "Workload",
|
||||||
"en": "Planning Gantt"
|
"en": "Workload"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"resourceName": "Platform",
|
"resourceName": "Platform",
|
||||||
|
|
|
||||||
|
|
@ -1862,7 +1862,7 @@ public class ListFormSeeder_Mrp : IDataSeedContributor, ITransientDependency
|
||||||
EditingFormJson = JsonSerializer.Serialize(new List<EditingFormDto>() {
|
EditingFormJson = JsonSerializer.Serialize(new List<EditingFormDto>() {
|
||||||
new() {
|
new() {
|
||||||
Order=1, ColCount=2, ColSpan=1, ItemType="group", Items= [
|
Order=1, ColCount=2, ColSpan=1, ItemType="group", Items= [
|
||||||
new EditingFormItemDto { Order = 1, DataField = "OrderNumber", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxTextBox },
|
new EditingFormItemDto { Order = 1, DataField = "OrderNumber", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxTextBox, EditorOptions = EditorOptionValues.Disabled },
|
||||||
new EditingFormItemDto { Order = 2, DataField = "OrderTypeId", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
new EditingFormItemDto { Order = 2, DataField = "OrderTypeId", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||||
new EditingFormItemDto { Order = 3, DataField = "StatusId", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
new EditingFormItemDto { Order = 3, DataField = "StatusId", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||||
new EditingFormItemDto { Order = 4, DataField = "Priority", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
new EditingFormItemDto { Order = 4, DataField = "Priority", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||||
|
|
@ -2500,17 +2500,17 @@ public class ListFormSeeder_Mrp : IDataSeedContributor, ITransientDependency
|
||||||
EditingFormJson = JsonSerializer.Serialize(new List<EditingFormDto>() {
|
EditingFormJson = JsonSerializer.Serialize(new List<EditingFormDto>() {
|
||||||
new() {
|
new() {
|
||||||
Order=1, ColCount=2, ColSpan=1, ItemType="group", Items= [
|
Order=1, ColCount=2, ColSpan=1, ItemType="group", Items= [
|
||||||
new EditingFormItemDto { Order = 1, DataField = "WorkorderNumber", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxTextBox },
|
new EditingFormItemDto { Order = 1, DataField = "WorkorderNumber", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxTextBox, EditorOptions = EditorOptionValues.Disabled },
|
||||||
new EditingFormItemDto { Order = 2, DataField = "ProductionOrderId", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
new EditingFormItemDto { Order = 2, DataField = "ProductionOrderId", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||||
new EditingFormItemDto { Order = 3, DataField = "OperationId", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
new EditingFormItemDto { Order = 3, DataField = "OperationId", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||||
new EditingFormItemDto { Order = 4, DataField = "MaterialId", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
new EditingFormItemDto { Order = 4, DataField = "MaterialId", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||||
new EditingFormItemDto { Order = 5, DataField = "WorkcenterId", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
new EditingFormItemDto { Order = 5, DataField = "WorkcenterId", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||||
new EditingFormItemDto { Order = 6, DataField = "StatusId", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
new EditingFormItemDto { Order = 6, DataField = "StatusId", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||||
new EditingFormItemDto { Order = 7, DataField = "Sequence", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxNumberBox },
|
new EditingFormItemDto { Order = 7, DataField = "PlannedStartDate", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxDateBox, EditorOptions=EditorOptionValues.DateTimeFormat },
|
||||||
new EditingFormItemDto { Order = 8, DataField = "PlannedStartDate", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxDateBox, EditorOptions=EditorOptionValues.DateTimeFormat },
|
new EditingFormItemDto { Order = 8, DataField = "PlannedEndDate", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxDateBox, EditorOptions=EditorOptionValues.DateTimeFormat },
|
||||||
new EditingFormItemDto { Order = 9, DataField = "PlannedEndDate", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxDateBox, EditorOptions=EditorOptionValues.DateTimeFormat },
|
new EditingFormItemDto { Order = 9, DataField = "ActualStartDate", ColSpan = 1, EditorType2=EditorTypes.dxDateBox, EditorOptions=EditorOptionValues.DateTimeFormat },
|
||||||
new EditingFormItemDto { Order = 10, DataField = "ActualStartDate", ColSpan = 1, EditorType2=EditorTypes.dxDateBox, EditorOptions=EditorOptionValues.DateTimeFormat },
|
new EditingFormItemDto { Order = 10, DataField = "ActualEndDate", ColSpan = 1, EditorType2=EditorTypes.dxDateBox, EditorOptions=EditorOptionValues.DateTimeFormat },
|
||||||
new EditingFormItemDto { Order = 11, DataField = "ActualEndDate", ColSpan = 1, EditorType2=EditorTypes.dxDateBox, EditorOptions=EditorOptionValues.DateTimeFormat },
|
new EditingFormItemDto { Order = 11, DataField = "Sequence", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxNumberBox },
|
||||||
new EditingFormItemDto { Order = 12, DataField = "PlannedQuantity", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxNumberBox, EditorOptions=EditorOptionValues.NumberStandartFormat },
|
new EditingFormItemDto { Order = 12, DataField = "PlannedQuantity", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxNumberBox, EditorOptions=EditorOptionValues.NumberStandartFormat },
|
||||||
new EditingFormItemDto { Order = 13, DataField = "ConfirmedQuantity", ColSpan = 1, EditorType2=EditorTypes.dxNumberBox, EditorOptions=EditorOptionValues.NumberStandartFormat },
|
new EditingFormItemDto { Order = 13, DataField = "ConfirmedQuantity", ColSpan = 1, EditorType2=EditorTypes.dxNumberBox, EditorOptions=EditorOptionValues.NumberStandartFormat },
|
||||||
new EditingFormItemDto { Order = 14, DataField = "ScrapQuantity", ColSpan = 1, EditorType2=EditorTypes.dxNumberBox, EditorOptions=EditorOptionValues.NumberStandartFormat },
|
new EditingFormItemDto { Order = 14, DataField = "ScrapQuantity", ColSpan = 1, EditorType2=EditorTypes.dxNumberBox, EditorOptions=EditorOptionValues.NumberStandartFormat },
|
||||||
|
|
@ -2851,8 +2851,195 @@ public class ListFormSeeder_Mrp : IDataSeedContributor, ITransientDependency
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Production Order Workload
|
||||||
|
listFormName = AppCodes.Mrp.Workload;
|
||||||
|
if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName))
|
||||||
|
{
|
||||||
|
var listForm = await _listFormRepository.InsertAsync(
|
||||||
|
new ListForm()
|
||||||
|
{
|
||||||
|
ListFormType = ListFormTypeEnum.List,
|
||||||
|
ExportJson = DefaultExportJson,
|
||||||
|
IsSubForm = false,
|
||||||
|
ShowNote = true,
|
||||||
|
LayoutJson = DefaultLayoutJson("gantt"),
|
||||||
|
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.GetFullViewName(nameof(TableNameEnum.ProductionOrder)),
|
||||||
|
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),
|
||||||
|
GanttOptionJson = JsonSerializer.Serialize(new GanttOptionDto
|
||||||
|
{
|
||||||
|
KeyExpr = "Id",
|
||||||
|
ParentIdExpr = "ParentId",
|
||||||
|
RootValue = null,
|
||||||
|
AutoExpandAll = true,
|
||||||
|
TitleExpr = "Name",
|
||||||
|
StartExpr = "StartDate",
|
||||||
|
EndExpr = "EndDate",
|
||||||
|
ProgressExpr = "Progress",
|
||||||
|
ScaleType = "weeks"
|
||||||
|
}),
|
||||||
|
DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.ProductionOrder)),
|
||||||
|
DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson,
|
||||||
|
PagerOptionJson = DefaultPagerOptionJson,
|
||||||
|
EditingOptionJson = DefaultEditingOptionJson(listFormName, 800, 400, true, true, true, true, false),
|
||||||
|
InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson,
|
||||||
|
EditingFormJson = JsonSerializer.Serialize(new List<EditingFormDto>()
|
||||||
|
{
|
||||||
|
new() {
|
||||||
|
Order=1, ColCount=2, ColSpan=1, ItemType="group", Items =[
|
||||||
|
new EditingFormItemDto { Order = 1, DataField="Name", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox },
|
||||||
|
new EditingFormItemDto { Order = 2, DataField="Progress", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox },
|
||||||
|
new EditingFormItemDto { Order = 3, DataField="StartDate", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxDateBox, EditorOptions = EditorOptionValues.DateFormat },
|
||||||
|
new EditingFormItemDto { Order = 4, DataField="EndDate", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxDateBox, EditorOptions = EditorOptionValues.DateFormat },
|
||||||
|
new EditingFormItemDto { Order = 5, DataField="Description", ColSpan = 2, EditorType2 = EditorTypes.dxTextArea },
|
||||||
|
]}
|
||||||
|
}),
|
||||||
|
}, autoSave: true
|
||||||
|
);
|
||||||
|
|
||||||
|
#region Project Task Workload Fields
|
||||||
|
await _listFormFieldRepository.InsertManyAsync([
|
||||||
|
new() {
|
||||||
|
ListFormCode = listForm.ListFormCode,
|
||||||
|
CultureName = LanguageCodes.En,
|
||||||
|
SourceDbType = DbType.Guid,
|
||||||
|
FieldName = "Id",
|
||||||
|
Width = 100,
|
||||||
|
ListOrderNo = 1,
|
||||||
|
Visible = false,
|
||||||
|
IsActive = true,
|
||||||
|
IsDeleted = false,
|
||||||
|
ValidationRuleJson = DefaultValidationRuleRequiredJson,
|
||||||
|
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||||
|
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||||
|
PivotSettingsJson = DefaultPivotSettingsJson
|
||||||
|
},
|
||||||
|
new() {
|
||||||
|
ListFormCode = listForm.ListFormCode,
|
||||||
|
CultureName = LanguageCodes.En,
|
||||||
|
SourceDbType = DbType.Guid,
|
||||||
|
FieldName = "ParentId",
|
||||||
|
Width = 200,
|
||||||
|
ListOrderNo = 2,
|
||||||
|
Visible = false,
|
||||||
|
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 = 200,
|
||||||
|
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.String,
|
||||||
|
FieldName = "Description",
|
||||||
|
Width = 400,
|
||||||
|
ListOrderNo = 4,
|
||||||
|
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",
|
||||||
|
Alignment = "center",
|
||||||
|
Width = 100,
|
||||||
|
ListOrderNo = 5,
|
||||||
|
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",
|
||||||
|
Alignment = "center",
|
||||||
|
Width = 100,
|
||||||
|
ListOrderNo = 6,
|
||||||
|
Visible = true,
|
||||||
|
IsActive = true,
|
||||||
|
IsDeleted = false,
|
||||||
|
AllowSearch = true,
|
||||||
|
ValidationRuleJson = DefaultValidationRuleRequiredJson,
|
||||||
|
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||||
|
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||||
|
PivotSettingsJson = DefaultPivotSettingsJson
|
||||||
|
},
|
||||||
|
new() {
|
||||||
|
ListFormCode = listForm.ListFormCode,
|
||||||
|
CultureName = LanguageCodes.En,
|
||||||
|
SourceDbType = DbType.Decimal,
|
||||||
|
FieldName = "Progress",
|
||||||
|
Format = "fixedPoint",
|
||||||
|
Alignment = "right",
|
||||||
|
Width = 70,
|
||||||
|
ListOrderNo = 7,
|
||||||
|
Visible = true,
|
||||||
|
IsActive = true,
|
||||||
|
IsDeleted = false,
|
||||||
|
AllowSearch = true,
|
||||||
|
ValidationRuleJson = DefaultValidationRuleRequiredJson,
|
||||||
|
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||||
|
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||||
|
PivotSettingsJson = DefaultPivotSettingsJson,
|
||||||
|
EditorOptions=EditorOptionValues.NumberStandartFormat
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2166,14 +2166,6 @@ public class ListFormSeeder_Project : IDataSeedContributor, ITransientDependency
|
||||||
IsActive = true,
|
IsActive = true,
|
||||||
IsDeleted = false,
|
IsDeleted = false,
|
||||||
AllowSearch = true,
|
AllowSearch = true,
|
||||||
LookupJson = JsonSerializer.Serialize(new LookupDto
|
|
||||||
{
|
|
||||||
DataSourceType = UiLookupDataSourceTypeEnum.Query,
|
|
||||||
DisplayExpr = "Name",
|
|
||||||
ValueExpr = "Key",
|
|
||||||
LookupQuery = LookupQueryValues.DefaultLookupQuery(nameof(TableNameEnum.Projects), "Id", "Name"),
|
|
||||||
CascadeEmptyFields = "PhaseId"
|
|
||||||
}),
|
|
||||||
ValidationRuleJson = DefaultValidationRuleRequiredJson,
|
ValidationRuleJson = DefaultValidationRuleRequiredJson,
|
||||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||||
|
|
|
||||||
|
|
@ -3113,12 +3113,12 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ParentCode": "App.Mrp",
|
"ParentCode": "App.Mrp",
|
||||||
"Code": "App.Mrp.PlanningGantt",
|
"Code": "App.Mrp.Workload",
|
||||||
"DisplayName": "App.Mrp.PlanningGantt",
|
"DisplayName": "App.Mrp.Workload",
|
||||||
"Order": 4,
|
"Order": 4,
|
||||||
"Url": "/admin/mrp/planning-gantt",
|
"Url": "/admin/list/App.Mrp.Workload",
|
||||||
"Icon": "FcTimeline",
|
"Icon": "FcTimeline",
|
||||||
"RequiredPermissionName": "App.Mrp.PlanningGantt",
|
"RequiredPermissionName": "App.Mrp.Workload",
|
||||||
"IsDisabled": false
|
"IsDisabled": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -13313,17 +13313,17 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"GroupName": "App.Mrp",
|
"GroupName": "App.Mrp",
|
||||||
"Name": "App.Mrp.PlanningGantt",
|
"Name": "App.Mrp.Workload",
|
||||||
"ParentName": null,
|
"ParentName": null,
|
||||||
"DisplayName": "App.Mrp.PlanningGantt",
|
"DisplayName": "App.Mrp.Workload",
|
||||||
"IsEnabled": true,
|
"IsEnabled": true,
|
||||||
"MultiTenancySide": 3,
|
"MultiTenancySide": 3,
|
||||||
"MenuGroup": "Erp"
|
"MenuGroup": "Erp"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"GroupName": "App.Mrp",
|
"GroupName": "App.Mrp",
|
||||||
"Name": "App.Mrp.PlanningGantt.Create",
|
"Name": "App.Mrp.Workload.Create",
|
||||||
"ParentName": "App.Mrp.PlanningGantt",
|
"ParentName": "App.Mrp.Workload",
|
||||||
"DisplayName": "Create",
|
"DisplayName": "Create",
|
||||||
"IsEnabled": true,
|
"IsEnabled": true,
|
||||||
"MultiTenancySide": 3,
|
"MultiTenancySide": 3,
|
||||||
|
|
@ -13331,8 +13331,8 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"GroupName": "App.Mrp",
|
"GroupName": "App.Mrp",
|
||||||
"Name": "App.Mrp.PlanningGantt.Update",
|
"Name": "App.Mrp.Workload.Update",
|
||||||
"ParentName": "App.Mrp.PlanningGantt",
|
"ParentName": "App.Mrp.Workload",
|
||||||
"DisplayName": "Update",
|
"DisplayName": "Update",
|
||||||
"IsEnabled": true,
|
"IsEnabled": true,
|
||||||
"MultiTenancySide": 3,
|
"MultiTenancySide": 3,
|
||||||
|
|
@ -13340,8 +13340,8 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"GroupName": "App.Mrp",
|
"GroupName": "App.Mrp",
|
||||||
"Name": "App.Mrp.PlanningGantt.Delete",
|
"Name": "App.Mrp.Workload.Delete",
|
||||||
"ParentName": "App.Mrp.PlanningGantt",
|
"ParentName": "App.Mrp.Workload",
|
||||||
"DisplayName": "Delete",
|
"DisplayName": "Delete",
|
||||||
"IsEnabled": true,
|
"IsEnabled": true,
|
||||||
"MultiTenancySide": 3,
|
"MultiTenancySide": 3,
|
||||||
|
|
@ -13349,8 +13349,8 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"GroupName": "App.Mrp",
|
"GroupName": "App.Mrp",
|
||||||
"Name": "App.Mrp.PlanningGantt.Export",
|
"Name": "App.Mrp.Workload.Export",
|
||||||
"ParentName": "App.Mrp.PlanningGantt",
|
"ParentName": "App.Mrp.Workload",
|
||||||
"DisplayName": "Export",
|
"DisplayName": "Export",
|
||||||
"IsEnabled": true,
|
"IsEnabled": true,
|
||||||
"MultiTenancySide": 3,
|
"MultiTenancySide": 3,
|
||||||
|
|
@ -13358,8 +13358,8 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"GroupName": "App.Mrp",
|
"GroupName": "App.Mrp",
|
||||||
"Name": "App.Mrp.PlanningGantt.Import",
|
"Name": "App.Mrp.Workload.Import",
|
||||||
"ParentName": "App.Mrp.PlanningGantt",
|
"ParentName": "App.Mrp.Workload",
|
||||||
"DisplayName": "Import",
|
"DisplayName": "Import",
|
||||||
"IsEnabled": true,
|
"IsEnabled": true,
|
||||||
"MultiTenancySide": 3,
|
"MultiTenancySide": 3,
|
||||||
|
|
@ -13367,8 +13367,8 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"GroupName": "App.Mrp",
|
"GroupName": "App.Mrp",
|
||||||
"Name": "App.Mrp.PlanningGantt.Note",
|
"Name": "App.Mrp.Workload.Note",
|
||||||
"ParentName": "App.Mrp.PlanningGantt",
|
"ParentName": "App.Mrp.Workload",
|
||||||
"DisplayName": "Note",
|
"DisplayName": "Note",
|
||||||
"IsEnabled": true,
|
"IsEnabled": true,
|
||||||
"MultiTenancySide": 3,
|
"MultiTenancySide": 3,
|
||||||
|
|
|
||||||
|
|
@ -642,6 +642,7 @@ public static class SeedConsts
|
||||||
public const string ProductionOrderItem = Default + ".ProductionOrderItem";
|
public const string ProductionOrderItem = Default + ".ProductionOrderItem";
|
||||||
public const string WorkorderStatus = Default + ".WorkorderStatus";
|
public const string WorkorderStatus = Default + ".WorkorderStatus";
|
||||||
public const string Workorder = Default + ".Workorder";
|
public const string Workorder = Default + ".Workorder";
|
||||||
|
public const string Workload = Default + ".Workload";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,9 @@ public class DatabaseViewSeeder : IDataSeedContributor, ITransientDependency
|
||||||
|
|
||||||
await CreateOrUpdateMovementItemViewAsync(dbContext, nameof(TableNameEnum.MovementItem));
|
await CreateOrUpdateMovementItemViewAsync(dbContext, nameof(TableNameEnum.MovementItem));
|
||||||
|
|
||||||
await CreateOrUpdateMovementTransferViewAsync(dbContext, nameof(TableNameEnum.TransferItem));
|
await CreateOrUpdateMovementTransferViewAsync(dbContext, nameof(TableNameEnum.TransferItem));
|
||||||
|
|
||||||
|
await CreateOrUpdateProductionOrderViewAsync(dbContext, nameof(TableNameEnum.ProductionOrder));
|
||||||
|
|
||||||
_logger.LogInformation("Database view seeding completed successfully.");
|
_logger.LogInformation("Database view seeding completed successfully.");
|
||||||
}
|
}
|
||||||
|
|
@ -285,5 +287,82 @@ public class DatabaseViewSeeder : IDataSeedContributor, ITransientDependency
|
||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Creates or updates the V_T_Str_MovementTransfer view
|
||||||
|
/// </summary>
|
||||||
|
private async Task CreateOrUpdateProductionOrderViewAsync(PlatformDbContext dbContext, string tableName)
|
||||||
|
{
|
||||||
|
string fullViewName = TableNameResolver.GetFullViewName(tableName);
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var createViewSql = $@"
|
||||||
|
IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[{fullViewName}]'))
|
||||||
|
DROP VIEW [dbo].[{fullViewName}];
|
||||||
|
|
||||||
|
EXEC('
|
||||||
|
CREATE VIEW [dbo].[{fullViewName}]
|
||||||
|
AS
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
Mrp_T_ProductionOrder.TenantId,
|
||||||
|
Mrp_T_ProductionWorkorder.ProductionOrderId AS Id,
|
||||||
|
NULL AS ParentId,
|
||||||
|
Scp_T_Material.[Name] AS Name,
|
||||||
|
''PO '' + Mrp_T_ProductionOrder.OrderNumber AS Description,
|
||||||
|
Mrp_T_ProductionOrder.PlannedStartDate AS StartDate,
|
||||||
|
Mrp_T_ProductionOrder.PlannedEndDate AS EndDate,
|
||||||
|
(Mrp_T_ProductionOrder.ConfirmedQuantity * 1.0 / Mrp_T_ProductionOrder.PlannedQuantity) * 100.00 AS Progress,
|
||||||
|
Mrp_T_ProductionWorkorder.[IsDeleted]
|
||||||
|
FROM Mrp_T_ProductionOrder
|
||||||
|
INNER JOIN Mrp_T_ProductionWorkorder
|
||||||
|
ON Mrp_T_ProductionOrder.Id = Mrp_T_ProductionWorkorder.ProductionOrderId
|
||||||
|
INNER JOIN Scp_T_Material
|
||||||
|
ON Mrp_T_ProductionWorkorder.MaterialId = Scp_T_Material.Id
|
||||||
|
GROUP BY
|
||||||
|
Mrp_T_ProductionOrder.TenantId,
|
||||||
|
Mrp_T_ProductionWorkorder.ProductionOrderId,
|
||||||
|
Scp_T_Material.[Name],
|
||||||
|
Mrp_T_ProductionOrder.OrderNumber,
|
||||||
|
Mrp_T_ProductionOrder.PlannedStartDate,
|
||||||
|
Mrp_T_ProductionOrder.PlannedEndDate,
|
||||||
|
Mrp_T_ProductionOrder.PlannedQuantity,
|
||||||
|
Mrp_T_ProductionOrder.ConfirmedQuantity,
|
||||||
|
Mrp_T_ProductionWorkorder.[IsDeleted]
|
||||||
|
|
||||||
|
UNION ALL
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
Mrp_T_ProductionWorkorder.TenantId,
|
||||||
|
Mrp_T_ProductionWorkorder.Id,
|
||||||
|
Mrp_T_ProductionWorkorder.ProductionOrderId,
|
||||||
|
CONVERT(varchar, Mrp_T_ProductionWorkorder.Sequence)
|
||||||
|
+ ''-) '' + Mrp_T_Operation.Name AS Name,
|
||||||
|
''WO '' + Mrp_T_ProductionWorkorder.WorkorderNumber
|
||||||
|
+ '' - '' + Mnt_T_Workcenter.Name AS Description,
|
||||||
|
Mrp_T_ProductionWorkorder.PlannedStartDate AS StartDate,
|
||||||
|
Mrp_T_ProductionWorkorder.PlannedEndDate AS EndDate,
|
||||||
|
(Mrp_T_ProductionWorkorder.ConfirmedQuantity * 1.0 /
|
||||||
|
Mrp_T_ProductionWorkorder.PlannedQuantity) * 100.00 AS Progress,
|
||||||
|
Mrp_T_ProductionWorkorder.[IsDeleted]
|
||||||
|
FROM Mrp_T_ProductionWorkorder
|
||||||
|
INNER JOIN Mrp_T_Operation
|
||||||
|
ON Mrp_T_ProductionWorkorder.OperationId = Mrp_T_Operation.Id
|
||||||
|
INNER JOIN Mnt_T_Workcenter
|
||||||
|
ON Mrp_T_ProductionWorkorder.WorkcenterId = Mnt_T_Workcenter.Id
|
||||||
|
');
|
||||||
|
";
|
||||||
|
|
||||||
|
await dbContext.Database.ExecuteSqlRawAsync(createViewSql);
|
||||||
|
|
||||||
|
_logger.LogInformation($"Created/Updated {fullViewName} view successfully.");
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, $"Error occurred while creating {fullViewName} view.");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue