Marine Yasal Kurallar
Ne işe yarar
Bölüm başlığı “Ne işe yarar”Yasal Kural Kümeleri ekranı, Marine hakedişinin resmî bileşenlerini (hakediş stopajı, KDV ve stopaj matrahı) hesaplamak için kullanılan tarihli, kaynaklı kural kümelerini tutar. Her kural kümesi Taslak olarak doğar, İncelemede ve Doğrulandı adımlarından geçer ve Yayında durumuna alınınca hakediş hesabında kullanılır. Yayınlanmış kural değiştirilemez; yeni dönem için yeni sürüm oluşturulur ve eski kural Geçersiz Kıl ile kapatılır.
Her kural kümesi bir İşveren tipi taşır: Resmî daire / kamu ya da Özel sektör. “Tümü” diye bir seçenek yoktur; iki işveren tipi için de geçerli olan kural, her işveren tipi için ayrı satır olarak girilir. Hakediş kuralı ararken işveren tipini birebir eşleştirir; özel işverenin hakedişi hiçbir zaman resmî daire satırını kullanmaz. Hakedişte işveren tipi, sözleşme rejiminden belirlenir: kamu ihalesi rejimi Resmî daire / kamu, diğer rejimler Özel sektör satırını arar.
Aynı ekran İnşaat menüsünden de açılır; Marine menüsünden açıldığında Marine yetkileri geçerlidir. Hakedişin hesaplandığı tarihte yürürlükte Yayında olan kural yoksa hakediş için resmî bileşen üretilmez: hakediş yasal incelemeye düşer ve mali olarak onaylanamaz (“Resmî bir bileşen için yayımlanmış kural eksik; hakediş mali olarak onaylanamaz.”). Hakediş bileşeni, hesapta kullanılan kural kümesinin kimliğini kayıtta taşır; sonradan yeni sürüm yayımlanması hesaplanmış bileşeni kendiliğinden değiştirmez.
Değer bekliyor: değeri henüz bilinmeyen kural, listede “Değer bekliyor” yazan bir yer tutucu olarak görünür. Yer tutucu bir değer taşımaz, yayımlanamaz ve hesaba girmez; hakediş bu kurala geldiğinde durur ve hangi kuralın doldurulacağını adıyla bildirir (aşağıda “Sık hatalar”).
Kimler kullanır
Bölüm başlığı “Kimler kullanır”Mali işler/vergi sorumlusu ve yetkili yönetici. Yetki Ayarlar › Roller ekranındaki Marine hakediş yasal kuralları (stopaj/KDV) sayfasındandır (Marine paketi açıkken geçerlidir):
- Ekleme / Düzenleme: kural kümesi oluşturur ve incelemeye gönderir.
- Onaylama: kuralı doğrular, yayınlar ve geçersiz kılar.
- Görme tek başına işlem yaptırmaz. Ekranı görmek için Marine sayfasında Görme yetkisi ya da bu sayfada Görme yetkisi yeterlidir. Yönetici hem yazma hem onay yetkisine sahiptir.
Dört göz ilkesi uygulanır: kuralı doğrulayan kişi oluşturandan farklı, yayınlayan kişi hem oluşturandan hem doğrulayandan farklı olmalıdır.
Ön koşullar
Bölüm başlığı “Ön koşullar”- Firmada Marine paketi açık olmalı. Bu modül lisansınıza bağlıdır; açtırmak için bizimle iletişime geçin.
- Aktif firma ve şube seçili olmalı.
- Parametreler: bu ekrandaki kural kümeleri Ayarlar › Parametreler › Tersane Stopajı (ortak yasal kurallar) sekmesinde de sayılır ve oradan bu ekrana bağlanılır (Tersane Stopajı (ortak yasal kurallar)). Oranlar, matrah kuralları ve yuvarlama bu kural satırlarında tarihli ve kaynaklı olarak tutulur; kodda sabit değer yoktur. Hesaplama tarihinde yürürlükte yayınlanmış satır yoksa işlem durur ve hakediş yasal incelemeye düşer.
- Her kural satırı için işveren tipi bilinmelidir (Resmî daire / kamu ya da Özel sektör); iki işveren için geçerli kural iki ayrı satırdır.
- Kuralı hazırlayacak, doğrulayacak ve yayınlayacak üç ayrı kullanıcı gerekir.
Adım adım
Bölüm başlığı “Adım adım”-
Soldaki menüden Marine grubundaki Marine Yasal Kurallar ekranını açın. Başlıktaki Marine düğmesi Marine ana sayfasına, Yenile düğmesi listeyi tazelemeye yarar.

-
Ekleme/Düzenleme yetkiniz varsa Yeni Kural Kümesi bölümünde Yargı Çevresi, Rejim, İşveren tipi (Resmî daire / kamu ya da Özel sektör; yeni formda Özel sektör seçili gelir), Kural Kodu, Ad, Yürürlük Başlangıcı ve ilk satır için Anahtar ile Değer / Formül alanlarını doldurup Oluştura basın. “Kural kümesi oluşturuldu (Taslak).” iletisi görünür. Oran satırının anahtarı
rate, değeri{"kind":"flat","percent":<oran>}biçimindedir (alanın örnek metni bu biçimi gösterir). Oran biçimleri: düz oran (flat), kademeli oran (tiered), tavanlı oran (capped), maktu tutar (fixed), uygulanmaz (notApplicable) ve değer bekliyor (valueMissing). -
Listenin üstündeki Yargı Çevresi, Rejim ve İşveren tipi süzgeçleriyle (her birinde Tümü seçeneği vardır) listeyi daraltabilirsiniz. Liste her kural kümesi için yargı çevresi/rejim, işveren tipi, kural kodu, ad, sürüm no, yürürlük başlangıcı, Yürürlük Bitişi ve durumu gösterir. Kural kodunun üzerine tıklarsanız altta Kural Satırları tablosu açılır: Anahtar, Değer / Formül, Yuvarlama ve Kaynak. Değer sütununda oran, okunabilir bir cümleyle (“Düz oran”, “Tavanlı oran”, “Kademeli oran”, “Maktu tutar”, “Uygulanmaz” ya da “Değer bekliyor”) ve altında ham değerle birlikte görünür.
-
Taslak kuralda İncelemeye Göndere basın (kural en az bir satır içermelidir).
-
Onaylama yetkisi olan başka bir kullanıcı İncelemede kuralda Doğrulaya basar ve “Kural doğrulansın mı? (Doğrulayan ≠ oluşturan.)” sorusunu onaylar. Düzeltme gerekirse Taslak düğmesi kuralı taslağa geri çeker.
-
Üçüncü bir kullanıcı Doğrulandı durumundaki kuralda Yayınlaya basar ve “Kural YAYINLANSIN mı? Yayınlanmış kural resmî çıktı üretir ve immutable olur.” sorusunu onaylar. Oluşturan ya da doğrulayan kişi için bu düğme pasif görünür; üzerine gelince dört göz açıklaması çıkar.
-
Yeni dönem için aynı kural koduyla yeni bir kural kümesi oluşturun ve yürürlük başlangıcını yeni tarihe verin; eski kural Yayında iken Geçersiz Kıl ile kapatılır. Sonra yeni kümeyi yayınlayın. Aynı kural için (aynı yargı çevresi, rejim, işveren tipi ve kural kodu) yürürlükteki sürümlerle tarih aralığı çakışamaz; eski kural bitiş tarihsiz ve Yayında ise yeni taslak, eski kural Geçersiz Kıl ile kapatılana kadar çakışma uyarısı verir. Kolaylık için satırdaki Yeni dönem düğmesi (Ekleme/Düzenleme yetkisiyle görünür) formu seçili kuralın yargı çevresi, rejim, işveren tipi, kod, ad ve ilk satırıyla doldurur ve başlangıç tarihini önerir; tarihi ve değeri kontrol edip Oluştura basın. “Değer bekliyor” yer tutucusu çakışma sayılmaz: gerçek dönem satırını yanına girersiniz.
Hakediş motorunun aradığı kural kodları
Bölüm başlığı “Hakediş motorunun aradığı kural kodları”Marine hakedişi kural kodunu yargı çevresi önekiyle arar. Önek, hakediş kaynağının yargı çevresi koduyla gelir.
| Kural | Kod biçimi |
|---|---|
| Yıllara yaygın gemi inşa ve onarım işi hakediş stopajı | <yargı>-WHT-SHIPBUILDING |
| Diğer yıllara yaygın inşaat/onarım işi hakediş stopajı | <yargı>-WHT-MULTIYEAR |
| Marine hakediş KDV’si (rejim alanıyla ayrışır) | <yargı>-VAT-MARINE |
| Stopaj matrahı kuralları | <yargı>-WHT-BASE-GROSS, <yargı>-WHT-BASE-NETADV, <yargı>-WHT-BASE-NETCASH |
KKTC şubesinde yargı çevresi öneki KKTC olarak aranır (örn. KKTC-WHT-SHIPBUILDING, KKTC-WHT-MULTIYEAR). Ürünün örnek (demo) firmasında KKTC için bazı satırlar resmî metne dayandırılmış olarak Yayında hazır gelir; matrah modeli gibi teyidi tamamlanmamış satırlar Taslak gelir ve dört göz ile yayınlayana kadar hakediş o kurala gelince durur; resmî değeri bilinmeyen kurallar “Değer bekliyor” yer tutucusu olarak durur. Kendi firmanızda bu satırlar kurulumla gelmez; kural kümelerini kendiniz oluşturursunuz. Yabancı (dar yükümlü) yüklenici için kural Rejim alanı NONRESIDENT olan satırdan okunur; Rejim boş satır KKTC mukimi (yerli) yükleniciyi kapsar. Ödenecek (gider tarafı) hakedişte yüklenicinin yerli mi yabancı mı olduğu açıkça belirtilmelidir. Oran ve kaynağı resmî kaynakla teyit edip girin (oranlar bu ekrandaki tarihli satırlardır, programa yazılı değildir).
Alanlar
Bölüm başlığı “Alanlar”| Alan | Anlamı | Zorunlu mu |
|---|---|---|
| Yargı Çevresi | Kuralın geçerli olduğu ülke/bölge kodu; kural kodu öneki ile uyumlu olmalı. | Evet |
| Rejim | Aynı kural kodunun alt ayrımı (örn. KDV senaryosu, yabancı yüklenici). | Hayır |
| İşveren tipi | Hakedişi ödeyen tarafın türü: Resmî daire / kamu ya da Özel sektör. “Tümü” seçeneği yoktur; iki tür için ayrı satır girilir. | Evet (listeden seçilir) |
| Kural Kodu | Hakediş motorunun aradığı kod (yukarıdaki tablo). | Evet |
| Ad | Kuralın açıklayıcı adı. | Evet |
| Yürürlük Başlangıcı | Kuralın uygulanacağı ilk gün. | Evet |
| Anahtar | İlk kural satırının anahtarı (örn. rate). | Hayır (boşsa satırsız oluşur; satırsız kural incelemeye gönderilemez) |
| Değer / Formül | Satırın değeri (JSON). | Anahtar varsa evet |
| Sürüm No | Aynı yargı/rejim/işveren tipi/koddaki sürüm sırası; otomatik artar. | Otomatik |
| Yürürlük Bitişi | Listede görünür; yeni kural formunda girilmez. | Otomatik |
| Durum | Taslak, İncelemede, Doğrulandı, Yayında, Geçersiz Kılındı. | Otomatik |
Kaynak, Yuvarlama ve Yürürlük Bitişi bu ekrandaki yeni kural formundan girilmez; yalnız listede ve Kural Satırları tablosunda gösterilir. Ürünün hazır getirdiği satırlarda bu alanlar doludur; elle oluşturduğunuz satırda boş kalır.
Sık hatalar ve mesajları
Bölüm başlığı “Sık hatalar ve mesajları”| Ekranda gördüğünüz mesaj | Anlamı / ne yapmalı |
|---|---|
| “Dört-göz: oluşturan ≠ doğrulayan ≠ yayınlayan” (bilgi bandı) | Üç aşamayı üç farklı kullanıcı yapmalıdır. |
| “Dört göz kuralı: kuralı doğrulayan kişi, oluşturan kişiden farklı olmalıdır.” | Doğrulamayı başka bir kullanıcıya yaptırın. |
| “Dört göz kuralı: kuralı yayımlayan kişi, oluşturan kişiden farklı olmalıdır.” / “…doğrulayan kişiden farklı olmalıdır.” | Yayını üçüncü bir kullanıcıya yaptırın. |
| “Kural kümesi doğrulanmadan yayımlanamaz.” | Önce Doğrula. |
| “Satırı olmayan kural kümesi incelemeye gönderilemez; önce en az bir satır ekleyin.” | Kuralı satırlı oluşturun. |
| “İşveren tipi ‘PublicAuthority’ (resmî daire) ya da ‘Private’ (özel) olmalıdır.” | İşveren tipini listeden seçin. |
| ”‘{kod}’ kuralının yasal değeri henüz girilmedi (değer bekliyor); hesap durdu (LEGAL_VALUE_MISSING).” | Yayımlamaya çalıştığınız satır “Değer bekliyor” yer tutucusudur ya da başlangıç tarihi bekleyen bir satırdır; yayımlanamaz. Gerçek değeri ve yürürlük tarihini içeren yeni bir kural kümesi oluşturun. |
| “{bileşen}: ‘{kod}’ kuralının (rejim ‘{rejim}’) yasal değeri henüz girilmedi (değer bekliyor). Ayarlar › Parametreler › Tersane Stopajı (ortak yasal kurallar) ekranında değeri ve yürürlük tarihini girin; ikinci bir kullanıcı doğrulasın ve yayımlasın.” (hakedişte, Yasal İnceleme Gerekçesi) | Hakediş, değeri girilmemiş bir kurala geldi ve durdu. Mesajda adı geçen kural için değeri ve yürürlük tarihini girin; başka bir kullanıcı doğrulasın, üçüncü bir kullanıcı yayımlasın; sonra hakedişi yeniden Hesapla. |
| “{bileşen}: {tarih} tarihinde yürürlükte olan yayımlanmış ‘{kod}’ kuralı yok.” (hakedişte) | Hakediş tarihini kapsayan Yayında satır yok; doğru işveren tipiyle satır ekleyip yayınlayın. |
| “Kural kümesi ‘{durum}’ durumunda olduğu için bu işlem yapılamaz; işlem için ‘{beklenen}’ durumunda olmalıdır.” | İşlem sırasını izleyin (Taslak → İncelemede → Doğrulandı → Yayında). |
| ”‘{kod}’ kuralının ({yargı}) bu dönemi kapsayan yürürlükte bir sürümü zaten var; yürürlük tarihleri örtüşemez.” | Yürürlük başlangıcını düzeltin ya da eski sürümü geçersiz kılın. |
| “Yayımlanmış ya da yürürlükten kalkmış kural kümesinin satırları değiştirilemez; yeni sürüm yayımlayın.” | Yeni sürüm oluşturun. |
| “Kural kümesi için yargı alanı (ülke/bölge) girilmelidir.” / “Kural kodu girilmelidir.” / “Kural adı girilmelidir.” | Eksik alanı doldurun. |
| “Yürürlük bitiş tarihi, yürürlük başlangıç tarihinden önce olamaz.” | Tarihleri düzeltin. |
| “Bu kural kümesinde ‘{anahtar}’ anahtarlı bir satır zaten var.” / “Kural satırı için anahtar girilmelidir.” | Anahtarı düzeltin. |
| “Bu yasal kural işlemi için yetkiniz yok: yazma Ekle/Düzenle, doğrulama ve yayımlama Onay izni ister; Görüntüle izni yeterli değildir.” | Roller ekranında Marine hakediş yasal kuralları (stopaj/KDV) sayfası için gerekli yetkiyi verin. |
| “Yasal kural düzenlemek için ‘construction.legalrule’ ya da ‘marine.legalrule’ yetkisi gerekir.” | Aynı yetki uyarısı; Marine tarafında Marine hakediş yasal kuralları (stopaj/KDV) yetkisi gerekir. |
| “Kural kümesi bulunamadı.” | Kayıt başka kapsamda ya da silinmiş olabilir. |
| “Resmî bir bileşen için yayımlanmış kural eksik; hakediş mali olarak onaylanamaz.” (hakedişte) | İlgili kural kodu için hakediş tarihini kapsayan yayınlanmış kural ekleyin. |