From bf22c4efe51d4aa32a947275c0d96c5b61bfb7f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sedat=20=C3=96zt=C3=BCrk?= Date: Tue, 18 Nov 2025 01:10:47 +0300 Subject: [PATCH] =?UTF-8?q?SubForms=20i=C3=A7inde=20=C4=B0li=C5=9Fkili=20s?= =?UTF-8?q?=C3=BCtunu=20tan=C4=B1mlamadan=20Insert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Seeds/ListFormSeeder_Accounting.cs | 41 +++------ .../Seeds/ListFormSeeder_Administration.cs | 50 ++--------- .../Seeds/ListFormSeeder_Coordinator.cs | 51 ++++------- .../Seeds/ListFormSeeder_Crm.cs | 17 ---- .../Seeds/ListFormSeeder_Hr.cs | 57 +++--------- .../Seeds/ListFormSeeder_Saas.cs | 10 +-- .../Seeds/ListFormSeeder_SupplyChain.cs | 87 +------------------ .../Seeds/PermissionsData.json | 63 ++++++++++++++ .../Entities/Branch/Accounting/BankAccount.cs | 1 - .../ListForms/ListFormManager.cs | 67 +++++++++++++- .../Queries/SelectQueryManager.cs | 32 ++++--- ....cs => 20251117212636_Initial.Designer.cs} | 5 +- ...8_Initial.cs => 20251117212636_Initial.cs} | 1 - .../PlatformDbContextModelSnapshot.cs | 3 - 14 files changed, 198 insertions(+), 287 deletions(-) rename api/src/Erp.Platform.EntityFrameworkCore/Migrations/{20251116194718_Initial.Designer.cs => 20251117212636_Initial.Designer.cs} (99%) rename api/src/Erp.Platform.EntityFrameworkCore/Migrations/{20251116194718_Initial.cs => 20251117212636_Initial.cs} (99%) diff --git a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Accounting.cs b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Accounting.cs index 305efb74..e868f18a 100644 --- a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Accounting.cs +++ b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Accounting.cs @@ -358,10 +358,6 @@ public class ListFormSeeder_Accounting : IDataSeedContributor, ITransientDepende ParentFieldName = "Id", ChildFieldName = "BankId" }, - new { - ParentFieldName = "BranchId", - ChildFieldName = "BranchId" - }, } }, }) @@ -376,7 +372,7 @@ public class ListFormSeeder_Accounting : IDataSeedContributor, ITransientDepende new ListForm() { ListFormType = ListFormTypeEnum.List, - IsSubForm = false, + IsSubForm = true, ShowNote = true, LayoutJson = DefaultLayoutJson, CultureName = LanguageCodes.En, @@ -385,7 +381,7 @@ public class ListFormSeeder_Accounting : IDataSeedContributor, ITransientDepende Title = AppCodes.Accounting.BankAccount, DataSourceCode = SeedConsts.DataSources.DefaultCode, IsTenant = true, - IsBranch = true, + IsBranch = false, IsOrganizationUnit = false, Description = AppCodes.Accounting.BankAccount, SelectCommandType = SelectCommandTypeEnum.Table, @@ -410,11 +406,10 @@ public class ListFormSeeder_Accounting : IDataSeedContributor, ITransientDepende new() { Order=1, ColCount=1, ColSpan=1, ItemType="group", Items = [ - new EditingFormItemDto { Order = 1, DataField = "BankId", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, - new EditingFormItemDto { Order = 2, DataField = "AccountNumber", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxTextBox }, - new EditingFormItemDto { Order = 3, DataField = "AccountOwner", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxTextBox }, - new EditingFormItemDto { Order = 4, DataField = "CurrencyId", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, - new EditingFormItemDto { Order = 5, DataField = "CanTransferMoney", ColSpan = 1, EditorType2=EditorTypes.dxCheckBox }, + new EditingFormItemDto { Order = 1, DataField = "AccountNumber", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxTextBox }, + new EditingFormItemDto { Order = 2, DataField = "AccountOwner", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxTextBox }, + new EditingFormItemDto { Order = 3, DataField = "CurrencyId", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, + new EditingFormItemDto { Order = 4, DataField = "CanTransferMoney", ColSpan = 1, EditorType2=EditorTypes.dxCheckBox }, ]} }), FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { @@ -441,29 +436,13 @@ public class ListFormSeeder_Accounting : IDataSeedContributor, ITransientDepende PermissionJson = DefaultFieldPermissionJson(listForm.Name), PivotSettingsJson = DefaultPivotSettingsJson }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "BankId", - Width = 250, - ListOrderNo = 2, - Visible = true, - IsActive = true, - IsDeleted = false, - AllowSearch = true, - LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Bank), "Id", "Name"), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, new() { ListFormCode = listForm.ListFormCode, CultureName = LanguageCodes.En, SourceDbType = DbType.String, FieldName = "AccountNumber", Width = 150, - ListOrderNo = 3, + ListOrderNo = 2, Visible = true, IsActive = true, IsDeleted = false, @@ -481,7 +460,7 @@ public class ListFormSeeder_Accounting : IDataSeedContributor, ITransientDepende SourceDbType = DbType.String, FieldName = "AccountOwner", Width = 250, - ListOrderNo = 4, + ListOrderNo = 3, Visible = true, IsActive = true, IsDeleted = false, @@ -498,7 +477,7 @@ public class ListFormSeeder_Accounting : IDataSeedContributor, ITransientDepende SourceDbType = DbType.Guid, FieldName = "CurrencyId", Width = 150, - ListOrderNo = 5, + ListOrderNo = 4, Visible = true, IsActive = true, IsDeleted = false, @@ -514,7 +493,7 @@ public class ListFormSeeder_Accounting : IDataSeedContributor, ITransientDepende SourceDbType = DbType.Boolean, FieldName = "CanTransferMoney", Width = 50, - ListOrderNo = 6, + ListOrderNo = 5, Visible = true, IsActive = true, IsDeleted = false, diff --git a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Administration.cs b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Administration.cs index e9a13e53..0d2c8827 100644 --- a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Administration.cs +++ b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Administration.cs @@ -4172,7 +4172,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep new ListForm() { ListFormType = ListFormTypeEnum.List, - IsSubForm = false, + IsSubForm = true, ShowNote = true, LayoutJson = DefaultLayoutJson, CultureName = LanguageCodes.En, @@ -4207,7 +4207,6 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep new EditingFormItemDto { Order = 1, DataField = "Name", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxTextBox }, new EditingFormItemDto { Order = 2, DataField = "Progress", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxSlider, EditorOptions=EditorOptionValues.SliderOptions }, new EditingFormItemDto { Order = 3, DataField = "IsDefault", ColSpan = 1, EditorType2=EditorTypes.dxCheckBox }, - new EditingFormItemDto { Order = 4, DataField = "SkillTypeId", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, ] } }), @@ -4284,23 +4283,6 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep PermissionJson = DefaultFieldPermissionJson(listForm.Name), PivotSettingsJson = DefaultPivotSettingsJson }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "SkillTypeId", - Width = 150, - ListOrderNo = 5, - Visible = true, - IsActive = true, - IsDeleted = false, - AllowSearch = true, - LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.SkillType), "Id", "Name"), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, }); #endregion } @@ -4313,7 +4295,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep new ListForm() { ListFormType = ListFormTypeEnum.List, - IsSubForm = false, + IsSubForm = true, ShowNote = true, LayoutJson = DefaultLayoutJson, CultureName = LanguageCodes.En, @@ -4345,7 +4327,6 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep EditingFormJson = JsonSerializer.Serialize(new List() { 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 = "SkillTypeId", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, ]} }), InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson, @@ -4388,23 +4369,6 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep PermissionJson = DefaultFieldPermissionJson(listForm.Name), PivotSettingsJson = DefaultPivotSettingsJson }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "SkillTypeId", - Width = 150, - ListOrderNo = 3, - Visible = true, - IsActive = true, - IsDeleted = false, - AllowSearch = true, - LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.SkillType), "Id", "Name"), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, }); #endregion } @@ -4530,7 +4494,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep new ListForm() { ListFormType = ListFormTypeEnum.List, - IsSubForm = false, + IsSubForm = true, ShowNote = true, LayoutJson = DefaultLayoutJson, CultureName = LanguageCodes.En, @@ -4567,7 +4531,6 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep new EditingFormItemDto { Order = 3, DataField = "Ratio", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxNumberBox }, new EditingFormItemDto { Order = 4, DataField = "Rounding", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxNumberBox }, new EditingFormItemDto { Order = 5, DataField = "IsActive", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxCheckBox }, - new EditingFormItemDto { Order = 6, DataField = "UomCategoryId", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, ]} }), InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson, @@ -4681,15 +4644,14 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep { ListFormCode = listForm.ListFormCode, CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "UomCategoryId", - Width = 150, + SourceDbType = DbType.Boolean, + FieldName = "IsActive", + Width = 100, ListOrderNo = 6, Visible = true, IsActive = true, IsDeleted = false, AllowSearch = true, - LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.UomCategory), "Id", "Name"), ValidationRuleJson = DefaultValidationRuleRequiredJson, ColumnCustomizationJson = DefaultColumnCustomizationJson, PermissionJson = DefaultFieldPermissionJson(listForm.Name), diff --git a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Coordinator.cs b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Coordinator.cs index 0d9b159d..985aa53c 100644 --- a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Coordinator.cs +++ b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Coordinator.cs @@ -2197,13 +2197,13 @@ public class ListFormSeeder_Coordinator : IDataSeedContributor, ITransientDepend }), EditingFormJson = JsonSerializer.Serialize(new List() { new() { Order=1, ColCount=1, ColSpan=1, ItemType="group", Items= [ - new EditingFormItemDto { Order = 1, DataField = "QuestionPoolId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, - new EditingFormItemDto { Order = 2, DataField = "QuestionType", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, - new EditingFormItemDto { Order = 3, DataField = "Points", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox }, - new EditingFormItemDto { Order = 4, DataField = "Title", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox }, - new EditingFormItemDto { Order = 5, DataField = "Content", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxTextArea }, - new EditingFormItemDto { Order = 6, DataField = "Difficulty", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, - new EditingFormItemDto { Order = 7, DataField = "MediaType", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, + new EditingFormItemDto { Order = 1, DataField = "QuestionType", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, + new EditingFormItemDto { Order = 2, DataField = "Points", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox }, + new EditingFormItemDto { Order = 3, DataField = "Title", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox }, + new EditingFormItemDto { Order = 4, DataField = "Content", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxTextArea }, + new EditingFormItemDto { Order = 5, DataField = "MediaType", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, + new EditingFormItemDto { Order = 6, DataField = "MediaUrl", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox }, + new EditingFormItemDto { Order = 7, DataField = "Difficulty", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, new EditingFormItemDto { Order = 8, DataField = "MediaUrl", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox }, new EditingFormItemDto { Order = 9, DataField = "CorrectAnswer", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox, EditorOptions="{\"disabled\": true}" }, new EditingFormItemDto { Order = 10, DataField = "TimeLimit", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox }, @@ -2235,30 +2235,13 @@ public class ListFormSeeder_Coordinator : IDataSeedContributor, ITransientDepend PermissionJson = DefaultFieldPermissionJson(listForm.Name), PivotSettingsJson = DefaultPivotSettingsJson }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "QuestionPoolId", - Width = 100, - ListOrderNo = 2, - Visible = false, - IsActive = true, - IsDeleted = false, - SortIndex = 0, - ValidationRuleJson = DefaultValidationRuleRequiredJson, - LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.QuestionPool), "Id", "Name"), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, new() { ListFormCode = listForm.ListFormCode, CultureName = LanguageCodes.En, SourceDbType = DbType.String, FieldName = "QuestionType", Width = 120, - ListOrderNo = 3, + ListOrderNo = 2, Visible = true, IsActive = true, IsDeleted = false, @@ -2292,7 +2275,7 @@ public class ListFormSeeder_Coordinator : IDataSeedContributor, ITransientDepend Format = "fixedPoint", Alignment = "right", Width = 60, - ListOrderNo = 4, + ListOrderNo = 3, Visible = true, IsActive = true, IsDeleted = false, @@ -2307,7 +2290,7 @@ public class ListFormSeeder_Coordinator : IDataSeedContributor, ITransientDepend SourceDbType = DbType.String, FieldName = "Title", Width = 150, - ListOrderNo = 5, + ListOrderNo = 4, Visible = true, IsActive = true, IsDeleted = false, @@ -2322,7 +2305,7 @@ public class ListFormSeeder_Coordinator : IDataSeedContributor, ITransientDepend SourceDbType = DbType.String, FieldName = "Content", Width = 350, - ListOrderNo = 6, + ListOrderNo = 5, Visible = true, IsActive = true, IsDeleted = false, @@ -2337,7 +2320,7 @@ public class ListFormSeeder_Coordinator : IDataSeedContributor, ITransientDepend SourceDbType = DbType.String, FieldName = "MediaType", Width = 100, - ListOrderNo = 7, + ListOrderNo = 6, Visible = true, IsActive = true, IsDeleted = false, @@ -2362,7 +2345,7 @@ public class ListFormSeeder_Coordinator : IDataSeedContributor, ITransientDepend SourceDbType = DbType.String, FieldName = "MediaUrl", Width = 170, - ListOrderNo = 8, + ListOrderNo = 7, Visible = true, IsActive = true, IsDeleted = false, @@ -2377,7 +2360,7 @@ public class ListFormSeeder_Coordinator : IDataSeedContributor, ITransientDepend SourceDbType = DbType.String, FieldName = "CorrectAnswer", Width = 150, - ListOrderNo = 9, + ListOrderNo = 8, Visible = true, IsActive = true, IsDeleted = false, @@ -2392,7 +2375,7 @@ public class ListFormSeeder_Coordinator : IDataSeedContributor, ITransientDepend SourceDbType = DbType.String, FieldName = "Difficulty", Width = 100, - ListOrderNo = 10, + ListOrderNo = 9, Visible = true, IsActive = true, IsDeleted = false, @@ -2418,7 +2401,7 @@ public class ListFormSeeder_Coordinator : IDataSeedContributor, ITransientDepend SourceDbType = DbType.Int32, FieldName = "TimeLimit", Width = 100, - ListOrderNo = 11, + ListOrderNo = 10, Visible = true, IsActive = true, IsDeleted = false, @@ -2433,7 +2416,7 @@ public class ListFormSeeder_Coordinator : IDataSeedContributor, ITransientDepend SourceDbType = DbType.String, FieldName = "Explanation", Width = 100, - ListOrderNo = 12, + ListOrderNo = 11, Visible = true, IsActive = true, IsDeleted = false, diff --git a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Crm.cs b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Crm.cs index 6f8d9f59..02fd3d46 100644 --- a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Crm.cs +++ b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Crm.cs @@ -1618,7 +1618,6 @@ public class ListFormSeeder_Crm : IDataSeedContributor, ITransientDependency new EditingFormItemDto { Order = 10, DataField="FollowUpActivity", ColSpan = 1, EditorType2 = EditorTypes.dxTextArea }, new EditingFormItemDto { Order = 11, DataField="Outcome", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox }, new EditingFormItemDto { Order = 12, DataField="NextSteps", ColSpan = 1, EditorType2 = EditorTypes.dxTextArea }, - new EditingFormItemDto { Order = 13, DataField="OpportunityId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, ]} }), FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { @@ -1845,22 +1844,6 @@ public class ListFormSeeder_Crm : IDataSeedContributor, ITransientDependency PermissionJson = DefaultFieldPermissionJson(listForm.Name), PivotSettingsJson = DefaultPivotSettingsJson }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "OpportunityId", - Width = 200, - ListOrderNo = 14, - Visible = true, - IsActive = true, - IsDeleted = false, - AllowSearch = true, - LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Opportunity), "Id", "Title"), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, ]); #endregion } diff --git a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Hr.cs b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Hr.cs index da8c2614..2886bea4 100644 --- a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Hr.cs +++ b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Hr.cs @@ -4238,7 +4238,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency { new() { Order=1, ColCount=1, ColSpan=1, ItemType="group", Items =[ - new EditingFormItemDto { Order = 1, DataField = "SurveyId", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, + new EditingFormItemDto { Order = 1, DataField = "Order", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox }, new EditingFormItemDto { Order = 2, DataField = "QuestionText", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox }, new EditingFormItemDto { Order = 3, DataField = "Type", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, new EditingFormItemDto { Order = 4, DataField = "IsRequired", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxCheckBox } @@ -4278,30 +4278,13 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency PermissionJson = DefaultFieldPermissionJson(listForm.Name), PivotSettingsJson = DefaultPivotSettingsJson }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "SurveyId", - Width = 200, - ListOrderNo = 2, - Visible = true, - IsActive = true, - IsDeleted = false, - AllowSearch = true, - LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Survey), "Id", "Title"), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, new() { ListFormCode = listForm.ListFormCode, CultureName = LanguageCodes.En, SourceDbType = DbType.Int32, FieldName = "Order", Width = 100, - ListOrderNo = 3, + ListOrderNo = 2, Visible = true, IsActive = true, IsDeleted = false, @@ -4317,7 +4300,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency SourceDbType = DbType.String, FieldName = "QuestionText", Width = 300, - ListOrderNo = 4, + ListOrderNo = 3, Visible = true, IsActive = true, IsDeleted = false, @@ -4333,7 +4316,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency SourceDbType = DbType.String, FieldName = "Type", Width = 100, - ListOrderNo = 5, + ListOrderNo = 4, Visible = true, IsActive = true, IsDeleted = false, @@ -4361,7 +4344,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency SourceDbType = DbType.Boolean, FieldName = "IsRequired", Width = 100, - ListOrderNo = 6, + ListOrderNo = 5, Visible = true, IsActive = true, IsDeleted = false, @@ -4416,10 +4399,9 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency { new() { Order=1, ColCount=1, ColSpan=1, ItemType="group", Items =[ - new EditingFormItemDto { Order = 1, DataField = "SurveyId", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, - new EditingFormItemDto { Order = 2, DataField = "EmployeeId", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, - new EditingFormItemDto { Order = 3, DataField = "SubmissionTime", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox }, - new EditingFormItemDto { Order = 4, DataField = "CreationTime", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxDateBox } + new EditingFormItemDto { Order = 1, DataField = "EmployeeId", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton }, + new EditingFormItemDto { Order = 2, DataField = "SubmissionTime", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox }, + new EditingFormItemDto { Order = 3, DataField = "CreationTime", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxDateBox } ]} }), CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] { @@ -4452,30 +4434,13 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency PermissionJson = DefaultFieldPermissionJson(listForm.Name), PivotSettingsJson = DefaultPivotSettingsJson }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "SurveyId", - Width = 200, - ListOrderNo = 2, - Visible = true, - IsActive = true, - IsDeleted = false, - AllowSearch = true, - LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Survey), "Id", "Title"), - ValidationRuleJson = DefaultValidationRuleRequiredJson, - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, new() { ListFormCode = listForm.ListFormCode, CultureName = LanguageCodes.En, SourceDbType = DbType.Guid, FieldName = "EmployeeId", Width = 100, - ListOrderNo = 3, + ListOrderNo = 2, Visible = true, IsActive = true, IsDeleted = false, @@ -4492,7 +4457,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency SourceDbType = DbType.DateTime, FieldName = "SubmissionTime", Width = 100, - ListOrderNo = 4, + ListOrderNo = 3, Visible = true, IsActive = true, IsDeleted = false, @@ -4508,7 +4473,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency SourceDbType = DbType.DateTime, FieldName = "CreationTime", Width = 100, - ListOrderNo = 5, + ListOrderNo = 4, Visible = true, IsActive = true, IsDeleted = false, diff --git a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Saas.cs b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Saas.cs index 4c40e05f..dbb1e6ac 100644 --- a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Saas.cs +++ b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_Saas.cs @@ -80,7 +80,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency ColumnOptionJson = DefaultColumnOptionJson, PermissionJson = DefaultPermissionJson(TenantManagementPermissions.Tenants.Create, TenantManagementPermissions.Tenants.Default, TenantManagementPermissions.Tenants.Update, TenantManagementPermissions.Tenants.Delete, TenantManagementPermissions.Tenants.Default + ".Export", TenantManagementPermissions.Tenants.Default + ".Import", TenantManagementPermissions.Tenants.Default + ".Note"), PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(TenantManagementPermissions.Tenants.Default, 800, 800, true, true, true, true, false), + EditingOptionJson = DefaultEditingOptionJson(TenantManagementPermissions.Tenants.Default, 800, 700, true, true, true, true, false), EditingFormJson = JsonSerializer.Serialize(new List() { new() { Order=1, ColCount=1, ColSpan=1, ItemType="group", Items = @@ -548,7 +548,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency new ListForm() { ListFormType = ListFormTypeEnum.List, - IsSubForm = false, + IsSubForm = true, ShowNote = true, LayoutJson = DefaultLayoutJson, CultureName = LanguageCodes.En, @@ -574,7 +574,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency ColumnOptionJson = DefaultColumnOptionJson, PermissionJson = DefaultPermissionJson(AppCodes.Branches), PagerOptionJson = DefaultPagerOptionJson, - EditingOptionJson = DefaultEditingOptionJson(AppCodes.Branches, 900, 800, true, true, true, true, false), + EditingOptionJson = DefaultEditingOptionJson(AppCodes.Branches, 800, 700, true, true, true, true, false), EditingFormJson = JsonSerializer.Serialize(new List() { new() { Order=1, ColCount=1, ColSpan=1, ItemType="group", Items = @@ -1656,7 +1656,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency await utils.CloneListFormWithFieldsAsync( _listFormRepository, _listFormFieldRepository, - ListFormCodes.Lists.Language, + listForm.ListFormCode, JsonSerializer.Serialize(new List() { new { TabTitle = "Language Texts", @@ -1681,7 +1681,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency new ListForm() { ListFormType = ListFormTypeEnum.List, - IsSubForm = false, + IsSubForm = true, ShowNote = true, LayoutJson = DefaultLayoutJson, CultureName = LanguageCodes.En, diff --git a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_SupplyChain.cs b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_SupplyChain.cs index e2f8987f..dbbf79e2 100644 --- a/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_SupplyChain.cs +++ b/api/src/Erp.Platform.DbMigrator/Seeds/ListFormSeeder_SupplyChain.cs @@ -1788,7 +1788,6 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend new EditingFormItemDto { Order = 11, DataField="DailyTransferLimit", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox }, new EditingFormItemDto { Order = 12, DataField="IsDefault", ColSpan = 1, EditorType2 = EditorTypes.dxCheckBox }, new EditingFormItemDto { Order = 13, DataField="IsActive", ColSpan = 1, EditorType2 = EditorTypes.dxCheckBox }, - new EditingFormItemDto { Order = 14, DataField="PartnerId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox }, ]} }), FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { @@ -2038,22 +2037,6 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend PermissionJson = DefaultFieldPermissionJson(listForm.Name), PivotSettingsJson = DefaultPivotSettingsJson }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "PartnerId", - Width = 100, - ListOrderNo = 15, - Visible = true, - IsActive = true, - IsDeleted = false, - AllowSearch = true, - LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Partner), "Id", "Name"), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, ]); #endregion } @@ -2104,7 +2087,6 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend new EditingFormItemDto { Order = 2, DataField="Issuer", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox }, new EditingFormItemDto { Order = 3, DataField="IssueDate", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxDateBox }, new EditingFormItemDto { Order = 4, DataField="ExpiryDate", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxDateBox }, - new EditingFormItemDto { Order = 5, DataField="PartnerId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox }, ]} }), } @@ -2192,22 +2174,6 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend PermissionJson = DefaultFieldPermissionJson(AppCodes.SupplyChain.PartnerCertificate), PivotSettingsJson = DefaultPivotSettingsJson }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "PartnerId", - Width = 100, - ListOrderNo = 6, - Visible = true, - IsActive = true, - IsDeleted = false, - AllowSearch = true, - LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Partner), "Id", "Name"), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, ]); #endregion } @@ -2262,7 +2228,6 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend new EditingFormItemDto { Order = 6, DataField="MobileNumber", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox, EditorOptions = EditorOptionValues.PhoneEditorOptions }, new EditingFormItemDto { Order = 7, DataField="IsPrimary", ColSpan = 1, EditorType2 = EditorTypes.dxCheckBox }, new EditingFormItemDto { Order = 8, DataField="IsActive", ColSpan = 1, EditorType2 = EditorTypes.dxCheckBox }, - new EditingFormItemDto { Order = 9, DataField="PartnerId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox }, ]} }), FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { @@ -2416,22 +2381,6 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend PermissionJson = DefaultFieldPermissionJson(listForm.Name), PivotSettingsJson = DefaultPivotSettingsJson }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "PartnerId", - Width = 100, - ListOrderNo = 8, - Visible = true, - IsActive = true, - IsDeleted = false, - AllowSearch = true, - LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Partner), "Id", "Name"), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, ]); #endregion } @@ -2632,7 +2581,7 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend new ListForm() { ListFormType = ListFormTypeEnum.List, - IsSubForm = false, + IsSubForm = true, ShowNote = true, LayoutJson = DefaultLayoutJson, CultureName = LanguageCodes.En, @@ -2670,7 +2619,6 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend new EditingFormItemDto { Order = 3, DataField = "TimeoutDays", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox }, new EditingFormItemDto { Order = 4, DataField = "IsRequired", ColSpan = 1, EditorType2 = EditorTypes.dxCheckBox }, new EditingFormItemDto { Order = 5, DataField = "IsParallel", ColSpan = 1, EditorType2 = EditorTypes.dxCheckBox }, - new EditingFormItemDto { Order = 6, DataField = "ApprovalId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox }, ]} }), FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { @@ -2778,22 +2726,6 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend PermissionJson = DefaultFieldPermissionJson(listForm.Name), PivotSettingsJson = DefaultPivotSettingsJson }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "ApprovalId", - Width = 100, - ListOrderNo = 8, - Visible = true, - IsActive = true, - IsDeleted = false, - AllowSearch = true, - LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Approval), "Id", "Name"), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - } ]); #endregion } @@ -3254,7 +3186,6 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend new EditingFormItemDto { Order = 5, DataField="Specification", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox }, new EditingFormItemDto { Order = 6, DataField="Justification", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox }, new EditingFormItemDto { Order = 7, DataField="IsUrgent", ColSpan = 1, EditorType2 = EditorTypes.dxCheckBox }, - new EditingFormItemDto { Order = 8, DataField="RequestId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox }, ]} }), FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { @@ -3397,22 +3328,6 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend PermissionJson = DefaultFieldPermissionJson(listForm.Name), PivotSettingsJson = DefaultPivotSettingsJson }, - new() { - ListFormCode = listForm.ListFormCode, - CultureName = LanguageCodes.En, - SourceDbType = DbType.Guid, - FieldName = "RequestId", - Width = 130, - ListOrderNo = 8, - Visible = true, - IsActive = true, - IsDeleted = false, - AllowSearch = true, - LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Request), "Id", "RequestNumber"), - ColumnCustomizationJson = DefaultColumnCustomizationJson, - PermissionJson = DefaultFieldPermissionJson(listForm.Name), - PivotSettingsJson = DefaultPivotSettingsJson - }, ]); #endregion } diff --git a/api/src/Erp.Platform.DbMigrator/Seeds/PermissionsData.json b/api/src/Erp.Platform.DbMigrator/Seeds/PermissionsData.json index f7e83720..8e629555 100644 --- a/api/src/Erp.Platform.DbMigrator/Seeds/PermissionsData.json +++ b/api/src/Erp.Platform.DbMigrator/Seeds/PermissionsData.json @@ -11292,6 +11292,69 @@ "MultiTenancySide": 3, "MenuGroup": "Erp" }, + { + "GroupName": "App.Accounting", + "Name": "App.Accounting.BankAccount", + "ParentName": null, + "DisplayName": "App.Accounting.BankAccount", + "IsEnabled": true, + "MultiTenancySide": 3, + "MenuGroup": "Erp" + }, + { + "GroupName": "App.Accounting", + "Name": "App.Accounting.BankAccount.Create", + "ParentName": "App.Accounting.BankAccount", + "DisplayName": "Create", + "IsEnabled": true, + "MultiTenancySide": 3, + "MenuGroup": "Erp" + }, + { + "GroupName": "App.Accounting", + "Name": "App.Accounting.BankAccount.Update", + "ParentName": "App.Accounting.BankAccount", + "DisplayName": "Update", + "IsEnabled": true, + "MultiTenancySide": 3, + "MenuGroup": "Erp" + }, + { + "GroupName": "App.Accounting", + "Name": "App.Accounting.BankAccount.Delete", + "ParentName": "App.Accounting.BankAccount", + "DisplayName": "Delete", + "IsEnabled": true, + "MultiTenancySide": 3, + "MenuGroup": "Erp" + }, + { + "GroupName": "App.Accounting", + "Name": "App.Accounting.BankAccount.Export", + "ParentName": "App.Accounting.BankAccount", + "DisplayName": "Export", + "IsEnabled": true, + "MultiTenancySide": 3, + "MenuGroup": "Erp" + }, + { + "GroupName": "App.Accounting", + "Name": "App.Accounting.BankAccount.Import", + "ParentName": "App.Accounting.BankAccount", + "DisplayName": "Import", + "IsEnabled": true, + "MultiTenancySide": 3, + "MenuGroup": "Erp" + }, + { + "GroupName": "App.Accounting", + "Name": "App.Accounting.BankAccount.Note", + "ParentName": "App.Accounting.BankAccount", + "DisplayName": "Note", + "IsEnabled": true, + "MultiTenancySide": 3, + "MenuGroup": "Erp" + }, { "GroupName": "App.Accounting", "Name": "App.Accounting.CheckNote", diff --git a/api/src/Erp.Platform.Domain/Entities/Branch/Accounting/BankAccount.cs b/api/src/Erp.Platform.Domain/Entities/Branch/Accounting/BankAccount.cs index c7a9f203..dde4c2c6 100644 --- a/api/src/Erp.Platform.Domain/Entities/Branch/Accounting/BankAccount.cs +++ b/api/src/Erp.Platform.Domain/Entities/Branch/Accounting/BankAccount.cs @@ -7,7 +7,6 @@ namespace Erp.Platform.Entities; public class BankAccount : FullAuditedEntity, IMultiTenant { public Guid? TenantId { get; set; } - public Guid? BranchId { get; set; } public string AccountNumber { get; set; } public Guid BankId { get; set; } diff --git a/api/src/Erp.Platform.Domain/ListForms/ListFormManager.cs b/api/src/Erp.Platform.Domain/ListForms/ListFormManager.cs index 6da40a59..0b46615b 100644 --- a/api/src/Erp.Platform.Domain/ListForms/ListFormManager.cs +++ b/api/src/Erp.Platform.Domain/ListForms/ListFormManager.cs @@ -1,4 +1,5 @@ -using Erp.Platform.Entities; +using DocumentFormat.OpenXml.Drawing; +using Erp.Platform.Entities; using Erp.Platform.Enums; using Erp.Platform.Localization; using Erp.Platform.OrganizationUnits; @@ -61,6 +62,35 @@ public class ListFormManager : PlatformDomainService, IListFormManager cultureNameDefault = PlatformConsts.DefaultLanguage; } + public static DbType InferDbTypeFromString(string rawValue) + { + if (string.IsNullOrWhiteSpace(rawValue)) + return DbType.String; + + // Guid + if (Guid.TryParse(rawValue, out _)) + return DbType.Guid; + + // Boolean + if (bool.TryParse(rawValue, out _)) + return DbType.Boolean; + + // Integer (try Int64 first) + if (long.TryParse(rawValue, NumberStyles.Integer, CultureInfo.InvariantCulture, out _)) + return DbType.Int64; + + // Floating point + if (double.TryParse(rawValue, NumberStyles.Float | NumberStyles.AllowThousands, CultureInfo.InvariantCulture, out _)) + return DbType.Double; + + // Date/time + if (DateTimeOffset.TryParse(rawValue, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal, out _)) + return DbType.DateTimeOffset; + + // Default to string + return DbType.String; + } + public async Task GetUserListForm(string listFormCode) { var listForms = await listFormRepository.GetListAsync(a => @@ -123,6 +153,41 @@ public class ListFormManager : PlatformDomainService, IListFormManager } } + //Eğer alt form ise queryParameters içerisindeki dinamik sütunlar kullanılmalı + if (listForm.IsSubForm) + { + if (queryParameters != null) + { + var filters = queryParameters.GetValueOrDefault("filter"); + + foreach (var filter in filters) + { + var item = JsonSerializer.Deserialize>(filter); + var fieldName = item[0]; + var fieldValue = item[2]; + + if (!string.IsNullOrEmpty(fieldName) && !string.IsNullOrEmpty(fieldValue)) + { + var field = listFormFields.FirstOrDefault(c => c.FieldName == fieldName); + if (field == null) + { + fields.Add(fieldName, QueryHelper.GetFormattedValue(InferDbTypeFromString(fieldValue), fieldValue)); + } + else + { + if ((op == OperationEnum.Insert && !field.CanCreate) + || (op == OperationEnum.Update && !field.CanUpdate)) + { + continue; + } + + fields.Add(field.FieldName, QueryHelper.GetFormattedValue(field.SourceDbType, fieldValue)); + } + } + } + } + } + // if (listForm.IsBranch) // { // var ids = await branchUsersRepository.GetListAsync((a) => a.UserId == CurrentUser.Id.Value); diff --git a/api/src/Erp.Platform.Domain/Queries/SelectQueryManager.cs b/api/src/Erp.Platform.Domain/Queries/SelectQueryManager.cs index 62ccd011..8cd988d2 100644 --- a/api/src/Erp.Platform.Domain/Queries/SelectQueryManager.cs +++ b/api/src/Erp.Platform.Domain/Queries/SelectQueryManager.cs @@ -466,27 +466,31 @@ public class SelectQueryManager : PlatformDomainService, ISelectQueryManager return sqlPart; } + var fieldDbType = DbType.String; var fieldFilter = fieldName.Split('.'); var filterFieldName = fieldFilter.First().RemoveParentheses(); var filterGroupInterval = fieldFilter.Length > 1 ? fieldFilter.Last().ToLower() : null; var filterParamKey = $"@{filterFieldName}{customKey}"; var filterParamKeyLower = filterParamKey; + var filterOperator = op.RemoveParentheses(); + var filterValue = fieldValue.RemoveParentheses(); + var listFormField = listFormFields.FirstOrDefault(c => c.FieldName == filterFieldName); if (listFormField == null) { - return sqlPart; + fieldDbType = ListFormManager.InferDbTypeFromString(filterValue); + } + else + { + // filterGroupInterval sayı olduğu için (örn OrderDate.Month), eğer bu gelirse sayıya parse ediyoruz, + // diğer durumlarda field tipine parse ediyoruz + fieldDbType = filterGroupInterval switch + { + "year" or "quarter" or "month" or "day" or "dayOfWeek" => DbType.Int32, + _ => listFormField.SourceDbType + }; } - var filterOperator = op.RemoveParentheses(); - // filterGroupInterval sayı olduğu için (örn OrderDate.Month), eğer bu gelirse sayıya parse ediyoruz, - // diğer durumlarda field tipine parse ediyoruz - DbType dbType = filterGroupInterval switch - { - "year" or "quarter" or "month" or "day" or "dayOfWeek" => DbType.Int32, - _ => listFormField.SourceDbType - }; - - var filterValue = fieldValue.RemoveParentheses(); if (filterValue == "null") { if (filterOperator == "=") filterOperator = "isblank"; @@ -496,8 +500,8 @@ public class SelectQueryManager : PlatformDomainService, ISelectQueryManager var filterSqlFieldName = ConvertAliasToFieldName(filterFieldName, listFormFields, filterGroupInterval); if (filterOperator == "=" && DataSourceType == DataSourceTypeEnum.Postgresql && ( - dbType == DbType.String || - dbType == DbType.AnsiString)) + fieldDbType == DbType.String || + fieldDbType == DbType.AnsiString)) { filterSqlFieldName = $"lower({filterSqlFieldName})"; filterParamKeyLower = $"lower({filterParamKeyLower})"; @@ -538,7 +542,7 @@ public class SelectQueryManager : PlatformDomainService, ISelectQueryManager if (formatSql.Contains("{2}")) { - SelectQueryParameters.Add(filterParamKey, QueryHelper.GetFormattedValue(dbType, filterValue)); + SelectQueryParameters.Add(filterParamKey, QueryHelper.GetFormattedValue(fieldDbType, filterValue)); } return sqlPart; } diff --git a/api/src/Erp.Platform.EntityFrameworkCore/Migrations/20251116194718_Initial.Designer.cs b/api/src/Erp.Platform.EntityFrameworkCore/Migrations/20251117212636_Initial.Designer.cs similarity index 99% rename from api/src/Erp.Platform.EntityFrameworkCore/Migrations/20251116194718_Initial.Designer.cs rename to api/src/Erp.Platform.EntityFrameworkCore/Migrations/20251117212636_Initial.Designer.cs index 2053a291..4c4491a3 100644 --- a/api/src/Erp.Platform.EntityFrameworkCore/Migrations/20251116194718_Initial.Designer.cs +++ b/api/src/Erp.Platform.EntityFrameworkCore/Migrations/20251117212636_Initial.Designer.cs @@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore; namespace Erp.Platform.Migrations { [DbContext(typeof(PlatformDbContext))] - [Migration("20251116194718_Initial")] + [Migration("20251117212636_Initial")] partial class Initial { /// @@ -1230,9 +1230,6 @@ namespace Erp.Platform.Migrations b.Property("BankId") .HasColumnType("uniqueidentifier"); - b.Property("BranchId") - .HasColumnType("uniqueidentifier"); - b.Property("CanTransferMoney") .HasColumnType("bit"); diff --git a/api/src/Erp.Platform.EntityFrameworkCore/Migrations/20251116194718_Initial.cs b/api/src/Erp.Platform.EntityFrameworkCore/Migrations/20251117212636_Initial.cs similarity index 99% rename from api/src/Erp.Platform.EntityFrameworkCore/Migrations/20251116194718_Initial.cs rename to api/src/Erp.Platform.EntityFrameworkCore/Migrations/20251117212636_Initial.cs index f9176ee4..6c5f81a8 100644 --- a/api/src/Erp.Platform.EntityFrameworkCore/Migrations/20251116194718_Initial.cs +++ b/api/src/Erp.Platform.EntityFrameworkCore/Migrations/20251117212636_Initial.cs @@ -2674,7 +2674,6 @@ namespace Erp.Platform.Migrations { Id = table.Column(type: "uniqueidentifier", nullable: false), TenantId = table.Column(type: "uniqueidentifier", nullable: true), - BranchId = table.Column(type: "uniqueidentifier", nullable: true), AccountNumber = table.Column(type: "nvarchar(64)", maxLength: 64, nullable: false), BankId = table.Column(type: "uniqueidentifier", nullable: false), AccountOwner = table.Column(type: "nvarchar(256)", maxLength: 256, nullable: false), diff --git a/api/src/Erp.Platform.EntityFrameworkCore/Migrations/PlatformDbContextModelSnapshot.cs b/api/src/Erp.Platform.EntityFrameworkCore/Migrations/PlatformDbContextModelSnapshot.cs index e0d8ccf1..a040d627 100644 --- a/api/src/Erp.Platform.EntityFrameworkCore/Migrations/PlatformDbContextModelSnapshot.cs +++ b/api/src/Erp.Platform.EntityFrameworkCore/Migrations/PlatformDbContextModelSnapshot.cs @@ -1227,9 +1227,6 @@ namespace Erp.Platform.Migrations b.Property("BankId") .HasColumnType("uniqueidentifier"); - b.Property("BranchId") - .HasColumnType("uniqueidentifier"); - b.Property("CanTransferMoney") .HasColumnType("bit");