Verilen Sipariş _ Açıklama
SET QUOTED_IDENTIFIER ON
SET ANSI_NULLS ON
GO
ALTER PROCEDURE dbo.sp_SiparisOperasyonlari
@siptip tinyint = 0,
@ilktar datetime = NULL,
@sontar datetime = NULL,
@acikkapali tinyint = 0, -- {0:Acik 1:Kapali 2:Hepsi }
@tamamlanmis tinyint = 0, -- {0:tamamlanmamis 1:tamamlanmis 2:hepsi }
@onayli tinyint = 0, -- {0:Onaysiz 1:Onayli 2:hepsi }
@DepoTipi tinyint = 0, -- {0:Genel 1:Siparis Depo 2:VerilenDepo }
@VerilenDepo integer = 0,
@TarihTipi tinyint = 0, -- {0: Teslim tarihi 1 : Siparis tarihi }
@Depolarstr nvarchar(MAX) = '',
@BirimNo tinyint = 1,
@carikodu nvarchar(25) = '',
@amac tinyint = 0,-- 0 : Sevk_veya_kapama, 1: Onaylama_veya_kapama, 2 : Rezervasyon, 3: Kapanmis_tamamlanmammislardan_siparis_olusturma,4 : Siparis_izleme
@durum tinyint = 0, -- 0:hepsi , 1 : acik siparislar , 2 : kapali siparisler
@dagitim tinyint = 0, -- 0 : kapatarak , 1 : oranlayarak, 2 : dagitim yapma
@yuvarlama tinyint = 1, -- 0:Yuvarlama yapma, 1:Yakına yuvarla, 2: Yukarı yuvarla, 3:Aşağı yuvarla
@Sadece_rezervasyonlu_siparisler_fl bit = 0
AS
BEGIN
SELECT TOP 100 PERCENT
[msg_S_0088] , -- KAYIT NO
[msg_S_0003] /* CİNSİ */ ,
SHD.*,
[msg_S_0084] /* BİRİMİ */ ,
[msg_S_0879] /* FİRMA UNVANI */ ,
[msg_S_0241] , -- TESLİM TARİHİ
[#msg_S_0240] , -- SİPARİŞ TARİHİ
[msg_S_0242] , -- SİP. CİNSİ
[#msg_S_1731] , -- SİP.CİNS NO
[msg_S_0243] , -- SERİ NO
[msg_S_0157] , -- SIRA NO
[#msg_S_0212] , -- SATIR NO
[#msg_S_0093] , -- BELGE NO
[msg_S_0200] , -- CARİ KODU
[msg_S_0201] , -- CARİ İSMİ
[#msg_S_0452] , -- TESLİM TÜRÜ
[msg_S_0355], -- DURUMU
[msg_S_0159] , -- DEPO
[#msg_S_0244] , -- SİPARİŞ MİKTAR
--dbo.fn_SiparisEslenenMiktar(0,sip_RECid_DBCno,sip_RECid_RECno) AS [#msg_S_0725] , -- EŞLEŞMİŞ MİKTAR
-- Bu süreyi neredeyse 2-3 katına çıkarıyor. Başka çözüm bulana kadar kapatıyorum
[#msg_S_0456] , -- TAMAMLANAN MİKTAR
[#msg_S_0246] , -- VAZGEÇİLEN MİKTAR
[msg_S_0463] , -- KALAN SİPARİŞ MİKTARI
[msg_S_0463] * sto_birim1_agirlik AS [#msg_S_0467] , -- KALAN MİKTAR AĞIRLIK (KG)
[msg_S_0463] * sto_birim1_en*sto_birim1_boy*sto_birim1_yukseklik/1000000000 [#msg_S_0468] , -- KALAN MİKTAR HACİM (M3)
[msg_S_2826], /* REZERVE EDİLEN MİKTAR*/
case
when (SO.[#KPT]=0) then [msg_S_0463] - [msg_S_2826]
else 0.0
end AS [#msg_S_2885] , -- REZERVASYON SONRASI KALAN SİPARİŞ MİKTARI
[#msg_S_0469] , -- STOK ELDEKİ MİKTAR
[msg_S_0470],-- HAREKET MİKTARI
[msg_S_0470]*sto_birim1_agirlik AS [#msg_S_2083] , -- HAREKET MİKTARI AĞIRLIK (KG)
[msg_S_0470]*sto_birim1_en*sto_birim1_boy*sto_birim1_yukseklik/1000000000 AS [#msg_S_2084] , -- HAREKET MİKTARI HACİM (M3)
[msg_S_0248] , -- BİRİM FİYAT
[msg_S_0249] , -- SİPARİŞ BRÜT TUTAR
[msg_S_1264], /* FİYAT LİSTE NO */
[msg_S_1265],/* FİYAT LİSTE AÇIKLAMASI */
[#msg_S_0250] , -- İSKONTO
[#msg_S_0251] , -- MASRAF
[msg_S_0252] , -- SİPARİŞ NET TUTAR
[msg_S_0253] , -- KALAN SİPARİŞ NET TUTAR
[msg_S_0254] , -- DÖVİZ
[#msg_S_0255] , -- ADRES NO
[#msg_S_0256] , -- ONAYLAYAN KULLANICI
[#msg_S_0257] , -- İTHALAT-İHRACAT KODU
[msg_S_0118] , -- SOR.MERK.KODU
[#msg_S_0119] , -- SOR.MERK.İSMİ
[msg_S_2016] , -- STOK SOR.MERK.KODU
[#msg_S_2017] , -- STOK SOR.MERK.İSMİ
[msg_S_0116] , -- PROJE KODU
[#msg_S_0161] , -- PARTİ
[#msg_S_0162] , -- LOT
[#msg_S_0117] , -- PROJE ADI
[#msg_S_0260] , -- AÇIKLAMA 1
[#msg_S_0261] , -- AÇIKLAMA 2
[#msg_S_0471] , -- CARİ GRUP KODU
(SELECT crg_isim FROM dbo.CARI_HESAP_GRUPLARI WITH (NOLOCK) Where crg_kod = [#msg_S_0471]) AS [#msg_S_0472],
[#msg_S_0473] , -- BÖLGE KODU
(SELECT bol_ismi FROM dbo.CARI_HESAP_BOLGELERI WITH (NOLOCK) Where bol_kod = [#msg_S_0473]) AS [#msg_S_0202],
[#msg_S_0474] , -- CARİ SEKTÖR KODU
(SELECT sktr_ismi FROM dbo.STOK_SEKTORLERI WITH (NOLOCK) Where sktr_kod = [#msg_S_0474]) AS [#msg_S_0475],
[#msg_S_0098] , -- VADE TARİH
[#msg_S_0099] , -- VADE GÜN
[msg_S_0262], -- DURUM */
[#msg_S_1697], -- DURUM NO*/
[#msg_S_1745] /* TESLİM TÜRÜ ADI */ ,
[#msg_S_1129] /* SORUMLU KODU */,
[#msg_S_1130] /* SORUMLU KODU */ ,
[#msg_S_1042]/* ODEME PLAN ADI */,
[msg_S_0551] /* ÖDEME PLANI NUMARASI */ ,
[#msg_S_2760] /* KAPAMA NEDENİ KODU */ ,
[#msg_S_2761] /* KAPAMA NEDENİ İSMİ */ ,
[#msg_S_2762] /* KAPAMA NEDENİ AÇIKLAMA */,
[#msg_S_1735] /* İSKONTO YÜZDESİ 1 */ ,
[#msg_S_1736] /* İSKONTO YÜZDESİ 2 */ ,
[#msg_S_1737] /* İSKONTO YÜZDESİ 3 */ ,
[#msg_S_1738] /* İSKONTO YÜZDESİ 4 */ ,
[#msg_S_1739] /* İSKONTO YÜZDESİ 5 */ ,
[#msg_S_1740] /* İSKONTO YÜZDESİ 6 */ ,
[#msg_S_1741] /* MASRAF YÜZDESİ 1*/ ,
[#msg_S_1742] /* MASRAF YÜZDESİ 2*/ ,
[#msg_S_1743] /* MASRAF YÜZDESİ 3*/ ,
[#msg_S_1744] /* MASRAF YÜZDESİ 4*/ ,
[msg_S_1494] /* GEÇERLİLİK TARİHİ */ ,
[msg_S_4153] /* REZERVASYON MİKTARI */ ,
[msg_S_4154] /* REZERVASYONDAN TESLİM EDİLEN */
into #tmpSiparisOperasyonlari
FROM
(
select
*,
CASE
WHEN ([#KPT]=0) and
(@siptip=0) AND
(( [msg_S_0463] )>0) and
([#msg_S_0469] > 0) THEN
CASE
WHEN ([#msg_S_0469]<=([msg_S_0463])) THEN [#msg_S_0469]
ELSE [msg_S_0463]
END
WHEN ([#KPT]=0) and (@siptip=1) THEN [msg_S_0463]
ELSE CAST(0.0 as FLOAT)
END AS [msg_S_0470] -- HAREKET MİKTARI
from
dbo.fn_HamSiparisOperasyonlari ( @siptip,
@ilktar,
@sontar,
@acikkapali,
@tamamlanmis,
@onayli,
@DepoTipi,
@VerilenDepo,
@TarihTipi,
@Depolarstr,
@BirimNo,
@carikodu,
(case when @amac=2 then 1 else 0 end),
@Sadece_rezervasyonlu_siparisler_fl) HSO
WHERE ((@amac<>4) or ([#msg_S_1697]+1=@durum)or (@durum=0))
) SO
LEFT OUTER JOIN dbo.STOK_HIZMET_MASRAF_DEMIRBAS_DETAY_KOD_gizli SHD ON (SO.[msg_S_0001]=SHD.[msg_S_0078]) AND ([#msg_S_0158]=SHD.[#msg_S_0328])
LEFT OUTER JOIN dbo.STOKLAR ON (SO.[msg_S_0001]=dbo.STOKLAR.sto_kod)
if @dagitim<>2
begin
declare @stokkod nvarchar(25)
declare @depoisim nvarchar(50)
declare @geneldepoisim nvarchar(50)
declare @eldeki float
declare @sipkalan float
declare @kalan float
declare @oran float
declare @kayitno integer
set @geneldepoisim = dbo.fn_GetResource('E',2491,'')
if @DepoTipi = 1
begin
Declare Stok_Cursor CURSOR READ_ONLY FAST_FORWARD
FOR
SELECT
[msg_S_0078],
[msg_S_0159],
MIN (isnull([#msg_S_0469],0)),
SUM(isnull([msg_S_0463],0))
FROM #tmpSiparisOperasyonlari
GROUP BY [msg_S_0078],[msg_S_0159]
HAVING (MIN(isnull([#msg_S_0469],0))>0) and (MIN(isnull([#msg_S_0469],0))<SUM(isnull([msg_S_0463],0))) --aksi halde dagitima gerek yok gelen rakamlar dogrudur.
end
else
begin
Declare Stok_Cursor CURSOR READ_ONLY FAST_FORWARD
FOR
SELECT
[msg_S_0078],
@geneldepoisim,
MIN (isnull([#msg_S_0469],0)),
SUM(isnull([msg_S_0463],0))
FROM #tmpSiparisOperasyonlari
GROUP BY [msg_S_0078]
HAVING (MIN(isnull([#msg_S_0469],0))>0) and (MIN(isnull([#msg_S_0469],0))<SUM(isnull([msg_S_0463],0))) --aksi halde dagitima gerek yok gelen rakamlar dogrudur.
end
OPEN Stok_Cursor
FETCH NEXT FROM Stok_Cursor INTO @stokkod,@depoisim,@eldeki,@sipkalan
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE #tmpSiparisOperasyonlari
SET msg_S_0470 = 0 where [msg_S_0078] = @stokkod and (([msg_S_0159] = @depoisim) or (@depoisim = @geneldepoisim))
if @sipkalan>0
set @oran=@eldeki/ @sipkalan
else
set @oran=0
Declare Stok_Cursor2 CURSOR READ_ONLY FAST_FORWARD
FOR Select msg_S_0088,[msg_S_0463] FROM #tmpSiparisOperasyonlari WHERE [msg_S_0078]=@stokkod and (([msg_S_0159] = @depoisim) or (@depoisim = @geneldepoisim))
OPEN Stok_Cursor2
FETCH NEXT FROM Stok_Cursor2 INTO @kayitno,@kalan
declare @dagitimmiktari float
WHILE @@FETCH_STATUS = 0 and (@eldeki>0)
BEGIN
set @dagitimmiktari=0
if (@kalan>0)
begin
if @dagitim=0 --kapatarak
begin
if @eldeki>@kalan
begin
set @dagitimmiktari=@kalan
set @eldeki=@eldeki-@kalan
end
else
begin
set @dagitimmiktari=@eldeki
set @eldeki=0
end
end
else --oranlayarak
begin
set @dagitimmiktari=@kalan*@oran
set @dagitimmiktari=case
when @yuvarlama=1 then round(@dagitimmiktari,0)
when @yuvarlama=2 then round(@dagitimmiktari+(0.5),0)
when @yuvarlama=3 then round(@dagitimmiktari-(0.5),0)
else @dagitimmiktari
end
end
end
UPDATE #tmpSiparisOperasyonlari
SET msg_S_0470 =@dagitimmiktari
WHERE msg_S_0088=@kayitno
FETCH NEXT FROM Stok_Cursor2 INTO @kayitno,@kalan
END
CLOSE Stok_Cursor2
DEALLOCATE Stok_Cursor2
FETCH NEXT FROM Stok_Cursor INTO @stokkod,@depoisim,@eldeki,@sipkalan
END
CLOSE Stok_Cursor
DEALLOCATE Stok_Cursor
end
select *,egk_evracik1,egk_evracik2,egk_evracik3,egk_evracik4,egk_evracik5,egk_evracik6,egk_evracik7,egk_evracik8,egk_evracik9,egk_evracik10 from #tmpSiparisOperasyonlari
LEFT OUTER JOIN EVRAK_ACIKLAMALARI ON egk_evr_seri=[msg_S_0243] AND egk_evr_sira=[msg_S_0157] AND egk_dosyano=21 AND egk_hareket_tip= @siptip
ORDER BY [msg_S_0241], [msg_S_0200], [msg_S_0243], [msg_S_0157], [#msg_S_0212]
END
GO