Mikro ERP Faturadan Siparişe İz Sürme: Sipariş-Fatura Eşleştirme SQL Sorgusu
Mikro ERP'de bir faturanın hangi siparişe ait olduğunu nasıl bulursunuz? Sipariş → İrsaliye → Fatura zincirini SQL ile izleme rehberi. Evrak seri-sıra...
Sorun: “Bu Fatura Hangi Siparişe Ait?”
Satış müdürü soruyor: “B-4521 faturasının sipariş açıklaması neydi?” Mikro’da faturayı buldunuz ama siparişe geri dönmek sanıldığı kadar kolay değil. Çünkü sipariş → irsaliye → fatura zincirinde 3 farklı tablo ve birden fazla bağlantı noktası var.
Zincir Nasıl Çalışır?
SIPARISLER → STOK_HAREKETLERI (İrsaliye) → STOK_HAREKETLERI (Fatura) → CARI_HESAP_HAREKETLERI
↓ ↓ ↓
sip_Guid → sth_sip_uid bağlantısı evrak seri-sıra eşleşmesi
| Tablo | Ne tutar? | Bağlantı alanı |
|---|---|---|
SIPARISLER | Sipariş başlık/kalem bilgisi | sip_Guid |
STOK_HAREKETLERI | İrsaliye ve fatura kalemleri | sth_sip_uid → siparişe bağlar |
CARI_HESAP_HAREKETLERI | Fatura cari hareketi | cha_evrakno_seri/sira → stok hareketiyle eşleşir |
Kaynak: SIPARISLER · STOK_HAREKETLERI · CARI_HESAP_HAREKETLERI
Faturadan Siparişe Gitmek
Bir fatura numarasından geriye doğru sipariş bilgisine ulaşma:
-- Fatura evrak no: B-4521
SELECT DISTINCT
'Fatura → Sipariş' AS [İzleme],
-- Fatura bilgileri
STH.sth_evrakno_seri + '-' +
CAST(STH.sth_evrakno_sira AS VARCHAR) AS [Fatura No],
CONVERT(VARCHAR(10), STH.sth_tarih, 104) AS [Fatura Tarihi],
-- Sipariş bilgileri
SIP.sip_evrakno_seri + '-' +
CAST(SIP.sip_evrakno_sira AS VARCHAR) AS [Sipariş No],
CONVERT(VARCHAR(10), SIP.sip_tarih, 104) AS [Sipariş Tarihi],
SIP.sip_aciklama AS [Sipariş Açıklama],
-- Ürün bilgileri
STH.sth_stok_kod AS [Stok Kodu],
S.sto_isim AS [Ürün Adı],
STH.sth_miktar AS [Fatura Miktar],
SIP.sip_miktar AS [Sipariş Miktar]
FROM STOK_HAREKETLERI STH WITH (NOLOCK)
LEFT JOIN SIPARISLER SIP WITH (NOLOCK)
ON STH.sth_sip_uid = SIP.sip_Guid
LEFT JOIN STOKLAR S WITH (NOLOCK)
ON STH.sth_stok_kod = S.sto_kod
WHERE STH.sth_evrakno_seri = 'B'
AND STH.sth_evrakno_sira = 4521
AND STH.sth_iptal = 0
ORDER BY STH.sth_stok_kod;
Siparişten Faturaya Gitmek
Bir siparişin hangi faturalarla kapatıldığını görmek:
SELECT
SIP.sip_evrakno_seri + '-' +
CAST(SIP.sip_evrakno_sira AS VARCHAR) AS [Sipariş No],
SIP.sip_stok_kod AS [Stok Kodu],
SIP.sip_miktar AS [Sipariş Miktar],
SIP.sip_teslim_miktar AS [Teslim Edilen],
SIP.sip_miktar - SIP.sip_teslim_miktar AS [Kalan],
-- Fatura bilgisi
STH.sth_evrakno_seri + '-' +
CAST(STH.sth_evrakno_sira AS VARCHAR) AS [Fatura/İrsaliye No],
CONVERT(VARCHAR(10), STH.sth_tarih, 104) AS [Fatura Tarihi],
STH.sth_miktar AS [Faturalanan Miktar]
FROM SIPARISLER SIP WITH (NOLOCK)
LEFT JOIN STOK_HAREKETLERI STH WITH (NOLOCK)
ON STH.sth_sip_uid = SIP.sip_Guid
AND STH.sth_iptal = 0
WHERE SIP.sip_evrakno_seri = 'A'
AND SIP.sip_evrakno_sira = 1200
AND SIP.sip_iptal = 0
ORDER BY STH.sth_tarih;
sth_sip_uid Boşsa Ne Yapılır?
Bazen sth_sip_uid alanı boş olabilir — özellikle doğrudan irsaliyeden fatura kesildiğinde. Bu durumda evrak seri-sıra + stok kodu eşleşmesi deneyin:
-- Alternatif: Evrak bazlı eşleştirme
SELECT
SIP.sip_evrakno_seri + '-' + CAST(SIP.sip_evrakno_sira AS VARCHAR) AS [Sipariş],
STH.sth_evrakno_seri + '-' + CAST(STH.sth_evrakno_sira AS VARCHAR) AS [Fatura],
SIP.sip_stok_kod AS [Stok],
SIP.sip_miktar AS [Sip. Miktar],
STH.sth_miktar AS [Fat. Miktar]
FROM SIPARISLER SIP WITH (NOLOCK)
INNER JOIN STOK_HAREKETLERI STH WITH (NOLOCK)
ON SIP.sip_stok_kod = STH.sth_stok_kod
AND SIP.sip_musteri_kod = STH.sth_cari_kodu
AND STH.sth_tarih BETWEEN SIP.sip_tarih AND DATEADD(MONTH, 3, SIP.sip_tarih)
WHERE SIP.sip_musteri_kod = '120.001'
AND STH.sth_evraktip = 6 -- Fatura
AND STH.sth_iptal = 0
AND SIP.sip_iptal = 0;
Dikkat Edilecekler
- Guid bağlantısı en güvenilir:
sth_sip_uid→sip_Guideşleşmesi birebir ilişkidir. - Bir sipariş birden fazla faturaya bölünebilir: Kısmi sevkiyatlarda aynı sipariş satırı birden fazla faturada görünür.
- İade faturaları:
sth_normal_iadealanı 1 ise iade faturasıdır; siparişle eşleşmeyebilir.
İlgili Yazılar
- Açık Sipariş / Teslimat Raporu — Ne kadarı teslim edildi?
- Belge No ile Hareket Bulma
- Cari Ekstre Raporu
Bu rehber Mikro ERP API Docs tablo yapısına dayanarak hazırlanmıştır.