src/cluster_erp/modules/owned_organisations/ içindeki owned_organisations modülü, şirketin kendisine ait kuruluşları, örneğin bir merkez ve şubeleri, departman ağaçlarıyla birlikte tutar. Ayrıca her kişinin şirket düzeyindeki çalışan kaydını ve bir kişiyi bir kuruluşa, departmana ve pozisyona yerleştiren görevlendirmeleri tutar. Her kuruluş ve her çalışan bir tarafın rolüdür; bkz. taraf birleştirme.
Bir bakışta¶
| Öğe | Değer | Kaynak |
|---|---|---|
| Paket | src/cluster_erp/modules/owned_organisations/ |
klasör |
| Modül sınıfı | Module |
src/cluster_erp/modules/owned_organisations/module.py:18 |
name / version |
owned_organisations / 0.1.0 |
src/cluster_erp/modules/owned_organisations/module.py:19-25 |
| API öneki | /api/v1/owned_organisations (ModuleBase.api_prefix) |
src/cluster_erp/core/module_base.py:37-38 |
| Alt modüller | 3: organisations, departments, employees |
klasör listesi |
| Tablolar | 4: owned_orgs_organisations, owned_orgs_departments, owned_orgs_employees, owned_orgs_assignments |
src/cluster_erp/modules/owned_organisations/models.py:1-17 |
| Metadata'daki varlıklar | 4: organisation, department, employee, assignment |
src/cluster_erp/modules/owned_organisations/module.py:443-448 |
| Uçlar | Pakette 28 uç dekoratörü | @router. için grep |
| Web uygulamasında yeri | Katalog uygulaması parties içinde, taraf listesinin Kuruluşlar sekmesi olarak |
src/cluster_erp/modules/app_store/catalog.json (parties girdisi), src/cluster_erp/modules/parties/module.py:589-597 |
| Masaüstünde yeri | Yalnızca genel bileşenler; src/cluster_erp/desktop/modules/ içinde klasör yok |
klasör |
Modül ne yapar¶
- Sahip olunan her kuruluşu ad, açıklama, kuruluş tarihi, merkez bayrağı ve varsayılan bir IANA saat dilimiyle kaydeder (
src/cluster_erp/modules/owned_organisations/organisations/models.py:21-51). - Departmanları bir kuruluş içinde ağaç olarak kaydeder (
src/cluster_erp/modules/owned_organisations/departments/models.py:16-39). - Her kişi için istihdam, yasal, diyet, acil durum kişisi ve yönetici alanlarıyla şirket düzeyinde tek bir çalışan kaydı tutar (
src/cluster_erp/modules/owned_organisations/employees/models.py:18-66). - Bir çalışanı pozisyon, istihdam türü ve tarihlerle bir veya daha fazla kuruluşa görevlendirmelerle yerleştirir (
src/cluster_erp/modules/owned_organisations/employees/models.py:69-108). - Diğer modüllerin merkez, şirket saat dilimi, rehber ve bir yöneticinin ekibi hakkındaki sorularını yanıtlar (
src/cluster_erp/modules/owned_organisations/module.py:90-99).
Alt modüller¶
| Alt modül | Amaç | Ana varlıklar | Yönlendirici | Kaynak |
|---|---|---|---|---|
organisations |
Sahip olunan kuruluşlar | OwnedOrganisation |
/api/v1/owned_organisations/organisations |
src/cluster_erp/modules/owned_organisations/organisations/routes.py:28 |
departments |
Departman ağaçları | Department |
/api/v1/owned_organisations/departments |
src/cluster_erp/modules/owned_organisations/departments/routes.py:21 |
employees |
Çalışanlar ve görevlendirmeler | Employee, Assignment |
/api/v1/owned_organisations/employees/, /api/v1/owned_organisations/assignments/ |
src/cluster_erp/modules/owned_organisations/employees/routes.py:35 |
Üç yönlendirici, uygulama yetkisine bağlı tek bir modül yönlendiricisi altında durur (src/cluster_erp/modules/owned_organisations/module.py:49-54). Metadata'daki dört varlığın tamamı organisations/metadata.py içinde bildirilir (src/cluster_erp/modules/owned_organisations/module.py:427-432).
Veri modeli¶
| Varlık | Tablo | Anahtar alanlar | Notlar | Kaynak |
|---|---|---|---|---|
OwnedOrganisation |
owned_orgs_organisations |
code, party_id, name, description, is_headquarters, founded_date, is_active, default_timezone, extra |
taraf başına bir canlı kuruluş (kısmi benzersiz indeks) | src/cluster_erp/modules/owned_organisations/organisations/models.py:21-60 |
Department |
owned_orgs_departments |
code, organisation_id, name, description, parent_id, is_active, extra |
parent_id başka bir departmanı gösterir |
src/cluster_erp/modules/owned_organisations/departments/models.py:16-39 |
Employee |
owned_orgs_employees |
code, party_id, employee_number, hire_date, tax_no, national_id_no, social_security_no, blood_group, diet_preferences, diet_note, acil durum kişisi alanları, manager_party_id, is_active, extra |
taraf başına bir canlı çalışan | src/cluster_erp/modules/owned_organisations/employees/models.py:18-66 |
Assignment |
owned_orgs_assignments |
code, employee_id, party_id, organisation_id, department_id, position, employment_type, start_date, end_date, is_active, extra |
party_id çalışanın tarafını kopyalar |
src/cluster_erp/modules/owned_organisations/employees/models.py:69-108 |
party_id ve manager_party_id düz UUID sütunlarıdır, parties tablolarına yabancı anahtar değildir (src/cluster_erp/modules/owned_organisations/organisations/models.py:41, src/cluster_erp/modules/owned_organisations/employees/models.py:59-61). OwnedOrganisation model yorumu, kısmi benzersiz indeksin kullanıcının bir kuruluşu kullanımdan kaldırıp aynı taraf için yenisini açmasına izin verdiğini belirtir (src/cluster_erp/modules/owned_organisations/organisations/models.py:38-40).
Ekranlar ve metadata¶
Modül kendine ait bir kenar çubuğu grubu bildirmez; kuruluşları taraf listesinin bir sekmesidir (src/cluster_erp/modules/owned_organisations/module.py:440-442, src/cluster_erp/modules/parties/module.py:589-597). Kuruluş, çalışan ve görevlendirme IdentityMeta bildirir; bu yüzden birini açmak taraf kartını açar (src/cluster_erp/modules/owned_organisations/organisations/metadata.py:53, src/cluster_erp/modules/owned_organisations/organisations/metadata.py:355, src/cluster_erp/modules/owned_organisations/organisations/metadata.py:590). Kuruluş ayrıntısında Genel, Departmanlar (ağaç) ve Çalışanlar (kuruluşun görevlendirmeleri) sekmeleri vardır (src/cluster_erp/modules/owned_organisations/organisations/metadata.py:90-110). Departmanlar kuruluşlarının altında ağaç görünümü kullanır (src/cluster_erp/modules/owned_organisations/organisations/metadata.py:252-281). Altı çalışan alanı permission="employee.read_sensitive" taşır: vergi numarası, kimlik numarası, sosyal güvenlik numarası, kan grubu, diyet tercihleri ve diyet notu (src/cluster_erp/modules/owned_organisations/organisations/metadata.py:469-549).
Durumlar ve aksiyonlar¶
Modül hiçbir ActionMeta bildirmez (pakette ActionMeta( için yapılan grep hiçbir şey bulmaz). Kayıtlar bir is_active bayrağı taşır, durum alanı yoktur (src/cluster_erp/modules/owned_organisations/organisations/models.py:46, src/cluster_erp/modules/owned_organisations/employees/models.py:62, src/cluster_erp/modules/owned_organisations/employees/models.py:102).
| Aksiyon | Etiket | Koşul | Uç | İzin | Kaynak |
|---|---|---|---|---|---|
| yok | yok | yok | yok | yok | src/cluster_erp/modules/owned_organisations/organisations/metadata.py |
İş kuralları¶
party_idolmadan oluşturulan bir kuruluş, tarafınıEnsurePartyForOrganisationile alır; hiçbir taraf dönmezse oluşturma başarısız olur (src/cluster_erp/modules/owned_organisations/organisations/services.py:74-94).default_timezonebilinen bir IANA bölge adı olmalı veya boş olmalıdır (src/cluster_erp/modules/owned_organisations/organisations/schemas.py:13-19).- Zaten canlı bir çalışan kaydı olan bir taraf için çalışan oluşturmak var olan kaydı döndürür (
src/cluster_erp/modules/owned_organisations/employees/services.py:63-66). - Bir çalışan oluştururken acil durum kişisinin adı ve telefonu gerekir (
src/cluster_erp/modules/owned_organisations/employees/schemas.py:47-49). - Bir görevlendirme çalışan yerine tarafı belirtebilir; servis o zaman kişinin çalışan kaydını bulur veya oluşturur (
src/cluster_erp/modules/owned_organisations/employees/services.py:194-203,src/cluster_erp/modules/owned_organisations/employees/services.py:78-86). - İstihdam türleri
full_time,part_time,contract,internvefreelance; kan grupları sekiz ABO ve Rh grubudur (src/cluster_erp/modules/owned_organisations/employees/schemas.py:11-29). employee.read_sensitiveile korunan alanlar, bu koda sahip olmayan bir çağıran için yanıtlardan çıkarılır ve girdide yok sayılır (src/cluster_erp/modules/owned_organisations/employees/routes.py:57-78); bkz. alan ve satır erişimi.- Kodlar
owned_organisation,department,employeeveassignmentyıllık dizilerinden gelir (src/cluster_erp/modules/owned_organisations/organisations/services.py:71,src/cluster_erp/modules/owned_organisations/departments/services.py:46,src/cluster_erp/modules/owned_organisations/employees/services.py:89,src/cluster_erp/modules/owned_organisations/employees/services.py:214).
Olaylar ve sorgular¶
Modül 10 sözleşme tüketir ve 5 sözleşme üretir; sayım parties modülü sayfasındaki gibi yapıldı.
| Yön | Sözleşme sınıfı | İşleyici veya yayan | Kaynak |
|---|---|---|---|
| yayar | OrganisationCreated, OrganisationUpdated |
OwnedOrganisationService.create, .update |
src/cluster_erp/modules/owned_organisations/organisations/services.py:103-110, src/cluster_erp/modules/owned_organisations/organisations/services.py:138-145 |
| yayar | PartyRoleSet |
EmployeeService._insert, .delete |
src/cluster_erp/modules/owned_organisations/employees/services.py:93-100, src/cluster_erp/modules/owned_organisations/employees/services.py:132-139 |
| yayar | EmployeeAdded |
AssignmentService.create |
src/cluster_erp/modules/owned_organisations/employees/services.py:232-239 |
| sorgular | EnsurePartyForOrganisation |
OwnedOrganisationService.create |
src/cluster_erp/modules/owned_organisations/organisations/services.py:77-84 |
| sorguyu yanıtlar | GetOrganisationById |
_handle_get_org |
src/cluster_erp/modules/owned_organisations/module.py:90, src/cluster_erp/modules/owned_organisations/module.py:228-249 |
| sorguyu yanıtlar | GetHeadquartersOrganisation |
_handle_get_headquarters |
src/cluster_erp/modules/owned_organisations/module.py:93, src/cluster_erp/modules/owned_organisations/module.py:251-277 |
| sorguyu yanıtlar | GetCompanyDefaultTimezone |
_handle_get_company_default_timezone |
src/cluster_erp/modules/owned_organisations/module.py:94-96, src/cluster_erp/modules/owned_organisations/module.py:279-343 |
| sorguyu yanıtlar | GetPartyForEmployee |
_handle_get_party_for_employee |
src/cluster_erp/modules/owned_organisations/module.py:97, src/cluster_erp/modules/owned_organisations/module.py:101-126 |
| sorguyu yanıtlar | ListDirectoryEmployees |
_handle_list_directory_employees |
src/cluster_erp/modules/owned_organisations/module.py:98, src/cluster_erp/modules/owned_organisations/module.py:128-195 |
| sorguyu yanıtlar | GetTeamPartyIds |
_handle_get_team_party_ids |
src/cluster_erp/modules/owned_organisations/module.py:99, src/cluster_erp/modules/owned_organisations/module.py:197-226 |
| abone olur | PartyDeleted, RecordActivated |
_on_party_deleted, _on_record_activated |
src/cluster_erp/modules/owned_organisations/module.py:70-71, src/cluster_erp/modules/owned_organisations/module.py:348-420 |
| abone olur | CollectSubjectData, AnonymiseSubject |
collect_subject_data, anonymise_subject |
src/cluster_erp/modules/owned_organisations/module.py:81-88 |
Üç yanıt bilinmesi gereken kurallar taşır:
- Merkez,
is_headquartersişaretli kuruluştur, yoksa en eski canlı kuruluştur (src/cluster_erp/modules/owned_organisations/module.py:251-277). - Şirket saat dilimi, verilen kuruluşun kendi dilimi, sonra merkezinki, sonra merkez bayrağına ve kimliğe göre sıralı herhangi bir etkin kuruluşunkidir. Birden çok kuruluş merkez olarak işaretliyse bir uyarı günlüğe yazılır (
src/cluster_erp/modules/owned_organisations/module.py:279-343). Dilimin nerede kullanıldığını çalışma süresi sayfası açıklar. - Bir yöneticinin ekibi,
manager_party_idzincirinde yöneticinin altındaki her canlı ve etkin çalışandır; döngülerde duran özyinelemeli bir sorguyla bulunur (src/cluster_erp/modules/owned_organisations/module.py:197-226).
Yetkiler¶
| İzin anahtarı | Kullanan | Kaynak |
|---|---|---|
organisation.read, .create, .update, .delete, .bulk_delete |
kuruluş uçları | src/cluster_erp/modules/owned_organisations/organisations/routes.py:49-125 |
department.read, .create, .update, .delete, .bulk_delete |
departman uçları | src/cluster_erp/modules/owned_organisations/departments/routes.py:39-127 |
employee.read, .create, .update, .delete, .bulk_delete |
çalışan uçları | src/cluster_erp/modules/owned_organisations/employees/routes.py:48-132 |
employee.read_sensitive |
altı çalışan alanındaki alan kapısı | src/cluster_erp/modules/owned_organisations/organisations/metadata.py:469-549 |
assignment.read, .create, .update, .delete, .bulk_delete |
görevlendirme uçları | src/cluster_erp/modules/owned_organisations/employees/routes.py:149-268 |
Gizlilik, saklama ve geçmiş¶
privacy_handlers.py bir kişinin tuttuğu istihdam kayıtlarını bildirir. Tanımlayıcıları, sağlık verilerini ve acil durum kişisi alanlarını yalnızca talep include_employment_records taşıdığında anonimleştirir; docstring'inin belirttiği gibi istihdam kayıtlarının yasal saklama yükümlülükleri vardır (src/cluster_erp/modules/owned_organisations/privacy_handlers.py:1-9). Bir taraf kullanımdan kaldırıldığında çalışan kayıtları party_deactivated nedeniyle geçici olarak silinir; tarafı yeniden etkinleştirmek tam olarak bu satırları geri getirir (src/cluster_erp/modules/owned_organisations/module.py:348-420). Bkz. gizlilik ve ilgili kişi talepleri ve değişiklik geçmişi.
Analitik olguları¶
Bu modülün analytics_facts.py dosyası yoktur.
Ayarlar ve başvuru verileri¶
Modülün ayarlar bölümü yoktur ve başlangıçta hiçbir şey tohumlamaz (src/cluster_erp/modules/owned_organisations/module.py:31-33). Kuruluşlar, departmanlar, çalışanlar ve görevlendirmeler extra içinde kiracı tanımlı alanları kabul eder (src/cluster_erp/modules/owned_organisations/organisations/metadata.py:36-48); bkz. kiracı alanları.
Testler¶
tests/ içinde modules.owned_organisations için grep ile ve web-client/ içinde dosya adıyla bulundu.
| Tür | Dosya | Kapsam |
|---|---|---|
| pytest | tests/test_party_form_contract.py |
taraf formunun kullandığı çalışan metadata'sı |
| pytest | tests/test_data_map_package2.py |
çalışan kartındaki hassas alan kapısı |
| e2e | web-client/_e2e_employee_field_gate.mjs |
canlı sunucuya karşı alan kapısı |
| e2e | web-client/_e2e_parties.mjs |
taraflar uygulaması içindeki kuruluş ayrıntısı |
Tutarsızlıklar¶
Tanıtılan terimler¶
| Terim | Kod tanımlayıcısı | Tanım | Türkçe terim | Kaynak |
|---|---|---|---|---|
| owned organisation | OwnedOrganisation |
Şirketin kendisine ait bir kuruluş, örneğin bir merkez veya şube. | Kuruluş | src/cluster_erp/modules/owned_organisations/organisations/models.py:21 |
| employee record | Employee |
Bir kişinin şirket düzeyindeki personel kaydı. | Çalışan kaydı | src/cluster_erp/modules/owned_organisations/employees/models.py:18 |
| assignment | Assignment |
Bir çalışanın bir dönem için bir kuruluşa, departmana ve pozisyona yerleştirilmesi. | Görevlendirme | src/cluster_erp/modules/owned_organisations/employees/models.py:69 |
| head office | is_headquarters |
Şirketin merkezi olarak işaretlenen kuruluş. | Merkez | src/cluster_erp/modules/owned_organisations/organisations/models.py:44 |
İlgili sayfalar¶
- Modüller dizini
- Parties modülü
- Taraf birleştirme
- Çalışma süresi
- Bu modülün API başvurusu
- İlgili malzeme, tarihsel, doğrulanmadı: ağaç içi not
src/cluster_erp/modules/owned_organisations/docs/how-to.md. Kuruluş ve departman başına çalışan uçlarını ve çalışan üzerinde birorganisation_idalanını anlatır; kodda artık bunlar yoktur (src/cluster_erp/modules/owned_organisations/employees/routes.py:146-198).
92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.