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)

SQL SERVER SONUCU HTML OLARAK KAYDET


--CREATE PROCEDURE  [dbo].[P_HTML]  
--as
declare @bodyOzet varchar(max)
declare @bodyDetay varchar(max)
/*
CREATE TABLE [dbo].[HTML](
	[HTMLCODE] [nvarchar](max) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] 
 
--DOSYAYA KAYDETMESI ICIN AYAR ACILMALI
sp_configure 'show advanced options', '1'
RECONFIGURE
GO
-- this enables xp_cmdshell
sp_configure 'xp_cmdshell', '1' 
RECONFIGURE
GO

--DOSYAYA KAYDETME KOMUTU
declare @sql varchar(8000)
select @sql = 'bcp "select * from [DATABASE].[dbo].HTML" queryout E:\SONUC.html -c -t, -T -S' + @@servername
exec master..xp_cmdshell @sql

 --ISLEM SORGUSU
 exec dbo.P_HTML 
*/
set @bodyDetay = cast( (
select  td = cast(day(Tarih) as varchar)+'/'+cast(month(Tarih) as varchar)+'/'+cast(Year(Tarih) as varchar)+'</td><td>' + UrunKodu + '</td><td>' + UrunAdi + '</td><td>' + Barkod + '</td><td>' + cast( Miktar as varchar(30) ) + '</td><td>' + cast( SatirNetTutar as varchar(30) )
from (
      select top 100 percent 
	  Tarih=		(select SF.DATE FROM StockFiches SF WHERE SF.Id=SL.StockFicheId),
	  UrunKodu=		(select P.Code FROM Products P WHERE P.Id=SL.StockId),
	  UrunAdi=		(select P.ProductName FROM Products P WHERE P.Id=SL.StockId),
	  Barkod=		(select P.Barcode FROM Barcodes P WHERE P.ProductId=SL.StockId),
      Miktar=		SL.Amount,
      SatirNetTutar=SL.LineNet
      from StockLines SL 
      
      ) as d order by Tarih desc
for xml path( 'tr' ), type ) as varchar(max) )

set @bodyDetay = N'Malzeme Bazlı Satışlar ('+cast(GETDATE() as varchar)+') <table cellpadding="2" cellspacing="0" border="1">'
          + '<tr><th>Tarih</th><th>Ürün Kodu</th><th>Ürün Adı</th><th>Barkod</th><th>Miktar</th><th>Tutar</th></tr>'
          + replace( replace( @bodyDetay, '&lt;', '<' ), '&gt;', '>' )
          + '</table>' 

/*aşağısı özet*/

set @bodyOzet = cast( (
select  td = cast(day(Tarih) as varchar)+'/'+cast(month(Tarih) as varchar)+'/'+cast(Year(Tarih) as varchar)+'</td><td>' + OdemeTuru + '</td><td>' + Cast(Toplam as Varchar) + '</td><td>' + Cast(IndirimToplam as Varchar) + '</td><td>' + cast( NetToplam as varchar(30) ) 
from (
select Tarih,OdemeTuru,Sum(Toplam) Toplam, Sum(IndirimToplam) IndirimToplam,Sum(NetToplam) NetToplam from (
SELECT 
	CONVERT(DATE, F.CreatedDate) AS Tarih  
	, CASE F.IO WHEN 0 THEN L.Total ELSE 0 - L.Total END AS Toplam
	, CASE F.IO WHEN 0 THEN L.TotalDiscount ELSE 0 - L.TotalDiscount END AS IndirimToplam
	, CASE F.IO WHEN 0 THEN L.LineNet ELSE 0 - L.LineNet END AS NetToplam
	, L.VatInc KDVDH
	, L.Vat KDV
	, CASE  F.PayType  
		WHEN 0 THEN 'Nakit Kasa'
		WHEN 1 THEN 'Banka Pos' 
		WHEN 2 THEN 'Kredi Kartı' 
		WHEN 3 THEN 'İkram' 
		END OdemeTuru 
	FROM StockLines L
	Left Join StockFiches F ON F.Id = L.StockFicheId 
	WHERE  
        F.FicheType in (0,1)  
	) as t group by Tarih,OdemeTuru  
      
      ) as d order by Tarih desc
for xml path( 'tr' ), type ) as varchar(max) )

set @bodyOzet = N'Özet Bazlı Satışlar ('+cast(GETDATE() as varchar)+') <table cellpadding="2" cellspacing="0" border="1">'
          + '<tr><th>Tarih</th><th>Odeme Turu</th><th>Toplam</th><th>Indirim Toplam</th><th>NetToplam</th></tr>'
          + replace( replace( @bodyOzet, '&lt;', '<' ), '&gt;', '>' )
          + '</table><br>' + @bodyDetay

truncate table HTML
insert into HTML(HTMLCODE) VALUES(@bodyOzet)
 
GO



logo Cari Bakiyeler (RD Kontrollü)


SELECT 
OGRENCI_NO=		CLCARD.CODE , 
OGRENCI_ADI=	CLCARD.DEFINITION_,
DOVIZ_TURU=		CASE  CCURRENCY WHEN 0 THEN 'TL' WHEN 160 THEN 'TL' WHEN 1 THEN 'USD' WHEN 17 THEN 'GBP' WHEN 20 THEN 'EUR' ELSE '' END,

/*TL_BAKIYE=		ROUND((SUM((1 - CLFLINE.SIGN) * CLFLINE.AMOUNT) - SUM(CLFLINE.SIGN * CLFLINE.AMOUNT)),2),
RD_BAKIYE=		ROUND((SUM((1 - CLFLINE.SIGN) * (CLFLINE.AMOUNT/NULLIF(CLFLINE.REPORTRATE,0))) 
													- 
					SUM(CLFLINE.SIGN * (CLFLINE.AMOUNT/NULLIF(CLFLINE.REPORTRATE,0)))),2),*/

/*BAKIYE=			CASE WHEN CCURRENCY IN (0,160) THEN 
					ROUND((SUM((1 - CLFLINE.SIGN) * CLFLINE.AMOUNT) - SUM(CLFLINE.SIGN * CLFLINE.AMOUNT)),2)
				ELSE
					ROUND((SUM((1 - CLFLINE.SIGN) * (CLFLINE.AMOUNT/NULLIF(CLFLINE.REPORTRATE,0))) 
													- 
					SUM(CLFLINE.SIGN * (CLFLINE.AMOUNT/NULLIF(CLFLINE.REPORTRATE,0)))),2)
				END ,*/


BAKIYE=			CASE WHEN CCURRENCY IN (0,160) THEN 
					ROUND((SUM((1 - CLFLINE.SIGN) * CLFLINE.AMOUNT) - SUM(CLFLINE.SIGN * CLFLINE.AMOUNT)),2)
				ELSE
					ROUND((SUM((1 - CLFLINE.SIGN) * (CLFLINE.REPORTNET)) 
													- 
					SUM(CLFLINE.SIGN * (CLFLINE.REPORTNET))),2)
				END 
FROM 
LG_118_01_CLFLINE CLFLINE INNER JOIN
LG_118_CLCARD CLCARD ON CLFLINE.CLIENTREF = CLCARD.LOGICALREF AND CLFLINE.CANCELLED = 0
WHERE CLCARD.CYPHCODE='UNI'     AND CLFLINE.CANCELLED=0
and CLFLINE.DATE_<='09/01/2020' /*ay/gun/yıl*/
GROUP BY CLCARD.CCURRENCY, CLCARD.CODE, CLCARD.DEFINITION_, CLCARD.ACTIVE
HAVING (CLCARD.CODE LIKE '%') and (CLCARD.DEFINITION_ LIKE '%')
AND (CLCARD.ACTIVE = 0) ORDER BY CLCARD.CODE DESC