Logo GO için stok adedini gösteren SQL kodu nasıl olmalıdır?

Gönderen Konu: Logo GO için stok adedini gösteren SQL kodu nasıl olmalıdır?  (Okunma sayısı 970 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı Özkan Özcan

  • Yeni Kullanıcı
  • *
  • Karma: 0
Merhabalar.
Lokalde çalışan bir server üzerinde Logo GO kulanıyoruz ve kullandığımız E-Ticaret sitesinde de anlık stok adetlerini göstermek istiyoruz

Bunun için webden erişebildiğimiz ve IIS üzerinde çalışan MSSQL'e bağlanıp ürün stok adedini gösteren bir servis hazırladık.

Ancak daha önce Logo ile çalışmadığım için database yapısı çok karmaşık geldi. 
LG_007 ile başlayıp LG_018 e kadar giden aynı isimli bir sürü tablo bulunuyor.
Hangi tablo ne işe yarar bizim datalar hangi tabloda bulamadım.

Ürün kodunu bildiğimiz bir ürünün stok adedini gösterecek SQL koduna ihtiyacım bulunuyor.

Şöyle br sql kodu yazdım ama yanlış değer döndürüyor

Kod: [Seç]
SELECT TOP 100 SUM(S.ONHAND) AS 'STOK'
FROM [LOGODB].[dbo].[LG_016_ITEMS] I , [LOGODB].[dbo].[LG_016_01_STINVTOT] S
WHERE I.LOGICALREF = S.STOCKREF AND I.CODE LIKE 'urunkodu'

Bu konuda tecrübesi bulunan arkadaşların desteğini bekliyorum.
Nerede yanlış yapmışım?
Stok adedini çekebilmek için nasıl bir SQL kodu kullanmalıyım?

Çevrimdışı ByBirol®

  • Logo Sistem Administrator
  • Logo Uzmanı
  • *****
  • Karma: 18
  • admin@artibilisim.com Logo Çözüm Ortağı
Sitede yeterince kaynak var .

Çevrimdışı Özkan Özcan

  • Yeni Kullanıcı
  • *
  • Karma: 0
Birol bey soruyu sormadan önce sitede araştırdım ama malesef çözüm bulamadığım için başlığı açtım.

Sizin için kolay bir işlem olabilir ancak ben Logo ile daha önce de hiç çalışmadım ve tablo yapısı bana çok karmaşık geldi. 

Eğer çözümle ilgili gözümden kaçan bir mesaj var ise linkini verebilirseniz sevinirim.

Çevrimdışı Koray Ü.

  • Uzman Kullanıcı
  • Logo Uzmanı
  • *****
  • Karma: 8
bu kod işinizi görecektir...

SELECT
URUN.CODE AS 'ÜRÜN KODU',
URUN.NAME AS 'ÜRÜN ADI',
'STOK MİKTARI'= CASE WHEN (AMBARM.MIKTAR IS NULL) THEN '0' WHEN (AMBARM.MIKTAR IS NOT NULL) THEN AMBARM.MIKTAR END,
BİRİM_L.CODE AS 'ANA BİRİM'
FROM
LG_001_ITEMS URUN
LEFT JOIN (SELECT SUM(ONHAND) MIKTAR,STOCKREF FROM LV_001_01_STINVTOT WHERE INVENNO=-1 GROUP BY STOCKREF)
AMBARM ON URUN.LOGICALREF = AMBARM.STOCKREF
LEFT JOIN LG_001_UNITSETF BİRİM_F ON URUN.UNITSETREF=BİRİM_F.LOGICALREF
LEFT JOIN LG_001_UNITSETL BİRİM_L ON BİRİM_L.UNITSETREF=BİRİM_F.LOGICALREF

WHERE URUN.CARDTYPE<>'22'AND AMBARM.MIKTAR <>0 AND BİRİM_L.MAINUNIT=1
ORDER BY URUN.CODE

firma ve dönem numaralarını güncellemeyi unutmayın.

Çevrimdışı Teknik21

  • Logo Kullanıcısı
  • **
  • Karma: 2
Merhaba ,

Yol göstermesi  dilegiyle

kendinize göre uyarlayın..

Kod: [Seç]
  SELECT  MLZ.NAME ,
                STITOTS.STOCKREF ,
                SUM(STITOTS.RESERVED - STITOTS.SHIPPED) AS [ALINAN_ŞİPARİŞLER] ,
                SUM(STITOTS.ONHAND) AS [FİİLİ_STOK] ,
                SUM(STITOTS.ACTPORDER) AS [VERİLEN_SİPARİŞLER] ,
                ( STITOTS.ONHAND + STITOTS.ACTPORDER ) - STITOTS.RESERVED AS [FARK]
        FROM    LV_FFF_FF_STINVTOT STITOTS WITH ( NOLOCK )
                JOIN dbo.LG_FFF_ITEMS AS MLZ ON MLZ.LOGICALREF = STITOTS.STOCKREF
        WHERE   ( STITOTS.INVENNO <> -1 AND STITOTS.INVENNO <> 3 )
                AND ( STITOTS.DATE_ > CONVERT(DATETIME, '01-01-2000', 101) )
                AND ( STITOTS.DATE_ <= CONVERT(DATETIME, GETDATE(), 101) )
                AND MLZ.CARDTYPE = 1
        GROUP BY MLZ.NAME ,
                STITOTS.STOCKREF ,
               
                ( STITOTS.ONHAND + STITOTS.ACTPORDER ) - STITOTS.RESERVED;

Çevrimdışı ByBirol®

  • Logo Sistem Administrator
  • Logo Uzmanı
  • *****
  • Karma: 18
  • admin@artibilisim.com Logo Çözüm Ortağı
Birol bey soruyu sormadan önce sitede araştırdım ama malesef çözüm bulamadığım için başlığı açtım.

Sizin için kolay bir işlem olabilir ancak ben Logo ile daha önce de hiç çalışmadım ve tablo yapısı bana çok karmaşık geldi. 

Eğer çözümle ilgili gözümden kaçan bir mesaj var ise linkini verebilirseniz sevinirim.
Asagidaki kodlar defalarca paylaşıldı , ayrıca trace candır .

Çevrimdışı Özkan Özcan

  • Yeni Kullanıcı
  • *
  • Karma: 0
Cevap veren tüm arkadaşlara çok teşekkür ederim.

Yarın hemen deneyeceğim. Hayırlı kandiller iyi akşamlar...