Crm Oppurtinities
This commit is contained in:
parent
8531861338
commit
d2c5956b3e
42 changed files with 2650 additions and 426 deletions
|
|
@ -10,7 +10,7 @@ public class CrudMigrationDto : AuditedEntityDto<Guid>
|
|||
public string EntityName { get; set; } = string.Empty;
|
||||
public string FileName { get; set; } = string.Empty;
|
||||
public string SqlScript { get; set; } = string.Empty;
|
||||
public string Status { get; set; } = "pending"; // "pending" | "applied" | "failed"
|
||||
public string Status { get; set; } = "Askıda"; // "pending" | "applied" | "failed"
|
||||
public DateTime? AppliedAt { get; set; }
|
||||
public string? ErrorMessage { get; set; }
|
||||
}
|
||||
|
|
@ -21,7 +21,7 @@ public class CreateUpdateCrudMigrationDto
|
|||
public string EntityName { get; set; } = string.Empty;
|
||||
public string FileName { get; set; } = string.Empty;
|
||||
public string SqlScript { get; set; } = string.Empty;
|
||||
public string Status { get; set; } = "pending";
|
||||
public string Status { get; set; } = "Askıda";
|
||||
public DateTime? AppliedAt { get; set; }
|
||||
public string? ErrorMessage { get; set; }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,9 +14,9 @@ public class CustomEntityDto : FullAuditedEntityDto<Guid>
|
|||
public bool IsActive { get; set; } = true;
|
||||
public bool IsFullAuditedEntity { get; set; } = true;
|
||||
public bool IsMultiTenant { get; set; } = false;
|
||||
public string MigrationStatus { get; set; } = "pending";
|
||||
public string MigrationStatus { get; set; } = "Askıda";
|
||||
public Guid? MigrationId { get; set; }
|
||||
public string EndpointStatus { get; set; } = "pending";
|
||||
public string EndpointStatus { get; set; } = "Askıda";
|
||||
|
||||
public List<EntityFieldDto> Fields { get; set; } = [];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,50 @@ public static class LookupQueryValues
|
|||
{
|
||||
private const string defaultDomain = "Erp";
|
||||
|
||||
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 CustomerValues =
|
||||
$"SELECT " +
|
||||
$"\"Id\" AS \"Key\", " +
|
||||
$"\"Name\" AS \"Name\" " +
|
||||
$"FROM \"{FullNameTable(TableNameEnum.Partner)}\" " +
|
||||
$"WHERE \"PartyType\" = 'Customer' " +
|
||||
$"ORDER BY \"Name\"";
|
||||
|
||||
public static string SupplierValues =
|
||||
$"SELECT " +
|
||||
$"\"Id\" AS \"Key\", " +
|
||||
$"\"Name\" AS \"Name\" " +
|
||||
$"FROM \"{FullNameTable(TableNameEnum.Partner)}\" " +
|
||||
$"WHERE \"PartyType\" = 'Supplier' " +
|
||||
$"ORDER BY \"Name\"";
|
||||
|
||||
public static string PartnerContactValues =
|
||||
$"SELECT " +
|
||||
$"\"Id\" AS \"Key\", " +
|
||||
$"\"FullName\" AS \"Name\" " +
|
||||
$"FROM \"{FullNameTable(TableNameEnum.PartnerContact)}\" " +
|
||||
$"WHERE " +
|
||||
$"(\"PartnerId\" = @param0 OR @param0 IS NULL) " +
|
||||
$"AND \"IsActive\" = 'true' " +
|
||||
$"ORDER BY \"FullName\";";
|
||||
|
||||
public static string TenantValues =
|
||||
$"SELECT * FROM (" +
|
||||
$"SELECT NULL AS \"Key\", 'Host' AS \"Name\" " +
|
||||
|
|
@ -47,24 +91,6 @@ public static class LookupQueryValues
|
|||
$"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\", " +
|
||||
|
|
@ -169,4 +195,12 @@ public static class LookupQueryValues
|
|||
$"WHERE \"IsDeleted\" = 'false' " +
|
||||
"AND \"IsDisabled\" = 'false' " +
|
||||
$"ORDER BY \"ParentCode\", \"Order\";";
|
||||
|
||||
public static string OrganizationUnitSalesTeamValues =
|
||||
$"SELECT " +
|
||||
$"\"Code\" AS \"Key\", " +
|
||||
$"\"DisplayName\" AS \"Name\" " +
|
||||
$"FROM \"AbpOrganizationUnits\"" +
|
||||
$"WHERE \"Code\" LIKE '00001%' " +
|
||||
$"ORDER BY \"DisplayName\"";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -140,7 +140,7 @@ public class CrudEndpointGenerateAppService : CrudAppService<
|
|||
await _endpointRepository.InsertManyAsync(endpoints, autoSave: true);
|
||||
|
||||
// Entity endpoint durumu güncelle
|
||||
entity.EndpointStatus = "applied";
|
||||
entity.EndpointStatus = "Uygulandı";
|
||||
await _entityRepository.UpdateAsync(entity, autoSave: true);
|
||||
|
||||
var result = ObjectMapper.Map<List<CrudEndpoint>, List<CrudEndpointDto>>(endpoints);
|
||||
|
|
|
|||
|
|
@ -47,14 +47,14 @@ public class CrudMigrationAppService : CrudAppService<
|
|||
{
|
||||
await _customSqlExecutor.ExecuteSqlAsync(migration.SqlScript);
|
||||
|
||||
migration.Status = "applied";
|
||||
migration.Status = "Uygulandı";
|
||||
migration.AppliedAt = DateTime.UtcNow;
|
||||
migration.ErrorMessage = null;
|
||||
|
||||
await _migrationRepository.UpdateAsync(migration, autoSave: true);
|
||||
|
||||
var entity = await _entityRepository.GetAsync(migration.EntityId);
|
||||
entity.MigrationStatus = "applied";
|
||||
entity.MigrationStatus = "Uygulandı";
|
||||
await _entityRepository.UpdateAsync(entity, autoSave: true);
|
||||
|
||||
return ObjectMapper.Map<CrudMigration, CrudMigrationDto>(migration);
|
||||
|
|
@ -117,13 +117,13 @@ public class CrudMigrationAppService : CrudAppService<
|
|||
EntityName = entity.Name,
|
||||
FileName = fileName,
|
||||
SqlScript = sqlScript,
|
||||
Status = "pending"
|
||||
Status = "Askıda"
|
||||
};
|
||||
|
||||
migration = await _migrationRepository.InsertAsync(migration, autoSave: true);
|
||||
|
||||
entity.MigrationId = migration.Id;
|
||||
entity.MigrationStatus = "pending";
|
||||
entity.MigrationStatus = "Askıda";
|
||||
await _entityRepository.UpdateAsync(entity, autoSave: true);
|
||||
|
||||
return ObjectMapper.Map<CrudMigration, CrudMigrationDto>(migration);
|
||||
|
|
|
|||
|
|
@ -114,7 +114,7 @@ public class CustomEntityAppService : CrudAppService<
|
|||
|
||||
if (structureChanged && entity.MigrationStatus == "applied")
|
||||
{
|
||||
entity.MigrationStatus = "pending";
|
||||
entity.MigrationStatus = "Askıda";
|
||||
entity.MigrationId = null;
|
||||
}
|
||||
|
||||
|
|
@ -200,7 +200,7 @@ public class CustomEntityAppService : CrudAppService<
|
|||
IsActive = input.IsActive,
|
||||
IsFullAuditedEntity = input.IsFullAuditedEntity,
|
||||
IsMultiTenant = input.IsMultiTenant,
|
||||
MigrationStatus = "pending"
|
||||
MigrationStatus = "Askıda"
|
||||
};
|
||||
|
||||
// Fields ekle - sıralama ile
|
||||
|
|
|
|||
|
|
@ -9523,6 +9523,18 @@
|
|||
"tr": "Fırsatlar",
|
||||
"en": "Opportunities"
|
||||
},
|
||||
{
|
||||
"resourceName": "Platform",
|
||||
"key": "App.Crm.OpportunityAction",
|
||||
"tr": "Eylemler",
|
||||
"en": "Actions"
|
||||
},
|
||||
{
|
||||
"resourceName": "Platform",
|
||||
"key": "App.Crm.OpportunityCompetitor",
|
||||
"tr": "Rakipler",
|
||||
"en": "Competitors"
|
||||
},
|
||||
{
|
||||
"resourceName": "Platform",
|
||||
"key": "App.Crm.Activities",
|
||||
|
|
|
|||
|
|
@ -2185,13 +2185,13 @@ public class ListFormSeeder_Coordinator : IDataSeedContributor, ITransientDepend
|
|||
}),
|
||||
EditingFormJson = JsonSerializer.Serialize(new List<EditingFormDto>() {
|
||||
new() { Order=1, ColCount=1, ColSpan=1, ItemType="group", Items= [
|
||||
new EditingFormItemDto { Order = 1, DataField = "QuestionPoolId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 2, DataField = "QuestionType", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
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 },
|
||||
new EditingFormItemDto { Order = 7, DataField = "MediaType", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox },
|
||||
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 = 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 },
|
||||
|
|
|
|||
|
|
@ -328,11 +328,11 @@ public class ListFormSeeder_Crm : IDataSeedContributor, ITransientDependency
|
|||
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 = "PartyType", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions = EditorOptionValues.Disabled },
|
||||
new EditingFormItemDto { Order = 4, DataField = "SectorId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 4, DataField = "SectorId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 5, DataField = "TaxNumber", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox },
|
||||
new EditingFormItemDto { Order = 6, DataField = "TaxOffice", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox },
|
||||
new EditingFormItemDto { Order = 7, DataField = "CurrencyId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 8, DataField = "PaymentTermId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 7, DataField = "CurrencyId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 8, DataField = "PaymentTermId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 9, DataField = "CreditLimit", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox },
|
||||
]
|
||||
},
|
||||
|
|
@ -340,10 +340,10 @@ public class ListFormSeeder_Crm : IDataSeedContributor, ITransientDependency
|
|||
{
|
||||
Order = 2, Caption = "Address", ColCount = 3, ColSpan = 2, ItemType = "group", Items =
|
||||
[
|
||||
new EditingFormItemDto { Order = 10, DataField = "Country", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 11, DataField = "City", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 12, DataField = "District", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 13, DataField = "Street", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 10, DataField = "Country", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 11, DataField = "City", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 12, DataField = "District", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 13, DataField = "Street", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 14, DataField = "Address1", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox },
|
||||
new EditingFormItemDto { Order = 15, DataField = "Address2", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox },
|
||||
new EditingFormItemDto { Order = 16, DataField = "PostalCode", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox },
|
||||
|
|
@ -358,10 +358,10 @@ public class ListFormSeeder_Crm : IDataSeedContributor, ITransientDependency
|
|||
{
|
||||
Order = 3, Caption="Supply Card", ColCount = 3, ColSpan = 2, ItemType = "group", Items =
|
||||
[
|
||||
new EditingFormItemDto { Order = 22, DataField = "CustomerTypeId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 23, DataField = "CustomerSegmentId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 24, DataField = "EmployeeId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 25, DataField = "TeamCode", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 22, DataField = "CustomerTypeId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 23, DataField = "CustomerSegmentId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 24, DataField = "EmployeeId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 25, DataField = "TeamCode", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 26, DataField = "TotalRevenue", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox },
|
||||
new EditingFormItemDto { Order = 27, DataField = "AverageOrderValue", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox },
|
||||
new EditingFormItemDto { Order = 28, DataField = "LifetimeValue", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox },
|
||||
|
|
@ -376,7 +376,7 @@ public class ListFormSeeder_Crm : IDataSeedContributor, ITransientDependency
|
|||
new() { FieldName = "TotalRevenue", FieldDbType = DbType.Decimal, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value },
|
||||
new() { FieldName = "AverageOrderValue", FieldDbType = DbType.Decimal, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value },
|
||||
new() { FieldName = "LifetimeValue", FieldDbType = DbType.Decimal, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value },
|
||||
new() { FieldName = "Status", FieldDbType = DbType.String, Value = "Active", CustomValueType = FieldCustomValueTypeEnum.Value },
|
||||
new() { FieldName = "Status", FieldDbType = DbType.String, Value = "Aktif", CustomValueType = FieldCustomValueTypeEnum.Value },
|
||||
new() { FieldName = "Country", FieldDbType = DbType.String, Value = "TR", CustomValueType = FieldCustomValueTypeEnum.Value },
|
||||
}),
|
||||
CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] {
|
||||
|
|
@ -840,10 +840,10 @@ public class ListFormSeeder_Crm : IDataSeedContributor, ITransientDependency
|
|||
DisplayExpr = "name",
|
||||
ValueExpr = "key",
|
||||
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
|
||||
new() { Key="Active", Name="Active" },
|
||||
new() { Key="Inactive", Name="Inactive" },
|
||||
new() { Key="Prospect", Name="Prospect" },
|
||||
new() { Key="Blocked", Name="Blocked" },
|
||||
new() { Key="Aktif", Name="Aktif" },
|
||||
new() { Key="Pasif", Name="Pasif" },
|
||||
new() { Key="Olasılık", Name="Olasılık" },
|
||||
new() { Key="Engellendi", Name="Engellendi" },
|
||||
}),
|
||||
}),
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
|
|
@ -978,7 +978,7 @@ public class ListFormSeeder_Crm : IDataSeedContributor, ITransientDependency
|
|||
}
|
||||
#endregion
|
||||
|
||||
#region Lost Reason
|
||||
#region Loss Reason
|
||||
if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == ListFormCodes.Lists.LossReason))
|
||||
{
|
||||
var listForm = await _listFormRepository.InsertAsync(
|
||||
|
|
@ -1021,7 +1021,7 @@ public class ListFormSeeder_Crm : IDataSeedContributor, ITransientDependency
|
|||
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 = 1, EditorType2 = EditorTypes.dxTextArea },
|
||||
new EditingFormItemDto { Order = 4, DataField="Category", ColSpan = 1, IsRequired =true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 4, DataField="Category", ColSpan = 1, IsRequired =true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 5, DataField="IsActive", ColSpan = 1, EditorType2 = EditorTypes.dxCheckBox },
|
||||
]}
|
||||
}),
|
||||
|
|
@ -1146,6 +1146,867 @@ public class ListFormSeeder_Crm : IDataSeedContributor, ITransientDependency
|
|||
}
|
||||
#endregion
|
||||
|
||||
#region Opportunity
|
||||
if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == ListFormCodes.Lists.Opportunity))
|
||||
{
|
||||
var listForm = await _listFormRepository.InsertAsync(
|
||||
new ListForm()
|
||||
{
|
||||
ListFormType = ListFormTypeEnum.List,
|
||||
IsSubForm = true,
|
||||
LayoutJson = DefaultLayoutJson,
|
||||
CultureName = LanguageCodes.En,
|
||||
ListFormCode = ListFormCodes.Lists.Opportunity,
|
||||
Name = AppCodes.Crm.Opportunity,
|
||||
Title = AppCodes.Crm.Opportunity,
|
||||
DataSourceCode = SeedConsts.DataSources.DefaultCode,
|
||||
IsTenant = true,
|
||||
IsBranch = false,
|
||||
IsOrganizationUnit = false,
|
||||
Description = AppCodes.Crm.Opportunity,
|
||||
SelectCommandType = SelectCommandTypeEnum.Table,
|
||||
SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Opportunity)),
|
||||
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.Crm.Opportunity),
|
||||
DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.Opportunity)),
|
||||
DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson,
|
||||
PagerOptionJson = DefaultPagerOptionJson,
|
||||
EditingOptionJson = DefaultEditingOptionJson(AppCodes.Crm.Opportunity, 500, 600, true, true, true, true, false),
|
||||
InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson,
|
||||
EditingFormJson = JsonSerializer.Serialize(new List<EditingFormDto>()
|
||||
{
|
||||
new() {
|
||||
Order=1, ColCount=1, ColSpan=1, ItemType="group", Items =[
|
||||
new EditingFormItemDto { Order = 1, DataField="Title", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox },
|
||||
new EditingFormItemDto { Order = 2, DataField="Description", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox },
|
||||
new EditingFormItemDto { Order = 3, DataField="PartnerId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 4, DataField="ContactId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 5, DataField="Stage", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 6, DataField="Probability", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox },
|
||||
new EditingFormItemDto { Order = 7, DataField="EstimatedValue", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox, EditorOptions = EditorOptionValues.NumberStandartFormat },
|
||||
new EditingFormItemDto { Order = 8, DataField="CurrencyId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 9, DataField="ExpectedCloseDate", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxDateBox },
|
||||
new EditingFormItemDto { Order = 10, DataField="ActualCloseDate", ColSpan = 1, EditorType2 = EditorTypes.dxDateBox },
|
||||
new EditingFormItemDto { Order = 11, DataField="EmployeeId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 12, DataField="TeamCode", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 13, DataField="SourceId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 14, DataField="LossReasonId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 15, DataField="Status", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
]}
|
||||
}),
|
||||
FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] {
|
||||
new() { FieldName = "Probability", FieldDbType = DbType.Int32, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value },
|
||||
new() { FieldName = "EstimatedValue", FieldDbType = DbType.Decimal, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value },
|
||||
new() { FieldName = "ExpectedCloseDate", FieldDbType = DbType.Date, Value = "@NOW", CustomValueType = FieldCustomValueTypeEnum.Value },
|
||||
new() { FieldName = "Status", FieldDbType = DbType.String, Value = "Aktif", CustomValueType = FieldCustomValueTypeEnum.Value },
|
||||
new() { FieldName = "Stage", FieldDbType = DbType.String, Value = "Qualification", CustomValueType = FieldCustomValueTypeEnum.Value }
|
||||
}),
|
||||
CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] {
|
||||
new() {
|
||||
Hint = "Manage",
|
||||
Text ="Manage",
|
||||
UrlTarget="_blank",
|
||||
AuthName = AppCodes.Crm.Opportunity + ".Update",
|
||||
Url=$"/admin/form/{utils.GetDefaultFormCodes(ListFormCodes.Lists.Opportunity)}/@Id"
|
||||
},
|
||||
}),
|
||||
}, autoSave: true
|
||||
);
|
||||
|
||||
#region Opportunity Fields
|
||||
await _listFormFieldRepository.InsertManyAsync([
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.Guid,
|
||||
FieldName = "Id",
|
||||
Width = 100,
|
||||
ListOrderNo = 1,
|
||||
Visible = false,
|
||||
IsActive = true,
|
||||
IsDeleted = false,
|
||||
SortIndex = 0,
|
||||
ValidationRuleJson = DefaultValidationRuleRequiredJson,
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
PivotSettingsJson = DefaultPivotSettingsJson
|
||||
},
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.String,
|
||||
FieldName = "Title",
|
||||
Width = 100,
|
||||
ListOrderNo = 2,
|
||||
Visible = true,
|
||||
IsActive = true,
|
||||
IsDeleted = false,
|
||||
AllowSearch = true,
|
||||
ValidationRuleJson = DefaultValidationRuleRequiredJson,
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
PivotSettingsJson = DefaultPivotSettingsJson
|
||||
},
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.String,
|
||||
FieldName = "Description",
|
||||
Width = 250,
|
||||
ListOrderNo = 3,
|
||||
Visible = true,
|
||||
IsActive = true,
|
||||
IsDeleted = false,
|
||||
AllowSearch = true,
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
PivotSettingsJson = DefaultPivotSettingsJson
|
||||
},
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.Guid,
|
||||
FieldName = "PartnerId",
|
||||
Width = 250,
|
||||
ListOrderNo = 4,
|
||||
Visible = true,
|
||||
IsActive = true,
|
||||
IsDeleted = false,
|
||||
AllowSearch = true,
|
||||
LookupJson = JsonSerializer.Serialize(new LookupDto
|
||||
{
|
||||
DataSourceType = UiLookupDataSourceTypeEnum.Query,
|
||||
DisplayExpr = "Name",
|
||||
ValueExpr = "Key",
|
||||
LookupQuery = LookupQueryValues.CustomerValues,
|
||||
CascadeEmptyFields = "ContactId"
|
||||
}),
|
||||
ValidationRuleJson = DefaultValidationRuleRequiredJson,
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
PivotSettingsJson = DefaultPivotSettingsJson
|
||||
},
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.Guid,
|
||||
FieldName = "ContactId",
|
||||
Width = 100,
|
||||
ListOrderNo = 5,
|
||||
Visible = true,
|
||||
IsActive = true,
|
||||
IsDeleted = false,
|
||||
AllowSearch = true,
|
||||
LookupJson = JsonSerializer.Serialize(new LookupDto
|
||||
{
|
||||
DataSourceType = UiLookupDataSourceTypeEnum.Query,
|
||||
DisplayExpr = "Name",
|
||||
ValueExpr = "Key",
|
||||
LookupQuery = LookupQueryValues.PartnerContactValues,
|
||||
CascadeRelationField = "PartnerId",
|
||||
CascadeFilterOperator="=",
|
||||
CascadeParentFields = "PartnerId",
|
||||
}),
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
PivotSettingsJson = DefaultPivotSettingsJson
|
||||
},
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.String,
|
||||
FieldName = "Stage",
|
||||
Width = 100,
|
||||
ListOrderNo = 6,
|
||||
Visible = true,
|
||||
IsActive = true,
|
||||
IsDeleted = false,
|
||||
AllowSearch = true,
|
||||
LookupJson = JsonSerializer.Serialize(new LookupDto
|
||||
{
|
||||
DataSourceType = UiLookupDataSourceTypeEnum.StaticData,
|
||||
DisplayExpr = "name",
|
||||
ValueExpr = "key",
|
||||
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
|
||||
new() { Key="Qualification", Name="Qualification" },
|
||||
new() { Key="NeedsAnalysis", Name="NeedsAnalysis" },
|
||||
new() { Key="Proposal", Name="Proposal" },
|
||||
new() { Key="Negotiation", Name="Negotiation" },
|
||||
new() { Key="ClosedWon", Name="ClosedWon" },
|
||||
new() { Key="ClosedLost", Name="ClosedLost" },
|
||||
}),
|
||||
}),
|
||||
ValidationRuleJson = DefaultValidationRuleRequiredJson,
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
PivotSettingsJson = DefaultPivotSettingsJson
|
||||
},
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.Int32,
|
||||
FieldName = "Probability",
|
||||
Width = 100,
|
||||
ListOrderNo = 7,
|
||||
Visible = true,
|
||||
IsActive = true,
|
||||
IsDeleted = false,
|
||||
AllowSearch = true,
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
PivotSettingsJson = DefaultPivotSettingsJson
|
||||
},
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.Decimal,
|
||||
FieldName = "EstimatedValue",
|
||||
Format = "fixedPoint",
|
||||
Alignment = "right",
|
||||
Width = 100,
|
||||
ListOrderNo = 8,
|
||||
Visible = true,
|
||||
IsActive = true,
|
||||
IsDeleted = false,
|
||||
AllowSearch = true,
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
PivotSettingsJson = DefaultPivotSettingsJson
|
||||
},
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.Guid,
|
||||
FieldName = "CurrencyId",
|
||||
Width = 100,
|
||||
ListOrderNo = 9,
|
||||
Visible = true,
|
||||
IsActive = true,
|
||||
IsDeleted = false,
|
||||
AllowSearch = true,
|
||||
LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Currency), "Id", "Code"),
|
||||
ValidationRuleJson = DefaultValidationRuleRequiredJson,
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
PivotSettingsJson = DefaultPivotSettingsJson
|
||||
},
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.DateTime,
|
||||
FieldName = "ExpectedCloseDate",
|
||||
Width = 100,
|
||||
ListOrderNo = 10,
|
||||
Visible = true,
|
||||
IsActive = true,
|
||||
IsDeleted = false,
|
||||
AllowSearch = true,
|
||||
ValidationRuleJson = DefaultValidationRuleRequiredJson,
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
PivotSettingsJson = DefaultPivotSettingsJson
|
||||
},
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.DateTime,
|
||||
FieldName = "ActualCloseDate",
|
||||
Width = 100,
|
||||
ListOrderNo = 11,
|
||||
Visible = true,
|
||||
IsActive = true,
|
||||
IsDeleted = false,
|
||||
AllowSearch = true,
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
PivotSettingsJson = DefaultPivotSettingsJson
|
||||
},
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.Guid,
|
||||
FieldName = "EmployeeId",
|
||||
Width = 100,
|
||||
ListOrderNo = 12,
|
||||
Visible = true,
|
||||
IsActive = true,
|
||||
IsDeleted = false,
|
||||
AllowSearch = true,
|
||||
LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Employee), "Id", "FullName"),
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
PivotSettingsJson = DefaultPivotSettingsJson
|
||||
},
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.String,
|
||||
FieldName = "TeamCode",
|
||||
Width = 100,
|
||||
ListOrderNo = 13,
|
||||
Visible = true,
|
||||
IsActive = true,
|
||||
IsDeleted = false,
|
||||
AllowSearch = true,
|
||||
LookupJson = JsonSerializer.Serialize(new LookupDto
|
||||
{
|
||||
DataSourceType = UiLookupDataSourceTypeEnum.Query,
|
||||
DisplayExpr = "Name",
|
||||
ValueExpr = "Key",
|
||||
LookupQuery = LookupQueryValues.OrganizationUnitSalesTeamValues,
|
||||
}),
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
PivotSettingsJson = DefaultPivotSettingsJson
|
||||
},
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.Guid,
|
||||
FieldName = "SourceId",
|
||||
Width = 100,
|
||||
ListOrderNo = 14,
|
||||
Visible = true,
|
||||
IsActive = true,
|
||||
IsDeleted = false,
|
||||
AllowSearch = true,
|
||||
LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Source), "Id", "Name"),
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
PivotSettingsJson = DefaultPivotSettingsJson
|
||||
},
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.Guid,
|
||||
FieldName = "LossReasonId",
|
||||
Width = 100,
|
||||
ListOrderNo = 15,
|
||||
Visible = true,
|
||||
IsActive = true,
|
||||
IsDeleted = false,
|
||||
AllowSearch = true,
|
||||
LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.LossReason), "Id", "Name"),
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
PivotSettingsJson = DefaultPivotSettingsJson
|
||||
},
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.String,
|
||||
FieldName = "Status",
|
||||
Width = 100,
|
||||
ListOrderNo = 16,
|
||||
Visible = true,
|
||||
IsActive = true,
|
||||
IsDeleted = false,
|
||||
AllowSearch = true,
|
||||
LookupJson = JsonSerializer.Serialize(new LookupDto {
|
||||
DataSourceType = UiLookupDataSourceTypeEnum.StaticData,
|
||||
DisplayExpr = "name",
|
||||
ValueExpr = "key",
|
||||
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
|
||||
new () { Key="Aktif",Name="Aktif" },
|
||||
new () { Key="Pasif",Name="Pasif" },
|
||||
}),
|
||||
}),
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
PivotSettingsJson = DefaultPivotSettingsJson
|
||||
},
|
||||
], autoSave: true);
|
||||
#endregion
|
||||
|
||||
// Sub Forms for Opportunity
|
||||
await utils.CloneListFormWithFieldsAsync(
|
||||
_listFormRepository,
|
||||
_listFormFieldRepository,
|
||||
listForm.ListFormCode,
|
||||
JsonSerializer.Serialize(new List<dynamic>() {
|
||||
new {
|
||||
TabTitle = "Actions",
|
||||
TabType = ListFormTabTypeEnum.List,
|
||||
Code = ListFormCodes.Lists.OpportunityAction,
|
||||
Relation = new List<dynamic>() {
|
||||
new {
|
||||
ParentFieldName = "Id",
|
||||
ChildFieldName = "OpportunityId"
|
||||
}
|
||||
}
|
||||
},
|
||||
new {
|
||||
TabTitle = "Competitors",
|
||||
TabType = ListFormTabTypeEnum.List,
|
||||
Code = ListFormCodes.Lists.OpportunityCompetitor,
|
||||
Relation = new List<dynamic>() {
|
||||
new {
|
||||
ParentFieldName = "Id",
|
||||
ChildFieldName = "OpportunityId"
|
||||
}
|
||||
}
|
||||
},
|
||||
})
|
||||
);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Action
|
||||
if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == ListFormCodes.Lists.OpportunityAction))
|
||||
{
|
||||
var listForm = await _listFormRepository.InsertAsync(
|
||||
new ListForm()
|
||||
{
|
||||
ListFormType = ListFormTypeEnum.List,
|
||||
IsSubForm = true,
|
||||
LayoutJson = DefaultLayoutJson,
|
||||
CultureName = LanguageCodes.En,
|
||||
ListFormCode = ListFormCodes.Lists.OpportunityAction,
|
||||
Name = AppCodes.Crm.OpportunityAction,
|
||||
Title = AppCodes.Crm.OpportunityAction,
|
||||
DataSourceCode = SeedConsts.DataSources.DefaultCode,
|
||||
IsTenant = true,
|
||||
IsBranch = false,
|
||||
IsOrganizationUnit = false,
|
||||
Description = AppCodes.Crm.OpportunityAction,
|
||||
SelectCommandType = SelectCommandTypeEnum.Table,
|
||||
SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Action)),
|
||||
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.Crm.OpportunityAction),
|
||||
DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.Action)),
|
||||
DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson,
|
||||
PagerOptionJson = DefaultPagerOptionJson,
|
||||
EditingOptionJson = DefaultEditingOptionJson(AppCodes.Crm.OpportunityAction, 500, 600, true, true, true, true, false),
|
||||
InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson,
|
||||
EditingFormJson = JsonSerializer.Serialize(new List<EditingFormDto>()
|
||||
{
|
||||
new() {
|
||||
Order=1, ColCount=1, ColSpan=1, ItemType="group", Items =[
|
||||
new EditingFormItemDto { Order = 1, DataField="ActionType", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 2, DataField="Subject", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox },
|
||||
new EditingFormItemDto { Order = 3, DataField="Description", ColSpan = 1, EditorType2 = EditorTypes.dxTextArea },
|
||||
new EditingFormItemDto { Order = 4, DataField="EmployeeId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 5, DataField="ActionDate", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxDateBox },
|
||||
new EditingFormItemDto { Order = 6, DataField="StartTime", ColSpan = 1, EditorType2 = EditorTypes.dxDateBox },
|
||||
new EditingFormItemDto { Order = 7, DataField="EndTime", ColSpan = 1, EditorType2 = EditorTypes.dxDateBox },
|
||||
new EditingFormItemDto { Order = 8, DataField="Duration", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox },
|
||||
new EditingFormItemDto { Order = 9, DataField="FollowUpDate", ColSpan = 1, EditorType2 = EditorTypes.dxDateBox },
|
||||
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[] {
|
||||
new() { FieldName = "ActionDate", FieldDbType = DbType.DateTime, Value = "@NOW", CustomValueType = FieldCustomValueTypeEnum.Value }
|
||||
}),
|
||||
}
|
||||
);
|
||||
|
||||
#region Action Fields
|
||||
await _listFormFieldRepository.InsertManyAsync([
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.Guid,
|
||||
FieldName = "Id",
|
||||
Width = 100,
|
||||
ListOrderNo = 1,
|
||||
Visible = false,
|
||||
IsActive = true,
|
||||
IsDeleted = false,
|
||||
SortIndex = 0,
|
||||
ValidationRuleJson = DefaultValidationRuleRequiredJson,
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
PivotSettingsJson = DefaultPivotSettingsJson
|
||||
},
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.String,
|
||||
FieldName = "ActionType",
|
||||
Width = 100,
|
||||
ListOrderNo = 2,
|
||||
Visible = true,
|
||||
IsActive = true,
|
||||
IsDeleted = false,
|
||||
AllowSearch = true,
|
||||
LookupJson = JsonSerializer.Serialize(new LookupDto
|
||||
{
|
||||
DataSourceType = UiLookupDataSourceTypeEnum.StaticData,
|
||||
DisplayExpr = "name",
|
||||
ValueExpr = "key",
|
||||
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
|
||||
new() { Key="Call", Name="Call" },
|
||||
new() { Key="Email", Name="Email" },
|
||||
new() { Key="Meeting", Name="Meeting" },
|
||||
new() { Key="Task", Name="Task" },
|
||||
new() { Key="Note", Name="Note" },
|
||||
new() { Key="Demo", Name="Demo" },
|
||||
new() { Key="Proposal", Name="Proposal" },
|
||||
}),
|
||||
}),
|
||||
ValidationRuleJson = DefaultValidationRuleRequiredJson,
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
PivotSettingsJson = DefaultPivotSettingsJson
|
||||
},
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.String,
|
||||
FieldName = "Subject",
|
||||
Width = 500,
|
||||
ListOrderNo = 3,
|
||||
Visible = true,
|
||||
IsActive = true,
|
||||
IsDeleted = false,
|
||||
AllowSearch = true,
|
||||
ValidationRuleJson = DefaultValidationRuleRequiredJson,
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
PivotSettingsJson = DefaultPivotSettingsJson
|
||||
},
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.String,
|
||||
FieldName = "Description",
|
||||
Width = 100,
|
||||
ListOrderNo = 4,
|
||||
Visible = true,
|
||||
IsActive = true,
|
||||
IsDeleted = false,
|
||||
AllowSearch = true,
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
PivotSettingsJson = DefaultPivotSettingsJson
|
||||
},
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.Guid,
|
||||
FieldName = "EmployeeId",
|
||||
Width = 100,
|
||||
ListOrderNo = 5,
|
||||
Visible = true,
|
||||
IsActive = true,
|
||||
IsDeleted = false,
|
||||
AllowSearch = true,
|
||||
LookupJson = LookupQueryValues.DefaultLookupQueryJson(nameof(TableNameEnum.Employee), "Id", "FullName"),
|
||||
ValidationRuleJson = DefaultValidationRuleRequiredJson,
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
PivotSettingsJson = DefaultPivotSettingsJson
|
||||
},
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.Date,
|
||||
FieldName = "ActionDate",
|
||||
Width = 100,
|
||||
ListOrderNo = 6,
|
||||
Visible = true,
|
||||
IsActive = true,
|
||||
IsDeleted = false,
|
||||
AllowSearch = true,
|
||||
ValidationRuleJson = DefaultValidationRuleRequiredJson,
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
PivotSettingsJson = DefaultPivotSettingsJson
|
||||
},
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.DateTime,
|
||||
FieldName = "StartTime",
|
||||
Width = 100,
|
||||
ListOrderNo = 7,
|
||||
Visible = true,
|
||||
IsActive = true,
|
||||
IsDeleted = false,
|
||||
AllowSearch = true,
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
PivotSettingsJson = DefaultPivotSettingsJson
|
||||
},
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.DateTime,
|
||||
FieldName = "EndTime",
|
||||
Width = 100,
|
||||
ListOrderNo = 8,
|
||||
Visible = true,
|
||||
IsActive = true,
|
||||
IsDeleted = false,
|
||||
AllowSearch = true,
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
PivotSettingsJson = DefaultPivotSettingsJson
|
||||
},
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.Int32,
|
||||
FieldName = "Duration",
|
||||
Width = 100,
|
||||
ListOrderNo = 9,
|
||||
Visible = true,
|
||||
IsActive = true,
|
||||
IsDeleted = false,
|
||||
AllowSearch = true,
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
PivotSettingsJson = DefaultPivotSettingsJson
|
||||
},
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.DateTime,
|
||||
FieldName = "FollowUpDate",
|
||||
Width = 100,
|
||||
ListOrderNo = 10,
|
||||
Visible = true,
|
||||
IsActive = true,
|
||||
IsDeleted = false,
|
||||
AllowSearch = true,
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
PivotSettingsJson = DefaultPivotSettingsJson
|
||||
},
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.String,
|
||||
FieldName = "FollowUpActivity",
|
||||
Width = 200,
|
||||
ListOrderNo = 11,
|
||||
Visible = true,
|
||||
IsActive = true,
|
||||
IsDeleted = false,
|
||||
AllowSearch = true,
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
PivotSettingsJson = DefaultPivotSettingsJson
|
||||
},
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.String,
|
||||
FieldName = "Outcome",
|
||||
Width = 200,
|
||||
ListOrderNo = 12,
|
||||
Visible = true,
|
||||
IsActive = true,
|
||||
IsDeleted = false,
|
||||
AllowSearch = true,
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
PivotSettingsJson = DefaultPivotSettingsJson
|
||||
},
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.String,
|
||||
FieldName = "NextSteps",
|
||||
Width = 200,
|
||||
ListOrderNo = 13,
|
||||
Visible = true,
|
||||
IsActive = true,
|
||||
IsDeleted = false,
|
||||
AllowSearch = true,
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
PivotSettingsJson = DefaultPivotSettingsJson
|
||||
},
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.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
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Competitor
|
||||
if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == ListFormCodes.Lists.OpportunityCompetitor))
|
||||
{
|
||||
var listForm = await _listFormRepository.InsertAsync(
|
||||
new ListForm()
|
||||
{
|
||||
ListFormType = ListFormTypeEnum.List,
|
||||
IsSubForm = true,
|
||||
LayoutJson = DefaultLayoutJson,
|
||||
CultureName = LanguageCodes.En,
|
||||
ListFormCode = ListFormCodes.Lists.OpportunityCompetitor,
|
||||
Name = AppCodes.Crm.OpportunityCompetitor,
|
||||
Title = AppCodes.Crm.OpportunityCompetitor,
|
||||
DataSourceCode = SeedConsts.DataSources.DefaultCode,
|
||||
IsTenant = true,
|
||||
IsBranch = false,
|
||||
IsOrganizationUnit = false,
|
||||
Description = AppCodes.Crm.OpportunityCompetitor,
|
||||
SelectCommandType = SelectCommandTypeEnum.Table,
|
||||
SelectCommand = TableNameResolver.GetFullTableName(nameof(TableNameEnum.Competitor)),
|
||||
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.Crm.OpportunityCompetitor),
|
||||
DeleteCommand = DefaultDeleteCommand(nameof(TableNameEnum.Competitor)),
|
||||
DeleteFieldsDefaultValueJson = DefaultDeleteFieldsDefaultValueJson,
|
||||
PagerOptionJson = DefaultPagerOptionJson,
|
||||
EditingOptionJson = DefaultEditingOptionJson(AppCodes.Crm.OpportunityCompetitor, 500, 400, true, true, true, true, false),
|
||||
InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson,
|
||||
EditingFormJson = JsonSerializer.Serialize(new List<EditingFormDto>()
|
||||
{
|
||||
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="Website", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox },
|
||||
new EditingFormItemDto { Order = 3, DataField="Strengths", ColSpan = 1, EditorType2 = EditorTypes.dxTextArea },
|
||||
new EditingFormItemDto { Order = 4, DataField="Weaknesses", ColSpan = 1, EditorType2 = EditorTypes.dxTextArea },
|
||||
new EditingFormItemDto { Order = 5, DataField="MarketShare", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox },
|
||||
]}
|
||||
}),
|
||||
}
|
||||
);
|
||||
|
||||
#region Competitor Fields
|
||||
await _listFormFieldRepository.InsertManyAsync([
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.Guid,
|
||||
FieldName = "Id",
|
||||
Width = 100,
|
||||
ListOrderNo = 1,
|
||||
Visible = false,
|
||||
IsActive = true,
|
||||
IsDeleted = false,
|
||||
SortIndex = 0,
|
||||
ValidationRuleJson = DefaultValidationRuleRequiredJson,
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
PivotSettingsJson = DefaultPivotSettingsJson
|
||||
},
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.String,
|
||||
FieldName = "Name",
|
||||
Width = 300,
|
||||
ListOrderNo = 2,
|
||||
Visible = true,
|
||||
IsActive = true,
|
||||
IsDeleted = false,
|
||||
AllowSearch = true,
|
||||
ValidationRuleJson = DefaultValidationRuleRequiredJson,
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
PivotSettingsJson = DefaultPivotSettingsJson
|
||||
},
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.String,
|
||||
FieldName = "Website",
|
||||
Width = 200,
|
||||
ListOrderNo = 3,
|
||||
Visible = true,
|
||||
IsActive = true,
|
||||
IsDeleted = false,
|
||||
AllowSearch = true,
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
PivotSettingsJson = DefaultPivotSettingsJson
|
||||
},
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.String,
|
||||
FieldName = "Strengths",
|
||||
Width = 300,
|
||||
ListOrderNo = 4,
|
||||
Visible = true,
|
||||
IsActive = true,
|
||||
IsDeleted = false,
|
||||
AllowSearch = true,
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
PivotSettingsJson = DefaultPivotSettingsJson
|
||||
},
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.String,
|
||||
FieldName = "Weaknesses",
|
||||
Width = 300,
|
||||
ListOrderNo = 5,
|
||||
Visible = true,
|
||||
IsActive = true,
|
||||
IsDeleted = false,
|
||||
AllowSearch = true,
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
PivotSettingsJson = DefaultPivotSettingsJson
|
||||
},
|
||||
new() {
|
||||
ListFormCode = listForm.ListFormCode,
|
||||
CultureName = LanguageCodes.En,
|
||||
SourceDbType = DbType.Int32,
|
||||
FieldName = "MarketShare",
|
||||
Width = 100,
|
||||
ListOrderNo = 6,
|
||||
Visible = true,
|
||||
IsActive = true,
|
||||
IsDeleted = false,
|
||||
AllowSearch = true,
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
PivotSettingsJson = DefaultPivotSettingsJson
|
||||
},
|
||||
]);
|
||||
#endregion
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -186,11 +186,11 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
|
|||
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 = 1, EditorType2 = EditorTypes.dxTextArea },
|
||||
new EditingFormItemDto { Order = 4, DataField="DepartmentId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 5, DataField="Level", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 4, DataField="DepartmentId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 5, DataField="Level", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 6, DataField="MinSalary", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox, EditorOptions=EditorOptionValues.NumberStandartFormat },
|
||||
new EditingFormItemDto { Order = 7, DataField="MaxSalary", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox, EditorOptions=EditorOptionValues.NumberStandartFormat },
|
||||
new EditingFormItemDto { Order = 8, DataField="CurrencyId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 8, DataField="CurrencyId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 9, DataField="RequiredSkills", ColSpan = 1, EditorType2 = EditorTypes.dxTextArea },
|
||||
new EditingFormItemDto { Order = 10, DataField="Responsibilities", ColSpan = 1, EditorType2 = EditorTypes.dxTextArea },
|
||||
new EditingFormItemDto { Order = 11, DataField="Qualifications", ColSpan = 1, EditorType2 = EditorTypes.dxTextArea },
|
||||
|
|
@ -483,9 +483,9 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
|
|||
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 = 1, EditorType2 = EditorTypes.dxTextArea },
|
||||
new EditingFormItemDto { Order = 4, DataField="ParentDepartmentId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 5, DataField="ManagerId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 6, DataField="CostCenterId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 4, DataField="ParentDepartmentId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 5, DataField="ManagerId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 6, DataField="CostCenterId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 7, DataField="Budget", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox, EditorOptions=EditorOptionValues.NumberStandartFormat },
|
||||
new EditingFormItemDto { Order = 8, DataField="IsActive", ColSpan = 1, EditorType2 = EditorTypes.dxCheckBox}
|
||||
]}
|
||||
|
|
@ -699,13 +699,13 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
|
|||
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 = 1, EditorType2 = EditorTypes.dxTextArea },
|
||||
new EditingFormItemDto { Order = 4, DataField="Icon", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 4, DataField="Icon", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 5, DataField="Color", ColSpan = 1, EditorType2 = EditorTypes.dxColorBox },
|
||||
new EditingFormItemDto { Order = 6, DataField="BackgroundColor", ColSpan = 1, EditorType2 = EditorTypes.dxColorBox },
|
||||
new EditingFormItemDto { Order = 7, DataField="Category", ColSpan = 1, IsRequired =true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 7, DataField="Category", ColSpan = 1, IsRequired =true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 8, DataField="Criteria", ColSpan = 1, EditorType2 = EditorTypes.dxTextArea },
|
||||
new EditingFormItemDto { Order = 9, DataField="Points", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox },
|
||||
new EditingFormItemDto { Order = 10, DataField="Rarity", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 10, DataField="Rarity", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 11, DataField="IsActive", ColSpan = 1, EditorType2 = EditorTypes.dxCheckBox },
|
||||
]}
|
||||
}),
|
||||
|
|
@ -1005,13 +1005,13 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
|
|||
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 = 1, EditorType2 = EditorTypes.dxTextArea },
|
||||
new EditingFormItemDto { Order = 4, DataField="ParentCostCenterId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 5, DataField="ResponsibleEmployeeId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 6, DataField="DepartmentId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 7, DataField="CostCenterType", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 4, DataField="ParentCostCenterId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 5, DataField="ResponsibleEmployeeId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 6, DataField="DepartmentId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 7, DataField="CostCenterType", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 8, DataField="BudgetedAmount", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox, EditorOptions=EditorOptionValues.NumberStandartFormat },
|
||||
new EditingFormItemDto { Order = 9, DataField="ActualAmount", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox, EditorOptions=EditorOptionValues.NumberStandartFormat },
|
||||
new EditingFormItemDto { Order = 10, DataField="CurrencyId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 10, DataField="CurrencyId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 11, DataField="FiscalYear", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox },
|
||||
new EditingFormItemDto { Order = 12, DataField="IsActive", ColSpan = 1, EditorType2 = EditorTypes.dxCheckBox}
|
||||
]}
|
||||
|
|
@ -1306,10 +1306,10 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
|
|||
]},
|
||||
new() {
|
||||
Order=2, Caption="Contact", ColCount=2, ColSpan=1, ItemType="group", Items =[
|
||||
new EditingFormItemDto { Order = 1, DataField = "Country", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 2, DataField = "City", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 3, DataField = "District", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 4, DataField = "Street", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 1, DataField = "Country", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 2, DataField = "City", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 3, DataField = "District", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 4, DataField = "Street", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 5, DataField = "PostalCode", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox },
|
||||
new EditingFormItemDto { Order = 6, DataField = "PhoneNumber", ColSpan = 1, EditorType2=EditorTypes.dxTextBox, EditorOptions=EditorOptionValues.PhoneEditorOptions },
|
||||
new EditingFormItemDto { Order = 7, DataField = "MobileNumber", ColSpan = 1, EditorType2=EditorTypes.dxTextBox, EditorOptions=EditorOptionValues.PhoneEditorOptions },
|
||||
|
|
@ -1321,16 +1321,16 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
|
|||
Order=3, Caption="Job", ColCount=2, ColSpan=1, ItemType="group", Items =[
|
||||
new EditingFormItemDto { Order = 1, DataField = "HireDate", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxDateBox },
|
||||
new EditingFormItemDto { Order = 2, DataField = "TerminationDate", ColSpan = 1, EditorType2 = EditorTypes.dxDateBox },
|
||||
new EditingFormItemDto { Order = 3, DataField = "EmploymentTypeId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 4, DataField = "JobPositionId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 5, DataField = "DepartmentId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 3, DataField = "EmploymentTypeId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 4, DataField = "JobPositionId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 5, DataField = "DepartmentId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 6, DataField = "WorkLocation", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox },
|
||||
new EditingFormItemDto { Order = 7, DataField = "ManagerId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 7, DataField = "ManagerId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 8, DataField = "BaseSalary", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox, EditorOptions = EditorOptionValues.NumberStandartFormat },
|
||||
new EditingFormItemDto { Order = 9, DataField = "CurrencyId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 10, DataField = "PayrollGroup", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 11, DataField = "BankAccountId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 12, DataField = "BadgeId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 9, DataField = "CurrencyId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 10, DataField = "PayrollGroup", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 11, DataField = "BankAccountId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 12, DataField = "BadgeId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
]},
|
||||
new() {
|
||||
Order=4, Caption="Emergency", ColCount=1, ColSpan=1, ItemType="group", Items =[
|
||||
|
|
@ -1340,6 +1340,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
|
|||
]},
|
||||
}),
|
||||
FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] {
|
||||
new() { FieldName = "Country", FieldDbType = DbType.String, Value = "TR", CustomValueType = FieldCustomValueTypeEnum.Value },
|
||||
new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value }
|
||||
}),
|
||||
}
|
||||
|
|
@ -2010,8 +2011,8 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
|
|||
new() {
|
||||
Order=1, ColCount=1, ColSpan=1, ItemType="group", Items =[
|
||||
new EditingFormItemDto { Order = 1, DataField = "AppliedDate", ColSpan = 1, IsRequired=true, EditorType2 = EditorTypes.dxDateBox},
|
||||
new EditingFormItemDto { Order = 2, DataField = "EmployeeId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 3, DataField = "LeaveType", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 2, DataField = "EmployeeId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 3, DataField = "LeaveType", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 4, DataField = "StartDate", ColSpan = 1, IsRequired=true, EditorType2 = EditorTypes.dxDateBox, EditorScript = EditorScriptValues.CalcTotalDaysFromDates},
|
||||
new EditingFormItemDto { Order = 5, DataField = "EndDate", ColSpan = 1, IsRequired=true, EditorType2 = EditorTypes.dxDateBox, EditorScript = EditorScriptValues.CalcTotalDaysFromDates},
|
||||
new EditingFormItemDto { Order = 6, DataField = "TotalDays", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox, EditorOptions = EditorOptionValues.Disabled},
|
||||
|
|
@ -2021,7 +2022,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
|
|||
]}
|
||||
}),
|
||||
FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] {
|
||||
new() { FieldName = "Status", FieldDbType = DbType.String, Value = "Pending", CustomValueType = FieldCustomValueTypeEnum.Value },
|
||||
new() { FieldName = "Status", FieldDbType = DbType.String, Value = "Askıda", CustomValueType = FieldCustomValueTypeEnum.Value },
|
||||
new() { FieldName = "AppliedDate", FieldDbType = DbType.Date, Value = "@NOW", CustomValueType = FieldCustomValueTypeEnum.CustomKey },
|
||||
new() { FieldName = "IsHalfDay", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }
|
||||
}),
|
||||
|
|
@ -2220,10 +2221,10 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
|
|||
DisplayExpr = "name",
|
||||
ValueExpr = "key",
|
||||
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
|
||||
new () { Key= "Pending", Name= "Pending" },
|
||||
new () { Key= "Approved", Name= "Approved" },
|
||||
new () { Key= "Rejected", Name= "Rejected"},
|
||||
new () { Key= "Cancelled", Name= "Cancelled" },
|
||||
new () { Key= "Askıda", Name= "Askıda" },
|
||||
new () { Key= "Onaylı", Name= "Onaylı" },
|
||||
new () { Key= "Reddedildi", Name= "Reddedildi"},
|
||||
new () { Key= "İptal", Name= "İptal" },
|
||||
}),
|
||||
}),
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
|
|
@ -2336,18 +2337,18 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
|
|||
new() {
|
||||
Order=1, ColCount=1, ColSpan=1, ItemType="group", Items =[
|
||||
new EditingFormItemDto { Order = 1, DataField = "Date", ColSpan = 1, IsRequired=true, EditorType2 = EditorTypes.dxDateBox},
|
||||
new EditingFormItemDto { Order = 2, DataField = "EmployeeId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 2, DataField = "EmployeeId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 4, DataField = "StartTime", ColSpan = 1, IsRequired=true, EditorType2 = EditorTypes.dxDateBox, EditorOptions = EditorOptionValues.TimeSpanOptions, EditorScript = EditorScriptValues.CalcTotalHoursFromTimes},
|
||||
new EditingFormItemDto { Order = 5, DataField = "EndTime", ColSpan = 1, IsRequired=true, EditorType2 = EditorTypes.dxDateBox, EditorOptions = EditorOptionValues.TimeSpanOptions, EditorScript = EditorScriptValues.CalcTotalHoursFromTimes},
|
||||
new EditingFormItemDto { Order = 6, DataField = "TotalHours", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox, EditorOptions = EditorOptionValues.Disabled},
|
||||
new EditingFormItemDto { Order = 7, DataField = "Reason", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxTextArea},
|
||||
new EditingFormItemDto { Order = 8, DataField = "Rate", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox},
|
||||
new EditingFormItemDto { Order = 8, DataField = "Rate", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton},
|
||||
new EditingFormItemDto { Order = 9, DataField = "Amount", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox, EditorOptions = "{ \"disabled\" : true, \"format\" : { \"type\" : \"fixedPoint\", \"precision\" : 2 } }"},
|
||||
new EditingFormItemDto { Order = 10, DataField = "Status", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox},
|
||||
new EditingFormItemDto { Order = 10, DataField = "Status", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
]}
|
||||
}),
|
||||
FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] {
|
||||
new() { FieldName = "Status", FieldDbType = DbType.String, Value = "Pending", CustomValueType = FieldCustomValueTypeEnum.Value },
|
||||
new() { FieldName = "Status", FieldDbType = DbType.String, Value = "Askıda", CustomValueType = FieldCustomValueTypeEnum.Value },
|
||||
new() { FieldName = "Date", FieldDbType = DbType.Date, Value = "@NOW", CustomValueType = FieldCustomValueTypeEnum.CustomKey }
|
||||
}),
|
||||
CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] {
|
||||
|
|
@ -2544,10 +2545,10 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
|
|||
DisplayExpr = "name",
|
||||
ValueExpr = "key",
|
||||
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
|
||||
new () { Key= "Pending", Name= "Pending" },
|
||||
new () { Key= "Approved", Name= "Approved" },
|
||||
new () { Key= "Rejected", Name= "Rejected"},
|
||||
new () { Key= "Cancelled", Name= "Cancelled" },
|
||||
new () { Key= "Askıda", Name= "Askıda" },
|
||||
new () { Key= "Onaylı", Name= "Onaylı" },
|
||||
new () { Key= "Reddedildi", Name= "Reddedildi"},
|
||||
new () { Key= "İptal", Name= "İptal" },
|
||||
}),
|
||||
}),
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
|
|
@ -2659,10 +2660,10 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
|
|||
{
|
||||
new() {
|
||||
Order=1, ColCount=1, ColSpan=1, ItemType="group", Items =[
|
||||
new EditingFormItemDto { Order = 1, DataField = "EmployeeId", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 2, DataField = "Category", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 1, DataField = "EmployeeId", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 2, DataField = "Category", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 3, DataField = "Amount", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox, EditorOptions=EditorOptionValues.NumberStandartFormat },
|
||||
new EditingFormItemDto { Order = 4, DataField = "CurrencyId", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 4, DataField = "CurrencyId", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 5, DataField = "RequestDate", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxDateBox },
|
||||
new EditingFormItemDto { Order = 6, DataField = "Description", ColSpan=1, EditorType2 = EditorTypes.dxTextArea },
|
||||
new EditingFormItemDto { Order = 7, DataField = "Project", ColSpan=1, EditorType2 = EditorTypes.dxTextBox },
|
||||
|
|
@ -2672,6 +2673,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
|
|||
}),
|
||||
FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[]
|
||||
{
|
||||
new() { FieldName = "Status", FieldDbType = DbType.String, Value = "Askıda", CustomValueType = FieldCustomValueTypeEnum.Value },
|
||||
new() { FieldName = "RequestDate", FieldDbType = DbType.Date, Value = "@NOW", CustomValueType = FieldCustomValueTypeEnum.CustomKey }
|
||||
}),
|
||||
CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] {
|
||||
|
|
@ -2854,9 +2856,9 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
|
|||
DisplayExpr = "name",
|
||||
ValueExpr = "key",
|
||||
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
|
||||
new () { Key= "pending", Name= "Pending" },
|
||||
new () { Key= "approved", Name= "Approved" },
|
||||
new () { Key= "rejected", Name= "Rejected" },
|
||||
new () { Key= "Askıda", Name= "Askıda" },
|
||||
new () { Key= "Onaylı", Name= "Onaylı" },
|
||||
new () { Key= "Reddedildi", Name= "Reddedildi" },
|
||||
}),
|
||||
}),
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
|
|
@ -2938,9 +2940,9 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
|
|||
{
|
||||
new() {
|
||||
Order=1, ColCount=1, ColSpan=1, ItemType="group", Items = [
|
||||
new EditingFormItemDto { Order = 1, DataField = "EmployeeId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 1, DataField = "EmployeeId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 2, DataField = "PeriodYear", ColSpan = 1, IsRequired=true, EditorType2 = EditorTypes.dxNumberBox },
|
||||
new EditingFormItemDto { Order = 3, DataField = "PeriodMonth", ColSpan = 1, IsRequired=true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 3, DataField = "PeriodMonth", ColSpan = 1, IsRequired=true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 4, DataField = "PaymentDate", ColSpan = 1, IsRequired=true, EditorType2 = EditorTypes.dxDateBox },
|
||||
new EditingFormItemDto { Order = 5, DataField = "BaseSalary", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox, EditorOptions = EditorOptionValues.NumberStandartFormat },
|
||||
new EditingFormItemDto { Order = 6, DataField = "Overtime", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox, EditorOptions = EditorOptionValues.NumberStandartFormat },
|
||||
|
|
@ -2953,7 +2955,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
|
|||
]}
|
||||
}),
|
||||
FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] {
|
||||
new() { FieldName = "Status", FieldDbType = DbType.String, Value = "Draft", CustomValueType = FieldCustomValueTypeEnum.Value },
|
||||
new() { FieldName = "Status", FieldDbType = DbType.String, Value = "Taslak", CustomValueType = FieldCustomValueTypeEnum.Value },
|
||||
new() { FieldName = "PeriodYear", FieldDbType = DbType.Int32, Value = "@YEAR", CustomValueType = FieldCustomValueTypeEnum.CustomKey },
|
||||
new() { FieldName = "PeriodMonth", FieldDbType = DbType.Int32, Value = "@MONTH", CustomValueType = FieldCustomValueTypeEnum.CustomKey },
|
||||
new() { FieldName = "PaymentDate", FieldDbType = DbType.Date, Value = "@NOW", CustomValueType = FieldCustomValueTypeEnum.CustomKey },
|
||||
|
|
@ -3244,11 +3246,11 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
|
|||
DisplayExpr = "name",
|
||||
ValueExpr = "key",
|
||||
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
|
||||
new () { Key= "Draft", Name= "Draft" },
|
||||
new () { Key= "Calculated", Name= "Calculated" },
|
||||
new () { Key= "Approved", Name= "Approved"},
|
||||
new () { Key= "Paid", Name= "Paid" },
|
||||
new () { Key= "Cancelled", Name= "Cancelled" },
|
||||
new () { Key= "Taslak", Name= "Taslak" },
|
||||
new () { Key= "Hesaplandı", Name= "Hesaplandı" },
|
||||
new () { Key= "Onaylı", Name= "Onaylı"},
|
||||
new () { Key= "Ödendi", Name= "Ödendi" },
|
||||
new () { Key= "İptal", Name= "İptal" },
|
||||
}),
|
||||
}),
|
||||
PermissionJson = DefaultFieldPermissionJson(listForm.Name),
|
||||
|
|
@ -3451,16 +3453,16 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
|
|||
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 = "Description", ColSpan = 1, EditorType2 = EditorTypes.dxTextArea },
|
||||
new EditingFormItemDto { Order = 3, DataField = "TemplateId", ColSpan = 1, IsRequired=true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 3, DataField = "TemplateId", ColSpan = 1, IsRequired=true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 4, DataField = "StartDate", ColSpan = 1, IsRequired=true, EditorType2 = EditorTypes.dxDateBox },
|
||||
new EditingFormItemDto { Order = 5, DataField = "EndDate", ColSpan = 1, IsRequired=true, EditorType2 = EditorTypes.dxDateBox },
|
||||
new EditingFormItemDto { Order = 6, DataField = "Status", ColSpan = 1, IsRequired=true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 7, DataField = "DepartmentId", ColSpan = 1, IsRequired=true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 7, DataField = "DepartmentId", ColSpan = 1, IsRequired=true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 8, DataField = "TargetEmployees", ColSpan = 1, IsRequired=true, EditorType2 = EditorTypes.dxTagBox },
|
||||
]}
|
||||
}),
|
||||
FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] {
|
||||
new() { FieldName = "Status", FieldDbType = DbType.String, Value = "Draft", CustomValueType = FieldCustomValueTypeEnum.Value },
|
||||
new() { FieldName = "Status", FieldDbType = DbType.String, Value = "Taslak", CustomValueType = FieldCustomValueTypeEnum.Value },
|
||||
}),
|
||||
CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] {
|
||||
new() {
|
||||
|
|
@ -3592,10 +3594,10 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
|
|||
DisplayExpr = "name",
|
||||
ValueExpr = "key",
|
||||
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
|
||||
new () { Key= "Draft", Name= "Draft" },
|
||||
new () { Key= "Active", Name= "Active" },
|
||||
new () { Key= "Completed", Name= "Completed"},
|
||||
new () { Key= "Cancelled", Name= "Cancelled" },
|
||||
new () { Key= "Taslak", Name= "Taslak" },
|
||||
new () { Key= "Aktif", Name= "Aktif" },
|
||||
new () { Key= "Tamamlandı", Name= "Tamamlandı"},
|
||||
new () { Key= "İptal", Name= "İptal" },
|
||||
}),
|
||||
}),
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
|
|
@ -3684,8 +3686,8 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
|
|||
new EditingFormItemDto { Order = 1, DataField = "Title", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox },
|
||||
new EditingFormItemDto { Order = 2, DataField = "Description", ColSpan=1, EditorType2 = EditorTypes.dxTextArea },
|
||||
new EditingFormItemDto { Order = 3, DataField = "Instructor", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox },
|
||||
new EditingFormItemDto { Order = 4, DataField = "Category", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 5, DataField = "Type", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 4, DataField = "Category", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 5, DataField = "Type", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 6, DataField = "Location", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox },
|
||||
new EditingFormItemDto { Order = 7, DataField = "Thumbnail", ColSpan=1, EditorType2 = EditorTypes.dxTextBox },
|
||||
new EditingFormItemDto { Order = 8, DataField = "Duration", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox },
|
||||
|
|
@ -3697,7 +3699,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
|
|||
}),
|
||||
FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[]
|
||||
{
|
||||
new() { FieldName = "Status", FieldDbType = DbType.String, Value = "upcoming", CustomValueType = FieldCustomValueTypeEnum.Value },
|
||||
new() { FieldName = "Status", FieldDbType = DbType.String, Value = "Yaklaşan", CustomValueType = FieldCustomValueTypeEnum.Value },
|
||||
new() { FieldName = "MaxParticipants", FieldDbType = DbType.Int32, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value }
|
||||
}),
|
||||
CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] {
|
||||
|
|
@ -3960,9 +3962,9 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
|
|||
DisplayExpr = "name",
|
||||
ValueExpr = "key",
|
||||
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
|
||||
new () { Key= "upcoming", Name= "Upcoming" },
|
||||
new () { Key= "ongoing", Name= "Ongoing" },
|
||||
new () { Key= "completed", Name="Completed" },
|
||||
new () { Key= "Yaklaşan", Name= "Yaklaşan" },
|
||||
new () { Key= "Devam eden", Name= "Devam eden" },
|
||||
new () { Key= "Tamamlandı", Name="Tamamlandı" },
|
||||
}),
|
||||
}),
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
|
|
@ -4024,7 +4026,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
|
|||
FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[]
|
||||
{
|
||||
new() { FieldName = "IsAnonymous", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value },
|
||||
new() { FieldName = "Status", FieldDbType = DbType.String, Value = "draft", CustomValueType = FieldCustomValueTypeEnum.Value }
|
||||
new() { FieldName = "Status", FieldDbType = DbType.String, Value = "Taslak", CustomValueType = FieldCustomValueTypeEnum.Value }
|
||||
}),
|
||||
CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] {
|
||||
new() {
|
||||
|
|
@ -4120,9 +4122,9 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
|
|||
DisplayExpr = "name",
|
||||
ValueExpr = "key",
|
||||
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
|
||||
new () { Key= "draft", Name= "Draft" },
|
||||
new () { Key= "active", Name= "Active" },
|
||||
new () { Key= "closed", Name= "Closed" },
|
||||
new () { Key= "Taslak", Name= "Taslak" },
|
||||
new () { Key= "Aktif", Name= "Aktif" },
|
||||
new () { Key= "Kapalı", Name= "Kapalı" },
|
||||
}),
|
||||
}),
|
||||
ValidationRuleJson = DefaultValidationRuleRequiredJson,
|
||||
|
|
@ -4221,9 +4223,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 },
|
||||
new EditingFormItemDto { Order = 1, DataField = "SurveyId", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
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 },
|
||||
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 }
|
||||
]}
|
||||
}),
|
||||
|
|
@ -4398,8 +4400,8 @@ 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 },
|
||||
new EditingFormItemDto { Order = 2, DataField = "EmployeeId", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
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 }
|
||||
]}
|
||||
|
|
|
|||
|
|
@ -255,7 +255,7 @@ public class ListFormSeeder_Intranet : IDataSeedContributor, ITransientDependenc
|
|||
new EditingFormItemDto { Order = 2, DataField = "TypeId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 3, DataField = "Name", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox },
|
||||
new EditingFormItemDto { Order = 4, DataField = "Place", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox },
|
||||
new EditingFormItemDto { Order = 5, DataField = "EmployeeId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 5, DataField = "EmployeeId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 6, DataField = "Description", ColSpan = 1, EditorType2 = EditorTypes.dxTextArea },
|
||||
new EditingFormItemDto { Order = 7, DataField = "Status", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 8, DataField = "ParticipantsCount", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox },
|
||||
|
|
@ -444,9 +444,9 @@ public class ListFormSeeder_Intranet : IDataSeedContributor, ITransientDependenc
|
|||
DisplayExpr = "name",
|
||||
ValueExpr = "key",
|
||||
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
|
||||
new () { Key="Published",Name="Published" },
|
||||
new () { Key="Draft",Name="Draft" },
|
||||
new () { Key="Cancelled",Name="Cancelled" },
|
||||
new () { Key="Yayımlandı",Name="Yayımlandı" },
|
||||
new () { Key="Taslak",Name="Taslak" },
|
||||
new () { Key="İptal",Name="İptal" },
|
||||
}),
|
||||
}),
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
|
|
@ -686,9 +686,9 @@ public class ListFormSeeder_Intranet : IDataSeedContributor, ITransientDependenc
|
|||
{
|
||||
new() {
|
||||
Order=1, ColCount=1, ColSpan=1, ItemType="group", Items =[
|
||||
new EditingFormItemDto {Order=1,DataField="Type", IsRequired = true, ColSpan=1, EditorType2 = EditorTypes.dxSelectBox},
|
||||
new EditingFormItemDto {Order=1,DataField="Type", IsRequired = true, ColSpan=1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton},
|
||||
new EditingFormItemDto {Order=2,DataField="ResourceName", IsRequired = true, ColSpan=1, EditorType2 = EditorTypes.dxTextBox},
|
||||
new EditingFormItemDto {Order=3,DataField="EmployeeId", IsRequired = true, ColSpan=1, EditorType2 = EditorTypes.dxSelectBox},
|
||||
new EditingFormItemDto {Order=3,DataField="EmployeeId", IsRequired = true, ColSpan=1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton},
|
||||
new EditingFormItemDto {Order=4,DataField="StartDate", IsRequired = true, ColSpan=1, EditorType2 = EditorTypes.dxDateBox},
|
||||
new EditingFormItemDto {Order=5,DataField="EndDate", IsRequired = true, ColSpan=1, EditorType2 = EditorTypes.dxDateBox},
|
||||
new EditingFormItemDto {Order=6,DataField="Purpose", IsRequired = true, ColSpan=1, EditorType2 = EditorTypes.dxTextBox},
|
||||
|
|
@ -699,7 +699,7 @@ public class ListFormSeeder_Intranet : IDataSeedContributor, ITransientDependenc
|
|||
}),
|
||||
FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[]
|
||||
{
|
||||
new() { FieldName = "Status", FieldDbType = DbType.String, Value = "Pending", CustomValueType = FieldCustomValueTypeEnum.Value },
|
||||
new() { FieldName = "Status", FieldDbType = DbType.String, Value = "Askıda", CustomValueType = FieldCustomValueTypeEnum.Value },
|
||||
new() { FieldName = "Participants", FieldDbType = DbType.Int32, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value }
|
||||
})
|
||||
}
|
||||
|
|
@ -936,7 +936,7 @@ public class ListFormSeeder_Intranet : IDataSeedContributor, ITransientDependenc
|
|||
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 },
|
||||
new EditingFormItemDto { Order = 2, DataField = "Type", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 3, DataField = "DepartureTime", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxDateBox, EditorOptions = EditorOptionValues.TimeSpanOptions },
|
||||
new EditingFormItemDto { Order = 4, DataField = "ArrivalTime", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxDateBox, EditorOptions = EditorOptionValues.TimeSpanOptions },
|
||||
new EditingFormItemDto { Order = 5, DataField = "Capacity", ColSpan=1, EditorType2 = EditorTypes.dxNumberBox, EditorOptions=EditorOptionValues.NumberStandartFormat },
|
||||
|
|
@ -1163,8 +1163,8 @@ public class ListFormSeeder_Intranet : IDataSeedContributor, ITransientDependenc
|
|||
new EditingFormItemDto { Order = 2, DataField = "Excerpt", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox },
|
||||
new EditingFormItemDto { Order = 3, DataField = "Content", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxHtmlEditor, EditorOptions = EditorOptionValues.HtmlEditorOptions },
|
||||
new EditingFormItemDto { Order = 4, DataField = "ImageUrl", ColSpan=1, EditorType2 = EditorTypes.dxTagBox },
|
||||
new EditingFormItemDto { Order = 5, DataField = "Category", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 6, DataField = "EmployeeId", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 5, DataField = "Category", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 6, DataField = "EmployeeId", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 7, DataField = "PublishDate", ColSpan=1, EditorType2 = EditorTypes.dxDateBox },
|
||||
new EditingFormItemDto { Order = 8, DataField = "ExpiryDate", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxDateBox },
|
||||
new EditingFormItemDto { Order = 9, DataField = "IsPinned", ColSpan=1, EditorType2 = EditorTypes.dxCheckBox },
|
||||
|
|
@ -1436,7 +1436,7 @@ public class ListFormSeeder_Intranet : IDataSeedContributor, ITransientDependenc
|
|||
new EditingFormItemDto { Order = 6, DataField = "VisitDate", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxDateBox },
|
||||
new EditingFormItemDto { Order = 7, DataField = "CheckIn", ColSpan=1, EditorType2 = EditorTypes.dxDateBox },
|
||||
new EditingFormItemDto { Order = 8, DataField = "CheckOut", ColSpan=1, EditorType2 = EditorTypes.dxDateBox },
|
||||
new EditingFormItemDto { Order = 9, DataField = "EmployeeId", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 9, DataField = "EmployeeId", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 10, DataField = "Status", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
]}
|
||||
}),
|
||||
|
|
@ -1444,7 +1444,7 @@ public class ListFormSeeder_Intranet : IDataSeedContributor, ITransientDependenc
|
|||
{
|
||||
new() { FieldName = "VisitDate", FieldDbType = DbType.Date, Value = "@NOW", CustomValueType = FieldCustomValueTypeEnum.CustomKey },
|
||||
new() { FieldName = "CheckIn", FieldDbType = DbType.Date, Value = "@NOW", CustomValueType = FieldCustomValueTypeEnum.CustomKey },
|
||||
new() { FieldName = "Status", FieldDbType = DbType.String, Value = "checked-in", CustomValueType = FieldCustomValueTypeEnum.Value },
|
||||
new() { FieldName = "Status", FieldDbType = DbType.String, Value = "Giriş", CustomValueType = FieldCustomValueTypeEnum.Value },
|
||||
})
|
||||
}
|
||||
);
|
||||
|
|
@ -1627,9 +1627,9 @@ public class ListFormSeeder_Intranet : IDataSeedContributor, ITransientDependenc
|
|||
DisplayExpr = "name",
|
||||
ValueExpr = "key",
|
||||
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
|
||||
new () { Key= "checked-in", Name= "Checked-in" },
|
||||
new () { Key= "checked-out", Name= "Checked-out" },
|
||||
new () { Key= "scheduled", Name= "Scheduled" },
|
||||
new () { Key= "Giriş", Name= "Giriş" },
|
||||
new () { Key= "Çıkış", Name= "Çıkış" },
|
||||
new () { Key= "Planlandı", Name= "Planlandı" },
|
||||
}),
|
||||
}),
|
||||
ColumnCustomizationJson = DefaultColumnCustomizationJson,
|
||||
|
|
@ -1681,7 +1681,7 @@ public class ListFormSeeder_Intranet : IDataSeedContributor, ITransientDependenc
|
|||
{
|
||||
new() {
|
||||
Order=1, ColCount=1, ColSpan=1, ItemType="group", Items = [
|
||||
new EditingFormItemDto { Order = 1, DataField = "EmployeeId", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 1, DataField = "EmployeeId", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 2, DataField = "Content", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxHtmlEditor, EditorOptions = EditorOptionValues.HtmlEditorOptions },
|
||||
new EditingFormItemDto { Order = 3, DataField = "LikeCount", ColSpan=1, EditorType2 = EditorTypes.dxNumberBox },
|
||||
new EditingFormItemDto { Order = 4, DataField = "IsLiked", ColSpan=1, EditorType2 = EditorTypes.dxCheckBox },
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ public class ListFormSeeder_Participant : IDataSeedContributor, ITransientDepend
|
|||
EditingFormJson = JsonSerializer.Serialize(new List<EditingFormDto>() {
|
||||
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 },
|
||||
new EditingFormItemDto { Order = 2, DataField = "Type", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 3, DataField = "Status", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox },
|
||||
]}
|
||||
}),
|
||||
|
|
@ -580,7 +580,7 @@ public class ListFormSeeder_Participant : IDataSeedContributor, ITransientDepend
|
|||
EditingFormJson = JsonSerializer.Serialize(new List<EditingFormDto>() {
|
||||
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 = "Category", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 2, DataField = "Category", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 3, DataField = "Status", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxSelectBox },
|
||||
]}
|
||||
}),
|
||||
|
|
|
|||
|
|
@ -4009,7 +4009,7 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
|
|||
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 = "GroupName", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 4, DataField = "CurrencyId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 4, DataField = "CurrencyId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 5, DataField = "PhoneCode", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox },
|
||||
new EditingFormItemDto { Order = 6, DataField = "TaxLabel", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox },
|
||||
new EditingFormItemDto { Order = 7, DataField = "ZipRequired", ColSpan = 1, EditorType2 = EditorTypes.dxCheckBox },
|
||||
|
|
|
|||
|
|
@ -224,7 +224,7 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend
|
|||
new EditingFormItemDto { Order = 2, DataField = "Name", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxTextBox },
|
||||
new EditingFormItemDto { Order = 3, DataField = "Description", ColSpan = 1, EditorType2=EditorTypes.dxTextArea },
|
||||
new EditingFormItemDto { Order = 4, DataField = "IsActive", ColSpan = 1, EditorType2=EditorTypes.dxCheckBox },
|
||||
new EditingFormItemDto { Order = 5, DataField = "ParentGroupId", ColSpan = 1, EditorType2=EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 5, DataField = "ParentGroupId", ColSpan = 1, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
]}
|
||||
}),
|
||||
InsertFieldsDefaultValueJson = DefaultInsertFieldsDefaultValueJson,
|
||||
|
|
@ -405,12 +405,12 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend
|
|||
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 = 6, DataField = "CurrencyId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 7, DataField = "MaterialTypeId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 8, DataField = "MaterialGroupId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 9, DataField = "TrackingType", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
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 = 11, DataField = "UomId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 12, DataField = "Barcode", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox },
|
||||
|
||||
new EditingFormItemDto { Order = 13, DataField = "IsActive", ColSpan = 1, EditorType2 = EditorTypes.dxCheckBox },
|
||||
|
|
@ -1080,11 +1080,11 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend
|
|||
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 = "PartyType", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions = EditorOptionValues.Disabled },
|
||||
new EditingFormItemDto { Order = 4, DataField = "SectorId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 4, DataField = "SectorId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 5, DataField = "TaxNumber", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox },
|
||||
new EditingFormItemDto { Order = 6, DataField = "TaxOffice", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox },
|
||||
new EditingFormItemDto { Order = 7, DataField = "CurrencyId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 8, DataField = "PaymentTermId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 7, DataField = "CurrencyId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 8, DataField = "PaymentTermId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 9, DataField = "CreditLimit", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox },
|
||||
]
|
||||
},
|
||||
|
|
@ -1092,10 +1092,10 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend
|
|||
{
|
||||
Order = 2, Caption = "Address", ColCount = 3, ColSpan = 2, ItemType = "group", Items =
|
||||
[
|
||||
new EditingFormItemDto { Order = 10, DataField = "Country", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 11, DataField = "City", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 12, DataField = "District", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 13, DataField = "Street", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 10, DataField = "Country", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 11, DataField = "City", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 12, DataField = "District", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 13, DataField = "Street", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 14, DataField = "Address1", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox },
|
||||
new EditingFormItemDto { Order = 15, DataField = "Address2", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox },
|
||||
new EditingFormItemDto { Order = 16, DataField = "PostalCode", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox },
|
||||
|
|
@ -1110,8 +1110,8 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend
|
|||
{
|
||||
Order = 3, Caption="Supply Card", ColCount = 3, ColSpan = 2, ItemType = "group", Items =
|
||||
[
|
||||
new EditingFormItemDto { Order = 22, DataField = "SupplierTypeId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 23, DataField = "SupplyCardTypeId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 22, DataField = "SupplierTypeId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 23, DataField = "SupplyCardTypeId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 24, DataField = "CardNumber", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox },
|
||||
new EditingFormItemDto { Order = 25, DataField = "ValidFrom", ColSpan = 1, EditorType2 = EditorTypes.dxDateBox },
|
||||
new EditingFormItemDto { Order = 26, DataField = "ValidTo", ColSpan = 1, EditorType2 = EditorTypes.dxDateBox },
|
||||
|
|
@ -1128,7 +1128,7 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend
|
|||
new() { FieldName = "CreditLimit", FieldDbType = DbType.Decimal, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value },
|
||||
new() { FieldName = "CurrentBalance", FieldDbType = DbType.Decimal, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value },
|
||||
new() { FieldName = "DiscountRate", FieldDbType = DbType.Decimal, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value },
|
||||
new() { FieldName = "Status", FieldDbType = DbType.String, Value = "Active", CustomValueType = FieldCustomValueTypeEnum.Value },
|
||||
new() { FieldName = "Status", FieldDbType = DbType.String, Value = "Aktif", CustomValueType = FieldCustomValueTypeEnum.Value },
|
||||
new() { FieldName = "Country", FieldDbType = DbType.String, Value = "TR", CustomValueType = FieldCustomValueTypeEnum.Value },
|
||||
}),
|
||||
CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] {
|
||||
|
|
@ -1773,8 +1773,8 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend
|
|||
new EditingFormItemDto { Order = 4, DataField="SwiftCode", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox },
|
||||
new EditingFormItemDto { Order = 5, DataField="AccountOwner", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox },
|
||||
new EditingFormItemDto { Order = 6, DataField="BranchName", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox },
|
||||
new EditingFormItemDto { Order = 7, DataField="AccountType", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 8, DataField="CurrencyId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 7, DataField="AccountType", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 8, DataField="CurrencyId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 9, DataField="Balance", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox },
|
||||
new EditingFormItemDto { Order = 10, DataField="OverdraftLimit", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox },
|
||||
new EditingFormItemDto { Order = 11, DataField="DailyTransferLimit", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox },
|
||||
|
|
@ -2467,8 +2467,8 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend
|
|||
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 = "DepartmentId", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 3, DataField = "MaterialTypeId", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxSelectBox },
|
||||
new EditingFormItemDto { Order = 2, DataField = "DepartmentId", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 3, DataField = "MaterialTypeId", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
|
||||
new EditingFormItemDto { Order = 4, DataField = "AmountThreshold", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxNumberBox, EditorOptions=EditorOptionValues.NumberStandartFormat },
|
||||
new EditingFormItemDto { Order = 5, DataField = "IsActive", ColSpan = 1, EditorType2=EditorTypes.dxCheckBox },
|
||||
]}
|
||||
|
|
|
|||
|
|
@ -791,97 +791,6 @@
|
|||
"routeType": "protected",
|
||||
"authority": null
|
||||
},
|
||||
{
|
||||
"key": "admin.crm.customers",
|
||||
"path": "/admin/crm/customers",
|
||||
"componentPath": "@/views/crm/components/CustomerListWithToggle",
|
||||
"routeType": "protected",
|
||||
"authority": null
|
||||
},
|
||||
{
|
||||
"key": "admin.crm.customersNew",
|
||||
"path": "/admin/crm/customers/new",
|
||||
"componentPath": "@/views/crm/components/CustomerForm",
|
||||
"routeType": "protected",
|
||||
"authority": null
|
||||
},
|
||||
{
|
||||
"key": "admin.crm.customersEdit",
|
||||
"path": "/admin/crm/customers/edit/:id",
|
||||
"componentPath": "@/views/crm/components/CustomerEdit",
|
||||
"routeType": "protected",
|
||||
"authority": null
|
||||
},
|
||||
{
|
||||
"key": "admin.crm.customersDetail",
|
||||
"path": "/admin/crm/customers/:id",
|
||||
"componentPath": "@/views/crm/components/CustomerView",
|
||||
"routeType": "protected",
|
||||
"authority": null
|
||||
},
|
||||
{
|
||||
"key": "admin.crm.salesTeams",
|
||||
"path": "/admin/crm/sales-teams",
|
||||
"componentPath": "@/views/crm/components/SalesTeams",
|
||||
"routeType": "protected",
|
||||
"authority": null
|
||||
},
|
||||
{
|
||||
"key": "admin.crm.salesTeamsNew",
|
||||
"path": "/admin/crm/sales-teams/new",
|
||||
"componentPath": "@/views/crm/components/SalesTeamCreate",
|
||||
"routeType": "protected",
|
||||
"authority": null
|
||||
},
|
||||
{
|
||||
"key": "admin.crm.salesTeamsEdit",
|
||||
"path": "/admin/crm/sales-teams/edit/:id",
|
||||
"componentPath": "@/views/crm/components/SalesTeamEdit",
|
||||
"routeType": "protected",
|
||||
"authority": null
|
||||
},
|
||||
{
|
||||
"key": "admin.crm.salesTeamsDetail",
|
||||
"path": "/admin/crm/sales-teams/:id",
|
||||
"componentPath": "@/views/crm/components/SalesTeamView",
|
||||
"routeType": "protected",
|
||||
"authority": null
|
||||
},
|
||||
{
|
||||
"key": "admin.crm.lossReasons",
|
||||
"path": "/admin/crm/loss-reasons",
|
||||
"componentPath": "@/views/crm/components/LossReasons",
|
||||
"routeType": "protected",
|
||||
"authority": null
|
||||
},
|
||||
{
|
||||
"key": "admin.crm.opportunities",
|
||||
"path": "/admin/crm/opportunities",
|
||||
"componentPath": "@/views/crm/components/OpportunityManagement",
|
||||
"routeType": "protected",
|
||||
"authority": null
|
||||
},
|
||||
{
|
||||
"key": "admin.crm.opportunitiesNew",
|
||||
"path": "/admin/crm/opportunities/new",
|
||||
"componentPath": "@/views/crm/components/OpportunityManagement",
|
||||
"routeType": "protected",
|
||||
"authority": null
|
||||
},
|
||||
{
|
||||
"key": "admin.crm.opportunitiesEdit",
|
||||
"path": "/admin/crm/opportunities/edit/:id",
|
||||
"componentPath": "@/views/crm/components/OpportunityManagement",
|
||||
"routeType": "protected",
|
||||
"authority": null
|
||||
},
|
||||
{
|
||||
"key": "admin.crm.opportunitiesDetail",
|
||||
"path": "/admin/crm/opportunities/:id",
|
||||
"componentPath": "@/views/crm/components/OpportunityManagement",
|
||||
"routeType": "protected",
|
||||
"authority": null
|
||||
},
|
||||
{
|
||||
"key": "admin.crm.activities",
|
||||
"path": "/admin/crm/activities",
|
||||
|
|
@ -2257,7 +2166,7 @@
|
|||
"Code": "App.Crm.Opportunity",
|
||||
"DisplayName": "App.Crm.Opportunity",
|
||||
"Order": 6,
|
||||
"Url": "/admin/crm/opportunities",
|
||||
"Url": "/admin/list/list-opportunity",
|
||||
"Icon": "FcIdea",
|
||||
"RequiredPermissionName": "App.Crm.Opportunity",
|
||||
"IsDisabled": false
|
||||
|
|
|
|||
|
|
@ -9967,6 +9967,135 @@
|
|||
"MultiTenancySide": 3,
|
||||
"MenuGroup": "Erp"
|
||||
},
|
||||
|
||||
{
|
||||
"GroupName": "App.Crm",
|
||||
"Name": "App.Crm.OpportunityAction",
|
||||
"ParentName": null,
|
||||
"DisplayName": "App.Crm.OpportunityAction",
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"MenuGroup": "Erp"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Crm",
|
||||
"Name": "App.Crm.OpportunityAction.Create",
|
||||
"ParentName": "App.Crm.OpportunityAction",
|
||||
"DisplayName": "Create",
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"MenuGroup": "Erp"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Crm",
|
||||
"Name": "App.Crm.OpportunityAction.Update",
|
||||
"ParentName": "App.Crm.OpportunityAction",
|
||||
"DisplayName": "Update",
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"MenuGroup": "Erp"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Crm",
|
||||
"Name": "App.Crm.OpportunityAction.Delete",
|
||||
"ParentName": "App.Crm.OpportunityAction",
|
||||
"DisplayName": "Delete",
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"MenuGroup": "Erp"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Crm",
|
||||
"Name": "App.Crm.OpportunityAction.Export",
|
||||
"ParentName": "App.Crm.OpportunityAction",
|
||||
"DisplayName": "Export",
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"MenuGroup": "Erp"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Crm",
|
||||
"Name": "App.Crm.OpportunityAction.Import",
|
||||
"ParentName": "App.Crm.OpportunityAction",
|
||||
"DisplayName": "Import",
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"MenuGroup": "Erp"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Crm",
|
||||
"Name": "App.Crm.OpportunityAction.Activity",
|
||||
"ParentName": "App.Crm.OpportunityAction",
|
||||
"DisplayName": "Activity",
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"MenuGroup": "Erp"
|
||||
},
|
||||
|
||||
{
|
||||
"GroupName": "App.Crm",
|
||||
"Name": "App.Crm.OpportunityCompetitor",
|
||||
"ParentName": null,
|
||||
"DisplayName": "App.Crm.OpportunityCompetitor",
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"MenuGroup": "Erp"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Crm",
|
||||
"Name": "App.Crm.OpportunityCompetitor.Create",
|
||||
"ParentName": "App.Crm.OpportunityCompetitor",
|
||||
"DisplayName": "Create",
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"MenuGroup": "Erp"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Crm",
|
||||
"Name": "App.Crm.OpportunityCompetitor.Update",
|
||||
"ParentName": "App.Crm.OpportunityCompetitor",
|
||||
"DisplayName": "Update",
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"MenuGroup": "Erp"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Crm",
|
||||
"Name": "App.Crm.OpportunityCompetitor.Delete",
|
||||
"ParentName": "App.Crm.OpportunityCompetitor",
|
||||
"DisplayName": "Delete",
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"MenuGroup": "Erp"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Crm",
|
||||
"Name": "App.Crm.OpportunityCompetitor.Export",
|
||||
"ParentName": "App.Crm.OpportunityCompetitor",
|
||||
"DisplayName": "Export",
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"MenuGroup": "Erp"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Crm",
|
||||
"Name": "App.Crm.OpportunityCompetitor.Import",
|
||||
"ParentName": "App.Crm.OpportunityCompetitor",
|
||||
"DisplayName": "Import",
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"MenuGroup": "Erp"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Crm",
|
||||
"Name": "App.Crm.OpportunityCompetitor.Activity",
|
||||
"ParentName": "App.Crm.OpportunityCompetitor",
|
||||
"DisplayName": "Activity",
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"MenuGroup": "Erp"
|
||||
},
|
||||
|
||||
{
|
||||
"GroupName": "App.Crm",
|
||||
"Name": "App.Crm.Activities",
|
||||
|
|
|
|||
|
|
@ -151,5 +151,8 @@ public enum TableNameEnum
|
|||
MaterialSpecification,
|
||||
Approval,
|
||||
ApprovalStep,
|
||||
LossReason
|
||||
LossReason,
|
||||
Opportunity,
|
||||
Action,
|
||||
Competitor
|
||||
}
|
||||
|
|
|
|||
|
|
@ -524,6 +524,9 @@ public static class PlatformConsts
|
|||
public const string CustomerSegment = "list-customersegment";
|
||||
public const string Customer = "list-customer";
|
||||
public const string LossReason = "list-lossreason";
|
||||
public const string Opportunity = "list-opportunity";
|
||||
public const string OpportunityAction = "list-opportunityaction";
|
||||
public const string OpportunityCompetitor = "list-opportunitycompetitor";
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -178,6 +178,9 @@ public static class TableNameResolver
|
|||
{ nameof(TableNameEnum.CustomerSegment), (TablePrefix.TenantByName, MenuPrefix.Crm) },
|
||||
{ nameof(TableNameEnum.CustomerType), (TablePrefix.TenantByName, MenuPrefix.Crm) },
|
||||
{ nameof(TableNameEnum.LossReason), (TablePrefix.TenantByName, MenuPrefix.Crm) },
|
||||
{ nameof(TableNameEnum.Opportunity), (TablePrefix.TenantByName, MenuPrefix.Crm) },
|
||||
{ nameof(TableNameEnum.Action), (TablePrefix.TenantByName, MenuPrefix.Crm) },
|
||||
{ nameof(TableNameEnum.Competitor), (TablePrefix.TenantByName, MenuPrefix.Crm) },
|
||||
|
||||
// 🔹 ACCOUNTING
|
||||
{ nameof(TableNameEnum.Bank), (TablePrefix.TenantByName, MenuPrefix.Accounting) },
|
||||
|
|
|
|||
|
|
@ -494,6 +494,9 @@ public static class SeedConsts
|
|||
public const string CustomerSegment = Default + ".CustomerSegment";
|
||||
public const string Customer = Default + ".Customer";
|
||||
public const string LossReason = Default + ".LossReason";
|
||||
public const string Opportunity = Default + ".Opportunity";
|
||||
public const string OpportunityAction = Default + ".OpportunityAction";
|
||||
public const string OpportunityCompetitor = Default + ".OpportunityCompetitor";
|
||||
}
|
||||
|
||||
public static class SupplyChain
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Volo.Abp.Domain.Entities.Auditing;
|
||||
|
||||
namespace Erp.Platform.Entities;
|
||||
|
|
@ -11,5 +12,7 @@ public class Currency : FullAuditedEntity<Guid>
|
|||
public decimal Rate { get; set; } // TRY başına değer
|
||||
public bool IsActive { get; set; }
|
||||
public DateTime? LastUpdated { get; set; }
|
||||
|
||||
public ICollection<Opportunity> Opportunities { get; set; }
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ public class CrudMigration : AuditedEntity<Guid>, IMultiTenant
|
|||
public string EntityName { get; set; } = string.Empty;
|
||||
public string FileName { get; set; } = string.Empty;
|
||||
public string SqlScript { get; set; } = string.Empty;
|
||||
public string Status { get; set; } = "pending"; // "pending" | "applied" | "failed"
|
||||
public string Status { get; set; } = "Askıda"; // "pending" | "applied" | "failed"
|
||||
public DateTime? AppliedAt { get; set; }
|
||||
public string? ErrorMessage { get; set; }
|
||||
public virtual CustomEntity Entity { get; set; } = null!;
|
||||
|
|
|
|||
|
|
@ -17,9 +17,9 @@ public class CustomEntity : FullAuditedEntity<Guid>, IMultiTenant
|
|||
public bool IsActive { get; set; } = true;
|
||||
public bool IsFullAuditedEntity { get; set; } = true;
|
||||
public bool IsMultiTenant { get; set; } = false;
|
||||
public string MigrationStatus { get; set; } = "pending";
|
||||
public string MigrationStatus { get; set; } = "Askıda";
|
||||
public Guid? MigrationId { get; set; }
|
||||
public string EndpointStatus { get; set; } = "pending"; // "pending" | "applied" | "failed"
|
||||
public string EndpointStatus { get; set; } = "Askıda"; // "pending" | "applied" | "failed"
|
||||
|
||||
public virtual ICollection<CustomEntityField> Fields { get; set; } = [];
|
||||
|
||||
|
|
|
|||
29
api/src/Erp.Platform.Domain/Entities/Tenant/Crm/Action.cs
Normal file
29
api/src/Erp.Platform.Domain/Entities/Tenant/Crm/Action.cs
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
using System;
|
||||
using Volo.Abp.Domain.Entities.Auditing;
|
||||
using Volo.Abp.MultiTenancy;
|
||||
|
||||
namespace Erp.Platform.Entities;
|
||||
|
||||
public class Action : FullAuditedEntity<Guid>, IMultiTenant
|
||||
{
|
||||
public Guid? TenantId { get; set; }
|
||||
|
||||
public Guid? OpportunityId { get; set; }
|
||||
public Opportunity? Opportunity { get; set; }
|
||||
|
||||
public string ActionType { get; set; } //Call, Email, Meeting, Task, Note, Demo, Proposal
|
||||
public string Subject { get; set; }
|
||||
public string Description { get; set; }
|
||||
|
||||
public Guid EmployeeId { get; set; }
|
||||
|
||||
public DateTime ActionDate { get; set; }
|
||||
public DateTime? StartTime { get; set; }
|
||||
public DateTime? EndTime { get; set; }
|
||||
public int? Duration { get; set; }
|
||||
|
||||
public DateTime? FollowUpDate { get; set; }
|
||||
public string FollowUpActivity { get; set; } // Takip Aktivitesi
|
||||
public string Outcome { get; set; } // Sonuç
|
||||
public string NextSteps { get; set; } // Sonraki Adımlar
|
||||
}
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
using System;
|
||||
using Volo.Abp.Domain.Entities.Auditing;
|
||||
using Volo.Abp.MultiTenancy;
|
||||
|
||||
namespace Erp.Platform.Entities;
|
||||
|
||||
public class Competitor : FullAuditedEntity<Guid>, IMultiTenant
|
||||
{
|
||||
public Guid? TenantId { get; set; }
|
||||
|
||||
public Guid? OpportunityId { get; set; }
|
||||
public Opportunity? Opportunity { get; set; }
|
||||
|
||||
public string Name { get; set; }
|
||||
public string Website { get; set; } // Web Sitesi
|
||||
public string Strengths { get; set; } // Güçlü Yönler
|
||||
public string Weaknesses { get; set; } // Zayıf Yönler
|
||||
public int? MarketShare { get; set; } // Pazar Payı Yüzdesi
|
||||
}
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Volo.Abp.Domain.Entities.Auditing;
|
||||
using Volo.Abp.MultiTenancy;
|
||||
|
||||
|
|
@ -13,4 +14,6 @@ public class LossReason : FullAuditedEntity<Guid>, IMultiTenant
|
|||
public string Description { get; set; }
|
||||
public string Category { get; set; }
|
||||
public bool IsActive { get; set; }
|
||||
|
||||
public ICollection<Opportunity> Opportunities { get; set; }
|
||||
}
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Volo.Abp.Domain.Entities.Auditing;
|
||||
using Volo.Abp.MultiTenancy;
|
||||
|
||||
namespace Erp.Platform.Entities;
|
||||
|
||||
public class Opportunity : FullAuditedEntity<Guid>, IMultiTenant
|
||||
{
|
||||
public Guid? TenantId { get; set; }
|
||||
|
||||
public string Title { get; set; }
|
||||
public string Description { get; set; }
|
||||
|
||||
public Guid PartnerId { get; set; }
|
||||
public Guid? ContactId { get; set; }
|
||||
|
||||
// Fırsat Aşaması
|
||||
public string Stage { get; set; } //Qualification, NeedsAnalysis, Proposal, Negotiation, ClosedWon, ClosedLost
|
||||
|
||||
public int Probability { get; set; } // Başarı Olasılığı Yüzdesi
|
||||
public decimal EstimatedValue { get; set; } // Tahmini Değer
|
||||
|
||||
public Guid? CurrencyId { get; set; }
|
||||
public Currency? Currency { get; set; }
|
||||
|
||||
public DateTime ExpectedCloseDate { get; set; } // Beklenen Kapanış Tarihi
|
||||
public DateTime? ActualCloseDate { get; set; } // Gerçekleşen Kapanış Tarihi
|
||||
|
||||
public Guid? EmployeeId { get; set; }
|
||||
public Employee? Employee { get; set; }
|
||||
public string TeamCode { get; set; }
|
||||
|
||||
public Guid SourceId { get; set; }
|
||||
public Source Source { get; set; }
|
||||
|
||||
public Guid? LossReasonId { get; set; } // Kaybetme Nedeni
|
||||
public LossReason LossReason { get; set; }
|
||||
|
||||
public string Status { get; set; } // Durum
|
||||
|
||||
public ICollection<Action> Actions { get; set; } //Aktiviteler
|
||||
public ICollection<Competitor> Competitors { get; set; } //Rakipler
|
||||
|
||||
public Opportunity()
|
||||
{
|
||||
Actions = [];
|
||||
Competitors = [];
|
||||
}
|
||||
}
|
||||
|
|
@ -75,6 +75,7 @@ public class Employee : FullAuditedEntity<Guid>, IMultiTenant
|
|||
public ICollection<SurveyResponse> SurveyResponses { get; set; }
|
||||
public ICollection<Partner> Partners { get; set; }
|
||||
public ICollection<BlogPost> BlogPosts { get; set; }
|
||||
public ICollection<Opportunity> Opportunities { get; set; }
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Volo.Abp.Domain.Entities.Auditing;
|
||||
using Volo.Abp.MultiTenancy;
|
||||
|
||||
|
|
@ -12,5 +13,7 @@ public class Source : FullAuditedEntity<Guid>, IMultiTenant
|
|||
public string Status { get; set; } // Durum
|
||||
|
||||
Guid? IMultiTenant.TenantId => TenantId;
|
||||
|
||||
public ICollection<Opportunity> Opportunities { get; set; }
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -218,6 +218,9 @@ public class PlatformDbContext :
|
|||
|
||||
#region Crm
|
||||
public DbSet<LossReason> LostReasons { get; set; }
|
||||
public DbSet<Opportunity> Opportunities { get; set; }
|
||||
public DbSet<Entities.Action> Actions { get; set; }
|
||||
public DbSet<Competitor> Competitors { get; set; }
|
||||
#endregion
|
||||
|
||||
#region Accounting
|
||||
|
|
@ -2574,6 +2577,56 @@ public class PlatformDbContext :
|
|||
b.Property(x => x.Description).HasMaxLength(500);
|
||||
b.Property(x => x.Category).HasMaxLength(50).IsRequired();
|
||||
});
|
||||
|
||||
builder.Entity<Opportunity>(b =>
|
||||
{
|
||||
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.Opportunity)), Prefix.DbSchema);
|
||||
b.ConfigureByConvention();
|
||||
|
||||
b.Property(x => x.Title).IsRequired().HasMaxLength(200);
|
||||
b.Property(x => x.Description).HasMaxLength(1000);
|
||||
b.Property(x => x.PartnerId).IsRequired();
|
||||
b.Property(x => x.Stage).IsRequired().HasMaxLength(50);
|
||||
b.Property(x => x.Probability).HasDefaultValue(0);
|
||||
b.Property(x => x.EstimatedValue).HasPrecision(18, 2).HasDefaultValue(0);
|
||||
b.Property(x => x.ExpectedCloseDate).IsRequired();
|
||||
b.Property(x => x.CurrencyId).IsRequired();
|
||||
b.Property(x => x.SourceId).IsRequired();
|
||||
b.Property(x => x.Status).IsRequired().HasMaxLength(50);
|
||||
});
|
||||
|
||||
builder.Entity<Entities.Action>(b =>
|
||||
{
|
||||
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.Action)), Prefix.DbSchema);
|
||||
b.ConfigureByConvention();
|
||||
|
||||
b.Property(x => x.ActionType).IsRequired().HasMaxLength(50);
|
||||
b.Property(x => x.Subject).IsRequired().HasMaxLength(200);
|
||||
b.Property(x => x.Description).HasMaxLength(1000);
|
||||
b.Property(x => x.EmployeeId).IsRequired();
|
||||
b.Property(x => x.ActionDate).IsRequired();
|
||||
|
||||
b.HasOne(x => x.Opportunity)
|
||||
.WithMany(x => x.Actions)
|
||||
.HasForeignKey(x => x.OpportunityId)
|
||||
.OnDelete(DeleteBehavior.Cascade);
|
||||
});
|
||||
|
||||
builder.Entity<Competitor>(b =>
|
||||
{
|
||||
b.ToTable(TableNameResolver.GetFullTableName(nameof(TableNameEnum.Competitor)), Prefix.DbSchema);
|
||||
b.ConfigureByConvention();
|
||||
|
||||
b.Property(x => x.Name).IsRequired().HasMaxLength(200);
|
||||
b.Property(x => x.Website).HasMaxLength(300);
|
||||
b.Property(x => x.Strengths).HasMaxLength(2000);
|
||||
b.Property(x => x.Weaknesses).HasMaxLength(2000);
|
||||
|
||||
b.HasOne(x => x.Opportunity)
|
||||
.WithMany(x => x.Competitors)
|
||||
.HasForeignKey(x => x.OpportunityId)
|
||||
.OnDelete(DeleteBehavior.Cascade);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore;
|
|||
namespace Erp.Platform.Migrations
|
||||
{
|
||||
[DbContext(typeof(PlatformDbContext))]
|
||||
[Migration("20251113203111_Initial")]
|
||||
[Migration("20251114120401_Initial")]
|
||||
partial class Initial
|
||||
{
|
||||
/// <inheritdoc />
|
||||
|
|
@ -625,6 +625,96 @@ namespace Erp.Platform.Migrations
|
|||
b.ToTable("Adm_T_About", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.Action", b =>
|
||||
{
|
||||
b.Property<Guid>("Id")
|
||||
.HasColumnType("uniqueidentifier");
|
||||
|
||||
b.Property<DateTime>("ActionDate")
|
||||
.HasColumnType("datetime2");
|
||||
|
||||
b.Property<string>("ActionType")
|
||||
.IsRequired()
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("nvarchar(50)");
|
||||
|
||||
b.Property<DateTime>("CreationTime")
|
||||
.HasColumnType("datetime2")
|
||||
.HasColumnName("CreationTime");
|
||||
|
||||
b.Property<Guid?>("CreatorId")
|
||||
.HasColumnType("uniqueidentifier")
|
||||
.HasColumnName("CreatorId");
|
||||
|
||||
b.Property<Guid?>("DeleterId")
|
||||
.HasColumnType("uniqueidentifier")
|
||||
.HasColumnName("DeleterId");
|
||||
|
||||
b.Property<DateTime?>("DeletionTime")
|
||||
.HasColumnType("datetime2")
|
||||
.HasColumnName("DeletionTime");
|
||||
|
||||
b.Property<string>("Description")
|
||||
.HasMaxLength(1000)
|
||||
.HasColumnType("nvarchar(1000)");
|
||||
|
||||
b.Property<int?>("Duration")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<Guid>("EmployeeId")
|
||||
.HasColumnType("uniqueidentifier");
|
||||
|
||||
b.Property<DateTime?>("EndTime")
|
||||
.HasColumnType("datetime2");
|
||||
|
||||
b.Property<string>("FollowUpActivity")
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<DateTime?>("FollowUpDate")
|
||||
.HasColumnType("datetime2");
|
||||
|
||||
b.Property<bool>("IsDeleted")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("bit")
|
||||
.HasDefaultValue(false)
|
||||
.HasColumnName("IsDeleted");
|
||||
|
||||
b.Property<DateTime?>("LastModificationTime")
|
||||
.HasColumnType("datetime2")
|
||||
.HasColumnName("LastModificationTime");
|
||||
|
||||
b.Property<Guid?>("LastModifierId")
|
||||
.HasColumnType("uniqueidentifier")
|
||||
.HasColumnName("LastModifierId");
|
||||
|
||||
b.Property<string>("NextSteps")
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<Guid?>("OpportunityId")
|
||||
.HasColumnType("uniqueidentifier");
|
||||
|
||||
b.Property<string>("Outcome")
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<DateTime?>("StartTime")
|
||||
.HasColumnType("datetime2");
|
||||
|
||||
b.Property<string>("Subject")
|
||||
.IsRequired()
|
||||
.HasMaxLength(200)
|
||||
.HasColumnType("nvarchar(200)");
|
||||
|
||||
b.Property<Guid?>("TenantId")
|
||||
.HasColumnType("uniqueidentifier")
|
||||
.HasColumnName("TenantId");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("OpportunityId");
|
||||
|
||||
b.ToTable("Crm_T_Action", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.Activity", b =>
|
||||
{
|
||||
b.Property<Guid>("Id")
|
||||
|
|
@ -2291,6 +2381,75 @@ namespace Erp.Platform.Migrations
|
|||
b.ToTable("Crd_T_ClassroomParticipant", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.Competitor", b =>
|
||||
{
|
||||
b.Property<Guid>("Id")
|
||||
.HasColumnType("uniqueidentifier");
|
||||
|
||||
b.Property<DateTime>("CreationTime")
|
||||
.HasColumnType("datetime2")
|
||||
.HasColumnName("CreationTime");
|
||||
|
||||
b.Property<Guid?>("CreatorId")
|
||||
.HasColumnType("uniqueidentifier")
|
||||
.HasColumnName("CreatorId");
|
||||
|
||||
b.Property<Guid?>("DeleterId")
|
||||
.HasColumnType("uniqueidentifier")
|
||||
.HasColumnName("DeleterId");
|
||||
|
||||
b.Property<DateTime?>("DeletionTime")
|
||||
.HasColumnType("datetime2")
|
||||
.HasColumnName("DeletionTime");
|
||||
|
||||
b.Property<bool>("IsDeleted")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("bit")
|
||||
.HasDefaultValue(false)
|
||||
.HasColumnName("IsDeleted");
|
||||
|
||||
b.Property<DateTime?>("LastModificationTime")
|
||||
.HasColumnType("datetime2")
|
||||
.HasColumnName("LastModificationTime");
|
||||
|
||||
b.Property<Guid?>("LastModifierId")
|
||||
.HasColumnType("uniqueidentifier")
|
||||
.HasColumnName("LastModifierId");
|
||||
|
||||
b.Property<int?>("MarketShare")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.IsRequired()
|
||||
.HasMaxLength(200)
|
||||
.HasColumnType("nvarchar(200)");
|
||||
|
||||
b.Property<Guid?>("OpportunityId")
|
||||
.HasColumnType("uniqueidentifier");
|
||||
|
||||
b.Property<string>("Strengths")
|
||||
.HasMaxLength(2000)
|
||||
.HasColumnType("nvarchar(2000)");
|
||||
|
||||
b.Property<Guid?>("TenantId")
|
||||
.HasColumnType("uniqueidentifier")
|
||||
.HasColumnName("TenantId");
|
||||
|
||||
b.Property<string>("Weaknesses")
|
||||
.HasMaxLength(2000)
|
||||
.HasColumnType("nvarchar(2000)");
|
||||
|
||||
b.Property<string>("Website")
|
||||
.HasMaxLength(300)
|
||||
.HasColumnType("nvarchar(300)");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("OpportunityId");
|
||||
|
||||
b.ToTable("Crm_T_Competitor", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.Contact", b =>
|
||||
{
|
||||
b.Property<Guid>("Id")
|
||||
|
|
@ -6475,6 +6634,115 @@ namespace Erp.Platform.Migrations
|
|||
b.ToTable("Prt_T_NoteType", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.Opportunity", b =>
|
||||
{
|
||||
b.Property<Guid>("Id")
|
||||
.HasColumnType("uniqueidentifier");
|
||||
|
||||
b.Property<DateTime?>("ActualCloseDate")
|
||||
.HasColumnType("datetime2");
|
||||
|
||||
b.Property<Guid?>("ContactId")
|
||||
.HasColumnType("uniqueidentifier");
|
||||
|
||||
b.Property<DateTime>("CreationTime")
|
||||
.HasColumnType("datetime2")
|
||||
.HasColumnName("CreationTime");
|
||||
|
||||
b.Property<Guid?>("CreatorId")
|
||||
.HasColumnType("uniqueidentifier")
|
||||
.HasColumnName("CreatorId");
|
||||
|
||||
b.Property<Guid>("CurrencyId")
|
||||
.HasColumnType("uniqueidentifier");
|
||||
|
||||
b.Property<Guid?>("DeleterId")
|
||||
.HasColumnType("uniqueidentifier")
|
||||
.HasColumnName("DeleterId");
|
||||
|
||||
b.Property<DateTime?>("DeletionTime")
|
||||
.HasColumnType("datetime2")
|
||||
.HasColumnName("DeletionTime");
|
||||
|
||||
b.Property<string>("Description")
|
||||
.HasMaxLength(1000)
|
||||
.HasColumnType("nvarchar(1000)");
|
||||
|
||||
b.Property<Guid?>("EmployeeId")
|
||||
.HasColumnType("uniqueidentifier");
|
||||
|
||||
b.Property<decimal>("EstimatedValue")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasPrecision(18, 2)
|
||||
.HasColumnType("decimal(18,2)")
|
||||
.HasDefaultValue(0m);
|
||||
|
||||
b.Property<DateTime>("ExpectedCloseDate")
|
||||
.HasColumnType("datetime2");
|
||||
|
||||
b.Property<bool>("IsDeleted")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("bit")
|
||||
.HasDefaultValue(false)
|
||||
.HasColumnName("IsDeleted");
|
||||
|
||||
b.Property<DateTime?>("LastModificationTime")
|
||||
.HasColumnType("datetime2")
|
||||
.HasColumnName("LastModificationTime");
|
||||
|
||||
b.Property<Guid?>("LastModifierId")
|
||||
.HasColumnType("uniqueidentifier")
|
||||
.HasColumnName("LastModifierId");
|
||||
|
||||
b.Property<Guid?>("LossReasonId")
|
||||
.HasColumnType("uniqueidentifier");
|
||||
|
||||
b.Property<Guid>("PartnerId")
|
||||
.HasColumnType("uniqueidentifier");
|
||||
|
||||
b.Property<int>("Probability")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int")
|
||||
.HasDefaultValue(0);
|
||||
|
||||
b.Property<Guid>("SourceId")
|
||||
.HasColumnType("uniqueidentifier");
|
||||
|
||||
b.Property<string>("Stage")
|
||||
.IsRequired()
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("nvarchar(50)");
|
||||
|
||||
b.Property<string>("Status")
|
||||
.IsRequired()
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("nvarchar(50)");
|
||||
|
||||
b.Property<string>("TeamCode")
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<Guid?>("TenantId")
|
||||
.HasColumnType("uniqueidentifier")
|
||||
.HasColumnName("TenantId");
|
||||
|
||||
b.Property<string>("Title")
|
||||
.IsRequired()
|
||||
.HasMaxLength(200)
|
||||
.HasColumnType("nvarchar(200)");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("CurrencyId");
|
||||
|
||||
b.HasIndex("EmployeeId");
|
||||
|
||||
b.HasIndex("LossReasonId");
|
||||
|
||||
b.HasIndex("SourceId");
|
||||
|
||||
b.ToTable("Crm_T_Opportunity", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.Order", b =>
|
||||
{
|
||||
b.Property<Guid>("Id")
|
||||
|
|
@ -12882,6 +13150,16 @@ namespace Erp.Platform.Migrations
|
|||
b.Navigation("NotificationRule");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.Action", b =>
|
||||
{
|
||||
b.HasOne("Erp.Platform.Entities.Opportunity", "Opportunity")
|
||||
.WithMany("Actions")
|
||||
.HasForeignKey("OpportunityId")
|
||||
.OnDelete(DeleteBehavior.Cascade);
|
||||
|
||||
b.Navigation("Opportunity");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.Announcement", b =>
|
||||
{
|
||||
b.HasOne("Erp.Platform.Entities.Employee", "Employee")
|
||||
|
|
@ -13058,6 +13336,16 @@ namespace Erp.Platform.Migrations
|
|||
b.Navigation("Session");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.Competitor", b =>
|
||||
{
|
||||
b.HasOne("Erp.Platform.Entities.Opportunity", "Opportunity")
|
||||
.WithMany("Competitors")
|
||||
.HasForeignKey("OpportunityId")
|
||||
.OnDelete(DeleteBehavior.Cascade);
|
||||
|
||||
b.Navigation("Opportunity");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.CostCenter", b =>
|
||||
{
|
||||
b.HasOne("Erp.Platform.Entities.Department", "Department")
|
||||
|
|
@ -13414,6 +13702,37 @@ namespace Erp.Platform.Migrations
|
|||
b.Navigation("Branch");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.Opportunity", b =>
|
||||
{
|
||||
b.HasOne("Erp.Platform.Entities.Currency", "Currency")
|
||||
.WithMany("Opportunities")
|
||||
.HasForeignKey("CurrencyId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Erp.Platform.Entities.Employee", "Employee")
|
||||
.WithMany("Opportunities")
|
||||
.HasForeignKey("EmployeeId");
|
||||
|
||||
b.HasOne("Erp.Platform.Entities.LossReason", "LossReason")
|
||||
.WithMany("Opportunities")
|
||||
.HasForeignKey("LossReasonId");
|
||||
|
||||
b.HasOne("Erp.Platform.Entities.Source", "Source")
|
||||
.WithMany("Opportunities")
|
||||
.HasForeignKey("SourceId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Currency");
|
||||
|
||||
b.Navigation("Employee");
|
||||
|
||||
b.Navigation("LossReason");
|
||||
|
||||
b.Navigation("Source");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.OrderItem", b =>
|
||||
{
|
||||
b.HasOne("Erp.Platform.Entities.Order", "Order")
|
||||
|
|
@ -14116,6 +14435,11 @@ namespace Erp.Platform.Migrations
|
|||
b.Navigation("Cities");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.Currency", b =>
|
||||
{
|
||||
b.Navigation("Opportunities");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.CustomEntity", b =>
|
||||
{
|
||||
b.Navigation("Fields");
|
||||
|
|
@ -14150,6 +14474,8 @@ namespace Erp.Platform.Migrations
|
|||
|
||||
b.Navigation("Leaves");
|
||||
|
||||
b.Navigation("Opportunities");
|
||||
|
||||
b.Navigation("Overtimes");
|
||||
|
||||
b.Navigation("Partners");
|
||||
|
|
@ -14178,6 +14504,11 @@ namespace Erp.Platform.Migrations
|
|||
b.Navigation("Events");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.LossReason", b =>
|
||||
{
|
||||
b.Navigation("Opportunities");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.Material", b =>
|
||||
{
|
||||
b.Navigation("AlternativeUoms");
|
||||
|
|
@ -14201,6 +14532,13 @@ namespace Erp.Platform.Migrations
|
|||
b.Navigation("Materials");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.Opportunity", b =>
|
||||
{
|
||||
b.Navigation("Actions");
|
||||
|
||||
b.Navigation("Competitors");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.Order", b =>
|
||||
{
|
||||
b.Navigation("Items");
|
||||
|
|
@ -14277,6 +14615,11 @@ namespace Erp.Platform.Migrations
|
|||
b.Navigation("Media");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.Source", b =>
|
||||
{
|
||||
b.Navigation("Opportunities");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.SupplyCardType", b =>
|
||||
{
|
||||
b.Navigation("Partners");
|
||||
|
|
@ -4439,6 +4439,114 @@ namespace Erp.Platform.Migrations
|
|||
onDelete: ReferentialAction.Restrict);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "Crm_T_Action",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
|
||||
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||
OpportunityId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||
ActionType = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false),
|
||||
Subject = table.Column<string>(type: "nvarchar(200)", maxLength: 200, nullable: false),
|
||||
Description = table.Column<string>(type: "nvarchar(1000)", maxLength: 1000, nullable: true),
|
||||
EmployeeId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
|
||||
ActionDate = table.Column<DateTime>(type: "datetime2", nullable: false),
|
||||
StartTime = table.Column<DateTime>(type: "datetime2", nullable: true),
|
||||
EndTime = table.Column<DateTime>(type: "datetime2", nullable: true),
|
||||
Duration = table.Column<int>(type: "int", nullable: true),
|
||||
FollowUpDate = table.Column<DateTime>(type: "datetime2", nullable: true),
|
||||
FollowUpActivity = table.Column<string>(type: "nvarchar(max)", nullable: true),
|
||||
Outcome = table.Column<string>(type: "nvarchar(max)", nullable: true),
|
||||
NextSteps = table.Column<string>(type: "nvarchar(max)", nullable: true),
|
||||
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
|
||||
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
|
||||
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||
IsDeleted = table.Column<bool>(type: "bit", nullable: false, defaultValue: false),
|
||||
DeleterId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||
DeletionTime = table.Column<DateTime>(type: "datetime2", nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_Crm_T_Action", x => x.Id);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "Crm_T_Competitor",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
|
||||
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||
OpportunityId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||
Name = table.Column<string>(type: "nvarchar(200)", maxLength: 200, nullable: false),
|
||||
Website = table.Column<string>(type: "nvarchar(300)", maxLength: 300, nullable: true),
|
||||
Strengths = table.Column<string>(type: "nvarchar(2000)", maxLength: 2000, nullable: true),
|
||||
Weaknesses = table.Column<string>(type: "nvarchar(2000)", maxLength: 2000, nullable: true),
|
||||
MarketShare = table.Column<int>(type: "int", nullable: true),
|
||||
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
|
||||
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
|
||||
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||
IsDeleted = table.Column<bool>(type: "bit", nullable: false, defaultValue: false),
|
||||
DeleterId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||
DeletionTime = table.Column<DateTime>(type: "datetime2", nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_Crm_T_Competitor", x => x.Id);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "Crm_T_Opportunity",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
|
||||
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||
Title = table.Column<string>(type: "nvarchar(200)", maxLength: 200, nullable: false),
|
||||
Description = table.Column<string>(type: "nvarchar(1000)", maxLength: 1000, nullable: true),
|
||||
PartnerId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
|
||||
ContactId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||
Stage = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false),
|
||||
Probability = table.Column<int>(type: "int", nullable: false, defaultValue: 0),
|
||||
EstimatedValue = table.Column<decimal>(type: "decimal(18,2)", precision: 18, scale: 2, nullable: false, defaultValue: 0m),
|
||||
CurrencyId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
|
||||
ExpectedCloseDate = table.Column<DateTime>(type: "datetime2", nullable: false),
|
||||
ActualCloseDate = table.Column<DateTime>(type: "datetime2", nullable: true),
|
||||
EmployeeId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||
TeamCode = table.Column<string>(type: "nvarchar(max)", nullable: true),
|
||||
SourceId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
|
||||
LossReasonId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||
Status = table.Column<string>(type: "nvarchar(50)", maxLength: 50, nullable: false),
|
||||
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
|
||||
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
|
||||
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||
IsDeleted = table.Column<bool>(type: "bit", nullable: false, defaultValue: false),
|
||||
DeleterId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
|
||||
DeletionTime = table.Column<DateTime>(type: "datetime2", nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_Crm_T_Opportunity", x => x.Id);
|
||||
table.ForeignKey(
|
||||
name: "FK_Crm_T_Opportunity_Crm_T_LossReason_LossReasonId",
|
||||
column: x => x.LossReasonId,
|
||||
principalTable: "Crm_T_LossReason",
|
||||
principalColumn: "Id");
|
||||
table.ForeignKey(
|
||||
name: "FK_Crm_T_Opportunity_Prt_T_Source_SourceId",
|
||||
column: x => x.SourceId,
|
||||
principalTable: "Prt_T_Source",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
table.ForeignKey(
|
||||
name: "FK_Crm_T_Opportunity_Sas_H_Currency_CurrencyId",
|
||||
column: x => x.CurrencyId,
|
||||
principalTable: "Sas_H_Currency",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "Hr_T_CostCenter",
|
||||
columns: table => new
|
||||
|
|
@ -5830,6 +5938,36 @@ namespace Erp.Platform.Migrations
|
|||
table: "Crd_T_QuestionOption",
|
||||
column: "QuestionId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Crm_T_Action_OpportunityId",
|
||||
table: "Crm_T_Action",
|
||||
column: "OpportunityId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Crm_T_Competitor_OpportunityId",
|
||||
table: "Crm_T_Competitor",
|
||||
column: "OpportunityId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Crm_T_Opportunity_CurrencyId",
|
||||
table: "Crm_T_Opportunity",
|
||||
column: "CurrencyId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Crm_T_Opportunity_EmployeeId",
|
||||
table: "Crm_T_Opportunity",
|
||||
column: "EmployeeId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Crm_T_Opportunity_LossReasonId",
|
||||
table: "Crm_T_Opportunity",
|
||||
column: "LossReasonId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Crm_T_Opportunity_SourceId",
|
||||
table: "Crm_T_Opportunity",
|
||||
column: "SourceId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_Hr_T_CostCenter_DepartmentId",
|
||||
table: "Hr_T_CostCenter",
|
||||
|
|
@ -6336,6 +6474,29 @@ namespace Erp.Platform.Migrations
|
|||
principalTable: "Scp_T_Material",
|
||||
principalColumn: "Id");
|
||||
|
||||
migrationBuilder.AddForeignKey(
|
||||
name: "FK_Crm_T_Action_Crm_T_Opportunity_OpportunityId",
|
||||
table: "Crm_T_Action",
|
||||
column: "OpportunityId",
|
||||
principalTable: "Crm_T_Opportunity",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
|
||||
migrationBuilder.AddForeignKey(
|
||||
name: "FK_Crm_T_Competitor_Crm_T_Opportunity_OpportunityId",
|
||||
table: "Crm_T_Competitor",
|
||||
column: "OpportunityId",
|
||||
principalTable: "Crm_T_Opportunity",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
|
||||
migrationBuilder.AddForeignKey(
|
||||
name: "FK_Crm_T_Opportunity_Hr_T_Employee_EmployeeId",
|
||||
table: "Crm_T_Opportunity",
|
||||
column: "EmployeeId",
|
||||
principalTable: "Hr_T_Employee",
|
||||
principalColumn: "Id");
|
||||
|
||||
migrationBuilder.AddForeignKey(
|
||||
name: "FK_Hr_T_CostCenter_Hr_T_Department_DepartmentId",
|
||||
table: "Hr_T_CostCenter",
|
||||
|
|
@ -6564,7 +6725,10 @@ namespace Erp.Platform.Migrations
|
|||
name: "Crd_T_QuestionTag");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "Crm_T_LossReason");
|
||||
name: "Crm_T_Action");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "Crm_T_Competitor");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "Hr_T_Expense");
|
||||
|
|
@ -6665,9 +6829,6 @@ namespace Erp.Platform.Migrations
|
|||
migrationBuilder.DropTable(
|
||||
name: "Prt_T_SalesRejectionReason");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "Prt_T_Source");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "Sas_H_ContactTag");
|
||||
|
||||
|
|
@ -6779,6 +6940,9 @@ namespace Erp.Platform.Migrations
|
|||
migrationBuilder.DropTable(
|
||||
name: "Crd_T_Question");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "Crm_T_Opportunity");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "Hr_T_Payroll");
|
||||
|
||||
|
|
@ -6860,6 +7024,12 @@ namespace Erp.Platform.Migrations
|
|||
migrationBuilder.DropTable(
|
||||
name: "Crd_T_QuestionPool");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "Crm_T_LossReason");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "Prt_T_Source");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "Hr_T_Survey");
|
||||
|
||||
|
|
@ -622,6 +622,96 @@ namespace Erp.Platform.Migrations
|
|||
b.ToTable("Adm_T_About", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.Action", b =>
|
||||
{
|
||||
b.Property<Guid>("Id")
|
||||
.HasColumnType("uniqueidentifier");
|
||||
|
||||
b.Property<DateTime>("ActionDate")
|
||||
.HasColumnType("datetime2");
|
||||
|
||||
b.Property<string>("ActionType")
|
||||
.IsRequired()
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("nvarchar(50)");
|
||||
|
||||
b.Property<DateTime>("CreationTime")
|
||||
.HasColumnType("datetime2")
|
||||
.HasColumnName("CreationTime");
|
||||
|
||||
b.Property<Guid?>("CreatorId")
|
||||
.HasColumnType("uniqueidentifier")
|
||||
.HasColumnName("CreatorId");
|
||||
|
||||
b.Property<Guid?>("DeleterId")
|
||||
.HasColumnType("uniqueidentifier")
|
||||
.HasColumnName("DeleterId");
|
||||
|
||||
b.Property<DateTime?>("DeletionTime")
|
||||
.HasColumnType("datetime2")
|
||||
.HasColumnName("DeletionTime");
|
||||
|
||||
b.Property<string>("Description")
|
||||
.HasMaxLength(1000)
|
||||
.HasColumnType("nvarchar(1000)");
|
||||
|
||||
b.Property<int?>("Duration")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<Guid>("EmployeeId")
|
||||
.HasColumnType("uniqueidentifier");
|
||||
|
||||
b.Property<DateTime?>("EndTime")
|
||||
.HasColumnType("datetime2");
|
||||
|
||||
b.Property<string>("FollowUpActivity")
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<DateTime?>("FollowUpDate")
|
||||
.HasColumnType("datetime2");
|
||||
|
||||
b.Property<bool>("IsDeleted")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("bit")
|
||||
.HasDefaultValue(false)
|
||||
.HasColumnName("IsDeleted");
|
||||
|
||||
b.Property<DateTime?>("LastModificationTime")
|
||||
.HasColumnType("datetime2")
|
||||
.HasColumnName("LastModificationTime");
|
||||
|
||||
b.Property<Guid?>("LastModifierId")
|
||||
.HasColumnType("uniqueidentifier")
|
||||
.HasColumnName("LastModifierId");
|
||||
|
||||
b.Property<string>("NextSteps")
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<Guid?>("OpportunityId")
|
||||
.HasColumnType("uniqueidentifier");
|
||||
|
||||
b.Property<string>("Outcome")
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<DateTime?>("StartTime")
|
||||
.HasColumnType("datetime2");
|
||||
|
||||
b.Property<string>("Subject")
|
||||
.IsRequired()
|
||||
.HasMaxLength(200)
|
||||
.HasColumnType("nvarchar(200)");
|
||||
|
||||
b.Property<Guid?>("TenantId")
|
||||
.HasColumnType("uniqueidentifier")
|
||||
.HasColumnName("TenantId");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("OpportunityId");
|
||||
|
||||
b.ToTable("Crm_T_Action", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.Activity", b =>
|
||||
{
|
||||
b.Property<Guid>("Id")
|
||||
|
|
@ -2288,6 +2378,75 @@ namespace Erp.Platform.Migrations
|
|||
b.ToTable("Crd_T_ClassroomParticipant", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.Competitor", b =>
|
||||
{
|
||||
b.Property<Guid>("Id")
|
||||
.HasColumnType("uniqueidentifier");
|
||||
|
||||
b.Property<DateTime>("CreationTime")
|
||||
.HasColumnType("datetime2")
|
||||
.HasColumnName("CreationTime");
|
||||
|
||||
b.Property<Guid?>("CreatorId")
|
||||
.HasColumnType("uniqueidentifier")
|
||||
.HasColumnName("CreatorId");
|
||||
|
||||
b.Property<Guid?>("DeleterId")
|
||||
.HasColumnType("uniqueidentifier")
|
||||
.HasColumnName("DeleterId");
|
||||
|
||||
b.Property<DateTime?>("DeletionTime")
|
||||
.HasColumnType("datetime2")
|
||||
.HasColumnName("DeletionTime");
|
||||
|
||||
b.Property<bool>("IsDeleted")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("bit")
|
||||
.HasDefaultValue(false)
|
||||
.HasColumnName("IsDeleted");
|
||||
|
||||
b.Property<DateTime?>("LastModificationTime")
|
||||
.HasColumnType("datetime2")
|
||||
.HasColumnName("LastModificationTime");
|
||||
|
||||
b.Property<Guid?>("LastModifierId")
|
||||
.HasColumnType("uniqueidentifier")
|
||||
.HasColumnName("LastModifierId");
|
||||
|
||||
b.Property<int?>("MarketShare")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.IsRequired()
|
||||
.HasMaxLength(200)
|
||||
.HasColumnType("nvarchar(200)");
|
||||
|
||||
b.Property<Guid?>("OpportunityId")
|
||||
.HasColumnType("uniqueidentifier");
|
||||
|
||||
b.Property<string>("Strengths")
|
||||
.HasMaxLength(2000)
|
||||
.HasColumnType("nvarchar(2000)");
|
||||
|
||||
b.Property<Guid?>("TenantId")
|
||||
.HasColumnType("uniqueidentifier")
|
||||
.HasColumnName("TenantId");
|
||||
|
||||
b.Property<string>("Weaknesses")
|
||||
.HasMaxLength(2000)
|
||||
.HasColumnType("nvarchar(2000)");
|
||||
|
||||
b.Property<string>("Website")
|
||||
.HasMaxLength(300)
|
||||
.HasColumnType("nvarchar(300)");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("OpportunityId");
|
||||
|
||||
b.ToTable("Crm_T_Competitor", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.Contact", b =>
|
||||
{
|
||||
b.Property<Guid>("Id")
|
||||
|
|
@ -6472,6 +6631,115 @@ namespace Erp.Platform.Migrations
|
|||
b.ToTable("Prt_T_NoteType", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.Opportunity", b =>
|
||||
{
|
||||
b.Property<Guid>("Id")
|
||||
.HasColumnType("uniqueidentifier");
|
||||
|
||||
b.Property<DateTime?>("ActualCloseDate")
|
||||
.HasColumnType("datetime2");
|
||||
|
||||
b.Property<Guid?>("ContactId")
|
||||
.HasColumnType("uniqueidentifier");
|
||||
|
||||
b.Property<DateTime>("CreationTime")
|
||||
.HasColumnType("datetime2")
|
||||
.HasColumnName("CreationTime");
|
||||
|
||||
b.Property<Guid?>("CreatorId")
|
||||
.HasColumnType("uniqueidentifier")
|
||||
.HasColumnName("CreatorId");
|
||||
|
||||
b.Property<Guid>("CurrencyId")
|
||||
.HasColumnType("uniqueidentifier");
|
||||
|
||||
b.Property<Guid?>("DeleterId")
|
||||
.HasColumnType("uniqueidentifier")
|
||||
.HasColumnName("DeleterId");
|
||||
|
||||
b.Property<DateTime?>("DeletionTime")
|
||||
.HasColumnType("datetime2")
|
||||
.HasColumnName("DeletionTime");
|
||||
|
||||
b.Property<string>("Description")
|
||||
.HasMaxLength(1000)
|
||||
.HasColumnType("nvarchar(1000)");
|
||||
|
||||
b.Property<Guid?>("EmployeeId")
|
||||
.HasColumnType("uniqueidentifier");
|
||||
|
||||
b.Property<decimal>("EstimatedValue")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasPrecision(18, 2)
|
||||
.HasColumnType("decimal(18,2)")
|
||||
.HasDefaultValue(0m);
|
||||
|
||||
b.Property<DateTime>("ExpectedCloseDate")
|
||||
.HasColumnType("datetime2");
|
||||
|
||||
b.Property<bool>("IsDeleted")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("bit")
|
||||
.HasDefaultValue(false)
|
||||
.HasColumnName("IsDeleted");
|
||||
|
||||
b.Property<DateTime?>("LastModificationTime")
|
||||
.HasColumnType("datetime2")
|
||||
.HasColumnName("LastModificationTime");
|
||||
|
||||
b.Property<Guid?>("LastModifierId")
|
||||
.HasColumnType("uniqueidentifier")
|
||||
.HasColumnName("LastModifierId");
|
||||
|
||||
b.Property<Guid?>("LossReasonId")
|
||||
.HasColumnType("uniqueidentifier");
|
||||
|
||||
b.Property<Guid>("PartnerId")
|
||||
.HasColumnType("uniqueidentifier");
|
||||
|
||||
b.Property<int>("Probability")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("int")
|
||||
.HasDefaultValue(0);
|
||||
|
||||
b.Property<Guid>("SourceId")
|
||||
.HasColumnType("uniqueidentifier");
|
||||
|
||||
b.Property<string>("Stage")
|
||||
.IsRequired()
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("nvarchar(50)");
|
||||
|
||||
b.Property<string>("Status")
|
||||
.IsRequired()
|
||||
.HasMaxLength(50)
|
||||
.HasColumnType("nvarchar(50)");
|
||||
|
||||
b.Property<string>("TeamCode")
|
||||
.HasColumnType("nvarchar(max)");
|
||||
|
||||
b.Property<Guid?>("TenantId")
|
||||
.HasColumnType("uniqueidentifier")
|
||||
.HasColumnName("TenantId");
|
||||
|
||||
b.Property<string>("Title")
|
||||
.IsRequired()
|
||||
.HasMaxLength(200)
|
||||
.HasColumnType("nvarchar(200)");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("CurrencyId");
|
||||
|
||||
b.HasIndex("EmployeeId");
|
||||
|
||||
b.HasIndex("LossReasonId");
|
||||
|
||||
b.HasIndex("SourceId");
|
||||
|
||||
b.ToTable("Crm_T_Opportunity", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.Order", b =>
|
||||
{
|
||||
b.Property<Guid>("Id")
|
||||
|
|
@ -12879,6 +13147,16 @@ namespace Erp.Platform.Migrations
|
|||
b.Navigation("NotificationRule");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.Action", b =>
|
||||
{
|
||||
b.HasOne("Erp.Platform.Entities.Opportunity", "Opportunity")
|
||||
.WithMany("Actions")
|
||||
.HasForeignKey("OpportunityId")
|
||||
.OnDelete(DeleteBehavior.Cascade);
|
||||
|
||||
b.Navigation("Opportunity");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.Announcement", b =>
|
||||
{
|
||||
b.HasOne("Erp.Platform.Entities.Employee", "Employee")
|
||||
|
|
@ -13055,6 +13333,16 @@ namespace Erp.Platform.Migrations
|
|||
b.Navigation("Session");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.Competitor", b =>
|
||||
{
|
||||
b.HasOne("Erp.Platform.Entities.Opportunity", "Opportunity")
|
||||
.WithMany("Competitors")
|
||||
.HasForeignKey("OpportunityId")
|
||||
.OnDelete(DeleteBehavior.Cascade);
|
||||
|
||||
b.Navigation("Opportunity");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.CostCenter", b =>
|
||||
{
|
||||
b.HasOne("Erp.Platform.Entities.Department", "Department")
|
||||
|
|
@ -13411,6 +13699,37 @@ namespace Erp.Platform.Migrations
|
|||
b.Navigation("Branch");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.Opportunity", b =>
|
||||
{
|
||||
b.HasOne("Erp.Platform.Entities.Currency", "Currency")
|
||||
.WithMany("Opportunities")
|
||||
.HasForeignKey("CurrencyId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.HasOne("Erp.Platform.Entities.Employee", "Employee")
|
||||
.WithMany("Opportunities")
|
||||
.HasForeignKey("EmployeeId");
|
||||
|
||||
b.HasOne("Erp.Platform.Entities.LossReason", "LossReason")
|
||||
.WithMany("Opportunities")
|
||||
.HasForeignKey("LossReasonId");
|
||||
|
||||
b.HasOne("Erp.Platform.Entities.Source", "Source")
|
||||
.WithMany("Opportunities")
|
||||
.HasForeignKey("SourceId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.Navigation("Currency");
|
||||
|
||||
b.Navigation("Employee");
|
||||
|
||||
b.Navigation("LossReason");
|
||||
|
||||
b.Navigation("Source");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.OrderItem", b =>
|
||||
{
|
||||
b.HasOne("Erp.Platform.Entities.Order", "Order")
|
||||
|
|
@ -14113,6 +14432,11 @@ namespace Erp.Platform.Migrations
|
|||
b.Navigation("Cities");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.Currency", b =>
|
||||
{
|
||||
b.Navigation("Opportunities");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.CustomEntity", b =>
|
||||
{
|
||||
b.Navigation("Fields");
|
||||
|
|
@ -14147,6 +14471,8 @@ namespace Erp.Platform.Migrations
|
|||
|
||||
b.Navigation("Leaves");
|
||||
|
||||
b.Navigation("Opportunities");
|
||||
|
||||
b.Navigation("Overtimes");
|
||||
|
||||
b.Navigation("Partners");
|
||||
|
|
@ -14175,6 +14501,11 @@ namespace Erp.Platform.Migrations
|
|||
b.Navigation("Events");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.LossReason", b =>
|
||||
{
|
||||
b.Navigation("Opportunities");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.Material", b =>
|
||||
{
|
||||
b.Navigation("AlternativeUoms");
|
||||
|
|
@ -14198,6 +14529,13 @@ namespace Erp.Platform.Migrations
|
|||
b.Navigation("Materials");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.Opportunity", b =>
|
||||
{
|
||||
b.Navigation("Actions");
|
||||
|
||||
b.Navigation("Competitors");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.Order", b =>
|
||||
{
|
||||
b.Navigation("Items");
|
||||
|
|
@ -14274,6 +14612,11 @@ namespace Erp.Platform.Migrations
|
|||
b.Navigation("Media");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.Source", b =>
|
||||
{
|
||||
b.Navigation("Opportunities");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Erp.Platform.Entities.SupplyCardType", b =>
|
||||
{
|
||||
b.Navigation("Partners");
|
||||
|
|
|
|||
|
|
@ -100,9 +100,7 @@
|
|||
"props": null,
|
||||
"description": null,
|
||||
"isActive": true,
|
||||
"dependencies": [
|
||||
"DynamicEntityComponent"
|
||||
]
|
||||
"dependencies": ["DynamicEntityComponent"]
|
||||
}
|
||||
],
|
||||
"ReportCategories": [
|
||||
|
|
@ -2408,12 +2406,7 @@
|
|||
"minSalary": 80000,
|
||||
"maxSalary": 120000,
|
||||
"currencyCode": "USD",
|
||||
"requiredSkills": [
|
||||
"JavaScript",
|
||||
"TypeScript",
|
||||
"React",
|
||||
"Node.js"
|
||||
],
|
||||
"requiredSkills": ["JavaScript", "TypeScript", "React", "Node.js"],
|
||||
"responsibilities": [
|
||||
"Develop frontend and backend applications",
|
||||
"Write clean and maintainable code",
|
||||
|
|
@ -2886,7 +2879,7 @@
|
|||
"payrollGroup": "Monthly",
|
||||
"bankAccountNumber": "1",
|
||||
"badgeCode": "B001",
|
||||
"employeeStatus": "Active",
|
||||
"employeeStatus": "Aktif",
|
||||
"isActive": true,
|
||||
"leaves": [],
|
||||
"evaluations": [],
|
||||
|
|
@ -2926,7 +2919,7 @@
|
|||
"payrollGroup": "Monthly",
|
||||
"bankAccountNumber": "2",
|
||||
"badgeCode": "B002",
|
||||
"employeeStatus": "Active",
|
||||
"employeeStatus": "Aktif",
|
||||
"isActive": true,
|
||||
"leaves": [],
|
||||
"evaluations": [],
|
||||
|
|
@ -2966,7 +2959,7 @@
|
|||
"payrollGroup": "Monthly",
|
||||
"bankAccountNumber": "2",
|
||||
"badgeCode": "B003",
|
||||
"employeeStatus": "Active",
|
||||
"employeeStatus": "Aktif",
|
||||
"isActive": true,
|
||||
"leaves": [],
|
||||
"evaluations": [],
|
||||
|
|
@ -3006,7 +2999,7 @@
|
|||
"payrollGroup": "Monthly",
|
||||
"bankAccountNumber": "3",
|
||||
"badgeCode": "B004",
|
||||
"employeeStatus": "Active",
|
||||
"employeeStatus": "Aktif",
|
||||
"isActive": true,
|
||||
"leaves": [],
|
||||
"evaluations": [],
|
||||
|
|
@ -3046,7 +3039,7 @@
|
|||
"payrollGroup": "Monthly",
|
||||
"bankAccountNumber": "4",
|
||||
"badgeCode": "B005",
|
||||
"employeeStatus": "Active",
|
||||
"employeeStatus": "Aktif",
|
||||
"isActive": true,
|
||||
"leaves": [],
|
||||
"evaluations": [],
|
||||
|
|
@ -3086,7 +3079,7 @@
|
|||
"payrollGroup": "Monthly",
|
||||
"bankAccountNumber": "1",
|
||||
"badgeCode": "B006",
|
||||
"employeeStatus": "Active",
|
||||
"employeeStatus": "Aktif",
|
||||
"isActive": true,
|
||||
"leaves": [],
|
||||
"evaluations": [],
|
||||
|
|
@ -3126,7 +3119,7 @@
|
|||
"payrollGroup": "Monthly",
|
||||
"bankAccountNumber": "3",
|
||||
"badgeCode": "B007",
|
||||
"employeeStatus": "Active",
|
||||
"employeeStatus": "Aktif",
|
||||
"isActive": true,
|
||||
"leaves": [],
|
||||
"evaluations": [],
|
||||
|
|
@ -3166,7 +3159,7 @@
|
|||
"payrollGroup": "Monthly",
|
||||
"bankAccountNumber": "2",
|
||||
"badgeCode": "B008",
|
||||
"employeeStatus": "Active",
|
||||
"employeeStatus": "Aktif",
|
||||
"isActive": true,
|
||||
"leaves": [],
|
||||
"evaluations": [],
|
||||
|
|
@ -3206,7 +3199,7 @@
|
|||
"payrollGroup": "Monthly",
|
||||
"bankAccountNumber": "1",
|
||||
"badgeCode": "B009",
|
||||
"employeeStatus": "Active",
|
||||
"employeeStatus": "Aktif",
|
||||
"isActive": true,
|
||||
"leaves": [],
|
||||
"evaluations": [],
|
||||
|
|
@ -3246,7 +3239,7 @@
|
|||
"payrollGroup": "Monthly",
|
||||
"bankAccountNumber": "4",
|
||||
"badgeCode": "B010",
|
||||
"employeeStatus": "Active",
|
||||
"employeeStatus": "Aktif",
|
||||
"isActive": true,
|
||||
"leaves": [],
|
||||
"evaluations": [],
|
||||
|
|
@ -3262,7 +3255,7 @@
|
|||
"endDate": "12-04-2024",
|
||||
"totalDays": 5,
|
||||
"reason": "Yıllık izin talebi",
|
||||
"status": "Pending",
|
||||
"status": "Askıda",
|
||||
"appliedDate": "11-15-2024",
|
||||
"isHalfDay": false
|
||||
},
|
||||
|
|
@ -3273,9 +3266,9 @@
|
|||
"endDate": "11-12-2024",
|
||||
"totalDays": 3,
|
||||
"reason": "Sağlık kontrolü",
|
||||
"status": "Approved",
|
||||
"status": "Onaylı",
|
||||
"appliedDate": "11-08-2024",
|
||||
"approvedDate": "11-09-2024",
|
||||
"OnaylıDate": "11-09-2024",
|
||||
"isHalfDay": false
|
||||
},
|
||||
{
|
||||
|
|
@ -3297,7 +3290,7 @@
|
|||
"endDate": "06-11-2024",
|
||||
"totalDays": 2,
|
||||
"reason": "Acil aile durumu",
|
||||
"status": "Pending",
|
||||
"status": "Askıda",
|
||||
"appliedDate": "04-11-2024",
|
||||
"isHalfDay": false
|
||||
}
|
||||
|
|
@ -3310,7 +3303,7 @@
|
|||
"endTime": "1970-01-01T21:00",
|
||||
"totalHours": 3,
|
||||
"reason": "Proje deadline'ı nedeniyle acil çalışma",
|
||||
"status": "Approved",
|
||||
"status": "Onaylı",
|
||||
"rate": 1.5,
|
||||
"amount": 450
|
||||
},
|
||||
|
|
@ -3321,7 +3314,7 @@
|
|||
"endTime": "1970-01-01T20:00",
|
||||
"totalHours": 2.5,
|
||||
"reason": "Müşteri talep değişikliği nedeniyle ek çalışma",
|
||||
"status": "Pending",
|
||||
"status": "Askıda",
|
||||
"rate": 1.5,
|
||||
"amount": 375
|
||||
},
|
||||
|
|
@ -3332,7 +3325,7 @@
|
|||
"endTime": "1970-01-01T22:30",
|
||||
"totalHours": 3.5,
|
||||
"reason": "Sistem bakımı ve güncelleme çalışmaları",
|
||||
"status": "Approved",
|
||||
"status": "Onaylı",
|
||||
"rate": 1.5,
|
||||
"amount": 525
|
||||
},
|
||||
|
|
@ -3354,8 +3347,8 @@
|
|||
"endTime": "1970-01-01T21:00",
|
||||
"totalHours": 2.5,
|
||||
"reason": "Acil hata düzeltme ve test çalışmaları",
|
||||
"status": "Approved",
|
||||
"approvedBy": "emp_001",
|
||||
"status": "Onaylı",
|
||||
"OnaylıBy": "emp_001",
|
||||
"rate": 2.0,
|
||||
"amount": 500
|
||||
},
|
||||
|
|
@ -3366,7 +3359,7 @@
|
|||
"endTime": "1970-01-01T20:00",
|
||||
"totalHours": 4,
|
||||
"reason": "Yeni müşteri onboarding süreci",
|
||||
"status": "Pending",
|
||||
"status": "Askıda",
|
||||
"rate": 1.5,
|
||||
"amount": 600
|
||||
},
|
||||
|
|
@ -3377,8 +3370,8 @@
|
|||
"endTime": "1970-01-01T21:15",
|
||||
"totalHours": 3.5,
|
||||
"reason": "Veri analizi ve raporlama çalışmaları",
|
||||
"status": "Approved",
|
||||
"approvedBy": "emp_002",
|
||||
"status": "Onaylı",
|
||||
"OnaylıBy": "emp_002",
|
||||
"rate": 1.5,
|
||||
"amount": 525
|
||||
},
|
||||
|
|
@ -3389,7 +3382,7 @@
|
|||
"endTime": "1970-01-01T20:30",
|
||||
"totalHours": 2.5,
|
||||
"reason": "Eğitim materyali hazırlama",
|
||||
"status": "Pending",
|
||||
"status": "Askıda",
|
||||
"rate": 1.5,
|
||||
"amount": 375
|
||||
},
|
||||
|
|
@ -3400,7 +3393,7 @@
|
|||
"endTime": "1970-01-01T23:00",
|
||||
"totalHours": 3.5,
|
||||
"reason": "Kritik sistem güvenlik yaması uygulaması",
|
||||
"status": "Approved",
|
||||
"status": "Onaylı",
|
||||
"rate": 1.5,
|
||||
"amount": 525
|
||||
},
|
||||
|
|
@ -3428,7 +3421,7 @@
|
|||
"netSalary": 0,
|
||||
"tax": 0,
|
||||
"socialSecurity": 0,
|
||||
"status": "Cancelled"
|
||||
"status": "İptal"
|
||||
},
|
||||
{
|
||||
"employeeCode": "EMP-002",
|
||||
|
|
@ -3454,7 +3447,7 @@
|
|||
"netSalary": 0,
|
||||
"tax": 0,
|
||||
"socialSecurity": 0,
|
||||
"status": "Approved"
|
||||
"status": "Onaylı"
|
||||
},
|
||||
{
|
||||
"employeeCode": "EMP-004",
|
||||
|
|
@ -3480,7 +3473,7 @@
|
|||
"netSalary": 0,
|
||||
"tax": 0,
|
||||
"socialSecurity": 0,
|
||||
"status": "Draft"
|
||||
"status": "Taslak"
|
||||
}
|
||||
],
|
||||
"Template360s": [
|
||||
|
|
@ -3498,7 +3491,7 @@
|
|||
"templateName": "Genel Yetkinlik Değerlendirmesi",
|
||||
"startDate": "01-11-2024",
|
||||
"endDate": "15-12-2024",
|
||||
"status": "Active",
|
||||
"status": "Aktif",
|
||||
"departmentCode": "ÜRT",
|
||||
"targetEmployees": "EMP-001|EMP-002|EMP-003|EMP-004|EMP-005"
|
||||
},
|
||||
|
|
@ -3508,7 +3501,7 @@
|
|||
"templateName": "Genel Yetkinlik Değerlendirmesi",
|
||||
"startDate": "01-01-2025",
|
||||
"endDate": "08-02-2025",
|
||||
"status": "Active",
|
||||
"status": "Aktif",
|
||||
"departmentCode": "ÜRT",
|
||||
"targetEmployees": "EMP-007|EMP-008|EMP-009"
|
||||
},
|
||||
|
|
@ -3518,7 +3511,7 @@
|
|||
"templateName": "Genel Yetkinlik Değerlendirmesi",
|
||||
"startDate": "01-10-2023",
|
||||
"endDate": "10-11-2023",
|
||||
"status": "Active",
|
||||
"status": "Aktif",
|
||||
"departmentCode": "ÜRT",
|
||||
"targetEmployees": "EMP-005|EMP-006"
|
||||
},
|
||||
|
|
@ -3528,7 +3521,7 @@
|
|||
"templateName": "Genel Yetkinlik Değerlendirmesi",
|
||||
"startDate": "01-10-2022",
|
||||
"endDate": "08-11-2024",
|
||||
"status": "Cancelled",
|
||||
"status": "İptal",
|
||||
"departmentCode": "BAK",
|
||||
"targetEmployees": "EMP-005|EMP-006"
|
||||
},
|
||||
|
|
@ -3538,7 +3531,7 @@
|
|||
"templateName": "Genel Yetkinlik Değerlendirmesi",
|
||||
"startDate": "01-10-2021",
|
||||
"endDate": "10-11-2021",
|
||||
"status": "Draft",
|
||||
"status": "Taslak",
|
||||
"departmentCode": "KAL",
|
||||
"targetEmployees": "EMP-005|EMP-006"
|
||||
},
|
||||
|
|
@ -3548,7 +3541,7 @@
|
|||
"templateName": "Genel Yetkinlik Değerlendirmesi",
|
||||
"startDate": "01-10-2020",
|
||||
"endDate": "05-11-2020",
|
||||
"status": "Completed",
|
||||
"status": "Tamamlandı",
|
||||
"departmentCode": "KAL",
|
||||
"targetEmployees": "EMP-005|EMP-006"
|
||||
}
|
||||
|
|
@ -3565,7 +3558,7 @@
|
|||
"endDate": "2025-11-08",
|
||||
"maxParticipants": 20,
|
||||
"enrolled": 15,
|
||||
"status": "upcoming",
|
||||
"status": "Yaklaşan",
|
||||
"location": "Eğitim Salonu B",
|
||||
"thumbnail": "https://images.unsplash.com/photo-1633356122544-f134324a6cee?w=400&h=300&fit=crop"
|
||||
},
|
||||
|
|
@ -3595,7 +3588,7 @@
|
|||
"endDate": "2025-11-03",
|
||||
"maxParticipants": 25,
|
||||
"enrolled": 25,
|
||||
"status": "completed",
|
||||
"status": "Tamamlandı",
|
||||
"location": "Eğitim Salonu C",
|
||||
"thumbnail": "https://images.unsplash.com/photo-1552664730-d307ca884978?w=400&h=300&fit=crop"
|
||||
},
|
||||
|
|
@ -3610,7 +3603,7 @@
|
|||
"endDate": "2024-11-30",
|
||||
"maxParticipants": 50,
|
||||
"enrolled": 8,
|
||||
"status": "upcoming",
|
||||
"status": "Yaklaşan",
|
||||
"location": "Eğitim Salonu D",
|
||||
"thumbnail": "https://images.unsplash.com/photo-1550751827-4bd374c3f58b?w=400&h=300&fit=crop"
|
||||
}
|
||||
|
|
@ -3623,7 +3616,7 @@
|
|||
"startDate": "10-10-2025 09:00:00",
|
||||
"endDate": "10-10-2025 11:00:00",
|
||||
"purpose": "Sprint Planning Toplantısı",
|
||||
"status": "approved",
|
||||
"status": "Onaylı",
|
||||
"participants": 8,
|
||||
"notes": "Projeksiyon cihazı gerekli"
|
||||
},
|
||||
|
|
@ -3634,7 +3627,7 @@
|
|||
"startDate": "11-10-2025 08:00:00",
|
||||
"endDate": "11-10-2025 18:00:00",
|
||||
"purpose": "Müşteri Ziyareti",
|
||||
"status": "pending",
|
||||
"status": "Askıda",
|
||||
"notes": "Ankara çıkışı"
|
||||
},
|
||||
{
|
||||
|
|
@ -3644,7 +3637,7 @@
|
|||
"startDate": "09-10-2025 14:00:00",
|
||||
"endDate": "09-10-2025 17:00:00",
|
||||
"purpose": "Ürün Tanıtım Videosu Çekimi",
|
||||
"status": "approved"
|
||||
"status": "Onaylı"
|
||||
},
|
||||
{
|
||||
"type": "room",
|
||||
|
|
@ -3653,7 +3646,7 @@
|
|||
"startDate": "05-10-2025 09:00:00",
|
||||
"endDate": "05-10-2025 17:00:00",
|
||||
"purpose": "Etkili İletişim Eğitimi",
|
||||
"status": "approved",
|
||||
"status": "Onaylı",
|
||||
"participants": 15,
|
||||
"notes": "Tüm gün rezervasyon, öğle yemeği dahil"
|
||||
}
|
||||
|
|
@ -3787,7 +3780,7 @@
|
|||
"checkIn": "2025-10-29T09:15:00",
|
||||
"employeeCode": "EMP-001",
|
||||
"purpose": "İş Ortaklığı Görüşmesi",
|
||||
"status": "checked-in",
|
||||
"status": "Giriş",
|
||||
"photo": "https://i.pravatar.cc/150?img=12"
|
||||
},
|
||||
{
|
||||
|
|
@ -3798,7 +3791,7 @@
|
|||
"visitDate": "2025-10-30T10:30:00",
|
||||
"employeeCode": "EMP-002",
|
||||
"purpose": "Eğitim Danışmanlığı",
|
||||
"status": "scheduled",
|
||||
"status": "Planlandı",
|
||||
"photo": "https://i.pravatar.cc/150?img=13"
|
||||
},
|
||||
{
|
||||
|
|
@ -3811,7 +3804,7 @@
|
|||
"checkOut": "2025-10-31T16:00:00",
|
||||
"employeeCode": "EMP-003",
|
||||
"purpose": "Teknik Sunum",
|
||||
"status": "checked-out",
|
||||
"status": "Çıkış",
|
||||
"photo": "https://i.pravatar.cc/150?img=14"
|
||||
}
|
||||
],
|
||||
|
|
@ -3824,7 +3817,7 @@
|
|||
"requestDate": "2025-10-04",
|
||||
"description": "Ankara ofis ziyareti - uçak bileti",
|
||||
"project": "Intranet v2",
|
||||
"status": "approved",
|
||||
"status": "Onaylı",
|
||||
"approverCode": "EMP-004",
|
||||
"approvalDate": "2025-10-10"
|
||||
},
|
||||
|
|
@ -3836,7 +3829,7 @@
|
|||
"requestDate": "2025-10-07",
|
||||
"description": "Müşteri toplantısı - öğle yemeği",
|
||||
"project": null,
|
||||
"status": "pending",
|
||||
"status": "Askıda",
|
||||
"approverCode": null,
|
||||
"approvalDate": null
|
||||
},
|
||||
|
|
@ -3848,7 +3841,7 @@
|
|||
"requestDate": "2025-10-04",
|
||||
"description": "İzmir workshop - otel konaklaması (2 gece)",
|
||||
"project": "UX Workshop",
|
||||
"status": "approved",
|
||||
"status": "Onaylı",
|
||||
"approverCode": "EMP-005",
|
||||
"approvalDate": "2025-10-05"
|
||||
}
|
||||
|
|
@ -3859,7 +3852,7 @@
|
|||
"Description": "Yıllık çalışan memnuniyeti ve bağlılık araştırması",
|
||||
"Deadline": "2024-10-31T00:00:00",
|
||||
"Responses": 45,
|
||||
"Status": "active",
|
||||
"Status": "Aktif",
|
||||
"IsAnonymous": true
|
||||
},
|
||||
{
|
||||
|
|
@ -3867,7 +3860,7 @@
|
|||
"Description": "2025 yılı eğitim planlaması için ihtiyaç tespiti",
|
||||
"Deadline": "2024-11-15T00:00:00",
|
||||
"Responses": 28,
|
||||
"Status": "active",
|
||||
"Status": "Aktif",
|
||||
"IsAnonymous": false
|
||||
},
|
||||
{
|
||||
|
|
@ -3875,7 +3868,7 @@
|
|||
"Description": "Yemek kalitesi ve servis değerlendirmesi",
|
||||
"Deadline": "2024-09-30T00:00:00",
|
||||
"Responses": 62,
|
||||
"Status": "closed",
|
||||
"Status": "Kapalı",
|
||||
"IsAnonymous": true
|
||||
}
|
||||
],
|
||||
|
|
@ -4108,9 +4101,7 @@
|
|||
{
|
||||
"postContent": "CI/CD pipeline güncellememiz tamamlandı! Deployment süremiz %40 azaldı. Otomasyonun gücü 💪",
|
||||
"type": "video",
|
||||
"urls": [
|
||||
"https://www.w3schools.com/html/mov_bbb.mp4"
|
||||
]
|
||||
"urls": ["https://www.w3schools.com/html/mov_bbb.mp4"]
|
||||
}
|
||||
],
|
||||
"SocialPollOptions": [
|
||||
|
|
@ -4518,7 +4509,7 @@
|
|||
"CurrencyCode": "TRY",
|
||||
"PaymentTermName": "Net30",
|
||||
"CreditLimit": 500000,
|
||||
"Status": "Active",
|
||||
"Status": "Aktif",
|
||||
"CustomerTypeName": null,
|
||||
"CustomerSegmentName": null,
|
||||
"EmployeeCode": null,
|
||||
|
|
@ -4556,7 +4547,7 @@
|
|||
"CurrencyCode": "TRY",
|
||||
"PaymentTermName": "Net15",
|
||||
"CreditLimit": 250000,
|
||||
"Status": "Active",
|
||||
"Status": "Aktif",
|
||||
"CustomerTypeName": null,
|
||||
"CustomerSegmentName": null,
|
||||
"EmployeeCode": null,
|
||||
|
|
@ -4594,7 +4585,7 @@
|
|||
"CurrencyCode": "TRY",
|
||||
"PaymentTermName": "Net45",
|
||||
"CreditLimit": 150000,
|
||||
"Status": "Active",
|
||||
"Status": "Aktif",
|
||||
"CustomerTypeName": null,
|
||||
"CustomerSegmentName": null,
|
||||
"EmployeeCode": null,
|
||||
|
|
@ -4632,7 +4623,7 @@
|
|||
"CurrencyCode": "TRY",
|
||||
"PaymentTermName": "Net30",
|
||||
"CreditLimit": 100000,
|
||||
"Status": "Inactive",
|
||||
"Status": "Pasif",
|
||||
"CustomerTypeName": null,
|
||||
"CustomerSegmentName": null,
|
||||
"EmployeeCode": null,
|
||||
|
|
@ -4670,7 +4661,7 @@
|
|||
"CurrencyCode": "TRY",
|
||||
"PaymentTermName": "Net60",
|
||||
"CreditLimit": 500000,
|
||||
"Status": "Active",
|
||||
"Status": "Aktif",
|
||||
"CustomerTypeName": "Company",
|
||||
"CustomerSegmentName": "SMB",
|
||||
"EmployeeCode": "REP-002",
|
||||
|
|
@ -4708,7 +4699,7 @@
|
|||
"CurrencyCode": "TRY",
|
||||
"PaymentTermName": "Net30",
|
||||
"CreditLimit": 1000000,
|
||||
"Status": "Active",
|
||||
"Status": "Aktif",
|
||||
"CustomerTypeName": "Company",
|
||||
"CustomerSegmentName": "Enterprise",
|
||||
"EmployeeCode": "REP-001",
|
||||
|
|
@ -4768,5 +4759,10 @@
|
|||
"category": "Budget",
|
||||
"isActive": true
|
||||
}
|
||||
],
|
||||
"OrganizationUnits": [
|
||||
{
|
||||
"displayName": "Satış Takımı"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -102,6 +102,8 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency
|
|||
private readonly IRepository<CustomerSegment, Guid> _customerSegmentRepository;
|
||||
private readonly IRepository<Partner, Guid> _partnerRepository;
|
||||
private readonly IRepository<LossReason, Guid> _lossReasonRepository;
|
||||
private readonly IRepository<OrganizationUnit, Guid> _organizationUnitRepository;
|
||||
private readonly OrganizationUnitManager _organizationUnitManager;
|
||||
|
||||
public TenantDataSeeder(
|
||||
IClock clock,
|
||||
|
|
@ -186,7 +188,9 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency
|
|||
IRepository<CustomerType, Guid> customerTypeRepository,
|
||||
IRepository<CustomerSegment, Guid> customerSegmentRepository,
|
||||
IRepository<Partner, Guid> partnerRepository,
|
||||
IRepository<LossReason, Guid> lossReasonRepository
|
||||
IRepository<LossReason, Guid> lossReasonRepository,
|
||||
IRepository<OrganizationUnit, Guid> organizationUnitRepository,
|
||||
OrganizationUnitManager organizationUnitManager
|
||||
)
|
||||
{
|
||||
_clock = clock;
|
||||
|
|
@ -273,6 +277,8 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency
|
|||
_customerSegmentRepository = customerSegmentRepository;
|
||||
_lossReasonRepository = lossReasonRepository;
|
||||
_partnerRepository = partnerRepository;
|
||||
_organizationUnitRepository = organizationUnitRepository;
|
||||
_organizationUnitManager = organizationUnitManager;
|
||||
}
|
||||
|
||||
private static IConfigurationRoot BuildConfiguration()
|
||||
|
|
@ -1854,6 +1860,18 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency
|
|||
DiscountRate = item.DiscountRate
|
||||
}, autoSave: true);
|
||||
}
|
||||
|
||||
foreach (var item in items.OrganizationUnits)
|
||||
{
|
||||
var exists = await _organizationUnitRepository.AnyAsync(x => x.DisplayName == item.DisplayName);
|
||||
if (exists)
|
||||
continue;
|
||||
|
||||
await _organizationUnitManager.CreateAsync(new OrganizationUnit
|
||||
{
|
||||
DisplayName = item.DisplayName
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -93,6 +93,12 @@ public class TenantSeederDto
|
|||
public List<CustomerTypeSeedDto> CustomerTypes { get; set; }
|
||||
public List<CustomerSegmentSeedDto> CustomerSegments { get; set; }
|
||||
public List<LossReasonSeedDto> LossReasons { get; set; }
|
||||
public List<OrganizationUnitSeedDto> OrganizationUnits { get; set; }
|
||||
}
|
||||
|
||||
public class OrganizationUnitSeedDto
|
||||
{
|
||||
public string DisplayName { get; set; }
|
||||
}
|
||||
|
||||
public class PartnerSeedDto
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ export const mockOpportunities: CrmOpportunity[] = [
|
|||
status: OpportunityStatusEnum.Lost,
|
||||
lostReason: mockLossReasons[0],
|
||||
activities: [],
|
||||
quotes: [],
|
||||
competitors: [],
|
||||
creationTime: new Date("2024-01-10"),
|
||||
lastModificationTime: new Date("2024-03-15"),
|
||||
|
|
@ -48,7 +47,6 @@ export const mockOpportunities: CrmOpportunity[] = [
|
|||
status: OpportunityStatusEnum.Lost,
|
||||
lostReason: mockLossReasons[1],
|
||||
activities: [],
|
||||
quotes: [],
|
||||
competitors: [],
|
||||
creationTime: new Date("2024-02-05"),
|
||||
lastModificationTime: new Date("2024-04-20"),
|
||||
|
|
|
|||
|
|
@ -156,7 +156,7 @@ export interface VisitorDto {
|
|||
checkOut?: Date
|
||||
employeeId: string
|
||||
employee: EmployeeDto
|
||||
status: 'scheduled' | 'checked-in' | 'checked-out' | 'cancelled'
|
||||
status: 'Planlandı' | 'Giriş' | 'Çıkış' | 'İptal Edildi'
|
||||
badgeNumber?: string
|
||||
photo?: string
|
||||
}
|
||||
|
|
|
|||
|
|
@ -55,6 +55,39 @@ const FormDevExpress = (props: {
|
|||
})
|
||||
}, [formItems])
|
||||
|
||||
// Cascade fieldlerin disabled durumunu güncelle
|
||||
const updateCascadeDisabledStates = () => {
|
||||
if (!refForm.current?.instance) return
|
||||
|
||||
const allItems = formItemsRef.current.flatMap((group) => (group.items as SimpleItemWithColData[]) || [])
|
||||
|
||||
allItems.forEach((item) => {
|
||||
const cascadeParentFields = item.colData?.lookupDto?.cascadeParentFields
|
||||
if (cascadeParentFields) {
|
||||
const parentFields = cascadeParentFields.split(',').map((f: string) => f.trim())
|
||||
|
||||
try {
|
||||
const editor = refForm.current?.instance.getEditor(item.dataField!)
|
||||
if (editor && mode !== 'view') {
|
||||
// Parent fieldlerden en az biri boşsa disabled olmalı
|
||||
const shouldDisable = parentFields.some((parentField: string) => {
|
||||
return !formDataRef.current || !formDataRef.current[parentField]
|
||||
})
|
||||
|
||||
editor.option('disabled', shouldDisable)
|
||||
}
|
||||
} catch (err) {
|
||||
console.debug('Cascade disabled update skipped for', item.dataField, err)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// formData değiştiğinde cascade disabled durumlarını güncelle
|
||||
useEffect(() => {
|
||||
updateCascadeDisabledStates()
|
||||
}, [formData, mode])
|
||||
|
||||
return (
|
||||
<form className={`${DX_CLASSNAMES} ${!isSubForm ? 'px-2' : ''} pb-2`}>
|
||||
<FormDx
|
||||
|
|
@ -77,6 +110,11 @@ const FormDevExpress = (props: {
|
|||
|
||||
setFormData(newFormData)
|
||||
|
||||
// Cascade disabled durumlarını güncelle (setTimeout ile editor güncellemesinden sonra çalışsın)
|
||||
setTimeout(() => {
|
||||
updateCascadeDisabledStates()
|
||||
}, 0)
|
||||
|
||||
//Dinamik script
|
||||
const changeItem = formItemsRef.current
|
||||
.flatMap((group) => (group.items as SimpleItemWithColData[]) || [])
|
||||
|
|
|
|||
|
|
@ -6,11 +6,11 @@ import { VisitorDto } from '@/proxy/intranet/models'
|
|||
const Visitors: React.FC<{ visitors: VisitorDto[] }> = ({ visitors }) => {
|
||||
const getStatusIcon = (status: string) => {
|
||||
switch (status) {
|
||||
case 'checked-in':
|
||||
case 'Giriş':
|
||||
return <FaUserCheck className="w-4 h-4 text-green-600" />
|
||||
case 'checked-out':
|
||||
case 'Çıkış':
|
||||
return <FaUser className="w-4 h-4 text-gray-600" />
|
||||
case 'scheduled':
|
||||
case 'Planlandı':
|
||||
return <FaUserClock className="w-4 h-4 text-blue-600" />
|
||||
default:
|
||||
return <FaUser className="w-4 h-4 text-gray-600" />
|
||||
|
|
@ -19,11 +19,11 @@ const Visitors: React.FC<{ visitors: VisitorDto[] }> = ({ visitors }) => {
|
|||
|
||||
const getStatusText = (status: string) => {
|
||||
switch (status) {
|
||||
case 'checked-in':
|
||||
case 'Giriş':
|
||||
return 'Giriş Yaptı'
|
||||
case 'checked-out':
|
||||
case 'Çıkış':
|
||||
return 'Çıkış Yaptı'
|
||||
case 'scheduled':
|
||||
case 'Planlandı':
|
||||
return 'Planlandı'
|
||||
default:
|
||||
return 'Bilinmiyor'
|
||||
|
|
@ -32,11 +32,11 @@ const Visitors: React.FC<{ visitors: VisitorDto[] }> = ({ visitors }) => {
|
|||
|
||||
const getStatusColor = (status: string) => {
|
||||
switch (status) {
|
||||
case 'checked-in':
|
||||
case 'Giriş':
|
||||
return 'bg-green-50 dark:bg-green-900/20 border-green-200 dark:border-green-800'
|
||||
case 'checked-out':
|
||||
case 'Çıkış':
|
||||
return 'bg-gray-50 dark:bg-gray-900/20 border-gray-200 dark:border-gray-700'
|
||||
case 'scheduled':
|
||||
case 'Planlandı':
|
||||
return 'bg-blue-50 dark:bg-blue-900/20 border-blue-200 dark:border-blue-800'
|
||||
default:
|
||||
return 'bg-gray-50 dark:bg-gray-900/20 border-gray-200 dark:border-gray-700'
|
||||
|
|
|
|||
|
|
@ -391,6 +391,134 @@ const Grid = (props: GridProps) => {
|
|||
)
|
||||
}
|
||||
|
||||
function onEditorPreparing(editor: DataGridTypes.EditorPreparingEvent<any, any>) {
|
||||
if (editor.parentType === 'dataRow' && editor.dataField && gridDto) {
|
||||
const formItem = gridDto.gridOptions.editingFormDto
|
||||
.flatMap((group) => group.items || [])
|
||||
.find((i) => i.dataField === editor.dataField)
|
||||
|
||||
// Cascade disabled mantığı
|
||||
const colFormat = gridDto.columnFormats.find((c) => c.fieldName === editor.dataField)
|
||||
if (colFormat?.lookupDto?.cascadeParentFields) {
|
||||
const parentFields = colFormat.lookupDto.cascadeParentFields
|
||||
.split(',')
|
||||
.map((f: string) => f.trim())
|
||||
|
||||
const prevHandler = editor.editorOptions.onValueChanged
|
||||
|
||||
editor.editorOptions.onValueChanged = (e: any) => {
|
||||
if (prevHandler) prevHandler(e)
|
||||
|
||||
// Parent field değiştiğinde tüm cascade childları kontrol et
|
||||
const grid = editor.component
|
||||
const rowKey = grid.option('editing.editRowKey')
|
||||
const rowIndex = grid.getRowIndexByKey(rowKey)
|
||||
const rowData = grid.getVisibleRows().find((r) => r.key === rowKey)?.data || {}
|
||||
|
||||
// Bu field bir parent ise, child fieldleri temizle
|
||||
if (colFormat.lookupDto?.cascadeEmptyFields) {
|
||||
const childFields = colFormat.lookupDto.cascadeEmptyFields
|
||||
.split(',')
|
||||
.map((f: string) => f.trim())
|
||||
childFields.forEach((childField: string) => {
|
||||
if (rowIndex >= 0) {
|
||||
grid.cellValue(rowIndex, childField, null)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// Tüm cascade fieldlerin disabled durumlarını güncelle
|
||||
setTimeout(() => {
|
||||
const popup = grid.option('editing.popup')
|
||||
if (popup) {
|
||||
const formInstance = grid.option('editing.form') as any
|
||||
if (formInstance && formInstance.getEditor) {
|
||||
gridDto.columnFormats.forEach((col) => {
|
||||
if (col.lookupDto?.cascadeParentFields) {
|
||||
const colParentFields = col.lookupDto.cascadeParentFields
|
||||
.split(',')
|
||||
.map((f: string) => f.trim())
|
||||
const shouldDisable = colParentFields.some((pf: string) => !rowData[pf])
|
||||
|
||||
try {
|
||||
const editorInstance = formInstance.getEditor(col.fieldName!)
|
||||
if (editorInstance) {
|
||||
editorInstance.option('disabled', shouldDisable)
|
||||
}
|
||||
} catch (err) {
|
||||
console.debug('Cascade disabled update skipped for', col.fieldName, err)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}, 50)
|
||||
}
|
||||
|
||||
// İlk açılışta disabled durumunu kontrol et
|
||||
const grid = editor.component
|
||||
const rowKey = grid.option('editing.editRowKey')
|
||||
const rowData = grid.getVisibleRows().find((r) => r.key === rowKey)?.data || {}
|
||||
const shouldDisable = parentFields.some((pf: string) => !rowData[pf])
|
||||
|
||||
if (shouldDisable) {
|
||||
editor.editorOptions.disabled = true
|
||||
}
|
||||
}
|
||||
|
||||
if (formItem?.editorScript) {
|
||||
const prevHandler = editor.editorOptions.onValueChanged
|
||||
|
||||
editor.editorOptions.onValueChanged = (e: any) => {
|
||||
if (prevHandler) prevHandler(e)
|
||||
|
||||
try {
|
||||
const grid = editor.component
|
||||
const rowKey = grid.option('editing.editRowKey')
|
||||
const rowIndex = grid.getRowIndexByKey(rowKey)
|
||||
|
||||
const formData = grid.getVisibleRows().find((r) => r.key === rowKey)?.data || {}
|
||||
|
||||
const setFormData = (newData: any) => {
|
||||
if (rowIndex >= 0) {
|
||||
Object.keys(newData).forEach((field) => {
|
||||
grid.cellValue(rowIndex, field, newData[field])
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
eval(formItem.editorScript!)
|
||||
} catch (err) {
|
||||
console.error('Script exec error', formItem.dataField, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (editor.editorOptions?.buttons) {
|
||||
editor.editorOptions.buttons = editor.editorOptions.buttons.map((btn: any) => {
|
||||
if (btn?.options?.onClick && typeof btn.options.onClick === 'function') {
|
||||
const origClick = btn.options.onClick
|
||||
btn.options.onClick = (e: any) => {
|
||||
const grid = editor.component
|
||||
const rowKey = grid.option('editing.editRowKey')
|
||||
const rowIndex = grid.getRowIndexByKey(rowKey)
|
||||
const formData = grid.getVisibleRows().find((r) => r.key === rowKey)?.data || {}
|
||||
|
||||
origClick({
|
||||
...e,
|
||||
formData,
|
||||
fieldName: editor.dataField,
|
||||
rowKey,
|
||||
rowIndex,
|
||||
})
|
||||
}
|
||||
}
|
||||
return btn
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const customSaveState = useCallback(
|
||||
(state: any) =>
|
||||
postListFormCustomization({
|
||||
|
|
@ -764,80 +892,7 @@ const Grid = (props: GridProps) => {
|
|||
onRowRemoved={() => {
|
||||
props.refreshData?.()
|
||||
}}
|
||||
onEditorPreparing={(editor) => {
|
||||
if (editor.parentType === 'dataRow' && editor.dataField) {
|
||||
const formItem = gridDto.gridOptions.editingFormDto
|
||||
.flatMap((group) => group.items || [])
|
||||
.find((i) => i.dataField === editor.dataField)
|
||||
|
||||
if (formItem?.editorScript) {
|
||||
const prevHandler = editor.editorOptions.onValueChanged // varsa önceki handler'ı sakla
|
||||
|
||||
editor.editorOptions.onValueChanged = (e: any) => {
|
||||
// yeni handler
|
||||
if (prevHandler) prevHandler(e)
|
||||
|
||||
try {
|
||||
const grid = editor.component
|
||||
const rowKey = grid.option('editing.editRowKey')
|
||||
const rowIndex = grid.getRowIndexByKey(rowKey)
|
||||
|
||||
// formData → aktif satırın datası
|
||||
const formData =
|
||||
grid.getVisibleRows().find((r) => r.key === rowKey)?.data || {}
|
||||
|
||||
// setFormData → komple yeni obje vererek güncelleme
|
||||
const setFormData = (newData: any) => {
|
||||
if (rowIndex >= 0) {
|
||||
Object.keys(newData).forEach((field) => {
|
||||
grid.cellValue(rowIndex, field, newData[field])
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
eval(formItem.editorScript!)
|
||||
//setFormData({ ...formData, Path: e.value, Authority: e.value })
|
||||
|
||||
// editor.component.cellValue(
|
||||
// editor.component.getRowIndexByKey(
|
||||
// editor.component.option('editing.editRowKey'),
|
||||
// ),
|
||||
// 'Path',
|
||||
// e.value,
|
||||
// )
|
||||
} catch (err) {
|
||||
console.error('Script exec error', formItem.dataField, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (editor.editorOptions?.buttons) {
|
||||
editor.editorOptions.buttons = editor.editorOptions.buttons.map(
|
||||
(btn: any) => {
|
||||
if (btn?.options?.onClick && typeof btn.options.onClick === 'function') {
|
||||
const origClick = btn.options.onClick
|
||||
btn.options.onClick = (e: any) => {
|
||||
const grid = editor.component
|
||||
const rowKey = grid.option('editing.editRowKey')
|
||||
const rowIndex = grid.getRowIndexByKey(rowKey)
|
||||
const formData =
|
||||
grid.getVisibleRows().find((r) => r.key === rowKey)?.data || {}
|
||||
|
||||
origClick({
|
||||
...e,
|
||||
formData,
|
||||
fieldName: editor.dataField,
|
||||
rowKey,
|
||||
rowIndex,
|
||||
})
|
||||
}
|
||||
}
|
||||
return btn
|
||||
},
|
||||
)
|
||||
}
|
||||
}
|
||||
}}
|
||||
onEditorPreparing={onEditorPreparing}
|
||||
>
|
||||
<Export
|
||||
enabled={gridDto.gridOptions.exportDto?.enabled}
|
||||
|
|
|
|||
|
|
@ -398,6 +398,134 @@ const Tree = (props: TreeProps) => {
|
|||
)
|
||||
}
|
||||
|
||||
function onEditorPreparing(editor: TreeListTypes.EditorPreparingEvent) {
|
||||
if (editor.parentType === 'dataRow' && editor.dataField && gridDto) {
|
||||
const formItem = gridDto.gridOptions.editingFormDto
|
||||
.flatMap((group) => group.items || [])
|
||||
.find((i) => i.dataField === editor.dataField)
|
||||
|
||||
// Cascade disabled mantığı
|
||||
const colFormat = gridDto.columnFormats.find((c) => c.fieldName === editor.dataField)
|
||||
if (colFormat?.lookupDto?.cascadeParentFields) {
|
||||
const parentFields = colFormat.lookupDto.cascadeParentFields
|
||||
.split(',')
|
||||
.map((f: string) => f.trim())
|
||||
|
||||
const prevHandler = editor.editorOptions.onValueChanged
|
||||
|
||||
editor.editorOptions.onValueChanged = (e: any) => {
|
||||
if (prevHandler) prevHandler(e)
|
||||
|
||||
// Parent field değiştiğinde tüm cascade childları kontrol et
|
||||
const grid = editor.component
|
||||
const rowKey = grid.option('editing.editRowKey')
|
||||
const rowIndex = grid.getRowIndexByKey(rowKey)
|
||||
const rowData = grid.getVisibleRows().find((r) => r.key === rowKey)?.data || {}
|
||||
|
||||
// Bu field bir parent ise, child fieldleri temizle
|
||||
if (colFormat.lookupDto?.cascadeEmptyFields) {
|
||||
const childFields = colFormat.lookupDto.cascadeEmptyFields
|
||||
.split(',')
|
||||
.map((f: string) => f.trim())
|
||||
childFields.forEach((childField: string) => {
|
||||
if (rowIndex >= 0) {
|
||||
grid.cellValue(rowIndex, childField, null)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// Tüm cascade fieldlerin disabled durumlarını güncelle
|
||||
setTimeout(() => {
|
||||
const popup = grid.option('editing.popup')
|
||||
if (popup) {
|
||||
const formInstance = grid.option('editing.form') as any
|
||||
if (formInstance && formInstance.getEditor) {
|
||||
gridDto.columnFormats.forEach((col) => {
|
||||
if (col.lookupDto?.cascadeParentFields) {
|
||||
const colParentFields = col.lookupDto.cascadeParentFields
|
||||
.split(',')
|
||||
.map((f: string) => f.trim())
|
||||
const shouldDisable = colParentFields.some((pf: string) => !rowData[pf])
|
||||
|
||||
try {
|
||||
const editorInstance = formInstance.getEditor(col.fieldName!)
|
||||
if (editorInstance) {
|
||||
editorInstance.option('disabled', shouldDisable)
|
||||
}
|
||||
} catch (err) {
|
||||
console.debug('Cascade disabled update skipped for', col.fieldName, err)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}, 50)
|
||||
}
|
||||
|
||||
// İlk açılışta disabled durumunu kontrol et
|
||||
const grid = editor.component
|
||||
const rowKey = grid.option('editing.editRowKey')
|
||||
const rowData = grid.getVisibleRows().find((r) => r.key === rowKey)?.data || {}
|
||||
const shouldDisable = parentFields.some((pf: string) => !rowData[pf])
|
||||
|
||||
if (shouldDisable) {
|
||||
editor.editorOptions.disabled = true
|
||||
}
|
||||
}
|
||||
|
||||
if (formItem?.editorScript) {
|
||||
const prevHandler = editor.editorOptions.onValueChanged
|
||||
|
||||
editor.editorOptions.onValueChanged = (e: any) => {
|
||||
if (prevHandler) prevHandler(e)
|
||||
|
||||
try {
|
||||
const grid = editor.component
|
||||
const rowKey = grid.option('editing.editRowKey')
|
||||
const rowIndex = grid.getRowIndexByKey(rowKey)
|
||||
|
||||
const formData = grid.getVisibleRows().find((r) => r.key === rowKey)?.data || {}
|
||||
|
||||
const setFormData = (newData: any) => {
|
||||
if (rowIndex >= 0) {
|
||||
Object.keys(newData).forEach((field) => {
|
||||
grid.cellValue(rowIndex, field, newData[field])
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
eval(formItem.editorScript!)
|
||||
} catch (err) {
|
||||
console.error('Script exec error', formItem.dataField, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (editor.editorOptions?.buttons) {
|
||||
editor.editorOptions.buttons = editor.editorOptions.buttons.map((btn: any) => {
|
||||
if (btn?.options?.onClick && typeof btn.options.onClick === 'function') {
|
||||
const origClick = btn.options.onClick
|
||||
btn.options.onClick = (e: any) => {
|
||||
const grid = editor.component
|
||||
const rowKey = grid.option('editing.editRowKey')
|
||||
const rowIndex = grid.getRowIndexByKey(rowKey)
|
||||
const formData = grid.getVisibleRows().find((r) => r.key === rowKey)?.data || {}
|
||||
|
||||
origClick({
|
||||
...e,
|
||||
formData,
|
||||
fieldName: editor.dataField,
|
||||
rowKey,
|
||||
rowIndex,
|
||||
})
|
||||
}
|
||||
}
|
||||
return btn
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const customSaveState = useCallback(
|
||||
(state: any) =>
|
||||
postListFormCustomization({
|
||||
|
|
@ -645,6 +773,14 @@ const Tree = (props: TreeProps) => {
|
|||
columnAutoWidth={gridDto.gridOptions.columnOptionDto?.columnAutoWidth}
|
||||
rtlEnabled={gridDto.gridOptions.columnOptionDto?.rtlEnabled}
|
||||
rowAlternationEnabled={gridDto.gridOptions.columnOptionDto?.rowAlternationEnabled}
|
||||
onRowPrepared={(e) => {
|
||||
//header, filter, data, group, summaries
|
||||
if (e.rowType === 'data') {
|
||||
e.rowElement.style.height = gridDto.gridOptions?.rowDto.rowHeight
|
||||
e.rowElement.style.whiteSpace = gridDto.gridOptions?.rowDto.whiteSpace
|
||||
e.rowElement.style.overflowWrap = gridDto.gridOptions?.rowDto.overflowWrap
|
||||
}
|
||||
}}
|
||||
hoverStateEnabled={gridDto.gridOptions.columnOptionDto?.hoverStateEnabled}
|
||||
columnHidingEnabled={gridDto.gridOptions.columnOptionDto?.columnHidingEnabled}
|
||||
focusedRowEnabled={gridDto.gridOptions.columnOptionDto?.focusedRowEnabled}
|
||||
|
|
@ -674,6 +810,7 @@ const Tree = (props: TreeProps) => {
|
|||
onRowRemoved={() => {
|
||||
props.refreshData?.()
|
||||
}}
|
||||
onEditorPreparing={onEditorPreparing}
|
||||
onContentReady={(e) => {
|
||||
// Restore expanded keys after data refresh (only if autoExpandAll is false)
|
||||
if (
|
||||
|
|
|
|||
Loading…
Reference in a new issue