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) (`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ç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. 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'ı **Şube alanı standardı (her ekranda aynı):** `BranchId` alanının seçenekleri kullanıcıya atanmış aktif şubelerdir
`Sas_T_BranchUsers` ile `UserId = '@USERID'` üzerinden süzülüp `DefaultWarehouseId`/`DefaultLocationId` kolonlarını (`Sas_T_Branch` + `Sas_T_BranchUsers`, `UserId = '@USERID'`, ada göre sıralı; `LookupQueryValues.UserBranchValues`),
döndürür, şube alanının `EditorScript`'i `copy("DefaultWarehouseId", "WarehouseId")` (+ konum) ile yazar; yeni kaydın yeni kaydın varsayılanı bu listenin ilk seçeneğidir (`DbQuery`, `LookupQueryValues.UserDefaultBranchValue`). Sorgu
şube/depo/konum varsayılanı `DbQuery` ile aynı tablodan okunur. Örnek: `App.Prc.MyMaterialRequest`, metinleri `lowcode.instructions.md` §8.1'dedir; `IsBranch` olmayan ekran ve tanım ekranı da aynı sözleşmeyi kullanır.
`App.Prc.PurchaseRfq`, `App.Prc.PurchaseOrder`. 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` ### 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 | | 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 › 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`. | | **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). | | **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). | | **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). | | **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. | | **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. | | **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 › 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 › 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`). | | **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 | | 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) | | 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` | | 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`): kullanıcının departmanının şubesi, kullanıcının şubeleri arasındaysa (örnek: `App.Prc.PurchaseOrder`, `App.Prj.Project`) | | 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`) | | 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 | | 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 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). ş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ığı ### 8.2 View tasarımcısı (`SqlViewDesignerDialog`) — çalışma mantığı
Bir ekran birden fazla tablodan besleniyorsa, `SelectCommandType: 4` (Query) yerine **tasarlanmış 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` `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 (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 `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 departman lookup'ı şubeye göre süzülür (`BranchDepartmentValues`). Host varsayılan şubesi sabit
kimlikle kurulur (`PlatformConsts.Branches.BranchIdDefaultValue`) ve kimlikle kurulur (`PlatformConsts.Branches.BranchIdDefaultValue`) ve
`data/App.Hr.{Department,JobPosition}.json` satırları bu kimliğe bağlıdır. Numaratör `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} " + $"AND {TenantFilter} " +
$"ORDER BY \"Name\";"; $"ORDER BY \"Name\";";
// Lookup sorgusu ekranın tenant filtresinden geçmez; kiracı kırılımı token ile sorguda yazılır. // Şube alanının standart lookup'ı: kullanıcıya atanmış (Sas_T_BranchUsers) aktif şubeler; her ekranda aynı küme.
public static string TenantBranchValues = public static string UserBranchValues =
$"SELECT " + $"SELECT " +
$"\"Id\" AS \"Key\", " + $"b.\"Id\" AS \"Key\", " +
$"\"Name\" AS \"Name\" " + $"b.\"Name\" AS \"Name\" " +
$"FROM \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.Branch))}\" " + $"FROM \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.Branch))}\" b " +
$"WHERE " + $"INNER JOIN \"{TableNameResolver.GetFullTableName(nameof(TableNameEnum.BranchUsers))}\" bu " +
$"{TenantFilter} " + $"ON bu.\"BranchId\" = b.\"Id\" AND bu.\"UserId\" = '{DefaultValues.UserId}' " +
$"AND \"IsDeleted\" = 'false' " + $"WHERE b.\"IsDeleted\" = 'false' " +
$"ORDER BY \"Name\";"; $"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. // 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. // 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 string PhoneNumber { get; set; }
} }
public enum OrgChartNodeType
{
Branch,
Department,
JobPosition
}
public class OrgChartNodeDto public class OrgChartNodeDto
{ {
public Guid Id { get; set; } public Guid Id { get; set; }
public string Name { get; set; } public string Name { get; set; }
public Guid? ParentId { 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 // Only for JobPosition nodes
public Guid? DepartmentId { get; set; } public Guid? DepartmentId { get; set; }
public string DepartmentName { get; set; } public string DepartmentName { get; set; }

View file

@ -15,15 +15,18 @@ namespace Sozsoft.Platform.OrgChart;
[Route("api/app/org-chart")] [Route("api/app/org-chart")]
public class OrgChartAppService : PlatformAppService public class OrgChartAppService : PlatformAppService
{ {
private readonly IRepository<Branch, Guid> _branchRepository;
private readonly IRepository<Department, Guid> _departmentRepository; private readonly IRepository<Department, Guid> _departmentRepository;
private readonly IRepository<JobPosition, Guid> _jobPositionRepository; private readonly IRepository<JobPosition, Guid> _jobPositionRepository;
private readonly IIdentityUserRepository _userRepository; private readonly IIdentityUserRepository _userRepository;
public OrgChartAppService( public OrgChartAppService(
IRepository<Branch, Guid> branchRepository,
IRepository<Department, Guid> departmentRepository, IRepository<Department, Guid> departmentRepository,
IRepository<JobPosition, Guid> jobPositionRepository, IRepository<JobPosition, Guid> jobPositionRepository,
IIdentityUserRepository userRepository) IIdentityUserRepository userRepository)
{ {
_branchRepository = branchRepository;
_departmentRepository = departmentRepository; _departmentRepository = departmentRepository;
_jobPositionRepository = jobPositionRepository; _jobPositionRepository = jobPositionRepository;
_userRepository = userRepository; _userRepository = userRepository;
@ -74,7 +77,8 @@ public class OrgChartAppService : PlatformAppService
{ {
Id = d.Id, Id = d.Id,
Name = d.Name, Name = d.Name,
ParentId = d.ParentId, NodeType = OrgChartNodeType.Department,
ParentId = ResolveParent(d.ParentId, d.BranchId, departments.Select(x => x.Id)),
JobPositionId = topPosition?.Id, JobPositionId = topPosition?.Id,
JobPositionName = topPosition?.Name, JobPositionName = topPosition?.Name,
Users = topPosition != null && usersByJobPosition.TryGetValue(topPosition.Id, out var positionUsers) Users = topPosition != null && usersByJobPosition.TryGetValue(topPosition.Id, out var positionUsers)
@ -83,7 +87,7 @@ public class OrgChartAppService : PlatformAppService
}; };
}).ToList(); }).ToList();
return nodes; return await WithBranchRootsAsync(nodes);
} }
[HttpGet("job-positions")] [HttpGet("job-positions")]
@ -100,7 +104,8 @@ public class OrgChartAppService : PlatformAppService
{ {
Id = jp.Id, Id = jp.Id,
Name = jp.Name, Name = jp.Name,
ParentId = jp.ParentId, NodeType = OrgChartNodeType.JobPosition,
ParentId = ResolveParent(jp.ParentId, jp.BranchId, jobPositions.Select(x => x.Id)),
DepartmentId = jp.DepartmentId, DepartmentId = jp.DepartmentId,
DepartmentName = deptDict.TryGetValue(jp.DepartmentId, out var name) ? name : null, DepartmentName = deptDict.TryGetValue(jp.DepartmentId, out var name) ? name : null,
JobPositionId = jp.Id, JobPositionId = jp.Id,
@ -110,7 +115,33 @@ public class OrgChartAppService : PlatformAppService
: [], : [],
}).ToList(); }).ToList();
return nodes; 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( private static Dictionary<Guid, List<OrgChartUserDto>> GroupUsersByJobPosition(

View file

@ -476,6 +476,10 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
new() { new() {
Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, 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 #region Department Fields
@ -567,7 +571,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
DataSourceType = UiLookupDataSourceTypeEnum.Query, DataSourceType = UiLookupDataSourceTypeEnum.Query,
DisplayExpr = "Name", DisplayExpr = "Name",
ValueExpr = "Key", ValueExpr = "Key",
LookupQuery = LookupQueryValues.TenantBranchValues, LookupQuery = LookupQueryValues.UserBranchValues,
CascadeEmptyFields = "ParentId" CascadeEmptyFields = "ParentId"
}), }),
ValidationRuleJson = DefaultValidationRuleRequiredJson, ValidationRuleJson = DefaultValidationRuleRequiredJson,
@ -630,6 +634,10 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
new() { new() {
Order = 1, ColCount = 1, ColSpan = 1, ItemType = "group" }, 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 #region JobPosition Fields
@ -721,7 +729,7 @@ public class ListFormSeeder_Hr : IDataSeedContributor, ITransientDependency
DataSourceType = UiLookupDataSourceTypeEnum.Query, DataSourceType = UiLookupDataSourceTypeEnum.Query,
DisplayExpr = "Name", DisplayExpr = "Name",
ValueExpr = "Key", ValueExpr = "Key",
LookupQuery = LookupQueryValues.TenantBranchValues, LookupQuery = LookupQueryValues.UserBranchValues,
CascadeEmptyFields = "DepartmentId,ParentId" CascadeEmptyFields = "DepartmentId,ParentId"
}), }),
ValidationRuleJson = DefaultValidationRuleRequiredJson, 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`, `CreationTime`, `CreatorId`, `LastModificationTime`, `LastModifierId`, `IsDeleted`,
`DeletionTime`, `DeleterId`). Kullanıcı açıkça "tenant yok / audit yok" demedikçe çıkarma. `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` 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 (PG `uuid NOT NULL`) da taşır; ekranı `IsBranch: true`. **Şube alanı her ekranda aynı sözleşmeyle
(`Sas_T_BranchUsers`) seçilir ve yeni kayıtta kullanıcının departman şubesiyle (`DbQuery`) açılır. 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 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 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ı: (`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 | | 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 | | 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 | | 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 | | 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 | | 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 | | 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ı). Bu ekranlarda widget yoktur ve veri seed dosyasına aynalanmaz (`SeedSync*` kapalı).
**Organizasyon Şeması** (`ui/src/views/admin/hr/OrgChart.tsx`): **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. - **Kullanıcıları göster:** Açık/kapalı seçilebilir.
- **Yakınlaştırma:** %30–300 arası, Ctrl + tekerlek ile de. - **Yakınlaştırma:** %30–300 arası, Ctrl + tekerlek ile de.
- **Dışa aktarma:** JPG olarak. - **Dışa aktarma:** JPG olarak.
@ -1052,7 +1053,7 @@ Hr_V_LeaveBalanceYear (defter) ──▶ Hr_V_LeaveSummary (çalışan başına
| Nesne | Önemli kolonlar | Kural | | 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_LeaveBalanceAdjustment` | `EmployeeId`, `AdjustmentDate`, `Days` (≠ 0, ±), `Reason`, `IsActive` | — |
| `Hr_T_LeaveType` (+ kolon) | `BalanceExceedAction` (`Block`/`Warn`, varsayılan `Block`) | Kayıpsız `ALTER ADD` | | `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 | | `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_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_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_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_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_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 | | `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 | | Tablo | Önemli kolonlar |
| --- | --- | | --- | --- |
| `Hr_T_DisciplinaryPenaltyType` | `Name`, `Severity`, `Description`, `IsActive` | | `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_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_DisciplinaryDecision` | `CaseId`, `DecisionDate`, `PenaltyTypeId`, `EffectiveDate`, `NotificationDate`, `DeductionAmount`, `Status` (Draft/Final), `DecisionText` (HTML) |
| `Hr_T_DisciplinaryFile` | `CaseId`, `DocumentTypeId`, `FileDate`, `FileName`, `FileContent` | | `Hr_T_DisciplinaryFile` | `CaseId`, `DocumentTypeId`, `FileDate`, `FileName`, `FileContent` |
@ -3367,7 +3368,7 @@ Kontrol edilmeli (koddan tespit edilenler):
| Kapsam | Kiracı | | Kapsam | Kiracı |
| Widget'lar | `App.Widget.Total`, `App.Widget.Pending`, `App.Hr.StaffRequest.Widget.Approved`, `App.Hr.StaffRequest.Widget.Headcount` | | Widget'lar | `App.Widget.Total`, `App.Widget.Pending`, `App.Hr.StaffRequest.Widget.Approved`, `App.Hr.StaffRequest.Widget.Headcount` |
| Komutlar | InsertAfter: SQL | | 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' | | 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 | | 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) | | Alt formlar | `App.Hr.JobApplication` (Id → JobPostingId) |
| Widget'lar | `App.Widget.Total`, `App.Widget.Published`, `App.Widget.Draft`, `App.Hr.JobPosting.Widget.Closed` | | Widget'lar | `App.Widget.Total`, `App.Widget.Published`, `App.Widget.Draft`, `App.Hr.JobPosting.Widget.Closed` |
| Komutlar | InsertAfter: SQL · UpdateAfter: SQL | | 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 | | 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 | | Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
| Kapsam | Kiracı | | Kapsam | Kiracı |
| Komutlar | InsertAfter: SQL · UpdateAfter: SQL | | 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` | | Butonlar | `App.Hr.JobOffer.OfferLetter` |
| Onay akışı | Start 'Onaya Gönderildi' → Approval 'Onay Bekliyor' → Inform 'Onay Bilgisi' → Inform 'Ret Bilgisi' → End 'Onaylandı' → End 'Reddedildi' | | 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ı | | Kapsam | Kiracı |
| Widget'lar | `App.Hr.Leave.Widget.ManagerApproval`, `App.Hr.Leave.Widget.HrApproval`, `App.Hr.Leave.Widget.Approved`, `App.Hr.Leave.Widget.Rejected` | | 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` | | 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' | | 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 | | Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- | | --- | --- | --- | --- | --- | --- |
| `RequestNo` | Talep No | dxTextBox | | ✓ | | | `RequestNo` | Talep No | dxTextBox | | ✓ | |
| `BranchId` | Tesis Adı | dxSelectBox | ✓ | ✓ | sorgu: Sas_T_Branch |
| `EmployeeId` | Çalışan | dxSelectBox | ✓ | ✓ | sorgu: AbpUsers · script | | `EmployeeId` | Çalışan | dxSelectBox | ✓ | ✓ | sorgu: AbpUsers · script |
| `DepartmentId` | Departman | dxSelectBox | | ✓ | sorgu: Hr_T_Department | | `DepartmentId` | Departman | dxSelectBox | | ✓ | sorgu: Hr_T_Department |
| `JobPositionId` | İş Pozisyonu | dxSelectBox | | ✓ | sorgu: Hr_T_JobPosition | | `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) | | 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` | | 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` | | Komutlar | UpdateAfter: `Hr_S_TrainingSync` · DeleteAfter: `Hr_S_TrainingSync` |
| Form varsayılanları | BranchId= |
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak | | 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` | | 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) | | Todo | başlık `EmployeeName`, durum `Status` (GoalSetting,SelfReview,ManagerReview,Calibration,Completed) |
| Komutlar | InsertAfter: `Hr_S_PerformanceReviewAfterSave` · UpdateAfter: `Hr_S_PerformanceReviewAfterSave` | | 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 | | 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 | | `EmployeeId` | Çalışan | dxSelectBox | ✓ | ✓ | sorgu: AbpUsers · script |
| `EmployeeName` | Çalışan Adı | dxTextBox | | | | | `EmployeeName` | Çalışan Adı | dxTextBox | | | |
| `ManagerId` | Yönetici | dxSelectBox | | ✓ | sorgu: AbpUsers |
| `DepartmentId` | Departman | dxSelectBox | | ✓ | sorgu: Hr_T_Department | | `DepartmentId` | Departman | dxSelectBox | | ✓ | sorgu: Hr_T_Department |
| `JobPositionId` | Pozisyon | dxSelectBox | | ✓ | sorgu: Hr_T_JobPosition | | `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 | | `Status` | Durum | dxSelectBox | ✓ | ✓ | liste: GoalSetting, SelfReview, ManagerReview, Calibration, Completed |
| `IsActive` | Aktif | dxCheckBox | | ✓ | | | `IsActive` | Aktif | dxCheckBox | | ✓ | |
| `GoalScore` | Hedef Puanı | dxNumberBox | | ✓ | | | `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` | | 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) | | Todo | başlık `Subject`, durum `Status` (Open,AwaitingDefense,Decided,Closed) |
| Komutlar | InsertAfter: SQL | | 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 | | Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- | | --- | --- | --- | --- | --- | --- |
| `CaseNo` | Dosya No | dxTextBox | | | | | `CaseNo` | Dosya No | dxTextBox | | | |
| `BranchId` | Tesis Adı | dxSelectBox | ✓ | ✓ | sorgu: Sas_T_Branch |
| `UserId` | Personel | dxSelectBox | ✓ | ✓ | sorgu: AbpUsers · script | | `UserId` | Personel | dxSelectBox | ✓ | ✓ | sorgu: AbpUsers · script |
| `DepartmentId` | Departman | dxSelectBox | | ✓ | sorgu: Hr_T_Department | | `DepartmentId` | Departman | dxSelectBox | | ✓ | sorgu: Hr_T_Department |
| `JobPositionId` | Pozisyon | dxSelectBox | | ✓ | sorgu: Hr_T_JobPosition | | `JobPositionId` | Pozisyon | dxSelectBox | | ✓ | sorgu: Hr_T_JobPosition |
@ -5488,7 +5493,7 @@ Kontrol edilmeli (koddan tespit edilenler):
| Kapsam | Kiracı | | Kapsam | Kiracı |
| Alt formlar | `App.Hr.VehicleFile` (Id → VehicleId) | | 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` | | 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 | | Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- | | --- | --- | --- | --- | --- | --- |
@ -5555,7 +5560,7 @@ Kontrol edilmeli (koddan tespit edilenler):
| Kapsam | Kiracı | | Kapsam | Kiracı |
| Widget'lar | `App.Widget.Total`, `App.Hr.Vehicle.Widget.Left`, `App.Widget.Today` | | Widget'lar | `App.Widget.Total`, `App.Hr.Vehicle.Widget.Left`, `App.Widget.Today` |
| Komutlar | InsertAfter: SQL · DeleteAfter: SQL | | 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 | | 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 | | Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
| Kapsam | Kiracı | | Kapsam | Kiracı |
| Widget'lar | `App.Hr.Visitor.Widget.Today`, `App.Hr.Visitor.Widget.Inside`, `App.Hr.Visitor.Widget.Exited` | | 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 | | 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 | | Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
| Kapsam | Kiracı | | Kapsam | Kiracı |
| Widget'lar | `App.Widget.Total`, `App.Widget.Today`, `App.Hr.EventLog.Widget.Important` | | 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 | | 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 | | Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
| Kapsam | Kiracı | | Kapsam | Kiracı |
| Widget'lar | `App.Widget.Total`, `App.Widget.Active`, `App.Widget.Passive` | | 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` | | Veri aynası | `data/App.Inventory.Warehouse.json` |
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak | | 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 | | Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
| Kapsam | Kiracı | | Kapsam | Kiracı |
| Widget'lar | `App.Widget.Total`, `App.Widget.Active`, `App.Widget.Passive` | | 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` | | Veri aynası | `data/App.Inventory.Location.json` |
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak | | 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 | | Düzenleme | ekle ✓ · düzenle ✓ · sil ✓ · popup |
| Kapsam | Kiracı | | Kapsam | Kiracı |
| Widget'lar | `App.Widget.Total`, `App.Widget.Active`, `App.Widget.Passive` | | 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` | | Veri aynası | `data/App.Inventory.OperationType.json` |
| Alan | Başlık | Editör | Zorunlu | Formda | Kaynak | | 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 ### 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 ### 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 ### 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 ### 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 ### 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 ### 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 ### 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 ### 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 | | Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- | | --- | --- | --- | --- | --- | --- |
| `ParentId` | Üst | dxTextBox | | | | | `ParentId` | Üst | dxTextBox | | | |
| `ProjectId` | Proje | dxSelectBox | | | sorgu: Prj_T_Project |
| `BranchId` | Şube Adı | dxSelectBox | | | sorgu: Sas_T_Branch | | `BranchId` | Şube Adı | dxSelectBox | | | sorgu: Sas_T_Branch |
| `ProjectId` | Proje | dxSelectBox | | | sorgu: Prj_T_Project |
| `Title` | Personel / İş Adı | dxTextBox | | | | | `Title` | Personel / İş Adı | dxTextBox | | | |
| `StartDate` | Başlangıç | dxDateBox | | | | | `StartDate` | Başlangıç | dxDateBox | | | |
| `EndDate` | Bitiş | 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 | | Alan | Başlık | Editör | Zorunlu | Formda | Kaynak |
| --- | --- | --- | --- | --- | --- | | --- | --- | --- | --- | --- | --- |
| `ProjectId` | Proje | dxSelectBox | | | sorgu: Prj_T_Project |
| `BranchId` | Şube Adı | dxSelectBox | | | sorgu: Sas_T_Branch | | `BranchId` | Şube Adı | dxSelectBox | | | sorgu: Sas_T_Branch |
| `ProjectId` | Proje | dxSelectBox | | | sorgu: Prj_T_Project |
| `ParentId` | Üst | dxTextBox | | | | | `ParentId` | Üst | dxTextBox | | | |
| `Title` | Gider Kalemi | dxTextBox | | | | | `Title` | Gider Kalemi | dxTextBox | | | |
| `ResourceType` | Kaynak Tipi | dxSelectBox | | | liste: Personnel, Travel, Equipment, Consulting, Service, Material, Other | | `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; 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. -- İ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" 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", "StartDate", "EndDate", "IsHalfDay", "Days", "Description", "SickLeaveId",
"ApprovalStatus", "ApprovalUser", "ApprovalDate", "LastNotifiedStatus", "IsActive", "CreationTime", "CreatorId", "IsDeleted") "ApprovalStatus", "ApprovalUser", "ApprovalDate", "LastNotifiedStatus", "IsActive", "CreationTime", "CreatorId", "IsDeleted")
SELECT gen_random_uuid(), v_TenantId, 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' || ( '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 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 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 -- 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. -- dokunulmaz, böylece dönem yeniden kaydedildiğinde yalnızca yeni katılan çalışanlar eklenir.
WITH created AS ( WITH created AS (
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).
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 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 FROM "AbpUsers" u
WHERE u."IsDeleted" = FALSE AND u."IsActive" = TRUE WHERE u."IsDeleted" = FALSE AND u."IsActive" = TRUE
AND (u."TenantId" = v_TenantId OR (u."TenantId" IS NULL AND v_TenantId IS NULL)) 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(), "Id" uuid NOT NULL DEFAULT gen_random_uuid(),
"TenantId" uuid NULL, "TenantId" uuid NULL,
"BranchId" uuid NOT NULL,
"CaseNo" varchar(32) NULL, "CaseNo" varchar(32) NULL,
"UserId" uuid NOT NULL, "UserId" uuid NOT NULL,
"DepartmentId" uuid 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(), "Id" uuid NOT NULL DEFAULT gen_random_uuid(),
"TenantId" uuid NULL, "TenantId" uuid NULL,
"BranchId" uuid NOT NULL,
"RequestNo" varchar(32) NULL, "RequestNo" varchar(32) NULL,
"EmployeeId" uuid NOT NULL, "EmployeeId" uuid NOT NULL,
"EmployeeName" varchar(256) 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(), "Id" uuid NOT NULL DEFAULT gen_random_uuid(),
"TenantId" uuid NULL, "TenantId" uuid NULL,
"BranchId" uuid NOT NULL,
"PeriodId" uuid NOT NULL, "PeriodId" uuid NOT NULL,
"EmployeeId" uuid NOT NULL, "EmployeeId" uuid NOT NULL,
"EmployeeName" varchar(128) NULL, "EmployeeName" varchar(128) NULL,

View file

@ -65,11 +65,13 @@ BEGIN
DECLARE @Year nvarchar(4) = CAST(YEAR(GETUTCDATE()) AS nvarchar(4)); 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. -- İ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 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, StartDate, EndDate, IsHalfDay, Days, [Description], SickLeaveId,
ApprovalStatus, ApprovalUser, ApprovalDate, LastNotifiedStatus, IsActive, CreationTime, CreatorId, IsDeleted) ApprovalStatus, ApprovalUser, ApprovalDate, LastNotifiedStatus, IsActive, CreationTime, CreatorId, IsDeleted)
SELECT NEWID(), @TenantId, 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( N'IZN-' + @Year + N'-' + RIGHT(N'00000' + CAST(
(SELECT COALESCE(MAX(TRY_CAST(RIGHT(x.RequestNo, 5) AS int)), 0) + 1 (SELECT COALESCE(MAX(TRY_CAST(RIGHT(x.RequestNo, 5) AS int)), 0) + 1
FROM Hr_T_LeaveRequest x 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 -- 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. -- 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 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 FROM AbpUsers u
WHERE u.IsDeleted = 0 AND u.IsActive = 1 WHERE u.IsDeleted = 0 AND u.IsActive = 1
AND (u.TenantId = @TenantId OR (u.TenantId IS NULL AND @TenantId IS NULL)) 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(), [Id] uniqueidentifier NOT NULL DEFAULT NEWID(),
[TenantId] uniqueidentifier NULL, [TenantId] uniqueidentifier NULL,
[BranchId] uniqueidentifier NOT NULL,
[CaseNo] nvarchar(32) NULL, [CaseNo] nvarchar(32) NULL,
[UserId] uniqueidentifier NOT NULL, [UserId] uniqueidentifier NOT NULL,
[DepartmentId] uniqueidentifier NULL, [DepartmentId] uniqueidentifier NULL,

View file

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

View file

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

View file

@ -79,6 +79,12 @@
"En": "Case No", "En": "Case No",
"Tr": "Dosya No" "Tr": "Dosya No"
}, },
{
"FieldName": "BranchId",
"CaptionName": "App.Listform.ListformField.BranchId",
"En": "Branch",
"Tr": "Tesis Adı"
},
{ {
"FieldName": "UserId", "FieldName": "UserId",
"CaptionName": "App.Listform.ListformField.Employee", "CaptionName": "App.Listform.ListformField.Employee",
@ -243,6 +249,13 @@
"Value": "Open", "Value": "Open",
"CustomValueType": 1, "CustomValueType": 1,
"SqlQuery": "" "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": [ "WidgetsDto": [
@ -436,6 +449,7 @@
"AllowAllDeleting": false, "AllowAllDeleting": false,
"AllowAdding": true, "AllowAdding": true,
"AllowDuplicate": false, "AllowDuplicate": false,
"OpenDetailAfterInsert": false,
"UseIcons": false, "UseIcons": false,
"ConfirmDelete": true, "ConfirmDelete": true,
"NewRowPosition": "viewportTop", "NewRowPosition": "viewportTop",
@ -497,7 +511,7 @@
"InsertServiceAddress": "list-form-data/insert", "InsertServiceAddress": "list-form-data/insert",
"DeleteServiceAddress": "list-form-data/delete", "DeleteServiceAddress": "list-form-data/delete",
"IsTenant": true, "IsTenant": true,
"IsBranch": false, "IsBranch": true,
"IsOrganizationUnit": false, "IsOrganizationUnit": false,
"ListFormType": "List", "ListFormType": "List",
"IsSubForm": false, "IsSubForm": false,
@ -563,6 +577,7 @@
"ApprovalDescriptionFieldName": null, "ApprovalDescriptionFieldName": null,
"ApprovalIsFilterUserName": false, "ApprovalIsFilterUserName": false,
"ApprovalIsResetWorkflow": false, "ApprovalIsResetWorkflow": false,
"ApprovalIsManualStart": false,
"Criteria": [] "Criteria": []
}, },
"UserId": null, "UserId": null,
@ -1076,6 +1091,146 @@
"CreatorId": null, "CreatorId": null,
"Id": "00000000-0000-0000-0000-000000000000" "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, "EditType": null,
"ListFormCode": "App.Hr.DisciplinaryCase", "ListFormCode": "App.Hr.DisciplinaryCase",
@ -1099,7 +1254,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 3, "ListOrderNo": 4,
"SourceDbType": 9, "SourceDbType": 9,
"CultureName": "en", "CultureName": "en",
"DataType": "string", "DataType": "string",
@ -1166,6 +1321,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -1199,7 +1356,7 @@
}, },
"Alignment": "left", "Alignment": "left",
"Format": null, "Format": null,
"EditOrderNo": 1, "EditOrderNo": 2,
"EditGroupOrderNo": 1, "EditGroupOrderNo": 1,
"EditorType2": "dxSelectBox", "EditorType2": "dxSelectBox",
"ColSpan": 2, "ColSpan": 2,
@ -1237,7 +1394,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 4, "ListOrderNo": 5,
"SourceDbType": 9, "SourceDbType": 9,
"CultureName": "en", "CultureName": "en",
"DataType": "string", "DataType": "string",
@ -1325,7 +1482,7 @@
}, },
"Alignment": "left", "Alignment": "left",
"Format": null, "Format": null,
"EditOrderNo": 2, "EditOrderNo": 3,
"EditGroupOrderNo": 1, "EditGroupOrderNo": 1,
"EditorType2": "dxSelectBox", "EditorType2": "dxSelectBox",
"ColSpan": 1, "ColSpan": 1,
@ -1363,7 +1520,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 5, "ListOrderNo": 6,
"SourceDbType": 9, "SourceDbType": 9,
"CultureName": "en", "CultureName": "en",
"DataType": "string", "DataType": "string",
@ -1451,7 +1608,7 @@
}, },
"Alignment": "left", "Alignment": "left",
"Format": null, "Format": null,
"EditOrderNo": 3, "EditOrderNo": 4,
"EditGroupOrderNo": 1, "EditGroupOrderNo": 1,
"EditorType2": "dxSelectBox", "EditorType2": "dxSelectBox",
"ColSpan": 1, "ColSpan": 1,
@ -1489,7 +1646,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 6, "ListOrderNo": 7,
"SourceDbType": 5, "SourceDbType": 5,
"CultureName": "en", "CultureName": "en",
"DataType": "date", "DataType": "date",
@ -1556,6 +1713,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -1589,7 +1748,7 @@
}, },
"Alignment": "left", "Alignment": "left",
"Format": null, "Format": null,
"EditOrderNo": 4, "EditOrderNo": 5,
"EditGroupOrderNo": 1, "EditGroupOrderNo": 1,
"EditorType2": "dxDateBox", "EditorType2": "dxDateBox",
"ColSpan": 1, "ColSpan": 1,
@ -1627,7 +1786,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 7, "ListOrderNo": 8,
"SourceDbType": 6, "SourceDbType": 6,
"CultureName": "en", "CultureName": "en",
"DataType": "datetime", "DataType": "datetime",
@ -1715,7 +1874,7 @@
}, },
"Alignment": "left", "Alignment": "left",
"Format": null, "Format": null,
"EditOrderNo": 5, "EditOrderNo": 6,
"EditGroupOrderNo": 1, "EditGroupOrderNo": 1,
"EditorType2": "dxDateBox", "EditorType2": "dxDateBox",
"ColSpan": 1, "ColSpan": 1,
@ -1753,7 +1912,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 8, "ListOrderNo": 9,
"SourceDbType": 16, "SourceDbType": 16,
"CultureName": "en", "CultureName": "en",
"DataType": "string", "DataType": "string",
@ -1841,7 +2000,7 @@
}, },
"Alignment": "left", "Alignment": "left",
"Format": null, "Format": null,
"EditOrderNo": 6, "EditOrderNo": 7,
"EditGroupOrderNo": 1, "EditGroupOrderNo": 1,
"EditorType2": "dxTextBox", "EditorType2": "dxTextBox",
"ColSpan": 2, "ColSpan": 2,
@ -1879,7 +2038,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 9, "ListOrderNo": 10,
"SourceDbType": 9, "SourceDbType": 9,
"CultureName": "en", "CultureName": "en",
"DataType": "string", "DataType": "string",
@ -1967,7 +2126,7 @@
}, },
"Alignment": "left", "Alignment": "left",
"Format": null, "Format": null,
"EditOrderNo": 7, "EditOrderNo": 8,
"EditGroupOrderNo": 1, "EditGroupOrderNo": 1,
"EditorType2": "dxSelectBox", "EditorType2": "dxSelectBox",
"ColSpan": 2, "ColSpan": 2,
@ -2005,7 +2164,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 10, "ListOrderNo": 11,
"SourceDbType": 16, "SourceDbType": 16,
"CultureName": "en", "CultureName": "en",
"DataType": "string", "DataType": "string",
@ -2072,6 +2231,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -2105,7 +2266,7 @@
}, },
"Alignment": "left", "Alignment": "left",
"Format": null, "Format": null,
"EditOrderNo": 8, "EditOrderNo": 9,
"EditGroupOrderNo": 1, "EditGroupOrderNo": 1,
"EditorType2": "dxRadioGroup", "EditorType2": "dxRadioGroup",
"ColSpan": 2, "ColSpan": 2,
@ -2143,7 +2304,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 11, "ListOrderNo": 12,
"SourceDbType": 16, "SourceDbType": 16,
"CultureName": "en", "CultureName": "en",
"DataType": "string", "DataType": "string",
@ -2210,6 +2371,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -2281,7 +2444,7 @@
"Visible": false, "Visible": false,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 12, "ListOrderNo": 13,
"SourceDbType": 16, "SourceDbType": 16,
"CultureName": "en", "CultureName": "en",
"DataType": "string", "DataType": "string",
@ -2348,6 +2511,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -2419,7 +2584,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 13, "ListOrderNo": 14,
"SourceDbType": 16, "SourceDbType": 16,
"CultureName": "en", "CultureName": "en",
"DataType": "string", "DataType": "string",

View file

@ -164,7 +164,15 @@
"UpdateBeforeCommand": null, "UpdateBeforeCommand": null,
"UpdateAfterCommand": null, "UpdateAfterCommand": null,
"UpdateFieldsDefaultValueDto": [], "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": [ "WidgetsDto": [
{ {
"ColGap": 3, "ColGap": 3,
@ -1046,7 +1054,7 @@
"CascadeFilterOperator": "=", "CascadeFilterOperator": "=",
"CascadeParentFields": null, "CascadeParentFields": null,
"CascadeEmptyFields": 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": [], "ValidationRuleDto": [],
"ColumnStylingDto": [], "ColumnStylingDto": [],

View file

@ -386,6 +386,13 @@
"Value": "Office", "Value": "Office",
"CustomValueType": 1, "CustomValueType": 1,
"SqlQuery": "" "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": [], "WidgetsDto": [],
@ -564,6 +571,7 @@
"AllowAllDeleting": false, "AllowAllDeleting": false,
"AllowAdding": true, "AllowAdding": true,
"AllowDuplicate": false, "AllowDuplicate": false,
"OpenDetailAfterInsert": false,
"UseIcons": false, "UseIcons": false,
"ConfirmDelete": true, "ConfirmDelete": true,
"NewRowPosition": "viewportTop", "NewRowPosition": "viewportTop",
@ -673,6 +681,7 @@
"ApprovalDescriptionFieldName": "ApprovalDescription", "ApprovalDescriptionFieldName": "ApprovalDescription",
"ApprovalIsFilterUserName": false, "ApprovalIsFilterUserName": false,
"ApprovalIsResetWorkflow": false, "ApprovalIsResetWorkflow": false,
"ApprovalIsManualStart": false,
"Criteria": [ "Criteria": [
{ {
"ListFormCode": "App.Hr.JobOffer", "ListFormCode": "App.Hr.JobOffer",
@ -1385,6 +1394,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -1649,6 +1660,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -2039,6 +2052,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -2177,6 +2192,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -2315,6 +2332,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -2570,7 +2589,7 @@
"CascadeFilterOperator": "=", "CascadeFilterOperator": "=",
"CascadeParentFields": null, "CascadeParentFields": null,
"CascadeEmptyFields": "DepartmentId,JobPositionId", "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": [ "ValidationRuleDto": [
{ {
@ -2579,6 +2598,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -2717,6 +2738,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -2855,6 +2878,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -2993,6 +3018,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -3131,6 +3158,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,

View file

@ -352,6 +352,13 @@
"Value": "@DATE", "Value": "@DATE",
"CustomValueType": 2, "CustomValueType": 2,
"SqlQuery": "" "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": [ "WidgetsDto": [
@ -545,6 +552,7 @@
"AllowAllDeleting": false, "AllowAllDeleting": false,
"AllowAdding": true, "AllowAdding": true,
"AllowDuplicate": false, "AllowDuplicate": false,
"OpenDetailAfterInsert": false,
"UseIcons": false, "UseIcons": false,
"ConfirmDelete": true, "ConfirmDelete": true,
"NewRowPosition": "viewportTop", "NewRowPosition": "viewportTop",
@ -646,6 +654,7 @@
"ApprovalDescriptionFieldName": null, "ApprovalDescriptionFieldName": null,
"ApprovalIsFilterUserName": false, "ApprovalIsFilterUserName": false,
"ApprovalIsResetWorkflow": false, "ApprovalIsResetWorkflow": false,
"ApprovalIsManualStart": false,
"Criteria": [] "Criteria": []
}, },
"UserId": null, "UserId": null,
@ -1375,6 +1384,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -1513,6 +1524,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -1642,7 +1655,7 @@
"CascadeFilterOperator": "=", "CascadeFilterOperator": "=",
"CascadeParentFields": null, "CascadeParentFields": null,
"CascadeEmptyFields": "DepartmentId,JobPositionId", "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": [ "ValidationRuleDto": [
{ {
@ -1651,6 +1664,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -1789,6 +1804,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -1927,6 +1944,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -2065,6 +2084,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -2203,6 +2224,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -2341,6 +2364,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,

View file

@ -92,6 +92,12 @@
"En": "Request No", "En": "Request No",
"Tr": "Talep No" "Tr": "Talep No"
}, },
{
"FieldName": "BranchId",
"CaptionName": "App.Listform.ListformField.BranchId",
"En": "Branch",
"Tr": "Tesis Adı"
},
{ {
"FieldName": "EmployeeId", "FieldName": "EmployeeId",
"CaptionName": "App.Listform.ListformField.EmployeeId", "CaptionName": "App.Listform.ListformField.EmployeeId",
@ -323,6 +329,13 @@
"Value": "@DATE", "Value": "@DATE",
"CustomValueType": 2, "CustomValueType": 2,
"SqlQuery": "" "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": [ "WidgetsDto": [
@ -516,6 +529,7 @@
"AllowAllDeleting": false, "AllowAllDeleting": false,
"AllowAdding": true, "AllowAdding": true,
"AllowDuplicate": false, "AllowDuplicate": false,
"OpenDetailAfterInsert": false,
"UseIcons": false, "UseIcons": false,
"ConfirmDelete": true, "ConfirmDelete": true,
"NewRowPosition": "viewportTop", "NewRowPosition": "viewportTop",
@ -584,7 +598,7 @@
"InsertServiceAddress": "list-form-data/insert", "InsertServiceAddress": "list-form-data/insert",
"DeleteServiceAddress": "list-form-data/delete", "DeleteServiceAddress": "list-form-data/delete",
"IsTenant": true, "IsTenant": true,
"IsBranch": false, "IsBranch": true,
"IsOrganizationUnit": false, "IsOrganizationUnit": false,
"ListFormType": "List", "ListFormType": "List",
"IsSubForm": false, "IsSubForm": false,
@ -610,6 +624,7 @@
"ApprovalDescriptionFieldName": "ApprovalDescription", "ApprovalDescriptionFieldName": "ApprovalDescription",
"ApprovalIsFilterUserName": false, "ApprovalIsFilterUserName": false,
"ApprovalIsResetWorkflow": false, "ApprovalIsResetWorkflow": false,
"ApprovalIsManualStart": false,
"Criteria": [ "Criteria": [
{ {
"ListFormCode": "App.Hr.LeaveRequest", "ListFormCode": "App.Hr.LeaveRequest",
@ -1232,6 +1247,146 @@
"CreatorId": null, "CreatorId": null,
"Id": "00000000-0000-0000-0000-000000000000" "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, "EditType": null,
"ListFormCode": "App.Hr.LeaveRequest", "ListFormCode": "App.Hr.LeaveRequest",
@ -1255,7 +1410,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 3, "ListOrderNo": 4,
"SourceDbType": 9, "SourceDbType": 9,
"CultureName": "en", "CultureName": "en",
"DataType": "string", "DataType": "string",
@ -1322,6 +1477,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -1355,7 +1512,7 @@
}, },
"Alignment": "left", "Alignment": "left",
"Format": null, "Format": null,
"EditOrderNo": 2, "EditOrderNo": 3,
"EditGroupOrderNo": 1, "EditGroupOrderNo": 1,
"EditorType2": "dxSelectBox", "EditorType2": "dxSelectBox",
"ColSpan": 1, "ColSpan": 1,
@ -1393,7 +1550,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 4, "ListOrderNo": 5,
"SourceDbType": 9, "SourceDbType": 9,
"CultureName": "en", "CultureName": "en",
"DataType": "string", "DataType": "string",
@ -1481,7 +1638,7 @@
}, },
"Alignment": "left", "Alignment": "left",
"Format": null, "Format": null,
"EditOrderNo": 3, "EditOrderNo": 4,
"EditGroupOrderNo": 1, "EditGroupOrderNo": 1,
"EditorType2": "dxSelectBox", "EditorType2": "dxSelectBox",
"ColSpan": 1, "ColSpan": 1,
@ -1519,7 +1676,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 5, "ListOrderNo": 6,
"SourceDbType": 9, "SourceDbType": 9,
"CultureName": "en", "CultureName": "en",
"DataType": "string", "DataType": "string",
@ -1607,7 +1764,7 @@
}, },
"Alignment": "left", "Alignment": "left",
"Format": null, "Format": null,
"EditOrderNo": 4, "EditOrderNo": 5,
"EditGroupOrderNo": 1, "EditGroupOrderNo": 1,
"EditorType2": "dxSelectBox", "EditorType2": "dxSelectBox",
"ColSpan": 1, "ColSpan": 1,
@ -1645,7 +1802,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 6, "ListOrderNo": 7,
"SourceDbType": 9, "SourceDbType": 9,
"CultureName": "en", "CultureName": "en",
"DataType": "string", "DataType": "string",
@ -1712,144 +1869,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"Pattern": "", "ComparisonTarget": null,
"Max": null, "ValidationCallback": 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": "",
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -1885,13 +1906,13 @@
"Format": null, "Format": null,
"EditOrderNo": 6, "EditOrderNo": 6,
"EditGroupOrderNo": 1, "EditGroupOrderNo": 1,
"EditorType2": "dxDateBox", "EditorType2": "dxSelectBox",
"ColSpan": 1, "ColSpan": 1,
"EditorOptions": "{\"type\":\"datetime\",\"displayFormat\":\"dd.MM.yyyy HH:mm\",\"useMaskBehavior\":true,\"showClearButton\":true}", "EditorOptions": "{\"searchEnabled\":true,\"showClearButton\":true}",
"GridBoxOptions": null, "GridBoxOptions": null,
"TagBoxOptions": null, "TagBoxOptions": null,
"ImageUploadOptions": 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, "LastModificationTime": null,
"LastModifierId": null, "LastModifierId": null,
"CreationTime": "0001-01-01T00:00:00", "CreationTime": "0001-01-01T00:00:00",
@ -1914,8 +1935,8 @@
"JoinFieldName2": null, "JoinFieldName2": null,
"BaseTableJoinFieldName2_OrValue": null "BaseTableJoinFieldName2_OrValue": null
}, },
"FieldName": "EndDate", "FieldName": "StartDate",
"CaptionName": "App.Listform.ListformField.EndDate", "CaptionName": "App.Listform.ListformField.StartDate",
"PlaceHolder": null, "PlaceHolder": null,
"ReadOnly": false, "ReadOnly": false,
"Visible": true, "Visible": true,
@ -1988,6 +2009,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -2029,6 +2052,146 @@
"GridBoxOptions": null, "GridBoxOptions": null,
"TagBoxOptions": null, "TagBoxOptions": null,
"ImageUploadOptions": 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 })()) }", "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, "LastModificationTime": null,
"LastModifierId": null, "LastModifierId": null,
@ -2059,7 +2222,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 9, "ListOrderNo": 10,
"SourceDbType": 3, "SourceDbType": 3,
"CultureName": "en", "CultureName": "en",
"DataType": "boolean", "DataType": "boolean",
@ -2147,7 +2310,7 @@
}, },
"Alignment": "left", "Alignment": "left",
"Format": null, "Format": null,
"EditOrderNo": 8, "EditOrderNo": 9,
"EditGroupOrderNo": 1, "EditGroupOrderNo": 1,
"EditorType2": "dxCheckBox", "EditorType2": "dxCheckBox",
"ColSpan": 1, "ColSpan": 1,
@ -2185,7 +2348,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 10, "ListOrderNo": 11,
"SourceDbType": 16, "SourceDbType": 16,
"CultureName": "en", "CultureName": "en",
"DataType": "string", "DataType": "string",
@ -2273,7 +2436,7 @@
}, },
"Alignment": "left", "Alignment": "left",
"Format": null, "Format": null,
"EditOrderNo": 9, "EditOrderNo": 10,
"EditGroupOrderNo": 1, "EditGroupOrderNo": 1,
"EditorType2": "dxSelectBox", "EditorType2": "dxSelectBox",
"ColSpan": 1, "ColSpan": 1,
@ -2311,7 +2474,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 11, "ListOrderNo": 12,
"SourceDbType": 7, "SourceDbType": 7,
"CultureName": "en", "CultureName": "en",
"DataType": "number", "DataType": "number",
@ -2399,7 +2562,7 @@
}, },
"Alignment": "left", "Alignment": "left",
"Format": null, "Format": null,
"EditOrderNo": 10, "EditOrderNo": 11,
"EditGroupOrderNo": 1, "EditGroupOrderNo": 1,
"EditorType2": "dxNumberBox", "EditorType2": "dxNumberBox",
"ColSpan": 1, "ColSpan": 1,
@ -2437,7 +2600,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 12, "ListOrderNo": 13,
"SourceDbType": 16, "SourceDbType": 16,
"CultureName": "en", "CultureName": "en",
"DataType": "string", "DataType": "string",
@ -2525,7 +2688,7 @@
}, },
"Alignment": "left", "Alignment": "left",
"Format": null, "Format": null,
"EditOrderNo": 11, "EditOrderNo": 12,
"EditGroupOrderNo": 1, "EditGroupOrderNo": 1,
"EditorType2": "dxTextBox", "EditorType2": "dxTextBox",
"ColSpan": 2, "ColSpan": 2,
@ -2563,7 +2726,7 @@
"Visible": false, "Visible": false,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 14, "ListOrderNo": 15,
"SourceDbType": 16, "SourceDbType": 16,
"CultureName": "en", "CultureName": "en",
"DataType": "string", "DataType": "string",
@ -2689,7 +2852,7 @@
"Visible": false, "Visible": false,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 14, "ListOrderNo": 15,
"SourceDbType": 11, "SourceDbType": 11,
"CultureName": "en", "CultureName": "en",
"DataType": "number", "DataType": "number",
@ -2815,7 +2978,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 15, "ListOrderNo": 16,
"SourceDbType": 16, "SourceDbType": 16,
"CultureName": "en", "CultureName": "en",
"DataType": "string", "DataType": "string",
@ -2941,7 +3104,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 16, "ListOrderNo": 17,
"SourceDbType": 16, "SourceDbType": 16,
"CultureName": "en", "CultureName": "en",
"DataType": "string", "DataType": "string",
@ -3067,7 +3230,7 @@
"Visible": false, "Visible": false,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 17, "ListOrderNo": 18,
"SourceDbType": 16, "SourceDbType": 16,
"CultureName": "en", "CultureName": "en",
"DataType": "string", "DataType": "string",
@ -3193,7 +3356,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 18, "ListOrderNo": 19,
"SourceDbType": 16, "SourceDbType": 16,
"CultureName": "en", "CultureName": "en",
"DataType": "string", "DataType": "string",
@ -3319,7 +3482,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 19, "ListOrderNo": 20,
"SourceDbType": 16, "SourceDbType": 16,
"CultureName": "en", "CultureName": "en",
"DataType": "string", "DataType": "string",
@ -3445,7 +3608,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 20, "ListOrderNo": 21,
"SourceDbType": 6, "SourceDbType": 6,
"CultureName": "en", "CultureName": "en",
"DataType": "datetime", "DataType": "datetime",
@ -3571,7 +3734,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 21, "ListOrderNo": 22,
"SourceDbType": 16, "SourceDbType": 16,
"CultureName": "en", "CultureName": "en",
"DataType": "string", "DataType": "string",

View file

@ -217,6 +217,13 @@
"Value": "@USERID", "Value": "@USERID",
"CustomValueType": 2, "CustomValueType": 2,
"SqlQuery": null "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, "UpdateCommand": null,
@ -437,6 +444,7 @@
"AllowAllDeleting": false, "AllowAllDeleting": false,
"AllowAdding": true, "AllowAdding": true,
"AllowDuplicate": false, "AllowDuplicate": false,
"OpenDetailAfterInsert": false,
"UseIcons": false, "UseIcons": false,
"ConfirmDelete": true, "ConfirmDelete": true,
"NewRowPosition": "viewportTop", "NewRowPosition": "viewportTop",
@ -531,6 +539,7 @@
"ApprovalDescriptionFieldName": null, "ApprovalDescriptionFieldName": null,
"ApprovalIsFilterUserName": false, "ApprovalIsFilterUserName": false,
"ApprovalIsResetWorkflow": false, "ApprovalIsResetWorkflow": false,
"ApprovalIsManualStart": false,
"Criteria": [] "Criteria": []
}, },
"UserId": null, "UserId": null,
@ -1134,6 +1143,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -1272,6 +1283,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -1410,6 +1423,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,

View file

@ -197,10 +197,10 @@
"Tr": "Kimlik" "Tr": "Kimlik"
}, },
{ {
"FieldName": "PeriodId", "FieldName": "BranchId",
"CaptionName": "App.Listform.ListformField.PeriodId", "CaptionName": "App.Listform.ListformField.BranchId",
"En": "Period", "En": "Branch",
"Tr": "Dönem" "Tr": "Tesis Adı"
}, },
{ {
"FieldName": "EmployeeId", "FieldName": "EmployeeId",
@ -214,12 +214,6 @@
"En": "Employee Name", "En": "Employee Name",
"Tr": "Çalışan Adı" "Tr": "Çalışan Adı"
}, },
{
"FieldName": "ManagerId",
"CaptionName": "App.Listform.ListformField.ManagerId",
"En": "Manager",
"Tr": "Yönetici"
},
{ {
"FieldName": "DepartmentId", "FieldName": "DepartmentId",
"CaptionName": "App.Listform.ListformField.DepartmentId", "CaptionName": "App.Listform.ListformField.DepartmentId",
@ -232,6 +226,18 @@
"En": "Position", "En": "Position",
"Tr": "Pozisyon" "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", "FieldName": "Status",
"CaptionName": "App.Listform.ListformField.ReviewStatus", "CaptionName": "App.Listform.ListformField.ReviewStatus",
@ -426,6 +432,13 @@
"Value": "true", "Value": "true",
"CustomValueType": 1, "CustomValueType": 1,
"SqlQuery": "" "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": [ "WidgetsDto": [
@ -688,7 +701,7 @@
"InsertServiceAddress": "list-form-data/insert", "InsertServiceAddress": "list-form-data/insert",
"DeleteServiceAddress": "list-form-data/delete", "DeleteServiceAddress": "list-form-data/delete",
"IsTenant": true, "IsTenant": true,
"IsBranch": false, "IsBranch": true,
"IsOrganizationUnit": false, "IsOrganizationUnit": false,
"ListFormType": "List", "ListFormType": "List",
"IsSubForm": false, "IsSubForm": false,
@ -1176,8 +1189,8 @@
"JoinFieldName2": null, "JoinFieldName2": null,
"BaseTableJoinFieldName2_OrValue": null "BaseTableJoinFieldName2_OrValue": null
}, },
"FieldName": "PeriodId", "FieldName": "BranchId",
"CaptionName": "App.Listform.ListformField.PeriodId", "CaptionName": "App.Listform.ListformField.BranchId",
"PlaceHolder": null, "PlaceHolder": null,
"ReadOnly": false, "ReadOnly": false,
"Visible": true, "Visible": true,
@ -1241,7 +1254,7 @@
"CascadeFilterOperator": "=", "CascadeFilterOperator": "=",
"CascadeParentFields": null, "CascadeParentFields": null,
"CascadeEmptyFields": 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": [ "ValidationRuleDto": [
{ {
@ -1566,132 +1579,6 @@
"CreatorId": null, "CreatorId": null,
"Id": "00000000-0000-0000-0000-000000000000" "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, "EditType": null,
"ListFormCode": "App.Hr.PerformanceReview", "ListFormCode": "App.Hr.PerformanceReview",
@ -1715,7 +1602,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 6, "ListOrderNo": 5,
"SourceDbType": 9, "SourceDbType": 9,
"CultureName": "en", "CultureName": "en",
"DataType": "string", "DataType": "string",
@ -1803,7 +1690,7 @@
}, },
"Alignment": "left", "Alignment": "left",
"Format": null, "Format": null,
"EditOrderNo": 4, "EditOrderNo": 3,
"EditGroupOrderNo": 1, "EditGroupOrderNo": 1,
"EditorType2": "dxSelectBox", "EditorType2": "dxSelectBox",
"ColSpan": 1, "ColSpan": 1,
@ -1841,7 +1728,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 7, "ListOrderNo": 6,
"SourceDbType": 9, "SourceDbType": 9,
"CultureName": "en", "CultureName": "en",
"DataType": "string", "DataType": "string",
@ -1929,6 +1816,146 @@
}, },
"Alignment": "left", "Alignment": "left",
"Format": null, "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, "EditOrderNo": 5,
"EditGroupOrderNo": 1, "EditGroupOrderNo": 1,
"EditorType2": "dxSelectBox", "EditorType2": "dxSelectBox",
@ -1944,6 +1971,132 @@
"CreatorId": null, "CreatorId": null,
"Id": "00000000-0000-0000-0000-000000000000" "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, "EditType": null,
"ListFormCode": "App.Hr.PerformanceReview", "ListFormCode": "App.Hr.PerformanceReview",
@ -1967,7 +2120,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 8, "ListOrderNo": 9,
"SourceDbType": 16, "SourceDbType": 16,
"CultureName": "en", "CultureName": "en",
"DataType": "string", "DataType": "string",
@ -2069,7 +2222,7 @@
}, },
"Alignment": "left", "Alignment": "left",
"Format": null, "Format": null,
"EditOrderNo": 6, "EditOrderNo": 7,
"EditGroupOrderNo": 1, "EditGroupOrderNo": 1,
"EditorType2": "dxSelectBox", "EditorType2": "dxSelectBox",
"ColSpan": 1, "ColSpan": 1,
@ -2107,7 +2260,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 9, "ListOrderNo": 10,
"SourceDbType": 3, "SourceDbType": 3,
"CultureName": "en", "CultureName": "en",
"DataType": "boolean", "DataType": "boolean",
@ -2195,7 +2348,7 @@
}, },
"Alignment": "left", "Alignment": "left",
"Format": null, "Format": null,
"EditOrderNo": 7, "EditOrderNo": 8,
"EditGroupOrderNo": 1, "EditGroupOrderNo": 1,
"EditorType2": "dxCheckBox", "EditorType2": "dxCheckBox",
"ColSpan": 1, "ColSpan": 1,
@ -2233,7 +2386,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 10, "ListOrderNo": 11,
"SourceDbType": 7, "SourceDbType": 7,
"CultureName": "en", "CultureName": "en",
"DataType": "number", "DataType": "number",
@ -2359,7 +2512,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 11, "ListOrderNo": 12,
"SourceDbType": 7, "SourceDbType": 7,
"CultureName": "en", "CultureName": "en",
"DataType": "number", "DataType": "number",
@ -2485,7 +2638,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 12, "ListOrderNo": 13,
"SourceDbType": 7, "SourceDbType": 7,
"CultureName": "en", "CultureName": "en",
"DataType": "number", "DataType": "number",
@ -2611,7 +2764,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 13, "ListOrderNo": 14,
"SourceDbType": 7, "SourceDbType": 7,
"CultureName": "en", "CultureName": "en",
"DataType": "number", "DataType": "number",
@ -2737,7 +2890,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 14, "ListOrderNo": 15,
"SourceDbType": 7, "SourceDbType": 7,
"CultureName": "en", "CultureName": "en",
"DataType": "number", "DataType": "number",
@ -2863,7 +3016,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 15, "ListOrderNo": 16,
"SourceDbType": 9, "SourceDbType": 9,
"CultureName": "en", "CultureName": "en",
"DataType": "string", "DataType": "string",
@ -2989,7 +3142,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 16, "ListOrderNo": 17,
"SourceDbType": 16, "SourceDbType": 16,
"CultureName": "en", "CultureName": "en",
"DataType": "string", "DataType": "string",
@ -3115,7 +3268,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 17, "ListOrderNo": 18,
"SourceDbType": 16, "SourceDbType": 16,
"CultureName": "en", "CultureName": "en",
"DataType": "string", "DataType": "string",
@ -3241,7 +3394,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 18, "ListOrderNo": 19,
"SourceDbType": 16, "SourceDbType": 16,
"CultureName": "en", "CultureName": "en",
"DataType": "string", "DataType": "string",
@ -3367,7 +3520,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 19, "ListOrderNo": 20,
"SourceDbType": 6, "SourceDbType": 6,
"CultureName": "en", "CultureName": "en",
"DataType": "datetime", "DataType": "datetime",
@ -3493,7 +3646,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 20, "ListOrderNo": 21,
"SourceDbType": 6, "SourceDbType": 6,
"CultureName": "en", "CultureName": "en",
"DataType": "datetime", "DataType": "datetime",
@ -3619,7 +3772,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 21, "ListOrderNo": 22,
"SourceDbType": 6, "SourceDbType": 6,
"CultureName": "en", "CultureName": "en",
"DataType": "datetime", "DataType": "datetime",

View file

@ -386,6 +386,13 @@
"Value": "TRY", "Value": "TRY",
"CustomValueType": 1, "CustomValueType": 1,
"SqlQuery": "" "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": [ "WidgetsDto": [
@ -579,6 +586,7 @@
"AllowAllDeleting": false, "AllowAllDeleting": false,
"AllowAdding": true, "AllowAdding": true,
"AllowDuplicate": false, "AllowDuplicate": false,
"OpenDetailAfterInsert": false,
"UseIcons": false, "UseIcons": false,
"ConfirmDelete": true, "ConfirmDelete": true,
"NewRowPosition": "viewportTop", "NewRowPosition": "viewportTop",
@ -680,6 +688,7 @@
"ApprovalDescriptionFieldName": "ApprovalDescription", "ApprovalDescriptionFieldName": "ApprovalDescription",
"ApprovalIsFilterUserName": false, "ApprovalIsFilterUserName": false,
"ApprovalIsResetWorkflow": false, "ApprovalIsResetWorkflow": false,
"ApprovalIsManualStart": false,
"Criteria": [ "Criteria": [
{ {
"ListFormCode": "App.Hr.StaffRequest", "ListFormCode": "App.Hr.StaffRequest",
@ -1392,6 +1401,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -1647,7 +1658,7 @@
"CascadeFilterOperator": "=", "CascadeFilterOperator": "=",
"CascadeParentFields": null, "CascadeParentFields": null,
"CascadeEmptyFields": "DepartmentId,JobPositionId", "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": [ "ValidationRuleDto": [
{ {
@ -1656,6 +1667,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -1794,6 +1807,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -1932,6 +1947,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -2070,6 +2087,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -2208,6 +2227,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -2472,6 +2493,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,

View file

@ -276,7 +276,15 @@
"UpdateBeforeCommand": null, "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", "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": [], "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": [ "WidgetsDto": [
{ {
"ColGap": 3, "ColGap": 3,
@ -468,6 +476,7 @@
"AllowAllDeleting": false, "AllowAllDeleting": false,
"AllowAdding": true, "AllowAdding": true,
"AllowDuplicate": false, "AllowDuplicate": false,
"OpenDetailAfterInsert": false,
"UseIcons": false, "UseIcons": false,
"ConfirmDelete": true, "ConfirmDelete": true,
"NewRowPosition": "viewportTop", "NewRowPosition": "viewportTop",
@ -589,6 +598,7 @@
"ApprovalDescriptionFieldName": null, "ApprovalDescriptionFieldName": null,
"ApprovalIsFilterUserName": false, "ApprovalIsFilterUserName": false,
"ApprovalIsResetWorkflow": false, "ApprovalIsResetWorkflow": false,
"ApprovalIsManualStart": false,
"Criteria": [] "Criteria": []
}, },
"UserId": null, "UserId": null,
@ -1066,6 +1076,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -1204,6 +1216,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -1342,6 +1356,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -1471,7 +1487,7 @@
"CascadeFilterOperator": "=", "CascadeFilterOperator": "=",
"CascadeParentFields": null, "CascadeParentFields": null,
"CascadeEmptyFields": 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": [ "ValidationRuleDto": [
{ {
@ -1480,6 +1496,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -1618,6 +1636,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -1756,6 +1776,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -2272,6 +2294,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,

View file

@ -259,6 +259,13 @@
"Value": "true", "Value": "true",
"CustomValueType": 1, "CustomValueType": 1,
"SqlQuery": "" "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": [ "WidgetsDto": [
@ -452,6 +459,7 @@
"AllowAllDeleting": false, "AllowAllDeleting": false,
"AllowAdding": true, "AllowAdding": true,
"AllowDuplicate": false, "AllowDuplicate": false,
"OpenDetailAfterInsert": false,
"UseIcons": false, "UseIcons": false,
"ConfirmDelete": true, "ConfirmDelete": true,
"NewRowPosition": "viewportTop", "NewRowPosition": "viewportTop",
@ -461,7 +469,7 @@
"Popup": { "Popup": {
"Title": "App.Hr.Vehicle.Title", "Title": "App.Hr.Vehicle.Title",
"ShowTitle": true, "ShowTitle": true,
"Width": 800, "Width": 1000,
"Height": 875, "Height": 875,
"FullScreen": false, "FullScreen": false,
"HideOnOutsideClick": true, "HideOnOutsideClick": true,
@ -553,6 +561,7 @@
"ApprovalDescriptionFieldName": null, "ApprovalDescriptionFieldName": null,
"ApprovalIsFilterUserName": false, "ApprovalIsFilterUserName": false,
"ApprovalIsResetWorkflow": false, "ApprovalIsResetWorkflow": false,
"ApprovalIsManualStart": false,
"Criteria": [] "Criteria": []
}, },
"UserId": null, "UserId": null,
@ -1021,7 +1030,7 @@
"CascadeFilterOperator": "=", "CascadeFilterOperator": "=",
"CascadeParentFields": null, "CascadeParentFields": null,
"CascadeEmptyFields": 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": [ "ValidationRuleDto": [
{ {
@ -1030,6 +1039,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -1168,6 +1179,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -1936,6 +1949,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -2326,6 +2341,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,

View file

@ -271,6 +271,13 @@
"Value": "0", "Value": "0",
"CustomValueType": 1, "CustomValueType": 1,
"SqlQuery": "" "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": [ "WidgetsDto": [
@ -464,6 +471,7 @@
"AllowAllDeleting": false, "AllowAllDeleting": false,
"AllowAdding": true, "AllowAdding": true,
"AllowDuplicate": false, "AllowDuplicate": false,
"OpenDetailAfterInsert": false,
"UseIcons": false, "UseIcons": false,
"ConfirmDelete": true, "ConfirmDelete": true,
"NewRowPosition": "viewportTop", "NewRowPosition": "viewportTop",
@ -551,6 +559,7 @@
"ApprovalDescriptionFieldName": null, "ApprovalDescriptionFieldName": null,
"ApprovalIsFilterUserName": false, "ApprovalIsFilterUserName": false,
"ApprovalIsResetWorkflow": false, "ApprovalIsResetWorkflow": false,
"ApprovalIsManualStart": false,
"Criteria": [] "Criteria": []
}, },
"UserId": null, "UserId": null,
@ -1154,6 +1163,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -1283,7 +1294,7 @@
"CascadeFilterOperator": "=", "CascadeFilterOperator": "=",
"CascadeParentFields": null, "CascadeParentFields": null,
"CascadeEmptyFields": 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": [], "ValidationRuleDto": [],
"ColumnStylingDto": [], "ColumnStylingDto": [],
@ -1418,6 +1429,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -1556,6 +1569,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -1946,6 +1961,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -2084,6 +2101,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,

View file

@ -186,7 +186,15 @@
"UpdateBeforeCommand": null, "UpdateBeforeCommand": null,
"UpdateAfterCommand": null, "UpdateAfterCommand": null,
"UpdateFieldsDefaultValueDto": [], "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": [ "WidgetsDto": [
{ {
"ColGap": 3, "ColGap": 3,
@ -378,6 +386,7 @@
"AllowAllDeleting": false, "AllowAllDeleting": false,
"AllowAdding": true, "AllowAdding": true,
"AllowDuplicate": false, "AllowDuplicate": false,
"OpenDetailAfterInsert": false,
"UseIcons": false, "UseIcons": false,
"ConfirmDelete": true, "ConfirmDelete": true,
"NewRowPosition": "viewportTop", "NewRowPosition": "viewportTop",
@ -458,6 +467,7 @@
"ApprovalDescriptionFieldName": null, "ApprovalDescriptionFieldName": null,
"ApprovalIsFilterUserName": false, "ApprovalIsFilterUserName": false,
"ApprovalIsResetWorkflow": false, "ApprovalIsResetWorkflow": false,
"ApprovalIsManualStart": false,
"Criteria": [] "Criteria": []
}, },
"UserId": null, "UserId": null,
@ -935,6 +945,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -1073,6 +1085,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -1211,6 +1225,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -1601,6 +1617,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -1739,6 +1757,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -2120,7 +2140,7 @@
"CascadeFilterOperator": "=", "CascadeFilterOperator": "=",
"CascadeParentFields": null, "CascadeParentFields": null,
"CascadeEmptyFields": 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": [ "ValidationRuleDto": [
{ {
@ -2129,6 +2149,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,

View file

@ -317,7 +317,7 @@
"FieldDbType": 9, "FieldDbType": 9,
"Value": "", "Value": "",
"CustomValueType": 3, "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", "FieldName": "DeliveryPolicy",
@ -1697,7 +1697,7 @@
"CascadeFilterOperator": "=", "CascadeFilterOperator": "=",
"CascadeParentFields": null, "CascadeParentFields": null,
"CascadeEmptyFields": "WarehouseId,OperationTypeId,SourceLocationId,DestinationLocationId", "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": [ "ValidationRuleDto": [
{ {

View file

@ -311,7 +311,7 @@
"FieldDbType": 9, "FieldDbType": 9,
"Value": "", "Value": "",
"CustomValueType": 3, "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": [ "WidgetsDto": [
@ -1684,7 +1684,7 @@
"CascadeFilterOperator": "=", "CascadeFilterOperator": "=",
"CascadeParentFields": null, "CascadeParentFields": null,
"CascadeEmptyFields": "WarehouseId,OperationTypeId,SourceLocationId,DestinationLocationId", "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": [ "ValidationRuleDto": [
{ {

View file

@ -197,6 +197,13 @@
"Value": "true", "Value": "true",
"CustomValueType": 1, "CustomValueType": 1,
"SqlQuery": null "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": [ "WidgetsDto": [
@ -940,7 +947,7 @@
"CascadeFilterOperator": "=", "CascadeFilterOperator": "=",
"CascadeParentFields": null, "CascadeParentFields": null,
"CascadeEmptyFields": "WarehouseId,ParentId,DepartmentId", "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": [ "ValidationRuleDto": [
{ {

View file

@ -212,6 +212,13 @@
"Value": "true", "Value": "true",
"CustomValueType": 1, "CustomValueType": 1,
"SqlQuery": null "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": [ "WidgetsDto": [
@ -955,7 +962,7 @@
"CascadeFilterOperator": "=", "CascadeFilterOperator": "=",
"CascadeParentFields": null, "CascadeParentFields": null,
"CascadeEmptyFields": "WarehouseId,SourceLocationId,DestinationLocationId", "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": [ "ValidationRuleDto": [
{ {

View file

@ -311,7 +311,7 @@
"FieldDbType": 9, "FieldDbType": 9,
"Value": "", "Value": "",
"CustomValueType": 3, "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": [ "WidgetsDto": [
@ -1810,7 +1810,7 @@
"CascadeFilterOperator": "=", "CascadeFilterOperator": "=",
"CascadeParentFields": null, "CascadeParentFields": null,
"CascadeEmptyFields": "WarehouseId,OperationTypeId,SourceLocationId,DestinationLocationId", "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": [ "ValidationRuleDto": [
{ {

View file

@ -937,7 +937,7 @@
"CascadeFilterOperator": "=", "CascadeFilterOperator": "=",
"CascadeParentFields": null, "CascadeParentFields": null,
"CascadeEmptyFields": 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": [], "ValidationRuleDto": [],
"ColumnStylingDto": [], "ColumnStylingDto": [],

View file

@ -2550,7 +2550,7 @@
"CascadeFilterOperator": "=", "CascadeFilterOperator": "=",
"CascadeParentFields": null, "CascadeParentFields": null,
"CascadeEmptyFields": 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": [], "ValidationRuleDto": [],
"ColumnStylingDto": [], "ColumnStylingDto": [],

View file

@ -1521,7 +1521,7 @@
"CascadeFilterOperator": "=", "CascadeFilterOperator": "=",
"CascadeParentFields": null, "CascadeParentFields": null,
"CascadeEmptyFields": 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": [], "ValidationRuleDto": [],
"ColumnStylingDto": [], "ColumnStylingDto": [],

View file

@ -148,6 +148,13 @@
"Value": "true", "Value": "true",
"CustomValueType": 1, "CustomValueType": 1,
"SqlQuery": null "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": [ "WidgetsDto": [
@ -341,6 +348,7 @@
"AllowAllDeleting": false, "AllowAllDeleting": false,
"AllowAdding": true, "AllowAdding": true,
"AllowDuplicate": false, "AllowDuplicate": false,
"OpenDetailAfterInsert": false,
"UseIcons": false, "UseIcons": false,
"ConfirmDelete": true, "ConfirmDelete": true,
"NewRowPosition": "viewportTop", "NewRowPosition": "viewportTop",
@ -421,6 +429,7 @@
"ApprovalDescriptionFieldName": null, "ApprovalDescriptionFieldName": null,
"ApprovalIsFilterUserName": false, "ApprovalIsFilterUserName": false,
"ApprovalIsResetWorkflow": false, "ApprovalIsResetWorkflow": false,
"ApprovalIsManualStart": false,
"Criteria": [] "Criteria": []
}, },
"UserId": null, "UserId": null,
@ -889,7 +898,7 @@
"CascadeFilterOperator": "=", "CascadeFilterOperator": "=",
"CascadeParentFields": null, "CascadeParentFields": null,
"CascadeEmptyFields": 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": [ "ValidationRuleDto": [
{ {
@ -898,6 +907,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -1036,6 +1047,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -1174,6 +1187,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,
@ -1312,6 +1327,8 @@
"IgnoreEmptyValue": false, "IgnoreEmptyValue": false,
"Reevaluate": true, "Reevaluate": true,
"ComparisonType": "", "ComparisonType": "",
"ComparisonTarget": null,
"ValidationCallback": null,
"Pattern": "", "Pattern": "",
"Max": null, "Max": null,
"Min": null, "Min": null,

View file

@ -1391,7 +1391,7 @@
"CascadeFilterOperator": "=", "CascadeFilterOperator": "=",
"CascadeParentFields": null, "CascadeParentFields": null,
"CascadeEmptyFields": 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": [ "ValidationRuleDto": [
{ {

View file

@ -1514,7 +1514,7 @@
"CascadeFilterOperator": "=", "CascadeFilterOperator": "=",
"CascadeParentFields": null, "CascadeParentFields": null,
"CascadeEmptyFields": 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": [ "ValidationRuleDto": [
{ {

View file

@ -1566,7 +1566,7 @@
"CascadeFilterOperator": "=", "CascadeFilterOperator": "=",
"CascadeParentFields": null, "CascadeParentFields": null,
"CascadeEmptyFields": 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": [], "ValidationRuleDto": [],
"ColumnStylingDto": [], "ColumnStylingDto": [],

View file

@ -1058,7 +1058,7 @@
"CascadeFilterOperator": "=", "CascadeFilterOperator": "=",
"CascadeParentFields": null, "CascadeParentFields": null,
"CascadeEmptyFields": 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": [], "ValidationRuleDto": [],
"ColumnStylingDto": [], "ColumnStylingDto": [],

View file

@ -973,7 +973,7 @@
"CascadeFilterOperator": "=", "CascadeFilterOperator": "=",
"CascadeParentFields": null, "CascadeParentFields": null,
"CascadeEmptyFields": 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": [], "ValidationRuleDto": [],
"ColumnStylingDto": [], "ColumnStylingDto": [],

View file

@ -3387,7 +3387,7 @@
"CascadeFilterOperator": "=", "CascadeFilterOperator": "=",
"CascadeParentFields": null, "CascadeParentFields": null,
"CascadeEmptyFields": 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": [], "ValidationRuleDto": [],
"ColumnStylingDto": [], "ColumnStylingDto": [],

View file

@ -1519,7 +1519,7 @@
"CascadeFilterOperator": "=", "CascadeFilterOperator": "=",
"CascadeParentFields": null, "CascadeParentFields": null,
"CascadeEmptyFields": 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": [ "ValidationRuleDto": [
{ {

View file

@ -297,21 +297,21 @@
"FieldDbType": 9, "FieldDbType": 9,
"Value": "", "Value": "",
"CustomValueType": 3, "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", "FieldName": "WarehouseId",
"FieldDbType": 9, "FieldDbType": 9,
"Value": "", "Value": "",
"CustomValueType": 3, "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", "FieldName": "LocationId",
"FieldDbType": 9, "FieldDbType": 9,
"Value": "", "Value": "",
"CustomValueType": 3, "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": [ "WidgetsDto": [
@ -1566,7 +1566,7 @@
"CascadeFilterOperator": "=", "CascadeFilterOperator": "=",
"CascadeParentFields": null, "CascadeParentFields": null,
"CascadeEmptyFields": "DepartmentId,WarehouseId,LocationId", "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": [ "ValidationRuleDto": [
{ {

View file

@ -274,7 +274,7 @@
"FieldDbType": 9, "FieldDbType": 9,
"Value": "", "Value": "",
"CustomValueType": 3, "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": [ "WidgetsDto": [
@ -1172,7 +1172,7 @@
"CascadeFilterOperator": "=", "CascadeFilterOperator": "=",
"CascadeParentFields": null, "CascadeParentFields": null,
"CascadeEmptyFields": "WarehouseId,OperationTypeId", "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": [ "ValidationRuleDto": [
{ {

View file

@ -293,14 +293,14 @@
"FieldDbType": 9, "FieldDbType": 9,
"Value": "", "Value": "",
"CustomValueType": 3, "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", "FieldName": "WarehouseId",
"FieldDbType": 9, "FieldDbType": 9,
"Value": "", "Value": "",
"CustomValueType": 3, "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": [ "WidgetsDto": [
@ -1547,7 +1547,7 @@
"CascadeFilterOperator": "=", "CascadeFilterOperator": "=",
"CascadeParentFields": null, "CascadeParentFields": null,
"CascadeEmptyFields": "WarehouseId,OperationTypeId,AgreementId", "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": [ "ValidationRuleDto": [
{ {

View file

@ -1485,7 +1485,7 @@
"CascadeFilterOperator": "=", "CascadeFilterOperator": "=",
"CascadeParentFields": null, "CascadeParentFields": null,
"CascadeEmptyFields": 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": [], "ValidationRuleDto": [],
"ColumnStylingDto": [], "ColumnStylingDto": [],

View file

@ -334,14 +334,14 @@
"FieldDbType": 9, "FieldDbType": 9,
"Value": "", "Value": "",
"CustomValueType": 3, "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", "FieldName": "WarehouseId",
"FieldDbType": 9, "FieldDbType": 9,
"Value": "", "Value": "",
"CustomValueType": 3, "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": [ "WidgetsDto": [
@ -1390,7 +1390,7 @@
"CascadeFilterOperator": "=", "CascadeFilterOperator": "=",
"CascadeParentFields": null, "CascadeParentFields": null,
"CascadeEmptyFields": "WarehouseId,OperationTypeId,AgreementId", "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": [ "ValidationRuleDto": [
{ {

View file

@ -36,18 +36,18 @@
"En": "Id", "En": "Id",
"Tr": "Kimlik" "Tr": "Kimlik"
}, },
{
"FieldName": "ProjectId",
"CaptionName": "App.Listform.ListformField.ProjectId",
"En": "Project",
"Tr": "Proje"
},
{ {
"FieldName": "BranchId", "FieldName": "BranchId",
"CaptionName": "App.Listform.ListformField.BranchId", "CaptionName": "App.Listform.ListformField.BranchId",
"En": "Branch Name", "En": "Branch Name",
"Tr": "Şube Adı" "Tr": "Şube Adı"
}, },
{
"FieldName": "ProjectId",
"CaptionName": "App.Listform.ListformField.ProjectId",
"En": "Project",
"Tr": "Proje"
},
{ {
"FieldName": "ParentId", "FieldName": "ParentId",
"CaptionName": "App.Listform.ListformField.ParentId", "CaptionName": "App.Listform.ListformField.ParentId",
@ -797,6 +797,132 @@
"CreatorId": null, "CreatorId": null,
"Id": "00000000-0000-0000-0000-000000000000" "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, "EditType": null,
"ListFormCode": "App.Prj.BudgetReport", "ListFormCode": "App.Prj.BudgetReport",
@ -820,7 +946,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 2, "ListOrderNo": 3,
"SourceDbType": 9, "SourceDbType": 9,
"CultureName": "en", "CultureName": "en",
"DataType": "string", "DataType": "string",
@ -923,132 +1049,6 @@
"CreatorId": null, "CreatorId": null,
"Id": "00000000-0000-0000-0000-000000000000" "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, "EditType": null,
"ListFormCode": "App.Prj.BudgetReport", "ListFormCode": "App.Prj.BudgetReport",

View file

@ -182,7 +182,7 @@
"FieldDbType": 9, "FieldDbType": 9,
"Value": "", "Value": "",
"CustomValueType": 3, "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": [ "WidgetsDto": [
@ -926,7 +926,7 @@
"CascadeFilterOperator": "=", "CascadeFilterOperator": "=",
"CascadeParentFields": null, "CascadeParentFields": null,
"CascadeEmptyFields": "ProjectId", "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": [ "ValidationRuleDto": [
{ {

View file

@ -42,18 +42,18 @@
"En": "Parent", "En": "Parent",
"Tr": "Üst" "Tr": "Üst"
}, },
{
"FieldName": "ProjectId",
"CaptionName": "App.Listform.ListformField.ProjectId",
"En": "Project",
"Tr": "Proje"
},
{ {
"FieldName": "BranchId", "FieldName": "BranchId",
"CaptionName": "App.Listform.ListformField.BranchId", "CaptionName": "App.Listform.ListformField.BranchId",
"En": "Branch Name", "En": "Branch Name",
"Tr": "Şube Adı" "Tr": "Şube Adı"
}, },
{
"FieldName": "ProjectId",
"CaptionName": "App.Listform.ListformField.ProjectId",
"En": "Project",
"Tr": "Proje"
},
{ {
"FieldName": "Title", "FieldName": "Title",
"CaptionName": "App.Listform.ListformField.PersonnelWorkName", "CaptionName": "App.Listform.ListformField.PersonnelWorkName",
@ -762,7 +762,7 @@
"GroupInterval": "", "GroupInterval": "",
"WordWrapEnabled": false "WordWrapEnabled": false
}, },
"Alignment": null, "Alignment": "left",
"Format": null, "Format": null,
"EditOrderNo": null, "EditOrderNo": null,
"EditGroupOrderNo": null, "EditGroupOrderNo": null,
@ -888,7 +888,7 @@
"GroupInterval": "", "GroupInterval": "",
"WordWrapEnabled": false "WordWrapEnabled": false
}, },
"Alignment": null, "Alignment": "left",
"Format": null, "Format": null,
"EditOrderNo": null, "EditOrderNo": null,
"EditGroupOrderNo": null, "EditGroupOrderNo": null,
@ -905,6 +905,132 @@
"CreatorId": null, "CreatorId": null,
"Id": "00000000-0000-0000-0000-000000000000" "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, "EditType": null,
"ListFormCode": "App.Prj.ManMonth", "ListFormCode": "App.Prj.ManMonth",
@ -928,7 +1054,7 @@
"Visible": true, "Visible": true,
"IsActive": true, "IsActive": true,
"Width": 0, "Width": 0,
"ListOrderNo": 3, "ListOrderNo": 4,
"SourceDbType": 9, "SourceDbType": 9,
"CultureName": "en", "CultureName": "en",
"DataType": "string", "DataType": "string",
@ -1014,139 +1140,13 @@
"GroupInterval": "", "GroupInterval": "",
"WordWrapEnabled": false "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", "Alignment": "left",
"Format": null, "Format": null,
"EditOrderNo": null, "EditOrderNo": null,
"EditGroupOrderNo": null, "EditGroupOrderNo": null,
"EditorType2": "dxSelectBox", "EditorType2": "dxSelectBox",
"ColSpan": 1, "ColSpan": 1,
"EditorOptions": "{\"showClearButton\":true,\"searchEnabled\":true}", "EditorOptions": null,
"GridBoxOptions": null, "GridBoxOptions": null,
"TagBoxOptions": null, "TagBoxOptions": null,
"ImageUploadOptions": null, "ImageUploadOptions": null,
@ -1266,7 +1266,7 @@
"GroupInterval": "", "GroupInterval": "",
"WordWrapEnabled": false "WordWrapEnabled": false
}, },
"Alignment": null, "Alignment": "left",
"Format": null, "Format": null,
"EditOrderNo": null, "EditOrderNo": null,
"EditGroupOrderNo": null, "EditGroupOrderNo": null,
@ -1392,7 +1392,7 @@
"GroupInterval": "", "GroupInterval": "",
"WordWrapEnabled": false "WordWrapEnabled": false
}, },
"Alignment": null, "Alignment": "left",
"Format": null, "Format": null,
"EditOrderNo": null, "EditOrderNo": null,
"EditGroupOrderNo": null, "EditGroupOrderNo": null,
@ -1518,7 +1518,7 @@
"GroupInterval": "", "GroupInterval": "",
"WordWrapEnabled": false "WordWrapEnabled": false
}, },
"Alignment": null, "Alignment": "left",
"Format": null, "Format": null,
"EditOrderNo": null, "EditOrderNo": null,
"EditGroupOrderNo": null, "EditGroupOrderNo": null,
@ -1644,7 +1644,7 @@
"GroupInterval": "", "GroupInterval": "",
"WordWrapEnabled": false "WordWrapEnabled": false
}, },
"Alignment": null, "Alignment": "left",
"Format": null, "Format": null,
"EditOrderNo": null, "EditOrderNo": null,
"EditGroupOrderNo": null, "EditGroupOrderNo": null,
@ -1770,7 +1770,7 @@
"GroupInterval": "", "GroupInterval": "",
"WordWrapEnabled": false "WordWrapEnabled": false
}, },
"Alignment": null, "Alignment": "left",
"Format": null, "Format": null,
"EditOrderNo": null, "EditOrderNo": null,
"EditGroupOrderNo": null, "EditGroupOrderNo": null,
@ -1896,7 +1896,7 @@
"GroupInterval": "", "GroupInterval": "",
"WordWrapEnabled": false "WordWrapEnabled": false
}, },
"Alignment": null, "Alignment": "left",
"Format": null, "Format": null,
"EditOrderNo": null, "EditOrderNo": null,
"EditGroupOrderNo": null, "EditGroupOrderNo": null,
@ -2022,7 +2022,7 @@
"GroupInterval": "", "GroupInterval": "",
"WordWrapEnabled": false "WordWrapEnabled": false
}, },
"Alignment": null, "Alignment": "left",
"Format": null, "Format": null,
"EditOrderNo": null, "EditOrderNo": null,
"EditGroupOrderNo": null, "EditGroupOrderNo": null,

View file

@ -1124,7 +1124,7 @@
"CascadeFilterOperator": "=", "CascadeFilterOperator": "=",
"CascadeParentFields": null, "CascadeParentFields": null,
"CascadeEmptyFields": 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": [], "ValidationRuleDto": [],
"ColumnStylingDto": [], "ColumnStylingDto": [],

View file

@ -240,7 +240,7 @@
"FieldDbType": 9, "FieldDbType": 9,
"Value": "", "Value": "",
"CustomValueType": 3, "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": [ "WidgetsDto": [
@ -1125,7 +1125,7 @@
"CascadeFilterOperator": "=", "CascadeFilterOperator": "=",
"CascadeParentFields": null, "CascadeParentFields": null,
"CascadeEmptyFields": 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": [ "ValidationRuleDto": [
{ {

View file

@ -375,6 +375,7 @@
"AllowAllDeleting": false, "AllowAllDeleting": false,
"AllowAdding": false, "AllowAdding": false,
"AllowDuplicate": false, "AllowDuplicate": false,
"OpenDetailAfterInsert": false,
"UseIcons": false, "UseIcons": false,
"ConfirmDelete": true, "ConfirmDelete": true,
"NewRowPosition": "viewportTop", "NewRowPosition": "viewportTop",
@ -447,6 +448,7 @@
"ApprovalDescriptionFieldName": null, "ApprovalDescriptionFieldName": null,
"ApprovalIsFilterUserName": false, "ApprovalIsFilterUserName": false,
"ApprovalIsResetWorkflow": false, "ApprovalIsResetWorkflow": false,
"ApprovalIsManualStart": false,
"Criteria": [] "Criteria": []
}, },
"UserId": null, "UserId": null,
@ -1167,7 +1169,7 @@
"CascadeFilterOperator": "=", "CascadeFilterOperator": "=",
"CascadeParentFields": null, "CascadeParentFields": null,
"CascadeEmptyFields": 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": [], "ValidationRuleDto": [],
"ColumnStylingDto": [], "ColumnStylingDto": [],

View file

@ -188,7 +188,7 @@
"FieldDbType": 9, "FieldDbType": 9,
"Value": "", "Value": "",
"CustomValueType": 3, "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": [], "WidgetsDto": [],
@ -970,7 +970,7 @@
"CascadeFilterOperator": "=", "CascadeFilterOperator": "=",
"CascadeParentFields": null, "CascadeParentFields": null,
"CascadeEmptyFields": "ProjectId", "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": [ "ValidationRuleDto": [
{ {

View file

@ -8,10 +8,19 @@ export interface OrgChartUserDto {
phoneNumber?: string phoneNumber?: string
} }
// Sunucu enum'u sayı olarak gelir (OrgChartNodeType, Application.Contracts).
export enum OrgChartNodeType {
Branch = 0,
Department = 1,
JobPosition = 2,
}
export interface OrgChartNodeDto { export interface OrgChartNodeDto {
id: string id: string
name: string name: string
parentId?: 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 departmentId?: string
departmentName?: string departmentName?: string
jobPositionId?: string jobPositionId?: string

View file

@ -14,6 +14,7 @@ import {
FaSitemap, FaSitemap,
FaBriefcase, FaBriefcase,
FaBuilding, FaBuilding,
FaIndustry,
FaChevronDown, FaChevronDown,
FaChevronRight, FaChevronRight,
FaSearchPlus, FaSearchPlus,
@ -27,6 +28,7 @@ import {
getOrgChartDepartments, getOrgChartDepartments,
getOrgChartJobPositions, getOrgChartJobPositions,
OrgChartNodeDto, OrgChartNodeDto,
OrgChartNodeType,
OrgChartUserDto, OrgChartUserDto,
} from '@/services/orgChart.service' } from '@/services/orgChart.service'
import { useLocalization } from '@/utils/hooks/useLocalization' 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 headerEl = card.querySelector('[data-header]') as HTMLElement | null
const headerH = headerEl ? Math.round(headerEl.getBoundingClientRect().height / zoom) : 34 const headerH = headerEl ? Math.round(headerEl.getBoundingClientRect().height / zoom) : 34
ctx.save() 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.fillStyle = headerHex
ctx.fill() ctx.fill()
ctx.restore() ctx.restore()
@ -456,7 +460,10 @@ function OrgChartNode({
const [collapsed, setCollapsed] = useState(false) const [collapsed, setCollapsed] = useState(false)
const [dragging, setDragging] = useState(false) const [dragging, setDragging] = useState(false)
const hasChildren = node.children.length > 0 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 position = positions[node.id] ?? { x: 0, y: 0 }
const levelColor = LEVEL_COLORS[depth % LEVEL_COLORS.length] const levelColor = LEVEL_COLORS[depth % LEVEL_COLORS.length]
@ -520,17 +527,19 @@ function OrgChartNode({
}} }}
data-card="" data-card=""
data-depth={depth} 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`} 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' }} style={{ cursor: dragging ? 'grabbing' : 'grab' }}
onMouseDown={handleDragStart} onMouseDown={handleDragStart}
> >
{/* Header bar */} {/* Header bar — kullanıcı bölümü yokken kartın tamamıdır, alt köşeler de yuvarlanır */}
<div <div
data-header="" 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" /> <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" /> <FaBriefcase className="w-3 h-3 text-white opacity-80 flex-shrink-0" />
@ -563,7 +572,7 @@ function OrgChartNode({
</div> </div>
{/* Users section */} {/* Users section */}
{showUsers && ( {usersVisible && (
<div className="px-3 py-2"> <div className="px-3 py-2">
{hasUsers ? ( {hasUsers ? (
<div className="flex flex-col gap-1"> <div className="flex flex-col gap-1">