if not exists (select * from dbo.syscolumns where id = object_id(N'Rapor') and name=N'Degistirilemez') begin ALTER TABLE Rapor add Degistirilemez tinyint end ------------------------------------------ if not exists (select * from dbo.syscolumns where id = object_id(N'EtiketBarkod') and name=N'Yazdirildi') begin ALTER TABLE EtiketBarkod add Yazdirildi tinyint end ---------------------------------------- if exists (select * from sys.procedures where name='sp_mb_XML_Customer_List_delphi') drop proc sp_mb_XML_Customer_List_delphi ------------------------------------------------------------------------------ create procEDURE [dbo].[sp_mb_XML_Customer_List_delphi] @IslemNo nvarchar(30) AS ;with Islemler as ( SELECT STK.IslemNo,STK.FaturaNo FROM STOKHAR DD JOIN STOKHARDETBAG STK ON DD.IslemNo=STK.IslemNo WHERE @IslemNo IN (DD.IslemNo,DD.IslemNo3)-- ) , Irsaliye as( SELECT replace( replace( ( SELECT distinct S.IrsNo from Islemler STK cross apply STOKHARDETBAG S WHERE S.FaturaNo=STK.FaturaNo and (S.IslemNo !=STK.IslemNo) AND ISNULL(S.IrsNo,'')!='' AND S.IrsNo!=STK.FaturaNo ORDER BY S.IrsNo asc FOR XML PATH('') ) ,'',''),'','--') AS IrsaliyeNo) SELECT top 1 AMUSTERI.MUSVERNO as "VERGI_NO", AMUSTERI.MUSVERGI AS "VERGI_DAIRESI", -- '7230055623' as "VERGI_NO", -- '2234567890' AS "VERGI_NO", --'1234567801' AS "VERGI_NO", -- AMUSTERI.TCKimlikNo AS "VERGI_NO", null as "KAPI_NO", AMUSTERI.MUSADRES2 as "SOKAK_ADI", null as "BINA_ADI", null as "BINA_NO", AMUSTERI.MUSILCE as "ILCE", AMUSTERI.MUSIL as "IL", null as "POSTA_KODU", AMUSTERI.MUSADRES1 as "MAHALLE", null as "ULKE_ADI", Adres.VergiDairesi as "VERGI_DA", AMusteri1.email_1 AS "EPOSTA", Adres.Tel1 as "TEL_NO", Adres.Faks as "FAKS", AMusteri1.WebAdresi_1 as "WEB_SITE", AMUSTERI.MUSADI as "UNVANI", CASE WHEN LEN(AMUSTERI.MUSVERNO)>10 THEN AMusteri1.KimlikAdi ELSE AMUSTERI.MUSADI END AS "ADI", CASE WHEN LEN(AMUSTERI.MUSVERNO)>10 THEN AMusteri1.KimlikSoyAdi ELSE '' END AS "SOYADI", -- 'urn:mail:defaultpk@pasaogluyumurta.com' AS "ETIKET" , AMusteri1.email_1 AS "ETIKET", RIGHT('0000000000' + CONVERT(VARCHAR,STK.FaturaNo), 9) as "EFATURA_NO", ( SELECT IrsaliyeNo FROM Irsaliye ) "IRSALIYE_NO", CASE WHEN ISNULL (DD.Kdv,0)=0 AND STK.OzelKod1='31' AND STK.YazarKasaFisNo<>2 and STK.EF_ISTISNA=0 THEN '351;Vergiden muaf.' WHEN ISNULL (DD.Kdv,0)=0 AND STK.OzelKod1='31' AND STK.YazarKasaFisNo=2 and STK.EF_ISTISNA=0 THEN '11/1-a Mal ihracatı' when SUBSTRING(ISNULL(OzelKod1,'00'), 1, 1)=3 and ISNULL (DD.Kdv,0)=0 and STK.EF_ISTISNA=0 then '701;11/1-c md. Kapsamındaki İhraç Kayıtlı Satış' when DD.TopTutar=0 and STK.EF_ISTISNA=0 then '351;KısmiBedelsiz' WHEN ISNULL (DD.Kdv,0)=0 and ISNULL(STK.EF_ISTISNA,0)=0 THEN (SELECT Deger FROM Parametre WHERE Param='eFaturaMuafiyetAciklama') ELSE (SELECT top 1 MuafiyetKodu+';'+MuafiyetAciklamasi FROM StokVergiMuafiyetleri WHERE MuafiyetKodu= STK.EF_ISTISNA ) END AS "MUAFIYET", --(SELECT CONVERT(VARCHAR,DEGISKEN_KODU)+'-'+DEGISKEN_ADI FROM EF_DEGISKENLER WHERE DEGISKEN_KODU=STK.EF_ISTISNA) AS "MUAFIYET", STK.UUID, STK.Ack1 AS "ACIKLAMA1", STK.Ack2 AS "ACIKLAMA2", STK.Ack3 AS "ACIKLAMA3", STK.Ack4 as "ACIKLAMA4", CASE YazarKasaFisNo WHEN 1 THEN 'TEMELFATURA' WHEN 2 THEN 'IHRACAT' ELSE 'TICARIFATURA' END "FATURA_TUR", CASE SUBSTRING(ISNULL(OzelKod1,'00'), 1, 1) WHEN 0 THEN 'SATIS' WHEN 1 THEN 'TEVKIFAT' WHEN 2 THEN 'IADE' WHEN 3 THEN 'IHRACKAYITLI' WHEN 4 THEN 'ISTISNA' else case when STK.FaturaTipi=5 then 'SATIS' end END AS "SATIS_TUR", SUBSTRING(ISNULL(OzelKod1,'00'), 2, 1) AS "ILETIM_TUR", CASE WHEN STK.AltIskYuzde1 >0 THEN 'Alt iskonto oranları : ' +CONVERT(VARCHAR,STK.AltIskYuzde1) ELSE NULL END + CASE WHEN STK.AltIskYuzde2 >0 THEN + '|'+CONVERT(VARCHAR,STK.AltIskYuzde2) ELSE NULL END + CASE WHEN STK.AltIskYuzde3 >0 THEN + '|'+CONVERT(VARCHAR,STK.AltIskYuzde3) ELSE NULL END as "ALT_ISKONTO_ACIKLAMA", DOVIZT.IsoKodu AS "DOVIZ_KODU", CASE WHEN STK.Tutar=0 AND STK.DovizTut=0 THEN (DD.SonTutar/DD.SonTutarDov) ELSE(STK.Tutar/STK.DovizTut) END AS "DOVIZ_CARPAN", case when Adres.eFaturaMukellefimi='true' then 1 else 0 end EFatura , AMUSTERI.MUSNO CariNo --AMusteri1.email_1 as "ETIKT" --'urn:mail:defaultpk@testkurumelpo.com.tr' AS "ETIKET" --ISNULL(AMusteri1.KimlikAdi,'AD') as "ADI", --ISNULL(AMusteri1.KimlikSoyAdi,'SOYAD') as "SOYADI" FROM STOKHAR DD JOIN STOKHARDETBAG STK ON DD.IslemNo=STK.IslemNo INNER JOIN AMUSTERI ON STK.CariKodu=AMUSTERI.MUSKOD INNER JOIN Adres ON AMUSTERI.MUSNO = Adres.CariNo INNER JOIN AMusteri1 ON AMusteri1.CariNo=AMUSTERI.MUSNO INNER JOIN DOVIZT ON DOVIZT.NoId=STK.DovizCinsi --INNER JOIN FatAciklama on FatAciklama.IslemNo2=STK.IslemNo WHERE @IslemNo in (DD.IslemNo,DD.IslemNo3); ---------------------------------------------------- if exists (select * from sys.procedures where name='sp_AlisStokKarti') drop proc sp_AlisStokKarti --------------------------------------------------------------------------------------------------- create proc [dbo].[sp_AlisStokKarti](@Kodu nvarchar(30),@UreticiKodu nvarchar(30),@Adi nvarchar(40), @Adi2 nvarchar(40),@Birim nvarchar(5),@Kdv decimal,@Deger nvarchar(max), @VergiNo nvarchar(50),@Barkod nvarchar(16),@InvoiceItemId int,@DovizKodu nvarchar(10)) as begin declare @No int =0,@error nvarchar(50),@message nvarchar(500) ,@BrmFiyat float ,@StokFytAd nvarchar(10) Declare @F1F float; Declare @F2F float; Declare @F3F float; Declare @F4F float; declare @kdvD nvarchar(1)=(select case when @Kdv>0 then 'H' else 'D' end) select @No= isnull(StokNo,0),@Kodu=Kodu,@Adi= StokAdi from STOKKARTI where Kodu=@Kodu set @StokFytAd=convert(nvarchar(10),@Adi) select @BrmFiyat=PriceAmount from InvoiceLineType where Id=@InvoiceItemId if(@No>0) begin update STOKKARTI set StokNo=@No,F1Fiyat=@BrmFiyat,F1DovizKodu=@DovizKodu,AlisKdv=@Kdv where NoId=@No Set @F1F = @BrmFiyat Set @F2F = @BrmFiyat Set @F3F = @BrmFiyat Set @F4F = @BrmFiyat if (@kdvD='D') Set @F1F = @F1F * (@Kdv +100)/100 if (@kdvD='D') Set @F2F = @F2F * (@Kdv+100)/100 if (@kdvD='D') Set @F3F = @F3F * (@Kdv+100)/100 if (@kdvD='D') Set @F4F = @F4F * (@Kdv+100)/100 if(not exists (select 1 from StokFiyat where Kodu=@Kodu)) begin INSERT into StokFiyat (Kodu, F1Adi, F2Adi, F3Adi, F4Adi, F1Fiyat, F2Fiyat, F3Fiyat, F4Fiyat, KULNO, KULADI, F1DovizKodu, F2DovizKodu, F3DovizKodu, F4DovizKodu, F1FiyatH, F2FiyatH, F3FiyatH, F4FiyatH, SatisKdv, StokNo) values( @Kodu,@StokFytAd,@StokFytAd,@StokFytAd,@StokFytAd, @BrmFiyat,@BrmFiyat,@BrmFiyat,@BrmFiyat, 1,'Admin',@DovizKodu,@DovizKodu,@DovizKodu,@DovizKodu, @F1F,@F2F,@F3F,@F4F, @Kdv,@No) end end if(@No<=0) begin begin try set @Birim=(select case when isnull(@Birim,'') ='' then 'ADET' else @Birim end) insert into STOKKARTI(Kodu,UreticiFirmaKodu,StokAdi,StokAdi2,AnaBirim,Barkodu,AlisKdv,KULNO,TP, AktifPasif) VALUES(@Kodu,@UreticiKodu,@Adi,@Adi2,@Birim,@Barkod,@Kdv,1,'TS','A') set @No=@@IDENTITY update STOKKARTI set StokNo=@No,F1Fiyat=@BrmFiyat,F1DovizKodu=@DovizKodu,AlisKdv=@Kdv where NoId=@No end try begin catch set @No=-1 select @error = ERROR_NUMBER(), @message = ERROR_MESSAGE() end catch if(@No>0) begin update InvoiceItemMap set OurCode=@Kodu where SenderIndentifier= @VergiNo and ( SenderItemValue =case SenderItemKey when 'B' then @Deger when 'S' then @Deger when 'M' then @Deger when 'D' then @Deger when 'N' then @Deger end ) Set @F1F = @BrmFiyat Set @F2F = @BrmFiyat Set @F3F = @BrmFiyat Set @F4F = @BrmFiyat if (@kdvD='D') Set @F1F = @F1F * (@Kdv +100)/100 if (@kdvD='D') Set @F2F = @F2F * (@Kdv+100)/100 if (@kdvD='D') Set @F3F = @F3F * (@Kdv+100)/100 if (@kdvD='D') Set @F4F = @F4F * (@Kdv+100)/100 if(not exists (select 1 from StokFiyat where Kodu=@Kodu)) begin INSERT into StokFiyat (Kodu, F1Adi, F2Adi, F3Adi, F4Adi, F1Fiyat, F2Fiyat, F3Fiyat, F4Fiyat, KULNO, KULADI, F1DovizKodu, F2DovizKodu, F3DovizKodu, F4DovizKodu, F1FiyatH, F2FiyatH, F3FiyatH, F4FiyatH, SatisKdv, StokNo) values ( @Kodu,@StokFytAd,@StokFytAd,@StokFytAd,@StokFytAd, @BrmFiyat,@BrmFiyat,@BrmFiyat,@BrmFiyat, 1,'Admin',@DovizKodu,@DovizKodu,@DovizKodu,@DovizKodu, @F1F,@F2F,@F3F,@F4F, @Kdv,@No ) end select StokNo,Kodu,StokAdi from STOKKARTI where StokNo=@No end else select @No StokNo,@error Kodu ,@message StokAdi end else update InvoiceItemMap set OurCode=@Kodu where SenderIndentifier= @VergiNo and ( SenderItemValue =case SenderItemKey when 'B' then @Deger when 'S' then @Deger when 'M' then @Deger when 'D' then @Deger when 'N' then @Deger end ) select @No StokNo,@Kodu Kodu ,@Adi StokAdi end ------------------------------------------------------------------ if exists (select * from sys.procedures where name='sp_GridViewKullaniciAktar') drop proc sp_GridViewKullaniciAktar --------------------------------------------------------------------------------------------------- CREATE PROCEDURE [dbo].[sp_GridViewKullaniciAktar] @KaynakKullaniciNo int, @HedefKullaniciNo int, @KaynakVeritani nvarchar(50) AS BEGIN DECLARE @Sql nvarchar(max); SET @Sql = ' BEGIN TRANSACTION BEGIN TRY EXEC dbo.sp_GridViewSil @HedefKullaniciNo; INSERT INTO GridView (KayitIsmi, KullaniciNo, Duzen, GirdAdi, YaziTipi, YaziTipiStili, YaziTipiBoyutu, YaziTipiRengi) SELECT KayitIsmi, @HedefKullaniciNo, Duzen, GirdAdi, YaziTipi, YaziTipiStili, YaziTipiBoyutu, YaziTipiRengi FROM @KaynakVeritani.dbo.GridView AS GridView_1 where KullaniciNo = @KaynakKullaniciNo COMMIT END TRY BEGIN CATCH ROLLBACK END CATCH '; Set @Sql = REPLACE(@Sql,'@KaynakVeritani',@KaynakVeritani); Set @Sql = REPLACE(@Sql,'@HedefKullaniciNo',@HedefKullaniciNo); Set @Sql = REPLACE(@Sql,'@KaynakKullaniciNo',@KaynakKullaniciNo); exec sp_executesql @Sql; END ----------------------------------------------------------------- if exists (select * from sys.procedures where name='spEtiketBarkodMiktaraGoreYazdir') drop proc spEtiketBarkodMiktaraGoreYazdir --------------------------------------------------------------------------------------------------- create procedure spEtiketBarkodMiktaraGoreYazdir(@kullaniciNo int,@EkSql nvarchar(max)) as begin declare @strSql nvarchar(max) set @strSql=''; if @kullaniciNo=0 set @strSql=@strSql+' select * into #tmpEtiketBarkod from EtiketBarkod where StokNo is not null '+@EkSql; else set @strSql=@strSql+' select * into #tmpEtiketBarkod from EtiketBarkod where StokNo is not null '+@EkSql+' and KullaniciNo='+convert(varchar,@kullaniciNo)+''; set @strSql=@strSql+' declare @TEtiketBarkod table (NoId int ,StokNo int,StokKodu varchar(50),StokAdi varchar(500),Barkodu varchar(50),Miktari float,Fiyat float,KullaniciNo int ,KayitTarihi datetime,OzelKod varchar(50),Yazdirildi tinyint,ROWNUM int) '+ ' declare @toplamKayit int '+ ' declare @sayi int '+ ' declare @MiktarDetay int '+ ' declare @sayiDetay int '+ ' declare @stokNo int '+ ' declare @NoId int '+ ' declare @stokKodu varchar(50) '; set @strSql=@strSql+' set @toplamKayit=(select count(*) FROM #tmpEtiketBarkod ) '; set @strSql=@strSql+' set @sayi=0 '+ ' while @sayi<@toplamKayit '+ ' begin '+ ' if (select count(*) from #tmpEtiketBarkod)=0 '+ ' break '+ ' select top 1 @stokNo=StokNo,@stokKodu=StokKodu,@NoId=NoId,@MiktarDetay=SUM(Miktari) '+ ' from #tmpEtiketBarkod '+ ' group by StokNo,StokKodu,NoId '+ ' set @sayiDetay=0 '+ ' while @sayiDetay<@MiktarDetay begin '+ ' insert into @TEtiketBarkod(NoId,StokNo,StokKodu,StokAdi,Barkodu,Miktari,Fiyat,KullaniciNo,KayitTarihi,OzelKod,Yazdirildi,ROWNUM) '+ ' select top 1 NoId,StokNo,StokKodu,StokAdi,Barkodu,1 as Miktari,Fiyat,KullaniciNo,KayitTarihi,OzelKod,0 as Yazdirildi, '+ ' (@sayiDetay+1) as ROWNUM from #tmpEtiketBarkod '+ ' where StokNo=@stokNo and StokKodu=@stokKodu and NoId=@NoId '+ ' set @sayiDetay=@sayiDetay+1; '+ ' end '+ ' delete from #tmpEtiketBarkod where StokNo=@stokNo and StokKodu=@stokKodu and NoId=@NoId '+ ' set @sayi=@sayi+1; '+ ' end '+ ' drop table #tmpEtiketBarkod '+ ' Select Etiket.* '+ ',STOKKARTI.*,StokFiyat.*, '+ ' UlkeKoduAciklama=(select top 1 Aciklama from GRUP where GrupAdi=STOKKARTI.UlkeKodu) '+ ' FROM @TEtiketBarkod as Etiket '+ ' left join STOKKARTI on STOKKARTI.Kodu=Etiket.StokKodu '+ ' left join StokFiyat on StokFiyat.StokNo=Etiket.StokNo and StokFiyat.Kodu=Etiket.StokKodu '; exec(@strSql) end ----------------------------------------------------------------------------- if exists (select * from sys.procedures where name='sp_TabloVerileriniEsitle') drop proc sp_TabloVerileriniEsitle --------------------------------------------------------------------------------------------------- create sp_TabloVerileriniEsitle (@KaynakDB varchar(50), @HedefDB varchar(50), @tablename varchar(100),@BagAlan varchar(100)) --emrahozmen@yahoo.com © 20 Nisan 2021 as begin declare @mevcut varchar(50) set @mevcut = @KaynakDB declare @aktarilan varchar(50) set @aktarilan = @HedefDB declare @updatesql varchar(max) declare @insertsql varchar(max) declare @noid int declare @maxnoid int declare @xnoid int declare @pkey varchar(50) declare @mesaj varchar(250) set @mesaj = '' declare @hcc int set @hcc=0 declare @up_c int set @up_c=0 declare @in_c int set @in_c=0 Declare @rc int Declare @tsql nvarchar(max) Declare @eksikalan nvarchar(200) set @eksikalan ='' set @updatesql='' set @insertsql='' select @maxnoid=max(X.ORDINAL_POSITION) from (SELECT ORDINAL_POSITION,COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @tablename)X, (SELECT name,is_identity FROM sys.columns WHERE object_id = OBJECT_ID(@tablename) AND name <> 'ColumnName')Y where X.COLUMN_NAME = Y.name and Y.is_identity = 0 select @pkey=name FROM sys.columns WHERE object_id = OBJECT_ID(@tablename) AND [name] <> 'ColumnName' and is_identity = 1 Set @tsql='select @rc=count(X.COLUMN_NAME) from (SELECT COLUMN_NAME FROM ['+@mevcut+'].INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '''+@tablename+''' )X left join (SELECT COLUMN_NAME FROM ['+@aktarilan+'].INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '''+@tablename+''')Y on Y.COLUMN_NAME = X.COLUMN_NAME where Y.COLUMN_NAME is null' exec sp_executesql @tsql, N'@rc int output', @rc output; Set @hcc = @rc if (@hcc = 0) begin set @noid=0 declare @xs varchar(100) while (@noid<@maxnoid) begin select @xnoid=X.ORDINAL_POSITION,@xs=X.COLUMN_NAME from (SELECT ORDINAL_POSITION,COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @tablename)X, (SELECT name,is_identity FROM sys.columns WHERE object_id = OBJECT_ID(@tablename) AND [name] <> 'ColumnName')Y where X.COLUMN_NAME = Y.name and Y.is_identity = 0 and X.ORDINAL_POSITION > @noid order by X.ORDINAL_POSITION desc set @updatesql += ' h.'+ @xs +'= m.'+ @xs set @insertsql += @xs set @noid = @xnoid if (@noid<@maxnoid) begin set @updatesql = @updatesql + ',' set @insertsql = @insertsql + ',' end --print @xnoid --print 'xs='+@xs end; set @updatesql = 'update h set '+ @updatesql+ ' from ['+@aktarilan+'].dbo.'+@tablename +' h inner join ['+ @mevcut+'].dbo.'+@tablename+' m on h.'+@BagAlan+' = m.'+@BagAlan +' where m.'+@pkey+' = ' set @insertsql = 'insert into ['+@aktarilan+'].dbo.'+@tablename +' ('+ @insertsql+') Select '+@insertsql+' from ['+@mevcut+'].dbo.'+@tablename+' where '+@pkey+' = ' --print 'update sql='+@updatesql --print 'insert sql='+@insertsql set @tsql = 'select @maxnoid=max('+@pkey+') from ['+@mevcut+'].dbo.'+@tablename exec sp_executesql @tsql, N'@maxnoid int output', @maxnoid output; set @noid=0 set @xnoid=0 --print 'maxnoid='+cast(@maxnoid as varchar(10)) while (@noid<@maxnoid) begin Set @tsql = 'select @xnoid = '+@pkey+' from ['+@mevcut+'].dbo.'+@tablename +' where '+@pkey+' > '+cast(@noid as varchar(10))+' order by '+@pkey+ ' desc' --print @tsql; exec sp_executesql @tsql,N'@xnoid int output', @xnoid output; --print 'xnoid='+cast(@xnoid as varchar(10)) exec(@updatesql+@xnoid) set @rc=@@ROWCOUNT --print 'rc='+cast(@rc as varchar(10)) if (@rc=0) begin --print 'insertsql= '+@insertsql+cast(@xnoid as varchar(10)) exec(@insertsql+@xnoid) set @in_c+=1 end else set @up_c+=1 set @noid = @xnoid end end else begin Set @tsql='select @eksikalan=X.COLUMN_NAME from (SELECT COLUMN_NAME FROM ['+@mevcut+'].INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '''+@tablename+''' )X left join (SELECT COLUMN_NAME FROM ['+@aktarilan+'].INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '''+@tablename+''')Y on Y.COLUMN_NAME = X.COLUMN_NAME where y.COLUMN_NAME is null' exec sp_executesql @tsql, N'@eksikalan nvarchar(200) output', @eksikalan output; set @mesaj = 'Alanlar Farklı, Eksik alan sayisi = '+cast(@hcc as varchar(5)) +', ilk eksik alan = '+@eksikalan+', işlem yapılmadı' end select @up_c as 'UpdateKayit',@in_c as 'InsertKayit',@in_c+@up_c as 'ToplamIslem', @mesaj as 'sonuc' end ---------------------------------------------------------------------------------------------------- if not exists (select * from YetkiTanimlari where YetkiNo=1040 and GrupAdi='Perakende İşlemler' and YetkiAdi='Hızlı Perakende Dövizli Tutarları Görebilsin') insert into YetkiTanimlari(YetkiNo,GrupAdi,YetkiAdi) values (1040,'Perakende İşlemler','Hızlı Perakende Dövizli Tutarları Görebilsin') ------------------------------------------------------------------------------------------------------ if exists (select * from sys.procedures where name='sp_mb_XML_Customer_List_delphi') drop proc sp_mb_XML_Customer_List_delphi --------------------------------------------------------------------------------------------------- CREATE procEDURE [dbo].[sp_mb_XML_Customer_List_delphi] @IslemNo nvarchar(30) AS SELECT top 1 AMUSTERI.MUSVERNO as "VERGI_NO", AMUSTERI.MUSVERGI AS "VERGI_DAIRESI", -- '7230055623' as "VERGI_NO", -- '2234567890' AS "VERGI_NO", --'1234567801' AS "VERGI_NO", -- AMUSTERI.TCKimlikNo AS "VERGI_NO", null as "KAPI_NO", AMUSTERI.MUSADRES2 as "SOKAK_ADI", null as "BINA_ADI", null as "BINA_NO", AMUSTERI.MUSILCE as "ILCE", AMUSTERI.MUSIL as "IL", null as "POSTA_KODU", AMUSTERI.MUSADRES1 as "MAHALLE", null as "ULKE_ADI", Adres.VergiDairesi as "VERGI_DA", AMusteri1.email_1 AS "EPOSTA", Adres.Tel1 as "TEL_NO", Adres.Faks as "FAKS", AMusteri1.WebAdresi_1 as "WEB_SITE", AMUSTERI.MUSADI as "UNVANI", CASE WHEN LEN(AMUSTERI.MUSVERNO)>10 THEN AMusteri1.KimlikAdi ELSE AMUSTERI.MUSADI END AS "ADI", CASE WHEN LEN(AMUSTERI.MUSVERNO)>10 THEN AMusteri1.KimlikSoyAdi ELSE '' END AS "SOYADI", -- 'urn:mail:defaultpk@pasaogluyumurta.com' AS "ETIKET" , AMusteri1.email_1 AS "ETIKET", RIGHT('0000000000' + CONVERT(VARCHAR,STK.FaturaNo), 9) as "EFATURA_NO", (SELECT '--' + CAST(S.IrsNo AS VARCHAR(MAX)) FROM ( SELECT DISTINCT IrsNo FROM STOKHARDETBAG S WHERE S.FaturaNo=STK.FaturaNo and S.IslemNo !=STK.IslemNo AND S.IrsNo!='' AND S.IrsNo IS NOT NULL )S ORDER BY S.IrsNo ASC FOR XML PATH(''),TYPE ) as "IRSALIYE_NO", CASE WHEN ISNULL (DD.Kdv,0)=0 AND STK.OzelKod1='31' AND STK.YazarKasaFisNo<>2 and STK.EF_ISTISNA=0 THEN '351;Vergiden muaf.' WHEN ISNULL (DD.Kdv,0)=0 AND STK.OzelKod1='31' AND STK.YazarKasaFisNo=2 and STK.EF_ISTISNA=0 THEN '11/1-a Mal ihracatı' when SUBSTRING(ISNULL(OzelKod1,'00'), 1, 1)=3 and ISNULL (DD.Kdv,0)=0 and STK.EF_ISTISNA=0 then '701;11/1-c md. Kapsamındaki İhraç Kayıtlı Satış' when DD.TopTutar=0 and STK.EF_ISTISNA=0 then '351;KısmiBedelsiz' WHEN ISNULL (DD.Kdv,0)=0 and ISNULL(STK.EF_ISTISNA,0)=0 THEN (SELECT Deger FROM Parametre WHERE Param='eFaturaMuafiyetAciklama') ELSE (SELECT top 1 MuafiyetKodu+';'+MuafiyetAciklamasi FROM StokVergiMuafiyetleri WHERE MuafiyetKodu= STK.EF_ISTISNA ) END AS "MUAFIYET", --(SELECT CONVERT(VARCHAR,DEGISKEN_KODU)+'-'+DEGISKEN_ADI FROM EF_DEGISKENLER WHERE DEGISKEN_KODU=STK.EF_ISTISNA) AS "MUAFIYET", STK.UUID, STK.Ack1 AS "ACIKLAMA1", STK.Ack2 AS "ACIKLAMA2", STK.Ack3 AS "ACIKLAMA3", STK.Ack4 as "ACIKLAMA4", CASE YazarKasaFisNo WHEN 1 THEN 'TEMELFATURA' WHEN 2 THEN 'IHRACAT' ELSE 'TICARIFATURA' END "FATURA_TUR", CASE SUBSTRING(ISNULL(OzelKod1,'00'), 1, 1) WHEN 0 THEN 'SATIS' WHEN 1 THEN 'TEVKIFAT' WHEN 2 THEN 'IADE' WHEN 3 THEN 'IHRACKAYITLI' WHEN 4 THEN 'ISTISNA' else case when STK.FaturaTipi=5 then 'SATIS' end END AS "SATIS_TUR", SUBSTRING(ISNULL(OzelKod1,'00'), 2, 1) AS "ILETIM_TUR", CASE WHEN STK.AltIskYuzde1 >0 THEN 'Alt iskonto oranları : ' +CONVERT(VARCHAR,STK.AltIskYuzde1) ELSE NULL END + CASE WHEN STK.AltIskYuzde2 >0 THEN + '|'+CONVERT(VARCHAR,STK.AltIskYuzde2) ELSE NULL END + CASE WHEN STK.AltIskYuzde3 >0 THEN + '|'+CONVERT(VARCHAR,STK.AltIskYuzde3) ELSE NULL END as "ALT_ISKONTO_ACIKLAMA", DOVIZT.IsoKodu AS "DOVIZ_KODU", CASE WHEN STK.Tutar=0 AND STK.DovizTut=0 THEN (DD.SonTutar/DD.SonTutarDov) ELSE(STK.Tutar/STK.DovizTut) END AS "DOVIZ_CARPAN", case when Adres.eFaturaMukellefimi='true' then 1 else 0 end EFatura , AMUSTERI.MUSNO CariNo --AMusteri1.email_1 as "ETIKT" --'urn:mail:defaultpk@testkurumelpo.com.tr' AS "ETIKET" --ISNULL(AMusteri1.KimlikAdi,'AD') as "ADI", --ISNULL(AMusteri1.KimlikSoyAdi,'SOYAD') as "SOYADI" FROM AMUSTERI INNER JOIN Adres ON AMUSTERI.MUSNO = Adres.CariNo INNER JOIN STOKHARDETBAG STK ON STK.CariKodu=AMUSTERI.MUSKOD JOIN STOKHAR DD ON DD.IslemNo=STK.IslemNo INNER JOIN AMusteri1 ON AMusteri1.CariNo=AMUSTERI.MUSNO INNER JOIN DOVIZT ON DOVIZT.NoId=STK.DovizCinsi --INNER JOIN FatAciklama on FatAciklama.IslemNo2=STK.IslemNo WHERE (DD.IslemNo=@IslemNo or DD.IslemNo3=@IslemNo); ----------------------------------------------------------------------------------- if exists (select * from sys.procedures where name='sp_FiyatGetir') drop proc sp_FiyatGetir --------------------------------------------------------------------------------------------------- create proc sp_FiyatGetir @IslemTuru varchar(50), --'AlisFiyati' , 'AlisIadeFiyati' , 'PerakendeFiyati' @CariKodu varchar(20), @StokKodu varchar(30), @Tarih varchar(8), @IslemNo int as Declare @KDVHaricFiyat float; Declare @Iskonto1 float; Declare @Iskonto2 float; Declare @Iskonto3 float; Declare @Iskonto4 float; Declare @AlismiSatismi varchar(9); begin Declare @AlisFiyatiAlan varchar(10); Declare @SatisFiyatiAlan varchar(10); Declare @PerakendeFiyatiAlan varchar(10); Declare @KDV float; Declare @AlisFiyati float; Declare @SatisFiyati float; Declare @PerakendeFiyati float; Declare @Sql nvarchar(500); Declare @DonemselFiyatUygulansin varchar(2); Declare @CariFiyatGrubuKullanilsin varchar(2); Declare @DovizKodu varchar(20); Declare @DovizKoduAlisAlan varchar(20); Declare @DovizKoduSatisAlan varchar(20); if @IslemTuru='AlisFiyati' Set @AlismiSatismi='Alış' if @IslemTuru='SatisFiyati' Set @AlismiSatismi='Satış'; if @IslemTuru='AlisFiyati' or @IslemTuru='SatisFiyati' or @IslemTuru='PerakendeFiyati' begin --0 ise hayır, -1 ise evet select @DonemselFiyatUygulansin=Deger from Parametre where Param ='Kampanya Fiyatları Kullanılsın' select @CariFiyatGrubuKullanilsin=Deger from Parametre where Param ='Faturalarda Cari Fiyat Grubu Uygulansın' if (@DonemselFiyatUygulansin='-1') begin select TOP (1) @KDVHaricFiyat = V.KdvHaricFiyat, @Iskonto1=V.Iskonto1, @Iskonto2=V.Iskonto2, @Iskonto3=V.Iskonto3, @Iskonto4=V.Iskonto4, @DovizKodu=D.DovizKodu from Vstk_CariDonemselFiyatlar V, DonemselFiyatListesi D where V.CariKodu = @CariKodu and V.StokKodu = @StokKodu and V.FiyatTipi = @AlismiSatismi and @Tarih between V.BaslangicTarihi and V.BitisTarihi and V.StokKodu=D.StokKodu order by SiraNo DESC Select @KDVHaricFiyat = @KDVHaricFiyat * (select GunFiyati from DOVIZT where DovizKodu=@DovizKodu) end; if (@KDVHaricFiyat is null) begin if (@CariFiyatGrubuKullanilsin='-1') begin select @AlisFiyatiAlan = AlisFiyatiH, @SatisFiyatiAlan=SatisFiyatiH, @PerakendeFiyatiAlan=PerakendeFiyati from CariFiyatlari where FiyatGrupAdi = (select ISNULL(FiyatGrupAdi,'F.G.A.YOK') as FiyatGrupAdi from AMUSTERI where MUSKOD = @CariKodu) end; if (@AlisFiyatiAlan is null) begin Set @AlisFiyatiAlan = 'F1FiyatH'; Set @SatisFiyatiAlan = 'F2FiyatH'; Set @PerakendeFiyatiAlan = 'F4FiyatH'; end; Set @DovizKoduAlisAlan = LEFT(@AlisFiyatiAlan,2)+'DovizKodu'; Set @DovizKoduSatisAlan = LEFT(@SatisFiyatiAlan,2)+'DovizKodu'; if (@IslemTuru='PerakendeFiyati') Set @DovizKoduSatisAlan = LEFT(@PerakendeFiyatiAlan,2)+'DovizKodu'; if (@IslemTuru='AlisFiyati' or @IslemTuru='AlisIadeFiyati') Set @Sql='select @KdvHaricFiyat='+ @AlisFiyatiAlan+',@DovizKodu='+@DovizKoduAlisAlan+' from StokFiyat where Kodu='''+@StokKodu+''''; if (@IslemTuru='SatisFiyati' or @IslemTuru='SatisIadeFiyati') Set @Sql='select @KdvHaricFiyat='+ @SatisFiyatiAlan+',@DovizKodu='+@DovizKoduSatisAlan+' from StokFiyat where Kodu='''+@StokKodu+''''; if (@IslemTuru='PerakendeFiyati') Set @Sql='select @KdvHaricFiyat='+ @PerakendeFiyatiAlan+',@DovizKodu='+@DovizKoduSatisAlan+' from StokFiyat where Kodu='''+@StokKodu+''''; execute sp_executesql @Sql,N'@KdvHaricFiyat float Output, @DovizKodu varchar(20) Output ', @KdvHaricFiyat=@KDVHaricFiyat Output, @DovizKodu=@DovizKodu Output; Select @KDVHaricFiyat = @KDVHaricFiyat * (select GunFiyati from DOVIZT where DovizKodu=@DovizKodu) --print 'DovizKodu='+@DovizKodu+' Sql='+@sql end; if (@IslemTuru='AlisFiyati' ) select @Iskonto1=AlisIndirimYuzde, @Iskonto2=AlisIndirimYuzde2,@Iskonto3=AlisIndirimYuzde3,@Iskonto4=AlisIndirimYuzde4,@KDV = AlisKdv from STOKKARTI where Kodu=@StokKodu if (@IslemTuru='SatisFiyati' or @IslemTuru='PerakendeFiyati') select @Iskonto1=SatisIndirimYuzde, @Iskonto2=SatisIndirimYuzde2,@Iskonto3=SatisIndirimYuzde3,@Iskonto4=SatisIndirimYuzde4,@KDV = SatisKdv from STOKKARTI where Kodu=@StokKodu end; if (@IslemTuru='AlisIadeFiyati') begin select top 1 @KDVHaricFiyat=BirimFiyat, @Iskonto1=Iskonto1, @Iskonto2=Iskonto2,@Iskonto3=Iskonto3,@Iskonto4=Iskonto4 from STOKHAR where CariKodu = @CariKodu and IslemTuru = 'Alış' and StokKodu=@StokKodu order by NoId desc end; if (@IslemTuru='SatisIadeFiyati') begin select top 1 @KDVHaricFiyat=BirimFiyat, @Iskonto1=Iskonto1, @Iskonto2=Iskonto2,@Iskonto3=Iskonto3,@Iskonto4=Iskonto4 from STOKHAR where CariKodu = @CariKodu and IslemTuru = 'Satış' and StokKodu=@StokKodu order by NoId desc end; declare @strIslemNo varchar set @strIslemNo=convert(varchar,@IslemNo) declare @KDVDahilFiyat float set @KDVDahilFiyat=@KDVHaricFiyat*(@KDV+100)/100 select @KdvHaricFiyat as KDVHaricFiyat,@KDVDahilFiyat as KDVDahilFiyat,@Iskonto1 as Iskonto1,@Iskonto2 as Iskonto2, @Iskonto3 as Iskonto3,@Iskonto4 as Iskonto4 end; ------------------------------------------------------------------------- if exists (select * from sys.procedures where name='sp_InvoiceSubtotal') drop proc sp_InvoiceSubtotal --------------------------------------------------------------------------------------------------- create proc sp_InvoiceSubtotal (@InvoiceNo nvarchar(50)='',@CurencyType nvarchar(50)='', @ReceiverIdentifier nvarchar(50)='',@ReceiverTitle nvarchar(100)='', @SenderIndentifier nvarchar(50)='',@SenderTitle nvarchar(100)='', @IslemNo int=0,@Type int=-1,@InvoiceStartDate datetime='',@InvoiceEndDate datetime='') as ;with withInvoice as ( select i.Id InvoiceId, 0 [Type],i.InvoiceNo,i.CurrencyType,max(i.SenderIdentifier) SenderIdentifier,max(i.SenderTitle) SenderTitle,max(i.ReceiverIdentifier) ReceiverIdentifier, max(i.ReceiverTitle) ReceiverTitle, max(i.InvoiceStatus) InvoiceStatus,max(i.TaxExclusiveAmount) TaxExclusiveAmount,max(i.TaxInclusiveAmount)TaxInclusiveAmount,sum(il.PriceAmount) PriceAmount, max(i.IslemNo) IslemNo,ts.Percent_,sum(ts.PerUnitAmount) PerUnitAmount,sum(ts.TaxableAmount) TaxableAmount,sum(ts.TaxAmount) TaxAmount, max(ts.TaxExemptionReason) TaxExemptionReason,max(ts.TaxExemptionReasonCode) TaxExemptionReasonCode,max(i.InvoiceDate) InvoiceDate, max(ts.TaxSchemeName) TaxSchemeName,max(ts.TaxTypeCode) TaxTypeCode, 'Alış' AS Tip,i.EnvelopeUUId from Invoice i join TaxSubtotal ts on ts.InvoiceId=i.Id join InvoiceLineType il on il.InvoiceId=i.Id and il.Id=ts.InvoiceItemId where InvoiceStatus<>'Reddedildi' group by i.Id ,i.InvoiceNo,i.CurrencyType,ts.Percent_,i.EnvelopeUUId union all select si.Id InvoiceId,si.[Type], si.InvoiceNo,si.CurrencyType,max(si.SenderIdentifier) SenderIdentifier,max(si.SenderTitle) SenderTitle,max(si.ReceiverIdentifier) ReceiverIdentifier, max(si.ReceiverTitle) ReceiverTitle, 'Onaylandı' InvoiceStatus,max(si.TaxExclusiveAmount) TaxExclusiveAmount,max(si.TaxInclusiveAmount)TaxInclusiveAmount,sum(il.PriceAmount) PriceAmount, max(si.IslemNo) IslemNo,sti.Percent_,sum(sti.PerUnitAmount) PerUnitAmount,sum(sti.TaxableAmount) TaxableAmount,sum(sti.TaxAmount) TaxAmount, max(sti.TaxExemptionReason) TaxExemptionReason,max(sti.TaxExemptionReasonCode) TaxExemptionReasonCode,max(si.InvoiceDate) InvoiceDate, max(sti.TaxSchemeName) TaxSchemeName,max(sti.TaxTypeCode) TaxTypeCode, CASE (si.Type) WHEN 1 THEN 'Satış Efatura' WHEN 2 THEN 'Satış EArşiv' END AS Tip, si.EnvelopeUUId from SendBoxInvoice si join SendBoxTaxSubtotal sti on sti.InvoiceId=si.Id join SendBoxInvoiceLineType il on il.InvoiceId=si.Id and il.Id=sti.InvoiceItemId group by si.Id ,si.[Type],si.InvoiceNo,si.CurrencyType,sti.Percent_ ,si.EnvelopeUUId ) select * into #Invoice from withInvoice select * ,(select MAX(p1.TaxExclusiveAmount)-SUM(p1.TaxableAmount) from #Invoice p1 where p1.InvoiceId=i.InvoiceId and p1.InvoiceNo=i.InvoiceNo) Fark from #Invoice i where i.InvoiceNo like (case when @InvoiceNo <>'' then '%'+@InvoiceNo+'%' else i.InvoiceNo end) and i.InvoiceDate >=(case when isnull(@InvoiceStartDate,'')<>'' then @InvoiceStartDate else i.InvoiceDate end) and i.InvoiceDate<=(case when isnull(@InvoiceEndDate,'')<>'' then @InvoiceEndDate else i.InvoiceDate end) and i.ReceiverIdentifier =(case when @ReceiverIdentifier<>'' then @ReceiverIdentifier else i.ReceiverIdentifier end) and i.ReceiverTitle like (case when @ReceiverTitle<>'' then '%'+@ReceiverTitle+'%' else i.ReceiverTitle end) and i.SenderIdentifier =(case when @SenderIndentifier<>'' then @SenderIndentifier else i.SenderIdentifier end) and i.SenderTitle like (case when @SenderTitle<>'' then '%'+@SenderTitle+'%' else i.SenderTitle end) and i.CurrencyType =(case when @CurencyType<>'' then @CurencyType else i.CurrencyType end) and i.[Type] =(case when @Type >-1 and @Type<=2 then @Type else i.[Type] end) order by i.InvoiceNo drop table #Invoice exec sp_InvoiceSubtotal :InvoiceNo ,:CurencyType, :ReceiverIdentifier,:ReceiverTitle, :SenderIndentifier,:SenderTitle , :IslemNo ,:Type,:InvoiceStartDate,:InvoiceEndDate declare @InvoiceNo varchar(50)=:i1,@CurencyType varchar(50)=:i2, @ReceiverIdentifier varchar(50)=:i3,@ReceiverTitle varchar(100)=:i4, @SenderIndentifier varchar(50)=:i5,@SenderTitle varchar(100)=:i6, @IslemNo int=:i7,@Type int=:i8, @InvoiceStartDate varchar(10)=:i9,@InvoiceEndDate varchar(10) =:i10 exec sp_InvoiceSubtotal @InvoiceNo ,@CurencyType , @ReceiverIdentifier ,@ReceiverTitle, @SenderIndentifier ,@SenderTitle , @IslemNo,@Type,@InvoiceStartDate,@InvoiceEndDate ---------------------------------------------------------- drop table InvoiceItemMap ---------------------------- CREATE TABLE [dbo].[InvoiceItemMap]( [Id] [int] IDENTITY(1,1) NOT NULL, [SenderIndentifier] [nvarchar](50) NOT NULL, [SenderItemKey] [nvarchar](2) NOT NULL, [SenderItemValue] [nvarchar](max) NULL, [OurCode] [nvarchar](50) NULL, [SenderItemName] [nvarchar](max) NULL, CONSTRAINT [PK_InvoiceItemMap] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] --------------------------------------------------------------------------------------- ALTER TABLE [dbo].[InvoiceItemMap] ADD CONSTRAINT [DF_Table_1_Type] DEFAULT (N'N') FOR [SenderItemKey] --------------------------------------------------------------------------------------- update KullaniciAyarlari set Deger='-1' where Ayar like 'Hızlı Perakende Satışta Tutar Bölümü Görünsün' update KullaniciAyarlari set Deger='-1' where Ayar like 'Hızlı Perakende Satışta Dovizli Tutar Bölümü Görünsün' update KullaniciAyarlari set Deger='-1' where Ayar like 'Hızlı Perakende Satışta Gridteki Sutunları Değiştirebilsin' insert into KullaniciAyarlari(KullaniciNo,Ayar,Deger,Tipi) select Kullanicilar.No,'Hızlı Perakende Satışta Tutar Bölümü Görünsün','-1','Perakende' from Kullanicilar where (select count(*) from KullaniciAyarlari where KullaniciNo=Kullanicilar.No and Ayar='Hızlı Perakende Satışta Tutar Bölümü Görünsün')=0 union select Kullanicilar.No,'Hızlı Perakende Satışta Dovizli Tutar Bölümü Görünsün','-1','Perakende' from Kullanicilar where (select count(*) from KullaniciAyarlari where KullaniciNo=Kullanicilar.No and Ayar='Hızlı Perakende Satışta Dovizli Tutar Bölümü Görünsün')=0 union select Kullanicilar.No,'Hızlı Perakende Satışta Gridteki Sutunları Değiştirebilsin','-1','Perakende' from Kullanicilar where (select count(*) from KullaniciAyarlari where KullaniciNo=Kullanicilar.No and Ayar='Hızlı Perakende Satışta Gridteki Sutunları Değiştirebilsin')=0