LOGO SQL İŞYERİ AMBAR BAZLI ANLIK STOKLAR

SELECT
  X.Isyeri,
  X.Ambar,
  x.Stok_Kodu,
  x.Stok_Adı,
  x.MalzemeAciklamasi2,
  x.MalzemeAciklamasi3,
  x.MalzemeAciklamasi4,
  x.[Bırım],
  x.Malzeme_Turu,
  x.GrupKodu,
  x.OzelKod,
  x.OzelKod2,
  x.OzelKod3,
  x.OzelKod4,
  x.OzelKod5,
  Miktar = ROUND(SUM(x.[Miktar]), 4)
FROM (SELECT
  Ambar = (SELECT
    CAST(NR AS varchar) + '-' + NAME
  FROM L_CAPIWHOUSE CAPIWHOUSE
  WHERE CAPIWHOUSE.NR = STLINE.SOURCEINDEX
  AND CAPIWHOUSE.FIRMNR = 211),
  Isyeri = (SELECT
    CAST(NR AS varchar) + '-' + NAME
  FROM L_CAPIDIV CAPIDIV
  WHERE CAPIDIV.NR = STFICHE.BRANCH
  AND CAPIDIV.FIRMNR = 211),
  STFICHE.LOGICALREF [STFICHE_REFERANS],
  Stok_Kodu = ITEMS.CODE,
  Stok_Adı = ITEMS.NAME,
  MalzemeAciklamasi2 = ITEMS.NAME2,
  MalzemeAciklamasi3 = ITEMS.NAME3,
  MalzemeAciklamasi4 = ITEMS.NAME4,
  [Bırım] = BIRIM.CODE,
  Malzeme_Turu =
                CASE ITEMS.CARDTYPE
                  WHEN 1 THEN 'TICARI MAL'
                  WHEN 2 THEN 'KARMA KOLI'
                  WHEN 3 THEN 'DEPOZITOLU MAL'
                  WHEN 4 THEN 'SABIT KIYMET'
                  WHEN 10 THEN 'HAMMADDE'
                  WHEN 11 THEN 'YARI MAMUL'
                  WHEN 12 THEN 'MAMUL'
                  WHEN 13 THEN 'TUKETIM MALI'
                  WHEN 20 THEN 'GENEL MALZEME SINIFI'
                  WHEN 21 THEN 'TABLOLU MALZEME SINIFI'
                  ELSE CONVERT(varchar(20), CARDTYPE)
                END,
  GrupKodu = ITEMS.STGRPCODE,
  OzelKod = ITEMS.SPECODE,
  OzelKod2 = ITEMS.SPECODE2,
  OzelKod3 = ITEMS.SPECODE3,
  OzelKod4 = ITEMS.SPECODE4,
  OzelKod5 = ITEMS.SPECODE5,
  [Miktar] = CAST((CASE
    WHEN STLINE.IOCODE IN (1, 2) THEN 1
    ELSE -1
  END) * STLINE.AMOUNT * (CASE
    WHEN ISNULL(UINFO2, 0) = 0 THEN 1
    ELSE UINFO2
  END) / (CASE
    WHEN ISNULL(UINFO1, 0) = 0 THEN 1
    ELSE UINFO1
  END) AS float)
FROM LG_211_01_STFICHE STFICHE WITH (NOLOCK)
LEFT OUTER JOIN LG_211_01_STLINE STLINE WITH (NOLOCK)
  ON STFICHE.LOGICALREF = STLINE.STFICHEREF
LEFT OUTER JOIN LG_211_ITEMS ITEMS WITH (NOLOCK)
  ON STLINE.STOCKREF = ITEMS.LOGICALREF
LEFT OUTER JOIN LG_211_UNITSETL BIRIM WITH (NOLOCK)
  ON BIRIM.UNITSETREF = ITEMS.UNITSETREF
  AND BIRIM.MAINUNIT = 1
WHERE STFICHE.CANCELLED = 0
AND STLINE.CANCELLED = 0
AND STLINE.LINETYPE = 0
AND STLINE.IOCODE IN (1, 2, 3, 4)

AND STLINE.LPRODSTAT = 0
AND STLINE.DATE_ <= GETDATE()) AS X
GROUP BY X.Isyeri,
         X.Ambar,
         x.Stok_Kodu,
         x.Stok_Adı,
         x.MalzemeAciklamasi2,
         x.MalzemeAciklamasi3,
         x.MalzemeAciklamasi4,
         x.Bırım,
         x.Malzeme_Turu,
         x.GrupKodu,
         x.OzelKod,
         x.OzelKod2,
         x.OzelKod3,
         x.OzelKod4,
         x.OzelKod5

Not: İşyerinin olması akıl karıştırabilir(toplamda bu ambarda şu stok olmalı gibi carpraz kotnrol yapılırsa logodan stok bazen farklı işyerinden düşünce toplam diğer işyerinde olduğu için) dolayısıyla select ve group bydan kaldırılırsa daha sağlıklı kontrol sağlanabilir (ambar şu stok şu)

LOGO SQL MALZEME EKSTRE


/*TEST = 
select * from  dbo.SELECT_MALZEMEEXTRE_201('01/01/2017',getdate(),'01-YK-0001')*/
/****** Object:  UserDefinedFunction [dbo].[SELECT_MALZEMEEXTRE_201]    Script Date: 18.8.2020 09:09:02 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


CREATE FUNCTION [dbo].[SELECT_MALZEMEEXTRE_201]
(
    @BAT DATETIME,
	@BIT DATETIME,
	@MALZEMEKODU VARCHAR(50)
)
RETURNS TABLE
AS
RETURN 
SELECT
X.AMBAR,
x.[Stfıche_Referans] ,
x.[Stlıne_Referans] ,
x.[Fiş No],
x.[Fiş Türü],
x.[Belge No],
x.[Stfıche Tarıh],
x.[Stlıne Tarıh],
x.[Ftıme],
x.[Stok Kodu],
x.[Stok Adı],
x.[Bırım],
x.[Giriş Çıkış],
x.[Miktar],
  X.STFICHELNNO,
x.Kalan,
x.[Tutar]
FROM (
SELECT
(SELECT NAME FROM L_CAPIWHOUSE CAPIWHOUSE WHERE CAPIWHOUSE.NR = STLINE.SOURCEINDEX AND CAPIWHOUSE.FIRMNR = 201 ) AMBAR,

STFICHE.LOGICALREF [STFICHE_REFERANS],
STLINE.LOGICALREF [STLINE_REFERANS],
[Fiş No]=STFICHE.FICHENO,

[Fiş Türü]=CASE STFICHE.TRCODE 

WHEN  1 then 'Satınalma İrsaliyesi'

WHEN  2 then 'Perakende Satış İade İrsaliyesi'

WHEN  3 then 'Toptan Satış İade İrsaliyesi'

WHEN  4 then 'Konsinye Çıkış İade İrsaliyesi'

WHEN  5 then 'Konsinye Giriş İrsaliyesi'

WHEN  6 then 'Satınalma İade İrsaliyesi'

WHEN  7 then 'Perakende Satış İrsaliyesi'

WHEN  8 then 'Toptan Satış İrsaliyesi'

WHEN  9 then 'Konsinye Çıkış İrsaliyesi'

WHEN  10 then 'Konsinye Giriş İade İrsaliyesi'

WHEN  11 then 'Fire Fişi'

WHEN  12 then 'Sarf Fişi'

WHEN  13 then 'Üretimden Giriş Fişi'

WHEN  14 then 'Devir Fişi'

WHEN  25 then 'Ambar Fişi'

WHEN  26 then 'Muhtahsil İrsaliyesi'

WHEN  50 then 'Sayım Fazlası Fişi'

WHEN  51 then 'Sayım Eksiği Fişi' ELSE '' END,

[Belge No]=STFICHE.DOCODE,
 
[Stfıche Tarıh]=STFICHE.DATE_,

[Stlıne Tarıh]=STLINE.DATE_,

[Ftıme]=STLINE.FTIME,

[Stok Kodu]=ITEMS.CODE,

[Stok Adı]=ITEMS.NAME,

[Bırım]=BIRIM.CODE,

[Giriş Çıkış]= CASE WHEN STLINE.IOCODE IN(1,2) THEN 'Giriş' when STLINE.IOCODE IN(3,4) THEN 'Çıkış' else '' end,

[Miktar]=CAST((CASE WHEN STLINE.IOCODE IN(1,2) THEN 1 ELSE -1 end) * STLINE.AMOUNT*(CASE WHEN ISNULL(UINFO2,0)=0 THEN 1 ELSE UINFO2 END)/(CASE WHEN ISNULL(UINFO1,0)=0 THEN 1 ELSE UINFO1 END)  AS float),
STLINE.STFICHELNNO,

0.00 KALAN,

[Tutar]=(CASE WHEN STLINE.IOCODE IN(1,2) THEN 1 ELSE -1 end) * STLINE.VATMATRAH

FROM LG_201_01_STFICHE STFICHE WITH (NOLOCK)

LEFT OUTER JOIN LG_201_01_STLINE STLINE WITH (NOLOCK) ON STFICHE.LOGICALREF=STLINE.STFICHEREF

LEFT OUTER JOIN LG_201_ITEMS ITEMS      WITH (NOLOCK) ON STLINE.STOCKREF =ITEMS.LOGICALREF

LEFT OUTER JOIN LG_201_UNITSETL BIRIM   WITH (NOLOCK) ON BIRIM.UNITSETREF= ITEMS.UNITSETREF AND BIRIM.MAINUNIT=1
WHERE
STFICHE.CANCELLED=0 AND STLINE.CANCELLED=0
AND STLINE.LINETYPE=0
AND STLINE.IOCODE IN (1,2,3,4)
AND ITEMS.CODE=@MALZEMEKODU
AND STLINE.LPRODSTAT=0
AND (STLINE.DATE_>=@BAT AND STLINE.DATE_<=@BIT )
)
 AS  X 
GO



LOGO ERP SQL HAREKET GÖRMÜŞ MALZEMENİN BİRİMİNİ ÇEVİRME HAREKETLER DAHIL

/*MALZEME */SELECT LOGICALREF FROM dbo.LG_211_ITEMS WITH(NOLOCK) WHERE  CODE='M-4299-04-CL-SP' /*MALZEMENIN LOGICALREFINI BULMAK ICIN=1367*/
/*BIRIM*/ SELECT LOGICALREF,UNITSETREF,CODE,NAME FROM LG_211_UNITSETL WITH(NOLOCK) WHERE MAINUNIT=1 AND NAME='ADET' /*HANGI MALZEME BIRIMI OLACAK LOGICALREF=55 UNITSETREF=6*/

/*GUNCELLEME ISLEMI*/
update LG_211_ITEMS set UNITSETREF = 6 /*BIRIMIN UNITSETREFI*/ where LOGICALREF = 1367 /*MALZEMENIN LOGICALREFI*/
update LG_211_ITMUNITA set UNITLINEREF = 55 /*BIRIMIN LOGICALREFI*/ where ITEMREF = 1367 /*MALZEMENIN LOGICALREFI*/

/*RISKLI:GERIYE DONUK HAREKETLERI GUNCELLEMEK ICIN (TALEP,SIPARIS VE IRSALIYE)*/
update LG_211_01_STLINE set UOMREF = 55 /*BIRIMIN LOGICALREFI*/ , USREF = 6 /*BIRIMIN UNITSETREFI*/ where Stockref = 1367 /*MALZEMENIN LOGICALREFI*/
update LG_211_01_ORFLINE set UOMREF = 55 /*BIRIMIN LOGICALREFI*/ , USREF = 6 /*BIRIMIN UNITSETREFI*/ where Stockref = 1367 /*MALZEMENIN LOGICALREFI*/
update LG_211_01_DEMANDLINE  set UOMREF = 55 /*BIRIMIN LOGICALREFI*/ , USREF = 6 /*BIRIMIN UNITSETREFI*/ where Stockref = 1367 /*MALZEMENIN LOGICALREFI*/