Human Resources -> Eğitim bilgileri

This commit is contained in:
Sedat ÖZTÜRK 2026-10-02 09:07:01 +03:00
parent 021ddd03d1
commit 36546d0c2d
23 changed files with 11532 additions and 22 deletions

View file

@ -1706,7 +1706,8 @@ ile ekler (§4.0). Sıra değerleri veritabanı ile dosyadaki satırların birle
- `IsDeletedField: false` verirsen ekranda **kalıcı silme** olmaz (`DeleteCommand` null kalır); - `IsDeletedField: false` verirsen ekranda **kalıcı silme** olmaz (`DeleteCommand` null kalır);
soft delete kolonları olmayan tabloda silme istiyorsan ListForm editöründen komut yazmalısın. soft delete kolonları olmayan tabloda silme istiyorsan ListForm editöründen komut yazmalısın.
- Dil anahtarı zaten varsa metni **ezilmez**. Yanlış metin görüyorsan anahtar başka bir yerde - Dil anahtarı zaten varsa metni **ezilmez**. Yanlış metin görüyorsan anahtar başka bir yerde
tanımlanmıştır. tanımlanmıştır. Anahtar yalnızca veritabanında varsa (seed dosyasında satırı yoksa) deploy onu
veritabanındaki metniyle `App.Languages.LanguageText.json`'a taşır; sahipliğini almaz.
### 4.5 Güncelleme, idempotency ve silme semantiği ### 4.5 Güncelleme, idempotency ve silme semantiği

View file

@ -51,6 +51,9 @@ public class McpDevelopAppService(
/// <summary>Index cevabinda listelenen en derin baslik; daha derini bolum istenince gorunur.</summary> /// <summary>Index cevabinda listelenen en derin baslik; daha derini bolum istenince gorunur.</summary>
private const int IndexHeadingLevel = 3; private const int IndexHeadingLevel = 3;
/// <summary>Baslikla eslesmeyen terim icin listelenen en fazla bolum.</summary>
private const int GuideSearchMaxResults = 15;
/// <summary>Custom Components ekraninin tek sayfada dondurebildigi ust sinir.</summary> /// <summary>Custom Components ekraninin tek sayfada dondurebildigi ust sinir.</summary>
private const int ComponentPageSize = 1000; private const int ComponentPageSize = 1000;
@ -92,10 +95,28 @@ public class McpDevelopAppService(
}; };
} }
var result = await devGuide.GetSectionAsync( var result = await FindGuideSectionAsync(document, section);
string.IsNullOrWhiteSpace(document) ? DefaultGuideDocument : document, if (result is null)
section) {
?? throw new UserFriendlyException(L[McpErrorCodes.DevGuideSectionNotFound, section]); // Baslik olmayan bir terim (editor, alan adi) istenebilir; hata yerine terimin gectigi
// bolumler, o da yoksa baslik listesi doner ki model bir sonraki istegi secebilsin.
var matches = await devGuide.SearchAsync(section, GuideSearchMaxResults);
if (matches.Count > 0)
{
return new McpDevGuideDto
{
Content = L[McpErrorCodes.DevGuideSearchMatches, section],
Sections = [.. matches.Select(ToDto)]
};
}
var headings = await devGuide.GetHeadingsAsync();
return new McpDevGuideDto
{
Content = L[McpErrorCodes.DevGuideSectionNotFound, section],
Sections = [.. headings.Where(h => h.Level <= IndexHeadingLevel).Select(ToDto)]
};
}
return new McpDevGuideDto return new McpDevGuideDto
{ {
@ -105,6 +126,25 @@ public class McpDevelopAppService(
}; };
} }
/// <summary>
/// Bolum once istenen belgede, sonra diger belgelerde numara ya da baslik metniyle aranir;
/// model terimi hangi belgede oldugunu bilmeden isteyebilir.
/// </summary>
private async Task<McpDevGuideSection?> FindGuideSectionAsync(string? document, string section)
{
var first = string.IsNullOrWhiteSpace(document) ? DefaultGuideDocument : document;
foreach (var candidate in McpDevGuide.Documents.Keys.OrderBy(key => !string.Equals(key, first, StringComparison.OrdinalIgnoreCase)))
{
var result = await devGuide.GetSectionAsync(candidate, section);
if (result is not null)
{
return result;
}
}
return null;
}
/// <summary> /// <summary>
/// Tablo tasarimcisiyla ayni yetkiyi ister: ham DDL liste yetkilerini asar, Develop yalnizca /// Tablo tasarimcisiyla ayni yetkiyi ister: ham DDL liste yetkilerini asar, Develop yalnizca
/// MCP kapisidir. /// MCP kapisidir.

View file

@ -31,6 +31,7 @@ public static class McpErrorCodes
public const string RedirectUriNotAllowed = Prefix + "RedirectUriNotAllowed"; public const string RedirectUriNotAllowed = Prefix + "RedirectUriNotAllowed";
public const string DevGuideUnavailable = Prefix + "DevGuideUnavailable"; public const string DevGuideUnavailable = Prefix + "DevGuideUnavailable";
public const string DevGuideSectionNotFound = Prefix + "DevGuideSectionNotFound"; public const string DevGuideSectionNotFound = Prefix + "DevGuideSectionNotFound";
public const string DevGuideSearchMatches = Prefix + "DevGuideSearchMatches";
public const string InvalidWizard = Prefix + "InvalidWizard"; public const string InvalidWizard = Prefix + "InvalidWizard";
public const string SeedRowsInvalid = Prefix + "SeedRowsInvalid"; public const string SeedRowsInvalid = Prefix + "SeedRowsInvalid";
public const string SeedRowsNotAllowed = Prefix + "SeedRowsNotAllowed"; public const string SeedRowsNotAllowed = Prefix + "SeedRowsNotAllowed";

View file

@ -25,6 +25,12 @@ public interface IMcpDevGuide
/// metninin bir parcasidir; bulunamazsa null. /// metninin bir parcasidir; bulunamazsa null.
/// </summary> /// </summary>
Task<McpDevGuideSection?> GetSectionAsync(string document, string section); Task<McpDevGuideSection?> GetSectionAsync(string document, string section);
/// <summary>
/// Metninde <paramref name="term"/> gecen bolumler, gecme sayisina gore. Baslik olmayan bir
/// terim (editor adi, alan adi) istendiginde modele nereye bakacagini soyler.
/// </summary>
Task<IReadOnlyList<McpDevGuideHeading>> SearchAsync(string term, int maxResults);
} }
/// <param name="Document">Belgenin kisa adi (<see cref="McpDevGuide.Documents"/>).</param> /// <param name="Document">Belgenin kisa adi (<see cref="McpDevGuide.Documents"/>).</param>
@ -102,6 +108,40 @@ public partial class McpDevGuide(IConfiguration configuration) : DomainService,
return new McpDevGuideSection(match.Heading, content, [.. children.Select(child => child.Heading)]); return new McpDevGuideSection(match.Heading, content, [.. children.Select(child => child.Heading)]);
} }
public async Task<IReadOnlyList<McpDevGuideHeading>> SearchAsync(string term, int maxResults)
{
var wanted = term.Trim();
if (wanted.Length == 0)
{
return [];
}
var hits = new List<(McpDevGuideHeading Heading, int Count, int Order)>();
foreach (var document in Documents.Keys)
{
var lines = await ReadLinesAsync(document);
var headings = ParseHeadings(document, lines);
// Her satir kendisinden onceki en yakin basliga sayilir; boylece en dar bolum doner.
for (var i = 0; i < headings.Count; i++)
{
var end = i + 1 < headings.Count ? headings[i + 1].Line : lines.Length;
var count = lines[headings[i].Line..end]
.Count(line => line.Contains(wanted, StringComparison.OrdinalIgnoreCase));
if (count > 0)
{
hits.Add((headings[i].Heading, count, hits.Count));
}
}
}
return [.. hits
.OrderByDescending(hit => hit.Count)
.ThenBy(hit => hit.Order)
.Take(maxResults)
.Select(hit => hit.Heading)];
}
private async Task<string[]> ReadLinesAsync(string document) private async Task<string[]> ReadLinesAsync(string document)
{ {
if (!Documents.TryGetValue(document, out var fileName)) if (!Documents.TryGetValue(document, out var fileName))

View file

@ -26,7 +26,7 @@ public sealed class McpDevelopTools(IMcpDevelopAppService developAppService)
public async Task<McpDevGuideDto> GetDevGuideAsync( public async Task<McpDevGuideDto> GetDevGuideAsync(
[Description("'lowcode' (uretim protokolu ve artefakt semalari, varsayilan) ya da 'reference' (JSON kolon sozlesmeleri, tasarimci envanteri).")] [Description("'lowcode' (uretim protokolu ve artefakt semalari, varsayilan) ya da 'reference' (JSON kolon sozlesmeleri, tasarimci envanteri).")]
string? document = null, string? document = null,
[Description("Bolum numarasi (4.2) ya da baslik metninin bir parcasi. Bos birakilirsa baslik listesi doner.")] [Description("Bolum numarasi (4.2), baslik metninin bir parcasi ya da aranacak terim (dxImageUpload). Baslikla eslesmeyen terimde terimin gectigi bolumler listelenir; bos birakilirsa baslik listesi doner.")]
string? section = null) string? section = null)
=> await developAppService.GetDevGuideAsync(document, section); => await developAppService.GetDevGuideAsync(document, section);

View file

@ -312,7 +312,8 @@ public class ListFormWizardAppService(
/// <summary> /// <summary>
/// Bir dil anahtarinin iki dilli metin satirlarini yazar. Anahtar wizard'a aitse (yeni ya da /// Bir dil anahtarinin iki dilli metin satirlarini yazar. Anahtar wizard'a aitse (yeni ya da
/// onceki surumun) metinler cevaplarla yazilir; baska bir kayda ait var olan anahtara dokunulmaz. /// onceki surumun) metinler cevaplarla yazilir; baska bir kayda ait var olan anahtarin metnine
/// dokunulmaz, yalnizca veritabaninda kalmissa seed dosyasina tasinir.
/// Satirin kimligi is anahtarindan turer (<see cref="SeedRowIds.LanguageText"/>). /// Satirin kimligi is anahtarindan turer (<see cref="SeedRowIds.LanguageText"/>).
/// </summary> /// </summary>
private async Task WriteLanguageRowsAsync( private async Task WriteLanguageRowsAsync(
@ -330,13 +331,32 @@ public class ListFormWizardAppService(
var isOwned = owned.LanguageKeys.Contains(key, StringComparer.OrdinalIgnoreCase) var isOwned = owned.LanguageKeys.Contains(key, StringComparer.OrdinalIgnoreCase)
|| inserted.LanguageKeys.Contains(key, StringComparer.OrdinalIgnoreCase); || inserted.LanguageKeys.Contains(key, StringComparer.OrdinalIgnoreCase);
if (!isOwned && if (!isOwned)
(rows.Contains(WizardSeedRowStore.LanguageTextFile, nameof(LanguageText.Key), key) ||
await repoLangKey.AnyAsync(a => a.ResourceName == res && a.Key == key)))
{ {
return; if (rows.Contains(WizardSeedRowStore.LanguageTextFile, nameof(LanguageText.Key), key))
return;
// Yalnizca veritabaninda olan anahtar (elle eklenmis ya da seed'i dusmus) atlanirsa
// migrate'te geri gelmez. Baskasinin metnini ezmeden dosyaya alinir; sahiplik dosyada
// olmayan bir kayda verilmez, yoksa wizard silinince ortak alan basligi da giderdi.
if (await repoLangKey.AnyAsync(a => a.ResourceName == res && a.Key == key))
{
var existing = await repoLangText.GetListAsync(a => a.ResourceName == res && a.Key == key);
string? Existing(string culture) => existing.FirstOrDefault(t => t.CultureName == culture)?.Value;
UpsertLanguageRows(rows, res, key, Existing(cultureNameDefault) ?? textEn, Existing(LanguageCodes.Tr) ?? textTr);
return;
}
} }
UpsertLanguageRows(rows, res, key, textEn, textTr);
if (!inserted.LanguageKeys.Contains(key, StringComparer.OrdinalIgnoreCase))
inserted.LanguageKeys.Add(key);
}
private void UpsertLanguageRows(WizardSeedRowStore rows, string res, string key, string? textEn, string? textTr)
{
foreach (var (culture, value) in new[] { (cultureNameDefault, textEn), (LanguageCodes.Tr, textTr) }) foreach (var (culture, value) in new[] { (cultureNameDefault, textEn), (LanguageCodes.Tr, textTr) })
{ {
rows.Upsert(WizardSeedRowStore.LanguageTextFile, new Dictionary<string, object> rows.Upsert(WizardSeedRowStore.LanguageTextFile, new Dictionary<string, object>
@ -348,9 +368,6 @@ public class ListFormWizardAppService(
[nameof(LanguageText.Value)] = string.IsNullOrWhiteSpace(value) ? key : value, [nameof(LanguageText.Value)] = string.IsNullOrWhiteSpace(value) ? key : value,
}, nameof(LanguageText.CultureName), nameof(LanguageText.ResourceName), nameof(LanguageText.Key)); }, nameof(LanguageText.CultureName), nameof(LanguageText.ResourceName), nameof(LanguageText.Key));
} }
if (!inserted.LanguageKeys.Contains(key, StringComparer.OrdinalIgnoreCase))
inserted.LanguageKeys.Add(key);
} }
/// <summary> /// <summary>

View file

@ -6973,6 +6973,366 @@
"IsEnabled": true, "IsEnabled": true,
"MultiTenancySide": 3, "MultiTenancySide": 3,
"Modules": "Hr" "Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.Trainings",
"ParentName": null,
"DisplayName": "App.Hr.Trainings",
"Order": 12,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.TrainingType",
"ParentName": "App.Hr.Trainings",
"DisplayName": "App.Hr.TrainingType",
"Order": 1,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.TrainingType.Create",
"ParentName": "App.Hr.TrainingType",
"DisplayName": "App.Platform.Create",
"Order": 1,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.TrainingType.Update",
"ParentName": "App.Hr.TrainingType",
"DisplayName": "App.Platform.Update",
"Order": 2,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.TrainingType.Delete",
"ParentName": "App.Hr.TrainingType",
"DisplayName": "App.Platform.Delete",
"Order": 3,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.TrainingType.Export",
"ParentName": "App.Hr.TrainingType",
"DisplayName": "App.Platform.Export",
"Order": 4,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.TrainingType.Import",
"ParentName": "App.Hr.TrainingType",
"DisplayName": "App.Platform.Import",
"Order": 5,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.TrainingType.Note",
"ParentName": "App.Hr.TrainingType",
"DisplayName": "App.Platform.Note",
"Order": 6,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.TrainingSubject",
"ParentName": "App.Hr.Trainings",
"DisplayName": "App.Hr.TrainingSubject",
"Order": 2,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.TrainingSubject.Create",
"ParentName": "App.Hr.TrainingSubject",
"DisplayName": "App.Platform.Create",
"Order": 1,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.TrainingSubject.Update",
"ParentName": "App.Hr.TrainingSubject",
"DisplayName": "App.Platform.Update",
"Order": 2,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.TrainingSubject.Delete",
"ParentName": "App.Hr.TrainingSubject",
"DisplayName": "App.Platform.Delete",
"Order": 3,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.TrainingSubject.Export",
"ParentName": "App.Hr.TrainingSubject",
"DisplayName": "App.Platform.Export",
"Order": 4,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.TrainingSubject.Import",
"ParentName": "App.Hr.TrainingSubject",
"DisplayName": "App.Platform.Import",
"Order": 5,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.TrainingSubject.Note",
"ParentName": "App.Hr.TrainingSubject",
"DisplayName": "App.Platform.Note",
"Order": 6,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.TrainingParticipant",
"ParentName": "App.Hr.Training",
"DisplayName": "App.Hr.TrainingParticipant",
"Order": 7,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.TrainingParticipant.Create",
"ParentName": "App.Hr.TrainingParticipant",
"DisplayName": "App.Platform.Create",
"Order": 1,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.TrainingParticipant.Update",
"ParentName": "App.Hr.TrainingParticipant",
"DisplayName": "App.Platform.Update",
"Order": 2,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.TrainingParticipant.Delete",
"ParentName": "App.Hr.TrainingParticipant",
"DisplayName": "App.Platform.Delete",
"Order": 3,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.TrainingParticipant.Export",
"ParentName": "App.Hr.TrainingParticipant",
"DisplayName": "App.Platform.Export",
"Order": 4,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.TrainingParticipant.Import",
"ParentName": "App.Hr.TrainingParticipant",
"DisplayName": "App.Platform.Import",
"Order": 5,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.TrainingParticipant.Note",
"ParentName": "App.Hr.TrainingParticipant",
"DisplayName": "App.Platform.Note",
"Order": 6,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.TrainingFile",
"ParentName": "App.Hr.Training",
"DisplayName": "App.Hr.TrainingFile",
"Order": 8,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.TrainingFile.Create",
"ParentName": "App.Hr.TrainingFile",
"DisplayName": "App.Platform.Create",
"Order": 1,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.TrainingFile.Update",
"ParentName": "App.Hr.TrainingFile",
"DisplayName": "App.Platform.Update",
"Order": 2,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.TrainingFile.Delete",
"ParentName": "App.Hr.TrainingFile",
"DisplayName": "App.Platform.Delete",
"Order": 3,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.TrainingFile.Export",
"ParentName": "App.Hr.TrainingFile",
"DisplayName": "App.Platform.Export",
"Order": 4,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.TrainingFile.Import",
"ParentName": "App.Hr.TrainingFile",
"DisplayName": "App.Platform.Import",
"Order": 5,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.TrainingFile.Note",
"ParentName": "App.Hr.TrainingFile",
"DisplayName": "App.Platform.Note",
"Order": 6,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.Training",
"ParentName": "App.Hr.Trainings",
"DisplayName": "App.Hr.Training",
"Order": 3,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.Training.Create",
"ParentName": "App.Hr.Training",
"DisplayName": "App.Platform.Create",
"Order": 1,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.Training.Update",
"ParentName": "App.Hr.Training",
"DisplayName": "App.Platform.Update",
"Order": 2,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.Training.Delete",
"ParentName": "App.Hr.Training",
"DisplayName": "App.Platform.Delete",
"Order": 3,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.Training.Export",
"ParentName": "App.Hr.Training",
"DisplayName": "App.Platform.Export",
"Order": 4,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.Training.Import",
"ParentName": "App.Hr.Training",
"DisplayName": "App.Platform.Import",
"Order": 5,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
},
{
"GroupName": "App.Hr",
"Name": "App.Hr.Training.Note",
"ParentName": "App.Hr.Training",
"DisplayName": "App.Platform.Note",
"Order": 6,
"IsEnabled": true,
"MultiTenancySide": 3,
"Modules": "Hr"
} }
] ]
} }

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,134 @@
{
"ListFormCode": "App.Hr.TrainingSubject",
"KeyFieldName": "Id",
"GeneratedAt": "2026-10-01T14:26:29.3173829Z",
"Order": 0,
"Rows": [
{
"TrainingTypeId": "a1e00001-0000-4000-8000-000000000005",
"Name": "BİLİŞİM ZİRVESİ' 25",
"IsEvaluated": true,
"IsActive": true,
"Id": "73de4dcb-dbc1-43d2-aab1-3a240a08e745"
},
{
"TrainingTypeId": "a1e00001-0000-4000-8000-000000000006",
"Name": "ÇIRAK ÖĞRENCİLER İÇİN SOSYAL AKTİVİTE",
"IsEvaluated": true,
"IsActive": true,
"Id": "c47bc159-726d-f402-440b-3a240a08e745"
},
{
"TrainingTypeId": "a1e00001-0000-4000-8000-000000000007",
"Name": "DÜŞÜNCE YÖNETİMİ",
"IsEvaluated": true,
"IsActive": true,
"Id": "f221fbc9-d276-b08a-bbf2-3a240a08e745"
},
{
"TrainingTypeId": "a1e00001-0000-4000-8000-000000000007",
"Name": "EASY LİFE TEKNOLOJİSİ",
"IsEvaluated": true,
"IsActive": true,
"Id": "46aa4294-7fe2-13ad-7dbc-3a240a08e745"
},
{
"TrainingTypeId": "a1e00001-0000-4000-8000-000000000004",
"Name": "EPD SERTİFİKASI BİLGİLENDİRME EĞİTİMİ",
"IsEvaluated": true,
"IsActive": true,
"Id": "c1920c9c-9ba4-d739-fa95-3a240a08e745"
},
{
"TrainingTypeId": "a1e00001-0000-4000-8000-000000000002",
"Name": "İŞ BAŞI EĞİTİMİ",
"IsEvaluated": true,
"IsActive": true,
"Id": "f06d5a22-3201-f4c6-e986-3a240a08e745"
},
{
"TrainingTypeId": "a1e00001-0000-4000-8000-000000000003",
"Name": "İŞ BAŞI EĞİTİMİ",
"IsEvaluated": true,
"IsActive": true,
"Id": "ae24ad90-874a-a1fe-fb91-3a240a08e745"
},
{
"TrainingTypeId": "a1e00001-0000-4000-8000-000000000003",
"Name": "İŞ BAŞI VE BÖLÜM EĞİTİMİ",
"IsEvaluated": true,
"IsActive": true,
"Id": "6efc546d-1644-4f5c-5ba4-3a240a08e745"
},
{
"TrainingTypeId": "a1e00001-0000-4000-8000-000000000007",
"Name": "İŞ SAĞLIĞI VE GÜVENLİĞİ",
"IsEvaluated": true,
"IsActive": true,
"Id": "f56c99d6-a0fa-447b-9be0-3a240a08e745"
},
{
"TrainingTypeId": "a1e00001-0000-4000-8000-000000000001",
"Name": "ORYANTASYON EĞİTİMİ",
"IsEvaluated": true,
"IsActive": true,
"Id": "e4b5c133-883c-4b17-c455-3a240a08e745"
},
{
"TrainingTypeId": "a1e00001-0000-4000-8000-000000000003",
"Name": "ORYANTASYON PROGRAMI EĞİTİMİ",
"IsEvaluated": true,
"IsActive": true,
"Id": "e9b12f92-f21a-b868-8ddf-3a240a08e745"
},
{
"TrainingTypeId": "a1e00001-0000-4000-8000-000000000008",
"Name": "ROTASYON EĞİTİMİ",
"IsEvaluated": true,
"IsActive": true,
"Id": "204e5ede-7ac2-ba98-9860-3a240a08e745"
},
{
"TrainingTypeId": "a1e00001-0000-4000-8000-000000000007",
"Name": "SAĞLIKLI İLETİŞİM",
"IsEvaluated": true,
"IsActive": true,
"Id": "3fe66507-f466-eda2-4818-3a240a08e745"
},
{
"TrainingTypeId": "a1e00001-0000-4000-8000-000000000005",
"Name": "SİBER GÜVENLİK SEMİNERİ",
"IsEvaluated": true,
"IsActive": true,
"Id": "8109ce6b-0fe1-b61b-6a0b-3a240a08e745"
},
{
"TrainingTypeId": "a1e00001-0000-4000-8000-000000000003",
"Name": "TEMİZLİK VE KONTROL KAYIT FORMU FR.KMYÖ.001 DOLDURULMASI HK.",
"IsEvaluated": true,
"IsActive": true,
"Id": "b4d79f43-21ab-e602-b67f-3a240a08e745"
},
{
"TrainingTypeId": "a1e00001-0000-4000-8000-000000000003",
"Name": "TERMAL ETÜV CİHAZI KULLANMA TALİMATI",
"IsEvaluated": true,
"IsActive": true,
"Id": "5823962f-b5fd-0575-ca6f-3a240a08e745"
},
{
"TrainingTypeId": "a1e00001-0000-4000-8000-000000000004",
"Name": "ÜRÜN GÜVENLİĞİ",
"IsEvaluated": true,
"IsActive": true,
"Id": "fce326b0-2295-e16b-3830-3a240a08e745"
},
{
"TrainingTypeId": "a1e00001-0000-4000-8000-000000000003",
"Name": "YANGIN TÜPÜ",
"IsEvaluated": true,
"IsActive": true,
"Id": "295d4b0a-d745-7673-f577-3a240a08e745"
}
]
}

View file

@ -0,0 +1,48 @@
{
"ListFormCode": "App.Hr.TrainingType",
"KeyFieldName": "Id",
"GeneratedAt": "2026-10-01T14:25:58.0477797Z",
"Order": 0,
"Rows": [
{
"Id": "a1e00001-0000-4000-8000-000000000001",
"Name": "Oryantasyon Eğitimi",
"IsActive": true
},
{
"Id": "a1e00001-0000-4000-8000-000000000002",
"Name": "İş Başı Eğitimi",
"IsActive": true
},
{
"Id": "a1e00001-0000-4000-8000-000000000003",
"Name": "Teknik Oryantasyon Eğitimi",
"IsActive": true
},
{
"Id": "a1e00001-0000-4000-8000-000000000004",
"Name": "Grup Eğitimi",
"IsActive": true
},
{
"Id": "a1e00001-0000-4000-8000-000000000005",
"Name": "Firma Dışı Eğitimi",
"IsActive": true
},
{
"Id": "a1e00001-0000-4000-8000-000000000006",
"Name": "Eğitim İçerikli Sosyal Faaliyet",
"IsActive": true
},
{
"Id": "a1e00001-0000-4000-8000-000000000007",
"Name": "Akademi Eğitimleri",
"IsActive": true
},
{
"Id": "a1e00001-0000-4000-8000-000000000008",
"Name": "Rotasyon Eğitimleri",
"IsActive": true
}
]
}

View file

@ -68861,14 +68861,28 @@
"CultureName": "en", "CultureName": "en",
"ResourceName": "Platform", "ResourceName": "Platform",
"Key": "App.Mcp.Error.DevGuideSectionNotFound", "Key": "App.Mcp.Error.DevGuideSectionNotFound",
"Value": "Section \"{0}\" was not found in the development guide. Call get_dev_guide without a section to see the headings." "Value": "No heading or text in the development guide matches \"{0}\". The headings are listed below; request one by its number."
}, },
{ {
"Id": "b1f07ab2-5c2c-5b8b-a4bb-f0a64487295f", "Id": "b1f07ab2-5c2c-5b8b-a4bb-f0a64487295f",
"CultureName": "tr", "CultureName": "tr",
"ResourceName": "Platform", "ResourceName": "Platform",
"Key": "App.Mcp.Error.DevGuideSectionNotFound", "Key": "App.Mcp.Error.DevGuideSectionNotFound",
"Value": "Geliştirme rehberinde \"{0}\" bölümü bulunamadı. Başlıkları görmek için get_dev_guide aracını bölüm vermeden çağırın." "Value": "Geliştirme rehberinde \"{0}\" ile eşleşen bir başlık ya da metin yok. Başlıklar aşağıda; birini numarasıyla isteyin."
},
{
"Id": "c6491005-f70b-5257-a3e2-58fe0939624c",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Mcp.Error.DevGuideSearchMatches",
"Value": "No heading is named \"{0}\"; the sections below mention it. Request one by its number."
},
{
"Id": "584b7347-8b12-5e9d-b8aa-02b24b9baf4d",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Mcp.Error.DevGuideSearchMatches",
"Value": "\"{0}\" adlı bir başlık yok; aşağıdaki bölümlerde geçiyor. Birini numarasıyla isteyin."
}, },
{ {
"Id": "56c8ace2-582f-51d1-aaf3-7f28d9f32046", "Id": "56c8ace2-582f-51d1-aaf3-7f28d9f32046",
@ -72873,6 +72887,650 @@
"ResourceName": "Platform", "ResourceName": "Platform",
"Key": "App.Hr.HealthCard.Desc", "Key": "App.Hr.HealthCard.Desc",
"Value": "Çalışan sağlık kartları" "Value": "Çalışan sağlık kartları"
},
{
"Id": "968da880-7a80-5730-b922-6b298a934939",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Hr.TrainingType",
"Value": "Training Types"
},
{
"Id": "add39f04-9ab8-5c95-bf16-16f90718b780",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Hr.TrainingType",
"Value": "Eğitim Tipleri"
},
{
"Id": "88298ca0-ab2e-576e-bac0-8e264cb1f7f6",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Hr.TrainingType.Title",
"Value": "Training Types"
},
{
"Id": "c5380643-84af-5694-86bc-7e63ed64e9d2",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Hr.TrainingType.Title",
"Value": "Eğitim Tipleri"
},
{
"Id": "350620ab-15ed-5caf-9d4b-823b856ff1ef",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Hr.TrainingType.Desc",
"Value": "Training type definitions"
},
{
"Id": "9cce0d8e-368c-5849-b4ec-d54c0be882da",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Hr.TrainingType.Desc",
"Value": "Eğitim tipi tanımları"
},
{
"Id": "c8ff2ff3-7c6e-5019-a68a-966a3d85e99a",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Hr.Trainings",
"Value": "Training"
},
{
"Id": "692c6879-2642-5279-acaa-e2e67b6fa93a",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Hr.Trainings",
"Value": "Eğitim"
},
{
"Id": "d94b52c0-1be7-57cb-9f48-055a439ae2a6",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Hr.TrainingSubject",
"Value": "Training Subjects"
},
{
"Id": "44ef11c5-4eae-5d45-b9ab-247ddf300037",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Hr.TrainingSubject",
"Value": "Eğitim Konuları"
},
{
"Id": "43aa380a-e485-5618-8499-7788d845245c",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Hr.TrainingSubject.Title",
"Value": "Training Subjects"
},
{
"Id": "ed6051f5-5d22-5d97-8647-b9a0e8a6a5a9",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Hr.TrainingSubject.Title",
"Value": "Eğitim Konuları"
},
{
"Id": "03bb9cb2-3eb8-5b8d-b2b7-5bdb0fa67a3f",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Hr.TrainingSubject.Desc",
"Value": "Training subjects by training type"
},
{
"Id": "da642db1-b93f-5a54-a1ca-006818b58d11",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Hr.TrainingSubject.Desc",
"Value": "Eğitim tipine bağlı eğitim konuları"
},
{
"Id": "2ca9cd53-1ccc-51cd-98b1-a4f8420a9dfe",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.TrainingTypeId",
"Value": "Training Type"
},
{
"Id": "421dbefa-d17f-59af-8b59-453ad8a5d6cf",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.TrainingTypeId",
"Value": "Eğitim Tipi"
},
{
"Id": "ddc6d622-d86f-53b5-a699-ac10d2b60406",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.TrainingSubject",
"Value": "Training Subject"
},
{
"Id": "b53bfc43-f98f-5c00-b0e6-1ced4735ab68",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.TrainingSubject",
"Value": "Eğitim Konusu"
},
{
"Id": "bf64dc9c-17be-54fc-8945-8de457a954ca",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.IsEvaluated",
"Value": "Evaluated?"
},
{
"Id": "c3dab7a8-3544-591c-b373-8f168c29d19c",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.IsEvaluated",
"Value": "Değerlendirilsin mi?"
},
{
"Id": "31c09540-8b3e-54ff-8274-af8973771984",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Hr.TrainingParticipant",
"Value": "Participants"
},
{
"Id": "8027baae-8e43-575d-9f4c-0638f3a61964",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Hr.TrainingParticipant",
"Value": "Katılımcılar"
},
{
"Id": "e7f48ab8-7f96-5a86-8cc6-3d0cae3a1121",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Hr.TrainingParticipant.Title",
"Value": "Participants"
},
{
"Id": "b5e229f1-375c-540b-9015-2b83e7c7918b",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Hr.TrainingParticipant.Title",
"Value": "Katılımcılar"
},
{
"Id": "404d2696-3fa5-59db-9c1f-fd7455072e8d",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Hr.TrainingParticipant.Desc",
"Value": "Training participants"
},
{
"Id": "765f15f7-36b6-5a3d-aa6f-7d7264316032",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Hr.TrainingParticipant.Desc",
"Value": "Eğitim katılımcıları"
},
{
"Id": "c06e0830-74c0-543a-90a2-daf025c4269a",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.TrainingId",
"Value": "Training"
},
{
"Id": "9acd3a55-fd11-5534-9107-98d4f777b61d",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.TrainingId",
"Value": "Eğitim"
},
{
"Id": "b736aa58-6865-5149-972a-7f147dcbe306",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.ParticipantFullName",
"Value": "Full Name"
},
{
"Id": "dc320c89-fa2b-5338-af1a-0db25b123746",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.ParticipantFullName",
"Value": "Adı Soyadı"
},
{
"Id": "3f89c371-f6ee-5d23-94e9-f7a460038212",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.DepartmentId",
"Value": "Department"
},
{
"Id": "c8a9e8b3-fe74-525f-96ec-53f6ff137263",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.DepartmentId",
"Value": "Bölüm"
},
{
"Id": "a5d15fc1-2818-5a99-a165-486ef92b8f82",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.AttendanceStatus",
"Value": "Attendance"
},
{
"Id": "c603330b-e1ce-555f-ae10-d257d9ea76b4",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.AttendanceStatus",
"Value": "Katılım Durumu"
},
{
"Id": "cf7c74e3-4563-5a58-98b6-8b653e3c001a",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.ExamScore",
"Value": "Exam Score"
},
{
"Id": "49e65963-5e10-5598-9878-dfa1192c0be0",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.ExamScore",
"Value": "Sınav Notu"
},
{
"Id": "c84dd964-97c9-567f-863e-f058547ba8b4",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.LeaveDate",
"Value": "Leave Date"
},
{
"Id": "bdd8f385-a887-5972-9620-ab29d9d13b18",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.LeaveDate",
"Value": "Ayrılma Tarihi"
},
{
"Id": "086deaa9-ba35-578c-b117-bc3b3d9377db",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.Note",
"Value": "Note"
},
{
"Id": "8ad84820-8816-5482-a689-5f3351fc969a",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.Note",
"Value": "Not"
},
{
"Id": "e9477f73-449f-5127-8e31-061386238e08",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Hr.TrainingFile",
"Value": "Training Files"
},
{
"Id": "5058adbd-e06e-5406-9557-bd8392fd10c6",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Hr.TrainingFile",
"Value": "Dosyalar"
},
{
"Id": "ef827e99-47a0-55d1-9541-4cd82d21bc24",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Hr.TrainingFile.Title",
"Value": "Training Files"
},
{
"Id": "ed4cf9c5-a5da-5960-88d3-b692043a9c21",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Hr.TrainingFile.Title",
"Value": "Dosyalar"
},
{
"Id": "5695c78c-3530-5aae-ab58-140e5f205101",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Hr.TrainingFile.Desc",
"Value": "Digital training resources"
},
{
"Id": "8878f0bf-2f7d-5cba-a7b8-67f96c73b570",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Hr.TrainingFile.Desc",
"Value": "Dijital eğitim kaynakları"
},
{
"Id": "65f267fe-ed9a-5877-bab9-25193cb035e3",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.DocumentTypeId",
"Value": "File Type"
},
{
"Id": "6691bef5-a21e-5e63-81f3-ff2e4c60abf1",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.DocumentTypeId",
"Value": "Dosya Türü"
},
{
"Id": "dd7c786d-dcca-51b6-b3fd-4ee04f505a6e",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.FileDate",
"Value": "Date"
},
{
"Id": "f5ab4568-0cfd-54de-8e99-296873eb0698",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.FileDate",
"Value": "Tarih"
},
{
"Id": "18b3b4ce-4ee8-543c-9c26-e7271c5bacc6",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.FileName",
"Value": "File Name"
},
{
"Id": "bdcfe218-810d-57cb-993c-d98c4ab593d4",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.FileName",
"Value": "Dosya Adı"
},
{
"Id": "41d4cb00-1a53-51c3-b70d-7755268ecd96",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.FileContent",
"Value": "File"
},
{
"Id": "313de6f3-b4b0-5dd6-a7d2-328dd358c303",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.FileContent",
"Value": "Dosya"
},
{
"Id": "fa55aeea-e13c-5742-b30e-853eecd69bb6",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Hr.Training.Title",
"Value": "Trainings"
},
{
"Id": "b2f2fe2f-40cc-5766-83fb-d5d6151d47b2",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Hr.Training.Title",
"Value": "Eğitimler"
},
{
"Id": "c3e43cc3-6b58-5585-8cea-d5a245447fd5",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Hr.Training.Desc",
"Value": "Training records with participants, files, skills and costs"
},
{
"Id": "9d752979-4711-52fa-9d5b-84c76fc7a74c",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Hr.Training.Desc",
"Value": "Katılımcı, dosya, yetkinlik ve maliyet bilgileriyle eğitim kayıtları"
},
{
"Id": "8efb30fc-f40b-5465-ba0f-0ad4b2584571",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Hr.Training.Widget.Open",
"Value": "Open Trainings"
},
{
"Id": "ffecd6d1-4495-57e1-9114-1d57675a75b5",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Hr.Training.Widget.Open",
"Value": "Açık Eğitim"
},
{
"Id": "084ba04d-1991-5f80-85cf-e4403a0578a7",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Hr.Training.Widget.Closed",
"Value": "Closed Trainings"
},
{
"Id": "c9fba5e2-aade-5707-986f-5a98395e7bb9",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Hr.Training.Widget.Closed",
"Value": "Kapalı Eğitim"
},
{
"Id": "a23f7f02-e5df-5f18-9ec6-5cf1e95330e3",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Hr.Training.Widget.Cost",
"Value": "Total Cost"
},
{
"Id": "422a4e58-8a54-549b-a891-897234ee8259",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Hr.Training.Widget.Cost",
"Value": "Toplam Maliyet"
},
{
"Id": "487be27b-8f1b-58ab-8a09-c8c4d869f7e0",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Hr.Training.Status.Open",
"Value": "Open"
},
{
"Id": "c95513b8-4a21-5f4b-82a2-8ff6ed3f0636",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Hr.Training.Status.Open",
"Value": "Açık"
},
{
"Id": "e4ced490-83d1-5a68-8407-c9399b86d670",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Hr.Training.Status.Closed",
"Value": "Closed"
},
{
"Id": "aa582da8-c5b6-5921-95b8-44bd3b498b67",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Hr.Training.Status.Closed",
"Value": "Kapalı"
},
{
"Id": "2d644312-37f9-56e4-871d-c912dac1468e",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.TrainingSubjectId",
"Value": "Training Subject"
},
{
"Id": "ed7c588a-ea68-5345-a961-c98736880e5e",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.TrainingSubjectId",
"Value": "Eğitim Konusu"
},
{
"Id": "de9a3655-4bad-54ed-8ae9-799485985843",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.TrainerName",
"Value": "Trainer"
},
{
"Id": "3d93b131-f7a7-5979-b554-4f79faa936b0",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.TrainerName",
"Value": "Eğitim Veren Kişi"
},
{
"Id": "758116a9-2aa7-5823-a744-5b61bad37c29",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.TrainingPlace",
"Value": "Training Place"
},
{
"Id": "e298172b-d64f-58cf-82e4-c98e92d1c118",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.TrainingPlace",
"Value": "Eğitim Yeri"
},
{
"Id": "2917fe2b-9772-5066-9849-763db7ef8a8e",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.TrainingInstitution",
"Value": "Training Institution"
},
{
"Id": "949660b1-ff04-52e2-8791-6f8c6a60e190",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.TrainingInstitution",
"Value": "Eğitim Veren Kurum"
},
{
"Id": "aa3c551b-4081-5343-aaef-53edb68abc5a",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.SkillIds",
"Value": "Skills"
},
{
"Id": "7d502bac-55f0-5c32-92b2-67c0bcdc861c",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.SkillIds",
"Value": "Yetkinlikler"
},
{
"Id": "7002e92c-575b-5fc8-a923-bcc0e33c8657",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.CostPlace",
"Value": "Venue Cost"
},
{
"Id": "59dd79de-19ab-59e9-bbb4-00c91cd9fd13",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.CostPlace",
"Value": "Eğitim Yeri Maliyeti"
},
{
"Id": "d7c6a0eb-f067-5a1f-8380-08de8efe5f34",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.CostTransport",
"Value": "Transport"
},
{
"Id": "b81d061c-7a16-565c-a594-84cb41585f25",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.CostTransport",
"Value": "Ulaşım"
},
{
"Id": "147a2a3d-f42c-579d-957c-4343344acc0c",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.CostTrainer",
"Value": "Trainer Cost"
},
{
"Id": "3d22acfc-df57-5af3-886d-0c97cd78ffd0",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.CostTrainer",
"Value": "Eğitmen Maliyeti"
},
{
"Id": "8e31a9cc-fdc1-56de-903a-d849bf554868",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.CostAccommodation",
"Value": "Accommodation"
},
{
"Id": "87357156-d9a4-593d-95f5-3d5688827f02",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.CostAccommodation",
"Value": "Konaklama"
},
{
"Id": "62e00906-fdbc-57a6-b1ff-23205b822711",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.CostCatering",
"Value": "Catering"
},
{
"Id": "a9054ebb-0a2b-5000-801a-184657eaa14b",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.CostCatering",
"Value": "İkram"
},
{
"Id": "9a1fba22-ddde-5c6c-8def-7b803987b896",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.CostOther",
"Value": "Other"
},
{
"Id": "6c58d357-f709-56f1-95b4-07da392f12c3",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.CostOther",
"Value": "Diğer"
},
{
"Id": "ebeabc84-ffcd-5446-9dc0-1a4614b8a471",
"CultureName": "en",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.CostTotal",
"Value": "Total Cost"
},
{
"Id": "6dd4147b-5925-55b7-b571-6da2531ac4eb",
"CultureName": "tr",
"ResourceName": "Platform",
"Key": "App.Listform.ListformField.CostTotal",
"Value": "Toplam Maliyet"
} }
] ]
} }

View file

@ -1608,6 +1608,50 @@
"IsDisabled": false, "IsDisabled": false,
"ElementId": null, "ElementId": null,
"ModuleId": "Hr" "ModuleId": "Hr"
},
{
"ParentCode": "App.Hr",
"Code": "App.Hr.Trainings",
"DisplayName": "App.Hr.Trainings",
"Order": 5,
"Url": null,
"Icon": "FcGraduationCap",
"RequiredPermissionName": null,
"IsDisabled": false,
"ModuleId": "Hr"
},
{
"ParentCode": "App.Hr.Trainings",
"Code": "App.Hr.TrainingType",
"DisplayName": "App.Hr.TrainingType",
"Order": 1,
"Url": "/admin/list/App.Hr.TrainingType",
"Icon": "FcList",
"RequiredPermissionName": "App.Hr.TrainingType",
"IsDisabled": false,
"ModuleId": "Hr"
},
{
"ParentCode": "App.Hr.Trainings",
"Code": "App.Hr.TrainingSubject",
"DisplayName": "App.Hr.TrainingSubject",
"Order": 2,
"Url": "/admin/list/App.Hr.TrainingSubject",
"Icon": "FcViewDetails",
"RequiredPermissionName": "App.Hr.TrainingSubject",
"IsDisabled": false,
"ModuleId": "Hr"
},
{
"ParentCode": "App.Hr.Trainings",
"Code": "App.Hr.Training",
"DisplayName": "App.Hr.Training",
"Order": 3,
"Url": "/admin/list/App.Hr.Training",
"Icon": "FcGraduationCap",
"RequiredPermissionName": "App.Hr.Training",
"IsDisabled": false,
"ModuleId": "Hr"
} }
] ]
} }

View file

@ -27,6 +27,14 @@
"CategoryId": "49d0d0af-2613-5124-bd1c-19a84a20973a", "CategoryId": "49d0d0af-2613-5124-bd1c-19a84a20973a",
"Status": "active", "Status": "active",
"HtmlContent": "<h1>Liste Raporları.</h1><p>http://localhost:3000/admin/reports/DynamicFormReport/view/e2c8a2e0-af22-f7bb-5d88-3a21e3079997/App.Languages.Language</p>" "HtmlContent": "<h1>Liste Raporları.</h1><p>http://localhost:3000/admin/reports/DynamicFormReport/view/e2c8a2e0-af22-f7bb-5d88-3a21e3079997/App.Languages.Language</p>"
},
{
"Id": "3840a20d-3233-4d17-bc06-ccfd8d87b32a",
"Name": "Katılım Belgesi",
"CategoryId": "c872e32b-e598-5432-a938-5826ffeb0d79",
"Status": "active",
"Description": "Eğitime katılan personel için katılım belgesi (App.Hr.TrainingParticipant)",
"HtmlContent": "<div style=\"width:100%;min-height:180mm;padding:20mm 25mm;box-sizing:border-box;font-family:Calibri,'Segoe UI',Arial,sans-serif;color:#000;\"><h1 style=\"text-align:center;color:#e00000;font-size:44pt;font-weight:bold;margin:20mm 0 12mm 0;\">KATILIM BELGESİ</h1><p style=\"font-family:'Monotype Corsiva','Palatino Linotype',serif;font-style:italic;font-size:22pt;margin:0 0 3mm 0;\"><b>Sayın:</b> {{UserId}}</p><p style=\"font-size:15pt;line-height:1.5;margin:0;\">Firmamızda {{TrainingId}} eğitimine katılmıştır.</p><table style=\"width:100%;margin-top:35mm;font-size:14pt;\"><tr><td style=\"width:50%;text-align:center;font-weight:bold;\">Eğitmen</td><td style=\"width:50%;text-align:center;font-weight:bold;\">İşveren / İşveren Vekili</td></tr><tr><td style=\"height:20mm;\"></td><td></td></tr></table></div>"
} }
] ]
} }

View file

@ -0,0 +1,42 @@
IF OBJECT_ID(N'[dbo].[Hr_T_Training]', 'U') IS NULL
BEGIN
CREATE TABLE [dbo].[Hr_T_Training]
(
[Id] uniqueidentifier NOT NULL DEFAULT NEWID(),
[TenantId] uniqueidentifier NULL,
[TrainingTypeId] uniqueidentifier NOT NULL,
[TrainingSubjectId] uniqueidentifier NOT NULL,
[EntryDate] date NOT NULL,
[BranchId] uniqueidentifier NOT NULL,
[StartDate] date NOT NULL,
[EndDate] date NOT NULL,
[StartTime] datetime NULL,
[EndTime] datetime NULL,
[TotalHours] decimal(18, 4) NULL,
[TrainerName] nvarchar(200) NULL,
[TrainingPlace] nvarchar(MAX) NULL,
[TrainingInstitution] nvarchar(MAX) NULL,
[Description] nvarchar(MAX) NULL,
[Status] nvarchar(16) NOT NULL DEFAULT 'Open',
[SkillIds] nvarchar(MAX) NULL,
[CostPlace] decimal(18, 4) NULL DEFAULT 0,
[CostTrainer] decimal(18, 4) NULL DEFAULT 0,
[CostAccommodation] decimal(18, 4) NULL DEFAULT 0,
[CostTransport] decimal(18, 4) NULL DEFAULT 0,
[CostCatering] decimal(18, 4) NULL DEFAULT 0,
[CostOther] decimal(18, 4) NULL DEFAULT 0,
[CostTotal] decimal(18, 4) NULL DEFAULT 0,
[CreationTime] datetime2 NOT NULL DEFAULT GETUTCDATE(),
[CreatorId] uniqueidentifier NULL,
[LastModificationTime] datetime2 NULL,
[LastModifierId] uniqueidentifier NULL,
[IsDeleted] bit NOT NULL DEFAULT 0,
[DeletionTime] datetime2 NULL,
[DeleterId] uniqueidentifier NULL,
CONSTRAINT [PK_Hr_T_Training] PRIMARY KEY NONCLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
END
GO

View file

@ -0,0 +1,25 @@
IF OBJECT_ID(N'[dbo].[Hr_T_TrainingFile]', 'U') IS NULL
BEGIN
CREATE TABLE [dbo].[Hr_T_TrainingFile]
(
[Id] uniqueidentifier NOT NULL DEFAULT NEWID(),
[TenantId] uniqueidentifier NULL,
[TrainingId] uniqueidentifier NOT NULL,
[DocumentTypeId] uniqueidentifier NULL,
[FileDate] date NOT NULL,
[FileName] nvarchar(256) NOT NULL,
[FileContent] nvarchar(MAX) NOT NULL,
[CreationTime] datetime2 NOT NULL DEFAULT GETUTCDATE(),
[CreatorId] uniqueidentifier NULL,
[LastModificationTime] datetime2 NULL,
[LastModifierId] uniqueidentifier NULL,
[IsDeleted] bit NOT NULL DEFAULT 0,
[DeletionTime] datetime2 NULL,
[DeleterId] uniqueidentifier NULL,
CONSTRAINT [PK_Hr_T_TrainingFile] PRIMARY KEY NONCLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
END
GO

View file

@ -0,0 +1,30 @@
IF OBJECT_ID(N'[dbo].[Hr_T_TrainingParticipant]', 'U') IS NULL
BEGIN
CREATE TABLE [dbo].[Hr_T_TrainingParticipant]
(
[Id] uniqueidentifier NOT NULL DEFAULT NEWID(),
[TenantId] uniqueidentifier NULL,
[TrainingId] uniqueidentifier NOT NULL,
[UserId] uniqueidentifier NOT NULL,
[HireDate] date NULL,
[DepartmentId] uniqueidentifier NULL,
[JobPositionId] uniqueidentifier NULL,
[AttendanceStatus] nvarchar(16) NOT NULL DEFAULT 'Attended',
[EvaluationScore] decimal(18, 4) NULL,
[ExamScore] decimal(18, 4) NULL,
[LeaveDate] date NULL,
[Note] nvarchar(MAX) NULL,
[CreationTime] datetime2 NOT NULL DEFAULT GETUTCDATE(),
[CreatorId] uniqueidentifier NULL,
[LastModificationTime] datetime2 NULL,
[LastModifierId] uniqueidentifier NULL,
[IsDeleted] bit NOT NULL DEFAULT 0,
[DeletionTime] datetime2 NULL,
[DeleterId] uniqueidentifier NULL,
CONSTRAINT [PK_Hr_T_TrainingParticipant] PRIMARY KEY NONCLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
END
GO

View file

@ -0,0 +1,24 @@
IF OBJECT_ID(N'[dbo].[Hr_T_TrainingSubject]', 'U') IS NULL
BEGIN
CREATE TABLE [dbo].[Hr_T_TrainingSubject]
(
[Id] uniqueidentifier NOT NULL DEFAULT NEWID(),
[TenantId] uniqueidentifier NULL,
[TrainingTypeId] uniqueidentifier NOT NULL,
[Name] nvarchar(256) NOT NULL,
[IsEvaluated] bit NOT NULL DEFAULT 1,
[IsActive] bit NOT NULL DEFAULT 1,
[CreationTime] datetime2 NOT NULL DEFAULT GETUTCDATE(),
[CreatorId] uniqueidentifier NULL,
[LastModificationTime] datetime2 NULL,
[LastModifierId] uniqueidentifier NULL,
[IsDeleted] bit NOT NULL DEFAULT 0,
[DeletionTime] datetime2 NULL,
[DeleterId] uniqueidentifier NULL,
CONSTRAINT [PK_Hr_T_TrainingSubject] PRIMARY KEY NONCLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
END
GO

View file

@ -0,0 +1,22 @@
IF OBJECT_ID(N'[dbo].[Hr_T_TrainingType]', 'U') IS NULL
BEGIN
CREATE TABLE [dbo].[Hr_T_TrainingType]
(
[Id] uniqueidentifier NOT NULL DEFAULT NEWID(),
[TenantId] uniqueidentifier NULL,
[Name] nvarchar(128) NOT NULL,
[IsActive] bit NOT NULL DEFAULT 1,
[CreationTime] datetime2 NOT NULL DEFAULT GETUTCDATE(),
[CreatorId] uniqueidentifier NULL,
[LastModificationTime] datetime2 NULL,
[LastModifierId] uniqueidentifier NULL,
[IsDeleted] bit NOT NULL DEFAULT 0,
[DeletionTime] datetime2 NULL,
[DeleterId] uniqueidentifier NULL,
CONSTRAINT [PK_Hr_T_TrainingType] PRIMARY KEY NONCLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
END
GO

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff