Belirti
Tipik ticket ifadeleri: "maden stok sıralaması bozuk", "maden maliyeti çok yüksek/tuhaf", "maliyet bir günde sıçradı", "milyem yazıyorum siliniyor", "işçilik kendiliğinden değişiyor", "işçilik TL alınsın", "maden stok adı değiştirilemiyor", "milyem kutusu kilitli", "hurda MAHSUP tutar 0", "peşin satışta fiyat has'a göre geliyor". "maden" (20), "stok" (12). Alt kategoriler: Maden Stok Sıralama 13, Maden Maliyeti 5, Stok Hareketleri 3.
Gözlem ile sebep ayrımı
- Gözlem: stok listesi düzeni, maliyet rakamı ya da işlem ekranındaki milyem/işçilik/fiyat alanı beklenenden farklı davranıyor.
- Ayrım: bu temadaki şikâyetlerin büyük kısmı tasarım davranışıdır, hata değil: milyem farkının işçiliğe çevrilmesi (H-049), has fiyat tipinde tutarın has üzerinden hesaplanması (H-052), hareketli stoğun adının kilitlenmesi (H-026), F.TİPİ'nin genel ayara dönmesi (H-053). Gerçek veri sorunu maliyet zincirindedir: yanlış fiyat/milyem/birimle girilmiş tek bir işlem maliyeti bozar (H-121/122) ve fonksiyon son 50 hareket + güncel kur ile çalışır (H-120).
- Ticket başlığı ("maliyeti yanlış") hangi işlemin bozduğunu söylemez; İşlem Kontrol Raporu ve tarih taraması gerekir.
Muhtemel nedenler
| # | Neden | Kanıt |
|---|---|---|
| 1 | Stok listesi fonksiyonu sıralama yapmıyor → sıra her açılışta farklı | H-118, PROC-14, PB-057 |
| 2 | Maliyet: LIFO "ortalama milyem", TOP 50 hareket, bugünkü kur |
H-120, TD-23, FN-STOK.GETMADENMALIYETI, PROC-81 — SOURCE_IMPLEMENTED; yöntem GAP-MALIYET-YONTEMI (METRIC_DICTIONARY MET-MALIYET) |
| 3 | Belirli günde yanlış fiyat/milyem/birimle giriş → maliyet sıçradı | H-121, H-122, PB-058, PROC-142, PROC-111 |
| 4 | Peşin olmayan işlemde milyem farkı işçiliğe çevrilir; milyem karttaki değere döner | H-049, BR-HESAP-005, PB-059 — SOURCE_IMPLEMENTED |
| 5 | Müşteriye özel fiyat tanımı öncelikli | H-050, SCR-FRMHESAPFIYATEKLE |
| 6 | İşçilik birimi varsayılanı has; TL istenirse tanım değişikliği | H-051, PROC-113, Stok.Maden.GirisIsciligiBirimId/CikisIsciligiBirimId |
| 7 | Fiyat tipi Has: tutar has üzerinden, miktar gram olarak yazılır → TUTAR÷MİKTAR ≠ fiyat | H-052, H-028, BR-HESAP-010, PROC-109, Stok.Maden.FiyatTipi — SOURCE_IMPLEMENTED |
| 8 | Milyem "değişmez" ayarlı (MilyemDurumu); hareketli stoğun adı kilitli |
H-027, H-026, PROC-97, PROC-108 |
| 9 | HURDA'da MAHSUP tutar hesabına dahil değil → tutar 0 | H-054, BR-HURDA-002, BR-HURDA-003 — SOURCE_IMPLEMENTED |
| 10 | Negatif stok: giriş yapılmadan çıkış / yanlış kasa-kod | H-123, BR-STOK-001 |
| 11 | AuMilyem 0 ise has = miktar (tetikleyici) → milyemsiz kartta has şişer | BR-HESAP-002, TRG-CARI.ACCEPTTRANSACTION satır 174 — SOURCE_IMPLEMENTED |
İlk sorulacak sorular
- Şikâyet stok listesi (sıra/alt toplam), maliyet, yoksa işlem ekranı davranışı mı?
- Hangi stok kodu; kartta fiyat tipi (Ad/Miktar/Oz/Has), milyem, milyem durumu, işçilik birimi ne?
- Maliyet: hangi günde değişti; o gün hangi işlemler girildi (fiyat/milyem/birim)?
- İşlem PEŞİN mi NORMAL mi (milyem→işçilik dönüşümü yalnız peşin olmayanda)?
- Müşteriye özel fiyat tanımı var mı?
- Stok listesinde eksi miktar var mı?
İlgili ekran(lar)
SCR-IFMADEN · SCR-IFHURDA · SCR-FRMMADENEKLE · SCR-FRMMADENSTOKLARI (Ctrl+M, Maliyeti Göster) · SCR-FRMHESAPFIYATEKLE · SCR-FRMMADENBAGLATILISTESI · SCR-FRMSERIISLEM
İlgili müşteri varyantı
KUYUMCU (INST-KUYUMCU): ana varyant; maden işlemleri cari hesaplı olsa da %60,3 stok üretir (BR-DEFTER-URETIMI); şemalar MüşteriŞemasıA/MüşteriŞemasıB/MüşteriŞemasıC. DOVIZ: maden (has/gram) sınırlı; maliyet şikâyeti nadir. MüşteriŞemasıD: varyanta bağlı bilgi yok.
Kontrol edilecek Settings
Stok.Maden.FiyatTipi (0–3 Ad/Miktar/Oz/Has), Milyem, MilyemDurumu, IsHurda, IsAdet, StabilMiktar, GirisIsciligi/CikisIsciligi (+BirimId, IscTuru) · Sistem.Settings.PesinKurTipi, HasSymbol · Sistem.Subeler.RevCostDate (maliyet yeniden değerleme) · Cari.Hesaplar.TakozHasIsc (takoz işçiliği, SYM-TAKOZ). Kaynak: CONFIGURATION. GAP: IscTuruDurumu, GirisIscDrm/CikisIscDrm kolonlarının anlamı belgelenmemiş.
Salt okunur SQL teşhis sorgusu
-- 1) Stok kartı ayarları (fiyat tipi, milyem kilidi, işçilik birimi)
SELECT M.Id, M.Kodu, M.Aciklama, M.AnaBirimId, M.FiyatTipi, M.Milyem, M.MilyemDurumu, M.IsHurda, M.IsAdet, M.StabilMiktar,
M.GirisIsciligi, M.GirisIsciligiBirimId, M.CikisIsciligi, M.CikisIsciligiBirimId, M.IscTuru, M.IsActive
FROM Stok.Maden M WHERE M.Kodu = @StokKodu AND M.IsDeleted = 0;
-- 2) Maliyeti bozan gün: stok bazında günlük giriş fiyat/milyem aralığı (H-122)
SELECT I.Tarih, COUNT(*) AS Islem, MIN(I.Fiyat) AS MinFiyat, MAX(I.Fiyat) AS MaxFiyat,
MIN(I.AuMilyem) AS MinMilyem, MAX(I.AuMilyem) AS MaxMilyem, MIN(I.Birim) AS Birim
FROM Cari.Islemler I
WHERE I.IsDeleted = 0 AND I.StokId = @StokId AND I.IslemKodu = 1 AND I.Tarih BETWEEN @T1 AND @T2
GROUP BY I.Tarih ORDER BY I.Tarih;
-- 3) Stok defteri: net miktar/has ve son maliyet (StokTipi 1 = maden)
SELECT S.KasaId, SUM(S.Miktar) AS NetMiktar, SUM(S.Has) AS NetHas, MAX(S.Tarih) AS SonHareket
FROM Stok.StokHaraketleri S WHERE S.StokTipi = 1 AND S.StokId = @StokId AND S.Bolum = 0
GROUP BY S.KasaId;
-- 4) Milyemi 0 olan maden işlemleri (BR-HESAP-002: has = miktar sayılır)
SELECT I.Id, I.Tarih, I.FisNo, I.Kodu, I.Miktar, I.AuMilyem, I.HasIsc
FROM Cari.Islemler I WHERE I.IsDeleted = 0 AND I.IslemKodu = 1 AND I.AuMilyem = 0 AND I.Tarih >= @T1;
İlgili iş kuralı
BR-HESAP-001 (has) · BR-HESAP-002 · BR-HESAP-005 · BR-HESAP-010 · BR-HESAP-011 · BR-HESAP-013 · BR-HESAP-014 · BR-MALIYET-001 · BR-MALIYET-002 · BR-STOK-001 · BR-HURDA-001..003 · BR-BAKIYE-001 · BR-TIP-013
Geçmiş ticket teması
PRB-MADEN-000 — 24 çağrı, ERPGOLDV2 çağrılarının %0,2'si (ticket verisi döviz kurulumu ağırlıklı; kuyumcu payı düşük görünür — SUPPORT_OBSERVED sapması). Ortalama kapanış 59,9 saat.
İlgili süreç
PROC-14 stok sırası · PROC-97 milyem değişir/değişmez · PROC-108 stok adı değişimi · PROC-109 peşin satış miktara göre · PROC-111 maliyet sıfırlama · PROC-142 maliyet yükselmesi · PROC-81 maliyet işlem kuru · PROC-113 işçilik TL · PROC-147 alt toplam · PROC-103 / PROC-183 maden stok tanımlama · PROC-182 hurda stok
Çözüm
Tanım/sıra: PB-057. Maliyet: PB-058 (PROC-142 kontrol → bozan işlem DÜZELT → gerekirse PROC-111 sıfırlama → fonksiyon sürümü PROC-81/130). Ekran davranışları: PB-059 (davranış açıklanır, tanım değiştirilir). Negatif stok: giriş kaydı tamamlanır (H-123).
Workaround
Maliyet düzeltilene kadar kâr raporları yerine işlem bazlı fiyat kontrolü; işçilik TL istenen müşteride işçilik ayrı HİZMET kaydıyla girilir (BR-HIZMET-001); sıra bozuk listede rapor Excel'e alınıp sıralanır.
Yazılımcıya escalate koşulu
Stok.GetMadenMaliyeti / GetMadenStoklari sürüm değişikliği (SQL yetkili destek, yedek sonrası); beklenen davranış dışında fiyat/işçilik hesabı (Cari.IslemEx MaliyetHesapla); milyemi 0 kayıtlarda has şişmesi ürün kararı (BR-HESAP-002).
Kalıcı önlem
Stok kartı açılışında fiyat tipi ve işçilik birimi kontrol listesi; kur sapma uyarısı (PB-046) maliyet sıçramalarını önler; maliyet yöntemi (LIFO/TOP 50/güncel kur) müşteriye yazılı anlatılır (GAP-MALIYET-YONTEMI kapanana kadar).
Kaynaklar
- TICKET_THEME:PRB-MADEN-000 (SRC-TKT-ERP, 24 çağrı)
- DOCUMENT:12_Support/Playbooks/PB-057, PB-058, PB-059, PB-046
- DOCUMENT:12_Support/KnownIssues/H-026, H-027, H-028, H-049..H-054, H-118, H-120..H-123
- BUSINESS_RULE:BR-HESAP-001/002/005/010/011/013/014, BR-MALIYET-001/002, BR-STOK-001, BR-HURDA-001..003 (SOURCE_IMPLEMENTED)
- DOCUMENT:12_Support/Processes/PROC-14, PROC-81, PROC-97, PROC-108, PROC-109, PROC-111, PROC-113, PROC-142
- DERIVED:17_Quality_And_TechnicalDebt/Items/TD-23.md; 10_Reports/METRIC_DICTIONARY.md (MET-MALIYET, MET-HAS); 08_Database/Tables/TBL-STOK.MADEN.md, TBL-STOK.STOKHARAKETLERI.md, TBL-CARI.ISLEMLER.md (kolon doğrulaması)
