Mikro Versiyon 16 Cari Hesap Ortalama Vade Hesabı
CREATE FUNCTION [dbo].[mbt_CariHesapVade] ( @CariKodu NVARCHAR (25) ) RETURNS DATETIME AS BEGIN DECLARE @BakiyeIzleme FLOAT, @Id UNIQUEIDENTIFIER, @Vade DATETIME, @ReferansTarih DATETIME, @OrtalamaVade DATETIME, @EvrakTutar FLOAT, @BakiyeyeKonuTutar FLOAT SET @ReferansTarih=dbo.fn_DatePart(GETDATE()) DECLARE @BakiyeKonuKayitlar TABLE ( RecNo UNIQUEIDENTIFIER, VadeTarihi DATETIME, BakiyeyeKonuTutar FLOAT, GunFarki INT ) DECLARE @CariHareketler TABLE ( cha_Guid UNIQUEIDENTIFIER, cha_cinsi TINYINT, cha_evrak_tip TINYINT, cha_tarihi DATETIME, CHA_VADE_TARIHI DATETIME, MEBLAG_SIGN FLOAT, TUTAR FLOAT, CHA_KAPANAN_MEBLAG FLOAT ) INSERT INTO @CariHareketler SELECT TOP 100 PERCENT cha_Guid, cha_cinsi, cha_evrak_tip, cha_tarihi, CHA_VADE_TARIHI, CASE WHEN CHA_CARI_BORC_ALACAK_TIP=0 THEN 1.0 ELSE -1.0 END AS MEBLAG_SIGN, CHA_CARI_MEBLAG_ANA AS TUTAR, CAST(0.0 AS FLOAT) CHA_KAPANAN_MEBLAG FROM dbo.CARI_HESAP_HAREKETLERI_VIEW_WITH_INDEX_02 WITH (NOLOCK) WHERE (cha_cari_cins=0) AND (cha_kod=@CariKodu) ORDER BY cha_kod SELECT @BakiyeIzleme=SUM(TUTAR*MEBLAG_SIGN) FROM @CariHareketler IF @BakiyeIzleme IS NULL SET @BakiyeIzleme=0.0 IF ABS(@BakiyeIzleme)<=0 RETURN NULL DECLARE CariHareketlerCursor CURSOR LOCAL READ_ONLY FAST_FORWARD FOR SELECT TOP 100 PERCENT cha_Guid, (TUTAR-CHA_KAPANAN_MEBLAG)*MEBLAG_SIGN, CHA_VADE_TARIHI FROM @CariHareketler WHERE ((@BakiyeIzleme>0 AND MEBLAG_SIGN>0) OR (@BakiyeIzleme<0 AND MEBLAG_SIGN<0)) AND TUTAR>CHA_KAPANAN_MEBLAG ORDER BY CASE WHEN cha_evrak_tip IN (59,46,47) OR cha_cinsi IN (11,16) THEN 1 ELSE 0 END, cha_tarihi DESC, CHA_VADE_TARIHI DESC OPEN CariHareketlerCursor FETCH NEXT FROM CariHareketlerCursor INTO @Id, @EvrakTutar, @Vade WHILE @@FETCH_STATUS = 0 AND ABS(@BakiyeIzleme)>1 BEGIN IF @BakiyeIzleme>0 SET @BakiyeyeKonuTutar = dbo.fn_MIN(@BakiyeIzleme,@EvrakTutar) ELSE SET @BakiyeyeKonuTutar = dbo.fn_MAX(@BakiyeIzleme,@EvrakTutar) SET @BakiyeIzleme = @BakiyeIzleme – @BakiyeyeKonuTutar INSERT INTO @BakiyeKonuKayitlar VALUES (@Id,@Vade,@BakiyeyeKonuTutar,dbo.fn_gunfarkibul(@ReferansTarih,@Vade)) FETCH NEXT FROM CariHareketlerCursor INTO @Id, @EvrakTutar, @Vade END CLOSE CariHareketlerCursor DEALLOCATE CariHareketlerCursor SELECT TOP 100 PERCENT @OrtalamaVade=CASE WHEN SUM(BakiyeyeKonuTutar)<>0 THEN DATEADD(DAY,CAST(CAST(SUM(BakiyeyeKonuTutar*GunFarki) / SUM(BakiyeyeKonuTutar) AS DECIMAL) AS INT), @ReferansTarih) ELSE @ReferansTarih END FROM @BakiyeKonuKayitlar RETURN @OrtalamaVade END
Bu Fonksiyon Nasıl kullanılır.
Örnek :
Select Oid = cari_Guid, MusteriKodu=M.cari_kod, Unvan=M.cari_unvan1, OrtalamaVade=DateDiff(day,ISNULL(
dbo.mbt_CariHesapVade
(M.cari_kod),Getdate()),Getdate()) from CARI_HESAPLAR M where M.cari_kod LIKE ‘120.%’
Ortalama Vade Hesabı tarih olarak dönüş yapar. Bunu gün olarak Hesaplamak isterseniz Yukarıdaki gibi kullanabilirsiniz.
Sadece tarih olarak görmek isterseniz
OrtlamaVadeTarihi = dbo.mbt_CariHesapVade(M.cari_kod),Getdate())
Olarak kullanabilirsiniz.
Tüm Mikro Versiyon 16 Ürünleri için geçerlidir.
————————————————————————–
Bir Mali Yılın istediğiniz Ayındaki Bir Stok’un Depo Bazlı Dönem Maliyeti
CREATE FUNCTION [dbo].[mbt_StokBirimGirisMaliyetiYilveAy](@stok_kodu nvarchar(30),@depono integer,@dovizcins tinyint,@yil int,@ay int) RETURNS float AS BEGIN RETURN( SELECT (isnull(GIRISTUTAR,0)-isnull(CIKISFIYATFARKI,0)) / case when isnull(GIRISMIKTAR,0) > 0 then GIRISMIKTAR else 1.0 end FROM( SELECT sum(case when @dovizcins=1 then sho_Belge_Alt_Giris when @dovizcins=2 then sho_Belge_Orj_Giris else sho_Belge_Ana_Giris end) AS GIRISTUTAR, sum(case when @dovizcins=1 then sho_Belge_Alt_CikisIade when @dovizcins=2 then sho_Belge_Orj_CikisIade else sho_Belge_Ana_CikisIade end * case when sho_HareketCins in (9,15) then 1.0 else 0.0 end) AS CIKISFIYATFARKI, sum(sho_GirisNormal) AS GIRISMIKTAR FROM dbo.STOK_HAREKETLERI_OZET WITH (NOLOCK) WHERE (sho_StokKodu=@stok_kodu) AND (@depono in (0,sho_Depo)) and sho_MaliYil=@yil and sho_Donem=@ay )AS HT ) END GO
Kullanımı Örnek:
SELECT StokKodu=sto_kod,StokAdi=sto_isim,DonemMaliyeti=dbo.mbt_StokBirimGirisMaliyetiYilveAy(sto_kod,1,0,2020,3) FROM STOKLAR WITH (NOLOCK) ORDER BY sto_isim asc
Tüm Mikro Versiyon 16 Ürünleri için geçerlidir.
Mikro Versiyon 16 Cari Hesap Bakiye Yaşlandırma (Stored Procedure)
CREATE PROCEDURE [dbo].[mbt_sp_Cari_Bakiye_Yaslandirma] ( @CariIlkKod NVARCHAR(25)='', @CariSonKod NVARCHAR(25)='', @CariKodYapisi NVARCHAR(25)='', @RaporTarihi DATETIME=NULL, @HangiHesaplar TINYINT=0 ) AS BEGIN IF @RaporTarihi IS NULL SET @RaporTarihi=dbo.fn_DatePart(GETDATE()) DECLARE @CariKodu NVARCHAR(25), @TmpBakiye FLOAT, @Id UNIQUEIDENTIFIER, @KayitTutar FLOAT, @KapanmamisTutar FLOAT, @Vade DATETIME DECLARE @BakiyeyeKonuKayitlar TABLE ( Id UNIQUEIDENTIFIER, CariKodu NVARCHAR(25), KapanmamisTutar FLOAT, GecikenGun INT ) SELECT TOP 100 PERCENT cha_Guid, cha_kod, cha_tarihi, CHA_VADE_TARIHI, CASE WHEN CHA_CARI_BORC_ALACAK_TIP=0 THEN 1.0 ELSE -1.0 END AS MEBLAG_SIGN, CHA_CARI_MEBLAG_ANA AS TUTAR, CAST(0.0 AS FLOAT) CHA_KAPANAN_MEBLAG INTO #CariHareketler FROM dbo.CARI_HESAP_HAREKETLERI_VIEW_WITH_INDEX_02 WITH (NOLOCK) LEFT OUTER JOIN CARI_HESAPLAR WITH(NOLOCK) ON (cari_kod=cha_kod) WHERE (cha_cari_cins=0) AND (cari_kod >= @CariIlkKod OR @CariIlkKod= N'') AND (cari_kod <= @CariSonKod OR @CariSonKod = N'') AND (cari_kod like @CariKodYapisi+'%') AND (cha_tarihi<=@RaporTarihi) ORDER BY cha_kod,cha_grupno DECLARE CariCursor CURSOR LOCAL READ_ONLY FAST_FORWARD FOR SELECT DISTINCT cha_kod FROM #CariHareketler ORDER BY cha_kod OPEN CariCursor FETCH NEXT FROM CariCursor INTO @CariKodu WHILE @@FETCH_STATUS = 0 BEGIN SELECT @TmpBakiye=SUM(TUTAR*MEBLAG_SIGN) FROM #CariHareketler WHERE cha_kod=@CariKodu IF ((@HangiHesaplar=0 AND @TmpBakiye>0) OR (@HangiHesaplar=1 AND @TmpBakiye<0) OR (@HangiHesaplar=2 AND @TmpBakiye<>0)) BEGIN DECLARE HareketCursor CURSOR LOCAL READ_ONLY FAST_FORWARD FOR SELECT TOP 100 PERCENT cha_Guid, (TUTAR-CHA_KAPANAN_MEBLAG)*MEBLAG_SIGN, CHA_VADE_TARIHI FROM #CariHareketler WHERE (cha_kod=@CariKodu) AND ((@TmpBakiye>0 AND MEBLAG_SIGN>0) OR (@TmpBakiye<0 AND MEBLAG_SIGN<0)) AND (TUTAR>CHA_KAPANAN_MEBLAG) ORDER BY CHA_VADE_TARIHI DESC,cha_tarihi DESC OPEN HareketCursor FETCH NEXT FROM HareketCursor INTO @Id, @KayitTutar, @Vade WHILE @@FETCH_STATUS = 0 AND ABS(@TmpBakiye)>1 BEGIN IF @TmpBakiye>0 SET @KapanmamisTutar = dbo.fn_MIN(@TmpBakiye,@KayitTutar) ELSE SET @KapanmamisTutar = dbo.fn_MAX(@TmpBakiye,@KayitTutar) SET @TmpBakiye = @TmpBakiye - @KapanmamisTutar INSERT INTO @BakiyeyeKonuKayitlar VALUES (@Id,@CariKodu,@KapanmamisTutar,dbo.fn_gunfarkibul(@RaporTarihi,@Vade)) FETCH NEXT FROM HareketCursor INTO @Id, @KayitTutar, @Vade END CLOSE HareketCursor DEALLOCATE HareketCursor END FETCH NEXT FROM CariCursor INTO @CariKodu END CLOSE CariCursor DEALLOCATE CariCursor SELECT TOP 100 PERCENT cari_kod AS [MusteriKodu], cari_unvan1 AS [Unvan], SUM(CASE WHEN GecikenGun<=0 THEN KapanmamisTutar ELSE 0.0 END) AS [VadesiGecenBakiye\T], SUM(CASE WHEN GecikenGun>0 THEN KapanmamisTutar ELSE 0.0 END) AS [VadesiGecmisBakiye\T], SUM(KapanmamisTutar) AS [ToplamBakiye\T], CASE WHEN SUM(KapanmamisTutar)>0 THEN 'Borç' ELSE 'Alacak' END AS [BakiyeTipi], SUM(CASE WHEN GecikenGun BETWEEN -30 AND 0 THEN KapanmamisTutar ELSE 0.0 END) AS [30Gun\T], SUM(CASE WHEN GecikenGun BETWEEN -60 AND -31 THEN KapanmamisTutar ELSE 0.0 END) AS [60Gun\T], SUM(CASE WHEN GecikenGun BETWEEN -90 AND -61 THEN KapanmamisTutar ELSE 0.0 END) AS [90Gun\T], SUM(CASE WHEN GecikenGun BETWEEN -120 AND -91 THEN KapanmamisTutar ELSE 0.0 END) AS [120Gun\T], SUM(CASE WHEN GecikenGun <= -121 THEN KapanmamisTutar ELSE 0.0 END) AS [+120GunUstu\T] FROM @BakiyeyeKonuKayitlar LEFT OUTER JOIN CARI_HESAPLAR WITH (NOLOCK) ON (cari_kod=CariKodu) GROUP BY cari_kod, cari_unvan1 HAVING ROUND(SUM(KapanmamisTutar),2)<>0 ORDER BY cari_kod, cari_unvan1 end GO
Mikro Menü Sorgu Yönetimi için hazırlanacak dosya içeriği
[<
<@P1;NAME=Cari ilk kod,25;TYPE=S;TABLEID=31;FIELDNAME=cari_kod;CHOOSEID=2>
<@P2;NAME=Cari son kod,25;TYPE=S;TABLEID=31;FIELDNAME=cari_kod;CHOOSEID=2>
<@P3;NAME=Cari kod yapısı,25;TYPE=S;TABLEID=31;FIELDNAME=cari_kod;CHOOSEID=2>
<@P4;NAME=Referans tarihi,10;TYPE=T>
<@P5;NAME=Hangi hesaplar,20;TYPE=B;ITEMS=Borçlu hesaplar|0,Alacaklı hesaplar|1,Hepsi|2>
>]
exec dbo.sp_mbt_Cari_Bakiye_Yaslandirma @P1,@P2,@P3,@P4,@P5
Fiyat Listesi Guncelleme
--SQL create FUNCTION [dbo].[mbt_KurusYuvarla2](@sfiyat_fiyati float) RETURNS float AS BEGIN DECLARE @VAL As float set @VAL =@sfiyat_fiyati IF @VAL is NULL SET @VAL=0 RETURN @VAL END CREATE FUNCTION [dbo].[mbt_KurusYuvarla](@sfiyat_fiyati float) RETURNS float AS BEGIN DECLARE @VAL As float set @VAL=( CASE when (@sfiyat_fiyati-cast(@sfiyat_fiyati as INT))*100<25 Then cast(@sfiyat_fiyati as INT)+0.25 when (@sfiyat_fiyati-cast(@sfiyat_fiyati as INT))*100>25 and (@sfiyat_fiyati-cast(@sfiyat_fiyati as INT))*100<50 Then cast(@sfiyat_fiyati as INT)+0.50 when (@sfiyat_fiyati-cast(@sfiyat_fiyati as INT))*100>50 and (@sfiyat_fiyati-cast(@sfiyat_fiyati as INT))*100<75 Then cast(@sfiyat_fiyati as INT)+0.75 when (@sfiyat_fiyati-cast(@sfiyat_fiyati as INT))*100>75 Then cast(@sfiyat_fiyati as INT)+1 else @sfiyat_fiyati end ) IF @VAL is NULL SET @VAL=0 RETURN @VAL END DECLARE @FiyatListesiNo int DECLARE @KaynakFiyatListesiNo int Declare @SezonKodu Nvarchar(5) set @FiyatListesiNo=3 set @KaynakFiyatListesiNo=1 UPDATE STOK_SATIS_FIYAT_LISTELERI SET STOK_SATIS_FIYAT_LISTELERI.sfiyat_fiyati=dbo.[mbt_KurusYuvarla2]((SELECT case when SFL1.sfiyat_fiyati<=21.60 Then round((SFL1.sfiyat_fiyati+4.71)*Cast(Replace(ysn_ismi,',','.') AS float),2) else round((SFL1.sfiyat_fiyati+11.80)*Cast(Replace(ysn_ismi,',','.') AS float),2) end from STOK_SATIS_FIYAT_LISTELERI SFL1,STOK_YILSEZON_TANIMLARI HK WHERE HK.ysn_kodu=S.sto_sezon_kodu and SFL1.sfiyat_stokkod=S.sto_kod and SFL1.sfiyat_listesirano=@KaynakFiyatListesiNo)) from STOKLAR S INNER JOIN STOK_SATIS_FIYAT_LISTELERI SFL ON SFL.sfiyat_stokkod=S.sto_kod INNER JOIN STOK_YILSEZON_TANIMLARI SZ ON S.sto_sezon_kodu=SZ.ysn_kodu and S.sto_sezon_kodu=SZ.ysn_kodu and SFL.sfiyat_listesirano=@FiyatListesiNo and sto_webe_gonderilecek_fl=1 -- yukarıda günceller, aşağıda listeler Select S.sto_kod,S.sto_isim,SFLDIS.sfiyat_listesirano,SFLDIS.sfiyat_fiyati, DegisecekDepo=@FiyatListesiNo, ReferansDepo=@FiyatListesiNo, KaynakDepoFiyati=(SELECT round(SFL1.sfiyat_fiyati*Cast(Replace(ysn_ismi,',','.') AS float),2) from STOK_SATIS_FIYAT_LISTELERI SFL1,STOK_YILSEZON_TANIMLARI HK WHERE HK.ysn_kodu =S.sto_sezon_kodu and SFL1.sfiyat_stokkod=S.sto_kod and SFL1.sfiyat_listesirano=@KaynakFiyatListesiNo), HesaplanmisFiyat=dbo.[mbt_KurusYuvarla2]((SELECT case when SFL1.sfiyat_fiyati<=21.60 Then round((SFL1.sfiyat_fiyati+4.71)*Cast(Replace(ysn_ismi,',','.') AS float),2) else round((SFL1.sfiyat_fiyati+11.80)*Cast(Replace(ysn_ismi,',','.') AS float),2) end from STOK_SATIS_FIYAT_LISTELERI SFL1,STOK_YILSEZON_TANIMLARI HK WHERE HK.ysn_kodu=S.sto_sezon_kodu and SFL1.sfiyat_stokkod=S.sto_kod and SFL1.sfiyat_listesirano=@KaynakFiyatListesiNo)) from STOK_SATIS_FIYAT_LISTELERI SFLDIS,STOKLAR S WHERE SFLDIS.sfiyat_listesirano IN (@FiyatListesiNo,@KaynakFiyatListesiNo) and S.sto_kod=SFLDIS.sfiyat_stokkod and sto_webe_gonderilecek_fl=1 --- BİTTİ --SEPET TESLİM GUNCELLEME DECLARE @FiyatListesiNo int DECLARE @KaynakFiyatListesiNo int Declare @HammaddeKodu Nvarchar(5) set @FiyatListesiNo=2 set @KaynakFiyatListesiNo=1 set @HammaddeKodu='03' -- onemsiz UPDATE STOK_SATIS_FIYAT_LISTELERI SET STOK_SATIS_FIYAT_LISTELERI.sfiyat_fiyati=dbo.[mbt_KurusYuvarla]((SELECT round(SFL1.sfiyat_fiyati*Cast(Replace(ahm_ismi,',','.') AS float),2) from STOK_SATIS_FIYAT_LISTELERI SFL1,STOK_ANAHAMMADDELERI HK WHERE HK.ahm_kodu=S.sto_hammadde_kodu and SFL1.sfiyat_stokkod=S.sto_kod and SFL1.sfiyat_listesirano=@KaynakFiyatListesiNo)) from STOKLAR S INNER JOIN STOK_SATIS_FIYAT_LISTELERI SFL ON SFL.sfiyat_stokkod=S.sto_kod INNER JOIN STOK_ANAHAMMADDELERI HK ON S.sto_hammadde_kodu=HK.ahm_kodu and S.sto_hammadde_kodu=HK.ahm_kodu and SFL.sfiyat_listesirano=@FiyatListesiNo -- yukarıda günceller, aşağıda listeler Select S.sto_kod,S.sto_isim,SFLDIS.sfiyat_listesirano,SFLDIS.sfiyat_fiyati, DegisecekDepo=@FiyatListesiNo, ReferansDepo=@FiyatListesiNo, KaynakDepoFiyati=(SELECT round(SFL1.sfiyat_fiyati*Cast(Replace(ahm_ismi,',','.') AS float),2) from STOK_SATIS_FIYAT_LISTELERI SFL1,STOK_ANAHAMMADDELERI HK WHERE HK.ahm_kodu=S.sto_hammadde_kodu and SFL1.sfiyat_stokkod=S.sto_kod and SFL1.sfiyat_listesirano=@KaynakFiyatListesiNo), HesaplanmisFiyat=dbo.[mbt_KurusYuvarla]((SELECT round(SFL1.sfiyat_fiyati*Cast(Replace(ahm_ismi,',','.') AS float),2) from STOK_SATIS_FIYAT_LISTELERI SFL1,STOK_ANAHAMMADDELERI HK WHERE HK.ahm_kodu=S.sto_hammadde_kodu and SFL1.sfiyat_stokkod=S.sto_kod and SFL1.sfiyat_listesirano=@KaynakFiyatListesiNo)) from STOK_SATIS_FIYAT_LISTELERI SFLDIS,STOKLAR S WHERE SFLDIS.sfiyat_listesirano IN (@FiyatListesiNo,@KaynakFiyatListesiNo) and S.sto_kod=SFLDIS.sfiyat_stokkod --and S.sto_hammadde_kodu=@HammaddeKodu
Sipariş ve Teslim durumları Raporu
SELECT s.sip_tarih AS [Sipariş Tarihi], s.sip_evrakno_seri + '-' + CAST(s.sip_evrakno_sira AS VARCHAR) AS [Sipariş Evrak No], s.sip_teslim_tarih AS [Teslim Tarihi], st.sth_tarih AS [İrsaliye Tarihi], DATEDIFF(DAY, s.sip_teslim_tarih, ISNULL(st.sth_tarih, GETDATE())) AS [Gün Fark], dbo.fn_CarininIsminiBul(0, s.sip_musteri_kod) AS [Müşteri Unvanı], dbo.fn_StokIsmi(s.sip_stok_kod) AS [Stok Adı], s.sip_miktar AS [Sipariş Miktar], sip_teslim_miktar AS [Teslim Edilen], s.sip_b_fiyat AS [Birim Fiyat], CASE WHEN sip_kapat_fl = 1 THEN (sip_miktar - sip_teslim_miktar) ELSE 0.0 END AS [VAZGEÇİLEN MİKTAR], CASE WHEN sip_kapat_fl = 0 THEN (sip_miktar - sip_teslim_miktar) ELSE 0.0 END AS [KALAN MİKTAR], STOKLAR.sto_marka_kodu , dbo.fn_CarininIsminiBul(1, s.sip_satici_kod) AS [Temsilci] FROM SIPARISLER AS s INNER JOIN STOKLAR ON s.sip_stok_kod = STOKLAR.sto_kod LEFT OUTER JOIN STOK_HAREKETLERI AS st ON s.sip_Guid = st.sth_sip_uid WHERE (s.sip_tip = 0)
Eldeki Miktarlar Renk Kırılımlı
SELECT TOP (100) PERCENT STOKLAR.sto_Guid AS StokGuid, STOKLAR.sto_kod AS StokKodu, STOKLAR.sto_isim AS StokAdi, STOK_RENK_TANIMLARI.rnk_kirilim_1 AS [RENK 1], STOK_RENK_TANIMLARI.rnk_kirilim_2 AS [RENK 2], STOK_RENK_TANIMLARI.rnk_kirilim_3 AS [RENK 3], STOK_RENK_TANIMLARI.rnk_kirilim_4 AS [RENK 4], STOK_RENK_TANIMLARI.rnk_kirilim_5 AS [RENK 5], dbo.fn_StokSatisFiyati(STOKLAR.sto_kod, 1, 0,1) AS [Satış Fiyatı], dbo.fn_DovizIsmi(dbo.fn_StokFiyatDovizCinsi(STOKLAR.sto_kod, 1, 0,1)) AS [Döviz Tipi], dbo.fn_EldekiMiktar(STOKLAR.sto_kod) AS EldekiToplamMiktar FROM STOKLAR LEFT OUTER JOIN STOK_RENK_TANIMLARI WITH (NOLOCK) ON STOKLAR.sto_renk_kodu = STOK_RENK_TANIMLARI.rnk_kodu ORDER BY StokKodu, STOK_RENK_TANIMLARI.rnk_kodu
Tek Ekranda Kasa ve Banka Bakiye Raporu
select Kasa_Kodu=kas_kod,KasaAdi=kas_isim,KasaTipi=dbo.fn_KasaTipi(kas_tip),BankaKodu=kas_bankakodu,Meblag=sum( (CASE WHEN cha_tip=0 Then -1*cha_meblag else cha_meblag end )),DovizCinsi=dbo.fn_DovizIsmi(kas_doviz_cinsi) from CARI_HESAP_HAREKETLERI, KASALAR WHERE kas_kod=cha_kasa_hizkod group by kas_kod,kas_isim,kas_tip,kas_bankakodu,kas_doviz_cinsi UNION SELECT Kasa_Kodu=ban_muh_kod,KasaAdi=ban_TCMB_Kodu,KasaTipi=dbo.fn_BankaMevduatCinsi(ban_mevduat_tip),BankaKodu=ban_TCMB_Kodu,Meblag=sum( (CASE WHEN cha_tip=0 Then -1*cha_meblag else cha_meblag end )),DovizCinsi=dbo.fn_DovizIsmi(ban_doviz_cinsi) FROM CARI_HESAP_HAREKETLERI,BANKALAR WHERE ban_muh_kod=cha_kasa_hizkod group by ban_muh_kod,ban_TCMB_Kodu,ban_mevduat_tip,ban_doviz_cinsi
Mikroda yapılmış bir sayımı Dinamik Depo Sayımına Aktarma işlemi
INSERT INTO MBTSAYIMLAR (TERMINALNO,KULLANICIADI,EVRAKSERI,EVRAKSIRA,TARIH,KAYITZAMANI,GUNCELLEMEZAMANI,DEPONO,STOKKODU,PARTIKODU,LOTNO,SERINUMARASI,MIKTAR,SIRANO,BAGLISATIRID,ADRESKODU,OKUTULANBARKOD,TAKIPNOANA,TAKIPNO,EVRAKTIPI,GIRISCIKISTIPI,NORMALIADE,AKTIF,BEDENKODU,BEDENNUMARASI,ONAY) SELECT 99,1903,'',20210812,'2021-08-12 00:00:00.000',sym_create_date,sym_lastup_date,sym_depono,sym_Stokkodu,sym_parti_kodu,sym_lot_no,sym_serino,sym_miktar1,sym_satirno,'0','40',sym_barkod,'','','SAYIM','','NORMAL',1,sto_beden_kodu,sym_bedenno,1 FROM SAYIM_SONUCLARI,STOKLAR WHERE sym_Stokkodu=sto_kod AND sym_evrakno= 1 and sym_tarihi='2021-08-12 00:00:00.000' and sym_depono=40
--UNIQUE ETIKET TASARIMI SORGU SELECT TOP 1 StokKodu=S.sto_kod,StokAdi=S.sto_isim,KisaIsmi=S.sto_kisa_ismi,StokYabanci=S.sto_yabanci_isim,SKT=PL.pl_son_kullanim_tar,IsEmriNo=ETK.ISEMRINO,PartiKodu=PL.pl_partikodu,LotNo=PL.pl_lotno,IsSeri=IE.is_SiparisNo_Seri,IsSira=IE.is_SiparisNo_Sira ,MusteriKodu=CH.cari_kod,Unvan=CH.cari_unvan1,SiparisNo=(SIP.sip_evrakno_seri +'-' +cast(SIP.sip_evrakno_sira as nvarchar(10))),UniqueEtiket=ETK.BARKODTEK,KoliMiktari=ETK.KUTUMIKTARI,PartiAciklama=PL.pl_aciklama,Birim1=S.sto_birim1_ad,Birim2=S.sto_birim2_ad ,Birim3=S.sto_birim3_ad,Birim4=S.sto_birim4_ad,Birim1Katsayi=S.sto_birim1_katsayi,Birim2Katsayi=S.sto_birim2_katsayi,Birim3Katsayi=S.sto_birim3_katsayi,Birim4Katsayi=S.sto_birim4_katsayi ,Barkod1=(SELECT TOP 1 bar_kodu FROM BARKOD_TANIMLARI where bar_stokkodu=S.sto_kod and bar_birimpntr=1),UretimTarihi=Pl.pl_uretim_tar,UretimTarihiSaat=PL.pl_create_date ,PaletNo=ETK.PALETNO FROM ZZZ_MBTETIKETLERIMIZ ETK,STOKLAR S,PARTILOT PL,ISEMIRLERI IE,SIPARISLER SIP,CARI_HESAPLAR CH WHERE ETK.STOKKODU=S.sto_kod AND ETK.PARTIKODU= PL.pl_partikodu AND ETK.LOTNO=PL.pl_lotno AND S.sto_kod=PL.pl_stokkodu and IE.is_Kod=ETK.ISEMRINO AND IE.is_SiparisNo_Seri=SIP.sip_evrakno_seri and IE.is_SiparisNo_Sira=SIP.sip_evrakno_sira AND CH.cari_kod=SIP.sip_musteri_kod and SIp.sip_tip=0 AND ETK.BARKODTEK='1000001' --AND ETK.BARKODTEK='#BARKODTEKNUMBER#' Partilot Etiketi Örnek Sorgu SELECT TOP 1 StokBarkodu=(SELECT TOP 1 bar_kodu FROM BARKOD_TANIMLARI WHERE bar_stokkodu=sto_kod),PartiLotBarkodu = (PL.pl_stokkodu +';'+PL.pl_partikodu +';'+ CAST(PL.pl_lotno as nvarchar(50))),StokKodu=S.sto_kod,StokAdi=S.sto_isim,StokYabanciAdi=S.sto_yabanci_isim ,PartiKodu=PL.pl_partikodu,LotNo=PL.pl_lotno,UretimTarihi=PL.pl_uretim_tar,SKT=PL.pl_son_kullanim_tar,PLOlusturanKullanıcı=PL.pl_create_user,PLGuncelleyenKullanici=PL.pl_lastup_user ,PLOlusturanIsım=dbo.fn_KullaniciUzunAdi(pl_create_user),PLGuncelleyenKullaniciIsim=dbo.fn_KullaniciUzunAdi(pl_lastup_user) ,Birim1=S.sto_birim1_ad,Birim2=sto_birim2_ad,Birim3=sto_birim3_ad,ETK.MIKTAR ,Birim1Katsayi =(case when sto_birim1_katsayi<>0 Then ETK.MIKTAR*S.sto_birim1_katsayi else 0 end) ,Birim2Katsayi =(case when sto_birim2_katsayi<>0 Then (-1*ETK.MIKTAR*S.sto_birim1_katsayi/S.sto_birim2_katsayi) else 0 end) ,Birim3Katsayi =(case when sto_birim3_katsayi<>0 Then (-1*ETK.MIKTAR*S.sto_birim1_katsayi/S.sto_birim3_katsayi) else 0 end) FROM PARTILOT PL,STOKLAR S,MBTETIKETLER ETK WHERE ETK.STOKKODU=PL.pl_stokkodu AND ETK.PARTIKODU=PL.pl_partikodu AND PL.pl_lotno=ETK.LOTNO AND ETK.AKTIF=1 AND S.sto_kod=PL.pl_stokkodu AND S.sto_kod='01.01.003' AND PL.pl_partikodu='NRT / T' and PL.pl_lotno=1 --and S.sto_kod='#PRODUCTCODE#' AND PL.pl_partikodu='#PARTYNUMBER#' and PL.pl_lotno='#LOTNUMBER#' ORDER BY ETK.ID asc