Crm Oppurtinities

This commit is contained in:
Sedat ÖZTÜRK 2025-11-14 15:44:59 +03:00
parent 8531861338
commit d2c5956b3e
42 changed files with 2650 additions and 426 deletions

View file

@ -10,7 +10,7 @@ public class CrudMigrationDto : AuditedEntityDto<Guid>
public string EntityName { get; set; } = string.Empty; public string EntityName { get; set; } = string.Empty;
public string FileName { get; set; } = string.Empty; public string FileName { get; set; } = string.Empty;
public string SqlScript { 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 DateTime? AppliedAt { get; set; }
public string? ErrorMessage { get; set; } public string? ErrorMessage { get; set; }
} }
@ -21,7 +21,7 @@ public class CreateUpdateCrudMigrationDto
public string EntityName { get; set; } = string.Empty; public string EntityName { get; set; } = string.Empty;
public string FileName { get; set; } = string.Empty; public string FileName { get; set; } = string.Empty;
public string SqlScript { 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 DateTime? AppliedAt { get; set; }
public string? ErrorMessage { get; set; } public string? ErrorMessage { get; set; }
} }

View file

@ -14,9 +14,9 @@ public class CustomEntityDto : FullAuditedEntityDto<Guid>
public bool IsActive { get; set; } = true; public bool IsActive { get; set; } = true;
public bool IsFullAuditedEntity { get; set; } = true; public bool IsFullAuditedEntity { get; set; } = true;
public bool IsMultiTenant { get; set; } = false; 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 Guid? MigrationId { get; set; }
public string EndpointStatus { get; set; } = "pending"; public string EndpointStatus { get; set; } = "Askıda";
public List<EntityFieldDto> Fields { get; set; } = []; public List<EntityFieldDto> Fields { get; set; } = [];
} }

View file

@ -9,6 +9,50 @@ public static class LookupQueryValues
{ {
private const string defaultDomain = "Erp"; 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 = public static string TenantValues =
$"SELECT * FROM (" + $"SELECT * FROM (" +
$"SELECT NULL AS \"Key\", 'Host' AS \"Name\" " + $"SELECT NULL AS \"Key\", 'Host' AS \"Name\" " +
@ -47,24 +91,6 @@ public static class LookupQueryValues
$"WHERE \"IsDeleted\" = 'false' " + $"WHERE \"IsDeleted\" = 'false' " +
$"ORDER BY \"Name\";"; $"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 = public static string CityValues =
$"SELECT " + $"SELECT " +
$"\"Code\" AS \"Key\", " + $"\"Code\" AS \"Key\", " +
@ -169,4 +195,12 @@ public static class LookupQueryValues
$"WHERE \"IsDeleted\" = 'false' " + $"WHERE \"IsDeleted\" = 'false' " +
"AND \"IsDisabled\" = 'false' " + "AND \"IsDisabled\" = 'false' " +
$"ORDER BY \"ParentCode\", \"Order\";"; $"ORDER BY \"ParentCode\", \"Order\";";
public static string OrganizationUnitSalesTeamValues =
$"SELECT " +
$"\"Code\" AS \"Key\", " +
$"\"DisplayName\" AS \"Name\" " +
$"FROM \"AbpOrganizationUnits\"" +
$"WHERE \"Code\" LIKE '00001%' " +
$"ORDER BY \"DisplayName\"";
} }

View file

@ -140,7 +140,7 @@ public class CrudEndpointGenerateAppService : CrudAppService<
await _endpointRepository.InsertManyAsync(endpoints, autoSave: true); await _endpointRepository.InsertManyAsync(endpoints, autoSave: true);
// Entity endpoint durumu güncelle // Entity endpoint durumu güncelle
entity.EndpointStatus = "applied"; entity.EndpointStatus = "Uygulandı";
await _entityRepository.UpdateAsync(entity, autoSave: true); await _entityRepository.UpdateAsync(entity, autoSave: true);
var result = ObjectMapper.Map<List<CrudEndpoint>, List<CrudEndpointDto>>(endpoints); var result = ObjectMapper.Map<List<CrudEndpoint>, List<CrudEndpointDto>>(endpoints);

View file

@ -47,14 +47,14 @@ public class CrudMigrationAppService : CrudAppService<
{ {
await _customSqlExecutor.ExecuteSqlAsync(migration.SqlScript); await _customSqlExecutor.ExecuteSqlAsync(migration.SqlScript);
migration.Status = "applied"; migration.Status = "Uygulandı";
migration.AppliedAt = DateTime.UtcNow; migration.AppliedAt = DateTime.UtcNow;
migration.ErrorMessage = null; migration.ErrorMessage = null;
await _migrationRepository.UpdateAsync(migration, autoSave: true); await _migrationRepository.UpdateAsync(migration, autoSave: true);
var entity = await _entityRepository.GetAsync(migration.EntityId); var entity = await _entityRepository.GetAsync(migration.EntityId);
entity.MigrationStatus = "applied"; entity.MigrationStatus = "Uygulandı";
await _entityRepository.UpdateAsync(entity, autoSave: true); await _entityRepository.UpdateAsync(entity, autoSave: true);
return ObjectMapper.Map<CrudMigration, CrudMigrationDto>(migration); return ObjectMapper.Map<CrudMigration, CrudMigrationDto>(migration);
@ -117,13 +117,13 @@ public class CrudMigrationAppService : CrudAppService<
EntityName = entity.Name, EntityName = entity.Name,
FileName = fileName, FileName = fileName,
SqlScript = sqlScript, SqlScript = sqlScript,
Status = "pending" Status = "Askıda"
}; };
migration = await _migrationRepository.InsertAsync(migration, autoSave: true); migration = await _migrationRepository.InsertAsync(migration, autoSave: true);
entity.MigrationId = migration.Id; entity.MigrationId = migration.Id;
entity.MigrationStatus = "pending"; entity.MigrationStatus = "Askıda";
await _entityRepository.UpdateAsync(entity, autoSave: true); await _entityRepository.UpdateAsync(entity, autoSave: true);
return ObjectMapper.Map<CrudMigration, CrudMigrationDto>(migration); return ObjectMapper.Map<CrudMigration, CrudMigrationDto>(migration);

View file

@ -114,7 +114,7 @@ public class CustomEntityAppService : CrudAppService<
if (structureChanged && entity.MigrationStatus == "applied") if (structureChanged && entity.MigrationStatus == "applied")
{ {
entity.MigrationStatus = "pending"; entity.MigrationStatus = "Askıda";
entity.MigrationId = null; entity.MigrationId = null;
} }
@ -200,7 +200,7 @@ public class CustomEntityAppService : CrudAppService<
IsActive = input.IsActive, IsActive = input.IsActive,
IsFullAuditedEntity = input.IsFullAuditedEntity, IsFullAuditedEntity = input.IsFullAuditedEntity,
IsMultiTenant = input.IsMultiTenant, IsMultiTenant = input.IsMultiTenant,
MigrationStatus = "pending" MigrationStatus = "Askıda"
}; };
// Fields ekle - sıralama ile // Fields ekle - sıralama ile

View file

@ -9523,6 +9523,18 @@
"tr": "Fırsatlar", "tr": "Fırsatlar",
"en": "Opportunities" "en": "Opportunities"
}, },
{
"resourceName": "Platform",
"key": "App.Crm.OpportunityAction",
"tr": "Eylemler",
"en": "Actions"
},
{
"resourceName": "Platform",
"key": "App.Crm.OpportunityCompetitor",
"tr": "Rakipler",
"en": "Competitors"
},
{ {
"resourceName": "Platform", "resourceName": "Platform",
"key": "App.Crm.Activities", "key": "App.Crm.Activities",

View file

@ -2185,13 +2185,13 @@ public class ListFormSeeder_Coordinator : IDataSeedContributor, ITransientDepend
}), }),
EditingFormJson = JsonSerializer.Serialize(new List<EditingFormDto>() { EditingFormJson = JsonSerializer.Serialize(new List<EditingFormDto>() {
new() { Order=1, ColCount=1, ColSpan=1, ItemType="group", Items= [ 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 = 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 }, 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 = 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 = 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 = 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 = 6, DataField = "Difficulty", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
new EditingFormItemDto { Order = 7, DataField = "MediaType", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox }, 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 = 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 = 9, DataField = "CorrectAnswer", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox, EditorOptions="{\"disabled\": true}" },
new EditingFormItemDto { Order = 10, DataField = "TimeLimit", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox }, new EditingFormItemDto { Order = 10, DataField = "TimeLimit", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox },

View file

@ -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 = 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 = 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 = 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 = 5, DataField = "TaxNumber", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox },
new EditingFormItemDto { Order = 6, DataField = "TaxOffice", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox }, 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 = 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 }, 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 }, 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 = 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 = 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 }, 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 }, 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 }, 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 = 14, DataField = "Address1", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox },
new EditingFormItemDto { Order = 15, DataField = "Address2", 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 }, 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 = 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 = 22, DataField = "CustomerTypeId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
new EditingFormItemDto { Order = 23, DataField = "CustomerSegmentId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox }, 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 }, 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 }, 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 = 26, DataField = "TotalRevenue", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox },
new EditingFormItemDto { Order = 27, DataField = "AverageOrderValue", 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 }, 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 = "TotalRevenue", FieldDbType = DbType.Decimal, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value },
new() { FieldName = "AverageOrderValue", 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 = "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 }, new() { FieldName = "Country", FieldDbType = DbType.String, Value = "TR", CustomValueType = FieldCustomValueTypeEnum.Value },
}), }),
CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] { CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] {
@ -840,10 +840,10 @@ public class ListFormSeeder_Crm : IDataSeedContributor, ITransientDependency
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new() { Key="Active", Name="Active" }, new() { Key="Aktif", Name="Aktif" },
new() { Key="Inactive", Name="Inactive" }, new() { Key="Pasif", Name="Pasif" },
new() { Key="Prospect", Name="Prospect" }, new() { Key="Olasılık", Name="Olasılık" },
new() { Key="Blocked", Name="Blocked" }, new() { Key="Engellendi", Name="Engellendi" },
}), }),
}), }),
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
@ -978,7 +978,7 @@ public class ListFormSeeder_Crm : IDataSeedContributor, ITransientDependency
} }
#endregion #endregion
#region Lost Reason #region Loss Reason
if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == ListFormCodes.Lists.LossReason)) if (!await _listFormRepository.AnyAsync(a => a.ListFormCode == ListFormCodes.Lists.LossReason))
{ {
var listForm = await _listFormRepository.InsertAsync( 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 = 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 = 2, DataField="Name", ColSpan = 1, IsRequired =true, EditorType2 = EditorTypes.dxTextBox },
new EditingFormItemDto { Order = 3, DataField="Description", ColSpan = 1, EditorType2 = EditorTypes.dxTextArea }, 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 }, new EditingFormItemDto { Order = 5, DataField="IsActive", ColSpan = 1, EditorType2 = EditorTypes.dxCheckBox },
]} ]}
}), }),
@ -1146,6 +1146,867 @@ public class ListFormSeeder_Crm : IDataSeedContributor, ITransientDependency
} }
#endregion #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
}
}

View file

@ -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 = 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 = 2, DataField="Name", ColSpan = 1, IsRequired =true, EditorType2 = EditorTypes.dxTextBox },
new EditingFormItemDto { Order = 3, DataField="Description", ColSpan = 1, EditorType2 = EditorTypes.dxTextArea }, 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 = 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 }, 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 = 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 = 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 = 9, DataField="RequiredSkills", ColSpan = 1, EditorType2 = EditorTypes.dxTextArea },
new EditingFormItemDto { Order = 10, DataField="Responsibilities", 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 }, 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 = 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 = 2, DataField="Name", ColSpan = 1, IsRequired =true, EditorType2 = EditorTypes.dxTextBox },
new EditingFormItemDto { Order = 3, DataField="Description", ColSpan = 1, EditorType2 = EditorTypes.dxTextArea }, 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 = 4, DataField="ParentDepartmentId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
new EditingFormItemDto { Order = 5, DataField="ManagerId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox }, 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 }, 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 = 7, DataField="Budget", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox, EditorOptions=EditorOptionValues.NumberStandartFormat },
new EditingFormItemDto { Order = 8, DataField="IsActive", ColSpan = 1, EditorType2 = EditorTypes.dxCheckBox} 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 = 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 = 2, DataField="Name", ColSpan = 1, IsRequired =true, EditorType2 = EditorTypes.dxTextBox },
new EditingFormItemDto { Order = 3, DataField="Description", ColSpan = 1, EditorType2 = EditorTypes.dxTextArea }, 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 = 5, DataField="Color", ColSpan = 1, EditorType2 = EditorTypes.dxColorBox },
new EditingFormItemDto { Order = 6, DataField="BackgroundColor", 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 = 8, DataField="Criteria", ColSpan = 1, EditorType2 = EditorTypes.dxTextArea },
new EditingFormItemDto { Order = 9, DataField="Points", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox }, 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 }, 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 = 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 = 2, DataField="Name", ColSpan = 1, IsRequired =true, EditorType2 = EditorTypes.dxTextBox },
new EditingFormItemDto { Order = 3, DataField="Description", ColSpan = 1, EditorType2 = EditorTypes.dxTextArea }, 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 = 4, DataField="ParentCostCenterId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
new EditingFormItemDto { Order = 5, DataField="ResponsibleEmployeeId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox }, 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 }, 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 }, 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 = 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 = 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 = 11, DataField="FiscalYear", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox },
new EditingFormItemDto { Order = 12, DataField="IsActive", ColSpan = 1, EditorType2 = EditorTypes.dxCheckBox} new EditingFormItemDto { Order = 12, DataField="IsActive", ColSpan = 1, EditorType2 = EditorTypes.dxCheckBox}
]} ]}
@ -1306,10 +1306,10 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
]}, ]},
new() { new() {
Order=2, Caption="Contact", ColCount=2, ColSpan=1, ItemType="group", Items =[ 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 = 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 }, 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 }, 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 }, 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 = 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 = 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 }, 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 =[ 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 = 1, DataField = "HireDate", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxDateBox },
new EditingFormItemDto { Order = 2, DataField = "TerminationDate", ColSpan = 1, 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 = 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 }, 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 }, 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 = 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 = 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 = 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 }, 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 }, 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 }, new EditingFormItemDto { Order = 12, DataField = "BadgeId", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
]}, ]},
new() { new() {
Order=4, Caption="Emergency", ColCount=1, ColSpan=1, ItemType="group", Items =[ 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[] { 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 } new() { FieldName = "IsActive", FieldDbType = DbType.Boolean, Value = "true", CustomValueType = FieldCustomValueTypeEnum.Value }
}), }),
} }
@ -2010,8 +2011,8 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
new() { new() {
Order=1, ColCount=1, ColSpan=1, ItemType="group", Items =[ 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 = 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 = 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 }, 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 = 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 = 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}, 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[] { 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 = "AppliedDate", FieldDbType = DbType.Date, Value = "@NOW", CustomValueType = FieldCustomValueTypeEnum.CustomKey },
new() { FieldName = "IsHalfDay", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value } new() { FieldName = "IsHalfDay", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }
}), }),
@ -2220,10 +2221,10 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key= "Pending", Name= "Pending" }, new () { Key= "Askıda", Name= "Askıda" },
new () { Key= "Approved", Name= "Approved" }, new () { Key= "Onaylı", Name= "Onaylı" },
new () { Key= "Rejected", Name= "Rejected"}, new () { Key= "Reddedildi", Name= "Reddedildi"},
new () { Key= "Cancelled", Name= "Cancelled" }, new () { Key= "İptal", Name= "İptal" },
}), }),
}), }),
PermissionJson = DefaultFieldPermissionJson(listForm.Name), PermissionJson = DefaultFieldPermissionJson(listForm.Name),
@ -2336,18 +2337,18 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
new() { new() {
Order=1, ColCount=1, ColSpan=1, ItemType="group", Items =[ 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 = 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 = 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 = 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 = 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 = 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 = 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[] { 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 } new() { FieldName = "Date", FieldDbType = DbType.Date, Value = "@NOW", CustomValueType = FieldCustomValueTypeEnum.CustomKey }
}), }),
CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] { CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] {
@ -2544,10 +2545,10 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key= "Pending", Name= "Pending" }, new () { Key= "Askıda", Name= "Askıda" },
new () { Key= "Approved", Name= "Approved" }, new () { Key= "Onaylı", Name= "Onaylı" },
new () { Key= "Rejected", Name= "Rejected"}, new () { Key= "Reddedildi", Name= "Reddedildi"},
new () { Key= "Cancelled", Name= "Cancelled" }, new () { Key= "İptal", Name= "İptal" },
}), }),
}), }),
PermissionJson = DefaultFieldPermissionJson(listForm.Name), PermissionJson = DefaultFieldPermissionJson(listForm.Name),
@ -2659,10 +2660,10 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
{ {
new() { new() {
Order=1, ColCount=1, ColSpan=1, ItemType="group", Items =[ 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 = "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 = "Amount", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox, EditorOptions=EditorOptionValues.NumberStandartFormat }, 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 = 5, DataField = "RequestDate", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxDateBox },
new EditingFormItemDto { Order = 6, DataField = "Description", ColSpan=1, EditorType2 = EditorTypes.dxTextArea }, new EditingFormItemDto { Order = 6, DataField = "Description", ColSpan=1, EditorType2 = EditorTypes.dxTextArea },
new EditingFormItemDto { Order = 7, DataField = "Project", ColSpan=1, EditorType2 = EditorTypes.dxTextBox }, 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[] 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 } new() { FieldName = "RequestDate", FieldDbType = DbType.Date, Value = "@NOW", CustomValueType = FieldCustomValueTypeEnum.CustomKey }
}), }),
CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] { CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] {
@ -2854,9 +2856,9 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key= "pending", Name= "Pending" }, new () { Key= "Askıda", Name= "Askıda" },
new () { Key= "approved", Name= "Approved" }, new () { Key= "Onaylı", Name= "Onaylı" },
new () { Key= "rejected", Name= "Rejected" }, new () { Key= "Reddedildi", Name= "Reddedildi" },
}), }),
}), }),
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
@ -2938,9 +2940,9 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
{ {
new() { new() {
Order=1, ColCount=1, ColSpan=1, ItemType="group", Items = [ 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 = 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 = 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 = 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 }, 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[] { 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 = "PeriodYear", FieldDbType = DbType.Int32, Value = "@YEAR", CustomValueType = FieldCustomValueTypeEnum.CustomKey },
new() { FieldName = "PeriodMonth", FieldDbType = DbType.Int32, Value = "@MONTH", 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 }, new() { FieldName = "PaymentDate", FieldDbType = DbType.Date, Value = "@NOW", CustomValueType = FieldCustomValueTypeEnum.CustomKey },
@ -3244,11 +3246,11 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key= "Draft", Name= "Draft" }, new () { Key= "Taslak", Name= "Taslak" },
new () { Key= "Calculated", Name= "Calculated" }, new () { Key= "Hesaplandı", Name= "Hesaplandı" },
new () { Key= "Approved", Name= "Approved"}, new () { Key= "Onaylı", Name= "Onaylı"},
new () { Key= "Paid", Name= "Paid" }, new () { Key= "Ödendi", Name= "Ödendi" },
new () { Key= "Cancelled", Name= "Cancelled" }, new () { Key= "İptal", Name= "İptal" },
}), }),
}), }),
PermissionJson = DefaultFieldPermissionJson(listForm.Name), PermissionJson = DefaultFieldPermissionJson(listForm.Name),
@ -3451,16 +3453,16 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
Order=1, ColCount=1, ColSpan=1, ItemType="group", Items =[ 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 = 1, DataField = "Name", ColSpan = 1, IsRequired=true, EditorType2 = EditorTypes.dxTextBox },
new EditingFormItemDto { Order = 2, DataField = "Description", ColSpan = 1, EditorType2 = EditorTypes.dxTextArea }, 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 = 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 = 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 = 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 }, new EditingFormItemDto { Order = 8, DataField = "TargetEmployees", ColSpan = 1, IsRequired=true, EditorType2 = EditorTypes.dxTagBox },
]} ]}
}), }),
FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] { 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[] { CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] {
new() { new() {
@ -3592,10 +3594,10 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key= "Draft", Name= "Draft" }, new () { Key= "Taslak", Name= "Taslak" },
new () { Key= "Active", Name= "Active" }, new () { Key= "Aktif", Name= "Aktif" },
new () { Key= "Completed", Name= "Completed"}, new () { Key= "Tamamlandı", Name= "Tamamlandı"},
new () { Key= "Cancelled", Name= "Cancelled" }, new () { Key= "İptal", Name= "İptal" },
}), }),
}), }),
ColumnCustomizationJson = DefaultColumnCustomizationJson, 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 = 1, DataField = "Title", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox },
new EditingFormItemDto { Order = 2, DataField = "Description", ColSpan=1, EditorType2 = EditorTypes.dxTextArea }, 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 = 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 = 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 }, 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 = 6, DataField = "Location", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox },
new EditingFormItemDto { Order = 7, DataField = "Thumbnail", ColSpan=1, 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 }, 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[] 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 } new() { FieldName = "MaxParticipants", FieldDbType = DbType.Int32, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value }
}), }),
CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] { CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] {
@ -3960,9 +3962,9 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key= "upcoming", Name= "Upcoming" }, new () { Key= "Yaklaşan", Name= "Yaklaşan" },
new () { Key= "ongoing", Name= "Ongoing" }, new () { Key= "Devam eden", Name= "Devam eden" },
new () { Key= "completed", Name="Completed" }, new () { Key= "Tamamlandı", Name="Tamamlandı" },
}), }),
}), }),
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
@ -4024,7 +4026,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[] FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[]
{ {
new() { FieldName = "IsAnonymous", FieldDbType = DbType.Boolean, Value = "false", CustomValueType = FieldCustomValueTypeEnum.Value }, 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[] { CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] {
new() { new() {
@ -4120,9 +4122,9 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key= "draft", Name= "Draft" }, new () { Key= "Taslak", Name= "Taslak" },
new () { Key= "active", Name= "Active" }, new () { Key= "Aktif", Name= "Aktif" },
new () { Key= "closed", Name= "Closed" }, new () { Key= "Kapalı", Name= "Kapalı" },
}), }),
}), }),
ValidationRuleJson = DefaultValidationRuleRequiredJson, ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -4221,9 +4223,9 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
{ {
new() { new() {
Order=1, ColCount=1, ColSpan=1, ItemType="group", Items =[ 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 = 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 } new EditingFormItemDto { Order = 4, DataField = "IsRequired", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxCheckBox }
]} ]}
}), }),
@ -4398,8 +4400,8 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
{ {
new() { new() {
Order=1, ColCount=1, ColSpan=1, ItemType="group", Items =[ 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 = "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 = 3, DataField = "SubmissionTime", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox }, new EditingFormItemDto { Order = 3, DataField = "SubmissionTime", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxTextBox },
new EditingFormItemDto { Order = 4, DataField = "CreationTime", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxDateBox } new EditingFormItemDto { Order = 4, DataField = "CreationTime", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxDateBox }
]} ]}

View file

@ -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 = 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 = 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 = 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 = 6, DataField = "Description", ColSpan = 1, EditorType2 = EditorTypes.dxTextArea },
new EditingFormItemDto { Order = 7, DataField = "Status", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox }, new EditingFormItemDto { Order = 7, DataField = "Status", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox },
new EditingFormItemDto { Order = 8, DataField = "ParticipantsCount", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox }, new EditingFormItemDto { Order = 8, DataField = "ParticipantsCount", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox },
@ -444,9 +444,9 @@ public class ListFormSeeder_Intranet : IDataSeedContributor, ITransientDependenc
DisplayExpr = "name", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key="Published",Name="Published" }, new () { Key="Yayımlandı",Name="Yayımlandı" },
new () { Key="Draft",Name="Draft" }, new () { Key="Taslak",Name="Taslak" },
new () { Key="Cancelled",Name="Cancelled" }, new () { Key="İptal",Name="İptal" },
}), }),
}), }),
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
@ -686,9 +686,9 @@ public class ListFormSeeder_Intranet : IDataSeedContributor, ITransientDependenc
{ {
new() { new() {
Order=1, ColCount=1, ColSpan=1, ItemType="group", Items =[ 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=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=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=5,DataField="EndDate", IsRequired = true, ColSpan=1, EditorType2 = EditorTypes.dxDateBox},
new EditingFormItemDto {Order=6,DataField="Purpose", IsRequired = true, ColSpan=1, EditorType2 = EditorTypes.dxTextBox}, 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[] 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 } 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 = 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 = 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 = 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 = 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 }, 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 = 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 = 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 = 4, DataField = "ImageUrl", ColSpan=1, EditorType2 = EditorTypes.dxTagBox },
new EditingFormItemDto { Order = 5, DataField = "Category", 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 }, 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 = 7, DataField = "PublishDate", ColSpan=1, EditorType2 = EditorTypes.dxDateBox },
new EditingFormItemDto { Order = 8, DataField = "ExpiryDate", ColSpan=1, IsRequired = true, 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 }, 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 = 6, DataField = "VisitDate", ColSpan=1, IsRequired = true, EditorType2 = EditorTypes.dxDateBox },
new EditingFormItemDto { Order = 7, DataField = "CheckIn", ColSpan=1, 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 = 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 }, 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 = "VisitDate", FieldDbType = DbType.Date, Value = "@NOW", CustomValueType = FieldCustomValueTypeEnum.CustomKey },
new() { FieldName = "CheckIn", 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", DisplayExpr = "name",
ValueExpr = "key", ValueExpr = "key",
LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] { LookupQuery = JsonSerializer.Serialize(new LookupDataDto[] {
new () { Key= "checked-in", Name= "Checked-in" }, new () { Key= "Giriş", Name= "Giriş" },
new () { Key= "checked-out", Name= "Checked-out" }, new () { Key= "Çıkış", Name= ıkış" },
new () { Key= "scheduled", Name= "Scheduled" }, new () { Key= "Planlandı", Name= "Planlandı" },
}), }),
}), }),
ColumnCustomizationJson = DefaultColumnCustomizationJson, ColumnCustomizationJson = DefaultColumnCustomizationJson,
@ -1681,7 +1681,7 @@ public class ListFormSeeder_Intranet : IDataSeedContributor, ITransientDependenc
{ {
new() { new() {
Order=1, ColCount=1, ColSpan=1, ItemType="group", Items = [ 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 = 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 = 3, DataField = "LikeCount", ColSpan=1, EditorType2 = EditorTypes.dxNumberBox },
new EditingFormItemDto { Order = 4, DataField = "IsLiked", ColSpan=1, EditorType2 = EditorTypes.dxCheckBox }, new EditingFormItemDto { Order = 4, DataField = "IsLiked", ColSpan=1, EditorType2 = EditorTypes.dxCheckBox },

View file

@ -81,7 +81,7 @@ public class ListFormSeeder_Participant : IDataSeedContributor, ITransientDepend
EditingFormJson = JsonSerializer.Serialize(new List<EditingFormDto>() { EditingFormJson = JsonSerializer.Serialize(new List<EditingFormDto>() {
new() { Order=1, ColCount=1, ColSpan=1, ItemType="group", Items=[ 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 = 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 }, 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>() { EditingFormJson = JsonSerializer.Serialize(new List<EditingFormDto>() {
new() { Order=1, ColCount=1, ColSpan=1, ItemType="group", Items=[ 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 = 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 }, new EditingFormItemDto { Order = 3, DataField = "Status", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxSelectBox },
]} ]}
}), }),

View file

@ -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 = 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 = 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 = 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 = 5, DataField = "PhoneCode", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox },
new EditingFormItemDto { Order = 6, DataField = "TaxLabel", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox }, new EditingFormItemDto { Order = 6, DataField = "TaxLabel", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox },
new EditingFormItemDto { Order = 7, DataField = "ZipRequired", ColSpan = 1, EditorType2 = EditorTypes.dxCheckBox }, new EditingFormItemDto { Order = 7, DataField = "ZipRequired", ColSpan = 1, EditorType2 = EditorTypes.dxCheckBox },

View file

@ -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 = 2, DataField = "Name", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxTextBox },
new EditingFormItemDto { Order = 3, DataField = "Description", ColSpan = 1, EditorType2=EditorTypes.dxTextArea }, 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 = 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, 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 = 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 = 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 = 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 }, 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 }, 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 }, 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 = 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 = 12, DataField = "Barcode", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox },
new EditingFormItemDto { Order = 13, DataField = "IsActive", ColSpan = 1, EditorType2 = EditorTypes.dxCheckBox }, 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 = 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 = 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 = 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 = 5, DataField = "TaxNumber", ColSpan = 1, IsRequired = true, EditorType2 = EditorTypes.dxNumberBox },
new EditingFormItemDto { Order = 6, DataField = "TaxOffice", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox }, 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 = 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 }, 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 }, 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 = 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 = 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 }, 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 }, 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 }, 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 = 14, DataField = "Address1", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox },
new EditingFormItemDto { Order = 15, DataField = "Address2", 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 }, 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 = 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 = 22, DataField = "SupplierTypeId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox, EditorOptions=EditorOptionValues.ShowClearButton },
new EditingFormItemDto { Order = 23, DataField = "SupplyCardTypeId", ColSpan = 1, EditorType2 = EditorTypes.dxSelectBox }, 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 = 24, DataField = "CardNumber", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox },
new EditingFormItemDto { Order = 25, DataField = "ValidFrom", ColSpan = 1, EditorType2 = EditorTypes.dxDateBox }, new EditingFormItemDto { Order = 25, DataField = "ValidFrom", ColSpan = 1, EditorType2 = EditorTypes.dxDateBox },
new EditingFormItemDto { Order = 26, DataField = "ValidTo", 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 = "CreditLimit", FieldDbType = DbType.Decimal, Value = "0", CustomValueType = FieldCustomValueTypeEnum.Value },
new() { FieldName = "CurrentBalance", 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 = "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 }, new() { FieldName = "Country", FieldDbType = DbType.String, Value = "TR", CustomValueType = FieldCustomValueTypeEnum.Value },
}), }),
CommandColumnJson = JsonSerializer.Serialize(new CommandColumnDto[] { 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 = 4, DataField="SwiftCode", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox },
new EditingFormItemDto { Order = 5, DataField="AccountOwner", ColSpan = 1, IsRequired = true, 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 = 6, DataField="BranchName", ColSpan = 1, EditorType2 = EditorTypes.dxTextBox },
new EditingFormItemDto { Order = 7, DataField="AccountType", 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 }, 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 = 9, DataField="Balance", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox },
new EditingFormItemDto { Order = 10, DataField="OverdraftLimit", 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 }, new EditingFormItemDto { Order = 11, DataField="DailyTransferLimit", ColSpan = 1, EditorType2 = EditorTypes.dxNumberBox },
@ -2467,8 +2467,8 @@ public class ListFormSeeder_SupplyChain : IDataSeedContributor, ITransientDepend
new() { new() {
Order=1, ColCount=1, ColSpan=1, ItemType="group", Items= [ 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 = 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 = 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 }, 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 = 4, DataField = "AmountThreshold", ColSpan = 1, IsRequired = true, EditorType2=EditorTypes.dxNumberBox, EditorOptions=EditorOptionValues.NumberStandartFormat },
new EditingFormItemDto { Order = 5, DataField = "IsActive", ColSpan = 1, EditorType2=EditorTypes.dxCheckBox }, new EditingFormItemDto { Order = 5, DataField = "IsActive", ColSpan = 1, EditorType2=EditorTypes.dxCheckBox },
]} ]}

View file

@ -791,97 +791,6 @@
"routeType": "protected", "routeType": "protected",
"authority": null "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", "key": "admin.crm.activities",
"path": "/admin/crm/activities", "path": "/admin/crm/activities",
@ -2257,7 +2166,7 @@
"Code": "App.Crm.Opportunity", "Code": "App.Crm.Opportunity",
"DisplayName": "App.Crm.Opportunity", "DisplayName": "App.Crm.Opportunity",
"Order": 6, "Order": 6,
"Url": "/admin/crm/opportunities", "Url": "/admin/list/list-opportunity",
"Icon": "FcIdea", "Icon": "FcIdea",
"RequiredPermissionName": "App.Crm.Opportunity", "RequiredPermissionName": "App.Crm.Opportunity",
"IsDisabled": false "IsDisabled": false

View file

@ -9967,6 +9967,135 @@
"MultiTenancySide": 3, "MultiTenancySide": 3,
"MenuGroup": "Erp" "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", "GroupName": "App.Crm",
"Name": "App.Crm.Activities", "Name": "App.Crm.Activities",

View file

@ -151,5 +151,8 @@ public enum TableNameEnum
MaterialSpecification, MaterialSpecification,
Approval, Approval,
ApprovalStep, ApprovalStep,
LossReason LossReason,
Opportunity,
Action,
Competitor
} }

View file

@ -524,6 +524,9 @@ public static class PlatformConsts
public const string CustomerSegment = "list-customersegment"; public const string CustomerSegment = "list-customersegment";
public const string Customer = "list-customer"; public const string Customer = "list-customer";
public const string LossReason = "list-lossreason"; public const string LossReason = "list-lossreason";
public const string Opportunity = "list-opportunity";
public const string OpportunityAction = "list-opportunityaction";
public const string OpportunityCompetitor = "list-opportunitycompetitor";
} }
} }

View file

@ -178,6 +178,9 @@ public static class TableNameResolver
{ nameof(TableNameEnum.CustomerSegment), (TablePrefix.TenantByName, MenuPrefix.Crm) }, { nameof(TableNameEnum.CustomerSegment), (TablePrefix.TenantByName, MenuPrefix.Crm) },
{ nameof(TableNameEnum.CustomerType), (TablePrefix.TenantByName, MenuPrefix.Crm) }, { nameof(TableNameEnum.CustomerType), (TablePrefix.TenantByName, MenuPrefix.Crm) },
{ nameof(TableNameEnum.LossReason), (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 // 🔹 ACCOUNTING
{ nameof(TableNameEnum.Bank), (TablePrefix.TenantByName, MenuPrefix.Accounting) }, { nameof(TableNameEnum.Bank), (TablePrefix.TenantByName, MenuPrefix.Accounting) },

View file

@ -494,6 +494,9 @@ public static class SeedConsts
public const string CustomerSegment = Default + ".CustomerSegment"; public const string CustomerSegment = Default + ".CustomerSegment";
public const string Customer = Default + ".Customer"; public const string Customer = Default + ".Customer";
public const string LossReason = Default + ".LossReason"; 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 public static class SupplyChain

View file

@ -1,4 +1,5 @@
using System; using System;
using System.Collections.Generic;
using Volo.Abp.Domain.Entities.Auditing; using Volo.Abp.Domain.Entities.Auditing;
namespace Erp.Platform.Entities; namespace Erp.Platform.Entities;
@ -11,5 +12,7 @@ public class Currency : FullAuditedEntity<Guid>
public decimal Rate { get; set; } // TRY başına değer public decimal Rate { get; set; } // TRY başına değer
public bool IsActive { get; set; } public bool IsActive { get; set; }
public DateTime? LastUpdated { get; set; } public DateTime? LastUpdated { get; set; }
public ICollection<Opportunity> Opportunities { get; set; }
} }

View file

@ -12,7 +12,7 @@ public class CrudMigration : AuditedEntity<Guid>, IMultiTenant
public string EntityName { get; set; } = string.Empty; public string EntityName { get; set; } = string.Empty;
public string FileName { get; set; } = string.Empty; public string FileName { get; set; } = string.Empty;
public string SqlScript { 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 DateTime? AppliedAt { get; set; }
public string? ErrorMessage { get; set; } public string? ErrorMessage { get; set; }
public virtual CustomEntity Entity { get; set; } = null!; public virtual CustomEntity Entity { get; set; } = null!;

View file

@ -17,9 +17,9 @@ public class CustomEntity : FullAuditedEntity<Guid>, IMultiTenant
public bool IsActive { get; set; } = true; public bool IsActive { get; set; } = true;
public bool IsFullAuditedEntity { get; set; } = true; public bool IsFullAuditedEntity { get; set; } = true;
public bool IsMultiTenant { get; set; } = false; 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 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; } = []; public virtual ICollection<CustomEntityField> Fields { get; set; } = [];

View 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
}

View file

@ -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
}

View file

@ -1,4 +1,5 @@
using System; using System;
using System.Collections.Generic;
using Volo.Abp.Domain.Entities.Auditing; using Volo.Abp.Domain.Entities.Auditing;
using Volo.Abp.MultiTenancy; using Volo.Abp.MultiTenancy;
@ -13,4 +14,6 @@ public class LossReason : FullAuditedEntity<Guid>, IMultiTenant
public string Description { get; set; } public string Description { get; set; }
public string Category { get; set; } public string Category { get; set; }
public bool IsActive { get; set; } public bool IsActive { get; set; }
public ICollection<Opportunity> Opportunities { get; set; }
} }

View file

@ -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 = [];
}
}

View file

@ -75,6 +75,7 @@ public class Employee : FullAuditedEntity<Guid>, IMultiTenant
public ICollection<SurveyResponse> SurveyResponses { get; set; } public ICollection<SurveyResponse> SurveyResponses { get; set; }
public ICollection<Partner> Partners { get; set; } public ICollection<Partner> Partners { get; set; }
public ICollection<BlogPost> BlogPosts { get; set; } public ICollection<BlogPost> BlogPosts { get; set; }
public ICollection<Opportunity> Opportunities { get; set; }
} }

View file

@ -1,4 +1,5 @@
using System; using System;
using System.Collections.Generic;
using Volo.Abp.Domain.Entities.Auditing; using Volo.Abp.Domain.Entities.Auditing;
using Volo.Abp.MultiTenancy; using Volo.Abp.MultiTenancy;
@ -12,5 +13,7 @@ public class Source : FullAuditedEntity<Guid>, IMultiTenant
public string Status { get; set; } // Durum public string Status { get; set; } // Durum
Guid? IMultiTenant.TenantId => TenantId; Guid? IMultiTenant.TenantId => TenantId;
public ICollection<Opportunity> Opportunities { get; set; }
} }

View file

@ -218,6 +218,9 @@ public class PlatformDbContext :
#region Crm #region Crm
public DbSet<LossReason> LostReasons { get; set; } 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 #endregion
#region Accounting #region Accounting
@ -2574,6 +2577,56 @@ public class PlatformDbContext :
b.Property(x => x.Description).HasMaxLength(500); b.Property(x => x.Description).HasMaxLength(500);
b.Property(x => x.Category).HasMaxLength(50).IsRequired(); 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);
});
} }
} }

View file

@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore;
namespace Erp.Platform.Migrations namespace Erp.Platform.Migrations
{ {
[DbContext(typeof(PlatformDbContext))] [DbContext(typeof(PlatformDbContext))]
[Migration("20251113203111_Initial")] [Migration("20251114120401_Initial")]
partial class Initial partial class Initial
{ {
/// <inheritdoc /> /// <inheritdoc />
@ -625,6 +625,96 @@ namespace Erp.Platform.Migrations
b.ToTable("Adm_T_About", (string)null); 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 => modelBuilder.Entity("Erp.Platform.Entities.Activity", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")
@ -2291,6 +2381,75 @@ namespace Erp.Platform.Migrations
b.ToTable("Crd_T_ClassroomParticipant", (string)null); 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 => modelBuilder.Entity("Erp.Platform.Entities.Contact", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")
@ -6475,6 +6634,115 @@ namespace Erp.Platform.Migrations
b.ToTable("Prt_T_NoteType", (string)null); 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 => modelBuilder.Entity("Erp.Platform.Entities.Order", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")
@ -12882,6 +13150,16 @@ namespace Erp.Platform.Migrations
b.Navigation("NotificationRule"); 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 => modelBuilder.Entity("Erp.Platform.Entities.Announcement", b =>
{ {
b.HasOne("Erp.Platform.Entities.Employee", "Employee") b.HasOne("Erp.Platform.Entities.Employee", "Employee")
@ -13058,6 +13336,16 @@ namespace Erp.Platform.Migrations
b.Navigation("Session"); 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 => modelBuilder.Entity("Erp.Platform.Entities.CostCenter", b =>
{ {
b.HasOne("Erp.Platform.Entities.Department", "Department") b.HasOne("Erp.Platform.Entities.Department", "Department")
@ -13414,6 +13702,37 @@ namespace Erp.Platform.Migrations
b.Navigation("Branch"); 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 => modelBuilder.Entity("Erp.Platform.Entities.OrderItem", b =>
{ {
b.HasOne("Erp.Platform.Entities.Order", "Order") b.HasOne("Erp.Platform.Entities.Order", "Order")
@ -14116,6 +14435,11 @@ namespace Erp.Platform.Migrations
b.Navigation("Cities"); b.Navigation("Cities");
}); });
modelBuilder.Entity("Erp.Platform.Entities.Currency", b =>
{
b.Navigation("Opportunities");
});
modelBuilder.Entity("Erp.Platform.Entities.CustomEntity", b => modelBuilder.Entity("Erp.Platform.Entities.CustomEntity", b =>
{ {
b.Navigation("Fields"); b.Navigation("Fields");
@ -14150,6 +14474,8 @@ namespace Erp.Platform.Migrations
b.Navigation("Leaves"); b.Navigation("Leaves");
b.Navigation("Opportunities");
b.Navigation("Overtimes"); b.Navigation("Overtimes");
b.Navigation("Partners"); b.Navigation("Partners");
@ -14178,6 +14504,11 @@ namespace Erp.Platform.Migrations
b.Navigation("Events"); b.Navigation("Events");
}); });
modelBuilder.Entity("Erp.Platform.Entities.LossReason", b =>
{
b.Navigation("Opportunities");
});
modelBuilder.Entity("Erp.Platform.Entities.Material", b => modelBuilder.Entity("Erp.Platform.Entities.Material", b =>
{ {
b.Navigation("AlternativeUoms"); b.Navigation("AlternativeUoms");
@ -14201,6 +14532,13 @@ namespace Erp.Platform.Migrations
b.Navigation("Materials"); b.Navigation("Materials");
}); });
modelBuilder.Entity("Erp.Platform.Entities.Opportunity", b =>
{
b.Navigation("Actions");
b.Navigation("Competitors");
});
modelBuilder.Entity("Erp.Platform.Entities.Order", b => modelBuilder.Entity("Erp.Platform.Entities.Order", b =>
{ {
b.Navigation("Items"); b.Navigation("Items");
@ -14277,6 +14615,11 @@ namespace Erp.Platform.Migrations
b.Navigation("Media"); b.Navigation("Media");
}); });
modelBuilder.Entity("Erp.Platform.Entities.Source", b =>
{
b.Navigation("Opportunities");
});
modelBuilder.Entity("Erp.Platform.Entities.SupplyCardType", b => modelBuilder.Entity("Erp.Platform.Entities.SupplyCardType", b =>
{ {
b.Navigation("Partners"); b.Navigation("Partners");

View file

@ -4439,6 +4439,114 @@ namespace Erp.Platform.Migrations
onDelete: ReferentialAction.Restrict); 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( migrationBuilder.CreateTable(
name: "Hr_T_CostCenter", name: "Hr_T_CostCenter",
columns: table => new columns: table => new
@ -5830,6 +5938,36 @@ namespace Erp.Platform.Migrations
table: "Crd_T_QuestionOption", table: "Crd_T_QuestionOption",
column: "QuestionId"); 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( migrationBuilder.CreateIndex(
name: "IX_Hr_T_CostCenter_DepartmentId", name: "IX_Hr_T_CostCenter_DepartmentId",
table: "Hr_T_CostCenter", table: "Hr_T_CostCenter",
@ -6336,6 +6474,29 @@ namespace Erp.Platform.Migrations
principalTable: "Scp_T_Material", principalTable: "Scp_T_Material",
principalColumn: "Id"); 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( migrationBuilder.AddForeignKey(
name: "FK_Hr_T_CostCenter_Hr_T_Department_DepartmentId", name: "FK_Hr_T_CostCenter_Hr_T_Department_DepartmentId",
table: "Hr_T_CostCenter", table: "Hr_T_CostCenter",
@ -6564,7 +6725,10 @@ namespace Erp.Platform.Migrations
name: "Crd_T_QuestionTag"); name: "Crd_T_QuestionTag");
migrationBuilder.DropTable( migrationBuilder.DropTable(
name: "Crm_T_LossReason"); name: "Crm_T_Action");
migrationBuilder.DropTable(
name: "Crm_T_Competitor");
migrationBuilder.DropTable( migrationBuilder.DropTable(
name: "Hr_T_Expense"); name: "Hr_T_Expense");
@ -6665,9 +6829,6 @@ namespace Erp.Platform.Migrations
migrationBuilder.DropTable( migrationBuilder.DropTable(
name: "Prt_T_SalesRejectionReason"); name: "Prt_T_SalesRejectionReason");
migrationBuilder.DropTable(
name: "Prt_T_Source");
migrationBuilder.DropTable( migrationBuilder.DropTable(
name: "Sas_H_ContactTag"); name: "Sas_H_ContactTag");
@ -6779,6 +6940,9 @@ namespace Erp.Platform.Migrations
migrationBuilder.DropTable( migrationBuilder.DropTable(
name: "Crd_T_Question"); name: "Crd_T_Question");
migrationBuilder.DropTable(
name: "Crm_T_Opportunity");
migrationBuilder.DropTable( migrationBuilder.DropTable(
name: "Hr_T_Payroll"); name: "Hr_T_Payroll");
@ -6860,6 +7024,12 @@ namespace Erp.Platform.Migrations
migrationBuilder.DropTable( migrationBuilder.DropTable(
name: "Crd_T_QuestionPool"); name: "Crd_T_QuestionPool");
migrationBuilder.DropTable(
name: "Crm_T_LossReason");
migrationBuilder.DropTable(
name: "Prt_T_Source");
migrationBuilder.DropTable( migrationBuilder.DropTable(
name: "Hr_T_Survey"); name: "Hr_T_Survey");

View file

@ -622,6 +622,96 @@ namespace Erp.Platform.Migrations
b.ToTable("Adm_T_About", (string)null); 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 => modelBuilder.Entity("Erp.Platform.Entities.Activity", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")
@ -2288,6 +2378,75 @@ namespace Erp.Platform.Migrations
b.ToTable("Crd_T_ClassroomParticipant", (string)null); 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 => modelBuilder.Entity("Erp.Platform.Entities.Contact", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")
@ -6472,6 +6631,115 @@ namespace Erp.Platform.Migrations
b.ToTable("Prt_T_NoteType", (string)null); 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 => modelBuilder.Entity("Erp.Platform.Entities.Order", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")
@ -12879,6 +13147,16 @@ namespace Erp.Platform.Migrations
b.Navigation("NotificationRule"); 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 => modelBuilder.Entity("Erp.Platform.Entities.Announcement", b =>
{ {
b.HasOne("Erp.Platform.Entities.Employee", "Employee") b.HasOne("Erp.Platform.Entities.Employee", "Employee")
@ -13055,6 +13333,16 @@ namespace Erp.Platform.Migrations
b.Navigation("Session"); 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 => modelBuilder.Entity("Erp.Platform.Entities.CostCenter", b =>
{ {
b.HasOne("Erp.Platform.Entities.Department", "Department") b.HasOne("Erp.Platform.Entities.Department", "Department")
@ -13411,6 +13699,37 @@ namespace Erp.Platform.Migrations
b.Navigation("Branch"); 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 => modelBuilder.Entity("Erp.Platform.Entities.OrderItem", b =>
{ {
b.HasOne("Erp.Platform.Entities.Order", "Order") b.HasOne("Erp.Platform.Entities.Order", "Order")
@ -14113,6 +14432,11 @@ namespace Erp.Platform.Migrations
b.Navigation("Cities"); b.Navigation("Cities");
}); });
modelBuilder.Entity("Erp.Platform.Entities.Currency", b =>
{
b.Navigation("Opportunities");
});
modelBuilder.Entity("Erp.Platform.Entities.CustomEntity", b => modelBuilder.Entity("Erp.Platform.Entities.CustomEntity", b =>
{ {
b.Navigation("Fields"); b.Navigation("Fields");
@ -14147,6 +14471,8 @@ namespace Erp.Platform.Migrations
b.Navigation("Leaves"); b.Navigation("Leaves");
b.Navigation("Opportunities");
b.Navigation("Overtimes"); b.Navigation("Overtimes");
b.Navigation("Partners"); b.Navigation("Partners");
@ -14175,6 +14501,11 @@ namespace Erp.Platform.Migrations
b.Navigation("Events"); b.Navigation("Events");
}); });
modelBuilder.Entity("Erp.Platform.Entities.LossReason", b =>
{
b.Navigation("Opportunities");
});
modelBuilder.Entity("Erp.Platform.Entities.Material", b => modelBuilder.Entity("Erp.Platform.Entities.Material", b =>
{ {
b.Navigation("AlternativeUoms"); b.Navigation("AlternativeUoms");
@ -14198,6 +14529,13 @@ namespace Erp.Platform.Migrations
b.Navigation("Materials"); b.Navigation("Materials");
}); });
modelBuilder.Entity("Erp.Platform.Entities.Opportunity", b =>
{
b.Navigation("Actions");
b.Navigation("Competitors");
});
modelBuilder.Entity("Erp.Platform.Entities.Order", b => modelBuilder.Entity("Erp.Platform.Entities.Order", b =>
{ {
b.Navigation("Items"); b.Navigation("Items");
@ -14274,6 +14612,11 @@ namespace Erp.Platform.Migrations
b.Navigation("Media"); b.Navigation("Media");
}); });
modelBuilder.Entity("Erp.Platform.Entities.Source", b =>
{
b.Navigation("Opportunities");
});
modelBuilder.Entity("Erp.Platform.Entities.SupplyCardType", b => modelBuilder.Entity("Erp.Platform.Entities.SupplyCardType", b =>
{ {
b.Navigation("Partners"); b.Navigation("Partners");

View file

@ -100,9 +100,7 @@
"props": null, "props": null,
"description": null, "description": null,
"isActive": true, "isActive": true,
"dependencies": [ "dependencies": ["DynamicEntityComponent"]
"DynamicEntityComponent"
]
} }
], ],
"ReportCategories": [ "ReportCategories": [
@ -2408,12 +2406,7 @@
"minSalary": 80000, "minSalary": 80000,
"maxSalary": 120000, "maxSalary": 120000,
"currencyCode": "USD", "currencyCode": "USD",
"requiredSkills": [ "requiredSkills": ["JavaScript", "TypeScript", "React", "Node.js"],
"JavaScript",
"TypeScript",
"React",
"Node.js"
],
"responsibilities": [ "responsibilities": [
"Develop frontend and backend applications", "Develop frontend and backend applications",
"Write clean and maintainable code", "Write clean and maintainable code",
@ -2886,7 +2879,7 @@
"payrollGroup": "Monthly", "payrollGroup": "Monthly",
"bankAccountNumber": "1", "bankAccountNumber": "1",
"badgeCode": "B001", "badgeCode": "B001",
"employeeStatus": "Active", "employeeStatus": "Aktif",
"isActive": true, "isActive": true,
"leaves": [], "leaves": [],
"evaluations": [], "evaluations": [],
@ -2926,7 +2919,7 @@
"payrollGroup": "Monthly", "payrollGroup": "Monthly",
"bankAccountNumber": "2", "bankAccountNumber": "2",
"badgeCode": "B002", "badgeCode": "B002",
"employeeStatus": "Active", "employeeStatus": "Aktif",
"isActive": true, "isActive": true,
"leaves": [], "leaves": [],
"evaluations": [], "evaluations": [],
@ -2966,7 +2959,7 @@
"payrollGroup": "Monthly", "payrollGroup": "Monthly",
"bankAccountNumber": "2", "bankAccountNumber": "2",
"badgeCode": "B003", "badgeCode": "B003",
"employeeStatus": "Active", "employeeStatus": "Aktif",
"isActive": true, "isActive": true,
"leaves": [], "leaves": [],
"evaluations": [], "evaluations": [],
@ -3006,7 +2999,7 @@
"payrollGroup": "Monthly", "payrollGroup": "Monthly",
"bankAccountNumber": "3", "bankAccountNumber": "3",
"badgeCode": "B004", "badgeCode": "B004",
"employeeStatus": "Active", "employeeStatus": "Aktif",
"isActive": true, "isActive": true,
"leaves": [], "leaves": [],
"evaluations": [], "evaluations": [],
@ -3046,7 +3039,7 @@
"payrollGroup": "Monthly", "payrollGroup": "Monthly",
"bankAccountNumber": "4", "bankAccountNumber": "4",
"badgeCode": "B005", "badgeCode": "B005",
"employeeStatus": "Active", "employeeStatus": "Aktif",
"isActive": true, "isActive": true,
"leaves": [], "leaves": [],
"evaluations": [], "evaluations": [],
@ -3086,7 +3079,7 @@
"payrollGroup": "Monthly", "payrollGroup": "Monthly",
"bankAccountNumber": "1", "bankAccountNumber": "1",
"badgeCode": "B006", "badgeCode": "B006",
"employeeStatus": "Active", "employeeStatus": "Aktif",
"isActive": true, "isActive": true,
"leaves": [], "leaves": [],
"evaluations": [], "evaluations": [],
@ -3126,7 +3119,7 @@
"payrollGroup": "Monthly", "payrollGroup": "Monthly",
"bankAccountNumber": "3", "bankAccountNumber": "3",
"badgeCode": "B007", "badgeCode": "B007",
"employeeStatus": "Active", "employeeStatus": "Aktif",
"isActive": true, "isActive": true,
"leaves": [], "leaves": [],
"evaluations": [], "evaluations": [],
@ -3166,7 +3159,7 @@
"payrollGroup": "Monthly", "payrollGroup": "Monthly",
"bankAccountNumber": "2", "bankAccountNumber": "2",
"badgeCode": "B008", "badgeCode": "B008",
"employeeStatus": "Active", "employeeStatus": "Aktif",
"isActive": true, "isActive": true,
"leaves": [], "leaves": [],
"evaluations": [], "evaluations": [],
@ -3206,7 +3199,7 @@
"payrollGroup": "Monthly", "payrollGroup": "Monthly",
"bankAccountNumber": "1", "bankAccountNumber": "1",
"badgeCode": "B009", "badgeCode": "B009",
"employeeStatus": "Active", "employeeStatus": "Aktif",
"isActive": true, "isActive": true,
"leaves": [], "leaves": [],
"evaluations": [], "evaluations": [],
@ -3246,7 +3239,7 @@
"payrollGroup": "Monthly", "payrollGroup": "Monthly",
"bankAccountNumber": "4", "bankAccountNumber": "4",
"badgeCode": "B010", "badgeCode": "B010",
"employeeStatus": "Active", "employeeStatus": "Aktif",
"isActive": true, "isActive": true,
"leaves": [], "leaves": [],
"evaluations": [], "evaluations": [],
@ -3262,7 +3255,7 @@
"endDate": "12-04-2024", "endDate": "12-04-2024",
"totalDays": 5, "totalDays": 5,
"reason": "Yıllık izin talebi", "reason": "Yıllık izin talebi",
"status": "Pending", "status": "Askıda",
"appliedDate": "11-15-2024", "appliedDate": "11-15-2024",
"isHalfDay": false "isHalfDay": false
}, },
@ -3273,9 +3266,9 @@
"endDate": "11-12-2024", "endDate": "11-12-2024",
"totalDays": 3, "totalDays": 3,
"reason": "Sağlık kontrolü", "reason": "Sağlık kontrolü",
"status": "Approved", "status": "Onaylı",
"appliedDate": "11-08-2024", "appliedDate": "11-08-2024",
"approvedDate": "11-09-2024", "OnaylıDate": "11-09-2024",
"isHalfDay": false "isHalfDay": false
}, },
{ {
@ -3297,7 +3290,7 @@
"endDate": "06-11-2024", "endDate": "06-11-2024",
"totalDays": 2, "totalDays": 2,
"reason": "Acil aile durumu", "reason": "Acil aile durumu",
"status": "Pending", "status": "Askıda",
"appliedDate": "04-11-2024", "appliedDate": "04-11-2024",
"isHalfDay": false "isHalfDay": false
} }
@ -3310,7 +3303,7 @@
"endTime": "1970-01-01T21:00", "endTime": "1970-01-01T21:00",
"totalHours": 3, "totalHours": 3,
"reason": "Proje deadline'ı nedeniyle acil çalışma", "reason": "Proje deadline'ı nedeniyle acil çalışma",
"status": "Approved", "status": "Onaylı",
"rate": 1.5, "rate": 1.5,
"amount": 450 "amount": 450
}, },
@ -3321,7 +3314,7 @@
"endTime": "1970-01-01T20:00", "endTime": "1970-01-01T20:00",
"totalHours": 2.5, "totalHours": 2.5,
"reason": "Müşteri talep değişikliği nedeniyle ek çalışma", "reason": "Müşteri talep değişikliği nedeniyle ek çalışma",
"status": "Pending", "status": "Askıda",
"rate": 1.5, "rate": 1.5,
"amount": 375 "amount": 375
}, },
@ -3332,7 +3325,7 @@
"endTime": "1970-01-01T22:30", "endTime": "1970-01-01T22:30",
"totalHours": 3.5, "totalHours": 3.5,
"reason": "Sistem bakımı ve güncelleme çalışmaları", "reason": "Sistem bakımı ve güncelleme çalışmaları",
"status": "Approved", "status": "Onaylı",
"rate": 1.5, "rate": 1.5,
"amount": 525 "amount": 525
}, },
@ -3354,8 +3347,8 @@
"endTime": "1970-01-01T21:00", "endTime": "1970-01-01T21:00",
"totalHours": 2.5, "totalHours": 2.5,
"reason": "Acil hata düzeltme ve test çalışmaları", "reason": "Acil hata düzeltme ve test çalışmaları",
"status": "Approved", "status": "Onaylı",
"approvedBy": "emp_001", "OnaylıBy": "emp_001",
"rate": 2.0, "rate": 2.0,
"amount": 500 "amount": 500
}, },
@ -3366,7 +3359,7 @@
"endTime": "1970-01-01T20:00", "endTime": "1970-01-01T20:00",
"totalHours": 4, "totalHours": 4,
"reason": "Yeni müşteri onboarding süreci", "reason": "Yeni müşteri onboarding süreci",
"status": "Pending", "status": "Askıda",
"rate": 1.5, "rate": 1.5,
"amount": 600 "amount": 600
}, },
@ -3377,8 +3370,8 @@
"endTime": "1970-01-01T21:15", "endTime": "1970-01-01T21:15",
"totalHours": 3.5, "totalHours": 3.5,
"reason": "Veri analizi ve raporlama çalışmaları", "reason": "Veri analizi ve raporlama çalışmaları",
"status": "Approved", "status": "Onaylı",
"approvedBy": "emp_002", "OnaylıBy": "emp_002",
"rate": 1.5, "rate": 1.5,
"amount": 525 "amount": 525
}, },
@ -3389,7 +3382,7 @@
"endTime": "1970-01-01T20:30", "endTime": "1970-01-01T20:30",
"totalHours": 2.5, "totalHours": 2.5,
"reason": "Eğitim materyali hazırlama", "reason": "Eğitim materyali hazırlama",
"status": "Pending", "status": "Askıda",
"rate": 1.5, "rate": 1.5,
"amount": 375 "amount": 375
}, },
@ -3400,7 +3393,7 @@
"endTime": "1970-01-01T23:00", "endTime": "1970-01-01T23:00",
"totalHours": 3.5, "totalHours": 3.5,
"reason": "Kritik sistem güvenlik yaması uygulaması", "reason": "Kritik sistem güvenlik yaması uygulaması",
"status": "Approved", "status": "Onaylı",
"rate": 1.5, "rate": 1.5,
"amount": 525 "amount": 525
}, },
@ -3428,7 +3421,7 @@
"netSalary": 0, "netSalary": 0,
"tax": 0, "tax": 0,
"socialSecurity": 0, "socialSecurity": 0,
"status": "Cancelled" "status": "İptal"
}, },
{ {
"employeeCode": "EMP-002", "employeeCode": "EMP-002",
@ -3454,7 +3447,7 @@
"netSalary": 0, "netSalary": 0,
"tax": 0, "tax": 0,
"socialSecurity": 0, "socialSecurity": 0,
"status": "Approved" "status": "Onaylı"
}, },
{ {
"employeeCode": "EMP-004", "employeeCode": "EMP-004",
@ -3480,7 +3473,7 @@
"netSalary": 0, "netSalary": 0,
"tax": 0, "tax": 0,
"socialSecurity": 0, "socialSecurity": 0,
"status": "Draft" "status": "Taslak"
} }
], ],
"Template360s": [ "Template360s": [
@ -3498,7 +3491,7 @@
"templateName": "Genel Yetkinlik Değerlendirmesi", "templateName": "Genel Yetkinlik Değerlendirmesi",
"startDate": "01-11-2024", "startDate": "01-11-2024",
"endDate": "15-12-2024", "endDate": "15-12-2024",
"status": "Active", "status": "Aktif",
"departmentCode": "ÜRT", "departmentCode": "ÜRT",
"targetEmployees": "EMP-001|EMP-002|EMP-003|EMP-004|EMP-005" "targetEmployees": "EMP-001|EMP-002|EMP-003|EMP-004|EMP-005"
}, },
@ -3508,7 +3501,7 @@
"templateName": "Genel Yetkinlik Değerlendirmesi", "templateName": "Genel Yetkinlik Değerlendirmesi",
"startDate": "01-01-2025", "startDate": "01-01-2025",
"endDate": "08-02-2025", "endDate": "08-02-2025",
"status": "Active", "status": "Aktif",
"departmentCode": "ÜRT", "departmentCode": "ÜRT",
"targetEmployees": "EMP-007|EMP-008|EMP-009" "targetEmployees": "EMP-007|EMP-008|EMP-009"
}, },
@ -3518,7 +3511,7 @@
"templateName": "Genel Yetkinlik Değerlendirmesi", "templateName": "Genel Yetkinlik Değerlendirmesi",
"startDate": "01-10-2023", "startDate": "01-10-2023",
"endDate": "10-11-2023", "endDate": "10-11-2023",
"status": "Active", "status": "Aktif",
"departmentCode": "ÜRT", "departmentCode": "ÜRT",
"targetEmployees": "EMP-005|EMP-006" "targetEmployees": "EMP-005|EMP-006"
}, },
@ -3528,7 +3521,7 @@
"templateName": "Genel Yetkinlik Değerlendirmesi", "templateName": "Genel Yetkinlik Değerlendirmesi",
"startDate": "01-10-2022", "startDate": "01-10-2022",
"endDate": "08-11-2024", "endDate": "08-11-2024",
"status": "Cancelled", "status": "İptal",
"departmentCode": "BAK", "departmentCode": "BAK",
"targetEmployees": "EMP-005|EMP-006" "targetEmployees": "EMP-005|EMP-006"
}, },
@ -3538,7 +3531,7 @@
"templateName": "Genel Yetkinlik Değerlendirmesi", "templateName": "Genel Yetkinlik Değerlendirmesi",
"startDate": "01-10-2021", "startDate": "01-10-2021",
"endDate": "10-11-2021", "endDate": "10-11-2021",
"status": "Draft", "status": "Taslak",
"departmentCode": "KAL", "departmentCode": "KAL",
"targetEmployees": "EMP-005|EMP-006" "targetEmployees": "EMP-005|EMP-006"
}, },
@ -3548,7 +3541,7 @@
"templateName": "Genel Yetkinlik Değerlendirmesi", "templateName": "Genel Yetkinlik Değerlendirmesi",
"startDate": "01-10-2020", "startDate": "01-10-2020",
"endDate": "05-11-2020", "endDate": "05-11-2020",
"status": "Completed", "status": "Tamamlandı",
"departmentCode": "KAL", "departmentCode": "KAL",
"targetEmployees": "EMP-005|EMP-006" "targetEmployees": "EMP-005|EMP-006"
} }
@ -3565,7 +3558,7 @@
"endDate": "2025-11-08", "endDate": "2025-11-08",
"maxParticipants": 20, "maxParticipants": 20,
"enrolled": 15, "enrolled": 15,
"status": "upcoming", "status": "Yaklaşan",
"location": "Eğitim Salonu B", "location": "Eğitim Salonu B",
"thumbnail": "https://images.unsplash.com/photo-1633356122544-f134324a6cee?w=400&h=300&fit=crop" "thumbnail": "https://images.unsplash.com/photo-1633356122544-f134324a6cee?w=400&h=300&fit=crop"
}, },
@ -3595,7 +3588,7 @@
"endDate": "2025-11-03", "endDate": "2025-11-03",
"maxParticipants": 25, "maxParticipants": 25,
"enrolled": 25, "enrolled": 25,
"status": "completed", "status": "Tamamlandı",
"location": "Eğitim Salonu C", "location": "Eğitim Salonu C",
"thumbnail": "https://images.unsplash.com/photo-1552664730-d307ca884978?w=400&h=300&fit=crop" "thumbnail": "https://images.unsplash.com/photo-1552664730-d307ca884978?w=400&h=300&fit=crop"
}, },
@ -3610,7 +3603,7 @@
"endDate": "2024-11-30", "endDate": "2024-11-30",
"maxParticipants": 50, "maxParticipants": 50,
"enrolled": 8, "enrolled": 8,
"status": "upcoming", "status": "Yaklaşan",
"location": "Eğitim Salonu D", "location": "Eğitim Salonu D",
"thumbnail": "https://images.unsplash.com/photo-1550751827-4bd374c3f58b?w=400&h=300&fit=crop" "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", "startDate": "10-10-2025 09:00:00",
"endDate": "10-10-2025 11:00:00", "endDate": "10-10-2025 11:00:00",
"purpose": "Sprint Planning Toplantısı", "purpose": "Sprint Planning Toplantısı",
"status": "approved", "status": "Onaylı",
"participants": 8, "participants": 8,
"notes": "Projeksiyon cihazı gerekli" "notes": "Projeksiyon cihazı gerekli"
}, },
@ -3634,7 +3627,7 @@
"startDate": "11-10-2025 08:00:00", "startDate": "11-10-2025 08:00:00",
"endDate": "11-10-2025 18:00:00", "endDate": "11-10-2025 18:00:00",
"purpose": "Müşteri Ziyareti", "purpose": "Müşteri Ziyareti",
"status": "pending", "status": "Askıda",
"notes": "Ankara çıkışı" "notes": "Ankara çıkışı"
}, },
{ {
@ -3644,7 +3637,7 @@
"startDate": "09-10-2025 14:00:00", "startDate": "09-10-2025 14:00:00",
"endDate": "09-10-2025 17:00:00", "endDate": "09-10-2025 17:00:00",
"purpose": "Ürün Tanıtım Videosu Çekimi", "purpose": "Ürün Tanıtım Videosu Çekimi",
"status": "approved" "status": "Onaylı"
}, },
{ {
"type": "room", "type": "room",
@ -3653,7 +3646,7 @@
"startDate": "05-10-2025 09:00:00", "startDate": "05-10-2025 09:00:00",
"endDate": "05-10-2025 17:00:00", "endDate": "05-10-2025 17:00:00",
"purpose": "Etkili İletişim Eğitimi", "purpose": "Etkili İletişim Eğitimi",
"status": "approved", "status": "Onaylı",
"participants": 15, "participants": 15,
"notes": "Tüm gün rezervasyon, öğle yemeği dahil" "notes": "Tüm gün rezervasyon, öğle yemeği dahil"
} }
@ -3787,7 +3780,7 @@
"checkIn": "2025-10-29T09:15:00", "checkIn": "2025-10-29T09:15:00",
"employeeCode": "EMP-001", "employeeCode": "EMP-001",
"purpose": "İş Ortaklığı Görüşmesi", "purpose": "İş Ortaklığı Görüşmesi",
"status": "checked-in", "status": "Giriş",
"photo": "https://i.pravatar.cc/150?img=12" "photo": "https://i.pravatar.cc/150?img=12"
}, },
{ {
@ -3798,7 +3791,7 @@
"visitDate": "2025-10-30T10:30:00", "visitDate": "2025-10-30T10:30:00",
"employeeCode": "EMP-002", "employeeCode": "EMP-002",
"purpose": "Eğitim Danışmanlığı", "purpose": "Eğitim Danışmanlığı",
"status": "scheduled", "status": "Planlandı",
"photo": "https://i.pravatar.cc/150?img=13" "photo": "https://i.pravatar.cc/150?img=13"
}, },
{ {
@ -3811,7 +3804,7 @@
"checkOut": "2025-10-31T16:00:00", "checkOut": "2025-10-31T16:00:00",
"employeeCode": "EMP-003", "employeeCode": "EMP-003",
"purpose": "Teknik Sunum", "purpose": "Teknik Sunum",
"status": "checked-out", "status": "Çıkış",
"photo": "https://i.pravatar.cc/150?img=14" "photo": "https://i.pravatar.cc/150?img=14"
} }
], ],
@ -3824,7 +3817,7 @@
"requestDate": "2025-10-04", "requestDate": "2025-10-04",
"description": "Ankara ofis ziyareti - uçak bileti", "description": "Ankara ofis ziyareti - uçak bileti",
"project": "Intranet v2", "project": "Intranet v2",
"status": "approved", "status": "Onaylı",
"approverCode": "EMP-004", "approverCode": "EMP-004",
"approvalDate": "2025-10-10" "approvalDate": "2025-10-10"
}, },
@ -3836,7 +3829,7 @@
"requestDate": "2025-10-07", "requestDate": "2025-10-07",
"description": "Müşteri toplantısı - öğle yemeği", "description": "Müşteri toplantısı - öğle yemeği",
"project": null, "project": null,
"status": "pending", "status": "Askıda",
"approverCode": null, "approverCode": null,
"approvalDate": null "approvalDate": null
}, },
@ -3848,7 +3841,7 @@
"requestDate": "2025-10-04", "requestDate": "2025-10-04",
"description": "İzmir workshop - otel konaklaması (2 gece)", "description": "İzmir workshop - otel konaklaması (2 gece)",
"project": "UX Workshop", "project": "UX Workshop",
"status": "approved", "status": "Onaylı",
"approverCode": "EMP-005", "approverCode": "EMP-005",
"approvalDate": "2025-10-05" "approvalDate": "2025-10-05"
} }
@ -3859,7 +3852,7 @@
"Description": "Yıllık çalışan memnuniyeti ve bağlılık araştırması", "Description": "Yıllık çalışan memnuniyeti ve bağlılık araştırması",
"Deadline": "2024-10-31T00:00:00", "Deadline": "2024-10-31T00:00:00",
"Responses": 45, "Responses": 45,
"Status": "active", "Status": "Aktif",
"IsAnonymous": true "IsAnonymous": true
}, },
{ {
@ -3867,7 +3860,7 @@
"Description": "2025 yılı eğitim planlaması için ihtiyaç tespiti", "Description": "2025 yılı eğitim planlaması için ihtiyaç tespiti",
"Deadline": "2024-11-15T00:00:00", "Deadline": "2024-11-15T00:00:00",
"Responses": 28, "Responses": 28,
"Status": "active", "Status": "Aktif",
"IsAnonymous": false "IsAnonymous": false
}, },
{ {
@ -3875,7 +3868,7 @@
"Description": "Yemek kalitesi ve servis değerlendirmesi", "Description": "Yemek kalitesi ve servis değerlendirmesi",
"Deadline": "2024-09-30T00:00:00", "Deadline": "2024-09-30T00:00:00",
"Responses": 62, "Responses": 62,
"Status": "closed", "Status": "Kapalı",
"IsAnonymous": true "IsAnonymous": true
} }
], ],
@ -4108,9 +4101,7 @@
{ {
"postContent": "CI/CD pipeline güncellememiz tamamlandı! Deployment süremiz %40 azaldı. Otomasyonun gücü 💪", "postContent": "CI/CD pipeline güncellememiz tamamlandı! Deployment süremiz %40 azaldı. Otomasyonun gücü 💪",
"type": "video", "type": "video",
"urls": [ "urls": ["https://www.w3schools.com/html/mov_bbb.mp4"]
"https://www.w3schools.com/html/mov_bbb.mp4"
]
} }
], ],
"SocialPollOptions": [ "SocialPollOptions": [
@ -4518,7 +4509,7 @@
"CurrencyCode": "TRY", "CurrencyCode": "TRY",
"PaymentTermName": "Net30", "PaymentTermName": "Net30",
"CreditLimit": 500000, "CreditLimit": 500000,
"Status": "Active", "Status": "Aktif",
"CustomerTypeName": null, "CustomerTypeName": null,
"CustomerSegmentName": null, "CustomerSegmentName": null,
"EmployeeCode": null, "EmployeeCode": null,
@ -4556,7 +4547,7 @@
"CurrencyCode": "TRY", "CurrencyCode": "TRY",
"PaymentTermName": "Net15", "PaymentTermName": "Net15",
"CreditLimit": 250000, "CreditLimit": 250000,
"Status": "Active", "Status": "Aktif",
"CustomerTypeName": null, "CustomerTypeName": null,
"CustomerSegmentName": null, "CustomerSegmentName": null,
"EmployeeCode": null, "EmployeeCode": null,
@ -4594,7 +4585,7 @@
"CurrencyCode": "TRY", "CurrencyCode": "TRY",
"PaymentTermName": "Net45", "PaymentTermName": "Net45",
"CreditLimit": 150000, "CreditLimit": 150000,
"Status": "Active", "Status": "Aktif",
"CustomerTypeName": null, "CustomerTypeName": null,
"CustomerSegmentName": null, "CustomerSegmentName": null,
"EmployeeCode": null, "EmployeeCode": null,
@ -4632,7 +4623,7 @@
"CurrencyCode": "TRY", "CurrencyCode": "TRY",
"PaymentTermName": "Net30", "PaymentTermName": "Net30",
"CreditLimit": 100000, "CreditLimit": 100000,
"Status": "Inactive", "Status": "Pasif",
"CustomerTypeName": null, "CustomerTypeName": null,
"CustomerSegmentName": null, "CustomerSegmentName": null,
"EmployeeCode": null, "EmployeeCode": null,
@ -4670,7 +4661,7 @@
"CurrencyCode": "TRY", "CurrencyCode": "TRY",
"PaymentTermName": "Net60", "PaymentTermName": "Net60",
"CreditLimit": 500000, "CreditLimit": 500000,
"Status": "Active", "Status": "Aktif",
"CustomerTypeName": "Company", "CustomerTypeName": "Company",
"CustomerSegmentName": "SMB", "CustomerSegmentName": "SMB",
"EmployeeCode": "REP-002", "EmployeeCode": "REP-002",
@ -4708,7 +4699,7 @@
"CurrencyCode": "TRY", "CurrencyCode": "TRY",
"PaymentTermName": "Net30", "PaymentTermName": "Net30",
"CreditLimit": 1000000, "CreditLimit": 1000000,
"Status": "Active", "Status": "Aktif",
"CustomerTypeName": "Company", "CustomerTypeName": "Company",
"CustomerSegmentName": "Enterprise", "CustomerSegmentName": "Enterprise",
"EmployeeCode": "REP-001", "EmployeeCode": "REP-001",
@ -4768,5 +4759,10 @@
"category": "Budget", "category": "Budget",
"isActive": true "isActive": true
} }
],
"OrganizationUnits": [
{
"displayName": "Satış Takımı"
}
] ]
} }

View file

@ -102,6 +102,8 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency
private readonly IRepository<CustomerSegment, Guid> _customerSegmentRepository; private readonly IRepository<CustomerSegment, Guid> _customerSegmentRepository;
private readonly IRepository<Partner, Guid> _partnerRepository; private readonly IRepository<Partner, Guid> _partnerRepository;
private readonly IRepository<LossReason, Guid> _lossReasonRepository; private readonly IRepository<LossReason, Guid> _lossReasonRepository;
private readonly IRepository<OrganizationUnit, Guid> _organizationUnitRepository;
private readonly OrganizationUnitManager _organizationUnitManager;
public TenantDataSeeder( public TenantDataSeeder(
IClock clock, IClock clock,
@ -186,7 +188,9 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency
IRepository<CustomerType, Guid> customerTypeRepository, IRepository<CustomerType, Guid> customerTypeRepository,
IRepository<CustomerSegment, Guid> customerSegmentRepository, IRepository<CustomerSegment, Guid> customerSegmentRepository,
IRepository<Partner, Guid> partnerRepository, IRepository<Partner, Guid> partnerRepository,
IRepository<LossReason, Guid> lossReasonRepository IRepository<LossReason, Guid> lossReasonRepository,
IRepository<OrganizationUnit, Guid> organizationUnitRepository,
OrganizationUnitManager organizationUnitManager
) )
{ {
_clock = clock; _clock = clock;
@ -273,6 +277,8 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency
_customerSegmentRepository = customerSegmentRepository; _customerSegmentRepository = customerSegmentRepository;
_lossReasonRepository = lossReasonRepository; _lossReasonRepository = lossReasonRepository;
_partnerRepository = partnerRepository; _partnerRepository = partnerRepository;
_organizationUnitRepository = organizationUnitRepository;
_organizationUnitManager = organizationUnitManager;
} }
private static IConfigurationRoot BuildConfiguration() private static IConfigurationRoot BuildConfiguration()
@ -1854,6 +1860,18 @@ public class TenantDataSeeder : IDataSeedContributor, ITransientDependency
DiscountRate = item.DiscountRate DiscountRate = item.DiscountRate
}, autoSave: true); }, 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
});
}
} }
} }

View file

@ -93,6 +93,12 @@ public class TenantSeederDto
public List<CustomerTypeSeedDto> CustomerTypes { get; set; } public List<CustomerTypeSeedDto> CustomerTypes { get; set; }
public List<CustomerSegmentSeedDto> CustomerSegments { get; set; } public List<CustomerSegmentSeedDto> CustomerSegments { get; set; }
public List<LossReasonSeedDto> LossReasons { 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 public class PartnerSeedDto

View file

@ -26,7 +26,6 @@ export const mockOpportunities: CrmOpportunity[] = [
status: OpportunityStatusEnum.Lost, status: OpportunityStatusEnum.Lost,
lostReason: mockLossReasons[0], lostReason: mockLossReasons[0],
activities: [], activities: [],
quotes: [],
competitors: [], competitors: [],
creationTime: new Date("2024-01-10"), creationTime: new Date("2024-01-10"),
lastModificationTime: new Date("2024-03-15"), lastModificationTime: new Date("2024-03-15"),
@ -48,7 +47,6 @@ export const mockOpportunities: CrmOpportunity[] = [
status: OpportunityStatusEnum.Lost, status: OpportunityStatusEnum.Lost,
lostReason: mockLossReasons[1], lostReason: mockLossReasons[1],
activities: [], activities: [],
quotes: [],
competitors: [], competitors: [],
creationTime: new Date("2024-02-05"), creationTime: new Date("2024-02-05"),
lastModificationTime: new Date("2024-04-20"), lastModificationTime: new Date("2024-04-20"),

View file

@ -156,7 +156,7 @@ export interface VisitorDto {
checkOut?: Date checkOut?: Date
employeeId: string employeeId: string
employee: EmployeeDto employee: EmployeeDto
status: 'scheduled' | 'checked-in' | 'checked-out' | 'cancelled' status: 'Planlandı' | 'Giriş' | ıkış' | 'İptal Edildi'
badgeNumber?: string badgeNumber?: string
photo?: string photo?: string
} }

View file

@ -55,6 +55,39 @@ const FormDevExpress = (props: {
}) })
}, [formItems]) }, [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 ( return (
<form className={`${DX_CLASSNAMES} ${!isSubForm ? 'px-2' : ''} pb-2`}> <form className={`${DX_CLASSNAMES} ${!isSubForm ? 'px-2' : ''} pb-2`}>
<FormDx <FormDx
@ -77,6 +110,11 @@ const FormDevExpress = (props: {
setFormData(newFormData) setFormData(newFormData)
// Cascade disabled durumlarını güncelle (setTimeout ile editor güncellemesinden sonra çalışsın)
setTimeout(() => {
updateCascadeDisabledStates()
}, 0)
//Dinamik script //Dinamik script
const changeItem = formItemsRef.current const changeItem = formItemsRef.current
.flatMap((group) => (group.items as SimpleItemWithColData[]) || []) .flatMap((group) => (group.items as SimpleItemWithColData[]) || [])

View file

@ -6,11 +6,11 @@ import { VisitorDto } from '@/proxy/intranet/models'
const Visitors: React.FC<{ visitors: VisitorDto[] }> = ({ visitors }) => { const Visitors: React.FC<{ visitors: VisitorDto[] }> = ({ visitors }) => {
const getStatusIcon = (status: string) => { const getStatusIcon = (status: string) => {
switch (status) { switch (status) {
case 'checked-in': case 'Giriş':
return <FaUserCheck className="w-4 h-4 text-green-600" /> 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" /> return <FaUser className="w-4 h-4 text-gray-600" />
case 'scheduled': case 'Planlandı':
return <FaUserClock className="w-4 h-4 text-blue-600" /> return <FaUserClock className="w-4 h-4 text-blue-600" />
default: default:
return <FaUser className="w-4 h-4 text-gray-600" /> 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) => { const getStatusText = (status: string) => {
switch (status) { switch (status) {
case 'checked-in': case 'Giriş':
return 'Giriş Yaptı' return 'Giriş Yaptı'
case 'checked-out': case 'Çıkış':
return ıkış Yaptı' return ıkış Yaptı'
case 'scheduled': case 'Planlandı':
return 'Planlandı' return 'Planlandı'
default: default:
return 'Bilinmiyor' return 'Bilinmiyor'
@ -32,11 +32,11 @@ const Visitors: React.FC<{ visitors: VisitorDto[] }> = ({ visitors }) => {
const getStatusColor = (status: string) => { const getStatusColor = (status: string) => {
switch (status) { switch (status) {
case 'checked-in': case 'Giriş':
return 'bg-green-50 dark:bg-green-900/20 border-green-200 dark:border-green-800' 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' 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' return 'bg-blue-50 dark:bg-blue-900/20 border-blue-200 dark:border-blue-800'
default: default:
return 'bg-gray-50 dark:bg-gray-900/20 border-gray-200 dark:border-gray-700' return 'bg-gray-50 dark:bg-gray-900/20 border-gray-200 dark:border-gray-700'

View file

@ -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( const customSaveState = useCallback(
(state: any) => (state: any) =>
postListFormCustomization({ postListFormCustomization({
@ -764,80 +892,7 @@ const Grid = (props: GridProps) => {
onRowRemoved={() => { onRowRemoved={() => {
props.refreshData?.() props.refreshData?.()
}} }}
onEditorPreparing={(editor) => { onEditorPreparing={onEditorPreparing}
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
},
)
}
}
}}
> >
<Export <Export
enabled={gridDto.gridOptions.exportDto?.enabled} enabled={gridDto.gridOptions.exportDto?.enabled}

View file

@ -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( const customSaveState = useCallback(
(state: any) => (state: any) =>
postListFormCustomization({ postListFormCustomization({
@ -645,6 +773,14 @@ const Tree = (props: TreeProps) => {
columnAutoWidth={gridDto.gridOptions.columnOptionDto?.columnAutoWidth} columnAutoWidth={gridDto.gridOptions.columnOptionDto?.columnAutoWidth}
rtlEnabled={gridDto.gridOptions.columnOptionDto?.rtlEnabled} rtlEnabled={gridDto.gridOptions.columnOptionDto?.rtlEnabled}
rowAlternationEnabled={gridDto.gridOptions.columnOptionDto?.rowAlternationEnabled} 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} hoverStateEnabled={gridDto.gridOptions.columnOptionDto?.hoverStateEnabled}
columnHidingEnabled={gridDto.gridOptions.columnOptionDto?.columnHidingEnabled} columnHidingEnabled={gridDto.gridOptions.columnOptionDto?.columnHidingEnabled}
focusedRowEnabled={gridDto.gridOptions.columnOptionDto?.focusedRowEnabled} focusedRowEnabled={gridDto.gridOptions.columnOptionDto?.focusedRowEnabled}
@ -674,6 +810,7 @@ const Tree = (props: TreeProps) => {
onRowRemoved={() => { onRowRemoved={() => {
props.refreshData?.() props.refreshData?.()
}} }}
onEditorPreparing={onEditorPreparing}
onContentReady={(e) => { onContentReady={(e) => {
// Restore expanded keys after data refresh (only if autoExpandAll is false) // Restore expanded keys after data refresh (only if autoExpandAll is false)
if ( if (