diff --git a/.github/instructions/lowcode-reference.instructions.md b/.github/instructions/lowcode-reference.instructions.md index a36ce1b3..d58f8fcd 100644 --- a/.github/instructions/lowcode-reference.instructions.md +++ b/.github/instructions/lowcode-reference.instructions.md @@ -1250,7 +1250,6 @@ soneklerini alır. | **Definitions › Contact Title** | `App.Definitions.ContactTitle` | `Sas_H_ContactTitle` | host | Ünvan/hitap lookup'ı (`Title`, `Abbreviation`). | | **Definitions › Currency** | `App.Definitions.Currency` | `Sas_H_Currency` | host | Para birimi + `Rate`. Tutar alanı olan ekranın kur lookup'ı ve `DbQuery` varsayılanı buradan beslenir. | | **Definitions › Country Group / Country / City / District** | `App.Definitions.CountryGroup` · `.Country` · `.City` · `.District` | `Sas_H_CountryGroup` · `Sas_H_Country` · `Sas_H_City` · `Sas_H_District` | host | Adres alanlarının hazır cascade zinciri (dört ayrı menü ve seed dosyası; `Order` sırası grup → ülke → il → ilçe). `Country` ayrıca `PhoneCode`, `PhoneNumberFormat`, `ZipRequired`, `StateRequired`, `TaxLabel` taşır — adres doğrulaması için kullan. | -| **Definitions › UoM Category** | `App.Definitions.UomCategory` (alt form `.Uom`) | `Sas_H_UomCategory` · `Sas_H_Uom` | host | Ölçü birimi, `Ratio`/`Rounding` — miktar alanı olan ekranlarda birim lookup'ı ve çevrim. | | **Public › Products / Payment Methods / Installment Options** | `App.Orders.Products` · `.PaymentMethods` · `.InstallmentOptions` | `Sas_H_Product` · `Sas_H_PaymentMethod` · `Sas_H_InstallmentOption` | host | Ürün, ödeme yöntemi (`Commission`), taksit — satış/abonelik ekranlarının ve public `/products` sayfasının kaynağı. | | **Public › Sales Orders** | `App.Orders.SalesOrders` (alt form Sales Order Item) | `Sas_H_Order` + `Sas_H_OrderItem` | host | **Onay akışı + alt kalem + toplam + diyalog** birlikte kullanılan tam örnek (§12.7). | | **Public › Blog Category / Posts** | `App.BlogManagement.Category` · `.Posts` | `Sas_H_BlogCategory` · `Sas_H_BlogPost` | host | Çok dilli içerik (`ContentTr`/`ContentEn`), slug, yayın durumu, sayaç alanları; public `/blog` bu tablolardan okur, yayınlanmış yazılar sitemap'e girer. | @@ -1289,6 +1288,7 @@ ekranları ABP tablolarıdır, Licence/Dev Request host tablolarını okur. | --- | --- | --- | --- | | **Definitions › Sector** | `App.Definitions.Sector` | `Adm_T_Sector` | Sektör lookup’ı. Veri `data/App.Definitions.Sector.json`'dan seed edilir. | | **Definitions › Sequence** | `App.Definitions.Sequence` | `Adm_T_Sequence` | Belge numarası üretimi (`lowcode` §9.9); alan varsayılanında `CustomValueType: 5` ile bağlanır. Entity `IMultiTenant`'tır; ekran `IsTenant = true`, yetkiler `MultiTenancySide = Both` — her kiracı kendi numaratörlerini tutar. Seed `data/App.Definitions.Sequence.json`. | +| **Definitions › UoM Category** | `App.Definitions.UomCategory` (alt form `.Uom`) | `Adm_T_UomCategory` · `Adm_T_Uom` | Ölçü birimi, `Ratio`/`Rounding` — miktar alanı olan ekranlarda birim lookup'ı ve çevrim. Entity'ler `IMultiTenant`'tır; ekranlar `IsTenant = true`, yetkiler `MultiTenancySide = Both`. Seed `data/App.Definitions.{UomCategory,Uom}.json`. | | **Licence** | `App.Licence` · `/admin/form/App.Licence` | `AbpTenants` + `V_Sas_H_OrderItem_ByTenantId` | **`ListFormType = Form`** (listesiz, tek kayıtlık ekran) + alt kalem listesi. "Tek kayıtlık kart ekran" isteğinin karşılığı budur. | | **Dev Request** | `App.DevRequest` | `Sas_H_DevRequest` | Kiracı tarafındaki talep ekranı (Saas'taki listenin kullanıcı yüzü; `UserName` varsayılanı `@USERNAME`). | | **Bildirimler › Bildirim Şablonları** | `App.Notifications.NotificationTemplates` | `Adm_T_NotificationTemplate` | Elle gönderimde seçilen mesaj metinleri: `Code`, `Name`, `Channel` (boş = tüm kanallar), `Subject`, `Body` (`{AdSoyad}`, `{KullaniciAdi}`, `{Eposta}`, `{Tarih}`, `{Saat}`, `{Kiraci}` yer tutucuları), `IsActive`. Boş bırakılan konu/gövde şablondan tamamlanır. Seed: `data/App.Notifications.NotificationTemplates.json`. | diff --git a/api/src/Sozsoft.Platform.DbMigrator/Migrations/ListFormSeeder_Administration.cs b/api/src/Sozsoft.Platform.DbMigrator/Migrations/ListFormSeeder_Administration.cs index e1b435ca..93eff990 100644 --- a/api/src/Sozsoft.Platform.DbMigrator/Migrations/ListFormSeeder_Administration.cs +++ b/api/src/Sozsoft.Platform.DbMigrator/Migrations/ListFormSeeder_Administration.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Data; using System.Text.Json; @@ -2003,6 +2003,335 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep } #endregion + #region UomCategory + listFormName = AppCodes.Definitions.UomCategory; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + 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}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.UomCategory)), + SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), + SeedSyncInsert = false, + SeedSyncUpdate = false, + SeedSyncDelete = false, + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.String, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.UomCategory)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 400, 200, true, true, true, false, false, true), + EditingFormJson = JsonSerializer.Serialize(new List + { + new() { + Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, + }), + SubFormsJson = JsonSerializer.Serialize(new List() { + new { + TabType = ListFormTabTypeEnum.List, + TabTitle = AppCodes.Definitions.Uom, + Code = AppCodes.Definitions.Uom, + Relation = new List() { + new { + ParentFieldName = "Id", + DbType = DbType.String, + ChildFieldName = "UomCategoryId" + } + } + }, + }) + }, autoSave: true); + + #region UomCategory Fields + await _listFormFieldRepository.InsertManyAsync([ + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Name", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + } + ], autoSave: true); + #endregion + } + #endregion + + #region Uom + listFormName = AppCodes.Definitions.Uom; + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) + { + var listForm = await _listFormRepository.InsertAsync( + new ListForm() + { + ListFormType = ListFormTypeEnum.List, + PageSize = 10, + ExportJson = DefaultExportJson, + IsSubForm = true, + ShowNote = false, + LayoutJson = DefaultLayoutJson(), + CultureName = LanguageCodes.En, + ListFormCode = listFormName, + Name = listFormName, + Title = listFormName, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = $"{listFormName}.Description", + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Uom)), + SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), + SeedSyncInsert = false, + SeedSyncUpdate = false, + SeedSyncDelete = false, + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.String, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = DefaultFilterRowJson(), + HeaderFilterJson = DefaultHeaderFilterJson(), + SearchPanelJson = DefaultSearchPanelJson(), + GroupPanelJson = DefaultGroupPanelJson(), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson(), + PermissionJson = DefaultPermissionJson(listFormName), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.Uom)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(DbType.String, "Name"), + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(listFormName, 600, 500, true, true, true, false, false), + EditingFormJson = JsonSerializer.Serialize(new List() { + new() { + Order=1, ColCount=1, ColSpan=1, ItemType="group" }, + }), + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { + new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value } + }), + }, autoSave: true + ); + + #region Uom Fields + await _listFormFieldRepository.InsertManyAsync([ + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Id", + CaptionName = "App.Listform.ListformField.Id", + Width = 0, + ListOrderNo = 1, + Visible = false, + IsActive = true, + + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + EditGroupOrderNo = 1, + EditOrderNo = 1, + EditorType2 = EditorTypes.dxTextBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Name", + Width = 0, + ListOrderNo = 2, + Visible = true, + IsActive = true, + + SortIndex = 1, + SortDirection = GridColumnOptions.SortOrderAsc, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Type", + EditGroupOrderNo = 1, + EditOrderNo = 2, + EditorType2 = EditorTypes.dxSelectBox, + ColSpan = 1, + EditorOptions = EditorOptions.ShowClearButton(), + CaptionName = "App.Listform.ListformField.Type", + Width = 0, + ListOrderNo = 3, + Visible = true, + IsActive = true, + + AllowSearch = true, + LookupJson = JsonSerializer.Serialize(new LookupDto { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new () { Key="Reference", Name="App.StaticLookup.Reference" }, + new () { Key="SmallerThanReference", Name="App.StaticLookup.SmallerThanReference" }, + new () { Key="BiggerThanReference", Name="App.StaticLookup.BiggerThanReference" }, + }), + }), + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Decimal, + FieldName = "Ratio", + EditGroupOrderNo = 1, + EditOrderNo = 3, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Ratio", + Alignment = "right", + Width = 0, + ListOrderNo = 4, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + EditorOptions=EditorOptions.Number() + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Decimal, + FieldName = "Rounding", + EditGroupOrderNo = 1, + EditOrderNo = 4, + EditorType2 = EditorTypes.dxNumberBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.Rounding", + Alignment = "right", + Width = 0, + ListOrderNo = 5, + Visible = true, + IsActive = true, + + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson, + EditorOptions=EditorOptions.Number() + }, + new ListFormField + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsActive", + EditGroupOrderNo = 1, + EditOrderNo = 5, + EditorType2 = EditorTypes.dxCheckBox, + ColSpan = 1, + CaptionName = "App.Listform.ListformField.IsActive", + Width = 0, + ListOrderNo = 6, + Visible = true, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "UomCategoryId", + CaptionName = "App.Listform.ListformField.UomCategoryId", + Width = 0, + ListOrderNo = 7, + Visible = false, + IsActive = true, + + AllowSearch = true, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(listForm.Name), + PivotSettingsJson = DefaultPivotSettingsJson + }, + ], autoSave: true); + #endregion + } + #endregion + #region Sequence listFormName = AppCodes.Definitions.Sequence; if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) diff --git a/api/src/Sozsoft.Platform.DbMigrator/Migrations/ListFormSeeder_Saas.cs b/api/src/Sozsoft.Platform.DbMigrator/Migrations/ListFormSeeder_Saas.cs index 3452450a..c9e95af5 100644 --- a/api/src/Sozsoft.Platform.DbMigrator/Migrations/ListFormSeeder_Saas.cs +++ b/api/src/Sozsoft.Platform.DbMigrator/Migrations/ListFormSeeder_Saas.cs @@ -2512,335 +2512,6 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency } #endregion - #region UomCategory - listFormName = AppCodes.Definitions.UomCategory; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = false, - ShowNote = true, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.UomCategory)), - SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), - SeedSyncInsert = false, - SeedSyncUpdate = false, - SeedSyncDelete = false, - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.String, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.UomCategory)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 400, 200, true, true, true, false, false, true), - EditingFormJson = JsonSerializer.Serialize(new List - { - new() { - Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, - }), - SubFormsJson = JsonSerializer.Serialize(new List() { - new { - TabType = ListFormTabTypeEnum.List, - TabTitle = AppCodes.Definitions.Uom, - Code = AppCodes.Definitions.Uom, - Relation = new List() { - new { - ParentFieldName = "Id", - DbType = DbType.String, - ChildFieldName = "UomCategoryId" - } - } - }, - }) - }, autoSave: true); - - #region UomCategory Fields - await _listFormFieldRepository.InsertManyAsync([ - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - }, - new() - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Name", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Name", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - } - ], autoSave: true); - #endregion - } - #endregion - - #region Uom - listFormName = AppCodes.Definitions.Uom; - if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) - { - var listForm = await _listFormRepository.InsertAsync( - new ListForm() - { - ListFormType = ListFormTypeEnum.List, - PageSize = 10, - ExportJson = DefaultExportJson, - IsSubForm = true, - ShowNote = false, - LayoutJson = DefaultLayoutJson(), - CultureName = LanguageCodes.En, - ListFormCode = listFormName, - Name = listFormName, - Title = listFormName, - DataSourceCode = SeedConsts.DataSources.DefaultCode, - IsTenant = false, - IsBranch = false, - IsOrganizationUnit = false, - Description = $"{listFormName}.Description", - SelectCommandType = SelectCommandTypeEnum.Table, - SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Uom)), - SeedFilePath = SeedPathResolver.GetDataFilePath(listFormName), - SeedSyncInsert = false, - SeedSyncUpdate = false, - SeedSyncDelete = false, - KeyFieldName = "Id", - KeyFieldDbSourceType = DbType.String, - DefaultFilter = DefaultFilterJson, - SortMode = GridOptions.SortModeSingle, - FilterRowJson = DefaultFilterRowJson(), - HeaderFilterJson = DefaultHeaderFilterJson(), - SearchPanelJson = DefaultSearchPanelJson(), - GroupPanelJson = DefaultGroupPanelJson(), - SelectionJson = DefaultSelectionSingleJson, - ColumnOptionJson = DefaultColumnOptionJson(), - PermissionJson = DefaultPermissionJson(listFormName), - DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.Uom)), - DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(), - InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson(DbType.String, "Name"), - PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(listFormName, 600, 500, true, true, true, false, false), - EditingFormJson = JsonSerializer.Serialize(new List() { - new() { - Order=1, ColCount=1, ColSpan=1, ItemType="group" }, - }), - FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value } - }), - }, autoSave: true - ); - - #region Uom Fields - await _listFormFieldRepository.InsertManyAsync([ - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Id", - CaptionName = "App.Listform.ListformField.Id", - Width = 0, - ListOrderNo = 1, - Visible = false, - IsActive = true, - - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Name", - EditGroupOrderNo = 1, - EditOrderNo = 1, - EditorType2 = EditorTypes.dxTextBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Name", - Width = 0, - ListOrderNo = 2, - Visible = true, - IsActive = true, - - SortIndex = 1, - SortDirection = GridColumnOptions.SortOrderAsc, - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "Type", - EditGroupOrderNo = 1, - EditOrderNo = 2, - EditorType2 = EditorTypes.dxSelectBox, - ColSpan = 1, - EditorOptions = EditorOptions.ShowClearButton(), - CaptionName = "App.Listform.ListformField.Type", - Width = 0, - ListOrderNo = 3, - Visible = true, - IsActive = true, - - AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.StaticData, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new () { Key="Reference", Name="App.StaticLookup.Reference" }, - new () { Key="SmallerThanReference", Name="App.StaticLookup.SmallerThanReference" }, - new () { Key="BiggerThanReference", Name="App.StaticLookup.BiggerThanReference" }, - }), - }), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Decimal, - FieldName = "Ratio", - EditGroupOrderNo = 1, - EditOrderNo = 3, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Ratio", - Alignment = "right", - Width = 0, - ListOrderNo = 4, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - EditorOptions=EditorOptions.Number() - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Decimal, - FieldName = "Rounding", - EditGroupOrderNo = 1, - EditOrderNo = 4, - EditorType2 = EditorTypes.dxNumberBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.Rounding", - Alignment = "right", - Width = 0, - ListOrderNo = 5, - Visible = true, - IsActive = true, - - AllowSearch = true, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson, - EditorOptions=EditorOptions.Number() - }, - new ListFormField - { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Boolean, - FieldName = "IsActive", - EditGroupOrderNo = 1, - EditOrderNo = 5, - EditorType2 = EditorTypes.dxCheckBox, - ColSpan = 1, - CaptionName = "App.Listform.ListformField.IsActive", - Width = 0, - ListOrderNo = 6, - Visible = true, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.String, - FieldName = "UomCategoryId", - CaptionName = "App.Listform.ListformField.UomCategoryId", - Width = 0, - ListOrderNo = 7, - Visible = false, - IsActive = true, - - AllowSearch = true, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, - ], autoSave: true); - #endregion - } - #endregion - #region SettingDefinition listFormName = AppCodes.SettingDefinitions; if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName)) diff --git a/api/src/Sozsoft.Platform.Domain.Shared/PlatformConsts.cs b/api/src/Sozsoft.Platform.Domain.Shared/PlatformConsts.cs index efd888d4..3827df04 100644 --- a/api/src/Sozsoft.Platform.Domain.Shared/PlatformConsts.cs +++ b/api/src/Sozsoft.Platform.Domain.Shared/PlatformConsts.cs @@ -421,9 +421,9 @@ public static class PlatformConsts public const string Country = Default + ".Country"; public const string City = Default + ".City"; public const string District = Default + ".District"; - public const string UomCategory = Default + ".UomCategory"; public const string Sector = Default + ".Sector"; + public const string UomCategory = Default + ".UomCategory"; } public static class Hr diff --git a/api/src/Sozsoft.Platform.Domain.Shared/TableNameResolver.cs b/api/src/Sozsoft.Platform.Domain.Shared/TableNameResolver.cs index eacd6966..69ed6ec6 100644 --- a/api/src/Sozsoft.Platform.Domain.Shared/TableNameResolver.cs +++ b/api/src/Sozsoft.Platform.Domain.Shared/TableNameResolver.cs @@ -23,8 +23,6 @@ public static class TableNameResolver { nameof(TableNameEnum.Country), (TablePrefix.PlatformByName, MenuPrefix.Sas) }, { nameof(TableNameEnum.City), (TablePrefix.PlatformByName, MenuPrefix.Sas) }, { nameof(TableNameEnum.District), (TablePrefix.PlatformByName, MenuPrefix.Sas) }, - { nameof(TableNameEnum.UomCategory), (TablePrefix.PlatformByName, MenuPrefix.Sas) }, - { nameof(TableNameEnum.Uom), (TablePrefix.PlatformByName, MenuPrefix.Sas) }, { nameof(TableNameEnum.Branch), (TablePrefix.TenantByName, MenuPrefix.Sas) }, { nameof(TableNameEnum.BranchUsers), (TablePrefix.TenantByName, MenuPrefix.Sas) }, { nameof(TableNameEnum.SettingDefinition), (TablePrefix.PlatformByName, MenuPrefix.Sas) }, @@ -67,6 +65,8 @@ public static class TableNameResolver // 🔹 ADMINISTRATION TABLOLARI { nameof(TableNameEnum.Sector), (TablePrefix.TenantByName, MenuPrefix.Administration) }, + { nameof(TableNameEnum.UomCategory), (TablePrefix.TenantByName, MenuPrefix.Administration) }, + { nameof(TableNameEnum.Uom), (TablePrefix.TenantByName, MenuPrefix.Administration) }, { nameof(TableNameEnum.Department), (TablePrefix.TenantByName, MenuPrefix.Hr) }, { nameof(TableNameEnum.JobPosition), (TablePrefix.TenantByName, MenuPrefix.Hr) }, { nameof(TableNameEnum.SkillType), (TablePrefix.TenantByName, MenuPrefix.Hr) }, diff --git a/api/src/Sozsoft.Platform.Domain/Data/SeedConsts.cs b/api/src/Sozsoft.Platform.Domain/Data/SeedConsts.cs index 6960d260..28c9faf3 100644 --- a/api/src/Sozsoft.Platform.Domain/Data/SeedConsts.cs +++ b/api/src/Sozsoft.Platform.Domain/Data/SeedConsts.cs @@ -364,10 +364,10 @@ public static class SeedConsts public const string Country = Default + ".Country"; public const string City = Default + ".City"; public const string District = Default + ".District"; - public const string UomCategory = Default + ".UomCategory"; - public const string Uom = Default + ".Uom"; public const string Sector = Default + ".Sector"; + public const string UomCategory = Default + ".UomCategory"; + public const string Uom = Default + ".Uom"; } public static class Hr diff --git a/api/src/Sozsoft.Platform.Domain/Entities/Host/Definitions/UomCategory.cs b/api/src/Sozsoft.Platform.Domain/Entities/Host/Definitions/UomCategory.cs deleted file mode 100644 index bc1bc3ed..00000000 --- a/api/src/Sozsoft.Platform.Domain/Entities/Host/Definitions/UomCategory.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System.Collections.Generic; -using Volo.Abp.Domain.Entities.Auditing; - -namespace Sozsoft.Platform.Entities; - -public class UomCategory : FullAuditedEntity -{ - public string Name { get; set; } - - public ICollection Uoms { get; set; } - - public UomCategory(string id) - { - Id = id; - } -} diff --git a/api/src/Sozsoft.Platform.Domain/Entities/Host/Definitions/Uom.cs b/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/Definitions/Uom.cs similarity index 62% rename from api/src/Sozsoft.Platform.Domain/Entities/Host/Definitions/Uom.cs rename to api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/Definitions/Uom.cs index f1157d1a..1a7b80a1 100644 --- a/api/src/Sozsoft.Platform.Domain/Entities/Host/Definitions/Uom.cs +++ b/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/Definitions/Uom.cs @@ -1,9 +1,13 @@ -using Volo.Abp.Domain.Entities.Auditing; +using System; +using Volo.Abp.Domain.Entities.Auditing; +using Volo.Abp.MultiTenancy; namespace Sozsoft.Platform.Entities; -public class Uom : FullAuditedEntity +public class Uom : FullAuditedEntity, IMultiTenant { + public Guid? TenantId { get; set; } + public string UomCategoryId { get; set; } public UomCategory UomCategory { get; set; } @@ -13,9 +17,10 @@ public class Uom : FullAuditedEntity public bool IsActive { get; set; } public decimal Rounding { get; set; } + Guid? IMultiTenant.TenantId => TenantId; + public Uom(string id) { Id = id; } } - diff --git a/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/Definitions/UomCategory.cs b/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/Definitions/UomCategory.cs new file mode 100644 index 00000000..469dfaa8 --- /dev/null +++ b/api/src/Sozsoft.Platform.Domain/Entities/Tenant/Administration/Definitions/UomCategory.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using Volo.Abp.Domain.Entities.Auditing; +using Volo.Abp.MultiTenancy; + +namespace Sozsoft.Platform.Entities; + +public class UomCategory : FullAuditedEntity, IMultiTenant +{ + public Guid? TenantId { get; set; } + + public string Name { get; set; } + + public ICollection Uoms { get; set; } + + Guid? IMultiTenant.TenantId => TenantId; + + public UomCategory(string id) + { + Id = id; + } +} diff --git a/api/src/Sozsoft.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformDbContext.cs b/api/src/Sozsoft.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformDbContext.cs index a8a25996..08215786 100644 --- a/api/src/Sozsoft.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformDbContext.cs +++ b/api/src/Sozsoft.Platform.EntityFrameworkCore/EntityFrameworkCore/PlatformDbContext.cs @@ -913,7 +913,7 @@ public class PlatformDbContext : b.Property(x => x.Id).HasMaxLength(128); b.Property(x => x.Name).IsRequired().HasMaxLength(128); - b.HasIndex(x => new { x.Name }).IsUnique().HasFilter("[IsDeleted] = 0"); + b.HasIndex(x => new { x.TenantId, x.Name }).IsUnique().HasFilter("[IsDeleted] = 0"); }); builder.Entity(b => @@ -928,7 +928,7 @@ public class PlatformDbContext : b.Property(x => x.Rounding).HasPrecision(18, 6); b.Property(x => x.UomCategoryId).IsRequired().HasMaxLength(128); - b.HasIndex(x => new { x.Name, x.UomCategoryId }).IsUnique().HasFilter("[IsDeleted] = 0"); + b.HasIndex(x => new { x.TenantId, x.Name, x.UomCategoryId }).IsUnique().HasFilter("[IsDeleted] = 0"); b.HasOne(x => x.UomCategory) .WithMany(x => x.Uoms) diff --git a/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/20260922201238_Initial.Designer.cs b/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/20260922201238_Initial.Designer.cs index 61543277..525802cc 100644 --- a/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/20260922201238_Initial.Designer.cs +++ b/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/20260922201238_Initial.Designer.cs @@ -6070,6 +6070,10 @@ namespace Sozsoft.Platform.Migrations .HasMaxLength(32) .HasColumnType("nvarchar(32)"); + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + b.Property("UomCategoryId") .IsRequired() .HasMaxLength(128) @@ -6079,11 +6083,11 @@ namespace Sozsoft.Platform.Migrations b.HasIndex("UomCategoryId"); - b.HasIndex("Name", "UomCategoryId") + b.HasIndex("TenantId", "Name", "UomCategoryId") .IsUnique() .HasFilter("[IsDeleted] = 0"); - b.ToTable("Sas_H_Uom", (string)null); + b.ToTable("Adm_T_Uom", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.UomCategory", b => @@ -6127,13 +6131,17 @@ namespace Sozsoft.Platform.Migrations .HasMaxLength(128) .HasColumnType("nvarchar(128)"); + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + b.HasKey("Id"); - b.HasIndex("Name") + b.HasIndex("TenantId", "Name") .IsUnique() .HasFilter("[IsDeleted] = 0"); - b.ToTable("Sas_H_UomCategory", (string)null); + b.ToTable("Adm_T_UomCategory", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.Videoroom", b => diff --git a/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/20260922201238_Initial.cs b/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/20260922201238_Initial.cs index a825aa4c..5b3cd683 100644 --- a/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/20260922201238_Initial.cs +++ b/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/20260922201238_Initial.cs @@ -1777,10 +1777,11 @@ namespace Sozsoft.Platform.Migrations }); migrationBuilder.CreateTable( - name: "Sas_H_UomCategory", + name: "Adm_T_UomCategory", columns: table => new { Id = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), Name = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), CreationTime = table.Column(type: "datetime2", nullable: false), CreatorId = table.Column(type: "uniqueidentifier", nullable: true), @@ -1792,7 +1793,7 @@ namespace Sozsoft.Platform.Migrations }, constraints: table => { - table.PrimaryKey("PK_Sas_H_UomCategory", x => x.Id); + table.PrimaryKey("PK_Adm_T_UomCategory", x => x.Id); }); migrationBuilder.CreateTable( @@ -3090,10 +3091,11 @@ namespace Sozsoft.Platform.Migrations }); migrationBuilder.CreateTable( - name: "Sas_H_Uom", + name: "Adm_T_Uom", columns: table => new { Id = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), + TenantId = table.Column(type: "uniqueidentifier", nullable: true), UomCategoryId = table.Column(type: "nvarchar(128)", maxLength: 128, nullable: false), Name = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), Type = table.Column(type: "nvarchar(32)", maxLength: 32, nullable: false), @@ -3110,11 +3112,11 @@ namespace Sozsoft.Platform.Migrations }, constraints: table => { - table.PrimaryKey("PK_Sas_H_Uom", x => x.Id); + table.PrimaryKey("PK_Adm_T_Uom", x => x.Id); table.ForeignKey( - name: "FK_Sas_H_Uom_Sas_H_UomCategory_UomCategoryId", + name: "FK_Adm_T_Uom_Adm_T_UomCategory_UomCategoryId", column: x => x.UomCategoryId, - principalTable: "Sas_H_UomCategory", + principalTable: "Adm_T_UomCategory", principalColumn: "Id", onDelete: ReferentialAction.Restrict); }); @@ -4367,21 +4369,21 @@ namespace Sozsoft.Platform.Migrations filter: "[IsDeleted] = 0"); migrationBuilder.CreateIndex( - name: "IX_Sas_H_Uom_Name_UomCategoryId", - table: "Sas_H_Uom", - columns: new[] { "Name", "UomCategoryId" }, + name: "IX_Adm_T_Uom_TenantId_Name_UomCategoryId", + table: "Adm_T_Uom", + columns: new[] { "TenantId", "Name", "UomCategoryId" }, unique: true, filter: "[IsDeleted] = 0"); migrationBuilder.CreateIndex( - name: "IX_Sas_H_Uom_UomCategoryId", - table: "Sas_H_Uom", + name: "IX_Adm_T_Uom_UomCategoryId", + table: "Adm_T_Uom", column: "UomCategoryId"); migrationBuilder.CreateIndex( - name: "IX_Sas_H_UomCategory_Name", - table: "Sas_H_UomCategory", - column: "Name", + name: "IX_Adm_T_UomCategory_TenantId_Name", + table: "Adm_T_UomCategory", + columns: new[] { "TenantId", "Name" }, unique: true, filter: "[IsDeleted] = 0"); @@ -4681,7 +4683,7 @@ namespace Sozsoft.Platform.Migrations name: "Hr_T_SkillLevel"); migrationBuilder.DropTable( - name: "Sas_H_Uom"); + name: "Adm_T_Uom"); migrationBuilder.DropTable( name: "Sas_T_Branch"); @@ -4774,7 +4776,7 @@ namespace Sozsoft.Platform.Migrations name: "Hr_T_SkillType"); migrationBuilder.DropTable( - name: "Sas_H_UomCategory"); + name: "Adm_T_UomCategory"); migrationBuilder.DropTable( name: "Sas_T_ForumTopic"); diff --git a/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/PlatformDbContextModelSnapshot.cs b/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/PlatformDbContextModelSnapshot.cs index e3f45d0b..e66410a7 100644 --- a/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/PlatformDbContextModelSnapshot.cs +++ b/api/src/Sozsoft.Platform.EntityFrameworkCore/Migrations/PlatformDbContextModelSnapshot.cs @@ -6067,6 +6067,10 @@ namespace Sozsoft.Platform.Migrations .HasMaxLength(32) .HasColumnType("nvarchar(32)"); + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + b.Property("UomCategoryId") .IsRequired() .HasMaxLength(128) @@ -6076,11 +6080,11 @@ namespace Sozsoft.Platform.Migrations b.HasIndex("UomCategoryId"); - b.HasIndex("Name", "UomCategoryId") + b.HasIndex("TenantId", "Name", "UomCategoryId") .IsUnique() .HasFilter("[IsDeleted] = 0"); - b.ToTable("Sas_H_Uom", (string)null); + b.ToTable("Adm_T_Uom", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.UomCategory", b => @@ -6124,13 +6128,17 @@ namespace Sozsoft.Platform.Migrations .HasMaxLength(128) .HasColumnType("nvarchar(128)"); + b.Property("TenantId") + .HasColumnType("uniqueidentifier") + .HasColumnName("TenantId"); + b.HasKey("Id"); - b.HasIndex("Name") + b.HasIndex("TenantId", "Name") .IsUnique() .HasFilter("[IsDeleted] = 0"); - b.ToTable("Sas_H_UomCategory", (string)null); + b.ToTable("Adm_T_UomCategory", (string)null); }); modelBuilder.Entity("Sozsoft.Platform.Entities.Videoroom", b => diff --git a/configs/seeds/host/data/Abp.Identity.Permissions.json b/configs/seeds/host/data/Abp.Identity.Permissions.json index 9f4a28be..62dfc1a0 100644 --- a/configs/seeds/host/data/Abp.Identity.Permissions.json +++ b/configs/seeds/host/data/Abp.Identity.Permissions.json @@ -504,136 +504,6 @@ "MultiTenancySide": 2, "Modules": "Sas|Adm" }, - { - "GroupName": "App.Saas", - "Name": "App.Definitions.UomCategory", - "ParentName": "App.Saas.Definitions", - "DisplayName": "App.Definitions.UomCategory", - "Order": 9, - "IsEnabled": true, - "MultiTenancySide": 2, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Saas", - "Name": "App.Definitions.UomCategory.Create", - "ParentName": "App.Definitions.UomCategory", - "DisplayName": "App.Platform.Create", - "Order": 1, - "IsEnabled": true, - "MultiTenancySide": 2, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Saas", - "Name": "App.Definitions.UomCategory.Update", - "ParentName": "App.Definitions.UomCategory", - "DisplayName": "App.Platform.Update", - "Order": 2, - "IsEnabled": true, - "MultiTenancySide": 2, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Saas", - "Name": "App.Definitions.UomCategory.Delete", - "ParentName": "App.Definitions.UomCategory", - "DisplayName": "App.Platform.Delete", - "Order": 3, - "IsEnabled": true, - "MultiTenancySide": 2, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Saas", - "Name": "App.Definitions.UomCategory.Export", - "ParentName": "App.Definitions.UomCategory", - "DisplayName": "Export", - "Order": 4, - "IsEnabled": true, - "MultiTenancySide": 2, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Saas", - "Name": "App.Definitions.UomCategory.Import", - "ParentName": "App.Definitions.UomCategory", - "DisplayName": "Import", - "Order": 5, - "IsEnabled": true, - "MultiTenancySide": 2, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Saas", - "Name": "App.Definitions.UomCategory.Note", - "ParentName": "App.Definitions.UomCategory", - "DisplayName": "Note", - "Order": 6, - "IsEnabled": true, - "MultiTenancySide": 2, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Saas", - "Name": "App.Definitions.Uom", - "ParentName": "App.Saas.Definitions", - "DisplayName": "App.Definitions.Uom", - "Order": 10, - "IsEnabled": true, - "MultiTenancySide": 2, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Saas", - "Name": "App.Definitions.Uom.Create", - "ParentName": "App.Definitions.Uom", - "DisplayName": "App.Platform.Create", - "Order": 1, - "IsEnabled": true, - "MultiTenancySide": 2, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Saas", - "Name": "App.Definitions.Uom.Update", - "ParentName": "App.Definitions.Uom", - "DisplayName": "App.Platform.Update", - "Order": 2, - "IsEnabled": true, - "MultiTenancySide": 2, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Saas", - "Name": "App.Definitions.Uom.Delete", - "ParentName": "App.Definitions.Uom", - "DisplayName": "App.Platform.Delete", - "Order": 3, - "IsEnabled": true, - "MultiTenancySide": 2, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Saas", - "Name": "App.Definitions.Uom.Export", - "ParentName": "App.Definitions.Uom", - "DisplayName": "Export", - "Order": 4, - "IsEnabled": true, - "MultiTenancySide": 2, - "Modules": "Sas|Adm" - }, - { - "GroupName": "App.Saas", - "Name": "App.Definitions.Uom.Import", - "ParentName": "App.Definitions.Uom", - "DisplayName": "Import", - "Order": 5, - "IsEnabled": true, - "MultiTenancySide": 2, - "Modules": "Sas|Adm" - }, { "GroupName": "App.Saas", "Name": "App.Public", @@ -2904,6 +2774,136 @@ "MultiTenancySide": 3, "Modules": "Sas|Adm" }, + { + "GroupName": "App.Administration", + "Name": "App.Definitions.UomCategory", + "ParentName": "App.Administration.Definitions", + "DisplayName": "App.Definitions.UomCategory", + "Order": 3, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Adm" + }, + { + "GroupName": "App.Administration", + "Name": "App.Definitions.UomCategory.Create", + "ParentName": "App.Definitions.UomCategory", + "DisplayName": "App.Platform.Create", + "Order": 1, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Adm" + }, + { + "GroupName": "App.Administration", + "Name": "App.Definitions.UomCategory.Update", + "ParentName": "App.Definitions.UomCategory", + "DisplayName": "App.Platform.Update", + "Order": 2, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Adm" + }, + { + "GroupName": "App.Administration", + "Name": "App.Definitions.UomCategory.Delete", + "ParentName": "App.Definitions.UomCategory", + "DisplayName": "App.Platform.Delete", + "Order": 3, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Adm" + }, + { + "GroupName": "App.Administration", + "Name": "App.Definitions.UomCategory.Export", + "ParentName": "App.Definitions.UomCategory", + "DisplayName": "Export", + "Order": 4, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Adm" + }, + { + "GroupName": "App.Administration", + "Name": "App.Definitions.UomCategory.Import", + "ParentName": "App.Definitions.UomCategory", + "DisplayName": "Import", + "Order": 5, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Adm" + }, + { + "GroupName": "App.Administration", + "Name": "App.Definitions.UomCategory.Note", + "ParentName": "App.Definitions.UomCategory", + "DisplayName": "Note", + "Order": 6, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Adm" + }, + { + "GroupName": "App.Administration", + "Name": "App.Definitions.Uom", + "ParentName": "App.Administration.Definitions", + "DisplayName": "App.Definitions.Uom", + "Order": 4, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Adm" + }, + { + "GroupName": "App.Administration", + "Name": "App.Definitions.Uom.Create", + "ParentName": "App.Definitions.Uom", + "DisplayName": "App.Platform.Create", + "Order": 1, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Adm" + }, + { + "GroupName": "App.Administration", + "Name": "App.Definitions.Uom.Update", + "ParentName": "App.Definitions.Uom", + "DisplayName": "App.Platform.Update", + "Order": 2, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Adm" + }, + { + "GroupName": "App.Administration", + "Name": "App.Definitions.Uom.Delete", + "ParentName": "App.Definitions.Uom", + "DisplayName": "App.Platform.Delete", + "Order": 3, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Adm" + }, + { + "GroupName": "App.Administration", + "Name": "App.Definitions.Uom.Export", + "ParentName": "App.Definitions.Uom", + "DisplayName": "Export", + "Order": 4, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Adm" + }, + { + "GroupName": "App.Administration", + "Name": "App.Definitions.Uom.Import", + "ParentName": "App.Definitions.Uom", + "DisplayName": "Import", + "Order": 5, + "IsEnabled": true, + "MultiTenancySide": 3, + "Modules": "Sas|Adm" + }, { "GroupName": "App.Administration", "Name": "App.Licence", diff --git a/configs/seeds/host/data/App.Menus.Menu.json b/configs/seeds/host/data/App.Menus.Menu.json index 7699ea42..5b4af3cb 100644 --- a/configs/seeds/host/data/App.Menus.Menu.json +++ b/configs/seeds/host/data/App.Menus.Menu.json @@ -192,17 +192,6 @@ "IsDisabled": false, "ModuleId": "Sas" }, - { - "ParentCode": "App.Saas.Definitions", - "Code": "App.Definitions.UomCategory", - "DisplayName": "App.Definitions.UomCategory", - "Order": 9, - "Url": "/admin/list/App.Definitions.UomCategory", - "Icon": "FcWorkflow", - "RequiredPermissionName": "App.Definitions.UomCategory", - "IsDisabled": false, - "ModuleId": "Sas" - }, { "ParentCode": "App.Saas", "Code": "App.Public", @@ -665,6 +654,17 @@ "IsDisabled": false, "ModuleId": "Adm" }, + { + "ParentCode": "App.Administration.Definitions", + "Code": "App.Definitions.UomCategory", + "DisplayName": "App.Definitions.UomCategory", + "Order": 3, + "Url": "/admin/list/App.Definitions.UomCategory", + "Icon": "FcWorkflow", + "RequiredPermissionName": "App.Definitions.UomCategory", + "IsDisabled": false, + "ModuleId": "Adm" + }, { "ParentCode": "App.Administration", "Code": "App.Licence",