From 7493f5cedf2e558fa3d7f4b351b748ba589485fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sedat=20=C3=96ZT=C3=9CRK?= <76204082+iamsedatozturk@users.noreply.github.com> Date: Wed, 12 Nov 2025 12:44:47 +0300 Subject: [PATCH] SupplyChain Material --- .../LookUpQueryValues.cs | 172 +++++ .../Seeds/ListFormSeeder_Accounting.cs | 16 +- .../Seeds/ListFormSeeder_Administration.cs | 74 +-- .../Seeds/ListFormSeeder_Coordinator.cs | 27 +- .../Seeds/ListFormSeeder_Hr.cs | 232 +------ .../Seeds/ListFormSeeder_Intranet.cs | 61 +- .../Seeds/ListFormSeeder_Saas.cs | 127 +--- .../Seeds/ListFormSeeder_SupplyChain.cs | 323 +++++++++- .../Seeds/MenusData.json | 30 +- .../Enums/LookUpQueryValues.cs | 334 ---------- .../PlatformConsts.cs | 1 + .../Erp.Platform.Domain/Data/SeedConsts.cs | 1 + .../Tenants/Seeds/TenantData.json | 4 +- .../.yarn/install-state.gz | Bin 30635 -> 32685 bytes api/src/Erp.Platform.HttpApi.Host/yarn.lock | 600 ++++++++++-------- 15 files changed, 921 insertions(+), 1081 deletions(-) create mode 100644 api/src/Erp.Platform.Application.Contracts/LookUpQueryValues.cs delete mode 100644 api/src/Erp.Platform.Domain.Shared/Enums/LookUpQueryValues.cs diff --git a/api/src/Erp.Platform.Application.Contracts/LookUpQueryValues.cs b/api/src/Erp.Platform.Application.Contracts/LookUpQueryValues.cs new file mode 100644 index 00000000..cee508f0 --- /dev/null +++ b/api/src/Erp.Platform.Application.Contracts/LookUpQueryValues.cs @@ -0,0 +1,172 @@ +using System.Text.Json; +using Erp.Platform.Enums; +using Erp.Platform.ListForms; +using static Erp.Platform.PlatformConsts; + +namespace Erp.Platform; + +public static class LookupQueryValues +{ + private const string defaultDomain = "Erp"; + + public static string TenantValues = + $"SELECT * FROM (" + + $"SELECT NULL AS \"Key\", 'Host' AS \"Name\" " + + $"UNION ALL " + + $"SELECT " + + $"\"AbpTenants\".\"Id\" AS \"Key\", " + + $"\"AbpTenants\".\"Name\" AS \"Name\" " + + $"FROM \"AbpTenants\"" + + $") AS \"List\" " + + $"ORDER BY \"Name\""; + + public static string LanguageKeyValues = + $"SELECT " + + $"\"{FullNameTable(TableNameEnum.LanguageKey)}\".\"Key\", " + + $"CONCAT(" + + $"\"{FullNameTable(TableNameEnum.LanguageKey)}\".\"Key\", " + + $"' (', " + + $"\"{FullNameTable(TableNameEnum.LanguageText)}\".\"Value\", " + + $"')'" + + $") AS \"Name\" " + + $"FROM \"{FullNameTable(TableNameEnum.LanguageKey)}\" " + + $"LEFT OUTER JOIN \"{FullNameTable(TableNameEnum.LanguageText)}\" " + + $"ON \"{FullNameTable(TableNameEnum.LanguageKey)}\".\"Key\" = \"{FullNameTable(TableNameEnum.LanguageText)}\".\"Key\" " + + $"AND \"{FullNameTable(TableNameEnum.LanguageKey)}\".\"ResourceName\" = \"{FullNameTable(TableNameEnum.LanguageText)}\".\"ResourceName\" " + + $"WHERE " + + $"\"{FullNameTable(TableNameEnum.LanguageKey)}\".\"IsDeleted\" = 'false' " + + $"AND \"{FullNameTable(TableNameEnum.LanguageText)}\".\"IsDeleted\" = 'false' " + + $"AND \"{FullNameTable(TableNameEnum.LanguageText)}\".\"CultureName\" = 'tr' " + + $"ORDER BY \"{FullNameTable(TableNameEnum.LanguageKey)}\".\"Key\";"; + + public static string CountryValues = + $"SELECT " + + $"\"Code\" AS \"Key\", " + + $"\"Name\" AS \"Name\" " + + $"FROM \"{FullNameTable(TableNameEnum.Country)}\" " + + $"WHERE \"IsDeleted\" = 'false' " + + $"ORDER BY \"Name\";"; + + public static string DefaultLookupQueryJson( + string TableName, + string ValueExpr, + string DisplayExpr, + bool isTable = true, + bool isDeleted = false) => JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.Query, + ValueExpr = "Key", + DisplayExpr = "Name", + LookupQuery = $"SELECT " + + $"\"{ValueExpr}\" AS \"Key\", " + + $"\"{DisplayExpr}\" AS \"Name\" " + + $"FROM \"{(isTable ? TableNameResolver.GetFullTableName($"{TableName}") : TableNameResolver.GetFullViewName($"{TableName}"))}\" " + + (!isDeleted ? "" : $"WHERE \"IsDeleted\" = 'false'") + + $"ORDER BY \"{DisplayExpr}\";" + }); + + public static string CityValues = + $"SELECT " + + $"\"Code\" AS \"Key\", " + + $"\"Name\" AS \"Name\" " + + $"FROM \"{FullNameTable(TableNameEnum.City)}\" " + + $"WHERE " + + $"(\"Country\" = @param0 OR @param0 IS NULL) " + + $"AND \"IsDeleted\" = 'false' " + + $"ORDER BY \"Name\";"; + + public static string DistrictValues = + $"SELECT " + + $"\"Name\" AS \"Key\", " + + $"\"Name\" AS \"Name\" " + + $"FROM \"{FullNameTable(TableNameEnum.District)}\" " + + $"WHERE " + + $"(\"Country\" = @param0 OR @param0 IS NULL) " + + $"AND (\"City\" = @param1 OR @param1 IS NULL) " + + $"AND \"IsDeleted\" = 'false' " + + $"GROUP BY \"Name\" " + + $"ORDER BY \"Name\";"; + + public static string StreetValues = + $"SELECT " + + $"\"Street\" AS \"Key\", " + + $"\"Street\" AS \"Name\" " + + $"FROM \"{FullNameTable(TableNameEnum.District)}\" " + + $"WHERE " + + $"(\"Country\" = @param0 OR @param0 IS NULL) " + + $"AND (\"City\" = @param1 OR @param1 IS NULL) " + + $"AND (\"Name\" = @param2 OR @param2 IS NULL) " + + $"AND \"IsDeleted\" = 'false' " + + $"GROUP BY \"Street\" " + + $"ORDER BY \"Street\";"; + + public static string RoleValues = + $"SELECT " + + $"\"Id\" AS \"Key\", " + + $"\"Name\" AS \"Name\" " + + $"FROM \"AbpRoles\"" + + $"ORDER BY \"Name\""; + + public static string UserValues = + $"SELECT " + + $"\"Id\" AS \"Key\", " + + $"\"UserName\" AS \"Name\" " + + $"FROM \"AbpUsers\"" + + $"ORDER BY \"Name\""; + + public static string BranchValues = + $"SELECT \"Id\" AS \"Key\", " + + $"\"Name\" AS \"Name\" " + + $"FROM \"{defaultDomain}\".\"dbo\".\"{FullNameTable(TableNameEnum.Branch)}\" " + + $"WHERE " + + $"\"TenantId\" = '@TENANTID' " + // 🔹 Bu form doÄŸru — Replace hedefi bu. + $"AND \"IsDeleted\" = 'false' " + + $"AND \"Id\" IN ( " + + $"SELECT \"BranchId\" " + + $"FROM \"{FullNameTable(TableNameEnum.BranchUsers)}\" " + + $"WHERE \"UserId\" = '@USERID' " + // 🔹 Bu da doÄŸru. + $") " + + $"ORDER BY \"Name\";"; + + public static string RegistrationTypeValues = + $"SELECT " + + $"\"Id\" AS \"Key\", " + + $"\"Name\" AS \"Name\" " + + $"FROM \"{FullNameTable(TableNameEnum.RegistrationType)}\" " + + $"WHERE " + + $"(\"BranchId\" = @param0 OR @param0 IS NULL) " + + $"AND \"IsDeleted\" = 'false' " + + $"ORDER BY \"Name\";"; + + public static string ClassTypeValues = + $"SELECT " + + $"\"Id\" AS \"Key\", " + + $"\"Name\" AS \"Name\" " + + $"FROM \"{FullNameTable(TableNameEnum.ClassType)}\" " + + $"WHERE " + + $"(\"BranchId\" = @param0 OR @param0 IS NULL) " + + $"AND \"IsDeleted\" = 'false' " + + $"ORDER BY \"Name\";"; + + public static string PermissionNameValues = + $"SELECT \"Name\" AS \"Key\", " + + $"CONCAT(\"Name\", ' (', \"DisplayName\", ')') AS \"Name\" " + + $"FROM \"AbpPermissions\" " + + $"WHERE \"IsEnabled\" = 'true' " + + $"ORDER BY \"Name\";"; + + public static string PermissionGroupValues = + $"SELECT \"Name\" AS \"Key\", " + + $"\"DisplayName\" AS \"Name\" " + + $"FROM \"AbpPermissionGroups\" " + + $"ORDER BY \"Name\";"; + + public static string MenuCodeValues = + $"SELECT " + + $"\"Code\" AS \"Key\", " + + $"\"DisplayName\" AS \"Name\" " + + $"FROM \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.Menu))}\" " + + $"WHERE \"IsDeleted\" = 'false' " + + "AND \"IsDisabled\" = 'false' " + + $"ORDER BY \"ParentCode\", \"Order\";"; +} diff --git a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Accounting.cs b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Accounting.cs index d622a646..d05d2984 100644 --- a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Accounting.cs +++ b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Accounting.cs @@ -729,13 +729,7 @@ public class ListFormSeeder_Accounting : IDataSeedContributor, ITransientDepende IsActive = true, IsDeleted = false, AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.BankValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Bank), "Id", "Name"), ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Accounting.BankAccount), PivotSettingsJson = DefaultPivotSettingsJson @@ -786,13 +780,7 @@ public class ListFormSeeder_Accounting : IDataSeedContributor, ITransientDepende IsActive = true, IsDeleted = false, AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.CurrencyValues, - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Currency), "Id", "Name"), ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Accounting.BankAccount), PivotSettingsJson = DefaultPivotSettingsJson diff --git a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Administration.cs b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Administration.cs index fe8060cd..856c5c81 100644 --- a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Administration.cs +++ b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Administration.cs @@ -392,7 +392,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep EditingOptionJson = DefaultEditingOptionJson(AbpIdentity.Permissions.Default, 600, 350, true, true, true, true, false), EditingFormJson = JsonSerializer.Serialize(new List() { - new() { + new() { Order=1, ColCount=1, ColSpan=1, ItemType="group", Items = [ new EditingFormItemDto { Order=1, DataField="GroupName", ColSpan=1, IsRequired=true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, @@ -1154,7 +1154,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep PagerOptionJson = DefaultPagerOptionJson, EditingOptionJson = DefaultEditingOptionJson(AppCodes.IdentityManagement.IpRestrictions, 500, 300, true, true, true, true, false), EditingFormJson = JsonSerializer.Serialize(new List() { - new() { + new() { Order=1, ColCount=1, ColSpan=1, ItemType="group", Items= [ new EditingFormItemDto { Order = 1, DataField = "ResourceType", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, @@ -1603,12 +1603,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep AllowSearch = true, ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.DeveloperKits.CustomEndpoints), - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.DataSourceValues, - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.DataSource), "Code", "Code"), PivotSettingsJson = DefaultPivotSettingsJson }, new() { @@ -1812,7 +1807,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep EditingOptionJson = DefaultEditingOptionJson(AppCodes.About, 800, 720, true, true, true, true, false), EditingFormJson = JsonSerializer.Serialize(new List { - new() { + new() { Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group", Items = [ new EditingFormItemDto { Order = 1, DataField = "StatsJson", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxTextArea, EditorOptions="{\"height\":200}" }, @@ -2923,13 +2918,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep IsActive = true, IsDeleted = false, AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.PaymentMethodValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.PaymentMethod), "Id", "Name"), ValidationRuleJson = DefaultValidationRuleRequiredJson, ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Orders.PurchaseOrders), @@ -2946,13 +2935,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep IsActive = true, IsDeleted = false, AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.InstallmentValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.InstallmentOption), "Installment", "Name"), ValidationRuleJson = DefaultValidationRuleRequiredJson, ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Orders.PurchaseOrders), @@ -3349,13 +3332,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep IsDeleted = false, AllowSearch = true, ValidationRuleJson = DefaultValidationRuleRequiredJson, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.BlogCategoryValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.BlogCategory), "Id", "Name"), ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.BlogManagement.BlogPosts), }, @@ -3372,13 +3349,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep IsDeleted = false, AllowSearch = true, ValidationRuleJson = DefaultValidationRuleRequiredJson, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.EmployeeValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Employee), "Id", "FullName"), ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.BlogManagement.BlogPosts), }, @@ -4466,12 +4437,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep IsActive = true, IsDeleted = false, AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.SkillTypeValues, - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.SkillType), "Id", "Name"), ValidationRuleJson = DefaultValidationRuleRequiredJson, ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.SkillLevel), @@ -4574,12 +4540,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep IsActive = true, IsDeleted = false, AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.SkillTypeValues, - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.SkillType), "Id", "Name"), ValidationRuleJson = DefaultValidationRuleRequiredJson, ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.SkillLevel), @@ -4719,7 +4680,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep PagerOptionJson = DefaultPagerOptionJson, EditingOptionJson = DefaultEditingOptionJson(AppCodes.Definitions.Uom, 600, 300, true, true, true, false, false), EditingFormJson = JsonSerializer.Serialize(new List() { - new() { + 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 = "Type", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, @@ -4848,12 +4809,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep IsActive = true, IsDeleted = false, AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.UomCategoryValues, - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.UomCategory), "Id", "Name"), ValidationRuleJson = DefaultValidationRuleRequiredJson, ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.Uom), @@ -4898,9 +4854,9 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.Behavior)), DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson, PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson( AppCodes.Definitions.Behavior, 500, 250, true, true, true, true, false), + EditingOptionJson = DefaultEditingOptionJson(AppCodes.Definitions.Behavior, 500, 250, true, true, true, true, false), EditingFormJson = JsonSerializer.Serialize(new List() { - new() { + new() { Order=1, ColCount=1, ColSpan=1, ItemType="group", Items=[ new EditingFormItemDto { Order = 1, DataField = "Name", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxTextBox }, ]} @@ -4985,7 +4941,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep PagerOptionJson = DefaultPagerOptionJson, EditingOptionJson = DefaultEditingOptionJson(AppCodes.Definitions.Disease, 500, 250, true, true, true, false, false), EditingFormJson = JsonSerializer.Serialize(new List() { - new() { + new() { Order=1, ColCount=1, ColSpan=1, ItemType="group", Items = [ new EditingFormItemDto { Order = 1, DataField = "Name", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxTextBox }, diff --git a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Coordinator.cs b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Coordinator.cs index 30cb22a4..00448e1a 100644 --- a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Coordinator.cs +++ b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Coordinator.cs @@ -166,12 +166,7 @@ public class ListFormSeeder_Coordinator : IDataSeedContributor, ITransientDepend IsActive = true, IsDeleted = false, AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.QuestionTagValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.QuestionTag), "Id", "Name"), ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.QuestionPool), PivotSettingsJson = DefaultPivotSettingsJson, @@ -2053,8 +2048,8 @@ public class ListFormSeeder_Coordinator : IDataSeedContributor, ITransientDepend } ); - #region Tag Fields - await _listFormFieldRepository.InsertManyAsync(new ListFormField[] { + #region QuestionTag Fields + await _listFormFieldRepository.InsertManyAsync([ new() { ListFormCode = listFormTag.ListFormCode, CultureName = LanguageCodes.En, @@ -2119,7 +2114,7 @@ public class ListFormSeeder_Coordinator : IDataSeedContributor, ITransientDepend PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.QuestionTag), PivotSettingsJson = DefaultPivotSettingsJson } - }); + ]); #endregion } #endregion @@ -2243,12 +2238,7 @@ public class ListFormSeeder_Coordinator : IDataSeedContributor, ITransientDepend IsActive = true, IsDeleted = false, AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.QuestionTagValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.QuestionTag), "Id", "Name"), ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.QuestionPool), PivotSettingsJson = DefaultPivotSettingsJson @@ -2357,12 +2347,7 @@ public class ListFormSeeder_Coordinator : IDataSeedContributor, ITransientDepend IsDeleted = false, SortIndex = 0, ValidationRuleJson = DefaultValidationRuleRequiredJson, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.QuestionPoolValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.QuestionPool), "Id", "Name"), ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.Question), PivotSettingsJson = DefaultPivotSettingsJson diff --git a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Hr.cs b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Hr.cs index 5830997c..f72a7e20 100644 --- a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Hr.cs +++ b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Hr.cs @@ -477,13 +477,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency IsDeleted = false, AllowSearch = true, ColumnCustomizationJson = DefaultColumnCustomizationJson, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.DepartmentValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Department), "Id", "Name"), PermissionJson = DefaultFieldPermissionJson(AppCodes.Hr.JobPosition), PivotSettingsJson = DefaultPivotSettingsJson }, @@ -564,13 +558,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency IsActive = true, IsDeleted = false, AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.CurrencyValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Currency), "Id", "Name"), ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Hr.JobPosition), PivotSettingsJson = DefaultPivotSettingsJson @@ -782,13 +770,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency IsDeleted = false, AllowSearch = true, ColumnCustomizationJson = DefaultColumnCustomizationJson, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.DepartmentValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Department), "Id", "Name"), PermissionJson = DefaultFieldPermissionJson(AppCodes.Hr.Department), PivotSettingsJson = DefaultPivotSettingsJson }, @@ -805,13 +787,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency AllowSearch = true, ValidationRuleJson = DefaultValidationRuleRequiredJson, ColumnCustomizationJson = DefaultColumnCustomizationJson, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.EmployeeValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Employee), "Id", "FullName"), PermissionJson = DefaultFieldPermissionJson(AppCodes.Hr.Department), PivotSettingsJson = DefaultPivotSettingsJson }, @@ -828,13 +804,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency AllowSearch = true, ValidationRuleJson = DefaultValidationRuleRequiredJson, ColumnCustomizationJson = DefaultColumnCustomizationJson, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.CostCenterValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.CostCenter), "Id", "Name"), PermissionJson = DefaultFieldPermissionJson(AppCodes.Hr.Department), PivotSettingsJson = DefaultPivotSettingsJson }, @@ -1317,13 +1287,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency IsDeleted = false, AllowSearch = true, ColumnCustomizationJson = DefaultColumnCustomizationJson, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.CostCenterValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.CostCenter), "Id", "Name"), PermissionJson = DefaultFieldPermissionJson(AppCodes.Hr.CostCenter), PivotSettingsJson = DefaultPivotSettingsJson }, @@ -1340,13 +1304,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency AllowSearch = true, ValidationRuleJson = DefaultValidationRuleRequiredJson, ColumnCustomizationJson = DefaultColumnCustomizationJson, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.EmployeeValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Employee), "Id", "FullName"), PermissionJson = DefaultFieldPermissionJson(AppCodes.Hr.CostCenter), PivotSettingsJson = DefaultPivotSettingsJson }, @@ -1363,13 +1321,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency AllowSearch = true, ValidationRuleJson = DefaultValidationRuleRequiredJson, ColumnCustomizationJson = DefaultColumnCustomizationJson, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.DepartmentValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Department), "Id", "Name"), PermissionJson = DefaultFieldPermissionJson(AppCodes.Hr.CostCenter), PivotSettingsJson = DefaultPivotSettingsJson }, @@ -1449,13 +1401,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency IsActive = true, IsDeleted = false, AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.CurrencyValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Currency), "Id", "Name"), ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Hr.CostCenter), PivotSettingsJson = DefaultPivotSettingsJson @@ -2048,13 +1994,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency IsActive = true, IsDeleted = false, AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.EmploymentTypeValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.EmploymentType), "Id", "Name"), ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Hr.Employee), PivotSettingsJson = DefaultPivotSettingsJson @@ -2070,13 +2010,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency IsActive = true, IsDeleted = false, AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.JobPositionValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.JobPosition), "Id", "Name"), ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Hr.Employee), PivotSettingsJson = DefaultPivotSettingsJson @@ -2092,13 +2026,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency IsActive = true, IsDeleted = false, AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.DepartmentValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Department), "Id", "Name"), ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Hr.Employee), PivotSettingsJson = DefaultPivotSettingsJson @@ -2129,13 +2057,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency IsActive = true, IsDeleted = false, AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.EmployeeValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Employee), "Id", "FullName"), ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Hr.Employee), PivotSettingsJson = DefaultPivotSettingsJson @@ -2168,13 +2090,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency IsActive = true, IsDeleted = false, AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.CurrencyValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Currency), "Id", "Name"), ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Hr.Employee), PivotSettingsJson = DefaultPivotSettingsJson @@ -2216,13 +2132,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency IsActive = true, IsDeleted = false, AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.BankAccountValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.BankAccount), "Id", "AccountNumber"), ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Hr.Employee), PivotSettingsJson = DefaultPivotSettingsJson @@ -2238,13 +2148,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency IsActive = true, IsDeleted = false, AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.BadgeValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Badge), "Id", "Name"), ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Hr.Employee), PivotSettingsJson = DefaultPivotSettingsJson @@ -2371,13 +2275,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency SortIndex = 0, ValidationRuleJson = DefaultValidationRuleRequiredJson, ColumnCustomizationJson = DefaultColumnCustomizationJson, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.EmployeeValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Employee), "Id", "FullName"), PermissionJson = DefaultFieldPermissionJson(AppCodes.Hr.Leave), PivotSettingsJson = DefaultPivotSettingsJson }, @@ -2546,13 +2444,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency IsActive = true, IsDeleted = false, AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.EmployeeValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Employee), "Id", "FullName"), ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Hr.Leave), PivotSettingsJson = DefaultPivotSettingsJson @@ -2708,13 +2600,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency SortIndex = 0, ValidationRuleJson = DefaultValidationRuleRequiredJson, ColumnCustomizationJson = DefaultColumnCustomizationJson, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.EmployeeValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Employee), "Id", "FullName"), PermissionJson = DefaultFieldPermissionJson(AppCodes.Hr.Overtime), PivotSettingsJson = DefaultPivotSettingsJson }, @@ -2882,13 +2768,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency IsActive = true, IsDeleted = false, AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.EmployeeValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Employee), "Id", "FullName"), ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Hr.Overtime), PivotSettingsJson = DefaultPivotSettingsJson @@ -3032,13 +2912,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency IsDeleted = false, AllowSearch = true, ValidationRuleJson = DefaultValidationRuleRequiredJson, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.EmployeeValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Employee), "Id", "FullName"), ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Hr.Expense), PivotSettingsJson = DefaultPivotSettingsJson @@ -3099,13 +2973,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency IsActive = true, IsDeleted = false, AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.CurrencyValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Currency), "Id", "Name"), ValidationRuleJson = DefaultValidationRuleRequiredJson, ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Hr.Expense), @@ -3354,13 +3222,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency SortIndex = 0, ValidationRuleJson = DefaultValidationRuleRequiredJson, ColumnCustomizationJson = DefaultColumnCustomizationJson, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.EmployeeValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Employee), "Id", "FullName"), PermissionJson = DefaultFieldPermissionJson(AppCodes.Hr.Payroll), PivotSettingsJson = DefaultPivotSettingsJson }, @@ -3865,13 +3727,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency IsDeleted = false, SortIndex = 0, ValidationRuleJson = DefaultValidationRuleRequiredJson, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.Template360Values - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Template360), "Id", "Name"), ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Hr.Performance360), PivotSettingsJson = DefaultPivotSettingsJson @@ -3947,13 +3803,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency IsDeleted = false, SortIndex = 0, ValidationRuleJson = DefaultValidationRuleRequiredJson, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.DepartmentValues, - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Department), "Id", "Name"), ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Hr.Performance360), PivotSettingsJson = DefaultPivotSettingsJson @@ -3970,13 +3820,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency IsDeleted = false, SortIndex = 0, ValidationRuleJson = DefaultValidationRuleRequiredJson, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.EmployeeValues, - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Employee), "Id", "FullName"), ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Hr.Performance360), PivotSettingsJson = DefaultPivotSettingsJson @@ -4586,13 +4430,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency IsActive = true, IsDeleted = false, AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.SurveyValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Survey), "Id", "Title"), ValidationRuleJson = DefaultValidationRuleRequiredJson, ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Hr.SurveyQuestion), @@ -4765,13 +4603,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency IsActive = true, IsDeleted = false, AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.SurveyValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Survey), "Id", "Title"), ValidationRuleJson = DefaultValidationRuleRequiredJson, ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Hr.SurveyQuestion), @@ -4788,13 +4620,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency IsActive = true, IsDeleted = false, AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.EmployeeValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Employee), "Id", "FullName"), ValidationRuleJson = DefaultValidationRuleRequiredJson, ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Hr.SurveyResponse), diff --git a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Intranet.cs b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Intranet.cs index 06fe3fde..25b3e924 100644 --- a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Intranet.cs +++ b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Intranet.cs @@ -303,12 +303,7 @@ public class ListFormSeeder_Intranet : IDataSeedContributor, ITransientDependenc IsActive = true, IsDeleted = false, ValidationRuleJson = DefaultValidationRuleRequiredJson, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.EventCategoryValues, - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.EventCategory), "Id", "Name"), ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Intranet.Event), PivotSettingsJson = DefaultPivotSettingsJson @@ -326,12 +321,7 @@ public class ListFormSeeder_Intranet : IDataSeedContributor, ITransientDependenc IsActive = true, IsDeleted = false, ValidationRuleJson = DefaultValidationRuleRequiredJson, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.EventTypeValues, - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.EventType), "Id", "Name"), ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Intranet.Event), PivotSettingsJson = DefaultPivotSettingsJson @@ -400,12 +390,7 @@ public class ListFormSeeder_Intranet : IDataSeedContributor, ITransientDependenc Visible = true, IsActive = true, IsDeleted = false, - LookupJson = JsonSerializer.Serialize(new LookupDto { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.EmployeeValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Employee), "Id", "FullName"), ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Intranet.Event), PivotSettingsJson = DefaultPivotSettingsJson @@ -792,13 +777,7 @@ public class ListFormSeeder_Intranet : IDataSeedContributor, ITransientDependenc IsActive = true, IsDeleted = false, AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.EmployeeValues, - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Employee), "Id", "FullName"), ValidationRuleJson = DefaultValidationRuleRequiredJson, ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Intranet.Reservation), @@ -1321,13 +1300,7 @@ public class ListFormSeeder_Intranet : IDataSeedContributor, ITransientDependenc IsActive = true, IsDeleted = false, AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.EmployeeValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Employee), "Id", "FullName"), ValidationRuleJson = DefaultValidationRuleRequiredJson, ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Intranet.Announcement), @@ -1390,13 +1363,7 @@ public class ListFormSeeder_Intranet : IDataSeedContributor, ITransientDependenc IsActive = true, IsDeleted = false, AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.DepartmentValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Department), "Id", "Name"), ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Intranet.Announcement), PivotSettingsJson = DefaultPivotSettingsJson @@ -1638,13 +1605,7 @@ public class ListFormSeeder_Intranet : IDataSeedContributor, ITransientDependenc IsActive = true, IsDeleted = false, AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.EmployeeValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Employee), "Id", "FullName"), ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Intranet.Visitor), PivotSettingsJson = DefaultPivotSettingsJson @@ -1774,13 +1735,7 @@ public class ListFormSeeder_Intranet : IDataSeedContributor, ITransientDependenc IsActive = true, IsDeleted = false, AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.EmployeeValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Employee), "Id", "FullName"), ValidationRuleJson = DefaultValidationRuleRequiredJson, ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Intranet.SocialPost), diff --git a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Saas.cs b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Saas.cs index a6a7c317..bb96ccdd 100644 --- a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Saas.cs +++ b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Saas.cs @@ -2322,13 +2322,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency IsActive = true, IsDeleted = false, AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto { - - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.CultureValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Language), "CultureName", "DisplayName"), ValidationRuleJson = DefaultValidationRuleRequiredJson, ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Languages.LanguageText), @@ -3061,8 +3055,8 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency Url="/admin/listform/edit/@ListFormCode" }, new() { - Hint = "Göster", - Text ="Göster", + Hint = "Göster", + Text ="Göster", UrlTarget="_blank", AuthName=AppCodes.Listforms.Listform, Url="/admin/list/@ListFormCode" @@ -3070,58 +3064,22 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency }), StateStoringJson = JsonSerializer.Serialize(new StateStoringDto { Enabled = true, StorageKey = "listFormGridStorage", Type = "custom" }), FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { - new FieldsDefaultValue() { - FieldName = "ListFormType", - FieldDbType = DbType.String, - Value = ListFormTypeEnum.List, - CustomValueType = FieldCustomValueTypeEnum.Value }, - new FieldsDefaultValue() { - FieldName = "InsertServiceAddress", - FieldDbType = DbType.String, - Value = "list-form-data/insert", - CustomValueType = FieldCustomValueTypeEnum.Value }, - new FieldsDefaultValue() { - FieldName = "DeleteServiceAddress", - FieldDbType = DbType.String, - Value = "list-form-data/delete", - CustomValueType = FieldCustomValueTypeEnum.Value }, - new FieldsDefaultValue() { - FieldName = "UpdateServiceAddress", - FieldDbType = DbType.String, - Value = "list-form-data/update", - CustomValueType = FieldCustomValueTypeEnum.Value }, - new FieldsDefaultValue() { - FieldName = "IsDisabled", - FieldDbType = DbType.Boolean, - Value = "false", - CustomValueType = FieldCustomValueTypeEnum.Value }, - new FieldsDefaultValue() { - FieldName = "IsTenant", - FieldDbType = DbType.Boolean, - Value = "false", - CustomValueType = FieldCustomValueTypeEnum.Value }, - new FieldsDefaultValue() { - FieldName = "IsOrganizationUnit", - FieldDbType = DbType.Boolean, - Value = "false", - CustomValueType = FieldCustomValueTypeEnum.Value }, - new FieldsDefaultValue() { - FieldName = "IsSubForm", - FieldDbType = DbType.Boolean, - Value = "false", - CustomValueType = FieldCustomValueTypeEnum.Value }, - new FieldsDefaultValue() { - FieldName = "SortMode", - FieldDbType = DbType.String, - Value = GridOptions.SortModeNone, - CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "ListFormType", FieldDbType = DbType.String, Value = ListFormTypeEnum.List, CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "InsertServiceAddress", FieldDbType = DbType.String, Value = "list-form-data/insert", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "DeleteServiceAddress", FieldDbType = DbType.String, Value = "list-form-data/delete", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "UpdateServiceAddress", FieldDbType = DbType.String, Value = "list-form-data/update", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "IsDisabled", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "IsTenant", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "IsOrganizationUnit", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "IsSubForm", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "SortMode", FieldDbType = DbType.String, Value = GridOptions.SortModeNone, CustomValueType = FieldCustomValueTypeEnum.Value }, }), } ); #region ListForms Fields - await _listFormFieldRepository.InsertManyAsync(new ListFormField[] - { + await _listFormFieldRepository.InsertManyAsync( + [ new ListFormField { ListFormCode = listForms.ListFormCode, @@ -3133,39 +3091,8 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency Visible = true, IsActive = true, IsDeleted = false, - ColumnHeaderJson = JsonSerializer.Serialize(new ColumnHeaderDto - { - AllowHeaderFiltering = true, - DataSource = new List - { - new ColumnsHeaderDataSourceDto { Text = LanguageNames.Ar, Value = new List { "CultureName", "=", LanguageCodes.Ar } }, - new ColumnsHeaderDataSourceDto { Text = LanguageNames.Cs, Value = new List { "CultureName", "=", LanguageCodes.Cs } }, - new ColumnsHeaderDataSourceDto { Text = LanguageNames.De, Value = new List { "CultureName", "=", LanguageCodes.De } }, - new ColumnsHeaderDataSourceDto { Text = LanguageNames.En, Value = new List { "CultureName", "=", LanguageCodes.En } }, - new ColumnsHeaderDataSourceDto { Text = LanguageNames.Es, Value = new List { "CultureName", "=", LanguageCodes.Es } }, - new ColumnsHeaderDataSourceDto { Text = LanguageNames.Fi, Value = new List { "CultureName", "=", LanguageCodes.Fi } }, - new ColumnsHeaderDataSourceDto { Text = LanguageNames.Fr, Value = new List { "CultureName", "=", LanguageCodes.Fr } }, - new ColumnsHeaderDataSourceDto { Text = LanguageNames.Hi, Value = new List { "CultureName", "=", LanguageCodes.Hi } }, - new ColumnsHeaderDataSourceDto { Text = LanguageNames.Hr, Value = new List { "CultureName", "=", LanguageCodes.Hr } }, - new ColumnsHeaderDataSourceDto { Text = LanguageNames.Hu, Value = new List { "CultureName", "=", LanguageCodes.Hu } }, - new ColumnsHeaderDataSourceDto { Text = LanguageNames.It, Value = new List { "CultureName", "=", LanguageCodes.It } }, - new ColumnsHeaderDataSourceDto { Text = LanguageNames.Pt, Value = new List { "CultureName", "=", LanguageCodes.Pt } }, - new ColumnsHeaderDataSourceDto { Text = LanguageNames.Ru, Value = new List { "CultureName", "=", LanguageCodes.Ru } }, - new ColumnsHeaderDataSourceDto { Text = LanguageNames.Sk, Value = new List { "CultureName", "=", LanguageCodes.Sk } }, - new ColumnsHeaderDataSourceDto { Text = LanguageNames.Sl, Value = new List { "CultureName", "=", LanguageCodes.Sl } }, - new ColumnsHeaderDataSourceDto { Text = LanguageNames.Tr, Value = new List { "CultureName", "=", LanguageCodes.Tr } }, - new ColumnsHeaderDataSourceDto { Text = LanguageNames.Zh, Value = new List { "CultureName", "=", LanguageCodes.Zh } }, - } - }), AllowSearch = true, - ColumnFilterJson = JsonSerializer.Serialize(new ColumnFilterDto { SelectedFilterOperation = "=", FilterValue = "en" }), - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.CultureValues - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Language), "CultureName", "DisplayName"), ValidationRuleJson = DefaultValidationRuleRequiredJson, ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Listforms.Listform), @@ -3236,9 +3163,9 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency DisplayExpr = "name", ValueExpr = "key", LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { - new() { Key=ListFormTypeEnum.Form, Name=ListFormTypeEnum.Form.ToString() }, - new() { Key=ListFormTypeEnum.List, Name=ListFormTypeEnum.List.ToString() }, - new() { Key=ListFormTypeEnum.Chart, Name=ListFormTypeEnum.Chart.ToString() }, + new() { Key = ListFormTypeEnum.Form, Name = ListFormTypeEnum.Form.ToString() }, + new() { Key = ListFormTypeEnum.List, Name = ListFormTypeEnum.List.ToString() }, + new() { Key = ListFormTypeEnum.Chart, Name = ListFormTypeEnum.Chart.ToString() }, }), }), ValidationRuleJson = DefaultValidationRuleRequiredJson, @@ -3516,7 +3443,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency PermissionJson = DefaultFieldPermissionJson(AppCodes.Listforms.Listform), PivotSettingsJson = DefaultPivotSettingsJson }, - }); + ]); #endregion } #endregion @@ -4725,13 +4652,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency IsActive = true, IsDeleted = false, AllowSearch = false, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "Name", - ValueExpr = "Key", - LookupQuery = LookupQueryValues.CountryGroupValues, - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.CountryGroup), "Name", "Name"), ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.Country), }, @@ -4747,13 +4668,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency IsActive = true, IsDeleted = false, AllowSearch = false, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.CurrencyValues, - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Currency), "Id", "Name"), ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.Definitions.Country), }, diff --git a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_SupplyChain.cs b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_SupplyChain.cs index 3d4ff4e9..b44b9b8a 100644 --- a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_SupplyChain.cs +++ b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_SupplyChain.cs @@ -80,7 +80,7 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson, EditingOptionJson = DefaultEditingOptionJson(AppCodes.SupplyChain.MaterialType, 500, 250, true, true, true, true, false), EditingFormJson = JsonSerializer.Serialize(new List() { - new() { + new() { Order=1, ColCount=1, ColSpan=1, 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 }, @@ -322,13 +322,7 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend IsActive = true, IsDeleted = false, AllowSearch = true, - LookupJson = JsonSerializer.Serialize(new LookupDto - { - DataSourceType = UiLookupDataSourceTypeEnum.Query, - DisplayExpr = "name", - ValueExpr = "key", - LookupQuery = LookupQueryValues.MaterialGroupValues, - }), + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.MaterialGroup), "Id", "HierarchyPath", false), ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.MaterialGroup), PivotSettingsJson = DefaultPivotSettingsJson @@ -362,6 +356,317 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend #endregion } #endregion + + #region Material + if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == ListFormCodes.Lists.Material)) + { + var listForm = await _listFormRepository.InsertAsync(new ListForm() + { + ListFormType = ListFormTypeEnum.List, + IsSubForm = false, + LayoutJson = DefaultLayoutJson, + CultureName = LanguageCodes.En, + ListFormCode = ListFormCodes.Lists.Material, + Name = AppCodes.SupplyChain.Material, + Title = AppCodes.SupplyChain.Material, + DataSourceCode = SeedConsts.DataSources.DefaultCode, + IsTenant = true, + IsBranch = false, + IsOrganizationUnit = false, + Description = AppCodes.SupplyChain.Material, + SelectCommandType = SelectCommandTypeEnum.Table, + SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Material)), + KeyFieldName = "Id", + KeyFieldDbSourceType = DbType.Guid, + DefaultFilter = DefaultFilterJson, + SortMode = GridOptions.SortModeSingle, + FilterRowJson = JsonSerializer.Serialize(new GridFilterRowDto { Visible = true }), + HeaderFilterJson = JsonSerializer.Serialize(new { Visible = true }), + SearchPanelJson = JsonSerializer.Serialize(new { Visible = true }), + GroupPanelJson = JsonSerializer.Serialize(new { Visible = true }), + SelectionJson = DefaultSelectionSingleJson, + ColumnOptionJson = DefaultColumnOptionJson, + PermissionJson = DefaultPermissionJson(AppCodes.SupplyChain.Material), + DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.Material)), + DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson, + PagerOptionJson = DefaultPagerOptionJson, + EditingOptionJson = DefaultEditingOptionJson(AppCodes.SupplyChain.Material, 800, 400, true, true, true, true, false), + EditingFormJson = JsonSerializer.Serialize(new List() + { + new() + { + Order = 1, ColCount = 2, ColSpan = 2, 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 = "Description", ColSpan = 2, EditorType2 = EditorTypes.dxTextArea }, + new EditingFormItemDto { Order = 4, DataField = "CostPrice", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox }, + new EditingFormItemDto { Order = 5, DataField = "SalesPrice", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox }, + + new EditingFormItemDto { Order = 6, DataField = "CurrencyId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox }, + new EditingFormItemDto { Order = 7, DataField = "MaterialTypeId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox }, + new EditingFormItemDto { Order = 8, DataField = "MaterialGroupId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox }, + new EditingFormItemDto { Order = 9, DataField = "TrackingType", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox }, + new EditingFormItemDto { Order = 10, DataField = "TotalStock", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox, EditorOptions = EditorOptionValues.Disabled }, + new EditingFormItemDto { Order = 11, DataField = "UomId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox }, + new EditingFormItemDto { Order = 12, DataField = "Barcode", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox }, + + new EditingFormItemDto { Order = 13, DataField = "IsActive", ColSpan = 1, EditorType2 = EditorTypes.dxCheckBox }, + ] + } + }), + InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson, + FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] + { + new() { FieldName = "CostPrice", FieldDbType = DbType.Decimal, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "SalesPrice", FieldDbType = DbType.Decimal, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value }, + new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value } + }), + }); + + 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, + SortIndex = 0, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Material), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Code", + Width = 150, + ListOrderNo = 2, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Material), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Name", + Width = 250, + ListOrderNo = 3, + Visible = true, + IsActive = true, + IsDeleted = false, + AllowSearch = true, + SortIndex = 1, + SortDirection = GridColumnOptions.SortOrderAsc, + ValidationRuleJson = DefaultValidationRuleRequiredJson, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Material), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Description", + Width = 300, + ListOrderNo = 3, + Visible = true, + IsActive = true, + IsDeleted = false, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Material), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Decimal, + Format = "fixedPoint", + Alignment = "right", + FieldName = "CostPrice", + Width = 100, + ListOrderNo = 4, + Visible = true, + IsActive = true, + IsDeleted = false, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Material), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Decimal, + FieldName = "SalesPrice", + Format = "fixedPoint", + Alignment = "right", + Width = 100, + ListOrderNo = 5, + Visible = true, + IsActive = true, + IsDeleted = false, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Material), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "CurrencyId", + Width = 120, + ListOrderNo = 5, + Visible = true, + IsActive = true, + IsDeleted = false, + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Currency), "Id", "Name"), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Material), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "MaterialTypeId", + Width = 120, + ListOrderNo = 7, + Visible = true, + IsActive = true, + IsDeleted = false, + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.MaterialType), "Id", "Name"), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Material), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "MaterialGroupId", + Width = 120, + ListOrderNo = 8, + Visible = true, + IsActive = true, + IsDeleted = false, + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.MaterialGroup), "Id", "HierarchyPath", false), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Material), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "TrackingType", + Width = 120, + ListOrderNo = 9, + Visible = true, + IsActive = true, + IsDeleted = false, + LookupJson = JsonSerializer.Serialize(new LookupDto + { + DataSourceType = UiLookupDataSourceTypeEnum.StaticData, + DisplayExpr = "name", + ValueExpr = "key", + LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { + new() { Key="Quantity", Name="Quantity" }, + new() { Key="Lot", Name="Lot" }, + new() { Key="Serial", Name="Serial" }, + }), + }), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Material), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Decimal, + FieldName = "TotalStock", + Format = "fixedPoint", + Alignment = "right", + Width = 120, + ListOrderNo = 10, + Visible = true, + IsActive = true, + IsDeleted = false, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Material), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Guid, + FieldName = "UomId", + Width = 120, + ListOrderNo = 11, + Visible = true, + IsActive = true, + IsDeleted = false, + LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Uom), "Id", "Name"), + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Material), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.String, + FieldName = "Barcode", + Width = 120, + ListOrderNo = 12, + Visible = true, + IsActive = true, + IsDeleted = false, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Material), + PivotSettingsJson = DefaultPivotSettingsJson + }, + new() + { + ListFormCode = listForm.ListFormCode, + CultureName = LanguageCodes.En, + SourceDbType = DbType.Boolean, + FieldName = "IsActive", + Width = 100, + ListOrderNo = 13, + Visible = true, + IsActive = true, + IsDeleted = false, + SortIndex = 4, + ColumnCustomizationJson = DefaultColumnCustomizationJson, + PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.Material), + PivotSettingsJson = DefaultPivotSettingsJson + }, + ]); + } + #endregion } } - diff --git a/api/src/Erp.Platform.DbMigrator/Seeds/MenusData.json b/api/src/Erp.Platform.DbMigrator/Seeds/MenusData.json index ef2fa17b..3bde625e 100644 --- a/api/src/Erp.Platform.DbMigrator/Seeds/MenusData.json +++ b/api/src/Erp.Platform.DbMigrator/Seeds/MenusData.json @@ -512,34 +512,6 @@ "App.Coordinator.Tests" ] }, - { - "key": "admin.supplychain.materials", - "path": "/admin/supplychain/materials", - "componentPath": "@/views/supplychain/components/MaterialList", - "routeType": "protected", - "authority": null - }, - { - "key": "admin.supplychain.materialsNew", - "path": "/admin/supplychain/materials/new", - "componentPath": "@/views/supplychain/components/MaterialForm", - "routeType": "protected", - "authority": null - }, - { - "key": "admin.supplychain.materialsEdit", - "path": "/admin/supplychain/materials/edit/:id", - "componentPath": "@/views/supplychain/components/MaterialForm", - "routeType": "protected", - "authority": null - }, - { - "key": "admin.supplychain.materialsDetail", - "path": "/admin/supplychain/materials/detail/:id", - "componentPath": "@/views/supplychain/components/MaterialCard", - "routeType": "protected", - "authority": null - }, { "key": "admin.supplychain.suppliers", "path": "/admin/supplychain/suppliers", @@ -2413,7 +2385,7 @@ "Code": "App.SupplyChain.Material", "DisplayName": "App.SupplyChain.Material", "Order": 3, - "Url": "/admin/supplychain/materials", + "Url": "/admin/list/list-material", "Icon": "FcTodoList", "RequiredPermissionName": "App.SupplyChain.Material", "IsDisabled": false diff --git a/api/src/Erp.Platform.Domain.Shared/Enums/LookUpQueryValues.cs b/api/src/Erp.Platform.Domain.Shared/Enums/LookUpQueryValues.cs deleted file mode 100644 index 35b5d8b6..00000000 --- a/api/src/Erp.Platform.Domain.Shared/Enums/LookUpQueryValues.cs +++ /dev/null @@ -1,334 +0,0 @@ -using Erp.Platform.Enums; -using static Erp.Platform.PlatformConsts; - -namespace Erp.Platform; - -public static class LookupQueryValues -{ - private const string defaultDomain = "Erp"; - - public static string LanguageKeyValues = - $"SELECT " + - $"\"{FullNameTable(TableNameEnum.LanguageKey)}\".\"Key\", " + - $"CONCAT(" + - $"\"{FullNameTable(TableNameEnum.LanguageKey)}\".\"Key\", " + - $"' (', " + - $"\"{FullNameTable(TableNameEnum.LanguageText)}\".\"Value\", " + - $"')'" + - $") AS \"Name\" " + - $"FROM \"{FullNameTable(TableNameEnum.LanguageKey)}\" " + - $"LEFT OUTER JOIN \"{FullNameTable(TableNameEnum.LanguageText)}\" " + - $"ON \"{FullNameTable(TableNameEnum.LanguageKey)}\".\"Key\" = \"{FullNameTable(TableNameEnum.LanguageText)}\".\"Key\" " + - $"AND \"{FullNameTable(TableNameEnum.LanguageKey)}\".\"ResourceName\" = \"{FullNameTable(TableNameEnum.LanguageText)}\".\"ResourceName\" " + - $"WHERE " + - $"\"{FullNameTable(TableNameEnum.LanguageKey)}\".\"IsDeleted\" = 'false' " + - $"AND \"{FullNameTable(TableNameEnum.LanguageText)}\".\"IsDeleted\" = 'false' " + - $"AND \"{FullNameTable(TableNameEnum.LanguageText)}\".\"CultureName\" = 'tr' " + - $"ORDER BY \"{FullNameTable(TableNameEnum.LanguageKey)}\".\"Key\";"; - - public static string CultureValues = - $"SELECT " + - $"\"CultureName\" AS \"Key\", " + - $"\"DisplayName\" AS \"Name\", " + - $"\"CreationTime\" " + - $"FROM \"{FullNameTable(TableNameEnum.Language)}\" " + - $"WHERE \"IsDeleted\" = 'false' " + - $"AND \"IsDeleted\" = 'false';"; - - public static string CountryGroupValues = - $"SELECT " + - $"\"Name\" AS \"Key\", " + - $"\"Name\" AS \"Name\" " + - $"FROM \"{FullNameTable(TableNameEnum.CountryGroup)}\" " + - $"WHERE \"IsDeleted\" = 'false' " + - $"GROUP BY \"Name\" " + - $"ORDER BY \"Name\";"; - - public static string DataSourceValues = - $"SELECT " + - $"\"Code\" AS \"Key\", " + - $"\"Code\" AS \"Name\" " + - $"FROM \"{FullNameTable(TableNameEnum.DataSource)}\" " + - $"WHERE \"IsDeleted\" = 'false' " + - $"ORDER BY \"Code\";"; - - public static string BlogCategoryValues = - $"SELECT " + - $"\"Id\" AS \"Key\", " + - $"\"Name\" AS \"Name\" " + - $"FROM \"{FullNameTable(TableNameEnum.BlogCategory)}\" " + - $"WHERE \"IsDeleted\" = 'false' " + - $"ORDER BY \"Name\";"; - - public static string CountryValues = - $"SELECT " + - $"\"Code\" AS \"Key\", " + - $"\"Name\" AS \"Name\" " + - $"FROM \"{FullNameTable(TableNameEnum.Country)}\" " + - $"WHERE \"IsDeleted\" = 'false' " + - $"ORDER BY \"Name\";"; - - public static string CityValues = - $"SELECT " + - $"\"Code\" AS \"Key\", " + - $"\"Name\" AS \"Name\" " + - $"FROM \"{FullNameTable(TableNameEnum.City)}\" " + - $"WHERE " + - $"(\"Country\" = @param0 OR @param0 IS NULL) " + - $"AND \"IsDeleted\" = 'false' " + - $"ORDER BY \"Name\";"; - - public static string DistrictValues = - $"SELECT " + - $"\"Name\" AS \"Key\", " + - $"\"Name\" AS \"Name\" " + - $"FROM \"{FullNameTable(TableNameEnum.District)}\" " + - $"WHERE " + - $"(\"Country\" = @param0 OR @param0 IS NULL) " + - $"AND (\"City\" = @param1 OR @param1 IS NULL) " + - $"AND \"IsDeleted\" = 'false' " + - $"GROUP BY \"Name\" " + - $"ORDER BY \"Name\";"; - - public static string StreetValues = - $"SELECT " + - $"\"Street\" AS \"Key\", " + - $"\"Street\" AS \"Name\" " + - $"FROM \"{FullNameTable(TableNameEnum.District)}\" " + - $"WHERE " + - $"(\"Country\" = @param0 OR @param0 IS NULL) " + - $"AND (\"City\" = @param1 OR @param1 IS NULL) " + - $"AND (\"Name\" = @param2 OR @param2 IS NULL) " + - $"AND \"IsDeleted\" = 'false' " + - $"GROUP BY \"Street\" " + - $"ORDER BY \"Street\";"; - - public static string TenantValues = - $"SELECT * FROM (" + - $"SELECT NULL AS \"Key\", 'Host' AS \"Name\" " + - $"UNION ALL " + - $"SELECT " + - $"\"AbpTenants\".\"Id\" AS \"Key\", " + - $"\"AbpTenants\".\"Name\" AS \"Name\" " + - $"FROM \"AbpTenants\"" + - $") AS \"List\" " + - $"ORDER BY \"Name\""; - - public static string RoleValues = - $"SELECT " + - $"\"Id\" AS \"Key\", " + - $"\"Name\" AS \"Name\" " + - $"FROM \"AbpRoles\"" + - $"ORDER BY \"Name\""; - - public static string UserValues = - $"SELECT " + - $"\"Id\" AS \"Key\", " + - $"\"UserName\" AS \"Name\" " + - $"FROM \"AbpUsers\"" + - $"ORDER BY \"Name\""; - - public static string BranchValues = - $"SELECT \"Id\" AS \"Key\", " + - $"\"Name\" AS \"Name\" " + - $"FROM \"{defaultDomain}\".\"dbo\".\"{FullNameTable(TableNameEnum.Branch)}\" " + - $"WHERE " + - $"\"TenantId\" = '@TENANTID' " + // 🔹 Bu form doÄŸru — Replace hedefi bu. - $"AND \"IsDeleted\" = 'false' " + - $"AND \"Id\" IN ( " + - $"SELECT \"BranchId\" " + - $"FROM \"{FullNameTable(TableNameEnum.BranchUsers)}\" " + - $"WHERE \"UserId\" = '@USERID' " + // 🔹 Bu da doÄŸru. - $") " + - $"ORDER BY \"Name\";"; - - public static string RegistrationTypeValues = - $"SELECT " + - $"\"Id\" AS \"Key\", " + - $"\"Name\" AS \"Name\" " + - $"FROM \"{FullNameTable(TableNameEnum.RegistrationType)}\" " + - $"WHERE " + - $"(\"BranchId\" = @param0 OR @param0 IS NULL) " + - $"AND \"IsDeleted\" = 'false' " + - $"ORDER BY \"Name\";"; - - public static string SkillTypeValues = - $"SELECT " + - $"\"Id\" AS \"Key\", " + - $"\"Name\" AS \"Name\" " + - $"FROM \"{FullNameTable(TableNameEnum.SkillType)}\" " + - $"WHERE \"IsDeleted\" = 'false' " + - $"ORDER BY \"Name\";"; - - public static string ClassTypeValues = - $"SELECT " + - $"\"Id\" AS \"Key\", " + - $"\"Name\" AS \"Name\" " + - $"FROM \"{FullNameTable(TableNameEnum.ClassType)}\" " + - $"WHERE " + - $"(\"BranchId\" = @param0 OR @param0 IS NULL) " + - $"AND \"IsDeleted\" = 'false' " + - $"ORDER BY \"Name\";"; - - public static string PaymentMethodValues = - $"SELECT " + - $"\"Id\" AS \"Key\", " + - $"\"Name\" AS \"Name\" " + - $"FROM \"{FullNameTable(TableNameEnum.PaymentMethod)}\" " + - $"WHERE \"IsDeleted\" = 'false' " + - $"ORDER BY \"Name\";"; - - public static string InstallmentValues = - $"SELECT " + - $"\"Installment\" AS \"Key\", " + - $"\"Name\" AS \"Name\" " + - $"FROM \"{FullNameTable(TableNameEnum.InstallmentOption)}\" " + - $"WHERE \"IsDeleted\" = 'false' " + - $"ORDER BY \"Installment\";"; - - public static string QuestionPoolValues = - $"SELECT " + - $"\"Id\" AS \"Key\", " + - $"\"Name\" AS \"Name\" " + - $"FROM \"{FullNameTable(TableNameEnum.QuestionPool)}\" " + - $"WHERE \"IsDeleted\" = 'false' "; - - public static string QuestionTagValues = - $"SELECT " + - $"\"Id\" AS \"Key\", " + - $"\"Name\" AS \"Name\" " + - $"FROM \"{FullNameTable(TableNameEnum.QuestionTag)}\" " + - $"WHERE \"IsDeleted\" = 'false' "; - - public static string EventCategoryValues = - $"SELECT " + - $"\"Id\" AS \"Key\", " + - $"\"Name\" AS \"Name\" " + - $"FROM \"{FullNameTable(TableNameEnum.EventCategory)}\" " + - $"WHERE \"IsDeleted\" = 'false' "; - - public static string EventTypeValues = - $"SELECT " + - $"\"Id\" AS \"Key\", " + - $"\"Name\" AS \"Name\" " + - $"FROM \"{FullNameTable(TableNameEnum.EventType)}\" " + - $"WHERE \"IsDeleted\" = 'false' "; - - public static string UomCategoryValues = - $"SELECT " + - $"\"Id\" AS \"Key\", " + - $"\"Name\" AS \"Name\" " + - $"FROM \"{FullNameTable(TableNameEnum.UomCategory)}\" " + - $"WHERE \"IsDeleted\" = 'false' "; - - public static string BankValues = - $"SELECT " + - $"\"Id\" AS \"Key\", " + - $"\"Name\" AS \"Name\" " + - $"FROM \"{FullNameTable(TableNameEnum.Bank)}\" " + - $"WHERE \"IsDeleted\" = 'false' "; - - public static string BankAccountValues = - $"SELECT " + - $"\"Id\" AS \"Key\", " + - $"\"AccountNumber\" AS \"Name\" " + - $"FROM \"{FullNameTable(TableNameEnum.BankAccount)}\" " + - $"WHERE \"IsDeleted\" = 'false' "; - - public static string CurrencyValues = - $"SELECT " + - $"\"Id\" AS \"Key\", " + - $"\"Name\" AS \"Name\" " + - $"FROM \"{FullNameTable(TableNameEnum.Currency)}\" " + - $"WHERE \"IsDeleted\" = 'false' "; - - public static string DepartmentValues = - $"SELECT " + - $"\"Id\" AS \"Key\", " + - $"\"Name\" AS \"Name\" " + - $"FROM \"{FullNameTable(TableNameEnum.Department)}\" " + - $"WHERE \"IsDeleted\" = 'false' " + - $"ORDER BY \"Name\";"; - - public static string CostCenterValues = - $"SELECT " + - $"\"Id\" AS \"Key\", " + - $"\"Name\" AS \"Name\" " + - $"FROM \"{FullNameTable(TableNameEnum.CostCenter)}\" " + - $"WHERE \"IsDeleted\" = 'false' " + - $"ORDER BY \"Name\";"; - - public static string EmployeeValues = - $"SELECT " + - $"\"Id\" AS \"Key\", " + - $"\"FullName\" AS \"Name\" " + - $"FROM \"{FullNameTable(TableNameEnum.Employee)}\" " + - $"WHERE \"IsDeleted\" = 'false' " + - $"ORDER BY \"FullName\";"; - - public static string EmploymentTypeValues = - $"SELECT " + - $"\"Id\" AS \"Key\", " + - $"\"Name\" AS \"Name\" " + - $"FROM \"{FullNameTable(TableNameEnum.EmploymentType)}\" " + - $"WHERE \"IsDeleted\" = 'false' " + - $"ORDER BY \"Name\";"; - - public static string JobPositionValues = - $"SELECT " + - $"\"Id\" AS \"Key\", " + - $"\"Name\" AS \"Name\" " + - $"FROM \"{FullNameTable(TableNameEnum.JobPosition)}\" " + - $"WHERE \"IsDeleted\" = 'false' " + - $"ORDER BY \"Name\";"; - - public static string BadgeValues = - $"SELECT " + - $"\"Id\" AS \"Key\", " + - $"\"Name\" AS \"Name\" " + - $"FROM \"{FullNameTable(TableNameEnum.Badge)}\" " + - $"WHERE \"IsDeleted\" = 'false' "; - - public static string Template360Values = - $"SELECT " + - $"\"Id\" AS \"Key\", " + - $"\"Name\" AS \"Name\" " + - $"FROM \"{FullNameTable(TableNameEnum.Template360)}\" " + - $"WHERE \"IsDeleted\" = 'false' "; - - public static string SurveyValues = - $"SELECT " + - $"\"Id\" AS \"Key\", " + - $"\"Title\" AS \"Name\" " + - $"FROM \"{FullNameTable(TableNameEnum.Survey)}\" " + - $"WHERE \"IsDeleted\" = 'false' "; - - public static string MaterialGroupValues = - $"SELECT " + - $"\"Id\" AS \"Key\", " + - $"\"HierarchyPath\" AS \"Name\" " + - $"FROM \"{FullNameView(TableNameEnum.MaterialGroup)}\" " + - $"WHERE \"IsDeleted\" = 'false' "; - - public static string PermissionNameValues = - $"SELECT \"Name\" AS \"Key\", " + - $"CONCAT(\"Name\", ' (', \"DisplayName\", ')') AS \"Name\" " + - $"FROM \"AbpPermissions\" " + - $"WHERE \"IsEnabled\" = 'true' " + - $"ORDER BY \"Name\";"; - - public static string PermissionGroupValues = - $"SELECT \"Name\" AS \"Key\", " + - $"\"DisplayName\" AS \"Name\" " + - $"FROM \"AbpPermissionGroups\" " + - $"ORDER BY \"Name\";"; - - public static string MenuCodeValues = - $"SELECT " + - $"\"Code\" AS \"Key\", " + - $"\"DisplayName\" AS \"Name\" " + - $"FROM \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.Menu))}\" " + - $"WHERE \"IsDeleted\" = 'false' " + - "AND \"IsDisabled\" = 'false' " + - $"ORDER BY \"ParentCode\", \"Order\";"; -} diff --git a/api/src/Erp.Platform.Domain.Shared/PlatformConsts.cs b/api/src/Erp.Platform.Domain.Shared/PlatformConsts.cs index a51be8af..816f67a2 100644 --- a/api/src/Erp.Platform.Domain.Shared/PlatformConsts.cs +++ b/api/src/Erp.Platform.Domain.Shared/PlatformConsts.cs @@ -517,6 +517,7 @@ public static class PlatformConsts //Supply Chain public const string MaterialType = "list-materialtype"; public const string MaterialGroup = "list-materialgroup"; + public const string Material = "list-material"; // public const string Supplier = "list-supplier"; // public const string PurchaseOrder = "list-purchaseorder"; // public const string Inventory = "list-inventory"; diff --git a/api/src/Erp.Platform.Domain/Data/SeedConsts.cs b/api/src/Erp.Platform.Domain/Data/SeedConsts.cs index 7862dc0c..47b4a3cb 100644 --- a/api/src/Erp.Platform.Domain/Data/SeedConsts.cs +++ b/api/src/Erp.Platform.Domain/Data/SeedConsts.cs @@ -492,6 +492,7 @@ public static class SeedConsts public const string Default = Prefix.App + ".SupplyChain"; public const string MaterialType = Default + ".MaterialType"; public const string MaterialGroup = Default + ".MaterialGroup"; + public const string Material = Default + ".Material"; } public static class Accounting diff --git a/api/src/Erp.Platform.EntityFrameworkCore/Tenants/Seeds/TenantData.json b/api/src/Erp.Platform.EntityFrameworkCore/Tenants/Seeds/TenantData.json index 0b271a47..f6384a8f 100644 --- a/api/src/Erp.Platform.EntityFrameworkCore/Tenants/Seeds/TenantData.json +++ b/api/src/Erp.Platform.EntityFrameworkCore/Tenants/Seeds/TenantData.json @@ -4265,7 +4265,7 @@ "description": "Çelik Levha 2mm", "materialTypeCode": "RAW", "materialGroupCode": "METAL", - "uomName": "kg", + "uomName": "Adet", "costPrice": 15.5, "salesPrice": 18.75, "currencyCode": "TRY", @@ -4280,7 +4280,7 @@ "description": "Alüminyum Profil 40x40", "materialTypeCode": "SEMI", "materialGroupCode": "METAL", - "uomName": "Adet", + "uomName": "kg", "costPrice": 45.0, "salesPrice": 55.0, "currencyCode": "TRY", diff --git a/api/src/Erp.Platform.HttpApi.Host/.yarn/install-state.gz b/api/src/Erp.Platform.HttpApi.Host/.yarn/install-state.gz index f4fc294f1c51244714f77c060599dd853622c9df..76b5037cbb4012221b736d3d13f07346711d88cd 100644 GIT binary patch literal 32685 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 literal 30635 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­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 We|~to=^MxYKl=e^&uG();sF3Erk-Q~ diff --git a/api/src/Erp.Platform.HttpApi.Host/yarn.lock b/api/src/Erp.Platform.HttpApi.Host/yarn.lock index 58b28832..846ae0ba 100644 --- a/api/src/Erp.Platform.HttpApi.Host/yarn.lock +++ b/api/src/Erp.Platform.HttpApi.Host/yarn.lock @@ -1,327 +1,425 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 +# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! +__metadata: + version: 8 + cacheKey: 10c0 -"@abp/aspnetcore.mvc.ui.theme.basic@~9.0.2": - version "9.0.8" - resolved "https://registry.npmjs.org/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-9.0.8.tgz" - integrity sha512-TmUk7lHo2/Wit+nFaFlyGUfp8QihAFLk7bVxw6EBJAMJbqA+SUhdFhIu6gxwzk1urCF3nyxgsq1ZczwFZf8vdA== +"@abp/aspnetcore.mvc.ui.theme.basic@npm:~9.0.2": + version: 9.0.8 + resolution: "@abp/aspnetcore.mvc.ui.theme.basic@npm:9.0.8" dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~9.0.8" + "@abp/aspnetcore.mvc.ui.theme.shared": "npm:~9.0.8" + checksum: 10c0/0ba699627be691b15533b3c290c55989c3991613eb560b50a14a33ea85c354f21338809b6ff306ce53038c9ec198c6e80075df2bdb692e08ff62b997279e84d1 + languageName: node + linkType: hard -"@abp/aspnetcore.mvc.ui.theme.shared@~9.0.8": - version "9.0.8" - resolved "https://registry.npmjs.org/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.0.8.tgz" - integrity sha512-/wL9YhPq6nvU7Y4vMiTmBCBFWLyAh0ptfiGJtAN5ERA7Uxf7B3P9kRIl+KapeWbse2T+Hmc49txk79lNWRELDQ== +"@abp/aspnetcore.mvc.ui.theme.shared@npm:~9.0.8": + version: 9.0.8 + resolution: "@abp/aspnetcore.mvc.ui.theme.shared@npm:9.0.8" dependencies: - "@abp/aspnetcore.mvc.ui" "~9.0.8" - "@abp/bootstrap" "~9.0.8" - "@abp/bootstrap-datepicker" "~9.0.8" - "@abp/bootstrap-daterangepicker" "~9.0.8" - "@abp/datatables.net-bs5" "~9.0.8" - "@abp/font-awesome" "~9.0.8" - "@abp/jquery-form" "~9.0.8" - "@abp/jquery-validation-unobtrusive" "~9.0.8" - "@abp/lodash" "~9.0.8" - "@abp/luxon" "~9.0.8" - "@abp/malihu-custom-scrollbar-plugin" "~9.0.8" - "@abp/moment" "~9.0.8" - "@abp/select2" "~9.0.8" - "@abp/sweetalert2" "~9.0.8" - "@abp/timeago" "~9.0.8" - "@abp/toastr" "~9.0.8" + "@abp/aspnetcore.mvc.ui": "npm:~9.0.8" + "@abp/bootstrap": "npm:~9.0.8" + "@abp/bootstrap-datepicker": "npm:~9.0.8" + "@abp/bootstrap-daterangepicker": "npm:~9.0.8" + "@abp/datatables.net-bs5": "npm:~9.0.8" + "@abp/font-awesome": "npm:~9.0.8" + "@abp/jquery-form": "npm:~9.0.8" + "@abp/jquery-validation-unobtrusive": "npm:~9.0.8" + "@abp/lodash": "npm:~9.0.8" + "@abp/luxon": "npm:~9.0.8" + "@abp/malihu-custom-scrollbar-plugin": "npm:~9.0.8" + "@abp/moment": "npm:~9.0.8" + "@abp/select2": "npm:~9.0.8" + "@abp/sweetalert2": "npm:~9.0.8" + "@abp/timeago": "npm:~9.0.8" + "@abp/toastr": "npm:~9.0.8" + checksum: 10c0/2aac9fc3a0ee9686249bdc6ec673747fe7989f4fd92b9d9c17238667fbb97df06534aec44e647b47ed00948415bb2c831abb801154dfefc5b63665c48a36dc4e + languageName: node + linkType: hard -"@abp/aspnetcore.mvc.ui@~9.0.8": - version "9.0.8" - resolved "https://registry.npmjs.org/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.0.8.tgz" - integrity sha512-wqdmGuA9rZS/c+8FEA1j2LYQWWf5kdOrsAo+XcApsX6MzLJ02xoeEjuHbunVVjM0mJrMJJKb/NgAMcwxJCdnEQ== +"@abp/aspnetcore.mvc.ui@npm:~9.0.8": + version: 9.0.8 + resolution: "@abp/aspnetcore.mvc.ui@npm:9.0.8" dependencies: - ansi-colors "^4.1.3" + ansi-colors: "npm:^4.1.3" + checksum: 10c0/e55ef7e5e60d880d745b296e009885476fae6aec9f5ac87632abd848098cc6eacbd731510109990cad86a104d64eb80fcf9add5d4d83bbd41ed9cf0bccea21ea + languageName: node + linkType: hard -"@abp/bootstrap-datepicker@~9.0.8": - version "9.0.8" - resolved "https://registry.npmjs.org/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.0.8.tgz" - integrity sha512-fns7Sn6WvITENhpDT51HYqvtoLl2XpkXBGfAOAFpbTsjiT5DQm7OTdYHNqHDVT2dhD0nRqi9jtJMY3YS0FTMzA== +"@abp/bootstrap-datepicker@npm:~9.0.8": + version: 9.0.8 + resolution: "@abp/bootstrap-datepicker@npm:9.0.8" dependencies: - bootstrap-datepicker "^1.10.0" + bootstrap-datepicker: "npm:^1.10.0" + checksum: 10c0/32eed7f488a72bb888fb0194ed885a6c65a495d36a607a28f6baccc7ea1defe399abed985ab706c0514f7e56b666e969033de2373a37ea42d56848558fb7fbb1 + languageName: node + linkType: hard -"@abp/bootstrap-daterangepicker@~9.0.8": - version "9.0.8" - resolved "https://registry.npmjs.org/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.0.8.tgz" - integrity sha512-fJz6/tlGnpTyz0g/RVlR4Xf8Tk5Xdwagq2yqCzCDlX1nZySSsDYY0Qrqr/rlRqUJjlkNLfhAQ4J7h6aP7R8Smg== +"@abp/bootstrap-daterangepicker@npm:~9.0.8": + version: 9.0.8 + resolution: "@abp/bootstrap-daterangepicker@npm:9.0.8" dependencies: - bootstrap-daterangepicker "^3.1.0" + bootstrap-daterangepicker: "npm:^3.1.0" + checksum: 10c0/de0ee267ddaafb7fc3dc0615cc07e09481690a22e1762b1513f8379762470d28f2a6637181ca4d4c6115015cd4ef22738e01cdf662c8d7a7575d7f51fd0a2ce0 + languageName: node + linkType: hard -"@abp/bootstrap@~9.0.8": - version "9.0.8" - resolved "https://registry.npmjs.org/@abp/bootstrap/-/bootstrap-9.0.8.tgz" - integrity sha512-IZC3VKsHEDksx21pHI6ROcbLeJ+2wX03N8i4DGTl0KRQxEX9y6xqiZikJB3d4WUEsZ4s56IKH1SWeNt57iY2nA== +"@abp/bootstrap@npm:~9.0.8": + version: 9.0.8 + resolution: "@abp/bootstrap@npm:9.0.8" dependencies: - "@abp/core" "~9.0.8" - bootstrap "^5.3.3" + "@abp/core": "npm:~9.0.8" + bootstrap: "npm:^5.3.3" + checksum: 10c0/28c6abb629e103c679edccc1272a99745c9418233044bb309dd9212d4881f70e16b1be4179935f0a9dea5f349d841ae28999e8bfdfb0b7adb38a103c3217e859 + languageName: node + linkType: hard -"@abp/core@~9.0.8": - version "9.0.8" - resolved "https://registry.npmjs.org/@abp/core/-/core-9.0.8.tgz" - integrity sha512-aogk6fNLAK4Lqc4K+QHdZuEA9HXuUx4RaSx4OJ1d1Zpt8ujxDQjpV+EKcgddXyp0NAS9qpuT5k39B7jRto3zWg== +"@abp/core@npm:~9.0.8": + version: 9.0.8 + resolution: "@abp/core@npm:9.0.8" dependencies: - "@abp/utils" "~9.0.8" + "@abp/utils": "npm:~9.0.8" + checksum: 10c0/5f4e32cb1624241d5bce4efbae09aa897c526e849d80ba8bb6970a17de204601a3deec3fb8558b66d88ec83ec366075bc2153cf53eabdfca5adb70214b867345 + languageName: node + linkType: hard -"@abp/datatables.net-bs5@~9.0.8": - version "9.0.8" - resolved "https://registry.npmjs.org/@abp/datatables.net-bs5/-/datatables.net-bs5-9.0.8.tgz" - integrity sha512-+RIsBV0pVn+bpnun1n2RXvC7Ns73CDR5rhY0TVFcsPt83fX7zXEyGVnyurn11g87xt+f//ZwbAqkhMUjYvSCGg== +"@abp/datatables.net-bs5@npm:~9.0.8": + version: 9.0.8 + resolution: "@abp/datatables.net-bs5@npm:9.0.8" dependencies: - "@abp/datatables.net" "~9.0.8" - datatables.net-bs5 "^2.1.8" + "@abp/datatables.net": "npm:~9.0.8" + datatables.net-bs5: "npm:^2.1.8" + checksum: 10c0/ca01f64eae0e3ce013a9b1e66f400c2bcc81eb28d2f4b6994afe3d18d9437384201b14f58304b1b19c62763ab6afc8551d239cabe6c7fe6727d6d736a6b7e813 + languageName: node + linkType: hard -"@abp/datatables.net@~9.0.8": - version "9.0.8" - resolved "https://registry.npmjs.org/@abp/datatables.net/-/datatables.net-9.0.8.tgz" - integrity sha512-L8JGYqJ+hxEdptQtwlpybAIkGxPikSXSYJa3KyqJizAkR42JB990EMyCrLoZtE6chfUHVq0B3VgZe4MZfNnIbw== +"@abp/datatables.net@npm:~9.0.8": + version: 9.0.8 + resolution: "@abp/datatables.net@npm:9.0.8" dependencies: - "@abp/jquery" "~9.0.8" - datatables.net "^2.1.8" + "@abp/jquery": "npm:~9.0.8" + datatables.net: "npm:^2.1.8" + checksum: 10c0/aed189b311c20f263b9922eccbaafa53cd4ed6c39ee546673f96ad71c05ef5d9f09d26662ee768603dba853dbef7ec633d458c84dcfbac47366aa583def480b2 + languageName: node + linkType: hard -"@abp/font-awesome@~9.0.8": - version "9.0.8" - resolved "https://registry.npmjs.org/@abp/font-awesome/-/font-awesome-9.0.8.tgz" - integrity sha512-+dcQSRjWx6k7qmTmRqlQv6MC7vjfivJtLUXictFkgQ18rRiYJzFlESQ9L5dnkcI3I2Xyr/54raD8Q4xZ4D9Rwg== +"@abp/font-awesome@npm:~9.0.8": + version: 9.0.8 + resolution: "@abp/font-awesome@npm:9.0.8" dependencies: - "@abp/core" "~9.0.8" - "@fortawesome/fontawesome-free" "^6.6.0" + "@abp/core": "npm:~9.0.8" + "@fortawesome/fontawesome-free": "npm:^6.6.0" + checksum: 10c0/ede4fedc2b8585091934c044d42547028f51b0b55d278fd9bfaa09a6071651620fbfcecf910c06341aac1b6668e24ccc092f44636e2dfdba93e1a57aaca9468d + languageName: node + linkType: hard -"@abp/jquery-form@~9.0.8": - version "9.0.8" - resolved "https://registry.npmjs.org/@abp/jquery-form/-/jquery-form-9.0.8.tgz" - integrity sha512-jzpi2hQJyRdXP+e+/A3QbLyhPiHKwRKuwNvj/+6Bmvb++WO5Gf0WHROFRW0295uPIqw88OFPqWjBhYf25B7nug== +"@abp/jquery-form@npm:~9.0.8": + version: 9.0.8 + resolution: "@abp/jquery-form@npm:9.0.8" dependencies: - "@abp/jquery" "~9.0.8" - jquery-form "^4.3.0" + "@abp/jquery": "npm:~9.0.8" + jquery-form: "npm:^4.3.0" + checksum: 10c0/baf72c2d6d4f7d5b4b1cf8f54b701d9b233b14a8fcb20f01351503483c268bbf47215896db9092ae96410474a9bee6a1908940121be2a93a2ccd4e8d0268de76 + languageName: node + linkType: hard -"@abp/jquery-validation-unobtrusive@~9.0.8": - version "9.0.8" - resolved "https://registry.npmjs.org/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.0.8.tgz" - integrity sha512-nVeZx5Xgvg45XQZyREQMZxmBPTVmZY6c9U+1upOUaG9Fn3U9CMNPzXqnwy+spuneNUPTCH6tPT2S60HFNVH9zw== +"@abp/jquery-validation-unobtrusive@npm:~9.0.8": + version: 9.0.8 + resolution: "@abp/jquery-validation-unobtrusive@npm:9.0.8" dependencies: - "@abp/jquery-validation" "~9.0.8" - jquery-validation-unobtrusive "^4.0.0" + "@abp/jquery-validation": "npm:~9.0.8" + jquery-validation-unobtrusive: "npm:^4.0.0" + checksum: 10c0/d34bb4b35d86c786b2650cf5860416178c5c7f45cfb6489db848b28909fef1ba1a19f1b9243f34663c209f7746cfb748eae5f7eaa1fd20ef021fdf43d6068bc1 + languageName: node + linkType: hard -"@abp/jquery-validation@~9.0.8": - version "9.0.8" - resolved "https://registry.npmjs.org/@abp/jquery-validation/-/jquery-validation-9.0.8.tgz" - integrity sha512-Ha4Zxsm2JjwclUHT3xCmhkBA1qn6D7GTBbgVN+WqkyvafPLamyeaf1oIOYjhl7Gbovq58HgIw8DLhIYl5IAxKA== +"@abp/jquery-validation@npm:~9.0.8": + version: 9.0.8 + resolution: "@abp/jquery-validation@npm:9.0.8" dependencies: - "@abp/jquery" "~9.0.8" - jquery-validation "^1.21.0" + "@abp/jquery": "npm:~9.0.8" + jquery-validation: "npm:^1.21.0" + checksum: 10c0/abe922666d3ad8e771f0c45f1013db402a3eb796c1cad9089a0b20bfb88a01024d4ffc7b13d6c7e533db1e9c2018e220063d7db92bb2009ecd0d661f52703dc3 + languageName: node + linkType: hard -"@abp/jquery@~9.0.8": - version "9.0.8" - resolved "https://registry.npmjs.org/@abp/jquery/-/jquery-9.0.8.tgz" - integrity sha512-lQWR59JCnP0+y5yPUAgx3Dg7v6mFjGSaQabThwk4m5Ixokz/EQXPDqIPq/M+LDqfbLTofeFNjK100H7hJkn8PQ== +"@abp/jquery@npm:~9.0.8": + version: 9.0.8 + resolution: "@abp/jquery@npm:9.0.8" dependencies: - "@abp/core" "~9.0.8" - jquery "~3.7.1" + "@abp/core": "npm:~9.0.8" + jquery: "npm:~3.7.1" + checksum: 10c0/c83c407389a556fb8cf25135f980b6e26b0f16dcf0a0d76a720a5c50da41a6ed38a5bbb6527a7b042f651f78487c552d273ddd7c56307b3e5f999b00fb3829df + languageName: node + linkType: hard -"@abp/lodash@~9.0.8": - version "9.0.8" - resolved "https://registry.npmjs.org/@abp/lodash/-/lodash-9.0.8.tgz" - integrity sha512-wHZcPwTqndZlPDWWNTN50DzwORv3rptBGOFAbixOXCw7Xt5PiBcpT3NdDcm5kUeuA/GQbtcsjsDFpTTBQEfxHw== +"@abp/lodash@npm:~9.0.8": + version: 9.0.8 + resolution: "@abp/lodash@npm:9.0.8" dependencies: - "@abp/core" "~9.0.8" - lodash "^4.17.21" + "@abp/core": "npm:~9.0.8" + lodash: "npm:^4.17.21" + checksum: 10c0/1b87327f58aa3ae59610c3ec03d32b5a843eb5fa6c88c6ef94a24b2d2572ac5af087289d0bd327dcc9aa004f6687211533925b9652262e6eef39d9824bf9867e + languageName: node + linkType: hard -"@abp/luxon@~9.0.8": - version "9.0.8" - resolved "https://registry.npmjs.org/@abp/luxon/-/luxon-9.0.8.tgz" - integrity sha512-gsUGMX9vDIPA8UgU6UKrHNaROCYDEpt0wZ2bpK6mSNqvSFgGX+0TUZmH+S+ABTiktzOp9e7B0j+AQFtATdBIyQ== +"@abp/luxon@npm:~9.0.8": + version: 9.0.8 + resolution: "@abp/luxon@npm:9.0.8" dependencies: - "@abp/core" "~9.0.8" - luxon "^3.5.0" + "@abp/core": "npm:~9.0.8" + luxon: "npm:^3.5.0" + checksum: 10c0/ec715e63eb6b2e8d2229cead3b83b92ecb5b37a24259a757e394d8816bdf5b4484ae6332ae7e56716f3ecba360c233852ddbcac1aefde0bf2ce14fd83e8a340b + languageName: node + linkType: hard -"@abp/malihu-custom-scrollbar-plugin@~9.0.8": - version "9.0.8" - resolved "https://registry.npmjs.org/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.0.8.tgz" - integrity sha512-oWNg9+i6gNMqGMhX55bGTI099EhgZm+VqgAiEKcF41MaIVpt7Qva9GHHwL3Vp6NKfVSo8foPMYJzH2L8pbdpVQ== +"@abp/malihu-custom-scrollbar-plugin@npm:~9.0.8": + version: 9.0.8 + resolution: "@abp/malihu-custom-scrollbar-plugin@npm:9.0.8" dependencies: - "@abp/core" "~9.0.8" - malihu-custom-scrollbar-plugin "^3.1.5" + "@abp/core": "npm:~9.0.8" + malihu-custom-scrollbar-plugin: "npm:^3.1.5" + checksum: 10c0/bee8abfc432b71b0c4940c2a2d24f1eca0db8d23994748c7ba2dfe8f7438f1a197e8d38cbbd3c6ce64d14e196b1e8663084ff0b746e36e3753f1fe7a23104cb3 + languageName: node + linkType: hard -"@abp/moment@~9.0.8": - version "9.0.8" - resolved "https://registry.npmjs.org/@abp/moment/-/moment-9.0.8.tgz" - integrity sha512-8vuJKNG4xu8U8kOh9NkMd/l429qp5mXNSPchjPm1e399TAbVtFaeY7jUuTKd/5fUt3KE/xQ8MR6asph31oSdtA== +"@abp/moment@npm:~9.0.8": + version: 9.0.8 + resolution: "@abp/moment@npm:9.0.8" dependencies: - moment "^2.30.1" + moment: "npm:^2.30.1" + checksum: 10c0/31cbc9a5e005982fec092d294b1d109f87f63e941055eff38fc3932dd11e50ccd55a035bb5e34bf0ca2fa6f79df7d60bad3e88837cbc19a282c494210f01fd8f + languageName: node + linkType: hard -"@abp/select2@~9.0.8": - version "9.0.8" - resolved "https://registry.npmjs.org/@abp/select2/-/select2-9.0.8.tgz" - integrity sha512-v3jVRgi9FWS4vxAXRKe+Dyk8H5pDDlvBMuxW5Yde61Xa0UENyWmZkeRKwmHsmmOyeypgLiZzy8/nN86HqNt0ng== +"@abp/select2@npm:~9.0.8": + version: 9.0.8 + resolution: "@abp/select2@npm:9.0.8" dependencies: - "@abp/core" "~9.0.8" - select2 "^4.0.13" + "@abp/core": "npm:~9.0.8" + select2: "npm:^4.0.13" + checksum: 10c0/226224d6741e6660e9bda6937b7304feca88d5fdd2cd56e03ef0f781342e0806047fa0ba68a5df7e74226000dfcb27a2c4e359c9d8f02792b35bdad36f706de2 + languageName: node + linkType: hard -"@abp/sweetalert2@~9.0.8": - version "9.0.8" - resolved "https://registry.npmjs.org/@abp/sweetalert2/-/sweetalert2-9.0.8.tgz" - integrity sha512-VI2hmQAge8QX+OmDn2Ng8N4wWcwXMm1vf/gXNE1aV+SzFcLcDA2QOh/noLXEW1bjVy4Foa1QFf+nCXnjOilcCQ== +"@abp/sweetalert2@npm:~9.0.8": + version: 9.0.8 + resolution: "@abp/sweetalert2@npm:9.0.8" dependencies: - "@abp/core" "~9.0.8" - sweetalert2 "^11.14.1" + "@abp/core": "npm:~9.0.8" + sweetalert2: "npm:^11.14.1" + checksum: 10c0/aabee4858acb09599918547a0cae172be3d9c7fb8c6e7371f57a3d3003fb19018170cbf4cb60c1cbd596cd35bad5191c35d2df88ad15f3a4f01855b9d72843db + languageName: node + linkType: hard -"@abp/timeago@~9.0.8": - version "9.0.8" - resolved "https://registry.npmjs.org/@abp/timeago/-/timeago-9.0.8.tgz" - integrity sha512-/LcDeX2pnI7J18+HrxqIpQz2cu9FCkrMu7vdnHJstlW3EO163Jq8YEpj9l7yHOuqT6c3FMN7QkXThewxoSWjpQ== +"@abp/timeago@npm:~9.0.8": + version: 9.0.8 + resolution: "@abp/timeago@npm:9.0.8" dependencies: - "@abp/jquery" "~9.0.8" - timeago "^1.6.7" + "@abp/jquery": "npm:~9.0.8" + timeago: "npm:^1.6.7" + checksum: 10c0/33019bf60b8430e2e6fdd1b5a33e1ced9a9da458205dc64015d907dae9b64571cc61505f412268d7ebeb9695dee10c6657c048e9f0b6991a070c923e3f648cc7 + languageName: node + linkType: hard -"@abp/toastr@~9.0.8": - version "9.0.8" - resolved "https://registry.npmjs.org/@abp/toastr/-/toastr-9.0.8.tgz" - integrity sha512-tOwSjUOMKBlEpRzSQtCFu57i9y3/jRKe2/bYgGQlWiBy4CX/O68R8Sk0/xBjpl1wOrjEBNrHuQmvWWlqkSwNgg== +"@abp/toastr@npm:~9.0.8": + version: 9.0.8 + resolution: "@abp/toastr@npm:9.0.8" dependencies: - "@abp/jquery" "~9.0.8" - toastr "^2.1.4" + "@abp/jquery": "npm:~9.0.8" + toastr: "npm:^2.1.4" + checksum: 10c0/2c89d54d454efd33170c6fd1398c393ad3e36b078ad54b038cefca1b334b3330cb7279a90611ba2a032cef7255f1734288fdeb430a51c34470d4d88dc5f1dc9e + languageName: node + linkType: hard -"@abp/utils@~9.0.8": - version "9.0.8" - resolved "https://registry.npmjs.org/@abp/utils/-/utils-9.0.8.tgz" - integrity sha512-Rat+9cnnoIzhSs/ES9JP/Su+6VWotse5B3wcwRPbiQxCMYUNXQYHq5hTSyHhL2nHG2ox6BVur2jCIzNxXvqsBw== +"@abp/utils@npm:~9.0.8": + version: 9.0.8 + resolution: "@abp/utils@npm:9.0.8" dependencies: - just-compare "^2.3.0" + just-compare: "npm:^2.3.0" + checksum: 10c0/2b73f5fa4e37df1d7d21dcdf3450aaeb58a7a0032e1480c39c0bd35c0af7d7b86040ff9b18a29e4fa957428a22b81d2929a14820671c132d57caa1e7f9b91529 + languageName: node + linkType: hard -"@fortawesome/fontawesome-free@^6.6.0": - version "6.7.2" - resolved "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.7.2.tgz" - integrity sha512-JUOtgFW6k9u4Y+xeIaEiLr3+cjoUPiAuLXoyKOJSia6Duzb7pq+A76P9ZdPDoAoxHdHzq6gE9/jKBGXlZT8FbA== +"@fortawesome/fontawesome-free@npm:^6.6.0": + version: 6.7.2 + resolution: "@fortawesome/fontawesome-free@npm:6.7.2" + checksum: 10c0/e27fb8b846f0bcf40c904acc210829a640329fc7b7ec4e42a7c43cb53739ed6052d78df90810f555a5c80bc608fee5a5174db3fa6da617f582d6210009a19278 + languageName: node + linkType: hard -"@popperjs/core@^2.11.8": - version "2.11.8" - resolved "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz" - integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== +"ansi-colors@npm:^4.1.3": + version: 4.1.3 + resolution: "ansi-colors@npm:4.1.3" + checksum: 10c0/ec87a2f59902f74e61eada7f6e6fe20094a628dab765cfdbd03c3477599368768cffccdb5d3bb19a1b6c99126783a143b1fee31aab729b31ffe5836c7e5e28b9 + languageName: node + linkType: hard -ansi-colors@^4.1.3: - version "4.1.3" - resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz" - integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== - -bootstrap-datepicker@^1.10.0: - version "1.10.1" - resolved "https://registry.npmjs.org/bootstrap-datepicker/-/bootstrap-datepicker-1.10.1.tgz" - integrity sha512-GIe+fsLp9Hi30oW7L2v2Q9/a4+aojrIA2p4ZagtLuKw2lpfQgjJjM0L6vl/lYQydGXWUbpoKbEC/O5tzWIkEKQ== +"bootstrap-datepicker@npm:^1.10.0": + version: 1.10.1 + resolution: "bootstrap-datepicker@npm:1.10.1" dependencies: - jquery ">=3.4.0 <4.0.0" + jquery: "npm:>=3.4.0 <4.0.0" + checksum: 10c0/bad08e373b70040f4a62003b46dde2e5bd4a7b73aeffb1d504c0a1736b6beaccf56b908d565980491c7f4329377af8c4cfb7bff9c38480ea689210c7c308dc7d + languageName: node + linkType: hard -bootstrap-daterangepicker@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/bootstrap-daterangepicker/-/bootstrap-daterangepicker-3.1.0.tgz" - integrity sha512-oaQZx6ZBDo/dZNyXGVi2rx5GmFXThyQLAxdtIqjtLlYVaQUfQALl5JZMJJZzyDIX7blfy4ppZPAJ10g8Ma4d/g== +"bootstrap-daterangepicker@npm:^3.1.0": + version: 3.1.0 + resolution: "bootstrap-daterangepicker@npm:3.1.0" dependencies: - jquery ">=1.10" - moment "^2.9.0" + jquery: "npm:>=1.10" + moment: "npm:^2.9.0" + checksum: 10c0/ab54b5247df355d85d478c8a7e0f5cb299d0064a14722d4311d7147bc72a06c4391752f3b49a2ae0c1ff861c563d17a99042cf7b6056a2ad5986f30c8c85623e + languageName: node + linkType: hard -bootstrap@^5.3.3: - version "5.3.8" - resolved "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.8.tgz" - integrity sha512-HP1SZDqaLDPwsNiqRqi5NcP0SSXciX2s9E+RyqJIIqGo+vJeN5AJVM98CXmW/Wux0nQ5L7jeWUdplCEf0Ee+tg== +"bootstrap@npm:^5.3.3": + version: 5.3.8 + resolution: "bootstrap@npm:5.3.8" + peerDependencies: + "@popperjs/core": ^2.11.8 + checksum: 10c0/0039a9df2c3e7bfa04f1abca199c299ff3b75869d578c0cb1721c6f1f203c91531788a5631ecbee01513481979314d0e4ba0d90c2011e6ce18fc2e0bc93e18d9 + languageName: node + linkType: hard -datatables.net-bs5@^2.1.8: - version "2.3.4" - resolved "https://registry.npmjs.org/datatables.net-bs5/-/datatables.net-bs5-2.3.4.tgz" - integrity sha512-OSoPWhNfiU71VjNP604uTmFRxiX32U7SCW0KRZ2X6z3ZYbIwjjoWcMEjjPWOH3uOqaI0OTDBgOgOs5G28VaJog== +"datatables.net-bs5@npm:^2.1.8": + version: 2.3.4 + resolution: "datatables.net-bs5@npm:2.3.4" dependencies: - datatables.net "2.3.4" - jquery ">=1.7" + datatables.net: "npm:2.3.4" + jquery: "npm:>=1.7" + checksum: 10c0/27dab5a78fd98aed45fadd40f2b5da551663a8292cdc90384135dfdf99cb1397758b54b0d1934389fb04768fa00ca66be4cc1aca079c3bb13f6265b3c91716fa + languageName: node + linkType: hard -datatables.net@^2.1.8, datatables.net@2.3.4: - version "2.3.4" - resolved "https://registry.npmjs.org/datatables.net/-/datatables.net-2.3.4.tgz" - integrity sha512-fKuRlrBIdpAl2uIFgl9enKecHB41QmFd/2nN9LBbOvItV/JalAxLcyqdZXex7wX4ZXjnJQEnv6xeS9veOpKzSw== +"datatables.net@npm:2.3.4, datatables.net@npm:^2.1.8": + version: 2.3.4 + resolution: "datatables.net@npm:2.3.4" dependencies: - jquery ">=1.7" + jquery: "npm:>=1.7" + checksum: 10c0/8683653cf1aacb50cc637c799f73bc91e477ccbf49ec99859e991034ba43c8e01b9c5a245fadcb0d10cbba9dca69989a5a36e886212fb4c62d53cd6e38081287 + languageName: node + linkType: hard -jquery-form@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/jquery-form/-/jquery-form-4.3.0.tgz" - integrity sha512-q3uaVCEWdLOYUCI6dpNdwf/7cJFOsUgdpq6r0taxtGQ5NJSkOzofyWm4jpOuJ5YxdmL1FI5QR+q+HB63HHLGnQ== +"jquery-form@npm:^4.3.0": + version: 4.3.0 + resolution: "jquery-form@npm:4.3.0" dependencies: - jquery ">=1.7.2" + jquery: "npm:>=1.7.2" + checksum: 10c0/69bc684a612978a47d83a8f6b54f4a288a90e4142201233d4b15449251c365dd0e2b30fa042c4209097d1d5eb8fd72cb7facf92384f8aa39650fa9eed2d10c28 + languageName: node + linkType: hard -jquery-mousewheel@>=3.0.6: - version "3.2.2" - resolved "https://registry.npmjs.org/jquery-mousewheel/-/jquery-mousewheel-3.2.2.tgz" - integrity sha512-JP71xTAg08ZY3hcs9ZbYUZ5i+dkSsz4yRl/zpWkAmtzc+kMs5EfPkpkINSidiLYMaR0MTo3DfFGF9WIezMsFQQ== +"jquery-mousewheel@npm:>=3.0.6": + version: 3.2.2 + resolution: "jquery-mousewheel@npm:3.2.2" dependencies: - jquery ">=1.2.6" + jquery: "npm:>=1.2.6" + checksum: 10c0/a8b45ae7759ce14134284cb6a2f2446f16d43325550c2e25653de572ca3e197b471b8322afb11ec114ab3b0f26b7072a7b47de7ed6617e9417328a94eac30740 + languageName: node + linkType: hard -jquery-validation-unobtrusive@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.0.0.tgz" - integrity sha512-1ervYFFv6LX/rp7ktuLnMakHNG0piNRDyROI8Ir3hL1vPIwylAehB1AY3BPrYJnzW3WmwWryZq+Bz4sazZK9iQ== +"jquery-validation-unobtrusive@npm:^4.0.0": + version: 4.0.0 + resolution: "jquery-validation-unobtrusive@npm:4.0.0" dependencies: - jquery "^3.6.0" - jquery-validation ">=1.19" + jquery: "npm:^3.6.0" + jquery-validation: "npm:>=1.19" + checksum: 10c0/17d28abec3759c1b615bfd6aaa87fea8ac2bea5c925fc1cab90da3e9c76d9feb29740877936ef41ed073eecc4f3a1a6b415f29cd00605fa02deb77427395646e + languageName: node + linkType: hard -jquery-validation@^1.21.0, jquery-validation@>=1.19: - version "1.21.0" - resolved "https://registry.npmjs.org/jquery-validation/-/jquery-validation-1.21.0.tgz" - integrity sha512-xNot0rlUIgu7duMcQ5qb6MGkGL/Z1PQaRJQoZAURW9+a/2PGOUxY36o/WyNeP2T9R6jvWB8Z9lUVvvQWI/Zs5w== +"jquery-validation@npm:>=1.19, jquery-validation@npm:^1.21.0": + version: 1.21.0 + resolution: "jquery-validation@npm:1.21.0" + peerDependencies: + jquery: ^1.7 || ^2.0 || ^3.1 + checksum: 10c0/b5e51fc037f79779f38bbc74dab9d1568d9f7821128aff6dcfeb12b39f0dea79f763516dc3e05b45fc9a2e9282037b08eccad0eef29fc3a23a0211454ab0f0e5 + languageName: node + linkType: hard -"jquery@^1.7 || ^2.0 || ^3.1", jquery@^3.6.0, jquery@>=1.10, jquery@>=1.12.0, jquery@>=1.2.6, "jquery@>=1.5.0 <4.0", jquery@>=1.7, jquery@>=1.7.2, "jquery@>=3.4.0 <4.0.0", jquery@~3.7.1: - version "3.7.1" - resolved "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz" - integrity sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg== +"jquery@npm:>=1.10, jquery@npm:>=1.12.0, jquery@npm:>=1.2.6, jquery@npm:>=1.5.0 <4.0, jquery@npm:>=1.7, jquery@npm:>=1.7.2, jquery@npm:>=3.4.0 <4.0.0, jquery@npm:^3.6.0, jquery@npm:~3.7.1": + version: 3.7.1 + resolution: "jquery@npm:3.7.1" + checksum: 10c0/808cfbfb758438560224bf26e17fcd5afc7419170230c810dd11f5c1792e2263e2970cca8d659eb84fcd9acc301edb6d310096e450277d54be4f57071b0c82d9 + languageName: node + linkType: hard -just-compare@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/just-compare/-/just-compare-2.3.0.tgz" - integrity sha512-6shoR7HDT+fzfL3gBahx1jZG3hWLrhPAf+l7nCwahDdT9XDtosB9kIF0ZrzUp5QY8dJWfQVr5rnsPqsbvflDzg== +"just-compare@npm:^2.3.0": + version: 2.3.0 + resolution: "just-compare@npm:2.3.0" + checksum: 10c0/f99853b608c06bc36f3727220b159626a16c4ac890216725db83dd06d99d6cd1d5e8c3a2ab02072a39350f44d07745c14918be0db4aff74b744ed787712adeec + languageName: node + linkType: hard -lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== +"lodash@npm:^4.17.21": + version: 4.17.21 + resolution: "lodash@npm:4.17.21" + checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c + languageName: node + linkType: hard -luxon@^3.5.0: - version "3.7.2" - resolved "https://registry.npmjs.org/luxon/-/luxon-3.7.2.tgz" - integrity sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew== +"luxon@npm:^3.5.0": + version: 3.7.2 + resolution: "luxon@npm:3.7.2" + checksum: 10c0/ed8f0f637826c08c343a29dd478b00628be93bba6f068417b1d8896b61cb61c6deacbe1df1e057dbd9298334044afa150f9aaabbeb3181418ac8520acfdc2ae2 + languageName: node + linkType: hard -malihu-custom-scrollbar-plugin@^3.1.5: - version "3.1.5" - resolved "https://registry.npmjs.org/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.5.tgz" - integrity sha512-lwW3LgI+CNDMPnP4ED2la6oYxWMkCXlnhex+s2wuOLhFDFGnGmQuTQVdRK9bvDLpxs10sGlfErVufJy9ztfgJQ== +"malihu-custom-scrollbar-plugin@npm:^3.1.5": + version: 3.1.5 + resolution: "malihu-custom-scrollbar-plugin@npm:3.1.5" dependencies: - jquery-mousewheel ">=3.0.6" + jquery-mousewheel: "npm:>=3.0.6" + checksum: 10c0/f0eeb2cf7c53dfe3c02c11e9dc7ca0221101050beaca6b779c07bde2381bd599f0084158a2188c91dc8a2dd7eb9450db5af5063dbb31d65a0deefa29a1c9df99 + languageName: node + linkType: hard -moment@^2.30.1, moment@^2.9.0: - version "2.30.1" - resolved "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz" - integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how== +"moment@npm:^2.30.1, moment@npm:^2.9.0": + version: 2.30.1 + resolution: "moment@npm:2.30.1" + checksum: 10c0/865e4279418c6de666fca7786607705fd0189d8a7b7624e2e56be99290ac846f90878a6f602e34b4e0455c549b85385b1baf9966845962b313699e7cb847543a + languageName: node + linkType: hard -select2@^4.0.13: - version "4.0.13" - resolved "https://registry.npmjs.org/select2/-/select2-4.0.13.tgz" - integrity sha512-1JeB87s6oN/TDxQQYCvS5EFoQyvV6eYMZZ0AeA4tdFDYWN3BAGZ8npr17UBFddU0lgAt3H0yjX3X6/ekOj1yjw== - -sweetalert2@^11.14.1: - version "11.26.3" - resolved "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.26.3.tgz" - integrity sha512-VU0hGw/WfI9h7Mh+SCsDlWgtxDwWZ6ccqS7QcO8zEeWnwplN1GptcLstq76OluUBSLUza6ldvKd3558OhjpJ9A== - -timeago@^1.6.7: - version "1.6.7" - resolved "https://registry.npmjs.org/timeago/-/timeago-1.6.7.tgz" - integrity sha512-FikcjN98+ij0siKH4VO4dZ358PR3oDDq4Vdl1+sN9gWz1/+JXGr3uZbUShYH/hL7bMhcTpPbplJU5Tej4b4jbQ== +"my-app@workspace:.": + version: 0.0.0-use.local + resolution: "my-app@workspace:." dependencies: - jquery ">=1.5.0 <4.0" + "@abp/aspnetcore.mvc.ui.theme.basic": "npm:~9.0.2" + languageName: unknown + linkType: soft -toastr@^2.1.4: - version "2.1.4" - resolved "https://registry.npmjs.org/toastr/-/toastr-2.1.4.tgz" - integrity sha512-LIy77F5n+sz4tefMmFOntcJ6HL0Fv3k1TDnNmFZ0bU/GcvIIfy6eG2v7zQmMiYgaalAiUv75ttFrPn5s0gyqlA== +"select2@npm:^4.0.13": + version: 4.0.13 + resolution: "select2@npm:4.0.13" + checksum: 10c0/a393866565a5f878ca21276ed32793595851debb35ff48a8c368640e732619349f547d335b438b45ff5647145eb6c5af868cd5153740de58306a2dca2498550f + languageName: node + linkType: hard + +"sweetalert2@npm:^11.14.1": + version: 11.26.3 + resolution: "sweetalert2@npm:11.26.3" + checksum: 10c0/cd7ab9f8800ffc75ec58fd5a103c57c4a2b1a3ac270631790bdda0610f908f790eac13efd85d7faec019eb99e65992cc893fc23290cd196f6c2f0162debcfe4c + languageName: node + linkType: hard + +"timeago@npm:^1.6.7": + version: 1.6.7 + resolution: "timeago@npm:1.6.7" dependencies: - jquery ">=1.12.0" + jquery: "npm:>=1.5.0 <4.0" + checksum: 10c0/e5337d3d071590d4c75a101d50b2651153f5a25212e4c37476533f8cd4bc014fb335934b4290deef06842bf3df14181e83a81e099038efc535d59d191abac2c6 + languageName: node + linkType: hard + +"toastr@npm:^2.1.4": + version: 2.1.4 + resolution: "toastr@npm:2.1.4" + dependencies: + jquery: "npm:>=1.12.0" + checksum: 10c0/325ef9faa5d67fced64461a3c641002ca24492917c9d8c5c1a782d11f7e3ed5281683e3e00310c756365e3475ef6719e6acd93462228b8ac050eb6feee8ced60 + languageName: node + linkType: hard