Bu sayfa src/cluster_erp/modules/intranet/leave/ içindeki leave alt modülünü anlatır. İzin türlerini, çalışan, tür ve yıl başına bakiyeleri ve gönderim ile onaydan geçen izin taleplerini tutar. Yarım günler gerçek olduğu için gün sayıları Decimal tipindedir; gönderilen talep, çalışanın günleri iki kez harcayamaması için günleri pending olarak ayırır (src/cluster_erp/modules/intranet/leave/services.py:1-7).
Kapsam ve kaynak¶
- Tanımlandığı yer:
src/cluster_erp/modules/intranet/models.py(IntranetLeaveType,IntranetLeaveBalance,IntranetLeaveRequest),leave/services.py,leave/routes.py,leave/schemas.py,leave/metadata.pyveleave/seeds.py. - Sayım: 3 tablo,
leave/routes.pyiçinde 15 uç,leave/metadata.pyiçinde 4ActionMetagirdisi.
Alanlar¶
| Varlık | Ana alanlar | Kaynak |
|---|---|---|
IntranetLeaveType |
code (canlı satırlar arasında benzersiz), label, is_paid, accrual_method (annual_grant, monthly_accrual, none), default_annual_days, allows_half_day, requires_document, carryover_max_days, gender_restriction, min_notice_days, counts_calendar_days, approval_chain_code |
src/cluster_erp/modules/intranet/models.py:101, src/cluster_erp/modules/intranet/models.py:687-731 |
IntranetLeaveBalance |
party_id, leave_type_id, period_year (canlı satırlar arasında birlikte benzersiz), entitled, accrued, taken, pending, carried_over; hepsi Numeric(7, 2) |
src/cluster_erp/modules/intranet/models.py:734-773 |
IntranetLeaveRequest |
code, party_id, leave_type_id, start_date, end_date, half_day_start, half_day_end, total_days, reason, status, cover_party_id, document_attachment_id, approval_request_id, submitted_at, decided_at, decided_by, decision_note |
src/cluster_erp/modules/intranet/models.py:776-833 |
Modül başlarken kodları eksikse sekiz izin türü tohumlar: annual, sick, unpaid, marriage, bereavement, maternity, paternity ve administrative. Tohum belge dizesi bunları kuruluşun düzenlediği, ülkeden bağımsız başlangıç verisi olarak tanımlar (src/cluster_erp/modules/intranet/leave/seeds.py:1-12, src/cluster_erp/modules/intranet/module.py:66-95). Yeni bakiye satırı türünün default_annual_days değerini entitled ve accrued olarak alır (src/cluster_erp/modules/intranet/leave/services.py:202-233).
Durumlar ve aksiyonlar¶
Talep draft, submitted, approved, rejected, cancelled veya taken durumundadır (src/cluster_erp/modules/intranet/models.py:93-100).
stateDiagram-v2 [*] --> draft draft --> submitted: submit submitted --> approved: approve submitted --> rejected: reject draft --> cancelled: cancel submitted --> cancelled: cancel approved --> cancelled: cancel
Düz anlatımla: talep taslak olarak başlar. Gönder denetimleri çalıştırır, günleri ayırır ve varsa talebi bir onay zincirine yönlendirir. Onayla günleri bekleyenden kullanılana taşır; Reddet onları serbest bırakır. İptal Et taslak, gönderilmiş veya onaylanmış durumdan çalışır ve bekleyen ya da kullanılan günleri geri verir (src/cluster_erp/modules/intranet/leave/services.py:55-60, src/cluster_erp/modules/intranet/leave/services.py:647-738). Hiçbir geçiş taken yazmaz (src/cluster_erp/modules/intranet/leave/services.py:55-60).
| Aksiyon | Etiket | Metadata koşulu | Kaynak |
|---|---|---|---|
submit |
Gönder | status = draft |
src/cluster_erp/modules/intranet/leave/metadata.py:258-266 |
approve |
Onayla | status = submitted |
src/cluster_erp/modules/intranet/leave/metadata.py:267-275 |
reject |
Reddet | status = submitted |
src/cluster_erp/modules/intranet/leave/metadata.py:276-284 |
cancel |
İptal Et | status = approved |
src/cluster_erp/modules/intranet/leave/metadata.py:285-293 |
Uç, çağıranın yalnızca kapsamındaki talepler üzerinde işlem yapmasına izin verir; Onayla ve Reddet ayrıca intranet_leave_request.approve ister (src/cluster_erp/modules/intranet/leave/routes.py:255-280). Onay ve ret, çalışana intranet.notif_leave_approved ve intranet.notif_leave_rejected i18n anahtarlarıyla bildirim gönderir (src/cluster_erp/modules/intranet/leave/services.py:716-735).
Gün sayımı¶
_leave_days, sayılan günleri takvim yılı başına döndürür (src/cluster_erp/modules/intranet/leave/services.py:260-334):
counts_calendar_daysolan tür her günü sayar.- Diğer türler şirket tarafı için
GetCompanyDefaultTimezone, onun açık günleri içinGetOwnerWorkingDayssorar; böylece tatiller ve kapanışlar sayılmaz. Hiçbir takvim yanıt vermezse pazartesiden cumaya sayılır. - Başta veya sonda yarım gün, o günün yılından yarım gün düşer.
- Yılbaşını aşan talep her yıla kendi payını yükler.
Gönderim denetimleri¶
Gönderim, herhangi bir değişiklikten önce şu denetimleri çalıştırır (src/cluster_erp/modules/intranet/leave/services.py:468-551):
| Denetim | Hata kodu | Kaynak |
|---|---|---|
| Aynı kişinin gönderilmiş, onaylanmış veya kullanılmış izniyle çakışma olmaması | INTRANET_LEAVE_OVERLAP |
src/cluster_erp/modules/intranet/leave/services.py:407-437 |
Cinsiyete bağlı tür, GetPartyById ile okunan eşleşen kayıtlı cinsiyet ister |
INTRANET_LEAVE_GENDER_RESTRICTED |
src/cluster_erp/modules/intranet/leave/services.py:439-466 |
| Gün olarak asgari bildirim süresi | INTRANET_LEAVE_NOTICE_TOO_SHORT |
src/cluster_erp/modules/intranet/leave/services.py:486-499 |
| Doğrudan bağlantı veya talepteki ek olarak zorunlu destekleyici belge | INTRANET_LEAVE_DOCUMENT_REQUIRED |
src/cluster_erp/modules/intranet/leave/services.py:500-518 |
| Hak ediş türlerinde her yıl için yeterli bakiye | INTRANET_LEAVE_INSUFFICIENT_BALANCE |
src/cluster_erp/modules/intranet/leave/services.py:521-550 |
Talep oluşturma da türü, cinsiyet kısıtını ve çakışmayı denetler ve yarım günleri yalnızca tür izin veriyorsa saklar (src/cluster_erp/modules/intranet/leave/services.py:570-620).
Onay zinciri¶
_route_approval, intranet_leave_request kaynağı ve approve aksiyonu için GetApprovalChainForAction sorar. Zincir varsa SubmitForApproval çağırır ve onay talebi kimliğini saklar. Zincir yoksa veya hata olursa talep elle karar için submitted durumunda kalır (src/cluster_erp/modules/intranet/leave/services.py:740-772). Bkz. onaylar ve onay zincirleri.
Uçlar¶
| Yönlendirici | Yollar | İzin | Kaynak |
|---|---|---|---|
leave_type_router |
/leave-types listeleme, oluşturma, okuma, güncelleme, silme |
intranet_leave_type.* |
src/cluster_erp/modules/intranet/leave/routes.py:28, src/cluster_erp/modules/intranet/leave/routes.py:40-100 |
leave_balance_router |
/leave-balances listeleme, okuma, oluşturma, güncelleme |
intranet_leave_balance.* |
src/cluster_erp/modules/intranet/leave/routes.py:29-31, src/cluster_erp/modules/intranet/leave/routes.py:104-166 |
leave_request_router |
/leave-requests listeleme, oluşturma, okuma, güncelleme, aksiyon, silme |
intranet_leave_request.* |
src/cluster_erp/modules/intranet/leave/routes.py:32-34, src/cluster_erp/modules/intranet/leave/routes.py:170-290 |
Başka bir kişi için talep oluşturmak intranet_leave_request.read_all ister ve adı verilen taraf aktif bir çalışan olmalıdır (src/cluster_erp/modules/intranet/leave/routes.py:204-223).
Tanıtılan terimler¶
| Terim | Kod tanımlayıcısı | Tanım | Türkçe terim | Kaynak |
|---|---|---|---|---|
| leave type | IntranetLeaveType |
Hak ediş, bildirim, belge ve kısıt kurallarıyla bir izin çeşidi. | İzin türü | src/cluster_erp/modules/intranet/models.py:687 |
| leave balance | IntranetLeaveBalance |
Bir kişinin bir yıldaki bir izin türüne ait günleri. | İzin bakiyesi | src/cluster_erp/modules/intranet/models.py:734 |
| pending days | pending |
Karar verilene kadar gönderilmiş taleplerin ayırdığı günler. | Bekleyen günler | src/cluster_erp/modules/intranet/models.py:767 |
İlgili sayfalar¶
92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.