Listformlardan eksik olan IsBranch yeteneği getirildi.

This commit is contained in:
Sedat ÖZTÜRK 2026-10-15 00:12:14 +03:00
parent c0c90174d5
commit 29f4bc8b33
64 changed files with 1547 additions and 739 deletions

View file

@ -387,11 +387,14 @@ Kullanıcılar › detay › Yetkiler › Şube Yönetimi'nden yapılır. Atanan
(`DefaultWarehouseId`, şubenin aktif deposu) ve **varsayılan konumu** (`DefaultLocationId`, o deponun aktif iç konumu)
seçilir; şubenin deposu, deponun iç konumu varsa ikisi zorunludur (ekran ve `PlatformIdentityAppService.UpdatePermissionAsync`).
Seçenekleri Envanter'in `Inv_T_Warehouse`/`Inv_T_Location` tablolarından servis okur; modül yoksa seçenek boş kalır.
Bir ekranda "şube seçilince kullanıcının varsayılan deposu/konumu gelsin" için: `IsBranch: true`, şube lookup'ı
`Sas_T_BranchUsers` ile `UserId = '@USERID'` üzerinden süzülüp `DefaultWarehouseId`/`DefaultLocationId` kolonlarını
döndürür, şube alanının `EditorScript`'i `copy("DefaultWarehouseId", "WarehouseId")` (+ konum) ile yazar; yeni kaydın
şube/depo/konum varsayılanı `DbQuery` ile aynı tablodan okunur. Örnek: `App.Prc.MyMaterialRequest`,
`App.Prc.PurchaseRfq`, `App.Prc.PurchaseOrder`.
**Şube alanı standardı (her ekranda aynı):** `BranchId` alanının seçenekleri kullanıcıya atanmış aktif şubelerdir
(`Sas_T_Branch` + `Sas_T_BranchUsers`, `UserId = '@USERID'`, ada göre sıralı; `LookupQueryValues.UserBranchValues`),
yeni kaydın varsayılanı bu listenin ilk seçeneğidir (`DbQuery`, `LookupQueryValues.UserDefaultBranchValue`). Sorgu
metinleri `lowcode.instructions.md` §8.1'dedir; `IsBranch` olmayan ekran ve tanım ekranı da aynı sözleşmeyi kullanır.
Bir ekranda "şube seçilince kullanıcının varsayılan deposu/konumu gelsin" için aynı lookup sorgusuna
`DefaultWarehouseId`/`DefaultLocationId` kolonları eklenir, şube alanının `EditorScript`'i
`copy("DefaultWarehouseId", "WarehouseId")` (+ konum) ile yazar; yeni kaydın depo/konum varsayılanı aynı join'den
ilk şubenin satırıyla okunur. Örnek: `App.Prc.MyMaterialRequest`, `App.Prc.PurchaseRfq`, `App.Prc.PurchaseOrder`.
### 4.3 `*ServiceAddress`
@ -1586,7 +1589,7 @@ listesinde `Hr` varsa görür (modül listesi boş kiracıda süzme yoktur — `
| Ekran | Kod / route | Tablo | Kapsam | Komponent üretirken ne işe yarar |
| --- | --- | --- | --- | --- |
| **Definitions › Skill Type** | `App.Hr.SkillType` (alt formlar `App.Hr.SkillLevel`, `App.Hr.Skill`) | `Hr_T_SkillType` · `Hr_T_SkillLevel` · `Hr_T_Skill` | tenant | Yetkinlik tanımı; bir ana ekrandan iki alt forma açılan **çoklu alt form** örneği. Seed `data/App.Hr.{SkillType,SkillLevel,Skill}.json`. |
| **Definitions › Department** | `App.Hr.Department` | `Hr_T_Department` | tenant | **Şube bazlı** departman ağacı: ilk sütun `BranchId` (Şube Adı; `LookupQueryValues.TenantBranchValues`, zorunlu), `ParentId` lookup'ı seçili şubenin departmanlarına süzülür (`BranchDepartmentValues`, cascade `BranchId`). `ParentId` ile **ağaç (TreeList) düzeninin** referansı; personel/onay ekranlarının departman lookup'ı. Tekil indeks `TenantId + BranchId + Name`. Seed `data/App.Hr.Department.json`. |
| **Definitions › Department** | `App.Hr.Department` | `Hr_T_Department` | tenant | **Şube bazlı** departman ağacı: ilk sütun `BranchId` (Şube Adı; kullanıcının şubeleri `LookupQueryValues.UserBranchValues`, varsayılan ilk şube `UserDefaultBranchValue`, zorunlu), `ParentId` lookup'ı seçili şubenin departmanlarına süzülür (`BranchDepartmentValues`, cascade `BranchId`). `ParentId` ile **ağaç (TreeList) düzeninin** referansı; personel/onay ekranlarının departman lookup'ı. Tekil indeks `TenantId + BranchId + Name`. Seed `data/App.Hr.Department.json`. |
| **Definitions › Job Position** | `App.Hr.JobPosition` | `Hr_T_JobPosition` | tenant | Ünvan ağacı. Form sırası `BranchId` → `DepartmentId` (şubeye göre süzülür) → `Name` → `ParentId` (departmana göre süzülür); şube değişince departman ve üst görev temizlenir (`CascadeEmptyFields`). **İki kademeli cascade** örneği. Seed `data/App.Hr.JobPosition.json`. |
| **Work Calendar** | `App.Hr.WorkCalendar` | `Hr_T_WorkCalendar` | tenant | Resmi tatil ve çalışılmayan günler: `Name`, `StartDate`, `EndDate`, `DayType` (`Holiday`/`HalfDay`), `RecurrenceRule` (boş = tek sefer, `FREQ=YEARLY` = her yıl), `AllDay` (gizli, `true`), `IsActive`. Grid'e ek olarak **Takvim (Scheduler)** görünümü açıktır (`TextExpr = Name`). İzin ve puantaj hesabının tatil kaynağıdır. Wizard `wizard/Hr_WorkCalendar.json`, tablo `sql/object/Hr_T_WorkCalendar.sql`, seed `data/App.Hr.WorkCalendar.json` (sabit tarihli resmi tatiller her yıl tekrar eder; Ramazan ve Kurban bayramları hicri takvime göre kaydığı için 2026–2027 tarihleriyle tek seferlik girilir, sonraki yıllar ekrandan eklenir). |
| **Definitions › Leave Type** | `App.Hr.LeaveType` | `Hr_T_LeaveType` | tenant | İzin türü: `Code`, `Name`, `Gender` (`All`/`Male`/`Female`), `MaxDaysPerYear`, `IsPaid`, `DeductsFromAnnualLeave`, `RequiresDocument`, `AllowHalfDay`, `BalanceExceedAction` (`Block`/`Warn`), `IsActive`. İzin Yönetimi'nin tür kuralları; `Sick` kodlu tür Sağlık Kartı istirahatiyle eşlenir. Wizard `wizard/Hr_LeaveType.json`, tablo `sql/object/Hr_T_LeaveType.sql`, seed `data/App.Hr.LeaveType.json` (Türkiye standart izin türleri). |
@ -1613,7 +1616,7 @@ listesinde `Hr` varsa görür (modül listesi boş kiracıda süzme yoktur — `
| **Performance Management** | `App.Hr.Performance` dalı (yalnız İK): `PerformancePeriod`, `PerformanceReview`, `PerformanceCalibration`, `DevelopmentPlan`; tanım `App.Hr.PerformanceRating` (İK › Tanımlar). Çalışana ait `MyPerformanceReview`, `TeamPerformanceReview`, `My360Feedback` menüsüzdür; Intranet › Dashboard'daki custom widget'lardan (`MyPerformanceWidget`, `TeamPerformanceWidget`, `My360FeedbackWidget`) açılır; çalışanınkiler profilin **Performansım** sekmesinde de görünür | `Hr_T_PerformanceRating` · `Hr_T_PerformancePeriod` · `Hr_T_PerformancePeriodSkill` · `Hr_T_PerformanceReview` · `Hr_T_PerformanceGoal` · `Hr_T_PerformanceCompetency` · `Hr_T_PerformanceFeedback` · `Hr_T_PerformanceFeedbackScore` · `Hr_T_DevelopmentPlan` | tenant | Dönem → değerlendirme (hedef KPI/OKR + yetkinlik `Hr_T_Skill`/`Hr_T_SkillLevel` + isteğe bağlı 360) → kalibrasyon → gelişim planı. **Aynı tabloya persona ekranları**: İK (tümü), çalışan (`EmployeeId = '@USERID'`), yönetici (`ManagerId = '@USERID'`), 360 değerlendiricisi (`ReviewerId = '@USERID'`); kilitli alanlar İK ekranının yetkisine bağlıdır (sunucu düşürür), satır sahipliği ve aşama kuralı `Hr_S_PerformanceGuard` (before-command). Hesap ve durum geçişi `Hr_S_PerformanceReviewRecalc` / `Hr_S_PerformanceReviewAfterSave`; tamamlanan değerlendirme `Adm_T_UserSkill`'e yazar. Widget'lar veriyi ekranın kendi sorgusundan (`list-form-select/select`) okur. Çalışma şekli ve kararlar: `configs/seeds/docs/modules/App.Hr.md` › Performans Yönetimi. Wizard + Custom Component (pano kutusu). |
| **Leave Management** | `App.Hr.Leave` dalı (yalnız İK): `LeaveRequest` (Grid Workflow: Müdür Onayı `@ManagerUserNames` → İK Onayı; üst pozisyonu olmayan çalışanda müdür adımı `RequiresManagerApproval` karşılaştırmasıyla atlanır), `LeaveBalance` (alt formlar `LeaveBalanceAdjustment`, `LeaveBalanceYear`). Çalışana ait `MyLeaveRequest`, `MyLeaveBalance` ve müdüre ait `TeamLeaveRequest` menüsüzdür; Intranet › Dashboard'daki `MyLeaveWidget` / `TeamLeaveWidget`'tan açılır; çalışanınkiler profilin **İzinlerim** sekmesinde de görünür; kullanıcı detayında **İzinler** sekmesi | `Hr_T_LeaveRequest` · `Hr_T_LeaveBalanceAdjustment` · görünümler `Hr_V_LeaveBalanceYear` · `Hr_V_LeaveSummary` | tenant | Gün sayısı `Hr_F_LeaveWorkDays` (Ayarlar › İnsan Kaynakları › İzin çalışma günleri + `Hr_T_WorkCalendar`); bakiye İş Kanunu md.53 kademeleri (ayarlardan) + devir + düzeltme; müdür = departmanın en üst pozisyonunun sahibi. Doğrulama, müdür çözümü, rapor ↔ `Adm_T_UserSickLeave` eşlemesi ve bildirim `Hr_S_LeaveRequestAfterSave`; satır koruması `Hr_S_LeaveRequestGuard`; Sağlık Kartı tarafı `Hr_S_LeaveSickLeaveSync`. SQL'den ayar okuma `Hr_F_HrSetting` (kiracı → genel → varsayılan). Çalışma şekli: `configs/seeds/docs/modules/App.Hr.md` › İzin Yönetimi. Wizard + Custom Component + küçük UI/motor eki. |
| **Timesheet & Attendance** | `App.Hr.Attendance` dalı (yalnız İK): `AttendanceLog` (ham okutma; Excel import), `Timesheet` (çalışan × gün; düzenlenen gün `IsManual`), `TimesheetMonthly` (salt okunur aylık özet, alt form `Timesheet` `Id → PeriodKey`), `TimesheetPeriod` (ay yeniden hesap / kapanış). Çalışana ait `MyTimesheet` (+ alt form `MyTimesheetDay`) menüsüzdür; Intranet › Dashboard'daki `MyTimesheetWidget`'tan açılır; profilin **Puantajım** sekmesinde de görünür; kullanıcı detayında **Puantaj** sekmesi | `Hr_T_AttendanceLog` · `Hr_T_Timesheet` · `Hr_T_TimesheetPeriod` · görünümler `Hr_V_AttendanceShift` · `Hr_V_TimesheetMonthly` | tenant | Hesap `Hr_S_TimesheetCalculate` (gün tipi: rapor > ücretsiz izin > `Hr_T_WorkCalendar` tatili > hafta tatili (İzin çalışma günü ayarları) > ücretli izin > okutma > eğitim katılımı (`Training`) > varsayılan çalışma / devamsız; izinli günde `LeaveTypeId`, eğitim gününde `TrainingId`; mola `MAX(vardiya, okutulan)`; geç/erken vardiya toleransı aşılırsa tamamı; fazla mesai haftalık 45 saati aşan kısım + tatil çalışması). Kişi eşlemesi `AbpUsers.PdksCardNo` / `RegistrationNo`; kartı olan çalışan ilk PDKS okutmasından itibaren okutmayla, diğerleri elle (kayıtsız gün `IsAssumed`) takip edilir. Tetikler: hareket kaydı `Hr_S_AttendanceProcess`, PDKS Custom Endpoint `Hr_S_AttendanceImport` (`/hr/attendance/`), dönem `Hr_S_TimesheetPeriodAfterSave`, gece işi `Hr_S_TimesheetNightly`, izin/rapor prosedürleri, `Hr_S_TrainingSync`, `Hr_S_WorkCalendarAfterSave`. Modüller arası çakışma kuralları (raporlu gün devamsız değildir, rapora denk gelen izin günü bakiyeye döner, kapalı aya izin/rapor yazılmaz) `App.Hr.md` › Puantaj ve Devam Takibi §7.1'dedir. Ayarlar `App.HrSettings.Attendance.*`. Çalışma şekli: `configs/seeds/docs/modules/App.Hr.md` › Puantaj ve Devam Takibi. Wizard + Custom Component + Custom Endpoint + zamanlanmış iş + küçük UI eki. |
| **Org Chart** | `App.Hr.OrgChart` · `/admin/organization` | `Hr_T_Department` · `Hr_T_JobPosition` | tenant | Departman/ünvan verisinin organizasyon şeması görünümü (özel React sayfası `hr/OrgChart`, veri `api/app/org-chart`). Menü ve route aynı yetkiyi ister. |
| **Org Chart** | `App.Hr.OrgChart` · `/admin/organization` | `Hr_T_Department` · `Hr_T_JobPosition` | tenant | Departman/ünvan verisinin organizasyon şeması görünümü (özel React sayfası `hr/OrgChart`, veri `api/app/org-chart`); kök düğüm şubedir (`Sas_T_Branch`, `OrgChartNodeDto.NodeType`), üstü olmayan departman/pozisyon şubesinin altına bağlanır. Menü ve route aynı yetkiyi ister. |
| **Intranet › Announcement** | `App.Hr.Intranet.Announcement` (alt formlar Like/Comment) | `Hr_T_Announcement` · `Hr_T_AnnouncementLike` · `Hr_T_AnnouncementComment` | tenant | Duyuru + beğeni + yorum: **ana kayıt / alt etkileşim** kalıbının hazır örneği. |
| **Intranet › Survey** | `App.Hr.Intranet.Survey` (alt form Question → Option; Response → Answer) | `Hr_T_Survey` · `Hr_T_SurveyQuestion` · `Hr_T_SurveyQuestionOption` · `Hr_T_SurveyResponse` · `Hr_T_SurveyAnswer` | tenant | Anket motoru; soru–seçenek–yanıt zinciri **iki seviyeli alt form** ihtiyacının referansıdır. |
| **Intranet › Social Post** | `App.Hr.Intranet.SocialPost` | `Hr_T_SocialPost` · `Hr_T_SocialComment` · `Hr_T_SocialLike` (+ `SocialPollOption`, `SocialMedia`, `SocialLocation`) | tenant | Kurum içi akış; `IsLiked`, `IsOwnPost` gibi hesaplanmış kolonların view içinde üretilmesine örnek. Alt formlar: `App.Hr.Intranet.SocialMedia`, `SocialComment`, `SocialLike` (`Id` → `SocialPostId`); anket seçenekleri (`App.Hr.Intranet.SocialPollOption`) medyaya bağlı olduğu için `SocialMedia` ekranının alt formudur (`Id` → `SocialMediaId`). |

View file

@ -4089,15 +4089,21 @@ yukarıdaki tanım kararının tersidir; ayrı sorulmaz.
| --- | --- |
| Tablo | `[BranchId] uniqueidentifier NOT NULL` (PG `"BranchId" uuid NOT NULL`), `TenantId`'den hemen sonra |
| Ekran | `IsBranch: true` — liste yalnızca kullanıcıya atanmış şubelerin (`Sas_T_BranchUsers`) satırlarını getirir (`lowcode-reference.instructions.md` — Örtük filtreler) |
| Alan | Şube (`App.Listform.ListformField.BranchId`, var olan anahtar), `dxSelectBox`, zorunlu; lookup kullanıcının şubeleri: `SELECT b.Id AS [Key], b.Name AS [Name] FROM Sas_T_Branch b INNER JOIN Sas_T_BranchUsers bu ON bu.BranchId = b.Id AND bu.UserId = '@USERID' WHERE b.IsDeleted = 'false' AND b.IsActive = 1 AND b.TenantId = '@TENANTID' ORDER BY b.Name` |
| Form varsayılanı | `FormFieldsDefaultValueJson`'da `CustomValueType: 3` (`DbQuery`): kullanıcının departmanının şubesi, kullanıcının şubeleri arasındaysa (örnek: `App.Prc.PurchaseOrder`, `App.Prj.Project`) |
| Alan | Şube (`App.Listform.ListformField.BranchId`, var olan anahtar), `dxSelectBox`, zorunlu; lookup **standarttır ve her ekranda aynıdır** — kullanıcıya atanmış aktif şubeler: `SELECT b."Id" AS "Key", b."Name" AS "Name" FROM "Sas_T_Branch" b INNER JOIN "Sas_T_BranchUsers" bu ON bu."BranchId" = b."Id" AND bu."UserId" = '@USERID' WHERE b."IsDeleted" = 'false' AND b."IsActive" = 'true' AND b."TenantId" = '@TENANTID' ORDER BY b."Name"` (C# seeder'da `LookupQueryValues.UserBranchValues`). Şube seçilince depo/konum da gelecekse aynı sorguya `bu."DefaultWarehouseId", bu."DefaultLocationId"` kolonları eklenir, sorgu başka türlü değiştirilmez |
| Form varsayılanı | `FormFieldsDefaultValueJson`'da `CustomValueType: 3` (`DbQuery`): **lookup'ın ilk seçeneği** — aynı join, `SELECT b."Id" … ORDER BY b."Name"` (ilk satır; C# seeder'da `LookupQueryValues.UserDefaultBranchValue`). Departman şubesi, sabit şube ya da başka bir sorgu yazılmaz; depo/konum varsayılanı da aynı join'den `bu."DefaultWarehouseId"` / `bu."DefaultLocationId"` ile okunur. Form ekleme kapalı ekranda (`AllowAdding: false`, salt okunur şube) varsayılan yazılmaz (örnek: `App.Prc.PurchaseOrder`, `App.Prj.Project`) |
| View / rapor | Tablodan okuyan view `BranchId`'yi taşır (PG `CREATE OR REPLACE VIEW` kolon ekleyemediği için listenin **sonuna**); ekran `IsBranch: true`, Şube kolonu salt okunur lookup (`Sas_T_Branch`) |
| Ana kayda bağlı tablo (satır, alt form, kendi menüsü olan iş paketi/günce gibi) | Aynı kolonu taşır; form **cascade** ile kurulur: Şube alanı ana kayıttan önce gelir (kullanıcının şubeleri lookup'ı + departman şubesi `DbQuery` varsayılanı, `CascadeEmptyFields` = ana kayıt alanı), ana kayıt lookup'ı şubeye göre süzülür (`CascadeParentFields: BranchId`, sorguda `(p.BranchId = @param0 OR @param0 IS NULL)`); ana ekranın `SubFormsDto` ilişkisine `BranchId → BranchId` satırı eklenir (sekmeden açılan yeni kayıt şubeyi oradan alır). Ekran yine `IsBranch: true`; ana kaydın şubesini `DefaultFilter` alt sorgusuyla süzme (örnek: `App.Prj.WorkPackage`, `App.Prj.Diary`) |
| Ana kayda bağlı tablo (satır, alt form, kendi menüsü olan iş paketi/günce gibi) | Aynı kolonu taşır; form **cascade** ile kurulur: Şube alanı ana kayıttan önce gelir (standart şube lookup'ı + ilk şube `DbQuery` varsayılanı, `CascadeEmptyFields` = ana kayıt alanı), ana kayıt lookup'ı şubeye göre süzülür (`CascadeParentFields: BranchId`, sorguda `(p.BranchId = @param0 OR @param0 IS NULL)`); ana ekranın `SubFormsDto` ilişkisine `BranchId → BranchId` satırı eklenir (sekmeden açılan yeni kayıt şubeyi oradan alır). Ekran yine `IsBranch: true`; ana kaydın şubesini `DefaultFilter` alt sorgusuyla süzme (örnek: `App.Prj.WorkPackage`, `App.Prj.Diary`) |
| Widget | Widget SQL'i `IsBranch` filtresinden geçmez; şube kırılımı gerekiyorsa sorguya yazılır |
Kullanıcı "şube yok" derse kolon ve `IsBranch` çıkarılır. Var olan işlem tablosuna kolon eklemek
şema değişikliğidir; istekle yapılır (yama betiği yazılmaz, kolon `CREATE` içine konur).
**Şube alanı sözleşmesi `IsBranch`'e bağlı değildir.** `BranchId` kolonu taşıyan her ekran — tanım
ekranları (depo, konum, departman, pozisyon, ilan) ve `IsBranch` olmayan listeler dahil — Alan ve Form
varsayılanı satırlarındaki aynı lookup'ı ve aynı varsayılanı kullanır; ekrana özel şube sorgusu
yazılmaz. Kullanıcı hiçbir şubeye atanmamışsa seçenek ve varsayılan boş kalır; çözüm ekranda değil
Kullanıcılar › Yetkiler › Şube Yönetimi'ndedir.
### 8.2 View tasarımcısı (`SqlViewDesignerDialog`) — çalışma mantığı
Bir ekran birden fazla tablodan besleniyorsa, `SelectCommandType: 4` (Query) yerine **tasarlanmış

View file

@ -980,7 +980,8 @@ Yetki grubu `App.Hr`; ListForm kodu = menü kodu = yetki adı = dil anahtarı. T
`Hr_T_SkillType` / `Hr_T_SkillLevel` / `Hr_T_Skill` / `Hr_T_Department` / `Hr_T_JobPosition`
(hepsi kiracı, `IMultiTenant`, `Guid` anahtar); ekranlar `ListFormSeeder_Hr.cs`'tedir, entity'ler
`Entities/Tenant/Hr/Definitions`. Departman ve pozisyon **şube bazlıdır**: `BranchId` zorunlu kolondur
(`Guid`, `NOT NULL`), listenin ilk sütunu Şube Adı'dır (`LookupQueryValues.TenantBranchValues`);
(`Guid`, `NOT NULL`), listenin ilk sütunu Şube Adı'dır (kullanıcının şubeleri `LookupQueryValues.UserBranchValues`,
yeni kayıt ilk şubeyle açılır `UserDefaultBranchValue`);
departman lookup'ı şubeye göre süzülür (`BranchDepartmentValues`). Host varsayılan şubesi sabit
kimlikle kurulur (`PlatformConsts.Branches.BranchIdDefaultValue`) ve
`data/App.Hr.{Department,JobPosition}.json` satırları bu kimliğe bağlıdır. Numaratör

View file

@ -270,16 +270,29 @@ public static class LookupQueryValues
$"AND {TenantFilter} " +
$"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 =
// Şube alanının standart lookup'ı: kullanıcıya atanmış (Sas_T_BranchUsers) aktif şubeler; her ekranda aynı küme.
public static string UserBranchValues =
$"SELECT " +
$"\"Id\" AS \"Key\", " +
$"\"Name\" AS \"Name\" " +
$"FROM \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.Branch))}\" " +
$"WHERE " +
$"{TenantFilter} " +
$"AND \"IsDeleted\" = 'false' " +
$"ORDER BY \"Name\";";
$"b.\"Id\" AS \"Key\", " +
$"b.\"Name\" AS \"Name\" " +
$"FROM \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.Branch))}\" b " +
$"INNER JOIN \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.BranchUsers))}\" bu " +
$"ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '{DefaultValues.UserId}' " +
$"WHERE b.\"IsDeleted\" = 'false' " +
$"AND b.\"IsActive\" = 'true' " +
$"AND b.\"TenantId\" = '{DefaultValues.TenantId}' " +
$"ORDER BY b.\"Name\";";
// Şube alanının standart form varsayılanı (DbQuery, ilk satır): lookup'ın ilk seçeneği.
public static string UserDefaultBranchValue =
$"SELECT b.\"Id\" " +
$"FROM \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.Branch))}\" b " +
$"INNER JOIN \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.BranchUsers))}\" bu " +
$"ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '{DefaultValues.UserId}' " +
$"WHERE b.\"IsDeleted\" = 'false' " +
$"AND b.\"IsActive\" = 'true' " +
$"AND b.\"TenantId\" = '{DefaultValues.TenantId}' " +
$"ORDER BY b.\"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.

View file

@ -12,12 +12,22 @@ public class OrgChartUserDto
public string PhoneNumber { get; set; }
}
public enum OrgChartNodeType
{
Branch,
Department,
JobPosition
}
public class OrgChartNodeDto
{
public Guid Id { get; set; }
public string Name { get; set; }
public Guid? ParentId { get; set; }
// Şube düğümü ağacın köküdür; departman ve pozisyon ağaçları şubelerinin altında açılır.
public OrgChartNodeType NodeType { get; set; }
// Only for JobPosition nodes
public Guid? DepartmentId { get; set; }
public string DepartmentName { get; set; }

View file

@ -15,15 +15,18 @@ namespace Sozsoft.Platform.OrgChart;
[Route("api/app/org-chart")]
public class OrgChartAppService : PlatformAppService
{
private readonly IRepository<Branch, Guid> _branchRepository;
private readonly IRepository<Department, Guid> _departmentRepository;
private readonly IRepository<JobPosition, Guid> _jobPositionRepository;
private readonly IIdentityUserRepository _userRepository;
public OrgChartAppService(
IRepository<Branch, Guid> branchRepository,
IRepository<Department, Guid> departmentRepository,
IRepository<JobPosition, Guid> jobPositionRepository,
IIdentityUserRepository userRepository)
{
_branchRepository = branchRepository;
_departmentRepository = departmentRepository;
_jobPositionRepository = jobPositionRepository;
_userRepository = userRepository;
@ -74,7 +77,8 @@ public class OrgChartAppService : PlatformAppService
{
Id = d.Id,
Name = d.Name,
ParentId = d.ParentId,
NodeType = OrgChartNodeType.Department,
ParentId = ResolveParent(d.ParentId, d.BranchId, departments.Select(x => x.Id)),
JobPositionId = topPosition?.Id,
JobPositionName = topPosition?.Name,
Users = topPosition != null && usersByJobPosition.TryGetValue(topPosition.Id, out var positionUsers)
@ -83,7 +87,7 @@ public class OrgChartAppService : PlatformAppService
};
}).ToList();
return nodes;
return await WithBranchRootsAsync(nodes);
}
[HttpGet("job-positions")]
@ -100,7 +104,8 @@ public class OrgChartAppService : PlatformAppService
{
Id = jp.Id,
Name = jp.Name,
ParentId = jp.ParentId,
NodeType = OrgChartNodeType.JobPosition,
ParentId = ResolveParent(jp.ParentId, jp.BranchId, jobPositions.Select(x => x.Id)),
DepartmentId = jp.DepartmentId,
DepartmentName = deptDict.TryGetValue(jp.DepartmentId, out var name) ? name : null,
JobPositionId = jp.Id,
@ -110,9 +115,35 @@ public class OrgChartAppService : PlatformAppService
: [],
}).ToList();
return await WithBranchRootsAsync(nodes);
}
// Üstü olmayan (ya da üstü silinmiş) kayıt şubesinin altına bağlanır; şube ağacın köküdür.
private static Guid? ResolveParent(Guid? parentId, Guid branchId, IEnumerable<Guid> knownIds)
=> parentId.HasValue && knownIds.Contains(parentId.Value) ? parentId : branchId;
// Yalnızca altında kayıt bulunan şubeler düğüm olur; Branch IMultiTenant değildir, kiracı süzgeci elle yazılır.
private async Task<List<OrgChartNodeDto>> WithBranchRootsAsync(List<OrgChartNodeDto> nodes)
{
var nodeIds = nodes.Select(n => n.Id).ToHashSet();
var branchIds = nodes
.Where(n => n.ParentId.HasValue && !nodeIds.Contains(n.ParentId.Value))
.Select(n => n.ParentId!.Value)
.ToHashSet();
if (branchIds.Count == 0)
{
return nodes;
}
var tenantId = CurrentTenant.Id;
var branches = await _branchRepository.GetListAsync(b => b.TenantId == tenantId && branchIds.Contains(b.Id));
var branchNodes = branches
.OrderBy(b => b.Name)
.Select(b => new OrgChartNodeDto { Id = b.Id, Name = b.Name, NodeType = OrgChartNodeType.Branch });
return branchNodes.Concat(nodes).ToList();
}
private static Dictionary<Guid, List<OrgChartUserDto>> GroupUsersByJobPosition(
IEnumerable<IdentityUser> users)
{

View file

@ -476,6 +476,10 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
new() {
Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" },
}),
FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[]
{
new() { FieldName = "BranchId", FieldDbType = DbType.Guid, SqlQuery = LookupQueryValues.UserDefaultBranchValue, CustomValueType = FieldCustomValueTypeEnum.DbQuery }
}),
});
#region Department Fields
@ -567,7 +571,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
DataSourceType = UiLookupDataSourceTypeEnum.Query,
DisplayExpr = "Name",
ValueExpr = "Key",
LookupQuery = LookupQueryValues.TenantBranchValues,
LookupQuery = LookupQueryValues.UserBranchValues,
CascadeEmptyFields = "ParentId"
}),
ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -630,6 +634,10 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
new() {
Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" },
}),
FormFieldsDefaultValueJson = JsonSerializer.Serialize(new FieldsDefaultValue[]
{
new() { FieldName = "BranchId", FieldDbType = DbType.Guid, SqlQuery = LookupQueryValues.UserDefaultBranchValue, CustomValueType = FieldCustomValueTypeEnum.DbQuery }
}),
});
#region JobPosition Fields
@ -721,7 +729,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
DataSourceType = UiLookupDataSourceTypeEnum.Query,
DisplayExpr = "Name",
ValueExpr = "Key",
LookupQuery = LookupQueryValues.TenantBranchValues,
LookupQuery = LookupQueryValues.UserBranchValues,
CascadeEmptyFields = "DepartmentId,ParentId"
}),
ValidationRuleJson = DefaultValidationRuleRequiredJson,

View file

@ -124,8 +124,11 @@ Bir çelişki varsa sıra: `ai.instructions.md` → `dotnet.instructions.md` →
`CreationTime`, `CreatorId`, `LastModificationTime`, `LastModifierId`, `IsDeleted`,
`DeletionTime`, `DeleterId`). Kullanıcı açıkça "tenant yok / audit yok" demedikçe çıkarma.
Tanım **olmayan** (işlem/belge) yeni tablo `TenantId` gibi `BranchId uniqueidentifier NOT NULL`
(PG `uuid NOT NULL`) da taşır; ekranı `IsBranch: true`, Şube alanı kullanıcının şubelerinden
(`Sas_T_BranchUsers`) seçilir ve yeni kayıtta kullanıcının departman şubesiyle (`DbQuery`) açılır.
(PG `uuid NOT NULL`) da taşır; ekranı `IsBranch: true`. **Şube alanı her ekranda aynı sözleşmeyle
gelir** (`BranchId` kolonu taşıyan tanım ekranları dahil): seçenekler kullanıcıya atanmış aktif
şubelerdir (`Sas_T_BranchUsers`, Kullanıcılar › Yetkiler › Şube Yönetimi; `LookupQueryValues.UserBranchValues`),
yeni kayıt bu listenin **ilk seçeneğiyle** açılır (`DbQuery`, `LookupQueryValues.UserDefaultBranchValue`
ile aynı metin). Departman şubesi, sabit şube ya da ekrana özel sorgu yazılmaz.
Bu tablodan okuyan view/rapor ekranı da `BranchId`'yi taşır ve `IsBranch: true` olur. Ana kayda
bağlı tablo da kolonu taşır; formda önce Şube seçilir, ana kayıt lookup'ı şubeye göre süzülür
(`CascadeParentFields: BranchId`) + alt form ilişkisi `BranchId → BranchId`. Ayrıntı:

View file

@ -184,6 +184,7 @@ Kapsam: kiracı. Departman ve pozisyon **şube bazlıdır** (`BranchId` zorunlu)
| Departman | Ağaç (`ParentId`), şubeye bağlı; varsayılan görünüm **Tree**; aynı şubede ad tekil |
| Pozisyon | Ağaç (`ParentId` = üst pozisyon), departmana ve şubeye bağlı; varsayılan görünüm **Tree**; aynı departmanda ad tekil |
| Yönetici ilişkisi | Departmanda yönetici alanı **yoktur**; hiyerarşi pozisyon ağacından okunur |
| Şemada şube | Şema **şube kökünden** başlar (2026-10-14): her iki modda üstü olmayan departman/pozisyon kendi şubesinin (`BranchId`) düğümüne bağlanır; yalnızca altında kayıt olan şubeler düğüm olur (`OrgChartAppService.WithBranchRootsAsync`, `OrgChartNodeDto.NodeType`). Şube kartı kullanıcı listesi taşımaz |
| Host şubesi | Host varsayılan şubesi sabit kimlikle kurulur (`PlatformConsts.Branches.BranchIdDefaultValue = 1c125bf3-…`); seed departman/pozisyon satırları buna bağlıdır, kiracı şubeleri yeni GUID alır |
| Admin varsayılanı | Admin kullanıcı departman **Yönetim**, pozisyon **Genel Müdür** ile kurulur |
| Yetkinlik sözlüğü | Yetenek Tipi ekranının iki alt formu: Seviyeler (ad + `Progress` 0–100 kaydırıcı + varsayılan) ve Yetenekler |
@ -204,7 +205,7 @@ Kapsam: kiracı. Departman ve pozisyon **şube bazlıdır** (`BranchId` zorunlu)
Bu ekranlarda widget yoktur ve veri seed dosyasına aynalanmaz (`SeedSync*` kapalı).
**Organizasyon Şeması** (`ui/src/views/admin/hr/OrgChart.tsx`):
- **Mod:** Departman ya da Pozisyon.
- **Mod:** Departman ya da Pozisyon. İki modda da kök düğüm **şube**dir (`NodeType = Branch`, fabrika simgesi); departman/pozisyon ağacı şubesinin altında açılır.
- **Kullanıcıları göster:** Açık/kapalı seçilebilir.
- **Yakınlaştırma:** %30–300 arası, Ctrl + tekerlek ile de.
- **Dışa aktarma:** JPG olarak.
@ -1052,7 +1053,7 @@ Hr_V_LeaveBalanceYear (defter) ──▶ Hr_V_LeaveSummary (çalışan başına
| Nesne | Önemli kolonlar | Kural |
| --- | --- | --- |
| `Hr_T_LeaveRequest` | `RequestNo`, `EmployeeId`/`EmployeeName`/`DepartmentId`/`JobPositionId`, `LeaveTypeId`, `StartDate`/`EndDate` (tarih+saat), `IsHalfDay`, `HalfDayPart` (Morning/Afternoon), `Days` (0,5 adımlı), `Description`, `DocumentFileName`/`DocumentContent`, `BalanceWarning`, `SickLeaveId`, `ManagerIds`/`ManagerUserNames`, `RequiresManagerApproval` (int, 1/0), `ApprovalStatus`/`ApprovalUser`/`ApprovalDate`/`ApprovalDescription`, `LastNotifiedStatus`, `IsActive` | `EndDate ≥ StartDate`; kiracı + tam audit |
| `Hr_T_LeaveRequest` | `BranchId` (şube, zorunlu — standart şube sözleşmesi, ekran `IsBranch`; `Hr_S_LeaveSickLeaveSync` raporu izne çevirirken çalışanın departman şubesini, yoksa çalışana / işlemi yapana atanmış ilk şubeyi yazar), `RequestNo`, `EmployeeId`/`EmployeeName`/`DepartmentId`/`JobPositionId`, `LeaveTypeId`, `StartDate`/`EndDate` (tarih+saat), `IsHalfDay`, `HalfDayPart` (Morning/Afternoon), `Days` (0,5 adımlı), `Description`, `DocumentFileName`/`DocumentContent`, `BalanceWarning`, `SickLeaveId`, `ManagerIds`/`ManagerUserNames`, `RequiresManagerApproval` (int, 1/0), `ApprovalStatus`/`ApprovalUser`/`ApprovalDate`/`ApprovalDescription`, `LastNotifiedStatus`, `IsActive` | `EndDate ≥ StartDate`; kiracı + tam audit |
| `Hr_T_LeaveBalanceAdjustment` | `EmployeeId`, `AdjustmentDate`, `Days` (≠ 0, ±), `Reason`, `IsActive` | — |
| `Hr_T_LeaveType` (+ kolon) | `BalanceExceedAction` (`Block`/`Warn`, varsayılan `Block`) | Kayıpsız `ALTER ADD` |
| `Hr_V_LeaveBalanceYear` | `Id` (`{EmployeeId}-{YearNo}`), `YearNo`, `AccrualDate`, `PeriodEndDate`, `EntitledDays`, `UsedDays`, `PendingDays`, `RemainingDays`, `CumulativeRemainingDays`, `NextAccrualDate`, `NextAccrualDays` | Görünüm |
@ -2082,7 +2083,7 @@ Hr_T_PerformancePeriod ──< Hr_T_PerformancePeriodSkill >── Hr_T_Skill
| `Hr_T_PerformanceRating` | `Level`, `Name`, `MinScore`, `MaxScore`, `Color`, `TargetDistribution` | `(TenantId, Level)` tekil; `MinScore < MaxScore` |
| `Hr_T_PerformancePeriod` | `StartDate`, `EndDate`, `SelfReviewDueDate`, `ManagerReviewDueDate`, `GoalWeight`, `CompetencyWeight`, `Is360Enabled`, `Status` | Ağırlık toplamı = 100 (CHECK); `Status` ∈ Planned, Active, Calibration, Closed |
| `Hr_T_PerformancePeriodSkill` | `PeriodId`, `SkillId`, `ExpectedLevelId` | `(PeriodId, SkillId)` tekil |
| `Hr_T_PerformanceReview` | `PeriodId`, `EmployeeId`, `EmployeeName`, `ManagerId`, `DepartmentId`, `JobPositionId`, `Status`, `LastStatus`, `GoalScore`, `CompetencyScore`, `Feedback360Score`, `OverallScore`, `CalibratedScore`, `RatingId`, yorumlar, gönderim tarihleri | `(PeriodId, EmployeeId)` tekil; `Status` ∈ GoalSetting, SelfReview, ManagerReview, Calibration, Completed; `CalibratedScore` 0–150 |
| `Hr_T_PerformanceReview` | `BranchId` (şube, zorunlu — standart şube sözleşmesi, ekran `IsBranch`; `Hr_S_PerformancePeriodActivate` dönemi açarken çalışanın departman şubesini, yoksa çalışana / işlemi yapana atanmış ilk şubeyi yazar), `PeriodId`, `EmployeeId`, `EmployeeName`, `ManagerId`, `DepartmentId`, `JobPositionId`, `Status`, `LastStatus`, `GoalScore`, `CompetencyScore`, `Feedback360Score`, `OverallScore`, `CalibratedScore`, `RatingId`, yorumlar, gönderim tarihleri | `(PeriodId, EmployeeId)` tekil; `Status` ∈ GoalSetting, SelfReview, ManagerReview, Calibration, Completed; `CalibratedScore` 0–150 |
| `Hr_T_PerformanceGoal` | `GoalType` (KPI/OKR), `Title`, `Direction` (Increasing/Decreasing), `Unit`, `TargetValue`, `ActualValue`, `Weight`, `AchievementRate` | `TargetValue > 0`, `0 < Weight ≤ 100` |
| `Hr_T_PerformanceCompetency` | `SkillId`, `ExpectedLevelId`, `SelfLevelId`, `ManagerLevelId`, `Score` | `(ReviewId, SkillId)` tekil |
| `Hr_T_PerformanceFeedback` | `ReviewerId`, `Relation` (Peer/Subordinate/Superior/InternalCustomer), `Status` (Pending/Submitted), `Score`, `Comment`, `SubmittedDate` | `(ReviewId, ReviewerId)` tekil |
@ -2387,7 +2388,7 @@ AbpUsers ──< Hr_T_DisciplinaryCase ──< Hr_T_DisciplinaryDefense
| Tablo | Önemli kolonlar |
| --- | --- |
| `Hr_T_DisciplinaryPenaltyType` | `Name`, `Severity`, `Description`, `IsActive` |
| `Hr_T_DisciplinaryCase` | `CaseNo`, `UserId`, `DepartmentId`, `JobPositionId`, `IncidentDate`, `IncidentTime`, `IncidentPlace`, `ReportedById`, `Status`, `Subject`, `IncidentDescription` (HTML tutanak), `WitnessUserIds` |
| `Hr_T_DisciplinaryCase` | `BranchId` (şube, zorunlu — standart şube sözleşmesi, ekran `IsBranch`), `CaseNo`, `UserId`, `DepartmentId`, `JobPositionId`, `IncidentDate`, `IncidentTime`, `IncidentPlace`, `ReportedById`, `Status`, `Subject`, `IncidentDescription` (HTML tutanak), `WitnessUserIds` |
| `Hr_T_DisciplinaryDefense` | `CaseId`, `RequestDate`, `DueDate`, `ResponseDate`, `Status` (Requested/Submitted/NotSubmitted), `DefenseText` (HTML) |
| `Hr_T_DisciplinaryDecision` | `CaseId`, `DecisionDate`, `PenaltyTypeId`, `EffectiveDate`, `NotificationDate`, `DeductionAmount`, `Status` (Draft/Final), `DecisionText` (HTML) |
| `Hr_T_DisciplinaryFile` | `CaseId`, `DocumentTypeId`, `FileDate`, `FileName`, `FileContent` |
@ -3367,7 +3368,7 @@ Kontrol edilmeli (koddan tespit edilenler):
| Kapsam | Kiracı |
| Widget'lar | `App.Widget.Total`, `App.Widget.Pending`, `App.Hr.StaffRequest.Widget.Approved`, `App.Hr.StaffRequest.Widget.Headcount` |
| Komutlar | InsertAfter: SQL |
| Form varsayılanları | IsActive=true, RequestDate=@DATE, RequestedById=@USERID, Headcount=1, EmploymentType=FullTime, Reason=NewPosition, CurrencyId=TRY |
| Form varsayılanları | IsActive=true, RequestDate=@DATE, RequestedById=@USERID, Headcount=1, EmploymentType=FullTime, Reason=NewPosition, CurrencyId=TRY, BranchId= |
| Onay akışı | Start 'Onaya Gönderildi' → Approval 'Onay Bekliyor' → Inform 'Onay Bilgisi' → Inform 'Ret Bilgisi' → End 'Onaylandı' → End 'Reddedildi' |
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
@ -3410,7 +3411,7 @@ Kontrol edilmeli (koddan tespit edilenler):
| Alt formlar | `App.Hr.JobApplication` (Id → JobPostingId) |
| Widget'lar | `App.Widget.Total`, `App.Widget.Published`, `App.Widget.Draft`, `App.Hr.JobPosting.Widget.Closed` |
| Komutlar | InsertAfter: SQL · UpdateAfter: SQL |
| Form varsayılanları | IsActive=true, Status=Draft, Headcount=1, EmploymentType=FullTime, WorkModel=Office, PublishDate=@DATE |
| Form varsayılanları | IsActive=true, Status=Draft, Headcount=1, EmploymentType=FullTime, WorkModel=Office, PublishDate=@DATE, BranchId= |
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
@ -3589,7 +3590,7 @@ Kontrol edilmeli (koddan tespit edilenler):
| Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
| Kapsam | Kiracı |
| Komutlar | InsertAfter: SQL · UpdateAfter: SQL |
| Form varsayılanları | IsActive=true, OfferDate=@DATE, Status=Draft, CurrencyId=TRY, EmploymentType=FullTime, WorkModel=Office |
| Form varsayılanları | IsActive=true, OfferDate=@DATE, Status=Draft, CurrencyId=TRY, EmploymentType=FullTime, WorkModel=Office, BranchId= |
| Butonlar | `App.Hr.JobOffer.OfferLetter` |
| Onay akışı | Start 'Onaya Gönderildi' → Approval 'Onay Bekliyor' → Inform 'Onay Bilgisi' → Inform 'Ret Bilgisi' → End 'Onaylandı' → End 'Reddedildi' |
@ -3767,12 +3768,13 @@ Kontrol edilmeli (koddan tespit edilenler):
| Kapsam | Kiracı |
| Widget'lar | `App.Hr.Leave.Widget.ManagerApproval`, `App.Hr.Leave.Widget.HrApproval`, `App.Hr.Leave.Widget.Approved`, `App.Hr.Leave.Widget.Rejected` |
| Komutlar | InsertAfter: `Hr_S_LeaveRequestAfterSave` · UpdateBefore: `Hr_S_LeaveRequestGuard` · UpdateAfter: `Hr_S_LeaveRequestAfterSave` · DeleteBefore: `Hr_S_LeaveRequestGuard` · DeleteAfter: `Hr_S_LeaveRequestAfterSave` |
| Form varsayılanları | IsHalfDay=false, StartDate=@DATE, EndDate=@DATE |
| Form varsayılanları | IsHalfDay=false, StartDate=@DATE, EndDate=@DATE, BranchId= |
| Onay akışı | Start 'Onaya Gönderildi' → Compare 'Müdür Onayı Gerekli mi?' → Approval 'Müdür Onayı' → Approval 'İK Onayı' → End 'Onaylandı' → End 'Reddedildi' |
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
| `RequestNo` | Talep No | dxTextBox | | ✓ | |
| `BranchId` | Tesis Adı | dxSelectBox | ✓ | ✓ | sorgu: Sas_T_Branch |
| `EmployeeId` | Çalışan | dxSelectBox | ✓ | ✓ | sorgu: AbpUsers · script |
| `DepartmentId` | Departman | dxSelectBox | | ✓ | sorgu: Hr_T_Department |
| `JobPositionId` | İş Pozisyonu | dxSelectBox | | ✓ | sorgu: Hr_T_JobPosition |
@ -4475,6 +4477,7 @@ Kontrol edilmeli (koddan tespit edilenler):
| Alt formlar | `App.Hr.TrainingParticipant` (Id → TrainingId), `App.Hr.TrainingFile` (Id → TrainingId) |
| Widget'lar | `App.Widget.Total`, `App.Hr.Training.Widget.Open`, `App.Hr.Training.Widget.Closed`, `App.Hr.Training.Widget.Cost` |
| Komutlar | UpdateAfter: `Hr_S_TrainingSync` · DeleteAfter: `Hr_S_TrainingSync` |
| Form varsayılanları | BranchId= |
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
@ -4651,16 +4654,17 @@ Kontrol edilmeli (koddan tespit edilenler):
| Widget'lar | `App.Widget.Total`, `App.Hr.Performance.Widget.InGoalOrSelf`, `App.Hr.Performance.Widget.ManagerReview`, `App.Hr.Performance.Widget.Calibration`, `App.Hr.Performance.Widget.Completed` |
| Todo | başlık `EmployeeName`, durum `Status` (GoalSetting,SelfReview,ManagerReview,Calibration,Completed) |
| Komutlar | InsertAfter: `Hr_S_PerformanceReviewAfterSave` · UpdateAfter: `Hr_S_PerformanceReviewAfterSave` |
| Form varsayılanları | Status=GoalSetting, IsActive=true |
| Form varsayılanları | Status=GoalSetting, IsActive=true, BranchId= |
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
| `PeriodId` | Dönem | dxSelectBox | ✓ | ✓ | sorgu: Hr_T_PerformancePeriod |
| `BranchId` | Tesis Adı | dxSelectBox | ✓ | ✓ | sorgu: Sas_T_Branch |
| `EmployeeId` | Çalışan | dxSelectBox | ✓ | ✓ | sorgu: AbpUsers · script |
| `EmployeeName` | Çalışan Adı | dxTextBox | | | |
| `ManagerId` | Yönetici | dxSelectBox | | ✓ | sorgu: AbpUsers |
| `DepartmentId` | Departman | dxSelectBox | | ✓ | sorgu: Hr_T_Department |
| `JobPositionId` | Pozisyon | dxSelectBox | | ✓ | sorgu: Hr_T_JobPosition |
| `PeriodId` | Dönem | dxSelectBox | ✓ | ✓ | sorgu: Hr_T_PerformancePeriod |
| `ManagerId` | Yönetici | dxSelectBox | | ✓ | sorgu: AbpUsers |
| `Status` | Durum | dxSelectBox | ✓ | ✓ | liste: GoalSetting, SelfReview, ManagerReview, Calibration, Completed |
| `IsActive` | Aktif | dxCheckBox | | ✓ | |
| `GoalScore` | Hedef Puanı | dxNumberBox | | ✓ | |
@ -5285,11 +5289,12 @@ Kontrol edilmeli (koddan tespit edilenler):
| Widget'lar | `App.Widget.Total`, `App.Hr.DisciplinaryCase.Widget.Open`, `App.Hr.DisciplinaryCase.Widget.AwaitingDefense`, `App.Hr.DisciplinaryCase.Widget.Closed` |
| Todo | başlık `Subject`, durum `Status` (Open,AwaitingDefense,Decided,Closed) |
| Komutlar | InsertAfter: SQL |
| Form varsayılanları | IncidentDate=@DATE, ReportedById=@USERID, Status=Open |
| Form varsayılanları | IncidentDate=@DATE, ReportedById=@USERID, Status=Open, BranchId= |
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
| `CaseNo` | Dosya No | dxTextBox | | | |
| `BranchId` | Tesis Adı | dxSelectBox | ✓ | ✓ | sorgu: Sas_T_Branch |
| `UserId` | Personel | dxSelectBox | ✓ | ✓ | sorgu: AbpUsers · script |
| `DepartmentId` | Departman | dxSelectBox | | ✓ | sorgu: Hr_T_Department |
| `JobPositionId` | Pozisyon | dxSelectBox | | ✓ | sorgu: Hr_T_JobPosition |
@ -5488,7 +5493,7 @@ Kontrol edilmeli (koddan tespit edilenler):
| Kapsam | Kiracı |
| Alt formlar | `App.Hr.VehicleFile` (Id → VehicleId) |
| Widget'lar | `App.Widget.Total`, `App.Hr.Vehicle.Widget.Arrived`, `App.Hr.Vehicle.Widget.Left`, `App.Widget.Passive` |
| Form varsayılanları | IsActive=true |
| Form varsayılanları | IsActive=true, BranchId= |
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
@ -5555,7 +5560,7 @@ Kontrol edilmeli (koddan tespit edilenler):
| Kapsam | Kiracı |
| Widget'lar | `App.Widget.Total`, `App.Hr.Vehicle.Widget.Left`, `App.Widget.Today` |
| Komutlar | InsertAfter: SQL · DeleteAfter: SQL |
| Form varsayılanları | EntryKm=0 |
| Form varsayılanları | EntryKm=0, BranchId= |
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
@ -5744,6 +5749,7 @@ Kontrol edilmeli (koddan tespit edilenler):
| Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
| Kapsam | Kiracı |
| Widget'lar | `App.Hr.Visitor.Widget.Today`, `App.Hr.Visitor.Widget.Inside`, `App.Hr.Visitor.Widget.Exited` |
| Form varsayılanları | BranchId= |
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
@ -5775,6 +5781,7 @@ Kontrol edilmeli (koddan tespit edilenler):
| Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
| Kapsam | Kiracı |
| Widget'lar | `App.Widget.Total`, `App.Widget.Today`, `App.Hr.EventLog.Widget.Important` |
| Form varsayılanları | BranchId= |
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |

View file

@ -464,7 +464,7 @@ Wizard'lar `Inventory_Stock.json`, `Inventory_StockMove.json`; nesneler `Inv_T_S
| Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
| Kapsam | Kiracı |
| Widget'lar | `App.Widget.Total`, `App.Widget.Active`, `App.Widget.Passive` |
| Form varsayılanları | IsActive=true |
| Form varsayılanları | IsActive=true, BranchId= |
| Veri aynası | `data/App.Inventory.Warehouse.json` |
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
@ -489,7 +489,7 @@ Wizard'lar `Inventory_Stock.json`, `Inventory_StockMove.json`; nesneler `Inv_T_S
| Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
| Kapsam | Kiracı |
| Widget'lar | `App.Widget.Total`, `App.Widget.Active`, `App.Widget.Passive` |
| Form varsayılanları | LocationType=Internal, IsActive=true |
| Form varsayılanları | LocationType=Internal, IsActive=true, BranchId= |
| Veri aynası | `data/App.Inventory.Location.json` |
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
@ -519,7 +519,7 @@ Wizard'lar `Inventory_Stock.json`, `Inventory_StockMove.json`; nesneler `Inv_T_S
| Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
| Kapsam | Kiracı |
| Widget'lar | `App.Widget.Total`, `App.Widget.Active`, `App.Widget.Passive` |
| Form varsayılanları | OperationKind=Receipt, IsActive=true |
| Form varsayılanları | OperationKind=Receipt, IsActive=true, BranchId= |
| Veri aynası | `data/App.Inventory.OperationType.json` |
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |

View file

@ -315,7 +315,7 @@ Tüm tablolar kiracı + tam audit + soft delete.
### 6. Yetki ve görünürlük
Yetki ağacı: `App.Prc` › `App.Prc.Orders` › teklif ve sipariş listeleri, `App.Prc` › `App.Prc.PurchaseAgreement` (+ Create/Update/Delete/Export/Import/Note). Her alt formun yetkisi kendi listesinin altındadır: teklif sekmeleri `App.Prc.PurchaseRfq`, sipariş sekmeleri `App.Prc.PurchaseOrder` altında; sekmeler ekranlar arasında paylaşılmaz. Teklif kullanıcısına Fiyat Karşılaştırması'nın Update yetkisi de verilmelidir (fiyat ve seçim buradan girilir). Yetkiler hiçbir role otomatik atanmaz. Kiracı kapsamlı; Teklif Talepleri ve Satınalma Siparişleri şube yetkilidir (`IsBranch`, 2026-10-14 kararı): kullanıcı yalnız atandığı şubelerin belgelerini görür, formda yalnız onları seçer ve şube seçilince kullanıcının o şubedeki varsayılan deposu gelir (yeni belge departmanın şubesi ve deposuyla açılır). Bir kullanıcı hiçbir şubeye atanmamışsa bu iki listede satır görmez.
Yetki ağacı: `App.Prc` › `App.Prc.Orders` › teklif ve sipariş listeleri, `App.Prc` › `App.Prc.PurchaseAgreement` (+ Create/Update/Delete/Export/Import/Note). Her alt formun yetkisi kendi listesinin altındadır: teklif sekmeleri `App.Prc.PurchaseRfq`, sipariş sekmeleri `App.Prc.PurchaseOrder` altında; sekmeler ekranlar arasında paylaşılmaz. Teklif kullanıcısına Fiyat Karşılaştırması'nın Update yetkisi de verilmelidir (fiyat ve seçim buradan girilir). Yetkiler hiçbir role otomatik atanmaz. Kiracı kapsamlı; Teklif Talepleri ve Satınalma Siparişleri şube yetkilidir (`IsBranch`, 2026-10-14 kararı): kullanıcı yalnız atandığı şubelerin belgelerini görür, formda yalnız onları seçer ve şube seçilince kullanıcının o şubedeki varsayılan deposu gelir (yeni belge kullanıcının şube listesindeki ilk şube ve o şubedeki deposuyla açılır). Bir kullanıcı hiçbir şubeye atanmamışsa bu iki listede satır görmez.
### 7. Entegrasyonlar

View file

@ -87,7 +87,7 @@ Projelerin hiyerarşik iş planı (1 → 1.01, 1.02 …) ay ölçeğinde Gantt o
### 6. Yetki ve görünürlük
`App.Prj › App.Prj.WorkPackage` (+ C/U/D/E/I/N); alt formlar `… › App.Prj.WorkPackage › App.Prj.WorkPackage{Member|MonthRate|Planned|Actual}`. Şube kırılımı (`IsBranch`): tablo `BranchId` taşır. Formda önce Şube seçilir (kullanıcının şubeleri, varsayılan departman şubesi), Proje listesi seçilen şubeye göre süzülür (`CascadeParentFields: BranchId`, şube değişince proje temizlenir). Proje kartının sekmesinden eklenen kayıt şubeyi alt form ilişkisinden (`BranchId → BranchId`) alır. Liste kullanıcıya atanmış şubelerle (`Sas_T_BranchUsers`) sınırlıdır.
`App.Prj › App.Prj.WorkPackage` (+ C/U/D/E/I/N); alt formlar `… › App.Prj.WorkPackage › App.Prj.WorkPackage{Member|MonthRate|Planned|Actual}`. Şube kırılımı (`IsBranch`): tablo `BranchId` taşır. Formda önce Şube seçilir (kullanıcının şubeleri, varsayılan listenin ilk şubesi), Proje listesi seçilen şubeye göre süzülür (`CascadeParentFields: BranchId`, şube değişince proje temizlenir). Proje kartının sekmesinden eklenen kayıt şubeyi alt form ilişkisinden (`BranchId → BranchId`) alır. Liste kullanıcıya atanmış şubelerle (`Sas_T_BranchUsers`) sınırlıdır.
### 7. Entegrasyonlar
@ -175,7 +175,7 @@ Dakika = (Bitiş − Başlangıç) saat × 60, yuvarlanır, negatif olamaz; form
### 6. Yetki ve görünürlük
`App.Prj › App.Prj.Diary` (+ C/U/D/E/I/N, `.Widget`). Şube kırılımı (`IsBranch`): tablo `BranchId` taşır. Formda önce Şube seçilir (kullanıcının şubeleri, varsayılan departman şubesi), Proje listesi seçilen şubeye göre süzülür (`CascadeParentFields: BranchId`, şube değişince proje temizlenir). Proje kartının sekmesinden eklenen kayıt şubeyi alt form ilişkisinden (`BranchId → BranchId`) alır. Liste kullanıcıya atanmış şubelerle (`Sas_T_BranchUsers`) sınırlıdır. `App.Prj.Diary.Widget` panodaki Günce kutusunu gösterir; modalda kaydetmek ekran yetkisini (`App.Prj.Diary` + `.Create`) ister, yoksa modal yetki uyarısı gösterir.
`App.Prj › App.Prj.Diary` (+ C/U/D/E/I/N, `.Widget`). Şube kırılımı (`IsBranch`): tablo `BranchId` taşır. Formda önce Şube seçilir (kullanıcının şubeleri, varsayılan listenin ilk şubesi), Proje listesi seçilen şubeye göre süzülür (`CascadeParentFields: BranchId`, şube değişince proje temizlenir). Proje kartının sekmesinden eklenen kayıt şubeyi alt form ilişkisinden (`BranchId → BranchId`) alır. Liste kullanıcıya atanmış şubelerle (`Sas_T_BranchUsers`) sınırlıdır. `App.Prj.Diary.Widget` panodaki Günce kutusunu gösterir; modalda kaydetmek ekran yetkisini (`App.Prj.Diary` + `.Create`) ister, yoksa modal yetki uyarısı gösterir.
### 7. Entegrasyonlar
@ -241,7 +241,7 @@ View'lar: `Prj_V_ProjectMember` (takım hesapları) ve `Prj_V_ProjectCostSummary
### 6. Yetki ve görünürlük
`App.Prj › App.Prj.Project` (+ C/U/D/E/I/N). Liste şube kırılımlıdır (`IsBranch`): yalnızca kullanıcıya atanmış şubelerin projeleri görünür; Şube seçimi kullanıcının şubeleriyle sınırlıdır, yeni proje kullanıcının departman şubesiyle açılır (`DbQuery`). Proje menüsündeki diğer listeler (İş Paketleri, Günce, Adam/Ay, Kaynak Listesi, Personel Adam/Ay, Bütçe Raporu) aynı şube kapsamını projeden alır. Menüsüz sekmelerin yetkisi `… › App.Prj.Project › App.Prj.Project{Summary|Support|Needs|Activities|Innovation|Outputs|Member|CostSummary}` altındadır. Metin sekmelerinde silme kapalıdır.
`App.Prj › App.Prj.Project` (+ C/U/D/E/I/N). Liste şube kırılımlıdır (`IsBranch`): yalnızca kullanıcıya atanmış şubelerin projeleri görünür; Şube seçimi kullanıcının şubeleriyle sınırlıdır, yeni proje kullanıcının şube listesindeki ilk şubeyle açılır (`DbQuery`, platform standardı). Proje menüsündeki diğer listeler (İş Paketleri, Günce, Adam/Ay, Kaynak Listesi, Personel Adam/Ay, Bütçe Raporu) aynı şube kapsamını projeden alır. Menüsüz sekmelerin yetkisi `… › App.Prj.Project › App.Prj.Project{Summary|Support|Needs|Activities|Innovation|Outputs|Member|CostSummary}` altındadır. Metin sekmelerinde silme kapalıdır.
### 7. Entegrasyonlar
@ -1021,8 +1021,8 @@ Talep, raporun yalnızca ay bazında gösterilmesini istiyor. Çeyrek bazlı top
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
| `ParentId` | Üst | dxTextBox | | | |
| `ProjectId` | Proje | dxSelectBox | | | sorgu: Prj_T_Project |
| `BranchId` | Şube Adı | dxSelectBox | | | sorgu: Sas_T_Branch |
| `ProjectId` | Proje | dxSelectBox | | | sorgu: Prj_T_Project |
| `Title` | Personel / İş Adı | dxTextBox | | | |
| `StartDate` | Başlangıç | dxDateBox | | | |
| `EndDate` | Bitiş | dxDateBox | | | |
@ -1120,8 +1120,8 @@ Talep, raporun yalnızca ay bazında gösterilmesini istiyor. Çeyrek bazlı top
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- |
| `ProjectId` | Proje | dxSelectBox | | | sorgu: Prj_T_Project |
| `BranchId` | Şube Adı | dxSelectBox | | | sorgu: Sas_T_Branch |
| `ProjectId` | Proje | dxSelectBox | | | sorgu: Prj_T_Project |
| `ParentId` | Üst | dxTextBox | | | |
| `Title` | Gider Kalemi | dxTextBox | | | |
| `ResourceType` | Kaynak Tipi | dxSelectBox | | | liste: Personnel, Travel, Equipment, Consulting, Service, Material, Other |

View file

@ -76,11 +76,13 @@ BEGIN
v_Year := EXTRACT(YEAR FROM (NOW() AT TIME ZONE 'UTC'))::int::text;
-- İstirahat sağlık birimince girilmiş bir belgedir; onay akışına girmeden onaylı yazılır.
-- Şube: çalışanın departman şubesi, yoksa çalışana atanmış ilk şube, yoksa işlemi yapanın ilk şubesi (kolon NOT NULL).
INSERT INTO public."Hr_T_LeaveRequest"
("Id", "TenantId", "RequestNo", "EmployeeId", "EmployeeName", "DepartmentId", "JobPositionId", "LeaveTypeId",
("Id", "TenantId", "BranchId", "RequestNo", "EmployeeId", "EmployeeName", "DepartmentId", "JobPositionId", "LeaveTypeId",
"StartDate", "EndDate", "IsHalfDay", "Days", "Description", "SickLeaveId",
"ApprovalStatus", "ApprovalUser", "ApprovalDate", "LastNotifiedStatus", "IsActive", "CreationTime", "CreatorId", "IsDeleted")
SELECT gen_random_uuid(), v_TenantId,
COALESCE((SELECT d."BranchId" FROM public."Hr_T_Department" d WHERE d."Id" = u."DepartmentId"), (SELECT b."Id" FROM public."Sas_T_Branch" b INNER JOIN public."Sas_T_BranchUsers" bu ON bu."BranchId" = b."Id" AND bu."UserId" = u."Id" WHERE b."IsDeleted" = FALSE AND b."IsActive" = TRUE ORDER BY b."Name" LIMIT 1), (SELECT b."Id" FROM public."Sas_T_Branch" b INNER JOIN public."Sas_T_BranchUsers" bu ON bu."BranchId" = b."Id" AND bu."UserId" = p_ActorId WHERE b."IsDeleted" = FALSE AND b."IsActive" = TRUE ORDER BY b."Name" LIMIT 1)),
'IZN-' || v_Year || '-' || right('00000' || (
SELECT COALESCE(MAX(CASE WHEN right(x."RequestNo", 5) ~ '^[0-9]+$' THEN right(x."RequestNo", 5)::int END), 0) + 1
FROM public."Hr_T_LeaveRequest" x

View file

@ -21,8 +21,9 @@ BEGIN
-- Dönem aktif olduğunda kiracının aktif her kullanıcısına bir değerlendirme açılır; var olana
-- dokunulmaz, böylece dönem yeniden kaydedildiğinde yalnızca yeni katılan çalışanlar eklenir.
WITH created AS (
INSERT INTO "Hr_T_PerformanceReview" ("Id", "TenantId", "PeriodId", "EmployeeId", "EmployeeName", "DepartmentId", "JobPositionId", "Status", "LastStatus", "IsActive", "CreationTime", "CreatorId", "IsDeleted")
SELECT gen_random_uuid(), v_TenantId, p_PeriodId, u."Id", LEFT(LTRIM(COALESCE(u."Name", '') || ' ' || COALESCE(u."Surname", '')), 128), u."DepartmentId", u."JobPositionId", 'GoalSetting', 'GoalSetting', TRUE, NOW() AT TIME ZONE 'UTC', p_ActorId, FALSE
-- Şube: çalışanın departman şubesi, yoksa çalışana atanmış ilk şube, yoksa işlemi yapanın ilk şubesi (kolon NOT NULL).
INSERT INTO "Hr_T_PerformanceReview" ("Id", "TenantId", "BranchId", "PeriodId", "EmployeeId", "EmployeeName", "DepartmentId", "JobPositionId", "Status", "LastStatus", "IsActive", "CreationTime", "CreatorId", "IsDeleted")
SELECT gen_random_uuid(), v_TenantId, COALESCE((SELECT d."BranchId" FROM public."Hr_T_Department" d WHERE d."Id" = u."DepartmentId"), (SELECT b."Id" FROM public."Sas_T_Branch" b INNER JOIN public."Sas_T_BranchUsers" bu ON bu."BranchId" = b."Id" AND bu."UserId" = u."Id" WHERE b."IsDeleted" = FALSE AND b."IsActive" = TRUE ORDER BY b."Name" LIMIT 1), (SELECT b."Id" FROM public."Sas_T_Branch" b INNER JOIN public."Sas_T_BranchUsers" bu ON bu."BranchId" = b."Id" AND bu."UserId" = p_ActorId WHERE b."IsDeleted" = FALSE AND b."IsActive" = TRUE ORDER BY b."Name" LIMIT 1)), p_PeriodId, u."Id", LEFT(LTRIM(COALESCE(u."Name", '') || ' ' || COALESCE(u."Surname", '')), 128), u."DepartmentId", u."JobPositionId", 'GoalSetting', 'GoalSetting', TRUE, NOW() AT TIME ZONE 'UTC', p_ActorId, FALSE
FROM "AbpUsers" u
WHERE u."IsDeleted" = FALSE AND u."IsActive" = TRUE
AND (u."TenantId" = v_TenantId OR (u."TenantId" IS NULL AND v_TenantId IS NULL))

View file

@ -2,6 +2,7 @@ CREATE TABLE IF NOT EXISTS public."Hr_T_DisciplinaryCase"
(
"Id" uuid NOT NULL DEFAULT gen_random_uuid(),
"TenantId" uuid NULL,
"BranchId" uuid NOT NULL,
"CaseNo" varchar(32) NULL,
"UserId" uuid NOT NULL,
"DepartmentId" uuid NULL,

View file

@ -2,6 +2,7 @@ CREATE TABLE IF NOT EXISTS public."Hr_T_LeaveRequest"
(
"Id" uuid NOT NULL DEFAULT gen_random_uuid(),
"TenantId" uuid NULL,
"BranchId" uuid NOT NULL,
"RequestNo" varchar(32) NULL,
"EmployeeId" uuid NOT NULL,
"EmployeeName" varchar(256) NULL,

View file

@ -2,6 +2,7 @@ CREATE TABLE IF NOT EXISTS public."Hr_T_PerformanceReview"
(
"Id" uuid NOT NULL DEFAULT gen_random_uuid(),
"TenantId" uuid NULL,
"BranchId" uuid NOT NULL,
"PeriodId" uuid NOT NULL,
"EmployeeId" uuid NOT NULL,
"EmployeeName" varchar(128) NULL,

View file

@ -65,11 +65,13 @@ BEGIN
DECLARE @Year nvarchar(4) = CAST(YEAR(GETUTCDATE()) AS nvarchar(4));
-- İstirahat sağlık birimince girilmiş bir belgedir; onay akışına girmeden onaylı yazılır.
-- Şube: çalışanın departman şubesi, yoksa çalışana atanmış ilk şube, yoksa işlemi yapanın ilk şubesi (kolon NOT NULL).
INSERT INTO Hr_T_LeaveRequest
(Id, TenantId, RequestNo, EmployeeId, EmployeeName, DepartmentId, JobPositionId, LeaveTypeId,
(Id, TenantId, BranchId, RequestNo, EmployeeId, EmployeeName, DepartmentId, JobPositionId, LeaveTypeId,
StartDate, EndDate, IsHalfDay, Days, [Description], SickLeaveId,
ApprovalStatus, ApprovalUser, ApprovalDate, LastNotifiedStatus, IsActive, CreationTime, CreatorId, IsDeleted)
SELECT NEWID(), @TenantId,
COALESCE((SELECT d.BranchId FROM Hr_T_Department d WHERE d.Id = u.DepartmentId), (SELECT TOP 1 b.Id FROM Sas_T_Branch b INNER JOIN Sas_T_BranchUsers bu ON bu.BranchId = b.Id AND bu.UserId = u.Id WHERE b.IsDeleted = 0 AND b.IsActive = 1 ORDER BY b.Name), (SELECT TOP 1 b.Id FROM Sas_T_Branch b INNER JOIN Sas_T_BranchUsers bu ON bu.BranchId = b.Id AND bu.UserId = @ActorId WHERE b.IsDeleted = 0 AND b.IsActive = 1 ORDER BY b.Name)),
N'IZN-' + @Year + N'-' + RIGHT(N'00000' + CAST(
(SELECT COALESCE(MAX(TRY_CAST(RIGHT(x.RequestNo, 5) AS int)), 0) + 1
FROM Hr_T_LeaveRequest x

View file

@ -18,9 +18,10 @@ BEGIN
-- Dönem aktif olduğunda kiracının aktif her kullanıcısına bir değerlendirme açılır; var olana
-- dokunulmaz, böylece dönem yeniden kaydedildiğinde yalnızca yeni katılan çalışanlar eklenir.
INSERT INTO Hr_T_PerformanceReview (Id, TenantId, PeriodId, EmployeeId, EmployeeName, DepartmentId, JobPositionId, Status, LastStatus, IsActive, CreationTime, CreatorId, IsDeleted)
-- Şube: çalışanın departman şubesi, yoksa çalışana atanmış ilk şube, yoksa işlemi yapanın ilk şubesi (kolon NOT NULL).
INSERT INTO Hr_T_PerformanceReview (Id, TenantId, BranchId, PeriodId, EmployeeId, EmployeeName, DepartmentId, JobPositionId, Status, LastStatus, IsActive, CreationTime, CreatorId, IsDeleted)
OUTPUT inserted.Id, inserted.EmployeeId INTO @Created
SELECT NEWID(), @TenantId, @PeriodId, u.Id, LEFT(LTRIM(COALESCE(u.Name, N'') + N' ' + COALESCE(u.Surname, N'')), 128), u.DepartmentId, u.JobPositionId, N'GoalSetting', N'GoalSetting', 1, GETUTCDATE(), @ActorId, 0
SELECT NEWID(), @TenantId, COALESCE((SELECT d.BranchId FROM Hr_T_Department d WHERE d.Id = u.DepartmentId), (SELECT TOP 1 b.Id FROM Sas_T_Branch b INNER JOIN Sas_T_BranchUsers bu ON bu.BranchId = b.Id AND bu.UserId = u.Id WHERE b.IsDeleted = 0 AND b.IsActive = 1 ORDER BY b.Name), (SELECT TOP 1 b.Id FROM Sas_T_Branch b INNER JOIN Sas_T_BranchUsers bu ON bu.BranchId = b.Id AND bu.UserId = @ActorId WHERE b.IsDeleted = 0 AND b.IsActive = 1 ORDER BY b.Name)), @PeriodId, u.Id, LEFT(LTRIM(COALESCE(u.Name, N'') + N' ' + COALESCE(u.Surname, N'')), 128), u.DepartmentId, u.JobPositionId, N'GoalSetting', N'GoalSetting', 1, GETUTCDATE(), @ActorId, 0
FROM AbpUsers u
WHERE u.IsDeleted = 0 AND u.IsActive = 1
AND (u.TenantId = @TenantId OR (u.TenantId IS NULL AND @TenantId IS NULL))

View file

@ -4,6 +4,7 @@ BEGIN
(
[Id] uniqueidentifier NOT NULL DEFAULT NEWID(),
[TenantId] uniqueidentifier NULL,
[BranchId] uniqueidentifier NOT NULL,
[CaseNo] nvarchar(32) NULL,
[UserId] uniqueidentifier NOT NULL,
[DepartmentId] uniqueidentifier NULL,

View file

@ -4,6 +4,7 @@ BEGIN
(
[Id] uniqueidentifier NOT NULL DEFAULT NEWID(),
[TenantId] uniqueidentifier NULL,
[BranchId] uniqueidentifier NOT NULL,
[RequestNo] nvarchar(32) NULL,
[EmployeeId] uniqueidentifier NOT NULL,
[EmployeeName] nvarchar(256) NULL,

View file

@ -4,6 +4,7 @@ BEGIN
(
[Id] uniqueidentifier NOT NULL DEFAULT NEWID(),
[TenantId] uniqueidentifier NULL,
[BranchId] uniqueidentifier NOT NULL,
[PeriodId] uniqueidentifier NOT NULL,
[EmployeeId] uniqueidentifier NOT NULL,
[EmployeeName] nvarchar(128) NULL,

View file

@ -79,6 +79,12 @@
"En": "Case No",
"Tr": "Dosya No"
},
{
"FieldName": "BranchId",
"CaptionName": "App.Listform.ListformField.BranchId",
"En": "Branch",
"Tr": "Tesis Adı"
},
{
"FieldName": "UserId",
"CaptionName": "App.Listform.ListformField.Employee",
@ -243,6 +249,13 @@
"Value": "Open",
"CustomValueType": 1,
"SqlQuery": ""
},
{
"FieldName": "BranchId",
"FieldDbType": 9,
"Value": "",
"CustomValueType": 3,
"SqlQuery": "SELECT b.\"Id\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
}
],
"WidgetsDto": [
@ -436,6 +449,7 @@
"AllowAllDeleting": false,
"AllowAdding": true,
"AllowDuplicate": false,
"OpenDetailAfterInsert": false,
"UseIcons": false,
"ConfirmDelete": true,
"NewRowPosition": "viewportTop",
@ -497,7 +511,7 @@
"InsertServiceAddress": "list-form-data/insert",
"DeleteServiceAddress": "list-form-data/delete",
"IsTenant": true,
"IsBranch": false,
"IsBranch": true,
"IsOrganizationUnit": false,
"ListFormType": "List",
"IsSubForm": false,
@ -563,6 +577,7 @@
"ApprovalDescriptionFieldName": null,
"ApprovalIsFilterUserName": false,
"ApprovalIsResetWorkflow": false,
"ApprovalIsManualStart": false,
"Criteria": []
},
"UserId": null,
@ -1076,6 +1091,146 @@
"CreatorId": null,
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"EditType": null,
"ListFormCode": "App.Hr.DisciplinaryCase",
"RoleId": null,
"UserId": null,
"ColumnJoinTableDto": {
"JoinType": null,
"TableName": null,
"JoinFieldName": null,
"BaseTableJoinFieldName": null,
"SelectFieldName": null,
"FieldNameAlias": null,
"JoinCondition2": "AND",
"JoinFieldName2": null,
"BaseTableJoinFieldName2_OrValue": null
},
"FieldName": "BranchId",
"CaptionName": "App.Listform.ListformField.BranchId",
"PlaceHolder": null,
"ReadOnly": false,
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 3,
"SourceDbType": 9,
"CultureName": "en",
"DataType": "string",
"SortIndex": 0,
"SortDirection": null,
"AllowSearch": true,
"AllowEditing": true,
"AllowAdding": true,
"ColumnCssClass": null,
"ColumnCssValue": null,
"BandName": null,
"ColumnFilterDto": {
"AllowFiltering": true,
"FilterOperations": null,
"SelectedFilterOperation": null,
"FilterValue": null
},
"ColumnHeaderDto": {
"AllowHeaderFiltering": true,
"AllowSearch": false,
"DataSource": null,
"DataSourceString": ""
},
"ColumnGroupingDto": {
"AllowGrouping": true,
"GroupIndex": null,
"AutoExpandGroup": false
},
"ColumnCustomizationDto": {
"Fixed": false,
"FixedPosition": "left",
"AllowReordering": true
},
"ColumnTotalSummaryDto": {
"SummaryType": null,
"ValueFormat": null,
"ShowInGroupFooter": false,
"AlignByColumn": false,
"DisplayFormat": null,
"ShowInColumn": null
},
"ColumnGroupSummaryDto": {
"SummaryType": null,
"ValueFormat": null,
"ShowInGroupFooter": false,
"AlignByColumn": false,
"DisplayFormat": null,
"ShowInColumn": null
},
"LookupDto": {
"DataSourceType": 2,
"ValueExpr": "Key",
"DisplayExpr": "Name",
"CascadeRelationField": null,
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": null,
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [
{
"Type": "required",
"Message": null,
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
"Trim": true
}
],
"ColumnStylingDto": [],
"PermissionDto": {
"Deny": false,
"C": "App.Hr.DisciplinaryCase.Create",
"R": "App.Hr.DisciplinaryCase",
"U": "App.Hr.DisciplinaryCase.Update",
"E": true,
"I": true
},
"CanRead": false,
"CanCreate": false,
"CanUpdate": false,
"CanExport": false,
"DefaultValue": null,
"DefaultValueType": 0,
"PivotSettingsDto": {
"IsPivot": true,
"Expanded": false,
"SortOrder": "asc",
"Area": "filter",
"Format": null,
"SummaryType": null,
"GroupInterval": "",
"WordWrapEnabled": false
},
"Alignment": "left",
"Format": null,
"EditOrderNo": 1,
"EditGroupOrderNo": 1,
"EditorType2": "dxSelectBox",
"ColSpan": 1,
"EditorOptions": "{\"searchEnabled\":true,\"showClearButton\":true}",
"GridBoxOptions": null,
"TagBoxOptions": null,
"ImageUploadOptions": null,
"EditorScript": null,
"LastModificationTime": null,
"LastModifierId": null,
"CreationTime": "0001-01-01T00:00:00",
"CreatorId": null,
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"EditType": null,
"ListFormCode": "App.Hr.DisciplinaryCase",
@ -1099,7 +1254,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 3,
"ListOrderNo": 4,
"SourceDbType": 9,
"CultureName": "en",
"DataType": "string",
@ -1166,6 +1321,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -1199,7 +1356,7 @@
},
"Alignment": "left",
"Format": null,
"EditOrderNo": 1,
"EditOrderNo": 2,
"EditGroupOrderNo": 1,
"EditorType2": "dxSelectBox",
"ColSpan": 2,
@ -1237,7 +1394,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 4,
"ListOrderNo": 5,
"SourceDbType": 9,
"CultureName": "en",
"DataType": "string",
@ -1325,7 +1482,7 @@
},
"Alignment": "left",
"Format": null,
"EditOrderNo": 2,
"EditOrderNo": 3,
"EditGroupOrderNo": 1,
"EditorType2": "dxSelectBox",
"ColSpan": 1,
@ -1363,7 +1520,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 5,
"ListOrderNo": 6,
"SourceDbType": 9,
"CultureName": "en",
"DataType": "string",
@ -1451,7 +1608,7 @@
},
"Alignment": "left",
"Format": null,
"EditOrderNo": 3,
"EditOrderNo": 4,
"EditGroupOrderNo": 1,
"EditorType2": "dxSelectBox",
"ColSpan": 1,
@ -1489,7 +1646,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 6,
"ListOrderNo": 7,
"SourceDbType": 5,
"CultureName": "en",
"DataType": "date",
@ -1556,6 +1713,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -1589,7 +1748,7 @@
},
"Alignment": "left",
"Format": null,
"EditOrderNo": 4,
"EditOrderNo": 5,
"EditGroupOrderNo": 1,
"EditorType2": "dxDateBox",
"ColSpan": 1,
@ -1627,7 +1786,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 7,
"ListOrderNo": 8,
"SourceDbType": 6,
"CultureName": "en",
"DataType": "datetime",
@ -1715,7 +1874,7 @@
},
"Alignment": "left",
"Format": null,
"EditOrderNo": 5,
"EditOrderNo": 6,
"EditGroupOrderNo": 1,
"EditorType2": "dxDateBox",
"ColSpan": 1,
@ -1753,7 +1912,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 8,
"ListOrderNo": 9,
"SourceDbType": 16,
"CultureName": "en",
"DataType": "string",
@ -1841,7 +2000,7 @@
},
"Alignment": "left",
"Format": null,
"EditOrderNo": 6,
"EditOrderNo": 7,
"EditGroupOrderNo": 1,
"EditorType2": "dxTextBox",
"ColSpan": 2,
@ -1879,7 +2038,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 9,
"ListOrderNo": 10,
"SourceDbType": 9,
"CultureName": "en",
"DataType": "string",
@ -1967,7 +2126,7 @@
},
"Alignment": "left",
"Format": null,
"EditOrderNo": 7,
"EditOrderNo": 8,
"EditGroupOrderNo": 1,
"EditorType2": "dxSelectBox",
"ColSpan": 2,
@ -2005,7 +2164,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 10,
"ListOrderNo": 11,
"SourceDbType": 16,
"CultureName": "en",
"DataType": "string",
@ -2072,6 +2231,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -2105,7 +2266,7 @@
},
"Alignment": "left",
"Format": null,
"EditOrderNo": 8,
"EditOrderNo": 9,
"EditGroupOrderNo": 1,
"EditorType2": "dxRadioGroup",
"ColSpan": 2,
@ -2143,7 +2304,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 11,
"ListOrderNo": 12,
"SourceDbType": 16,
"CultureName": "en",
"DataType": "string",
@ -2210,6 +2371,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -2281,7 +2444,7 @@
"Visible": false,
"IsActive": true,
"Width": 0,
"ListOrderNo": 12,
"ListOrderNo": 13,
"SourceDbType": 16,
"CultureName": "en",
"DataType": "string",
@ -2348,6 +2511,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -2419,7 +2584,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 13,
"ListOrderNo": 14,
"SourceDbType": 16,
"CultureName": "en",
"DataType": "string",

View file

@ -164,7 +164,15 @@
"UpdateBeforeCommand": null,
"UpdateAfterCommand": null,
"UpdateFieldsDefaultValueDto": [],
"FormFieldsDefaultValueDto": [],
"FormFieldsDefaultValueDto": [
{
"FieldName": "BranchId",
"FieldDbType": 9,
"Value": "",
"CustomValueType": 3,
"SqlQuery": "SELECT b.\"Id\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
}
],
"WidgetsDto": [
{
"ColGap": 3,
@ -1046,7 +1054,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": null,
"LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM Sas_T_Branch WHERE IsDeleted = 'false' AND TenantId = '@TENANTID' ORDER BY Name"
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [],
"ColumnStylingDto": [],

View file

@ -386,6 +386,13 @@
"Value": "Office",
"CustomValueType": 1,
"SqlQuery": ""
},
{
"FieldName": "BranchId",
"FieldDbType": 9,
"Value": "",
"CustomValueType": 3,
"SqlQuery": "SELECT b.\"Id\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
}
],
"WidgetsDto": [],
@ -564,6 +571,7 @@
"AllowAllDeleting": false,
"AllowAdding": true,
"AllowDuplicate": false,
"OpenDetailAfterInsert": false,
"UseIcons": false,
"ConfirmDelete": true,
"NewRowPosition": "viewportTop",
@ -673,6 +681,7 @@
"ApprovalDescriptionFieldName": "ApprovalDescription",
"ApprovalIsFilterUserName": false,
"ApprovalIsResetWorkflow": false,
"ApprovalIsManualStart": false,
"Criteria": [
{
"ListFormCode": "App.Hr.JobOffer",
@ -1385,6 +1394,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -1649,6 +1660,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -2039,6 +2052,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -2177,6 +2192,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -2315,6 +2332,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -2570,7 +2589,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": "DepartmentId,JobPositionId",
"LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM Sas_T_Branch WHERE IsDeleted = 'false' AND IsActive = 'true' AND TenantId = '@TENANTID' ORDER BY Name"
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [
{
@ -2579,6 +2598,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -2717,6 +2738,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -2855,6 +2878,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -2993,6 +3018,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -3131,6 +3158,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,

View file

@ -352,6 +352,13 @@
"Value": "@DATE",
"CustomValueType": 2,
"SqlQuery": ""
},
{
"FieldName": "BranchId",
"FieldDbType": 9,
"Value": "",
"CustomValueType": 3,
"SqlQuery": "SELECT b.\"Id\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
}
],
"WidgetsDto": [
@ -545,6 +552,7 @@
"AllowAllDeleting": false,
"AllowAdding": true,
"AllowDuplicate": false,
"OpenDetailAfterInsert": false,
"UseIcons": false,
"ConfirmDelete": true,
"NewRowPosition": "viewportTop",
@ -646,6 +654,7 @@
"ApprovalDescriptionFieldName": null,
"ApprovalIsFilterUserName": false,
"ApprovalIsResetWorkflow": false,
"ApprovalIsManualStart": false,
"Criteria": []
},
"UserId": null,
@ -1375,6 +1384,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -1513,6 +1524,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -1642,7 +1655,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": "DepartmentId,JobPositionId",
"LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM Sas_T_Branch WHERE IsDeleted = 'false' AND IsActive = 'true' AND TenantId = '@TENANTID' ORDER BY Name"
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [
{
@ -1651,6 +1664,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -1789,6 +1804,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -1927,6 +1944,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -2065,6 +2084,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -2203,6 +2224,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -2341,6 +2364,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,

View file

@ -92,6 +92,12 @@
"En": "Request No",
"Tr": "Talep No"
},
{
"FieldName": "BranchId",
"CaptionName": "App.Listform.ListformField.BranchId",
"En": "Branch",
"Tr": "Tesis Adı"
},
{
"FieldName": "EmployeeId",
"CaptionName": "App.Listform.ListformField.EmployeeId",
@ -323,6 +329,13 @@
"Value": "@DATE",
"CustomValueType": 2,
"SqlQuery": ""
},
{
"FieldName": "BranchId",
"FieldDbType": 9,
"Value": "",
"CustomValueType": 3,
"SqlQuery": "SELECT b.\"Id\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
}
],
"WidgetsDto": [
@ -516,6 +529,7 @@
"AllowAllDeleting": false,
"AllowAdding": true,
"AllowDuplicate": false,
"OpenDetailAfterInsert": false,
"UseIcons": false,
"ConfirmDelete": true,
"NewRowPosition": "viewportTop",
@ -584,7 +598,7 @@
"InsertServiceAddress": "list-form-data/insert",
"DeleteServiceAddress": "list-form-data/delete",
"IsTenant": true,
"IsBranch": false,
"IsBranch": true,
"IsOrganizationUnit": false,
"ListFormType": "List",
"IsSubForm": false,
@ -610,6 +624,7 @@
"ApprovalDescriptionFieldName": "ApprovalDescription",
"ApprovalIsFilterUserName": false,
"ApprovalIsResetWorkflow": false,
"ApprovalIsManualStart": false,
"Criteria": [
{
"ListFormCode": "App.Hr.LeaveRequest",
@ -1232,6 +1247,146 @@
"CreatorId": null,
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"EditType": null,
"ListFormCode": "App.Hr.LeaveRequest",
"RoleId": null,
"UserId": null,
"ColumnJoinTableDto": {
"JoinType": null,
"TableName": null,
"JoinFieldName": null,
"BaseTableJoinFieldName": null,
"SelectFieldName": null,
"FieldNameAlias": null,
"JoinCondition2": "AND",
"JoinFieldName2": null,
"BaseTableJoinFieldName2_OrValue": null
},
"FieldName": "BranchId",
"CaptionName": "App.Listform.ListformField.BranchId",
"PlaceHolder": null,
"ReadOnly": false,
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 3,
"SourceDbType": 9,
"CultureName": "en",
"DataType": "string",
"SortIndex": 0,
"SortDirection": null,
"AllowSearch": true,
"AllowEditing": true,
"AllowAdding": true,
"ColumnCssClass": null,
"ColumnCssValue": null,
"BandName": null,
"ColumnFilterDto": {
"AllowFiltering": true,
"FilterOperations": null,
"SelectedFilterOperation": null,
"FilterValue": null
},
"ColumnHeaderDto": {
"AllowHeaderFiltering": true,
"AllowSearch": false,
"DataSource": null,
"DataSourceString": ""
},
"ColumnGroupingDto": {
"AllowGrouping": true,
"GroupIndex": null,
"AutoExpandGroup": false
},
"ColumnCustomizationDto": {
"Fixed": false,
"FixedPosition": "left",
"AllowReordering": true
},
"ColumnTotalSummaryDto": {
"SummaryType": null,
"ValueFormat": null,
"ShowInGroupFooter": false,
"AlignByColumn": false,
"DisplayFormat": null,
"ShowInColumn": null
},
"ColumnGroupSummaryDto": {
"SummaryType": null,
"ValueFormat": null,
"ShowInGroupFooter": false,
"AlignByColumn": false,
"DisplayFormat": null,
"ShowInColumn": null
},
"LookupDto": {
"DataSourceType": 2,
"ValueExpr": "Key",
"DisplayExpr": "Name",
"CascadeRelationField": null,
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": null,
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [
{
"Type": "required",
"Message": null,
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
"Trim": true
}
],
"ColumnStylingDto": [],
"PermissionDto": {
"Deny": false,
"C": "App.Hr.LeaveRequest.Create",
"R": "App.Hr.LeaveRequest",
"U": "App.Hr.LeaveRequest.Update",
"E": true,
"I": true
},
"CanRead": false,
"CanCreate": false,
"CanUpdate": false,
"CanExport": false,
"DefaultValue": null,
"DefaultValueType": 0,
"PivotSettingsDto": {
"IsPivot": true,
"Expanded": false,
"SortOrder": "asc",
"Area": "filter",
"Format": null,
"SummaryType": null,
"GroupInterval": "",
"WordWrapEnabled": false
},
"Alignment": "left",
"Format": null,
"EditOrderNo": 2,
"EditGroupOrderNo": 1,
"EditorType2": "dxSelectBox",
"ColSpan": 1,
"EditorOptions": "{\"searchEnabled\":true,\"showClearButton\":true}",
"GridBoxOptions": null,
"TagBoxOptions": null,
"ImageUploadOptions": null,
"EditorScript": null,
"LastModificationTime": null,
"LastModifierId": null,
"CreationTime": "0001-01-01T00:00:00",
"CreatorId": null,
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"EditType": null,
"ListFormCode": "App.Hr.LeaveRequest",
@ -1255,7 +1410,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 3,
"ListOrderNo": 4,
"SourceDbType": 9,
"CultureName": "en",
"DataType": "string",
@ -1322,6 +1477,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -1355,7 +1512,7 @@
},
"Alignment": "left",
"Format": null,
"EditOrderNo": 2,
"EditOrderNo": 3,
"EditGroupOrderNo": 1,
"EditorType2": "dxSelectBox",
"ColSpan": 1,
@ -1393,7 +1550,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 4,
"ListOrderNo": 5,
"SourceDbType": 9,
"CultureName": "en",
"DataType": "string",
@ -1481,7 +1638,7 @@
},
"Alignment": "left",
"Format": null,
"EditOrderNo": 3,
"EditOrderNo": 4,
"EditGroupOrderNo": 1,
"EditorType2": "dxSelectBox",
"ColSpan": 1,
@ -1519,7 +1676,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 5,
"ListOrderNo": 6,
"SourceDbType": 9,
"CultureName": "en",
"DataType": "string",
@ -1607,7 +1764,7 @@
},
"Alignment": "left",
"Format": null,
"EditOrderNo": 4,
"EditOrderNo": 5,
"EditGroupOrderNo": 1,
"EditorType2": "dxSelectBox",
"ColSpan": 1,
@ -1645,7 +1802,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 6,
"ListOrderNo": 7,
"SourceDbType": 9,
"CultureName": "en",
"DataType": "string",
@ -1712,144 +1869,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"Pattern": "",
"Max": null,
"Min": null,
"Trim": true
}
],
"ColumnStylingDto": [],
"PermissionDto": {
"Deny": false,
"C": "App.Hr.LeaveRequest.Create",
"R": "App.Hr.LeaveRequest",
"U": "App.Hr.LeaveRequest.Update",
"E": true,
"I": true
},
"CanRead": false,
"CanCreate": false,
"CanUpdate": false,
"CanExport": false,
"DefaultValue": null,
"DefaultValueType": 0,
"PivotSettingsDto": {
"IsPivot": true,
"Expanded": false,
"SortOrder": "asc",
"Area": "filter",
"Format": null,
"SummaryType": null,
"GroupInterval": "",
"WordWrapEnabled": false
},
"Alignment": "left",
"Format": null,
"EditOrderNo": 5,
"EditGroupOrderNo": 1,
"EditorType2": "dxSelectBox",
"ColSpan": 1,
"EditorOptions": "{\"searchEnabled\":true,\"showClearButton\":true}",
"GridBoxOptions": null,
"TagBoxOptions": null,
"ImageUploadOptions": null,
"EditorScript": null,
"LastModificationTime": null,
"LastModifierId": null,
"CreationTime": "0001-01-01T00:00:00",
"CreatorId": null,
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"EditType": null,
"ListFormCode": "App.Hr.LeaveRequest",
"RoleId": null,
"UserId": null,
"ColumnJoinTableDto": {
"JoinType": null,
"TableName": null,
"JoinFieldName": null,
"BaseTableJoinFieldName": null,
"SelectFieldName": null,
"FieldNameAlias": null,
"JoinCondition2": "AND",
"JoinFieldName2": null,
"BaseTableJoinFieldName2_OrValue": null
},
"FieldName": "StartDate",
"CaptionName": "App.Listform.ListformField.StartDate",
"PlaceHolder": null,
"ReadOnly": false,
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 7,
"SourceDbType": 6,
"CultureName": "en",
"DataType": "datetime",
"SortIndex": 0,
"SortDirection": null,
"AllowSearch": true,
"AllowEditing": true,
"AllowAdding": true,
"ColumnCssClass": null,
"ColumnCssValue": null,
"BandName": null,
"ColumnFilterDto": {
"AllowFiltering": true,
"FilterOperations": null,
"SelectedFilterOperation": null,
"FilterValue": null
},
"ColumnHeaderDto": {
"AllowHeaderFiltering": true,
"AllowSearch": false,
"DataSource": null,
"DataSourceString": ""
},
"ColumnGroupingDto": {
"AllowGrouping": true,
"GroupIndex": null,
"AutoExpandGroup": false
},
"ColumnCustomizationDto": {
"Fixed": false,
"FixedPosition": "left",
"AllowReordering": true
},
"ColumnTotalSummaryDto": {
"SummaryType": null,
"ValueFormat": null,
"ShowInGroupFooter": false,
"AlignByColumn": false,
"DisplayFormat": null,
"ShowInColumn": null
},
"ColumnGroupSummaryDto": {
"SummaryType": null,
"ValueFormat": null,
"ShowInGroupFooter": false,
"AlignByColumn": false,
"DisplayFormat": null,
"ShowInColumn": null
},
"LookupDto": {
"DataSourceType": 0,
"ValueExpr": "Key",
"DisplayExpr": "Name",
"CascadeRelationField": null,
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": null,
"LookupQuery": null
},
"ValidationRuleDto": [
{
"Type": "required",
"Message": null,
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -1885,13 +1906,13 @@
"Format": null,
"EditOrderNo": 6,
"EditGroupOrderNo": 1,
"EditorType2": "dxDateBox",
"EditorType2": "dxSelectBox",
"ColSpan": 1,
"EditorOptions": "{\"type\":\"datetime\",\"displayFormat\":\"dd.MM.yyyy HH:mm\",\"useMaskBehavior\":true,\"showClearButton\":true}",
"EditorOptions": "{\"searchEnabled\":true,\"showClearButton\":true}",
"GridBoxOptions": null,
"TagBoxOptions": null,
"ImageUploadOptions": null,
"EditorScript": "// @builder {\"v\":1,\"rules\":[{\"id\":\"custom_1\",\"recipe\":\"custom\",\"condition\":{\"operator\":\"always\",\"source\":\"\",\"value\":\"\"},\"params\":{\"code\":\"{ if (bool(\\\"IsHalfDay\\\")) set(\\\"EndDate\\\", get(\\\"StartDate\\\")); set(\\\"Days\\\", bool(\\\"IsHalfDay\\\") ? 0.5 : (() => { const s = dateOf(\\\"StartDate\\\"), f = dateOf(\\\"EndDate\\\"); let n = 0; if (s && f) for (const d = new Date(s.getFullYear(), s.getMonth(), s.getDate()); d <= f; d.setDate(d.getDate() + 1)) if (d.getDay() % 6) n++; return n })()) }\"},\"fields\":[]}]}\n{ if (bool(\"IsHalfDay\")) set(\"EndDate\", get(\"StartDate\")); set(\"Days\", bool(\"IsHalfDay\") ? 0.5 : (() => { const s = dateOf(\"StartDate\"), f = dateOf(\"EndDate\"); let n = 0; if (s && f) for (const d = new Date(s.getFullYear(), s.getMonth(), s.getDate()); d <= f; d.setDate(d.getDate() + 1)) if (d.getDay() % 6) n++; return n })()) }",
"EditorScript": null,
"LastModificationTime": null,
"LastModifierId": null,
"CreationTime": "0001-01-01T00:00:00",
@ -1914,8 +1935,8 @@
"JoinFieldName2": null,
"BaseTableJoinFieldName2_OrValue": null
},
"FieldName": "EndDate",
"CaptionName": "App.Listform.ListformField.EndDate",
"FieldName": "StartDate",
"CaptionName": "App.Listform.ListformField.StartDate",
"PlaceHolder": null,
"ReadOnly": false,
"Visible": true,
@ -1988,6 +2009,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -2029,6 +2052,146 @@
"GridBoxOptions": null,
"TagBoxOptions": null,
"ImageUploadOptions": null,
"EditorScript": "// @builder {\"v\":1,\"rules\":[{\"id\":\"custom_1\",\"recipe\":\"custom\",\"condition\":{\"operator\":\"always\",\"source\":\"\",\"value\":\"\"},\"params\":{\"code\":\"{ if (bool(\\\"IsHalfDay\\\")) set(\\\"EndDate\\\", get(\\\"StartDate\\\")); set(\\\"Days\\\", bool(\\\"IsHalfDay\\\") ? 0.5 : (() => { const s = dateOf(\\\"StartDate\\\"), f = dateOf(\\\"EndDate\\\"); let n = 0; if (s && f) for (const d = new Date(s.getFullYear(), s.getMonth(), s.getDate()); d <= f; d.setDate(d.getDate() + 1)) if (d.getDay() % 6) n++; return n })()) }\"},\"fields\":[]}]}\n{ if (bool(\"IsHalfDay\")) set(\"EndDate\", get(\"StartDate\")); set(\"Days\", bool(\"IsHalfDay\") ? 0.5 : (() => { const s = dateOf(\"StartDate\"), f = dateOf(\"EndDate\"); let n = 0; if (s && f) for (const d = new Date(s.getFullYear(), s.getMonth(), s.getDate()); d <= f; d.setDate(d.getDate() + 1)) if (d.getDay() % 6) n++; return n })()) }",
"LastModificationTime": null,
"LastModifierId": null,
"CreationTime": "0001-01-01T00:00:00",
"CreatorId": null,
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"EditType": null,
"ListFormCode": "App.Hr.LeaveRequest",
"RoleId": null,
"UserId": null,
"ColumnJoinTableDto": {
"JoinType": null,
"TableName": null,
"JoinFieldName": null,
"BaseTableJoinFieldName": null,
"SelectFieldName": null,
"FieldNameAlias": null,
"JoinCondition2": "AND",
"JoinFieldName2": null,
"BaseTableJoinFieldName2_OrValue": null
},
"FieldName": "EndDate",
"CaptionName": "App.Listform.ListformField.EndDate",
"PlaceHolder": null,
"ReadOnly": false,
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 9,
"SourceDbType": 6,
"CultureName": "en",
"DataType": "datetime",
"SortIndex": 0,
"SortDirection": null,
"AllowSearch": true,
"AllowEditing": true,
"AllowAdding": true,
"ColumnCssClass": null,
"ColumnCssValue": null,
"BandName": null,
"ColumnFilterDto": {
"AllowFiltering": true,
"FilterOperations": null,
"SelectedFilterOperation": null,
"FilterValue": null
},
"ColumnHeaderDto": {
"AllowHeaderFiltering": true,
"AllowSearch": false,
"DataSource": null,
"DataSourceString": ""
},
"ColumnGroupingDto": {
"AllowGrouping": true,
"GroupIndex": null,
"AutoExpandGroup": false
},
"ColumnCustomizationDto": {
"Fixed": false,
"FixedPosition": "left",
"AllowReordering": true
},
"ColumnTotalSummaryDto": {
"SummaryType": null,
"ValueFormat": null,
"ShowInGroupFooter": false,
"AlignByColumn": false,
"DisplayFormat": null,
"ShowInColumn": null
},
"ColumnGroupSummaryDto": {
"SummaryType": null,
"ValueFormat": null,
"ShowInGroupFooter": false,
"AlignByColumn": false,
"DisplayFormat": null,
"ShowInColumn": null
},
"LookupDto": {
"DataSourceType": 0,
"ValueExpr": "Key",
"DisplayExpr": "Name",
"CascadeRelationField": null,
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": null,
"LookupQuery": null
},
"ValidationRuleDto": [
{
"Type": "required",
"Message": null,
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
"Trim": true
}
],
"ColumnStylingDto": [],
"PermissionDto": {
"Deny": false,
"C": "App.Hr.LeaveRequest.Create",
"R": "App.Hr.LeaveRequest",
"U": "App.Hr.LeaveRequest.Update",
"E": true,
"I": true
},
"CanRead": false,
"CanCreate": false,
"CanUpdate": false,
"CanExport": false,
"DefaultValue": null,
"DefaultValueType": 0,
"PivotSettingsDto": {
"IsPivot": true,
"Expanded": false,
"SortOrder": "asc",
"Area": "filter",
"Format": null,
"SummaryType": null,
"GroupInterval": "",
"WordWrapEnabled": false
},
"Alignment": "left",
"Format": null,
"EditOrderNo": 8,
"EditGroupOrderNo": 1,
"EditorType2": "dxDateBox",
"ColSpan": 1,
"EditorOptions": "{\"type\":\"datetime\",\"displayFormat\":\"dd.MM.yyyy HH:mm\",\"useMaskBehavior\":true,\"showClearButton\":true}",
"GridBoxOptions": null,
"TagBoxOptions": null,
"ImageUploadOptions": null,
"EditorScript": "// @builder {\"v\":1,\"rules\":[{\"id\":\"custom_1\",\"recipe\":\"custom\",\"condition\":{\"operator\":\"always\",\"source\":\"\",\"value\":\"\"},\"params\":{\"code\":\"{ set(\\\"Days\\\", bool(\\\"IsHalfDay\\\") ? 0.5 : (() => { const s = dateOf(\\\"StartDate\\\"), f = dateOf(\\\"EndDate\\\"); let n = 0; if (s && f) for (const d = new Date(s.getFullYear(), s.getMonth(), s.getDate()); d <= f; d.setDate(d.getDate() + 1)) if (d.getDay() % 6) n++; return n })()) }\"},\"fields\":[]}]}\n{ set(\"Days\", bool(\"IsHalfDay\") ? 0.5 : (() => { const s = dateOf(\"StartDate\"), f = dateOf(\"EndDate\"); let n = 0; if (s && f) for (const d = new Date(s.getFullYear(), s.getMonth(), s.getDate()); d <= f; d.setDate(d.getDate() + 1)) if (d.getDay() % 6) n++; return n })()) }",
"LastModificationTime": null,
"LastModifierId": null,
@ -2059,7 +2222,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 9,
"ListOrderNo": 10,
"SourceDbType": 3,
"CultureName": "en",
"DataType": "boolean",
@ -2147,7 +2310,7 @@
},
"Alignment": "left",
"Format": null,
"EditOrderNo": 8,
"EditOrderNo": 9,
"EditGroupOrderNo": 1,
"EditorType2": "dxCheckBox",
"ColSpan": 1,
@ -2185,7 +2348,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 10,
"ListOrderNo": 11,
"SourceDbType": 16,
"CultureName": "en",
"DataType": "string",
@ -2273,7 +2436,7 @@
},
"Alignment": "left",
"Format": null,
"EditOrderNo": 9,
"EditOrderNo": 10,
"EditGroupOrderNo": 1,
"EditorType2": "dxSelectBox",
"ColSpan": 1,
@ -2311,7 +2474,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 11,
"ListOrderNo": 12,
"SourceDbType": 7,
"CultureName": "en",
"DataType": "number",
@ -2399,7 +2562,7 @@
},
"Alignment": "left",
"Format": null,
"EditOrderNo": 10,
"EditOrderNo": 11,
"EditGroupOrderNo": 1,
"EditorType2": "dxNumberBox",
"ColSpan": 1,
@ -2437,7 +2600,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 12,
"ListOrderNo": 13,
"SourceDbType": 16,
"CultureName": "en",
"DataType": "string",
@ -2525,7 +2688,7 @@
},
"Alignment": "left",
"Format": null,
"EditOrderNo": 11,
"EditOrderNo": 12,
"EditGroupOrderNo": 1,
"EditorType2": "dxTextBox",
"ColSpan": 2,
@ -2563,7 +2726,7 @@
"Visible": false,
"IsActive": true,
"Width": 0,
"ListOrderNo": 14,
"ListOrderNo": 15,
"SourceDbType": 16,
"CultureName": "en",
"DataType": "string",
@ -2689,7 +2852,7 @@
"Visible": false,
"IsActive": true,
"Width": 0,
"ListOrderNo": 14,
"ListOrderNo": 15,
"SourceDbType": 11,
"CultureName": "en",
"DataType": "number",
@ -2815,7 +2978,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 15,
"ListOrderNo": 16,
"SourceDbType": 16,
"CultureName": "en",
"DataType": "string",
@ -2941,7 +3104,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 16,
"ListOrderNo": 17,
"SourceDbType": 16,
"CultureName": "en",
"DataType": "string",
@ -3067,7 +3230,7 @@
"Visible": false,
"IsActive": true,
"Width": 0,
"ListOrderNo": 17,
"ListOrderNo": 18,
"SourceDbType": 16,
"CultureName": "en",
"DataType": "string",
@ -3193,7 +3356,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 18,
"ListOrderNo": 19,
"SourceDbType": 16,
"CultureName": "en",
"DataType": "string",
@ -3319,7 +3482,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 19,
"ListOrderNo": 20,
"SourceDbType": 16,
"CultureName": "en",
"DataType": "string",
@ -3445,7 +3608,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 20,
"ListOrderNo": 21,
"SourceDbType": 6,
"CultureName": "en",
"DataType": "datetime",
@ -3571,7 +3734,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 21,
"ListOrderNo": 22,
"SourceDbType": 16,
"CultureName": "en",
"DataType": "string",

View file

@ -217,6 +217,13 @@
"Value": "@USERID",
"CustomValueType": 2,
"SqlQuery": null
},
{
"FieldName": "BranchId",
"FieldDbType": 9,
"Value": "",
"CustomValueType": 3,
"SqlQuery": "SELECT b.\"Id\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
}
],
"UpdateCommand": null,
@ -437,6 +444,7 @@
"AllowAllDeleting": false,
"AllowAdding": true,
"AllowDuplicate": false,
"OpenDetailAfterInsert": false,
"UseIcons": false,
"ConfirmDelete": true,
"NewRowPosition": "viewportTop",
@ -531,6 +539,7 @@
"ApprovalDescriptionFieldName": null,
"ApprovalIsFilterUserName": false,
"ApprovalIsResetWorkflow": false,
"ApprovalIsManualStart": false,
"Criteria": []
},
"UserId": null,
@ -1134,6 +1143,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -1272,6 +1283,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -1410,6 +1423,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,

View file

@ -197,10 +197,10 @@
"Tr": "Kimlik"
},
{
"FieldName": "PeriodId",
"CaptionName": "App.Listform.ListformField.PeriodId",
"En": "Period",
"Tr": "Dönem"
"FieldName": "BranchId",
"CaptionName": "App.Listform.ListformField.BranchId",
"En": "Branch",
"Tr": "Tesis Adı"
},
{
"FieldName": "EmployeeId",
@ -214,12 +214,6 @@
"En": "Employee Name",
"Tr": "Çalışan Adı"
},
{
"FieldName": "ManagerId",
"CaptionName": "App.Listform.ListformField.ManagerId",
"En": "Manager",
"Tr": "Yönetici"
},
{
"FieldName": "DepartmentId",
"CaptionName": "App.Listform.ListformField.DepartmentId",
@ -232,6 +226,18 @@
"En": "Position",
"Tr": "Pozisyon"
},
{
"FieldName": "PeriodId",
"CaptionName": "App.Listform.ListformField.PeriodId",
"En": "Period",
"Tr": "Dönem"
},
{
"FieldName": "ManagerId",
"CaptionName": "App.Listform.ListformField.ManagerId",
"En": "Manager",
"Tr": "Yönetici"
},
{
"FieldName": "Status",
"CaptionName": "App.Listform.ListformField.ReviewStatus",
@ -426,6 +432,13 @@
"Value": "true",
"CustomValueType": 1,
"SqlQuery": ""
},
{
"FieldName": "BranchId",
"FieldDbType": 9,
"Value": "",
"CustomValueType": 3,
"SqlQuery": "SELECT b.\"Id\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
}
],
"WidgetsDto": [
@ -688,7 +701,7 @@
"InsertServiceAddress": "list-form-data/insert",
"DeleteServiceAddress": "list-form-data/delete",
"IsTenant": true,
"IsBranch": false,
"IsBranch": true,
"IsOrganizationUnit": false,
"ListFormType": "List",
"IsSubForm": false,
@ -1176,8 +1189,8 @@
"JoinFieldName2": null,
"BaseTableJoinFieldName2_OrValue": null
},
"FieldName": "PeriodId",
"CaptionName": "App.Listform.ListformField.PeriodId",
"FieldName": "BranchId",
"CaptionName": "App.Listform.ListformField.BranchId",
"PlaceHolder": null,
"ReadOnly": false,
"Visible": true,
@ -1241,7 +1254,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": null,
"LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM Hr_T_PerformancePeriod WHERE IsDeleted = 'false' AND TenantId = '@TENANTID' ORDER BY StartDate DESC"
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [
{
@ -1566,132 +1579,6 @@
"CreatorId": null,
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"EditType": null,
"ListFormCode": "App.Hr.PerformanceReview",
"RoleId": null,
"UserId": null,
"ColumnJoinTableDto": {
"JoinType": null,
"TableName": null,
"JoinFieldName": null,
"BaseTableJoinFieldName": null,
"SelectFieldName": null,
"FieldNameAlias": null,
"JoinCondition2": "AND",
"JoinFieldName2": null,
"BaseTableJoinFieldName2_OrValue": null
},
"FieldName": "ManagerId",
"CaptionName": "App.Listform.ListformField.ManagerId",
"PlaceHolder": null,
"ReadOnly": false,
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 5,
"SourceDbType": 9,
"CultureName": "en",
"DataType": "string",
"SortIndex": 0,
"SortDirection": null,
"AllowSearch": true,
"AllowEditing": true,
"AllowAdding": true,
"ColumnCssClass": null,
"ColumnCssValue": null,
"BandName": null,
"ColumnFilterDto": {
"AllowFiltering": true,
"FilterOperations": null,
"SelectedFilterOperation": null,
"FilterValue": null
},
"ColumnHeaderDto": {
"AllowHeaderFiltering": true,
"AllowSearch": false,
"DataSource": null,
"DataSourceString": ""
},
"ColumnGroupingDto": {
"AllowGrouping": true,
"GroupIndex": null,
"AutoExpandGroup": false
},
"ColumnCustomizationDto": {
"Fixed": false,
"FixedPosition": "left",
"AllowReordering": true
},
"ColumnTotalSummaryDto": {
"SummaryType": null,
"ValueFormat": null,
"ShowInGroupFooter": false,
"AlignByColumn": false,
"DisplayFormat": null,
"ShowInColumn": null
},
"ColumnGroupSummaryDto": {
"SummaryType": null,
"ValueFormat": null,
"ShowInGroupFooter": false,
"AlignByColumn": false,
"DisplayFormat": null,
"ShowInColumn": null
},
"LookupDto": {
"DataSourceType": 2,
"ValueExpr": "Key",
"DisplayExpr": "Name",
"CascadeRelationField": null,
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": null,
"LookupQuery": "SELECT Id AS [Key], Name + ' ' + Surname AS [Name] FROM AbpUsers WHERE IsDeleted = 'false' AND TenantId = '@TENANTID' ORDER BY Name, Surname"
},
"ValidationRuleDto": [],
"ColumnStylingDto": [],
"PermissionDto": {
"Deny": false,
"C": "App.Hr.PerformanceReview.Create",
"R": "App.Hr.PerformanceReview",
"U": "App.Hr.PerformanceReview.Update",
"E": true,
"I": true
},
"CanRead": false,
"CanCreate": false,
"CanUpdate": false,
"CanExport": false,
"DefaultValue": null,
"DefaultValueType": 0,
"PivotSettingsDto": {
"IsPivot": true,
"Expanded": false,
"SortOrder": "asc",
"Area": "filter",
"Format": null,
"SummaryType": null,
"GroupInterval": "",
"WordWrapEnabled": false
},
"Alignment": "left",
"Format": null,
"EditOrderNo": 3,
"EditGroupOrderNo": 1,
"EditorType2": "dxSelectBox",
"ColSpan": 1,
"EditorOptions": "{\"searchEnabled\":true,\"showClearButton\":true}",
"GridBoxOptions": null,
"TagBoxOptions": null,
"ImageUploadOptions": null,
"EditorScript": null,
"LastModificationTime": null,
"LastModifierId": null,
"CreationTime": "0001-01-01T00:00:00",
"CreatorId": null,
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"EditType": null,
"ListFormCode": "App.Hr.PerformanceReview",
@ -1715,7 +1602,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 6,
"ListOrderNo": 5,
"SourceDbType": 9,
"CultureName": "en",
"DataType": "string",
@ -1803,7 +1690,7 @@
},
"Alignment": "left",
"Format": null,
"EditOrderNo": 4,
"EditOrderNo": 3,
"EditGroupOrderNo": 1,
"EditorType2": "dxSelectBox",
"ColSpan": 1,
@ -1841,7 +1728,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 7,
"ListOrderNo": 6,
"SourceDbType": 9,
"CultureName": "en",
"DataType": "string",
@ -1929,6 +1816,146 @@
},
"Alignment": "left",
"Format": null,
"EditOrderNo": 4,
"EditGroupOrderNo": 1,
"EditorType2": "dxSelectBox",
"ColSpan": 1,
"EditorOptions": "{\"searchEnabled\":true,\"showClearButton\":true}",
"GridBoxOptions": null,
"TagBoxOptions": null,
"ImageUploadOptions": null,
"EditorScript": null,
"LastModificationTime": null,
"LastModifierId": null,
"CreationTime": "0001-01-01T00:00:00",
"CreatorId": null,
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"EditType": null,
"ListFormCode": "App.Hr.PerformanceReview",
"RoleId": null,
"UserId": null,
"ColumnJoinTableDto": {
"JoinType": null,
"TableName": null,
"JoinFieldName": null,
"BaseTableJoinFieldName": null,
"SelectFieldName": null,
"FieldNameAlias": null,
"JoinCondition2": "AND",
"JoinFieldName2": null,
"BaseTableJoinFieldName2_OrValue": null
},
"FieldName": "PeriodId",
"CaptionName": "App.Listform.ListformField.PeriodId",
"PlaceHolder": null,
"ReadOnly": false,
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 7,
"SourceDbType": 9,
"CultureName": "en",
"DataType": "string",
"SortIndex": 0,
"SortDirection": null,
"AllowSearch": true,
"AllowEditing": true,
"AllowAdding": true,
"ColumnCssClass": null,
"ColumnCssValue": null,
"BandName": null,
"ColumnFilterDto": {
"AllowFiltering": true,
"FilterOperations": null,
"SelectedFilterOperation": null,
"FilterValue": null
},
"ColumnHeaderDto": {
"AllowHeaderFiltering": true,
"AllowSearch": false,
"DataSource": null,
"DataSourceString": ""
},
"ColumnGroupingDto": {
"AllowGrouping": true,
"GroupIndex": null,
"AutoExpandGroup": false
},
"ColumnCustomizationDto": {
"Fixed": false,
"FixedPosition": "left",
"AllowReordering": true
},
"ColumnTotalSummaryDto": {
"SummaryType": null,
"ValueFormat": null,
"ShowInGroupFooter": false,
"AlignByColumn": false,
"DisplayFormat": null,
"ShowInColumn": null
},
"ColumnGroupSummaryDto": {
"SummaryType": null,
"ValueFormat": null,
"ShowInGroupFooter": false,
"AlignByColumn": false,
"DisplayFormat": null,
"ShowInColumn": null
},
"LookupDto": {
"DataSourceType": 2,
"ValueExpr": "Key",
"DisplayExpr": "Name",
"CascadeRelationField": null,
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": null,
"LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM Hr_T_PerformancePeriod WHERE IsDeleted = 'false' AND TenantId = '@TENANTID' ORDER BY StartDate DESC"
},
"ValidationRuleDto": [
{
"Type": "required",
"Message": null,
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
"Trim": true
}
],
"ColumnStylingDto": [],
"PermissionDto": {
"Deny": false,
"C": "App.Hr.PerformanceReview.Create",
"R": "App.Hr.PerformanceReview",
"U": "App.Hr.PerformanceReview.Update",
"E": true,
"I": true
},
"CanRead": false,
"CanCreate": false,
"CanUpdate": false,
"CanExport": false,
"DefaultValue": null,
"DefaultValueType": 0,
"PivotSettingsDto": {
"IsPivot": true,
"Expanded": false,
"SortOrder": "asc",
"Area": "filter",
"Format": null,
"SummaryType": null,
"GroupInterval": "",
"WordWrapEnabled": false
},
"Alignment": "left",
"Format": null,
"EditOrderNo": 5,
"EditGroupOrderNo": 1,
"EditorType2": "dxSelectBox",
@ -1944,6 +1971,132 @@
"CreatorId": null,
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"EditType": null,
"ListFormCode": "App.Hr.PerformanceReview",
"RoleId": null,
"UserId": null,
"ColumnJoinTableDto": {
"JoinType": null,
"TableName": null,
"JoinFieldName": null,
"BaseTableJoinFieldName": null,
"SelectFieldName": null,
"FieldNameAlias": null,
"JoinCondition2": "AND",
"JoinFieldName2": null,
"BaseTableJoinFieldName2_OrValue": null
},
"FieldName": "ManagerId",
"CaptionName": "App.Listform.ListformField.ManagerId",
"PlaceHolder": null,
"ReadOnly": false,
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 8,
"SourceDbType": 9,
"CultureName": "en",
"DataType": "string",
"SortIndex": 0,
"SortDirection": null,
"AllowSearch": true,
"AllowEditing": true,
"AllowAdding": true,
"ColumnCssClass": null,
"ColumnCssValue": null,
"BandName": null,
"ColumnFilterDto": {
"AllowFiltering": true,
"FilterOperations": null,
"SelectedFilterOperation": null,
"FilterValue": null
},
"ColumnHeaderDto": {
"AllowHeaderFiltering": true,
"AllowSearch": false,
"DataSource": null,
"DataSourceString": ""
},
"ColumnGroupingDto": {
"AllowGrouping": true,
"GroupIndex": null,
"AutoExpandGroup": false
},
"ColumnCustomizationDto": {
"Fixed": false,
"FixedPosition": "left",
"AllowReordering": true
},
"ColumnTotalSummaryDto": {
"SummaryType": null,
"ValueFormat": null,
"ShowInGroupFooter": false,
"AlignByColumn": false,
"DisplayFormat": null,
"ShowInColumn": null
},
"ColumnGroupSummaryDto": {
"SummaryType": null,
"ValueFormat": null,
"ShowInGroupFooter": false,
"AlignByColumn": false,
"DisplayFormat": null,
"ShowInColumn": null
},
"LookupDto": {
"DataSourceType": 2,
"ValueExpr": "Key",
"DisplayExpr": "Name",
"CascadeRelationField": null,
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": null,
"LookupQuery": "SELECT Id AS [Key], Name + ' ' + Surname AS [Name] FROM AbpUsers WHERE IsDeleted = 'false' AND TenantId = '@TENANTID' ORDER BY Name, Surname"
},
"ValidationRuleDto": [],
"ColumnStylingDto": [],
"PermissionDto": {
"Deny": false,
"C": "App.Hr.PerformanceReview.Create",
"R": "App.Hr.PerformanceReview",
"U": "App.Hr.PerformanceReview.Update",
"E": true,
"I": true
},
"CanRead": false,
"CanCreate": false,
"CanUpdate": false,
"CanExport": false,
"DefaultValue": null,
"DefaultValueType": 0,
"PivotSettingsDto": {
"IsPivot": true,
"Expanded": false,
"SortOrder": "asc",
"Area": "filter",
"Format": null,
"SummaryType": null,
"GroupInterval": "",
"WordWrapEnabled": false
},
"Alignment": "left",
"Format": null,
"EditOrderNo": 6,
"EditGroupOrderNo": 1,
"EditorType2": "dxSelectBox",
"ColSpan": 1,
"EditorOptions": "{\"searchEnabled\":true,\"showClearButton\":true}",
"GridBoxOptions": null,
"TagBoxOptions": null,
"ImageUploadOptions": null,
"EditorScript": null,
"LastModificationTime": null,
"LastModifierId": null,
"CreationTime": "0001-01-01T00:00:00",
"CreatorId": null,
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"EditType": null,
"ListFormCode": "App.Hr.PerformanceReview",
@ -1967,7 +2120,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 8,
"ListOrderNo": 9,
"SourceDbType": 16,
"CultureName": "en",
"DataType": "string",
@ -2069,7 +2222,7 @@
},
"Alignment": "left",
"Format": null,
"EditOrderNo": 6,
"EditOrderNo": 7,
"EditGroupOrderNo": 1,
"EditorType2": "dxSelectBox",
"ColSpan": 1,
@ -2107,7 +2260,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 9,
"ListOrderNo": 10,
"SourceDbType": 3,
"CultureName": "en",
"DataType": "boolean",
@ -2195,7 +2348,7 @@
},
"Alignment": "left",
"Format": null,
"EditOrderNo": 7,
"EditOrderNo": 8,
"EditGroupOrderNo": 1,
"EditorType2": "dxCheckBox",
"ColSpan": 1,
@ -2233,7 +2386,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 10,
"ListOrderNo": 11,
"SourceDbType": 7,
"CultureName": "en",
"DataType": "number",
@ -2359,7 +2512,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 11,
"ListOrderNo": 12,
"SourceDbType": 7,
"CultureName": "en",
"DataType": "number",
@ -2485,7 +2638,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 12,
"ListOrderNo": 13,
"SourceDbType": 7,
"CultureName": "en",
"DataType": "number",
@ -2611,7 +2764,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 13,
"ListOrderNo": 14,
"SourceDbType": 7,
"CultureName": "en",
"DataType": "number",
@ -2737,7 +2890,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 14,
"ListOrderNo": 15,
"SourceDbType": 7,
"CultureName": "en",
"DataType": "number",
@ -2863,7 +3016,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 15,
"ListOrderNo": 16,
"SourceDbType": 9,
"CultureName": "en",
"DataType": "string",
@ -2989,7 +3142,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 16,
"ListOrderNo": 17,
"SourceDbType": 16,
"CultureName": "en",
"DataType": "string",
@ -3115,7 +3268,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 17,
"ListOrderNo": 18,
"SourceDbType": 16,
"CultureName": "en",
"DataType": "string",
@ -3241,7 +3394,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 18,
"ListOrderNo": 19,
"SourceDbType": 16,
"CultureName": "en",
"DataType": "string",
@ -3367,7 +3520,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 19,
"ListOrderNo": 20,
"SourceDbType": 6,
"CultureName": "en",
"DataType": "datetime",
@ -3493,7 +3646,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 20,
"ListOrderNo": 21,
"SourceDbType": 6,
"CultureName": "en",
"DataType": "datetime",
@ -3619,7 +3772,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 21,
"ListOrderNo": 22,
"SourceDbType": 6,
"CultureName": "en",
"DataType": "datetime",

View file

@ -386,6 +386,13 @@
"Value": "TRY",
"CustomValueType": 1,
"SqlQuery": ""
},
{
"FieldName": "BranchId",
"FieldDbType": 9,
"Value": "",
"CustomValueType": 3,
"SqlQuery": "SELECT b.\"Id\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
}
],
"WidgetsDto": [
@ -579,6 +586,7 @@
"AllowAllDeleting": false,
"AllowAdding": true,
"AllowDuplicate": false,
"OpenDetailAfterInsert": false,
"UseIcons": false,
"ConfirmDelete": true,
"NewRowPosition": "viewportTop",
@ -680,6 +688,7 @@
"ApprovalDescriptionFieldName": "ApprovalDescription",
"ApprovalIsFilterUserName": false,
"ApprovalIsResetWorkflow": false,
"ApprovalIsManualStart": false,
"Criteria": [
{
"ListFormCode": "App.Hr.StaffRequest",
@ -1392,6 +1401,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -1647,7 +1658,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": "DepartmentId,JobPositionId",
"LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM Sas_T_Branch WHERE IsDeleted = 'false' AND IsActive = 'true' AND TenantId = '@TENANTID' ORDER BY Name"
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [
{
@ -1656,6 +1667,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -1794,6 +1807,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -1932,6 +1947,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -2070,6 +2087,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -2208,6 +2227,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -2472,6 +2493,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,

View file

@ -276,7 +276,15 @@
"UpdateBeforeCommand": null,
"UpdateAfterCommand": "DECLARE @_k TABLE (Id uniqueidentifier); INSERT INTO @_k SELECT Id FROM Hr_T_Training WHERE Id IN @Id; DECLARE @_id uniqueidentifier; WHILE EXISTS (SELECT 1 FROM @_k) BEGIN SELECT TOP 1 @_id = Id FROM @_k; DELETE FROM @_k WHERE Id = @_id; EXEC dbo.Hr_S_TrainingSync @_id, NULL, @LastModifierId; END",
"UpdateFieldsDefaultValueDto": [],
"FormFieldsDefaultValueDto": [],
"FormFieldsDefaultValueDto": [
{
"FieldName": "BranchId",
"FieldDbType": 9,
"Value": "",
"CustomValueType": 3,
"SqlQuery": "SELECT b.\"Id\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
}
],
"WidgetsDto": [
{
"ColGap": 3,
@ -468,6 +476,7 @@
"AllowAllDeleting": false,
"AllowAdding": true,
"AllowDuplicate": false,
"OpenDetailAfterInsert": false,
"UseIcons": false,
"ConfirmDelete": true,
"NewRowPosition": "viewportTop",
@ -589,6 +598,7 @@
"ApprovalDescriptionFieldName": null,
"ApprovalIsFilterUserName": false,
"ApprovalIsResetWorkflow": false,
"ApprovalIsManualStart": false,
"Criteria": []
},
"UserId": null,
@ -1066,6 +1076,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -1204,6 +1216,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -1342,6 +1356,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -1471,7 +1487,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": null,
"LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM Sas_T_Branch WHERE IsDeleted = 'false' AND IsActive = 'true' AND TenantId = '@TENANTID' ORDER BY Name"
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [
{
@ -1480,6 +1496,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -1618,6 +1636,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -1756,6 +1776,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -2272,6 +2294,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,

View file

@ -259,6 +259,13 @@
"Value": "true",
"CustomValueType": 1,
"SqlQuery": ""
},
{
"FieldName": "BranchId",
"FieldDbType": 9,
"Value": "",
"CustomValueType": 3,
"SqlQuery": "SELECT b.\"Id\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
}
],
"WidgetsDto": [
@ -452,6 +459,7 @@
"AllowAllDeleting": false,
"AllowAdding": true,
"AllowDuplicate": false,
"OpenDetailAfterInsert": false,
"UseIcons": false,
"ConfirmDelete": true,
"NewRowPosition": "viewportTop",
@ -461,7 +469,7 @@
"Popup": {
"Title": "App.Hr.Vehicle.Title",
"ShowTitle": true,
"Width": 800,
"Width": 1000,
"Height": 875,
"FullScreen": false,
"HideOnOutsideClick": true,
@ -553,6 +561,7 @@
"ApprovalDescriptionFieldName": null,
"ApprovalIsFilterUserName": false,
"ApprovalIsResetWorkflow": false,
"ApprovalIsManualStart": false,
"Criteria": []
},
"UserId": null,
@ -1021,7 +1030,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": null,
"LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM Sas_T_Branch WHERE IsDeleted = 'false' AND IsActive = 1 AND TenantId = '@TENANTID' ORDER BY Name"
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [
{
@ -1030,6 +1039,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -1168,6 +1179,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -1936,6 +1949,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -2326,6 +2341,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,

View file

@ -271,6 +271,13 @@
"Value": "0",
"CustomValueType": 1,
"SqlQuery": ""
},
{
"FieldName": "BranchId",
"FieldDbType": 9,
"Value": "",
"CustomValueType": 3,
"SqlQuery": "SELECT b.\"Id\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
}
],
"WidgetsDto": [
@ -464,6 +471,7 @@
"AllowAllDeleting": false,
"AllowAdding": true,
"AllowDuplicate": false,
"OpenDetailAfterInsert": false,
"UseIcons": false,
"ConfirmDelete": true,
"NewRowPosition": "viewportTop",
@ -551,6 +559,7 @@
"ApprovalDescriptionFieldName": null,
"ApprovalIsFilterUserName": false,
"ApprovalIsResetWorkflow": false,
"ApprovalIsManualStart": false,
"Criteria": []
},
"UserId": null,
@ -1154,6 +1163,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -1283,7 +1294,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": null,
"LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM Sas_T_Branch WHERE IsDeleted = 'false' AND TenantId = '@TENANTID' ORDER BY Name"
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [],
"ColumnStylingDto": [],
@ -1418,6 +1429,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -1556,6 +1569,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -1946,6 +1961,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -2084,6 +2101,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,

View file

@ -186,7 +186,15 @@
"UpdateBeforeCommand": null,
"UpdateAfterCommand": null,
"UpdateFieldsDefaultValueDto": [],
"FormFieldsDefaultValueDto": [],
"FormFieldsDefaultValueDto": [
{
"FieldName": "BranchId",
"FieldDbType": 9,
"Value": "",
"CustomValueType": 3,
"SqlQuery": "SELECT b.\"Id\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
}
],
"WidgetsDto": [
{
"ColGap": 3,
@ -378,6 +386,7 @@
"AllowAllDeleting": false,
"AllowAdding": true,
"AllowDuplicate": false,
"OpenDetailAfterInsert": false,
"UseIcons": false,
"ConfirmDelete": true,
"NewRowPosition": "viewportTop",
@ -458,6 +467,7 @@
"ApprovalDescriptionFieldName": null,
"ApprovalIsFilterUserName": false,
"ApprovalIsResetWorkflow": false,
"ApprovalIsManualStart": false,
"Criteria": []
},
"UserId": null,
@ -935,6 +945,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -1073,6 +1085,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -1211,6 +1225,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -1601,6 +1617,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -1739,6 +1757,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -2120,7 +2140,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": null,
"LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM Sas_T_Branch WHERE IsDeleted = 'false' AND IsActive = 'true' AND TenantId = '@TENANTID' ORDER BY Name"
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [
{
@ -2129,6 +2149,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,

View file

@ -317,7 +317,7 @@
"FieldDbType": 9,
"Value": "",
"CustomValueType": 3,
"SqlQuery": "SELECT BranchId FROM Hr_T_Department WHERE Id = (SELECT DepartmentId FROM AbpUsers WHERE Id = '@USERID')"
"SqlQuery": "SELECT b.\"Id\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
{
"FieldName": "DeliveryPolicy",
@ -1697,7 +1697,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": "WarehouseId,OperationTypeId,SourceLocationId,DestinationLocationId",
"LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM Sas_T_Branch WHERE TenantId = '@TENANTID' AND IsDeleted = 'false' AND IsActive = 1 ORDER BY Name"
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [
{

View file

@ -311,7 +311,7 @@
"FieldDbType": 9,
"Value": "",
"CustomValueType": 3,
"SqlQuery": "SELECT BranchId FROM Hr_T_Department WHERE Id = (SELECT DepartmentId FROM AbpUsers WHERE Id = '@USERID')"
"SqlQuery": "SELECT b.\"Id\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
}
],
"WidgetsDto": [
@ -1684,7 +1684,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": "WarehouseId,OperationTypeId,SourceLocationId,DestinationLocationId",
"LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM Sas_T_Branch WHERE TenantId = '@TENANTID' AND IsDeleted = 'false' AND IsActive = 1 ORDER BY Name"
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [
{

View file

@ -197,6 +197,13 @@
"Value": "true",
"CustomValueType": 1,
"SqlQuery": null
},
{
"FieldName": "BranchId",
"FieldDbType": 9,
"Value": "",
"CustomValueType": 3,
"SqlQuery": "SELECT b.\"Id\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
}
],
"WidgetsDto": [
@ -940,7 +947,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": "WarehouseId,ParentId,DepartmentId",
"LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM Sas_T_Branch WHERE TenantId = '@TENANTID' AND IsDeleted = 'false' AND IsActive = 1 ORDER BY Name"
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [
{

View file

@ -212,6 +212,13 @@
"Value": "true",
"CustomValueType": 1,
"SqlQuery": null
},
{
"FieldName": "BranchId",
"FieldDbType": 9,
"Value": "",
"CustomValueType": 3,
"SqlQuery": "SELECT b.\"Id\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
}
],
"WidgetsDto": [
@ -955,7 +962,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": "WarehouseId,SourceLocationId,DestinationLocationId",
"LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM Sas_T_Branch WHERE TenantId = '@TENANTID' AND IsDeleted = 'false' AND IsActive = 1 ORDER BY Name"
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [
{

View file

@ -311,7 +311,7 @@
"FieldDbType": 9,
"Value": "",
"CustomValueType": 3,
"SqlQuery": "SELECT BranchId FROM Hr_T_Department WHERE Id = (SELECT DepartmentId FROM AbpUsers WHERE Id = '@USERID')"
"SqlQuery": "SELECT b.\"Id\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
}
],
"WidgetsDto": [
@ -1810,7 +1810,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": "WarehouseId,OperationTypeId,SourceLocationId,DestinationLocationId",
"LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM Sas_T_Branch WHERE TenantId = '@TENANTID' AND IsDeleted = 'false' AND IsActive = 1 ORDER BY Name"
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [
{

View file

@ -937,7 +937,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": null,
"LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM Sas_T_Branch WHERE TenantId = '@TENANTID' AND IsDeleted = 'false' AND IsActive = 1 ORDER BY Name"
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [],
"ColumnStylingDto": [],

View file

@ -2550,7 +2550,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": null,
"LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM Sas_T_Branch WHERE TenantId = '@TENANTID' AND IsDeleted = 'false' AND IsActive = 1 ORDER BY Name"
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [],
"ColumnStylingDto": [],

View file

@ -1521,7 +1521,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": null,
"LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM Sas_T_Branch WHERE TenantId = '@TENANTID' AND IsDeleted = 'false' AND IsActive = 1 ORDER BY Name"
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [],
"ColumnStylingDto": [],

View file

@ -148,6 +148,13 @@
"Value": "true",
"CustomValueType": 1,
"SqlQuery": null
},
{
"FieldName": "BranchId",
"FieldDbType": 9,
"Value": "",
"CustomValueType": 3,
"SqlQuery": "SELECT b.\"Id\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
}
],
"WidgetsDto": [
@ -341,6 +348,7 @@
"AllowAllDeleting": false,
"AllowAdding": true,
"AllowDuplicate": false,
"OpenDetailAfterInsert": false,
"UseIcons": false,
"ConfirmDelete": true,
"NewRowPosition": "viewportTop",
@ -421,6 +429,7 @@
"ApprovalDescriptionFieldName": null,
"ApprovalIsFilterUserName": false,
"ApprovalIsResetWorkflow": false,
"ApprovalIsManualStart": false,
"Criteria": []
},
"UserId": null,
@ -889,7 +898,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": null,
"LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM Sas_T_Branch WHERE TenantId = '@TENANTID' AND IsDeleted = 'false' AND IsActive = 1 ORDER BY Name"
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [
{
@ -898,6 +907,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -1036,6 +1047,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -1174,6 +1187,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,
@ -1312,6 +1327,8 @@
"IgnoreEmptyValue": false,
"Reevaluate": true,
"ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "",
"Max": null,
"Min": null,

View file

@ -1391,7 +1391,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": null,
"LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM Sas_T_Branch WHERE IsDeleted = 'false' AND IsActive = 1 AND TenantId = '@TENANTID' ORDER BY Name"
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [
{

View file

@ -1514,7 +1514,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": null,
"LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM Sas_T_Branch WHERE IsDeleted = 'false' AND IsActive = 1 AND TenantId = '@TENANTID' ORDER BY Name"
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [
{

View file

@ -1566,7 +1566,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": null,
"LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM Sas_T_Branch WHERE IsDeleted = 'false' AND IsActive = 1 AND TenantId = '@TENANTID' ORDER BY Name"
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [],
"ColumnStylingDto": [],

View file

@ -1058,7 +1058,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": null,
"LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM Sas_T_Branch WHERE TenantId = '@TENANTID' AND IsDeleted = 'false' AND IsActive = 1 ORDER BY Name"
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [],
"ColumnStylingDto": [],

View file

@ -973,7 +973,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": null,
"LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM Sas_T_Branch WHERE TenantId = '@TENANTID' AND IsDeleted = 'false' AND IsActive = 1 ORDER BY Name"
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [],
"ColumnStylingDto": [],

View file

@ -3387,7 +3387,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": null,
"LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM Sas_T_Branch WHERE IsDeleted = 'false' AND IsActive = 1 AND TenantId = '@TENANTID' ORDER BY Name"
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [],
"ColumnStylingDto": [],

View file

@ -1519,7 +1519,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": null,
"LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM Sas_T_Branch WHERE IsDeleted = 'false' AND IsActive = 1 AND TenantId = '@TENANTID' ORDER BY Name"
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [
{

View file

@ -297,21 +297,21 @@
"FieldDbType": 9,
"Value": "",
"CustomValueType": 3,
"SqlQuery": "SELECT bu.BranchId FROM Sas_T_BranchUsers bu WHERE bu.UserId = '@USERID' AND bu.BranchId = (SELECT d.BranchId FROM Hr_T_Department d WHERE d.Id = (SELECT DepartmentId FROM AbpUsers WHERE Id = '@USERID'))"
"SqlQuery": "SELECT b.\"Id\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
{
"FieldName": "WarehouseId",
"FieldDbType": 9,
"Value": "",
"CustomValueType": 3,
"SqlQuery": "SELECT bu.DefaultWarehouseId FROM Sas_T_BranchUsers bu WHERE bu.UserId = '@USERID' AND bu.BranchId = (SELECT d.BranchId FROM Hr_T_Department d WHERE d.Id = (SELECT DepartmentId FROM AbpUsers WHERE Id = '@USERID'))"
"SqlQuery": "SELECT bu.\"DefaultWarehouseId\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
{
"FieldName": "LocationId",
"FieldDbType": 9,
"Value": "",
"CustomValueType": 3,
"SqlQuery": "SELECT bu.DefaultLocationId FROM Sas_T_BranchUsers bu WHERE bu.UserId = '@USERID' AND bu.BranchId = (SELECT d.BranchId FROM Hr_T_Department d WHERE d.Id = (SELECT DepartmentId FROM AbpUsers WHERE Id = '@USERID'))"
"SqlQuery": "SELECT bu.\"DefaultLocationId\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
}
],
"WidgetsDto": [
@ -1566,7 +1566,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": "DepartmentId,WarehouseId,LocationId",
"LookupQuery": "SELECT b.Id AS [Key], b.Name AS [Name], bu.DefaultWarehouseId, bu.DefaultLocationId FROM Sas_T_Branch b INNER JOIN Sas_T_BranchUsers bu ON bu.BranchId = b.Id AND bu.UserId = '@USERID' WHERE b.IsDeleted = 'false' AND b.IsActive = 1 AND b.TenantId = '@TENANTID' ORDER BY b.Name"
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\", bu.\"DefaultWarehouseId\", bu.\"DefaultLocationId\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [
{

View file

@ -274,7 +274,7 @@
"FieldDbType": 9,
"Value": "",
"CustomValueType": 3,
"SqlQuery": "SELECT BranchId FROM Hr_T_Department WHERE Id = (SELECT DepartmentId FROM AbpUsers WHERE Id = '@USERID')"
"SqlQuery": "SELECT b.\"Id\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
}
],
"WidgetsDto": [
@ -1172,7 +1172,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": "WarehouseId,OperationTypeId",
"LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM Sas_T_Branch WHERE IsDeleted = 'false' AND IsActive = 1 AND TenantId = '@TENANTID' ORDER BY Name"
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [
{

View file

@ -293,14 +293,14 @@
"FieldDbType": 9,
"Value": "",
"CustomValueType": 3,
"SqlQuery": "SELECT bu.BranchId FROM Sas_T_BranchUsers bu WHERE bu.UserId = '@USERID' AND bu.BranchId = (SELECT d.BranchId FROM Hr_T_Department d WHERE d.Id = (SELECT DepartmentId FROM AbpUsers WHERE Id = '@USERID'))"
"SqlQuery": "SELECT b.\"Id\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
{
"FieldName": "WarehouseId",
"FieldDbType": 9,
"Value": "",
"CustomValueType": 3,
"SqlQuery": "SELECT bu.DefaultWarehouseId FROM Sas_T_BranchUsers bu WHERE bu.UserId = '@USERID' AND bu.BranchId = (SELECT d.BranchId FROM Hr_T_Department d WHERE d.Id = (SELECT DepartmentId FROM AbpUsers WHERE Id = '@USERID'))"
"SqlQuery": "SELECT bu.\"DefaultWarehouseId\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
}
],
"WidgetsDto": [
@ -1547,7 +1547,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": "WarehouseId,OperationTypeId,AgreementId",
"LookupQuery": "SELECT b.Id AS [Key], b.Name AS [Name], bu.DefaultWarehouseId, bu.DefaultLocationId FROM Sas_T_Branch b INNER JOIN Sas_T_BranchUsers bu ON bu.BranchId = b.Id AND bu.UserId = '@USERID' WHERE b.IsDeleted = 'false' AND b.IsActive = 1 AND b.TenantId = '@TENANTID' ORDER BY b.Name"
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\", bu.\"DefaultWarehouseId\", bu.\"DefaultLocationId\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [
{

View file

@ -1485,7 +1485,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": null,
"LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM Sas_T_Branch WHERE IsDeleted = 'false' AND IsActive = 1 AND TenantId = '@TENANTID' ORDER BY Name"
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [],
"ColumnStylingDto": [],

View file

@ -334,14 +334,14 @@
"FieldDbType": 9,
"Value": "",
"CustomValueType": 3,
"SqlQuery": "SELECT bu.BranchId FROM Sas_T_BranchUsers bu WHERE bu.UserId = '@USERID' AND bu.BranchId = (SELECT d.BranchId FROM Hr_T_Department d WHERE d.Id = (SELECT DepartmentId FROM AbpUsers WHERE Id = '@USERID'))"
"SqlQuery": "SELECT b.\"Id\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
{
"FieldName": "WarehouseId",
"FieldDbType": 9,
"Value": "",
"CustomValueType": 3,
"SqlQuery": "SELECT bu.DefaultWarehouseId FROM Sas_T_BranchUsers bu WHERE bu.UserId = '@USERID' AND bu.BranchId = (SELECT d.BranchId FROM Hr_T_Department d WHERE d.Id = (SELECT DepartmentId FROM AbpUsers WHERE Id = '@USERID'))"
"SqlQuery": "SELECT bu.\"DefaultWarehouseId\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
}
],
"WidgetsDto": [
@ -1390,7 +1390,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": "WarehouseId,OperationTypeId,AgreementId",
"LookupQuery": "SELECT b.Id AS [Key], b.Name AS [Name], bu.DefaultWarehouseId, bu.DefaultLocationId FROM Sas_T_Branch b INNER JOIN Sas_T_BranchUsers bu ON bu.BranchId = b.Id AND bu.UserId = '@USERID' WHERE b.IsDeleted = 'false' AND b.IsActive = 1 AND b.TenantId = '@TENANTID' ORDER BY b.Name"
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\", bu.\"DefaultWarehouseId\", bu.\"DefaultLocationId\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [
{

View file

@ -36,18 +36,18 @@
"En": "Id",
"Tr": "Kimlik"
},
{
"FieldName": "ProjectId",
"CaptionName": "App.Listform.ListformField.ProjectId",
"En": "Project",
"Tr": "Proje"
},
{
"FieldName": "BranchId",
"CaptionName": "App.Listform.ListformField.BranchId",
"En": "Branch Name",
"Tr": "Şube Adı"
},
{
"FieldName": "ProjectId",
"CaptionName": "App.Listform.ListformField.ProjectId",
"En": "Project",
"Tr": "Proje"
},
{
"FieldName": "ParentId",
"CaptionName": "App.Listform.ListformField.ParentId",
@ -797,6 +797,132 @@
"CreatorId": null,
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"EditType": null,
"ListFormCode": "App.Prj.BudgetReport",
"RoleId": null,
"UserId": null,
"ColumnJoinTableDto": {
"JoinType": null,
"TableName": null,
"JoinFieldName": null,
"BaseTableJoinFieldName": null,
"SelectFieldName": null,
"FieldNameAlias": null,
"JoinCondition2": "AND",
"JoinFieldName2": null,
"BaseTableJoinFieldName2_OrValue": null
},
"FieldName": "BranchId",
"CaptionName": "App.Listform.ListformField.BranchId",
"PlaceHolder": null,
"ReadOnly": false,
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 2,
"SourceDbType": 9,
"CultureName": "en",
"DataType": "string",
"SortIndex": 0,
"SortDirection": null,
"AllowSearch": true,
"AllowEditing": true,
"AllowAdding": true,
"ColumnCssClass": null,
"ColumnCssValue": null,
"BandName": null,
"ColumnFilterDto": {
"AllowFiltering": true,
"FilterOperations": null,
"SelectedFilterOperation": null,
"FilterValue": null
},
"ColumnHeaderDto": {
"AllowHeaderFiltering": true,
"AllowSearch": false,
"DataSource": null,
"DataSourceString": ""
},
"ColumnGroupingDto": {
"AllowGrouping": true,
"GroupIndex": null,
"AutoExpandGroup": false
},
"ColumnCustomizationDto": {
"Fixed": false,
"FixedPosition": "left",
"AllowReordering": true
},
"ColumnTotalSummaryDto": {
"SummaryType": null,
"ValueFormat": null,
"ShowInGroupFooter": false,
"AlignByColumn": false,
"DisplayFormat": null,
"ShowInColumn": null
},
"ColumnGroupSummaryDto": {
"SummaryType": null,
"ValueFormat": null,
"ShowInGroupFooter": false,
"AlignByColumn": false,
"DisplayFormat": null,
"ShowInColumn": null
},
"LookupDto": {
"DataSourceType": 2,
"ValueExpr": "Key",
"DisplayExpr": "Name",
"CascadeRelationField": null,
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": null,
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [],
"ColumnStylingDto": [],
"PermissionDto": {
"Deny": false,
"C": "App.Prj.BudgetReport.Create",
"R": "App.Prj.BudgetReport",
"U": "App.Prj.BudgetReport.Update",
"E": true,
"I": true
},
"CanRead": false,
"CanCreate": false,
"CanUpdate": false,
"CanExport": false,
"DefaultValue": null,
"DefaultValueType": 0,
"PivotSettingsDto": {
"IsPivot": true,
"Expanded": false,
"SortOrder": "asc",
"Area": "filter",
"Format": null,
"SummaryType": null,
"GroupInterval": "",
"WordWrapEnabled": false
},
"Alignment": "left",
"Format": null,
"EditOrderNo": null,
"EditGroupOrderNo": null,
"EditorType2": "dxSelectBox",
"ColSpan": 1,
"EditorOptions": "{\"showClearButton\":true,\"searchEnabled\":true}",
"GridBoxOptions": null,
"TagBoxOptions": null,
"ImageUploadOptions": null,
"EditorScript": null,
"LastModificationTime": null,
"LastModifierId": null,
"CreationTime": "0001-01-01T00:00:00",
"CreatorId": null,
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"EditType": null,
"ListFormCode": "App.Prj.BudgetReport",
@ -820,7 +946,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 2,
"ListOrderNo": 3,
"SourceDbType": 9,
"CultureName": "en",
"DataType": "string",
@ -923,132 +1049,6 @@
"CreatorId": null,
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"EditType": null,
"ListFormCode": "App.Prj.BudgetReport",
"RoleId": null,
"UserId": null,
"ColumnJoinTableDto": {
"JoinType": null,
"TableName": null,
"JoinFieldName": null,
"BaseTableJoinFieldName": null,
"SelectFieldName": null,
"FieldNameAlias": null,
"JoinCondition2": "AND",
"JoinFieldName2": null,
"BaseTableJoinFieldName2_OrValue": null
},
"FieldName": "BranchId",
"CaptionName": "App.Listform.ListformField.BranchId",
"PlaceHolder": null,
"ReadOnly": false,
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 3,
"SourceDbType": 9,
"CultureName": "en",
"DataType": "string",
"SortIndex": 0,
"SortDirection": null,
"AllowSearch": true,
"AllowEditing": true,
"AllowAdding": true,
"ColumnCssClass": null,
"ColumnCssValue": null,
"BandName": null,
"ColumnFilterDto": {
"AllowFiltering": true,
"FilterOperations": null,
"SelectedFilterOperation": null,
"FilterValue": null
},
"ColumnHeaderDto": {
"AllowHeaderFiltering": true,
"AllowSearch": false,
"DataSource": null,
"DataSourceString": ""
},
"ColumnGroupingDto": {
"AllowGrouping": true,
"GroupIndex": null,
"AutoExpandGroup": false
},
"ColumnCustomizationDto": {
"Fixed": false,
"FixedPosition": "left",
"AllowReordering": true
},
"ColumnTotalSummaryDto": {
"SummaryType": null,
"ValueFormat": null,
"ShowInGroupFooter": false,
"AlignByColumn": false,
"DisplayFormat": null,
"ShowInColumn": null
},
"ColumnGroupSummaryDto": {
"SummaryType": null,
"ValueFormat": null,
"ShowInGroupFooter": false,
"AlignByColumn": false,
"DisplayFormat": null,
"ShowInColumn": null
},
"LookupDto": {
"DataSourceType": 2,
"ValueExpr": "Key",
"DisplayExpr": "Name",
"CascadeRelationField": null,
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": null,
"LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM Sas_T_Branch WHERE TenantId = '@TENANTID' AND IsDeleted = 'false' ORDER BY Name"
},
"ValidationRuleDto": [],
"ColumnStylingDto": [],
"PermissionDto": {
"Deny": false,
"C": "App.Prj.BudgetReport.Create",
"R": "App.Prj.BudgetReport",
"U": "App.Prj.BudgetReport.Update",
"E": true,
"I": true
},
"CanRead": false,
"CanCreate": false,
"CanUpdate": false,
"CanExport": false,
"DefaultValue": null,
"DefaultValueType": 0,
"PivotSettingsDto": {
"IsPivot": true,
"Expanded": false,
"SortOrder": "asc",
"Area": "filter",
"Format": null,
"SummaryType": null,
"GroupInterval": "",
"WordWrapEnabled": false
},
"Alignment": "left",
"Format": null,
"EditOrderNo": null,
"EditGroupOrderNo": null,
"EditorType2": "dxSelectBox",
"ColSpan": 1,
"EditorOptions": "{\"showClearButton\":true,\"searchEnabled\":true}",
"GridBoxOptions": null,
"TagBoxOptions": null,
"ImageUploadOptions": null,
"EditorScript": null,
"LastModificationTime": null,
"LastModifierId": null,
"CreationTime": "0001-01-01T00:00:00",
"CreatorId": null,
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"EditType": null,
"ListFormCode": "App.Prj.BudgetReport",

View file

@ -182,7 +182,7 @@
"FieldDbType": 9,
"Value": "",
"CustomValueType": 3,
"SqlQuery": "SELECT bu.BranchId FROM Sas_T_BranchUsers bu WHERE bu.UserId = '@USERID' AND bu.BranchId = (SELECT d.BranchId FROM Hr_T_Department d WHERE d.Id = (SELECT DepartmentId FROM AbpUsers WHERE Id = '@USERID'))"
"SqlQuery": "SELECT b.\"Id\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
}
],
"WidgetsDto": [
@ -926,7 +926,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": "ProjectId",
"LookupQuery": "SELECT b.Id AS [Key], b.Name AS [Name], bu.DefaultWarehouseId, bu.DefaultLocationId FROM Sas_T_Branch b INNER JOIN Sas_T_BranchUsers bu ON bu.BranchId = b.Id AND bu.UserId = '@USERID' WHERE b.IsDeleted = 'false' AND b.IsActive = 1 AND b.TenantId = '@TENANTID' ORDER BY b.Name"
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\", bu.\"DefaultWarehouseId\", bu.\"DefaultLocationId\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [
{

View file

@ -42,18 +42,18 @@
"En": "Parent",
"Tr": "Üst"
},
{
"FieldName": "ProjectId",
"CaptionName": "App.Listform.ListformField.ProjectId",
"En": "Project",
"Tr": "Proje"
},
{
"FieldName": "BranchId",
"CaptionName": "App.Listform.ListformField.BranchId",
"En": "Branch Name",
"Tr": "Şube Adı"
},
{
"FieldName": "ProjectId",
"CaptionName": "App.Listform.ListformField.ProjectId",
"En": "Project",
"Tr": "Proje"
},
{
"FieldName": "Title",
"CaptionName": "App.Listform.ListformField.PersonnelWorkName",
@ -762,7 +762,7 @@
"GroupInterval": "",
"WordWrapEnabled": false
},
"Alignment": null,
"Alignment": "left",
"Format": null,
"EditOrderNo": null,
"EditGroupOrderNo": null,
@ -888,7 +888,7 @@
"GroupInterval": "",
"WordWrapEnabled": false
},
"Alignment": null,
"Alignment": "left",
"Format": null,
"EditOrderNo": null,
"EditGroupOrderNo": null,
@ -905,6 +905,132 @@
"CreatorId": null,
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"EditType": null,
"ListFormCode": "App.Prj.ManMonth",
"RoleId": null,
"UserId": null,
"ColumnJoinTableDto": {
"JoinType": null,
"TableName": null,
"JoinFieldName": null,
"BaseTableJoinFieldName": null,
"SelectFieldName": null,
"FieldNameAlias": null,
"JoinCondition2": "AND",
"JoinFieldName2": null,
"BaseTableJoinFieldName2_OrValue": null
},
"FieldName": "BranchId",
"CaptionName": "App.Listform.ListformField.BranchId",
"PlaceHolder": null,
"ReadOnly": false,
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 3,
"SourceDbType": 9,
"CultureName": "en",
"DataType": "string",
"SortIndex": 0,
"SortDirection": null,
"AllowSearch": true,
"AllowEditing": true,
"AllowAdding": true,
"ColumnCssClass": null,
"ColumnCssValue": null,
"BandName": null,
"ColumnFilterDto": {
"AllowFiltering": true,
"FilterOperations": null,
"SelectedFilterOperation": null,
"FilterValue": null
},
"ColumnHeaderDto": {
"AllowHeaderFiltering": true,
"AllowSearch": false,
"DataSource": null,
"DataSourceString": ""
},
"ColumnGroupingDto": {
"AllowGrouping": true,
"GroupIndex": null,
"AutoExpandGroup": false
},
"ColumnCustomizationDto": {
"Fixed": false,
"FixedPosition": "left",
"AllowReordering": true
},
"ColumnTotalSummaryDto": {
"SummaryType": null,
"ValueFormat": null,
"ShowInGroupFooter": false,
"AlignByColumn": false,
"DisplayFormat": null,
"ShowInColumn": null
},
"ColumnGroupSummaryDto": {
"SummaryType": null,
"ValueFormat": null,
"ShowInGroupFooter": false,
"AlignByColumn": false,
"DisplayFormat": null,
"ShowInColumn": null
},
"LookupDto": {
"DataSourceType": 2,
"ValueExpr": "Key",
"DisplayExpr": "Name",
"CascadeRelationField": null,
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": null,
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [],
"ColumnStylingDto": [],
"PermissionDto": {
"Deny": false,
"C": "App.Prj.ManMonth.Create",
"R": "App.Prj.ManMonth",
"U": "App.Prj.ManMonth.Update",
"E": true,
"I": true
},
"CanRead": false,
"CanCreate": false,
"CanUpdate": false,
"CanExport": false,
"DefaultValue": null,
"DefaultValueType": 0,
"PivotSettingsDto": {
"IsPivot": true,
"Expanded": false,
"SortOrder": "asc",
"Area": "filter",
"Format": null,
"SummaryType": null,
"GroupInterval": "",
"WordWrapEnabled": false
},
"Alignment": "left",
"Format": null,
"EditOrderNo": null,
"EditGroupOrderNo": null,
"EditorType2": "dxSelectBox",
"ColSpan": 1,
"EditorOptions": "{\"showClearButton\":true,\"searchEnabled\":true}",
"GridBoxOptions": null,
"TagBoxOptions": null,
"ImageUploadOptions": null,
"EditorScript": null,
"LastModificationTime": null,
"LastModifierId": null,
"CreationTime": "0001-01-01T00:00:00",
"CreatorId": null,
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"EditType": null,
"ListFormCode": "App.Prj.ManMonth",
@ -928,7 +1054,7 @@
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 3,
"ListOrderNo": 4,
"SourceDbType": 9,
"CultureName": "en",
"DataType": "string",
@ -1014,139 +1140,13 @@
"GroupInterval": "",
"WordWrapEnabled": false
},
"Alignment": null,
"Format": null,
"EditOrderNo": null,
"EditGroupOrderNo": null,
"EditorType2": "dxSelectBox",
"ColSpan": 1,
"EditorOptions": null,
"GridBoxOptions": null,
"TagBoxOptions": null,
"ImageUploadOptions": null,
"EditorScript": null,
"LastModificationTime": null,
"LastModifierId": null,
"CreationTime": "0001-01-01T00:00:00",
"CreatorId": null,
"Id": "00000000-0000-0000-0000-000000000000"
},
{
"EditType": null,
"ListFormCode": "App.Prj.ManMonth",
"RoleId": null,
"UserId": null,
"ColumnJoinTableDto": {
"JoinType": null,
"TableName": null,
"JoinFieldName": null,
"BaseTableJoinFieldName": null,
"SelectFieldName": null,
"FieldNameAlias": null,
"JoinCondition2": "AND",
"JoinFieldName2": null,
"BaseTableJoinFieldName2_OrValue": null
},
"FieldName": "BranchId",
"CaptionName": "App.Listform.ListformField.BranchId",
"PlaceHolder": null,
"ReadOnly": false,
"Visible": true,
"IsActive": true,
"Width": 0,
"ListOrderNo": 4,
"SourceDbType": 9,
"CultureName": "en",
"DataType": "string",
"SortIndex": 0,
"SortDirection": null,
"AllowSearch": true,
"AllowEditing": true,
"AllowAdding": true,
"ColumnCssClass": null,
"ColumnCssValue": null,
"BandName": null,
"ColumnFilterDto": {
"AllowFiltering": true,
"FilterOperations": null,
"SelectedFilterOperation": null,
"FilterValue": null
},
"ColumnHeaderDto": {
"AllowHeaderFiltering": true,
"AllowSearch": false,
"DataSource": null,
"DataSourceString": ""
},
"ColumnGroupingDto": {
"AllowGrouping": true,
"GroupIndex": null,
"AutoExpandGroup": false
},
"ColumnCustomizationDto": {
"Fixed": false,
"FixedPosition": "left",
"AllowReordering": true
},
"ColumnTotalSummaryDto": {
"SummaryType": null,
"ValueFormat": null,
"ShowInGroupFooter": false,
"AlignByColumn": false,
"DisplayFormat": null,
"ShowInColumn": null
},
"ColumnGroupSummaryDto": {
"SummaryType": null,
"ValueFormat": null,
"ShowInGroupFooter": false,
"AlignByColumn": false,
"DisplayFormat": null,
"ShowInColumn": null
},
"LookupDto": {
"DataSourceType": 2,
"ValueExpr": "Key",
"DisplayExpr": "Name",
"CascadeRelationField": null,
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": null,
"LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM Sas_T_Branch WHERE TenantId = '@TENANTID' AND IsDeleted = 'false' ORDER BY Name"
},
"ValidationRuleDto": [],
"ColumnStylingDto": [],
"PermissionDto": {
"Deny": false,
"C": "App.Prj.ManMonth.Create",
"R": "App.Prj.ManMonth",
"U": "App.Prj.ManMonth.Update",
"E": true,
"I": true
},
"CanRead": false,
"CanCreate": false,
"CanUpdate": false,
"CanExport": false,
"DefaultValue": null,
"DefaultValueType": 0,
"PivotSettingsDto": {
"IsPivot": true,
"Expanded": false,
"SortOrder": "asc",
"Area": "filter",
"Format": null,
"SummaryType": null,
"GroupInterval": "",
"WordWrapEnabled": false
},
"Alignment": "left",
"Format": null,
"EditOrderNo": null,
"EditGroupOrderNo": null,
"EditorType2": "dxSelectBox",
"ColSpan": 1,
"EditorOptions": "{\"showClearButton\":true,\"searchEnabled\":true}",
"EditorOptions": null,
"GridBoxOptions": null,
"TagBoxOptions": null,
"ImageUploadOptions": null,
@ -1266,7 +1266,7 @@
"GroupInterval": "",
"WordWrapEnabled": false
},
"Alignment": null,
"Alignment": "left",
"Format": null,
"EditOrderNo": null,
"EditGroupOrderNo": null,
@ -1392,7 +1392,7 @@
"GroupInterval": "",
"WordWrapEnabled": false
},
"Alignment": null,
"Alignment": "left",
"Format": null,
"EditOrderNo": null,
"EditGroupOrderNo": null,
@ -1518,7 +1518,7 @@
"GroupInterval": "",
"WordWrapEnabled": false
},
"Alignment": null,
"Alignment": "left",
"Format": null,
"EditOrderNo": null,
"EditGroupOrderNo": null,
@ -1644,7 +1644,7 @@
"GroupInterval": "",
"WordWrapEnabled": false
},
"Alignment": null,
"Alignment": "left",
"Format": null,
"EditOrderNo": null,
"EditGroupOrderNo": null,
@ -1770,7 +1770,7 @@
"GroupInterval": "",
"WordWrapEnabled": false
},
"Alignment": null,
"Alignment": "left",
"Format": null,
"EditOrderNo": null,
"EditGroupOrderNo": null,
@ -1896,7 +1896,7 @@
"GroupInterval": "",
"WordWrapEnabled": false
},
"Alignment": null,
"Alignment": "left",
"Format": null,
"EditOrderNo": null,
"EditGroupOrderNo": null,
@ -2022,7 +2022,7 @@
"GroupInterval": "",
"WordWrapEnabled": false
},
"Alignment": null,
"Alignment": "left",
"Format": null,
"EditOrderNo": null,
"EditGroupOrderNo": null,

View file

@ -1124,7 +1124,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": null,
"LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM Sas_T_Branch WHERE TenantId = '@TENANTID' AND IsDeleted = 'false' ORDER BY Name"
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [],
"ColumnStylingDto": [],

View file

@ -240,7 +240,7 @@
"FieldDbType": 9,
"Value": "",
"CustomValueType": 3,
"SqlQuery": "SELECT bu.BranchId FROM Sas_T_BranchUsers bu WHERE bu.UserId = '@USERID' AND bu.BranchId = (SELECT d.BranchId FROM Hr_T_Department d WHERE d.Id = (SELECT DepartmentId FROM AbpUsers WHERE Id = '@USERID'))"
"SqlQuery": "SELECT b.\"Id\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
}
],
"WidgetsDto": [
@ -1125,7 +1125,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": null,
"LookupQuery": "SELECT b.Id AS [Key], b.Name AS [Name] FROM Sas_T_Branch b INNER JOIN Sas_T_BranchUsers bu ON bu.BranchId = b.Id AND bu.UserId = '@USERID' WHERE b.IsDeleted = 'false' AND b.IsActive = 1 AND b.TenantId = '@TENANTID' ORDER BY b.Name"
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [
{

View file

@ -375,6 +375,7 @@
"AllowAllDeleting": false,
"AllowAdding": false,
"AllowDuplicate": false,
"OpenDetailAfterInsert": false,
"UseIcons": false,
"ConfirmDelete": true,
"NewRowPosition": "viewportTop",
@ -447,6 +448,7 @@
"ApprovalDescriptionFieldName": null,
"ApprovalIsFilterUserName": false,
"ApprovalIsResetWorkflow": false,
"ApprovalIsManualStart": false,
"Criteria": []
},
"UserId": null,
@ -1167,7 +1169,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": null,
"LookupQuery": "SELECT Id AS [Key], Name AS [Name] FROM Sas_T_Branch WHERE TenantId = '@TENANTID' AND IsDeleted = 'false' ORDER BY Name"
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [],
"ColumnStylingDto": [],

View file

@ -188,7 +188,7 @@
"FieldDbType": 9,
"Value": "",
"CustomValueType": 3,
"SqlQuery": "SELECT bu.BranchId FROM Sas_T_BranchUsers bu WHERE bu.UserId = '@USERID' AND bu.BranchId = (SELECT d.BranchId FROM Hr_T_Department d WHERE d.Id = (SELECT DepartmentId FROM AbpUsers WHERE Id = '@USERID'))"
"SqlQuery": "SELECT b.\"Id\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
}
],
"WidgetsDto": [],
@ -970,7 +970,7 @@
"CascadeFilterOperator": "=",
"CascadeParentFields": null,
"CascadeEmptyFields": "ProjectId",
"LookupQuery": "SELECT b.Id AS [Key], b.Name AS [Name], bu.DefaultWarehouseId, bu.DefaultLocationId FROM Sas_T_Branch b INNER JOIN Sas_T_BranchUsers bu ON bu.BranchId = b.Id AND bu.UserId = '@USERID' WHERE b.IsDeleted = 'false' AND b.IsActive = 1 AND b.TenantId = '@TENANTID' ORDER BY b.Name"
"LookupQuery": "SELECT b.\"Id\" AS \"Key\", b.\"Name\" AS \"Name\", bu.\"DefaultWarehouseId\", bu.\"DefaultLocationId\" FROM \"Sas_T_Branch\" b INNER JOIN \"Sas_T_BranchUsers\" bu ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '@USERID' WHERE b.\"IsDeleted\" = 'false' AND b.\"IsActive\" = 'true' AND b.\"TenantId\" = '@TENANTID' ORDER BY b.\"Name\""
},
"ValidationRuleDto": [
{

View file

@ -8,10 +8,19 @@ export interface OrgChartUserDto {
phoneNumber?: string
}
// Sunucu enum'u sayı olarak gelir (OrgChartNodeType, Application.Contracts).
export enum OrgChartNodeType {
Branch = 0,
Department = 1,
JobPosition = 2,
}
export interface OrgChartNodeDto {
id: string
name: string
parentId?: string
/** Şube düğümü köktür; departman ve pozisyon ağaçları şubelerinin altında açılır. */
nodeType: OrgChartNodeType
departmentId?: string
departmentName?: string
jobPositionId?: string

View file

@ -14,6 +14,7 @@ import {
FaSitemap,
FaBriefcase,
FaBuilding,
FaIndustry,
FaChevronDown,
FaChevronRight,
FaSearchPlus,
@ -27,6 +28,7 @@ import {
getOrgChartDepartments,
getOrgChartJobPositions,
OrgChartNodeDto,
OrgChartNodeType,
OrgChartUserDto,
} from '@/services/orgChart.service'
import { useLocalization } from '@/utils/hooks/useLocalization'
@ -204,7 +206,9 @@ async function captureAsJpeg(element: HTMLElement, filename: string, zoom: numbe
const headerEl = card.querySelector('[data-header]') as HTMLElement | null
const headerH = headerEl ? Math.round(headerEl.getBoundingClientRect().height / zoom) : 34
ctx.save()
drawTopRR(ctx, cx, cy, cw, headerH, rad)
// Kullanıcı bölümü yokken başlık kartın tamamıdır; ekrandaki gibi dört köşe yuvarlanır.
if (headerH >= ch) drawRR(ctx, cx, cy, cw, ch, rad)
else drawTopRR(ctx, cx, cy, cw, headerH, rad)
ctx.fillStyle = headerHex
ctx.fill()
ctx.restore()
@ -456,7 +460,10 @@ function OrgChartNode({
const [collapsed, setCollapsed] = useState(false)
const [dragging, setDragging] = useState(false)
const hasChildren = node.children.length > 0
const hasUsers = showUsers && node.users.length > 0
const isBranch = node.nodeType === OrgChartNodeType.Branch
// Şube kartı yalnızca başlıktır; kullanıcı listesi departman/pozisyon kartlarında kalır.
const usersVisible = showUsers && !isBranch
const hasUsers = usersVisible && node.users.length > 0
const position = positions[node.id] ?? { x: 0, y: 0 }
const levelColor = LEVEL_COLORS[depth % LEVEL_COLORS.length]
@ -520,17 +527,19 @@ function OrgChartNode({
}}
data-card=""
data-depth={depth}
data-users-visible={showUsers ? 'true' : 'false'}
data-users-visible={usersVisible ? 'true' : 'false'}
className={`relative bg-white border ${borderColor} rounded-xl shadow-sm w-36 sm:w-44 md:w-52 hover:shadow-md transition-shadow`}
style={{ cursor: dragging ? 'grabbing' : 'grab' }}
onMouseDown={handleDragStart}
>
{/* Header bar */}
{/* Header bar — kullanıcı bölümü yokken kartın tamamıdır, alt köşeler de yuvarlanır */}
<div
data-header=""
className={`${headerBg} rounded-t-xl px-3 py-2 flex items-center gap-2 dark:bg-gray-900 dark:text-gray-100`}
className={`${headerBg} ${usersVisible ? 'rounded-t-xl' : 'rounded-xl'} px-3 py-2 flex items-center gap-2 dark:bg-gray-900 dark:text-gray-100`}
>
{mode === 'department' ? (
{isBranch ? (
<FaIndustry className="w-3 h-3 text-white opacity-80 flex-shrink-0" />
) : mode === 'department' ? (
<FaBuilding className="w-3 h-3 text-white opacity-80 flex-shrink-0" />
) : (
<FaBriefcase className="w-3 h-3 text-white opacity-80 flex-shrink-0" />
@ -563,7 +572,7 @@ function OrgChartNode({
</div>
{/* Users section */}
{showUsers && (
{usersVisible && (
<div className="px-3 py-2">
{hasUsers ? (
<div className="flex flex-col gap-1">