Lisans bilgileri takip ekranı

This commit is contained in:
Sedat Öztürk 2026-07-14 23:25:04 +03:00
parent 248af7ca1a
commit 6174253a40
16 changed files with 583 additions and 368 deletions

View file

@ -185,6 +185,7 @@ public static class LookupQueryValues
$"LEFT OUTER JOIN \"{FullNameTable(TableNameEnum.LanguageText)}\" " +
$"ON \"{FullNameTable(TableNameEnum.Product)}\".\"Name\" = \"{FullNameTable(TableNameEnum.LanguageText)}\".\"Key\" " +
$"WHERE \"{FullNameTable(TableNameEnum.Product)}\".\"IsDeleted\" = 'false' " +
$"AND \"{FullNameTable(TableNameEnum.LanguageText)}\".\"CultureName\" = 'tr' " +
$"ORDER BY \"{FullNameTable(TableNameEnum.LanguageText)}\".\"Value\";";
public static string MenuCodeValues =

View file

@ -1506,6 +1506,18 @@
"en": "Settings",
"tr": "Ayarlar"
},
{
"resourceName": "Platform",
"key": "App.Licence",
"en": "Licence",
"tr": "Lisans"
},
{
"resourceName": "Platform",
"key": "App.LicenceItem",
"en": "Licence Items",
"tr": "Lisans Kalemleri"
},
{
"resourceName": "Platform",
"key": "App.Settings",

View file

@ -5124,51 +5124,38 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
GroupPanelJson = DefaultGroupPanelJson(),
SelectionJson = DefaultSelectionSingleJson,
ColumnOptionJson = DefaultColumnOptionJson(),
DeleteCommand = DefaultDeleteCommand("AbpTenants"),
DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson(),
PagerOptionJson = DefaultPagerOptionJson,
EditingOptionJson = DefaultEditingOptionJson(listFormName, 900, 500, false, false, false, false, false, false),
PermissionJson = DefaultPermissionJson(listFormName),
EditingOptionJson = DefaultEditingOptionJson(listFormName, 900, 500, false, false, false, false, false, false),
EditingFormJson = JsonSerializer.Serialize(new List<EditingFormDto>()
{
new() { Order=1, ColCount=4, ColSpan=1, ItemType="group", Items =
[
new EditingFormItemDto { Order=1, DataField = "OrganizationName", ColSpan=4, EditorType2=EditorTypes.dxTextBox },
new EditingFormItemDto { Order=1, DataField = "OrganizationName", ColSpan=1, EditorType2=EditorTypes.dxTextBox },
new EditingFormItemDto { Order=2, DataField = "Name", ColSpan=1, EditorType2=EditorTypes.dxTextBox },
new EditingFormItemDto { Order=3, DataField = "Founder", ColSpan=1, EditorType2=EditorTypes.dxTextBox },
new EditingFormItemDto { Order=4, DataField = "VknTckn", ColSpan=1, EditorType2=EditorTypes.dxNumberBox },
new EditingFormItemDto { Order=5, DataField = "TaxOffice", ColSpan=1, EditorType2=EditorTypes.dxTextBox },
new EditingFormItemDto { Order=6, DataField = "MobileNumber", ColSpan=1, EditorType2=EditorTypes.dxTextBox, EditorOptions=EditorOptionValues.PhoneEditorOptions },
new EditingFormItemDto { Order=7, DataField = "PhoneNumber", ColSpan=1, EditorType2=EditorTypes.dxTextBox, EditorOptions=EditorOptionValues.PhoneEditorOptions },
new EditingFormItemDto { Order=8, DataField = "FaxNumber", ColSpan=1, EditorType2=EditorTypes.dxTextBox, EditorOptions=EditorOptionValues.PhoneEditorOptions },
new EditingFormItemDto { Order=9, DataField = "MenuGroup", ColSpan=1, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
new EditingFormItemDto { Order=10, DataField = "Email", ColSpan=1, EditorType2=EditorTypes.dxTextBox },
new EditingFormItemDto { Order=11, DataField = "Website", ColSpan=1, EditorType2=EditorTypes.dxTextBox },
new EditingFormItemDto { Order=12, DataField = "IsActive", ColSpan=1, EditorType2=EditorTypes.dxCheckBox },
new EditingFormItemDto { Order=13, DataField = "Country", ColSpan=1, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
new EditingFormItemDto { Order=14, DataField = "City", ColSpan=1, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
new EditingFormItemDto { Order=15, DataField = "District", ColSpan=1, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
new EditingFormItemDto { Order=16, DataField = "Township", ColSpan=1, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton, EditorScript = PlatformConsts.EditorScriptValues.SourceFieldItemWritetoDestination("Township", "Group", "PostalCode") },
new EditingFormItemDto { Order=17, DataField = "PostalCode", ColSpan=1, EditorType2=EditorTypes.dxTextBox, EditorOptions=EditorOptionValues.ShowClearButton },
new EditingFormItemDto { Order=18, DataField = "Address1", ColSpan=4, EditorType2=EditorTypes.dxTextArea },
new EditingFormItemDto { Order=19, DataField = "Address2", ColSpan=4, EditorType2=EditorTypes.dxTextArea },
new EditingFormItemDto { Order=6, DataField = "PhoneNumber", ColSpan=1, EditorType2=EditorTypes.dxTextBox, EditorOptions=EditorOptionValues.PhoneEditorOptions },
new EditingFormItemDto { Order=7, DataField = "Email", ColSpan=1, EditorType2=EditorTypes.dxTextBox },
new EditingFormItemDto { Order=8, DataField = "Website", ColSpan=1, EditorType2=EditorTypes.dxTextBox },
]
}
}),
// SubFormsJson = JsonSerializer.Serialize(new List<dynamic>() {
// new {
// TabType = ListFormTabTypeEnum.List,
// TabTitle = AppCodes.Branches,
// Code = AppCodes.Branches,
// Relation = new List<dynamic>() {
// new {
// ParentFieldName = "Id",
// DbType = DbType.Guid,
// ChildFieldName = "TenantId"
// }
// }
// }}
// )
SubFormsJson = JsonSerializer.Serialize(new List<dynamic>() {
new {
TabType = ListFormTabTypeEnum.List,
TabTitle = AppCodes.LicenceItem,
Code = AppCodes.LicenceItem,
Relation = new List<dynamic>() {
new {
ParentFieldName = "Id",
DbType = DbType.Guid,
ChildFieldName = "TenantId"
}
}
}}
)
}, autoSave: true
);
@ -5275,163 +5262,6 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
PivotSettingsJson = DefaultPivotSettingsJson
},
new ListFormField
{
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.String,
FieldName = "Country",
CaptionName = "App.Listform.ListformField.Country",
Width = 0,
ListOrderNo = 7,
Visible = true,
IsActive = true,
AllowSearch = true,
LookupJson = JsonSerializer.Serialize(new LookupDto
{
DataSourceType = UiLookupDataSourceTypeEnum.Query,
DisplayExpr = "Name",
ValueExpr = "Key",
LookupQuery = LookupQueryValues.CountryValues,
CascadeEmptyFields = "City,District,Township"
}),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new ListFormField
{
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.String,
FieldName = "City",
CaptionName = "App.Listform.ListformField.City",
Width = 0,
ListOrderNo = 8,
Visible = true,
IsActive = true,
AllowSearch = true,
LookupJson = JsonSerializer.Serialize(new LookupDto
{
DataSourceType = UiLookupDataSourceTypeEnum.Query,
DisplayExpr = "Name",
ValueExpr = "Key",
LookupQuery = LookupQueryValues.CityValues,
CascadeRelationField = "Country",
CascadeFilterOperator="=",
CascadeParentFields = "Country",
CascadeEmptyFields = "District,Township"
}),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new ListFormField
{
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.String,
FieldName = "District",
CaptionName = "App.Listform.ListformField.District",
Width = 0,
ListOrderNo = 9,
Visible = true,
IsActive = true,
AllowSearch = true,
LookupJson = JsonSerializer.Serialize(new LookupDto
{
DataSourceType = UiLookupDataSourceTypeEnum.Query,
DisplayExpr = "Name",
ValueExpr = "Key",
LookupQuery = LookupQueryValues.DistrictValues,
CascadeRelationField = "City",
CascadeFilterOperator="=",
CascadeParentFields = "Country,City",
CascadeEmptyFields = "Township",
}),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new ListFormField
{
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.String,
FieldName = "Township",
CaptionName = "App.Listform.ListformField.Township",
Width = 0,
ListOrderNo = 10,
Visible = true,
IsActive = true,
AllowSearch = true,
LookupJson = JsonSerializer.Serialize(new LookupDto
{
DataSourceType = UiLookupDataSourceTypeEnum.Query,
DisplayExpr = "Name",
ValueExpr = "Key",
LookupQuery = LookupQueryValues.TownshipValues,
CascadeRelationField = "District",
CascadeFilterOperator="=",
CascadeParentFields = "Country,City,District"
}),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new ListFormField
{
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.String,
FieldName = "Address1",
CaptionName = "App.Listform.ListformField.Address1",
Width = 0,
ListOrderNo = 11,
Visible = true,
IsActive = true,
AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new ListFormField
{
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.String,
FieldName = "Address2",
CaptionName = "App.Listform.ListformField.Address2",
Width = 0,
ListOrderNo = 12,
Visible = true,
IsActive = true,
AllowSearch = true,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new ListFormField
{
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.String,
FieldName = "PostalCode",
CaptionName = "App.Listform.ListformField.PostalCode",
Width = 0,
ListOrderNo = 13,
Visible = true,
IsActive = true,
AllowSearch = true,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new ListFormField
{
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
@ -5439,7 +5269,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
FieldName = "Email",
CaptionName = "App.Listform.ListformField.Email",
Width = 0,
ListOrderNo = 14,
ListOrderNo = 7,
Visible = true,
IsActive = true,
AllowSearch = true,
@ -5456,7 +5286,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
FieldName = "Website",
CaptionName = "App.Listform.ListformField.Website",
Width = 0,
ListOrderNo = 15,
ListOrderNo = 8,
Visible = true,
IsActive = true,
AllowSearch = true,
@ -5473,7 +5303,7 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
FieldName = "PhoneNumber",
CaptionName = "Abp.Identity.User.UserInformation.PhoneNumber",
Width = 0,
ListOrderNo = 16,
ListOrderNo = 9,
Visible = true,
IsActive = true,
AllowSearch = true,
@ -5483,77 +5313,260 @@ public class ListFormSeeder_Administration : IDataSeedContributor, ITransientDep
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new ListFormField
{
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.String,
FieldName = "MobileNumber",
CaptionName = "App.Listform.ListformField.MobileNumber",
Width = 0,
ListOrderNo = 17,
Visible = true,
IsActive = true,
AllowSearch = true,
EditorOptions = EditorOptionValues.PhoneEditorOptions,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new ListFormField
{
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Int64,
FieldName = "FaxNumber",
CaptionName = "App.Listform.ListformField.FaxNumber",
Width = 0,
ListOrderNo = 18,
Visible = true,
IsActive = true,
AllowSearch = true,
EditorOptions = EditorOptionValues.PhoneEditorOptions,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new ListFormField
{
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Boolean,
FieldName = "IsActive",
CaptionName = "App.Listform.ListformField.IsActive",
Width = 0,
ListOrderNo = 19,
Visible = true,
IsActive = true,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new ListFormField
{
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.String,
FieldName = "MenuGroup",
CaptionName = "App.Listform.ListformField.MenuGroup",
Width = 0,
ListOrderNo = 20,
Visible = true,
IsActive = true,
LookupJson = JsonSerializer.Serialize(new LookupDto {
DataSourceType = UiLookupDataSourceTypeEnum.Query,
DisplayExpr = "name",
ValueExpr = "key",
LookupQuery = LookupQueryValues.MenuGroupValues,
}),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
], autoSave: true);
#endregion
}
#endregion
#region Licence Item
listFormName = AppCodes.LicenceItem;
if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == listFormName))
{
var listForm = await _listFormRepository.InsertAsync(
new ListForm()
{
ListFormType = ListFormTypeEnum.List,
PageSize = 10,
ExportJson = DefaultExportJson,
IsSubForm = true,
ShowNote = false,
LayoutJson = DefaultLayoutJson(),
CultureName = LanguageCodes.En,
ListFormCode = listFormName,
Name = listFormName,
Title = listFormName,
DataSourceCode = SeedConsts.DataSources.DefaultCode,
IsTenant = false,
IsBranch = false,
IsOrganizationUnit = false,
Description = listFormName,
SelectCommandType = SelectCommandTypeEnum.View,
SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.OrderItem_ByTenantId)),
KeyFieldName = "Id",
KeyFieldDbSourceType = DbType.Guid,
SortMode = GridOptions.SortModeSingle,
FilterRowJson = DefaultFilterRowJson(),
HeaderFilterJson = DefaultHeaderFilterJson(),
SearchPanelJson = DefaultSearchPanelJson(),
GroupPanelJson = DefaultGroupPanelJson(),
SelectionJson = DefaultSelectionSingleJson,
ColumnOptionJson = DefaultColumnOptionJson(),
PermissionJson = DefaultPermissionJson(listFormName),
PagerOptionJson = DefaultPagerOptionJson,
EditingOptionJson = DefaultEditingOptionJson(listFormName, 600, 450, false, false, false, false, false),
}, autoSave: true
);
#region Licence Item Fields
await _listFormFieldRepository.InsertManyAsync([
new ListFormField
{
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Guid,
FieldName = "Id",
CaptionName = "App.Listform.ListformField.Id",
Width = 0,
ListOrderNo = 1,
Visible = false,
IsActive = true,
SortIndex = 0,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new ListFormField
{
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Guid,
FieldName = "ProductId",
CaptionName = "App.Listform.ListformField.ProductId",
Width = 0,
ListOrderNo = 2,
Visible = true,
IsActive = true,
AllowSearch = true,
LookupJson = JsonSerializer.Serialize(new LookupDto {
DataSourceType = UiLookupDataSourceTypeEnum.Query,
DisplayExpr = "name",
ValueExpr = "key",
LookupQuery = LookupQueryValues.ProductValues,
}),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new ListFormField
{
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.String,
FieldName = "BillingCycle",
CaptionName = "App.Listform.ListformField.BillingCycle",
Width = 0,
ListOrderNo = 3,
Visible = true,
IsActive = true,
AllowSearch = true,
LookupJson = JsonSerializer.Serialize(new LookupDto {
DataSourceType = UiLookupDataSourceTypeEnum.StaticData,
DisplayExpr = "name",
ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key="yearly", Name="Yearly" },
new () { Key="monthly", Name="Monthly" },
}),
}),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson
},
new ListFormField
{
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Int32,
FieldName = "Quantity",
CaptionName = "App.Listform.ListformField.Quantity",
Alignment = "right",
Width = 0,
ListOrderNo = 4,
Visible = true,
IsActive = true,
AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson,
EditorOptions=EditorOptionValues.NumberStandartFormat()
},
new ListFormField
{
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Decimal,
FieldName = "Price",
CaptionName = "App.Listform.ListformField.Price",
Alignment = "right",
Width = 0,
ListOrderNo = 5,
Visible = true,
IsActive = true,
AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson,
EditorOptions=EditorOptionValues.NumberStandartFormat()
},
new ListFormField
{
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Int32,
FieldName = "Period",
CaptionName = "App.Listform.ListformField.Period",
Alignment = "right",
Width = 0,
ListOrderNo = 6,
Visible = true,
IsActive = true,
AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson,
EditorOptions=EditorOptionValues.NumberStandartFormat()
},
new ListFormField
{
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Decimal,
FieldName = "VatRate",
CaptionName = "App.Listform.ListformField.VatRate",
Alignment = "right",
Width = 0,
ListOrderNo = 7,
Visible = true,
IsActive = true,
AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson,
EditorOptions=EditorOptionValues.NumberStandartFormat()
},
new ListFormField
{
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Decimal,
FieldName = "VatAmount",
CaptionName = "App.Listform.ListformField.VatAmount",
Alignment = "right",
Width = 0,
ListOrderNo = 8,
Visible = true,
IsActive = true,
AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson,
EditorOptions = EditorOptionValues.NumberStandartFormat(),
TotalSummaryJson = DefaultColumnTotalSummaryJson("VatAmount")
},
new ListFormField
{
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Decimal,
FieldName = "TotalPrice",
CaptionName = "App.Listform.ListformField.TotalPrice",
Alignment = "right",
Width = 0,
ListOrderNo = 9,
Visible = true,
IsActive = true,
AllowSearch = true,
ValidationRuleJson = DefaultValidationRuleRequiredJson,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson,
EditorOptions=EditorOptionValues.NumberStandartFormat(),
TotalSummaryJson = DefaultColumnTotalSummaryJson("TotalPrice")
},
new()
{
ListFormCode = listForm.ListFormCode,
CultureName = LanguageCodes.En,
SourceDbType = DbType.Guid,
FieldName = "TenantId",
CaptionName = "App.Listform.ListformField.TenantId",
Width = 0,
ListOrderNo = 10,
Visible = false,
IsActive = true,
AllowSearch = true,
ColumnCustomizationJson = DefaultColumnCustomizationJson,
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
PivotSettingsJson = DefaultPivotSettingsJson,
}
], autoSave: true);
#endregion
}

View file

@ -1083,11 +1083,21 @@
"RequiredPermissionName": "App.Definitions.OrgChart",
"IsDisabled": false
},
{
"ParentCode": "App.Administration",
"Code": "App.Licence",
"DisplayName": "App.Licence",
"Order": 2,
"Url": "/admin/form/App.Licence",
"Icon": "FcRules",
"RequiredPermissionName": "App.Licence",
"IsDisabled": false
},
{
"ParentCode": "App.Administration",
"Code": "App.Setting",
"DisplayName": "App.Setting",
"Order": 2,
"Order": 3,
"Url": "/admin/settings",
"Icon": "FcSettings",
"RequiredPermissionName": "App.Setting",
@ -1097,7 +1107,7 @@
"ParentCode": "App.Administration",
"Code": "App.Administration.Intranet",
"DisplayName": "App.Intranet",
"Order": 3,
"Order": 4,
"Url": null,
"Icon": "FcConferenceCall",
"RequiredPermissionName": null,
@ -1167,7 +1177,7 @@
"ParentCode": "App.Administration",
"Code": "App.Administration.Restrictions",
"DisplayName": "App.Restrictions",
"Order": 4,
"Order": 5,
"Url": null,
"Icon": "FaLock",
"RequiredPermissionName": null,
@ -1197,7 +1207,7 @@
"ParentCode": "App.Administration",
"Code": "Abp.Identity",
"DisplayName": "Abp.Identity",
"Order": 5,
"Order": 6,
"Url": null,
"Icon": "FcConferenceCall",
"RequiredPermissionName": null,
@ -1287,7 +1297,7 @@
"ParentCode": "App.Administration",
"Code": "App.Reports.Management",
"DisplayName": "App.Reports.Management",
"Order": 6,
"Order": 7,
"Url": null,
"Icon": "FcDocument",
"RequiredPermissionName": null,
@ -1317,7 +1327,7 @@
"ParentCode": "App.Administration",
"Code": "App.Videoroom.Dashboard",
"DisplayName": "App.Videoroom.Dashboard",
"Order": 7,
"Order": 8,
"Url": "/admin/videoroom/dashboard",
"Icon": "FcVideoCall",
"RequiredPermissionName": "App.Videoroom.Dashboard",
@ -1327,7 +1337,7 @@
"ParentCode": "App.Administration",
"Code": "App.Files",
"DisplayName": "App.Files",
"Order": 8,
"Order": 9,
"Url": "/admin/files",
"Icon": "FcFolder",
"RequiredPermissionName": "App.Files",
@ -1337,7 +1347,7 @@
"ParentCode": "App.Administration",
"Code": "App.Forum",
"DisplayName": "App.Forum",
"Order": 9,
"Order": 10,
"Url": "/admin/forum",
"Icon": "FcLink",
"RequiredPermissionName": "App.ForumManagement.Publish",

View file

@ -4175,7 +4175,7 @@
"DisplayName": "App.Intranet.Survey",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4184,7 +4184,7 @@
"DisplayName": "Create",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4193,7 +4193,7 @@
"DisplayName": "Update",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4202,7 +4202,7 @@
"DisplayName": "Delete",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4211,7 +4211,7 @@
"DisplayName": "Export",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4220,7 +4220,7 @@
"DisplayName": "Import",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4229,7 +4229,7 @@
"DisplayName": "Note",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4238,7 +4238,7 @@
"DisplayName": "Widget",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4247,7 +4247,7 @@
"DisplayName": "App.Intranet.SurveyQuestion",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4256,7 +4256,7 @@
"DisplayName": "Create",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4265,7 +4265,7 @@
"DisplayName": "Update",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4274,7 +4274,7 @@
"DisplayName": "Delete",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4283,7 +4283,7 @@
"DisplayName": "Export",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4292,7 +4292,7 @@
"DisplayName": "Import",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4301,7 +4301,7 @@
"DisplayName": "Note",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4310,7 +4310,7 @@
"DisplayName": "App.Intranet.SurveyQuestionOption",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4319,7 +4319,7 @@
"DisplayName": "Create",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4328,7 +4328,7 @@
"DisplayName": "Update",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4337,7 +4337,7 @@
"DisplayName": "Delete",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4346,7 +4346,7 @@
"DisplayName": "Export",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4355,7 +4355,7 @@
"DisplayName": "Import",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4364,7 +4364,7 @@
"DisplayName": "App.Intranet.SurveyResponse",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4373,7 +4373,7 @@
"DisplayName": "Create",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4382,7 +4382,7 @@
"DisplayName": "Update",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4391,7 +4391,7 @@
"DisplayName": "Delete",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4400,7 +4400,7 @@
"DisplayName": "Export",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4409,7 +4409,7 @@
"DisplayName": "Import",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4418,7 +4418,7 @@
"DisplayName": "Note",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4427,7 +4427,7 @@
"DisplayName": "App.Intranet.SurveyAnswer",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4436,7 +4436,7 @@
"DisplayName": "Create",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4445,7 +4445,7 @@
"DisplayName": "Update",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4454,7 +4454,7 @@
"DisplayName": "Delete",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4463,7 +4463,7 @@
"DisplayName": "Export",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4472,7 +4472,7 @@
"DisplayName": "Import",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp"
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4480,8 +4480,8 @@
"ParentName": null,
"DisplayName": "App.Videoroom",
"IsEnabled": true,
"MultiTenancySide": 2,
"MenuGroup": "Kurs"
"MultiTenancySide": 3,
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4489,8 +4489,8 @@
"ParentName": "App.Videoroom",
"DisplayName": "App.Videoroom.Dashboard",
"IsEnabled": true,
"MultiTenancySide": 2,
"MenuGroup": "Kurs"
"MultiTenancySide": 3,
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4498,8 +4498,8 @@
"ParentName": "App.Videoroom",
"DisplayName": "App.Videoroom.List",
"IsEnabled": true,
"MultiTenancySide": 2,
"MenuGroup": "Kurs"
"MultiTenancySide": 3,
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
@ -4507,8 +4507,116 @@
"ParentName": "App.Videoroom",
"DisplayName": "App.Videoroom.RoomDetail",
"IsEnabled": true,
"MultiTenancySide": 2,
"MenuGroup": "Kurs"
"MultiTenancySide": 3,
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
"Name": "App.Licence",
"ParentName": null,
"DisplayName": "App.Licence",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
"Name": "App.Licence.Create",
"ParentName": "App.Licence",
"DisplayName": "Create",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
"Name": "App.Licence.Update",
"ParentName": "App.Licence",
"DisplayName": "Update",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
"Name": "App.Licence.Delete",
"ParentName": "App.Licence",
"DisplayName": "Delete",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
"Name": "App.Licence.Export",
"ParentName": "App.Licence",
"DisplayName": "Export",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
"Name": "App.Licence.Import",
"ParentName": "App.Licence",
"DisplayName": "Import",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
"Name": "App.LicenceItem",
"ParentName": null,
"DisplayName": "App.LicenceItem",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
"Name": "App.LicenceItem.Create",
"ParentName": "App.LicenceItem",
"DisplayName": "Create",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
"Name": "App.LicenceItem.Update",
"ParentName": "App.LicenceItem",
"DisplayName": "Update",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
"Name": "App.LicenceItem.Delete",
"ParentName": "App.LicenceItem",
"DisplayName": "Delete",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
"Name": "App.LicenceItem.Export",
"ParentName": "App.LicenceItem",
"DisplayName": "Export",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp|Kurs"
},
{
"GroupName": "App.Administration",
"Name": "App.LicenceItem.Import",
"ParentName": "App.LicenceItem",
"DisplayName": "Import",
"IsEnabled": true,
"MultiTenancySide": 3,
"MenuGroup": "Erp|Kurs"
}
]
}

View file

@ -0,0 +1,8 @@
-- Create View
CREATE OR ALTER VIEW [dbo].[Sas_H_OrderItem_ByTenantId]
AS
SELECT dbo.Sas_H_OrderItem.Id, dbo.Sas_H_Order.TenantId, dbo.Sas_H_OrderItem.ProductId, dbo.Sas_H_OrderItem.ProductName, dbo.Sas_H_OrderItem.BillingCycle, dbo.Sas_H_OrderItem.Period, dbo.Sas_H_OrderItem.Quantity,
dbo.Sas_H_OrderItem.Price, dbo.Sas_H_OrderItem.VatRate, dbo.Sas_H_OrderItem.VatAmount, dbo.Sas_H_OrderItem.TotalPrice, dbo.Sas_H_OrderItem.OrderId
FROM dbo.Sas_H_Order INNER JOIN
dbo.Sas_H_OrderItem ON dbo.Sas_H_Order.Id = dbo.Sas_H_OrderItem.OrderId

View file

@ -63,6 +63,7 @@ public enum TableNameEnum
InstallmentOption,
Order,
OrderItem,
OrderItem_ByTenantId,
BlogCategory,
BlogPost,
Demo,
@ -94,5 +95,5 @@ public enum TableNameEnum
VideoroomAttandance,
VideoroomChat,
Sequence,
DbTableColumn
DbTableColumn,
}

View file

@ -59,6 +59,7 @@ public static class TableNameResolver
{ nameof(TableNameEnum.InstallmentOption), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.Order), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.OrderItem), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.OrderItem_ByTenantId), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.BlogCategory), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.BlogPost), (TablePrefix.PlatformByName, MenuPrefix.Saas) },
{ nameof(TableNameEnum.Demo), (TablePrefix.PlatformByName, MenuPrefix.Saas) },

View file

@ -417,6 +417,7 @@ public static class SeedConsts
public const string Jobs = Default + ".Jobs";
}
public const string Licence = Prefix.App + ".Licence";
public const string LicenceItem = Prefix.App + ".LicenceItem";
//Web Site
public const string Home = Prefix.App + ".Home";

View file

@ -52,7 +52,9 @@ public class QueryHelper
case DbType.String:
case DbType.AnsiString:
var strValues = values.Select(a => a?.ToString()).ToArray();
value = string.Join(PlatformConsts.MultiValueDelimiter, strValues);
value = isArray
? string.Join(PlatformConsts.MultiValueDelimiter, strValues)
: strValues[0];
break;
case DbType.Date:
case DbType.DateTime:

View file

@ -193,12 +193,8 @@ export const TenantForm: React.FC<TenantFormProps> = ({ onSubmit }) => {
const [foundTenantName, setFoundTenantName] = useState('')
const navigate = useNavigate()
const { translate } = useLocalization()
const { tenantData, tenantFormDraft } = useStoreState(
(state) => state.client.order,
)
const { setTenantFormDraft, clearTenant } = useStoreActions(
(actions) => actions.client.order,
)
const { tenantData, tenantFormDraft } = useStoreState((state) => state.client.order)
const { setTenantFormDraft, clearTenant } = useStoreActions((actions) => actions.client.order)
const hasRestoredTenantData = useRef(false)
useEffect(() => {
@ -681,7 +677,9 @@ export const TenantForm: React.FC<TenantFormProps> = ({ onSubmit }) => {
<div className="flex items-center gap-2">
<FaPhone className="w-4 h-4 text-gray-500" />
<span className="font-medium">{translate('::Abp.Identity.User.UserInformation.PhoneNumber')}:</span>
<span className="font-medium">
{translate('::Abp.Identity.User.UserInformation.PhoneNumber')}:
</span>
<span>{formData.phoneNumber}</span>
</div>
@ -999,41 +997,6 @@ export const TenantForm: React.FC<TenantFormProps> = ({ onSubmit }) => {
</div>
</div>
<div className="grid grid-cols-1 sm:grid-cols-2 gap-4">
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
{translate('::Public.contact.taxOffice')}
</label>
<div className="relative">
<FaBuilding className="absolute left-3 top-1/2 -translate-y-1/2 text-gray-400 w-5 h-5" />
<input
type="text"
required
placeholder="Sarıgazi"
value={formData.taxOffice}
onChange={(e) => handleInputChange('taxOffice', e.target.value)}
className="w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg bg-white text-gray-900 placeholder-gray-500 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-100 dark:placeholder-gray-400 focus:ring-2 focus:ring-blue-500 focus:border-transparent"
/>
</div>
</div>
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
{translate('::Public.contact.taxNumber')}
</label>
<div className="relative">
<FaDollarSign className="absolute left-3 top-1/2 -translate-y-1/2 text-gray-400 w-5 h-5" />
<input
type="text"
required
placeholder="1234567890"
value={formData.vknTckn}
onChange={(e) => handleInputChange('vknTckn', e.target.value)}
className="w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg bg-white text-gray-900 placeholder-gray-500 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-100 dark:placeholder-gray-400 focus:ring-2 focus:ring-blue-500 focus:border-transparent"
/>
</div>
</div>
</div>
<div className="grid grid-cols-1 sm:grid-cols-2 gap-4">
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
@ -1094,6 +1057,41 @@ export const TenantForm: React.FC<TenantFormProps> = ({ onSubmit }) => {
</div>
</div>
</div>
<div className="grid grid-cols-1 sm:grid-cols-2 gap-4">
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
{translate('::Public.contact.taxOffice')}
</label>
<div className="relative">
<FaBuilding className="absolute left-3 top-1/2 -translate-y-1/2 text-gray-400 w-5 h-5" />
<input
type="text"
required
placeholder="Sarıgazi"
value={formData.taxOffice}
onChange={(e) => handleInputChange('taxOffice', e.target.value)}
className="w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg bg-white text-gray-900 placeholder-gray-500 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-100 dark:placeholder-gray-400 focus:ring-2 focus:ring-blue-500 focus:border-transparent"
/>
</div>
</div>
<div>
<label className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
{translate('::Public.contact.taxNumber')}
</label>
<div className="relative">
<FaDollarSign className="absolute left-3 top-1/2 -translate-y-1/2 text-gray-400 w-5 h-5" />
<input
type="text"
required
placeholder="1234567890"
value={formData.vknTckn}
onChange={(e) => handleInputChange('vknTckn', e.target.value)}
className="w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg bg-white text-gray-900 placeholder-gray-500 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-100 dark:placeholder-gray-400 focus:ring-2 focus:ring-blue-500 focus:border-transparent"
/>
</div>
</div>
</div>
</div>
)}

View file

@ -84,7 +84,7 @@ const CreateTenantFromOrderDialog = ({
toast.push(
<Notification type="success" duration={2500}>
{translate('::App.Platform.SaveSuccess') || 'Tenant kaydedildi'}
{translate('::App.Platform.Success') || 'Tenant kaydedildi'}
</Notification>,
{ placement: 'bottom-end' },
)

View file

@ -2,7 +2,7 @@ import { Container, Loading } from '@/components/shared'
import { useLocalization } from '@/utils/hooks/useLocalization'
import type { DataType } from 'devextreme/common'
import type { SimpleItem } from 'devextreme/ui/form'
import { useEffect, useRef, useState } from 'react'
import { lazy, useEffect, useRef, useState } from 'react'
import { Helmet } from 'react-helmet'
import { useParams, useSearchParams } from 'react-router-dom'
import FormButtons from './FormButtons'
@ -13,10 +13,12 @@ import { useCurrentMenuIcon } from '@/utils/hooks/useCurrentMenuIcon'
import { Badge } from '@/components/ui'
import { APP_NAME } from '@/constants/app.constant'
import { FieldCustomValueTypeEnum } from '@/proxy/form/models'
import { getNextSequenceValue } from '@/services/form.service'
import { getList, getNextSequenceValue } from '@/services/form.service'
import { autoNumber } from '../list/Utils'
const FormNew = (
const FormView = lazy(() => import('./FormView'))
export const FormNewContent = (
props: FormProps = {
isSubForm: false,
},
@ -292,4 +294,53 @@ const FormNew = (
)
}
const FormNew = (
props: FormProps = {
isSubForm: false,
},
) => {
const params = useParams()
const listFormCode = props.listFormCode ?? params.listFormCode ?? ''
const [listFormType, setListFormType] = useState<string>()
const [loading, setLoading] = useState(true)
useEffect(() => {
let isActive = true
const resolveFormType = async () => {
setLoading(true)
try {
const response = await getList({ listFormCode })
if (isActive) {
setListFormType(response?.data?.gridOptions?.listFormType)
}
} finally {
if (isActive) {
setLoading(false)
}
}
}
if (listFormCode && !props.isSubForm) {
resolveFormType()
} else {
setLoading(false)
}
return () => {
isActive = false
}
}, [listFormCode, props.isSubForm])
if (loading) {
return <Loading loading type="default" />
}
if (!props.isSubForm && listFormType === 'Form') {
return <FormView {...props} listFormCode={listFormCode} />
}
return <FormNewContent {...props} listFormCode={listFormCode} />
}
export default FormNew

View file

@ -34,7 +34,7 @@ const FormView = (
const isNotePanel = () => {
return (
listFormCode &&
id &&
formData &&
!isSubForm &&
gridDto?.gridOptions?.showNote &&
checkPermission(gridDto?.gridOptions.permissionDto.n)
@ -71,6 +71,8 @@ const FormView = (
return <>{translate('::App.NoResults')}</>
}
const recordId = id || formData[gridDto?.gridOptions.keyFieldName ?? 'Id']
return (
<>
<Container
@ -103,14 +105,14 @@ const FormView = (
isSubForm={isSubForm}
mode={mode}
listFormCode={listFormCode}
id={formData?.Id}
id={recordId}
gridDto={gridDto!}
commandColumnData={commandColumnData!}
dataSource={dataSource!}
permissions={permissionResults}
handleSubmit={() => {}}
refreshData={fetchData}
getSelectedRowKeys={() => [id]}
getSelectedRowKeys={() => [recordId]}
getSelectedRowsData={() => [formData]}
getFilter={() => filter}
onActionEdit={props.onActionEdit}
@ -140,7 +142,7 @@ const FormView = (
{isNotePanel() && (
<NotePanel
entityName={listFormCode}
entityId={id}
entityId={recordId}
isVisible={isNotePanelVisible}
onToggle={() => setIsNotePanelVisible(!isNotePanelVisible)}
/>

View file

@ -9,7 +9,7 @@ import Grid from '../list/Grid'
import Chart from '../list/Chart'
import { GridDto, SubFormDto, SubFormTabTypeEnum } from '@/proxy/form/models'
import FormEdit from './FormEdit'
import FormNew from './FormNew'
import { FormNewContent as FormNew } from './FormNew'
import FormView from './FormView'
import { useLocalization } from '@/utils/hooks/useLocalization'
import Tree from '../list/Tree'

View file

@ -7,7 +7,7 @@ import { captionize } from 'devextreme/core/utils/inflector'
import CustomStore from 'devextreme/data/custom_store'
import type { GroupItem } from 'devextreme/ui/form'
import { useEffect, useRef, useState } from 'react'
import { useNavigate, useSearchParams } from 'react-router-dom'
import { useLocation, useNavigate, useSearchParams } from 'react-router-dom'
import { GridColumnData } from '../list/GridColumnData'
import { addCss, addJs } from '../list/Utils'
import { PermissionResults, RowMode, SimpleItemWithColData } from './types'
@ -50,6 +50,7 @@ const useGridData = (props: {
const refForm = useRef<FormRef>(null)
const previousFormDataRef = useRef<any>()
const [searchParams] = useSearchParams()
const location = useLocation()
const navigate = useNavigate()
const { translate } = useLocalization()
const { checkPermission } = usePermission()
@ -419,7 +420,13 @@ const useGridData = (props: {
}
if (mode !== 'new') {
setFilter([gridDto?.gridOptions.keyFieldName ?? 'Id', '=', id])
if (id) {
setFilter([gridDto?.gridOptions.keyFieldName ?? 'Id', '=', id])
} else {
// Form tipi listformlar ID olmadan açılabilir. Bu durumda kayıt seçimini
// sunucudaki DefaultFilter'a bırakıyoruz.
fetchData()
}
}
}, [id, gridReady])