Şube Bazlı Veri Giriş Sistemi: Şube Kapsamı, Rotasyon, Transfer ve Gün Sonu Kilidi
Şube bazlı veri giriş sistemi, her şubenin yalnız kendi lokasyonuna ait satış, teslimat, tahsilat ve envanter hareketlerini girdiği; bölge sorumlusunun kendisine bağlı şubeleri, genel merkezin ise tüm şubelerin birleşik tablosunu aynı anda gördüğü özel bir web uygulamasıdır. Bu sistemi şirketinize özel geliştiriyorum. Çok şubeli yapılarda Excel ve Google Sheets üç yerde kırılır. Birincisi, 18 şubeye ayrı dosya açtığınızda bir şube araya sütun ekler ve merkezdeki birleştirme formülü (IMPORTRANGE veya Power Query) çöker; tek dosya açtığınızda ise şubeler birbirinin cirosunu görür ve filtre koydukça ekranları kayar. İkincisi, ay ortasında bir çalışan Kadıköy şubesinden Ataşehir şubesine geçtiğinde eski girdiği kayıtların sahipliğiyle yeni erişim yetkisi birbirine girer. Üçüncüsü, bir şube diğerine ekipman gönderdiğinde kendi tablosundan düşer ama karşı şube tablosuna işlemez; merkez toplamında mal buharlaşır ve kapanmış günün rakamı haftalar sonra sessizce değiştirilir. Aşağıda 4 bölgede 18 şubesi olan kurgusal bir endüstriyel makine kiralama ve servis şirketinin bir ayını bu üç kırılma noktası üzerinden izliyorum.
Bu sayfanın konusu şubelerin veri girişi, şube kapsamı (yetki sınırı), personel rotasyonu, şubeler arası transfer mutabakatı ve gün sonu kilidi. Şubelerin günlük performans göstergelerini aynı tanımlarla kıyaslamak şube günlük rapor karşılaştırma uygulaması sayfasının, alan ve satır düzeyi gizliliğin genel kurgusu ise gider yetki ve rapor ekranı sayfasının işi. İki-üç şubeniz varsa ve merkezde tek bir kişi sabahları rakamları kontrol edebiliyorsa mevcut e-tablo düzeniniz yetebilir; karar listesini aşağıda verdim.
Örnek şirket: 4 bölgede 18 şubeli bir ekipman kiralama şirketi, dört rol ve altı kavram
Örnek veri, kurgusaldır. Endüstriyel zemin temizlik ve yüksek erişim makineleri kiralayan, satan ve bakımını yapan, 4 bölgede (Marmara, Ege, İç Anadolu, Akdeniz) toplam 18 şubesi ve 140 çalışanı olan bir şirket düşünün. Her şubede bir şube sorumlusu günlük kiralama çıkış/dönüşlerini, tahsilatları ve servis iş emirlerini giriyor; dört bölge müdürü kendi bölgesindeki şubeleri denetliyor; merkez operasyon ve finans ekibi ise konsolide tabloyu yönetiyor.
Bugün her şube akşam saat 18.00’de kendi Google Sheets dosyasına günün hareketlerini yazıyor, merkezdeki bir ana dosya IMPORTRANGE ile 18 dosyayı çekiyor. Önceki ay İkitelli şubesi Gebze şubesine 3 adet zemin yıkama makinesi sevk etti ve kendi tablosundan -3 düştü. Gebze şubesi araç akşam geç geldiği için yalnız 2 makineyi teslim alıp tablosuna +2 yazdı; üçüncü makine nakliye aracında kaldı. Merkez toplamında $85.000\text{ TL}$ değerindeki 1 makine iki hafta boyunca “kayıp” göründü. Aynı ay Bursa şube sorumlusu izinliyken yerine bakan İzmir sorumlusu yanlışlıkla Bursa’nın geçen ayki kapanmış tahsilat satırını sildi.
Sayfada altı kavram geçiyor:
- Kayıt şubesi ve aktif kapsam: Her işlem satırı kaydedildiği anda değişmez bir
sube_koduile damgalanır. Kullanıcının aktif kapsamı ise o gün hangi şube veya şubelerin verisini görmeye ve girmeye yetkili olduğudur. - Tarih aralıklı şube ataması (rotasyon ve vekâlet): Çalışanın hangi tarihten hangi tarihe kadar hangi şubeye bağlı olduğunu tutan tablodur. Çalışan şube değiştirdiğinde eski kayıtlar eski şubede kalır; kullanıcının ekranı yeni şubeye geçer.
- Bölge kapsamı: Bölge müdürünün kendisine bağlı şubeleri (örneğin Marmara Bölgesi: İkitelli, Tuzla, Gebze, Bursa, Çorlu) hem tek tek hem bölge toplamı olarak görmesini sağlayan, diğer bölgeleri ise veri tabanı sorgusunda kapatan yetki katmanıdır.
- Çift taraflı şubeler arası transfer: Gönderen şube çıkış yaptığında makine veya stoğun doğrudan silinmeyip “Yolda / Askıda Transfer” durumuna geçmesi; ancak alan şube “Teslim Aldım” onayı verdiğinde alan şube envanterine girmesi kuralıdır.
- Gün sonu kilidi ve düzeltme kaydı: Şube gün sonunu kapattıktan (veya ertesi iş günü saat $10.00$‘dan) sonra geçmiş günün satırlarının kilitlenmesi; olası bir hatanın eski satırı silmeden, bölge müdürü onaylı düzeltme fişiyle (
+ / - fark satırı) işlenmesi. - Kapanış takip matrisi: Merkez ve bölge ekranında hangi şubenin bugünkü girişini kapatıp imzaladığını, hangisinin henüz açık olduğunu gösteren canlı durum tablosu.
Dört rol var: şube sorumlusu, geçici vekil / rotasyon personeli, bölge müdürü ve merkez operasyon / finans yöneticisi.
İki şube arasındaki transfer ve gün sonu park hesabı nasıl çalışır?
Örnek veri. Marmara Bölgesi’ndeki İkitelli ve Gebze şubelerinin aynı iş günündeki makine parkı ve tahsilat hareketini izleyelim:
- İkitelli Şubesi: Güne 64 aktif makine ile başladı. Gün içinde müşterilerden 2 makine kiradan döndü ($+2$), yeni müşterilere 5 makine kiraya çıktı ($-5$) ve Gebze şubesine 3 makine transfer çıkışı yapıldı ($-3$). Günlük tahsilat toplamı $148.500\text{ TL}$. İkitelli’nin gün sonu fiziksel makine parkı: $$64 + 2 - 5 - 3 = 58\text{ makine}$$
- Gebze Şubesi: Güne 42 aktif makine ile başladı. Gün içinde 1 makine kiradan döndü ($+1$), 4 makine kiraya çıktı ($-4$). İkitelli’den gelen 3 makinenin 2 adedini saat 17.30’da indirip ekranda “Teslim Aldım” olarak onayladı ($+2$); 1 makine ise başka bir şantiye uğraması nedeniyle araçta kaldığı için Gebze tarafından henüz onaylanmadı. Günlük tahsilat toplamı $112.000\text{ TL}$. Gebze’nin gün sonu fiziksel makine parkı: $$42 + 1 - 4 + 2 = 41\text{ makine}$$
Excel’de iki şubenin toplamına bakan bölge müdürü sabah $64 + 42 = 106\text{ makine}$ (kiradaki net değişim $-6$ düşüldüğünde beklenen $100\text{ makine}$) yerine ekranda $58 + 41 = 99\text{ makine}$ görür ve 1 makinenin nereye gittiğini bulmak için telefon trafiğine başlar.
Uygulamada ise Marmara Bölge Müdürü ekranı açtığında satırı şöyle görür:
| kalem | İkitelli | Gebze | Askıda / Yolda (İkitelli → Gebze) | İki Şube Toplamı |
|---|---|---|---|---|
| Gün başı şube parkı | 64 | 42 | 0 | 106 |
| Kiralama dönüşü ($+$) | +2 | +1 | 0 | +3 |
| Yeni kiralama çıkışı ($-$) | −5 | −4 | 0 | −9 |
| Şubeler arası transfer hareketi | −3 | +2 | +1 (Araçta, Gebze kabulü bekliyor) | 0 (Fark yok) |
| Gün sonu makine mevcudu | 58 | 41 | 1 | 100 |
| Günlük tahsilat (TL) | 148.500 TL | 112.000 TL | — | 260.500 TL |
Askıda kalan 1 makine belirlenen süre (örneğin 24 saat) içinde Gebze tarafından teslim alınmazsa veya “Hasarlı / Eksik Geldi” diye işaretlenirse hem iki şube sorumlusunun hem bölge müdürünün ekranında kırmızı uyarı olarak kalır.
Şube kapsamı, rotasyon ve dönem kilidi kuralları tablosu
Örnek şirket için önerdiğim kurallar (başlangıç önerim etiketli; saat ve eşikler operasyonunuza göre uyarlanır):
| kural | örnek şirkette önerim | neyi çözer? |
|---|---|---|
| Sunucu taraflı şube izolasyonu | şube sorumlusunun sorgularına sunucu otomatik olarak WHERE sube_kodu IN (yetkili_subeler) filtresi ekler; başka şubenin verisi tarayıcıya hiç gitmez | şubelerin birbirinin cirosunu, müşteri listesini veya prim tablosunu görmesini engeller |
| Tarih aralıklı rotasyon (atama) | çalışan 15’inde İkitelli’den Tuzla’ya atanırsa, İkitelli yetkisi bitis = 14'ü 23:59, Tuzla yetkisi baslangic = 15'i 00:00 olur | İkitelli’de ilk 14 günde girdiği kayıtlar kendi adıyla İkitelli’de korunurken, 15’i sabahı ekranında yalnız Tuzla açılır |
| Süreli vekâlet ataması | Bursa sorumlusu 5 gün izne çıktığında bölge müdürü Eskişehir sorumlusuna 5 günlük Bursa vekâleti tanımlar; süre bitince yetki kendiliğinden düşer | ortak şifre paylaşımını (“benim şifremle girip Bursa’yı doldur”) ve unutulan açık yetkileri bitirir |
| Çift taraflı transfer mutabakatı | gönderen şube transferi açar; alan şube Tam Teslim, Kısmi Teslim veya Red / Hasar seçmeden transfer kapanmaz | şubeler arası mal ve ekipman kayıplarında “ben göndermiştim / bana gelmedi” tartışmasını bitirir |
| Gün sonu kapanış kilidi | her şube akşam çıkışta “Gün Sonunu Kapat” düğmesine basar; basmasa bile ertesi iş günü saat $10.00$‘da önceki gün otomatik kilitlenir (başlangıç önerim) | geçmiş günün veya kapanmış ayın rakamlarının sonradan sessizce değiştirilmesini önler |
| Onaylı düzeltme fişi | kilitli bir günde hata fark edilirse şube sorumlusu gerekçe ve belgeyle “Düzeltme Talebi” açar; bölge müdürü onaylarsa orijinal satır silinmez, altına düzeltme satırı eklenir | hem hatanın düzeltilmesini sağlar hem de denetim izini (kim, neden, ne zaman düzeltti) korur |
| Ortak referans sözlüğü | ürün kodları, işlem türleri ve kiralama tarifeleri yalnız merkez tarafından tanımlanır; şube serbest metinle yeni sütun veya kategori açamaz | 18 şubenin aynı hizmeti 18 farklı isimle yazıp merkez raporunu bozmasını engeller |
Rol ve yetki tablosu: kim nereyi görür ve kilit açar?
| işlem / görünüm | şube sorumlusu | vekil / rotasyon personeli | bölge müdürü (5 şube) | merkez operasyon / finans |
|---|---|---|---|---|
| Günlük satış, tahsilat ve iş emri girişi | yalnız kendi şubesine girer | yalnız vekâlet süresi boyunca tanımlı şubeye girer | veri girmez, inceler | tüm şubeleri inceler |
| Diğer şubelerin cirosunu ve kayıtlarını görme | görmez | yalnız aktif atanmış şubelerini görür | yalnız kendi bölgesindeki 5 şubeyi görür | 18 şubenin tamamını görür |
| Şubeler arası transfer başlatma / teslim alma | kendi şubesinden çıkış yapar; kendine geleni teslim alır | vekil olduğu şube adına yapar | bölgesindeki askıda transferleri izler ve uyarır | tüm bölgeler arası transferleri izler |
| Kilitli güne düzeltme talebi / onayı | düzeltme talep eder | düzeltme talep eder (vekil etiketiyle) | kendi bölgesindeki düzeltmeyi onaylar/reddeder | tüm düzeltmeleri ve ay kapanışını onaylar |
| Çalışan şube ataması ve vekâlet tanımlama | yok | yok | kendi bölgesi içinde geçici vekâlet tanımlar | kalıcı şube rotasyonu ve bölge yetkisi tanımlar |
| Excel / CSV dışa aktarma | yalnız kendi şubesinin özetini alır | yok | yalnız kendi bölgesini alır (iz kaydıyla) | tüm şirketi alır |
Örnek ay: 18 şube, 396 şube-gün kapanışı ve yakalanan farklar
Örnek veri. İlk ayda 18 şube 22 iş günü boyunca toplam 396 şube-gün ($18 \times 22 = 396$) kapanışı yaptı. Her şube-gün tabloda tek satırda sayıldı:
| kapanış durumu | şube-gün sayısı | açıklama |
|---|---|---|
| Zamanında ve müdahalesiz kapanan şube-gün | 358 | şube sorumlusu akşam kapattı, transfer ve kasa farkı çıkmadı |
| Kural kapısına takılan veya onay akışıyla kapanan toplam | 38 | aşağıda üç kırılımı verilen şube-günler |
| · Kilit saatinden (ertesi gün $10.00$) sonra geçmiş güne düzeltme fişiyle işlenen | 19 | 14’ü geciken saha servis fişi, 5’i yanlış girilen tahsilat türü (bölge müdürü onayladı) |
| · Şubeler arası transferde 24 saat içinde teslim onayı verilmediği için uyarı üreten | 11 | 9’u nakliye gecikmesi, 2’sinde gönderen şube yanlış şube kodu seçmişti (aynı gün düzeltildi) |
| · İzin veya şube rotasyonu nedeniyle tarih aralıklı vekâlet atamasıyla kapatılan | 8 | şifre paylaşımı yapılmadan vekil kullanıcının kendi hesabıyla kapatıldı |
| Toplam | 396 | 18 şube × 22 iş günü |
Ay sonu kararı. Geçmiş güne yapılan 19 düzeltme talebinin 14’ünün aynı sebepten (akşam 17.30’dan sonra şantiyeden dönen mobil servis aracının iş emrini ertesi sabah getirmesi) kaynaklandığı görüldü. Merkez operasyon kuralı güncelledi: şube kasa ve tahsilat kilidi ertesi sabah $10.00$‘da kapanmaya devam ederken, “Saha Servis İş Emri” satırları için şube sorumlusuna ertesi gün saat $12.00$‘ye kadar doğrudan giriş penceresi tanındı; böylece gereksiz düzeltme onayı trafiği üçte iki oranında azaldı.
Excel ve Google Sheets’te şube birleştirme neden kırılır?
Google Sheets’te 18 ayrı şube dosyasını merkezde birleştirmek için genellikle şu formül kullanılır:
={IMPORTRANGE("sube1_anahtar"; "Giris!A2:H500"); IMPORTRANGE("sube2_anahtar"; "Giris!A2:H500")}
Google’ın kendi belgelerine göre IMPORTRANGE zincirleri ve çok sayıda dış bağlantı çalışma kitabını yavaşlatır; ayrıca bir dosyaya erişim verildiğinde kullanıcı o kaynak dosyadaki izin verilen aralığın tamamını çekebilir (Google Dokümanlar Düzenleyicileri Yardım — IMPORTRANGE). Üstelik pratikte üç sorun kaçınılmazdır:
- Tek bir şubenin sütun eklemesi tüm diziyi bozar: 18 şubeden biri
Dsütununa “Açıklama” diye yeni bir sütun açtığında, merkezdeki birleşik tabloda o şubenin tutar sütunu tarih sütununun altına kayar. - Rotasyonda geçmiş ile bugün ayrılamaz: Çalışanı eski şubenin Google Sheets dosyasından çıkardığınızda geçmişte ne girdiğini göremez; dosyada bıraktığınızda ise yeni şubesindeyken eski şubenin bugünkü rakamlarını görmeye devam eder.
- Kilitlenen hücreler yeni satır eklemeyi zorlaştırır: Geçmiş günlerin satırlarını her sabah 18 dosyada tek tek seçip “Aralığı Koru” yapmak merkezde bir kişinin her sabah 45 dakikasını alır.
Yapay zekâ şube veri giriş sisteminde ne yapar, ne yapmaz?
Yapay zekâ bu sistemde şube toplamlarını, kasa bakiyesini, makine mevcudunu veya yetki sınırlarını hesaplamaz; bütün toplamlar ve yetki filtreleri veri tabanı ve uygulama kodunda çalışır. Yapay zekânın yaptığı üç iş vardır ve üçü de insan onayına bağlıdır:
- Gün sonu kapanış öncesi anormallik uyarısı: Şube sorumlusu “Gün Sonunu Kapat” düğmesine basarken model o şubenin kendi geçmiş ortalamasına göre sıra dışı satırları işaretler: “Bugün girilen yakıt/nakliye gideri (48.000 TL), şubenizin son 30 günlük ortalamasının yaklaşık 10 katı; sıfır hatası olup olmadığını kontrol edin.”
- Saha servis notundan yapılandırılmış kayıt önerisi: Teknisyenin telefondan yazdığı “Gebze organize şantiyede ZY-402 makinenin vakum motoru değişti, 3 saat işçilik” notunu okuyup ilgili makine kodunu ve işlem türünü taslak olarak doldurur; şube sorumlusu onaylar.
- Bölge ve merkez yöneticileri için doğal dilde sorgu: Bölge müdürü “Bölgemdeki 5 şubede bu ay en çok hangi makine grubu şubeler arası transfere konu oldu?” diye sorduğunda model yalnız o bölge müdürünün yetkili olduğu 5 şubenin verisi üzerinde sorgu kurar; başka bölgenin tek bir satırı bile modele gitmez.
Kural değişmez: modele hiçbir satır kullanıcının yetki filtresinden geçmeden gönderilmez. Kayıtlarda çalışan veya müşteri iletişim bilgileri yer alıyorsa, yurt dışında barındırılan modellere aktarım 6698 sayılı KVKK md. 9 (7499 sayılı Kanun md. 34, RG 12.03.2024/32487, yürürlük 1 Haziran 2024) kapsamındadır. Hukuki görüş vermiyorum; modele hangi alanların gittiğini yazılı olarak teslim ederim, hukuk danışmanınız bu listeyle değerlendirir.
Mevcut e-tablonuz veya ERP şube modülünüz yetiyorsa bu sisteme gerek yok
Şu beş soruya evet diyorsanız mevcut düzeninizi bozmayın:
- Şube sayınız 2–3 ile sınırlı mı ve çalışanlar şubeler arasında neredeyse hiç yer değiştirmiyor mu?
- Şubelerin birbirinin verisini görmesi ticari veya operasyonel bir sorun yaratmıyor mu?
- Şubeler arasında stok, makine veya kasa transferi yapılmıyor mu?
- Mevcut ERP programınızın şube ekranları zaten her şubeye ayrı lisans maliyeti çıkarmadan kolayca kullanılabiliyor mu?
- Merkezde birleştirilen şube tablolarında sütun kayması veya geriye dönük habersiz veri değişikliği hiç yaşanmıyor mu?
Ancak şube sayısı arttıkça merkezde her hafta bozulan IMPORTRANGE tabloları tamir ediliyor, şubeler arası gönderilen mal havada kalıyor veya her yeni şube kullanıcısı için ERP lisans maliyeti katlanıyorsa, şube kapsamlı özel web uygulaması bu dağınıklığı tek merkezde toplar.
Nasıl başlanır, veri ve kod kimin, şube yapısı değişirse ne olur?
İlk adımda 18 şubenin tamamını aynı gün geçirmeyiz. Önce şubelerin her gün girdiği ortak alanları, bölge-şube ağacınızı, gün sonu kilit saatini ve transfer onay kuralını yazılı olarak çıkarırız. İlk sürümü tek bir bölgedeki 2–3 şubede paralel çalıştırırız; şube sorumlularının giriş hızını ve merkez toplamını doğruladıktan sonra tüm bölgelere açarız.
Veri, kod ve barındırma. Uygulama şirketiniz adına açılan bir sunucuda (VPS) çalışır; veri tabanı sizindir ve yetkiniz dahilindeki tüm kayıtları istediğiniz an Excel veya CSV olarak indirebilirsiniz. Kaynak kod, çalıştırma talimatı, bağımlılık listesi ve bilinen sınırlarla erişiminizdeki bir depoda teslim edilir. Kullanıcı başına veya şube başına lisans ücreti yoktur; 10 şubeden 30 şubeye çıktığınızda veya yeni şube personeli eklediğinizde yazılım lisansı ödemezsiniz, maliyet yalnızca sunucu ve bakımdır. Her kullanıcı kendi hesabıyla girer ve her kayıt, transfer onayı veya kilit sonrası düzeltme iz kaydında tutulur. İleride yeni bir bölge açıldığında veya iki şube birleştirildiğinde geçmiş kayıtlar bozulmadan organizasyon ağacından yeni yapı tanımlanır.
Kaç şubeniz olduğunu, şubelerin bugün hangi verileri nasıl girdiğini ve merkezde birleştirirken nerede tıkanıklık yaşadığınızı iletişim sayfasından paylaşın; ilk adımda şube-bölge yetki matrisinizi ve gün sonu akışınızı birlikte çıkaralım.
Sıkça Sorulan Sorular
Bir şube kapatılırsa veya başka bir şubeyle birleştirilirse geçmiş veriler ne olur?
Şube silinmez, “Pasif / Kapanmış Şube” durumuna alınır. O şubenin açık olduğu dönemde girilmiş tüm satış, tahsilat ve envanter kayıtları kendi tarihi ve eski şube koduyla korunur; böylece geçen yılın bölge veya şirket toplamını aldığınızda kapanmış şubenin cirosu kaybolmaz, ancak yeni tarihli veri girişine izin verilmez.
Şube sorumlusu sahada internetin zayıf olduğu bir depodan telefondan giriş yapabilir mi?
Evet. Ekranlar masaüstü Excel tablosu gibi geniş sütunlar yerine, şube ve saha sorumlusunun cep telefonundan da tek elle hızlıca doldurabileceği sade form adımlarıyla tasarlanır. Kaydedilen her işlem sunucudan kayıt numarası onayı alır; bağlantı koptuğunda yarım kalan taslak uyarısı gösterilir ve aynı kaydın üst üste iki kez gönderilmesi (mükerrer kayıt) işlem anahtarıyla engellenir.
Merkez yönetici tüm şubelere yeni bir veri alanı eklemek isterse eski kayıtlar bozulur mu?
Bozulmaz. Merkezde yeni bir alan (örneğin “Kiralama Sözleşme No”) eklendiğinde hangi tarihten itibaren zorunlu olacağı tanımlanır. Önceki ayların kilitli kayıtları olduğu gibi korunur; yeni alan yalnız yürürlük tarihinden sonraki girişlerde istenir.
Nasıl çalışıyorum?
Çalışma saati paketleri
WhatsApp’tan ya da telefonda işinizden ve ihtiyacınızdan bahsedin; 5 ile 40 saat arasında bir çalışma paketinde anlaşalım, ben gerekenleri yapmaya başlayayım. Aldığınız şey bir takvim aralığı değil, doğrudan sizin işinize harcanacak net mesai. 40 saati üç gün aralıksız çalışarak da kullanabiliriz, bilerek zamana yayıp bir yılda da bitirebiliriz — işin gerektirdiği neyse o. İşin ne kadar süreceğini tahmin etmeye değil, işi yapmaya vakit harcarım; harcadığım her saatin işinizde kalıcı bir karşılığı olur. Faydalı olduğunu düşündüğünüz sürece bu şekilde devam ederiz.
Neden aylık değil?
40 saat 1 hafta mı oluyor?
Aylık sabit ücrette iki taraf da yanlış yere bakar: siz sabit gidere, karşı taraf kaç tane daha böyle sözleşme bağlayabileceğine. Saat üzerinden çalışınca ikimizin de baktığı yer aynı olur — yapılan işin gerçek değeri. "Toplamda ne kadar tutar?" sorusunun peşinen net bir cevabı olmaması bu modelin doğal maliyeti, farkındayım. Ama sonuç üretmeyen bir yapıya aylarca sabit ücret ödemek yerine yalnızca işinize ayrılan nitelikli zamanı ödersiniz, o zamanın nereye gittiğini de baştan sona görürsünüz. Müşterilerimin benimle tekrar tekrar çalışmasının sebebi bu.
