using System.Text.Json; using Sozsoft.Platform.Enums; using Sozsoft.Platform.ListForms; using static Sozsoft.Platform.PlatformConsts; namespace Sozsoft.Platform; public static class LookupQueryValues { private const string defaultDomain = "Sozsoft"; 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 DefaultLookupQuery( string TableName, string ValueExpr, string DisplayExpr, bool isTable = true, bool isDeleted = false) { return $"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 TenantValues(bool alwaysName = false) { if (alwaysName) { return $"SELECT * FROM (" + $"SELECT " + $"\"AbpTenants\".\"Name\" AS \"Key\", " + $"\"AbpTenants\".\"Name\" AS \"Name\" " + $"FROM \"AbpTenants\"" + $") AS \"List\" " + $"ORDER BY \"Name\""; } else { return $"SELECT * FROM (" + // $"SELECT NULL AS \"Key\", 'Host' AS \"Name\" " + // $"UNION ALL " + $"SELECT " + $"\"AbpTenants\".\"Id\" AS \"Key\", " + $"\"AbpTenants\".\"Name\" AS \"Name\" " + $"FROM \"AbpTenants\"" + $") AS \"List\" " + $"ORDER BY \"Name\""; } } public static string LanguageKeyValues = $"SELECT " + $"\"{FullNameTable(TableNameEnum.LanguageKey)}\".\"Key\", " + $"CONCAT(" + $"\"{FullNameTable(TableNameEnum.LanguageKey)}\".\"Key\", " + $"' (', " + $"\"{FullNameTable(TableNameEnum.LanguageText)}\".\"Value\", " + $"')'" + $") AS \"Name\" " + $"FROM \"{FullNameTable(TableNameEnum.LanguageKey)}\" " + $"LEFT OUTER JOIN \"{FullNameTable(TableNameEnum.LanguageText)}\" " + $"ON \"{FullNameTable(TableNameEnum.LanguageKey)}\".\"Key\" = \"{FullNameTable(TableNameEnum.LanguageText)}\".\"Key\" " + $"AND \"{FullNameTable(TableNameEnum.LanguageKey)}\".\"ResourceName\" = \"{FullNameTable(TableNameEnum.LanguageText)}\".\"ResourceName\" " + $"WHERE " + $"\"{FullNameTable(TableNameEnum.LanguageText)}\".\"CultureName\" = 'tr' " + $"ORDER BY \"{FullNameTable(TableNameEnum.LanguageKey)}\".\"Key\";"; public static string CustomComponentValues = $"SELECT " + $"\"Name\" AS \"Key\", " + $"\"Name\" AS \"Name\" " + $"FROM \"{FullNameTable(TableNameEnum.CustomComponent)}\" " + $"WHERE " + $"\"IsActive\" = 'true' " + $"AND \"IsDeleted\" = 'false' " + $"ORDER BY \"Name\";"; public static string CountryValues = $"SELECT " + $"\"Id\" AS \"Key\", " + $"\"Name\" AS \"Name\" " + $"FROM \"{FullNameTable(TableNameEnum.Country)}\" " + $"WHERE \"IsDeleted\" = 'false' " + $"ORDER BY \"Name\";"; public static string CityValues = $"SELECT " + $"\"Name\" AS \"Key\", " + $"\"Name\" AS \"Name\" " + $"FROM \"{FullNameTable(TableNameEnum.City)}\" " + $"WHERE " + $"(\"Country\" = @param0 OR @param0 IS NULL) " + $"AND \"IsDeleted\" = 'false' " + $"ORDER BY \"Name\";"; public static string DistrictValues = $"SELECT " + $"\"Name\" AS \"Key\", " + $"\"Name\" AS \"Name\" " + $"FROM \"{FullNameTable(TableNameEnum.District)}\" " + $"WHERE " + $"(\"Country\" = @param0 OR @param0 IS NULL) " + $"AND (\"City\" = @param1 OR @param1 IS NULL) " + $"AND \"IsDeleted\" = 'false' " + $"GROUP BY \"Name\" " + $"ORDER BY \"Name\";"; public static string TownshipValues = $"SELECT " + $"\"Township\" AS \"Key\", " + $"\"Township\" AS \"Name\", " + $"\"PostalCode\" AS \"Group\" " + $"FROM \"{FullNameTable(TableNameEnum.District)}\" " + $"WHERE " + $"(\"Country\" = @param0 OR @param0 IS NULL) " + $"AND (\"City\" = @param1 OR @param1 IS NULL) " + $"AND (\"Name\" = @param2 OR @param2 IS NULL) " + $"AND \"IsDeleted\" = 'false' " + $"GROUP BY \"Township\", \"PostalCode\" " + $"ORDER BY \"Township\";"; public static string RoleValues = $"SELECT " + $"\"Id\" AS \"Key\", " + $"\"Name\" AS \"Name\" " + $"FROM \"AbpRoles\"" + $"ORDER BY \"Name\""; /// /// Manuel bildirim alicilari: yalnizca oturumun kiracisindaki aktif kullanicilar. Kiraci /// filtresi '@TENANTID' ile kurulur, host baglaminda "IS NULL" olarak cozulur. /// public static string TenantUserValues = $"SELECT " + $"\"Id\" AS \"Key\", " + $"CONCAT(\"Name\", ' ', \"Surname\", ' (', \"UserName\", ')') AS \"Name\" " + $"FROM \"AbpUsers\" " + $"WHERE " + $"\"IsDeleted\" = 'false' " + $"AND \"IsActive\" = 'true' " + $"AND \"TenantId\" = '@TENANTID' " + $"ORDER BY \"Name\";"; /// /// Manuel gonderimde secilebilen aktif sablonlar. Konu ve govde de secilir: ekrandaki /// copy kurali sablon secilince bu kolonlari forma tasir (EditorScript). /// public static string NotificationTemplateValues = $"SELECT " + $"\"Id\" AS \"Key\", " + $"\"Name\" AS \"Name\", " + $"\"Subject\", " + $"\"Body\" " + $"FROM \"{FullNameTable(TableNameEnum.NotificationTemplate)}\" " + $"WHERE " + $"\"IsDeleted\" = 'false' " + $"AND \"IsActive\" = 'true' " + $"AND \"TenantId\" = '@TENANTID' " + $"ORDER BY \"Name\";"; /// /// Oturumun kiracisina ait sektorler. Tablo kiraci basina ayristigi icin filtre '@TENANTID' /// ile kurulur; host baglaminda "IS NULL" olarak cozulur. /// public static string TenantSectorValues = $"SELECT " + $"\"Id\" AS \"Key\", " + $"\"Name\" AS \"Name\" " + $"FROM \"{FullNameTable(TableNameEnum.Sector)}\" " + $"WHERE " + $"\"IsDeleted\" = 'false' " + $"AND \"TenantId\" = '@TENANTID' " + $"ORDER BY \"Name\";"; /// /// Saglik kartindaki hekim secimi. Hr_T_Doctor wizard ile uretilen bir tablodur (entity'si /// yoktur); diploma ve isyeri hekimligi belgesi kolonlari da secilir, detay ekrani secilen /// hekimin bu bilgilerini gosterir. /// public static string TenantDoctorValues = $"SELECT " + $"\"Id\" AS \"Key\", " + $"\"FullName\" AS \"Name\", " + $"\"DiplomaNo\", " + $"\"DiplomaDate\", " + $"\"OhsCertificateNo\", " + $"\"OhsCertificateDate\" " + $"FROM \"Hr_T_Doctor\" " + $"WHERE " + $"\"IsDeleted\" = 'false' " + $"AND \"IsActive\" = 'true' " + $"AND \"TenantId\" = '@TENANTID' " + $"ORDER BY \"FullName\";"; public static string UserValues = $"SELECT " + $"\"Id\" AS \"Key\", " + $"\"UserName\" AS \"Name\" " + $"FROM \"AbpUsers\"" + $"ORDER BY \"Name\""; public static string BranchValues = $"SELECT \"Id\" AS \"Key\", " + $"\"Name\" AS \"Name\" " + $"FROM \"{defaultDomain}\".\"dbo\".\"{FullNameTable(TableNameEnum.Branch)}\" " + $"WHERE " + $"\"TenantId\" = '@TENANTID' " + // 🔹 Bu form doğru — Replace hedefi bu. $"AND \"IsDeleted\" = 'false' " + $"AND \"Id\" IN ( " + $"SELECT \"BranchId\" " + $"FROM \"{FullNameTable(TableNameEnum.BranchUsers)}\" " + $"WHERE \"UserId\" = '@USERID' " + // 🔹 Bu da doğru. $") " + $"ORDER BY \"Name\";"; public static string PermissionNameValues = $"SELECT \"Name\" AS \"Key\", " + $"CONCAT(\"Name\", ' (', \"DisplayName\", ')') AS \"Name\" " + $"FROM \"AbpPermissions\" " + $"WHERE \"IsEnabled\" = 'true' " + $"ORDER BY \"Name\";"; public static string PermissionGroupValues = $"SELECT \"Name\" AS \"Key\", " + $"\"DisplayName\" AS \"Name\" " + $"FROM \"AbpPermissionGroups\" " + $"ORDER BY \"Name\";"; public static string ModuleValues = $"SELECT " + $"\"Id\" AS \"Key\", " + $"\"Name\" AS \"Name\" " + $"FROM \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.Module))}\" " + $"ORDER BY \"Name\";"; public static string ProductValues = $"SELECT " + $"\"{FullNameTable(TableNameEnum.Product)}\".\"Id\" AS \"Key\", " + $"\"{FullNameTable(TableNameEnum.LanguageText)}\".\"Value\" AS \"Name\" " + $"FROM \"{FullNameTable(TableNameEnum.Product)}\" " + $"LEFT OUTER JOIN \"{FullNameTable(TableNameEnum.LanguageText)}\" " + $"ON \"{FullNameTable(TableNameEnum.Product)}\".\"Name\" = \"{FullNameTable(TableNameEnum.LanguageText)}\".\"Key\" " + $"WHERE \"{FullNameTable(TableNameEnum.Product)}\".\"IsDeleted\" = 'false' " + $"AND \"{FullNameTable(TableNameEnum.LanguageText)}\".\"CultureName\" = 'tr' " + $"ORDER BY \"{FullNameTable(TableNameEnum.LanguageText)}\".\"Value\";"; public static string MenuCodeValues = $"SELECT " + $"\"Code\" AS \"Key\", " + $"\"DisplayName\" AS \"Name\" " + $"FROM \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.Menu))}\" " + $"WHERE \"IsDisabled\" = 'false' " + $"ORDER BY \"ParentCode\", \"Order\";"; public static string OrganizationUnitSalesTeamValues = $"SELECT " + $"\"Code\" AS \"Key\", " + $"\"DisplayName\" AS \"Name\" " + $"FROM \"AbpOrganizationUnits\"" + $"WHERE \"Code\" LIKE '00001%' " + $"ORDER BY \"DisplayName\""; public static string RouteKeyValues = $@"SELECT ""Path"" AS ""Key"", ""Path"" AS ""Name"" FROM ""{FullNameTable(TableNameEnum.Route)}"" GROUP BY ""Path"" UNION SELECT '/admin/list/' + ""ListFormCode"" AS ""Key"", '/admin/list/' + ""ListFormCode"" AS ""Name"" FROM ""{FullNameTable(TableNameEnum.ListForm)}"" GROUP BY ""ListFormCode"";"; public static string DepartmentValues = $"SELECT " + $"\"Id\" AS \"Key\", " + $"\"Name\" AS \"Name\" " + $"FROM \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.Department))}\" " + $"WHERE \"IsDeleted\" = 'false' " + $"ORDER BY \"Name\";"; // Lookup sorgusu ekranın tenant filtresinden geçmez; kiracı kırılımı token ile sorguda yazılır. public static string TenantBranchValues = $"SELECT " + $"\"Id\" AS \"Key\", " + $"\"Name\" AS \"Name\" " + $"FROM \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.Branch))}\" " + $"WHERE " + $"\"TenantId\" = '{DefaultValues.TenantId}' " + $"AND \"IsDeleted\" = 'false' " + $"ORDER BY \"Name\";"; // Hr_T_BenefitType wizard ile seed scriptinden kurulur, entity'si yoktur; ad bu yuzden sabit yazilir. // Deger Code'dur: UserBenefit.BenefitType metin kolonudur ve kod kiracinin tanimladigi turle eslesir. public static string BenefitTypeValues = $"SELECT " + $"\"Code\" AS \"Key\", " + $"\"Name\" AS \"Name\" " + $"FROM \"Hr_T_BenefitType\" " + $"WHERE " + $"\"TenantId\" = '{DefaultValues.TenantId}' " + $"AND \"IsActive\" = 'true' " + $"AND \"IsDeleted\" = 'false' " + $"ORDER BY \"Name\";"; public static string BranchDepartmentValues = $"SELECT " + $"\"Id\" AS \"Key\", " + $"\"Name\" AS \"Name\" " + $"FROM \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.Department))}\" " + $"WHERE " + $"(\"BranchId\" = @param0 OR @param0 IS NULL) " + $"AND \"IsDeleted\" = 'false' " + $"ORDER BY \"Name\";"; public static string JobPositionValues = $"SELECT " + $"\"Id\" AS \"Key\", " + $"\"Name\" AS \"Name\" " + $"FROM \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.JobPosition))}\" " + $"WHERE " + $"(\"DepartmentId\" = @param0 OR @param0 IS NULL) " + $"AND \"IsDeleted\" = 'false' " + $"ORDER BY \"Name\";"; public static string JobPositionFullValues = $";WITH \"DepartmentTree\" AS " + $"( " + $"SELECT \"Id\", \"ParentId\" " + $"FROM \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.Department))}\" " + $"WHERE \"Id\" = @param0 " + $"OR @param0 IS NULL " + $"UNION ALL " + $"SELECT d.\"Id\", d.\"ParentId\" " + $"FROM \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.Department))}\" d " + $"INNER JOIN \"DepartmentTree\" dt " + $"ON d.\"Id\" = dt.\"ParentId\" " + $") " + $"SELECT " + $"jp.\"Id\" AS \"Key\", " + $"jp.\"Name\" AS \"Name\" " + $"FROM \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.JobPosition))}\" jp " + $"WHERE " + $"jp.\"IsDeleted\" = 'false' " + $"AND " + $"( " + $"jp.\"DepartmentId\" IN (SELECT \"Id\" FROM \"DepartmentTree\") " + $"OR jp.\"ParentId\" IS NULL " + $") " + $"ORDER BY jp.\"Name\";"; public static string SurveyQuestionValues = $"SELECT " + $"\"Id\" AS \"Key\", " + $"\"QuestionText\" AS \"Name\" " + $"FROM \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.SurveyQuestion))}\" " + $"WHERE \"IsDeleted\" = 'false' " + $"ORDER BY \"QuestionText\";"; /// Hr_T_Shift wizard ile uretilen bir tablodur (entity'si yoktur); kullanici bir vardiyaya baglanir. public static string TenantShiftValues = $"SELECT " + $"\"Id\" AS \"Key\", " + $"\"Name\" + ' (' + \"StartTime\" + '-' + \"EndTime\" + ')' AS \"Name\" " + $"FROM \"Hr_T_Shift\" " + $"WHERE " + $"\"IsDeleted\" = 'false' " + $"AND \"IsActive\" = 'true' " + $"AND \"TenantId\" = '@TENANTID' " + $"ORDER BY \"StartTime\";"; /// SGK cikis kodlari host tanimidir; kiraci filtresi yoktur, kod adla birlikte gosterilir. public static string TerminationReasonValues = $"SELECT " + $"\"Id\" AS \"Key\", " + $"\"Code\" + ' - ' + \"Name\" AS \"Name\" " + $"FROM \"{FullNameTable(TableNameEnum.TerminationReason)}\" " + $"WHERE " + $"\"IsDeleted\" = 'false' " + $"AND \"IsActive\" = 'true' " + $"ORDER BY \"Code\";"; /// Hr_T_Certificate wizard ile uretilen bir tablodur; kullanicinin belgesi buradaki tanima baglanir. public static string TenantCertificateValues = $"SELECT " + $"\"Id\" AS \"Key\", " + $"\"Name\" AS \"Name\" " + $"FROM \"Hr_T_Certificate\" " + $"WHERE " + $"\"IsDeleted\" = 'false' " + $"AND \"IsActive\" = 'true' " + $"AND \"TenantId\" = '@TENANTID' " + $"ORDER BY \"Name\";"; // Diller de bir yetenek tipidir (Languages); dil listesi o tipe, yetenek listesi diger tiplere suzulur. private const string LanguageSkillTypeName = "Languages"; public static string TenantLanguageSkillValues = $"SELECT " + $"s.\"Id\" AS \"Key\", " + $"s.\"Name\" AS \"Name\" " + $"FROM \"{FullNameTable(TableNameEnum.Skill)}\" s " + $"INNER JOIN \"{FullNameTable(TableNameEnum.SkillType)}\" t ON t.\"Id\" = s.\"SkillTypeId\" " + $"WHERE " + $"s.\"IsDeleted\" = 'false' " + $"AND t.\"Name\" = '{LanguageSkillTypeName}' " + $"AND s.\"TenantId\" = '@TENANTID' " + $"ORDER BY s.\"Name\";"; /// Secilen dilin tipine ait seviyeler (A1-C2); @param0 dilin SkillId'sidir. public static string TenantSkillLevelBySkillValues = $"SELECT " + $"l.\"Id\" AS \"Key\", " + $"l.\"Name\" AS \"Name\" " + $"FROM \"{FullNameTable(TableNameEnum.SkillLevel)}\" l " + $"INNER JOIN \"{FullNameTable(TableNameEnum.Skill)}\" s ON s.\"SkillTypeId\" = l.\"SkillTypeId\" " + $"WHERE " + $"(s.\"Id\" = @param0 OR @param0 IS NULL) " + $"AND l.\"IsDeleted\" = 'false' " + $"AND l.\"TenantId\" = '@TENANTID' " + $"ORDER BY l.\"Progress\";"; public static string TenantNonLanguageSkillValues = $"SELECT " + $"s.\"Id\" AS \"Key\", " + $"t.\"Name\" + ' - ' + s.\"Name\" AS \"Name\" " + $"FROM \"{FullNameTable(TableNameEnum.Skill)}\" s " + $"INNER JOIN \"{FullNameTable(TableNameEnum.SkillType)}\" t ON t.\"Id\" = s.\"SkillTypeId\" " + $"WHERE " + $"s.\"IsDeleted\" = 'false' " + $"AND t.\"Name\" <> '{LanguageSkillTypeName}' " + $"AND s.\"TenantId\" = '@TENANTID' " + $"ORDER BY t.\"Name\", s.\"Name\";"; public static string TechnicalSkillsValues = $"SELECT " + $"\"Name\" AS \"Key\", " + $"\"Name\" AS \"Name\" " + $"FROM \"{FullNameTable(TableNameEnum.Skill)}\" " + $"WHERE \"TenantId\" = '{DefaultValues.TenantId}' " + $"AND \"IsDeleted\" = 'false' " + $"AND \"SkillTypeId\" IN (SELECT \"Id\" FROM \"{FullNameTable(TableNameEnum.SkillType)}\" WHERE \"TenantId\" = '{DefaultValues.TenantId}' AND \"Name\"='Technical Skills' ) " + $"ORDER BY \"Name\""; public static string NotificationIdentityValues = $"SELECT " + $"\"Id\" AS \"Key\", " + $"\"Name\" AS \"Name\" " + $"FROM \"AbpRoles\"" + $"UNION ALL " + $"SELECT " + $"\"Id\" AS \"Key\", " + $"\"UserName\" AS \"Name\" " + $"FROM \"AbpUsers\"" + $"UNION ALL " + $"SELECT " + $"\"Id\" AS \"Key\", " + $"\"DisplayName\" AS \"Name\" " + $"FROM \"AbpOrganizationUnits\"" + $"ORDER BY \"Name\""; }