Sipariş Sorgusu
Nereden Yazdırıldığı: ERP Nedir? | Türkiye'nin ERP Forum Platformu
Kategori: ERP Temel Paketler
Forum Adı: ERP Fatura Modülü
Forum Tanımlaması: Fatura Modülü İle İlgili Bilgiler ve Sorular İçin...
URL: http://www.erpne.org/forum_posts.asp?TID=4597
Tarih: 22 Kasım 2024 Saat 17:33 Program Versiyonu: Web Wiz Forums 11.10 - http://www.webwizforums.com
Konu: Sipariş Sorgusu
Mesajı Yazan: wontimes
Konu: Sipariş Sorgusu
Mesaj Tarihi: 22 Ocak 2021 Saat 11:47
Merhabalar ,
Elimde aşağıdaki gibi bir sorgu var ancak ; çalıştırdığımda irsaliye ve fatura bilgisini alt alta getiriyor, ben irsaliye ve kesildiyse fatura bilgisini yan yana istiyorum , yardımlarınız rica ederim...
SELECT A.STHAR_TARIH AS SIP_TRH,DBO.TRK(A.STOK_KODU) STOK_KODU,DBO.TRK(C.STOK_ADI) STOK_ADI,
DBO.TRK(CARI_ISIM)CARI_ISIM,dbo.TRK(CARI_IL)
CARI_IL,A.PLASIYER_KODU,ISNULL(dbo.TRK(CARI_ILCE),'') CARI_ILCE,
A.FISNO AS SIPARIS_NO,A.STHAR_NF,A.STHAR_GCMIK+A.STHAR_GCMIK2 AS SIP_MIK,
B.IRSALIYE_NO,B.IRSALIYE_TARIH,ISNULL(B.STHAR_GCMIK+B.STHAR_GCMIK2,0) AS TES_MIK,
A.STHAR_GCMIK+A.STHAR_GCMIK2 - A.FIRMA_DOVTUT AS KALAN
FROM TBLSIPATRA A
LEFT OUTER JOIN TBLSTHAR B ON (A.FISNO = B.STHAR_SIPNUM AND
A.STOK_KODU = B.STOK_KODU AND A.STRA_SIPKONT=B.STRA_SIPKONT)
INNER JOIN TBLSTSABIT C ON A.STOK_KODU=C.STOK_KODU
INNER JOIN TBLCASABIT D ON A.STHAR_ACIKLAMA = D.CARI_KOD
INNER JOIN TBLSIPAMAS E ON (E.TARIH = A.STHAR_TARIH AND
E.FATIRS_NO = A.FISNO AND E.CARI_KODU = A.STHAR_ACIKLAMA)
WHERE A.STHAR_HTUR='H' AND A.STHAR_FTIRSIP='6'
------------- İmza Bulamadım
|
Cevaplar:
Mesajı Yazan: mbaykan
Mesaj Tarihi: 23 Ocak 2021 Saat 12:45
STHAR_HTUR <> 'H' ile Faturalaşmış bir kayıt olduğunu düşünebiliriz ya da STHAR_HTUR LIKE '[JL]' ile iade faturası veya fatura tipli olarak da kodlanabilir.
SELECT A.STHAR_TARIH AS SIP_TRH,DBO.TRK(A.STOK_KODU) STOK_KODU,DBO.TRK(C.STOK_ADI) STOK_ADI, DBO.TRK(CARI_ISIM)CARI_ISIM,dbo.TRK(CARI_IL) CARI_IL,A.PLASIYER_KODU,ISNULL(dbo.TRK(CARI_ILCE),'') CARI_ILCE, A.FISNO AS SIPARIS_NO,A.STHAR_NF,A.STHAR_GCMIK+A.STHAR_GCMIK2 AS SIP_MIK, B.IRSALIYE_NO,B.IRSALIYE_TARIH,CASE WHEN B.STHAR_HTUR<>'H' THEN B.FISNO ELSE NULL END FATURANO, CASE WHEN B.STHAR_HTUR<>'H' THEN B.STHAR_TARIH ELSE NULL END FT_TARIHI, ISNULL(B.STHAR_GCMIK+B.STHAR_GCMIK2,0) AS TES_MIK, A.STHAR_GCMIK+A.STHAR_GCMIK2 - A.FIRMA_DOVTUT AS KALAN FROM TBLSIPATRA A LEFT OUTER JOIN TBLSTHAR B ON (A.FISNO = B.STHAR_SIPNUM AND A.STOK_KODU = B.STOK_KODU AND A.STRA_SIPKONT=B.STRA_SIPKONT) INNER JOIN TBLSTSABIT C ON A.STOK_KODU=C.STOK_KODU INNER JOIN TBLCASABIT D ON A.STHAR_ACIKLAMA = D.CARI_KOD INNER JOIN TBLSIPAMAS E ON (E.TARIH = A.STHAR_TARIH AND E.FATIRS_NO = A.FISNO AND E.CARI_KODU = A.STHAR_ACIKLAMA) WHERE A.STHAR_HTUR='H' AND A.STHAR_FTIRSIP='6'
------------- Mehmet Baykan
|
Mesajı Yazan: wontimes
Mesaj Tarihi: 23 Ocak 2021 Saat 14:38
ilginize çok teşekkürler , ancak şöyle bir çıktı veriyor , bir stok kodu için hem irsaliye hemde fatura çıktısı .... ben sadece siparişten gelerek sadece faturası kesilmiş ürünün bir kere (iadeler hariç ) istiyorum ...
Sorgu çıktısı ;
https://hizliresim.com/BBnS9o" rel="nofollow - https://hizliresim.com/BBnS9o
------------- İmza Bulamadım
|
Mesajı Yazan: mbaykan
Mesaj Tarihi: 23 Ocak 2021 Saat 20:44
sadece siparişten gelerek? (yani siparişteki stok tek satırda) demek mi? yan A stoğu 10 adet ise bu 10 adet kısmen yada 1 den fazla gönderilerildiği durumda çıktı şöylemi olacak
Stok kodu Sip.Miktarı irs.no irs.tarih Ft.No Tes.Miktarı
A 10 I001,I003 .... F100,F105 8 (3+5)
gibi mi olacak
------------- Mehmet Baykan
|
Mesajı Yazan: wontimes
Mesaj Tarihi: 23 Ocak 2021 Saat 21:50
Üstadım Amacımız , siparişin faturalaşıp yada irsaliyeleşip -mediğini bilmek , dolayısıyla sipariş içindeki kalemin hangi irs yada fatura içinde olduğunu görmek ...
------------- İmza Bulamadım
|
Mesajı Yazan: mbaykan
Mesaj Tarihi: 23 Ocak 2021 Saat 23:10
ilk yazdığım sorgu bunu sağlıyor zaten, faturalaşan irsaliyeler saklanıyor ise STHAR_HTUR<>N koşulunu eklersiniz (TBLSIPATRA'da FIRMA_DOVTUT alanında bir değer varsa zaten sipariş İrsaliye yada Fatura ile teslim edilmiş demektir.) en sondaki KALAN sütunu nu sorguda biraz değiştirdim. (Yürüyen toplamlı) SELECT A.STHAR_TARIH AS SIP_TRH,DBO.TRK(A.STOK_KODU) STOK_KODU,DBO.TRK(C.STOK_ADI) STOK_ADI, DBO.TRK(CARI_ISIM)CARI_ISIM,dbo.TRK(CARI_IL) CARI_IL,A.PLASIYER_KODU,ISNULL(dbo.TRK(CARI_ILCE),'') CARI_ILCE, A.FISNO AS SIPARIS_NO,A.STHAR_NF,A.STHAR_GCMIK+A.STHAR_GCMIK2 AS SIP_MIK, B.IRSALIYE_NO,B.IRSALIYE_TARIH,CASE WHEN B.STHAR_HTUR<>'H' THEN B.FISNO ELSE NULL END FATURANO, CASE WHEN B.STHAR_HTUR<>'H' THEN B.STHAR_TARIH ELSE NULL END FT_TARIHI, ISNULL(B.STHAR_GCMIK+B.STHAR_GCMIK2,0) AS TES_MIK, A.STHAR_GCMIK + A.STHAR_GCMIK2 - SUM(ISNULL(B.STHAR_GCMIK+B.STHAR_GCMIK2,0)) OVER (PARTITION BY B.STHAR_SIPNUM,B.STOK_KODU,B.STRA_SIPKONT /*A.FISNO,A.STOK_KODU,A.SIRA */ ORDER BY B.STHAR_SIPNUM,B.STOK_KODU,B.STRA_SIPKONT ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) KALAN --A.STHAR_GCMIK+A.STHAR_GCMIK2 - A.FIRMA_DOVTUT AS KALAN FROM TBLSIPATRA A LEFT OUTER JOIN TBLSTHAR B ON (A.FISNO = B.STHAR_SIPNUM AND A.STOK_KODU = B.STOK_KODU AND A.STRA_SIPKONT=B.STRA_SIPKONT) AND B.STHAR_HTUR<>'N' INNER JOIN TBLSTSABIT C ON A.STOK_KODU=C.STOK_KODU INNER JOIN TBLCASABIT D ON A.STHAR_ACIKLAMA = D.CARI_KOD INNER JOIN TBLSIPAMAS E ON (E.TARIH = A.STHAR_TARIH AND E.FATIRS_NO = A.FISNO AND E.CARI_KODU = A.STHAR_ACIKLAMA) WHERE A.STHAR_HTUR='H' AND A.STHAR_FTIRSIP='6'
------------- Mehmet Baykan
|
Mesajı Yazan: wontimes
Mesaj Tarihi: 24 Ocak 2021 Saat 00:12
Merhaba Üstad ,
AND B.STHAR_HTUR<>'N' ekledim oldu gibi , ancak attığınız sorgu SQL 2008 de çalışmadı ...
------------- İmza Bulamadım
|
Mesajı Yazan: mbaykan
Mesaj Tarihi: 24 Ocak 2021 Saat 14:08
KALAN sütununda Yürüyen toplama (bakiye) ihtiyacınız yoksa eski Sütun formülünü kullanırsınız. kullandığım SQL window fonksiyonları 2012 ve üzeri olmasını gerektirir
------------- Mehmet Baykan
|
Mesajı Yazan: wontimes
Mesaj Tarihi: 25 Ocak 2021 Saat 08:32
Çok teşekkür ederim , istediğim gibi oldu.Emeğinize Sağlık...
------------- İmza Bulamadım
|
Mesajı Yazan: wontimes
Mesaj Tarihi: 27 Ocak 2021 Saat 11:20
Merhaba ,
SELECT CONVERT(NVARCHAR(50), A.STHAR_TARIH, 104) AS SIPARIS_TARIH,DBO.TRK(A.STOK_KODU) STOK_KODU,DBO.TRK(C.STOK_ADI) STOK_ADI, DBO.TRK(CARI_ISIM)CARI_ISIM,dbo.TRK(CARI_IL) CARI_IL,A.PLASIYER_KODU AS PLASIYER,--ISNULL(dbo.TRK(CARI_ILCE),'') CARI_ILCE, A.FISNO AS SIPARIS_NO,A.PROJE_KODU AS PROJE, A.STHAR_GCMIK+A.STHAR_GCMIK2 AS MIKTAR,A.STHAR_NF as NET_FIYAT, ((A.STHAR_GCMIK+A.STHAR_GCMIK2)*A.STHAR_NF) as Toplam, c.ALIS_FIAT1 as ALIS_FIYAT, B.IRSALIYE_NO, CONVERT(NVARCHAR(50), B.IRSALIYE_TARIH, 104) AS IRSALIYE_TARIH, CASE WHEN B.STHAR_HTUR<>'H' THEN B.FISNO ELSE NULL END FATURANO, CASE WHEN B.STHAR_HTUR<>'H' THEN CONVERT(NVARCHAR(50), B.STHAR_TARIH, 104) ELSE NULL END FATURA_TARIHI, CONVERT(NVARCHAR(50), B.VADE_TARIHI, 104) AS ODEME_TARIHI, ISNULL(B.STHAR_GCMIK+B.STHAR_GCMIK2,0) AS TESLIM_MIK, A.STHAR_GCMIK+A.STHAR_GCMIK2 - A.FIRMA_DOVTUT AS KALAN FROM TBLSIPATRA A LEFT OUTER JOIN TBLSTHAR B ON (A.FISNO = B.STHAR_SIPNUM AND A.STOK_KODU = B.STOK_KODU AND A.STRA_SIPKONT=B.STRA_SIPKONT) AND B.STHAR_HTUR<>'N' INNER JOIN TBLSTSABIT C ON A.STOK_KODU=C.STOK_KODU INNER JOIN TBLCASABIT D ON A.STHAR_ACIKLAMA = D.CARI_KOD INNER JOIN TBLSIPAMAS E ON (E.TARIH = A.STHAR_TARIH AND E.FATIRS_NO = A.FISNO AND E.CARI_KODU = A.STHAR_ACIKLAMA) WHERE A.STHAR_HTUR='H' AND A.STHAR_FTIRSIP='6'
Bu sorgu SIPATRA dan stok detaylı siparişleri fatura ve irsaliyeli olarak getirmekte , bu sorgu için MBAYKAN üstad a çok teşekkür ederim.Çok yardımı oldu Bu sorgunun stokları getirmeden sadece ;
Plasiyer Kodu | Sip Tarihi | Sip No | Proje Kodu | Cari Kod | Cari isim | Sipariş Tutarı | Fatura No | Fatura Tarihi | Son Ödeme Tarihi | Son Ödeme Tutarı
Son ödeme tarihi ve tutarı tblcahar dan gelecek ...
Sorgu ile ilgili yardımınızı rica ederim , Saygılarımla
------------- İmza Bulamadım
|
Mesajı Yazan: mbaykan
Mesaj Tarihi: 28 Ocak 2021 Saat 17:31
Plasiyer Kodu | Sip Tarihi | Sip No | Proje Kodu | Cari Kod | Cari isim | Sipariş Tutarı | Fatura No | Fatura Tarihi | Son Ödeme Tarihi | Son Ödeme Tutarı
Faturalaşmamış siparişler bu raporda görünecek mi?Rapor satırları SIPAMAS'tan mı gelecek? (FATUIRS'tan mı?) bir siparişi birden fazla fatura'ya dönüştürüyor iseniz. SIPAMAS'tan değil SIPATRA'dan sorgu yapılmalı
Sipariş satırlarında birden fazla plasiyer veya proje kodu var mı? Rapor bunlara göre Siparişte veya Fatura'da kırılıma uğrar.
Son Ödeme Tarihi, Fatura da (FATUIRS veya STHAR) belirtilen VADE_TARIHI değil mi?
Son Ödeme Tutarı Fatura daki GENELTOPLAM (3.sayfadaki Alt Toplam) değilmi? yoksa Fatura'ya karşılık yapılmış (Cari özel hesap kapama) Cari ALACAK tutarı mı? yaşlandırmalı Cari hesap'ta Faturaya karşılık ödeme tesbiti (belirlenmesi) zordur.
1 sipariş -> 1 Ft 'ya karşılık geliyorsa rapor daha basit 1 fatura -> 1'den fazla sipariş'e karşılık geliyorsa rapor satırlarında sipariş no,tarih bilgileri nasıl gösterilecek? Fatura içinde Sipariş karşılığı olmayanlar (Kısmen veya tamamen Sipariş'i olmayanlar) ne olacak?
------------- Mehmet Baykan
|
Mesajı Yazan: mbaykan
Mesaj Tarihi: 28 Ocak 2021 Saat 17:45
SIPAMAS ve FATUIRS ilişkisiyle yazdığım sorgu aşağıda. bu sorgudaki kabuller Sipariş'te 1 plasiyer ve 1 proje kodu var Son Ödeme tarihi de Faturanın vade tarihi
;WITH TMPSIP AS (SELECT DISTINCT STHAR_SIPNUM SIPARIS_NO,FISNO FAT_NO,STHAR_ACIKLAMA CARIKOD FROM TBLSTHAR WHERE STHAR_FTIRSIP='1' AND STHAR_SIPNUM IS NOT NULL)
SELECT B.PLA_KODU PLASIYER,B.TARIH SIP_TARIHI,SIPARIS_NO,B.PROJE_KODU,CARIKOD,CARI_ISIM,B.GENELTOPLAM SIP_TUTARI,D.TARIH FT_TARIHI,FAT_NO, D.ODEMETARIHI,D.GENELTOPLAM ODENECEK_TUT FROM TMPSIP A JOIN TBLSIPAMAS B ON SIPARIS_NO=B.FATIRS_NO AND CARIKOD=B.CARI_KODU JOIN TBLCASABIT C ON B.CARI_KODU=C.CARI_KOD JOIN TBLFATUIRS D ON A.CARIKOD=D.CARI_KODU AND A.FAT_NO=D.FATIRS_NO AND D.FTIRSIP='1' WHERE B.FTIRSIP='6'
------------- Mehmet Baykan
|
Mesajı Yazan: wontimes
Mesaj Tarihi: 28 Ocak 2021 Saat 19:28
Merhaba Üstad ,
- Faturası kesilmeyen siparişlerde görülmeli. -1 sipariş 1 den fazla faturaya bölünebiliyor o siparişin gitmeyen kalemleri daha sonra faturalaşabiliyor. o zaman aynı sipariş no su tekrar edecek ona yapacak bişi yok.Şöyle bir DURUM kolonu açılıp , kısmı sevk edildi yada tamamen sevk edildi , sevk bekliyor gibi bişi yazılabilir. -Sipariş satırlarında birden
fazla plasiyer veya farklı proje kodu yok. -Yazdığınız sorguda ODEMETARIHI evet faturanın vadeye göre gelen odeme tarihi. FAT_TARIHI , FAT_NO,ODEMETARIHI,ODEMETUTARI kalacak... -Son Ödeme Tarihi , Son Ödeme Tutarı aslında yaşlandırma yapmadan direk sipariş carisinin yaptığı TBLCAHAR daki son ödeme ve tarihi olacak , yani fatura yada sipariş ile ilişkisi yok ve zor. - Fatura içinde Sipariş karşılığı olmayanlar (Kısmen veya
tamamen Sipariş'i olmayanlar) ne olacak? Yine Durum kolonunda farklı kalem var gibi bişi yazılabilir.
Biz 4 proje koduna ayırdık siparişleri ve Faturaları, RN (Nakit 7 gün ) - RV (Vadeli 150) - RKK (KrediKartı tek çekim 37 gün) - RTKK (Taksitli KK 82gün)
Muhasebe proje koduna bakıp carilerden ödeme isteyecek , bu raporda en azından Carinin son ne zaman ne kadar ödeme yapmış bilgisi o açıdan gerekli ... Tabiki doğrusu bu değil
------------- İmza Bulamadım
|
Mesajı Yazan: mbaykan
Mesaj Tarihi: 28 Ocak 2021 Saat 20:23
;WITH TMPSIP AS (SELECT DISTINCT STHAR_SIPNUM SIPARIS_NO,FISNO FAT_NO,STHAR_ACIKLAMA CARIKOD FROM TBLSTHAR WHERE STHAR_FTIRSIP='1' AND STHAR_SIPNUM IS NOT NULL), CHTMP AS( SELECT CARI_KOD,TARIH,ALACAK AS TUTAR FROM TBLCAHAR WHERE HAREKET_TURU NOT IN ('A','C') AND ALACAK>0 AND CARI_KOD IN (SELECT DISTINCT CARIKOD FROM TMPSIP)
)
SELECT B.PLA_KODU PLASIYER,B.TARIH SIP_TARIHI,SIPARIS_NO,B.PROJE_KODU,CARIKOD,CARI_ISIM,B.GENELTOPLAM SIP_TUTARI,D.TARIH FT_TARIHI,FAT_NO, D.ODEMETARIHI,D.GENELTOPLAM ODENECEK_TUT,(SELECT TOP 1 TARIH FROM CHTMP U WHERE U.CARI_KOD=A.CARIKOD AND U.TARIH<=D.TARIH ORDER BY TARIH DESC ) SON_ODEME_TR, (SELECT TOP 1 TUTAR FROM CHTMP U WHERE U.CARI_KOD=A.CARIKOD AND U.TARIH<=D.TARIH ORDER BY TARIH DESC ) SON_ODEME FROM TMPSIP A JOIN TBLSIPAMAS B ON SIPARIS_NO=B.FATIRS_NO AND CARIKOD=B.CARI_KODU JOIN TBLCASABIT C ON B.CARI_KODU=C.CARI_KOD JOIN TBLFATUIRS D ON A.CARIKOD=D.CARI_KODU AND A.FAT_NO=D.FATIRS_NO AND D.FTIRSIP='1' WHERE B.FTIRSIP='6'
------------- Mehmet Baykan
|
Mesajı Yazan: wontimes
Mesaj Tarihi: 28 Ocak 2021 Saat 20:44
Üstad ,
Faturası kesilmeyenler görünmüyor kontrol ettim şimdi acaba hepsi faturalanmış mı diye de fatura edilmeyen siparişler varmış.
------------- İmza Bulamadım
|
Mesajı Yazan: mbaykan
Mesaj Tarihi: 28 Ocak 2021 Saat 21:12
;WITH TMPSIP AS ( SELECT DISTINCT STHAR_SIPNUM SIPARIS_NO,FISNO FAT_NO,STHAR_ACIKLAMA CARIKOD FROM TBLSTHAR WHERE STHAR_FTIRSIP='1' AND STHAR_SIPNUM IS NOT NULL UNION SELECT FATIRS_NO,NULL,CARI_KODU FROM TBLSIPAMAS WHERE FTIRSIP='6' ), CHTMP AS(SELECT CARI_KOD,TARIH,PROJE_KODU,ALACAK AS TUTAR FROM TBLCAHAR WHERE HAREKET_TURU NOT IN ('A','C') AND ALACAK>0 AND CARI_KOD IN (SELECT DISTINCT CARIKOD FROM TMPSIP) ) SELECT B.PLA_KODU PLASIYER,B.TARIH SIP_TARIHI,SIPARIS_NO,B.PROJE_KODU,CARIKOD,CARI_ISIM,B.GENELTOPLAM SIP_TUTARI,D.TARIH FT_TARIHI,FAT_NO, D.ODEMETARIHI,D.GENELTOPLAM ODENECEK_TUT, (SELECT TOP 1 TARIH FROM CHTMP U WHERE U.CARI_KOD=A.CARIKOD AND U.TARIH<=D.TARIH ORDER BY TARIH DESC ) SON_ODEME_TR, (SELECT TOP 1 PROJE_KODU FROM CHTMP U WHERE U.CARI_KOD=A.CARIKOD AND U.TARIH<=D.TARIH ORDER BY TARIH DESC ) SON_ODEME_PRJ, (SELECT TOP 1 TUTAR FROM CHTMP U WHERE U.CARI_KOD=A.CARIKOD AND U.TARIH<=D.TARIH ORDER BY TARIH DESC ) SON_ODEME FROM TMPSIP A JOIN TBLSIPAMAS B ON SIPARIS_NO=B.FATIRS_NO AND CARIKOD=B.CARI_KODU JOIN TBLCASABIT C ON B.CARI_KODU=C.CARI_KOD LEFT JOIN TBLFATUIRS D ON A.CARIKOD=D.CARI_KODU AND A.FAT_NO=D.FATIRS_NO AND D.FTIRSIP='1' WHERE B.FTIRSIP='6'
------------- Mehmet Baykan
|
Mesajı Yazan: wontimes
Mesaj Tarihi: 28 Ocak 2021 Saat 21:20
Müthiş bir sorgu oldu Üstad , emeğinize sağlık... Çok teşekkür ederim
------------- İmza Bulamadım
|
Mesajı Yazan: wontimes
Mesaj Tarihi: 28 Ocak 2021 Saat 22:35
Üstad MErhaba yine ben ,
şimdi detaylı baktım , her siparişi 2 kere getirmiş , bir faturalı bir faturasız olarak...faturalaşmayan siparişleri getirmemiş
------------- İmza Bulamadım
|
Mesajı Yazan: mbaykan
Mesaj Tarihi: 28 Ocak 2021 Saat 22:56
Yeni sorgu; Cari ödeme (alacak) fatura veya irsaliye tarihine göre cari hareketlerden getirilir.
WITH SIPTEMP AS ( SELECT DISTINCT A.STHAR_ACIKLAMA CARIKOD, A.STHAR_TARIH SIP_TARIHI, A.FISNO SIPARIS_NO,(CASE WHEN (A.STHAR_GCMIK - A.FIRMA_DOVTUT<=0 AND A.FIRMA_DOVTUT>0) OR A.STHAR_HTUR='K' THEN 'KAPALI' WHEN A.STHAR_GCMIK - A.FIRMA_DOVTUT>0 AND A.FIRMA_DOVTUT>0 THEN 'KISMI' ELSE 'ACIK' END) DURUM,(SELECT GENELTOPLAM FROM TBLSIPAMAS U WHERE U.FTIRSIP='6' AND U.FATIRS_NO=A.FISNO AND U.CARI_KODU=A.STHAR_ACIKLAMA) SIPARIS_TUT, (SELECT GENELTOPLAM FROM TBLFATUIRS U WHERE (U.FTIRSIP='1' OR U.FTIRSIP='3') AND U.FATIRS_NO=COALESCE(B.FISNO,A.IRSALIYE_NO) AND U.CARI_KODU=A.STHAR_ACIKLAMA) IRSFAT_TUT, (SELECT PLA_KODU FROM TBLSIPAMAS U WHERE U.FTIRSIP='6' AND U.FATIRS_NO=A.FISNO AND U.CARI_KODU=A.STHAR_ACIKLAMA) PLASIYER, (SELECT PROJE_KODU FROM TBLSIPAMAS U WHERE U.FTIRSIP='6' AND U.FATIRS_NO=A.FISNO AND U.CARI_KODU=A.STHAR_ACIKLAMA) PROJE_KODU, B.IRSALIYE_NO,CASE WHEN B.IRSALIYE_NO IS NOT NULL THEN B.IRSALIYE_TARIH ELSE NULL END IRSALIYE_TRH, CASE WHEN ISNULL(B.STHAR_BGTIP,'')='F' THEN B.FISNO ELSE NULL END FATURA_NO, CASE WHEN ISNULL(B.STHAR_BGTIP,'')='F' THEN B.STHAR_TARIH ELSE NULL END FT_TARIHI,B.VADE_TARIHI FROM TBLSIPATRA A LEFT JOIN TBLSTHAR B ON A.FISNO=B.STHAR_SIPNUM AND A.STOK_KODU=B.STOK_KODU AND A.SIRA=B.STRA_SIPKONT AND B.STHAR_HTUR<>'N' WHERE A.STHAR_FTIRSIP='6' ), TMPICMAL AS (SELECT SIPARIS_NO,COUNT(DISTINCT DURUM) DUR_SYC FROM SIPTEMP GROUP BY SIPARIS_NO ), CHTMP AS(SELECT CARI_KOD,TARIH,PROJE_KODU CH_PROJE,ALACAK AS TUTAR FROM TBLCAHAR WHERE HAREKET_TURU NOT IN ('A','C') -- DEVIR VE IADE FT HARIC AND ALACAK>0 AND CARI_KOD IN (SELECT DISTINCT CARIKOD FROM SIPTEMP) )
SELECT DISTINCT A.PLASIYER,A.SIP_TARIHI,A.SIPARIS_NO,A.PROJE_KODU,CASE WHEN DUR_SYC=1 THEN DURUM ELSE 'KISMI' END SIP_DUR,CARIKOD,dbo.TRK(CARI_ISIM) CARI_ISIM, A.SIPARIS_TUT,IRSALIYE_NO,IRSALIYE_TRH,FATURA_NO,FT_TARIHI,VADE_TARIHI, A.IRSFAT_TUT, (SELECT TOP 1 TARIH FROM CHTMP U WHERE U.CARI_KOD=A.CARIKOD AND U.TARIH<=COALESCE(A.FT_TARIHI,A.IRSALIYE_TRH) ORDER BY TARIH DESC) SON_ODEME_TR, (SELECT TOP 1 CH_PROJE FROM CHTMP U WHERE U.CARI_KOD=A.CARIKOD AND U.TARIH<=COALESCE(A.FT_TARIHI,A.IRSALIYE_TRH) ORDER BY TARIH DESC) CH_PROJE, (SELECT TOP 1 TUTAR FROM CHTMP U WHERE U.CARI_KOD=A.CARIKOD AND U.TARIH<=COALESCE(A.FT_TARIHI,A.IRSALIYE_TRH) ORDER BY TARIH DESC) SON_ODEME
FROM SIPTEMP A JOIN TMPICMAL B ON A.SIPARIS_NO=B.SIPARIS_NO JOIN TBLCASABIT C ON A.CARIKOD=C.CARI_KOD
WHERE NOT (DUR_SYC>1 AND IRSALIYE_NO IS NULL AND FATURA_NO IS NULL) ORDER BY A.SIP_TARIHI, A.SIPARIS_NO
------------- Mehmet Baykan
|
Mesajı Yazan: wontimes
Mesaj Tarihi: 29 Ocak 2021 Saat 09:14
Günaydın Üstad ,
Emeğinize Sağlık , birşey sormak istiyorum , bu sorgu da siparişte eksik kalan ürün sonradan başka bir fatura ile gönderildiğinde nasıl davranıyor ?
Mesela ;
SIP01 - STOK01 - STOK02 - STOK03 (BEKLİYOR)
FAT01 -STOK01 -STOK02
Raporda şu anda SIP01 ve FAT01 gelecek KISMI olarak,
x birim zaman sonrasında stok03 faturalanıyor;
-FAT02 -STOK03
rapor SIP01 - FAT01- KISMI SIP01 - FAT02 - KAPALI
şeklinde mi olacak yoksa finalde SIP01 - FAT02 - KAPALI mı olacak ?
------------- İmza Bulamadım
|
Mesajı Yazan: mbaykan
Mesaj Tarihi: 29 Ocak 2021 Saat 10:38
stokbazlı kapalı olup olmaması söz konusu, örnekte 2 ft ile kapanan sipariş STHAR_GCMIK (SİP.MİK) - FIRMA_DOVTUT (TES.MIK) <=0 ise Kapalı , FIRMA_DOVTUT>0 ise Kısmi, FIRMA_DOVTUT=0 ise ACIK (Sip satırında bu formül en son durumu gösterir!)
SELECT DISTINCT DURUM,SIP_NO,FAT_NO dediğimizde kaç tane DURUM ortaya çıkıyor ise 1,2 veya 3 olabilir. ben 1 ise DURUM'da ne varsa bu ya ACIK ya da KAPALI olabilir (yani hiç teslimat yok ve ya teslimatı bitmiş) bunu alıyorum, değil ise KISMI olarak değerlendiriyorum.
bu da eksik bir bakış açısı olmakla birlikte bana mantıklı geldi.
Siparişin aynı stoğu birden fazla ft ile gönderdiğinde sip miktarı 10 olsun
SIP1 STOK1 FT1 7 adet .... SIP.MIK - TES.MIK =0 DURUM KAPALI (aslında kısmi olmalı) SIP1 STOK1 FT2 3 adet .... SIP.MIK - TES.MIK = 0 DURUM KAPALI (şimdi kapandı) eksiklik bu durumda ortaya çıkar.
------------- Mehmet Baykan
|
|